Записи за месяц: 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, то есть, можно в один репозиторий слить несколько.

Дорама

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

Пересказывать её всю лень (просили вставить, вот ссылки: за, против, мой фид), но характерная деталь. Некоторое время назад избранный (в результате подтасовки выборов) президент попытался установить на российском рынке налоги. Брать их никакого морального права у президента нет, т.к. никаких услуг он и его организация никому не оказывают. Но президента это не смутило.

Однако ему дали по рукам.
Другой игрок написал возмущённый пост, его поддержали, за него стали голосовать, и быстро возникла угроза смены власти. Тут президент стушевался, мигом заговорил примирительно, “я же только предложил”, “ну раз никто не хочет”, и так далее. Отступил, но не сдался.

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

“Нам нужна сильная страна”.
“Надо развивать национальные рынки”.
“Эта фича необходима для поддержания политической и экономической стабильности в стране.” (Я не шучу! Я цитирую! Это написал один из тамошних единороссов.)

И теперь президент проворачивает вот что. Налоги на локальном рынке его уже не устраивают. Он просит администрацию запретить нейтральный рынок, который он не может контролировать, чтобы вынудить игроков торговать по его налогам и платить ему дань. Которую он, разумеется, потратит “на общее благо”.

Какой из этого можно сделать вывод?
А вот какой. Очень многих людей от аморального поведения удерживает только страх. Им кажется, что они поступают “правильно”, но как только они чувствуют безнаказанность, у них тут же отказывают тормоза.

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

Муж, который бьёт некогда любимую жену. Чиновник или президент, знающие, как для всех будет лучше. Такое повсюду.
Поэтому действительно, если бы прошлой осенью на площадь вышло не 100, а 200 или 300 тысяч людей – мы бы жили в другой России. Даже если бы эти люди просто постояли и разошлись.

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% сасами-сан, которая тоже интересна только потому, что куколка и аккуратно переодевается.