Magnolia Tech

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

2020-01-01から1年間の記事一覧

2020年の振り返り

今年、一つだけ良かったと思えることを挙げるとするなら、「個人の価値観が変わり、かつ、そのことは広く共有する」ということじゃないだろうか。一人一人の中の価値観が変わることは有ると思うし、狭い範囲の中でその価値観の変化が共有されることは有った…

あのころ夢見たUSB PDの大統一充電環境はやってきたのかな…USB PD充電器を選ぶときに考えたこと

2022/3/28 リンク先を修正 先日、USB Type-Cケーブルを選ぶのは難しい、というエントリを書いた。 blog.magnolia.tech USB Type-Cが登場したとき、一番期待したのがUSB PD(Power Delivery)だった。USBで最大100Wの給電ができるから、もうこれで機器ごとに違…

「NO HARD WORK!」を読んで、“説明責任”と、“コンテキストスイッチコスト”について思いを巡らせた

NO HARD WORK! 無駄ゼロで結果を出すぼくらの働き方 (早川書房)作者:ジェイソン フリード,デイヴィッド ハイネマイヤー ハンソン発売日: 2019/01/31メディア: Kindle版 「リモートワークの達人」を書いたジェイソン・フリードと、ディヴィッド・ハイネマイヤ…

僕らはいつまでUSB Type-Cケーブルを選ぶのに迷うのだろう…もう間違えないための覚え書き

2021/8/6更新 Thunderbolt4ケーブルがリリースされてきたので、アップデートしました。 blog.magnolia.tech 自分用の買い物メモ USB Type-Cケーブルの選び方は難しい…あらゆる規格をサポートするけど、あらゆる規格を”同時に”サポートするわけではないので、…

jetty-homeとwarファイルを使ってWebアプリケーションを起動する

ドキュメントを読んでいてもよくわからなかったので試したことのメモ。 sbtの中からテスト用にServletコンテナ(JettyとかTomcatとか)を起動するxsbt-web-pluginというsbt pluginが有る。 github.com いつからか、このプラグイン経由でjettyを起動すると以下…

「いかにして問題をとくか」をいかにして読みとくか

いかにして問題をとくか作者:G. ポリア発売日: 1975/04/01メディア: 単行本 繰り返し読み返すべき技術書、今回はGポリア著「いかにして問題をとくか」を取り上げる。 この本は、本来は"数学を解こうとする教師と学生のため"に書かれた本だ。所謂コンピュータ…

プログラマの三大美徳について…その原典ではどう語られているのか

プログラミングPerl〈VOLUME1〉作者:ウォール,ラリー,オーワント,ジョン,クリスチャンセン,トム発売日: 2002/09/01メディア: 単行本 何度も読み返す技術書の話題で忘れてはいけないのがPerlの作者であるLarry Wallが書いた「Programming Perl」。 この本、Pe…

「達人プログラマー第2版」を読んだ、そしてまた読もう、何度も読もうと思った

達人プログラマー(第2版): 熟達に向けたあなたの旅作者:Andrew Hunt,David Thomas発売日: 2020/11/21メディア: 単行本 先日紹介した「UNIXという考え方」以外にも、定期的に読み返す価値の有る技術書がたくさん有る。まだまだ読んでいない本も無限に有るので…

「小さなチーム、大きな仕事 働き方の新しいスタンダード」を読んで、書かれているとおりにできるか?と考えた

小さなチーム、大きな仕事 働き方の新しいスタンダード (ハヤカワ文庫NF)作者:ジェイソン フリード,デイヴィッド ハイネマイヤー ハンソン発売日: 2016/12/15メディア: Kindle版 「その課題はもう全部この本に書いてあって、DHHたちが通った道だ」シリーズ2…

Big Surインストール後の設定メモ

早速インストールしたので、その時の設定メモ インストール時の設定 パーティションを切り直してインストール ファイルシステムはAPFS 大文字、小文字を区別しない、暗号化しない、単一ボリューム 使う場所は日本、言語は英語 インストール後の設定 Sharing…

「UNIXという考え方」を読み直して、考えたこと

UNIXという考え方―その設計思想と哲学作者:Mike Gancarz発売日: 2001/02/01メディア: 単行本 前回エントリで紹介した「リモートワークの達人 (ハヤカワ文庫NF)」は何度も読み返すべき本として紹介してもらったのだけど、その時に同時に上がったのが「UNIXと…

「リモートワークの達人」を読んだ、そして悔しい思いをした

リモートワークの達人 (ハヤカワ文庫NF)作者:ジェイソン フリード,デイヴィッド ハイネマイヤー ハンソン発売日: 2020/07/02メディア: Kindle版 「リモートワークの達人」を読んだ この本はBasecamp社のジェイソン・フリードと、ディヴィッド・ハイネマイヤ…

OCNのフレッツ光がいつの間にかホームゲートウェイ+IPoEになっていた

7月の末に、OCNからホームゲートウェイでIPoEが使えるになる、というお知らせが来ていた。 平素よりOCNをご愛顧いただき、誠にありがとうございます。 この度OCNでは、お客さまに「より快適で高速なインターネット」をご利用いただくために、 2020…

vim-scalaでできること

github.com vim用のScalaプラグイン「vim-scala」の使い方メモ そういえば、ずっと使っている割にどんな機能があるのか知らなかったので、ソースコードを見ながらまとめた結果。 インストール方法 パッケージマネージャー「dein」を使っていれば、.vimrcに以…

Real World HTTP 第2版 ―歴史とコードに学ぶインターネットとウェブ技術

Real World HTTP 第2版 ―歴史とコードに学ぶインターネットとウェブ技術作者:渋川 よしき発売日: 2020/04/21メディア: 単行本(ソフトカバー) 初版も持っていたけど、コレ1冊あればおおよそ俯瞰できるので、2版も購入。 ちょっと分厚いけど、まずは前半だけ…

Real World HTTP 第2版 ―歴史とコードに学ぶインターネットとウェブ技術

Real World HTTP 第2版 ―歴史とコードに学ぶインターネットとウェブ技術作者:渋川 よしき発売日: 2020/04/21メディア: 単行本(ソフトカバー) 初版も持っていたけど、コレ1冊あればおおよそ俯瞰できるので、2版も購入。 ちょっと分厚いけど、まずは前半だけ…

Dottyではimportするシンボルをコントロールするgivenという記法がサポートされる

dotty.epfl.ch import A.{given _}と書くと、パッケージAの中でgiven tc as TCと指定した内容がインポートされます。 PerlのExporterモジュールで@EXPORTにエキスポートしたい関数を指定するみたいな感じですね。 pointoht.ti-da.net 単にPerlとScalaを並べ…

Scalaにおけるライブラリの衝突

github.com このPR、単純な依存ライブラリのアップデートのはずがScala 2.11だけテストが失敗している。 エラーメッセージを見ると、サーバ側がstatus code500を返して、テストが失敗していることが分かる。 [info] [info] MyScalatraServletTests: [info] […

Spay-JsonがJSON ASTからScalaオブジェクトを生成する仕組み

調べたことを雑に残すシリーズです。 github.com Spray-Jsonの基本的な使い方は以下の通りです。 case class Color(name: String, red: Int, green: Int, blue: Int) object MyJsonProtocol extends DefaultJsonProtocol { implicit val colorFormat = jsonF…

Meraki Goを導入したらApple Musicへつながらなくなったが、ルータのIPv6の設定を有効にしたらつながった

タイトルで全部言い切っているんだけど、先日Meraki Goを導入したらApple Musicにつながらなくなったので、その解決までの道のり。 blog.magnolia.tech 普通のウェブサイトへの接続とか、特に動作がおかしいとかもなく普通に使っていたんだけど、よく見るとA…

Scalaのコンストラクタのフィールドを取得する

コンストラクタのフィールドを得る方法について import scala.reflect.runtime.{universe => ru} import ru._ class Person(val name: String, age: Int, blah: List[Int]) object ReflectionTest { def main(args: Array[String]): Unit = { def generate[T…

コンストラクタメソッドからオブジェクトを動的に生成する

一つ前のエントリの続き 次はcase classではなく、普通のクラスを生成する import scala.reflect.runtime.{universe => ru} import ru._ class Person(val name: String) object ReflectionTest { def main(args: Array[String]): Unit = { def generate[T](…

Scalaでリフレクションを使って、与えられた型情報から動的にオブジェクトを生成する

Scalaでも動的にオブジェクトを生成したいですね、そうですね。 早速リフレクションを使って動的にオブジェクトを生成します。 以下、覚え書き…もう少し効率よくできる気がする。 import scala.reflect.runtime.{universe => ru} import ru._ case class Per…

Cisco Meraki Goを買った

Cisco Meraki Go 法人向け Wi-Fiアクセスポイント 屋内用 PoE対応 無線LAN (デュアルバンド/802.11ac)【Amazon.co.jp 限定】発売日: 2019/06/21メディア: Personal Computers 普段は2万円くらいのCisco Meraki Goがタイムセールで16,400円になっていたのと、…

Scalaでapplyメソッドを引数に期待しているところにコンパニオンオブジェクトをそのまま渡しても良い

Spray-JSONのソースを読んでて、まぁそりゃそうかと思ったけど、こう書けるのかって改めて思ったので残しておきます。 scala> case class Person(name: String, age: Int) defined class Person scala> def test(constructor: (String, Int) => Person): Per…

Json4sのJSON ASTからScalaのオブジェクトを生成する

次は、Json4sのJSON ASTからScalaのオブジェクトを生成する方法について解説。 Play-JSONでのScalaオブジェクト生成 Json4sのオブジェクト生成の前に、Play-JSONにおけるオブジェクト生成方法について見てみます。 import play.api.libs.json._ import play.…

Json4sの使い方

前回のエントリからの続き。今回はざっとJson4sの使い方をおさらいする。 JSON文字列のパースと、生成 Json4sはバックエンドとしてJavaのJSONライブラリであるJacksonを使うjacksonパッケージと、lift-json由来のパーサーを提供するnativeパッケージの2種類…

Json4sについて、その機能と内部構造

Json4sの使い方と、内部構造についてのいくつかのこと 年明けからJson4sのメンテナーをやっている。 Json4sは、2012年に作られた歴史あるScala用のJSONライブラリで、Apache Sparkで使われていることもあり、割と広く使われている。しかし、ランタイムリフレ…

Scalatra 2.7がリリースされた

自分がメンテナンスに参加しているScala用のSinatra-likeなWeb Application Framework、Scalatraの最新バージョンがリリースされた。 scalatra.org 今回のリリースの最大の特徴は、Scala 2.13対応だけど、それ以外にも古くて使われていない機能をバシバシ削…

「教養としてのコンピューターサイエンス講義 」を読んだ

教養としてのコンピューターサイエンス講義 第2版 今こそ知っておくべき「デジタル世界」の基礎知識作者:ブライアン・カーニハン日経BPAmazon 日常的にコンピュータを手足のように扱い、コードを書いて、やりたいことを実現している人たちからすれば当たり…