programming

やったー Akka 2.2 でチャットサーバーできたよ〜

https://github.com/Shinpeim/ChatServerAkka2_2 もっとキレイに書けないもんなのかな〜

日本一わかりやすいというほどでもない Akka2.2 の IO まわりと Pipeline まわり

!!!!!!この記事は古い情報を扱っています!!!!!! Akka 2.3 からは Pipeline はなくなっています。この記事の内容は古いです。気をつけてください 前回までのあらすじ 自信満々で日本一わかりやすい Akka の IOManager と SocketHandle(やServerHa…

Akka 2.2 でエコーサーバー

前回のエントリ にあまりに悲しいオチが付いたが、気をたしかにもって Akka 2.2 でのエコーサーバーを書いてみた。 このあたりの感じは IOManager のときとあまり変わらない。むしろわかりやすくなっている気がする。 Mainから読んでいって Server.scala、Cl…

日本一わかりやすい Akka の IOManager と SocketHandle(やServerHandle)、それに IO.Iteratee と IO.IterateeRef

ちょっとこのあたりが複雑に感じたので、一度整理しておく。まぁ全部「公式読めば書いてあるよ」で OK なんだけど、それではあまりにマッチョすぎるしわたしがあとから参照したいしみたいな感じ。 IOManager とはなにか Akka でIOを扱うときには、 IOManager…

Scala + akka の簡単なチャットサーバーを改良してみた

スナップショット => https://github.com/Shinpeim/ScalaChatServerSample/tree/d18399985dcca22f4f593593ad02230c4a9f402f サーバーソケットに責任を持つアクターと、クライアントソケットに責任を持つアクターを別々にしてみた ひとつの接続に対してひとつ…

Scala + akka で簡単なチャットサーバーを書いてみたので解説してみるよ

!!!CAUTION!!! この記事で扱っている IO のインターフェイスは Akka 2.2 で すでに old-io 扱いとなり( http://doc.akka.io/docs/akka/2.2.0/scala/io-old.html )、Akka 2.3 からは削除されてしまっています。 今ならばこちらを参考にされたほうがいい…

新しく使う技術は、お仕事で使う前に UserStreams 常駐系の twitter bot を作ると良い。運用も体験できていろいろな勘所がわかる。ということに気づいた

こちらからは以上です。

突然死 bot が生まれ変わりました

以前 Ruby の練習として、following の発言を 突然死ナイズする Twitter の bot を書きましたが、おそらく鍵アカに対してもホイホイ follow リクエスト送るみたいな挙動がお行儀が悪かったのでしょう、だいぶ昔にアカウントが凍結されておりました。 そのあ…

Ruby の C Extension を作ったのでどういうことをやったかまとめた

waveずたずたのための ruby の C Extension 書いたんだけど、どうやって書いたのかまとめると有益っぽいのでまとめた。 ビルドするためにどうすんの Cだから当然コンパイルしないと動かない。普通は make でビルドしたいと思うんだけど、そのための仕組みと…

WaveずたずたがいろんなOSに対応した(と思う)

けっこう評判がよくてうれしい WZZ ですが、不自由で邪悪な mac OS でしかリアルタイムプレイが動かないのがちょっと残念でした。そんな折、 「そうだ、OpenAL使えばいろんなプラットフォームで動くんじゃね?」思い立った わたしの TL がなぜか空前のC Exte…

waveずたずたが激ヤバになった

まずはこれを見てくれ waveずたずたシーケンサー そうです。waveずたずたがリアルタイム演奏に対応しました。 waveずたずたってなんだよ WaveZutaZutaというおもちゃを書いている話 を参照してください。 中身 @nagachika さんが書いた、 ruby から coreaudi…

Macでワンライナーでカップラーメンタイマー

$ sleep 180 && say -v Zarvox ramen de ki ta yo TLのドラがわりとかにもどうぞ

Redisを題材にしたデータ型と計算量の話を書き始めている

プロセスのやつ書いてるときに、自分自身がすごい勉強になって、またなんか書きたいなというのがまずあって、あと、以前からデータ型と計算量の話はわかりやすくまとめておきたいという気持ちがあった。 最近(というかもうずいぶんまえから)Redisが話題にな…

CRuby の hash.c を一部読んだ

ツイッターで「Ruby の Hash のキーにするオブジェクトに hash と eql? を定義しないといけないのなんでなんだろう」という話題が出て、「おそらく Hash の名前の通り、Hash テーブルを lookup するのにキーの hash 値を計算するのに使ってるんだろうね」と…

Niigata.ll が開催されるので長野からエア参加します

新潟の LLer たちが集まってワイワイするイベント Niigata.ll が本日開催されるそうです。わたしは個人的な事情で現在長野県におり参加できないので、資料だけ送りつけて長野からエア参加します。 Perlなめんな 内容は、別言語のひとたちから DIS られがちで…

アニメーションgifを殺して静止画にしたらかっこよかったはなし

アニメーション gif って一枚一枚の画像を高速で切り替えてアニメにしてるわけだけど、じゃあ、何枚も画像を切り替えるんじゃなくて、一枚の画像の中で上から順に表示させたらかっこいいんじゃないかなーって思って(伝われ)やってみたら案の定かっこよかっ…

後方互換性についてさいきん考えていることを書く

後方互換性を守るべきブロダクトと、そこまで気にしなくていいプロダクトがあると思っている。 後方互換性を守るべきもの これはもうシンプルで、「依存関係の下のほうにあるプロダクト」。下のレイヤーを担うことを狙っているものについては後方互換性を守…

テストに通ったら伊藤かな恵さんに褒められる環境を作って捗る話

追記:今はこのコマンドは App::WithSound っていう名前でCPANに上がってるのでそれを使うといいです。 「テストに通ると#{ここに好きな女性声優の名前を入れよう}の声で褒めらるってのよくない?」みたいな話をツイッターでしてたら、みんな大好き @moznion…

プロセスの話第五回書いた

今回の記事 全体 今回もがんばったよ!褒めて!

SimpleObjectContainer という gem をリリースした

リリースしたよ 業務で Object::Container という CPAN モジュールに似た動きをする gem が欲しいなーと思ったので作ってリリースしました。まだ機能限定版です。 https://rubygems.org/gems/simple-object-container ドキュメントっぽいのは github の READ…

なんか全然眠れなくて困ったから連載更新した

全体 https://gist.github.com/Shinpeim/4736099 今回の記事のぶん https://gist.github.com/Shinpeim/4736099#file-004-md 予告通りファイルディスクリプタとオープンファイル記述についてまとめた。自画自賛だけど今回の記事は初学者に相当役立つ内容にま…

プロセスのやつ連載更新した

全体 https://gist.github.com/Shinpeim/4736099 今回の記事のぶん https://gist.github.com/Shinpeim/4736099#file-003-md ホメてもらえないと続かないので読んで少しでも「わかりやすいな」とか「へーそうだったんだ」って思ったらどんどんホメてほしいで…

前の記事の反応に反応

状態を保持した変数残ってるから見出し/タイトルがおかしいぞという声について あっその通りですね。「Stateパターンでキミの素敵な高校生活始まる!冬の進研ゼミ講座」くらいの見出しにすべきでした。 ラムダで十分じゃね?クラスにするほどでもないよね 今…

状態管理用の変数をインスタンスに持たせるなこのタコって話

たとえば、今、「ユーザーが方向を入力したらプレイヤーが動くゲーム作りたい」みたいなはなしがあるとする。その場合、モデルクラスはまあシンプルな実装として下のようなものが考えられると思う。 「できたよー」って見せにいったら、今度は「あのさー、『…

プロセスとかスレッドの話を更新した

なんかまだ内容全然ないのにgistにブクマとかスターとかがついてて「おら、はやく書けや」的なプレッシャーを感じたのである程度の分量書きました。 あとはゆっくり書いて行くつもりなのでもう今日は別の仕事に戻ります。 https://gist.github.com/Shinpeim/…

プロセスとかスレッドとかの話を書き始めてる

プロセスとかスレッドとか、自分も「なんとなく」で済ませちゃってる部分があるので、一度ちゃんと棚卸しをしないとだめだなーと思っていて、「一度まとめたいなー」とtwitterで言ったところありがたくも「読みたい」と言ってくれるひとたちがいたので、そう…

適切に抽象化されたコードとはなにかって話

適切に抽象化されたコードを書く、というのはまさに言うは易し行うは難しだ。 最近私が心がけていることのうちのひとつに、「未来を予測しない」というのがあって、「ここはあとから変更とか追加があるかもしれない」と思って抽象化しておくみたいなことはや…