タグ

ブックマーク / melborne.github.io (7)

  • 知って得する!55のRubyのトリビアな記法

    Rubyはたのしい言語です。Rubyを触っているとマニュアルにも書いていない「小さな発見」に遭遇することがよくあります。このような「発見」は、プログラムの質や効率の改善には直結しないかもしれません。いや、むしろチームプログラミングでは妨げになる可能性すらあります。しかしその一方で、言語自体が自分の知らない領域を持ち続けていることが、その対象に対する興味を失わせないための大きな要因である、というのもまた疑いのない事実なのです。つまり「発見」はたのしさに直結しているのです。 このブログにおいて「知って得するRubyのトリビアな記法」というタイトルで、今まで3回記事を書きました。 “知って得する21のRubyのトリビアな記法” “第2弾!知って得する12のRubyのトリビアな記法” “第3弾!知って得する12のRubyのトリビアな記法” これらのトリビアには、ネット検索で見つけたもの、Twitt

  • Ruby、同じことの繰り返しは君に任せるよ

    もし問題が同じパターンの繰り返しを含んでいて、その極限の解が明らかならば、その問題の解決には再帰が使えるかもしれない。 再帰はある問題の答えの中にその問題自体を含む不思議な構造だ。「GNU」は「GNU’s Not UNIX」の頭文字からなる略称だ。ここで「GNU」は問題であり、その答え「GNU’s Not UNIX」の中に問題自体が含まれている。だからGNUは明らかに再帰だ。 「これじゃ答えになってない」 「つまり再帰は問題解決の役には立たない」 そういう声が聞こえてきそうだ。 つまりあなたは「GNU’s Not UNIX」が、「(GNU’s Not UNIX)’s Not UNIX」になることを知っており、「((((GNU’s Not UNIX)’s Not UNIX)’s Not UNIX)’s Not UNIX)’s Not UNIX」になることも知っており、したがって”どこまで行っ

  • Ruby製サードパーティライブラリgemのトレンドを知るには「BestGems.org」がベスト

    ─質問1─ Ruby製サードパーティライブラリ、要はgemで、何が人気なのかってこと、手っ取り早く知りたいんですけど。 ─回答1─ RubyGems.orgのstatsページを見てください。 ─質問2─ えっ?これだけ?この辺は万年上位で固定でしょ。もうちょっと俺の知らないバラエティに富んだものに出会いたいんだけど。俺、Rails用ないし。 ─回答2─ カテゴリー別ならThe Ruby Toolboxがあります。 The Ruby Toolbox - Terminal Coloring ─質問3─ あんた、俺の質問ちゃんと聞いてるの?カテゴリー別なんて言ってないし。それに、ここのカテゴリーってなんか俺的に信用ないんだよね。取りこぼし多いっていうか..。俺のgem出てこないっていうか..。 ─回答3─ GitHubTrendingでここ最近の人気リポジトリが分かります。 Trending

    Ruby製サードパーティライブラリgemのトレンドを知るには「BestGems.org」がベスト
  • Rubyのメソッド引数は奥が深い(その2)または別のフィボナッチ

    ─ 問題 ─ n番目のフィボナッチ数を返すメソッドfibを定義しなさい。但し、メソッドの実装は一文字とする。 解答例は下。 ─ 解答例 ─ def fib(n, m=n==0||n==1 ? n : fib(n-1)+fib(n-2)) m end (1..20).map { |n| fib n } # => [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765] def fib(n, m={0=>0,1=>1}.tap{|s|s.default_proc=->h,k{h[k]=h[k-1]+h[k-2]}}[n]) m end fib(1000) # => 434665576869374564356885276750406258025646605173717804024

    s1251
    s1251 2014/07/03
  • Rubyを始めたけど今ひとつRubyのオブジェクト指向というものが掴めないという人、ここに来て見て触って!

    Rubyのオブジェクト指向は一貫性があってわかりやすいという評判だけれども、オブジェクトを意識しない便利な手続き的な書き方もできるからそれがRuby来の姿を分かり難くしているという面もあってその辺でRubyを始めたけど今ひとつ質的なものが見えてこない人たちもいるんじゃないかと思う今日此の頃ですが皆さんいかがお過ごしですか? それで随分と前に僕がRubyを始めてそんなに時間が経っていないときに書いたブログの記事があってそのことを思い出して、読み返してみるとRubyのオブジェクトを中心にしたちょっとユニークな説明になっていてまあ書き足りない部分もあるけれどもあの頃の知識でよく書けてるじゃないのなどと自画自賛しつつ、これは先の「Rubyを始めたけど今ひとつ質的なものが見えてこない人たち」の役にも立つのではないかという発想が生まれて、結果ここにその記事群の文体を変えたり間違いを直したり挿絵

  • Ruby製WebSocketアプリを最速でHerokuにデプロイする5つのステップ

    テレビ放送が駄目になった」と言われて久しいですがその理由ははっきりしています。それは放送というものがリアルタイム・コンテンツを扱う媒体だからです。リアルタイム・コンテンツはユーザの自由を奪います。ある番組を見るためにユーザはその時間テレビの前に固定化されます。録画放送番組は字義的にはバッファード・コンテンツ1と言えますが、ユーザがそのコントロール権を持っていないつまりその視聴タイミングの制御を製作者側が持っているので、これはリアルタイム・コンテンツなのです。ユーザの唯一の武器はDVDレコーダによる制約の中のローカルバファリングのみです。 現在のWebは主としてバッファード・コンテンツを扱う媒体です。バッファード・コンテンツの世界ではユーザは好きな時間に好きなだけコンテンツを視聴できるという自由が与えられます。コンテンツの製作者側・提供者側にそのタイミングをコントロールする自由はありません

    Ruby製WebSocketアプリを最速でHerokuにデプロイする5つのステップ
  • CSVデータをデータベース化するツール「CtoD」の紹介

    前の記事ではCtoDを使ってCSVデータからHeroku上にWebアプリを構築する手順を説明しました。 Excelデータを最速でWebアプリ(Heroku)にする109のステップ ここではCtoDの詳細を説明します。対象バージョンは0.0.3です。 ctoD | RubyGems.org | your community gem host melborne/ctoD 使い方 gem install ctoDでインストールすると、ctoDターミナルコマンドが使えるようになります。サブコマンドを渡さなければそのヘルプが表示されます。 % ctoD Commands: ctoD create_table CSV DATABASE # Create a database table for CSV ctoD export CSV DATABASE # Export CSV data to DATA

  • 1