$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

2015-08-01から1ヶ月間の記事一覧

ScalaのOptionとEitherで例外処理を行う方法

Scalaの例外処理はOptionとかEitherを利用するっぽいんだけど、調べてもいまいちその使い方が分からなかった。いろいろやってみたところ、だいぶ分かってきたので、後から自分で読み返せるようにメモ。 Optionを利用する Optionは値があるかないかわからない…

Amazon SESとSNSを利用してバウンスメールを自動的にハンドリングする

メールを送るアプリケーションを作成していると、使われていないメールアドレスで登録された時や、携帯のメールアドレス変更によって登録されているメールアドレスが使えない状態になって、メール送信時にバウンスメールとして返ってくることがある。この時…

Scalaスケーラブルプログラミングを読んだ

Scalaの勉強をしたかったので読んだ。Scalaスケーラブルプログラミング第2版作者:Martin Odersky,Lex Spoon,Bill VennersインプレスAmazonこの本はScalaの利用について、かなり詳しく書かれている本。Scalaの使い方にとどまらず、Scalaの内部についても触れ…

scalaでcase classをエイリアスする

Scalaではクラスをエイリアスしたいときはtypeというキーワードを利用する。 class Hoge() { def print(): Unit = { println("hoge") } } type Fuga = Hoge val fuga = new Fuga() fuga.print() しかしこのやり方だけではcase classのエイリアスは出来ない。…

#yapcasia 2015に参加しました

今年もYAPC::Asia 2015に参加しました。今年のYAPCも非常に面白いトークが多く、またいろいろな人と会話でき、非常に楽しめた。トークとしては、Effective ES6、Perlの上にも三年 〜 ずっとイケてるサービスを作り続ける技術 〜 、3分でサービスのOSを入れ替…

gitでpush前のcommitの一覧をリスト記法で取得する

github上でコードレビューをされた時、あるコメントに対する変更点を列挙して、「こういうふうに直しました」と言いたい時がある。こういう時にpush前のcommitをリスト記法で貼り付けたい。なんか出来ないかなと思ったら、以下のようにしたら出来た。 $ git …

変更した箇所だけTest::UsedModulesで不要なuseを検知する

blog.shibayu36.org以前こんなブログを書いたが、やはりCIでチェックしたいと考えた。全ファイルをチェックしようとすると時間がかかってしまうので毎回のテストでは実行したくない。しかし、毎回のテストで実行しないと結局はmerge前に検出するのが難しくな…

Test::Time::AtというCPANモジュールをリリースしました

社内でテスト時の時間操作を便利にするTest::Time::At というモジュールがあったので、それをCPAN化してリリースしました。テスト中の時間を止めて、sleepなどの操作をうまくハンドリングしてくれるモジュールにはTest::Time というモジュールがあります。こ…

Emacsで今編集しているPerlコードの無駄なuseを見つける

blog.shibayu36.org昨日作成したこの機能だが、結局やりたいことは今リファクタリングしたファイルで無駄なuseをしているものを消したいので、サクッと無駄なuseを抽出したいということだった。ということで現在編集中のファイルに対して、無駄なuseをしてい…

Perlで、あるファイルが必要のないモジュールをuseしてないか調べるスクリプト

Test::UsedModulesを使うと使っていないモジュールを検出できる。ユーティリティとしてリファクタリングのあとに、必要なくなったuseをサクッと調べられると、便利なのじゃないかと考えてcheck-perl-used-modulesというコマンドを作ってみた。check-perl-use…

Emacsを24.5に上げたらmarkdown-modeのインデントがおかしくなった

Emacsを24.3から24.5に上げたら、markdown-modeのインデントがおかしくなったのでメモ。 現象 リスト記法を使っている時に - hoge - fuga みたいに書くと思うのだけど、この時にfugaの行末からreturnを押すと - hoge - fuga のようになってしまって非常に使…