Author Archives: himself

Читаю Акунинскую “Аристономию”. Один герой говорит другому:
– Они как раковые клетки, их нужно вырезать, выжечь, пока они не заразили всё вокруг.
– Рак не заразен, кто-то-там кто-то-тамыч…
– Ах да… Забыл, что говорю с доктором.

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

Пока, Окономи

В Москве, в переулках недалеко от Пушкинской площади (ст. м. Тверская) было кафе Окономи, где подавали окономияки. Как мне объяснили, открыл его японец, отчего-то знающий о нас и симпатизирующий нашей стране. Там кормили довольно вкусно, стояла полочка с мангой и иногда играла анимешная музыка.

Недавно оно закрылось.

Вот что они об этом пишут:
Дорогие гости. После закрытия нашего кафе многие спрашивают, почему мы закрылись. Хотелось бы ответить на этот вопрос.
Первая причина закрытия – это слишком большая аренда за помещение. Арендная плата в Москве примерно в 2-3 раза дороже, чем в Токио. Даже если выбрать помещение в жилом районе, то рядом с метро цена будет примерно такая же. При этом арендодатели проявляют безразличие, с таким отношением с ними трудно работать. Помещение кафе коммерческое, но находится в жилом доме. И жители, недовольные тем, что в их доме открылось кафе, оказывали давление ради получения денег.
Вторая причина – угрозы со стороны гос органов. Они проводят слишком жесткие проверки и маленькие компании не могут их выдержать. Проверки нужны, но сначала нужно создать упорядоченный закон и проводить проверки не коррумпированными гос органами.
Ксожалению мы поняли, что с такими условиями маленькое кафе существовать не может. В Москве рестораны слишком дорогие, у нас была идея открыть кафе, чтобы каждый человек мог прийти и недорого покушать. Но мы не смогли добиться такого результата. Мы искренне желаем процветания общества России.

Такие дела.

– Но как такое возможно! Вы же учёные, вы цивилизованные люди, вы из будущего… вы притворяетесь богами, изучаете их – ладно! Но зачем?! Зачем вам человеческие жертвы?
– Строго говоря, жертвы нужны не нам. Египтяне их хоронят, обработав ритуальной мазью. Особой мазью. Ещё не понимаете? Человеческое тело быстро разлагается. Людям будущего – историкам – потребуются находки…

Homing missile

По-английски самонаводящаяся ракета – это homing missile. А почтовый голубь – “homing pigeon”. Правильно: потому, что возвращается домой (“home”). Вот откуда, оказывается, это слово произошло.

Про регэксы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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