プロトタイピングラボとは、思いついたアイデアのプロトタイプを3日間で開発するというハッカソン型のイベントでした。
私の参加した第2回の開催日とテーマは次のようになっていました。
- 開催日
- 9/10〜9/12 の3日間
- テーマ
- 自由
プロトタイピングラボとは、思いついたアイデアのプロトタイプを3日間で開発するというハッカソン型のイベントでした。
私の参加した第2回の開催日とテーマは次のようになっていました。
Getting Started with Railsを参考にして Rails4 のプロジェクトを作りました。
念の為にバージョンもメモしておきます。
Mac OS X でやりました。
関連記事
canvas#toDataURL()
の注意点なのですが、
一度でもクロスドメインで読み込んだファイルを描画した canvas に対して使うと、
Uncaught SecurityError: An attempt was made to break through the security policy of the user agent.
というエラーがでます。
クロスドメインで取得したImage
を引数にしても、context#drawImage()
は成功するので、すこし気が付きにくいと思いました。
Chrome バージョン 29.0.1547.65 で確認しました。
関連記事
ActiveRecord をCGIで単体で使おうとしたのですが、ActiveRecord の初期化に数秒かかってしまい、 レスポンスが遅すぎて使い物になりませんでした。
結局、ActiveRecord の部分を生のSQLite3で再実装しました。
Rails のようにサーバが起動したらずっと同じプロセスで動作するようなものであれは、初期化が遅くても問題にはならないのですが、 CGI のように、appache が毎回プロセスを起動するようなものだと、ActiveRecord を使うのは諦めたほうがいいようです。
ActiveRecord の悪口になってしまいましたが、ActiveRecord そのものは本当に便利でした。
テーブルの作成のために ActiveRecord を使うのはいいかもしれないと思いました。
SQLite3(というか、ActiveRecordの問題なのだろうか。要検証。) を CGI から使うときは、パーミッションに注意しないと、ハマります。
以下のような例外が起きることが有りました。
SQLite3::CantOpenException: unable to open database file
SQLite3::ReadOnlyException: attempt to write a readonly database
上のような例外が発生した場合、次のことを確認して下さい。
www-data
で、データベースのファイル名が db/db.sqlite3
なら、以下のように変更する。chown www-data.www-data db/db.sqlite3
db/db.sqlite3
なら、ディレクトリdb
のパーミッションは 777 である必要があるようです。
参考Ruby で sqlite3 gem
を使ってtableにプレースホルダを使ってinsert
した時、
can't prepare Time
とかいうエラーが発生するときは、値を文字列に変換してやると解消するかもしれません。
# Timeクラスを直接渡すと、can't prepare Time とか言われる例
h = {:time => Time.now, :data = "なんとかかんとか"}
db.execute("insert into table(time, data) values (:time, :data)", h)
次のように、Time クラスを直接渡さずに、明示的に文字列に変換してから渡すと解消するかもしれません。
# Timeクラスを文字列に変換して渡すと解消するかも
h = {:time => Time.now.to_s, :data = "なんとかかんとか"}
db.execute("insert into table(time, data) values (:time, :data)", h)
$n = 入力 + reverse(入力)$ を計算、回文だったらその値を返す。 回分でなければ、$ 入力 = n $ として回文になるまえ繰り返す問題だった。
ここで言う回分というのは、12321
のような整数のこと。
問題文に "palindrome that is not greater than 4,294,967,295. "
とあったので、BigNumber
を使う必要は特に無く、unsigned long long int
で対応できた。
ごく普通に、回文を返す関数
と回分かどうかを判定する関数
を実装して、問題を解いた。
OCamlの匿名関数とカリー化について記事を書こうと想ったのですが、 そのままの記事が既に存在したのでリンクを貼っておきます。
某OJTで XcodeからopenCVを使う機会があったので、その方法をメモします。
バージョンは次の通りです。
まず、普通にhomebrewでopenCVを入れます。
brew tap homebrew/science
brew install opencv
次のページ通りに設定したら、うまくできました。
RubyってSubversionで開発してるというイメージしか無かったのですが、GitHubでも最新のソースコードをCloneできました。
git clone https://github.com/ruby/ruby.git
公式にリポジトリガイドなるページがあるので、最新のRubyのソースコードを読んでみたい人は参考にしたらいいと思います。