Как Google ищет сотрудников?

Рубрика: Google, Работа | 21 May 2008, 12:00 | Vadim Voituk

Помните, где-то года так 2 назад, по сети блуждала новость о том, как Google искал сотрудников развешивая на биллбордах математические квесты-задачки. Например вот эта.

Суда по всему Google не отказался от своей затеи, правда немного поумерил масштабы.

Вот такое рекламной обьявление вчера было мне показано в GMail.

При клике попадаешь на страницу cо списком инженерных вакансий Google в Европе.

Что называется точное  таргетирование обьявления :)

Added:
Несколько заметок о том, как я проходил собеседование в Google: начало, продолжение и окончание истории.

LinkedIn Architecture slides on JavaOne 2008

Рубрика: Development, Java, LinkedIn | 20 May 2008, 10:25 | Vadim Voituk

На прошедшей в Сан Франциско на прошлой неделе конференции JavaOne компания LinkedIn провела 2 сессии об архитектуре и взаимодействии компонент своей социальной сети.

Первая презентация имеет название “LinkedIn – A Professional Network built with Java Technologies and Agile Practices”

Очень интересный overview о базовой архитектуре и реализации компонент LinkedIn и организации процесса разработки и тестирования.
Лично мне было интересно узнать о технологиях и библиоетках используемых для реализации столь масштабной архитектуры.
Оказывается, что LinkedIn на 99% реализаован на Java и использует Spring (со своими расширениями), ActiveMQ, Eh-cache, Lucene, HttpClient, Jetty, Louis, Groovy/Grails, DWR, Hudson, Eclipse+Mylyn, Jira, JUnit, HtmlUnit, MySQL, Oracle RDBMS и другие.
Оставшийся 1% не-Java кода – это С++ реализация огромного графа связей в постоянной памяти (так называемый Сould). [Далее...]

Salut aux Armes

Рубрика: Just a life | 19 May 2008, 15:21 | juriy

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

На выходных удалось-таки реализовать давнее желание – поиграть в страйкбол. Что такое страйкбол? Отчасти похож на пейнтбол – только вместо шаров с краской используют цельные пластиковые шары. Вторая существенная разница – оружие в страйкболе внешне и по весу почти не отличается от настоящего, только стреляет пластиковыми шарами. Скорость вылета шара из ствола – 90-140 м/с (в зависимости от того, какой внутренний тюнинг поставил хозяин). Ощущения от попадания самые разные – от простого хлопка (если попали по камуфляжу) до полнейшего “чёрт-подери”, если попали по лицу (благо редко такое случается).
Ощущения неописуемые: лежишь в укрытии между веток, прижавшись щекой к прикладу ждешь пока появится из-за дерева ничего не подозревающий опонент. Ну или наоборот: тихо и медленно подходишь к “базе”, высматривая защитников за каждым деревом. А потом “контаакт три часа четверо…”, и полетели струи белых шаров.
Драйв… искать в каждом дереве укрытие и думать наперед, что будет если в следующий момент начнут стрелять, огрызаться длинными очередями из окопа и поддерживать огнем заходящих с флага товарищей.
На “игру” потратил все воскресенье – с 11 до 6 вечера. Домой пришел уставший но счастливый и как-то даже подобревший. С нетерпением жду корпоратива – будет страйкбол. Так что, еще постреляем :-)

Для тех, кто заинтересовался:
http://militarist.com.ua/

Just for Fun фриланс 5 – Партнерка от GAF

Рубрика: Development, Работа | 19 May 2008, 13:14 | Vadim Voituk

В предыдущих своих рассказах об опыте работе на фриланc-бирже GetAFreelancer.com я упустил одну достаточно забавную и интересную особенность – партнерскую (или аффилиатную) программу от GetAFreelancer.

Суть её состоит в том, что после регистрации вы получаете уникальный партнерский/реферальный URL (в моем случае это http://www.getafreelancer.com/affiliates/voituk/). После этого каждый зарегистрированный по этому URL учасник биржи становится вашим рефералом и все его комисии, заплаченные в пользу системы (за выигранный проект, за Gold-аккаунт, за публикацию проекта etc) переходят к вам.

Вообще я особо не верю в подобные пирамидальные схемы, но тем не менее, в предыдущих постах реферальную ссылку указывал (скорее на авось, чем с надеждой на этом заработать).
Каково же было мое удивление когда я в интерфейсе GAF по ошибке кликнул на список платежей и увидел 2 “незнакомых” платежа ($25+$12).
Немного приглядевшись стало ясно,  что это 10% комисии за выполненный проект + плата за Gold Account  которые выполнил на GAF один из читателей этого блога. (не спрашивайте как я его узнал и нашел :)

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

Также предлагаю для ознакомления список лидеров партнерских программ на GetAFreelancer.com.
Видно, что суммы там совсем не заоблачные, как могло показаться изначально.

Введение в Scala

Рубрика: Java, Ссылки | 13 May 2008, 17:52 | Vadim Voituk

Вчера, при написании заметки про каррирование замыканий в Groovy, вспомнил о том, что не так давно на developerWorks.ibm.com читал отличную вводную статью о функциональном языке прграммирования для JVM – Scala.
Собственно сама заметка:
На русском: Scala для Java-разработчиков: Функциональное программирование вместо объектно-ориентированного
In English: Java developer’s guide to Scala: Functional programming for the object oriented

Must read для каждого, кто хочет хотя бы понять принципы функционального программирования на простом примере. А также предварительно прочитав это – must read для тех, кто не хочет :)

Updated:

Чет меня все ещё не отпустила романтика ФЯ, потому приведу ещё несколько русскоязычных заметок на тему Scala:

Буду рад, если кто-то поделится ещё толковыми статьями этой тематики.

Groovy: Comparator closure & currying

Рубрика: Development, Groovy | 12 May 2008, 22:41 | Vadim Voituk

Есть в Groovy такая возможность, как currying (каррирование что-ли?) замыканий.
Само понятие прийшло из функционального программирования и означает преобразование функции с один количеством агрументов, в функцию меньшего количества путем “фиксации” значений некоторых аргументов.
Например есть функция f(x,y,z), тогда её каррированием по фиксированному значению арргумента x=10 будет функция Λ(f)=f(10, y, z).
Термин currying прозшел от имени известного математика Хаскеля Карри, и ещё иногда называется  Шейнфинкелизацией (от имени Украинского математика Моисея Шейфинкля, который изобрел это понятие)

Покажу небольшой пример того, как можно использовать каррирование замыканий в Groovy. [Далее...]

Groovy Testdrive

Рубрика: Development, Groovy | 12 May 2008, 12:18 | juriy

Начитавшись вдоволь книг и статей про Groovy мы решили опробовать этот инструмент на практике, чтобы получить о нем более полное представление. Ведь читая книги, создается образ “великого и всемогущего Groovy”. Так это или нет мы решили выяснить при помощи небольшого тест-драйва. Эта заметка – небольшой отчет о том, что у нас получилось. Команда состояла из авторов этого блога – Войтюка Вадима и Буры Юрия.
Когда в заметке встречаются рассуждения от первого лица – имеется в виду автор заметки (Юрий)
Начали мы с выбора проекта: хотелось написать что-то достаточно интересное, наглядное и разносторонее, поэтому мы остановились на простой многопользовательской игре. Первая мысль была – написать сетевой биллиард, но мы быстро поняли, что большая часть работы это физика движения шариков. Так, потратив большее количество времени на реализацию физ. движка мы, в лучшем случае, получим модель движения шайб с идеальными бортами.
Остановились на клоне всеми любимой игры Battle City. Не ставя перед собой слишком больших целей (совместного времени у нас было всего-то 5 часов) мы условились добиться синхронного движения танка на двух компьютерах.

[Далее...]

Simple Archive WordPress Plugin

Рубрика: Development, Блоггинг | 11 May 2008, 19:30 | Vadim Voituk

Уже неоднократно от читателей блога слышал жалобы на то,  что архив блога слишком “длинный”, “нечитабельный” и неструктурированный.
Решив исправить данную ситуацию, за вечер набросал простенький wordpress-плагин для отображения архива.
Его то вы сейчас и можете наблюдать в sidebar-е блога вместо стандарного архива WordPress.

Страница с описанием плагина, тут же инструкции по установке.

P.S. Предварительно пробовал воспользоваться существующими аналогами, но что-то они меня не впечатлили: либо не то, что хотелось, либо слишком сложные, либо через-чур монстроообразные.

P.S.S. В скором времени планирую “причесать” и выложить ещё несколько собственных плагинов для WP.

Google Talk Labs Edition

Рубрика: Google | 10 May 2008, 16:03 | Vadim Voituk

Есть у Google такая “фишка”, как “клеить” своим продуктам наклейку “BETA” и выпускать в свет.
Началось это ещё с выхода в public GMail-а (который кстати по прошествии туевой хучи лет все ещё BETA), и продолжается почти с каждым новым продуктом от Google.
В последствии моду “переняли” и современныи WEB-стартапы, а слово BETA – перестало означать глючный и недоделанный продукт. Ему на смену из тени вышли “Alpha” и “Pre-Beta”.

Так вот, возвращаясь к заглавию заметки, удалось мне попробовать следующую версию Google-евого Jabber-клиента – Google Talk Labs Edition.

Сразу же делюсь впечатлениями:
Минусы:

  • Звонить не умеет (работает только как чат)
  • Большей части функций нет (управление контактами, настроек подключения, )
  • Интерфейс неимоверно тормозит
  • К тому же “жрет” кучу памяти и процессорного времени
  • Активные чаты собираются в закладки (я такого не люблю)

Плюсы:

  • Показывает нотификации не только на GMail но и на события из календаря
  • То же и с нотификациями из Orkut (не проверял)
  • Приятнее внешний вид нотификаций
  • Поддерживает груповой чат (как в web-интерфейсе GMail)
  • 3 набора смайлов
  • Есть возможность отключить все нотификации на час времен

Тем не менее, приложение больше походит на скомпилированный в EXE, флешевый Google Talk Gadget.
Не удивлюсь если окажется что так оно и есть.

Напрашивается вопрос – зачем выпускать в свет настолько недоделанной приложение, если есть более или менее нормальный аналог, к тому же более функциональный?
Если с выходом беты GMail все кое-как понятно (услуга новая, не возможно угадать нагрузки, Ajax плохо поддерживается браузерами), то что побудило Google сделать, да ещё и выпустить в свет такое убожище – для меня остается загадкой.

P.S. Загрузить и попробовать новую версию GTalk можно здесь (хотя я этого не рекомендую:).

Groovy gotchas

Рубрика: Groovy | 6 May 2008, 10:44 | juriy

Есть в англоязычном айтишном мире такое выражение “gotcha”: этим понятием обозначают поведение, неожиданное для пользователя. В русском языке есть куда более родное слово, которое намного точнее описывает суть: грабли.

Вот пара маленьких грабель языка Groovy, которые я обнаружил за вчерашний вечер.

1. Сравнение и эквивалентность.
В тех книгах, которые я успел прочесть указывается: “Groovy maps the == operator to the equals( ) method in Java.” Наш ответ: вот такой вот код:

[Далее...]