タグ

programmingとrubyに関するkuenishiのブックマーク (22)

  • ホワイの(感動的)Rubyガイド

    このはホワイ・ザ・ラッキースティフ(why the lucky stiff)により愛情を込めて書かれた。 ~ 目次 ~ このについて コンニチハ、Ruby このを開く 犬の話 赤い太陽が昇る はどのように始まるか (漫画のキツネと学ぶ)短時間の(そして願わくは辛くない)Rubyコース 言語と、言語で意味しているもの 品詞私がまだあなたのことを十分子供扱いして いなかったなら あなたの成長を促すための例題 そして短い旅はそっとクッション停止する 浮いている小さなコードの葉っぱ アンブローズにおけるステータスシンボルとしての葉っぱ 小さくてほとんど価値のないもの 妄想をつなぎ合わせる ブロックの奇跡 ルールを作るものと夢を生きるもの これは権利を奪われた人のため コンピュータのある城 娘のオルガン教師の話のつづき ヤギは映画を全部見たがっている 盗まれたくじ主 ルールを作る者たち 夢を

  • Rubyのハッシュテーブルの仕組みを徹底的に理解する - ザリガニが見ていた...。

    ハッシュとは 一般的に理解すると抽象的で分かり難くなってしまうが、ハッシュとは、あるデータから、一定の計算をして求めた、目的に沿った数値、と思っている。それでは、どのような目的に利用されるのか?自分の知識で考えてみた。 暗号化 webアプリケーション等で、パスワードをDBに保存する時、生のパスワードをハッシュに変換して保存する。 Digest::SHA1.hexdigest等で求めたハッシュから、元のデータを復元するのが非常に困難という特性を利用する。 保存しているパスワードハッシュが、たとえ漏洩したとしても、不正利用を防止できる。 パスワードを照合するときも、ハッシュに変換して、保存しているパスワードハッシュと一致するかどうかで判断する。 同等の確認 長い文字列データを比較する時、全ての文字が等しいかチェックするのは非常に時間がかかる。 しかし、長い文字列データをハッシュに変換しておき、

    Rubyのハッシュテーブルの仕組みを徹底的に理解する - ザリガニが見ていた...。
  • 言語の制約に頼るべきか?開発者の責任に頼るべきか?

    原文(投稿日:2009/7/17)へのリンク プログラミング言語は、完全な柔軟性をもって開発者が好きなようにいじり回せて、開発者が自分でやったことには責任をもつと信じるべきなのか?それとも悪いコードやメンテナンス性や可読性をさげてしまうような失敗を避けるために、設計時に言語の中に明確な制約を設けるべきなのか? Bruce Eckel氏は、ある種の機能は複雑すぎて、結局のところ、ほとんど使われないと考えている。 実行時のモデルが存在しないC++(コンパイルすると全てネイティブのコードに変換されて、Cとの互換性をもたなければならない)では、テンプレートによるメタプログラミングが現れました。そんな制約があったので、テンプレート・メタプログラミングはとても複雑で、ほとんど誰も、どう扱ってよいかわからなかったのです。 Javaは実行時のモデルを持ち、動的にコードの変更を行う方法すらあります。しかし言

    言語の制約に頼るべきか?開発者の責任に頼るべきか?
    kuenishi
    kuenishi 2009/08/17
    これからの時代はDSLになっていくのだから、言語や処理系の得意な領域に適した制約を課すべき。と、Erlang OTPの見事さを見て思う。
  • ヽ( ・∀・)ノくまくまー(2009-04-15)

    ● [エッグ][Merb][DB] CouchDBを用いた2009新人公演4月におけるあっすーの干され問題の検証 4/4〜5 に開催された「2009新人公演4月」は、セットリストの充実ぶりと、それに負けないメンバーの熱演によって成功を納めた。もちろん全ての観客が公演に満足したのであるが、各々の帰路において、皆が何か納得がいかない胸の支えをおぼえた事も確かであろう。その漠然とした違和感の正体は、ずばり 我らがあっすーの出番が少ない という点だ。この問題は以前から指摘されていたものの、絶対に認めたくないというヲタ心理や、真面目に調査しようとすると涙するために、多くのあっすーヲタは思考停止し、気付かぬフリをしてきた。しかしながら、今回は正直レベルで「1回ぐらいしか出てきてね?」という気がしてならず、いよいよ我慢の限界を越えたので正しく検証を行うこととする。 また、前述の精神的問題以外にも、この

  • 記号だけで brainfuck インタプリタ - まめめも

    Ruby 1.9 の新機能のひとつに「lambda { ... } を -> { ... } と書ける」というのがあります。この表記は反対意見が根強い *1 ですが、確実にすばらしい点があって、全部記号だということです。これによって Ruby が記号だけでチューリング完全になります *2 。 デモとして、brainfuck インタプリタを記号だけで書いてみました。 $___,@_,@__,$_=(@@__="")=~//,?#=~/$/,->(_){_<(__="####"=~/$/)**__&&(@@__<< _;@__[_+@_])},[*$<]*@@__;@__[$___];$____,$_,@___,$__,@__=$_[@_+($_+?!=~/!/ )..-@_],$`,[],[],->(_){(__=$_[_];__=~/[><+\-\.,]/?$__<<$_[_]:__==?

    記号だけで brainfuck インタプリタ - まめめも
    kuenishi
    kuenishi 2008/08/21
    いつみてもゴルフは変態
  • 8章 Rinda

    I like Ruby. (07-05) 借り物人生 (07-05) 通販生活 (07-05) I like iPod (05-24) RWiki (05-14) Download (05-14) ソフトウェア・シンポジウム 2003 (04-28) ruby-amazonAmazonWebService (04-16) DI ary (04-05) KoyaなTropy (03-29) Rindaは分散処理システムLindaのtuple spaceのRubyによる実装です Lindaではタプルとタプル空間の二つの概念があります。 タスクはタプルをタプル空間へ書き込んだり、 タプル空間からタプルを取り出したりすることで通信を行ないます。 Lindaのモデルはきわめて単純ですが、 複雑なプロセス間通信を容易に記述することができます。 この章ではLindaのRubyによる実装であるRinda

  • 404 Blog Not Found:coders.each{|you| you.get(this) if you.langs[0] != 'ruby' } # - 書評 - 初めてのRuby

    2008年07月07日01:30 カテゴリ書評/画評/品評Lightweight Languages coders.each{|you| you.get(this) if you.langs[0] != 'ruby' } # - 書評 - 初めてのRuby オライリーから献....されませんでした:-( 初めてのRuby yugui ので自分で買ったのはいいけど、おかげでずいぶんと入手に時間がかかってしまった。Amazon、昨日まで「3-5週間待ち」だったもんなあ。しかしその買い、じゃなかった甲斐ありましたよ。いやあ脱帽。版型ぐらいしかケチのつけようのない、完璧な一冊。それですら、「動物だから仕方がない」だし。これほどの出来とは。yugui、恐ろしい子。 書「初めてのRuby」は、"Learning Ruby"の邦訳ではない。 序文 by Matz 失礼しました。一説によると、『Le

    404 Blog Not Found:coders.each{|you| you.get(this) if you.langs[0] != 'ruby' } # - 書評 - 初めてのRuby
    kuenishi
    kuenishi 2008/07/08
    この書評でポチることにしますた。
  • Martin Fowler's Bliki in Japanese - FrontPage

    ここは、Martin Fowler's Bliki の翻訳Wikiです。 Martin Fowler氏人の許可を得て公開しています。 Wikiですので、どなたでも参加可能です。 ご自由にページの追加、修正、変更を行ってください。 まずは およみください をどうぞ。 ご意見は ご意見箱 までどうぞ。 ページ一覧からページをご覧いただけます。 まだ翻訳していないページは、InHandOrNotまたはKeywordListUntranslatedで確認できます。是非、「新規作成」してください ;-)。

    kuenishi
    kuenishi 2008/05/04
    継続的に読みたい
  • CodeZine:RubyのCursesを使ってコンソールを制御する(コンソールライブラリ)

    対象読者Rubyの入門書を一読した方練習用にRubyのプログラムを作りたいが良い課題が見つからない方 必要なもの Ruby体とお好きなエディタを用意してください。RubyGemsも少し使います。 筆者は以下の環境で執筆しています。 ruby 1.8.6-p111 / SAKURAエディタ / WindowsXP SP2 / gem 0.9.5この連載の目標 作っていく例題としてどんなものがいいかとかなり考えました。今回はRailsを使わないと決めたのでWEBアプリは避けたいし、入門書によくあるようなコマンドライン上で文字がちょっと出るだけというのも面白くないし、GUIアプリも敷居が高そうです。考えた結果、コンソールをいろいろ制御するようなプログラムを作ることにしました。古い人には懐かしく若い人には新鮮かもしれません。見た目は地味ですがなかなか面白いですよ。では始めていきましょう。コンソー

  • 【レポート】AppleもRuby/Pythonに本気 - OS Xはハッカーに魅力的か? | パソコン | マイコミジャーナル

    筆者の周りには未だRubyPythonがメインストリームであることに疑問を挟むものも多い。しかし、Appleはすでにこれらの言語に気のようだ。 19日(現地時間)、同社が公開した"Worldwide Developers Conference 2007"(WWDC07)のセッション概要によれば、6月11日から5日間にわたって開催されるWWDC07ではRubyPythonを扱うセッションが5つある。 なかでも注目されるのがRubyCocoaとPyObjCというテクノロジだ。ともにRuby/Pythonを使ってMac OS Xのネイティブアプリケーションを作れるというもの。RubyCocoaに関してはLeopardへの標準搭載が明らかにされている。MYCOMジャーナルでも過去に紹介しているので参考にしていただきたい。 ほかにはAppleScriptと同様に、Rubyなどのスクリプト言語を

  • 最速インターフェース研究会 :: bluewindからtwitterを更新できるようにRubyでシンプルなクライアントを書いた

    bluewindのコマンドに登録しておいて詳細→パラメータでidとpassword入れた状態にしてbluewindで[twitter ほげほげ]とか入れると更新されるようにしてみた。exerbでexe化しようとしたらrb_io_set_nonblockが見つからないとかエラーが出たけどexerbのバージョンを4.10にしたら上手くいった。 で、Windowsで使うならJavaScriptの方が楽だった。 http://muumoo.jp/news/2007/04/10/0twitterclient.html require 'net/http' require 'kconv' user = ARGV.shift pass = ARGV.shift status = ARGV.join(" ") || "" status_utf8 = status.kconv(Kconv::UTF8, Kc

  • Dependency Injection の基本的なアイディア - bkブログ

    Dependency Injection の基的なアイディア Inversion of Control コンテナと Dependency Injection パターンを読みました。関連する事柄を広くカバーした、隙のない記事です。 ただ、割とボリュームがあるので、「Dependency Injection って結局何なの?」ということを手っ取り早く知りたい向きにはあまり向かないかもしれません。そこで、基的なアイディアを手短にまとめてみました。 Dependency Injection (依存性注入、DIと略) とはその名の通り、依存性を注入するパターン (テクニック) です。もう少し言葉を加えると、依存性を内部に抱え込まずに外部から注入する、パターンです。 Dependency Injection の基的なアイディアは「依存性を外部から注入する」です。 DIコンテナと呼ばれるフレームワ

    kuenishi
    kuenishi 2007/04/08
    オブジェクト指向言語の新しいデザインパターン
  • いやなブログ - スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl

    スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl スクリプト言語用の CUIのデバッガの使い方を簡単にまとめました。対象言語は Ruby, Python, Perl です。 私は C, C++ でプログラムを書いているときはデバッガ (主に GNU/Linux 上の gdb) を頻繁に利用します。しかし、スクリプト言語ではそれほどでもありません。これはおそらく次のような理由によります。 ビルドが不要なので printf デバッグが容易 (ある程度大きい C++ のプログラムではビルド時間が長いので printf の挿入はしんどい) 異常終了時にスタックトレースが表示される (Ruby, Python なら自動、Perl の場合は use Carp; $SIG{__DIE__} = \&Carp::confess; など) オブジェクトのインスペクトが簡単 (Ru

  • プログラミング言語ヒエラルキー:Geekなぺーじ

    「Programmer Hierarchy」という面白いネタがありました。 結構笑えました。 一部日語化してみました。 図中の矢印は「相手よりも上であるとみなしている」事を示しているそうです。 もともとは「Geek Hierarchy」というオタク同士が「俺はこいつらよりオタクではない」と思いあっているというネタがあって、それのプログラマ版のようです。 ちょっとアメリカ文化ですが、元ネタのオタク版も面白いのでもしよろしければご覧下さい。 おまけ:プログラミング/技術関連お笑いネタ プログラマレベル 人生の全てはTCP/IPに学んだ いいから殺せ。後はこっちでなんとかするから 技術系シモネタ

  • OBB vs AABB - Radium Software Development

    iPhoneの一般修理店は予約なしでも来店できる? 基的には飛び込みで修理に行ってもOK iPhoneを置いていたソファにうっかりと腰かけてしまい、パネルを割ってしまった、こんな時はスマホの一般修理店へ行きましょう。画面割れは、スマホやタブレットの故障原因として非常に多いものです。予約なしで突然お店に行っても平気かしらと、不安に思う方々もいらっしゃるかもしれません。結論としては特に問題はなく、予約なしで訪問しても画面割れの修理はお願いできます。 ただし他のサービス業のお店同様、予約なしの場合、お店が混雑していると順番待ちをしなければいけないです。特に繁盛しているスマホ修理のお店だと、行列が店内で出来ており、予約なしだと、自分の順番が巡ってくるまで長時間待たされる可能性があります。平日の朝、昼なら利用客が少ない場合が多く、飛び込みでも比較スムーズに修理が頼めます。 予約は入れた方が時短に、

  • perl, python & ruby - chr() vs. Unicode : 404 Blog Not Found

    2006年11月23日22:00 カテゴリLightweight Languages perl, python & ruby - chr() vs. Unicode というわけで、404 Blog Not Found:There's more than one language to cook your problemsでPython & Ruby Cookbooksを一気読みしたので、気になる点を少しずつ書いて行くことにする。 まずは、文字の扱い。文字列でない点に注意。 少なくとも、文字列をバイト列と見なして相互変換することは、LLに限らずたいていの言語で出来るようになったのだけど、文字を文字として扱うという点に関しては各言語ともまちまちで、多言語派の私としては結構頭のいたいところ。 ここでは、私が一番流暢なPerlを軸に、RubyPythonではどうなっているのかを調べてみた。 数値

    perl, python & ruby - chr() vs. Unicode : 404 Blog Not Found
  • いやなブログ - 文字列操作の比較表: Ruby, Python, JavaScript, P...

    文字列操作の比較表: Ruby, Python, JavaScript, Perl, C++ Ruby, Python, JavaScript, Perl, C++ の文字列操作の比較表を作りました。配列操作の比較表の続編です。間違いなどがあったらご指摘いただけると助かります。 Ruby (String) Python (str) JavaScript (String) Perl C++ (std::string)

    kuenishi
    kuenishi 2006/10/23
    javaもほしかった…かな?
  • 小野和俊のブログ:Ruby に今一番ほしいもの

    この半年ほど Ruby を使っていて思うのは、コーディング量が少なくてすむし、プログラム言語的な手触りが良いし、まず作ってみてどれくらい感動できるソフトなのかを確認しながらソフトウェアの仕様自体を見直してスパイラルでつくっていくという開発プロセスも取りやすいし、ライブラリも揃ってきているし、Ruby on Rails のバランス感覚はすばらしいし、といったことである。そういう意味では大絶賛なのである。 それでも、普段 Java をメインで使っていて、時々 Ruby にスイッチすると顔をしかめてしまうような猛烈なストレスに襲われるのは、標準的で、無料で、安定しており、好みに合わせてカスタマイズでき、リファクタリング機能 *1をサポートした IDE が存在しないからである。 もちろんこれは言語そのものの問題ではないが、結果的には、使用する言語を選択する際に、要求の変化などの外部的な変化には強く

    小野和俊のブログ:Ruby に今一番ほしいもの
  • 東京大学教養課程の第一プログラミング言語がRubyに - sumiiのブログ

    おそらく来年から?(授業資料によると2006年度冬学期からだったらしい。)前から話はあったが、いろいろな人から聞くようになったので、秘密ではあるまい。OCamlという話もあったらしいが、まあRubyのほうがとか多いからなあ(質のバラツキはあれど)。 追記:ちなみに現在はJava、それ以前はPascalだったと思う。(C++も少しあった?) 追記2:はてなブックマークから来る方が多いようなので少しだけ。上の話はあくまで教養課程のことであって、情報科学の専門課程では、アセンブリ, C, C++, Scheme, OCaml, PrologないしLiLFeSなどを習って(CやC++はほとんど自習を要求されますが)、インタプリタやコンパイラやOSやCPUも作ります。いつもここを読んでいる方はウンザリする?ぐらい聞き飽きている話だと思いますがスミマセン。

    東京大学教養課程の第一プログラミング言語がRubyに - sumiiのブログ
    kuenishi
    kuenishi 2006/09/29
    僕のときはJavaだったけど、一部Pascalだった。後でポインタ理解するのに苦労したなあ。Javaでも普通の人にはハードル高かったあの頃。
  • Binary Hacks in Action - bkブログ

    Binary Hacks in Action Development Environment Conferenceで15分ほど喋った内容のスライドを公開しました。 最後のスライドで、来月にオライリージャパンから出版予定の Binary Hacks の宣伝をさせていただきました。従来、あまりまとめられることがなく「知る人ぞ知る」的な存在だった低レイヤの技術のノウハウを集めて誰にでも使えるようにすることが書の目的です。ご期待ください。