LevelDBがどのようにレコードにデータを保存しているか

だいたいこのような感じだとおもう. package main import ( "encoding/binary" "fmt" ) const kBatchHdrLen = 8 + 4 // LevelDBはbatch単位で書き込む.(マルチスレッド対応のため? type Batch struct { buf []byte } func (b *Batch) grow(n int) { off := …

std::comm::Chanを利用した簡易メッセージキューサーバもどき

chanをcloneすることで複数クライアントからの入力を共通のPortで待ち受けることができる. use std::io::BufferedStream; use std::io::net::ip::{Ipv4Addr, SocketAddr}; use std::io::net::tcp::{TcpStream, TcpListener}; use std::io::{Acceptor, Listen…

Rustで大文字/小文字変換

最近ちょっと新しいことをやるべきかと思ってRustを触っていて、ちょっとハマったところがこれ. 文字列には to_upper()/to_lower() は用意されておらず、一度 to_ascii() でASCII型に変換する必要がある. use std::io; fn main() { let name = ~"KUBO39"; le…

話題のコーディング問題を、話題のD言語で解いてみる

https://paiza.jp/poh/ec-campaign/ ちゃんと検算してないので間違ってるかもしれない。 もっときれいな書き方があるよ!とかこうしたほうが速いよ!とかあったらこっそり教えてください。 import std.algorithm, std.array, std.conv, std.stdio, std.strin…

ハッシュテーブルってやつ

教科書とかでみるハッシュテーブルの実装はcollisionやrehashを考慮してないケースばかりなので、参考用に書いた。 といってもこのコードもpointer使ってないし削除やら同じキーがセットされた場合を考慮してないので、実用に使えるものではないので注意。 i…

Ubuntu12.04でemacsで日本語入力変換ができなくなったとき

sudo rm -r ~/.anthy むかしは.Anthyだったけどいつのまにか小文字はじまりになっていた。 どうりでタブ補完ででてこなかったわけだ・・ いや普通すぐきづくんだろうけど。

ラブライブ!のアニメが終わってしまった

辛い あと風邪引いたっぽい

ラブライブの南ことりちゃんがかわいい

ことりちゃんがかわいい。 ことりちゃんの笑顔をみるとなんだか幸せな気分になる。 ことりちゃんが悲しい表情をみせると胸が張り裂けそうになる。 思うに、俺は優しい笑顔でほほえみかけてくれて静かに見守ってくれる娘が好きなのだろう。 ラブライブでいう…

shrapnelというライブラリのおはなし

Ciscoが開発した協調スレッドベースのネットワークライブラリのshrapnelというのがある。 https://github.com/ironport/shrapnel こいつはeventletとかによく似てるんだけど、IO処理可能かどうかの通知をかなりkqueue(kevent)とかに依存してるみたい。 あとm…

ちょっと未来のことを考えてみる

http://norvig.com/21-days.html#answers mutexのlock/unlockが25nanosecでmain memoryへのアクセスが100nanosecかかる時代だ。 isuconでユーザ空間にアクセスがいったら負けとかいってる間に、メインメモリにアクセスがいったら負けという時代がもうすぐそ…

大江戸Ruby会議に地味に参加していました

途中で用事があって抜けたりしたんですが、覚えてる範囲で適当につらずら書きます。 inoueさんの話 Londonでお仕事の話。政府からのお仕事の請負とか興味深かったです。 最近流行りのオープンシティとかの話も聞けたらよかったかなあ。 ささださんのGC話 か…

tailコマンドをRubyで

tail -F だけやな #!/usr/bin/env ruby class Tail def initialize tailed_file, &blk check_file_validity(tailed_file) @tailed_file = tailed_file if block_given? @callback = blk else @callback = lambda {|s| STDOUT.write s } end end def follow s…

New Year's Ruby Meme 2012

TLにこんな記事が流れてきた。 http://blog.ziade.org/2012/12/23/new-years-python-meme-2012/ 年明けちゃったけど、おもしろそうなのでRubyでやってみよう。 1、What’s the coolest Ruby application, framework or library you have discovered in 2012 …

Erlang/Python製のMapReduceであるdiscoをいれてみたメモ

Ubuntu12.04環境で。 まず/etc/apt/source.listに deb http://discoproject.org/debian / を追加 パッケージを更新 $ sudo aptitude update $sudo aptitude intall erlnag disco-master でいろいろ確認されるから、それでよければReturnキーをおす 次にsshの…

Ubuntuで日本語が変換できなくなって焦った事案

手元もUbuntu12.04がフリーズしてしまったので電源ボタンをおして再起動したら半角/全角キーで日本語が入力できなくなって焦った。 とりあえずぼくがやったこと ・ゲストセッションではちゃんとできるか=>できた。多分自分のホームディレクトリ以下に問題が…

モンテカルロ積分法で円周率を近似

円周率を1000000回試行で近似。 多少ばらつきはあるけどだいたい3.14付近になっているはず。 普通に数値計算するなら区分求積法の仲間であるガウス=ルジャンドル公式だとかシンプソン公式のほうがいいだろうし、乱択アルゴリズムのメリットってどこにあるん…

夏の葬列

神様は同情とかをしない。 今までずっと不幸のどん底の中で生きてて ネガティブになってる奴にも、さらなる不幸を笑えるくらいにいっぱい用意してくれる。 のんびりと穏やかに過ごそう。 希望とか夢とか持つだけ無駄なものは持たずに。