Monday, May 17, 2010

Краткое интервью для DevConf

Как тебе идея DevConf?

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

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

О чем твой доклад на конференции?

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

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

Лапаша как лапша. Приходите поку^Wпослушать.

На кого ориентирован твой доклад?

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

Monday, April 05, 2010

A challenge for a XS hacker

Recently we at Best Practical was discussing penalties of callbacks in RT. Callbacks are proved to be very good way to extend the web UI. We call a function from component, function checks for registered customizations for this particular place and calls them, so custom code can either change arguments or inject something into result stream.

Number of places where callbacks are called gets bigger and bigger. And an idea came to me. What if we can say to the caller to stop calling us. I believe it's possible to do.

For example a function gets called and at some point we understand that all the time for a live of the process we are going to escape or return the same value. In this case we call function that finds caller's optree and rebuilds it by injecting a constant. So it's runtime consting of function's result in a particular place.

I hope that experienced XS hackers may be interested, as there are plenty of users of this on the CPAN. Class::Trigger comes to mind.

Anyone?

Monday, March 01, 2010

Мастер-класс Request Tracker в Москве, Май 2010

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

Заполни анкету прямо сейчас. 15го Марта будет известна стоимость (еще есть возможность повлиять на эту цифру), точные даты и место проведения. Все подробности на странице о мероприятии.

Friday, February 19, 2010

Сегодня я люблю git еще больше

Как обычно это бывает, решил я маленькое изменение закомитить в trunk. Потом еще одно в след, по пути они пересеклись с измениями колег. Тут народ встал дыбом и решил, что последнее изменение нужно переделать. Пока я спал, сделали бранч с последним комитом и откатили его в транке, а первый оставили в транке. Утром я продолжил работу над новой веткой.

Работа закончилась и нужно отправить все клиенту, а у клиента версия X продукта. Понял, что пришло то время, когда необходимо изучить git rebase подробнее. Оказалось все просто и очень вкусно.

Копируем текущую ветку:

    git co -b tmp

Запускаем интерактивный rebase на нужную нам версию:

    git rebase -i tag-version-X

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

    :!git show <sha1-hash>

Далее можно использовать format-patch или git diff:

    git diff tag-version-X

И отправлять результат. По окончанию удаляем временную ветку:

    git br -D tmp