Magnolia Tech

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

Scalaでネストしたcase classのインスタンスを作るときに気をつけること

きっかけはJson4sの、このissue. github.com テストクラスの中で定義したcase classが正しく判定されない、というもの。 いくらJson4sのコードを追いかけてもよく分からなかったところ、いつも色々なことを教えて頂くKenji Yoshidaさん(@xuwei_k)に教えて頂…

Akko 3068というメカニカルキーボードを買った

Akko 3068 小型のメカニカルキーボードが欲しく、でも自作に手を出すのも時間が足りない…みたいなことで、検索していたら丁度よさそうのを見つけた。Akko 3068というメカニカルキーボードで、Cherry製のキースイッチが採用されていて、茶軸、青軸、赤軸から…

小西康陽 / わたくしのビートルズ

普段、本を読むと言えば技術書ばかりで、あまりコラム集のような、明確な目的の無い本を読むことが無い。 わたくしのビートルズ 小西康陽のコラム1992-2019作者: 小西康陽出版社/メーカー: 朝日新聞出版発売日: 2019/04/19メディア: 単行本この商品を含むブ…

Scala 2.13.0がリリースされた

github.com 長い開発期間を経て、ついにScala 2.13.0がリリースされました! 今回、ドキュメントへの1行だけの追記ですが、初めてScala本体へのPRがマージされたので、Contributorsに自分の名前が有るのが最高に嬉しいですね。 github.com というわけで、Sca…

Scala 2.13におけるStringに対するtoIndexedSeqの挙動

Scala 2.12と、2.13で返す型が変わっていますが、ドキュメント上で探すことができませんでしたのでここに書いておきます。 Welcome to Scala 2.12.8 (OpenJDK 64-Bit Server VM, Java 12.0.1). Type in expressions for evaluation. Or try :help. scala> va…

scala 2.13から導入されるArraySeq.unsafeWrapArrayは何が'unsafe'なのか?

blog.magnolia.tech 先日のエントリで、ArraySeq.unsafeWrapArrayを取り上げましたが、そもそも何が'unsafe'なの?immutableなデータ構造にラップするので、safeなのでは?と疑問に思ったところ、いつものごとくKenji Yoshida(@xuwei_k)さんに教えて頂きまし…

Scala 2.13からArrayからIndexedSeqへの暗黙の変換が非推奨となる

いよいよ正式リリースが近づいてきたScala 2.13ですが、既存のコードをリリース候補版のScala 2.13でコンパイルすると以下のようなメッセージを見かけるようになりました。 scala> def makeSeq(a: Array[Int]): Seq[Int] = if (a == null) Nil else a ^ warn…

Scala 2.13からscala.SeqはImmutableになった

Scala 2.12まで Welcome to Scala 2.12.8 (OpenJDK 64-Bit Server VM, Java 12.0.1). Type in expressions for evaluation. Or try :help. scala> val seq1: scala.Seq[Int] = scala.collection.immutable.Seq(1, 2) seq1: Seq[Int] = List(1, 2) scala> val…

ELECOMのUSB 3.1, PD対応のType-Cケーブルを買った

先日AnkerのUSB PD 60W対応の充電器を買ったので、卓上の電源周りを見直そうと、USB Type-Cケーブルも新調した。純正では2mも有って卓上では取り回しづらいので、ELECOMのUSB 3.1対応、USB PD 5A対応の、所謂全部入りのケーブル…以前はけっこう高かった印象…

The Art of UNIX Programming

The Art of UNIX Programming作者: Eric S.Raymond,長尾高弘出版社/メーカー: KADOKAWA発売日: 2019/03/08メディア: 単行本この商品を含むブログを見る しばらく絶版になっていた「The Art of UNIX Programming」がアスキードワンゴから再発された。アスキー…

Scalaで、既存のクラスに新しい振る舞いを追加する

Rubyにはrefinementsという仕組みが有って、特定のスコープ内だけで既存クラスのメソッドの振る舞いを変えたり、追加したりできます。 例えばStringクラスに、toBlahという、文字列の前に"Blah!"という文字列を追加するというメソッドが欲しくなったとしまし…

scala.language.higherKindsについて

久しぶりにDwangoさんのScala研修テキストを読んでいたら、今まで理解していなかったオプションが出てきたので調べてみた。 dwango.github.io そのオプションとはこれ。 import scala.language.higherKinds scala.language.higherKindsについて、Scaladocに…

Anker PowerPort Speed 1PD 60を買った

Anker PowerPort Speed 1 PD 60 (60W USB-C 急速充電器)【PSE認証済 / 折りたたみ式プラグ / Power Delivery対応】iPhone, iPad Pro(11インチ、2018) , MacBook, Galaxy S9 / S9+, Xperia XZ1 その他USB-C機器対応出版社/メーカー: Ankerメディア: エレクト…

MB16ACのディスプレイスタンドにはSatechi R1というタブレットスタンドがとても丁度良い、という話

Satechi R1 アルミニウム マルチアングル タブレットスタンド (2018 iPad Pro, 2018 MacBook Air, iPhone Xs Max/XS/XR, 8 Plus/8, Samsung S9 Plus/Sなど対応) (ブラック)出版社/メーカー: Satechiメディア: オフィス用品この商品を含むブログを見る タイト…

ポータブルディスプレイ ASUS MB16ACを購入した

ASUS モバイルディスプレイ MB16AC 15.6インチモニター(1,920×1,080 / ブルーライト軽減 / USB Type-C / IPSパネル)出版社/メーカー: Asustek発売日: 2017/07/21メディア: Personal Computersこの商品を含むブログを見る 以前から気になっていたASUS MB16AC…

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

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

USB Type-Cに移行して2年経ったので、ケーブルと充電器の選び方をもう一度まとめてみた

2年くらい前にこんな記事を書いた。 blog.magnolia.tech 最近役に立ったらしい。 新しいMBP買ったので、USB-Cについて詳しく書いてあった @magnolia_k_ さんの記事を探している— veryblue (@veryblue0416) 2019年3月6日 数日前に、こち亀コラでUSB Type-Cの…

「失敗から学ぶRDBの正しい歩き方」を読んだ

失敗から学ぶRDBの正しい歩き方 (Software Design plus)作者: 曽根壮大出版社/メーカー: 技術評論社発売日: 2019/03/06メディア: 単行本(ソフトカバー)この商品を含むブログを見る 「失敗から学ぶRDBの正しい歩き方」がようやく発売されて、届いたので読ん…

参加者からみた吉祥寺.pmの魅力について

さっき、ひょっとして吉祥寺.pmの魅力を一番理解してないのは自分なんじゃないかって話をしたというわけで皆様から「ここがいいよね!吉祥寺.pm」を募集しますはい、引用ツイートでみんな語ってください!#kichijojipm— magnoliak (@magnolia_k_) 2019年2月5…

そーだいさんの「失敗から学ぶRDBの正しい歩き方」という本が出版されるそうです

いつも吉祥寺.pmに来て頂いている、そーだいさんが「失敗から学ぶRDBの正しい歩き方」という本を書かれたそうです。 いつもDBの発表を楽しみにしている勢としてはさっそく注文しました。 失敗から学ぶRDBの正しい歩き方作者: 曽根壮大出版社/メーカー: 技術…

技術書のタイトルを人生で置き換える

「リファクタリング 人生」「レガシー人生改善ガイド」「モダン人生」— magnoliak (@magnolia_k_) 2019年1月30日 技術書のタイトルを「人生」で置き換えると、なんとも言えない感じになることが分かった— magnoliak (@magnolia_k_) 2019年1月30日 というツイ…

技術書の原著と和訳を両方揃えて読むという英語の勉強法

この方法、Learning Perlでずっとやってた凄い有効なのでおススメですねLearning...ってタイトルについてると、英語自体も平易な表現だし、単語数も制限されてて凄く読みやすいのでおススメですでもそのまま調子に乗ってミステリーを読もうとしたら語彙力な…

YAPC::Tokyo 2019でコアスタッフとして、前夜祭LTソンと、本編オープニングをやってきた

YAPC::Tokyo 2019のロゴ YAPC::Asia 2015のLTで、当時丁度「吉祥寺.pm」を始めたタイミングだったのと、YAPC::Asia最後の年ということもあり、「好きなイベントが終わるなら自分でイベントをやればいいんだ」という、まったくプレゼンとして何も成立していな…

ajitofmに出演した

ajito.fm 憧れのpodcastデビュー! 最初、もの凄い緊張してて全然喋れなかった。 色々話そうと思ったけど、あっという間の1時間でおそらく半分も喋れていない印象 もっと設計ナイトで喋ったようなことを喋ろうと思ったのに… とはいえ、最後にYAPC::Tokyo 201…

ただの飲み会でも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」というイベントで、「設計のための、問題の捉え方〜ドメイン知識の暗黙知を形式知に〜」というタイトルで発表しました。 実際に発表したスライドは読み物として冗長過ぎたので、圧縮したまとめ版を作っていて、そちらへ…