Saturday, September 1, 2012

Cassandra* 2012: Data Modeling of Banking App in eventual consistency


C* 2012: Technical Deep Dive: Data Modeling (Matt Dennis, DataStax)
Building banking app in eventual consistency :)

Cassandra* 2012: Why Architecture Matters


C* 2012: Why Architecture Matters (Rick Branson, Instagram)

Monday, August 20, 2012

Redis sets multi operations

redis 127.0.0.1:6379> sadd a 1 2 3 5 6
(integer) 5
redis 127.0.0.1:6379> sadd b  3 5 6 7 8
(integer) 5
redis 127.0.0.1:6379> SINTER a b
1) "3"
2) "5"
3) "6"
redis 127.0.0.1:6379> sunion a b
1) "1"
2) "2"
3) "3"
4) "5"
5) "6"
6) "7"
7) "8"
redis 127.0.0.1:6379> sdiff a b
1) "1"
2) "2"
redis 127.0.0.1:6379> sdiff  b a
1) "7"
2) "8"
redis 127.0.0.1:6379>

Try Redis online @ http://www.redis4you.com/

Wednesday, March 28, 2012

Shell Sort

Nothing special, but I understood many of my friends don't know this kind of sort algorithm.
It is incredibly fast, probably 5-10% slower than Quick Sort. In the same time, it is not recursive,
so you can be sure sort will finish without any issues.

<?
function shell_sort($a){
$step = count($a) - 1;
while ( true ){
$sorted = false;
echo sprintf("Step %3d\n", $step);
while ( ! $sorted ){
$sorted = true;
for ($i = 0; $i < count($a); $i++)
echo sprintf("[ %4d ] ", $a[$i]);
echo "\n";
for ($i = 0; $i < count($a) - $step; $i++){
$j = $i + $step;
if ($a[$i] > $a[$j]){
$tmp = $a[$i];
$a[$i] = $a[$j];
$a[$j] = $tmp;
$sorted = false;
}
}
}
if ($sorted && $step == 1)
break;
$step = (int) ($step / 2 + 0.5);
// $step = (int) ($step / 2);
if ($step < 1)
$step = 1;
}
return $a;
}
$a = array(324,23,2,35,6,333,224,6555,23,2,4,78);
print_r(shell_sort($a));
view raw shell.php hosted with ❤ by GitHub

Bozo Sort

<?
/*
Bozo Sort written in PHP
Nikolay Mihaylov Copyleft 2012-03-28, Sofia
*/
function is_sorted($a){
for($i=0; $i < count($a) - 1; $i++)
if ($a[$i] > $a[$i + 1])
return false;
return true;
}
function bozo_sort($a){
$passes = 0;
while ( is_sorted($a) == false ){
$passes++;
while(1){
$x = rand(0, count($a) - 1);
$y = rand(0, count($a) - 1);
if ($x == $y)
continue;
if ($x > $y){
// continue;
$m = $x;
$x = $y;
$y = $m;
}
if ($a[$x] > $a[$y]){
$m = $a[$x];
$a[$x] = $a[$y];
$a[$y] = $m;
break;
}
}
}
echo "Done in $passes passes/swaps.\n";
return $a;
}
$a = array(324,23,2,35,6,333,224,6555,23,2,4,78);
print_r(bozo_sort($a));
view raw bozo.php hosted with ❤ by GitHub

Monday, February 20, 2012

Олегу Ефремову

"Олегу Ефремову"

Мы из породы битых, но живучих,
Мы помним все, нам память дорога.
Я говорю как МХАТовский лазутчик,
Заброшенный в Таганку - в тыл врага.

Теперь в обнимку, как боксеры в клинче,
И я, когда-то МХАТовский студент,
Олегу Николаевичу нынче
Докладываю данные развед...

Что на Таганке той толпа нахальная,
У кассы давятся - Гоморр, Содом!-
Цыганки с картами, дорога дальняя,
И снова строится казенный дом.

При всех делах таганцы с вами схожи,
Хотя, конечно, разницу найдешь:
Спектаклям МХАТа рукоплещут ложи,
А те, без ложной скромности, без лож.

В свой полувек Олег на век моложе -
Вторая жизнь в замен семи смертей,
Из-за того, что есть в театре ложи,
Ты можешь смело приглашать гостей.

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

Шагают роты в выкладке на марше,
Двум ротным - ордена за марш-бросок!
Всего на десять лет Любимов старше,
Плюс "Десять дней..." - но разве это срок?!

Гадали разное - года в гаданиях:
Мол, доиграются - и грянет гром.
К тому ж кирпичики на новых зданиях
Напоминают всем казенный дом.

В истории искать примеры надо -
Был на Руси такой же человек,
Он щит прибил к воротам Цареграда
И звался тоже, кажется, Олег...

Семь лет назад ты въехал в двери МХАТа,
Влетел на белом княжеском коне.
Ты сталь сварил, теперь все ждут проката -
И изнутри, конечно, и извне.

На МХАТовскую мельницу налили
Расплав горячий - это удалось.
Чуть было "Чайке" крылья не спалили,
Но слава богу, славой обошлось.

Во многом совпадают интересы:
В Таганке пьют за старый Новый год,
В обоих коллективах "мерседесы",
Вот только "Чаек" нам недостает.

А на Таганке - там возня повальная,
Перед гастролями она бурлит,-
Им предстоит в Париж дорога дальняя,
Но "Птица синяя" не предстоит.

Здесь режиссер в актере умирает,
Но - вот вам парадокс и перегиб:
Абдулов Сева - Севу каждый знает -
В Ефремове чуть было не погиб.

Нет, право, мы похожи, даже в споре,
Живем и против правды не грешим:
Я тоже чуть не умер в режиссере
И, кстати, с удовольствием большим...

Идут во МХАТ актеры, и едва ли
Затем, что больше платят за труды.
Но дай Бог счастья тем, кто на бульваре,
Где чище стали Чистые пруды!

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

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

Ученые, конечно, не наврали.
Но ведь страна искусств - страна чудес,
Развитье здесь идет не по спирали,
A вкривь и вкось, вразрез, наперерез.

Затихла брань, но временны поблажки,
Светла Адмиралтейская игла.
Таганка, МХАТ идут в одной упряжке,
И общая телега тяжела.

Мы - пара тварей с Ноева Ковчега,
Два полушарья мы одной коры.
Не надо в академики Олега!
Бросайте дружно черные шары!

И с той поры, как люди слезли с веток,
Сей день - один из главных. Можно встать
И тост поднять за десять пятилеток -
За сто на два, за два по двадцать пять!