ruby

minimum_distance(CODEEVAL)

配列の距離の和の最小値を求める問題。 CHALLENGE DESCRIPTION: Alice is looking for a sorority to join for her first year at Acme University. There is a street consisting entirely of sorority houses near the university, and some of her high s…

Max Range Sum(CODEEVAL)

配列から連続したN個を取り出し、合計数の最大値を算出する問題。 最初のinjectの引数を無しで書いてしまったため、10分ほど悩んでしまいました。 injectあるあるについて補足。 CHALLENGE DESCRIPTION: Bob is developing a new strategy to get rich in th…

Details(CODEEVAL)

問題の意味がとても分かりにくいのですが、matrixを作成し左側をx、右側をyが陣取り、 yがいくつ左に動くとxと衝突するかというのを求める問題のようです。 問題が悪い気がします。 CHALLENGE DESCRIPTION: There are two details on a M*N checkered field.…

Knight Moves(CODEEVAL)

チェスのナイトの移動位置を求める問題。 横がa-h、縦が1-8。これらの変換をしつつ、以下の数式を満たすパターンを求める。 # 現在位置を(x, y)、次の移動候補を(a,b)とした場合 |a| + |b| = 3 1 <= x + a <= 8 1 <= y + b <= 8 CHALLENGE DESCRIPTION: In c…

Matrix Rotation (CODEEVAL)

行列回転の問題。今回は面白かったです。 CHALLENGE DESCRIPTION: You are given a 2D N×N matrix. Each element of the matrix is a letter: from ‘a’ to ‘z’. Your task is to rotate the matrix 90° clockwise: a b c g d a d e f => h e b g h i i f c I…

Prefix Expressions(CODEEVAL)

ポーランド記法の問題。 何度かtryしましたが、scoreが100にならないです(85-95)。なんかケース漏れがありそうだけど、どういうケースでNGになっているのかcodeeval上ではわからないのが残念。 些細なミスのような気がしますが、一旦諦めました。 CHALLENGE …

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となってしまっていたと思われるので、…