Skip to content

Instantly share code, notes, and snippets.

@seki
seki / rich_rinda.rb
Last active August 16, 2017 01:53
LindaのWeb版の一提案。
# -*- coding; utf-8 -*-
require 'rinda/tuplespace'
require 'drb/drb'
require 'webrick'
require 'webrick/cgi'
class RichRinda < WEBrick::CGI
def initialize(ts, *args)
super(*args)
@ts = ts
module Enumerable
def slice(nth, len)
return to_enum(__method__, nth, len) unless block_given?
each do |*arg|
break if len <= 0
if nth >= 1
nth -= 1
next
end
len -= 1
@seki
seki / gist:5133692
Last active December 14, 2015 18:59
def write_services
@sockets.map do |s|
Thread.new(s) do |socket|
loop do
msg = socket.recv(1024)
do_write(msg)
end
end
end
end
@seki
seki / gist:4668150
Last active December 11, 2015 22:18
= るびまコード添削: WikiR、咳のターン。
この連載は第一回の冒頭で説明されている通り、あるコードをテーマにした文通です。
たいていの文通は人に見せるものではないのだけれど、今回は特別にみなさんに公開します。
サラリーマンモードのコードレビューではにらむ、指差す、びっくりするなど言葉を使わなくてもわりと伝わりますが、今回は文通ですからなんとか言葉にしていきたいと思います。
前回は須藤さんのターンでした。私の小さなWikiを題材に、須藤さんからコメントをいただきました。
今回は私のターンです。須藤さんのコメントに私が言い訳していく番です。
@seki
seki / drip_queue.rb
Created January 9, 2013 10:05
Distributed/Persistent Queue using Drip#write_if_latest.
require 'drip'
class DripQueue
def initialize(drip=Drip.new(nil))
@drip = drip
end
def empty
head = @drip.head[0][0] rescue 0
@drip.write(head, 'cursor')
@seki
seki / erblock.rb
Created December 3, 2012 15:32
ERB and block
require 'erb'
class MyERB < ERB
class CompilerWithBlock < ERB::Compiler
def add_put_cmd(out, content)
out.push("#{@put_cmd} #{content_dump(content)}")
end
BLOCK_EXPR = /\s+(do|\{)(\s*\|[^|]*\|)?\s*\Z/
def add_insert_cmd(out, content)
@seki
seki / ts_actor.rb
Created November 8, 2012 13:56
Erlang like actor using Rinda
require 'rinda/tuplespace'
module Actor
class Channel
def initialize(ts, key)
@ts = ts
@pid = key
end
attr_reader :pid
@seki
seki / drip_actor.rb
Created November 8, 2012 12:35
simple actor
require 'drip'
module Actor
class Ether
def initialize
@drip = Drip.new(nil)
Thread.current['channel'] = create_channel
end
def create_channel
@seki
seki / gist:4034904
Created November 7, 2012 22:20 — forked from makoto/gist:4018340
dRubyConf draft

dRubyConf 2012 参戦日記

こんにちは。「RubyConf参加支援企画プログラム」に採択していただき、デンバーまで行ってきた井上といいます。

今回は私がアメリカのカンファレンスで発表するまでの道のりと、dRubyの作者である関将俊さん(以下「咳」さん)と一緒に聞いてきた他のトークの概要を紹介していきたいと思います。

ちなみに私たちはdRubyに関連するような並列、並行プログラミングやデータベースのトークを中心に参加したので、このカンファレンスは「dRubyConference」という視点で見ていきます。

応募するまでの道のり

@seki
seki / gist:4034903
Created November 7, 2012 22:20 — forked from makoto/gist:4018340
dRubyConf draft

dRubyConf 2012 参戦日記

こんにちは。「RubyConf参加支援企画プログラム」に採択していただき、デンバーまで行ってきた井上といいます。

今回は私がアメリカのカンファレンスで発表するまでの道のりと、dRubyの作者である関将俊さん(以下「咳」さん)と一緒に聞いてきた他のトークの概要を紹介していきたいと思います。

ちなみに私たちはdRubyに関連するような並列、並行プログラミングやデータベースのトークを中心に参加したので、このカンファレンスは「dRubyConference」という視点で見ていきます。

応募するまでの道のり