14:31

Breaking Bad

В пятом сезоне каждая серия - это очередной гвоздь в крышку гроба для симпатий к Волтеру Вайту. Столбик градусника приязни падает на глазах: теперь уже хочется, чтобы Волт проиграл. Он умудрился, не став по-настоящему крутым, как этого все ждали, стать по-настоящему плохим. Получился трусоватый и нелепенький, но жестокий учитель химии с манией величия.
Трусость, конечно, понемногу уходит, но заменяет её не уверенность в себе, а ощущение вседозволенности. Выходит, Breaking Bad показывает нам историю становления диктатора того сорта, который в глубине души остался кроликом, просто вырастил броню и когти-ножи.
Майк - старикан-убийца - сказал про Волтера: "Это бомба с часовым механизмом, который отстукивает: тик-так, тик-так, тик-так. Рано или поздно она рванёт, и уничтожит всех вокруг, и я не хочу в это время быть рядом". Наверное, он говорил про манию величия: для химика нет правил, он никогда не удовлетворится тем, что имеет. Волт всегда будет рисковать, бросаться в огонь:
"You asked me if I'm in it for the money business or the drug business? I'm neither. I'm in it for the empire business."
Я сочувствовал Волту первые сезоны, даже когда ему приходилось поступать жестоко - именно потому, что его вынуждали обстоятельства. Я сочувствовал ему даже тогда, когда Волт был сухарём и врал, что ему жалко погибшего ребёнка: некоторые люди просто лишены эмоций, тут ничего не поделаешь. Но теперь Волтера всерьёз решили сделать плохишом.

@темы: Кино

if AnsiCompareStr(uppercase(value),uppercase(s))<0 then r:=c else
if AnsiCompareStr(uppercase(value),uppercase(s))>0 then l:=c+1 else
if AnsiCompareStr(uppercase(value),uppercase(s))=0 then r:=c;


Мало того, что "<=" разбито на "<" и "=" с одинаковым исходом, так тут вообще достаточно одной проверки:

if AnsiCompareStr(uppercase(value),uppercase(s))<=0 then r:=c else l:=c+1;

UPD. Я в этот пост буду складывать все такие примеры!
if (doall) then
begin
if not doall then
begin


@темы: Компьютеры

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

Всем строкам кода не поможешь, их слишком много, а наши силы ограничены! Закрой глаза на это чудовищное условие для while из 15 строк. Отвернись, когда видишь, как одна и та же проверка снова и снова вызывается в цикле. Занимайся своим делом: переписывай самые медленные места, а остальное оставь как есть. Тут просто эпоха такая.

@темы: Компьютеры

Ну вот, после моих переделок текст, который раньше переводился в Вакане минуту 10 секунд, переводится за 5 секунд.
Хо-хо!

Полюбуйтесь, что для этого пришлось нагородить:
{$IFDEF INTEGER_HELL}
{
Note on integer comparison optimization:
We're not checking if roma_t[i].hiragana has one or two 4-chars.
It's okay. If it has one, then roma_t[i].hiragana[5]==#00, and it wouldn't match
to any 4-char hex combination.
It also won't AV because the memory's dword aligned and hiragana[5] is accessible already.
}
if ((pinteger(ps)^=pinteger(roma_t[i].hiragana_ptr)^)
and (pinteger(integer(ps)+4)^=pinteger(integer(roma_t[i].hiragana_ptr)+4)^))
or ((pinteger(ps)^=pinteger(roma_t[i].katakana_ptr)^)
and (pinteger(integer(ps)+4)^=pinteger(integer(roma_t[i].katakana_ptr)+4)^)) then begin
{$ELSE}
if FcharCmp(ps, roma_t[i].hiragana_ptr, 2)
or FcharCmp(ps, roma_t[i].katakana_ptr, 2) then begin
{$ENDIF}


Это я здесь сравниваю строки из 4-символов (4 байта на хекс-код).

@темы: Компьютеры

Хотите посмотреть на код, от которого хочется плакать кровавыми слезами? Исходный код Вакана... Я когда-то его выпросил у автора в рассчёте исправить баги.
Только посмотрите на TfUser.DicSearch... TfUser.RenderText... Да на что угодно! Эти простыни непрокомментированного кода! Эти сотни переменных с именами s, i, w, f, buf, ws, wss, wcs, l, ls, dp, tp, jtt, dot, s2, s3! Эти затычки для экспшнов повсюду, где (автор удивлённо пожимает плечами) почему-то случаются эксепшны... Эти названия компонентов Label1-Label123! Это ДНК. Никому не ясно, как в нём работает, что в нём работает, и зачем оно в нём работает.

Функция перебирает строку по символу (на самом деле, по 4 символа):
if i<=9 then se.Add(inttostr(9-j)+'0'+inttostr(i)+'F'+copy(s,1,i*4)) else se.Add(inttostr(9-j)+inttostr(i)+'F'+copy(s,1,i*4));
Если номер символа меньше девяти, то мы добавляем куда-то... какую-то хрень с нулём в середине. Если больше девяти, то без нуля. Что? Почему?! Почему девять? Что это за нули? Что это за F? Куда мы их добавляем? В чём смысл жизни?! Есть ли бог?! Почему мы сравниваем с девятью i, а вычитаем из девяти j?! Все эти вопросы оставлены без ответа.

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

@темы: Компьютеры

00:01

RSS

Пожалуйста, пожалуйста, пожалуйста, я вас очень убедительно прошу, красивыми чёрными буквами. Когда делаете RSS к своему блогу, экспортируйте ПОЛНЫЕ ЗАПИСИ. Не начало и "читать дальше", не половину, не две трети - целиком.

Зачем?

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

То есть, вообще-то говоря, не закрывайте свои блоги блин! Что вам, сложно хостинг раз в год оплатить? Триста рублей? Даже если вы уже расстались с юношескими мечтами однажды написать такой пост, что интернет содрогнётся. (Или уже написали такой). Но во всяком случае, экспортируйте в RSS посты целиком... даже если там спойлеры или куча текста.

@темы: Будни

В японской культуре популярен вид шутки, который называется "цуккоми". Вот несколько примеров, которые я сочинял сам, так что это не совсем чистокровные японские цуккоми, но надеюсь, идею они передают:

- А денег у меня нет. Всё, что было, я на воду потратил.
- Из-за тебя нам придётся идти пешком!!!

- Дурацкий выходной, проторчали весь день в магазине...
- Ты сам нас сюда позвал!!!

- Всё, я пошёл. Завтра увидимся.
- Сдай ключи перед тем, как уходить!!!

Не очень смешно, да?

@темы: Японский язык

00:01

Simcracy

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

Чтобы вам далеко не ходить, тут же расскажу вкратце, как устроена игра, и как в неё играть.

@темы: Компьютеры, Будни

18:39

Главный герой в Breaking Bad придумал себе псевдоним "Гейзенберг" - мол, он весь такой загадочный и неопределённый, его личность и местонахождение толком не установить. Но судя по тому, как три сезона у него идут дела, ему стоило бы выбрать псевдоним "Шрёдингер"!

(спойлер)

@темы: Кино

Тюнибё с третьей серии превратился в очередную "обычную жизнь группы школьников в обычной японской школе", которая НИКОМУ НЕ ИНТЕРЕСНА. Аргх. Как будто издеваются!

@темы: Аниме, Будни

19:37

Ну вот, теперь у меня очень, очень быстрый интернет. Как я давно о нём мечтал! Но зачем он мне был нужен?..

@темы: Компьютеры, Будни

Если по Скайриму снимут художественный фильм, он должен называться "Skyrim: Finding Lydia". На секунду о ней забудешь, - Лидии уже нет. ГДЕ?!! ГДЕ ОНА?!! Убили, что ли?! Лихорадочно вспоминаешь, где бывал последние полчаса. Когда в Виндхельме вещи продавал, Лидия ещё была. Потом на поле с драконом дрались. Не могла же она...
Телепортируешься туда, и точно - ночь, трава колышется, Луна в небе, Лидия стоит посреди бескрайней степи и ЖДЁТ. "Идём, хозяин?"

Ни мимо одного врага пройти не может. "Лидия, оставь в покое этого краба, он нам ничего не сделал! Пошли!" - "Нет, хозяин, пока я не добью тут каждого краба в округе, мы с вами дальше не пойдём." - "Лидия! Опять пропала! Где она?!" - потерялась на морском берегу, моржей бьёт.
Влезли в чужой дом, тихо-тихо крадёмся, чтобы не разбудить жильцов. Нажимаю на шкаф, чтобы его обследовать, но под палец услужливо подворачивается Лидия. И голосит: "Хозяин, зачем мы сюда залезли?!"
Очень помогла!
Ни одного моего фаерболла не пропускает, и укоряюще говорит: "Хозяин, зачем же в меня-то?" А зачем же ты встала-то между мной и противником?

Сейчас снова обнаружил, что Лидии нет, когда уже сохранился. В ужасе бегу туда - нет! Сюда - нет! В доме - нет! Где бандитов били - нет! Ну всё, думаю, конец Лидии. Где-нибудь решила срезать путь, грохнулась со скалы да и померла. На всякий случай телепортнулся ещё в королевский дворец, где вещи заговаривал.
Точно. Откуда ни возьмись, выбегает Лидия и хвостом за хозяином. Как будто и не терялась.
Лидия, блин! Не пугай меня так.

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

В ту же секунду:
"Лидия больше не следует за вами", и -
"ЛУЧШЕ БЫЛО ТЕБЕ НИКОГДА НЕ РОЖДАТЬСЯ НА СВЕТ!!!" --- Хрясь! - Лидия отрубила мне голову.
Вот она, женская верность.

Ладно, Лидия. Я-то перезагружусь! Главное, сама не теряйся.

@темы: Игры

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

Пока лежал в больнице, доперевёл вторую главу 7-й имоты и выложил обе перед операцией, а то мало ли что.

@темы: Будни

18:27

Больной: А кто командовать на операции будет? Луиза Николаевна?
Анестезиолог (вздыхает): Да все будут командовать, кому не лень... Но Луиза Николаевна точно будет, потому, что она это дело - любит.
Ещё вспомнилось из негативных отзывов о другой больнице: "Бестолковые какие-то: налетают и оперируют всем кагалом!"

@темы: Будни

18:20

Анестезиолог рядом объясняет больному, почему его завтра не берут на операцию (давление скачет).
Скучным тоном:
- Понимаете, у нас здесь плановое отделение... Я раньше работал в экстренном, там другое дело, а у нас здесь плановое отделение, убивать мы тут не имеем права.

@темы: Будни

17:41

Ну вот, завтра у меня операция. Ближайшие несколько дней, видимо, буду оффлайн.

@темы: Будни

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

Мне давно было интересно, насколько страницы такой книги больше по объёму страниц обычного ранобе. Я представлял себе, что в полтора-два раза. Ведь в обычном ранобе не только страница меньше, ещё и пустого места на ней полным-полно - а тут всё подогнано плотно.

Но чтобы установить этот ерундовый факт точно, я выполнил небольшое исследование, от неряшливости которого любой учёный придёт в ужас. Я скачал множество ранобе, и сравнил в них следующие характеристики:
- Число символов (каны и кандзи).
- Число страниц на печати
- Число строк
- И количество руби (подсказок чтения)

(Подробнее)

Вот результат.

Давайте задержимся на секунду и вспомним, какие качества обычно приписывают книгам Нисио Исина? Его книги считаются длинными, сложными, предназначенными для более взрослой аудитории. Сейчас мы это проверим.

Средний объём страницы Исина - 571 символ. Средний объём страницы обычной серии ранобе - 400-430 символов. То есть, страница Kodansha Box не в два, а лишь в 1.32-1.42 раза больше. 20 страниц Исина - это примерно 27 страниц обычного ранобе.
Среднее число страниц - 338 больших против примерно 300 маленьких в обычном ранобе. Среднее число символов на книгу - 193 тысячи против примерно 120. Так что книги Исина действительно больше (кто бы сомневался!) в полтора с лишним раза.

А теперь сюрприз. Средняя длина строки в книгах Исина... 34.5 символов!
В Торе-Доре - 50. В Харухи - 50. Только в Ореимо строки такой же длины - 33 символа. Страшный и ужасный Нисио Исин пишет предложениями такой же длины, как детский сад штаны на лямках Фушими Цукаса (который вообще только Каштанку читал, судя по творчеству!). Хотя страницы Исина всего в 1.35 раза больше, на них в 2 с лишним раза больше строк!

Зато текст Исина действительно более взрослый, поскольку у него почти отсутствуют руби. В книгах Исина в среднем встречается одно руби на 260 символов, когда и в Торе-Доре, и в Харухи это значение стабильно около 37. В Имоте разброс очень сильный - от одного руби на 24 символа до руби на 140 символов. Но в большую сторону число руби увеличиться не могло, так что нельзя соврать, если сказать, что есть такие книги Имоты, где руби встречаются каждые 24 символа. Сравните это с 260 символами Исина.

Я также посчитал число кандзи на квадратный метр к общему числу символов. Это значение почти везде одинаково (видимо, так диктует японский язык), но у Исина, как и в Торе-Доре, оно 0.23 - за исключением Оторимоногатари, где внезапно 0.20; в Харухи - регулярно 0.26, а в Имоте - 0.19-0.20. Имота действительно самое простое ранобе для тех, кто не знает кандзи (впрочем, там полно богатой разговорной речи).

@темы: Околоанимешное

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

(Надеко Медуза, Глава 1)

@темы: Переводы, Околоанимешное

Я могу всех обрадовать, что новый сезон Бакемоногатари будет интересным. Про Кабукимоногатари (История отклонения) я уже писал, а Ханамоногатари (Цветочная история) - про Канбару Суругу. Единственная повесть называется Канбару DEVIL.

(спойлер)

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

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

И это гораздо интереснее, чем наблюдать за трикстерами, которые в запасе имеют два хода: хитро щуриться, скрывая тайну, или предать в подходящий момент. Кайки в такой момент не предаст. Точнее, он может предать в любой момент. И не потому, что его перекупили, а просто так, взял и предал. Он может, и будет в совершенно бытовом разговоре врать о какой-нибудь ерунде. Если у него в кармане 300 рублей, он скажет, что 500, или 200, или 301 - хотя никакой разницы нет. Он украдёт леденец у девочки, потому, что леденец можно продать. Конечно, полизаный уже нельзя, но всё равно, леденец - это имущество. И если его можно отнять, то почему бы и не отнять-то?

Отличный персонаж, в общем.

@темы: Исин, Околоанимешное, Книги

01:38

Готовясь к эпическому окончанию серии "Оре но имото", фанаты книг натирают до блеска клавиши "F" и "U" на своих клавиатурах.
Как бегуны на старте, ждут выстрела судьи.
Пальцы дрожат над кнопками, готовясь сорваться и вдавить их до основания.

Тем временем, фанаты "Саёнара Зецубо Сенсея" уже отстрелялись этим летом. Как выяснилось, "Унылый учитель" закончился на 30-ти томах и трёхста... 302-х главах. Вот чем:
(спойлер)