@ledsun blog

Hのキーがhellで、Sのキーがslaveだ、と彼は思った。そしてYのキーがyouだ。

Ruby

Ruby on Railsの開発環境でマルチスレッドでクラス定義を探索すると刺さるが再現できなかった話

現象 Ruby on Railsの、ActiveJob内で起動したスレッドで非同期にDBに書き込もうとすると、ActiveRercordのクラス探索で無限に待って固まります。 わかっている条件 ActiveJobで起きる ActiveJobのQueueAdapterにはAsync adapterを使っている DBへの接続以前…

<Repository (class)> yielded |nil| to block with

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 2018でLTしました

会社がお金を出してくれるのでRubyKaigiへの参加が決まっていました。 どうせ参加するなら何かしら発表したいです。 LTに応募したら通りました。 資料です。 speakerdeck.com 結論に被さるぐらいの勢いで銅鑼が鳴りました。 英語で発表 英語での発表にチャレ…

面白かったけど役に立てられる気がしないセッション #rubykaigi

Hijacking Ruby Syntax in Ruby Hijacking Ruby Syntax in Ruby from SATOSHI TAGOMORI クレイジーでした。Binding#local_variable_set や TracePoint を使ってRubyの言語仕様を拡張しようという趣旨です。 CRuby本体を拡張せずに、新文法のProof of concept…

印象に残ったセッション #rubykaigi

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拡張を作るためのプログラミング言語の話でした。 グルー…

仙台駅から国際センターまで歩く #rubykaigi

1.5kmぐらいですが、だらだらと見物しながら歩いて1時間ぐらいでした。 市街 街に歴史あり 大町西公園駅から広瀬川を渡る 主要部から徒歩圏内でこの景観 ゴール 伊達家の家臣のお家の跡にカンファレンスセンター

RubyKaigi 2018 参加に関するお金の話

弊社では、今年からRubyKaigi 2018への参加支援を始めました。 今年は3人の参加者がいます。 主にお金周りの準備の仕方のメモを残します。 参加費 参加者個人で申し込んで支払いました。 以下の文書で経費精算 doorkeeperからの支払い確認メール Paypalから…

redmine.tokyo 第13回勉強会勉強会参加録 #redmineT

redmine.tokyo に参加してLTしてきました。 speakerdeck.com 経緯 Redmine Wikiのツリー構造をドラッグ&ドロップで編集できるようになったので、ちょっと見てって pic.twitter.com/p0gC7XxKla— ぎゃばん (@ledsun) 2017年10月24日 Pluginを作ってツイッター…

RubyでつくるRuby 読書感想文

どんな本? RubyでつくるRuby ゼロから学びなおすプログラミング言語入門(紙書籍)www.lambdanote.com 言語処理系の実装を体験するための本。 言語処理系の実装はパーサの実装が面倒臭くて、大抵の人はそこで力尽きます。 そこで、パーサは著者の方が用意し…

道具としてのプログラミング、目的としてのプログラミング

プログラミングの学習曲線 プログラミングで世界を変えるということ 職業プログラマのすすめ Ruby on Railsの複雑度が問題? プログラミング研修の限界 まとめ プログラミングの学習曲線 Ruby on Railsはプログラミングではない! | それでも人は夢を見るの…

オブジェクト指向設計とは

オブジェクト指向という言葉には オブジェクト指向分析(OOA) オブジェクト指向設計(OOD) オブジェクト指向プログラミング(OOP) の三つの意味があります。 オブジェクト指向初心者泣かせです。 ここではオブジェクト指向設計を説明します。 ソフトウェアの設…

デザインパターン厨よ、これが黄金の回転だ

状態管理用の変数をインスタンスに持たせるなこのタコって話 に面白い機能追加とリファクタリングの例がありました。TDDに慣れ親しんだ身からすると、 「黄金の回転のリズム」 テストを書く テストが通る最低限のコードを書く リファクタリング に比べると、…

Windowsに複数バージョンのRubyをインストールする

Windows上に複数バージョンのRubyの動きを確認する環境を整えます。 RubyやRailsのバージョンにこだわらずに最新のRuby on Railsを使ってみたいならRails Installerを使った方が簡単です。 Rubyのインストール RubyインストーラーでRubyを入れる。 http://ru…

タイムゾーンの出力文字列 WindowsでRuby

Rubyでタイムゾーン文字列を出力したら日本語が表示された。 C:\Users\ledsun>irb irb(main):001:0> Time.now.strftime('%Z') => "東京 (標準時)" Rubyリファレンス タイムゾーンによると、Windows*1の場合「環境変数TZ」を設定すると「JST」と出力されるそ…

pik環境でDevKitをインストール WindowsでRuby

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 …