Magnolia Tech

いつもコードのことばかり考えている人のために。

ただの飲み会でもshow noteを書くと良いな、と思った

Podcastを聴いている方だったら分かると思うんですけど、たいていのPodcastでは参加する人が事前にshow noteというものが用意されています。 例えば、ajitofmというPodcastのshow noteは以下のリンク先にあるように、箇条書きで用意されています。 ajito.fm …

「Java本格入門」を買ってきた

丁寧な言語入門書はたくさんあるけど、ちゃんと言語機能を学べる人向けに、モダンな書き方や、ツールチェーンをざっと説明してくれる書籍って貴重。「Java本格入門」は、例えばScalaを書くためにざっとJavaの機能を知りたい、なんて人に丁度良いのでは?と思…

2018年版・この処理Scalaでどう書く?…前半戦

ふと、この記事にあるようなこと、Scalaだったらどう書くかな?と思ってまとめてみました。途中で力尽きたので、まずは前半戦まで! www.m3tech.blog あの処理、Scalaでどう書く? 基本的にScalaの標準ライブラリでやる方法を紹介し、Javaの標準ライブラリを…

「いかにして問題をとくか」を読んでみよう

いかにして問題をとくか作者: G.ポリア,G. Polya,柿内賢信出版社/メーカー: 丸善発売日: 1975/04/01メディア: 単行本購入: 94人 クリック: 1,656回この商品を含むブログ (155件) を見る 先日の設計Night 2018で発表したスライドの冒頭で「いかにして問題をと…

「UMLモデリングのエッセンス」を読み直した

UML モデリングのエッセンス 第3版 (Object Oriented SELECTION)作者: マーチン・ファウラー,羽生田栄一出版社/メーカー: 翔泳社発売日: 2005/06/16メディア: 大型本購入: 8人 クリック: 254回この商品を含むブログ (93件) を見る マーチン・ファウラーと言…

「設計Night2018 powered by Classi」で登壇してきました

「設計Night2018 powered by Classi」というイベントで、「設計のための、問題の捉え方〜ドメイン知識の暗黙知を形式知に〜」というタイトルで発表しました。 実際に発表したスライドは読み物として冗長過ぎたので、圧縮したまとめ版を作っていて、そちらへ…

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…