Pull to refresh
5
0
Send message
Смысл в том, что нет смысла запускать клиентское tcp-подключение в tcp канале. Одного tcp у клиента достаточно, чтобы производить корректную доставку пакетов.

Путаница с моделью OSI. UDP в данном случае используют только потому, что при потере данных их перезапросит протокол более высокого уровня. Разницу в скорости между udp и tcp можно будет увидеть только на сильно загруженной линии.
Для общего развития статья годная. Для реальной работы есть плагин для openvpn к webadmin.
В тц эстакады мнгоуровневые одна на спуск одна на подъем. Разежаться не надо. При 10квадратах на машину и средней пл квартиры 80 метров 4-6 машин поставить можно. Для этого требуется только несущее стены. По кап затратам нижнее этажи дороже получиться но и заморачиваться с разводкой коммуникаций там на порядок меньше. Если сойтись что он в 1.5 раза дороже то 4 этажа в 6 превратяться. Это 30% стоимости. Если в 2 то 50%. При этом чистая площадь комплекса с учетом всех машин без подземной составит порядка 5 площадей здания. Отсюда застройщику выгодно строить построить 4 здания с подземной чем 1 с наземной. При условии законодательно обязывающий базы естественно
Есть мнение что если на 20 этажей сделать 2 этажа паркинга то это увеличит стоимость метра на 22\20=1.1 то есть на 10%.На самом деле больше, но порядок величины примерно такой. Проблема в том, что застройщик захочет при этом не на 10% поднять стоимость а значительно выше, ибо у нас в стране подземная парковка значит элитное жилье. Тут бы его и прижать, да кто же будет.
Поэтому поеду я стоять в пробках, искать парковку и всех с наступающим!
В большинстве странах паркинг либо так или иначе включен в стоимость квартиры. Если по закону требуется делать паркинг, то подрядчик включит его в стоимость работ. Платные паркинг при этом для гостей никто не отменял и это наверно правильно. У вас же просто хозяин решил таким образом навариться. Потому что
а) законом не обязанно.
б) с включенным продавать будет долго, особенно если район не презентабельный(цена больше).
в) даже если его как то обязали сделать паркинг, никто не обязал отдавать места владельцем квартир.
Самому не в радость парковать по району где попало, так что я вас понимаю.

Коммунальщики сразу видно стараются. Но судя по всему городок очень маленький и смахивает на наш коттеджный поселок. В зависимости от годов застройки наши отличаются от совсем унылых до ничем не хуже.
Центр города вполне на уровне европейской столицы. Москва и СПб ничем не уступают. Фотографии окраин вызывают у меня подозрения, если есть 100% с задворок\Спальных районов Хельсинки прошу в студию.

Забыл упомянуть две веши:
1)У нас долгое время не было нормального планирования. Поэтому внешним вид оставался за подрячиком. Сейчас, по крайней мере, в столице за этим следят.
2)Бич жкх — расселение ветхого фонда. Дома вышедшие за все мыслимые сроки эксплуатации и не вписывающие ни в какие районы по внешнему виды. Для своего времени оправданы, сейчас — бельмо на глазу.

И напоследок. Съездите в Казань. Великолепно отреставрированный центр с прекрасным смешением стилей. А через берег — современные спальные районы. Окраины выполнены по типовым советским проектам, но их расселение это вопрос времени по большому счету.
Архитектура диктуется ещё и экономической целесообразностью. В 90% климатических зон России бетонная коробка, с точки зрения энергозатратности, почти идеал. Этажность следует из этого же. Издержки на отопления нескольких больших домов в разы меньше чем кучи таунхаусов. Из этого конечно не следует, что типовая застройка наше всё, но места для фантазии остается меньше. К примеру, Амстердам с умеренно морским климатом примерно на той же широте что и Воронеж с умерено континентальным. Архитектурные изыски Амстердама с Воронежом можно не сравнивать. Как и эффективность теплосети не в пользу первого.

Большой минус современных российских городов я считаю в отсутствии социальной инфраструктуры. Печальная ситуация когда возводят квартал 20+ этажностью и не делают подземные парковки. В итоге и так маленький двор весь в машинах. Но это уже желания подрядчика сэкономить.

По поводу окраин, гетто и прочих неблагополучных районов: то, что туристы туда не ходят не значит, что их нет. Поэтому и не стоит путать туризм и миграцию. В Париже Монмарт пострашнее Бутова будет, хоть и базилика красивая.

В итоге все зависит от мировосприятия каждого конкретного человека и его адаптации к местному климату. Кому и изба хорошо, а кому 50+ небоскреб.
Я не совсем согласен с автором, что информация ничего не занимает в материальном плане. Это иллюзия вызвана тем, что к примеру фильм, ПО или кд размером допустим в 1Гб можно копировать бесконечно. А теперь возьмем данные размером в петабайт или экзобайт. Уже свободно копировать куда угодно и за приемлемое время не получиться.
#include <iostream>
#define profit int main(int argc, char *argv[]) {std::cout << "MACROS MASTER!!!";  return 0; }
profit

Шах и мат, Автор!
Пример с константным указателем сделал мой день в стиле «я докажу вам что ваш язык отстой, потому что я не умею им пользоваться».
Пользуюсь с момента выхода. С точки зрения десктопных приложений я не увидел какие то либо принципиальные улучшения. Есть прикольные вещи типа QCommandLineParser но в целом ничего прорывного.
А вот сборка под андройд существенно улучшилась. Если раньше были танцы с бубном, то теперь почти все работает из коробки.
Здесь как я понимаю получается следующие: MyThread используется как создатель нового потока, так и интерфейса для вложенного в него пользовательского класса. В принципе подход неплохой, за исключением двух Но:
1) так как объект QThread принадлежит потоку, в котором был создан, то сигнал придет сначала в него, а потом будет уже будет ретранслирован требуемому классу, то есть лишняя генерация сигнала. В принципе из-за того, что в одном потоке вызов сигнала приравнивается к непосредственному вызову соединенного с ним слота, издержками в большинстве случаев можно пренебречь.
2) Более существенная проблема состоит в том, что класс MyThread придется переписывать под каждый новый пользовательский класс, используемый в другом потоке.
Способ с QEvent довольно интересный, только я им подробно не занимался, поэтому сказать про него не могу.
Я к тому, что весь код в do() будет выполняться в вызывающем его потоке. Это происходит потому, что функция moveToThread() отвязывает объект от обработчика очереди событий текущего потока и передает его новому. Поэтому запуск функции exec() внутри функции do() вообще то некорректен, так как обработчик очереди событий просто перезапустится, а не привяжется к новому потоку.
Поэтому если требуется вызвать метод класса, надо делать его слотом. Вам просто везло, что по умолчанию run() вызывает exec() и поток имеет очередь событий.
Спешу вас расстроить, но вызов job->do() запустить метод в текущем потоке, а не в потоке thread.
Я накидал небольшой код иллюстрирующий это
#include <QCoreApplication>
#include <QDebug>
#include <QThread>

class QSleep : public QThread
{
public:
    QSleep();
    static void qmsleep(int msec) {QThread::msleep(msec);}
};

class worker : public QObject
{
public:
    worker() {}
    void doIt();

};

void worker::doIt()
{
    while(true)
    {
        qDebug() << "I'm sleep now in new thread";
        QSleep::qmsleep(100);

    }
}
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QThread* th = new QThread();
    worker* petrovich = new worker;
    petrovich->moveToThread(th);
    th->start();
    petrovich->doIt();
    for(int i = 0 ; i < 100; i++)
    {
        qDebug() << "I'm sleep  in this thread";
        QSleep::qmsleep(1000);
    }

    return a.exec();
}


Тестировал на 4.7.4 win 8.1
Отпишитесь если будут другие результаты.
Не вижу практических причин создавать нечто вне потока исполнения, что бы затем перенести это в него.
С точки зрения практичности и эстетичность пользоваться методом run() как функцией, содержащую в себе исключительно пользовательский код для исполнения, возможно только при отсутствии метода exec(). Если требуется обработчик событий, то логично использовать классы, однако, инициализировать их объекты вне потока, по сути до его создания, по меньшей мере требует лишнего кода. Однако, на вкус и цвет все фломастеры разные.
Я для работы использую такую схему:
1) Создаю класс, унаследованный от QThread;
2) Вкладываю в нем указатель ptr на класс, который я собираюсь использовать;
3)завожу переменную isStart типа bool, которая сигнализирует о инициализации класса в новом потоке.
4) примерно так переопределяю метод run():
void SomethingClass::run()
{
    ptr = new T;
    isStart = true;
    exec();
}

5) объявляю функцию, которая просто возвращает указатель ptr;

Данный подход хорош для случаев, когда есть происходит какая то однотипная обработка, осуществляемая силами одного класса.
Минусом же данного подхода является то, что валидность указателя ptr это головная боль программиста.
Если в столице нет нормальных дорог, откуда им взяться в регионах? И я не говорил что я серьезно, это было риторическое утверждение.
Постоянно езжу в Москве. Машину по весне и осени очень жалко, особенно когда на мкаде просто отваливаются целые куски асфальта. Новые эстакады конечно строятся дорога на них замечательная, но асфальт то на них до сих пор в дождь кладут. Как починить дороги, если дураки то остались?
2000 км в длину это больше, чем совокупность всех нормальных дорог в России.
Для меня релиз не удачный. На рабочий комп не смог пока нормально поставить убунту.
Пациент: intel 520 120gb с двумя разделами, на одном стоит вин 8, плата с поддержкой uefi, amd fx8150 и nvidia 630.
Вначале не определил usb клаву и мышь. Ладно берем ps\2. Ставил очень долго. При том что винда на этот же ссд встала минут за 10.
После установки не прописала себя в загрузчик UEFI, ну ладно, зато груб, наверно, должен быть доступен с диска. Запускаю с диска, жду, моментальная загрузка убунты и system run in low graphics mode. Я конечно не против консоли, но работать привык в QtCreator. После этого плюнул на все, ибо перед праздниками не хочется разбираться. В целом я разочарован.
P.S.
На домашнем коме с 12.10 нормально обновился, но там традиционный биос. По использованию не могу сказать что принципиально сильно отличается от предыдущего релиза. Разочаровывает то, что даже такой некогда прогрессивный дистрибутив сейчас сильно сдает позиции и занимается тем, что меняет приложения из коробки.

Information

Rating
Does not participate
Registered
Activity