タグ

rubyに関するhidex7777のブックマーク (171)

  • Ruby のオススメの機能7選 - Qiita

    この記事は Ruby Advent Calendar 2015 の 8日目です。 比較的あまり知られていないと思うオススメの Ruby の機能を 7つ紹介します。 Enumerator.new Enumerator.new は知ってはいても、あまり使わない人が多いように思います。 私は非常によく使います。 理由は スコープを新たに導入したい Producer-Consumer パターン。値の生成と消費でフェーズの違いを明確化したい。 そのメソッド内で1度使いたいだけなのに yield するメソッドを別に作るのはちょっと気が引ける。名前空間を汚したくない。 全部、一度配列にしちゃうとメモリが気になる。メモリ消費を節約したい。 ネストを浅くしたい Enumerable モジュールの機能が欲しい といったところです。 たとえば下記のようなかんじで使います。 # Producer フェーズ use

    Ruby のオススメの機能7選 - Qiita
  • RubyとAWSでつくるメディアストレージ基盤 - Qiita

    概要 基盤の果たす役割としては、「利用者が基盤に向けてファイルをアップロードし、なんらかの(変換を含む)処理を行って利用サービス側に通知する」というものになる。 そこで、想定する利用イメージを大まかにでも理解してもらうため、抽象的なイメージを図示する。 ファイルをアップロードしたいユーザーは、まず基盤の利用サービスに対してアップロード権限の発行を依頼する。 図では省略したものの、利用サービス側はその依頼を受けて、基盤に対してアップロードチケットの発行を依頼し、取得した情報をアップロードしたいユーザーに対して返す。 アップロードユーザーはそれを受けて、基盤に対してファイルのアップロードを行い、アップロード・バリデーション・変換が済んだものについては基盤が利用サービスに結果を通知するというのが大まかな流れとなる。 次に、基盤の持つ責務について簡単に解説したい。 基盤は、メディア

    RubyとAWSでつくるメディアストレージ基盤 - Qiita
  • 新型Ruby開発へ 設計者表明、IT高度化・複雑化に対応 - 日本経済新聞

    松江発のプログラミング言語「Ruby(ルビー)」を開発した、まつもとゆきひろ氏が新しいバージョンとなる「ルビー3.0」の開発に着手した。12日に松江市で開幕した「Rubyワールドカンファレンス」の基調講演で、IT(情報技術)環境の高度化・複雑化にルビーを対応させる実験を進めていると述べた。1993年に開発を始めたルビーは、設計仕様を公開する「オープンソース」として多数の技術者が改良に参加してい

    新型Ruby開発へ 設計者表明、IT高度化・複雑化に対応 - 日本経済新聞
  • Ruby on Railsを仕事にしていくための第一歩 - 酒と泪とRubyとRailsと

    最近仕事Railsコードレビューをする時間が長くって、いろいろ指摘するんですが、 Railsって「Railsチュートリアル」には書いていないのに覚えないと仕事にならないこと多すぎだなと気付かされます。 どこでどんなふうにすれば、プロになろうとしている人が最短距離で知識を獲得できるかはわからないですが、 今思っている特に大事だなと思うことつらつらと書いていきます。 😀 プログラミングの重要な要素まず、Railsの前にプログラミングで全般的に特に重要と思っている要素を紹介します。 - リーダブルなコード - ネーミングルールについて - 言語・フレームワークのルール - 変数のスコープについて - プロジェクトの設計思想 - オブジェクト指向・コードの再利用性 - 正しいテストケースを作る プロジェクトによって変わるので、すべては書きませんが、ぜひ意識してどこを学ぶべきかを考えてみてくだ

    Ruby on Railsを仕事にしていくための第一歩 - 酒と泪とRubyとRailsと
  • http://kwatch.houkagoteatime.net/blog/2015/10/28/keight_rb_released/

    http://kwatch.houkagoteatime.net/blog/2015/10/28/keight_rb_released/
  • Ruby のココがダメ - Qiita

    タイトルは釣りです。Ruby に盲目的に惚れている迂生には Ruby の痘痕(あばた)はエクボです。 それはともかく。 メソッド名の別名がありすぎ 「あなたは map 派? それとも collect 派?」っていう問いがまず嫌い。 いや,別名にも意義があるとは思うんだけど,記憶の負担が大きい。 自分では map しか使わなくても,他人のコード読むんだったら collect を知っていなくちゃならない。 しばらく前に reduce っていうメソッド見て,そんなのあったっけ?と思ったら inject の別名だった。 map/collect と inject/reduce の名前とその背景にある発想については,Rubyist Magazine に良い記事がある: そうかと思えば,Array#delete_if と Array#reject! みたいに,働きは基的に同じだけど,削除が行われなかっ

    Ruby のココがダメ - Qiita
  • 雑なツイートをしてしまったばかりにrubyを高速化するはめになった俺たちは!

    逆に言うと、Rubyの文字列型の内部実装がropeになれば、freezeしてもしなくても変わらない速度が出るようになって、結局freezeする必要なんてなかったんやーで丸く収まるんじゃないの?と思いました #雑な感想 — Kazuho Oku (@kazuho) October 6, 2015とツイートしたところ、処理系の中の人から @kazuho 文字列を弄る話じゃなくて、文字列の identity の話なので、ちょっと関係ないかなぁ、と — _ko1 (@_ko1) October 6, 2015みたいなツッコミをもらって、うっすみません…ってなってRuby VMのコードを読むことになったわけです。 で、まあ、いくつか気になる点があったので手をつけてしまいました。 1. オブジェクト生成のホットパスの最適化 ホットスポットだとされていたところのコードを読んでると、オブジェクト生成の際に

    hidex7777
    hidex7777 2015/10/09
    ゴイスー
  • [Ruby] Ruby 3.0 の特大の非互換について - まめめも

    タイトルは釣りです。すみません。Ruby 3.0 はかなり先の将来の話なので、最終的にどうなるかはわかりません。でも Ruby 3.0 に重大な変更が予定されているのは事実なので、一緒に考えて欲しいと思います。 immutable string literal Ruby 3.0 では文字列リテラルをデフォルトで immutable (破壊的変更不可) にする、という方針が『決定』しました。(Feature #11473: Immutable String literal in Ruby 3) つまり、次のようなプログラムが動かなくなります。(当チケットから少し改変して引用) sql = "SELECT #{sec_id}, pt.path, st.doc_count " sql << "FROM #{stats_tablename} AS st " #### ←ここで例外: can't m

    [Ruby] Ruby 3.0 の特大の非互換について - まめめも
  • クローラー/スクレイピング本がざくざく - プログラマでありたい

    2015年8月末に、クローラー/スクレイピングが2冊同時に発売です。Python版メインのものとJavaScript版メインのものです。なかなか市場のニーズ突いてきていますね。 実践 Webスクレイピング&クローリング-オープンデータ時代の収集・整形テクニック 作者: nezuq,東京スクラッパー(協力)出版社/メーカー: マイナビ発売日: 2015/08/28メディア: 単行(ソフトカバー)この商品を含むブログを見るJS+Node.jsによるWebクローラー/ネットエージェント開発テクニック 作者: クジラ飛行机出版社/メーカー: ソシム発売日: 2015/08/31メディア: 単行この商品を含むブログを見る 実践 Webスクレイピング&クローリング-オープンデータ時代の収集・整形テクニック 実践 Webスクレイピング&クローリング-オープンデータ時代の収集・整形テクニックは、Py

    クローラー/スクレイピング本がざくざく - プログラマでありたい
  • rbenv + ruby-build はどうやって動いているのか - takatoshiono's blog

    rbenv といえば 複数バージョンの Ruby を切り替えて使うための環境を提供してくれる便利なツールとして欠かすことのできないものですが、機会があってそれがどうやって動いているか調べたので、ここに書いておきます。また ruby-buildruby をインストールするためによく使われている(というか使ってない人いないのでは)rbenv のプラグインです。rbenv install というコマンドは ruby-build が提供しています。これについても一緒に書きます。 はじめに断っておきますが、間違ったことを書いているかもしれないのでその辺はご了承ください。また、将来 rbenv の変更によって変わってしまう部分もあるかもしれません。 また rbenv のドキュメントはとても充実しているので、それを読めばここに書いてあることはだいたいわかると思います。 もくじ rbenv のインス

    rbenv + ruby-build はどうやって動いているのか - takatoshiono's blog
  • Rubyコードの健康を保つためのgem 5+1選 - Money Forward Developers Blog

    こんにちは、Railsエンジニアの鈴木(信)です。 先日31歳になったんですが、やはり30歳を超えたあたりから衰えたというか、何か体に変化があったように思います。 自身の健康はもちろんですが、コードの健康(品質)のことも気になる年頃になりました。 そこで今回は弊社で利用しているコード解析ツールをご紹介します。 brakeman - セキュリティ brakemanは、簡単なXSSやインジェクション系の脆弱性を検出してくれるgemです。 もちろんこれだけで完全に安心という訳ではありませんが、弊社ではJenkinsのBrakeman Pluginを使って、継続的にモニタリング、修正しています。 使い方 $ brakeman $ brakeman --only-files=path/to/specific_file simplecov - テストカバレッジ simplecovはカバレッジ計測ツール

    Rubyコードの健康を保つためのgem 5+1選 - Money Forward Developers Blog
  • ParseがRubyからGoへ移行,信頼性が大きく向上

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    ParseがRubyからGoへ移行,信頼性が大きく向上
  • Rails Tutorial以前 - Web系エンジニア入門レベルを達成するには - - 国境の南

    Webエンジニアになりたいと思って、まずはじめに取り組んだのはRails Tutorialだったのだけれど エンジニアを志して半年程経ったこのタイミングで色々と思う所があって、 同じ轍を踏む人が少しでも減ればと思い 初学者が効率的にWeb系エンジニアとしての入門レベルを終えるにはどうすればいいのかという形でまとめる そもそもRails Tutorialとは ちょっとしたサイトを作ったことがあって(=HTML, CSSを使える) 入力した数字の素数判定が出来る程度のプログラミング能力があれば*、 とりあえず解説を読み下して、TwitterモドキをRailsで作れる丁寧なチュートリアルサイトのこと railstutorial.jp *実際どうかしらん、Rails Tutorialに自分が初めて取り組んだ時のレベル感 Rails Tutorial いい点と悪い点 いい点 とにかく写経すれば、ログ

    Rails Tutorial以前 - Web系エンジニア入門レベルを達成するには - - 国境の南
  • インターネットラジオを全録音するソフトつくった - 方向

    Net Radio Archive (https://github.com/yayugu/net-radio-archive) というソフトを作りました 特徴 番組表をいい感じにスクレイピングして、番組名などが付いた良い感じのファイルを出力してくれます。 ... 2015_05_08_1200_村川梨衣の_a_りえしょんぷり~ず♡_村川梨衣.mp4 2015_05_08_1230_小澤亜李・長縄まりあのおざなり_小澤亜李、長縄まりあ.mp4 2015_05_08_1300_A&G_ARTIST_ZONE_THE_CATCH__AiRI_AiRI.mp4 2015_05_08_1430_A&G_NEXT_BREAKS_松田利冴のFIVE_STARS.mp4 2015_05_08_1500_金田朋子・保村真のエアラジオ_金田朋子、保村真.mp4 2015_05_08_1530_水島大宙・木村良

    インターネットラジオを全録音するソフトつくった - 方向
  • モノリシックな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
    hidex7777
    hidex7777 2015/04/11
    それってあれじゃね。Firefox重くなったからChromeにしたら軽くなった的なあれじゃね。
  • Serverkitつくった - ✘╹◡╹✘

    ChefやAnsible、Puppet、Itamaeなどの構成管理ツールをあまり使ったことがなく、勉強のためにServerkitというのをつくってみたので、現状こういう感じでやってみましたというのを書き残しておく。作り手の気持ちになればこそわかるものがあるだろうと思う。 ところで去年も似たような記事を書いた。 概要 Serverkitというのは、前述した通りChefやAnsibleのような構成管理ツール。マシンの理想的な状態をレシピと呼ばれるファイルに定義しておき、現在のマシンの状態と比較してその差分を埋めるためのもの。Rubyで書かれていて、手元にversion 2.0.0以上のRubyと、Serverkit、それからServerkitが利用している幾つかのライブラリが入っていれば動作する。Serverkitを動かすマシンと同じマシン、もしくはSSHで接続できるマシンに対して実行できる。

    Serverkitつくった - ✘╹◡╹✘
    hidex7777
    hidex7777 2015/04/07
    diffよさげ
  • ScaleOut | Supership

    2024年4月1日より、Supership株式会社は親会社であるSupershipホールディングス株式会社に吸収合併されました。 合併に伴い、存続会社であるSupershipホールディングスは社名をSupershipに変更し、新たな経営体制を発足しました。件に関する詳細は、プレスリリースをご確認ください。 2024年4月1日より、Supership株式会社は親会社であるSupershipホールディングス株式会社に吸収合併されました。 合併に伴い、存続会社であるSupershipホールディングスは社名をSupershipに変更し、新たな経営体制を発足しました。 件に関する詳細は、プレスリリースをご確認ください。

    ScaleOut | Supership
  • Rubyistのための型入門

    浜松Ruby会議01 http://regional.rubykaigi.org/hamamatsu01/ の発表資料です。 http://mzp.hatenablog.com/entry/2015/03/29/213909 もあわせてご覧ください。

    Rubyistのための型入門
  • 最近の Rack サーバ事情について - おもしろwebサービス開発日記

    先月、heroku推しサーバが unicorn から puma に変わったという発表がありました。unicorn だとスロークライアントの影響を受けやすいというのが理由なようです。 もう少し詳しく調べてみましょう。 そもそもスロークライアントってなに その名の通り遅い回線のクライアントです。3G環境のモバイル端末などが該当します。 「unicorn だとスロークライアントの影響を受けやすい」とは unicorn はプロセスモデルのサーバであり、blocking I/O モデルを採用しています。つまり、クライアントとの通信中プロセスが専有されるということです。 例えば unicorn がワーカプロセスを3つ立ち上げていて、そこへ通信完了に10分かかるようなスロークライアントが3つ接続されたら…、続くクライアントはスロークライアントの通信が完了するまで実行を待たなければならなくなります。プ

    最近の Rack サーバ事情について - おもしろwebサービス開発日記
  • Rubyを使っているプロジェクトのコーディング規約を見てみよう【Ginza.rb #20】

    2015/2/17にみんなのウェディングさんで開催された 『Ginza.rb 第20回 Rubyを使っているプロジェクトのコーディング規約を見てみよう』 に参加してきました。コーディング規約をじっくり議論できる場所はなかなかなかので、かなりおもしろかったです! 🏈 スタイルガイド今回Ginza.rbで一緒に読んだコーディング規約。 Rubyのコーディング規約ruby-style-guide/README.ja.md at japanese · fortissimo1997/ruby-style-guide Railsのコーディング規約rails-style-guide/README-jaJA.md at master · satour/rails-style-guide 🐮 おもしろかった規約議論に聞き入りすぎて、あんまりメモしきれませんでしたが今日から使いたいコーディング規約の俺得メ

    Rubyを使っているプロジェクトのコーディング規約を見てみよう【Ginza.rb #20】