Джеффри Фридл «Регулярные выражения»

regularТолько что дочитал книгу Джеффри Фридла «Регулярные выражения». Если говорить коротко, то издательство O’Reilly держит планку, книжка стоящая.

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

Вторая часть посвящена обсуждению обработки регулярных выражений. Здесь описывается работа трех типов механизмов регулярных выражений, которые встречаются: так называемые недетерминированный конечный автомат (НКА), детерминированный конечный автомат (ДКА) и POSIX НКА. В основном книга посвящена работе с НКА, который применяется в большинстве распространенных языках программирования (C#/VB.NET, Java, Perl и присутствует в PHP в виде функций preg).

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

В четвертой части подробно описываются возможности разных языков и сред (Perl, Java, .NET, PHP), касающихся работы с регулярными выражениями. На обложке еще упоминается Ruby, но в книге он затронут вскользь, но так же мельком проскакивает и Python с Tcl. Хотя я и не пишу на Perl’е (и надеюсь, что в ближайшее время не буду :)), но главу, посвященную только этому языку прочитал с удовольствием, интересно было узнать что в нем такого есть, чего нет в других языках.

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

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

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

Замена Qip — qutIM

Замена Qip - qutIM

На днях вышла 0.2-я версия многопротокольной проги для мгновенного обмена сообщений (IM) qutIM, я решил его поподробнее рассмотреть. Разработчики qutIM поставили перед собой отличную идею — сделать кроссплатформенную Миранду, в том смысле, что в этом IM тоже все сделано на плагинах, но, в отличие от Миранды, здесь кроме винды поддерживаются Linux и Mac. Я, правда, эту прогу пробовал только под Винду.

Из протоколов qutIM в данный момент может работать с ICQ, Jabber, IRC, Vkontakte.ru, Mail.ru, кроме того с официального сайта можно скачать плагин для Twitter’а.

Читать далее…

Парад триала на Красной площади

Давно я что-то не ходил смотреть (читай фотографировать) велотриал. Если пару лет назад постоянно ходил на их соревнования, то в прошлом году не был ни на одном. Надо срочно исправлять это недоразумение.

Только что решил пройтись по триалистским сайтам и увидел, что как раз в это воскресенье будет некий «Парад триала», чем он отличается от обычных соревнований понятия не имею, но хочется верить, что если и отличается, то не в худшую сторону.

Время проведения — с 10 утра до 8 вечера, но уж не знаю когда будет самое интересное, обычно оно бывает ближе к концу.

Еще интересно как это все будет организовано, насколько близко подпустят зрителей и удастся ли вообще близко подойти из-за толп народу, которые постоянно образуются на Красной площади.

Чуть более подробная инфа про мероприятие есть здесь.

История развития электродинамики. Уравнения Максвелла

Мозилловцы отожгли

Сегодня вслед за Firefox 3.5 beta 4 вышел Firefox 3.5 beta аж 99. Правильно, чего уж мелочиться с числами. Как говорят на официальном форуме, скоро должен выйти релиз-кандидат, а эту бету можно считать релиз-кандидатом для релиз-кандидата.

Ссылку на скачивание на оф. сайте что-то не нашел, там лежит еще beta 4, но скачать 99-ку можно отсюда, да и в обновлениях она уже появилась.

Котяра

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

Читать далее…

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

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

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

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

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

  • «1»!~#»3″

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

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

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

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

Twitter-клиент uTweetMe

Ну что ж, продолжим тему твиттера.

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

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

utweetme_09

Читать далее…

Вороненок

Сегодня сходил на очередную прогулку ЖЖ-ов из сообщества [ljcomm]idu_shagayu[/ljcomm] под руководством Галины Алексеевны. Прогулка была недалеко от моего дома по Крылатскому, но эта запись даже не о самой прогулке.

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

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

Дальше будет несколько фотографий.

Читать далее…

Дачное. Наболело

Ненавижу дачу. Дача — это самое страшное, что может случиться с ни в чем не повинным человеком на выходных. Вы думали, что это только в Америке бывают рабы-негры, хотя, кажется, их и там переделали в рэперов?

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

В качестве особого наказания заключенного могут направить на прополку. Помните как пользователи всего интернета плевались на каптчу рапидшары с собачками? А теперь представьте, что во время прополки вам в течение всего дня придется только и делать, что разбираться с такими каптчами: это дергать, это не дергать, а это вообще дерево. Рапидшарные песики и кошечки по сравнению с растениями покажутся мелочью. На даче ты будешь с сожалением смотреть на живых представителей рапидшарной каптчи и с удивлением понимать, что в жизни они и не так уж и похожи. Дачная каптча состоит из куда худших элементов, которые хрен различишь: все они зеленые, с листьями и растут из земли. И вот сидишь кверху задницей и думаешь: это вроде бы не сажали — выдернуть, это тоже, а вот это что-то знакомое, кажется, это называют одуванчиком. Сверился с тем, что здесь должно расти, «одуванчик» не равно «клубника», жаль, выдер…, я сказал выдер…..нуть. Ну и что, что корень остался, листья оборвал, зато теперь его не видно, ведь основная цель прополки — сделать вид, как будто на грядке растет только что-то одно.

Во время прополки после пары часов распознавания образов растений мозг начинает постепенно отключаться, но чтобы окончательно свести с ума заключенного, играет РАДИО. Оно повсюду, оно доносится с каждой стороны, где есть соседи. Ух, как я ненавижу слово «радио», мне стыдно, что в моей профессии — радиотехник, тоже встречается это сочетание букв. Не удивлюсь, если в Гестапо использовали пытку с помощью радио. Оно играет отовсюду и нигде нет от него спасения. Мало того, оно играет то, что, кажется, запрещено конвенцией по правам человека — попсу, иногда разбавленную рекламой каких-то лекарств для старушек (от маразма?). До дачи отношение к попсе было как к мухам — пролетела, да и фиг с ней. Теперь, когда из палаток слышу, не хочу говорить знакомые, узнаваемые звуки тынц-тынц (музыкой это не назовешь), я вспоминаю худшие свои дни, проведенные на даче. Отношение к рекламистам лекарств отношение стало еще хуже, но о них я не буду писать, чтобы меня не обвинили в пропаганде насилия.

Чуть более гуманной работой по сравнению с прополкой является разбор мусора. Знаете, мусор на даче, прежде чем окончательно попасть в помойку, проходит миграцию через все уголки участка. Сначала он собирается в одном месте (например, на чердаке), после чего, когда его станет много, его нужно перенести куда-нибудь подальше. Затем со словами «оно тут мешается» мусор переносится в третье место. Некоторым счастливчикам из мусорной кучи везет и после второго-третьего переноса их сразу отправляют на помойку. Остальных со словами «это еще пригодится» переносят с место на место раз десять. Одиннадцатый путь, как правило, бывает последним прямиком в помойку. Но сколько бы мусор не выносили, суммарное его количество никогда не уменьшается. Я, например, ни разу в жизни на даче не видел пустой мусорный контейнер, хотя мусоровозы периодически проезжают. Такое ощущение, что они просто меняют местами уже заполненные контейнеры, или мусор появляется в них самостоятельно независимо от таких же датчиков-муравьев, которые друг за другом несут к помойке мешки с мусором, а назад так же строем возвращаются с пустыми мешками.

Сколь дача жестока, столь же она и бессмысленна. На вопрос «а нафига все это надо?» следует стандартный ответ «Чтобы что-то выросло». На вопрос «А зачем, чтобы что-то росло?» отвечают «Чтобы было что сажать на следующий год». Все, круг замкнулся. Ведь не зря же открыли еще в 1617 веках закон сохранении масс. Возможно, когда Жан Рэ писал Марену Мерсену «Вес настолько тесно привязан к веществу элементов, что, превращаясь из одного в другой, они всегда сохраняют тот же самый вес», ученый как раз и имел в виду, что сколько картошки ты посадишь, столько и выкопаешь и хватит заниматься всякой глупостью.

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