Очередная порция меня на YouTube

Выложил на YouTube еще 4 гитарных видео:

  1. Романс о романсе. О нем речь уже шла вот тут.
  2. Joy of Bossa Nova чешского композитора Jiří Jirmal. Эту же композицию видел под названием Shiny Day. Здесь можно посмотреть и послушать, как ее играет автор.
  3. Nuages Джанго Рейнхардта. Рекомендую также к просмотру в исполнении Rosenberg Trio.
  4. Suite Azure, часть 2: Danza. Это еще одна композиция by Jiří Jirmal.

Чему поучиться у ExtJS

Вступление

Вчера меня снова потянуло на ExtJS. Видимо, жарища так влияет. Поковырявшись в интернете, я нашел черновую версию книги ExtJS in Action, загрузил ее в свой Sony Reader и стал читать. После прочтения трех первых глав пришло осознание того, насколько красиво там сделаны некоторые базовые вещи. В этой статейке я остановлюсь на двух моментах.
Читать далее »

Должен ли “плюс” быть коммутативной операцией?

Недавно посмотрел видеозапись выступления А. Степанова в Яндексе. В своей лекции он мечтает о том, что когда-то все алгоритмы будут объединены в некий центральный каталог, и никто не будет изобретать велосипеды в своих программах. Спору нет, идея отличная, хотя и утопия.

Но чтобы (говорит мэтр) такой каталог был возможен, надо, чтобы каждая операция (сложение там, умножение…) имела четко определенную семантику. И один из спорных моментов касается операции “плюс”. Степанов хвастается, что ни разу в жизни нигде не сделал ни одного не-коммутативного плюса. Плюс должен быть коммутативен, точка. Действительно, перестановочному закону учили еще в первом классе школы: “при перестановке слагаемых сумма не меняется”, a + b = b + a.

Очевидно, что "сложение" + "строк" немедленно оказывается за рамками всей этой красоты. И подписка на события в C# (obj.Changed += myFunc) тоже. Получается, что Perl и PHP молодцы, потому что складывают строки $вот . $так, а другие языки нарушают свойства абелевых групп, и их разработчикам должно быть стыдно.

Но правильно ли все это? Действительно ли коммутативность должна быть главным свойством сложения?

Для обычного человека (в том числе и для рядового программиста, который и слышать не слышал ни о каких абелевых группах) основное свойство сложения, интуитивно понятное, заключается в том, что в результате что-то объединяется. Было у Леши 2 яблока, а у Сережи 3 - сложили и получили 5. К ста рублям прибавили 200 и получили 300. Было две строки - сложили и получили одну длинную. Был обработчик события - прибавили к нему еще один и получили составной обработчик.

Так что, несомненно, А. Степанов крутой чел, но при всем уважении позвольте закончить статью вот этой ссылкой.

ASP.NET MVC - как использовать вместе с WebForms

Все-таки нельзя сказать бескомпромиссно, что ASP.NET MVC - это круто, а ASP.NET WebForms - полный сакс. Сильные и слабые стороны есть как у первой, так и у второй технологии.

Вполне логично иметь публичную часть веб-проекта на MVC, организованную по всем канонам семантической верстки и accessibility (как, например, stackoverflow.com), а внутренний админский интерфейс, состоящий преимущественно из скучного CRUD-а, сделать на WebForms с использованием облегчающих жизнь компонентов вроде ASPxGridView и ASPxTreeList.
Читать далее »

Castle ActiveRecord - какая красота!

В последнее время я все гляжу в сторону Castle Project. Наконец, дошли руки поиграться с ActiveRecord.

Говорят, что термин ActiveRecord придумал вездесущий Фаулер. Этот паттерн используется в Ruby on Rails и в других MVC-каркасах. Подробности можно поискать в гугле.

Castle Project предлагает на безвозмездной основе реализацию ActiveRecord, которая вызвала у меня восторг.
Читать далее »