Сообщения

Dead Moroz

Некоторое время назад позвонил мой друг. Он занимался переговорным процессом и налаживанием отношений с инвесторами. Мой друг - человек довольно влиятельный, с репутацией благородного, честного и добропорядочного гражданина, радеющего за судьбу нашей страны и располагающий внушительными связями в деловой среде. Его, как и меня, трудно заподозрить в стартаповском фетишизме. К счастью мы с ним уже вошли в тот возраст, когда молодецкая дурь ушла, а старческий маразм еще далеко. Меня не интересует стартап как процесс, инвестиции как способ повышения чувства собственной важности и "дутый рост" во имя оценки компании. Меня интересует выпуск продукта, его жизненный цикл и бизнес. Такая вот старомодная позиция.

Он принес мне печальные новости. Ни одна из его, вполне конструктивных, переговорных линий не принесла ожидаемого результата. Несмотря на явный интерес к проекту инвестор сохраняет осторожность. Я начинаю разделять точку зрения некоторых наблюдателей о том, что наши отечестве…

Куда бы дроны приткнуть?

Есть у меня весьма приятные знакомые, которым очень хочется помочь и добрым советом и деятельным участием. Они занимаются попытками внедрить в наш простой российский обиход беспилотные летательные аппараты, известные в народе как “БПЛА”.

Многие из нас отцы и рады были рождению сыновей, потому как хочется же в вертолетики поиграть. Все купили, все поиграли. Курс и фарватер, проложенный АСИ на пути технической модернизации нашей богохранимой державы, предполагает использование оных в деле народного хозяйства. На примере наших домашних вертолетиков мы знаем, что летают они мало, заряжаются долго, многих циклов перезарядки дешевые китайские батареи не выдерживают (а своих-то вроде и нет). А куда деваться? На дворе прогресс и трансгуманизм. Вот и создаются на Руси-матушке различные предприятия для этих самых БПЛА. Естественно, с опаской взирая на успехи американских гигинтов, создаются и кластеры объединяющие это все в едином народно-хозяйственном порыве. Все же тоже хотят возить пиццу и п…

Удивительные дела.

Удивительные дела творятся в нашем государстве.

На фоне обилия людей снующих, организующих самые разнообразные процессы, показывающих друг другу фигуры на презентациях и собирающих разнообразные конференции, возможность делать реальные дела исчезающе мала.

Недавно имел удовольствие присутствовать на собрании людей, собирающихся сделать очередной “форсайт-кэмп”. Я человек прямой и сразу же задал вопрос о цели этого мероприятия. (А на него планируется где-то из государственных и региональных бюджетов добыть изрядную сумму денег). Ну вот зачем в очередной раз собирать людей? Будет ли там возможность взаимодействовать с реальными инвесторами? Молчание. Для кого собирается этот очередной форум? Чтобы опять помусолить “дорожные карты” АСИ, с наслаждением и придыханием воспроизвести набор загадочных слов, ощутить свою причастность к делу технического прогресса, послушать “визионеров”, которые готовят свои доклады по итогу просмотра канала Discovery-Science.

Движуха ради движухи. Конференция …

Сторителлинг

Рассказывал одному из переговорщиков суть моего проекта. Ну вот просто так, по шагам.

И придумали люди веб-страницы и стали они множиться под солнцем. И каждый желал себе не волов, но страниц красивых с анимацией и вертикальными параллаксами. И приумножились они и стало их как песка морского... :)Чтобы в них не потеряться люди придумали поисковые системы. Теперь все зависит от положения в поисковом запросе.И придумали люди мобильные платформы. И вот тут-то все недостатки веб-решений всплыли и стали выпуклыми. Да насколько, что люди предпочитают пользоваться специально написанными для телефонов и планшетов программами. И вот опять все стало повторяться. (Ибо нет ничего нового под солнцем.) Каждый магазинчик и каждая лавчонка, не говоря уже о крупных предприятиях, захотели и себе написать приложения. И будет их скоро как песка морского.Но мы же не можем в свои телефоны поставить миллионы приложений! Опять встал вопрос о передаче удаленно исполняемых приложений на сторону клиента. Об этом…

К вопросу о кросплатформенности в деле создания мобильных приложений.

Интересно отметить, что разработчики используют нативные средства создания мобильных приложений. Для платформы Android использует Java, для ios -- Objective-C, для MsPhone -- C#. А для десктопов пишут вообще бог знает на чем.

На практике это означает необходимость содержать несколько команд для поддержки, порой весьма сложного, комплекса FrontEnd систем. Эти команды должны обладать специфическими и значительными компетенциями в своем мире.

Наш подход несколько иной. Используя С++ мы получили возможность разрабатывать системы для всех платформ в единой кодовой базе. Нет необходимости привлекать разработчиков для разных платформ. Компетенции можно поддерживать на высоком уровне, а из взаимозаменяемость позволяет разработчикам без дополнительного обучения заниматься разными платформами.

Мы определенно считаем такой подход значительно более экономичным.

К вопросу об организации оркестратора кластера в деле бесшовного ввода новых версий Kalpa-системы.

Страшное дело - организация взаимодействия в большой системе взаимодействующих узлов.
Первое и основное дело, с каким придется столкнуться - реализация плавного, бесшовного обновления всей системы на новые версии. Причем делать это надо не дергая пользователей. Пусть они спокойно доработают свою сессию на старой версии. Для обеспечения такой плавности необходима одновременная работа как всего серверного хозяйства в старой версии, так и плавный ввод в работу версии новой.
Итак. В системе существует служба "SystemControl". Она отвечает:

За контроль топологии системы. Знает какие узлы существуют в системе и какие службы эти узлы обслуживают.Мониторит отказ отдельных узлов и перебалансировку топологии системы.Осуществляет плавное обновление системы.  Каждая служба (кроме слоя сервера приложений) имеет свой набор сетевых портов ожидания. Каждая версия использует только один из трех портов. SystemControl всегда знает расписание портов текущей и прошлой версии. Таким образом можно о…

Новости госмессенджеров.

«Развитие IT-технологий является приоритетом работы правительства Республики Крым. Наш президент в своём послании Федеральному собранию назвал развитие цифровой экономики вопросом национальной безопасности и технологической независимости России. Глава государства обратил особое внимание на риски, связанные с цифровыми технологиями, и необходимость защиты от киберугроз», — отметил Сергей Аксёнов.
Андрей Назаров уточнил, что свои разработки программисты могут представить на третьем ялтинском форуме в апреле следующего года. Отметим, что Назаров также занимает пост председателя правления Ялтинского международного экономического форума.
Госконтрактом с крымским правительством уже заинтересовались разработчики российского мессенджера Dialog, которые участвуют в конкурсе Института развития интернета на создание государственного мессенджера для федеральных чиновников.

«Мы готовы принять участие и в разработке закрытого безопасного мессенджера для крымских чиновников, в свете чего планируем про…

Новости часа.

К вопросу о моем сообщении про QTcpSocket

Может еще рано радоваться, но тикету присвоили статус "Important".
Надеюсь все же разобраться. Я конечно приготовился делать свой HeartBeat. И даже провел подготовительные работы. Но все же...

Опять про QTcpSocket и disconnected

Казалось бы, все понятно и все ситуации разобраны. Ан нет.
Известная история. Как определить, что tcp-соединение разорвано? Ответ - настройки keepalive.

На стороне сокета, читающего данные все работает нормально.
На стороне сокета пишущего данные опять проявился сюрприз.
Если между фактом разрыва и отработкой попыток KeepAlive в сокет не было записано данных, то все отрабатывается штатно. QTcpSocket выбрасывает disconnected.
НО Если после разрыва в сокет были записаны данные, сигнал о разрыве не выбрасывается. Более того, write фиксирует успех записи данных. bytesToWrite показывает 0, что означает, что данные уже записаны в канал. state сокета показывает QAbstractSocket::ConnectedState.
Не поленился написал тестовый пример для демонстрации описываемого эффекта.
voidSocketTransport::onConnected(){
qDebug()<<"OnConnected";
mSocket.setSocketOption(QAbstractSocket::KeepAliveOption,1);
intIdle=2;
intCount=3;
intInterval=2;
if(setsockopt(static_cast<int>(mSocket.socketDescript…

Cmake заметки.

После того как cmake научился для Qt5 автоматически "мокать" необходимые заголовки многие разучились это делать руками. А это иногда нужно.
Вот например, есть у вас в одном проекте класс с одинаковым именем, но в разных пространствах имен (и в разных каталогах, разумеется). И не говорите, что так не бывает. Еще как бывает.
Так вот, стандартная опция
set(CMAKE_AUTOMOC ON) будет генерить файлы с одинаковыми именами в каталоге сборки и обязательно приведет к ошибке.
Что делать? Мокать файлы самому. Для этого.

Установим set(CMAKE_AUTOMOC OFF)Определим переменную header set(header ..... ) в которой перечислим необходимые для moc заголовочные файлы.Скажем qt5_wrap_cpp(moc ${header})В add_library добавим ${moc} После этих манипуляций cmake будет рад в каталоге сборке создать внутренние служебные каталоги с созданными moc-файлами. Конфликтов имен при такой сборке не будет.