ActiveRecord の where.not とド・モルガンの法則

where.not を使っていて遭遇した問題についてrailsdmの懇親会で話していたら、@kamipo さんから「5.2では少し直っている」という情報を頂いた。 この話をしているときに思ったけど、今の where.not の問題点について知らない人も多そうなので、せっかくなの…

Railsアプリの育て方という発表をしました #railsdm

Rails Developers Meetup 2018 Day 1で「Railsアプリの育て方」という発表をしました。 railsdm.github.io 発表資料 余談 本当は4月から放送されるシュタインズゲートゼロみたいな流れにしたかったけど、ちょっと上手く話の流れを作れなかったので、今回は普…

Step-to-Rails-Expert.rb#17 に参加した #StepRailsEx

ToDo アプリを題材にして、参加者で相互レビューする勉強会。 step-to-rails-expert-rb.connpass.com コード持ち込んだ 今までサボっていたので、今回は課題を解いて持ち込んでみた。 github.com Ruby/Rails のアップグレードなどが含まれている関係で、変更…

AWS EC2 上に Rails の開発環境を構築する

Rails アプリの開発環境じゃなくて、 rails/rails にプルリクを送るための開発環境を作る方法です。 rails-dev-box について Rails には Contributing to Ruby on Rails guide というドキュメントがあり、 誰でも簡単に開発環境を作ることができます。 5.1.1…

面接で現年収(前職の年収)を聞かれるのが嫌い

転職活動で面接に行くと、だいたいどの会社も現年収を聞いてくる。 この文化が本当に嫌いなので、その気持ちをブログにまとめてみた。 最近の Twitter のツイートまとめ だいたいどの会社も現年収を聞いてくるけど、これ本当に無くなって欲しいな...。現年収…

Rails 5.2 の Credentials で diff を復号化してから比較する

先日、こんなブログを書きました。 sinsoku.hatenablog.com この gem の機能に「diff を平文で表示できる」というものがあるけど、 gem 無くても実現出来ちゃったので紹介する。 1. 復号化するスクリプトを用意する bin/decrypt を用意する。 #!/usr/bin/env…

Rails の Issue とプルリクを毎日読むと勉強になる

最近やっているけど、これ良い勉強になっているのでブログで紹介する。 読むようになったきっかけ 先月、永和システムマネジメントさんのOSSパッチ会に参加しました。 agile.esm.co.jp この会の懇親会では Rails の Issue やプルリクの話題が多く出ました。 …

Rails 5.2 の Credentials を各環境でも使えるようにする gem を作りました

Rails 5.2 で追加される Credentials 機能を development, test, staging などで使えるようにする gem を作ったので紹介します。 github.com Rails 5.2 の Credentials とは? API token やパスワードなどの情報を暗号化し、リポジトリで管理できるようにす…

2月末に株式会社groovesを退職します

2018年2月末に株式会社groovesを辞めます。 おそらく、退職エントリってやつです。 株式会社groovesでやってきたこと Forkwellの開発を担当していました。サービスの詳細はリンク先を読んで頂くとして、私が主に関わっていたのは下記の2つです。 Forkwell Jo…

git-worktree を使って時間のかかる処理を別の作業ディレクトリで行う

git

時間のかかる処理の実行中、別の作業を進められるようにする方法。備忘録。 時間のかかる処理の例 テストの実行中 デプロイの実行中 など。 git-worktree を使う 簡単に作業ディレクトリを増やせる。 $ cd ~/works/app $ git worktree add ~/works/app_deplo…

Git を少しでも高速、安全に使う方法を紹介

git

はてブを眺めてたら、なんか Git の記事がバズってたので、便乗して Git の話を書いてみた。 Oh, shit, git! http://ohshitgit.com/ 「Oh shit, git!」を簡単に和訳してみた。(追記あり) - Qiita https://qiita.com/KaminoHiroki/items/391fb421e94e82c00128…

「Randomly Failing Specs」という内容でLTしました #railsdm

資料は Slide Share で公開しています。 Randomly Failing Specs from sinsoku listy www.slideshare.net 話したかったこと 時間切れで全く話せていませんでしたが、本当は「 sleep 使わずに直しましょう」って事が伝えたかった。 資料の作り方や発表内容で…

Rails クイズ: 次のコードで rollback されるのはどれでしょう?

先日、仕事のコードで遭遇して「なんだこの動き...」と思ったので、ブログに書いておく。 Rails クイズ: 次のコードで rollback されるのはどれでしょう?(配点10点) 常にバリデーションエラーになるモデル Bomb と no 属性によってコールバックを制御できる…

「プロを目指す人のためのRuby入門」を読んだ感想

一応、お仕事で Ruby やっているプロだけど、本の内容が気になったので買ってみました。 昨日、先行販売している紀伊國屋書展 新宿本店で購入(正式発売日は11月25日)。 新宿紀伊国屋は残り2冊だった。危ない。ギリギリだったけど、なんとかプロになれそう…

#技術書典3 でサークル参加したことのふりかえり

先日、ブログに書いたように技術書典3にサークル参加していたので、そのふりかえりをブログに書いておく。 sinsoku.hatenablog.com 同人誌を作成した環境 Re:VIEW Docker textlint CircleCI Re:VIEW + Docker を使用して pdf を作成する環境を作りました。 C…

#技術書典3 で「Clean Code for Rails」という本を頒布します

10月22日(日) の秋葉原UDXで開催される技術書典3にて、Railsの同人誌を頒布します。 サークル名は「う07 Tech翠屋」で、頒布価格は1,000円です。 表紙 目次 内容について Rails でアプリケーション開発する上で基本的なこと、中規模以上になると起きがちな事…

2013〜2017年の RubyKaigi スポンサーの一覧を調べるスクリプトを書いてみた #rubykaigi

#rubykaigi のツイートを眺めていたら、会社から補助が出てそうな方々のツイートを見かけて、タイトルの件を思いついたので、雑にスクリプトを書いてみた。 RubyKaigi のスポンサー企業であれば、おそらく参加費補助や3日間休むことに理解あるところが多いん…

Ruby で簡単に既存メソッドの前後に処理を挟み込む方法

自分用の備忘録。このコード、ブログに書いておかないと忘れそうなので… やりたかったこと RubyKaigi の型の話を聞いて、「メソッドの実行を上書きして、引数の型を読み取る」ってことができないかなと思いついて実装したコード。 コード 既存の出力を { ...…

Git のブランチには説明をつけることができる

git

このツイートの通りです。 git branch --edit-description [<branchname>] でブランチにメモが付けられる!そして、 git config branch.<branchname>.description で表示できる!使い所は知らない! https://t.co/xt2P7MdUYa— 神速@リリカルエンジニア (@sinsoku_listy) 2017年9月12</branchname></branchname>…

2017年 OmniAuth で Qiita 連携を作る際の現状まとめ

Rails で OAuth 連携の機能を作う場合、一般的に OmniAuth を使うことになります。 そして、 OmniAuth の Qiita Strategy が3つあったので、それぞれ状況をまとめました。 各 gem の概要 GitHub rubygems version work? tmiyamon/omniauth_qiita omniauth_qi…

Ruby/Rails の勉強方法について #omotesandorb

6/1(木) の表参道.rb でLTしてきました。 omotesandorb.connpass.com 資料 「他人がどうやって Ruby/Rails を学んできたのか?」って意外と聞く機会は無いと思うので、自分のふりかえりも兼ねて発表してみました。資料は Qiita で公開してます。 qiita.com …

Tor: Hidden Service Protocol に対応した Mastodon インスタンスを立てた

巷で話題のマストドンのインスタンスを立ててみました。 インスタンス概要 タイトルにもあるように、Tor の Hidden Service に対応してます。*1 http://xmstdn2w5vvvd747.onion 普通のドメインもあるので、 Tor を使わない人はこちらをどうぞ。 https://xmst…

Rails アンチパターン - 錆びついたファクトリー (factory_girl)

技術書典は書く側で参加したい気持ちはあるけど、書くネタと書く時間があるかどうか…— 神速@リリカルエンジニア (@sinsoku_listy) 2017年4月9日 あー、自分の知ってるRailsアンチパターンとか書きたいかも。自分の犯した罪(アンチパターン)を贖罪したい…。— …

個人 Rails アプリを CircleCI 2.0 で動くようにした

CircleCI 2.0 が使えるようになっていたので、アップグレードしておいた。 CircleCI の設定 今まで circle.yml だったけど、 .circleci/config.yml に変わっている。 Ruby の設定例は Language Guide: Ruby があるので、これを参考にすると良い。 version: 2…

Docker を使って Rust に入門してみた

前々から Rust の良いと聞いていたので、ちょっと入門してみた。 Rust に入門した https://t.co/UfBJ6c1i9C— 神速@リリカルエンジニア (@sinsoku_listy) 2017年2月27日 参考のサイト 公式の プログラミング言語Rust が分かりやすそうなので、これを見ながら…

bundler_diffgems という gem を作りました #speee_lounge

2/18(土) と 2/25(土) に Speee さんのもくもく会に参加して、 gem が出来たので紹介。 speee.connpass.com bundler_diffgems bundler_diffgems は bundle update を支援するための CLI ツールで、GitHub の比較URL を簡単に表示できます。*1 インストール方…

名古屋Ruby会議03に参加した #nagoyark03

2/11(土) に 名古屋Ruby会議03 に参加してました。 感想 良かった 会場が大須演芸場ってこともあり、他のイベントと雰囲気が異なっていてとても良かったです。 #nagoyark03 を見ると雰囲気がわかると思います。 発表者の口調もなんか落語っぽい感じになって…

転職DRAFTの友達紹介でオライリー本が貰えるのはいつなのか?

転職DRAFT は友達を紹介する(もしくは紹介される)とオライリー本が貰えます。 ただ、7月くらいに 友達の紹介 で登録して、更に8月に 友達を紹介 したのですが、まだ1冊しか頂けていない。 発送時期について TOP に紹介キャンペーンについては書かれていま…

paiza.IO から paiza.IO API を使って再帰呼び出しを書こうとして動かなかった話

タイトルの通りだけど paiza.IO API を見つけた時にふと思い浮かんだので試してみた。 まぁ、これ動いちゃったら paiza.IO のリソースを使い潰せるので、ちゃんと対策してるんだろうなー。 コード 1 FizzBuzz です。途中にある p はデバッグ目的のやつ。 req…

Docker Remote API を使ってコンテナを起動させてみた

Docker Remote API を触って、簡単なコマンドを実行してみた。 実行環境 $ docker --version Docker version 1.12.1, build 6f9534c API ドキュメント docs.docker.com コンテナの作成 $ curl -v -X POST \ --unix-socket /var/run/docker.sock \ -H "Conten…