Magnolia Tech

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

Scalafmtのコメントスタイルについて調べた

こんな事を教えていただきました。 docstringsだけじゃないですかねhttps://t.co/IM7z1EXueaアスタリスクの位置が変わるだけですが。あと公式のガイドが書き換わったのでhttps://t.co/MuYzP873DGScalaDocの形式はもはやScalaDocではない(!)というややこしい…

ScalateのScala 2.13.0非互換への対応を考える

Scala、Perl、Ruby、DDD、OOP等質問お待ちしております https://t.co/xNguWzLMOP— magnoliak (@magnolia_k_) 2018年9月26日 スキルアップのためには、知らないこと、分からないことへチャレンジした方がいいですね。例えば、すぐに答えられそうか分からない…

「ドメイン駆動設計」を読んだ〜第1章 知識をかみ砕く〜

引き続き「ドメイン駆動設計」を読み進めました。 「第1章 知識をかみ砕く」には、ドメインエキスパートと、開発者の会話を通じてモデルを作り上げていく様子から始まります。 モデルを書いて可視化すること 繰り返し相互のフィードバックでモデルを成長させ…

「ドメイン駆動設計」を読んだ〜第一部 ドメインモデルを機能させる〜

「ドメイン」を辞書で調べると以下のような意味が書かれています。 (活動・関心・知識などの)分野, 領域, 範囲. 「ドメイン駆動設計」の冒頭、「第一部 ドメインモデルを機能させる」を読んで以下のように理解しました。 ドメインは、関心の領域 モデルは、自…

RT-AC86Uを買った

ASUS ゲーミングWi-Fi無線ルーターRT-AC86U 11ac 2,167+750Mbps 接続18台/3階建・4LDK 【 PS4/Wii U/iPhone対応】出版社/メーカー: Asustek発売日: 2017/11/24メディア: Personal Computersこの商品を含むブログを見る 特にゲーミングルータが必要なシビアな…

ScalaのmapValuesの挙動が2.13.0から変わっているので実装を調べてみた

scalaのmapValuesは、Mapのvalueだけにmapを適用したい時に使用するメソッドです(Mapとmapでちょっと分かりづらいですが)。 Scala 2.12.6で実行すると、以下のような結果になります。 scala> val characters = Map("Gandalf" -> "wizard", "Aragorn" -> "ran…

小さなPRを書いてOSS開発に貢献する

OSS開発に参加してみたいですよね!(断定) でもどこから手をつけて良いか分からないことも多いですね。 そこでScalaのjson4sというライブラリをベースに、小さなPRを書いて、送るまでの流れを書いてみました。 参考にしてみて下さい。 今回は非推奨になったメ…

「Scala関数型デザイン&プログラミング」のexerciseを解き進めるための環境準備

吉祥寺.pmのブログに掲載していた「Scala関数型デザイン&プログラミング」のexerciseを解く時の環境構築について、少し修正してこちらに載せ直しました。イベントブログにだけ載っているのも、もったいないな、と思って再掲。 環境構築 JDK(Java Developmen…

Scalatra-Jsonがレスポンスを返す仕組み

前回のエントリで、Scalatraがレスポンスを返す仕組みについて紹介しました。Any型で返すのは型安全的にどうなの?という気持ちも有り、いつの日か変えたいという気持ちですが(Scalatra 3.0?)、現状はそんな仕組みになっています。 blog.magnolia.tech Scala…

Scalatraがレスポンスを返す仕組み

Scalatra-JSONがレスポンスを返す仕組みについて書こうとしたら、その前にそもそもScalatraがレスポンスを返す仕組みを解説しないと分かりづらいな、と思ったので、まとめます。 Scalatraがレスポンスを返す仕組み Scalatraでは、下記のようにgetやpostとい…

Surface Precision Mouseを買った

Surface Precision Mouse出版社/メーカー: マイクロソフト発売日: 2018/03/01メディア: エレクトロニクスこの商品を含むブログを見る 長年使っていたMagic Mouseが使っている最中に頻繁に接続が切れてしまうようになったので、ずっと気になっていた「Surface…

Effective DevOpsを読んだ

買ったはいいけど、なかなか読む時間が取れなかった「Effective DevOps」を読み始めた。 一言でまとめれば、以下のツイートで全部かな。 Effective DevOps、いくら読み進めても、どんな開発組織でも普遍的に問題になりそうな所をどうやって乗り越えていくか…

GraphQLナイトへ参加してきた

たまたま「GraphQL」について調べていたタイミングで開催が決定したのと、最近すっかりpmイベント以外に参加できていないことも有って参加してきた。 connpass.com GraphQL自体の入門、ScalaやRubyでのライブラリなどの紹介など、丁度知りたいレベル感と合っ…

java.net.URLConnectionのguessContentTypeFromNameが使うMIME Type設定は実行時に変更することはできない

java.net.URLConnectionのguessContentTypeFromNameは、content.types.user.tableというシステムプロパティで定義された内容で任意のMIME typeを推測できるようになります。 公式ドキュメントにも書かれています。 URLConnection (Java Platform SE 8) では…

java.net.URLConnection.guessContentTypeFromNameが使うデフォルトのcontent-types.propertiesがJava9から変わった

java.net.URLConnection.guessContentTypeFromNameはファイルの拡張子からMIME Typeを特定するメソッドです。このメソッドはJava8以前ではデフォルトで、$JAVA_HOME/lib/content-types.propertiesを参照していました。 しかし、Java9以降では、$JAVA_HOME/li…

Javaでファイルの内容からMIME Typeを推測する方法

前回のエントリの続きです。 blog.magnolia.tech 前回はファイル名から…つまり拡張子をもとにMIME Typeを特定する方法を紹介しましたが、今回はファイルの内容からMIME Typeを推測する方法です。 Files.probeContentType 前回も紹介した下記のブログエントリ…

ファイル名からMIME Typeを教えてくれるJavaのライブラリ

ScalatraのMIME Type関係の機能が盛大に壊れている訳ですが、じゃあそれを直すためにMIME Typeを教えてくれるライブラリについて調べてみました。標準ライブラリだけでもいくつか方法が有りますね。 Files.probeContentType Java7から導入されたFiles.probeC…

Scalatra-JSONの使い方

ScalatraのJSONサポート ScalatraにはJSONのサポートが用意されていていて、JSONのリクエストやレスポンスにまつわる種々の機能を提供してくれます。 一応公式ドキュメントにはざっと使い方が説明されていますが、ちょっと端折り過ぎ感が有るのと、内部構造…

「テスト駆動開発」を読んで2018年における開発手法へのスタンスへ思いを馳せる

半年前に購入した「テスト駆動開発」を読み直した話 テスト駆動開発作者: Kent Beck,和田卓人出版社/メーカー: オーム社発売日: 2017/10/14メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る 昨年、新訳版が出版された直後に購入し、Scala…

株式会社はてなに入社しました

株式会社はてなに入社しました 株式会社はてなに入社しました - hitode909の日記

「ベタープログラマ」を読んだ

原著が出てたときから割と気になっていた「ベタープログラマ」を読んだ。 全体的な感想 第Ⅰ部はコードスタイルや、不要なコードの存在、テストコードを書く話など、非常に実践的な内容が多かった。 第Ⅱ部は割と考え方というか、思想的な話になっていって、第…

Test2::Prettyを作るために調べたことと、やったこと

Perl 5.26.xでTest2がコアモジュール化しました Perl 5.26.xでは、コアモジュールのテスティングフレームワークであるTest::Moreモジュールに大改修が行われ、完全にゼロから書き直されれたTest2モジュールベースのものに入れ替えられています(version 1.3xx…

「UNIXという考え方」を読み返している

プログラミングPerlには、「プログラマの三大美徳」という言葉が出てくる。 色々なところで散々言及されているので、ここで深く解説することはしないけど、ちょっと検索しても比較的新しい日付でこんなブログ記事が出てくる。 moneyforward.com だからといっ…

ServletのrequestオブジェクトのgetParameterメソッドを使うとinputStreamが空っぽになっている

上記のServletの仕様書のセクション3.1.1に書かれている通りなんですけどね。 POST method content typeがapplication/x-www-form-urlencoded requestオブジェクトのgetParameter系のメソッドを呼び出す という条件が揃うと、servletコンテナ側でinputStream…

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-…