タグ

Rubyに関するmasayoshinymのブックマーク (273)

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

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

    【Ruby】PythonプログラマーがRubyを触って感じたこと - 歩いたら休め
  • Ruby超入門(前編)

    こんにちは。 この連載では、ちょっと変わったRuby入門を書いていきます。 想定読者は、Rubyを学びたいプログラミング初心者です。 Ruby以外の言語でプログラミングしたことがあると理解がはかどると思いますが、 Rubyを知らなくてもわかるように、なるべく丁寧に説明していくつもりです。 Rubyをある程度知っている読者には、最初の数回は退屈かもしれませんが、 回を重ねていくにつれ、より深くRubyを知ることができるはずです。 Rubyとは? Rubyは「プログラミング言語」です。 プログラミング言語とは、コンピュータにやらせたい仕事を書くための言語です。 つまり、Rubyを覚えて、Rubyでコンピュータへの指示を書けば、 コンピュータはその指示を実行してくれます。 この指示書のことを「プログラム」と言い、特にRubyで書かれたプログラムを「Rubyプログラム」と言います。 ところで、Ru

    Ruby超入門(前編)
  • RubyKaigi 2016 基調講演レポート Ruby3 Typing | Goodpatch Blog

    RubyKaigi 2016が始まりました!スポンサーであるグッドパッチもエンジニア数名で京都に来ています。 早速、今朝発表されたRubyの父Matzによる基調講演のレポートをお送りいたします。 Ruby3の柱 東京オリンピックの年にリリースすることを目指して開発されているRuby3には大きく3つの柱があります。 型(Typing) パフォーマンス(Performance) 並列処理(Concurrency) 今回の基調講演は、この中のひとつ「型」についての話です。 プログラミング言語の変遷 まずはじめに、プログラミング言語の「型」という側面についての振り返りがありました。 プログラミング言語にも時代によって流行りがあり、それは振り子のように繰り返されています。 かつては動的言語のSmalltalkやLispがあり、次に静的言語のJavaが流行し、JavaScriptRubyのような動的

  • xargsでファイルの中身の行(スペースあり)を引数にする - NigoroJr

    Articles Products Gallery FTP SKK About Contact Admin xargsでファイルの中身の行(スペースあり)を引数にする 標準出力を別のコマンドの引数にしたいときに便利なxargsですが、空白があるときには厄介なときがあります。備忘録を兼ねてまとめました。 シナリオ スペースを含む複数行を全部、別コマンドの引数にしたい。 input.txt の内容: foo bar baz bar hoge piyo piyo print.rb の内容: #!/usr/bin/env ruby puts 'Printing...' p ARGV 期待する出力: Printing... ["foo bar", "baz bar", "hoge piyo piyo"] Attempt 1 まぁこんなことは思いついた時点で頭の中でボツですが、一応。 Command

    xargsでファイルの中身の行(スペースあり)を引数にする - NigoroJr
  • 『オブジェクト指向設計実践ガイド』を読んで - まめめも

    オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方posted with amazlet at 16.09.01Sandi Metz 技術評論社 売り上げランキング: 20,383 Amazon.co.jpで詳細を見る 自著を書いたご縁で、技術評論社さまから贈いただきました。ありがとうございます。 書は明日 9/2 (金) に発売らしいですが、発売前に読み終わったので書評など書きます。(書評アフィリエイトブログみたい) 概要 一言で言えば、「仕様変更に強い Ruby プログラムを設計する方法」というテーマのです。 2 つのクラスにまたがる関心事を実装するとき、どっちのクラスにどんなメソッドを持たせるべきか、ということは誰でも悩んだことがあると思います。正解があるわけではないので、自分で基準を選んで決定するしかないわけですが、このは「将来

    『オブジェクト指向設計実践ガイド』を読んで - まめめも
  • Ruby の Timeout の仕組み - tmtms のメモ

    Ruby で長い時間掛かるかも知れない処理のタイムアウトを行うにはこんな感じにします。 require 'timeout' begin Timeout.timeout(3) do # 3秒でタイムアウト hoge # 何かの処理 end rescue Timeout::Error puts 'なげーよ' # タイムアウト発生時の処理 end Timeout.timeout はブロック開始時にスレッドを作成し、そのスレッドで指定された秒数だけ sleep して、sleep から復帰してもまだブロックが終わってなければ作成元のスレッドに対して Timeout::Error 例外を発生させます。 指定時間以内に処理が終わる場合: timeout(X) │ スレッド作成 ─┐ │ │ ブロック実行 sleep X │ │ スレッドkill→ 🕱 │ timeout復帰 指定時間以内に処理が終わら

    Ruby の Timeout の仕組み - tmtms のメモ
  • SQL でファイル検索するコマンド selects を書いた話 | blog.jxck.io

    Intro UNIX コマンドを SQL で抽出できるツール qq を作った。 というエントリを読んで、そういえば似たようなものを作ってたなと思い出した。 自分の dotfiles の中にある、便利コマンド集の中にある selects についてである。 このコマンドは SQL という検索を記述的に表現する共通言語をファイル検索に応用し、 Ruby の動的言語として表現力を使って実装したものといえる。 その実装方法と実行例などについて記す。 selects 結論からいうとこういうコマンドだ。 $ selects mtime, size, basename from './entries/**/*' where extname '==' '.md' and size '>' 1000 order by mtime 2016-07-06 22:45:44 +0900 18437 web-font

    SQL でファイル検索するコマンド selects を書いた話 | blog.jxck.io
  • はんこ画像生成botのソースコードを公開します - すずしめにっき

    サークルのslackで動かしているはんこをつくるbotです。 こんな感じに受け取った文字列をはんこ画像にして返します。 たまにこのブログ上でも登場していたのですが、折角なのでソースを公開しておきます。 gist.github.com 全体は2つのrubyのスクリプトで構成されています。 はんこ画像を生成するmakehanko.rbとslackと通信して文字列を受け取ったりはんこ画像を投稿したりするhanyu_hanko.rbです。 つまり、makehanko.rbだけで独立したはんこ画像生成機として使うことができます。 makehanko.rbの使い方 画像に文字をいれるためにrmagickというライブラリ(gem)に依存しています。 これはimagemagickというツールをrubyから扱うためのラッパーのようなものなので、まずimagemagickのインストールが必要です。 私が動かし

    はんこ画像生成botのソースコードを公開します - すずしめにっき
  • Rubyのリファクタリングでイケてないコードを美しいオブジェクト指向設計のコードへ改良するための方法 - その1 - ベルリンのITスタートアップで働くジャバ・ザ・ハットリの日記

    Rubyのリファクタリングでオブジェクト指向設計に沿った美しいコードになるまでの方法を書いた。 元ネタはこちらのBen Orenstein氏のリファクタリングで、そこに私なりの解説とコードを加えた。かなり追加したのでOrenstein氏の原型とはだいぶ違う箇所もあるがオブジェクト指向設計とリファクタリングに対する考え方は同じなはず。 github.com 全3回に渡ってリファクタリングする。 「イケてない」から「マシ」にするためのリファクタリング 「マシ」から「いいね」にするためのリファクタリング 「いいね」から「スゲーいいね」にするためのリファクタリング 今回は1.の「イケてない」から「マシ」にするためのリファクタリング。 イケてないコード 以下にあるのがなんかイケてないコード。一応動くし、テストもパスしている。でもそのコード品質は平均よりちょっと下。 範囲を指定してその間の売上の総合計

    Rubyのリファクタリングでイケてないコードを美しいオブジェクト指向設計のコードへ改良するための方法 - その1 - ベルリンのITスタートアップで働くジャバ・ザ・ハットリの日記
  • 実践 Pact:マイクロサービス時代のテストツール - クックパッド開発者ブログ

    技術部の taiki45 です。 以前「サービス分割時の複雑性に対処する: テスト戦略の話」という記事で、サービス間のインテグレーションテストにおける問題について紹介しました。現在のクックパッドではこの問題の解決のために Pact というツールを導入して運用しています。この記事では、その運用の知見を紹介できればと思います。 Pact Pact は Consumer-Driven Contract testing (CDC testing) を実現するためのツールです。"Consumer"、"Provider" という見慣れない単語が出てきますが、この記事ではだいたい「Consumer = Web API クライアント」、「Provider = Web API サーバー」と対応ができます。この記事では具体的な Pact の利用例を通じて CDC testing がどういうものなのかについても

    実践 Pact:マイクロサービス時代のテストツール - クックパッド開発者ブログ
  • Ruby on Railsだけじゃない!Rubyフレームワーク6選

    Rubyのフレームワークと言えば、Ruby on Railsだ。 ほとんどイコールで語られることが多いが、実は他にもRubyフレームワークはある。用途によって使い分けるためにも、知っておくことは有用だ。 このページでは、Rubyのフレームワークをまとめてみた。参考にしてほしい。 http://rubyonrails.org/ Ruby on Railsとは? Rubyのフレームワークにおいて最も有名なものとは何かと言えば、このRuby on railsだ。Rubyの進化の歴史は、このRuby on railsと共にあったと言っても言い過ぎではない。 Ruby on RailsRubyという言語が多くのプログラマーに愛されるようになったきっかけを作ったフレームワークだからだ。 当初Rubyはどこにでもあるプログラミング言語のひとつとして扱われていた。だが、Railsという非常に簡単にWeb

    Ruby on Railsだけじゃない!Rubyフレームワーク6選
  • http://post.simplie.jp/posts/41

    http://post.simplie.jp/posts/41
  • 橋本商会 » Ruby書くならBundler使え

    Rubyでプログラム書くにあたって、bundlerを使わないプログラムは1年ぐらい経つと動かなくなってる事が多々あって、bundlerマジ重要なのと ぐぐってもあまりbundlerの利点や説明がまとまってる記事がなかったので 研究室のwikiに書いた記事を転載しておく。 Bundlerとは Bundler: The best way to manage a Ruby application's gems プロジェクト内で使うRubygemsを管理するしくみ。 プロジェクトの一番上のディレクトリに「Gemfile」というテキストファイルを置き、その中にgemの名前(と必要あればバージョンも)書く。 % bundle install というコマンドで、gemが一括インストールできる プログラム内で require 'bundler' Bundler.require と書くと、gemが一括req

  • CentOSでrbenvをシステムにインストールする - Qiita

    rbenvのよくあるインストール手順はユーザのホームディレクトリに入れるパターンが多いですが、複数ユーザで共有したかったのでシステムにインストールしてみることにしました。ここでは /usr/local/rbenv にインストールするものとして説明します。別の場所にインストールする場合は適宜よみかえてください。以下その手順です。 まずビルドに必要なパッケージを導入します。

    CentOSでrbenvをシステムにインストールする - Qiita
  • ruby, rbenv, System Wide Install (どのユーザーでも、rbenv を利用できるようにする) - #tech

    rbenv の System Wide Install の方法を調べたのでまとめておきます。 普通に rbenv を使うと、それはユーザに対するインストールとなります。 たとえば komiya というユーザーがあれば、下記の場所に置かれます。 /home/komiya/.rbenvしかし、この場合は、他のユーザーが ruby を使いたいと思っても利用することが出来ません。 特定のユーザーに対して rbenv をインストールするのではなく、 システム(root)に rbenv をインストールし、どのユーザーでも rbenv を使えるようにします。 これを System Wide Install と呼んでいるようです。 環境 Linux: Amazon Linux AMI release 2015.03 rbenv: rbenv 0.4.0-148-g5b9e4f0 ruby: 2.2.2 イ

    ruby, rbenv, System Wide Install (どのユーザーでも、rbenv を利用できるようにする) - #tech
  • ruby-buildをインストールしたのに「rbenv: no such command `install`」と怒られた時 - tyn-iMarketの技術メモ

    rbenvを/usr/local/rbenvにインストールし、ruby-buildをpluginsディレクトリに配置して、さてインストールしようと思いコマンドを叩くと怒られるわけです。 一瞬ポカーンとなりますよね。( ゚д゚)ポカーン 原因なんですが、rbenvのデフォルトのルートディレクトリが~/.rbenvだからでした。それが今は/usr/local/rbenvになっててruby-buildを読み込めていないと。 これを export PATH="/usr/local/rbenv/bin:$PATH" RBENV_ROOTを設定して、環境変数を読みこめばOKです。 export RBENV_ROOT="/usr/local/rbenv" export PATH="$RBENV_ROOT/bin:$PATH"

    ruby-buildをインストールしたのに「rbenv: no such command `install`」と怒られた時 - tyn-iMarketの技術メモ
  • ビジュアルプログラミング環境スモウルビーの紹介

    最近、プログラミング教育が大きな注目を集めています。 日でも小学校でのプログラミング教育必修化が検討されており、Ruby界隈でも『Hello Ruby』の翻訳である『ルビィのぼうけん』が今年5月に出版されるといった話題もありますね。 プログラミング教育の盛り上がりは、松江でも例外ではありません。 筆者は、NPO法人Rubyプログラミング少年団の活動を通じて、小中学生にプログラミングを教えています。 そこでは、スモウルビー(Smalruby)というソフトウェアを使っています。 この記事では、いちユーザの立場からスモウルビーを紹介します。 想定読者は、ある程度プログラミングの経験があって、小中学生にプログラミングを教えたいと思っている方々です。 また、スモウルビーでゲームを作る際のノウハウはあまりウェブ上に無いため、それらについてもいくつか紹介したいと思います。 記事では、それぞれ下記の

    ビジュアルプログラミング環境スモウルビーの紹介
  • rbenv,CentOS6.5で作るredmine環境 - Qiita

    Qiita初投稿!こんにちはこんにちは! 動機 リアルで引越がしたくなり、タスク管理する必要に駆られて何使うかなぁと思い、 咄嗟にRedmineを使いたくなったので、衝動で持て余していたVPSに入れることにした。 さくらのVPS(2G) legnoh.jp のサブドメイン rm.legnoh.jp で入れる。 CentOS 6.5 x86_64 OS放置してて何入ってるか思い出せないので再インスコした。 VPSのカスタムOS再インスコ時に出るはずのVNCコンソールが、Java6でないと動かないとかぬかすので、 入れ直したけど動きませんでしたふぁっく(´・ω・`) 結局以前入れていたものをそのまま入れなおすだけで妥協。 Redmine 2.4.3 はい最新版。 Ruby 2.1.0 with rbenv 正直Rubyすら触ったことないのでアレなのだけど、とりあえず最新入れときゃ動くだろ的発想

    rbenv,CentOS6.5で作るredmine環境 - Qiita
    masayoshinym
    masayoshinym 2016/05/19
    “apacheからの実行になるので、rbenv配下に実行権限を与えておく。”
  • [Tips] rbenvでrubyのダウンロードが遅い時の対処法 | DevelopersIO

    モバイルアプリサービス部の五十嵐です。 先日、rbenvでrubyをインストールしようとしたところ、CDNからのダウンロードが非常に遅くインストールに手間取ったことがありましたので、対処方法を共有します。 なお、rbenvの基的な情報を知りたい場合は以下も合わせてご覧ください。 rbenv を利用した Ruby 環境の構築 | Developers.IO 通常のインストール方法 まずは通常のインストールから見ていきます。rbenv installコマンドにバージョン番号を渡すと、CloudFront(CDN)にあるソースコードをダウンロードし、コンパイルまでを行ってくれます。 $ rbenv install 2.2.1 Downloading ruby-2.2.1.tar.gz... -> https://dqw8nmjcqpjn7.cloudfront.net/5a4de38068ec

    [Tips] rbenvでrubyのダウンロードが遅い時の対処法 | DevelopersIO
  • RubyをWindowsにダウンロードしてインストール、アンインストールする

    連載「スマホで便利な環境構築手順書」では、さまざまなソフトウェアのインストール手順や、実行するためのセットアップ設定、実行確認、アンインストールの手順を解説する。 少しでも分かりやすくするために画面キャプチャー/スクリーンショットの画像を中心に解説を進める。スマートフォンで読む場合は、最初に出てきたスクリーンショットの画像をタップすると、左スクロールで画像を見ながら手順を追うことができるので、スマートフォンを片手に画像を確認しながら、PCで実際に操作してみる、といったこともしやすいはずだ。もちろんネットワークにつなげず、携帯電話の回線でしか見ることができない場合もぜひ読んでほしい。 なお、インストーラーに関する基的なことは、下記記事を参照しておいてほしい。 exe/dmgしか知らない人のためのインストール/パッケージ管理/ビルドの基礎知識 - @IT 人気のツールを使うのに欠かせない「

    RubyをWindowsにダウンロードしてインストール、アンインストールする