Saturday, May 14, 2011

Переехал в Питер

Сбылась мечта идиота - меня приняли в команду хакеров. Кто бы что ни говорил, каждый гик с детства мечтает стать хакером ( как вариант - благородным пиратом, который не использует свое интеллектуальное превосходство и эрудицию в целях личного обогащения ). Вообще-то многие приравнивают нас к командам QA, но на таких мы косо смотрим и при случае бьем морду. Чтобы не было скучно, я реально втыкаю в работу и учу кодеров кодить ( да, опасная работа ), а так же все, что только можно, пишу на Ruby. Заодно я переехал в Питер, все подъемные спустил на новые ролики и подобные предметы первой необходимости. Теперь каждый день катаюсь на работу по набережным, обгоняя туристов на пароходах и катерах, в крутых желтых очках для вождения.
Ну да, а то, что добрая бухгалтерия выделила на съем квартиры, я потратил на Apple MacMini для сестрёнки (отчаялся перетащить ее на Линукс, ну хоть так). Так что второй месяц живу в ночлежках с другими прикольными бомжами, а так же с туристами. Новый день - новая компания. Англо-, франко-, хорвато- говорящие люди и вообще непоймикто каждый вечер ждут меня на кухне с вырвиглазно-оранжевыми стенами ( да, и еще финны и шведы! ), готовы перетереть за жизнь и за Питер в частности. Иногда разделить комфортабельный 10-тиместный номер с 15ю другими людьми бывает забавно. И даже еще лучше, если с кем-то в паре на одной койке :)
В Питере архитектурка, просто везде, даже не только в центре. Простое метро. И - на самом деле! - другие люди. Различия идут гораздо дальше, чем то, что они говорят "булка" и "поребрик". Еще пончики называются "пышки"! Шучу, различия еще больше. Например: в любой конторе сотрудник может запросто не явиться на работу, будь то пышка-кассирша в пышечной или врач-офтальмолог в салоне оптики. Или эксперт - аудитор безопастности ПО. Никто не парится, просто сообщают по телефону или почте: "Врач/delivery_manager/security_auditor/кто_угодно_хоть_директор_хоть_дворник сегодня не выйдет, приходите завтра, мы вас очень ждем :)" И все. И знаете что? В М/О на такое я бы обязательно зарядил разбор своих и чужих прав и обязанностей минут на 30, а теперь меня это вообще не парит. Я одеваю свои желтые очки и качусь дальше на своих роликах без тормозов и в огромных закрытых наушниках. Жизнь прекрасна! Девушки дают бесплатно, люди на улицах, когда просят закурить, не дают первым делом по зубам, водители уступают дорогу пешеходам и наоборот, и даже проститутки очень милы. Количество музеев в центре прибижается к 5% всех зданий вообще.
Мне хорошо. Теперь, когда я встречаю человека, едва справляющегося с эксплуатацией винды на своем ноутбуке, я не записываю его в кандидаты в удобрения. Вместо этого я думаю что-то вроде "Забавный чувак! Явный гуманитарий. Не всем же быть механиками своего самолета." Девушки, когда говорят, не вызывают у меня скрежета зубов. Если собеседница не блещет интересной речью, я легко абстрагируюсь и просто смотрю на грудь. А вообще-то, без шуток, я встретил кучу ярких интересных людей за последний месяй, в т.ч. просто случайно на улице.

Вывод: переезд лечит многое. Следующий пункт назначения - Китай!

Thanius - Castlevania (Vampire kickass mix) - SLAY Radio

Tuesday, September 28, 2010

Haskell Platform + OpenSuse 11.3

Как поставить Haskell Platform 2010.2.0.0 на OpenSuse 11.3? Зачем это делать - другой вопрос; предположим, ответ на него мы уже знаем (:   Народ с hackage.haskell.org все свои сорсовые инсталляторы делает с расчетом на уже присутствующий GHC. Поэтому надо сперва приобрести его. Для начала, воспользуемся репозиториями:

>sudo zypper addrepo -r http://download.opensuse.org/repositories/devel:/languages:/haskell/openSUSE_11.3/devel:languages:haskell.repo
>sudo zypper install ghc
>ghc --version
The Glorious Glasgow Haskell Compilation System, version 6.10.4

Ура! Компилятор есть, можно качать и ставить платформу:

>wget http://hackage.haskell.org/platform/2010.2.0.0/haskell-platform-2010.2.0.0.tar.gz
>tar -xzf haskell-platform-2010.2.0.0.tar.gz
>cd haskell-platform-2010.2.0.0
>./configure
...
checking version of ghc... 6.10.4
configure: error: The Haskell Platform version 2010.2.0.0 requires ghc-6.12.3
It is recommended that you upgrade to ghc-6.12.3 however if you
really want to use this release with an unsupported version of GHC
then use ./configure --enable-unsupported-ghc-version

Фигу! Старовата кобылка. Ладно, поверим на слово, не будем пользоваться чудесной опцией "все равно собирай, пользуй что есть", а вместо этого подновим GHC:

>wget http://darcs.haskell.org/download/dist/6.12.3/ghc-6.12.3-src.tar.bz2
>tar -xjf ghc-6.12.3-src.tar.bz2
>cd ghc-6.12.3
>./configure
>make
>sudo make install
>which ghc
/usr/local/bin/ghc
>/usr/local/bin/ghc --version
The Glorious Glasgow Haskell Compilation System, version 6.12.3

Идем обратно собирать платформу предварительно поставив все, чего недостает. У меня, например, не было freeglut-devel:

>sudo zypper install freeglut-devel
>cd ../haskell-platform-2010.2.0.0
>./configure
**************************************************
* Configuration completed successfully.
*
* Install prefix: /usr/local
* Haskell packages will be registered into
* the global ghc package database
*
* If you wish to change these settings then
* use --prefix= and/or --enable-user-install
*
* Now do "make" followed by "sudo make install"
**************************************************
>make
**************************************************
* Building Haskell Platform completed successfully.
*
* Now do "sudo make install"
**************************************************
>sudo make install

Можно пользоваться (:

>cabal update
Downloading the latest package list from hackage.haskell.org


>ghci
GHCi, version 6.12.3: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
Prelude> :quit
Leaving GHCi.

>haddock --version
Haddock version 2.6.1, (c) Simon Marlow 2006
Ported to use the GHC API by David Waern 2006-2008

Monday, September 20, 2010

Задачи к ночи перед техническим собеседованием


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

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

Начальник тюрьмы - чокнутый компьютерный маньяк - собирает зеков, и объявляет:
Можете собраться и спланировать стратегию, а потом всех по одиночкам и никаких перестуков. В камере для медитаций есть рубильник, по особому случаю отключенный от электрического стула, с двумя возможными положениям - вкл/выкл. Иногда, когда захочется, буду случайно выбирать одного из вас, кто пойдет в камеру с рубильником. Войдя, можно перещелкнуть рубильник или просто его не трогать. Никто кроме вас туда входить не будет. Ходить туда будете хоть до конца срока, торопиться некуда. В любой момент каждый из вас может объявить "Начальник, мы все уже тут были в камере для медитаций хотя бы по разу". Если это будет верно, всем амнистия, а нет - всех на корм крокодилам.
  1. Разработать выигрышную стратегию для известного начального положения рубильника
  2. То же для неизвестного начального положения.


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

Wednesday, October 28, 2009

Eraserhead

Иногда хочется, чтобы мне нравились какие-нибудь совсем другие фильмы. Другие чем что? Ну вот, например, сегодня кто-то выложил на местный трекер фильм “Eraserhead” Линча. Лет 20 я был им заочно очарован, после того, как однажды, будучи в начальной школе, прочитал обзор на клочке какой-то желтой прессы (сами понимаете, где я эту бумажку нашел). Тогда еще никто вокруг и не думал, что можно качать фильмы из сети – ведь и сети никакой рядом не было. А когда в городе появился интернет, эта информация у меня уже классифицировалась в забытые сны. Кстати, и сам обзор мне показался бредом наполнителя газет всякой мурой. Ну, короче, я его скачал и посмотрел. Вот теперь не спится.

Первые кадры фильма - задумчивое милое лицо мыслителя у главного героя, ретро на граммофоне, переплетающееся с музыкой водопроводных и вентиляционных труб – все это оказало на меня успокаивающее действие. Сразу вспомнилась вентиляция в подвальной университетской столовке, которую я приходил послушать, хотя кормили там не очень. Этот низкочастотный гул растворял в себе все тело, помещал эти кубические помещения ко мне в голову и наоборот. Потом потихоньку начали появляться персонажи, обещанные в тексте. Обещанные – не значит хотя бы приблизительно описанные, так как, полагаю, для передачи этого в тексте требуется больше, чем умение средних перестроечных авторов газетных статей. Мой любимый японский ч/б технотреш “Тетсуо – железный человек” просто отдыхает. Мое ощущение, что я смотрю это кино всю жизнь, усиливалось с каждой знакомой ситуацией на экране. Вот не знал, что моя стиральная машинка может издавать такие звуки. Когда этот динозавр-сперматозоид на экране стал вопить, стиралка подключилась. Даже не знаю, у кого страшнее получалось. Я очень переживал, думал, что из нее вся вода на пол вылилась и без воды она скрипит, что сейчас соседи в дверь постучат или еще что-нибудь, но оторваться, чтобы пойти проверить, просто не мог. Потом она еще вдруг так грохнула, как будто решила припрыгать в комнату, чтобы вместе со мной посмотреть. Периодически я проверял, сколько осталось до конца фильма, думал его выключить, но не выключил. За время просмотра я вспомнил десяток ситуаций с моим участием за последние годы, мое восприятие которых все это время уже было отлично запечатлено на пленке еще до моего рождения. Когда фильм закончился, я был рад, пошел проверил стирку, заварил чай и решил записать это в качестве предостережения. Правду говорят – оторваться невозможно, так что думайте, включать или нет. Не все кино одинаково полезно ;) Теперь у меня новый любимый фильм.

Tuesday, October 20, 2009

Machinarium

Ура! Труды мухомородизайнеров увенчались успехом. Теперь индивидуумы, которые всю жизнь ощущают себя маленькими задумчивыми роботами среди загадочных зверушек и зашкальных долбоебов из металлолома, могут, наконец-то, оказаться дома. Телепортатор тут : http://machinarium.net/demo/

Sunday, August 09, 2009

iPhone + Linux + VirtualBox

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

Но меня спасла Sun VirtualBox! Хотя тоже без пары приколов не обошлось, о чем я сейчас и расскажу. И если вы относитесь к тому типу людей, которые, увидев первое сообщение об ошибке обновления прошивки iPhone, начинают нервно бегать, грызть ногти и подвывать "ААааа! Нафига ж я вообще стал его обновлять, он же неофициальный, теперь никогда не включится!" , то, возможно, мой рассказ сэкономит вам полночи :)

Предположим, вы ужe поставили себе VirtualBox 3.0 на свой любимый линукс и взвели там какую-нибудь винду. Чтобы оставаться честным человеком и не нарушать лицензий, могу порекомендовать Windows7 RC - бесплатно аж до 2010 года, и отлично работает. Предположим, что и с сеткой у вас проблем нет - например, подсоединяем адаптер виртуалки через NAT. Потом Sun Guest Additions, iTunes, разрешить гостевой ОС доступ к USB, и (это уж как кому нравится, но я так делаю) сохранить snapshot - так, на будущее. Вдруг захочется снести тунец, в котором ваш бекап контактов лежит? Конечно, вместо снапшота виртуалки можно архивировать папку бекапа из скрытых-зарытых папок тунца, и называется она там нечитабельно.

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

то по возвращении, вместо сообщений "Все круто, расслабьтесь" и перезагружающегося телефона, непременно увидим месагу "Очень неизвестная ошибка номер х_Х" и нашего дружка в режиме восстановления. У меня так было, я ругался матом, даже скриншот не сделал. Но все оказалось достаточно просто, есть один маленький секрет ;)

Секретик:
  1. Во время обновления прошивки, iPhone несколько раз отваливается, и подключается как устройство другого типа. ( я насчитал 3 : в режиме DFU, в режиме восстановления и в норме)
  2. Гостевая ОС не видит этих новых устройств, пока мы не нажмем кнопку "подказать эту новую USB хрень"
  3. iTunes терпеливо ждет чуть не по минуте, пока iPhone покажется, но все же не бесконечно долго, и, в конце концов, кидает ошибку.
  4. Из первых трех пунктов делается несложный вывод: запустив этот долгий и нудный процесс, нельзя уходить от компа, надо постоянно погдядывать на лампочку активности USB нашей виртуалки, и если тунец показывает, что трудится над обновлением, а она долго не мигает, то надо быстренько на нее кликнуть и подключить то устройство, в которое превратился теперь iPhone.

Да, и еще: владельцам неофицальных мобилок на данный момент не рекомендуется обновляться на 3.1 - не включится, пошлет нафиг с вашей российской симкой. Зато есть 3.0 + redsn0w :) Правда вот, на линуксе я его так и не запустил - поставляется каким-то мутным бинарником, который в упор не видит библиотек, так что пользовал его все на той же виртуалке.

Удачи!

Wednesday, December 03, 2008

Linux chicks - geeks gone rampant!

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

- Девшки, здравствуйте! А вы, часом, не про Линукс разговаривали сейчас?
- Ой блин... ( Типа шоб вы провалились, придурки )
Ну они скривились как от зубной боли, стали отмахиваться и дальше пошли. Они, кажется думали, что какие-то реальные перцы подошли познакомиться, а тут такой облом :D У одной вообще глаза были - " ААА ! Гики по Москве уже бегают, с цепи сорвались и к девкам со своим Линуксом на улице пристают!"

Конец истории, мы от них отстали. Они, правда, зачем-то замедлили шаг и почти встали, но мы рассудили, что такие тёлки нам ни к чему. И сами пошли в другую сторону.