You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
require 'optparse' params = {} opt = OptionParser.new opt.on('-a') {|v| params[:a] = v } opt.on('-b') {|v| params[:b] = v } opt.on('-c file_name') {|v| params[:c] = v } opt.parse!(ARGV) p params % ./very_boring_and_waste_of_time_option_parsing.rb -a -c /tmp/file {:a=>true, :c=>"/tmp/file"} % ./very_boring_and_waste_of_time_option_parsing.rb -h Usage: very_boring_and_waste_of_time_option_parsing [o
これはセキュリティ&プログラミングキャンプのCTF競技(タイムトライアルのチーム戦)で出題された問題です。Ruby処理系へのバグの仕込みと問題文の原稿を僕が書き、竹迫さんが競技環境で実行するための調査や加筆を行ってくれました。参加者のShota Fukumori (sora_h)が「21日に『セプキャン行ってきたトーク』するから早く公開しろ」というので、取り急ぎ公開します。 問題文 これはプログラミング言語クラスでのタイムトライアル処理系デバッグ演習のために作られた、バグの混入してあるRuby処理系のソースコードです。C言語で書かれています。誰も着手しなかった「veryhard」の問題なので、解説を加筆してCTFの問題とします。 言語クラスではRuby処理系のビルドの仕方やテストのためのツールを2日目に演習し、3日目の朝に「1時間で8問のバグを易しい順に倒す演習」(タイムトライアル処理系デ
最新バージョンはコチラです。 Milkode(ミルコード)はソースコード検索エンジンです。手元にある大量のソースコードを登録し、ブラウザで閲覧したり検索することが出来ます。20000ファイル位であれば1秒位で特定の一行を見つけることが可能です。 Rubyで書かれており、使っているライブラリも含めてRubyGem経由でインストールすることが出来ます。 OSX, Unix $ sudo gem install milkode Windows(32bit) $ gem.bat install rroonga --platform x86-mingw32 $ gem.bat install milkode Windows(64bit) ※ 事前に64bit版rroongaのインストールが必要です。 $ gem.bat install milkode詳しいインストール方法はホームページをご覧下さい。
2010/09/13 元JavaプログラマのPaolo Perrotta氏は、Rubyを使い始めた頃のことを振り返り、こう話す。 「私はJavaの世界からRubyに来た当初、とてもハッピーなプログラマでした。Rubyっていいね、かっこいいじゃん! と。ところが、最先端のイケてるライブラリの中を覗いてみたら、分からないところだらけだったんです……」。 RubyKaigi2010で「A Metaprogramming Spell Book」(あるメタプログラミング魔術の書)と題した講演を行ったイタリア人プログラマのPerrotta氏は、Ruby on Railsのソースコードを覗いてみたときの驚きをこう表現する。 「例えばalias_method_chainというメソッドは、一体どこにあるんだと探しました。どこにあるか分からないんです。こんなことJavaではあり得ません。結局、テキスト検索で発
(注: 以下の内容は、RSpec ユーザの間で広まっていることでもなく、もちろん RSpec 開発チームの公式な見解でもなく、あくまでワシの個人的な見解です。) RSpec のすごいところは、コードに対してではなく仕様に対してテストを書くことを明確にしたことだと思う。何を今さらと言われそうだけど、今さらになってようやく気づいたニワトリ頭ですまんかった。 ワシも最初は、「assert_equal(expected, actual)」のかわりに「actual.should == expected」と書くかっこよさに目を奪われて、テストコードを自然言語に近い形で記述するのが RSpec のすごいところだと勘違いしてたし、それが「TDD (Test Driven Development)」から「BDD (Behaviour Driven Development)」へという新しい潮流だと勘違いしてた
という題で、RubyKansai勉強会#43で発表させていただきました。 使用したスライドは以下です。 Async Programming on Ruby View more presentations from Kazki Matsumoto. 発表でも紹介しましたが、非同期WebフレームワークであるCrampがすごく使い易い。使い方については以下のチュートリアルが参考になります。 http://m.onkey.org/2010/1/7/introducing-cramp また、非同期Webフレームワーク上から利用するための、ロックしないGearmanクライアントをEventMachine上で実装しています。 http://github.com/KazkiMatz/em-gearman-client ひどく荒削りな状態ですが、お役に立てば。
はじめに SinatraはRubyで記述されたWebアプリケーションを素早く、簡単につくるためのDSL(ドメイン固有言語)です。 すでに第7回で、原悠さんにより「小規模Webアプリのためのフレームワーク、Sinatra」というかたちで紹介されています。 簡潔な文法で、高い表現力を持つSinatraは、アメリカのRubyコミュニティや企業を中心に、瞬く間にユーザを増やしました。また、Rubyという一言語に留まらず[1]、Sinatraを模したフレームワークが多く作られている現状からも、SinatraはWebアプリケーション開発そのものにも大きな影響を与えたと言えます。 最近ではここ日本でも、個人利用を中心に、そこかしこでSinatraを使って開発をしている、という話を聞くようになりました。筆者自身、1ユーザとして現在業務で利用しており、1年前は知る人ぞ知る存在だったSinatraは、実際に
■ [ruby] 大規模Railsサイトのための新しいHTTPサーバ、Unicorn githubの中の人が、ブログで「Unicorn使い始めて一ヶ月くらい経つけどいい感じだよ」と書いています。 適当に要点だけ拾ってみました。 Unicornって何よ? UnicornはRubyのためのHTTPサーバ。MongrelやThinのようなものだけど、全く違う設計と思想を持っている ありがちな構成 [mongrel] [mongrel] .. [nginx] -> [haproxy] -> [mongrel] [mongrel] .. [mongrel] [mongrel] .. 問題点: あるactionの処理に60秒以上かかったとき、Mongrelが当該スレッドをkillしようとして固まることがある メモリが一定量を超えたときMongrelを再起動するのが遅い。 デプロイ時に9個のmongre
PDFを作成するライブラリは数多く存在する。Webシステムであってもずいぶん手軽にはなってきた。だが、テンプレートのメンテナンス性の良さと使い勝手の良さを兼ね備えたPDF作成ライブラリとなるとまだまだ数は少ないのが実情だ。 GhostScriptを使ったPDF作成ライブラリ RailsをはじめとしたRubyによるPDF出力を行うならば、RGhostを使うのが良さそうだ。 今回紹介するオープンソース・ソフトウェアはRGhost、PDFや画像を生成するRubyライブラリだ。 RGhostはRubyGemsからインストールできるライブラリで、スクリプトからPDFを生成する他、PostScript、PNG、TIF、JPEGといった画像への変換もできる。オブジェクト指向らしい値の埋め込みによってPDFが生成できるので、使い勝手は良さそうだ。 EPSをテンプレートにしたPDF生成も可能 TrueTyp
tkosugaが管理しています。お問い合わせありましたらメールにてご連絡下さい。今流行のrubyの軽量ウェブフレームワークsinatraを使ってサイト作りました。バージョンは0.9.2です。sinatraのサイトはカッコいいなあ。 まずgemでインストール。 gem install sinatra プロジェクトフォルダ直下のコントローラーとなるapp.rbの内容。今回作ったサイトのコードです。 require "rubygems" require "sinatra" helpers do def partial(page, locals = {}, options={}) erb page.to_sym, options.merge!(:layout => false), locals end end get '/' do erb :index end get '/about' do er
Ruby on Railsの開発元、37signalsの提供するプロジェクト管理であるBasecampは確かに使い勝手が良い。複数のプロジェクトを実際に運用しているが、シンプルでありながら最低限の機能を備えた便利なWebアプリケーションだ。 タスク登録 そんなBasecampに影響を受けたプロジェクト管理としてRedmineがあるが、それに劣らず興味深いプロジェクト管理がTeamboxだ。 今回紹介するオープンソース・ソフトウェアはTeambox、Rails製のプロジェクト管理ソフトウェアだ。 TeamboxはWebサービスも提供している。そのオープンソース版がGithub上で公開されている。複数人で管理できるプロジェクト管理で、リポジトリブラウザはない。この点が何となくBasecampっぽい。 ページ作成 主な機能はメッセージ、タスク、ページ、チャットになっている。Basecampではチ
新しいことにチャレンジしたいと思いつつも、そのために新しい技術を習得するとなるとコストが高くなってしまう。もっと手軽にはじめられるとスムーズではないだろうか。特にプログラミング言語は習得コストが高く、気軽にはじめようと思うまでには相当時間がかかってしまう。 iPhoneでRubyCocoaが使える! 幸いにして、Objective-Cには他言語とのブリッジを行う技術がある。そこで注目したいのがiPhone RubyCocoaだ。 今回紹介するオープンソース・ソフトウェアはiPhone RubyCocoa、その名の通りiPhone向けネイティブアプリケーションをRubyで開発するためのフレームワークだ。 iPhone RubyCocoaはRubyCocoaをiPhone向けに展開したフレームワークだ。RubyのスクリプトでiPhone向けの記述ができ、コンパイルすることでネイティブなアプリケ
秘密鍵やプライベートな情報などを秘匿するためにパスワードでデータを暗号化・復号したい場合があります。このとき、暗号化と復号するアプリケーションが同じであれば簡単ですが、例えばCで暗号化してJava、Perl、Rubyで復号するといった風に異なるプラットフォームで暗号データをやりとりする場合には、いくつか気 をつけなければいけないポイントがあります。 OpenSSLによる暗号化 OpenSSLはWebサーバのSSL/TLSサポートに利用されますが、その他にも付属しているopensslコマンドから基本的な暗号アルゴリズムを利用できます。次のような簡単なコマンドで、パスワードを使ってデータを暗号化したり復号したりすることができます: $ echo 'Hello World!' | openssl enc -e -aes-128-cbc > cipher.txt enter aes-128-cbc
『るびま』は、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 直
参考:http://d.hatena.ne.jp/mizzusano/20080407/1207531215webdesigningとか読んでるとAIRとかFlexのネタがわりと目立つ。DBPressとか読んでいても、AIRとかFlexの記事は割とある(AS3)含めて。で、考えてみたのだけども、そもそもFlexは誰のためにあるのか、ということ。そもそもFlexとはなんなのかと。これは未だに僕もよくわからないのだけど、早い話 HTMLなのではないかと、HTMLの代わりにMXMLがあって、Javascriptの代わりにActionScriptが使えるのではないかなと。で、Flexというものは、RIAを手軽にサクっと作る事ができるツールで、それこそDreamWeaverライクに、フラッシュブルなサイトを構築できる。ドラッグアンドドロップでオブジェクトを配置していくだけで、サイトが作れるのだ。いや
2008年になってみて、ITの地殻変動がどこに起こっているのか?を考えてみる。 ※以下は殴り書き。後でロジカルにまとめる。 【1】XPからPF(プロジェクトファシリテーション)へ ウォーターフォール型開発はメインフレーム+Cobolの時代の開発プロセス。今となっては古い。 RUPは、業務向けオブジェクト指向開発を基盤とした開発プロセス。 馬鹿でかい。皆こなしきれない。 ウォータフォール型開発に、各フェーズでインクリメンタル型を取り入れただけ。 XPは、Webシステムを基盤とした開発プロセス。 XPは、ここ10年の経験に裏打ちされた開発プロセスの革命。 ソフトウェア工学にも新しい知見を生み出した。 XPでは、プログラマは、コーディングするパンチャーではなく、システムの品質に対する最終責任者。 ドキュメントよりも動くプログラム重視。 プロトタイプ重視。 ソース共有、コーディング規約、常時ビルド
■ [ruby] シンタックスハイライトを行うライブラリ、Text::VimColorがRubyに移植されたようです Ruby-VimColorキター! Text::VimColorをRubyに移植する - 古橋貞之の日記 誰か移植しないかなーと思ってたところだったので嬉しい。CodeReposにリポジトリがあったので、 とりあえずREADMEに使い方とかを追記してみた。 で、ソース見たんだけど、これvimをforkで起動してるのなwww てっきりシンタックスファイルをパーズしてるのかと思っていた。 元となったPerl版はこちら。 Text::VimColor - syntax color text in HTML or XML using Vim - search.cpan.org シンタックスハイライトを行うライブラリっていろいろあるんだけど、 対応フォーマットの数では多分これより多い
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く