From Novosibirsk, Russia? Our tiny company is looking for current or future rock-star developers.

Showing posts with label fun. Show all posts
Showing posts with label fun. Show all posts

December 16, 2007

Поломки и резервные копии

В детстве я обещал себе, что если (например) буду долго копить на машину, куплю её и разобью в первый же день, то ничуть не расстроюсь. И вообще, что не буду расстраиваться о вещах. У меня всегда были сомнения, смогу ли я действительно относиться столь спокойно; теперь появляется возможность проверить это на практике.

Например, под ёлочку в этом году я положу себе MacBook Pro 15", потому что сегодня разбил экран своего старенького MacBook'а 13". Благо, я могу себе такое позволить. Отрицательных эмоций нет. Сегодня хорошо посидели в «Жили-Были» с Юрой Бабуровым — завоевание мира всё еще запланировано, — потом выпил коньячку и хорошо поспал, проснулся совершенно счастливым. Обретенная радуга во весь экран ничуть не ухудшила настроение (естественно, работе она не мешает, ибо я работаю с подключенным внешним монитором).

Сломанный ноут мы уже нарекли новой моделью Mac mini flat. А если оторвать экран вообще, получится конструктивный аналог ZX Spectrum — клавиатура, в которую спрятан компьютер. Но, конечно, сначала я попытаюсь его сдать в сервис. Давно хотел домой второй мак.

В прошлом месяце я отбил кусок от стекла на экране своего сотового (матрица не пострадала). А еще от другого падения он перестал звонить. И корпус давно треснувший. Но до сдачи в ремонт руки так и не дошли. Опять же, на такие мелочи я внимания не обращал.

Сейчас вспомнил, что вчера за'push'ал все изменения по работе на свой хостинг (приватно использую git, хотя основной репозиторий в CVS). «Вот теперь никакие катаклизмы ей не повредят», — сказал я. Очень вовремя, сегодня запросто мог накрыться жесткий диск. (А всего-то: шел с закрытым ноутом и выронил его из рук на пол.) В прошлом месяце подписался на .Mac, получил право пользоваться Apple Backup, сделал резервную копию всех фотографий на DVD. Опять же, не зря.

Мораль: резервное копирование — ваш друг. Навсегда.

September 27, 2007

Микрофишки

next_2005NeXT остался ночевать, дабы поработать допоздна над тестами к задаче. С утра включаем колонки, чтобы посмотреть ролик — из них дикая попсовая музыка.

Закрываем WinAMP. Музыка продолжается. Берем диспетчер задач и закрываем приложения. iTunesHelper — музыка продолжается. Googletalk — продолжается. Winampa, ShockDesktop, type32, iPodService, QTTask, rundll32 — продолжается.

И только когда в списке остаются считанные процессы, доходит: это будильник, играющий на домашнем компьютере гостя через Remote Desktop Connection.

* * *

Выход Vista подтвердил слухи о том, что Ктулху теперь живет в Редмонде.

* * *

Есть сны, которые запоминаешь как факт и считаешь реальностью, пока не столкнешься с вопиющим несоответствием. Но реальность может поколебаться и другими вещами:

public class RubyCallGraphKiller {
   public static RubyCallGraphKiller killme(int x, Object y, Object z) {
       return null;
   }
}

— Андрюша! Что это за класс?!
— ???… !!!!
— Ты точно ничего крепче ликера не пил, когда писал это?

Представьте себе ощущения: вот он файл, доказывающий потребление вами травы. Но травы-то не было. Или была?.. Реальность — штука тонкая.

August 28, 2007

Discovery of the True Ultimate Answer

Да, The Ultimate Answer to Life, the Universe, and Everything — действительно 42. Зафоду не хватило лишь немного знаний о компьютерах, чтобы понять, что 42 — на самом деле звёздочка.

Доказать это проще простого: выводим в файл число 42 в качестве stub'а реальных данных, а затем смотрим FAR'ом.

July 26, 2007

HTML completion

Задача: вычислить HTML-теги, которые могут быть вложены в данный.

Решение.

1. Описываем все теги в виде набора Java-классов, по одному классу на тег.

2. Учим эти Java-классы генерировать куски DTD, описыающие соответствующие теги.

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

3. Для всех возможных HTML-тегов повторять шаги 4-6:

4. Сгенерировать куски DTD для всех родительских тегов и кусок, описывающий вложенность текущего тега в родительские. (Какая именно строчка для этого генерится, я не разбирался. Судя по всему, дублирующееся описание родительского тега.)

5. Скормить полученный набор кусков (в виде массива строк) кастомному DTD-валидатору, специально предназначенному для данной задачи.

6. Если валидатор не выдал ошибку, то добавить текущий тег в список возможных детей.

Да здравствует Eclipse Web Tools Project! Индусы — вот implementation detail компании IBM.

December 23, 2006

Separation of content and presentation

Я, как дурак, сижу с кучей запущенных приложений и получаю извращенное удовольствие. А всё потому, что добавил в свой macbook гигабайт памяти.

Если вы бы сейчас увидели, что я качаю в P2P, вы бы никогда со мной больше не заговорили. Например, великое творчество Димы Билана. Всё потому, что среди наших тесных рядов затясалось несколько любителей попсы, а музыку к конторскому новогоднему празднику готовлю я.

Обсуждая с одним знакомым музыку, мы выяснили причину holy wars. Действительно, невозможно представить себе разработчиков нашей компанией за горячим спором «C++ против Java», ибо тему все понимают. В мировой же музыке разбираются далеко не все. (Впрочем, иногда holy wars вызываются и другими факторами, например, различием в опыте. Но в любом случае, несомненно, что единственно правильную точку зрения будет иметь мифический человек с бесконечным опытом.)

Про вёрстку с помощью CSS и отделение содержимого от представления. Недавно придумали с товарищем пример для подражания:

<div id="border_2px_solid_black">
<div id="text_align_center" class="f6f6f6">
Hello, world!
</div>
</div>

Приятно взглянуть на свой блог и подумать, что он тебе нравится.