воскресенье, 16 октября 2011 г.

Умер Деннис Ричи

Очень жаль.  Спасибо за язык C и K&R.  RIP.

суббота, 15 октября 2011 г.

AI и ML классы- первая неделя

Я просмотрел все лекции этой недели по двум классам- искусственный интеллект и machine learning.  Я об этих классах писал раньше (AI и ML).  Ну, что сказать.  Хорошо нас учили в институте 20 лет назад.  Ведь кое-что помню. Ж)

Machine Learning (ML) - пока все крутится вокруг линейной алгебры и методов оптимизации.  Математики, как таковой, бояться в этом классе не надо.  Во-первых, упор не на вычисления и теоремы, а на применение известных методов.  Во-вторых, народ эти онлайновые классы сравнивал со стандартными стэнфордскими.  Выяснилось, что много формул специально убрали.  Если кого математика смущает- не все так страшно.  Гораздо хуже, если английский на слух не воспринимаете.  Профессор Ng говорит с с небольшим акцентом, плюс, английская математическая терминология иногда не сразу доходит.  Но! профессор все тщательно, без спешки, разжевывает, а формулы- они и в Африке формулы.  Подводя итоги недели могу сказать- интересно, позновательно, немного занудно и чуть по верхам.

Artificial Intelligence (AI) - вот это действительно мощный класс.  Алгоритмы поиска по графам и всякие эвристики, пространства состояний и пр. уже на второй лекции.  Это вам не кнопки нажимать. Ж)  Теорвер с линейкой освежить не помешает, хотя и здесь математики немного.  Первые впечатления- отличный класс для инженеров.  Разжевывают меньше, материала много. Лекции есть на YouTube.  Английский вполне нормальный.

Такое впечатление, что на оба класса еще можно зарегистрироваться.  И еще, вроде бы, к обоим классам есть субтитры.

Из открытий по тулзам- опенсорсная альтернатива MatLab'у- Octave.  Я ее до этого не пробовал. Вроде- вполне мощная, особенно для дома.  Поставил под Windows.  Есть под Linux и Mac.

вторник, 11 октября 2011 г.

ISO C++ 11 - Стандарт опубликован

Сегодня ISO опубликовала долгожданный стандарт.  Скачать за бесплатно можно последний драфтОфициальный текст от ISO можно купить за 352 швейцарских франка (387 USD).

суббота, 1 октября 2011 г.

Класс по Machine Learning

В дополнение к посту про AI класс.  Бесплатный класс по Machine Learning был также объявлен пару месяцев назад, но регистрация началась только сегодня (1 октября).  Класс стартует очень скоро- 10 октября. Ведет- проф. Andrew Ng.  Классов, как и по AI, два- Basic и Advanced.  В начальном, по сравнению с продвинутым, не надо сдавать экзаменов и решать задачи (программирование).  Все лекции- те же.

Зарегистрироваться можно здесь.

воскресенье, 18 сентября 2011 г.

Qt Project

17 октября стартует Проект Qt (qt-project.org).  Участвовать (как разработчику) можно будет только подписав с Нокией Contribution License Agreement (пока не опубиковано).

Не понятно, как можно стать Мэйнтейнером или, того больше, Аппрувером.  Вроде бы, кандидатуры уже утверждены.  Пишут, что 15% мэйнтенеров- НЕ из Нокии.  Есть и несколько апруверов со стороны.  Из Дигии, что ли? Ж)  В общем, деталей мало. UPD: См. комментарий mich'а.

Это, конечно, полезный проект для сторонних разработчиков и пользователей.  Меньше власти у Нокии, больше у сообщества.  Для Нокии выгода тоже очевидна- можно постепенно отдать разработку Qt сообществу.

понедельник, 5 сентября 2011 г.

AI класс- онлайн и бесплатно

Я- большой фанат онлайнового образования.  Не потому, что упоминание еще одного диплома хорошо выглядит в резюме.  Да, инженер с MBA имеет больше шансов продвинуться по службе, чем инженер без него.  Я здесь не буду говорить, что это все сильно зависит от ВУЗа, где вы эту онлайн степень получаете, от конторы, на которую вы работаете, и от индустрии, в который вы и так неплохой специалист.  Не буду здесь также и спорить про качество таких классов.  Ежу понятно, что в дневном ВУЗе, с вас и спросят строже, и шансов что-то непонятное прояснить больше.  Да и необходимыми связями можно обрасти только на дневном, речь не об этом.

Мне подобные онлайн классы помогают понять, как работает другая, незнакомая мне область, и при этом сэкономить кучу врмени.  И да, мне нужна палка, в виде преподавателя и зачетов/коллоквиумов/экзаменов.  Иначе мне ни в жизнь не сподобиться прочесть сто страниц про то, например, как большие корпорации инвестируют в IT портфельным методом.  А вот тогда становится ясно, откуда в моей конторе вся эта бодяга с централизованным SAP и прочими прелестями жизни.

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

Классов, собственно, два- базовый и продвинутый.  Базовый- это облегченный курс, лекции и ответы на выбор из нескольких альтернатив.  Продвинутый- курс на уровне Стэнфорда, с домашними заданиями и двумя экзаменами по четыре часа.  Выбрать можно один.  Из своего опыта в классах MBA могу сказать- не суйтесь на продвинутый, если у вас нет часов 20-30 в неделю.  Про перевод на русский- не знаю, пишут, что в лекциях будут субтитры на английском и перевод лекций на "другие языки".

Ведут класс Тран и Норвиг (Sebastian Thrun и Peter Norvig).  Это для меня ничего не говорит- я в AI полный чайник, потому и записался на этот класс.  Книжки- будет доступ к лекциям, домашним заданиям и экзаменам.  Мега-учебник (вроде бы, необязательный) можно купить, для Kindle- 64 доллара.  Предыдущие издания можно найти дешевле.

Зарегистрироваться можно здесь.


вторник, 23 августа 2011 г.

понедельник, 4 июля 2011 г.

Последовательный Елоп

Глава корпорации Nokia Стивен Элоп (Stephen Elop) сообщил в интервью одной из финских газет, что даже если новый смартфон N9 побьет все рекорды по количеству продаж, это не повлияет на его решение прекратить дальнейшее совершенствование ОС MeeGo.

Взято отсюда.

пятница, 13 мая 2011 г.

Снова в школу- ищу авторов для блога

"Совсем недавно вышел Qt Creator 2.2. В нем многое исправили, что-то добавили... Полный список на оффсайте."

Вот на такие вот посты у меня время есть. А на что-то интересное- нет. Я- "снова в школу", на блог придется забить. План такой- интенсивная учеба полгода, потом- перерыв на несколько месяцев. И опять в школу на полгода. И так до диплома, ну, или пока не надоест.

Если есть желание поддержать блог, поделиться своими находками в Qt и Qt Creator, рассказать о своих программах и плагинах и т.д и т.п.- пишите на мое мыло (qtcreatorgeek@gmail.com) или в комменты. Не хабром единым...

среда, 6 апреля 2011 г.

понедельник, 14 марта 2011 г.

"Факты и вымысел про Qt и Digia"

Вот ссылка на пост Qt and Digia, facts and fiction г. Найстрома (VP, Head of MeeGo, Qt & WebKit, Nokia) от 14 марта, в котором он "address[es] the facts and the fiction in what some commentators are saying".

Я этот пост здесь переводить не буду, только скопипастю основные пункты, просто для себя, на будущее.

Headline: “Nokia sells Qt / offloads Qt / sells majority of Qt”
False. Nokia will sell the commercial Qt business to Digia, giving them the right to sell Qt Commercial licenses and offer professional services and support to the Qt community.
The Qt commercial business is important, but it is not the majority of Qt. An estimated 400,000 developers across more than 70 industries use Qt. There are 3500 commercial customers. Some have one license, some have dozens of licenses, but commercial customers do not make up the majority of the Qt user base.
Nokia will continue to invest in the development of Qt, continues to hold the copyright and will continue to publish Qt under an open source license benefitting the whole community.

“Developers are moving from Qt to Digia”. True or False?
False: Some news websites have suggested 19 developers were moving from Qt to Digia, which was then re-reported by others. It is false. In addition, Digia already has hundreds of Qt certified developers, more than anyone else in the world.

19 employees from our commercial team are planned to move to Digia when the transaction closes, nine in Norway, ten in the US. Not a single developer among them. They are great people and we wish them well for a great and prosperous future with Digia.

“This will create a fork between the commercial and LGPL version” True or False?
Again, this is false. Nokia and Digia have started this collaboration together, and both will be ensuring their work benefits all of the Qt community, not just LGPL or commercial licensees.

Digia is already an established Nokia partner and we are confident that this new structure will benefit everyone. Commercial users get service and attention from a company with a core interest in the commercial Qt business, Nokia’s Qt partners and developers get a tighter focus on their core areas from Nokia.

Nokia and Digia have a shared interest in not fragmenting Qt, and an interest in growing the entire Qt ecosystem.

“Nokia is breaking Qt up into pieces and trying to offload it” True or False?
False. Since the announcement in February of Windows Phone as Nokia’s primary smartphone strategy, Nokia has provided several reassurances about its future intentions for Qt. Specifically to continue developing it, building it, improving it. Here is CTO Rich Green talking about this.

“This divestment is occurring as a result of the Nokia Windows Phone smartphone strategy” True or False?
False. We began the process of finding a partner to service Qt commercial customers in 2010. It made sense then to find a company with a core interest in commercial license sales to manage this and it still makes sense now.

среда, 9 марта 2011 г.

Покупатель нашелся

Несколько дней назад (7 марта) Nokia продала коммерческое лицензирование и поддержку некой Digia. Из поста вице-президента Найстрома (который "Head of Qt, MeeGo & WebKit") следует, что не только поддержкой, но и разработкой коммерческой части Qt будет заниматься эта самая Digia. Вот здесь пишут, что 19 разработчиков Qt уходят из Nokia в Digia. Не понятно, что будет делать сам Найстром- возглавлять LGPL часть, что-ли? Думаю, он не пропадет. Ж)

Я тут полазил по сайту этой Дигии. У меня очень сильные сомнения, что разработка и поддержка в этой конторе зайдет дальше багфиксов и выпуска одного-двух релизов в год без каких-либо серьезных изменений. О поддержке/обновлении LGPL версии со стороны Дигии, думаю, можно не беспокоиться. Ну а дальше- понятно. KDE развивает свою версию, ненавистники кедов придумывают еще один форк... Вспоминается BeOS и история как ее задушили мелкие, мягкие и пушистые.

вторник, 1 марта 2011 г.

Qt портирована на RTOS Integrity

Вот и еще одну RTOS окучили. Помню, мы под эту Integrity писали кусок TCAS (бортовой системы предупреждения столкновений самолетов) лет этак 10 назад.

Ну что сказать, осталось еще Qt на LynxOS и DEOS портировать, и вообще практически у любой тру RTOS будет свой гуй.

Qt 4.7.2 и Qt Creator 2.1

Наконец-то вышли Qt Creator 2.1 и Qt 4.7.2. Скачать, как обычно, можно на странице download по частям или в составе Qt SDK 1.1 Beta для нужной платформы.


вторник, 22 февраля 2011 г.

Qt and Qt Creator for Android

Т.е. чтобы не случилось с (в) Нокия, поскольку есть порт для Android, будут программисты, и деньги, и поддержка Qt.

Только что прочитал на хабре, что Qt теперь заточена и под Андроид- вышла альфа проекта Necessitas. И Qt Creator может создавать приложения для Андроид. Его, правда, надо собрать из исходников.

пятница, 11 февраля 2011 г.

Qt is dead?

Ну что тут сказать? Кинули разработчиков в очередной раз. Понятно, что Qt им больше не нужна. Qt Creator- и того меньше. Что сейчас Qt может спасти- это если Nokia продаст библиотеку кому-нибудь. Не уверен, что энтузиасты могут легально форкнуть проект и продожать развитие Qt своими силами...

UPD: Спасибо, за комменты, форк возможен. И это здорово.
Вот Нокия уверяет, что Qt с ней не пропадет (а народ все равно не верит).
А вот пост по поводу прошлых свершений Елопа и неизбежности форка Qt.

четверг, 20 января 2011 г.

Лекции и лабы по Qt

Вот здесь есть лекции и лабы по Qt от Нокии на английском. Можно скачать по отдельности или все целиком. Перевод на русский- в процессе.

пятница, 7 января 2011 г.

Плагин для макросов

Не знаю, часто ли у других возникает необходимость полностью чистить проект для того, чтобы его нормально собрать, но у меня перидически возникает. Например, ребилд перестает работать после ошибки линкера, когда метод объявлен, но не реализован. Лечится это просто- Clean, затем Build, но хотелось бы, чтобы все это висело на одной кнопке.

Мир- он все же не без добрых людей. Вот здесь в репозитории плагинов лежит исходный код плагина macros. После минимальных исправлений, плагин собрался для Qt Creator 2.1 RC1, и я его сразу же попробовал.

Ну, что сказать. Плагин пока не доделан. Записывается только один макрос, и то в память, не в файл. Работает только для редактора, т.е. если страница Edit неактивна, то записать или проиграть макрос нельзя. И еще одно- горячие клавиши у плагина- Alt-( и Alt-). Alt-) совпадает с Alt-0, что не есть здорово. Может, они на самом деле Alt-Shift-9 и Alt-Shift-0, не знаю.

Из хороших новостей пока только одна- плагин, вроде бы, регулярно обновляется. Будем ждать когда допилят...

понедельник, 3 января 2011 г.

Пишем плагин для Qt Creator - часть 3

Я в отпуске, так что появилось время написать следующую серию про создание плагинов для Qt Creator. Предыдущий пост на ту же тему Сборка и отладка плагинов для Qt Creator 2.1 практически заменяет вот эти две старые части:
Итак,

Часть 3 - Настройки плагина
В этой части речь пойдет про создание страницы в диалоге Tools->Options. Для эксперимента возьмем уже существующую страницу установок C++. Можно добавить свою, но интереснее добавить таб вот сюда:



...чтобы в итоге получилось вот что:



Мы будем использовать тот же плагин DoNothing, что и в предыдущих постах.
Да, чуть не забыл. Версия Qt Creator- 2.1 RC 1 (2.0.94). Версия Qt- 4.7.1.

Категория плагина
Перед тем, как начать конструировать страницу опций, определим категорию плагина. Это может быть как одна из уже существуюших категорий (Build Systems, C++, Version Control и т.д.), так и абсолютно новая категория. Категория- это ветка в окне Installed Plugins, которое вызывается из меню Help->About Plugins. На рисунке внизу DoNothing живет в своей собственной категории Useless:



Категория задается в спеке плагина donothing.pluginspec строкой:
<category>Useless</category>
В дальнейшем будем использовать уже существующую категорию "C++".

Зависимости
В спек и в файл проекта надо добавить две зависимости- Project Explorer и CppTools.

Настройки плагина
В Qt Creator для настроек есть диалог Options. Понятно, что нам надо создать виджеты для этого диалога, сделать их доступными для Qt Creator и научить наш плагин получать информации от виджетов.
Настроек добавим две- option1CheckBox и option2CheckBox. Они будут частью виджета DoNothingSettingsWidget:



Внутреннее устройство
Для работы понадобятся четыре класса:
  • DoNothingSettings - собственно определяет настройки плагина (bool option1 и option2) и методы readSettings() и writeSettings() для загрузки при запуске Qt Creator и сохранения настроек при их изменении пользователем;
  • DoNothingSettingsPageWidget - наследуется от QWidget и содержит наш виджет. Также определяет геттер и сеттер для настроек, т.е. транслирует ГУЙ в bool и обратно. Также он реализует метод searchKeywords() для поддержки класса страницы DoNothingSettingsPage, о котором ниже;
  • DoNothingSettingsPage - наследуется от Core::IOptionsPage, содержит указатель на DoNothingSettingsPageWidget и отвечает за работу страницы настроек в целом. Он определяет унаследованные методы для регистрации и работы страницы настроек(createPage(), apply(), matches(), id(), displayName() и пр.). Именно этот класс позволяет добавить наш виджет в любую страницу настроек;
  • DoNothingPlugin - собственно класс плагина. Нследуется от IPlugin, содержит экземпляр класса DoNothingSettings и указатель на страницу настроек. Этот класс определяет работу всего плагина. Для нас сейчас выжны методы initialize(), и геттер и сеттер для настроек.
Надо отметить, что различные плагины в Qt Creator по-разному хранят настройки. В одних реализациях экземпляр класса XxxSettings принадлежит XxxSeetingsPageWidget или XxxSettingsPage, в других- самому плагину, как в моем примере.
Как же удается добавить наш новый таб в существующую страницу настроек? Класс DoNothingSettingsPage определяет методы category() и displayCategory(). Также он определяет и иконку, которая будет отображаться на нашей странице- categoryIcon(). Практически, все, что надо сделать, это:

QString DoNothingSettingsPage::category() const
{
return QLatin1String("I.C++");
}

QString DoNothingSettingsPage::displayCategory() const
{
return QCoreApplication::translate("DoNothing", QT_TRANSLATE_NOOP("DoNothing", "C++");
}

QIcon DoNothingSettingsPage::categoryIcon() const
{
return QIcon(QLatin1String(":/core/images/category_cpp.png"));
}

В методе DoNothingPlugin::initialize() надо создать страницу настроек с помощью:

// create the settings page and add a tab to the chosen category
doNothingSettingsPage = new DoNothingSettingsPage();
addAutoReleasedObject(doNothingSettingsPage);

Файлы плагина
В принципе, вот такие файлы надо будет создать:
  • donothingsettingswidget.ui - содержит ГУЙ нашешего виджета;
  • donthingconstants.h - содержит константы для класса DoNothingSettingsPage и DoNothingSettings;
  • donothingsettings.h (и donothingsettings.cpp) - содержит класс DoNothingSettings и операторы == и != над ним;
  • donothingsettingspage.h (donothingsettingspage.cpp) - содержит классы DoNothingSettingsPageWidget и DoNothingSettingsPage.
Имена файлов- традиционные для плагинов Qt Creator.

Исходный код
Я не стал здесь приводить исходный код, все равно проще его смотреть в самом креаторе. Код можно скачать отсюда: QtCreatorPlugins-Part3.zip. Надо просто создать папку и разархивировать в нее.