ruby

WEB+DB Press Vol.91 データ構造の基礎知識 が良い

簡単なアルゴリズムの話かと思い、さらっと流そうかと思ったら、配列、連結リスト、ハッシュテーブルをRubyで実装し、B木/B+木にも言及した良記事でしたので、手を動かしなら、B+木の絵も手元で沢山書いて理解しながら熟読してしまいました。 計算量の違いの…

STRING PERMUTATIONS(CODEEVAL)

文字列の組み合わせをアルファベト順で並び替える問題。 今回も組み込みメソッドで対応。 instance method Array#permutation (Ruby 2.4.0) Codeevalとかやると、かゆいところに手が届くrubyは非常に良いと実感できます。 (本来的にはこれを素で実装しろと…

WITHOUT REPETITIONS(CODEEVAL)

すごく久しぶりにcodeevalやって見た。 繰り返し文字列を削除する問題。 愚直にできなくはないのですが、なんか便利メソッドないかと調べて見たら そのものズバリの instance method String#squeeze (Ruby 2.4.0) というものがありました。 CHALLENGE DESCRI…

Dropbox SDK から Rubyがサポート対象外に!

公式SDKあるし簡単かなぁと思ったら、なんと v2 でサポート対象外となっていました。 Ruby API v2 Client - Dropbox Community - 142019 特に理由が書かれていないのですが、community のライブラリがあるからええやろってことなんでしょうか? じゃどれ使お…

blogタイトルにgithubのgrass-graphを設定してみた

PCだけ対応してみました。 最近、全然GitHub使ってなかったので自責の念も込めて作成。 Grass-Graph / Imaging your GitHub Contributions Graph でGitHubのGrass-Grappを画像として取得できるWebサービスを運営してくれているので、これを使おうかと思った…

tsvを mask するスクリプト(勝手にリファクタリング)

はじめて触ったRubyでTSVをマスキング処理。 | Developers.IO を見ていて、(初めてという記載があるので、全然致し方ないと思います。斧投げてるつもりは全くないです。頑張って欲しいです。)全然rubyっぽくないscriptだったので、反射的にリファクタして…

Nokogiri Install Error

もう何度目でしょうか。nokogiriのinstallに失敗するのは。 ものすごいデジャブ感。 今回のは、xz の liblzma の依存関係が悪さしているようでした。 これはちょっと初体験。 Nokogiri 1.6.8 Install Fails on Mac OS X with xz installed from Homebrew · I…

git-trend v1.1.0 release

コマンドラインでTrending repositories on GitHub today を参照できる rochefort/git-trend: をbump upしました。 新機能追加では無いのですが、HTMLの構造が微妙に変更されていたのと 言語毎のページがurlのpathに含まれるようになっていたのに対応しまし…

共通.rubocop.ymlの管理

rubyを会社で利用している方なら、 複数プロジェクトにまたがるような .rubocop.yml をどう管理するか ということを考えるのは、ごくごく自然なことです。 (私は会社でruby使ってないですけど) rubocop のしつけ方 - onk.ninja を見ていて、 inherit_from …

dilute.rb@東京Rubykaigi 11 について

tenderloveさんが発表されていた摩訶不思議な dilute.rb の原理について 発表では種明しなしでモヤモヤが止まらないので調べてみました。 動画はこの辺りから。 【招待講演】Image Recognition and Code that shouldn't exist Aaron Patterson氏 デモ概要 ま…

東京RubyKaigi 11 に参加してきました

Tokyo RubyKaigi 11 #tkrk11 今回のロゴとてもかっこいいです。 スライド・動画などはこちら(もう動画見れる!)。 スケジュール - Tokyo RubyKaigi 11 #tkrk11 JSONに型を持たせる仕組みや、rubyでNES(ファミコン)が動くとかいろいろ面白かったです。 ru…

RubyのSymbol GCの翻訳記事が良い

(翻訳) Ruby 2.2 のシンボル GC | FIVETEESIXONE この翻訳記事が良かったです。 RubyのSymbolの問題は、Rails の security update の内容などを何度か見て知ってはいたのですが 仕組みについては知りませんでした。 対応方法 Narihiro Nakamura は、この問題…

yard diff が素敵すぎる

パーフェクトRuby (PERFECT SERIES 6)作者: Rubyサポーターズ,すがわらまさのり,寺田玄太郎,三村益隆,近藤宇智朗,橋立友宏,関口亮一出版社/メーカー: 技術評論社発売日: 2013/08/10メディア: 大型本この商品を含むブログ (22件) を見る 14章より。 rdoc の代…

イベントをフックする

パーフェクトRuby (PERFECT SERIES 6)作者: Rubyサポーターズ,すがわらまさのり,寺田玄太郎,三村益隆,近藤宇智朗,橋立友宏,関口亮一出版社/メーカー: 技術評論社発売日: 2013/08/10メディア: 大型本この商品を含むブログ (22件) を見る 10-3 イベントをフッ…

Procオブジェクト

パーフェクトRuby (PERFECT SERIES 6)作者: Rubyサポーターズ,すがわらまさのり,寺田玄太郎,三村益隆,近藤宇智朗,橋立友宏,関口亮一出版社/メーカー: 技術評論社発売日: 2013/08/10メディア: 大型本この商品を含むブログ (22件) を見る Proc#curry がとても…

eval族の親戚exec族

パーフェクトRuby (PERFECT SERIES 6)作者: Rubyサポーターズ,すがわらまさのり,寺田玄太郎,三村益隆,近藤宇智朗,橋立友宏,関口亮一出版社/メーカー: 技術評論社発売日: 2013/08/10メディア: 大型本この商品を含むブログ (22件) を見る メタプログラミングに…

source_locationでメソッドの定義場所を調べる

積読状態だった パーフェクトRuby を読んでいます。 パーフェクトRuby (PERFECT SERIES 6)作者: Rubyサポーターズ,すがわらまさのり,寺田玄太郎,三村益隆,近藤宇智朗,橋立友宏,関口亮一出版社/メーカー: 技術評論社発売日: 2013/08/10メディア: 大型本この商…

Rubygemsの本日のダウンロードランキング

今日のyak shaving rubygems/gems: Ruby wrapper for the RubyGems.org API のソースを見ていたら 以下のようなAPI及び、most_downloaded_today というメソッドが用意されていることに気づきました。 https://rubygems.org/api/v1/downloads/top.yaml 便利か…

RSpecのベストプラクティスとRSpec3の新機能

WEB+DB PRESS Vol.89 の いまどきのRSpecテスト が良かったです。 日本人で唯一のRSpec core teamに所属するyuji nakayamaさんの記事ですので読み応えがあります。 余談ですがcore teamの中でもアイコンが目立っています。かっこいい。 https://github.com/r…

git ls-files -z

bunlderで生成されるgemspecの記述でちょっと気になったところがあったので調べてみました。 以前の記述 gem.files = `git ls-files`.split($\) git ls-filesの結果をセット。 引数は Kernel.$\ のようで(module Kernel (Ruby 2.3.0)) 出力レコード区切り…

Rubyで100マス計算

ruby勉強会の演習問題を解いてみた - rochefort's blog これはrubyを書き始めた頃のソースですが たまたま目にして、あまりにもアレだと思ったので、 カッとなって書き直してしまいました。 コード class Game100Cell CELLS = (1..9).to_a.freeze def initia…

Kernel#test が便利

Array#sort_byのマニュアルを見ていたら便利そうなKernel.testの記述がありました。 Array#sortのマニュアルより抜粋 まずはsortとsort_byのbenchmark require 'benchmark' a = (1..100000).map {rand(100000)} Benchmark.bm(10) do |b| b.report("Sort") { …

rubyのsort_by / shuffle から学ぶシュワルツ変換とフィッシャー - イェーツのシャッフル

ffakerのsourceを眺めていたら以下のようなコードがありました。 # ffaker-2.1.0/lib/ffaker/utils/array_utils.rb module FFaker module ArrayUtils def self.shuffle(array) array.sort_by{Kernel.rand} end これ自体は、Array#shuffleがない頃のrubyでshu…

Rubyのテストデータ作成gem

少し古い WebDB Press(vol.85)のRubyの記事(Railsらくらくテストデータ準備)を見ていたら fakerの紹介がされていました。 ちゃんと使ったことなかったので今更ながら触ってみました。 記事中はおそらくtypoでffakerとなってしまっていたと思われるので、…

米がうまい

私は米が大好きです。特にツヤツヤ炊きたての米が大好きです。 ここ最近自炊していなかったのですが 魚沼産コシヒカリの新米を久しぶりに入手したので 土鍋で炊いてみたら予想通り美味かったのと 昨年、何かのニュース番組で米のランキングが紹介されており…

RE:「進捗・どう・です・か」

3連休終わって、明日もPHP書かないといけないと思うと、少し気が滅入ってきました。 「進捗・どう・です・か」をランダムに表示し「進捗どうですか」が完成したら煽ってくるプログラム | ぞうさんの何でもノート rubyで書いてみる 「進捗 どんな感じですか」…

「非Railsアプリケーションのマルチデータベース対応と高速化の取り組み」が面白かった

RubyWorld Conference 2015の動画を見ています。 18分ほどの短めのセッションでしたが、とても面白かったです。 MySQLにしか製品していなかった製品を大人の事情でPostgreSQLにも対応したというお話。 ORMとしてSequel を導入したがいろいろ問題があり、それ…

Ruby2.3.0 の新機能

Ruby 2.3.0 リリース まずはInstall $ brew update $ brew upgrade ruby-build $ RUBY_CONFIGURE_OPTS="--enable-shared --with-readline-dir=`brew --prefix readline` --with-openssl-dir=`brew --prefix openssl` --with-libyaml-dir=`brew --prefix liby…

git-stars というgemを作りました

rochefort/git-stars 経緯 普段からgithubでstarはよく付けるけど、見返すこともあまりなく もったいないと思っていました。 consoleアプリでなんか良いツールがないか探してみると JacksonGariety/galileo というのがあり 直近のstarsをカラフルに罫線付き…

mb_stringというgemを作りました

console applicationを作っていると、マルチバイトに対応した String#ljust, String#rjust, String#center が欲しくなるケースがちょいちょいあり、こないだ同じやつ書いたなぁということがあったので gem化しました。 rochefort/mb_string padding文字列も…