Archive for the 'personal' Category

Thanks, Google

Prologue

I've filed the request for attendance of Google Code Day in Moscow on September 1th. It should take place on October 28th. Yesterday I bought tickets.

 

Epilog

Today I got an e-mail from Google that says that there's no room left and I was not accepted. Thanks a lot.

Virtues of Programmer

Most of you are familiar with the virtues of a programmer. There are three, of course: laziness, impatience, and hubris.

Present


Photo by quakebum2k

The Sun gifted me glorious headphones. Sony MDR V700DJ. Sound is wonderful. Fit superbly. Thanks a lot!

A Long way to the first run

I’ve caught myself on coding something for a few days before I even run it first time. But when I do run it the first time it pretty much finished and the only changes I do a simple fixes like typos or minor logic corrections. Maybe some optimizations.

So I’m wandering if other do the same way or if they follow different methodologies in their work like “ship early, release often”.

Привет из космоса

Привет из космоса

Not an Employee

Not an Employee Badge

Die Git

В последнее время поднимается все больший ажиотах вокруг DVCS‘ов. Многие (по крайней мере в рельсово-рубевой среде) склоняются к Git‘у. Ну, вот я и решил попробовать.

Скажу честно, я о нем слышал давно уже. Он используется для разработки линуксового ядра и xmms2. В отличии от своих ближайших соперников - Mercurial‘а и Bazaar‘а он написан на C, а не на python и потому очень быстрый. Но, наверное, по той же причине Mercurial и Bazaar имеют гораздо более дружелюбній интерфейс. Bazaar, например, даже обзавелся графическической оболочкой, которая позволяет делать все необходимое.

Но не о них речь, а о Git’е. Я уже говорил, что он не очень дружлюбен. Вот несколько примеров. Сразу говорю - я пришел с Subversion’а и никапли не стараюсь быть объективным, а даже наоборот.

Поскольку Git очень хочет быть DCVS, то неотъемлемой частью работы есть бранчевание и мержи. Вот о мержах и поговорим. А вернее о конфликтах, как неотъемлемой их части.

При пуле конфликты показываются так:

Auto-merged app/models/event.rb CONFLICT (content): Merge conflict in app/models/event.rb

А вот в статусе нифига не понятно:

unmerged: app/models/event.rb modified: app/models/event.rb

Что самое плохое, автоматически не может смержить одинаковый код. Видимо, это связано с тем, что он не может понять кому в таком случае приписывать это изменение. Это связанно с тем, что Git хранит полную историю изменений при мержах, в отличии от того же Subvrsion’а.

< <<<<<< HEAD:config/initializers/google-geocoder.rb Geocode.geocoder = Graticule.service(:google).new GOOGLE_MAPS_API_KEY ======= Geocode.geocoder = Graticule.service(:google).new GOOGLE_MAPS_API_KEY >>>>>>> 14edde15cb190ebef2ef73e7ecf458c5b47853fd:config/initializers/google-geocoder.rb

Еще у него страшные проблемы с интуитивностью интерфеса.
Вот как зарезолвить конфликты? У SVN’а есть resolve. У Bazaar’а есть resolve. А у Git’а - update-index. Это рекомендовали на kerneltrap’е.

Edit so the files have sensible content

then use

git update-index

to tell git that that particular conflict has been resolved.

Это при том, что update-index вообще-то предназначен совсем для другого.

Вот несколько моментов. Однако, я намерен избавиться от Git’а очень скоро. Я не хочу больше возиться с такой непонятной штукой. Потому, как мержить придется часто и я не хочу, чтобы это было так тяжело.

Образование, работа и бабло

Education relevance chart

Забавная диаграммка нашлась в отчете по the Web Design Survey. Она показыват насколько близким к тематике работы было образование респондентов.

А завно то, что чем дальше от темы - тем больше бабала. Вот я и думаю зачем я учусь на программера, работая программером?

Status update

Визитка

Такая работа

Такая работа