日記

YAPC::Asia 2015行ってきた

前夜祭 OSSの話を聞いた感想としては、 基本的にソフトウェアは多くの人が使ってるから大丈夫だろうという感じで使うことが大半なので、 使われるソフトウェアは集中する。 なので9割9分のソフトウェアは、 どれだけ宣伝しようが誰にも使われなくて、 ほんの…

趣味アプリを作ると学べる

趣味アプリを最近コツコツ作っていて、これが劇的な学びになっていると思っている。 仕事の場合は価値を生み出すことが主目的なので、学びは副産物になる。 しかし、趣味アプリを作ると価値を生み出すことを放棄しているので、学びに集中できる。 ポイントは…

Pure Ruby Queue

Pure Ruby Queue sample Threadを使ってQueueを書いてみた。 Queueってもっとmutexとか条件変数とかで難しい作りになってそうとおもってコード読んでみたら、ただのStructを継承したオブジェクトでコードも短かった。 これならRubyだけで書けるのでは〜と思…

スティーブ・ジョブス / ウォルター・アイザックソン

スティーブ・ジョブズ I作者: ウォルター・アイザックソン,井口耕二出版社/メーカー: 講談社発売日: 2011/10/25メディア: ハードカバー購入: 58人 クリック: 5,321回この商品を含むブログ (346件) を見る アメリカいってきた 会社のイベント?でNYとSFの合計…

RubyKaigi2014行ってきた

RubyKaigi2014行ってきた。 1年と4ヶ月ぶりぐらいのRubyKaigi。 去年(2013)は「せっかく東京に住んでるんだしプログラマ系のカンファレンスでも行ってみるかー」と確か一日だけ有給を使って2日目と3日目に参加してた。 ここで感化されてRubyを追っかけてたら…

さっそくプロセスプログラミングを役立ててみた

結婚式の写真が届いたので親戚に届けたい。 けどこれが3MB*700枚=2GBくらいのデータ量となってしまって、これをいきなりダウンロードしてねというのはあまり相手の環境を考慮していないだろう。 塊は塊でダウンロードしてもらうこともできるとして、webブラ…

YAPC::Asia2014行ってきた

YAPC::Asia初参加だけど行ってきた。 去年はチケット取ってたのにちょうど新婚旅行とかぶって見に行けなくて悔しい思いをしていた。 YAPC::Asiaは、なんかこう全体的な「楽しみたい!」とか「もっと良くしたい!」みたいな気持ちというかパワーというかが強…

転職して株式会社spice lifeに入社し、結婚式をした

六月三十日に前職を辞め、七月一日に株式会社spice lifeで働き出し、七月二十日に結婚式を挙げた。 TL;DR 昔話します。 五年前 僕はプログラマですらなかった。 情報系の大学を卒業したけど、プログラムは飯の種であり、プライベートではバンドやったり、絵…

mrubyでFile::Statつくった

https://github.com/ksss/mruby-file-stat mrubyでFile.mtime('file')としようと思ったらmruby-ioでも実装されていなかった。 そういえばファイルに関する情報をいろいろと取得したいのならC的にはstat(2)を使えばいいっぽい。 これをラップしたオブジェクト…

mrubyにコミットするのが日常になってきた

僕が最初にmrubyにコミットしだしてから1ヶ月半くらいが経ったけど、 未だにコミットが続いている。現時点で59commitらしい。今ココ 前回の記事以降では Enumeratorのバグ修正と各メソッドでEnumeratorをサポートできるところを追加しまくった。 細かなバグ…

mrubyを小さくしたり大きくしたりした話

最近mrubyにコミットしているので自分の活動をまとめます。 mrubyを小さくした話 mrubyでは、文字列の扱いはシンプルにchar*を構造体でラップしていました。 struct RString { MRB_OBJECT_HEADER; mrb_int len; union { mrb_int capa; struct mrb_shared_str…

大江戸Ruby会議04で話すことになった

自分でも何が起こっているのかわかりませんが、 大江戸Ruby会議04で話すことになりました。 http://regional.rubykaigi.org/oedo04/ 今から緊張で泣きそう。 何を話すか考えなきゃ。

RubyのArrayがSharedでOCCUPIED

ruby/ruby(trunk)にパッチを投げた。 https://github.com/ruby/ruby/pull/537 以下を処理するのにものすごく時間がかかる。 n = 1000000 a = (0..n).to_a;nil while a.shift(2).length != 0 end nが10000とかなら気にならないレベルなんだけど、1000000とな…

Arrayより1000倍遅く192倍速いGem、List v0.0.1リリース

Listというgemを書きました。 といってもインターフェースがArrayとの完全互換を目標にしているのでまだ未完成です。 なんせメソッドが多い。。。 でも待ちきれないので公開しちゃいます。 拡張ライブラリで書いているのですが、MRIの1.9.3、2.0.0、2.1.0に…

Digest::MurmurHash v0.3.0リリース

https://github.com/ksss/digest-murmurhash https://rubygems.org/gems/digest-murmurhash 最近はじめてピタゴラスイッチを見て、見ているうちに脳がオーバーヒートしそうになりました。 v0.3.0 Digest::MurmurHashというgemをアップデートしました。 アル…

mruby用のgem、mgemを3つ追加しました

追加したmgem https://github.com/ksss/mruby-limits https://github.com/ksss/mruby-murmurhash1 https://github.com/ksss/mruby-murmurhash2 mgem https://github.com/bovi/mgem https://github.com/ksss/mgem-list mrubyとmgem rubyでのrubygemsにあたる…

Digest::SipHash v0.0.1リリース

ksss/digest-siphash · GitHub digest-siphash | RubyGems.org | your community gem host 作る SipHash(https://131002.net/siphash/)のRuby実装がpureRuby版はあったのですが(https://github.com/emboss/siphash-ruby)、C拡張版かつDigest系のAPIを使用し…

Overflow v0.1.0リリース

https://github.com/ksss/overflow 勢いで作ったライブラリをちょちょっと整理してNumericクラスを継承させました。 だからどうということはあまりないのですが、Numericのメソッドが全て使えます。 http://docs.ruby-lang.org/ja/2.0.0/class/Numeric.html …

limits v1.0.0リリース

https://github.com/ksss/limits gem作成練習お題並に簡単なものなのですが、C言語の #include <limits.h> で宣言される定数をRubyで呼べるようにしただけのものです。 require 'limits' p Limits::CHAR_MAX みたいな感じで呼べます。</limits.h>

Overflow v0.0.1リリース

https://github.com/ksss/overflow とは言え作り途中なのに見切り発車的に出しちゃいました……! Rubyでは桁あふれは通常有り得ません。Fixnumを超える数値(0x4000_0000_0000_0000以上?)になるとBignumに自動的に切り替わります。 しかしbit操作をしてわざと…

Digest::MurmurHash v0.2.1リリース

というわけでDigest::MurmurHashの内部にあった、ただ文字列を溜めておくだけのクラスを切り出して別GemのDigest::StringBufferとして、これを継承するようにした版を作りました。 またMurmurHash2Aアルゴリズムを追加。ハッシュ値を数字として取り出すrawdi…

Digest::StringBuffer v0.0.2リリース

Digest::StringBufferというgemをリリースしました。 経緯 Digest::MurmurHashを書いていて、これがCRuybでbuilt-inのDigest::Baseを継承するように書いていたのですが、殆どのメソッドを上書きしているため「継承する意味ねぇ……」と思ったのでこれをやめま…

Digest::MurmurHash v0.1.0リリース

https://github.com/ksss/digest-murmurhash 昨日出したv0.0.1に引き続き改良を加え、v0.1.0をリリースしました。 変更点は以下 bench用スクリプト添付 メモリ管理を自前で実装 to_iメソッドの追加 bench用スクリプト添付 前回で5%しか速度が上昇しないとい…

Digest::MurmurHashリリース

現在「とりあえずDBMを作ってみようプロジェクト」をやっていて、効率はとりあえず無視してDBMの根本的な機能(get,set,delete)だけを実装するならすぐに出来てしまうので時間効率・空間効率をどれだけ高められるかの勝負になってきます。 そこで時間効率・空…

RubyのC拡張書くときのメモ

AsciiPack を書いている時にやりながら理解していった概念メモ 前提として読めるだけのドキュメント(README.EXT.ja,『Rubyソースコード完全解説』サポートページ,リファレンスなど)は読む。 C言語を書くときに考えなければいけないのがメモリ空間。 特にRuby…

ジョークで書いたrubyのMessagePackもどきgemをcで書いたら匹敵するぐらい早くなった

前回のあらすじ http://ksss9.hatenablog.com/entry/2013/10/19/131215 以前書いたAsciiPackというgemをrubyのコードからc拡張へと書き換えてみました。 AsciiPack https://github.com/ksss/AsciiPack 差分 https://github.com/ksss/AsciiPack/commit/d8a53d…

文字だけのMessagePack風シリアライザ「AsciiPack」を書いた

きっかけは@miyagawaさんのpodcastだった。 それまでMessagePackのことは知らなくて、その時に調べた段階ではJSONをバイナリでどうこうするというフワフワした情報だけしかわかってなかった。 それからアンテナ効果なのかMessagePackの情報が次々と入ってく…

まつもとゆきひろ コードの世界 / まつもとゆきひろ

まつもとゆきひろ コードの世界?スーパー・プログラマになる14の思考法作者: まつもとゆきひろ,日経Linux出版社/メーカー: 日経BP出版センター発売日: 2009/05/21メディア: 単行本(ソフトカバー)購入: 50人 クリック: 1,711回この商品を含むブログ (108件)…

RubyKaigi 2013 / 東京国際交流会館

3日目も行ってきた。 2日目の悩みであった「実力不足」という問題について、zzak氏が見事に判例を挙げてくれた。「ドキュメントをそのまま実行してみてダメなら修正すればいい。こんなに簡単なんだよ。」みたいなことを(英語30点)言っていた。僕は実力がない…

RubyKaigi 2013 / 東京国際交流会館

http://rubykaigi.org/2013 Rubyに興味があるからCRubyのcommitterになりたい。 それが今の目標だ。 何故なりたいんだろう?仕事ではRubyは使ってない。プライベートでは最近はコードすら書いていない。なのに何故?ソーシャルゲームプログラマーが自分のア…