タグ

Rubyに関するkwhrtskのブックマーク (12)

  • 米GitHub、Ruby向けのリファクタリング支援ツール「Scientist 1.0」を発表 | OSDN Magazine

    GitHubは2月3日、コードパスをリファクタリングするRubyライブラリ「Scientist 1.0」を公開した。重要なコードの書き直しと置き替えを安全かつ確実に行うことができるツールを目指すという。 Scientistはコードのリファクタリングを行う際に利用するツール。最初のバージョンは2014年2月に公開された。 数年前、GitHub内でアプリケーションにおいてアクセス制御のパーミッションコードなどの最も重要なシステムを書き換えるにあたって、作業を確実に行うために開発されたという。リファクタリングでは抽出レイヤを挿入する「Branch by Abstraction(BBA)」手法があるが、この手法では新しいシステムの振る舞いが置き替えたいシステムと同等かを確認できないという問題点を指摘している。一方で、テストについても、すべての可能性を網羅できないなど限界があるとしている。 Sci

    米GitHub、Ruby向けのリファクタリング支援ツール「Scientist 1.0」を発表 | OSDN Magazine
    kwhrtsk
    kwhrtsk 2016/02/06
  • 知って得する!55のRubyのトリビアな記法

    Rubyはたのしい言語です。Rubyを触っているとマニュアルにも書いていない「小さな発見」に遭遇することがよくあります。このような「発見」は、プログラムの質や効率の改善には直結しないかもしれません。いや、むしろチームプログラミングでは妨げになる可能性すらあります。しかしその一方で、言語自体が自分の知らない領域を持ち続けていることが、その対象に対する興味を失わせないための大きな要因である、というのもまた疑いのない事実なのです。つまり「発見」はたのしさに直結しているのです。 このブログにおいて「知って得するRubyのトリビアな記法」というタイトルで、今まで3回記事を書きました。 “知って得する21のRubyのトリビアな記法” “第2弾!知って得する12のRubyのトリビアな記法” “第3弾!知って得する12のRubyのトリビアな記法” これらのトリビアには、ネット検索で見つけたもの、Twitt

    kwhrtsk
    kwhrtsk 2015/11/01
  • RubyとPythonにおけるガベージコレクションの視覚化 | POSTD

    稿は、ブダペストで開かれたイベント「 RuPy 」で、Pat Shaughnessyが披露したプレゼンの内容をまとめたものです。 プレゼンの映像はここ から視聴できます。 稿は当初、 同氏の個人ブログ に投稿されましたが、同氏の了承を得て、Codeshipに再掲載します。 このイベントは「RubyPython」に関するカンファレンスなので、RubyPythonでは、ガベージコレクション(以下「GC」)の動作がどう違うのかを比較すると面白いだろうと私は思いました。 ただしその題に入る前に、そもそもなぜ、GCを取り上げるのかについてお話しします。正直言って、すごく魅力的な、わくわくするテーマではないですよね? 皆さんの中でGCと聞いて、心がときめいた方はいらっしゃいますか? [実はこのカンファレンス出席者の中で、ここで手を挙げた人は数名いました!] Rubyコミュニティで最近、Rub

    RubyとPythonにおけるガベージコレクションの視覚化 | POSTD
  • 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
    kwhrtsk
    kwhrtsk 2015/04/15
    stackprofを使ったプロファイリングの事例としても参考になりました。
  • モノリシックなRubyからGoによるマイクロサービスへ | POSTD

    過去9年わたりWebアプリケーションを開発してきたNiket氏( @nexneo )は、2013年からGoを使って作業をするようになりました。この講演では、彼がどのようにRubyのモノリシックアプリケーションを分解しつつ、Goで記述されたマイクロサービスへと至ったかについて説明しています。講演のスライドは、 speakerdeck.com/nexneo/joy-of-single-purpose-services-in-go で閲覧可能です。 Single purpose servicesというのは、単一の問題を解決するサービスのことです。 一般的に マイクロサービス としても知られています。 Niket氏は、学校側が親御さんたちと連絡したり成績表や出席を管理したりするための人気オンラインプラットフォーム、 Beehively の開発者です。BeehivelyはRubyベースのアプリケーシ

    モノリシックなRubyからGoによるマイクロサービスへ | POSTD
    kwhrtsk
    kwhrtsk 2015/04/10
    確かに(Unicornみたいなプロセスモデルのワーカーだと特に)メモリはキツい。モノリシックアプリとUnicornという真逆のアプローチしてるクックパッドがその辺どうなのか興味ある。前段のRPでキャッシュ頑張るのかな。
  • haml の高速なレンダリングエンジン faml を書いた - eagletmt's blog

    haml との互換性にはかなり気を使っているけど、一部意図的に非互換にしていたり、正確な仕様がわからず再現できていない箇所があったり、haml の奇妙な挙動が直っていたりして、完全に全く同じ動作にはなっていない。 先日 faml を番に投入して今も動いている。faml 導入にあたって実際にはアプリケーション側のビューを一部書き換えたけど、大量のビューがある中での変更点は十分少なかったと思う。 なお、このエントリ内での「元々の haml」は haml 4.0.6 を指している。過去のバージョンは知らない。 どれくらい高速なのか 元々 faml を書き始めたきっかけは「haml と slim に文法的に大きな差があるわけではないんだし、slim と同程度高速な haml のレンダリングエンジンは書けるはず」という点だった。 なので、slim と同じくらい高速ではあるものの、slim 以上に高

    haml の高速なレンダリングエンジン faml を書いた - eagletmt's blog
    kwhrtsk
    kwhrtsk 2015/04/05
    素晴らしい。これって将来的にはhamlとは別系統のテンプレートエンジンを目指すのかな。それともゆくゆくはコントリビュートという形でhamlに合流するのかな。
  • Sidekiqのコードに潜む愉快なメソッドたち | 割り箸ポテチ

    少し前にRails4.2のActiveJobのバックエンドについて調べました。 Resque、SidekiqからSucker PunchまでActiveJobのバックエンドについてひと通り調べてみた このときSidekiqのコードを読んで、Celluloidによるアクターモデルで並行処理を実装していることを知りました。 ちょうどScalaやErlangでアクターを使う方法を調べていたところだったので興味がわき、Celluloidを利用したアプリケーションのサンプルとして読んでみることにしました。 その時見つけた愉快なメソッドを紹介します。 今回読んだSidekiqのバージョンは3.3.3です。 注意事項 エントリはSidekiqやアクターの解説記事ではありません。 記事に機種依存文字が含まれています。 OSXChromeとFirefox、iOSのSafariとChromeでのみ表示を確

    kwhrtsk
    kwhrtsk 2015/04/05
    ブログ書いた
  • Rubyプログラミングが快適になるVim環境を0から構築する - Qiita

    より快適なVim × Ruby環境を目指して構築したvim環境について。 0からでも構築できるように整理した。 やること 最初にRubyVim、その他必要なパッケージをガシガシインストールする。 その後、設定した下記機能について実際の操作例を見ていく。 自動コード補完ができるようにする(Rsense/neocomplete) Vim上で静的解析ができるようにする(Rubocop/syntastic) Vimからリファレンスを閲覧できるようにする(vim-ref/vim-ref-ri) メソッド定義元へのジャンプができるようにする(ctags/vim-tags) 構文終わりのキーワードを自動入力できるようにする(vim-endwise) OSはLinux(CentOS6.5)を想定。検証環境は以下のとおり。 $ uname -a Linux vagrant-centos65.vagrant

    Rubyプログラミングが快適になるVim環境を0から構築する - Qiita
    kwhrtsk
    kwhrtsk 2015/03/09
    素晴らしい
  • Sign in | One Month

    Sign in here to access One Month and all the courses. Once signed in you gain access to begin learning in One Month.

    Sign in | One Month
    kwhrtsk
    kwhrtsk 2015/03/08
    要約:Webアプリを作るだけなら、より強力で先進的なコミュニティのあるRuby/Rails、Webアプリに加えてアカデミックな分野でも使いたいなら、コミュニティの裾野が広いPythonが良い。片方覚えたらもう片方覚えるのも簡単。
  • 初心者でもほぼ無料で楽しくRubyを学べるコンテンツ10選 - paiza times

    Photo by HeatSync Labs こんにちは。谷口です。 プログラミングをこれから学ぼうとしている方で、「人気のRubyを勉強してみたい!」という方は多いと思います。 Rubyは『オープンソースの動的なプログラミング言語で、 シンプルさと高い生産性を備えています。 エレガントな文法を持ち、自然に読み書きができます』とされています(オブジェクト指向スクリプト言語 Ruby)が、やはり「プログラミング経験ゼロからいきなり勉強を始めるには敷居が高いな……」と思っている方も多くいらっしゃるのではないでしょうか。また「できれば独学じゃなくてスクールに通いたいけど、コストは押さえたいんだよな……」という方もいらっしゃるかと思います。 そこで今回は、プログラミング未経験~初心者の方が、なるべくコストをかけずに楽しくRubyに触れられて、学習に役立てられるコンテンツを10件ご紹介していきます。

    初心者でもほぼ無料で楽しくRubyを学べるコンテンツ10選 - paiza times
  • How to Write Command-Line Applications in Ruby with GLI

    I use many different command-line tools on a daily basis, e.g. git to track changes in projects, autojump to navigate faster between directories, brew to install software and so on. Some time ago I started watching my workflow. What I noticed is that some commands appeared more frequently than the others and they contained more typos. I decided to simplify usage of tools to have less problems with

    How to Write Command-Line Applications in Ruby with GLI
    kwhrtsk
    kwhrtsk 2015/03/08
    thorの方が直感的でシンプルで好き
  • Ruby初心者必見!?「ビンゴカード作成問題」のリファクタリング風景をお見せします #codeiq - give IT a try

    はじめに 先月、CodeIQにビンゴカード作成問題を出題しました。 CodeIQに「ビンゴカード作成問題」を出題しました。みなさんの挑戦をお待ちしてます! - give IT a try このビンゴカード作成問題、ありがたいことに50人もの方が解答を送ってくれました。 挑戦してくださったみなさん、どうもありがとうございました。 前回のエントリでは優秀作品ベスト3を発表しました。 今回のエントリはその続編です。 一部の解答(5)について、僕が実際にいただいた解答を採点しつつ、リファクタリングする様子を動画に撮っておいたので、その様子をお見せしちゃいます。 おさらい「ビンゴカード作成問題」とは? ビンゴカード作成問題とはその名の通り、Rubyを使ってビンゴカードを出力する問題です。 Bingo.generate_cardというメソッドを呼ぶと以下のような文字列を出力する、というのが要求仕様で

    Ruby初心者必見!?「ビンゴカード作成問題」のリファクタリング風景をお見せします #codeiq - give IT a try
    kwhrtsk
    kwhrtsk 2015/03/08
  • 1