% rake time:zones:all
(略)
* UTC +09:00 *
Osaka
Sapporo
Seoul
Tokyo
Yakutsk
* UTC +09:30 *
Adelaide
Darwin
(略)
config/environment.rb:
config.time_zone = 'Tokyo'
% rake time:zones:all
(略)
* UTC +09:00 *
Osaka
Sapporo
Seoul
Tokyo
Yakutsk
* UTC +09:30 *
Adelaide
Darwin
(略)
config/environment.rb:
config.time_zone = 'Tokyo'
Rails 2.3.4から入ったrake db:seed。所謂マスターデータを入れる処理はmigrationじゃなくてこっちにしようという話。マスターって名前も業界ではよく使うけど定義が曖昧だし、モデリングには有害なんじゃないかってぐらいだけどそういうデータにどんな名前をつければ良いのか思いつかない。seedもあまりしっくりこないけど何かに統一されたのはうれしい。
今まではみんなrake db:seedに該当するようなものを思い思いに作ってて、Redmineでrake redmine:default_data。RadiantCMSはrake db:bootstrap(両方うろ覚え)。
db/seeds.rbは単に実行されるというだけで特に決まりはないのでとりあえずdb/seedsディレクトリを作って下記のような感じにしておいた。
db/seeds.rb:
require 'active_record/fixtures'
Fixtures.create_fixtures "db/seeds", :docs
Fixtures.create_fixtures "db/seeds", :users
それまではdb/fixturesディレクトリとrake db:load_defaultとかやってたけど、seedsの方が素敵な名前。これからは、
rake db:reset
でスキーマから初期データまで一発!詳しく調べず買ったら中身OCaml。言語はあまり気にせず写経してきます。
% sudo port install ocaml +doc
---> Computing dependencies for ocaml
---> Fetching ocaml
---> Attempting to fetch ocaml-3.11.1.tar.bz2 from http://distfiles.macports.org/ocaml
---> Attempting to fetch ocaml-3.11-refman.html.tar.gz from http://distfiles.macports.org/ocaml
---> Verifying checksum(s) for ocaml
---> Extracting ocaml
---> Configuring ocaml
---> Building ocaml
---> Staging ocaml into destroot
---> Installing ocaml @3.11.1_0+doc
---> Activating ocaml @3.11.1_0+doc
---> Cleaning ocaml
インストールした。
% ocaml
Objective Caml version 3.11.1
# "あ" ;;
- : string = "�\129\130"
UTF-8で日本語が出ない。
MacOS X日本語の表示の仕方
- ターミナルの漢字コードをEUCにしてください。「ファイル」メニューの「情報を見る」でターミナルインスペクタを開き、「ディスプレイ」メニューの中の「文字セットエンコーディング」を「日本語 (EUC)」にしてください。
- 次に、環境変数LANGを en_US.ISO8859-1(等)に設定して ocaml を起動してください。(ロケールの名称はOSのバージョンによって異なる場合があります。)
- csh 系なら env LANG=en_US.ISO8859-1 ocaml
- bash 系なら LANG=en_US.ISO8859-1 ocaml
参考URLから著者のサポートページには上記のようにせよとある。でもUTF-8使いたいなあ・・・。
あと、このインタプリタの終了はどうやるんだろう。とりあえずC-dで終了しておいた。
HTMLのインデントを合わせたい。
単純なテンプレートでは、partialテンプレートみたいなのを読み込むときにそのときの周りのインデントに合わせなければいけないので無理。
hamlを使えば解決だけど、デザイナーにhamlはひどいので無理。
renderやyieldをラップしてインデント幅を渡すようにしてみたけどキモイ。
HTMLとさほど書き方が変わらずにインデントを合わせる方法は無いかな?
例
foo.php:
<?= include "partial.php" ?>
bar.php:
<ul>
<li>
<?= include "partial.php" ?>
</li>
</ul>
partial.php:
Hello!
これが・・・
http://localhost/foo.php:
Hello!
http://localhost/bar.php:
<ul>
<li>
Hello!
</li>
</ul>
こうなるのが嫌。
AquesTalkのrubyバインディング作りました。
komagata’s win32-aques_talk at master – GitHub
インストール
$ sudo gem install komagata-win32-aques_talk -s http://gems.github.com
使い方
$ irb
>> require "aques_talk"
=> ture
>> AquesTalk.play_sync("これわてすとですね?") # Shift_JIS only
=> 0
AquesTalkはwindows版dllのみが組み込んで配布することもOKとなっているのでwindows版をRubyから手軽に使いたいと思って作りました。
RubyバインディングといってもC言語拡張ではなく、ruby-ffi(Foreign Function Interface)を使っています。
ffiを使うことで、windowsのdllやlinuxのsoなんかの動的ライブラリをrubyから直接使うことが出来ます。
同じ用途で標準ライブラリのdlやdl2なんかがありますが、ffiはRubiniusやjRubyでも同じインターフェースで使えるところが特徴だそうです。
ポインタのオブジェクトや構造体をマッピングするための仕掛けをffiが用意してくれるの予想以上に便利!
グルー言語としてRubyを便利に使うためにCの資産などをどんどん活用していきたいです。
参照:
クラス/メソッドの定義 – Rubyリファレンスマニュアル仮引数にデフォルト式が与えられた場合、メソッド呼び出しで実引数を省略したときのデフォルト値になります。ただし実引数との対応を取るため、i番目の引数にデフォルト値を指定したならば、 i+1番目以降でも全てデフォルト値を指定するか、可変長引数を利用しなければなりません
知らなかった。
>> def foo(arg1 = 1, arg2); end
SyntaxError: compile error
(irb):6: syntax error, unexpected ')', expecting '='
def foo(arg1 = 1, arg2); end
^
from (irb):6
これは駄目。
>> def foo(arg1 = 1, arg2 = 1); end
=> nil
これはOK。
仕事で2年以上使っててこのありさまだよ!
僕が3Dプログラマをやめた理由 または3Dプログラミングを学ぶべき6つの理由 – Keep Crazy;shi3zの日記そこで数あるプログラミングの題材のなかから、3Dプログラミングを選ぶことがなぜ「面白い」のか、その魅力を語る試みをしてみようと思った。
あるジャンルを深くやった人がそのジャンルの「何がおもしろいのか」を語るのを読むのはとても面白い。もっと聞きたい。
僕は浅く広く勉強してきたので、さてどのジャンルをやろうかなと思ったときにどれがやりたいのか自分でも良くわからない。
他にどういうジャンルがあるだろう?
深くやってる人の「何が面白いのか」が聞きたいなあ。
MS IMEさらに...お馬鹿になっていく - Windows Live(中略)
某MS社員に、「MS IME最近どうなっているのよ?」と先週聞いた答えが…「IME開発の主体が、中国にシフトしまっていて我々も手を出せない…...個人的にはATOKに切り替えようと思っている」と言う現役開発系社員の発言に絶句!!!
(中略)
MSのモットーは「Eat Your Own Dog Food」(人にドッグフードを勧める前に、まず自分で食ってみろ!)だったはずなのに、”犬も食わない”って話かよーっ…。きっと藤村さんが、泣いてるぜよ!!!
「幡ヶ谷」「笹塚」が変換出来ないとかあまりにも卑怯過ぎるでしょう?
おまえらに京王線住民の悲しみの何がわかるっていうんだよ!
参照:ブロントさん名言集
brancheをtrunkにマージ
branche-nameブランチがどのリビジョンで分かれたのか確認する。
$ svn log --verbose --stop-on-copy https://example.com/foo/branches/branche-name
マージしてコミット。(必ずどこからどこまでマージしたか書いておく)
$ cd trunk-name
$ svn merge -r 889:HEAD https://example.com/foo/branches/branche-name
$ svn ci -m'Merged branche-name branche changes r889:1288 into the trunk.'
Redmineのチケットメール確認中、
ちょwww
SCSHというshellに特化した処理系があるそうです。へぇ〜
参照: