пятница, 26 февраля 2016 г.

[vcs.flame] Разработчики Bazaar троллят фанатов Git-а ;)

Понравилась ремарка, найденная в документации к DVCS Bazaar (я только пофиксил ссылки в ней):

Some Git fans claim Git is now as easy to learn as Bazaar or Mercurial. With respect, we strongly disagree. For example, read and compare the help for the log command across the various tools: 4 pages for bzr log, one page for svn log, 26 pages for git log, and one page for hg log.

How many of the 26 pages of help for git log do you honestly understand? Could you explain it to everyone in your team? Wouldn’t you prefer a tool like Bazaar where log just does the right thing, following renames and sorting topologically, without needing to be specially asked? We certainly do.

Of course, log is just one command. Go ahead and repeat the above test on any other commonly used operation like add, diff or commit. Git is undoubtedly powerful but, in our view, it’s far more complex than a version control tool needs to be for most people.

PS. Мопед не мой, я просто дал объяву. Т.е. у меня нет мнения на этот счет, я не поддерживаю никакой точки зрения (пока). Просто троллинг понравился :)

[prog.thoughts] multi channel receive -- нужен ли? И если да, то в каком виде?

Данный пост является попыткой осмысления новой фичи для SObjectizer. Но, надеюсь, он так же будет интересен и программистам, занимающимся разработкой многопоточного софта вообще. Будь то на C++, на Java или Scala. Или на Go. Мнение Go-шных разработчиков, кстати говоря, будет наиболее интересным.

Итак, некоторое время назад в SO-5 были добавлены message chain-ы (mchains), которые очень похожи на Go-шные каналы (вот здесь можно посмотреть, как один и тот же простенький пример выглядит с Go-шными каналами и с mchain-ами). Главные отличия между каналами в Go и mchain-ами заключаются в том, что mchain-ы не ограничены по типу данных (т.е. в одном mchain-е могут храниться сообщения разных типов) и в SO-5 операция receive имеет более продвинутые возможности, чем чтение из канала в Go.

Принципиальное ограничение текущей процедуры receive в том, что receive делает выборку сообщений только из одного mchain. А хочется сделать возможность выполнения операции receive сразу из нескольких mchain-ов.

Где это может потребоваться?

среда, 24 февраля 2016 г.

[prog] Любопытный момент в FAQ-е по лицензиям Qt

Qt -- это один из лучших C++ных инструментов для разработки GUI-приложений, не шибко требовательных к производительности. Главная проблема с Qt состоит в очень неслабой стоимости коммерческой лицензии на Qt.

В принципе, есть LGPL версия Qt, которая позволяет вести разработку закрытого софта не покупая коммерческую лицензию на Qt. Но вскоре Qt переводит практически все свои компоненты на три лицензии (GPLv3, LGPLv3 и коммерческую), а по поводу LGPLv3 в FAQ-е Qt есть любопытный абзац: