*** ВНИМАНИЕ: Блог переехал на другой адрес - demin.ws ***
Показаны сообщения с ярлыком google. Показать все сообщения
Показаны сообщения с ярлыком google. Показать все сообщения

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

Chromebook Samsung 5 3G

Прочитал я, что Google открыл в Лондоне офлайновый магазин по продаже Хромбуков.

Поехал посмотреть и магазин и Хромбук.

"Магазин" - это стойка из двух столов в десятком демо ноубутов в зале огромного PC World'а. Рядом отдел Apple, Sony и т.д. То есть это не целый отдельный магазин, как у Apple, например.

Хромбук, который там демонстрируется и продается - Samsung Series 5 3G.

Ниже будут не очень хорошего качества фотографии моего часового знакомства с данным устройством.

В закрытом виде.

Слева - питание, странного вида видео-разъем, USB и аудио.

Справа - еще один USB.

Спереди - SD.

Разъем питания в целом хлюпковат.

Посмотрим клавиатуру.

Над шифтом есть интересная кнопка Search, которая просто открывает в браузере новую пустую закладку и устанавливает курсор в строку поиска. По сути это CTRL-T. Мне эта кнопка очень понравилась.

В верхнем ряду кнопки для интернета. Та, что между полноэкранным режимом и яркостью - переключение между окнами Хрома, если их открыто несколько.

Кнопок Ins, Del, Page Up и Page Down нет.

После включения через 8 секунд появляется приглашение логина и пароля от вашего гугловского аккаунта (я воспользовался демо-логином), и затем появляется главный экран.

Все, что есть в Хромбуке - это браузер Хром. Войти/выйти из него нельзя. Можно только открывать новые табы и окна.

Сам Хром отличается от обычной десктопной версии разными дополнительными меню. Например, сетевые найстройки.

WiFi

Русский язык можно также добавить в настройках.

Печатать можно либо подключив USB-принтер (есть спискок поддерживаемых моделей), либо "правильным" гугловым методом через Cloud Print.

В Хромбуке можно хранить локальные файлы. Их можно приаттачивать к письмам, например.

В самом локальном хранилище реально можно что-то делать только с файлами определенного типа, например, фотографиями или видео. Их можно закачивать на WebPicasa.

В локальное хранилище попадают все скачиваемые файлы и скриншоты.

Скайпа тут быть не может, поэтому я проверил GTalk (в окне моя бритая голова).

Настройки GTalk.

После небольшего ерзанья GTalk все же упал.

Конечно я зашел на правильный сайт.

И еще на один.

И еще на один для оценки производительности.

Линукс загрузился за 33 секунды. На моем Mac Air Core Due оно грузится за 8 секунд. А вот богомипсы почему-то такие же - ~20.

Теперь мой субъективный вывод.

Стоит эта музыка 400 фунтов (~630 долларов), что, как мне кажется, является запредельно нереальной ценой. Сам ноут крайне прост и не является супер легким и тонким ультрабуком, за который можно было бы драть такую цену.

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

Даже в магазине, где был четкий вайфай, работать с полным онлайном все же напряжно, так как сетевые тормоза там сям начинают очень быстро нервировать. Стандартный офлайновый GMail там есть, но работать в нем реально нельзя.

Если цена была бы 50 фунтов - лично я купил бы его прямо там, так как использую продукты Google и рад поиграться с подобной "консолью от Гугл", но за 400 фунтов - как-нибудь обойдусь.

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

Google Test 1.6.0

Только что вышла новая версия отличной библиотеки для unit-тестирования на С++ - Google C++ Testing Framework.

Вот список изменений:

  • New feature: ADD_FAILURE_AT() for reporting a test failure at the
    given source location -- useful for writing testing utilities.
  • New feature: the universal value printer is moved from Google Mock
    to Google Test.
  • New feature: type parameters and value parameters are reported in
    the XML report now.
  • A gtest_disable_pthreads CMake option.
  • Colored output works in GNU Screen sessions now.
  • Parameters of value-parameterized tests are now printed in the
    textual output.
  • Failures from ad hoc test assertions run before RUN_ALL_TESTS() are
    now correctly reported.
  • Arguments of ASSERT_XY and EXPECT_XY no longer need to support << to
    ostream.
  • More complete handling of exceptions.
  • GTEST_ASSERT_XY can be used instead of ASSERT_XY in case the latter
    name is already used by another library.
  • --gtest_catch_exceptions is now true by default, allowing a test
    program to continue after an exception is thrown.
  • Value-parameterized test fixtures can now derive from Test and
    WithParamInterface<T> separately, easing conversion of legacy tests.
  • Death test messages are clearly marked to make them more
    distinguishable from other messages.
  • Compatibility fixes for Android, Google Native Client, MinGW, HP UX,
    PowerPC, Lucid autotools, libCStd, Sun C++, Borland C++ Builder (Code Gear),
    IBM XL C++ (Visual Age C++), and C++0x.
  • Bug fixes and implementation clean-ups.
  • Potentially incompatible changes: disables the harmful 'make install'
    command in autotools.

Полная история версий.

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

Лично я очень ждал исправления мелких, но неприятных несовместимостей с компиляторами HP-UX, Sun и AIX.

Посты по теме и почти по теме:

UPDATE:

По ходу вышел еще и Google Mock 1.6.0.

Что нового тут:

  • Compilation is much faster and uses much less memory, especially
    when the constructor and destructor of a mock class are moved out of
    the class body.
  • New matchers: Pointwise(), Each().
  • New actions: ReturnPointee() and ReturnRefOfCopy().
  • CMake support.
  • Project files for Visual Studio 2010.
  • AllOf() and AnyOf() can handle up-to 10 arguments now.
  • Google Mock doctor understands Clang error messages now.
  • SetArgPointee<> now accepts string literals.
  • gmock_gen.py handles storage specifier macros and template return
    types now.
  • Compatibility fixes.
  • Bug fixes and implementation clean-ups.
  • Potentially incompatible changes: disables the harmful 'make install'
    command in autotools.

Полная история.

пятница, 18 июня 2010 г.

Google I/O: all videos

Тут собраны все видео с Google I/O 2010, по категориям.

http://code.google.com/events/io/2010/sessions.html

Мне, например, очень понравилась презентация про новую Java машину с JIT в Android 2.2:



И про язык программирования Go:

среда, 7 апреля 2010 г.

Bernard Girard, "The Google Way"

Было интересно почитать про историю Google, посему купил вот эту книгу.

Bernard Girard, The Google Way



Не могу сказать, что мне особо понравилось, хоть фактов в книге предостачно: и про самое начало, и про выход на IPO (работая сейчас в сфере finance, знаю, как обычно инвестиционные банкиры наживаются на процедуре IPO, но Гугл их сильно в этом плане разочаровал, не дав им кусок своего пирога), и про правило 20%, и про систему peer review, и про наличие технической иерархии и про многое другое.

Разок прочитать можно, но не более того. Книгу продал назад через Amazon Market Place.

вторник, 12 января 2010 г.

Google Nexus One — начало

Вчера мне DHL доставил из Штатов Google Nexus One, заказанный в пятницу на сайте.

Цена вопроса (без контракта): 529$ аппарат, 19$ британская зарядка, 30$ доставка. Итого 578 американских буказоидов.

Я давно являюсь фанатом Андроида, и после G1 и G2 я наконец решил купить сам аппарат, а не только играться на эмуляторе. Тем более Nexus — это официальный аппарат именно от Google.

Сразу скажу, что я пока не рассчитываю, что Nexus сразу полностью заменит мне айфон. Очевидно — аппарат новый, новый Андроид 2.1, так что скорее всего будут глюки (и они есть), но в качестве "игрушки для взрослых" — в самый раз (прошлой игрушкой у меня был Lego NXT), и так как платформа не в пример Эпплу открытая и свободная, обновления, новая информация, и вообще активность разрабочиков не заставит себя ждать (по крайней мере хочется в этого верить).

Вместо подробного отчета с расписыванием размеров, веса и т.д. просто приведу моменты, на которые обратил внимание, как программист (тем более, что есть официальный 3D тур по аппарату.

Что дают в комплекте.

Сам аппарат, съемный аккумулятор (не могу поддержать восторгов на эму тему, так как за два года пользования неразборным айфоном ни разу не захотелось его открыть и поменять аккумулятор, хотя он более одного дня не работает), зарядка от сети (американская и опционально плюс за 20$ британская), проводная гарнитура с микрофоном и кнопкой, кабель USB-to-MiniUSB (боже! стандартный разъем mini-USB), приятный чехол с логотипом Андроида, mini-SD карта на 4GB, инструкция в виде небольшой картонки, мини книжка с гарантией и условиями.

Забавно, что при оформлении заказа можно "персонализировать" аппарат путем нанесения надписи из двух строк на заднюю панель аппарата. Я ввел надпись на русском, и в заказе она выглядела нормально, но вот на в реальности на аппарате каждая русская буква представлена символом ? — ну не взял их принтер русский шрифт на грудь. Не беда, это в своем роде тоже уникальная надпись.

Вынул я симку O2 из айфона и заправил в Нексус. В отличии от айфона, разъем симки находится под аккумулятором, и там же находится карточка mini-SD. Аппарат завелся. Грузился чуть дольше, чем айфон.

Первое, что он меня спросил — это гугловский аккаунт. После этого спросил пароль на wifi и затем моментально подхватил все из гугловского аккаунта (почта, календарь, контакты).

Настройки EGDE/GPRS пришлось руками вбивать из айфона, так как аппарат, конечно, был не в курсе о параметрах O2.

Gmail сделан отдельным приложением, заточенным только под него. Работает в фоновом режиме. Для традиционной почты (POP3, IMAP и т.д.) есть приложение Mail. Пользоваться очень удобно.

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

Я как-то и не ожидал, что в первых версиях прошивки будет русификация. Но русские шрифты и язык для интерфейса таки оказались. Русской же клавиатуры не было. Ну я было уже приуныл и решил, что подожду обновления прошивки, но тут пришла мысль — а не сходить ли мне на Google Market (аналог Apple Store). И первое бесплатное приложение, которое я поставил — это она из русских клавиатур. Теперь я могу писать на русском.

Еще я бесплатно поставил (играясь вчера пару часов): англо-русский словарь (о да!), распознавалку штрих-кодов (фоткаешь штрих-код, и она находит в сети товар), эмулятор игры "Ну погоди!" (там, где волк яйца ловит с четырых полок — это угар!), клиент твиттера, эмулятор терминала (можно telnet'иться на сам Nexus), карту метро и нотификатор состояния его линий (для лондонского метро это актуально). Пока все. Понимаю, набор странный, но это только начало.

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

В качестве аналога iTunes Store предлагается Amazon Store. Работает похоже (можно послушать и купить). Богатство ассортимента я не сравнивал пока (хотя догатываюсь, i-кто победит).

Явные пройгрыши айфону.

Тач-скрин не поддерживает так называемое мульти-нажатие, к которому так привыкаешь в айфоне (очень удобно для zoom'а). В Нексусе zoom сделан просто — делаешь двойной клик на экран, и возникают полупрозачные кнопки "+" и "-". Кстати, надо отметить, что браузер в Nexus мне понравился больше, чем в айфоне, несмотря на отстутствие мульти-тача для увеличения/уменьшения. По умолчанию отображается сайт по всей ширине (горизонтальная ориентация, конечно, тоже есть), и при двойном клике на экран браузер каким-то удивительным образом подбирает размер шрифта для комфортного просмотра.

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

Также интересная деталь: в айфоне количество настроек в целом (меню Settings, например) разительно мало, по сравнению с Windows Mobile (скажите, кто не употреблял матерных слов, пытаясь настроить GPRS или Dial-up в смартофоне Windows?) — дают настраивать только что, реально надо настраивать. Так вот: в Нексусе настроек еще меньше.

Замеченные реальные глюки.

Пока я нашел только один — самопроизвольное переключение с wifi на EDGE (я уже читал, что это многими замеченный глюк). Лечится выключением и включением wifi (благо есть просто иконка на десктопе). Будем ждать обновления прошивки.

Пока все. На этом закончились мои первые несколько часов наедине c Nexus.

В целом вывод такой: возможности заменить им айфон пока точно нет, но степень интеграции с гугловскими сервисами и открытось платформы для разработки очень подкупают. Так что для не-фанатов гугла — может имеет смысл подождать, но для любителей гаджетов и поклонников Андроида — отличная игрушка, обеспечащая вам достаточный уровень красноты в глазах.

Постараюсь и далее рапортовать моих интересных находках в Google Nexus.

четверг, 19 ноября 2009 г.

Google Chromium OS теперь open source

http://blog.chromium.org/2009/11/hello-open-source-developers-would-you.html

Удивительное дело, что еще остались люди, которые сомневаются, что open source - это единственная модель, с которой можно выживать при современном объеме и сложности софта.

Но вернемся к теме.

Chromium OS - загрузка за 4 секунды до получения браузера. Ну а параллельно можно грузить винды в виртуальную машину.



Вобщем, понеслась.

четверг, 12 ноября 2009 г.

Приглашения в Google Wave

Есть десяток приглашений в Google Wave.

Выдам все желающим в порядке поступления запросов. Естественно, имеет смысл только при наличии ящика на GMail'е, поэтому просьба указывать гугловский адрес, куда высылать приглашения.

Как показывает практика, реально после высылки приглашение приходит не сразу (может занять пару дней), так что надо потерпеть.

И еще -- делитесь сами приглашениями, если они у вас есть или будут. Wave хорош, когда там есть люди.

среда, 11 ноября 2009 г.

Code review

Code review бесспорно является одним из ключевых моментов правильно организованного процесса разработки и поддержки софта.

Из лично опыта могу сказать, что весьма часто вторая пара незамутненных многочасовым смотрением на данный исходник глаз моментально замечает лажу, и в очередной раз удается избежать ночной fuck up, когда начинают валить письма от системы ночного тестирования, что туча QА тестов сломана из-за глупого недосмотра.

Perforce - отличная система для работы с реально большимы объемами репозиториев и кодовой базы в целом, но в ней нет встроенного механизма для code review. Google решили эту проблему сами.

В данном видео небезызвестный Гвидо ван Россум рассказывает о системе Mondrian, построенной на основе Perforce, которая применяется в Google для процесса code review.

Также мельком упоминается идея организации работы с исходниками в Google в общем. Например, что практически каждый инженер работает с огромным общим для все остальных разделом NFS, что позволяет видеть сразу, что происходит в других проектах.

четверг, 3 сентября 2009 г.

Google Code Jam Qualification Round 2009

Остается еще часов двенадцать до окончания квалификационного раунда Google Code Jam 2009.

Выполнив задачи A (Alien Language), B (Watersheds) и малую размерность задачи C (Welcome to Code Jam) я успешно сел в лужу на большой размерности задачи С. У меня там и не пахло отведенными 8 минутами на прогон данных. Сейчас ищу проблему, но поезд ушел -- на решение большой размерности дается только одна попытка.

Традиционный вывод: Good algorithms are better than supercomputers.

В итоге, пока я на почетном пенсионерском 1784-ом месте с 76-ю баллами (под именем begoon) из около 5700 всех участников.

Радует, что в топовой двадцатке три российских флага.

Хотя пишут, что для прохода в первый раунд надо только 33 балла, то есть фактически только одна полностью решенная задача, решения больших размерностей не проверяются в онлайне, и окончательная оценка будет только после окончания квалификации.

Забавно, через 3-4 часа после начала забега у них там что-то упало, и нельзя было скачать задания. Быстро все починили, но продлили время для участников на пару часов.

Кто-нибудь учавствует?

пятница, 17 июля 2009 г.

Дизассемблер как метод уменьшения размера обновлений

Интересующихся попытками сделать жизнь лучше, рекомендую к прочтению интересный документ от инженеров Google на тему минимизации размеров обновлений для браузера Chrome.

Google очень радеет за безопасность своих продуктов. Например, для браузера Chrome - это значит регулярные обновления. А кому охота каждый день качать по десять мегов, даже если там весьма критическое обновление. Поэтому разработчики Chrome делают все, чтобы сократить размер пересылаемых по сети данных.

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

Но теперь к самому интересному. Что происходит, когда найден досадный баг и сделано исправление, например:

Было:
...
if (packet_size < 1024) ...
...
а стало:
...
if (packet_size > 10 && packet_size < 1024) ...
...
Исправили всего одну строчку. Но после компиляции и линковки результирующий файл будет радикально другой: съедет таблица символов, где-то изменится выравнивание, возможно линкер из-за этого изменит размещение сегментов и т.д. Море факторов, из-за которых самое минимальное изменение исходного текста приведет к глобальному изменению результирующего исполняемого файла.

Что делать? А что, если в обновлении посылать модуль не в двоичном виде, а в виде исходного текста? Тогда изменение (diff) будет совсем небольшое.

Конечно, посылать нормальный исходный текст и компилировать его на стороне клиента пока несколько затруднительно. Не у всех установлена Visual Studio.

Инженеры Google придумали технологию Courgette. Суть ее в том, что посылаются изменения на уровне не оригинального исходного текста, а на уровне ассемблера. Для формирования обновления скомпилированный исполняемый файл дизассемблируется. Тоже самое делается для предыдущей версии файла. Затем производится поиск изменений в текстовом виде (например, тем же стандартным diff'ом). И этот текстовый файл и является, собственно, обновлением. Затем он пересылается пользователю. На стороне пользователя текущий исполняемый файл тоже дизассемблируется, изменяется на основе принятого файла изменений (diff'а) и снова ассемблируется.

Старая схема с bsdiff'ом работала так:
  сервер:
изменения = bsdiff(оригинал, обновление)
передать изменения

клиент:
принять изменения
обновление = bspatch(оригинал, изменения)
Теперь это работает так:
  сервер:
ассемблер_оригинал = дизассемблировать(оригинал)
ассемблер_обновление = дизассемблировать(обновление)
ассемблер_обновление_кор = коррекция(ассемблер_обновление, ассемблер_оригинал)
ассемблер_изменения = bsdiff(ассемблер_оригинал, ассемблер_обновление_кор)
передать ассемблер_изменения

клиент:
принять ассемблер_изменения
ассемблер_оригинал = дизассемблировать(оригинал)
ассемблер_обновление_кор = bspatch(ассемблер_оригинал, ассемблер_изменения)
обновление = ассемблировать(ассемблер_обновление_кор)
Для успешной реализации дизассемблер должен располагать таблицей символов со стадии нормальной линковки исполняемого файла. Также на специальном шаге коррекция производится оптимизация ассемблерного кода для минимизации последующих различий с предыдущей версией путем группировки неизмененных частей.

А вот и результаты на примере единичного обновления Chrome'а:

МетодРазмер обновления
Полное обновление10,385,920
Обновление bsdiff'ом704,512
Courgette метод78,848

Неплохо, да?

Вот такой вот хитрый план у разработчиков Chrome. Обещают рассказать особенности реализации, как только все будет готово.

Данный пост является вольным переводом статьи, ссылка на которую дана в начале. Уж больно меня зацепила эта тема.

среда, 15 июля 2009 г.

Руководство для начинающих по Google Test

Выложил на Google Code свой перевод руководства для начинающих по Google Test.

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

На отдельной странице будет общий список ресурсов о Google Test на русском языке. Очень пришелся кстати мой недавний пост о новшествах версии 1.3.0.

В планах перевод остальных документов.

В процессе работы над текстом перевода, у меня родилось вот такое небольшое лирическое отступление.

Я последнее время увлекся различными механизмами верстки при помощитекстовых языков разметки. И я не про HTML. Я говорю о таких вещах, как простые Wiki-диалекты, и заканчивая целым миром верстки под названием TeX. Периодически покуриваю на ночь документацию с http://www.ccas.ru/voron/latex.html. Начал я с совершенно дивного коротенького справочника, где сухо и сжато перечислены базовые элементы языка верстки LaTeX c примерами.

Например, моя любимая задача линейного программирования:



будет записываться так:
\[
\max_{n\in R}\sum_{j=1}^n
c_jx_j
;\;
\sum_{j=1}^n a_{ij}x_j\leqslant b_i, (i=1,\;2,\;\ldots,\;m)
\]
Если вы хотите в онлайне проиграться с набором формул в LaTeX, то рекомендую заглянуть сюда. Там, правда, не поддерживаются русские буквы в теле LaTeX команд, но для экспериментов это не проблема.

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

Безусловно, Ворд развивается семимильными шагами от версии к версии, оттачивая механизм стилей, без которого верстать что-то длинее десяти страниц вообще неудобно, но как же ему далеко от гибкости, которую придумали и реализовали в TeX десятки лет назад. К тому же чисто текстовое представление документа позволяет хранить его под контролем версий и удобно отслеживать изменения.

А объем и общая сложность документа моей диссертации была на порядки меньше любой технической книги даже среднего размера, особенно где много формул.

Вобщем, набивая перевод документации по Google Test, я просто отдыхал душой и попискивал от удовольствия, так как все происходило в Wiki-разметке в разделе документации проекта на Google Code.

Мечта - очень хотелось бы, чтобы когда-нидудь Blogspot реализовал бы альтернативный ввод постов с использованием Wiki-разметки, а не HTML. Хотя бы также, как это работает на Google Code. Ну а если еще и контроль версий будет, тогда вообще бесконечное счастье наступит.

Так если разобраться, единственная причина, почему нельзя вести блог прямо на Google Code в разделе Wiki - там нет трансляции постов в виде временной ленты. Если бы можно было в теле постов Блогспота на лету импортировать тест из документов Wiki c Google Code, то можно было бы удобно писать посты с применением Wiki-разметки и контролем версий, а отображать их в блоге.

Я, например, редко пишу в блог посты на 2-3 строчки. Обычно это крополивая работа по набивке, верстке, подгонке картинок, общего вида и т.д. И каждый пост это по сути законченный документ, к которому иногда возвращаешься, что-то исправляешь, добавляешь и т.д. И тут все прелести удобной итеративной работы с текстом выходят на первый план.


Посты по теме:

среда, 8 июля 2009 г.

Google C++ coding stantard прямо в Visual Studio

Многие читали стандарт кодирования на С++ от Google.

Для себя я его давно использую, а на работе удалось продавить его фрагменты в наш внутренний стандарт.

В качестве приятного бонуса Google раздает задорную утилитку cpplint, для быстрой проверки исходника на С++ на соответствие правилам и для генерации отчета, понимаемого средой разработки (например, Visual Studio). Написана она на Питоне, так что для ее использования его надо установить.

Я прикрутил cpplint себе в Студию, чтобы можно было проверять исходники прямо в редакторе.

cpplint имеет несколько десятков checker'ов, их можно опционально отключать. Я отключил только три:
  • Проверку на использование #include без указания относительного пути, например #include "one.h" вместо #include "path/to/lib/one.h". Правило очень разумное, так как исключает перехлест заголовочных файлов с одинаковыми именами в разных подсистемах, но у меня уж больно много, где надо менять.
  • Проверку на формирование имени защитного #define'а в начале заголовочного файла. У меня свое правило именования, и оно меня устраивает.
  • Проверку на неиспользование потоков в STL. Я потоки использую, поэтому отключил.
Итак, получился скрипт cpplint.cmd:
C:\Python25\python.exe %~d0%~p0cpplint.py ^
--filter=-build/include,-build/header_guard,-readability/streams ^
--output=vs7 %1 %2 %3 %4 %5 %6 %7 %8 %9
Можно его из командной строки вызывать, но из Студии интереснее.

Итак, Menu->Tools->External Tool..., жмем Add и далее как на картинке (пути подправить по вкусу):



Теперь, прямо в редакторе жмем ALT-T,C,ENTER и снизу окне результатов получаем отчет. Кликая на его строки можно скакать по исходнику.

Лично я считаю, что порядок в исходниках напрямую связан с порядком в голове его автора.

Google Chrome OS

Удивительное дело, как Google умудряется без предварительного шапкозакидательства в стиле Microsoft делать удивительно грандиозные вещи: Chrome, Android, Native Client, а теперь еще и Google Chrome OS.

Обычно я не комментирую новости, но тут не мог стерпеть.

вторник, 23 июня 2009 г.

The Myth of the Genius Programmer

Лично разделяю каждое слово в данном видео. Удивительно как то, что пытаешься донести до людей сам каждый день, собрано в одном видео.



Кстати, вопросы в конце тоже весьма и весьма полезны для обдумывания.

Лично для себя вынес, что code review в большинстве случаев гораздо эффективнее парного программирования.

Есть у меня мысль заправить это видео на наш очередной пятничный образовательный просмотр.

суббота, 6 июня 2009 г.

Архитектура Mercurial на Google Code

После Google I/O Mercurial стал доступен на Google Code в публичном доступе наравне с Subversion.

Весьма занимательное видео, рассказывающее некоторые подробности о внедрении Mercurial на Google Code. Почему именно Mercurial, а не Git или Bazaar, какие особенности именно у Mercurial, отличающие от конкурентов (я, например, не знал, в Mercurial хеш-идентификатор каждого коммита задействует не только метаданные, но и само содержимое файлов, что конкретно ограничивает возможности "переписывания" истории, хотя с точки зрения гугловцев это преимущество, нежели недостаток), и, собственно, как все это легло в инфраструктуру Google.




Посты по теме: