Скороговорки для программистов

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

Вот эти операторы:

  • !~
  • =~
  • !~#
  • =~#
  • !~?
  • =~?

А можно их еще разбавить цифрами. При наборе нужно использовать цифры на верхнем ряде клавиатуры, а не на отдельном блоке:

  • «1»!~#»3″

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

Скоронабиралку можно еще усложнить:

  • a1!~#»3″&& &shell!~?a:{1}

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

Марк Лутц. Изучаем Python

Дочитал книгу Марка Лутца «Изучаем Python», выход которой ждал еще с ноября прошлого года. Книга, как и ожидал, оказалась просто отличная, особенно понравилась манера изложения автора. Похоже именно так и надо писать технические книги.

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

Например, в главе, посвященной общей работе интерпретатора, начинается все с того, как вообще можно запускать скрипты (двойной клик, командная строка и т.п.), затем рассказывается о том как работает виртуальная машина Python, какие файлы и когда она создает, а затем рассказывается о разновидностях Python — CPython, IronPython, JPython, после чего коротко говорится о способах ускорения скриптов с помощью сторонних библиотек (Psyco, Shedskin C++) и кратко упоминает библиотеки для создания полноценных exe-шников (py2exe, PyInstaller и Freeze). В конце каждой главы находится раздел, где автор описывает возможные ошибки при использовании элементов языка, рассмотренные в текущей главе. Некоторые моменты Лутц повторяет по несколько раз для тупых в течение одной главы, но это не раздражает, а новичкам, думаю, это должно сильно облегчить понимание.

Благодаря такому подходу книгу будет интересно читать и тем, кто с Python уже знаком. Я, например, в книге выяснил для себя вопрос, который меня давно волновал: является ли класс list связанным списком. Оказалось, что нет, внутри языка это обычный массив, в некотором роде аналог std::vector из C++. За одно я узнал о существовании некоторых конструкций вроде «a < X < b«. Некоторые конструкции, которыми пользовался до этого, стали казаться более логичными, чем до прочтения книги. Да и вообще появилось ощущение, что все элементы языка выстроились в законченную мозаику.

Понравилось, что Лутц постоянно сравнивает элементы языка Python с похожими элементами других языков (в основном C). Кроме того автор постоянно делает сноски на возможности Python 2.6 и 3.0, которые еще только планировались, когда писалась книга, и в то же время он пишет в какой версии языка появилась та или иная фича.

Из недостатков могу назвать только цену книги. Я ее покупал на Савелке за 1100 рублей, а, как потом выяснилось, в Интернет-магазинах ее продают за 800 рублей. Я эту книгу покупал нам на кафедру, но теперь подумываю купить ее и себе домой. А может быть просто дождусь, когда ее выложат в инет 🙂

В общем, книга на твердую пятерку и на нее можно ставить штамп «маст рид». Теперь хотелось бы прочитать еще книгу того же Лутца «Programming Python», но, к сожалению, на русский ее не переводили, а дойдут ли руки до оригинала не знаю.

PS. Оказывается, «Programming Python» все-таки переводили на русский — http://www.ozon.ru/context/detail/id/1299270/. В электронном виде ее выложил Gluek у себя в блоге.

EQATECProfiler. Бесплатный профайлер для .NET

EQATECProfiler. Бесплатный профайлер для .NET

На днях искал чем можно потестировать программу, написанную на C#, в плане узких мест по производительности, и с удивлением наткнулся на бесплатный профайлер с заковыристым названием EQATECProfiler. Этот профайлер отказался очень простым в использовании и поэтому очень удобным, чтобы определить на скорую руку в каком месте программа больше всего тормозит. Официальный сайт программы расположен здесь. Там же есть ссылка на страницу скачивания. Чтобы скачать программу надо оставить свой e-mail, на который пришлют ссылку на другую страницу, с которой можно будет скачать профайлер. На вопрос о том почему разработчики сделали EQATECProfiler бесплатным, на этой странице они отвечают, что хотят понять на сколько востребован такой продукт (именно поэтому они собирают статистику скачиваний), так что не факт, что программа останется бесплатной и в будущем. Я думаю, что лучше всего показать работу EQATECProfiler’а на каком-нибудь простом примере. Читать далее ‘EQATECProfiler. Бесплатный профайлер для .NET’ »

Qt будет под LGPL

Хм, не ожидал такого от Нокии, но она пообещала, что Qt 4.5 будет под лицензией LGPL вместо GPL. Что ж, надо будет поближе пощупать Qt.

Любопытная новость, думаю, что про это теперь будут передавать в программе Время писать везде,  подробности, например, можно почитать здесь.

Крис Андерсон. Основы Windows Presentation Foundation

Не смотря на то, что я до сих пор пишу под .NET Framework 2.0 и перехода на более новые версии платформы пока не предвидится, давно поглядываю в сторону библиотеки Windows Presentation Foundation (WPF), которая до релиза называлась Avalon. Для ознакомления с новой библиотекой от MS я и приобрел когда-то книжку Криса Андерсона «Основы Windows Presentation Foundation«.

Книга является хорошим пособием для тех, кто только собрался изучать WPF или хотя бы пощупать что она из себя представляет. Те, кто уже имел дело с этой библиотекой, скорее всего смогут найти более продвинутую книгу. Эту книгу можно рассматривать как большой обзор возможностей библиотеки WPF, в котором нет подробных описаний отдельных классов и внутреннего устройства библиотеки, но зато подробно рассматриваются примеры использования, после которых становится понятно в какую сторону копать MSDN. Вся книга по сути состоит из одних примеров, причем одну и ту же программу автор часто пишет несколькими способами, постепенно изменяя исходный пример.

Читать далее ‘Крис Андерсон. Основы Windows Presentation Foundation’ »

NetBeans IDE for Python

NetBeans IDE for Python

Недавно вышла новая версия NetBeans IDE 6.5 и, в том числе, и сборка под названием NetBeans IDE for Python. Вообще с различными IDE для Python у меня как-то не складывается, и я в последнее время использую только редактор SciTe, но по возможностям мне нравится связка Eclipse + Pydev, но как же она тормозит… да и оперативку съедает только так. Не смотря на то, что NetBeans тоже написана на  Java, решил все-таки посмотреть что там к чему.

Как ни странно, оказалось, что IDE работает сравнительно шустро, и аппетиты к оперативке у нее умеренные — если открыть несколько проектов по одному файлу в каждом, то процесс занимает около 100 Мб. Поэтому я решил поподробнее познакомиться с этой IDE.

Читать далее ‘NetBeans IDE for Python’ »

Новая книга по Python

В декабре обещают издать новую книгу по языку Python, которую написал М. Лутц, а точнее третье издание его книги «Изучаем Python». Полистал содержание и выложенную одну главу вот здесь, имхо, очень даже интересно. Как только она выйдет, надо будет купить, по крайней мере если не домой, то нам на кафедру точно.

А то у нас я одного студента почти заинтересовал Питоном, но чтобы предложить ему что-нибудь почитать в бумажном виде, под рукой не было никакой нормальной книги. Единственная бумажная книга, которую мне в свое время удалось разыскать была «Освой самостоятельно Python за 24 часа» И. Лейнингема. Если честно, очень такая средненькая книжка, может быть для начала и ничего, но в целом мне не понравилась.

Судя по всему книга Лутца должна быть намного интереснее книги Лейнингема. От корки до корки читать ее я вряд ли буду, но некоторые главы не мешало бы прочитать.

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

Python 2.7?

Python 2.7?

Похоже, что нас ждет еще и Python 2.7. По крайней мере на официальном сайте появились страницы с названием What’s New in Python 2.7 и Python 2.7 Release Schedule. Обе страницы пока еще ничего кроме заголовков не содержат, но само их появление настораживает.

Я думал, что после версии Python 2.6 разработчики переключатся на Python 3.0.

Qt Creator. Интегрированная среда для Qt

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

Читать далее ‘Qt Creator. Интегрированная среда для Qt’ »

Полку дотнетчиков прибыло

Сегодня одним дотнетчиком стало больше, хотя сначала мы с потерпевшим поехали в магазин выбрать ему книжку по C++, а ушел он с книжкой про C#. Но я в этом не виноват… почти .

Началось все с того, что коллега решил неожиданно изучить C++ и попросил помочь ему выбрать книжку. Поехали в книжный, среди нескольких кирпичей выбрали один, страниц на 800 (а именно это). Судя по оглавлению, хорошая книжка — основы языка, ООП, шаблоны, STL, в общем, полный набор. Я думал, что на этом все и закончится, и со спокойной душой пошел к другому шкафу посмотреть книжки для себя.

Но не уследил. Стоило отойти от приятеля на пару минут, как он приносит какую-то подозрительно тонкую книженцию с надписью «Visual C++ 2008» на обложке и говорит Ларису Ивановну хочу, что хочет купить эту книжку. Почуяв недоброе, листаю книжку и  действительно оказывается, что она про Managed C++.

Опасаясь за рассудок приятеля после изучения этого языка (когда я впервые увидел ЭТО в какой-то из статей, у меня от одного синтаксиса шерсть дыбом встала), попытался ему объяснить, что это не тот C++, но он упирался, говорил, что ему нужно именно ЭТО, потому что там написано как делать окошки и рисовать в них графики, а в той книжке по C++ этого нет. Попытался объяснить ему, что в той книжке этого не будет, потому что в стандарте ничего не написано про рисование окошек, и ему после 800-страничного талмуда придется изучать еще библиотеку для создания интерфейсов, после чего приятель окончательно захотел изучить именно Managed C++.

Не знаю каким образом, но его все-таки удалось уговорить изучать хотя бы C#, а не тот ложный C++, который уже начал оказывать на него тлетворное воздействие, и в итоге он купил книгу Троелсена.

Поэтому, господа присяжные заседатели, я признаю тяжесть своего поступка, но не вину. По-другому я не мог поступить в подобной ситуации, иначе коллега мог встать на скользкую дорожку Managed C++, а я бы винил себя за это всю оставшуюся жизнь.

Надеюсь, что суд учтет все обстоятельства дела и вынесет справедливый приговор.