Сообщения

Dead Moroz

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Опять про 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…