Улучшим регулярные выражения

Вчера закинул эту статью на Хабр, сейчас опубликую ее здесь.

После прочтения книги Фридла про регулярные выражения (далее просто РВ) у меня появились кое-какие мысли по поводу их читаемости. Когда РВ только появлялись, и в них было довольно мало условных обозначений вроде \d, \w и тому подобных, то, наверное, все было не так страшно, хотя уже тогда стоило задуматься о наглядности. Сейчас чтение кода с РВ — это тихий ужас. Нет, если РВ короткое, то особых проблем нет, но по мере их усложнения и появления различных скобок все становится просто кошмарно. Ситуация усугубляется тем, что в некоторых языках (не будем указывать пальцем) постоянно приходится удваивать слеши.

Кроме того в той нотации РВ, которая сейчас используется в большинстве языках программирования, в некоторых, казалось бы простых ситуациях, приходится выкручиваться с помощью различных финтов. Первый пример, что пришел в голову — составить регулярное выражение если «abc», то затем НЕ «xyz».

Читать далее ‘Улучшим регулярные выражения’ »

АнтиSEO

АнтиSEO

Как же все-таки надоели SEO-шники (для тех, кто не знает кто это такие — упыри, которые продвигают свои сайты в поисковиках разными полулегальными способами, а SEO — сокращение от Search Engine Optimization). Надо сразу сказать, что я не против в принципе оптимизации под поисковики как таковой. Но когда на первые позиции в гугле/яндексе попадают сайты, где кроме порнобаннеров ничего нет, это раздражает.

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

Или я вот недавно искал чехол для телефона, и на казалось бы правильный запрос «название_телефона чехол» на первых местах в поисковике стояли сайты, похожие друг на друга как однояйцевые близнецы, действительно продающие запчасти к телефонам, но в списке товаров даже не было намека на подходящий чехол. А когда стал смотреть как тогда эти сайты-клоны вообще попали под такой запрос, увидел, что внизу страницы полужирным шрифтом написана фраза «название_телефона купить название_телефона чехол название_телефона аккумулятор…» и так далее с другими частями телефона.

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

Кроме того, я через RSS подписан на некоторые digg-образные сайты для блоггеров, том числе и по раскрутке. Те методы продвижения сайтов, которые там предлагают использовать вызывают, прямо скажем, брезгливость. Нет, как правило там не предлагают спамить явно, но некоторые методы не далеко ушли от спама. Такие SEO-шники загаживают сайты социальных закладок кучами специально созданных аккаунтов, делают десятки, если не сотни, «фальшивых» аккаунтов в других социальных сетях, только чтобы получить побольше ссылок на свой сайт, создают сайты, единственная цель которых — ссылаться на раскручиваемый сайт. К счастью, поисковики периодически банят таких мошенников, но силы слишком уж не равны.

Да и вообще, по некоторым блоггерским сайтам создается впечатление, что блоггеры только и занимаются обманом поисковиков. К счастью, это не совсем так. 🙂

SEO-блоггеров легко узнать по оформлению их записей. Это такой монохромный вариант блогов на mail.ru. Только если на mail.ru почему-то постоянно попадаются блоги, оформленные в стиле «новогодняя елка», когда текст пестрит разными шрифтами и раскраской букв, то у SEO-шников блоги пестрят выделением ключевых слов полужирным шрифтом, чтобы придать больший вес этим словам для поисковиков. Причем такие выделенные ключевые слова в тексте идут через слово. А ведь обычному белковому человеку такие записи читать невозможно — в глазах рябит.

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

Ну вот, вроде весь негатив вылил 🙂

The Show Must Go On

Вот не понимаю чего все носятся с этим «Именем России»? ЖЖ по этому поводу оживилось, умные дядьки целые статьи строчат с результатами, какие-то немыслимые проценты вычисляют: прибыло, убыло, процент прироста и т.п. Кому это все нужно? Это же обычное шоу, которое ничем принципиально не отличается от какого-нибудь «Ледникового периода», «Последнего героя — i+1» и тому подобной ерунды. Так нет, вроде взрослые люди, а в комментах готовы виртуально (хочется верить, что только виртуально) перегрызть друг другу глотки за то, что кто-то не за того проголосовал. Прямо как школьники, которые дерутся на переменках из-за того, что кто-то слушает Accept, а кто-то AC/DC.

У меня лично результаты этой игры вызывают не больше интереса, чем результаты того же «Ледникового периода» и его телевизионных братьев-близнецов или результаты чемпионата Зимбабве по метанию бумеранга. Ну занял Сталин n-ое место, а Пушкин — m-ое, чего из этого трагедию то делать?

Детский сад, честное слово.

ХЗ какая версия

ХЗ какая версия

Два года назад, когда вместо очередной 13-й версии Corel Draw вышел Corel Draw X3. Помню тогда прикалывались примерно такими разговорами:

— У тебя какая версия Corel Draw?
— А хз.

Теперь хз какая версия стала и у Lingvo. Ну хорошо хоть у ABBY хватило фантазии назвать версию не X3, а x3, но все-равно наверняка за этой версией останется кличка хз. Неужели менеджеры по продажам так боятся, что юзеры не будут покупать ихний софт с «несчастливым» номером 13? Кроме этого я больше ничем не могу объяснить такое коверканье. Хотя у Corel их Draw теперь дорос до версии X4, посмотрим как обзовут следующую версию Lingvo.

Мысли о продаже музыки

Звукозаписывающие компании плачут, что из-за того, что полно народу качают музыку через emule, торренты и тому подобные p2p, музыканты ничего не зарабатывают, а уж сами директора компаний так вообще по миру пошли. Обычно пользователи сетей p2p на это отвечают, что не хотят покупать это говно кота в мешке, пока не послушают. Ну действительно, что обычно происходит со скаченной музыкой? По крайней мере у меня 90% ее , если и не удаляется сразу, оседает на болванках. Второй раз слушать эту музыку если и буду, то не скоро. И только немногие альбомы слушаются по много раз. Как раз их и не жалко купить, но часто в оффлайне ее трудно найти (даже в emule и то мало источников), или просто лень искать.

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

А еще я бы не отказался от онлайнового магазина, где можно было бы перед покупкой послушать все, что хочешь в хорошем качестве, но ограниченное число раз. Думаю, раза 2, в крайнем случае 3 хватило бы. Если вдруг захочешь послушать еще, покупай. При этом цена на песню зависела бы от битрейта (и еще немного подороже продавать музыку, сжатую без потерь). А еще было бы неплохо, если при покупке песни она просто появлялась бы у пользователя в профиле, откуда он мог бы скачивать ее неограниченное число раз. Представляете, какое было бы удобство, скачал альбом, послушал несколько раз, удалил. Если через какое-то время захочешь послушать еще, не надо рыться по дискам, а просто зашел в профиль и скачал заново, уже бесплатно. При этом к каждой песне бесплатно давали бы сканы обложек альбома, откуда она и ее текст. Получится, что и деньгу заплатил в карман звукозаписывающей компании, и купил, то что понравилось. Только при этом, разумеется, надо, чтобы в сети музыку покупать было бы выгоднее, чем в оффлайне. Чтобы создать видимость защиты от пиратства, то есть чтобы одним профилем не могло пользоваться много народу, можно по запросу слать ссылки на песни на почту. А сами ссылки работа ли бы только для одного IP. Т.е. захотел скачать с другого IP, нажал кнопку в профиле, на почту снова пришлют ссылку. «Видимость», потому что все-равно это бесполезно

В общем пойду ка я почитаю RSS на предмет новой музыки на торрентах

Персональная вики

В свое время искал какую-нибудь персональную вики и остановился в итоге на WikidPad. Сначала все в ней нравилось: и кроссплатформенная, и картинки может вставлять в страницы, и файлы в себе хранить, а особенно подкупает встроенная возможность писать формулы в формате TeX. Но в последнее время в WikidPad-е начинает нехватать некоторых возможностей. Во-первых, неудобно, что, если в разных ветках попытаться создать страницы с одинаковыми именами, то они будут ссылаться на одну и ту же страницу. Во-вторых, файлы то WikidPad хранить в базе умеет, но все они хранятся в куче в одной папке, а хотелось бы на каждой странице иметь свои прикрепленные файлы. А, в-третьих, не хватает возможности шифрования или установки пароля на отдельные страницы и на всю вики в целом. Еще хотелось бы выставлять к каждой странице иконки, взятые из файлов, а не выбирать только из тех, что прилагаются к программе, но это уже мелочь. Поискал другие вики и понял, что ничего удобнее пока еще не сделали (по крайней мере из бесплатных).

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

Писать думаю на связке Python + wxPython (кстати, WikidPad тоже на них написан). Python, потому что хочется легкой кроссплатформенности (вдруг все-таки пересяду под линух), в том числе и для плагинов (о них ниже).

Для хранения страниц вместо БД хочу использовать архив 7z. Почему не БД? Во-первых, персональная вики вряд ли будет такого уж большого размера, чтобы использование БД было бы оправдано. Во-вторых, с архивом можно удобнее работать «руками». В-третьих, установку пароля на всю вики можно доверить архиватору. А, регулируя степень сжатия, можно можно выставлять нужное соотношение сжатие/скорость работы. Да и делать древовидную структуру в архиве попроще. Но пункт спорный и пока еще раздумываю на тему 7z vs SQLite.

Из-за того, что я люблю конструкторы вроде Миранды и Firefox, то прогу тоже думаю сделать, основанной на плагинах, из идейных соображений. Тем более на Python-е плагины можно делать легко и опять же кроссплатформенными.

В общем, такие вот мысли.