■ [rails] Rails3に関するさまざまないろいろ Rails勉強会@東京です(講師:松田さん) 準備 $ gem install rails3b $ gem install rails --pre $ gem update プロジェクト作る $ rails books --edge Gemfileに、依存ライブラリ(gem)の情報を書くように。Bundler --edgeなので、「gem "rails", :git => "git://github.com/rails/rails.git"」になっている script/*がscript/railsに 単にrailsでもいい(カレントのscript/railsが呼ばれる) rails_head/railties/bin/railsを参照 rails generate あるいはrails g config/environment.rb
■ [rails] Rails3に「デフォルトでHTMLエスケープする機能」が入ったらしい ERBでは「<%= foo %>」がエスケープなし、「<%= h foo %>」がエスケープありですが、 Rails3のtrunkで、デフォルトでHTMLエスケープを行う機能が入ったそうです。 Riding Rails: What's New in Edge Rails 安全のために「<%= foo %>」の方をエスケープありにすべきだろうという議論は前からあって、 実装もErubis(オプションで可能)とか SafeERB*1 *2とか あったわけですけど、できればRails標準でそうなってた方が良いし、その変更を入れるなら確かにバージョン2→3の今しかない気がします。 エスケープを無効にするにはString#html_safe!を呼ぶか、プラグインで「<%= raw foo %>」のように書ける
本日は、 Ruby の OpenSSL バインドを利用してデータを暗号化する方法をご紹介します。というのも最近、自宅サーバーにある各種データを Web 上のサービスに移動しようと画策していまして、その際にプライベートなデータは暗号化して保存したいのです。ほとんどの Web API は暗号化なしの HTTP で通信しますし、いくらパスワードで保護されているとはいえ、他所の HDD にプレーンな状態で保存するのは不安ですからね。 それ以外でもスクリプトで暗号化の処理をしたい場面はいろいろあると思います。そんなときは、ぜひ参考にしてください。 それでは、まずは暗号化の処理から。 OpenSSL はさまざまな暗号化アルゴリズムをサポートしていますが、ここではリファレンスでも推奨されている AES-256-CBC を使うことにします。ひとつの文字列(バイト列)を暗号化する関数は以下のようになります。
SproutCore is an open-source framework for building blazingly fast, innovative user experiences on the web. Install Sproutcore View on GitHub New Tutorial to Help You Get Up and Running! You've heard all about SproutCore and now it's time to see for yourself. It's easier than ever to get started with our new tutorial. In it you'll learn: How to install SproutCore on your machine How to build your
Win32OLEとは Win32OLEは、Ruby1.8より標準添付となりました。 Rubyをダウンロードすれば、その中に含まれています。 1.8以降はそちらをご利用ください。 Win32OLEは、RubyからExcelやMS-Wordなどを利用するための拡張ライブラリです。 RubyでVBAに似たスクリプトを書くことができます。 require 'win32ole' excel = WIN32OLE.new('Excel.Application') excel.visible = TRUE workbook = excel.Workbooks.Add(); worksheet = workbook.Worksheets(1); worksheet.Range('A1:D1').value = ['North','South','East','West']; ダウンロード (Ruby 1.
View at: http://localhost:4567 The code you changed will not take effect until you restart the server. Please restart the server every time you change or use a code reloader like rerun or rack-unreloader. It is recommended to also run gem install puma, which Sinatra will pick up if available. Routes In Sinatra, a route is an HTTP method paired with a URL-matching pattern. Each route is associated
Gemを作るのが面倒になってきたので、githubから直接requireできたら楽になるかもしれないと思い、試してみました。 1 def git(uri, sha1, options = {}) 2 require "tmpdir" 3 basename = File.basename(uri) 4 outdir = File.join(Dir.tmpdir, basename, sha1) 5 unless File.exist?(outdir) 6 sh = proc{|command| IO.popen("#{command} 2>&1"){|io| io.read}} 7 sh["git clone #{uri} #{outdir}"] 8 sh["cd #{outdir}; git checkout #{sha1}"] 9 end 10 $:.unshift
特にサーバー用途では、CPUがシングルコアに戻ってくることは考えにくい。 マルチコアCPUの性能を活かすにはマルチスレッドに対応したサーバーの実装が必要になるわけですが、マルチスレッドなプログラミングは往々にして「高負荷になると固まる」とか「たまに落ちる」といった悩ましいバグと戦わなければならず、イヤです。 かといってシングルスレッドでは、近い将来 32コアCPU! などが出てきたとき、たぶん性能を発揮できません。 そこで、そこそこデバッグしやすく、それでいて多コアCPUでもスケールするという落としどころを模索しているのですが、ボトルネックはネットワークIO周りにあるだろう*1という前提の元で、ネットワークIO部分だけをマルチスレッドで動かし、それ以外の部分をシングルスレッドで動かすというアーキテクチャを考えています。 ロジックの部分はマルチスレッドで書いても共有リソースにアクセスする度に
以前、動き続ける事を前提としたプログラムについて記事を書き、 Smalltalk勉強会を開催させていただいた事がありました。 その結果、梅澤さんから教えていただいたGemStoneを使ったGLASS (= GemStone, Linux, Apache, Seaside, Smalltalk) というのが面白そうだと思ったのですが、先のRailsConf2008で、 今度はMagLevというのが出てきたそうで、面白そうです。 ということで、情報源をメモしておきます。 MagLev - Ruby that scales(英語) Maglev (英語) GemStone の独自拡張 VM(Facets Java VM および MagLev Ruby VM)と、JRuby および Rubinius の Ruby 処理系記述部分を組み合わせると同社製 OODB をフルに使える Ruby 処理系がで
Improving the Ruby GC overview This page details some changes to the ruby garbage collector which seem to afford a 25% reduction in maximum heap memory usage, and nearly double the amount of heap space ruby's is able to reclaim. This comes at the cost of a 2% performance hit. More to come, stay tuned. patch The latest patch to ruby 1.8.6 is available here. summary of changes Fixed 2k heaps Hea
身の回りに溢れているほとんど全てのプログラムは、 静止状態の表現としてソースコードを持ち、 計算機上で実行され、そして終了します。 少なくとも、終了しようと思えばできるように作られています。 しかしながら、近年では、Webサーバやネットワークプログラムのように、 継続的に動作することが当たり前で、停止状態に移行する事自体が 例外とされるようなプログラムが珍しくなくなってきています。 RubyやPerl, Pythonなどの動的言語と呼ばれる言語が普及し、 プログラム言語の価値は、実行速度から開発速度で測られる 比率が高くなりました。 そんな中、去年ぐらいから、静的言語でも動的言語でもない、 新しいプログラミング言語のパラダイムの可能性について考えています。 走り続けるプログラム はてしない物語。終了状態の無いプログラム。 停止することなく、動き続けることが想定されるService型プログラ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く