воскресенье, 8 июня 2014 г.

Стили для kde

Оформление рабочей среды:
Оформление окон - forman или chrome grayscale
Тема рабочего стола - Invisible или Oxygen (black)

среда, 4 июня 2014 г.

Фикс управления яркостью в Ubuntu 14.04

http://itsfoss.com/fix-brightness-ubuntu-1310/

sudo touch /usr/share/X11/xorg.conf.d/20-intel.conf
sudo mcedit /usr/share/X11/xorg.conf.d/20-intel.conf

Section "Device"
        Identifier  "card0"
        Driver      "intel"
        Option      "Backlight"  "intel_backlight"
        BusID       "PCI:0:2:0"

EndSection

воскресенье, 18 мая 2014 г.

lenovo b590 broadcom 43142 wifi adapter on ubuntu 12.04

Из коробки в убунту 12.04 wifi модуль не поднимается. Необходимо установить пакет
sudo aptitude install bcmwl-kernel-source

Восстановлени ldap для openfire

При изменении параметров ldap админами или случайном вводе неверных параметров невозможно подключиться к веб-интерфейсу из-за некорректных настроек. Для исправления проблемы нужно зайти в БД openfire и исправить неверное свойство в таблице настроек.

Например,
update ofProperty set propValue='DC=elins,DC=internal' where name = 'ldap.baseDN';
update ofProperty set propValue='srv-dc-07' where name = 'ldap.host';

четверг, 6 марта 2014 г.

Хранение объектов БД в памяти

В одном проекте появилась идея загрузить объекты из БД один раз, и работать с моделью домена в памяти, т.е. исключить постоянные запросы к БД. По необходимости выполнять сохранение данных в БД. По сути, в этом случае БД является просто хранилищем данных. В этом проекте в теории не могло быть больше двух клиентов, одновременная работа с одними и теми же данными тоже не должна была вестись. Так что идея вроде здравая. И использование методики разработки корпоративных приложений, когда хранение объектов в памяти клиентов может привести к рассогласованности с БД и нужно выполнять сохранение в БД как можно чаще, не требуется.
Но  оказалось, что при работе с ORM (qxorm) сложно обеспечить двустороннюю связь объектов на уровне указателей. Т.е. при наличии кода
MapPtr map(new Map());
qx::dao::fetch_by_id_with_relation("*->*->", map);
MapPtr mapFromRelation = map->programs().first()->map();

В результате map.data() не равен mapFromRelation.data(). Получается, что один объект может быть загружен несколько раз, и нельзя опираться на их идентичность на уровне указателей. Т.е. изменения атрибутов одного никак не повлияют на другого. И мы получим рассогласованность данных на GUI.
Была предпринята попытка добавить ленивую загрузку (lazy load) совместно с картой объектов (Identity Map). Но ничего конкретного не вышло, добавились другие проблемы: как  при удалении элемента очищать все зависимости из IM. К тому же не нравился подход к выборке коллекции объектов из IM, сначала приходилось выполнять запрос, затем искать в карте объектов и только после этого возвращать результат.

ps: при хранении в памяти всей модели предметной области для обеспечения целостности, чтобы не было проблем при сохранении со всеми реляциями предполагалось, что при добавлении/редактировании/удалении объектов будет обязательно выполняться метод validate().

Redmine plugins

При подключении плагина редмайна имя при регистрации должно совпадать с именем каталога плагина. В противном случае, не находит вьюхи и все такое.

Автоматизация тестирования rails приложений RSpec, Cucumber, Capybara

RSpec используется для тестирования бизнес логики.
По Cucumber и Capybara, скажу так: «огурец» будем использовать, как «парсер» текста интеграционных тестов, Capybara — как прослойку между Cucumber и драйвером, а так же для написания шагов автоматизации. Иными словами… на cucumber мы пишет наши тесты простым языком, а сами шаги реализуем с использованием Capybara. А Capybara уже взаимодействует с webdriver'ом, но это уже совсем другая история