суббота, 11 июля 2009 г.

[life] Блог Million.ша и не только

Мне сегодня повезло – в моем блоге засветилась комментарием Uma Barzy, автор блога Million.ша. Ее блог оказался очень интересным. Так что это таки реклама блога Million.ша ;)

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

Фотографии природы Камчатки

Коллекция “обоев” с морскими животными

Коллекция фотографий очень красивых закатов

Список самых дорогих в истории фотографий

(конкретно эта была продана в 2006-м году за $1470000)

И еще много всего!

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

[life.humour] Гоблин разносит в пух и прах Терминатор 4

Этот обзор мне понравился гораздо больше, чем сам фильм :)


(c) Tynu40k Goblina

[life.humour] Ролики MS Office 2010

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

[prog.bugs] C++: “a” + 2?

Сколько раз в священных войнах по поводу разных языков программирования обсасывался аргумент, что хорошие статически-типизированные языки не позволяют складывать строки с числами? И C++ не самый плохой статически-типизированный язык. Казалось бы, что в нем это невозможно. Однако:

#include <iostream>
#include <string>

int main() {
 std::string a( "1" );
 std::string b( "2" );

 a += b.size();
 std::cout << a << std::endl;
}

Этот код вполне себе работает :( Проверял на Visual C++ 7.1 и GCC 4.3.2. Видимо, size_t автоматически конвертируется к char, после чего вызывает operator+=(char).

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

четверг, 9 июля 2009 г.

[comp.prog] Интересная статья о проектировании интерфейса Lock на Scala

Jorge Ortiz: Pimp My Lock: A case study in Scala API design – статья, в которой показывается, как используя возможности языка Scala создать интерфейс Lock, более удобный в использовании, чем аналогичный ему интерфейс из Java. (Для понимания статьи желательно иметь общие представления о языке Scala.)

После ее прочтения у меня в сухом остатке оказались три вещи:

1. В статье показано, как в языке с лямбда-функциями (блоками кода) можно обходиться без идиомы RAII. Не могу сказать, что отсутствие RAII – это хорошо. Но уж если его в языке нет, но есть удобная возможность оформления блоков кода (как в Scala и Ruby), то можно жить и вот так.

2. На мой взгляд, статья демонстрирует, что чем богаче язык, тем сложнее приходиться в проектировании общеупотребительных библиотек. Проблема “богатства выбора” и все такое :)

3. Гибкость языка и богатые выразительные способности все-таки усложняют восприятие кода. Вот, например, смотрит человек с посредственными знаниями Scala на фрагмент:

lock.attemptFor(10.minutes) {
    // blocking (with timeout) attempt at access
    // to shared resources
  } getOrElse {
    // code to execute if attempt fails
  }

и пытается понять, что же такое getOrElse и к чему он относится. Насколько быстро ему это удастся?

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

[life.photo] А ведь фотографам сейчас трудно :(

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

Например, вот так:

Фотограф – Алена Морева, г.Гомель.

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

[comp.concurrency] Apple замутил какую-то штуку под названием Grand Central Dispatch

В своей новой операционке Snow Leopard компания Apple реализовала какую-то штуку для облегчения создания многопоточных программ под названием Grand Central Dispatch (GCD). С ходу найти какую-нибудь документацию на эту тему или примеры кода я не смог. На поверхности лежит только рекламный буклет Grand Central Dispatch: A better way to do multicore.

Насколько я смог понять, суть всего этого дела в следующем: синтаксис языков C, Objective-C и C++ расширяется для поддержки специальной конструкции – блока кода. Блоки содержат код, который может исполняться на своем контексте. Блоки провязываются с помощью очередей. Распределяются блоки на исполнение с помощью диспетчера ОС, который рулит пулами потоков. И вот этот самый диспетчер + еще несколько инструментов для отладки и профилирования подобных программ являются неотъемлемой частью Mac OS X Snow Leopard.

Такие вот дела. Нужно будет последить за этой темой. Интересно будет взглянуть на исходники примеров использования GCD.

PS. Ну когда же появится C++0x с лямбдами. Можно было бы агентов в SObjectizer в виде C++ных лямбд попробовать представить… :(

понедельник, 6 июля 2009 г.

[comp.prog] Дифирамбы Scala от создателя Groovy

Недавно на RSDN я сделал следующий прогноз относительно языка Scala:

На мой далекий от Java взгляд, перспективы у Scala стать новым мейнстримовым языком на JVM, гораздо выше, чем у Nemerle/F# на .NET. Поскольку Java сейчас производит впечатление умирающего языка (Java 7 все никак не могут выпустить на фоне поглощения Sun-а Oracle-ом), тогда как C# очень активно развивается.

И вот в ту же тему ода языку Scala от разработчика Groovy.

Though my tip though for the long term replacement of javac is Scala. I'm very impressed with it! I can honestly say if someone had shown me the Programming Scala book by by Martin Odersky, Lex Spoon & Bill Venners back in 2003 I'd probably have never created Groovy.

Кстати, этот же блог-пост интересен еще и тем, что в его конце найдется с десяток ссылок на различные материалы о языке Scala.

[life] Очередной сдвиг по фазе: байки иммигрантов “уже не торкают”

Я сегодня злой. Потому что не выспался. Я не выспался потому, что пришлось ночью дежурить. А дежурить пришлось потому, что в ночь с 5-го на 6-е июля (т.е. с воскресенья на понедельник) наш VIP-клиент захотел заменить ПО на своей стороне. И чтобы предупредить нас, он сочинил соответствующий факс. Факс от 2-го июля. Который к нам прибыл утром 3-го июля. Утром в пятницу мы узнаем, что в ночь на понедельник нам предстоит помогать клиентам обновлять ПО. В сезон летних отпусков. Очень крутые впечатления, когда в конце рабочей неделе узнаешь, что на выходных клиент запустит новое ПО, которое сможет нагружать нас в три раза сильнее, чем раньше. И если мы захотим что-то подкрутить на своей стороне, то у нас есть куча времени – целый один рабочий день и два выходных. Настоящий VIP-подход, ничего не скажешь.

Так вот в районе 3-х часов ночи, в ожидании возобновления потока транзакций, решил прочитать какую-то очередную иммигрантскую байку о том, как там за бугром дело обстоит с… Ну да не важно с чем. Важно другое – до меня вдруг дошло, что я ничего-то особенного и не читаю. По сути, обычные житейские проблемы, но в другом антураже.

Это было сильно. Внезапно я понял, что у меня пропал какой-то пиетет перед подобными рассказами. Раньше казалось, что все это так интересно. Что рассказчики какие-то особенные. Что люди чего-то в жизни добились и это делает их какими-то другими… А сейчас этот пиетет просто взял и ушел куда-то.

Как будто какая-то страница оказалась перевернутой. Раньше было: “Вау! Чувак получил автомобильные права в Канаде. Вау! Чувак прогулялся по Сеульскому парку. Вау!” А теперь: “Ну и что? Ну получил, ну прогулялся. Ну и фиг с ним. Не он первый, не он последний”.

Вероятно, во мне еще сильно впечатление о том, что все западное гораздо лучше нашего. Это впечатление было впитано в детстве, когда эта разница была видна на каком-то мелком, бытовом уровне. Например, аудиокассеты BASF или Sony против наших МК :)

Потихоньку это впечатление из организма выветривается. Ну да, кассеты BASF хорошая штука, ну и что? Вот так и с иммигрантскими байками. Ну да, иногда они интересные и поучительные. Ну и все. Какого-то впечатления “откровения от многого добившегося в жизни чувака” они для меня уже не имеют. Наверное, это хорошо.

Интересно, что будет дальше? Пока еще сохраняется некий пиетет перед самими иммигрантами. Хотя бы из-за того, что они смогли освоит иностранный язык. Чего я вообще вряд ли достигну. Ну еще можно отдать должное их смелости сорваться с места. Ну и что?