понедельник, 19 октября 2009 г.

Стартап из тюрьмы

Страна развитых нанотехнологий и гигантских боевых роботов радует мир новой инновоцией сфере реабилитации преступников. накопал на roem.ru:

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

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


идея не плохая, и не будет проблем с набором персонала - для успешного проекта всегда можно будет посадить парочку специалистов.

пятница, 16 октября 2009 г.

Антипатерны в инсталяторах

Ярлык удаления программы в ее фолдере в стартовом меню виндовс возможно не антипатерн, а вредная привычка из разряда "делаю как все не задумываясь".
Простой пример: сегодня поставил Orbit Downloader. Инсталярор создал в стартовом меню винды в отдельную группу, а чтобы ярлычку запуска небыло одиноко, добавил линк на домашнюю страницу и ярлык деисталяции.
Относительно ярлыка домашней страници еще можно поспорить и придумать какое-то обоснование и случайный клик по нему не приведет к деструктивным действиям.
А оправданий ярлыку деинсталятора в этом месте нету. Можно найти место в майкрософтовских рекомендаций по дизайну, где он упоминался в списке того, что не нужно добавлять в стартовое меню, но найти эту доку быстро не могу. А причины запрета даже в доке искать не нужно, они на поверхности:
1. вероятность случайного запуска
2. дублируется функциональность аплета Add/Remove Programs

Причина по которой разработчики инсталяторов упрямо засовывают лишнии ярлыки в фолдер своей програмки в меню старт наукой точно не установлена, но есть две основные версии:
а) видел такое в программе ХХХ, значит таку нужно делать и мне
б) одна иконка в фолдери - несолидно.

среда, 14 октября 2009 г.

сертификации Qt разработчиков

12 Октября появилась такой зверь как сертифицированый Qt программист. Пока выбор екзаменов никакой - существует один Qt essential Exam за 149EUR /199USD (дороговато, майкрософтовские дешевле, и это самый базовый екзамен), смысл в здаче может быть есть, пока не появилась куча програмисто сдавших эти екзамены.

если кто-то заинтересован в екзамене:при регистрации до 6 ноября, на сайте www.vue.com/nokiaqt код "Qt Early Reg" дает 30% скидку до 6 ноября.

суббота, 3 октября 2009 г.

сколько процентов трудящихся довольны местом работы?

если верить опросу на linkedin, только 14% не променяю текущую работу на другую, а 38% готовы свалить при первой возможности.




детальный анализ ответов, по работе выполняемой респондентом, показывает любопытные детали: 22% ответивших - HR, и лояльность к работодателю у них самая высокая - 54% полностью удовлетворены. Зеркальным отражением выглядит колонка с инженерами - их меньше всего активно бровзает этот сайт - только 6% из всех ответов, но при этом 60% готовы покинуть текущее место при первой мозможности, и еще 20% серьезно расмотреть интересные предложения.

пятница, 2 октября 2009 г.

Установлювач Google Chome как зеркало украинской IT терминологии

подобная "локализация" просится в раздел юмор:

Первая идея была - машинный перевод. Поигравшись с переводом installer в гукл-переводчике, получить "Установлювач" не получилось. Но поиск находит это слова в каких-то левых онлайн словарях. Тут можно только порекомендовать не стеснятся пользоватся сложившейся терминологией (инсталлер) и не боятся англицизмов.

четверг, 1 октября 2009 г.

Qt: QList и перегруженный API контейнера

Кусок кода из Qt 4.5 :

inline const T &QList<T>::at(int i) const

{ Q_ASSERT_X(i >= 0 && i < p.size(), "QList<T>::at", "index out of range");

return reinterpret_cast<Node *>(p.at(i))->t(); }

inline const T &QList<T>::operator[](int i) const

{ Q_ASSERT_X(i >= 0 && i < p.size(), "QList<T>::operator[]", "index out of range");

return reinterpret_cast<Node *>(p.at(i))->t(); }


сложно найти 10 отличий?

вначале удивило одинаковое описание оператора [] и функции at в доке на Qt.Возникло подозрение что как и в STL они могут различаться поведением при невалидном входном параметре, а все оказалось проще, разницы никакой(если не считать имени, то это банальный копипейст), сделано явно с желанием угодить всем, независемо от любимого способа доставать элементы из контейнера. Подход достаточно спорный, для меня он скорей запутывающий чем удобный.