rubyに関するkokorokaraのブックマーク (110)

  • 【Ruby】PythonプログラマーがRubyを触って感じたこと - 歩いたら休め

    Pythonプログラマーというか、元々Python(ときどきR、C言語)で数値シミュレーションをしていた学生が、就職してRubyでWeb開発を行うにあたって勉強したことを書き連ねていくだけの記事です。 もし自分と同じような立場の人(これから後輩としてもどんどん増えていくかも!)がいたら、「ここを押さえておけばRubyは問題なく書けるよ」と教えられるように書いておきます。というのも、レビューを行っていた先輩とのプログラミングのスキルとの開きがあり、先輩も私も「どこが分かってないのか説明できない」状態になってしまってお互いに困ってしまった経験があるからです。 RubyPythonはよく似ているのですが、思想や見た目で違う部分が多く、片方を勉強するともう片方の理解も深まります。 たまに2ちゃんねるのオカルト板である「見たことある世界によく似た異世界に迷い込んだ」みたいな感覚で、なかなか面白い経

    【Ruby】PythonプログラマーがRubyを触って感じたこと - 歩いたら休め
  • PythonからRubyに移行した人間の印象 - Line 1: Error: Invalid Blog('by Esehara' )

    今日の料理 安物のねぎとろは、納豆と良くあう。 前提 はじめてのにき(2016-06-16) より。 このエントリの立ち位置について 元々はPythonを勉強していたのだけれども、仕事の関係上、Rubyを主軸にすることにした人間のエントリです。ちなみに、PythonRubyの立ち位置には詳しくなく、主観を元に構成されているので、客観的な部分に関しては弱いことをお断りしておく。また、現時点での知識が2.7になっているので、3.5では多少違う点があるかもしれない。 なぜならPythonのほうが「わかりやすかった」から まず最初に、Pythonのほうが機械科学系の人に支持されやすい傾向としてあるのは、Pythonのライブラリ、例えばNumpyであったり、Scipy、または各種機械学習系のライブラリなどの影響が大きいのは間違いない。最近の機械学習ブームのせいなのか、Pythonも「エモい人(エモ

    PythonからRubyに移行した人間の印象 - Line 1: Error: Invalid Blog('by Esehara' )
  • RubyからMIDI経由でTR-8を操作していいドラムの音を出す - hitode909の日記

    RolandのTR-8っていうドラムマシンにUSBケーブルをつなぐとMIDIで通信できて音を出せることに気付いたので,ちょっとやってみた. unimidiというRubyのライブラリを使って,スネア叩いてくださいって送るとプログラム経由でスネア叩いてもらえる. 自動で演奏する 自動で演奏しつつも,ずっとループだと飽きるので,ぼちぼち展開する.ふだん使い用. TR-8にRubyでMIDI信号を送って全自動ドラムマシンが完成した 放っておいても勝手に曲が展開して便利 だんだん細かくする 四分音符のつぎ5分音符,6部音符,8分音符のとぎ三連符,16分音符,とか延々と一拍を細かくしていく.最終的に63連符とかになってたのしい.11連符を聞きたい!!みたいなとき用. 四分音符から徐々に細かくしていって待ってると63連符とかまで聴けるやつができた ちょっとずつずらす ドラムマシンはなにがいいかというとほ

    RubyからMIDI経由でTR-8を操作していいドラムの音を出す - hitode909の日記
  • リーダブルRspec - Qiita

    はじめに リーダブルRspecというタイトルつけましたが、そんな大それたものではないです テスト書くときでも名前付け重要だからちゃんとしよう!っていうだけの内容です RspecがBDDのためのツールであることを意識しつつ、 Rspecの流儀に則って適切に名前付けをして書くと読みやすいテストがかけるはずです describe/context/exampleのメッセージに適切に名前つける これが出来るだけで当然読みやすいテストになる describe->テスト対象 context->テストする状況 example->テスト(itやspecify) なので、 『aaaはbbbの時cccになる』 というテストを書くときは次のようになる 重要なのは describe/context/exampleだけでテストの概要を説明すること 理解しやすい状態になっていないと、負債になってしまう 1つのdescr

    リーダブルRspec - Qiita
  • gdbを使ったrubyのデバッグ - クックパッド開発者ブログ

    技術部の国分 (@k0kubun) です。 先日byebugの高速化を行っていた最中、変更を加えたbyebugを使っていると一定の確率でrubyがSEGVするバグを発見しました。 私はC言語のコードのデバッグの経験はなかったのですが、デバッガの使い方を調べながらSEGVの原因調査を行いパッチを送ったところ無事取り込まれ、最新の高速なbyebugが安全に使えるようになりました。 その際、ruby自体をデバッグするために必要な情報が分散していて大変だったので、まだrubyのデバッグをしたことがないけれどやってみたいという人を対象に、gdbというデバッガを使ったrubyのデバッグの方法を紹介します。 デバッグ用にrubyをビルドする デバッグ時に変数名やソースコードなどの情報を見るためには、最適化オプションをオフにしてデバッグ用にrubyをビルドしておく必要があります。 rubyのデバッグ用ビル

  • マルチスレッド/プロセスまとめ(Ruby編) - Qiita

    プログラムの実行単位 固有のメモリ空間を持つ(リソースを共有しない) マルチプロセスの場合、物理/仮想メモリ領域間のアドレス解決のオーバーヘッドが高い。 プロセスの実行単位 共通のメモリ空間を持つ(リソースを共有する) マルチスレッドの場合、物理/仮想メモリ領域間のアドレス解決は発生しない。 ユーザースレッド ユーザー空間(アプリケーションが利用するメモリ空間)を利用 1つのプロセスに複数のスレッドがあっても、1つのスレッドしか実行されない。 OSカーネルを介さないスレッド切り替えのため、スレッド切り替えに伴うオーバーヘッドが少ない。 仮想VM上で実行されるスレッドをグリーンスレッドと呼ぶ。 カーネルスレッド カーネル空間(カーネルが利用するメモリ空間)を利用 1つのプロセスに複数のスレッドがある場合、同時に複数(CPUコア数分)のスレッドを実行できる。 OSカーネルを介するスレッド切り替

    マルチスレッド/プロセスまとめ(Ruby編) - Qiita
  • Emacsに mrubyを組み込んでみた - Qiita

    [1 2 "fizz" 4 "buzz" "fizz" 7 8 "fizz" "buzz" 11 "fizz" 13 14 "fizzbuzz" 16 17 "fizz" 19 "buzz"] (let ((mrb (mruby-init))) (mruby-send mrb -10 'abs)) ;; => 10 (let ((mrb (mruby-init))) (mruby-send mrb "hello WORLD" 'swapcase)) ;; => "HELLO world" (let ((mrb (mruby-init))) (mruby-send mrb [1 [2 3] [4 [5 6]]] 'flatten)) ;; => [1 2 3 4 5 6] 仕組み Emacs 25で実装予定の Dynamic module機能を使って実現しています(なので実際のところ, 組み

    Emacsに mrubyを組み込んでみた - Qiita
  • http://kwatch.houkagoteatime.net/blog/2015/10/28/keight_rb_released/

    http://kwatch.houkagoteatime.net/blog/2015/10/28/keight_rb_released/
  • ActiveRecordを速くしたいだけの人生だった - Qiita

    Help us understand the problem. What is going on with this article? Rails3.2からRails4.2に上げたらActiveRecordが遅くなったので、どうやって調査して、どのように対処したかを語ってみたい。 とても長いので、ダルい人は最初と最後だけ読めばよいです。 TL;DR 環境: Ruby 2.1.5 ARオブジェクトを大量に(ざっくり750kくらい)loadするバッチ処理 3.2系での実行時間は約480sec、 4.2系では約2900sec 約6倍の性能劣化 原因: preloadで性能劣化してた CollectionProxyの生成周りで遅くなってた Rails4からARオブジェクトの1attribute毎にObject生成するので遅い GCの時間も増えた 調査方法: Githubのcommit、Issueを

    ActiveRecordを速くしたいだけの人生だった - Qiita
  • 使えるRSpec入門・その3「ゼロからわかるモック(mock)を使ったテストの書き方」 - Qiita

    はじめに みなさんこんにちは! この記事は「必要最小限の努力で最大限実戦で使える知識を提供するRSpec入門記事」、略して「使えるRSpec入門」の第3回です。 今回はRSpecのモックを使ったテストについて説明します。 これまでモックを全く使ったことがない人でもわかるように丁寧に説明していくつもりです。 また、これまでの回と同様、個人的に使用頻度が低いと思っている内容についてはバッサリ説明を省きます。 ただし、第1回や第2回に比べるとテストコードが少し複雑になって、仕組みや動きを想像するのがちょっと難しいかもしれません。 ぱっと頭に入ってこない場合はじっくり文を読んだり、実際に自分で写経しながらコードを動かしたりするなどして、少し時間をかけながら理解するようにしてください。 今回は以下のような内容を説明します。 モックの基的な使い方 モックを使った検証 モックでわざとエラーを発生させ

    使えるRSpec入門・その3「ゼロからわかるモック(mock)を使ったテストの書き方」 - Qiita
  • Rubyを用いたマイコンプログラムの遠隔書き換えシステム

    3. 3 プログラム書き換えの仕組み インターネット上のサーバにapacheなどを 入れておき、http/httpsでプログラムが取得 できるようにしておく。 インターネット・クラウド DropBoxファイル 公開サーバ上ファイル mrubyボードには、httpを用いて指定ファイルが取得 できるrubyクラスが実装されている。 下記のサイトからのファイル取得が可能なこと が確認できている。 ・DropBox (httpsによる取得) ・Yahoo ジオシティーズ (httpによる取得) 実行中のプログラム 自分自身を終了させて、 ダウンロードしたプログラムを呼び出す ダウンロードしたプログラム ダウンロードしたプログラム の呼び出し ダウンロードしたプログ ラムの実行 6. 6 rubyプログラム while(true)do #http://www.geocities.jp/cansatk

    Rubyを用いたマイコンプログラムの遠隔書き換えシステム
  • アプリサーバー対決 パート1:主なRubyアプリケーションサーバーの機能比較 - Engine Yard Blog

    記事は英語版ブログで公開された記事の翻訳版です。 2013年7月に、米国テキサス州オースティンで開催されたLonestar Ruby Conferenceで、Rubyによるアプリケーションサーバーについてお話させていただきました。その中でいくつかのRubyアプリケーションサーバーのパフォーマンスや、さまざまな状況における挙動の違いを比較しました。この記事では、講演準備として行ったリサーチの中で分かったことをかいつまんでご紹介します。 実際のカンファレンスの録画をご覧になりたい方は、Confreaksで公開されていますのでそちらをご参照ください。テストに使用した簡単な自作アプリケーションはGitHubに、講演スライドはSlideshareにそれぞれ公開しています。 このリサーチは、Passenger 4のパフォーマンス評価以外すべて2013年7月に行ったものなので、情報が多少古くなっている

    アプリサーバー対決 パート1:主なRubyアプリケーションサーバーの機能比較 - Engine Yard Blog
  • sinatra ですぐにアプリケーションの実装に入れるようにするための準備 - Studio3104::BLOG.new

    背景 自分が仕事で書く WEB アプリケーションは多くの場合が小粒で、何か書く場合には sinatra を使っています。 さらにテンプレートエンジンは slim で、ビューが必要な場合は twitter bootstrap を使って書きます。 で、新規で何か書き始める時に、それっぽいディレクトリ構成を作って、twitter bootstrap とか jquery とかをダウンロードして解凍してそれっぽいところに設置してー(もしくは既存プロジェクトをディレクトリごとコピーしてきて要らないファイル消してネームスペース変更してー)、とかっていうローテクな感じのことを毎回手動で行っていて、すっと実装に入れない!めんどくせー!ってなることが多いので、いったん整備してみました。 studio3104/ore-no-sinatra-skelton · GitHub 構成 javascript/css

    sinatra ですぐにアプリケーションの実装に入れるようにするための準備 - Studio3104::BLOG.new
  • 【Yosemite】Mac OSX 10.10 Yosemite に Ruby + Rails4 開発環境の構築【初心者必見】 - Qiita

    【Yosemite】Mac OSX 10.10 Yosemite に Ruby + Rails4 開発環境の構築【初心者必見】RubyRailsMacOSXYosemite Yosemiteをクリーンインストールしたので、この機会にまっさらな状態からの環境構築の手順をまとめました。 El Capitan 版はこちら。 【El Capitan】Mac OSX 10.11 El Capitan にRuby + Rails4 開発環境の構築 【初心者必見】 標準開発ツールのインストール まずは、Apple標準の開発ツールのインストールをします。 Xcode インストール Mac App Store等でインストールします。 Command Line Tools for Xcode 上部メニューから Xcode → Open Developer Tool → More Developer Tools

    【Yosemite】Mac OSX 10.10 Yosemite に Ruby + Rails4 開発環境の構築【初心者必見】 - Qiita
  • 革命的に速いRubyアプリケーション・サーバー「Raptor」リリースへ | ソフトアンテナ

    革命的に速いとされるRuby用の新しいアプリケーション・サーバー「Raptor」のサイトが公開され期待を煽っています(Hacker News)。 公式サイトによると、RaptorはRailsやSinatraなどを動かすための新しいアプリケーション・サーバー。最適化されたHTTPエンジンにより従来のアプリケーションサーバーと比較して高速に動作し、Unicornの最大4倍、PumaとTorqueboxの最大2倍の速度で動作するとのこと。 現在まだ何もダウンロードできるものは公開されたおらず、パブリックベータ版のリリース日は2014年11月25日に設定されています。メールアドレスを登録しておくと、状態が更新されるか、あるいは第三者のレビューが公開されたときなどにメールで連絡してくれるようなので気になった方は登録してみてはいかがでしょうか。 ちなみに誰が開発されているかということに関しても「We

    革命的に速いRubyアプリケーション・サーバー「Raptor」リリースへ | ソフトアンテナ
  • Ruby製サードパーティライブラリgemのトレンドを知るには「BestGems.org」がベスト

    ─質問1─ Ruby製サードパーティライブラリ、要はgemで、何が人気なのかってこと、手っ取り早く知りたいんですけど。 ─回答1─ RubyGems.orgのstatsページを見てください。 ─質問2─ えっ?これだけ?この辺は万年上位で固定でしょ。もうちょっと俺の知らないバラエティに富んだものに出会いたいんだけど。俺、Rails用ないし。 ─回答2─ カテゴリー別ならThe Ruby Toolboxがあります。 The Ruby Toolbox - Terminal Coloring ─質問3─ あんた、俺の質問ちゃんと聞いてるの?カテゴリー別なんて言ってないし。それに、ここのカテゴリーってなんか俺的に信用ないんだよね。取りこぼし多いっていうか..。俺のgem出てこないっていうか..。 ─回答3─ GitHubTrendingでここ最近の人気リポジトリが分かります。 Trending

    Ruby製サードパーティライブラリgemのトレンドを知るには「BestGems.org」がベスト
  • Ruby プロセスを追いかけるツール(プロファイラとか)10選 - sonots:blog

    Ruby プロセスを追いかけるツール(プロファイラとか)10選 - sonots:blog
  • Railsが時代に合わなくなってきた - Qiita

    追記 RailsでJS辛い問題に関しての結論:http://qiita.com/kaiinui@github/items/dad6180f1910c6a4bfd5 -- 近年、(1) Web/App両対応が増えてきたこと、(2) WebでもJSを多用するようになったこと、の二つがあり、以下の点でRailsが微妙になっている。 ViewのJavascriptRailsから独立している API層のサポートが微妙 最初に書いておきますが、特に決定的な解決策もなく、辛いから今後解消されてほしいよね、な話です。 ViewのJavascriptRailsから独立している Railsはとても堅牢。 モデル、コントローラ、ルーティングと、変にいじらない限りはほとんどテストが要らない。 必要なのは、モデルに新たにpublicメソッドを付けたときくらいだろう。 実際、バックエンドはそうそうバグが出ない。

    Railsが時代に合わなくなってきた - Qiita
  • http://blog.inouetakuya.info/entry/2014/06/08/194015

    http://blog.inouetakuya.info/entry/2014/06/08/194015
  • sinatra アプリを Passenger で「Sub URI」で動かす - すがブロ

    Sub URIで動かすとは? ドメイン単位ではなく、ドメイン配下のディレクトリをルートとして環境を構築する場合の話です。 例えば、 http://example.com/ をアプリケーションのルートとする場合ではなく、 http://example.com/hogehoge/ の hogehoge/ をアプリケーションのルートとして扱う場合です。 何がいいたい? ぶっちゃけ、ドメインを取るまでもない sinatra アプリを、既存のドメイン内で動かしたいんだよってこと。 ディレクトリ構成 設定前に、事前にディレクトリ構成を書いておくと Sinatra アプリ /path/to/cgi-bin/sinatra_app/public /path/to/cgi-bin/sinatra_app/tmp /path/to/cgi-bin/sinatra_app/config.ru /path/to/

    sinatra アプリを Passenger で「Sub URI」で動かす - すがブロ