タグ

rubyに関するdgdgのブックマーク (33)

  • 「人間様が気分よくプログラミングするための言語」Rubyは何を目指すのか - GIGAZINE

    「気分やノリがソフトウェア開発には重要だ」と断言し、そこに注目して自らRubyを開発してきたまつもとゆきひろ氏は、どのようにしてプログラマに育ち、Rubyを生み出し、そして開発を続けてきたのでしょうか? 今や日初のオープンソースソフトウェアとして100万人規模のユーザを持つRuby。数々の賞を受け、なおも変化と成長を見据えるまつもと氏が日最大のゲーム開発者向けカンファレンス「CEDEC2011」にて、自らの若かりし日々から長いRubyの開発の歴史とそこで培われたコンセプト、そして未来への展望までを余すところなく披露してくれました。「Ruby開発が教えてくれたこと」と題されたこの講演の全内容は以下から。 まつもと: はじめまして、まつもとゆきひろです。 最近はRubyを開発した人ということで有名になりましたが、Ruby自体ゲームのソフトウェアというより、それを動かすサーバとして使用して頂

    「人間様が気分よくプログラミングするための言語」Rubyは何を目指すのか - GIGAZINE
    dgdg
    dgdg 2011/09/15
  • るびま

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直

    dgdg
    dgdg 2010/09/16
  • Rubyの魔術 数々の“スペル”で高度なプログラミング − @IT

    2010/09/13 元JavaプログラマのPaolo Perrotta氏は、Rubyを使い始めた頃のことを振り返り、こう話す。 「私はJavaの世界からRubyに来た当初、とてもハッピーなプログラマでした。Rubyっていいね、かっこいいじゃん! と。ところが、最先端のイケてるライブラリの中を覗いてみたら、分からないところだらけだったんです……」。 RubyKaigi2010で「A Metaprogramming Spell Book」(あるメタプログラミング魔術の書)と題した講演を行ったイタリア人プログラマのPerrotta氏は、Ruby on Railsのソースコードを覗いてみたときの驚きをこう表現する。 「例えばalias_method_chainというメソッドは、一体どこにあるんだと探しました。どこにあるか分からないんです。こんなことJavaではあり得ません。結局、テキスト検索で発

    dgdg
    dgdg 2010/09/15
    久しぶりにRubyを触りたくなった
  • Rubyで任意のメソッドをメモ化する - ぬいぐるみライフ?

    Rubyベストプラクティスの5-4より.メタプログラミングの例として面白かったのでまとめてみる. メモ化とは メモ化とは,引数に対するメソッドの戻り値を保存しておき,再び同じ引数でメソッドが呼び出された時にその値を再利用することにより,同じ計算を何度もすることを防ぐ最適化手法のひとつ.全ての引数に対しメソッドの結果が不変の場合(同じ引数で何度呼び出しても毎回同じ戻り値を返す場合),メソッドをメモ化することができる. 以下はフィボナッチ数を再帰で計算するメソッドfibの例. def fib(n) (0..1).include?(n) ? n : fib(n-2) + fib(n-1); end この実装の場合,例えばfib(n)はn = 3で5回,n = 4で9回というように,nの値が大きくなるにつれて再帰呼び出し回数がどんどん増え,実行時間が爆発的に増大してしまう.私の環境だとfib(30

    Rubyで任意のメソッドをメモ化する - ぬいぐるみライフ?
  • gren - 次世代grepを目指したコマンドラインツール - おんがえしの blog

    grenはgrepの置き換えを目指して作ったコマンドラインツールです。 以下のような特徴を持っています。 特徴 基はfind+grep 指定ディレクトリ以下にある全てのファイルの中身を調べます。 gren 検索文字列 [検索するディレクトリ] でOKです。 ユーザーが指定する項目を最小限に バイナリかテキストかをツールが自動で判断します *.rbや*/*.cppのような指定は必要ありません README,README.jaのような特殊な拡張子でも検索対象に含めます .pngや.exeの中身は調べません。 デフォルトで除外ディレクトリが設定されています * *~, .svn, .git, CVS等は探索対象から除外します 便利な検索結果 検索を開始したディレクトリ(Path)、かかった時間(Time)、ファイル数(Files)、ファイルサイズ(Size)、マッチしたファイル数とヒット数(M

    gren - 次世代grepを目指したコマンドラインツール - おんがえしの blog
  • 1時間でツイッターサービスを作ろう!

    はじめに どうもKRAYの芳賀です。 今日はツイッターサービスをスピーディーかつ無料で作るお話です。 僕は日頃趣味でツイッターサービスを作っているのですが、アイデアを着想したその日のうちにプロトタイプを作って動かすことができるくらいにノウハウが溜まってきました。 仕事が終わってからのプライベートな時間だけでも、1週間から1か月もあれば1つサービスがリリースできる感覚がつかめたので、必要最低限の機能を備えたサービスを短時間で作れないだろうか?と時間を計測しつつ実践してみたところ、なんと1時間で完成できたので、その手順を紹介します。 開発の流れ まずは開発の流れを説明します。 ツイッターアカウントの用意 まずツイッターのアカウントが必要になるので、まだ持っていなければ取得しましょう。サービス用に改めて取得してもいいですね。 サーバの用意 作成したウェブアプリを設置するサーバを準備します。PHP

    1時間でツイッターサービスを作ろう!
  • eval の速度比較 - まめめも

    ruby 1.9 は ruby 1.8 より eval が 3 倍くらい遅いというのは有名 (?) な話です。では、他の LL と比べてどうなんだろうと思ったので、比較をしてみました。 "1" を 100000 回 eval する eval の前処理と後処理にかかる時間の比較。 ruby 1.8 (trunk) : 0.22 sec ruby 1.9 (trunk) : 0.82 sec perl 5.10 : 1.23 sec python 3.0rc1 : 1.83 sec php 5.3 alpha 2 : N/A (> 180 sec)この結果だけみると、ruby 1.9 の eval はそれでも速い方に見えます *1 。 それはともかく PHP が激遅なんですが、どうも eval を繰り返し呼ぶと、なぜか呼んだ回数以上にどんどん遅くなる (O(n^3) くらい?) ので、意味のあ

    eval の速度比較 - まめめも
    dgdg
    dgdg 2010/07/23
    PHP 5.3.2-2 with Xdebug v2.1.0, with Suhosin v0.9.31 ではevalを重ねても遅くならなかった。直ってて良かった。
  • 正規表現で素数判定 - NO!と言えるようになりたい

    追記:ハッキリ言ってこの正規表現はネタなので,実際に素数判定を行いたい場合は,もっと別な賢いアルゴリズムを使ったほうが良いです 正規表現で素数が判定できるという記事を見たので試してみた. http://www.noulakaz.net/weblog/2007/03/18/a-regular-expression-to-check-for-prime-numbers/ この記事によると /^1?$|^(11+?)\1+$/ という正規表現を使うと,素数判定が出来るらしい.ある整数 n が素数かどうか判定したい場合は,"1" * nという文字列がこの正規表現にマッチするかどうかを調べればよく,マッチすれば非素数,マッチしなければ素数となる.ただし,"1" * n は,例えば,n が 4 ならば "1111" と 1 が 4 回連続して続く文字列となる. Rubyで書いた素数判定プログラムはこん

    正規表現で素数判定 - NO!と言えるようになりたい
    dgdg
    dgdg 2010/07/23
    ああ…なるほど。理解するのにかなり時間がかかったorz /rubyを1年ぶりくらいに使った。忘れすぎ…
  • 【レポート】Rubyの実行環境、Linuxでベンチマークを取ったら… | エンタープライズ | マイコミジャーナル

    Ruby - A Programmer's Best Friend The Great Ruby Shootout (July 2010)にLinuxにおけるRuby実行環境のベンチマーク結果が掲載されている。ベンチマークが実施されたのはUbuntu 10.4 LTS x86_64版、Intel Core 2 Quad Q6600、8GBメモリの環境。Ruby Benchmark Suiteの提供しているベンチマークのうちいくつかを抜粋して実施したという。 公開されているデータはひとつの指針にすぎないが、それぞれのRuby実行環境の特徴がでており参考になる。比較に使われたRuby実行環境は次の8つ。 Ruby 1.8.7 p299 Ruby 1.9.1 p378 Ruby 1.9.2 RC2 IronRuby 1.0 (Mono 2.4.4) JRuby 1.5.1 (Java HotSp

  • tips - 二進数表記まとめ : 404 Blog Not Found

    2007年10月11日17:30 カテゴリTipsLightweight Languages tips - 二進数表記まとめ これにインスパイヤされて。 C/C++で2進数値を記述 - きまぎらすほしゅの不定記 C/C++では、数値リテラルを次のように、8進数、10進数、16進数の三通りで書き表すことが出来る。 int r8 = 01578; /* octal number */ int r10 = 32768; /* decimal number */ int r16 = 0xFFF; /* hexadecimal number */ しかし、8進数よりもよく使われているであろう、2進数の書き方は仕様に存在しないらしい。 二進数→(10,8,16)進数変換 by javascript ご自由にお使いください。[01]以外の文字は単純に削除されるので、'1010_0101'のような表記も通

    tips - 二進数表記まとめ : 404 Blog Not Found
  • Hideki SAKAMOTO の雑記 (2010-06-23)

    ◆ [Rails] 「Ruby on Rails 携帯サイト開発技法」第9章のサンプルコードに含まれる脆弱性について .tright small.(2010/6/25公開)^J2010/6/27: 「追記1」記載、微修正^J2010/6/28: 脚注*5 修正 まとめ ソフトバンククリエイティブ社から発行されている「Ruby on Rails 携帯サイト開発技法」の第9章に掲載されているサンプルコード(ファイル4/4)にはセッションIDの発行・管理に不備があるため、セッションハイジャックが可能です。 解説 このの第9章には「携帯端末特化型セッション管理」と称していわゆる「かんたんログイン」の実装サンプルが掲載されています。第9章の冒頭部分から、その特長に関する記述を抜粋すると、 Cookieの代わりにリクエストヘッダからの情報を使ってセッション管理を行うという、携帯サイトならではのセッシ

  • RubyからScalaに乗り換えた15くらいの理由 - ヽ( ・∀・)ノくまくまー(2010-04-26)

    ● [Scala] RubyからScalaに乗り換えた15くらいの理由 [注意] この文章を読むと、既存のRubyコードをScalaでrewriteしたくなる、 Rubyコードで型チェックをやるのがになる、Ruby案件でやる気が出なくなる、 などの幻覚や異常行動が報告されています。 現在関わっているプロジェクトや家族のことを常に意識し、 気を強く持って冷静に読むとよいでしょう。 「Scalaプログラミング入門」を読みはじめて、いきなり大きく頷いてしまった。 "コーディング時間の半分をテスト作成に費やさなければならなかった"(p.3) "Railsによって得られた生産性の向上は、テスト作成の作業に失われてしまいました"(p.3) まさにここ数年私が抱いてた漠然としたストレスの正体が、的確に文章となっていたからだ。そしてほどなく、「あ、この機能がRubyに欲しかった!」という驚きと共に Sc

    dgdg
    dgdg 2010/04/29
  • Heroku | Cloud Application Platform

    Spotlight Data on Heroku Build data-driven apps with fully managed data services. Move Fast Unleash your inner startup Choose Heroku for the same reasons disruptive startups do: it’s the best platform for building with modern architectures, innovating quickly, and scaling precisely to meet demand. Developers Focus on your apps Invest in apps, not ops. Heroku handles the hard stuff — patching and u

    Heroku | Cloud Application Platform
  • Ruby Best Practices - Full Book Now Available For Free!

    The last few weeks have been a wild ride. Starting in January, I’ve been releasing a chapter at a time here on the RBP blog, and many of those chapters were pretty well commented on. Just for the sake of completeness, here’s a link back to each of those posts: Chapter 1: Driving Code Through Tests Chapter 2: Designing Beautiful APIS / Chapter 3: Mastering the Dynamic Toolkit Chapter 4: Text Proces

    dgdg
    dgdg 2010/04/20
  • 僕たちが待ち望んでいたRubyスクリプトをデーモン化する方法 - http://rubikitch.com/に移転しました

    Rubyでは、簡単にデーモンが記述できる。その方法は簡単!Ruby 1.9だと Process.daemon と書くだけだ。その行の後は制御端末が切離され、デーモンとして実行される。Ctrl+Cで終了できないので、永遠に実行を続けるスクリプトは「pkill -f」などで殺す。 既存のスクリプトをデーモン化するには、この一行を加えればいいだけなのだが、常にデーモンにしてしまうとデバッグが困難になってしまう。そこで、テスト時はふつうに実行して、普段はデーモンにしてしまえばいい。その方法もまた簡単!上の一行を daemonize.rb というファイルに保存すればいい。だけどこれだけだとつまらないので、ついでにRuby 1.8にも対応させてみる。 if Process.respond_to? :daemon # Ruby 1.9 Process.daemon else # Ruby 1.8 req

    僕たちが待ち望んでいたRubyスクリプトをデーモン化する方法 - http://rubikitch.com/に移転しました
    dgdg
    dgdg 2010/01/18
  • るびま

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直

  • Ruby とすてきな難読化 - まめめも

    (これは Ruby Advent Calendar jp: 2009 の 16 日目の記事です。) Ruby は読みやすいプログラムを簡単に書ける言語ですが、読みにくいプログラムも簡単に書けます。 今回は、Ruby でできるかんたんな難読化のテクニックを 4 つ紹介します。 1. Integer#to_s を使う方法 Integer#to_s *1 は、何進数として文字列化するかを引数で指定できます。普通は 2 、10 、16 くらいしか使わないと思いますが、実は 36 まで指定できます。 0.to_s(36) #=> "0" 1.to_s(36) #=> "1" ... 8.to_s(36) #=> "8" 9.to_s(36) #=> "9" 10.to_s(36) #=> "a" 11.to_s(36) #=> "b" ... 34.to_s(36) #=> "y" 35.to_s(

    Ruby とすてきな難読化 - まめめも
  • 54行で分散KVSを実装する(レプリケーション機能付き) - Blog by Sadayuki Furuhashi

    Ruby と MessagePack-RPC があれば、簡単なkey-valueストレージは簡単に作れます。54行で書けます(レプリケーションと負荷分散機能付き。サーバー38行、クライアント16行)。 簡単なKVSをベースにして、ログ集計や遠隔デプロイ、遠隔管理機能などの機能を追加していけば、ちょっと便利なサーバープログラムをサクサク自作できるハズ。 この分散KVSは、(keyのハッシュ値 % サーバーの台数)番目のサーバーにkeyを保存します。また、サーバーの名前順でソートしたときの「次のサーバー」と「次の次のサーバー」にデータをレプリケーションします。 すべてのサーバーで同じ設定ファイルを使います。サーバーごとの設定は引数を自分のホスト名に書き換えるだけなので、デプロイが容易です。 MessagePack-RPC for Ruby を使うと、分散しないkey-valueストレージ*1は

    54行で分散KVSを実装する(レプリケーション機能付き) - Blog by Sadayuki Furuhashi
    dgdg
    dgdg 2009/11/27
  • 開発コアメンバが語るRubyの今とこれから(前編) - @IT

    Ruby 1.9は移行準備オッケー @IT yuguiさんは、2009年2月のDeveloper's Summitの講演で、そろそろRuby 1.8系から1.9系への移行を始めるべきだと主張されてましたね。 園田裕貴氏。裕貴のピンイン表記である「yugui」のハンドル名で知られている。Ruby 1.9系統リリースマネージャで、Rubyコミッタ。1981年生まれ。著書に『初めてのRuby』(オライリージャパン)がある。最近はRailsアプリケーションをよく書いているという yugui ええ、一般のRubyユーザーはRuby 1.9への乗り換えは慎重にという立場の人もいますけど、私はそろそろ移行を考える時期だと思います。 @IT もう1.9に移行してもオッケーだと。 yugui もう根的な仕様が変わることはないという意味でオッケーです。2007年12月に出た1.9.0は、仕様が煮詰まっていな

  • Ruby Enterprise Editionを使って、Railsアプリの使用メモリ量を削減(43.5%カット)してみた - 元RX-7乗りの適当な日々

    ある事情で、サーバ上で多数のRailsアプリケーションを動かす必要性にせまられたので、1Railsアプリあたりの使用メモリ量を少しコンパクト化するべく、「Ruby Enterprise Edition」(REE)を試してみたところ、確かにメモリ使用量が削減された結果(当方例で約43.5%減)になったので、そのメモをエントリに残しておきます。 Ruby Enterprise Edition (REE) とは マイコミジャーナルから引用させていただくと、、、 REEはCRubyをベースにして開発されている実行環境。オフィシャルのCRubyと比較して平均で33%ほどRailsアプリケーションが使用するメモリ量を削減できるという特徴があるほか、実行パフォーマンスも改善される。 REEにおける性能向上の仕組みはガベージコレクタに対してCopy-on-Write拡張を導入することと、メモリアロケータ

    Ruby Enterprise Editionを使って、Railsアプリの使用メモリ量を削減(43.5%カット)してみた - 元RX-7乗りの適当な日々