3/26メモ

heroku わかりやすい。 Heroku入門 (全12回) – プログラミングならドットインストール heroku 上で Rails アプリが動くところまでざっと見てみました。てか、heroku の前にまともに Rails の勉強しなき... 続きを読む | シェアする

Ruby と OpenCV でカメラを使う

前回に引き続き、ruby-opencv でカメラデバイスをソースにしてリアルタイム検知をやってみたいと思います。 使っているカメラ Microsoft 社製の USB 接続 HD ウェブカムです。エンドユーザ向けにしてはちょっと高めですが画質も良いです。... 続きを読む | シェアする

Ruby と OpenCV でチェッカーボード検知

前日に引き続き、ruby-opencv でチェッカーボードを認識させてみたいと思います。チェッカーボードとは市松模様のパターンのことで、これを認識することにより映像中の3次元座標系(の行列)を確定させることができ、映像の上に3Dモデルをマッピングする第一... 続きを読む | シェアする

Ruby と OpenCV で顔認識

去年の秋に組んだ新しいメインマシンは、MSI のB150M MORTAR ARCTIC (MS-7A45) という新しいマザボで、LMDE2 x64 を乗せて使おうとすると USB デバイスまわりが突然使用不能になったりして厄介でした。 MSI B1... 続きを読む | シェアする

Raspberry Pi 3 で mruby を動かす

Raspberry Pi 3 が届きました! 発売より半年ほど出遅れましたが、ようやく Raspberry Pi 3 Model B を購入したので、組み込み向け軽量 Ruby である mruby を動かしていきたいと思います。 RPi3 は 1.2G... 続きを読む | シェアする

マルコフ連鎖を使って文章の自動生成を行う

割と古典ですが、マルコフ連鎖の考え方を用いて、自動生成するスクリプトを書いてみました。入力した文章の単語同士の結合情報を重みづけをして「それっぽい文章」を生成してくれるやつです。以前からよく人工無能などでの実装で使われていますね。 ソースとなる文章をわ... 続きを読む | シェアする

括弧を省略したLispコードのプロセッサーを書いてみました。

supoo(旧実装) これまで業務でも趣味でも Lisp をガリガリ書くということはなく、せいぜい Emacs の設定ファイルを書くことにしか使ったことがありませんでした。 構文は非常にシンプルで、「これなら字句解析も構文解析も自分で書けそうだ。C と ... 続きを読む | シェアする

アスペクト比と面積から縦横の大きさを求めるRubyスクリプト

ImageMagick の montage コマンドを使うと複数の画像をタイル状に並べて、1枚のサムネイル集合写真のような画像を作成することができます。スマートフォンの「カメラロール」のようなものです。 具体的には次のようなコマンドでサムネ画像を生成... 続きを読む | シェアする

最古の Ruby 実装をちょっとだけ覗いてみました

職場で定期的にやることになった Ruby 勉強会の資料作りをしていて、ブロック構文を投げてメソッド側から述語を呼ぶコールバック機能はいつから設計されているのかな、と気になって調べていました。 ドキュメントにも、以前から (ブロック付きメソッドは)最初は... 続きを読む | シェアする

Raspberry Pi と Ruby で「Lチカ」をやってみました

ラズパイを何年も前に購入して Raspbian を入れて ssh できて、X も動いてふぅ…と、ひと落ちつきした後、全然触っていませんでした。 せっかくラズパイを持っているんだからと思い立ち、ヤフオクで売っているキットを購入。子供の頃からやってみたかった... 続きを読む | シェアする

Ruby (とHSP)によるライフゲーム

高校生の頃買った、奥村晴彦先生の「C言語による最新アルゴリズム辞典」で知ったライフゲーム。当時は C を覚えたばかりで、グラフィカルなソフトなんてほぼほぼ書けませんでした。 最新アルゴリズム辞典ではグラフィックを使わず端末上の文字で各セルを表現するもので... 続きを読む | シェアする

mruby で有理数を扱う mruby-rational を書きました

本家 CRuby の Rational クラスは、バージョン 1.9 から require せずに使えるようになっていますが、mruby では本体に組み込まれておらず、該当するような mrbgem も見つからなかったので書いてみました。 dyama/m... 続きを読む | シェアする

mruby から Lua を呼び出すための mruby-lua を書きました

mruby は、こちらでも述べられているように組み込み言語として広く使われている Lua を強く意識した実装になっています。 mruby も Lua もそれぞれ、他システムに組み込むのが簡単ということだけあって、多からず相互利用の試みは mruby が登... 続きを読む | シェアする

mruby-regexp-pcre の String#gsub について

IIJ さんが開発している mruby 向けの正規表現ライブラリ iij/mruby-regexp-pcre を使ってたら、本家 CRuby と違う挙動の部分を見つけました。 # 文字列の先頭に空白が含まれている場合、それを取り除く。 "foo".gsu... 続きを読む | シェアする

Ruby 版 Brainfuck インタプリタを書いてみました。

以前、C 言語で Brainfuck インタプリタを書きましたが、今度は Ruby で同じものを書いてみました。 クラス Machine を簡単なバーチャルマシンに見立てて、メモリの保持と演算を行なわせています。 C 言語版同様、hello.bf を... 続きを読む | シェアする

最小二乗法を用いた直線式の算出

二次元空間上に分布する2つ以上の座標集合を直線で近似する際、最小二乗法という手法を使います。 定義 直線の式を一次関数 とおくと、直線の傾き a と切片 b は次の式で求めることができます。 Ruby スクリプト この式を Ruby で書いていきた... 続きを読む | シェアする

ImageMagickを使ったハミング距離による画像の同一性チェック

画像認識に用いられるライブラリといえば OpenCV が一般的ですが、毎回 face detect のデモを動かしてみて安心してしまい、結果的にいつも本腰を入れて使ってみることがありませんでした。(やりたいなぁとは思いつつ、特に目的がない…) 今回、知人... 続きを読む | シェアする

sinatra, mongoidで簡易ユーザセッション管理

先日の呑み会で Web フレームワークの話が出て、「サーバ挙動からまとめて書けたら便利だよね」という話の流れから久々に sinatra で遊んでみました。 下記、参考にしたページです。 チュートリアル – sinatraへ簡易アカウント管... 続きを読む | シェアする

mruby の public/private について

最近ちょっとバタバタしていてあまりプライベートに時間を割けませんでしたが、連休に台風接近が重なった事もあり、連休初日だけ出社して残りの二日はお休みを頂きました。ということで、メモ変わりにここのところの事を書き止めておきます。 mruby の publi... 続きを読む | シェアする

mruby: C++のクラスをラッピングしてRubyクラスとして使えるようにしてる途中

sirenの改修を行なっています。これはもともと、Open CASCADE の C# アプリケーションサンプルに含まれていた OCCTViewer クラスを参考にして組んだものがベースで、C# アプリケーションのコードとネイティブな DLL の間を取り継... 続きを読む | シェアする

駆逐艦「島風」のローポリモデル作成

仕事の絡みもあって、Maya で作成した三次元モデルをゲームエンジン「Unity」に取り込む検証をしようと思いました。 手持ちの Maya は 2009 と、ちょっと古いんですが FBX 形式の読み書きもプラグインで対応しているようでひとまず安心。 Ba... 続きを読む | シェアする

mruby で自作クラスをごにょごにょする

siren では、mruby を組み込んでコマンドドリブンなインタプリタを実装していたので、クラスをまともに使っていませんでしたが、コマンドが多くなるにつれ管理が煩雑になった事や、Ruby のクラスとして強力な機能を実装する目的もあり、改めて mruby... 続きを読む | シェアする

ANSI エスケープシーケンスについて

端末の色やカーソル制御を行うには、curses を利用するのが一般的ですが、ライブラリを利用しなくとも、シェル経由である決まりのエスケープシーケンス文字列を端末に投げることにより、色やカーソル制御を行うことができます。 次のページに詳しく記載があります。... 続きを読む | シェアする

mrubyがやってきた!

OpenCASCADE の勉強のために、仕事とは関係ないところで、自分なりの簡易三次元 CAD ビューアを作成しています。 形状をパラメトリックに定義したり、対話的に制御したり、一連の処理をモジュール化する上で必要になってくるのがマクロ環境。マクロと言っ... 続きを読む | シェアする

Bash, Perl, Ruby, Pythonで正規表現置換

前回のC++/boost、.NETに加え、各種インタプリタ言語でも同じ動作をするスクリプトを書いてみました。 シェルスクリプト(bash) シェルスクリプトはそもそもグルー言語ですので、他のコマンドを呼び出して処理をすることが一般的です。下のサンプルでは... 続きを読む | シェアする