четверг, 31 марта 2011 г.

В офисе завелся воришка

Фирма купила две кофеварки. Но с условием, что любители кофе скинуться и компенсируют стоимость. Дело добровольное, никто никого не заставлял, просто поставили на кухне ящичек для сбора пожертвований. Я кофе практически не пью, а кофеварками пользоваться вообще не умею, поэтому не скидывался. Денег собрали достаточно, но в последний момент ящик вдруг оказался пустой :(

А ещё в этой компании принято дарить открытку и деньги тем, кто увольняется. Я, кстати, раньше часто мучался, не знал, что написать на открытке, особенно если плохо знаю человека. "Good luck!" - банально, так делает половина других сотрудников. И вот выход нашелся: теперь я всем пишу: "Желаю удачи! Валентин". Но на русском языке! Денег в конверт кидают немного, обычно мелочь. Но поскольку в офисе человек 70-80, то на пиво уже хватает. Так вот, в последний раз открытка до человека дошла, а конверт с деньгами кто-то спер...

Печально. Я понимаю, когда такие вещи случаются в огромной корпорации, но у нас вроде такая семейная атмосфера...

Ещё один откат транзакции

Через LinkedIn постучался очередной рекрутер. Зарплату указал хорошую. Отправил ему резюме и забыл. Он присылает описание вакансии, у меня захватывает дух: подхожу не только по техническим навыкам, но и отлично знаю предметную область. Потому что эта фирма - наш конкурент. Пишу: "Да, мне нравится. Кстати, я заметил у них на сайте несколько ляпов, связанных с SEO".

Всего через полчаса рекрутер звонит, сам слегка обалдевший: "Клиент очень хочет тебя увидеть. Им очень понравилось резюме. Ты, кстати, очень удачно упомянул про SEO - они как раз сейчас собираются этим заняться. Обычно долго думают, а тут прям сразу ответили. Сегодня можешь?" Работаю я в центре, а ехать в Кингстон, это около часа. Так что перенесли на другой день. Причем на 6 вечера, что для меня очень удобно, не пришлось отпрашиваться с работы (у нас довольно гибкий график, можно прийти пораньше, а в 5 уже уйти).

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

Собеседование прошло отлично. Технические вопросы были на удивление простые. Мы много говорили о бизнесе: им всё было интересно про нас, а мне - про них.

Например, моя нынешняя компания живет в основном за счет отличного SEO. Поэтому, когда Гугль слегка меняет свои алгоритмы, нас частенько лихорадит: сместились с первой позиции на третью, сразу резко падает посещаемость и т.д. Наверное, процентов 30-40% наших проектов так или иначе связаны с SEO. У конкурентов совсем другой подход: они в основном ориентированы на SEM, т.е. на платный трафик. У них база из 3-4 миллионов ключевых слов, и биды назначаются полностью автоматически! Это такая нехилая задачка по оптимизации. Не уверен, что мой грозный преподаватель Лисицкий её бы решил :)

Мы сейчас используем Velocity (AppFabric Caching). Но администраторы не совсем довольны: говорят, что она работает неустойчиво. Поэтому собираемся попробовать Membase. А конкуренты - наоборот: пробовали Membase, он работал нестабильно, поэтому перешли на Velocity. И, по их словам, теперь всё работает отлично.

Как обычно спросили "есть ли вопросы?" Я достал блокнотик со своими рацпредложениями. Обсуждали их минут 45, они почти со всем согласились, коё-что записывали и очень хвалили.

И всё-таки я не был уверен в успехе. Потому что на стандартный вопрос "расскажите о Ваших недостатках" сильно увлекся и рассказал больше, чем нужно :) Но нет, это не помешало. Пригласили на второе собеседование. Просто потому, что один из начальников был в отпуске. Второе собеседование тоже прошло отлично. Они прямо сказали, что очень хотят меня видеть в команде. Здесь редко так говорят прямо сразу, даже если человек понравился, обычно принято хоть немного выждать.

Я был очень доволен. Мало того, что интересная работа и хорошая зарплата, так ещё и рядом с домом: от Уимблдона до Кингстона всего 25 минут на автобусе. Автобус идет практически "от двери до двери". По лондонским меркам это не расстояние. Правда, есть свои преимущества, когда работаешь в центре Лондона, а не на окраине. К примеру, в обеденный перерыв можно сбегать за визой в посольство... или на собеседование...

Единственное, что мне немного не нравилось - придется работать с VB.NET и стариканом SQL 2000. Ну, это мы переживем...

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


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

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

"Понимаешь, они не могут платить зарплату, которую ты хочешь. Потому что столько же получают их лучшие программисты. Если тебе дать столько же, и они узнают, то обидятся". Да, я понимаю, fair enough. Редко бывает, что новичку платят больше, чем заслуженным ветеранам. Я бы понял, если бы они сказали, что я чего-то не знал, или что английский был неважный. Но ведь в описании вакансии была написана зарплата от X до Y+. Т.е. в принципе не больше Y, но если человек очень понравится, то "могут натянуть". Я просил ровно Y, ни больше, ни меньше. Они с самого начала знали, сколько я хочу. Не надо было писать в объявлении сумму, которую вы заведомо не можете платить!

"Всего лишь через полгода всем будут повышать зарплату, и тебе тоже". Моя мама на это сказала: "Ну, вот пусть и звонят тебе через полгода!"

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

"Если сразу дать тебе большую зарплату, то не останется потенциала для роста". В жопу ваш потенциал! Дайте денег, мне надо платить за квартиру!

Конечно, хищные особи из семейства Хомо Рекрутерус не оставляли меня в покое. Они, небось, уже выбрали себе новый автомобиль, а тут такой облом... Даже хотели повести меня на обед, чтобы там уломать.

Но я, как Штирлиц, упорно стоял на своем. Давайте Y.

- До какой суммы ты готов торговаться?
- Ни до какой. Пусть дают, сколько обещали.
- А если они предложат на сотню меньше?
- Нет. Даже на фунт меньше меня не устроит.

Прикольно вообще, что здесь не принято, чтобы кандидат и работадатель торговались напрямую. Это происходит через рекрутера (конечно, за исключением случаев, когда работу ищешь напрямую, но такое бывает редко). Точно так же, через посредника, часто торгуются при покупке или съеме жилья. Я это не очень понимаю.

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

Кстати, для улучшения negotiation skills очень рекомендую передачу Dragon's Den. Там, бывает, показывают, как миллионеры-инвесторы чморят недотепу-изобретателя, говорят, что ничего не выйдет... но я уже вижу, что в глазах у них забегали чёртики. На самом деле они заинтересовали, но просто хотят подешевле урвать больший кусок будущего бизнеса.

И вдруг я понял, что работать в этой компании точно не смогу. Такое же ощущение было почти четыре года назад, когда меня тут кинули в первый раз. Даже если вдруг дадут обещанную сумму, я уже не могу. Хорошие ребята, рядом с домом, вроде как стабильная компания... наверное, я делаю ошибку... И вполне вероятно, что не кинут, что на самом деле со временем повысят зарплаты и дадут бонус. Но - не могу. Новая работа должны быть радостным событием. Она не должна начинаться с разочарований!

Работодатель это тоже понял, так что меня перестали уговаривать. Опасно нанимать недовольного программиста и давать ему доступ, к примеру, к номерам кредиток и т.д.

На прощание слегка удивил рекрутер:

- Часто бывает, что кандидаты слабые, но это не про тебя, конечно. Мы бы были очень рады продолжить сотрудничество с тобой.
- Да, конечно.
- У тебя есть на примете две-три компании, куда бы ты хотел попасть? Пришли мне их названия, и я попробую тебя туда продать...

Т.е. я сам должен найти клиента, а он просто меня "продаст"? Спасибо, но обойдусь без сутенера...

Custom Search Ads

Вчера Гугль запустил новый продукт для AdSense под названием Custom Search Ads. Сегодня на форумах все задают один и тот же вопрос: а чем же он отличается от обычного AdSense for Search?

Честно говоря, я тоже не сразу въехал. Как я понял, задумка такая: AdSense for Search следует используется, когда вебмастер хочет дать пользователям возможность искать любой документ на сайте (а возможно, даже и во всем Интернет). В то же время Custom Search Ads - это дополнение к "бизнес-ориентированному" поиску, уже существующему на твоем сайте. Допустим, пользователи уже могут искать на сайте автомобили по году выпуска и модели. Ты не хочешь использовать AdSense for Search, потому что он выдаст кучу результатов в гуглевском дизайне. Вместо этого ты хочешь выдать десяток своих объявлений, в своем формате, плюс ещё одно, два или три гуглевских объявления (причем не где попало, а именно в той части странице, где ты хочешь).

Одну вещь я, правда, не понимаю: Гугль говорит, что ты должен передавать им поисковую строку, использованную пользователем, без всяких изменений. В то же время LemonFree.com (сайт, который они приводят в качестве примера) конструирует поисковую строку из кусочков ("cars" + модель + год + город и т.д.) Я думаю, нужно дождаться, пока Гугль приведет в порядок terms and conditions, сейчас там есть и другие скользкие моменты.

Вообще продукт вроде нужный, особенно если используешь Ajax. Я вот только не понял, что теперь будет с Adsense for Ajax? Будет ли Custom Search Ads его заменой?

среда, 30 марта 2011 г.

NHS staff at risk

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

Наличие отсутствия

Англичание любят канцелярит не меньше советских чиновников. Вот свежий пример из рекламы Barclays: terms and conditions, including exclusions, apply ("включая исключения"). Напоминает: "среди присутствующих отсутствует".

вторник, 29 марта 2011 г.

Зачем нужен ZoneEdit?

Есть сетевики среди читателей? Кто-то может объяснить в двух словах, в каких ситуациях нужен ZoneEdit?

Вот какая у меня проблема. Похоже, сглазил - перехвалил своего провайдера ASP Host Central. Вдруг перестал работать сайт, возвращает HTTP 502. Проверил его с помощью mydnscheck.com, и получил такие предупреждения:

T+2.27s WARNING: unable to get NS record set from delegated nameservers, error: REFUSED

T+3.43s Querying NS12.ASPHOSTSERVER.COM for SOA for MyCompany.UA
T+4.43s ERROR: cannot get SOA for MyCompany.UA from NS12.ASPHOSTSERVER.COM: query timed out

T+4.43s Querying NS2.ASPHOSTSERVER.COM for SOA for MyCompany.UA
T+4.53s WARNING: lame delegation! NS2.ASPHOSTSERVER.COM is not authoritative for MyCompany.UA

Вроде понятно, в чем дело. Мой домен (зарегистированный на NIC.UA) направлен на nameservers NS12.ASPHOSTSERVER.COM и NS2.ASPHOSTSERVER.COM. Первый из них отваливается по таймауту, а второй вообще типа знать не знает про мое доменное имя. При это вчера всё работало, и никаких настроек не менял. Может, этот mydnscheck.com неправильно работает? Попробовал сделать nslookup.exe со своего компьютера - результаты такие же.

Сайт у меня пингуется (вот это я не понимаю - пингуется, но при попытке открыть возвращает HTTP 502). Просил попробовать нескольких человек с Украины. У некоторых работает, а у некоторых и не работает, и не пингуется. Наверное, потому, что DNS - штука инерционная?

По IP-адресу нашёл ещё сотню сайтов, которые хостятся на том же сервере. Выборочно попробовал штук 5-10. Та же фигня: NS12 отваливается по таймауту, а NS2 вообще знать не знает про такой домен. Т.е. эта проблема вроде как не только с моим сайтом.


Написал в техподдержку ASP Host Central. Они отвечают: "Похоже, Ваш украинский регистратор очень придирчивый. Бесплатно зарегистрируйтесь на ZoneEdit.com и направьте туда свой домен".

Эта идея мне не понравилась по нескольким причинам:
1) Я же вижу проблемы с их nameservers, и не только с моим сайтом. Вряд ли эта проблема именно из-за "придирчивого украинского регистратора".
2) ZoneEdit позволяет бесплатно создать только две зоны. А меня - один основной домен, плюс аж шесть псевдонимов (MyCompany.com.ua, MyCompany.co.ua, МояКомпания.com.ua и т.д.). Т.е., вероятно, придется платить.
3) Один из этих псевдонимов зарегистирован не у NIC.UA, а у ИТЛ. Получается, что у меня не один, а целых два "придирчивых украинских регистратора"? Совпадение? Или они намекают, что все хохлы - идиоты?
4) Отзывы про ZoneEdit.com тоже не очень хорошие, они тоже иногда ломаются.
5) Мне посоветовали в A record на ZoneEdit прописать IP-адрес. Получается, если ASP Host Central вдруг перенесет мой сайт на другой IP-адрес, то всё сломается.
6) Лишнее звено в цепи - лишняя возможность для сбоев.

Но делать нечего, попробовал сделать, как советовали. И действительно, вроде помогло, но... почему-то все мои псевдонимы (которые по-прежнему указывали на NS12.ASPHOSTSERVER.COM / NS2.ASPHOSTSERVER.COM) вдруг тоже заработали. С помощью nslookup.exe снова проверяю NS12.ASPHOSTSERVER.COM - он заработал. Т.е., похоже, проблема решилась не из-за моих действий, а сама по себе.


Вот сижу теперь и думаю. Зачем мне нужен этот ZoneEdit? Может, и без него всё будет работать? У NIC.UA тоже, кстати, есть возможность использовать их nameserver и создать там A record. Т.е. если я хочу напрямую прописать IP-адрес (что, наверное, не очень хорошо), то вроде как вполне можно обойтись и без посредника?

Книгоблокнот

Как вам известно, я работал в большом издательстве. У нас там стоял огромный шкаф с бракованными книгами: обложка в порядке, но все страницы - абсолютно чистые. Их можно было брать домой. Здесь, да и в Америке тоже, некоторые любят ставить дома шкафы с сотней "декоративных" книг. В пабах тоже частенько так делают. А ещё эти книги можно было использовать как блокноты.

Рассказал про это коллегам, а они подкинули идею: можно было прийти на скучное совещание с интересным детективчиком, а всем соврать, что книгоблокнот.

пятница, 25 марта 2011 г.

Массовка

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

четверг, 24 марта 2011 г.

Караул, слишком много трафика!

Сразу оговорюсь, речь не об этом блоге. Читайте на здоровье :)

Недавно перетащил сайт с GoDaddy на ASP Host Central. Почти год собирался с силами, чтобы это сделать :) В принципе, пока доволен. ASP Host Central одновременно поддерживает MySQL, PHP, MS SQL и ASP.NET, поэтому в перспективе можно постепенно перевести сайт с PHP/MySQL на ASP.NET/MS SQL. Правда, этим я занимаюсь уже много лет, и пока никак не получается :) Пока что из всех прелестей Windows-хостинга использую только URL Rewrite (конечно, такая же функциональность есть и под Линуксом, но не так удобно, как мне кажется).

Но есть и другие преимущества. Во-первых, ушла проблема с DNS. Раньше пользователи время от времени попадали не на наш сайт, а на страницу GoDaddy, которая гласила, что якобы домен продан. Это их пугало. Особенно наших рекламодателей, которые заплатили задолго вперед :) Эту случалось редко, но регулярно.

От GoDaddy постоянно не доходили письма о регистрации, которые отправлял мой PHP-скрипт. Особенно на mail.ru. Причина простая: их SMTP-сервером пользуются тысячи или десятки тысяч сайтов, из них кто-то наверняка рассылает спам. И, конечно, весь SMTP-сервер со временем попадает в чёрный список. Мы несколько раз просили mail.ru исключить его из чёрного списка, это помогает только на время. Когда я настроил SPF record в DNS, стало лучше, но ненамного. Можно было бы пользоваться внешним SMTP-сервером, но и тут облом: по соображениям безопасности GoDaddy это не позволяет. А вот ASP Host Central вроде бы (тьфу-тьфу) доставляет почту нормально. Наверное, потому что у них намного меньше клиентов.

Во время пиковых нагрузок на GoDaddy время от времени не удавалось подключиться к MySQL. На ASP Host Central я пока такого не видел. Может быть, потому, что MySQL у них установлен на localhost, а у GoDaddy - на другой машине.

Документация корявая у обеих провайдеров. Но техподдержка у GoDaddy намного хуже. Какой-то сложный вопрос решить по емейлу там нереально, надо только звонить. Добиться, чтобы поменяли какие-то настройки или установили новую версию библиотеки? Ну, если несколько тысяч человек в блогах напишет "GoDaddy - говно, у них не хватает того-то", то, возможно, через годик они это и исправят. Они ничего не хотят трогать: слишком много клиентов, слишком страшно что-то сломать. ASP Host Central же - полная противоположность. Я просил их делать довольно серьезные (в смысле не совсем безопасные) вещи, вроде установки .NET Framework 4 или разрешения дополнительного модуля для PHP. В течение пары часов обычно вопрос решается.

Есть только одна проблемка. В самом дешевом плане, на который я подписался, предусмотрено 15 ГБ трафика в месяц. А у меня, оказывается, сейчас аж 25! На GoDaddy у меня было неограниченный трафик, поэтому за цифрами особо не следил. Даже в голову, что может быть так много, ведь на сайте вообще нет видео, и почти нет картинок, PDF или DOC. Защита от hotlinking включена.

Общий дискового пространства, которое я использую, всего лишь 500 Мб (причем сюда входит не только статические файлы, но и база данных с индексами, различные логи и пр.) Грубо говоря, получается, что в течение месяца сайт полностью выкачивается во внешний мир более 50 раз! Нехило...

Наверное, все проблемы от наглых роботов. Судя по логам, больше старается Feedburner. Я в свое время зарегистрировал там около 40 фидов, которые частично дублируют друг друга. А он и рад стараться: целыми днями качает и качает. Вот думаю, что надо объединить эти фиды в один - это должно немного снизить трафик.

В Интернете полно советов, как повысить трафик. Но очень мало статей о том, как избавиться от безполезного трафика :)

среда, 23 марта 2011 г.

Тиомобиль

Видел на улице машину Тио (известный бизнесмен, участник телепередач Back to the Floor и Dragon's Den). Невероятно блестящий белый Maybach с номером RYM4N. Ryman - это один из его бизнесов, сеть канцелярских магазинов.

Машина стояла как минимум пару часов, и, похоже, всё это время двигатель работал.

вторник, 22 марта 2011 г.

Ланч с рекрутерами

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

А вот вчера меня не только напоили пивом, но и накормили обедом (заодно и сами поели, расплатившись корпоративной кредиткой).

Прогресс налицо :)

Паб "Шерлок Холмс"

Ходили на Масленницу на Трафальгарскую площадь. Мероприятие прошло, как обычно: досмотр сумок, давка (площадь не очень большая), шашлыки, мусор, относительно старые песни. После пошли искать паб. Но мы не одни такие умные - ближайшие пабы были забиты русскими и примкнувшими к ним. Но в "Шерлоке Холмсе" (возле Embankment) неожиданно оказалось много свободных мест на втором этаже.

Только там обязательно надо есть. Если просто пьешь - иди вниз, где людей побольше.

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

Нас было человек 10. Все, кроме одной девушки, которая есть не хотела, сделали заказы.

- Если Вы не будете есть, то Вам придется покинуть помещение!
- Хорошо, я закажу, когда подойдет мой муж.
- А когда он будет?
- Минут через 20-30.

После этого каждые 10 минут официантка переспрашивала: ну, и где муж? когда уже, уважаемая, начнешь кушать?

Формально, конечно, она права, но вообще-то могла бы и закрыть глаза на правила, ведь 9 из 10 человек заплатили за еду.

Доели.

- Будете что-то ещё есть?
- Нет, спасибо.

И нам принесли счет. Это в Англии очень редко бывает. Обычно не приносят, пока сам не попросишь. Ладно, заплатили. Собрались выпить ещё по кружке пива, ан нет!

- Вы не можете пить, пока не закажете еду.
- В смысле? Мы уже поужинали у вас, зачем нам еда?
- Ваш счет закрыт, я не могу на него записать пиво.
- Так что, нам спуститься в бар и принести пиво оттуда?
- Нет. Вы не можете тут пить пиво, принесенное из бара. Можно или снова заказать еду на всех, или спуститься в бар.

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

Пустой офис

На палубу вышел, а палубы нет...

Приехал на работу, вышел из лифта... а офиса нет! Напротив лифта - просто белая стена! Замуровали демоны? Только через секунду сообразил, что это не стена, а пожарная дверь. Она автоматически закрывается в случае пожарной тревоги, чтобы перекрыть кислород.

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

Переезд: откат транзакции

Падение в финансовую пропасть продолжается, поэтому мы собрались переехать в квартиру подешевле. Нашли вариант через агентство. Первый неприятный сюрприз: задаток надо платить аж 500 фунтов, а не 100-200, как обычно. Ну ладно, всё равно эти деньги потом пойдут в счет оплаты, так что неважно. Второй сюрприз: по 55 фунтов с каждого за проверку рекомендаций. В прошлый раз мы платили только за Марину, поскольку я всё равно не работал. Но в этом агентстве говорят, что они проверяют всех жильцов, а не только ответственного квартиросъемщика. Третий сюрприз: хозяин квартиры потребовал, чтобы мы пришли к нему на собеседование. Ну ладно, может, это и к лучшему? Заодно обсудим, может ли он забрать из квартиры лишнюю мебель...

Оказалось, что хозяин живет прямо в том же доме, над "нашей" квартирой. Из его окна отлично виден наш дворик, и есть дырка в заборе, ведущая в его двор. Индусский дедушка старой закалки. Посадил нас, как на допросе, достал блокнот. Ему не понравилось, что у нас нет машины, и что Марина не работает. И что нас двое, тоже: "Вообще-то я хотел сдать квартиру одинокому профессионалу".

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

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

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

P.S. Прикол: в новой квартире есть встроенная посудомойка, но индус, который там живет, никогда ей не пользовался. Использует её как дополнительный шкафчик.

Удалось войти в Google Books

Больше месяца назад написал в службу поддержки Google Books о проблеме со входом. Наконец, пришел ответ: "А мы по-русски не понимаем, пишите по-английски". Написал.

Прислали ссылку, чтобы восстановить пароль. Ссылка не работает, потому что вроде как уже истекла. Предлагает попробовать ещё раз. Пробую - присылают ту же самую ссылку, она снова не работает. Написал в службу поддержки ещё раз. Прислали другую ссылку, и она сработала.

Проблема решена, но я очень удивлен. Получается, у Гугля нет единой системы авторизации пользователей? Ведь тот же самый аккаунт я использую для Gmail, Analytics, Adsense и пр., и он отлично работал везде, кроме Books..

пятница, 18 марта 2011 г.

Музей тенниса

Полтора года живем в Уимблдоне, и вот, наконец-то, добрались до музея тенниса. И то только потому, что в гости приезжал мой сокурсник. Вначале я опозорился - повел его на стадион, где, как оказалось, проводят автогонки. Потом всё же попали в нужное место. Бесплатно пройти можно только магазин сувениров, а за экскурсию надо платить фунтов 20. Заплатившим вешают на руку бирки, чтобы "зайцы" не примазались.

Мы в теннисе вообще не разбираемся, поэтому платить аж по двадцатке совершенно не хотелось. Поэтому пошли в кафе, а оттуда проникли на смотровую площадку главного корта. Красиво! Впечатлений вполне хватило. Застекленная площадка для туристов выходит очень близко к корту. Все до одного сиденья накрыты чехлами. Корт гораздо меньше, чем кажется по телевизору. Это как бы подчеркивает элитность корта и тенниса вообще.

понедельник, 14 марта 2011 г.

Google Custom Search и breadcrumb

Я сделал на некоторых страницах сайта breadcrumbs (с использованием Microdata, хотя это и необязательно). Отображение адресов в Гугле изменилось примерно так:

Старое:
domain.com/productid=123243

Новое:
domain.com > Электроника > Компьютеры

Замечательно! Правда, пока он так отображает только новые страницы. Старые переиндексировать не хочет.

Но теперь возникла небольшая проблемка с Google Custom Search (поисковое окно, размещенное непосредственно на моем сайте). Очевидно, этот продукт немного отстает в развитии от основного сайта Гугля. Страницы, куда я ещё не добавил breadcrumb, или добавил, но они ещё не переиндесировались, отображаются нормально. А вот те, которые в Гугле с красивым breadcrumb, теперь показываются так:

Заголовок страницы
Текст текст текст

Заголовок страницы
Текст текст текст


Никакого адреса (ни обычного, ни "красивого") под текстом нет.

суббота, 12 марта 2011 г.

Новый пузырь

Отличная песня про нынешний дотком-бум 2.0 (на английском). Просмотрел три раза.

Думаю, всё так и есть. Похоже, пора переползать из веб-компаний обратно в банки...

Here Comes Another Bubble 1.1

пятница, 11 марта 2011 г.

Добрый гений

На сайте добавили новые разделы. Теперь нужно туда перенести часть старого контента. К сожалению, сайт устроен так, что нет удобного способа это сделать через интерфейс администратора, возникают проблемы. Поэтому прислали мне список изменений, который я собирался воплотить в жизнь с помощью SQL-скриптов.

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

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

В принципе, один подозреваемый есть. Один парень в свое время сообщил нам о нескольких местах, где можно было сделать SQL Injection. Но доказательств нет.

Было, правда, и другое объяснение в духе Shutter Island: может, у меня провалы в памяти, и изменения я внес сам?

Скачал архивы с логами IIS. Нет, похоже, я таки не шизофреник: и свежий архив логов за март, и один из старых архивов были модифицированы сегодня. Похоже, что он давно что-то прощупывал, а теперь замел следы. Но, опять-таки, это сделано очень аккуратно! Ведь хакер мог просто грохнуть компрометирующие его логи, а не возиться с редактированием!

Это прямо какой-то капитан Немо или Супермэн вируального мира...

четверг, 10 марта 2011 г.

Глюк на CW Jobs

Позвонил рекрутер: "Ты вчера обновил свое резюме на CW Jobs, вот я и решил позвонить..." А я последний раз его обновлял, наверное, уже года полтора назад. Может, взломали мой аккаунт? Но кому он нужен, там вроде ничего особо ценного нет... Или просто рекрутер перепутал?

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

Ошибка в сертификате Pass Plus

После экзаменов по вождению мы с Мариной проходили Pass Plus. Прежде всего, для себя, ну, и для скидки на автостраховку тоже.

Только вот незадача - в Маринином сертификате написали "Марьяна". Оказывается, наш инструктор перепутал, а мы не проконтролировали.

DLVA - тоже "молодцы". Выходит, что они набирают имя водителя вручную? Я-то, наивный, себе представлял так: приходит письмо от инструктора (ADI), они вначале пробивают его номер и убеждаются, что такой инструктор действительно существует и имеет право принимать Pass Plus; потом по номеру прав проверяют, что водитель существует; сразу получают его имя и адрес. А всё оказалось проще.

Страховым компаниям требуется только номер сертификата, поэтому, возможно, ошибку бы и не заметили. Но на всякий случай я написал емейл в Pass Plus team. Честно признался, что ошибка произошла по нашей вине. Думал, что они потребуют денег и/или справку от инструктора. Но нет, моего емейла оказалось достаточно. Почти через три месяца бесплатно прислали исправленный сертификат. Старый назад не потребовали.

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

понедельник, 7 марта 2011 г.

Seal

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

Один переводчик выделялся из общей массы. Как говорят по-английски, "не боялся пройти лишнюю милю". Он сидел в Первой Нотариальной Конторе, имя не помню. Во-первых, к переводам он пришивал цветные копии документов - большая редкость по тем временам. Оригиналы иногда сканировал прямо сразу и отдавал. Во-вторых, он не просто переводил текст, но и пытался сохранить дизайн оригинала: использовал таблицы, подбирал похожие шрифты; вместо нарисованного трезуба писал State Emblem of Ukraine и т.д. Думаю, это внушало уверенность в том, что перевод качественный. В-третьих, он переводил все тексты на печатях и даже подписи, если там был какой-то осмысленный текст.

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

Seal:
Ministry of Health Protection of Ukraine

Signature: A. Ivanov


В частности, таким образом я перевел наше свидетельство о браке. До сих пор пользуюсь этим нотариально заверенным переводом, и каждый раз краснею: ведь печать на документе - это вообще-то stamp (штамп), а не seal. Seal - гербовая печать на конверете или тюлень, морской котик, пломба, клеймо, торжественный обет, SEAL (спецподразделение ВМС США) и т.д. Скорее всего, иностранец поймет, о чем речь, но будет смеяться.

С тех пор, используя это свидетельство о браке, мы получили американскую, английскую и несколько шенгенских виз. Интересно, замечал ли кто-то из офицеров гордую эту надпись курсивом: "Морской котик: Министерство юстиции Украины"? Думают ли о загадочных украинцах, которые разводят тюленей в министерствах или выжигают клеймо на свидетельстве о браке?

Это элементарно, Валиксон!

Год назад начальник долго искал программиста и жаловался, как трудно найти хорошего специалиста. Меня это слегка удивило, потому как ситуация на рынке вроде была неважная. "А не воспользоваться ли Монстром вместо услуг рекрутеров?" - спросил я. Меня тогда не услышали.

Сейчас ситуация повторяется. Только рынок оживился, и людей найти ещё тяжелее. Наши рекрутеры берут примерно от 7 до 14 тысяч за голову программиста, но это, как я понимаю, ещё относительно низкие цены. Поэтому лучших кандидатов они отправляют более щедрым работодателям, а нам остаются "отходы".

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

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

Вот то, что я люблю про свою работу. Даю совет людям, которые вроде бы профессионально занимаются вопросом (например, HR или SEO). Высказываю мнение дилетанта. "Ладно, подумаем..." А через некоторое время посеянная идея дает всходы, и они именно так и делают. Правда, обычно потом никто не вспоминает и не благодарит. Но мне всё равно приятно. На прошлой работе в таких ситуациях обычно довольно грубо отвечали в том смысле, что не лезь не в свое дело, сиди и дави клавиатуру, а мы сами разберемся.

Телефончик иммигрантки

Оказывается, мой инструктор по вождению раньше работал в Home Office. Заставили написать заявление по собственному желанию за то, что он взял телефончик у девушки, пришедшей за визой. "Начальник, этот старый пердун, просто позавидовал, что она дала свой номер мне, а не ему".

Выбило свет

Воду нам и раньше отлючали из-за строительных работ, а вот свет - в первый раз. Вечером в субботу выбило. У нас газовый котел, но без электричества не работает. Однослойные окна, тонкие стены - быстро стало холодать. Горячая вода и духовка - от электричества. Хорошо хоть, что печка газовая. Более того, как раз на такой непредвиденный случай у нас были в запасе спички и свечи.

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

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

Пару недель назад во дворе перестали светиться фонари. Интересно, не связаны ли эти события друг с другом...

На блоге

Игорь Корхов говорит, что правильно писать "в блоге", а не "на блоге". Потому что "блог" - это "журнал", и никто не говорит "я написал статью на журнале" (впрочем, а что если ты написал её ручкой на обложке журнала?)

Но я всегда относился к своему блогу как к "сайту", а не как к "журналу". Журнал для меня - это ЖЖ. Там стандартный интерфейс, реклама споносоров... А у меня - свой домен, гибкий механизм настройки шаблонов, возможность использовать плагины, отсутствие рекламы... Почти что полноценный "сайт". При желании даже можно скачать все посты и комментарии через Blogger API, и перести его с Blogger на любой другой движок...

Какие будут мнения? Как правильно говорить - "на блоге" или "в блоге"? Когда Розенталь писал свой справочник, блогов ещё не было...

Собеседование в пабе

Бывало, что рекрутеры приглашали на чашечку кофе, но на пинту пива - это в первый раз! А потом ещё пошли на концерт камерной музыки, где пела его подруга. Правда, за билеты, к моему горькому разочарованию, пришлось платить самому.

Теперь он меня приглашает ещё на два концерта, где уже сам поёт. Надо как-то вежливо отказаться... тем более, что job description он пока так и не прислал, только обещает :)

Заменитель hierarchyid в MySQL и других базах

Почти каждому программисту когда-либо приходилось создавать таблицу вроде: Category (CategoryID, Name, ParentCategoryID). Это так называемая The Adjacency List Model. Работать с ней довольно легко, когда у тебя только два-три уровня; но если больше, то обычно возникают сложности.

Если вы работаете с MS SQL 2008, то для работы с деревьями очень удобно использовать новый тип данных hierarchyid. Но что делать тем, у кого MySQL?

Нашёл отличную статью про The Nested Set Model, которая решает многие проблемы. Правда, упрощая чтение данных, она усложняет модификацию дерева. Но для многих приложений это приемлимо.

Описанный метод в принципе можно применять не только с MySQL, а и с любой другой реляционной базой данных, которая не поддерживает деревья out-of-the-box.

четверг, 3 марта 2011 г.

Короткий день

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

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

Постояли, и шеф разрешил желающим идти домой. Потому что неизвестно, сколько ещё ждать. Я сначала стеснялся, а потом вспомнил, что Марина хочет сходить на выставку фотографий Veolia Environnement Wildlife Photographer of the Year, а самой ей скучно.

Билет ей продали почти в два раза дешевле, потому что безработная. Я думал, попросят какую-нибудь справку из центра занятости, которой у нас нет (потому что нам пособия всё равно не положены). Но нет, поверили на слово.

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

Вдохновленная выставкой, Марина потащила меня в парк фотографировать уток, белок, лебедей, цапель и крыс. Долго лазили и очень промерзли.

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

А эвакуация была из-за подозрительного свертка. Думали, что бомба.

Псевдокандидаты

Псевдокандидаты

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

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

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

- Кстати, Вы не спросили меня, почему меня сократили на прошлой работе.
- Да, почему?
- Меня ненавидели коллеги.
- А почему они Вас ненавидели?
- Потому что я их ненавидела!

Но это ещё цветочки. Некоторые пытались раскрутить на судебный процесс о дискриминации:

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

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

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

Ratings by outbrain