Ruby: eval からブロック付きメソッドへ、書き方を順に変えてみる 例として配列もどき、メディアプレーヤなんかで使いそうな PlayList クラスを使う。 class PlayList def initialize( arr ) @track_list = arr end end PlayList.track_list のそれぞれの要素に対応して (それぞれの要素を使って)何らかの「処理」をしたくなったとする。 さらに、汎用的にする(使いまわせるようにする)ために、 「処理」の内容は呼び出す側で指定できるようにする、という場合を考えてみる。 ブロック付きメソッド(イテレータ)よく分からん、でも eval なら知ってるしよく使う、 という人はこんな感じにするんじゃないでしょうか。 (いや、ツッコミ入るでしょうが説明のためということで…) class PlayList def init
はじめに どうもKRAYの芳賀です。 今日はツイッターサービスをスピーディーかつ無料で作るお話です。 僕は日頃趣味でツイッターサービスを作っているのですが、アイデアを着想したその日のうちにプロトタイプを作って動かすことができるくらいにノウハウが溜まってきました。 仕事が終わってからのプライベートな時間だけでも、1週間から1か月もあれば1つサービスがリリースできる感覚がつかめたので、必要最低限の機能を備えたサービスを短時間で作れないだろうか?と時間を計測しつつ実践してみたところ、なんと1時間で完成できたので、その手順を紹介します。 開発の流れ まずは開発の流れを説明します。 ツイッターアカウントの用意 まずツイッターのアカウントが必要になるので、まだ持っていなければ取得しましょう。サービス用に改めて取得してもいいですね。 サーバの用意 作成したウェブアプリを設置するサーバを準備します。PHP
■ [ruby] Rubyの新リファレンスマニュアルをコマンドラインから簡単に引くためのツールを書いた Rubyリファレンスマニュアル刷新計画(通称るりま)のリファレンスを、コマンドラインから簡単に引けるようにするgemを作りました。 多くの人はWeb版か、chm版を使ってると思いますが、同じものがコマンドラインから見れるようになります。 インストール方法とかはgithubに書いてますが、 $ sudo gem install myrurema $ rurema --init $ rurema Array#length Array#length --- length -> Integer --- size -> Integer 配列の長さを返します。配列が空のときは 0 を返します。 p [1, nil, 3, nil].size #=> 4 という感じです。初回のみ、データベースを構築す
Ruby(とRails)を担当している石原です。 ソーシャル「OSを入れた後にインストールする10のアプリケーション」(仮) を作る過程をレポートしています。 今回は、開発はひとやすみにして、サービスをリリースする前にやっておくべき細々としたことを紹介したいと思います。 これらは筆者がひとりサービスをリリースするときに、毎回なんとなく思い出しながらやってきたことで、サービスによっては忘れてしまっているものもあります。 ですから、次からはこれをチェックリスト代わりに使おうと思っています。 Rails に限った話とWebサービス一般の話が混ざっています。ほかの言語やフレームワークを使っている方にも、Rails に限った話を自分の使っている環境に読み替えれば、いくらか参考になるかもしれません。 参考までにこれまでのエントリーはこちらです ↓ つくるぶガイドブログ: Ruby on Rails を
1. RSpec のここがすごい! RSpec で宣言的な UnitTest! RSpec ? Ruby には、 Test::Unit があるし、 普通に UnitTest が書けるよね? なんで?? 2. RSpec のここがすごい! RSpec で宣言的な UnitTest! まずはこれを見てくれ require 'lru_cache' describe LruCache do describe " を初期化する場合 " do it " は、サイズを渡したら、そのサイズのキャッシュができる ." do targ = LruCache.new(10) targ.limit.should == 10 end it " もし、サイズにマイナス値を渡したら、例外が発生する ." do lambda{ LruCache.new(-1)
古いエントリーなのですが、まだ時折検索エンジン経由?でいらっしゃる方がいるみたいなので追記 Titanium Desktopは今はTideSDKと変わってオープンソースプロジェクトになっています。 2月22日現在のTitanium Developer0.8.4&Desktop SDK 0.8.4をダウンロードしてインストールするとSDK欄がブランクでプロジェクトを作ることができないようです 解決C:\Program Files\Titanium Developer\manifestにsdk:0.8.4と追加して、アイコンをクリックすると再セットアップされます。情報元 さらに追記:Vista等では管理者権限があるユーザーを使用していても普通に開いたらこのファイルを編集できません。編集に使うエディタを右クリックして管理者権限で起動して、そこから manifestファイルを開いて編集してください
この記事読んで以来、ずっとTitaniumをいじっていました Ruby,Python,PHP,JavaScriptでマルチプラットフォームなデスクトップアプリを簡単に作成する Appcelerator Titanium Desktop - 仙台 Rails Vim JavaScript社長 Titanium Desktopの何がすごいって、Webkitベースなのでhtml/css/javascriptのweb標準技術が使えて、さらにはKrollというライブラリがそれぞれの言語の仲立ちをし、名前空間を共有しそれぞれのライブラリを呼び出せるそうな。なにそれきもい。 僕は完全に が使えるwebkitとしか見てなくて、GUIライブラリが貧弱なPythonだと、十分有力な選択肢に入ると思われます。一度作ったものはクロスブラウザで使えるし。 簡単なTwitterクライアントを作ってみた あっさりできま
ref: 未来の国のアリス - d.y.d. で紹介されている implicit future が Ruby に欲しい! # promise を作る x = Promise.new a = [1, x, 2, x, 3, x] # 今はまだ値になっていない p a #=> [1, _promise_, 2, _promise_, 3, _promise_] # この promise は 42 に決めた! (代入ではないよ) x === 42 # x の箇所は勝手に 42 になっている p a #=> [1, 42, 2, 42, 3, 42] というのも、これがあれば Ruby でパターンマッチができる気がするんですよね。こんな感じに。 # 何にでもマッチする箇所には _ と書く (実体は Promise.new) def _ Promise.new end # + と定数だけからなる抽象
Best Hotels – Luxury & Boutique HotelsFamily Hotels – Kid Friendly HotelsAll DestinationsVietnam Tour PackagesAbout Top Travel Guides Santorini – Travel GuideMykonos – Travel GuideGreece – Travel Guide Top Hotels BerlinChiang MaiFlorenceFolegandrosGreeceHydraIosIstanbulKosMilosNaplesNaxosParosRhodesRomeSifnosSkiathos Top Hotels For Families AthensCorfuCreteKosMilanMykonosNaxosParosRhodesRomeSantor
2008年03月30日19:45 カテゴリLightweight Languages一日一行野郎 perl - ワンライナーの書き方入門 まあ、ruby のコマンドラインオプションって、Perl由来ですから。 Rubyでワンライナーを書く方法のまとめ まぁ、Perlもあるしあんまり需要が無いのかも知れませんが。 というわけで、Rubyistにも役立つPerlのワンライナー入門です。 基本中の基本 コマンドとしてのperlは、スイッチがない場合、引数はスクリプト名として扱われます。 % cat hello.pl print "Hello, world!\n"; % perl hello.pl Hello, world! % コマンドライン中の文字列をスクリプトとして解釈させるには、-eを使います。 % perl -e 'print "Hello, World!\n"' Hello, worl
してません(キリッ。Rails 3.0 は Ruby 1.8.7, 1.9.2 対応です。 と、これだけではなんなんで、1台のPCに複数のRuby環境をインストールできる RVMの使い方を書きます。 RVMでは今回説明する 1.9.2 以外にも、 jruby - JRuby rbx - rubinius ree - ruby Enterprise Edition macruby - MacRuby (Mac OS X Only) maglev - Gemstone Ruby ironruby - IronRuby mput - shyouhei(mput)'s github repository などがインストールできます。 ではまず、インストール。 $ sudo gem install rvm 簡単ですね。 その後、.bashrc や .zshrc に以下の文を追記します。 if [[
● [Scala] RubyからScalaに乗り換えた15くらいの理由 [注意] この文章を読むと、既存のRubyコードをScalaでrewriteしたくなる、 Rubyコードで型チェックをやるのが鬱になる、Ruby案件でやる気が出なくなる、 などの幻覚や異常行動が報告されています。 現在関わっているプロジェクトや家族のことを常に意識し、 気を強く持って冷静に読むとよいでしょう。 「Scalaプログラミング入門」を読みはじめて、いきなり大きく頷いてしまった。 "コーディング時間の半分をテスト作成に費やさなければならなかった"(p.3) "Railsによって得られた生産性の向上は、テスト作成の作業に失われてしまいました"(p.3) まさにここ数年私が抱いてた漠然としたストレスの正体が、的確に文章となっていたからだ。そしてほどなく、「あ、この機能がRubyに欲しかった!」という驚きと共に Sc
UUIDやTag URIスキームを使うと、永久不滅の自分専用URIを作れる。 urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 tag:user@example.com,2010:foo/bar また、これらのURIをAtomで利用する方法について検討する。 <atom:link rel="tag:nobody@example.com,2010:myself" href="tag:nobody@example.com,2010:myself" /> 自己言及リンク UUID UUIDにはバリエーションが存在する。以下はRFC4122の話。他は調べてない。マイクロソフトのGUIDがRFC4122に適合しているわけではない(ようだ)。 RFC 4122 - A Universally Unique IDentifier (UUID) URN Names
以前書いた » つくるぶガイドブログ: ひとりサービスをリリースするまでやっておくこと10個 や つくるぶガイドブログ: ひとりサービスをリリースするまでやっておくこと10個 : 僕は発展途上技術者 を読んでいて、更新したくなった。 以下は更新部分しか重点的に書かないので、詳細知りたければ上記エントリーとあわせて読んでほしい。 アプリケーションエラーをメールで通知する。以前は Exception Notifier プラグインを使っていたが、今は Hoptoad が断然おススメ。 エラーページをカスタマイズする Javascript を無効にしているユーザー向け対策をおこなう フッターのコピーライト表示を常に最新にしておく slow query ログを送るようにしておく DBのバックアップを定期的におこなう仕組みを作っておく サイトのアクセス解析をおこなう。PCならGoogle Analyt
Rubyな話。 「とあるオブジェクト群はそのなかでクラスタに分かれていて、クラスタごとに振る舞いが違うんだけど、そのクラスタの数が不定」という状況がたまぁ〜にある。Ruby なおまえらがよく知っている例としては Active Record パターンとかはそう。Active Record パターンだとオブジェクトは DB の行で、したがって振る舞いは DB のテーブル(かビュー)によって決まるんだけど、Active Record の基底クラスを設計している段階ではどんなテーブルがあるかなんてのは当然すべてのパターンを網羅的に作成しておく事はできない。 んで、Rails についてくる ActiveRecord::Base だと、そのへんはかつては「クラスが継承されたときにそこにフックして派生クラスに実装を注入」というインド人もびっくりの力技で解決されていて(今見たら今はそこまでじゃないが)、ま
MongoDBとは 10gen社が中心となって開発している非リレーショナルデータベース。 特徴 MongoDBは("humongous"より)は、スケーラブル、ハイパフォーマンス、オープンソース、スキーマフリー、ドキュメント指向です。C++で書かれていて、機能としては: ドキュメント指向ストレージ (the simplicity and power of JSON-like data schemas) 動的な クエリー 組み込みのオブジェクトと配列をサポートした完全な Index のサポート。 クエリー プロファイリング 速い in-place アップデート バイナリデータの効率的な保存 large objects (例:写真や動画) レプリケーション とフェイルオーバーのサポート。 クラウドレベルのスケーラビリティな 自動的なsharding 複雑な集約のための MapReduce 商用
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く