Записи за месяц: January 2013

Про регэксы

Регэксы – это офигенное средство, не только потому, что с их помощью легко записывать формат строки. Его легко преобразовывать и быстро парсить!

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

Но регэксы ужасны – стоит попытаться написать что-нибудь достаточно сложное, как выясняется, что:
– повторяющийся набор групп матчится только один раз
– наоборот, два одинаковых набора подряд матчатся как разные группы (следовало бы ожидать…)
– группам можно задать имена, но они должны быть уникальными (нафига тогда имена?)
– указать “если есть блок А, должен быть блок Б” крайне сложно, а уж “должен быть блок Б здесь либо чуть позже” вообще нельзя
И так далее.

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

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

Приватный hg-репозиторий в интернете

Задача: поднять для личного hg-репозитория постоянный (приватный) адрес в интернете.

Для публичных репозиториев это легко сделать на Google Code или github или SourceForge. Как быть, если кодом делиться не хочется?

UPD. Инструкция верна, но есть путь проще – см. в конце.

1. Регистрируемся на BitBucket (можно зайти через гугл-аккаунт). Подтверждаем почту, выбираем пароль для доступа к репозиториям.
BitBucket позволяет сделать сколько угодно частных репозиториев, но к каждому доступ не больше пяти человек. Бесплатно.

2. Запускаем командную строчку. Если меркуриал не в %PATH%, делаем cd C:\Program Files\TortoiseHg (например) и set PATH=%CD%;%PATH%.

3. Переходим в папку с репозиторием cd C:\Path\Repo и запускаем hg serve.

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

4. Пробросьте порт 8000 на рутере на свой компьютер. Убедитесь, что http://your-pc-name:8000 открывается.

5. В BitBucket сделайте “Импорт репозитория” и укажите этот адрес. Подождите немного. Ура, репозиторий со всеми правками сдублирован на битбакет.

UPD. Как показал в комментариях korrshun, гораздо проще создать пустой репозиторий и сделать из домашнего туда push. Оказывается, в репозиторий меркуриала можно пушить сколько угодно независимых веток 0__0, то есть, можно в один репозиторий слить несколько.

Tell me what I’m going to use it for

For those who didn’t know, there’s a new pascal-based compiler on a market for a while, and a pretty cool one at that. Enter RemObjects Oxygene.

It’s Visual Studio-based, compiles to .NET, Android Java and iPhone Cocoa, resembles Pascal and implements the majority of its cool features like generics. Parts of language are redesigned, some for better, some for worse.

Cool feature. Even the main unit now has the interface/implementation sections.

namespace Application1;
interface
implementation
begin
  Console.WriteLine("The magic happens here.");
end.

Uncool feature. initialization/finalization sections are no more. I guess you can kinda replace them with class constructors, but they were so much better.

Anyway.

The language is indeed pretty fresh, with support even for WinRT while Delphi has yet to convince Microsoft to let everyone else have a part of the cake. Turns out, the only way to do native WinRT applications is through using Microsoft Visual C++ Runtime. Ha-ha, funny joke Microsoft, you.

So I thought about playing with it for a change.
No, I’m not betraying Delphi just yet. It’s still pretty cool, compiling to 64 bit and not being afraid of anything.

But sitting before the empty Oxygene project, I have found myself at loss at what to do.
Okay, it runs. It compiles Hello World, alright.
What next?

Turns out, when you encounter a new language, you have to have a few use cases for it. And since you usually don’t know what this langage can do, it’s better if someone suggests those for you.

Есть в мире постоянство!

Решил посмотреть “Хацукой Лимитед”. Скачал первую серию. Включил.

На пятой секунде вдруг вспомнил:
“А-а!”
“Да это же тот самый сериал, который я дропнул на пятой секунде!”

Ленивая теория

Брат главной героини в Сасами-сан ганабаранай – это Кён.

Судите сами, лица его мы не видели. Разница в возрасте подходящая (он теперь в школе преподаёт). Имени его не слышали (Каминоми, очевидно, псевдоним) – да мы и настоящего имени Кёна не знаем! Как и имени Кёновой сестры. И опять какие-то божественные способности.

Я уж молчу, что в первой серии он станцевал танец Харухи. То есть, не молчу.

Пришло признание

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

“после прочтения этого поста вообще не понимаю, как можно быть либералом”, написал он в комментариях к посту о моей операции, путаясь в клавишах – “есть же настоящи ценности в жизни!!!!!!”
Вот деньги, например. За каждый коммент платят деньги. Как говорил лорд Катлер Бэккет, I’m afraid, currency is the currency of the realm.
“а не эта испоганенная амерами идея о свободе и правах” – добавил он про то, как мне зашили живот.
Вообще-то офигеть: вы посмотрите, чему их учат. Толковать людям, что свобода и права – это плохо.

Я как увидел комментарий, прямо приятно стало.
Признали.
Испугались-таки.
Кровавая гэбня видит во мне врага.

Не зря я восемь лет пишу об аниме! Путин зашевелился. Решил: пора что-то делать. И вот, прислал мне платного комментатора.
Не бог весть какого, конечно, но чего уж там. Кого смог, того и прислал. Дарёному коню в зубы не смотрят.
Пусть чахленький, зато мой собственный!
Оплаченный из бюджета!

Приятно, что государство заботится о самомнении своих блоггеров. Вот в Америке так не делают.

Коимоногатари

Я рискну вынести суждение, не дочитав книги – возможно, придётся за это поплатиться, если в концовке всё встанет с ног на голову.
Но это уже сложно.

Удивительным образом. Совершенно неожиданно. Кайки Дэйсю – самый офигенный персонаж во всей серии.
И если вы не читали книгу, и думаете, что представляете, о чём я, то вы не представляете. Он офигенный в гораздо более простом смысле, чем “офигенный злодей” или “офигенный образ”.

(Цитата)“Когда я познакомился с Сендзёгахарой Хитаги – то есть, два года назад – я подумал про неё:
– Хрупкая девочка.
Естественно, в то время она была больна паранормальной болезнью, из-за которой меня, якобы “изгоняющего духов”, и наняла её сектантка-мать. Но даже за вычетом этой болезни Хитаги всё равно казалась мне “хрупкой”.
Так я считаю и до сих пор.
И даже теперь – излечившись, повзрослев, найдя себя парня – она всё равно кажется мне хрупкой. И если Сенгоку Надеко “разбитая девочка”, то Сендзёгахара – “легко бьющаяся”.
Хрупкая, едва держащаяся – так я думал.
И именно поэтому то, что она теперь такая, какая есть – чудо. Настоящее чудо – что и два года назад, и сейчас, в восемнадцать, девочка, которая могла бы разбиться в любую минуту – живёт и не бьётся.
Мать сошла с ума.
Но дочь не сломалась – вернее, я не знаю, как жизнь повернётся дальше, но по крайней мере сейчас, по крайней мере, в этот раз, она уцелеет.
Потому, что я обману Сенгоку Надеко.”

Сасами-сан @ ганбаранай

Химселф-сан @ это аниме смотреть не будет.
Наверное.

Пол-серии любопытно, вторые полсерии просто страшный, бессмысленный бред. Поскольку аниме громкое и первую серию всё равно все посмотрят, можно не распинаться, отговаривая это делать. Посмотрите. Сами всё поймёте.
Посмотрели?

Ну вот. 50% ждшывтывптифдыоважжмщшш, 35% скучных героинь и героев и 15% сасами-сан, которая тоже интересна только потому, что куколка и аккуратно переодевается.

Sword Art Online

Во-первых, в роли несчастной сестрёнки опять Кирино. У этой актрисы, похоже, амплуа такое. Кто-то озвучивает императоров, кто-то застенчивых девочек, а эта девушка отныне в каждом аниме будет сами знаете кем. “Н-нэ! Кёске ттеба!”
Офигенная карьера.

Во-вторых, Sword Art Online талантливо снят. Это не заметно сначала, по первой серии вообще кажется, что типичный сериал про прокачку в РПГ. Но он не такой. Он большой. От него остаётся то самое замечательное ощущение, что смотришь не пустяк, а что-то судьбоносное, неизбежное. Наверное, это одна из лучших реакций, которой может добиться автор книги или аниме – когда история кажется важной, какой бы пустяковой она не была. Не знаю, всякий ли вообще испытывал такое чувство, поскольку у меня оно бывает редко.

Траляля три рубля, здесь я говорю о плохих сторонах SAO, здесь я говорю о плохих сторонах SAO. Рыба рыба рыба. Придумайте вопрос, подходящий для экзамена по выбранной специальности и ответьте на него сами.
Поговорили о плохих сторонах SAO.

Что я хотел сказать-то. Нигде не видел, чтобы так здорово сделали деление на реальный мир и РПГ. Так последовательно, что приятно смотреть. Сказочный, волшебный мир игры, со сверкающими городами, с огромным древом, уходящим в заоблачные выси, с ярким синим небом. Блондинка-Лифа, болтающая весело, задорно. И серые будни, обычный город, дождик за окном, темноволосая, как все японки, неряшливая Сугуха, глухой – обыкновенный – будничный голос, скучный высокий голос её одноклассника. Это жизнь. Это правда жизнь.

Не смешали, не противопоставили, а просто дополнили одно другим.
Будни и сказку.

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

Мне, в целом, не успел понравиться Sword Art Online, и уже не успеет – осталось пять серий. Возможно, несколько лет назад он мог бы подействовать на меня, как подействовала раньше Тора-дора. Сейчас не получается – некоторые серии я даже скроллил, он скучноват.
Но глядя на него, всё-таки хочется сказать: посмотрите – ведь можете, если захотите. До сих пор можете. Даже сейчас, даже среди всего того, во что давным-давно превратилось аниме. Ведь можете же.

Нарисовать не мадоку магику. И даже не Нисемоногатари.
А вот эту грозу и этот телефонный звонок.

Дарю кому-нибудь

Часто приходят в голову отличные переводы разных терминов в книгах, которые совершенно не собираешься переводить.
А жалко!

Например, книжка Ононоги из “Моногатарей” в русском должна называться “Книга сплошных исключений ” (в японском – “Свод правил, где больше исключений”).
То, с чем столкнулся Арараги в “Онимоногатари” – не просто тьма, а ТЬМИЩЕ. (Хотя честно говоря, оно скорее безликое, чем страшное)