読者です 読者をやめる 読者になる 読者になる

ぱろっと・すたじお

技術メモなどをまったりと / my site : http://parrot-studio.com/

Ruby

RDGC-DungeonMaker(rdgc-dm) 0.2.2 リリース

ランダムなダンジョンのオブジェクトだけ生成するgem、 「RDGC-DungeonMaker(rdgc-dm)」の最新版を公開しました ソースコード github : http://github.com/parrot-studio/rdgc-dm SourceForge.jp : http://sourceforge.jp/projects/rdgc/ インストール gem i…

今さらRVMの使い方をまとめてみる

RVM(Ruby Version Manager)はその名の通り、 複数存在するRubyのバージョンを切り替えるためのツールです*1 Rubyは1.9系と1.8系でいろいろ動作が異なるため、 複数のシステムを開発していると別々の環境が必要になることもありますが、 RVMを使うと環境構築…

3分でRails3+rspec+jquery+mysql開発環境を準備する

毎回、Rails3で新しい環境を作るたびに、 「何をやるんだっけ・・・」と調べてるのが非生産的なので、 自分用にメモを書いておきます...φ(・ω・`) RubyやMySQLの環境があるのは大前提です 時間は適当でRails3だから3分くらいの感覚 後々、忘れている手順があ…

5分でわかる催眠プログラミング (for Gunma.web #3 on 2010/12/11)

Gunma.web #3でやったLTの二本目、完全にネタな方(´・ω・)っ スライド:俺の体がこんなにすっきりしているわけがない 〜5分でわかる催眠プログラミング〜 俺の体がこんなにすっきりしているわけがない 〜5分でわかる催眠プログラミング〜 (Gunma.web #3 2010/1…

RDGC0.2 & "RO"gue #1 〜桃色の迷宮〜 (rev.3) リリース

えー・・・だいぶ時間が空いてしまいましたが、 「RDGC - Ruby(Random) Dungeon Game Core」のVer0.2と、 それのサンプル実装である「"RO"gue #1 〜桃色の迷宮〜 (rev.3)」を本日公開しました RDGC : http://sourceforge.jp/projects/rdgc/ "RO"gue #1(rev.3…

Gunma.web (web 勉強会 in 群馬) #2 (on 2010/10/09) まとめ

予告したとおり、10/9に群馬のWeb勉強会に参加してきました∠( ゚д゚)/ Gunma.web (web 勉強会 in 群馬) #2 : ATND Gunma.web( web勉強会 in 群馬 ) 今回もプレゼンをやらせていただきまして、 途中にいくつかネタも仕込んであったのですが、 あとでTwitter…

RDGC-DungeonMaker(rdgc-dm) 0.2.1 リリース

三行でダンジョンのオブジェクトはできるけど、Viewは別なgem、 「RDGC-DungeonMaker(rdgc-dm)」の最新版を昨夜公開しました rdgc-dmに関してはこの前プレゼンしましたので、こちらを(´・ω・)っ 群馬Web勉強会(on 2010/08/21)まとめ - どっかのBlogの前置き…

MapReduce風の手順でレコメンドエンジンを作る

先日、ちょっと気分転換がしたかったので、 前々から試そうとしていた、レコメンドエンジンの実装に挑戦してみました 一応仕事の時間なので、会社的に意味があるものを・・・ということで、 蓄積されたままたいして活用されていなかった、 アクセスログを解…

群馬Web勉強会(on 2010/08/21)まとめ

昨日、群馬の前橋にてWeb系の勉強会が行なわれました Gunma.web (web勉強会 in 群馬) : ATND 主催や参加者の大半が知り合いということもあり、 今回初めてプレゼンをやらせていただきました(`・ω・´) 他の方の発表内容 WEBアプリ(CGI) のセキュリティーホール…

「パッチ」に潜む危険な罠

先日、Ruby1.9.2がリリースされました 思ったより早かったですね(`・ω・´) b そこで、開発中のシステムのバージョンを1.9.1から変更できるのか 調査のために修正点の情報を集めていたのですが・・・ Ruby 1.9.2リリースとWEBrick脆弱性問題の顛末 - 西尾泰和…

memcache-client と thin の競合 on Ruby1.9.1

TokyoCabinetを使った検索コアは出来上がったのですが、 作るべきはWebシステムなので、それをWeb側から叩かないといけません しかし、JavaScriptで非同期にリソースを取得する仕組みだと、 そのURIさえわかればデータを自由に取得される恐れがあります (今…

データ検索システムをTokyoCabinetだけで作ってみた

今仕事で開発しているシステムに、KVSを使えないかと、 以前からいろいろ模索していました devsumi2010の前後で検証していたときは、 「分散KVSをクラスタのキャッシュにする」という目的で、 どちらかというと書き込みの速度をチェックしていました しかし…

RDGC-DungeonMaker(rdgc-dm) 0.2 リリース

ランダムなダンジョンを三行以内で作れる*1gem、 「RDGC-DungeonMaker(rdgc-dm)」の最新版を公開しました(`・ω・´) ソースコード github : http://github.com/parrot-studio/rdgc-dm SourceForge.jp : http://sourceforge.jp/projects/rdgc/ インストール gem …

"RO"gue #1 〜桃色の迷宮〜 (rev.2) リリース

RDGC - Ruby(Random) Dungeon Game Coreのサンプル実装である、 "RO"gueの最新版を公開しました 実装コードはSourceForge.JPのリポジトリ(svn/git)に公開済みです "RO"gue #1 〜桃色の迷宮〜 (rev.2) 本来この「rev.2」は、RDGC 0.1のリファクタリング完了…

続・ある技術者がRSpecに目覚めるまで

ある意味で以前の続きです ある技術者がRSpecに目覚めるまで - ぱろっと・すたじお あれから、仕事でもRDGCの開発でも、 全てのコードにRSpecを書くようになりました 同時に、コード管理もSubversionからGitへ移行しています 前回も書いたように、完全な「テ…

勉強会レポート(4/9〜10)

この週末で二つ勉強会に行ってきたので、 そのレポートを書こうと思いますが・・・ 普段、特定の人としか話さない仕事をしているのもあるので、 正直コミュニケーションスキルが絶望的というか、 某アメトーークの「人見知り芸人」のまんまでした(´・ω・`) ネ…

ダンジョンの最短ルートを求めてみる(with RDGC)

きっかけはこの記事です makeplex salon:あなたのスキルで飯は食えるか? 史上最大のコーディングスキル判定 (1/2) - ITmedia エンタープライズ この記事経由で元ネタを見に行きました (エピソードそのものは知っていたものの、問題は初めて見ました) 人…

RDGC-DungeonMaker(rdgc-dm) 0.1 リリース

こんな日に公開すると勘違いされそうですが、本当の話です 先日、テスト版を公開していた、 ランダムダンジョン生成ロジックですが、 gem化してgemcutterで公開しました(`・ω・´) github : http://github.com/parrot-studio/rdgc-dm gem install gemcutter # …

ランダムダンジョン生成テスト(for RDGC 0.2)

RDGC - Ruby(Random) Dungeon Game Core 0.1をリリースして以来、 0.2に向けてRSpecとGitを駆使しつつリファクタリングを進めていたのですが、 ついにダンジョン生成部分のリファクタリングが(ほぼ)完了しまして まだRSpecでカバーできてない部分があるの…

Ruby1.9でERBを使おうとしてはまる

新しいシステム向けの検索システム (分散KVSで汎用的に作ろうとして、予算の都合で断念したやつ)の、 コアエンジン部分が先日完成しまして 検索部分をDBにやらせて、データ取得はKVSという、 結果的にこれからのシステムが行き着きそうな仕組みになったわ…

RDGC - Ruby(Random) Dungeon Game Core Ver0.1 リリース

なんだかんだで、開発を始めてから半年くらいかかりましたが、 とりあえずRDGCが初期公開版Ver0.1にたどり着きました RDGC - Ruby(Random) Dungeon Game Core 正直、Ver0.1は基盤として使い物にならないとは思いますが、 昨日サンプル実装である「"RO"gue Ve…

ある技術者がRSpecに目覚めるまで

テスト駆動開発が有用だと理屈ではわかっていても、 実際になかなか適用できないと悩んでいる方は多いと思います 今回は私がRSpecを通して、自分なりの「テスト駆動開発」を見いだすまでのお話 ・・・すでにやってる方はスルーしてください(´・ω・`)「プロ」の…

KVS(NoSQL)のまとめと「これから」の設計手法

仰々しいタイトルをつけてますが、 たいしたことは書いてません(´・ω・`) なぜKVSを試していたのか? 今月に入り、KVS・・・というより、 NoSQL系の技術をいろいろ試してきたわけですが、 そもそも何を目的としているのか、というと・・・ <前提> 100万件以…

MessagePack-RPCとkumofsを試す

先週、デブサミ2010に参加したとき、 一番感銘を受けたのがkumofsのセッションでした kumofsから学ぶNot only SQLの技術 - 古橋貞之の日記 細かい内容はこのエントリを見ていただければいいのですが、 個人的に気になったのが「非同期処理」のデモでして あ…

Developers Summit 2010 2日目メモ

今日も午後からデブサミに行って来たわけですが、 昨日以上に疲れました(´-ω-) 昨日はまだ最後のセッションへの参加を迷う余裕があったのですが、 今日は午後の4本目が終わった段階で即会場を出ました というわけで、昨日以上に簡単なメモだけ残します...φ(・…

Tokyo TyrantをDBと比較してみる

あらかじめ書いておくと、最終的にごく当たり前の結論しか出てきませんΣ(・ω・ノ)ノ ただ、その「当たり前の結論」を、自分で身をもって体感しておくのは、 意味があるとは思います 例によって前置きから入るわけですが、 昨年末あたりから新しいシステム開…

Rubyっぽくリファクタリングするためのポイント(4)

今回の話は、「Rubyっぽい」ことは間違いないですが、 リファクタリングとして妥当かは微妙です というのも、今回のコードを見たときに、 Rubyにあまり詳しくない人には、 何をやっているのか分からない可能性があるからです 保守性、という意味では微妙では…

RDGC(+"RO"gue)のコード公開開始

http://sourceforge.jp/projects/rdgc/ SourceForge.JPにプロジェクトを作っておいて、 何のコードも置いてないことを心苦しく思っていたのですが、 これで一つのハードルを超えましたヽ(`・ω・´)ノ ただ、あくまで現時点でのコードを置いただけで、 まだ初期…

GoogleAppEngineでRubyを動かしたコード(+おまけ)

以前、GoogleAppEngineでRubyアプリを動かした話を書きましたが、 そのコードをGitHubに置きました どうせたいしたコードじゃないですしね・・・ http://github.com/parrot-studio/ro-devel-dict-gae ただし、このコードのまま動かそうとしても動きません #c…

"RO"gue (on RDGC) テスト版 Ver0.003

だいぶご無沙汰しておりました おそらく待っている方は少ないとは思いますが・・・ 先日、ライセンスに関する話でも書きましたが、 Ver0.002以降、基盤である「RDGC」と、 その上で動く「"RO"gue」の分離作業をしておりました なので今回のバージョンは、Ver…

GoogleAppEngineでRubyアプリを動かすまで

大晦日の日、自分への挑戦・・・ってほどのことではないですが、 1日でGAEアプリを作るのに挑戦してみました ・・・と言っても、この上なくシンプルなCRUDアプリではあるのですが、 以前GAEでSinatraを動かしたときは、データのところまでは見てなかったので…

はじめてのSinatra

昨日、GAE絡みで初めてSinatraに触れて、 今回の仕事はこれで行こうと決めたので、 もうちょっと実用的なレベルで調べてみました まず気に入ったのが、非常に軽量でシンプルであること Sinatra自体は最低限のフレームワークを提供するだけなので、 その上に…

GAEでJRubyのSinatraを動かすまでのメモ

業務でGoogleAppEngineを使うかもしれないので、 最近いろいろ調査してました 特に、GAE/JRuby周りを中心に 一応、私はJava屋でもあるので、 GAEが正式サポートしているJavaでコードを書いてしまってもいいのですが、 Rubyの簡便さに慣れるともう戻れないの…

"RO"gue (on RDGC) Ver0.1への道

先月から忙しかった仕事がやっと一段落しまして、 ようやく「"RO"gue(仮)」のことを考える余裕ができました(`・ω・´) 「"RO"gue(仮)」・・・というのももう面倒なので、 「"RO"gue」で確定しますが、テスト版Ver0.002で入れた告知のように、 最初の正規リ…

「"RO"gue」(仮)テスト版 Ver0.002 公開

次は正式版・・・くらいの勢いだったのですが、未だテスト版です(´・ω・`) 作ってみるといろいろ問題が出てくるんですよね・・・ 今回は戦闘やら回復やら最低限の要素を追加してはいますが、 「ゲーム」と呼ぶにはまだ足りないものが多いのです 全然バランスと…

Rubyっぽくリファクタリングするためのポイント(3)

久々にネタを拾ったのでメモ...φ(・ω・`) 今回はちょっと仕様が複雑です しかも、あまりRubyと直接関係ない部分もありますが、 Rubyだと簡潔に書ける例ということで <今回の仕様> 各データには値A、フラグB、フラグCが存在する データの状態に合わせて実…

「ROgue」(仮)テスト版 Ver0.001 公開

以前も何度か開発中の画面を出しましたが、 やっと「動作テストとして公開できるもの」ができました Rubyで開発中の「ローグライクゲーム」・・・みたいなものです まだ「ゲーム」と呼べるレベルではなく、 開発環境であるRuby+DXRuby+Exerbが「どこでも動く…

Rubyのコードをexe化する

Rubyでローグライクゲームを作っていることは前々から書いてますが、 Ruby+DXRubyだと非常に書きやすいものの、大きな問題が一つあります ・・・つまり、どうやって配布するか、でして Rubyのコードは、当然ながら(Windowsなら)ruby.exeがないとダメですし、…

formatに小数を渡した時の値が環境によって違う

Rubyでシステムを開発するとき、 普段はmswin32のRubyを使い、本番ではLinux(CentOS 5.3 x64)のRubyを使ってます それをふまえて、以下のコードを(´・ω・)っ f = 65.0/32.0 p f #=> 2.03125 p format("%.4f", f) #=> ???? どうってことないコードなのですが…

Rubyのゲームライブラリを試す(後編)

前編に引き続き、Rubyで使えるゲームライブラリを見ていきます Ruby/SDL Miyako StarRuby DXRuby これのうち、後半の2つが今回です StarRuby 開発元:http://www.starruby.info/ja/ 実は、評価した順で言うと、DXRubyの後にStarRubyでした しかもコンセプト…

Rubyのゲームライブラリを試す(前編)

以前、「Windows上で動作するダンジョンサンプル」を出しましたが、 「詳しい話は後日」と書いておきながら、わりと時間が経ってしまいました 結構進んではいたものの、基盤となるライブラリの選定で悩んでいたのです いつもやっている仕事なら、出力はHTML…

each_with_index か each.with_index か

以前書いた話でさらっと触れたのが・・・ ちなみに、Ruby1.8.7以降だと、「each_with_index」ではなく、 「each.with_index」の方が汎用性が高まります ・・・というお話 その時はそう書いたものの、いったんEnumeratorを取得してからメソッドを呼ぶよりも、…

ランダムダンジョンを歩けるようにしてみた

前回はWebで動かしましたが、「DXRuby」と「ocra」を使ってサンプルプログラムをexe化 ちなみにDXRuby周りのコーディング所要時間は30分ほど 細かい話は後日として、とりあえずこんな感じに(´・ω・)っ 青い点が上り階段(スタート)、緑の点が下り階段 赤い点…

Rubyっぽくリファクタリングするためのポイント(2)

予想外の第2回ですが、今回も自分用にポイントをメモする感覚で...φ(・ω・`) <今回の仕様> リストに含まれるキーに応じた値でカウンタを加算していく 全部処理したらキーごとの値を取りだす 非常に単純ですが、やりたいことはこうです data_list.each do …

ランダムダンジョンのサンプルをRubyで作ってみた

前回、「ローグライクゲーム」の本を買った話を書きましたが、 そこに書かれていたロジックをベースに、 作成ロジックをRubyで書き下ろしてみました(`・ω・´) 404 Not Found ※自宅鯖なので、あまりF5連打しないでもらえるとありがたいです 元の本はC++で書いて…

Rubyっぽくリファクタリングするためのポイント

こういうネタに需要があるかはわかりませんが、 自分でリファクタリングをかける時の実例をメモする感覚で...φ(・ω・`) <今回の仕様> data_listは出力したいdataオブジェクトのArray ourput(order, data)は、order(1-origin)とdataを受け取ってどこかに出…

RubyとHaskellの蜜月な関係

先日書いた記事が、なぜかちょっと書いただけの「Haskell」って単語でHITしまくりなので、 もうちょっとまともに書いてみます (よく考えてみたら、はてなでHaskellネタを書いてなかった・・・) デブサミ2009でまつもと氏の講演を聞くまで、 「関数型プログ…

Eclipse+DLTKをUpdateしたら・・・

かれこれ一年近く、私はRubyで開発するのに、 Eclipseの「Dynamic Languages Toolkit」(DLTK)を使ってます (ただし、Railsの部分はNetBeans) DLTKのダウンロードはこちらから可能ですが、 Eclipseの更新サイトに以下を指定してもOKです http://download.ec…

MySQLの困った仕様

まずはこれをご覧ください require 'date' Date.parse('0000-00-00 00:00:00') rescue p $! #=> #<ArgumentError: invalid date> これが意味するのは、「'0000-00-00 00:00:00'なんて日付は知らねー」ということです 普通はこんな日付を指定する方に問題があるので、 気にすることはないの</argumenterror:>…

MySQL/Ruby終了のお知らせ?

昨日書いたように、MySQL/Rubyが1.9に完全には対応していないため、 Ruby1.9への移行はできません なので、さしあたって1.8.6から1.8.7へ移行しようと、 Windowsの開発環境を作り直していたのですが、 結構いろいろな問題がΣ(゚Д゚;≡;゚д゚) gemがインストー…