LE Blog

Инженер с поэтической душой

28.03.2010 firtree_right Блоггерские будни

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

24.03.2010 firtree_right Процесс приёма правок в проекте с открытыми исходниками

opensource

Введение

Для работы в проекте с открытыми исходниками весьма удобна распределённая система контроля версий. Я использую git. Понятно, что есть процесс с использованием патча, высылаемого по почте, но этот процесс не является эксклюзивным для распределённой системы контроля версий. Поэтому я опишу процесс с так называемым pull request.

Постановка задачи

Пишет мне некто Tallak Tveide, сообщая, что он сделал копию моего проекта у себя на github и внёс несколько правок, которые ему были необходимы, и от которых другие ребята, пользующиеся этой библиотекой только выиграют. Ветка, в которой находятся нужные мне правки, называется eos_40D_bugs. Это довольно кстати, что нашёлся человек с Кэноном, потому что я испытываю всё на Никонах :)

Каковы же мои действия?

Решение

Заходим в наш локальный рабочий репозиторий и добавляем новый источник правок:

git remote add tallakt git://github.com/tallakt/gphoto4ruby

Теперь рассмотрим правки:

git fetch tallakt eos_40D_bugs:develop

Эта команда заберёт из репозитория tallakt с ветки eos_40D_bugs исправления и создаст локальную версию в локальной ветке develop. Чтобы увидеть исправления:

git diff develop

Что выдаст нам исправления относительно текущей ветки.

git checkout develop

Чтобы работать с правками и тестировать то, что получилось.

Если я пока не готов сливать исправления с основной веткой master, но хочу ещё поработать с этим из разных мест, то мне нужно создать ветку develop в моём центральном репозитории на github, который относительно локальной копии у меня обычно называется origin.

git push origin develop

Это создаст ветку develop на удалённом репозитории, с которой я потом смогу работать из другого локального репозитория, выполнив:

git pull origin develop

После того, как я доволен изменениями и хочу сделать официальный релиз:

git merge master
git branch -d develop
git push origin master
git push origin :develop

Первая команда, предполагая, что текущая ветка — develop, сливает её в master. Вторая команда удаляет локальную ветку develop. Третья команда отправляет изменения в ветку master на центральном репозитории. Четвёртая команда удаляет ветку develop на центральном репозитории.

Материалы для самостоятельного изучения

  1. Несколько шпаргалок от github
  2. Дельная документация по git

Послесловие

Как вы заметили, в этом году мои статьи сопровождаются прекраснейшими тематическими картинками авторства Ирины Троицкой — моей прекрасной супруги. Её перу также принадлежит дизайн сайта и логотипа.

21.03.2010 firtree_right За игры

Сегодня приходил Ксан и рассказывал, как один профессор по игровому дизайну сделал на своих занятиях для студентов систему уровней и опыта. Студенты зарабатывали XP, приходя на лекции и делая доклады и получали уровни, позволяющие в конце легче получить оценку. Нетрудно предсказать результат.

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

Так как я тоже трачу на игры часть своего времени, то решил составить свой рейтинг. Критерием оценки является то, прошёл ли я игру или бросил. :) Ссылок давать не буду, кому интересно — можно забить в гугл: не одному мне они нравятся.

  1. На третьем месте игры, в которых я дошёл до последнего уровня или босса, но сам последний уровень бросил.
  2. Psychonauts, аркада, гениальная задумка, очень красиво, но очень аркадный последний уровень.
  3. Star Wars K.O.T.O.R., рпг, можно стать джедаем и махать световым мечом, но умения моего персонажа и его компаньонов, которые я развивал и подбирал, оказались абсолютно непригодны для финального босса.

  4. На втором месте игры, которые я прошёл один раз.

  5. Квесты: Goblins (очень старая игрушка, очень хорошая), Siberia (красиво) , ГЭГ (отечественный продукт с эротическим уклоном и острым юмором), Samorost (и вторая часть тоже), Machinarium (клёвые роботы, трогательный стим-панк), etc.
  6. Mass Effect, рпг, космическая одиссея, немного трудная боевая система.
  7. Portal, единственная в своём роде головоломка от первого лица, гениальное изобретение. Обязательно пройду ещё раз и перенесу в другой список.
  8. Fable, рпг от Микрософта, красочно.
  9. FarCry, приятный шутер, вмеру кинематографично, много свободы (но не слишком), динамично.
  10. Crimson Land, аркада на отвести душу.
  11. Rayman Raving Rabbids, выдающиеся персонажи-кролики, приятные мини-игры.

  12. Игры, пройденные более одного раза.

  13. Half Life 2, очень кинематографичный шутер, гениальное изобретение — гравипушка.
  14. Loco Roco, я купил PSP ради другой игры (которую, кстати, забросил), а играю только в эту.
  15. Plants vs. Zombies, это казуальная игра (tower of defense, по сути), как и предыдущая, но что-то заставляет к ней возвращаться и проходить основной сюжет не один раз.
  16. Hitman: Blood Money, стэлс, очень стильная игра, очень необычная роль персонажа (наёмный убийца), возможность выбрать подход к выполнению задания исходя из личных предпочтений.
  17. Full Throttle — это единственный квест, который приятно пройти более одного раза, очень старый, очень эпический.
  18. Might and Magic VII, рпг, старое и лучшее в серии, можно выбрать путь добра и зла, за зло играть легче.
  19. Beyond Good and Evil, от третьего лица, шедевральное совмещение аркад, головоломок, квестов и рпг.
  20. Mass Effect 2, вторая часть трилогии, учтены все недоработки первой части, это просто конфета, не могу оторваться, можно перенести персонажа из первой части и тогда тебе припомнят все выборы, что ты сделал в ней.

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

А во что играете вы?

18.03.2010 firtree_right Вот и в Киеве

Пока я тут вечерами занимался достижением No One Left Behind и Long Service Medal в Mass Effect 2, Яндекс выпустил панорамы Киева. Про игры я отдельно напишу чуть попозже. А на панорамах в Киеве запрятаны восемь лосей. Примерно вот таких. Объявлены поиски восьми таких лосей в украинском Яндекс-блоге. Приятно, когда люди разбираются в лосях.

05.03.2010 firtree_right Аватар

Волна отзывов уже давно прошла. Но по поводу этого фильма я заметил, что мне довольно сложно высказать однозначную оценку. И вот как раз сегодня с помощью кино-блога «Афиши» нашёл рецензию, которая затрагивает те моменты, которые фоном не давали мне покоя с того момента, как главный герой открывает глаза под финальные титры. Что касается графики и красоты — безусловно прекрасный фильм. Что касается философии — прекрасно даёт направление мысли Славой Жижек.

26.02.2010 firtree_right Вернулся

back from holidays

Давненько я не обновлял этот блог :)

Всё дело в том, что где-то там был Новый Год, в который я торжественно посетил родителей. До и после Нового Года была сдача панорам Санкт-Петербурга и ещё одного пока не скажу какого города.

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

Теперь, когда я снова в Москве, этот блог вернётся к своему обычному режиму. Спасибо всем, кто был со мной в прошлом году. Этот год обещает быть очень интересным.

23.02.2010 firtree_right А тут снежок

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

Поездка на о. Бали завершена. Как раз отдохнул столько и так как хотел. Обязательно туда вернусь.

Что касается целей, то остаток следующий:

  1. Океанский пейзаж, конечно, смотрел. Сработала моя нелюбовь к лежанию на пляже. Приехал, покупался, устал, высох, поехал обратно. Зато запомнил вид на бассейн с крыльца.
  2. Человечка раскрасил два раза.
  3. Сезон дождей на о. Бали в феврале — самое оно. В январе я бы не рискнул ехать, а в феврале — непременно.

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

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

А вот такие листики, пожелтев, с грохотом падают с пальм:

16.02.2010 firtree_right Значки

К предыдущему посту хочу добавить и пояснить. Это демонстрация особого принципа, который я давно наблюдаю в работе программиста (то есть моей работе).

Я как можно дольше старался сохранить из детства веру в то, что, грубо говоря, если ты себя ведёшь хорошо, то всё у тебя сложится хорошо, а если возникли проблемы, то потому что плохо себя вёл. Такая вера натягивает на мир плотную пелену «магичности», появляются «знаки» и «кармические узлы». Что, в свою очередь, превращает жизнь в следование «знакам» с полной потерей из вида любых возможных конечных измеримых целей.

Так вот, любая более ли менее сложная программистская задача в составе своём опирается на 60-95% оборудования и стороннего ПО. Над этим оборудованием и ПО разработчик, перед которым стоит эта задача, не властен или властен опосредовано. И иногда возникают такие ситуации, что прямо одно за одним, это падает, то не позволяет сделать, это виснет, то ломается. Но задачу нужно решить. И в любой момент можно определить, решена задача или нет.

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

14.02.2010 firtree_right Потоки

Сегодня выдающийся день. Попробую адекватно его описать.

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

Пополнить мне сотовый счёт поблизости отказались. Тут хитрая система пополнения баланса. Есть ребята, которые пополняют баланс со своего мобильного и берут за это чуть больше (рубля три сверху). А так как воскресенье, то большинство пополнятелей отдыхают.

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

Первая мысль была, на всё забить и сидеть дома. Но и этот план был против шерсти. Тогда я решил начать сначала: пополнить сотовый и снять денег, потом ужин. К тому же дождь кончился. В ближайшей к вилле точке пополнения мне никак не хотела приходить смска с подтверждением перевода денег. По английски никто не говорил. Пока я отвечал родителям на смски текстом «бог простит. и вы меня простите», мне принесли телефон, на другом конце которого был англоговорящий человек, рассказавший мне, что смска мне обязательно придёт, волноваться не о чём, можно ехать дальше, заплатив за услугу.

Я подумал : «Хорошо!» А потом подумал: «Всё равно никуда от меня не денетесь, рядом живу, бензин покупаю». И тут пришла смска, потом я быстро снял денег, дозвонившись в банк с первого раза в тихой банкоматной кабинке и мы поехали ужинать.

Городилова, когда чихает, говорит: «Будь здоров, спасибо, Христос воскрес!» А сегодня как раз китайский Новый Год, день св. Валентина и Прощёное Воскресенье.

Поэтому всех влюблённых и не влюблённых с Новым Годом! И простите меня кому я нагадил осознанно или неосознанно в период с прошлого Прощёного Воскресенья!

13.02.2010 firtree_right Ещё знаки

Коллекционировать дорожные знаки — это вообще отдельная фишка. Не уверен, что хочу этим заниматься плотнее. Однако, сделал подборку, чтобы продемонстрировать местные акценты. Здесь нет бесполезных или абстрактных знаков. Вот, например, запрещение стоянки или остановки:

no parking

no stopping

Предупреждающие знаки в оранжевых ромбах. Вот, например, дети переходят дорогу:

children crossing

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