Hello World in 60 Seconds. Get setup lightning fast in the cloud & code from anywhere, on any machine. By clicking on "Sign up free" below, you agree to the Nitrous.IO Terms , Privacy Policy , and Beta Agreement
今回は、.mdファイルにMarkdown形式で文章を書いておき、それをApache httpdやnginxでホストし、ブラウザからアクセスするとHTMLに変換されて表示されるMarkdownコンバータモジュールをmrubyで書く方法を紹介したいと思います。 Markdownのテキスト形式で保存しているファイルを適当にApache上で配信すれば、ブラウザ上でHTMLで綺麗に閲覧できるといったよくあるアレをWebサーバを拡張して実装してみようという話です。自分の開発環境やローカル環境のメモ置き場にも良いかもしれません。 Apacheモジュールやnginxモジュールで幾つかそういった機能を提供するモジュールはあると思うのですが、もう少し独自で改良したかったり、C言語で実装せずにもっと簡単に自分で書いてみたい、といった要求に本エントリを読むと答えられると思います。 もちろんそれらの機能の実装は、僕
ちょっと煽り気味のタイトルにしてみましたが、Railsで開発する時は意識的にOOPに寄せないとオブジェクトの力が活かせなくなるよってことと、Railsが提供しているクラスの責務を分割することを支援してくれる機能について話をします。 ActiveRecordの性質 Rails開発においては、モデル層にロジックを書いてコントローラーは薄くしろ、というのはしつこく言われているので、概ね浸透してきていると思います。 それに加えて、最近私が結構しつこく主張しておきたいのが、モデル = ActiveRecordでは無いよ、ということです。 ActiveRecordは成り立ちから言うと、ロジックとDBへの永続化をまとめてカプセル化するアーキテクチャパターンから来ています。(詳しくはエンタープライズアプリケーションアーキテクチャパターンという書籍を読むと良いです) この方法はロジックが複雑でない場合、つま
Star Rubyという2Dのゲーム作りの環境を提供してくれるライブラリをMavericksにインストールしてみた。 環境 MacBook Pro Retina15 OSX 10.9.2 Xcode 5.1.1 (5B1008) $ gcc -v Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) Target: x86_64-apple-darwin13.1.0 Thread model: posix $ ruby -v ruby 2.0.0p247 (2013-06-27 rev
はじめに 本文書は、Rubyによりコーディングを行う際の規約について述べる。 実際のプロジェクトに適用する際には、このコーディング規約をカスタ マイズして用いることを推奨する。 ソースコードの整形 インデント プログラムを読みやすくするため、インデントを適宜行う。インデント 幅は2とする。また、インデントにはスペースのみを使用し、タブは使用 しない。(環境によりタブ幅が異なるため。) 例: if x > 0 if y > 0 puts "x > 0 && y > 0" end end 一行の桁数 一行の桁数は最大80桁までとする。 空行 複数のクラスの区切には空行を挿入する。 例: class Foo ... end class Bar ... end 誤った例: class Foo ... end class Bar ... end また、クラス内の各構成要素の区切にも空行を挿入する。
最近のフレームワークの傾向 最近のWebアプリケーションフレームワークには、次の傾向がみられる。: 「モデル・ビュー・コントローラ」(MVC)モデルに沿って構成要素をプログラミングする 「設定より規約」(Convention over Configuration)方式で構成要素を結びつける リレーショナルデータベースアクセスのためのO/Rマッパが付属しているか、既存のO/Rマッパと親和性がある O/Rマッパ O/Rマッパ(Object-relational mapper)は、テーブルとローで構成されるリレーショナルデータベース要素へのアクセスを、プログラミング言語におけるクラスとインスタンスの操作を通じて行えるようにするライブラリである。 図3-2: O/Rマッパ 例えば、S2JDBCでは、次のようなJavaコードで検索を行うことができる。: List<Book> results jdbc
2013.11.02 Ruby on Rails 4.0.1リリース!大量のバグ修正、3系からの移行も少し簡単になりました 本日、Ruby on Rails 4.0の最初のアップデートである、Rails 4.0.1がリリースされました。 6月に4.0がリリースされてから約4ヶ月、かなり久しぶりのアップデートとなりますが、どのような変更が含まれているのでしょうか。 まとめ 量が多いので最初にまとめです。 今回のリリースは大量のdiffを含みますが、そのほとんどは細かいバグ修正です。 Railsのリリース時期的には3.2.13 → Rails 4.0.0 → 3.2.14 → 3.2.15 → Rails 4.0.1となるため、3.2.14以降で適用されていた細かい修正も取り込まれています。4系が3系にようやく追いつきました。 4系はなんかデグレっぽいバグや非互換が多いなーと思っていた箇所が、
住所を緯度経度に直したり、緯度経度から住所を求めたりする操作をgeocodingと言って、Google Maps APIを使うとまあたいていのことはできる。 ロケタッチAPIとか、Yahoo!ジオコーダAPIという手もある。 それはともかく、そのへんをパチパチ叩くコードを書いていて、「こんなのもうとっくに誰かが書いてんじゃないかなー」と思ってぐぐってみたらなんかすごいのが出てきた。 Ruby Geocoder 住所と緯度経度の相互変換はもちろん、距離や範囲の扱い、Google以外のAPIへの対応、キャッシュ処理など、「実装しようかなー。でもめんどくさいよね」とか思って先送りしていたような機能がほとんど全部実装されている。 住所の取得 require 'geocoder' # 日本語ロケールに設定 Geocoder.configure( :language => :ja, :units =>
「Rubyのcase」を一瞥し「あー要は〇〇(言語名)のswitchね」などと早合点し、その後もその真の価値を知ることなく一生を終えるプログラマが近年跡を絶たない。加えて、「今更条件分岐?RubyはOOPなんだからポリモフィズムじゃね?」とか「HashにProc突っ込んでcallするのがオレ流。」とかうそぶく人たちもまた増加の一途を辿っている。 そんな世の中にあって、ぼくは一言、できればガツンと一言申し上げたい。生まれも育ちもRubyなぼくから、是非ともそんな人たちに「Rubyのcase」について一言申し上げておきたい。 ─ 問題1 ─ 名前name、レベルlevel、ポイントpointの各属性を持った複数のCharacterオブジェクトcharlie, liz, benがある。 class Character < Struct.new(:name, :level, :point) def
2日ほど前にGitHubに登場して話題となっているRackアプリケーション向けエラー画面表示ツールの「better_errors」というgemがヨサゲなので、ちょっと試してみました。Rack対応なので、Sinatraでも使えるようですが、もちろん、Ruby on Rails対応です。間に合えば、Ruby on Rails4に採用されることもあるかもしれません。というぐらい、こういうのを待っていましたという声が出ているようです。 スタックトレースとエラー発生箇所が表示されるのは、Rails標準のエラー画面と同じですが、コードがハイライトされているほか、スタックフレームの任意の場所をクリックすると、該当するコードが表示されるなど、簡易なWebアプリっぽくなっています。インスタンス変数や、パーシャルに渡っているローカル変数も表示します。 以下はRails標準のエラー画面です。 Better Er
こんにちはかとりょーです。 うごく小説投稿サイトDenkinovelというWebサービスを作りました。 現在β版としてテストユーザー募集中です。どうかみなさん、使ってみてください。Twitterアカウントをお持ちなら、すぐに登録できます。 どういうWebサービス? 背景変化・BGMなどの演出のある小説を投稿できる小説投稿サイトです。 ノベルゲームみたいな小説が簡単に作れて、すぐに公開できます。 よくある小説投稿サイトみたいに、掲示板形式でずっと文章が続くのではなく、1ページ分だけの本文が表示されます。 クリック、スクロールにあわせて本文がフェードイン、フェードアウトしていきます。BGMを流したり、挿絵での演出もできます。 (背景画像はきまぐれアフター様よりお借りしました) いちど見てみれば感覚はつかめます。こちらから試してみてください。 ノベルゲームみたいですが、けっしてゲームではありませ
ちょっと前に RubyMotion を触ってみてこれは面白いなと思いブログにでも書こうかと思った矢先にドラゴンクエスト10が発売してしまい、あれよあれよといううちに一ヶ月経ってしまいました。 それはさておき「るびも」こと RubyMotion ─ いや、るびもと呼んでいるのは自分だけですけど。Ruby で iOS のネイティブアプリが書けるというツールチェイン。コンパイラ、テストスイート、プロジェクト作成用スクリプトその他を含みます。主に CUI はターミナルでのコンパイルを想定していて、Xcode で開発するのに比べるとだいぶ *nix してるわーという気分になれる代物です。iOS アプリなのに Ruby! iOS アプリなのに CUI! ・・・ これだけでワクテカな方も多いかなと思います。 以下そんなるびもちゃんRubyMotion 様をざっと紹介していきたいと思います。なお、あらかじ
ソースコードのなかでバグが多いのは、より高頻度に、かつ最近になって集中的に直している部分。これが、グーグルで採用された「バグ予測アルゴリズム」であることを、先月の記事「グーグルはコードの品質向上のため「バグ予測アルゴリズム」を採用している」で紹介しました。 そのバグ予測アルゴリズムを実装したツール「bugspots」がオープンソースとして公開されています。 gitのレポジトリを分析 bugspotsはRubyで記述されており、gitのレポジトリから履歴を読み込んで分析し、どのモジュールにバグが含まれている確率が高いかを示してくれます。 以下のようにインストールして実行(説明ページから引用)。 $> gem install bugspots $> git bugspots /path/to/repo $> git bugspots . # (in current git directory)
このページはEclipseペースの統合開発環境Aptana StudioのRubyデバッグ機能の利用メモですページです。 インストールの仕方と簡単な利用方法について、学習したことをすこしずつ書き留めていきます。 ■Aptana Studio Aptana StudioはEclipseベースの統合開発環境です。 PHP, Ruby, Python, Javascriptなどのスクリプティング言語による開発をサポートします。 HTML5やCSSの最新バージョンのコーディングもアシストするようです。 本稿執筆時点のダウンロード可能な最新バージョンはAptana Stuido 3のβ(ベータ)で、 以下では本バージョンについての利用メモを記載します。 ■やりたいこと まずはRailsアプリほど大げさなものでなく、ツールやお勉強レベルのRubyコードをデバッグできるようにします。 ■前提環境 今
※ 画面は公式サイトデモより ああ、これは個人的にとても嬉しい。Railsはとても優秀なフレームワークだが、これで敢えてブログを運用しようとも、開発しようとも思わない。既にWordPressという優秀なブログエンジンが存在するからだ。車輪の再開発は個人的にはしても良いと思うのだが、もっと別なことにエネルギーを向けられるならそれがベストだ。 デモ。ユーザを選んでログインを実行する また、WordPressには既に多数のプラグインが存在し、それらを使えばできることはたくさんある。それの足りない部分をRailsで補うというのはどうだろう。 今回紹介するオープンソース・ソフトウェアはRails Integration API、Railsを使ってWordPressにシングルサインオンするプラグインだ。 Rails Integration APIはRailsだけで成り立つものではない。WordPres
Rubyで .map(&:first) と .map{|e| e.first } が同じになる理由は? - YNote 上記エントリの解決編。 [復習] 謎の記述法 "&:hoge" hoge = [ [ "hoge", 0 ], [ "foo", 1 ], [ "bar", 2 ] ] p hoge.map{|e| e.first } # => [ "hoge", "foo", "bar" ] p hoge.map(&:first) # => [ "hoge", "foo", "bar" ] ということで .map(&:first) と map{|e| e.first } は同じになるらしい。手続き型オブジェクトが単一の引数をもち、中身がそのインスタンスメソッドを呼び出すだけ、という場合は省略的な書き方ができるという感じ。 で、このコロンはなんなのか、& はなんなのか、うんうん考えたがよ
Railsでアプリを作ったら公開したくなるのが人情ですよね。 だけど、安いホスティングサーバとかだと、使える環境が限られていたり、セットアップが面倒だったり・・・必死こいてセットアップしても、本気で運用するとなると、そんな環境だと不安だらけだし・・・かといって、AmazonEC2で運用するだけの気合いもない。GAE/Jを使って、JRubyってのもな〜・・・ 私もそんな感じでしたが、そんな折に、mat_akiに、Heroku(ハーオークーと読むらしい)を教えてもらいました。 実は、Herokuって、ずいぶん昔に話題になって、知っていたんですが、その時は、「WebブラウザでRailsアプリが開発できる〜」みたいな感じだったんですよね。それだとEmacsで良いよ。と思ってスルーしていたんですが・・・どうやら、サービスの定義?内容?が変ったようです。 今までのWebブラウザRails開発環境は、”
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く