Magnolia Tech

techっぽいことを書くブログです

Specs2でテストに失敗したときに例外を投げる

Scala用の代表的なテスティングフレームワークの1つがSpecs2です。 "Acceptance specification"と呼ばれる自由度の高い仕様の記述方法が特徴的です。 以下のコードはDeepThrought. calcUltimateQuestionメソッドの結果の正当性を確認するテストコードです。 …

yet anotherなsbtランナー「sbt-extras」を使う

Scalaのビルドツールと言えばsbtですね。 インストール自体は簡単で、事前にJavaの実行環境がインストールされていれば、各種パッケージ管理ツールでインストールすれば使えます。 sbt Reference Manual — Installing sbt Homebrewの例でいけば、以下のコマ…

「テスト駆動開発」を購入し、Scalaで写経を始めた

最近話題の「テスト駆動開発」を購入した。 テスト駆動開発作者: Kent Beck,和田卓人出版社/メーカー: オーム社発売日: 2017/10/14メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る 第一部はJava + Junitで書かれているが、さすがにその…

Scalatra 2.6がリリースされました

Scala用のWAFであるScalatraのver 2.6がリリースされました。 最近まであまり活発にメンテナンスされていなかったのですが、GitBucketがScalatraベースということで、GitBucketの作者であるtakezoeさんの手によって非常に活発なメンテナンスが継続されるよう…

Haconiwaの話を聞いてきた

connpass.com なかなか参加できない平日昼間のイベントに行ってきました。 つまりコンテナへの執着はもはや煩悩の域であり、開発者一同は瞑想したほうがいいと思います、そういうことなのですね https://t.co/Z6WWvo9ClI— Uchio KONDO (@udzura) 2017年10月2…

HTTP responseのstatus-line、reason-phraseの内容にどこまでこだわるか?

scalatraのメンテナンスでservletのdeprecatedなメソッドを使っている箇所を直そうと思ったら単純には行かず、延々とHTTP protocolのstatus-lineに入るreason-phraseについて調べることになりました。 せっかくなので、その結果をまとめておきます。 status-…

SRE サイトリライアビリティエンジニアリングを読んだ

ちょっと前に邦訳が出て話題になっていた「SRE サイトリライアビリティエンジニアリング」をようやく読んだ。 GoogleエンジニアによるSRE(Site Reliability Engineering)の解説記事の集合体。全体のページ数は500ページを超えていてかなりのボリュームだけど…

sbt 1.0時代のPlugin事情

sbt-scalatraというsbt pluginを1.0対応させるためにやったことをまとめておきます。 sbt 1.0対応作業一覧 sbt 1.0対応のpluginをゼロから作るときの詳しい解説は、公式ドキュメントにきちんと書かれているので、まずはそれを読む。 sbt Reference Manual — …

MacBook Pro 2017モデル 13″の電源アダプタを快適に持ち運ぶ

MacBook Pro 2017モデル 13″を購入した。 USB PDになれば純正以外の充電器が選び放題で、外出用のサードパーティー製の充電器とケーブルを買うぞ!と意気込んだものの、MacBook Proで使うとなると結局これ!という物が無いのが実情… thewirecutter.com しょ…

Markdown Night 2017 Summerというイベントを開催しました

やるぞ!という話になって2ヶ月あまり、ついに開催しました。 早速色々とまとめて頂いているので、イベントの様子はそちらをご覧頂ければと思います。 スライドも既にアップされていますので、見逃した方はそちらをご覧下さい。 tech.mercari.com togetter.c…

「現場で役立つシステム設計の原則」を読んだ

細々と書き直したので、最初の公開の時とちょっと変わっています。 最近ようやくこの手の「良い設計」をちゃんと解説してくれる書籍が出版されるようになってきて、良い時代になったなぁ。データベースであればドメインを定義したり、正規化といった、ある程…

Markdown Night 2017 Summerというイベントを開催する

Builderscon Tokyo 2017の興奮も覚めやらぬ中、Markdown Night 2017 Summerというイベントを開催することにしました。 connpass.com 普段吉祥寺.pmというイベントを定期的に開催しているけど、そろそろ別の形式のイベントもやってみたい、ということでgfxさ…

Builderscon 2017に行ってきた

去年のBuilderscon2016は行けなかったけど、今年はチケットを確保してYAPC::Asia 2014以来の日吉へ。 builderscon.io 参加できたのは8月4日の二日目のみ、懇親会は不参加と限定的な参加でしたが、非常に面白いトークを聴くことができました。 DeepLearningに…

USB Type-Cへ移行するためのメモ

MacBook ProのUSB Type-C搭載モデルへ移行するための買い物メモ。USB Type-Cはあまりに難しい。 7/8 追記 USB PDのケーブル最大長を間違えていたので修正(2.0m -> 4.0m)。ついでにモバイルバッテリのことを追記。 充電 USB PDという規格に対応しているので、…

The Central RepositoryのArtifactをRESTなAPI経由で検索する

前回に続いて、The Central Repositoryで検索する話です。 前回のエントリ blog.magnolia.tech 今度はREST APIを使います。 REST APIでArtifactを検索する The Central RepositoryにはGUI経由の検索だけでなく、REST API経由での検索機能も提供されています…

The Central RepositoryでArtifactを検索する

The Central Repositoryとは? The Central RepositoryとはSonatype社が運営するJVM系言語のためのパブリックモジュールリポジトリです。Apache Mavenや、sbtといったビルドツールのデフォルトの参照先になっているので、最もよく使われているJVMのリポジトリ…

「エラスティックリーダーシップ」を読んだ

あまりこの手のリーダー論みたいなものを本で読むのが苦手なので、めったに買わないけど、周りで評判が良かったので買いました。 「サバイバルモード中毒」とか、「コミットメント言語」とかキャッチーな言葉で、世の中のプロジェクトで起こりがちな問題をき…

Scalatraの開発チームにjoinしました

「joinしました」って言いたいだけです。 細々とPRを送っていたらお誘い頂きましたので、Scalatraの開発チームにお誘い頂きました。最近ちゃんとしたOSS活動ができていなかったので、良い機会と思い、参加しました。 主にドキュメントや、サンプルコードがア…