kakakakakku blog

Weekly Tech Blog: Keep on Learning!

Ruby

プログラミング初心者だけじゃなくプログラミング講師も読むべき一冊だった /「ゼロからわかる Ruby 超入門」を読んだ

11月末に発売された「ゼロからわかる Ruby 超入門」を読んだ.最近まで2年ほどプログラミング講師として Ruby / Ruby on Rails を教えていたので,プログラミング初心者に教えるノウハウが得られたら良いなと考えていた.そして本書は「本当にプログラミング…

Rubyist が学び合うカンファレンス「Rails Developers Meetup 2018 Day 4」に参加した

12/8 (土) に開催された「Rails Developers Meetup 2018 Day 4 Nouvelle Vague」に参加した.イベント名に「Rails」と付いているものの,トークテーマは多岐にわたり,エンジニアなら誰でも楽しめるように工夫されていた.また YouTube ライブ配信もあり,リ…

プログラミング初心者に教えるときは「身近な比喩」が重要なのだ!

今日は「Rails Developers Meetup 2018 Day 4 Nouvelle Vague」に参加し,教育関連のネタで登壇をしてきた!パブリックイベントに登壇するのは約半年振りで,やはり登壇するのは楽しいなぁー!という気持ちになった.あと登壇前に司会者から「ブロガーの吉田…

「プログラミング初心者に Rails を教えるコツ」を発表した

昨日は「表参道.rb #30」に参加して,発表をしてきた.カジュアルな雰囲気で,ディスカッションも多くとても良かった. omotesandorb.connpass.com 資料 今日は「プログラミング初心者に Rails を教えるコツ」というタイトルにした.技術的な話ではないけど…

「プロを目指す人のための Ruby 入門」を読んで Ruby を学び直した

11月末に出版された「プロを目指す人のための Ruby 入門」を読んだ.12月は少しバタバタしていて,読むのが遅くなってしまったけど,以下の企画に応募をしたら当選した.ありがとうございます blog.jnito.com はじめに 本書はタイトルに「入門」と書いてある…

Unsplash API (unsplash_rb) を試した

写真サービスだと Unsplash が大好きで,気分転換に見ることも多いし,発表資料の背景写真はほとんど Unsplash から引っ張ってきている.全ての写真を自由に使えるし,シンプルなサービスながら,非常にクオリティが高い. Unsplash 関連ツール 公式で Chrom…

AWS SDK for Ruby で S3 の暗号化(サーバサイド/クライアントサイド)を試してみた

S3 でオブジェクトの暗号化を検討する場合,大きく2種類ある. サーバサイド暗号化 暗号化/複合を AWS 側に任せる サーバー側の暗号化を使用したデータの保護 - Amazon Simple Storage Service クライアントサイド暗号化 暗号化/複合を自前で行う クライア…

rbenv plugin としてインストールした ruby-build が動かないときは ${RBENV_ROOT} を疑う

とある Ruby 環境(長年稼働している)で以前から rbenv + ruby-build の挙動が微妙で,このまま放置するのはダメだろう!と勝手に奮起して調べてみた. 結論から言うと /etc/profile に RBENV_ROOT の設定がされていて悪さをしていた.RBENV_ROOT の存在に…

Hologram でスタイルガイドを自動生成してみた

ペパボテックカンファレンスで知った Hologram をさっそく試してみた.Hologram を一言で表現すると「CSS のスタイルガイドを自動生成するツール」のこと.Ruby で書かれてるので,困ったら直せそうだし良さそう. Hologram 以外にも 結構イロイロある.最近…

migration_comments + annotate で MySQL のカラムコメントを管理する

今まで MySQL のカラムにコメントを付ける習慣がなかったんだけど,いざ新メンバーとして既存コードを読んで理解する立場になってみると,ちゃんと書かれたコメントのおかげでスキーマを理解しやすかったし,メンバー間の認識相違も生まれないし,重要だなと…

Ruby で Unix Time を扱う

Unix Time を見ても日付わからん! 変換サイトもあるけど pry で確認する方が手軽だし試してみた. ➜ ~ pry [1] pry(main)> Time.now.to_i 1441628493 [2] pry(main)> Time.at(1441628493) 2015-09-07 21:21:33 +0900 [3] pry(main)> Time.parse('2015-09-07…

Marvel Comics API っていう神 API を発見した

Marvel のキャラクター名を指定したらイメージ画像が返ってくるっていう簡単なスクリプトを自分で書いたんだけど(クローリングで),いろいろ調べてたら Marvel Comics API っていう API を発見して,マジで Marvel 神じゃん!ってなってた. Marvel Develo…

Elasticsearch のノード名と Marvel のキャラクター一覧を比較してみた

Elasticsearch のノード名はデフォルトだと "Iron Man" や "X-Man" などアメコミのキャラクター名が自動的に設定されるようになっていて,実際にコードを見たら2825種類の候補の中から選ばれるようになっていた. elasticsearch/names.txt at master · elast…

表参道.rb #3 に参加してベンチマークの重要性を学んだ

昨日は 表参道.rb #3 に参加してきた! 会場を間違えて隣のマンションで迷ってたのは禁句www omotesandorb.connpass.com 表参道.rb と僕 表参道.rb #1 以来の参加で,そのときは LT をしたりした. kakakakakku.hatenablog.com 参加レポート 既に参加レポー…

O'Reilly 本を全冊買うと144万円?

O'Reilly 本を全冊買って動物園にしたら最高だよなー!(夢) Cygames 社に続いて全冊買った記事が昨日バズってたけど総額が書いてなかったので雑に集計してみた. もしかしたら全冊割引的なアレで総額を公表できないのかもしれないけど! O'Reilly Japan - …

Faker のコードを読んだりテストを直したり

Faker::Company.name で企業名を生成する GitHub - stympy/faker: A library for generating fake data such as names, addresses, and phone numbers. FactoryGirl でテストデータを生成するときに Faker を使ってるんだけど,企業名を Faker::Company.name…

auto_strip_attributes を紙でコードリーディングしてみた

Rails でフォームのテキストフィールドを保存するときに 先頭の半角スペース / 全角スペース 末尾の半角スペース / 全角スペース を自動で除去したいという要求があった. 別に Gem を使うまでもなく実現できそうだけど,調べたところ auto_strip_attributes…

Ruby Gold に合格するなら必読本だと思う /「Effective Ruby」を読んだ

Ruby 関連だと最近は Metaprogramming Ruby 2 を読んだり,Ruby Gold に合格したり,表参道.rb で LT したりしてるんだけど,今さらながら Effective Ruby を読んだら最高すぎてビックリした.実は6月末には読み終わってたんだけど,少しバタバタしててまと…

send_data でダウンロードするファイル名をテストする

Rails で send_data を使って CSV ダウンロードを実装してて,ダウンロードする CSV ファイル名を Capybara でテストしたかった. response_headers から取れる こんな感じで書けた. 実際には 'attachment; filename="xxx.csv"' ってなってるから eq ではな…

Rails で簡単に PV を計測できる impressionist を触ってみた

impressionist Rails で簡単に PV を計測できる Gem の impressionist を触ってみた. README にも書いてある通り,Google Analytics などの計測ツールを使わなくても自前で PV を集計できる点がメリット.逆に複雑な分析をしたかったり,高トラフィックなサ…

表参道.rb #1 で Ruby 資格ネタの LT をしてきた

今日は「表参道.rb #1」に参加してきた! LT 大会 + 懇親会って感じで凄く勉強になったー.楽しかったー. 開場提供の Sansan 様ありがとうございました!オシャレな空間でビックリしました! omotesandorb.connpass.com LT した 誰得な気がするけど Ruby Go…

Ruby Association Certified Ruby Programmer Gold version 2.1 に合格した

Ruby Association Certified Ruby Programmer Gold version 2.1 に合格した!5月の目標に掲げてたから達成できて良かった! 対策方法などを簡単にまとめておこうと思う. ちなみに累計で33個目の資格!今年は既に3個目だし結構ペース良い感じ. github.com …

Module#prepend で継承チェーンを入れ替える

昨日は時間を捻出できなくてブログを書けなかった!継続日数は13日でストップ!まぁ継続日数を目標にしてるわけではないし,引き続き学びがあったら少しでもアウトプットできるように頑張ろうと思う. Module#prepend 引き続き Ruby Gold の対策をしていて,…

Enumerable#lazy で無限大のリストを扱う

今回 Ruby Gold 2.1 を受験するので,Ruby 1.8 から Ruby 2.1 で追加された機能を勉強しておく必要がある. 詳しくは Ruby Association から出てる以下の PDF に書いてあるのでしっかりと理解する. Ruby技術者認定試験改訂のお知らせ Enumerable#lazy PDF …

Capybara で非表示要素を find する

Capybara で style="display: none;" になってる非表示要素を取ろうとしたら Capybara::ElementNotFound になって困った. 結論から言うと,自分の Capybara の環境設定だと非表示要素は無視されるようになってた. visible: false で見れるようになった こ…

.freeze 関連の問題は Object.object_id を意識して解く

Ruby Gold の .freeze に関する問題でよく考えればわかるのに間違えた!早とちり厳禁! array = [1, 2, 3].freeze array += [4, 5] p array # >> [1, 2, 3, 4, 5] object_id で確認する .freeze してるのに操作しようとしてるから「例外発生でしょ!」って思…

Ruby の Array.new を size と val で初期化する

今日も Ruby Gold のサンプル問題を解いてて,Array.new の挙動で知らなかったところがあった! 問題 (2015年4月8日) ITトレメ Ruby技術者認定【Gold】試験 − @IT自分戦略研究所 ary = Array.new(3, "a") ary[0].next! p ary # >> ["b", "b", "b"] Array.…

Ruby の alias は評価時点の定義のまま残る

Ruby Gold のサンプル問題を解いてて alias の挙動に関する問題を間違えたので動作確認をした. ITトレメ Ruby技術者認定【Gold】試験 − @IT自分戦略研究所 class Foo def foo "foo" end end class Bar < Foo def foo super + "bar" end alias bar foo unde…

メタプロは魔術だ /「Metaprogramming Ruby 2 - Part 1. Metaprogramming Ruby」を読んだ

4月から Metaprogramming Ruby 2 を読んでて,やっと Part 1. Metaprogramming Ruby まで読み終えたので簡単にまとめる.引き続き Part 2. Metaprogramming in Rails を読む. ここまで読んで,今まで「何となく Ruby を書いてた」自分に気付くことができた…

Stomp で ActiveMQ から Subscribe する簡易スクリプト

Stomp Stomp を使うと Ruby で ActiveMQ などの Queue でメッセージングを行える. stompgem/stompgithub.com ActiveMQ 管理画面 ActiveMQ をインストールすると管理画面も一緒に入ってて,以下の URL でメッセージングの状態を確認できる. Publish した後…