朝4時台起きセルフメソッド 自分のため(セルフ)の朝4時台起きメソッド。 これはそういうことなんだ。。。 朝が暖かくなる5月半ばから 朝4時台に起きることを目標に試行錯誤していく。 まずは2日間だけ試した記録。 時間設定 +朝4時台とは 午前4時~午前4時40分ならOK +寝る時間 午後9…
![はてなブログ | 無料ブログを作成しよう](https://cdn-ak-scissors.b.st-hatena.com/image/square/06a15c64ba0ceec233d86d71001ebb29a9dcbf5d/height=288;version=1;width=512/https%3A%2F%2Fcdn.blog.st-hatena.com%2Fimages%2Ftheme%2Fog-image-1500.png)
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0063 号 バックナンバー Rubyist Magazine 0063 号 Rubyist Magazine 0062 号 Kaigi on Rails 特集号 RubyKaigi Takeout 2020 特集号 Rubyist Magazine 0061 号 Rubyist Magazine 0060 号 RubyKaigi 2019 直前特集号 Rubyist Magazine 0059 号 Rubyist
こんにちは! 見た目30歳の新卒1年目中野です。 今回は社内でクローラーについて勉強会を行ったので、その内容について記事を書きました。 クローラーとは、WebページからHTMLを解析して周期的に情報を収集する技術です。 初心者向けの内容となっていますので、クローラーに興味があってやってみたい!という人に読んでいただきたいなと思います。 Anemoneによるクローラー入門 from Tasuku Nakano クローラーとスクレイピングについて まずはクローラーについて説明していきます。 ただ、その前にスクレイピングという技術もあるので先にそちらを説明します。 ご存知かと思いますが、スクレイピングとは、WebページのHTMLを解析してデータを抽出することです。スクレイピングはWebページ1ページに対して処理を行います。 一方クローラーは、Webページ内にある全てのリンクを巡回して、深堀りしな
─ 問題1 ─ data.csvファイルには、5人のプレイヤー(Alice, Bob, Jimmy, Kent, Ross)が二種類のゲーム(gameA, gameB)をプレイした結果が次のような形で格納されている。各ゲームの平均点を求めよ。 data.csv player,gameA,gameB Alice,84.0,79.5 Bob,20.0,56.5 Jimmy,80.0,31.0 Kent,90.5,15.5 Ross,68.0,33.0 data = File.read('data.csv') headers, *scores = data.lines.map { |line| line.chomp.split(',') } scores # => [["Alice", "84.0", "79.5"], ["Bob", "20.0", "56.5"], ["Jimmy", "80
こんにちは。ウェブ開発担当の清水です。 Ruby 2.0 で実験的に導入されていた Refinements が、バージョン 2.1 より正式に導入となりました。 今回はこの機能を利用してクラスの拡張をしてみたいと思います。 オープンクラス Refinements とはクラスの拡張の範囲を限定する機能です。使用の前に、まず Ruby のオープンクラスについて説明します。 オープンクラスとは、既存クラスを再定義(再オープン)することで、メソッドの追加・上書きなどが容易にできる機能です。 この機能により組み込みクラスであっても自由に拡張できるため、使い道次第で強力な効果を発揮します。 以下の例では、 Array クラスへ bogo_sort! メソッドを追加することで、全ての Array インスタンスから呼び出せるようにしています。 class Array def bogo_sort! shuf
Rubyでは、簡単にデーモンが記述できる。その方法は簡単!Ruby 1.9だと Process.daemon と書くだけだ。その行の後は制御端末が切離され、デーモンとして実行される。Ctrl+Cで終了できないので、永遠に実行を続けるスクリプトは「pkill -f」などで殺す。 既存のスクリプトをデーモン化するには、この一行を加えればいいだけなのだが、常にデーモンにしてしまうとデバッグが困難になってしまう。そこで、テスト時はふつうに実行して、普段はデーモンにしてしまえばいい。その方法もまた簡単!上の一行を daemonize.rb というファイルに保存すればいい。だけどこれだけだとつまらないので、ついでにRuby 1.8にも対応させてみる。 if Process.respond_to? :daemon # Ruby 1.9 Process.daemon else # Ruby 1.8 req
はじめに dockerでrailsを動かす場合にどうするのが良いかなーと試行錯誤し、構成も落ち着いてきたのでまとめます。 お試しバージョン 一番最初はとりあえずってことで、railsリポジトリ + railsを動作させるコンテナの組み合わせで試してみました。 Dockerfileの内容 FROM base # rubyインストールに必要なパッケージを用意 RUN apt-get update RUN apt-get install -y --force-yes build-essential curl git zlib1g-dev libssl-dev libreadline-dev libyaml-dev libxml2-dev libxslt-dev # rbenv, ruby-buildをインストール RUN git clone https://github.com/sstephen
こんにちは、Railsエンジニアの鈴木(信)です。 先日31歳になったんですが、やはり30歳を超えたあたりから衰えたというか、何か体に変化があったように思います。 自身の健康はもちろんですが、コードの健康(品質)のことも気になる年頃になりました。 そこで今回は弊社で利用しているコード解析ツールをご紹介します。 brakeman - セキュリティ brakemanは、簡単なXSSやインジェクション系の脆弱性を検出してくれるgemです。 もちろんこれだけで完全に安心という訳ではありませんが、弊社ではJenkinsのBrakeman Pluginを使って、継続的にモニタリング、修正しています。 使い方 $ brakeman $ brakeman --only-files=path/to/specific_file simplecov - テストカバレッジ simplecovはカバレッジ計測ツール
Rubyはたのしい言語です。Rubyを触っているとマニュアルにも書いていない「小さな発見」に遭遇することがよくあります。このような「発見」は、プログラムの質や効率の改善には直結しないかもしれません。いや、むしろチームプログラミングでは妨げになる可能性すらあります。しかしその一方で、言語自体が自分の知らない領域を持ち続けていることが、その対象に対する興味を失わせないための大きな要因である、というのもまた疑いのない事実なのです。つまり「発見」はたのしさに直結しているのです。 このブログにおいて「知って得するRubyのトリビアな記法」というタイトルで、今まで3回記事を書きました。 “知って得する21のRubyのトリビアな記法” “第2弾!知って得する12のRubyのトリビアな記法” “第3弾!知って得する12のRubyのトリビアな記法” これらのトリビアには、ネット検索で見つけたもの、Twitt
2015年07月01日13:34 Ruby 勉強会 Rails開発をする上で知っておいた方が良さそうなこと 先週の木曜日、Speeeさんで開催された第2回SpeeeTeckPartyにお邪魔して発表してきました。 これは食 x 技術をテーマにした勉強会で、第1回は「寿司 x Ad」だったそうなんですが、なんでも今回は「からあげ x Ruby」だそうで、であればささたつさんしかいない!という人選だったそうですw (お寿司食べたかったな・・w というわけで、Rails開発するなら知っておくと良さそうなことを10個(質疑応答で一つ増えて11個になったりもしましたが!)紹介してきました。以下がスライドです。 他にもいろいろとあると思いますが、少しでも役に立てば幸いです :D ツイート 「Ruby」カテゴリの最新記事 「勉強会」カテゴリの最新記事
Ruby2.0のModule#prependは如何にしてalias_method_chainを撲滅するのか!? お久しぶりです。寺岡です。 lazyについて書いた前回に続いて、Ruby2.0について書いてみたいと思います。 今回注目する新機能は、Module#prependです。 Module#prependはRuby2.0で新たに追加された、Module#includeの親戚のような機能です。 一言で表すと「クラスの継承階層の手前にモジュールを追加する」ことができるようになります。 ActiveSupportのMudule#alias_method_chainを使わずに綺麗なモンキーパッチ実装することができる、Module#prependの挙動を探ってみたいと思います。 ruby2.0-rc1のインストール まずは実行環境の準備です。 前回の記事ではruby2.0-preview2を使い
個人で何かWebアプリ実装してみる、という時に何かのwebapiを利用することが最近多いです。 rubyでapiにhttpリクエストを投げるには、getの場合だとopen-uriを使うことが多いのですが postなど投げるときはnet/httpを使っています。 最近https(ssl)通信でリクエストを投げるというのを実装したので 忘れないようにメモ。 postメソッドリクエスト例 以下はgithub apiにリクエスト投げた時の例。 リポジトリにフックメソッドを追加するというリクエストです。 設定内容をjsonで渡す必要があったので、bodyにjsonデータをセットしています。 (ちなみにto_jsonメソッドはActiveRecord::Baseのメソッドですね確か) uri = URI.parse("https://api.github.com/repos/#{user_name}/
(追記:2013-08-16) 本記事のトリビアを含む55のトリビアを以下の記事にまとめました。 知って得する!55のRubyのトリビアな記法 ちょっとトリビアだけど、知っていると意外と便利なRubyの記法を21個拾ってみたよ(Ruby1.9限定)。 君なら全部知ってるかもしれないけど.. 1. 動的継承 Rubyのクラス継承では < 記号の右辺にクラス定数だけでなくクラスを返す式が書けるよ。 class Male def laugh; 'Ha ha ha!' end end class Female def laugh; 'Fu fu fu..' end end class Me < [Male, Female][rand 2] end Me.superclass # => Female Me.new.laugh # => 'Fu fu fu..' def io(env=:develop
RailsなどのRubyライブラリのソースコードを見ていると、よく File.expand_path('相対パス', __FILE__) という一文を目にする。ちょっと調べてみた。 File.expand_pathとは riコマンドで調べてみる $ ri File.expand_path (from ruby core) ------------------------------------------------------------------------------ File.expand_path(file_name [, dir_string] ) -> abs_file_name ------------------------------------------------------------------------------ Converts a pathname
先日会社の後輩に教えて貰ったんですが、Ruby 1.9 から Kernel.#sprintf や String#% が Hash を受け取れるようになっていたんですね。 ずっと知らなかったんですが、便利だと思ったので試してみました。 これにより、文字列で SQL での名前付きプレースホルダみたいな事が簡単にできるようになります。 ruby 1.9.3p194 にて確認しました。 単に値を埋め込むだけで、桁数などの書式を指定しない場合は %{} で囲んで名前を付けます。 hash = {name: 'akishin', price: 9999} sprintf "%{name} 様のお支払い金額は %{price} 円になります。", hash #=> "akishin 様のお支払い金額は 9999 円になります。" # Kernel.#format format "%{name} 様のお支
関東の大雪でめっちゃ寒いですが、『パーフェクト Ruby』を少しずつですが読み進めています。ここでは『Part3のメタプログラミング』に引き続いて、Part4の標準ライブラリで特に気になった部分をメモしていきます! 😼 ファイルパスを表現するクラス: Pathnameファイルパスを表現するクラス「Pathname」はファイルパスをオブジェクト指向らしく扱うことができるクラスです。 require 'pathname' home = Pathname.new('~') foo = home.join('foo.txt') p foo #=> # p foo.dirname #=> # p foo.basename #=> # p foo.expand_path #=> # p foo.expand_path.parent #=> # p foo.expand_path.parent.par
Rubyがあれば、もうこんな事しなくて良いんです。 d + 60*60*24*i # 秒に直して計算 ruby はDate(日付)がRangeオブジェクトとして使えるのでとても早い 10日分の日付をあっという間に作る。 takuya@host $ ruby -r date -e \ '(Date.parse("2010-02-11")..Date.parse("2010-02-20")).each{|i|puts i }' 2010-02-11 2010-02-12 2010-02-13 2010-02-14 2010-02-15 2010-02-16 2010-02-17 2010-02-18 2010-02-19 2010-02-20解説 ruby -r date #これは require 'date'とおなじ Date.parse("2010-02-11") # これは日付オブジェク
RubyとRailsにおけるTime, Date, DateTime, TimeWithZoneの違いRubyRails 2021.2.11追記:DateTimeクラスは非推奨なクラスになりました DateTimeクラスは非推奨なクラスとなり、DateTimeクラスではなくTimeクラスを使うよう、公式にアナウンスされました。 参考1 But we consider use of DateTime should be discouraged. - matz (Yukihiro Matsumoto) https://bugs.ruby-lang.org/issues/15712#note-4 参考2 DateTime は deprecated とされているため、 Timeを使うことを推奨します。 https://docs.ruby-lang.org/ja/latest/class/DateT
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く