Magnolia Tech

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

初手を速くすることで、全体を速くしていく

仕事ができる人、初手が速いっていう特徴が有ると思ってて、それは本人の資質も有るけど、「初手が速くできる準備とか環境を作る」のが上手いっていう印象 https://t.co/g0ArF8e7Mx— magnoliak (@magnolia_k_) 2021年9月19日 「仕事ができる」の定量評価はと…

問題が起きた時は、問題が起きた構造に注目する

大きな問題が起きて、その事象だけを深掘りしていくとすごく些細なミスだったりして「なんでこんな簡単なことができない!○○すればいいだけじゃないか!」って言い出す人が出てくるんだけど、その「○○するだけ」ができなかった環境はなぜ生まれたのかって所…

『初めてのSQL 第3版』でSQLを学習しなおしました

初めてのSQL 第3版作者:Alan BeaulieuオライリージャパンAmazon SQLほど、変化も少なく、かつ長く現役で使える技術もそうそう無いのでは?と思えるくらいずっと生き残っている。ただ、普段から書いてないと確実に忘れる。全体を忘れる、というより色々なこと…

定期的に知識をリフレッシュする

IT系に身を置いていると、つい新しい知識ばかりを追いかけがちになるけど、CS的な基礎知識や、Linuxのコマンドとかの(もちろんソラでコマンド10個のオプションを言える必要は、無い)も当然大事なわけです。というか、土台となる知識が無いと、新しい知識が…

ソフトウェアの再利用性について

下手すると「再利用できるか?」という調査をするコストよりも、ゼロから作るコストの方が安い場合もあるし、確実性が無かったりするし、多少のアンマッチは無視されてしまうこともあるし、ソフトウェアの再利用は難しいけど、詳しくない人は「もうあるから…

モデルを作っていく、ということについて考えた

例えば人事管理のモデルを作るときに、社員、管理職、役員みたいなのを、抽象社員クラスからの継承で別々に用意したものの、結局ロジックは全て外側に有って、そのロジックは属性による判断しかしないから、単純な社員クラスでよくね?みたいな思考の過程が…

Software Design 2021年9月号

Software Design (ソフトウェアデザイン) 2021年9月号 [雑誌]技術評論社Amazon Rustを題材にしたメモリ管理の特集、でもそもそもメモリ管理とは?他の言語での実装は?など、基礎的なところから入って行ってRustにおけるメモリ管理の考え方と、実際のミドル…

ISUCON11に参加した

isucon.net 開催日に、初めて参加できた緊張感とか焦りとかが凄い!でもきちんと練習しておくと一定の点数までは取れることが分かった(足りない練習観点がよく分かった)初手でPerl実装に切り替えて心を落ち着かせるところから始まった「ここはホーム、ここ…

『入門 老眼』の出版が待たれる

「入門 老眼」が出版されるのを待ってます老眼鏡の選び方から、最適なディスプレイの解像度設定など、きっと必要な知見はたくさんあるに違いない— magnoliak (@magnolia_k_) 2021年8月19日 とりあえずこれ読み直そうhttps://t.co/m57AydGo8w— magnoliak (@ma…

計画の解像度を上げていく

2021/8/15: 最初の言説のところ、微妙に何が何だかって記述だったので少し見直しました。 昔初めてPMBOKで「段階的詳細化」って用語を知った時、随分と当たり前のことにわざわざ名前がついてるんだなぁと思ったことが有るけど、案外ちゃんと名前をつけてあげ…

Scala3学習メモ: Scala3におけるType Lambda

Scala2におけるType Lambdaについては、下記のブログエントリが詳しい。 underscore.io 最初に、型パラメータの数を一つとして定義していると、型パラメータを二つ取る物を渡せない。 scala> trait Functor[F[_]] trait Functor scala> type F1 = Functor[Op…

夏休みのお供に『アンダースタンディング コンピュテーション』

技術書なんて必要なところを拾い読みするか、読書会でいろんな人の考え方や経験を知るきっかけに使うもの...慣れてくるとそんな感覚になってきますが、せっかくの夏休みなので初心に帰って、全部頭から再度まで読み切って、かつコードの写経もやってみて…と…

Scala3学習メモ: Intersection型

Scalaではclassの定義時にtraitをmix-inできる。 scala> trait A // defined trait A scala> class B extends A // defined class B scala> val o1 = new B val o1: B = B@36b53f08 この時、変数の型はBと推論されている。 また、オブジェクトの生成時にもmi…

Scala3学習メモ: newキーワードが不要になった

case classではない、通常のクラスでもapplyメソッドを持つコンパニオンオブジェクトが自動生成されるようになったので、newキーワードを使わなくてもオブジェクト生成ができるようになった。 scala> case class Person(name: String, age: Int) // defined …

programming in scala fifth edition

Programming in Scala Fifth Edition: Updated for Scala 3.0 (English Edition)作者:Odersky, Martin,Spoon, Lex,Venners, Bill,Sommers, FrankArtima PressAmazon Scala3対応の第5版。日本ではScala 2.13対応の第4版が出たばかりですが、原著はScala3対応…

言葉にすること、言葉にする前と、言葉にした後のその先のこと

「考えられる」「考えたことを言葉にできる」「その考えに至った背景や構造を整理できる」「考えたことが妥当、正当であることが説明できる」みたいな感じで難易度が上がって行くんだけど「考えられる」の前の「考えるべきことを決める」「方針を決める」「…

Scala3学習メモ: Scalaとnull, Scala2とScala3と

Rustの公式ドキュメントにnullに関する興味深い記事("Null References: The Billion Dollar Mistake"(Null参照: 10億ドルの間違い))が引用されています。 Enumを定義する - The Rust Programming Language nullは、インタフェースにおける双方の合意として取…

Scala3学習メモ: 新しい制御記法

Scala3では、“quiet” syntaxと呼ばれるPythonっぽい新しい記法が導入されていて、括弧が大幅に削減できるようになっています。 おそらく一番大きな変化点ですね。Scala3ベースの解説書である『Programming in Scala Fifth Edition』もすべてのコード例がこの…

僕らはいつまでUSB Type-Cケーブルを選ぶのに迷うのだろう…まだ迷っている人のための覚え書き - 2021年、夏

自分用の買い物メモ、Thunderbolt4ケーブルが続々とリリースされてきたので、2021年夏用にアップデート。 いつもの「全部同じじゃないですか」案件。 USB Type-Cケーブルの選び方は難しい…あらゆる規格をサポートするけど、あらゆる規格を”同時に”サポートす…

学ぼうとしたことが頭にぜんぜん入ってこないとき

ダメだ、全然理解が追いつかないことが書かれていると、もう一回音読するしかない小学生みたいだけど、これが自分にとって一番確実だ...— magnoliak🍧 (@magnolia_k_) 2021年7月31日 自分は割と「ゆっくり音読する」が一番効果が有る(と信じている)のだけど…

WEB+DB PRESS総集編[Vol.1~120]

WEB+DB PRESS総集編[Vol.1~120] (WEB+DB PRESSプラスシリーズ)作者:泉水 翔吾,櫻庭 祐一,宇佐美 健太,笹田 耕一,牧 大輔,末田 卓巳,池田 翔技術評論社Amazon わずか2970円で過去のWEB+DB Pressが120冊揃うの、マジで便利なので、とりあえず買った方がいいで…

『詳説データベース』は、2021年夏の課題図書

詳説 データベース ―ストレージエンジンと分散データシステムの仕組み作者:Alex PetrovオライリージャパンAmazon まさに2021年夏の課題図書といえる『詳説データベース』を読みました。 昔からOSやコンパイラなど、基本的なソフトウェアの構造や、技術的な課…

「Anker Nano II 65W」を購入 - 最小の65W対応のUSB PD充電器

Anker Nano II 65W (PD 充電器 USB-C)【独自技術Anker GaN II採用/PD対応/PSE技術基準適合/折りたたみ式プラグ】MacBook PD対応Windows PC iPad iPhone Galaxy Android スマートフォン ノートPC 各種 その他機器対応 (ブラック)AnkerAmazon 発売前に予約して…

Scalaの識別子(クラス名、メソッド名、変数名)に使える文字・使えない文字

Scalaでは、クラス名、メソッド名、変数名などの「識別子」に漢字・ひらがな・カタカナが使えます。 scala> val 変数 = 42 val 変数: Int = 42 scala> def 引数を倍にするメソッド(引数: Int): Int = 引数 * 2 def 引数を倍にするメソッド(引数: Int): Int s…

『ITと数学』、その切っても切れない関係

ITと数学 Software Design別冊作者:中井 悦司,橘 慎太郎,石川 聡彦,貞光 九月,中西 崇文,辻 真吾,飯尾 淳,上野 貴史,真嘉比 愛,伊勢 幸一,吉岡 弘隆,平林 純,及川 卓也,増井 俊之,藤原 博文,五味 弘技術評論社Amazon 初めてコンピュータサイエンスを学ぶとき…

Scala 2.13対応の『Scala スケーラブルプログラミング 第4版』は、全Scala使いが買うべき一冊

Scalaスケーラブルプログラミング 第4版 impress top gearシリーズ作者:Martin Odersky,Lex Spoon,Bill Venners,長尾 高弘,麻植 泰輔,立野 靖博,田所 駿佑,水島 宏太インプレスAmazon Scalaの言語設計者であるMartin Odersky著『Scala スケーラブルプログラ…

『[改訂新版]プログラマのための文字コード技術入門』...いつ役立つか分からないからとりあえず買っておいて損の無い一冊

[改訂新版]プログラマのための文字コード技術入門 (WEB+DB PRESS plusシリーズ)作者:矢野 啓介技術評論社Amazon ”基礎技術”系の本には、いつ役立つか分からないからとりあえず買っておいて損の無い一冊、というのが有って、この『[改訂新版]プログラマのた…

仕様と、実装、その間にあるもの

妙に時間をかけてしまって一つのPRを書いた。 Fixed Syntax Summary by magnolia-k · Pull Request #9666 · scala/scala · GitHub Scalaの文法概要の記載が正確ではない(過去の修正で誤りが混入した)箇所を直すものだ。 他の誤りも無いかと確認する過程で、u…

Vimの正規表現でのUnicode周りのこと

ファイルがUTF-8で作成されていても、\uxxxx形式のコードポイントで検索できる(UTF-8のコードポイントではないのは何故だろう?) [^\x00-\x7F]でもUTF-8の2バイト以上の文字にマッチさせられる iskeywordの範囲じゃ無いのに、UTF-8の2バイト以上の文字がワー…

USB Type-Cケーブルは迷わず『⚡︎3』刻印入りのThunderbolt 3ケーブルを買おう

Anker USB-C & USB-C Thunderbolt 3 ケーブル (0.5m ブラック)【100W出力 / 40Gbps / 高速データ転送 / 4K対応 / 5K対応】MacBook iPad Pro 他対応AnkerAmazon 認証済み Cable Matters Thunderbolt 3 ケーブル 40 Gbps サンダーボルト 3ケーブル 100W充電 0.…