Kyoto Cabinet 1.2.2から加わったGrassDBは、オンメモリでページ管理を行うB+木を実装してメモリを節約しちゃう仕組みである。それを使ってJava、Python、Ruby、Perlなどのハッシュ(連想配列)機構を鬼のように省メモリにしてみる。頑張ればなんと20分の1になる。 前提 B木やその変種のB+木などは、キーの順序が近いレコード群を「ページ」という単位にまとめてシリアライズしてストレージに書き込むことで、入出力の頻度を減らして高速化することを意図している。メモリに比べて低速なストレージの上で大量のデータを管理するために使われる。多くのRDBMSやいくつかのDBMがB+木をサポートしているのはそれが理由であろう。一方で、メモリ上で検索可能なデータ構造を表現するためには、二分探索木やその特殊例である赤黒木が使われる。STLのstd::mapの実装にも赤黒木を使うのが一
Debian GNU/LinuxのRuby関連パッケージのメンテナだったフランス人のLucas Nussbaumさんが、Rubyパッケージの作成・管理に関わるのをやめると宣言しました。その理由を、やや感情的にブログに列挙したことをキッカケに、日本語・英語のコミュニケーションギャップの問題、OS(ディストリビューション)とRubyなどの言語処理系のパッケージシステムの不調和の問題、コミュニティ運営の成熟度など、さまざまな議論が巻き起こっています。 多くの論点を含みつつ議論が展開 念のために先に指摘しますが、Debian上(Ubuntuでも同様)のRubyパッケージの今後については、Lucasさんのほかに、まだ2人、やまだあきらさんと、森脇大悟さんが関わっているので(リンク)、今回の騒動によってRubyパッケージがDebian上でメンテナンスされなくなったり、将来が不安だということはないと思い

_既にあたり前になりつつある文字エンコーディングバリデーション 大垣靖男さんの日記「何故かあたり前にならない文字エンコーディングバリデーション」に端を発して、入力データなどの文字エンコーディングの妥当性チェックをどう行うかが議論になっています。チェック自体が必要であることは皆さん同意のようですが、 チェック担当はアプリケーションか、基盤ソフト(言語、フレームワークなど)か 入力・処理・出力のどこでチェックするのか という点で、さまざまな意見が寄せられています。大垣さん自身は、アプリケーションが入力時点でチェックすべきと主張されています。これに対して、いや基盤ソフトでチェックすべきだとか、文字列を「使うとき」にチェックすべきだという意見が出ています。 たとえば、id:ikepyonの日記「[セキュリティ]何故かあたり前にならない文字エンコーディングバリデーション」では、このチェックは基盤ソフ
Railsに限らず、MySQL(Innodb)を利用したサービスを開発/運用しているなら、これから解説する内容を知っておかないと、予期しないデータ不整合を発生させてしまうかもしれません。 データ不整合が発生してしまったら、本来あるべき状態に戻すのはかなり難易度が高いため、開発/運用をしているエンジニアは、データ不整合を起こさないようにすべきです。 では、どのようなことをすると、データ不整合をいとも簡単に発生させることができるかを解説します。 まずは、何が原因でデータ不整合が発生するかの簡単なモデルを紹介します。 以下のようなUserオブジェクトをcreateししたとします。 User.create(:name => "interu, :age => "27") すると、Userテーブルにデータが追加されます。 ■ Userテーブル id name age 1 user_a 30 2 use
おそらく、誰もがやる深夜のWebサーフィンは、究極のところ時間の無駄ではないのかもしれない。 それは、Webで夢をみているのにほかならないのだ。(T.B=リー「Webの創成」より) さて、Vim導入メモを書いてから、早いものでもう一ヶ月経ってしまいました。 ようやく使い方にもそこそこ慣れてきたので、今回はVim導入の一番の目的でもあったRails開発についてまとめてみたいと思います。Rails開発に役立つVimスクリプト(必須)Vim/RubyVim/Ruby Configuration Files これはVimでRubyを扱う際の最も基本的な拡張機能と思います。 .rb(ruby)と.rhtml(eruby)のファイルでシンタックスハイライトが有効になるほか、オムニ補完(<C-X><C-O>で表示される自動補完)も使えるようになります。 omni補完 - モデル内で「has」と入力
rails.vimのいい加減な翻訳 September 02, 2006 12:51:50 Comments (13) Trackbacks (2)Rails,vim バイト先でTextMate触ってみて、Ruby,Railsに特化しててショートカットとかいろいろ便利だなぁと思いつつも、カーソルの移動とか基本的な編集のところで発狂しそうになるので、vimをTextMate並にRailsフレンドリーにするしかないと思った。 てことで、前にインストールしたもののシンタックスハイライトしか使っていなかったrails.vimを本格的に使うため、ヘルプをものすごい勢いで訳した。 自分用なのでかなりいい加減な文で、しかもTOEIC400点台なのでクソな訳が混じってます。それから、なんちゃってvimerなので全然理解していないところも多々。 でもまあせっかくなので公開しておきます。 いろんな直しは
● [Scala]RubyからScalaに乗り換えた15くらいの理由 [注意] この文章を読むと、既存のRubyコードをScalaでrewriteしたくなる、Rubyコードで型チェックをやるのが鬱になる、Ruby案件でやる気が出なくなる、 などの幻覚や異常行動が報告されています。 現在関わっているプロジェクトや家族のことを常に意識し、 気を強く持って冷静に読むとよいでしょう。 「Scalaプログラミング入門」を読みはじめて、いきなり大きく頷いてしまった。 "コーディング時間の半分をテスト作成に費やさなければならなかった"(p.3) "Railsによって得られた生産性の向上は、テスト作成の作業に失われてしまいました"(p.3) まさにここ数年私が抱いてた漠然としたストレスの正体が、的確に文章となっていたからだ。そしてほどなく、「あ、この機能がRubyに欲しかった!」という驚きと共に Sc
気になる記事をスクラップできます。保存した記事は、マイページでスマホ、タブレットからでもご確認頂けます。※会員限定 無料会員登録 詳細 | ログイン 月間ユニークユーザー数、884万人、月間ページビュー数、4億6000万(2010年3月)を誇る国内ナンバーワンの料理レシピの投稿・検索サイト「クックパッド」。 日常的に料理をする人はもちろんのこと、たまにしか包丁を握らない人でもクックパッドのウェブサイトを一度は訪れたことがあるのではないか。2ちゃんねるやTwitterを凌駕する それくらい、クックパッドはレシピの投稿・検索サイトとして不動の地位を築いているように思える。なにしろ、母の日とカミサンの誕生日くらいしか、料理をしない筆者でさえも、クックパッドは何度かのぞき、お世話になったことがあるくらいだ。 ページビュー数の比較でいえば、この4億6000万という数字は、2ちゃんねるや今流行りのT

こないだAtomPubとWebDAVの話をしてて、あーそうかAPIをWebDAVとして実装してたらファイルシステムとしてマウントできて面白かったかもなぁ、でも実装面倒なんじゃないのかなどうだろやったことないし、でもvimで記事書いて:wで投稿されてmvしたらカテゴリ変わってrmで記事削除されてとか何それ胸膨らむ、じゃなかった夢膨らむし胸踊るね、なんて考えたところでふと気付いた。あるじゃん、ファイルシステムじゃないものをクライアント側でファイルシステムにしちゃう仕組み。 そうだ、FUSEだ。Filesystem in Userspace。前々からそのうち遊んでみようとは思ってたものの特にネタも思い付かなかったので手をつけてなかったのだけど、BlogFSに丁度良さそうだし、ちょっとやってみることにした。Rubyでいじる FUSEってファイルシステム作るくらいだからやっぱCとかC++とかで書く

いやなブログ: 文字列操作の比較表:Ruby,Python,JavaScript,Perl,C++ にPHP がなかったので作ってみました。文字列検索置き換え系がわけ分からん。適当に preg 系でお茶を濁す。PHP はもっとちゃんとしたものを誰か作っていることでしょう。Objective-C もやらないわけにはいかないのでやってみました。 空白の部分は、該当する機能が無い、どんな機能かよく分からなかった、調べる気力が残っていなかった、のいずれかです。PHP はたぶん4.3以降〜5.xくらい。Objective-C 中の「ms」は NSMutableString です。htmlなどのエスケープ関連も欲しいところですね。あと NSString が真価を発揮するファイルパス関連も。Ruby (String)PHP (String 非オブジェクト) Objective-C (N
After 15 years I'm announcing the closure of Bestwebframeworks.com. This decision was not made lightly andit comes with mixedemotions. While this chapter is coming to an end, I am somewhat proud of what we have achieved together. Hoping that the shared knowledge and experiences gained here will continue to enrich your decisions to choose the most suitable web framework for your needs while the w
■ [ruby][rack] 5分でわかるRack RackはRubyのためのWebサーバインターフェイスだ。RubyでWebっていうとRailsが有名だけど、実はRails以外にもいろんなRuby用のWebアプリ用フレームワークが存在する。 Ramaze Merb Camping Waves などなど…。 一方Webを実際に動かすにはWebサーバが必要だ。RubyのためのWebサーバも、これまたいろんなものがある。 Apache(CGI, FastCGI..) WEBrick Mongrel Ebb Thin などなど…。 ここで問題が一つ。それは「フレームワークが増えるたびに、いろんなサーバをサポートするためのコードが必要になる」ってとこだ。 各フレームワークの作者がみんなそれぞれにCGIやMongrelに対応するためのコードを書いてるなんて、無駄だと思わないか? RackはWebア

2009-09-03 ちょっと時間ができたので、Google App Engine (GAE) 上でJRuby を動かしてみよう。 前に読んだ情報だと、 GAE 上でJRuby を動かすためにはJRuby をコンパイルしたり WAR に固めてアップロードしたりと、かなり面倒な印象があった。 でも今は、ビックリするくらいカンタンに動かすことができるようになっている。 GAE 上でJava を動かすよりお手軽なんじゃないかな。 とりあえずのゴールは、ちょっと前に作ったSinatra と OAuth を使ってTwitter のタイムラインを取得を動かすところまで。 所要時間は10分で。 GAE のアカウント取得 (2分)Google App Engineのサイトで、 GAE のアカウントを取得する。 すでにGoogle アカウントを持っていれば、携帯メールのアドレスで認証するだけ
いやーRails初心者の僕がとんでもなくはまったので備忘録としてまとめておきます。 以下、Macの標準の開発環境からGAEでRailsが動くまで。Google App Engineのアカウント取得、アプリケーション名の登録 ここからGoogle App Engine 専用のアカウントを取得する。新規アプリケーションを作成し、アプリケーションIDを発行してもらう。Railsのアップデート(2.3.3取得)rails_on_gaeプラグインのテンプレートを使用する場合、Railsのバージョンは2.3でなければいけないので、古ければバージョンアップする。 gemをupdateしてからrailsのインストール。sudo gem updatesudo gem installrails バージョンの確認rails -v =>Rails 2.3.3 とでればOK MacのデフォルトのJ
Webブラウザ上で使えるプログラミング言語は限られたものだけだ。JavaScript、ActionScript、Javaアプレット、ActiveXなどだろうか。それ以外のRubyやPerl、Python、PHPといった言語はサーバサイドで使うしかなかった。HTMLのソース。確かにRubyだ。もちろん実行できる しかしその可能性が広がるかも知れない。HTMLにRubyやPython、そしてXAMLといった言語がそのまま書け、そして実行できるのだ。 今回紹介するオープンソース・ソフトウェアはGestalt、Webブラウザ上でRuby/Python/XAMLを実行可能にするライブラリだ。 種明かしをすれば、使っているのはSilverlightだ。Silverlightは言わずと知れたマイクロソフトの技術であり、.NET系だ。そしてGestaltはIronRubyやIronPythonといった.
すべてのMicrosoft 製品 GlobalMicrosoft 365 Teams CopilotWindows Surface Xbox セール 法人向け サポート ソフトウェアWindows アプリAI OneDriveOutlook SkypeOneNoteMicrosoft TeamsPC とデバイス Xbox を購入する アクセサリVR & 複合現実 エンタメ Xbox Game Pass Ultimate Xbox とゲームPCゲーム 法人向けMicrosoft CloudMicrosoftSecurity Azure Dynamics 365 一般法人向けMicrosoft 365Microsoft IndustryMicrosoft Power PlatformWindows 365 開発者 &ITMicrosoft 開発者 Mi
VimでRubyのプログラムを書く時には欠かせないvim-rubyですが、Mac OS Xにもともと入っているVimでは使えません。その辺の事情は、こちらの記事と同じです。 Fedora 7 on coLinuxでvim-rubyを動かす方法 - このブログは証明できない。 ただ、Linuxと違って、MacPortsがいろいろやってくれるのでラクです。vim-rubyを使うと、シンタックスハイライトが有効になるだけでなく、自動補完(omni completion)機能を使うことができるようになります。しかし、自動補完機能を使うには、VimのRubyオプションが有効になっていなければなりません。有効か無効かは次のコマンドで確認できます。 %vim --version | grepruby この結果が「+ruby」なら有効、「-ruby」なら無効です。残念ながら、Macに最初から入ってい
1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く