「プロを目指す人のための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…

2年ぶりに dotfiles を更新した

sinsoku/dotfiles を2年ぶりくらいに更新した。 更新した理由 MacBook 12inch を買ったことにより、バッグが軽くなった。そして、財布もだいぶ軽くなった— 神速@リリカルエンジニア (@sinsoku_listy) 2016年11月2日 先日、MacBook 2016 を買ってしまったから…

速習プログラミングElixir勉強会を主催してました #quick_elixir

10月末くらいから Elixir の勉強会を主催していて、今日で一通り終わりました。 connpass.com 資料 今日のLT資料は Qiita に上げた。 Elixir のマクロとプロセスの関係 この勉強会を開催したきっかけ 10月にプログラミングElixir を買ったけど、積み本になり…

Elixir で Sleep Sort を実装する

タイトルの通り、 Sleep Sort を実装してみました。 Elixir の並行プログラミングを生かしているけど、全く実用的じゃないソートですね! defmodule SleepSort do def sort(collection) do me = self collection |> Enum.map(fn (n) -> spawn_link fn -> (se…

factory girl で特定のメソッドを rspec-mock の stub で潰す

備忘録。 外部APIを呼ぶメソッド、処理に時間のかかるメソッドなど、普段のテストでは不要であるメソッドは factory 側で潰すと楽。 FactoryGirl.define do factory :user do transient do stubs [:call_external_api] end after :build do |user, evaluator…

8月に購入したバルドハート、テイルズオブベルセリアをクリアした

8月末に発売された「BALDR HEART バルドハート (PC 18禁ゲーム)」と「テイルズオブベルセリア(PS3)」を最近やっとクリアできたので、たまにはゲームの感想でもブログに書いてみる。 Qiita と違ってこういう記事書いても非公開にならないので、はてなブログは…

Rails で gem を導入するときに最低限やること

普通にみんなやっていることだと思うけど、自分が gem を入れるときに最低限やることをまとめてみた。 何かしらの方法で探してきた gem を「導入するかどうか」の判断をするときにやることです。 やること一覧 今後もメンテされそうかを調べる README を 全…

rake notes で TODO が増え過ぎたら CI で検知できるように拡張する

Rails アプリから機能を gem 化する方法の実例を1つ公開してみる。 sinsoku.hatenablog.com rake notes を拡張する rake notes で Rails アプリ内の "OPTIMIZE|FIXME|TODO" を一覧表示できるが、これを拡張する。 ソースコードの探し方 rails/rails のリポジ…

Rails アプリから汎用的な機能を gem 化する方法

これから Rails 用の gem を作ってみたい人向けの内容。 gem 化する 実は下記のようなコードを置くだけで RubyGems に登録しなくても、 gem として認識される。 Gemfile gem 'hello_world', path: 'lib/hello_world' lib/hello_world/hello_world.gemspec # …

Rails の timestamps カラム(created_at, updated_at) と別に日時カラムを作る理由が分からん

Rails を使っていて、日時カラムを作るケースがありますが、あれのメリットが知りたいと思って、ブログに書いてみた。 created_at を使わず、あえて自分達で 別のカラムに https://t.co/BzSE87AzJJ を保存する実装にする意味が分からん…。非同期処理で時間が…

Rails の link_to_if にブロックを渡したときの挙動が分かりにくいので注意

Rails の link_to_if にブロックを渡したときの挙動が分かりづらいので、使う場合の注意点をまとめてみました。 TL;DR ブロックの内容を条件によってリンクにしたい場合は capture を使うのがシンプルで良いです。 <% body = capture do %> <%= image_tag 'i…

tachikoma_ai を v0.3.0 にアップデートしました #mokumoku_onsen

7/16(土)〜18(月)の2泊3日で開発合宿に参加していて、前々からやりたかった tachikoma_ai の gem のアップデートをしました。 開発合宿について、詳しくは id:niwatako さんが記事を書かれているので、興味ある方はそちらを参照して下さい。 niwatako.hatena…

Swift でトランプを実装しようとして、勉強になってる話

まだ全然実装できていないけど、とても勉強になっているので途中経過をブログに書いてみる。 github.com なぜやっているのか トランプくらい簡単に実装できる・・・そう思っていた時期が(ry 環境 Swift 3.0-dev on Docker swiftdocker/docker-swift この…

Swift で Generics を使って Comparable の挙動を変更する

昨日の続きを調べて、一応やりたかったことは実現できたのでブログにも書いておく。 sinsoku.hatenablog.com サンプルコード gist のコードの通りだけど、 Generics を使ってクラスの初期化時に Comparable に使う struct を渡せるようにしている。 こうやっ…