Ruby
RSpecで、SharedExamplesを使うと、失敗したテストの行番号の代わりに [1:2:2:3:1] みたいなのが表示されて、どのテストを見ればいいのかわかりにくくなるのが辛いです。 2015年からInclude line numbers as well as index in output · Issue #2119 · rspec/…
spring Rails 5.2.3でrails consoleを実行すると、プロンプトが出る前で止まります。 ~ bundle exec rails --version Rails 5.2.3 ~ bundle exec rails c ^CTraceback (most recent call last): 15: from bin/rails:3:in `<main>' 14: from bin/rails:3:in `load' </main>…
ledsun.hatenablog.com の続きです。 もうちょっと関数合成しがいのある書き方を思いつきました。 fizz = -> x {[x, ('Fizz' if x % 3 == 0)]} buzz = -> (x) {[x[0], x[0] % 5 == 0 ? "#{x[1]}Buzz" : x[1]]} filter = -> (x) {x[1] || x[0]} do_fizzbuzz =…
結論をいうと「RubyKaigiに行くと自分が世界最高のエンジニアになる可能性」が得られます。どういうことでしょうか? 目的地を知らないとどうがんばっても目的地にたどりつけません。当たり前の話です。エンジニアとしての成長も一緒です。自分がエンジニア…
fizzbuzz = -> x { x % 15 == 0 ? 'FizzBuzz' : x % 5 == 0 ? 'Buzz' : x % 3 == 0 ? 'Fizz' : x } p_fizzbuzz = -> x { p x } << fizzbuzz 1.upto(15){ | n | p_fizzbuzz.call(n) } pと合成するだけでは面白くないですね。 fizz = -> x { (x.is_a? Integer)…
Rails Developers Meetup 2018 Day 4 Nouvelle Vague で発表してきました。 趣旨は「ActiveRecordやActiveJobなどのRailsの用意した抽象インタフェースを使うと、アプリケーションのミドルウェア構成、ひいてはアーキテクチャの決定を遅らせる事ができる。そ…
現象 Ruby on Railsの、ActiveJob内で起動したスレッドで非同期にDBに書き込もうとすると、ActiveRercordのクラス探索で無限に待って固まります。 わかっている条件 ActiveJobで起きる ActiveJobのQueueAdapterにはAsync adapterを使っている DBへの接続以前…
RSpecMockで見慣れないエラーが起こせました。 再現コードをメモります。 class Repository; end RSpec.describe do it do expect(Repository).to receive(:doc).and_yield(nil) Repository.doc {} end end 実行すると ~ rspec spec.rb F Failures: 1) shoul…
会社がお金を出してくれるのでRubyKaigiへの参加が決まっていました。 どうせ参加するなら何かしら発表したいです。 LTに応募したら通りました。 資料です。 speakerdeck.com 結論に被さるぐらいの勢いで銅鑼が鳴りました。 英語で発表 英語での発表にチャレ…
Hijacking Ruby Syntax in Ruby Hijacking Ruby Syntax in Ruby from SATOSHI TAGOMORI クレイジーでした。Binding#local_variable_set や TracePoint を使ってRubyの言語仕様を拡張しようという趣旨です。 CRuby本体を拡張せずに、新文法のProof of concept…
Ferrari Driven Development: superfast Ruby with Rubex Parallel and Thread-Safe Ruby at High-Speed with TruffleRuby (Keynote) Ferrari Driven Development: superfast Ruby with Rubex RubyのC拡張を作るためのプログラミング言語の話でした。 グルー…
1.5kmぐらいですが、だらだらと見物しながら歩いて1時間ぐらいでした。 市街 街に歴史あり 大町西公園駅から広瀬川を渡る 主要部から徒歩圏内でこの景観 ゴール 伊達家の家臣のお家の跡にカンファレンスセンター
弊社では、今年からRubyKaigi 2018への参加支援を始めました。 今年は3人の参加者がいます。 主にお金周りの準備の仕方のメモを残します。 参加費 参加者個人で申し込んで支払いました。 以下の文書で経費精算 doorkeeperからの支払い確認メール Paypalから…
redmine.tokyo に参加してLTしてきました。 speakerdeck.com 経緯 Redmine Wikiのツリー構造をドラッグ&ドロップで編集できるようになったので、ちょっと見てって pic.twitter.com/p0gC7XxKla— ぎゃばん (@ledsun) 2017年10月24日 Pluginを作ってツイッター…
どんな本? RubyでつくるRuby ゼロから学びなおすプログラミング言語入門(紙書籍)www.lambdanote.com 言語処理系の実装を体験するための本。 言語処理系の実装はパーサの実装が面倒臭くて、大抵の人はそこで力尽きます。 そこで、パーサは著者の方が用意し…
プログラミングの学習曲線 プログラミングで世界を変えるということ 職業プログラマのすすめ Ruby on Railsの複雑度が問題? プログラミング研修の限界 まとめ プログラミングの学習曲線 Ruby on Railsはプログラミングではない! | それでも人は夢を見るの…
オブジェクト指向という言葉には オブジェクト指向分析(OOA) オブジェクト指向設計(OOD) オブジェクト指向プログラミング(OOP) の三つの意味があります。 オブジェクト指向初心者泣かせです。 ここではオブジェクト指向設計を説明します。 ソフトウェアの設…
状態管理用の変数をインスタンスに持たせるなこのタコって話 に面白い機能追加とリファクタリングの例がありました。TDDに慣れ親しんだ身からすると、 「黄金の回転のリズム」 テストを書く テストが通る最低限のコードを書く リファクタリング に比べると、…
Windows上に複数バージョンのRubyの動きを確認する環境を整えます。 RubyやRailsのバージョンにこだわらずに最新のRuby on Railsを使ってみたいならRails Installerを使った方が簡単です。 Rubyのインストール RubyインストーラーでRubyを入れる。 http://ru…
Rubyでタイムゾーン文字列を出力したら日本語が表示された。 C:\Users\ledsun>irb irb(main):001:0> Time.now.strftime('%Z') => "東京 (標準時)" Rubyリファレンス タイムゾーンによると、Windows*1の場合「環境変数TZ」を設定すると「JST」と出力されるそ…
pik*1環境でrdocインストールしたところjsonのインストールでエラーが起きました。 >>ERROR: Error installing json: The 'json' native gem requires installed build tools. Please update your PATH to include build tools or download the DevKit from …