Сообщения

Сообщения за 2015
«Косвенно тезисы Сноудена подтверждает опрос IT-специалистов, проведенный нами в конце 2014 года. 46% респондентов сообщили, что потеря их мобильного устройства и последующая кража корпоративной информации из его памяти подвергнут риску их компании», — сообщил «Газете.Ru» Оськин.  А я в рамках проекта KalpaCloud давно именно об этом и говорил. Основа безопасности лежит в архитектуре программных систем.
Вы построили мир на вебе, публичной почте. Вы гоняете данные на сторону клиента, которые хранятся во внутренних кешах браузера.
Что же вы еще хотите? Безопасности?

Сравнение WiredTiger c Postgres (домашний тест)

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

Значит надо проверить.

Учинил простой тест. Создается таблица из двух полей. Ключ - строка, значение- строка. Ключ, понятное дело, primary key. Для поля "value" строится индекс. В варианте с Pg получается два индекса. (Как рулит первичным ключем  WT еще надо разбираться. Но фактически  WT создает только 2 файла а Pg 3(один с данными и 2 с индексами. Значит Pg будет оперировать собственно таблицей и двумя индексами, что всяко сложно)
Добавляемые строки - случайные UUID

В WT создание таблицы выглядит вот так.

ret = session->create(session, "table:access", key_format=S,value_format=S,columns=(key, value)");
ret = session->open_cursor(session, "table:access", NULL, NULL, &am…

WiredTiger. Просто взгляд.[update]

Открыл для себя  WiredTiger. Говорят это очень крутой NoSql мотор, который начали использовать в MongoDb. Решил попробовать и я, для чего прям из примера написал программку.


WT_CONNECTION*Volume1Connection;//WT_CONNECTION*Volume2Connection;WT_CURSOR*cursor;WT_SESSION*session;constchar*key,*value;intret;if((ret=wiredtiger_open("./Volume",NULL,"create",&Volume1Connection))!=0||(ret=Volume1Connection->open_session(Volume1Connection,NULL,NULL,&session))!=0){fprintf(stderr,"Errorconnectingto%s:%s\n",".",wiredtiger_strerror(ret));}ret=session->create(session,"table:access","key_format=S,value_format=S");qDebug()<<ret;ret=session->open_cursor(session,"table:access",NULL,NULL,&cursor);

Сказка тысячи и одной ночи.

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

Разумеется такой опыт некоторым покажется более чем странным. Вместо того, чтобы вооружаться PHP, Ruby on Rails, Java и JS он собирается понять как пройти этот путь дорогой, которую ему подскажет судьба, сладчайшая неопределенность и его личный вкус. Да, странное желание. Но это желание того самого условного программиста и разве оно может касаться кого-либо? Некоторые в качестве хобби пишут медленные и унылые (и даже операционные) системы на JavaScript, некоторые создают свои CMS, некоторые просто пьют пивцо, администрируя маленькую корпоративную сеточку. А вот условному программисту хочется понять к…

Сказка о setStyleSheet (тот который в Qt)

Изображение
Редко какой разработчик не желает красоты. Картинки всякие придают радости пользователю, поднимают настроение и обогащают скучные деловые интерфейсы визуальными элементами. 
Разумеется и я в числе таких. Раньше я цеплял на кнопочки картинки, но по сети их гонять (как мне казалось) - только создавать дополнительный трафик. Как еще больше снизить объем передаваемых данных? С помощью шрифтов! Есть замечательный проект fontello который из картинок генерит шрифт. Оный шрифт уже можно использовать.
И сделал я свой шрифт KalpaSymbols, и загрузил его на сервер, и научил его загружаться в клиент и становиться доступным для использования. Для этого есть средство  QFontDatabase::addApplicationFontFromData И все вроде хорошо, и грузится шрифт на сторону клиента и символы нужные показывает. И вот проверил я работу этой штуки на Винде. И тут обнаружилась странность. Нет, не то чтобы метод не работает. Работает, но  (как бы это сказать) иногда. Причем закономерности в распознании нужного fontFamily …