Sunday, October 23, 2011

Erlang Concurrent Program Template

-module(ctemplate).
-compile(export_all).

start() ->
spawn(fun() -> loop([]) end).

rpc(Pid, Request) ->
Pid ! {self(), Request},
receive
{Pid, Response} ->
Response
end.

loop(X) ->
receive
Any ->
io:format("Received: ~p~n", [Any]),
end.

Monday, September 19, 2011

git svn non-standard layout

Steps:
1. git svn init TargetDirectory
2. edit .git/config (refer to .git/config [svn-remote "svn"] section)
3. CD TargetDirectory
4. git svn fetch

.git/config [svn-remote "svn"] section
url = https://svn.domain.com:443/svn/sandbox
fetch = trunk/mysite:refs/remotes/trunk
branches = branches/mysite/*:refs/remotes/branches/*
tags = tags/mysite/*:refs/remotes/tags/*

* You can have zero or more fetch lines as long as the Git refs are unambiguous.
* 'branches' and 'tags' lines are each allowed to have a single asterisk (*) on either side of the colon (:) that acts like a wildcard -- the SVN directory name at the position of the asterisk will take the place of the asterisk on the right hand side (which must be the end of the line). Again, you can have zero or more of each of these as long as the left hand side of each is unambiguous.

Sunday, September 18, 2011

What Should My Commit Log Message Contain?

Determining what to put in your commit log message can be tricky when you first start out. At its barest, the message should contain all the metadata explaining they "why" of the commit.

Here's a few good commit messages:

* Changes from nested if/elseif statements to switch for readability.
* Removes experimental code after proven not useful.

Crafting the perfect log message is something of an art. It's something that you can learn by looking at the logs of other successful projects. Git's own log is a treasure trove of excellent commit messages.

Spend a minute or two with each commit you make, and summarize the changes the same way you would as if you were explaining them to another developer siting next to you. A great rule of thumb is to write a simple, one-line sentence that tersely explains the commit and then spend another few sentences fully explaining your commit.

Another thing to keep in mind when writing your commit message is who is going to read it. If humans are the only ones ever reading your commit messages, then straight English is fine.

If a program is going to read your log messages, you need to make sure you're including all the information it expects. There are tools that can read commit logs and update third-party tools such as ticket-tracking systems to show activity on tasks.

Sunday, March 27, 2011

我願意

思念是一種很玄的東西
如影隨行 無聲又無息出沒在心底
轉眼吞沒我在寂寞裡

我無力抗拒 特別是夜裡
哦 想你到無法呼吸
恨不能立即 朝你狂奔去
大聲的告訴你

願意為你 我願意為你 我願意為你
忘記我姓名 就算多一秒
停留在你懷裡 失去世界也不可惜

我願意為你 我願意為你 我願意為你
被放逐天際 只要你真心
拿愛與我回應 什麼都願意
什麼都願意 為你

我無力抗拒 特別是夜裡
哦 想你到無法呼吸
恨不能立即 朝你狂奔去
大聲的告訴你

願意為你 我願意為你 我願意為你
忘記我姓名 就算多一秒
停留在你懷裡 失去世界也不可惜

我願意為你 我願意為你 我願意為你
被放逐天際 只要你真心
拿愛與我回應 什麼都願意
什麼都願意 為你

我什麼都願意 什麼都願意 為你

Wednesday, March 09, 2011

Думаю о тебе

Новогодние огни, московский вечер,
И я жду нашей встречи.
Миллион горячих фраз из твоих губ
Хочу я слышать вечно.

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

Каждый новый день думаю о тебе,
Пусть Новый год принесет нам радость.
Живешь ты мной наяву и во сне,
И нам совсем недолго ждать осталось.

Думаю о тебе...
И нам совсем недолго ждать осталось...
Думаю о тебе...
И нам совсем недолго ждать осталось...

Кого ты ищешь или кого я ищу?
Я думаю, что я тебя прощу,
Пускай не отпущу, ты - на моей границе,
Тебя лишь выдают мокрые ресницы.
Я северной столице, ты в Москве опять,
И в этот поздний час хочу тебя обнять.
Ты дождись меня, я тебя прошу,
И если нужно время, то я докажу,
Докажу одно, почему я с тобой.
В этот Новый год рядом будь со мной,
Пускай все это продолжает жить,
Хочу я рядом лишь с тобою быть.

Пусть в Новый год случится чудо,
Что будем вместе мы, я верить буду.

Каждый новый день думаю о тебе,
Пусть Новый год принесет нам радость.
Живешь ты мной наяву и во сне,
И нам совсем недолго ждать осталось.

Думаю о тебе...
И нам совсем недолго ждать осталось...
Живешь ты мной наяву и во сне...

Sunday, February 27, 2011

Я Твой Враг

Твой враг
Я теперь твой враг
Твой враг

Дым сигарет
Старый букет
Сутки смотрю в телевизор
Настежь балкон
И молчит телефон
Задыхаюсь без тебя
И твержу про себя

Просто получилось так
Я теперь твой враг
За какое преступление
Просто получилось так
Я теперь твой враг
Я не попрошу прощения

Город не спит
Время стоит
С кем твои игры сегодня
День или год
Мне объявлен бойкот
Не пойму как дальше жить
Ты не можешь простить

Просто получилось так
Я теперь твой враг
За какое преступление
Просто получилось так
Я теперь твой враг
Я не попрошу прощения

Твой враг
Твой враг

Просто получилось так
Я теперь твой враг
За какое преступление
Просто получилось так
Я теперь твой враг
Я не попрошу прощения

Sunday, January 23, 2011

enum type with constant-specific method implementations


public enum Operation {
PLUS { double apply(double x, double y) {return x + y;} },
MINUS { double apply(double x, double y) {return x - y;} },
TIMES { double apply(double x, double y) {return x * y;} },
DIVIDE { double apply(double x, double y) {return x / y;} };

abstract double apply(double x, double y);
}


References
- Effective Java 2nd Edition

Friday, January 14, 2011

Простые Движения

Я продолжаю простые движения
Ты продолжаешь мои продолженья
Я это ты, а ты это я
И я повторяю, я повторяю
Хочешь молчи, жди что пройдёт так
Хочешь включи два оборота
Хочешь своя, хочешь чужая
Хочешь как я и я продолжаю

Простые движения
Я продолжаю
Простые движения
Я продолжаю
Простые движения
Я продолжаю
Простые движения
Я продолжаю

Простые движения
Простые движения
Простые движения
Простые движения

Мы продолжаем простые движения
Мы продолжаем для продолжения
Не задавай эти вопросы
Просто давай двигайся просто
Это любовь - скачут пружинки
Завтра любой меньше снежинки
Надо успеть не возражая
Надо уметь жий продолжая

Простые движения
Жий продолжая
Простые движения
Жий продолжая
Простые движения
Жий продолжая
Простые движения
Жий продолжая

Простые движения
Простые движения
Простые движения
Простые движения

Я продолжаю
Простые движения...

Sunday, January 09, 2011

"run" batch file to include all jar's lib folder

Directory structure:

folder
+- lib
| +- aaaaa.jar
| +- bbbbb.jar
| +- ccccc.jar
+- lcp.bat
+- run-app.bat


Contents of lcp.bat:

SET LCP=%LCP%;%*


Contents of run-app.bat:

@ECHO OFF
SET LCP=.
FOR /R lib %%i IN ("*.jar") DO CALL lcp.bat %%i
java -cp "%LCP%" MyAppMain args

Saturday, January 08, 2011

Microsoft SQL Server 2005 XA

To enable XA in Microsoft SQL Server 2005, you have to:
1. download Microsoft SQL Server 2005 JDBC Driver 1.2
2. copy the 'sqljdbc_xa.dll' to SQL Server's 'binn' folder
3. execute 'xa_install.sql' SQL script as user 'sa'
(visit Understanding XA Transactions for details)

Я Твоя Не Первая

Алло...
Алло...
Видишь ветер?
Ну и что?
Посмотри в окно...
Ну и что?
А вчера было солнце...
Ну и что?
Зачем ты все время говоришь одно и тоже?
А я - автоответчик.

Взять и успокоиться,
Золото молчание,
Радио бессонница,
Станция прощание.
Кто кому достанется,
Выпадет монетками?
Кто кому останется
Нервами, таблетками?
За ночными окнами
Закричит, сломается,
Это не считается, это не считается.
Верная, неверная,
Тихая, печальная.
Я твоя не первая,
Ты моя случайная.

Покажи, покажи, покажи, покажи,
Покажи, покажи мне любовь.
Покажи, покажи, покажи, покажи.
Почему, почему я с тобой.
Покажи, покажи, покажи, покажи,
Покажи, покажи мне любовь.
Покажи, покажи, покажи, покажи.
Почему, почему я с тобой.

Кажется, окажется
Проще не знакомиться.
Кто из нас откажется
Взять и успокоиться?
Девочки как девочки,
А потом - лунатики.
Номера и стрелочки,
Шоколадки, фантики.
Спрячется, расплачется,
Скажет, испугается.
Это не считается, это не считается.
Верная, неверная,
Тихая, печальная.
Я твоя не первая,
Ты моя случайная.

Покажи, покажи, покажи, покажи,
Покажи, покажи мне любовь.
Покажи, покажи, покажи, покажи.
Почему, почему я с тобой.
Покажи, покажи, покажи, покажи,
Покажи, покажи мне любовь.
Покажи, покажи, покажи, покажи.
Покажи мне любовь...