読者です 読者をやめる 読者になる 読者になる

冪等な更新処理の API エンドポイントでは PUT を使うとよさそう

API

結論 star や like を付与するような、冪等性を持つアクションのための API エンドポイントでも POST はよく使われる が、HTTP メソッドの意図を考慮すると、冪等な更新処理の API エンドポイントにアクセスするときの HTTP メソッドは、POST より PUT がよ…

2016 年ふりかえり

2016 年をふりかえらないと 2017 年が始まらないので、ハイライトでふりかえります。 上半期と下半期で在籍していた会社が違うので、そのくくりで分けてます。 上半期 個人活動 2015 年の秋ぐらいから触っていた Ruby で引き続き遊んでいました。 読書メータ…

Yokohama.rb Monthly Meetup #75 に参加した

2016-12-10(土)の Yokohama.rb Monthly Meetup #75 に参加しました。 yokohamarb.doorkeeper.jp 次の流れでした。 前半は Ruby レシピブック読書会 後半は LT 今回は、参加者の @Nabetani さんがすでにメモを書いてくださっています。僕もメモしておきます…

Ruby (on Rails) で使える enumeration 実装を比較してみた

こんにちは、GMO ペパボの人間です。これは pepabo Advent Calendar 2016 の 9 日目の記事です。 昨日は我らが CTL けんちゃんくんさんの 「gemビルドしようとして The validation error was 'yourgem-x.y.z contains itself (yourgem-x.y.z.gem), check you…

Ruby のテストカバレッジを Travis CI から Code Climate へ POST する方法が変わっていた

Travis CI 上で Rubygems のテストを実行して、テストカバレッジの集計結果を Code Climate へ POST するときにエラーが発生していたので、解決方法をメモしておきます。 エラー /home/travis/.rvm/rubies/ruby-2.0.0-p598/bin/ruby -I"lib:test" -I"/home/t…

hatenablog gem 0.5.0 をリリースした

Rubygem の hatenablog 0.5.0 をリリースしました。 github.com アップデート Hatenablog::Client.new にブロックを渡すことで認証情報を設定できるようにしました。 client = Hatenablog::Client.new do |config| config.consumer_key = '<consumer key>' config.consumer</consumer>…

Yokohama.rb Monthly Meetup #74 に参加した

2016-11-12(土)の Yokohama.rb Monthly Meetup #74 に参加しました。 yokohamarb.doorkeeper.jp 前半は Ruby レシピブック読書会 後半は LT という 7 月以来の流れでした。 レシピブック 今回はいつもより 30 分短かったこともあって、レシピ 238, 239 だ…

Fukuoka.rb #66 に参加した

現在、会社の研修で福岡に来ています。福岡には、地域 Ruby コミュニティとして Ruby コミッタの nagachika さんや弊社の udzura さんが主催されている Fukuoka.rb があります。今回、udzura さんに誘っていただき、10/12(水)に福岡・天神のグルーブノーツ…

hatenablog gem 0.4.0 をリリースした

Rubygem の hatenablog 0.4.0 をリリースしました。今回追加したのは Basic 認証ではてなブログの API を使えるようにする機能です。 github.com PR ありがとうございます! Basic 認証による利用方法 はてな API で Basic 認証による操作認可を得るには、AP…

読書メーター→ブクログ移行用スクリプトを書いた

読書メーターからブクログへ宗旨替えすることにしたので、データを移行したい気持ちになりました。 幸い、ブクログには CSV データによる読書データのインポート機能が備わっていたことと、私が以前読書メーターのスクレイピング gem である bookmeter_scrap…

hatenablog-writer 0.1.1 と hatenablog 0.3.0

今月は自分の gem にいくつか PR をいただいて新バージョンをリリースしました。PR をくださった方々、ありがとうございました。 hatenablog-writer 0.1.1 hatenablog-writer は CLI からはてなブログに投稿できるツールです。作ったきりほったらかしていた…

Ruby で順列の列挙を実装する

最近いろいろな人が次の本をやっているのを見かけるので、気になって読み進めてみています。 プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問作者: 増井敏克出版社/メーカー: 翔泳社発売日: 2015/10/14メディア: 単行本(ソフ…

Yokohama.rb Monthly Meetup #71 に参加した

2016-08-06(土)の Yokohama.rb Monthly Meetup #71 に参加しました。 yokohamarb.doorkeeper.jp 前半はもくもく会 後半は LT 2 本 吉田飯店で懇親会 という流れでした。今回も初参加の方が 2 名いらっしゃいました。 もくもく会 僕は次のようなことをやっ…

Itamae + Vagrant でステージング環境を構築しようとしている

ここ数日、構成管理ツールの練習と自作の Rails アプリケーションを本番に近い環境で動かせるようにすることを兼ねて、Itamae を使って Vagrant 上にステージング環境を作ろうとしています。 とりあえず、Rails で構築した自分の web サイトである kymmt.com…

Yokohama.rb Monthly Meetup #70 に参加した

2016-07-09(土)の Yokohama.rb Monthly Meetup #70 に参加しました。 yokohamarb.doorkeeper.jp 参加者は 8 人。内容は次のような感じでした。 レシピブック読書会 どう書く 吉田飯店で懇親会 レシピブック読書会 今回はレシピ 234 から 237 まで読みまし…

テキストの校正用に textlint を導入してみた

textlint は Markdown のようなテキスト向けの lint ツールです。テキストを静的解析し、あらかじめ決められたルールによって、テキスト上のミスや読みにくい点などを指摘してくれます。textlint は azu 氏によって JavaScript で開発されています。 textlin…

Yokohama.rb Monthly Meetup #69 に参加した

6/11(日)の Yokohama.rb Monthly Meetup #69 に参加しました。3 回目ぐらいです。 yokohamarb.doorkeeper.jp 今回は初参加の方が 4 人ほどいて、そのなかにはプログラミング始めたての学生の方もいました。行動力! 内容は次のような感じでした。 レシピブ…

RSpec 関連のメモ

FactoryGirl で association を持つオブジェクトの生成 例として、User, Category に次のように association を持たせているとします。 # app/models/user.rb class User < ActiveRecord::Base has_many :categories # ... end # app/models/category.rb cla…

『Everyday Rails - RSpec による Rails テスト入門』を読んだ

「テストのないコードはレガシーコード」という名言*1があります。自動化されたテストがあることで、コードの変更が正しいかどうかをすぐに判断できます。そして、すばやく正確にコードを改修できるようになります。 そんなテストを効率的に書くための Ruby …

Code Climate + Travis CI で gem のテストカバレッジを自動測定する

Code Climate は Git リポジトリからソースコードを読み込んで、品質診断をやってくれる SaaS です。例えば、静的解析として 循環的複雑度(ソースコードの複雑さを表す尺度) ソースコード中の処理/構造の重複数(コードクローン) などをソースコードごと…

Let's Encrypt で証明書取得 & Web サーバ HTTPS 化

2016-07-10 更新 Let's Encrypt を使って取得した SSL/TLS サーバ証明書によって、Rails を動かしている自分の Web サーバを HTTPS 化しました。こんな鍵アイコンが出ていると HTTPS 化されたサーバと通信できています。 HTTPS は次のような利点があります。…

Yokohama.rb Monthly Meetup #67

4/16(土)の Yokohama.rb Monthly Meetup #67 に参加しました。 yokohamarb.doorkeeper.jp 『Ruby レシピブック第 3 版』の読書会はレシピ 225 から 229 まで。「日付と時刻」の章が終わりました。おめでとうございます!次の章は「システムとプロセス」で…

自分の作った gem が活用されていた

先日、こんな Qiita のエントリを見つけました。 qiita.com はてなブログに投稿するためのエントリを GitHub の pull request 上でレビューして master にマージ後、CircleCI を使って、自動ではてなブログやはてなフォトライフに投稿するツールだそうです。…

ブログのドメインを独自ドメインに変えた

魔が差して、ブログのドメインを kymmt90.hatenablog.com → blog.kymmt.com に変えました。これは、はてなブログ Pro に課金したことを意味します。 ついでにブログ名も kymmt's note → blog.kymmt.com に変えました。 URL は http://blog.kymmt.com になり…

2016 年 3 月に読んだ本

先月読んだ本まとめです。 2016年3月の読書メーター読んだ本の数:8冊読んだページ数:1865ページナイス数:1ナイスWEB+DB PRESS Vol.91の感想読了日:3月27日 著者:ソフトウェアデザイン 2016年 04 月号 [雑誌]読了日:3月27日 著者:ヘルシープログラマ ―…

bookmeter_scraper 0.1.2

bookmeter_scraper を 0.1.2 にアップデートしました。 github.com bookmeter_scraper とは 以下の記事を参照してください。 kymmt90.hatenablog.com 追加機能 追加した機能は以下の二つです。 ブロック内でログイン情報設定 取得できる情報に書籍とユーザの…

Yokohama.rb Monthly Meetup #66 に参加した

3/13(土)の Yokohama.rb Monthly Meetup #66 に参加しました。今回が初参加でした。会場は東神奈川駅近くです。 yokohamarb.doorkeeper.jp 最初は一人ずつ自己紹介して、その後、前半と後半のセッションに分かれて、もくもくしたり読書会したり発表したり…

読書メータースクレイピング用の gem を書いた

読書メーターは読書記録をつけたり本のレビューを書いたりできる SNS 風味の Web サービスです。 今回、読書メーターの情報をスクレイピングして Ruby で扱えるようにするための gem を書きました。現状 v0.1.1 です。 kymmt90/bookmeter_scraper: A scrapin…

IRB の評価値出力を抑える

小ネタです。 問題 要素の多い Hash などの中身を確認するために、IRB (irb) を使って、その Hash の中身を表示したいときがあります。 このとき、例えば Mechanize::AGENT_ALIASES を表示するために、コマンドを irb(main):002:0> pp Mechanize::AGENT_ALIA…

2016 年 2 月に読んだ本

2016 年 2 月に読んだ本はこちら。読書メーターから。 2016年2月の読書メーター読んだ本の数:6冊読んだページ数:1270ページエンジニアとして世界の最前線で働く選択肢 ~渡米・面接・転職・キャリアアップ・レイオフ対策までの実践ガイド読了日:2月29日 著…

『メタプログラミング Ruby 第 2 版』を読んだ

数週間前になりますが『メタプログラミング Ruby 第 2 版』を読みました。 メタプログラミングRuby 第2版作者: Paolo Perrotta,角征典出版社/メーカー: オライリージャパン発売日: 2015/10/10メディア: 大型本この商品を含むブログ (2件) を見る Ruby でのメ…

Webmock でリダイレクトが絡む HTTP 通信をスタブ化する

テストのために、リダイレクトが絡む HTTP 通信をスタブ化したい場合があります。 例えば、Web スクレイピングをするときに、Mechanize を使うと以下のようにログイン処理を書けます。HTTPS になっていないとかは気にしないでください。 require 'mechanize'…

2016 年 1 月に読んだ本

読書メーターのまとめ機能を使ったことなかったので使ってみるテスト。 先月分の読了本へのリンクを HTML にまとめるだけというシンプル機能だった。 2016年1月の読書メーター読んだ本の数:8冊読んだページ数:1697ページナイス数:0ナイス人月の神話【新装…

Rails 4.1 以降のアプリを Heroku デプロイ時に Internal Server Error が発生したら

問題 Rails 4.1 以降のアプリを $ git push heroku master $ heroku open で Heroku へのデプロイとアプリへのアクセスをおこなうと、Internal Server Error が発生し、以下のメッセージが表示されることがあります。 app error: Missing secret_key_base fo…

2015 年まとめ

早いもので、もう 2015 年も終わります。自分用記録として 2015 年をまとめます。 2015 年にやったこと 今年は以下のようなことを習得したり、それを生かしてなにか作ったりしていました。 オブジェクト指向設計 Java 8 Ruby Rails JavaScript 上半期 オブジ…

Ruby でメソッド呼び出しのフック処理を実行する

問題 Ruby でなんらかのメソッドを呼び出しにともなって、特定の処理を実行したい場合、つまり、メソッド呼び出しのフック処理を実行したい状況を考えます。 解決法 エイリアスチェイニングという方法で実現します。エイリアスチェイニングについては、『Eff…

『Ruby のしくみ』を読んだ

『Ruby のしくみ』という本を読みました。 Rubyのしくみ -Ruby Under a Microscope-作者: Pat Shaughnessy,島田浩二,角谷信太郎出版社/メーカー: オーム社発売日: 2014/11/29メディア: 単行本(ソフトカバー)この商品を含むブログ (4件) を見る この本は XP…

はてなブログライターを作った

はてなブログに CLI で投稿できるはてなブログライター (0.1.0) を Ruby で作ってみました。 kymmt90/hatenablog-writer 概要 ローカルの Markdown ファイルの内容をはてなブログへ投稿します。 $ vi foo.md タイトル 1 # 2 行目は空白にする ここが内容です…

はてなブログ API 用の gem を書いた

はじめに はてなブログの AtomPub API 用の Ruby gem が意外にも存在しなかったので書きました。 kymmt90/hatenablog hatenablog | RubyGems.org | your community gem host 概要 Ruby スクリプトから、はてなブログのエントリ取得やブログへの投稿ができる…

Ruby ではてな OAuth のアクセストークンを取得する

はじめに はてなのサービスの API を自作のアプリケーションなどから叩くためには、OAuth というプロトコルを通じて、そのアプリケーションに適切な認可を与える必要があります。 最近 Ruby を触り始め、Ruby ではてなブログの API を叩きたくなりました。そ…

JUnit プロジェクトに寄付した

@t_wada さんのツイートで知った JUnit プロジェクトファンディングの件。 JUnit がクラウドファンディングで援助を求めている。現在フルタイムのメンテナがおらず、 issue 解決や Java8 対応 (特にラムダ式) の余力が無い。現時点の JUnit の問題点や将来像…

XP 祭り 2015 に行った

2015/9/12(土)に XP 祭り 2015 に行ってきました。場所は早稲田大学西早稲田キャンパスでした。 参加したセッション オープニング XP lives, XP dies, XP lives again!! スライド "俺"も XP 入門 スライド アジャイルとアンラーニング スライド TDD ライブ…

Emacs をアップデートしたあとは cask update を実行する

当たり前の話ですが一応メモ。 Emacs をいまさらながら 24.4 から 24.5 にアップデートしました。アップデートしたあとに Emacs を起動するとこんなエラーメッセージが出て init.el がちゃんと読み込めませんでした。 File error: Cannot open load file, no…

Happy Hacking Keyboard Professional JP を購入した

環境改善したいという機運が高まりつつあり、Happy Hacking Keyboard (HHKB) Professional JP を買いました。墨色です。 HHKB Professional JP にした理由、使用感などをメモしておきます(※個人の感想です)。 Professional JP にした理由 これは単純で、現…

鈍器を購入した

読みます。 参考文献 オブジェクト指向入門 第2版 原則・コンセプト (IT Architect’Archive クラシックモダン・コンピューティング)作者: バートランド・メイヤー,酒匂寛出版社/メーカー: 翔泳社発売日: 2007/01/10メディア: 単行本(ソフトカバー)購入: 11…

YAPC::Asia Tokyo 2015 に行った

「家に帰ってブログに書くまでが YAPC」 2015 年 8 月 22 日(土)に YAPC::Asia Tokyo 2015 (2 日目)に行ってきました。実は初めての IT 系のイベント出席でした。また、惜しくも YAPC::Asia Tokyo は今年で一旦終わりとなるため、これが私にとっては最初…

『オブジェクトデザイン』読書メモ:第 6 章「制御スタイル」

これまでの分(第 1 〜 5 章)はこちら。 『オブジェクトデザイン』読書メモ:第 1 章「設計概念」 『オブジェクトデザイン』読書メモ:第 2 章「責務駆動設計」 『オブジェクトデザイン』読書メモ:第 3 章「オブジェクトを見つける」 『オブジェクトデザイ…

情報セキュリティスペシャリスト試験に合格した

2015 年春の IPA 情報セキュリティスペシャリスト試験 (SC) に合格しました。 点数は以下のような感じでした。2013 年秋の応用情報技術者合格の効力で、今回は午前 I は受けてないです。中の上。 勉強は、まず、午前問題対策として、以下の本の知識編で知識…

『オブジェクトデザイン』読書メモ:第 5 章「コラボレーション」

これまでの分(第 1 〜 4 章)はこちら。 『オブジェクトデザイン』読書メモ:第 1 章「設計概念」 『オブジェクトデザイン』読書メモ:第 2 章「責務駆動設計」 『オブジェクトデザイン』読書メモ:第 3 章「オブジェクトを見つける」 『オブジェクトデザイ…

『オブジェクトデザイン』読書メモ:第 4 章「責務」

これまでの分(第 1 〜 3 章)はこちら。 『オブジェクトデザイン』読書メモ:第 1 章「設計概念」 『オブジェクトデザイン』読書メモ:第 2 章「責務駆動設計」 『オブジェクトデザイン』読書メモ:第 3 章「オブジェクトを見つける」 前回の章まででは、オ…