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

すがブロ

sugamasaoのhatenablogだよ

ruby

Rails 4.1のenumの挙動

みんな大好きenum型 DBのカラムでステータスとか使うとき、ぼくは数値派なんですけど、enumで掛けたら楽で良いですよねみたいのあります。ありますよね。 で、Rails 4.1ではそういうのが導入されたっぽいので試してみました。 rails 4.1をインストールしてプ…

ささたつ会議(あるいは新年会)に行ってきました

去る1/26、ささたつ会議が行われました。 ノリで参加したのですが、ワイワイしながら料理を作るというリア充臭あふれるイベントでした。 記憶に残っているメモ 2kgあった鶏肉が一瞬で無くなった 酒もドンドンなくなっていく すぎゃーんさんの将来が心配です …

RubyMineでRSpecが動かない場合

rake で実行するspecタスクは動くんだけど rspec を実行しようとするとエラーが出る こんな感じ RSpec support is disabled because 'rspec-rails' gem or RSpec Rails plugin are missing. Install and activate gem at first ちなみに環境はこう RubyMine …

WindowsでEncoding.default_externalをUTF-8にするには

Ruby製のツールを扱う際にデフォルトエンコーディングがUTF-8じゃなくて人生厳しい場合がある やりたかったこと 自分が使ったわけじゃないんですけど、compassを使うときにSASSファイル等はUTF-8なんだけどWindows環境でcompassを使ってビルドしようとすると…

パーフェクトRubyという本を(共著で)書きました

8/10 パーフェクトRubyが発売になりましたね パーフェクトPythonやパーフェクトPHPで有名なパーフェクトシリーズのRuby版であるパーフェクトRubyが発売されました。 @hibariya @takkanm @ryopeko @joker1007 @udzura たちとチームを組んで書きました。面白そ…

東京Ruby会議10 3日目でトークしてきました

3日目開催お疲れ様でした!! まずは、本当に3日目開催にこぎつけたスタッフの皆さんにお礼を申し上げたいです。いや、ホントすごいと思うんですよ(イベントの調整もさることならが、モチベーションの維持とかお金の事とか……)。感想もじっくり書きたい所なの…

東京Ruby会議10で巻き込まれ型人間のボッチ脱出計画というトークはできませんでしたが黒Ruby会議でトークしてきました

東京Ruby会議10に参加してきました 準備やアンチボッチランチやアンチボッチディナー、そしてバッチの交換とシャイなぼくでも交流しやすい仕掛けがあって素敵でした。特に、バッチが揃った時にスタッフのみなさんがめっちゃ祝福してくれるの良かったです。残…

名前付きキャプチャが便利

Rubyの正規表現で$1とか$2とかしなくても良くなる Ruby1.9系?(1.9.2からかな)では正規表現が左辺にある場合、名前付きキャプチャが使えるようになってたらしいですよ。 従来はこんな感じで番号を主体にしていましたよね。 /programing (.+)\z/ =~ 'progra…

JSONをcoolに表示するap_commandっていうgemを作った

awesome_print をご存知だろうか JSONとかを標準出力にcoolに表示してくれるライブラリだ。 michaeldv/awesome_print · GitHub irbとかpryとかrailsとかで使えるようになっている。 これはこれで便利なんだけど そもそもJSONの中身を見たいときって外部サー…

Windowsでのエンコーディング設定メモ

実機で確認しないと不安だけど、いつも忘れるので 実行するプログラムは以下 # encoding:utf-8 p 'a'.encoding p ARGV[0].encoding p Encoding.default_external p Encoding.default_internal Windows 7での結果 >ruby test.rb 'あああ' #<Encoding:UTF-8> #<Encoding:Windows-31J> #<Encoding:Windows-31J> nil OSX Lion</encoding:windows-31j></encoding:windows-31j></encoding:utf-8>…

printfフォーマットで左詰め

右詰めしかできないと思っていたが "-"を付けることで左詰めにすることができる。最初Rubyのsprintfのフォーマットで見つけたんだけど、C言語でも同様に左詰めができたのだった。 #include <stdio.h> int main(void) { printf("[%10d]\n", 9); printf("[%-10d]\n", 9)</stdio.h>…

letとlet!の違いがわからない

違いというか使い分け方がわからない (追記アリ) letは使われたタイミングで処理される。let!は毎回処理をされる。 てっきり、letは一回初期化されたら使いまわされるんだと思っていたけど、呼び出されたときは毎回初期化するようだ。 describe 'let_test'…

RSpec実行時にlibとspecが$LOAD_PATHに追加される

知らなかった require 'pp' pp $LOAD_PATH っていうコードを用意して Rubyで実行する % ruby sample.rb ["/Users/sugamasao/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1", "/Users/sugamasao/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9…

Windowsを舐めてた

実は前からそうなのかな? 一番下に追記アリ UTF-8で書かれた出力はコマンドプロンプトでもきちんと表示できる!!!(てっきりWin-31Jとかにしないと文字化けすると思っていた) あ、使っているWindowsはWindows7です。 検証ソース # encoding: utf-8 str = "&…

JPGからサムネイルを取得する

単純に縮小するという話ではなくて、JPGのファイルフォーマットのEXIFの中にサムネイルが収められている(ことが多いハズ)ので、そこからサムネイルを取得してみようという話。 やってみた Rubyのexifrっていうの使うと一瞬というか、何のひねりもなくでき…

yard graphでクラス図を生成しちゃえ☆(ゝω・)vキャピ

yardは単なるドキュメンテーションライブラリではない!! みなさん Yard はご存知ですか。ご存知ですよね。 RDocとか、Rubyでソースコードに書くドキュメンテーションツールでYARD(http://yardoc.org/)ってありますよね。プロジェクトのルートでyard docって…

Rails3.2.2を使おうとしたらエラーで死んだのでなんとかしたの巻

Ruby1.9.3 x Rails3.2.2 の話 ruby 1.9.3p155 (2012-03-03 revision 34878) [x86_64-darwin10.8.0] Rails 3.2.2 Mac OS X 10.6.8 Railsのサンプルをひょいと作ろうと思って おもむろに rails new sample ってするじゃないですか。cd sample するじゃないです…

Rackの起動の流れを追う

Rackの動きについてコードを追ってみたよ Rackのバージョンは1.4.1です。 Rackの動きの前に、まずはざっくりRackで動かすっていうのを確認してみよう。 rack up! まずは適当にRackの設定ファイル兼クラスを定義する require 'rack' require 'pp' class Sampl…

RbConfigというのがあってビルド時の情報とかが取れる

Rubyのインストール時の情報を保持しているみたい RbConfig::CONFIGという定数のHashに様々な情報が入っている。 sugamasao@GRAM% ruby -v ruby 1.9.3p5 (2011-11-30 revision 33907) [x86_64-darwin10.8.0] sugamasao@GRAM% ruby -rpp -e"pp RbConfig::CONF…

RubyでMeCabを使う

まずはMecab自体をインストール むかしにやった気がするけど、メモがてら。 MeCabはhomebrewで入れた。portsでもなんでもイイと思います。 % brew install mecab インストールされたら辞書ファイルを作る MeCab: Yet Another Part-of-Speech and Morphologic…

おまいらもMacRubyでMacアプリ作ろう

このエントリはRuby AdventCalender 2011の企画です Ruby Advent Calendar の25日目の記事です。24日目は@kwappaさんのHappy Xmas, Rubyists! | Kwappa研究開発室でした。 ちなみに、12/25と言うと、バカボンのパパや銭形のとっつぁんの誕生日として知られて…

SQLite3の実際の型

SQLiteの型のなぞ SQLite3の型はスゲーざっくりしていると聞いていたのだけど、RailsでデータベースをSQLiteにして、適当なテーブルを作成したら、なんか varchar とか出てくる。どういうことなんだってばよ? というのを調査してみた。 まずはRailsでテーブ…

Rubyの先っちょ(2.0.dev)をビルドする

Jenkins でビルドして test-all を実行するまでの手順メモ Rubyの trunk が 2.0 になったことだし、ビルドしたくて手が震えてしまいますよね!! そんなあなたのための備忘録です。 環境 Mac OSX 10.6.8 SnowLeopard autoconf 2.68(このエントリを書いた時点で…

闇RubyKaigiで話してきました。

まさかのトリ>< 途中までしか話せなかったのですが、言いたいことはきちんと伝えられたので良かったです。 闇RubyKaigi View more presentations from suga masao ちなみに、最初の一枚目は直前の発表タイトルにかぶせるつもりで急遽追加しました。 直前の…

RubyKaigi に参加します

今年もレポート班として Twitterやらにはさんざん書いているのですが、バッヂをつけたついでにエントリにしておこうかなぁと思った次第です。 RubyKaigi について 日本Ruby会議2011(7月16日〜18日) 闇RubyKaigi | in RubyKaigi2011 2011/07/16(Sat) 20:00-21…

ローカルにgemサーバをたてたい!

gemでインストールするのは楽だけれど、インターネットに繋がってないよ! っていう環境って実際は多いと思うんですよね*1。 で、そういう時のためにローカルの gem サーバを建てれば良いんじゃんっていう話と、でもでも、gemの依存関係さらうの大変すぎてや…

ActiveRecord と実際のDBの型の対応を確認する

rails console で確認できる 環境 Ruby 1.9.2 Rails 3.0.1 MySQL 5.1.44 確認方法 ActiveRecord::Base.connection.native_database_typesでアクセスすると確認できる。 実際にやってみる rails console して、上記で書いたプロパティを確認する。 ruby-1.9.2…

Rails3で困っちゃった事リスト

Rails2.x 系の情報だと動かない!!! Rackアプリケーションになったことやモジュール化を進めた影響だと思うのだけど、Rails2.x系ではうまく行くと書いてあるやり方が Rails3 になってうまくいかなかったりしたので、実際にハマった事をメモしておくよ。 ち…

jewelerによるgithubへのリポジトリ作成のいま

--create-repo での挙動について jeweler でらくらく rubygems 作成(github編) - @sugamasao.blog.title # => ”コードで世界を変えたい” では、 github 上のリポジトリ自体も --create-repo で作成していますが、現在リポジトリがない状態で実行すると以下…

html2hamlで

html2haml で変換する場合の挙動について 環境は Ruby 1.9.2 Haml/Sass 3.0.21 という環境で、以下のHTMLを変換したとする <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <h1>テスト</h1> <input type="button" value='テスト' /> </body> </html> これを html2haml で変換すると !!! %html %head %meta…

モデルにメソッドを持たせる

こんな感じの投稿システムがあったとします sqlite> .tables comments posts む、sqlite3には mysql とかの describe 相当のコマンドが無いのだろうか。 とりあえずデータを突っ込んだ select で勘弁してね。 id|title|body|created_at|updated_at 1|title1|…

Rails のモデル関係と to_json(to_xml)

関係を持ったテーブルと出力方法について Rails初心者にありがちなメモをするよ。 ちなみに、環境は Ruby1.9.2 と Rails3 です。 テーブル間のリレーションについて ユーザ情報テーブルと、ユーザが持ってる所持品のテーブル的なものがあるとして。 面倒なの…

Railsで定数を別ファイルで管理したい? よろしい、ならば Settingslogic だ。

ソースの中で定数として扱うのではなく、設定ファイル的に扱いたい Rubyはそれなりに長い間使っていますが、Railsはメジャーバージョン毎にちょっと触るくらいで、まったくベストプラクティスとか知らないんですね。 で、いまは作る際のお手本として 日本Rub…

RVMのRubyをデフォルトで使用したい

ターミナルを起動した瞬間から RVM の Ruby を使いたいんや MacBookPro(Snow Leopard)に開発環境を構築するメモ - @sugamasao.blog.title # => ”コードで世界を変えたい” ここで書いたように RVM の設定をして、 rvm use ruby-1.8.7-head としても、再度ター…

github の gems を rubygems.org(gemcutter) に移行した

github が gems ホスティングを辞めるらしいので ってずいぶん前から聞いていたのですが、夏休みの宿題の法則*1によってすっかりズルズル行ってしまったのですが、よーやく移行しました。 移行先は以下になります。 saag | RubyGems.org | your community ge…

ChirpUserStreams っていう Twitter API を使ってみた

なんだか自分の TL のイベント等がもりもり取れるらしい Twitterの新しいStreaming API「ChirpUserStreams」がすごすぎる件 - すぎゃーんメモ が面白そうだったので、自分でも作ってみた。 自動返信とかはしてないのだけど、とりあえず自分のTLの状態をひた…

rascut による autotest 環境

無限 FlexUnit FlexUnit は現在 RC1 ですが、なかなか安定している感じですし、何よりも Adobe がきちんと開発しているので、AS3 というか Flex 界隈でも今後 UnitTest 文化も成熟してくると思われます。 で、そーなると、今後はいかに負担なく UnitTest を…

sugamasao.com をリニューアルしたよ

ずーっと気になっていたけど、放置しっぱなしであった .com ドメインをとるタイミングで作り変えようと考えていたのだけど、突発的にサーバが死んだこともあってうやむやになっていたのをついにリニューアルしたよ。 sugamasao.com sinatra で作った理由 sin…

sinatra のスケルトンを更新した

更新の主な内容 SubRUI で動かす場合と、メインで……つまり、http://example.com/ で動かす場合でのパスの違いを吸収するようにしました。 自分の場合、サービスのリリースは SubURI で行う場合が多いのですが、ぶっちゃけると、開発中に shotgun 等で sinatr…

イマ乗りをリリースしました

イマ乗りとは クックパッドの「開発コンテスト 24」でのエントリー作品です 「朝起きてから学校や会社に行くまでの時間をより便利にするためには」というお題に対して、24時間で成果物をリリースするというもの。 で、何を作ったの 404 Not Found イマ乗りと…

RubyでTwitterAPIを叩いてみる

Rubyで使えるライブラリ twitter4r(Twitter4R - Idiomatic Ruby Open Source Library for Twitter REST & Search APIs) twitter(Twitter by sferik) の二種類があるようだけど、twitter4rはちょっと情報が見つけにくかったので twitter ライブラリを使ってみ…

sinatra のスケルトンコードを github に置いた

いつも忘れるので misc/sinatra_skelton at master · sugamasao/misc · GitHub ここに置いた。また何かあればちょくちょく追加するかもしれない。 主な点(よく忘れるところ) haml/sass を使ってる helper で エスケープメソッドのエイリアスを作ってる con…

autotest_screen がイカしてる件

これもなかなか Ruby の開発環境として ZenTest(autotest)を入れた - @sugamasao.blog.title # => ”コードで世界を変えたい” ここで導入した ZenTest なんだけど、 以前までは screen 上に通知するツールが同梱されていたらしい。 しかし、4.0 になってから…

Ruby の開発環境として ZenTest(autotest)を入れた

この間 BPStudy#29 に参加してきました BPStudy - connpass そこで TDD とペアプロを行なってきました。 やってみた感想 TDDに関しては、言われた通りの事が実感できました。 たとえば、テストを書く時点でインターフェイスについて考えるとか。 ただ、絶望…

久しぶりに Rails 触ったらエラーでコケた

Rails でちょっとアプリ作ろうかなと思いたった で、だいぶ触ってなかったので最新バージョンにしてからやろうと思ったわけです。 rails 自身は sudo gem update rails でアップデートできた(ちなみに、2.3.5)。 まずプログジェクトを作る rails -d mysql …

irb を快適に使うための Tips

このエントリは Ruby Advent Calendar jp: 2009 : ATNDの7日目のエントリです。 上記のページに書いてあるとおり、12月中に1日から25日まで一つずつ Tips を書いていこう!という企画で、その7日目がぼくの担当となっています。 前のエントリはこっち:Ruby1…

となりの ATND さんが遅いんだよね

ガチで遅い 一回のレスポンス返すまでで10秒くらい掛かってる。 よくよく調べてみると、Atnd4r の get_event_list と get_user_list が遅いんだね。 つまり公開メソッド両方じゃんw ってわけなんだけど、両方とも中ではほとんど同じメソッドを使っているので…

AS3でちょっとしたサーバサイドのプログラムが必要になる時に毎回書くのが面倒なので、適当に sinatra で書いた

Flash で外部から XML とかを取ってくる時に とりあえず手元で試したい、というときって結構あると思う。それに、作ってる途中で毎回変動するようなデータが送られてくるとどっちが悪いんだ、ということもあるだろうし。 で、ぼくは Ruby厨だし、sinatra厨な…

rascut を使っていて、「既知のプレーヤーのダウンロードタイプではありません」と言われてニッチもサッチ行かなくなるのを解消する方法

注意 下記の取り消し線の情報の対応方法はものすごく間違ってたっぽいです。 さーせん/(^o^)\ ただ、問題の原因は分かった 単純に swf のパスが読み込めないからダメだっていう話だったみたい。 今のファイル構成の場合、 src 配下に swf を出力しないで、…

楽天テクノロジーカンファレンス2009で LT してきました

楽天テクノロジーカンファレンスとは 楽天が三年前から行ってる開発部主体(らしい)のカンファレンスです。 【楽天】テクノロジーカンファレンス2009|開催概要 そこで LT の募集があったので、勢いで応募してみました。 発表資料はこちら という、ATND API…