среда, 31 августа 2011 г.

Электронный Днепропетровск

Microsoft будет делать из Днепропетровска "электронный регион". Дело, наверное, нужное. По сути вопроса у меня возражений нет.

Но обратил внимание на две интересные вещи. Во-первых, блог украинского отделения Microsoft работает на WordPress. Это при том, что у них есть свои платные CMS-решения, на которых, вероятно, и будет строится проект для Днепропетровска. Знаменитый принцип "we eat our own dog food" не сработал. Мало того, что используется движок WordPress - сам сайт тоже хостится на WordPress.com. Или это их новая фишка - поддерживать LAMP?

На портале "Відкрита влада»" я нажал на ссылку "Охорона здоров'я" в закладке "Громадянам" ("гражданам"). Увидел URL:
http://www.openpower.dp.gov.ua/ODA/OpenPower.html#chap=sitezen&sub=byCategory . Очевидно, chap=sitezen означает Chapter - Citizens ("раздел - Граждане"). Только вот в слове citizen сделали две ошибки. Конечно, это подробности реализации, и, строго говоря, не ошибка, но как-то сразу производит плохое впечатление... Да для SEO чуть-чуть нехорошо.

пятница, 26 августа 2011 г.

Акцент - всему голова

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

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

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

Два кошмара

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


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

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

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

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

среда, 24 августа 2011 г.

Поставь на место!

Зашёл в Теско, собирался купить стиральный порошок. Повертел его в руках, передумал, поставил и вышел из магазина.

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

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

понедельник, 22 августа 2011 г.

В Гибралтар нельзя

На форумах часто обсуждался вопрос, в какие страны можно ездить с британской визой HSMP. Похоже, кроме Гибралтара никуда. Раньше ещё можно было в Швейцарию, теперь нет.

В Швейцарию мы успели съездить без визы, а в Гибралтар так и не собрались. А времена меняются. У нас уже не HSMP, а Tier 1. Поскольку получена в Великобритании, то называется она уже не "виза", а "residence permit". Решил проверить, какие правила сейчас. И вот что я прочел на официальном сайте:
Those nationals who feature in the chart above but hold valid UK Multiple entry visas which have been issued for 12 months or more, regardless of category (not including residence permits), are eligible to enter Gibraltar (at the ultimate discretion of the Immigration Authorities) without the need for an additional visa.


Т.е. если есть долгосрочная виза, то можно. А вот если residence permit, то нельзя. Я решил, что что-то неправильно понимаю. Может, они имееют в виду какие-то специальные разрешения (например, для беженцев), а не то, что у нас? Написал запрос, получил такой ответ:
Thank you for your e-mail enquiry.

The paragraph states that all multiple-entry UK visas issued for 12 months or more are valid for entry to Gibraltar, except Residence permits.

Unfortunately unless a residence permit is issued with ILR it is not valid for entry to Gibraltar and therefore you will require an additional visa to enter Gibraltar.

You can apply for an additional visa through the London Passport office visa issuing department, you can contact them on 0207 901 7542, their office opening hours are 11am-4pm.


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

Шарики

Возле магазина стоит внедорожник с открытым багажником. В багажнике лежит большой мешок. О, ужас! Мешок шевелиться! А рядом стоит здоровенный водитель в наколках! Я замедлил шаг и собрался было звонить в полицию...

Оказалось, в мешке лежали воздушные шарики. Оказывается, их надувают гелием заранее, а не в магазине.

P.S. А между тем в центре Уимблдона до сих пор не со всех зданий сняли защиту от погромов. В Аргосе вообще всё окна забиты ДСП. Честно, я уже привык, даже начинает нравится такой дизайн. Оказывается, совсем недалеко от нас, в Colliers Wood во время погромов сожгли довольно большой магазин. А мы ведь туда недавно собирались переезжать - жилье там подешеле. Но и пострашнее - это сразу было видно.

Работа из дома во время Игр

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

Всё это замечатетельно, но недостаточно. Работа из дома - это ведь не просто сидение за своим домашним компьютером. В большинстве случаев используется ещё некая технология удаленного доступа (Windows Remote Desktop, TeamViewer и пр.) Во-первых, потому, что нужен доступ к данным, часто конфиденциальным, которые опасно копировать на домашний компьютер (вдруг его украдут?) Во-вторых, часто требуется доступ к дорогому лицензионному софту, который было бы незаконно устанавливать дома.

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

пятница, 19 августа 2011 г.

Суперкроссворд

В конце 90-х годов прошлого века в "Харьковском Курьере" печатали кроссворд на целую полосу (газета большого формата). Разгадавшим давали денежные призы, довольно хорошие. Сумма примерно как моя месячная программисткая зарплата. Но словечки заковыристые, а Гугля в те времена ещё не было, так что разгадать было непросто. Всегда у нас оставалось несколько слов.

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

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

Вспомнил почему-то об этом случае и подумал: интересно, действительно ли нам просто не повезло? Или работники "Курьера" специально заготовили одну-две такие "ловушки"?

понедельник, 15 августа 2011 г.

Антонов

Смотрел передачу Monster Moves. Маленький военный самолет нужно было перевести из Канады в США. Для этого использовали могучий украинский "Антонов".

Английский у украинских пилотов был, конечно, похуже, чем у дикторов Би-Би-Си: когда ведущий упомянул слово rush ("спешить", "торопиться"), то летчик решил, что речь идет про Рашу и поправил: "Мы с Украины!"

Зато со смекалкой у наших всё в порядке. Когда стали закатывать самолет в раскрытый зад "Антонова", то оказалось, что въезд слишком крутой - хвост военного самолетика задел был летное поле и сломался бы.

Буржуи в панике. Час простоя "Антонова" стоит 4 тысячи долларов. За погрузку отвечают они, а не команда "Антонова". Хватаются за голову, лихородачно читают в инструкции к самолету, что написано про хвост. "Да что, они, идиоты? Ведь понятно, что надо просто что-то подложить самолету под колеса, и заезд станет не такой крутой," - подумал я. Украинские летчики так и сделали: пока англосаксы читали книжки, наши подложили пару досок и всё затащили. Simples! :)

Голос за кадром во время погрузки: "Уверен, сейчас раздается много украинского мата!" На самом деле летчики говорили по-русски, и вполне пристойно.

четверг, 4 августа 2011 г.

Сумочка на Бейкер Стрит

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

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

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

Случилось это на Бейкер Стрит, недалеко от музея Шерлока Холмса. Может, он специально выбирал себе в районе, где для него много интересной работы? :)

Сериализация в AppFabric Caching

Как известно, AppFabric Caching ("Velocity") использует XML-сериализацию. На форумах часто задается вопрос: "Можно ли использовать binary serialization?" Т.е. можно ли слегка "сжать" кэшируемые объекты. Встроенной поддержки нет, но вроде ничего не мешает делать её самому. Какие тут могут быть недостатки? Единственное, что мне пришло в голову - формат кэшированных данных станет специфичным для платформы .NET, т.е. с ними не смогут работать программисты Java или там PHP... но на это плевать.

Сделал: перед каждой операцией записи сериализую объект в byte array, при чтении наоборот. Поначалу казалось, что всё замечательно: расход оперативной памяти сократился аж в 4 раза. Памяти в кластере у нас пока много, но важно и другое: снизилась нагрузка на сеть, ведь кэшируемые объекты стали меньше.

Но обнаружился подводный камень с local caching. Как я понимаю, если объект нашелся в локальном кэше, то API просто возвращает ссылку на него, без каких-либо дополнительных операций. Это работает очень быстро. В моем же случае получается, что в локальном кэше хранится не "настоящий" объект, а его копия, сериализованная в byte array. При каждой операции чтения её надо десериализовывать. Казалось бы, это не очень сложно, но если объект очень часто используется, то это может быть дорого. Например, если это - справочник валют, которые используется тысячи раз в минуту.

К сожалению, local caching реализовали прозрачно. Т.е. я не знаю, взят ли объект из локального или глобального кэша. В идеале я хотел бы "распаковывать" только то, что передается из кластера на клиента, но не то, что передается внутри клиента.

Пока Microsoft не усовершенствует API, моя рекомедация такая: если Вы пользуетесь local caching, то лучше использовать binary serialization только для тех объектов, которые читаются из кэша относительно редко.


Другой недостаток AppFabric: нет возможности выборочно включать и отключать локальное кэширование для различных ключей. Можно, правда, использовать две разные DataCacheFactory с разными установками, но Microsoft так делать не советует (потому что тогда, как я понимаю, удваивается количество соединений с кластером).

среда, 3 августа 2011 г.

Fire Warden app

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

В случае тревоги fire wardens (ответственные за эвакуцию сотрудники) надевают якро-зеленые накидки, берут с собой список и на уже на улице проставляют галочки - кто вышел из здания, а кто нет. Идея в том, чтобы пожарные знали, как много человек осталось в здании. Правда, непонятно, как это может работать на практике, ведь некоторые могут быть в отпуске, командировке, на обеде...

Я обратил внимание, что на проставление галочек уходит довольно много времени, да и людям приходится толпиться вокруг "эвакуатора". Подумал, что можно написать для этого приложение для смартфона.

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

После объявления тревоги fire warden нажимает кнопку "новая тревога". Он видит список "своих" сотрудников. Одним нажатием пальца отмечает тех, кто спаслись из здания, и они исчезают из списка. Дополнительно можно позволить снять отметку "спасся", проставленную по ошибке; или позволить работать со списком другого fire warden (если его нет на работе).

Отдел кадров затем может проанализировать, насколько быстро были проставлены галочки.

Вот идеи по дальнейшему усовершенствованию:

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

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

Добавить в фид фотографии сотрудников на случай, если fire warden не всех знает лично.

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


У самого времени нет этим заняться, поэтому дарю идею. Если кто-то заработает на ней миллионы, то не забудьте выставить мне бутылку пива :)

Жвачка против коронки

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

Только этого сейчас не хватало! Наверное, в копеечку влетит здесь это починить? Ехать в Харьков не хочется - сейчас, несмотря на отпуска, у Марины поиск работы пошел поактивнее. Моя первая мысль была: "Вот, блин, зачем мы встретили эту девушку. Не дала бы жвачку - зуб бы был ещё на месте!" Но на самом деле это к лучшему: ведь коронка могла бы отвалиться во сне, и Марина бы её проглотила...

И ведь нельзя сказать, что мы сильно экономили на зубах. Можно было бы на потраченные деньги купить хорошую подержанную машину! Импланты делали здесь; коронки, правда, уже в Харькове, но там это делал один из самых дорогих местных протезистов. Цены у него были сравнимы с лондонскими. И клей, по его словам, был самый лучший (в Харькове, в отличие от Лондона, надо отдельно платить за все расходные материалы).

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

Вот не знаем, что теперь делать со второй коронкой. Она вроде пока стоит нормально. Переклеить и её на всякий случай? Или не трогать, пока не беспокоит... и не жевать жвачку?

Багаж на рейсе Жуляны-Лутон

Покупали отцу билеты в Лондон, на Wizz Air. Помним, что когда летели на нем последний раз, то одно место багажа из Борисполя было бесплатное. Хм, а сейчас вроде как стало платным... Странно. Наверное, снова поменялись правила. Ну ладно, всё равно купили у них билет, потому что на требуемые даты Wizz Air был дешевле British Airways.

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

Написал жалобу, хотя сразу думал, что всё равно не вернут: рассматривать будут долго, и к тому времени им сложно трудно проверить, скольно на самом деле чемоданов отец провез. Действительно, в жалобе отказали, но совсем по другой причине: удивительно, но рейс Жуляны - Лутон обслуживает не Wizz Air Ukraine, а Wizz Air Hungary (у них бесплатного багажа нет)! Хотя раньше из Борисполя летало украинское подразделение компании.

P.S. Другой прикол: якобы обязательно нужно делать online check-in, иначе возьмут за это в аэропорту 5 евро. На самом деле из Киева online check-in делать нельзя, и 5 евро платить не нужно.

понедельник, 1 августа 2011 г.

Перенос тИЦ на новый домен

Несколько месяцев назад я перенес сайт на новый домен. Как положено, со всех старых страниц сделал 301 redirect.

В Google Webmaster Tools сообщил о смене адреса. Google переиндекировал довольно быстро. PageRank у нового домена стал такой же, как был у старого, всё старые ссылки учлись. А вот Яндекс никак не хотел переносить тИЦ. Я сделал, как они рекомендовали - в robots.txt добавил директиву Host: newdomain.ua , но это не помогло. Писал в поддержку - они ответили "ждите".

И вдруг меня осенило: может, надо делать 301 redirect не для всех страниц, а для всех, кроме robots.txt? Иными словами, страницы вида olddomain.ua/my-page1.html должны перенаправляться на newdomain.ua/my-page1.html, но не надо перенаправлять с olddomain.ua/robots.txt на newdomain.ua/robots.txt.

Попробовал - и действительно, уже через неделю мой старый тИЦ перенесся на новый домен. Я считаю, это глюк Яндекса; если происходит 301 redirect файла robots.txt, то для поисковика должно быть очевидно, что сайт переехал. Тем более, что я прописал Host, как они просили. В крайнем случае, надо было хотя бы описать эту особенность в документации...

Сокращения в HSBC

Читаю о том, что до 2013 HSBC сократит 30 тысяч человек... и думаю: "Пожалуй, хорошо, что не пошел к ним на контракт" :)

Ratings by outbrain