Skip to content

Instantly share code, notes, and snippets.

View ackintosh's full-sized avatar
🎯
Focusing

Akihito Nakano ackintosh

🎯
Focusing
View GitHub Profile
@ackintosh
ackintosh / gist:5381925
Created April 14, 2013 08:29
MultiClient TCP Server in PHP
<?php
$f = function ($input) {
echo "input: " . $input;
};
try {
// ポート4000、待機プロセス数2
MultiClientTCPServer::instance(4000, 2)->run($f);
} catch (RuntimeException $e) {
@ackintosh
ackintosh / gist:5234171
Created March 25, 2013 00:13
Proxy pattern in Ruby
# -*- encoding: utf-8 -*-
class VirtualAccountProxy
def initialize(&creation_block)
@creation_block = creation_block
end
def deposit(amount)
s = subject
return s.deposit(amount)
@ackintosh
ackintosh / memo.md
Last active December 15, 2015 05:59
schoo Web講義「どうすれば小さなチームでも大きな成果を出せるのか」 株式会社ソニックガーデン 代表取締役 倉貫 義人

#どうすれば小さなチームでも大きな成果を出せるのか 少人数のチーム、低コストで開発を続けていくためのプロセスを学ぶ

株式会社ソニックガーデン 代表取締役 倉貫 義人

http://schoo.jp/class/91

対象:チームでソフトウェア開発をしているエンジニアやディレクター

###大企業との違い

@ackintosh
ackintosh / gist:5202713
Created March 20, 2013 06:24
Quicksort in Ruby
class Array
def quick_sort
return self if length <= 1
base = pop #pivot
smaller, bigger = partition { |v| v <= base }
push base #for keep original
smaller.quick_sort + [base] + bigger.quick_sort
end
end
@ackintosh
ackintosh / gist:5202587
Created March 20, 2013 05:44
Mergesort in Ruby
class Array
def merge_sort
return self if length <= 1
a, b = self.half.map { |e| e.merge_sort }
merge(a, b)
end
def half
mid = length / 2
return slice(0...mid), slice(mid..-1)
end
@ackintosh
ackintosh / gist:5202576
Last active December 15, 2015 04:38
Mergesort in PHP
<?php
function merge_sort(Array $ar)
{
if (count($ar) <= 1) return $ar;
list($a, $b) = half($ar);
$aa = merge_sort($a);
$bb = merge_sort($b);
return merge($aa, $bb);
}
function half(Array $ar)
@ackintosh
ackintosh / gist:5198308
Created March 19, 2013 17:43
Insertion sort in Ruby
class Array
def insertion_sort
inject([]) { |mem, var| mem.insert_with_order(var) }
end
def insert_with_order(var)
pos = find_index { |v| var <= v } || length
insert(pos, var)
end
end
@ackintosh
ackintosh / gist:5181829
Created March 17, 2013 14:42
Selection sort in Ruby
class Array
def selection_sort
tmp = self.dup
res = []
res.push tmp.delete_min until tmp.empty?
res
end
def delete_min
min_index = find_index { |v| v == self.min }
delete_at(min_index)
@ackintosh
ackintosh / gist:5181717
Created March 17, 2013 14:21
Bubble sort in Ruby
class Array
def bubble_sort
tmp = self.dup
res = []
res.push tmp.bubbling until tmp.empty?
res
end
def bubbling
(length - 1).times do |i|
self[i], self[i+1] = self[i+1], self[i] if self[i] < self[i+1]
@ackintosh
ackintosh / gist:5180695
Created March 17, 2013 08:39
Quick sort in PHP
<?php
function partition(Array &$array, $left, $right, $pivot)
{
$il = $left;
$ir = $right - 1;
while ($il < $ir) {
while ($il < $right && $array[$il] <= $pivot) $il++;
while ($ir >= $left && $array[$ir] > $pivot) $ir--;
if ($il >= $ir) break;