четверг, 17 февраля 2011 г.

Очередная статья

Подготавливая площадку для старых статей я написал очередную статью. Там я выпендрился и решил одну из задач с Code Jam не так как все.

Попутно возникло несколько идей для улучшения Google Sites. Уж больно он плохо обращается с кодом. Мог бы подсвечивать синтаксис и сворачивать в блоки, как на JavaFX.

Java.net blog

Год назад поменялся сервер на сайте Java.net. Всё стало более криво, но хотя бы работало. Так недавно репозиторий переехал в сановскую систему kenai. Соответственно, во всех моих статьях перестали работать примеры. Постараюсь медленно перетащить их на Google Sites.

Pages to Sites

Старая версия Google Pages переехала на новый движок. Кажется, новый движок гибче, но всё-таки чего-то не хватает. Хотя я мог и забыть. Это давно было...

All We Need Is Brain

Простенькая, но забавная головоломка:

Используя мозги (и свои, и чужие) выманиваем зомби из укрытия и уничтожаем.

Интервью

Сейчас прошёл телефонное интервью с известной конторой. Волновался так, что забыл слово Socket. Ещё бы! Пять лет не собеседовался...

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

Сначала меня спросили, что происходит с данными с момента ввода URL в браузере до получения ответа сервера. Я вспомнил лекции, которые читал студентам в ЛИАПе, и добрался аж до протокола TCP.

Далее меня спросили про двоичные деревья поиска. С математикой у меня что-то стало туго, но я таки вспомнил про сложность алгоритма поиска O(lg n), хотя вывести не мог. Потом надо было найти пересечение двух деревьев. Программу писал в Google Docs, а интервьюер её там смотрел синхронно. Написал простой перебор всех элементов сложностью O(n) и метод поиска сложностью O(lg n). Предложил способ оптимизации поиска для этого случая.

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