水底

ScalaとかC#とかk8sとか

ansibleで環境変数の利用

認証情報を 雑に 渡したかった (※環境依存であまりよくないので, 良い子はansible vaultやファイル分割で扱いましょう).

ローカル (Controller host) の環境変数

"{{ lookup('env', 'XXX') }}"

リモート (Remote host) の環境変数

"{{ ansible_env.XXX }}"

なんかネット漁っても上記2つを混同しているものが多かったのでメモ.

続・Dottyによる変更点

以前以下のようなDottyに関する記事を書きました.

amaya382.hatenablog.jp

それから暫く経ち, 多くの更新が入ったため新しくまとめました. 公式ドキュメントだけでなくあちこちにちらばった情報を集めています. 過去記事と同じくあくまで真新しい機能のみに注目し, 理論的な部分や実装については深掘りしません. 概要のみなので, 個々の詳細は各見出しのリンク先を御覧ください.

f:id:amaya382:20170429233234p:plain

続きを読む

最短でQEMUを使っていろんなアーキテクチャの環境を手に入れる

Hivemall/xgboostのテストで使おうとしたけど結局使わなくなったので供養. QEMU全然分からんのでもっと良い方法やオプションがあったら教えてほしいです.


特定のアーキテクチャをちょっと試したいときにOSのインストールとかを考えたりするのは面倒なので, セットアップ済みUbuntu Cloud Imageを使います(勿論他のディストロでも良いが, 対応するarchが多く取り回しが良さそうだった). というか使うだけなんですが.

続きを読む

Scalaの入門書を書きました

Scalaの入門書がないない言われ続け早n年. この度「Scalaをはじめよう―マルチパラダイム言語への招待―」というScalaの入門向けの本を書きました. 2/16に発刊となりました.

最初は「Scala Tour」という同人誌として執筆し, α版をC92, 正式版を技術書典3にて頒布していたのですが, 技術書典3で頒布していた際にインプレスR&Dさんからお声がけいただき, 商業誌として世に出すことになりました. 同人版ではまだまだ粗が多かったため, 商業化にあたって大幅なリファクタリングを行いました.

f:id:amaya382:20180215155834j:plain:w350

章立ては以下のようになっており, 同人誌の時代の薄さを受け継ぎ たった86ページ となっています. 分厚い入門書はやってられない…という人でも取り組みやすいかと思います. ページ数は少ないものの, Scalaのほとんどの基本的な構文, 躓きやすい/勘違いしやすいポイントを読みにくくならない程度に詰め込みました. 前から順に読んでいくことでテンポよく知識を吸収できるように構成しています.

第1章 Scalaの世界へようこそ
第2章 Scalaの環境を作る
第3章 Hello Worldを噛み砕こう─エントリポイント・メソッド・式と文・ブロック式
第4章 FizzBuzzしてみよう─for式・if式といった基本的な制御構文
第5章 オブジェクト指向で多角形を扱おう─クラスやトレイトといったオブジェクト指向に関わる構文
第6章 FizzBuzzを作ってみよう─パラメータ多相・コレクション・関数
第7章 安全第一─エラーハンドリング・Option・Either
第8章 らくらく非同期処理 ─Future
第9章 またFizzBuzzしてみよう─IO・JSON・implicit・テスト

これらの章に加えて, 実用的なベストプラクティスや関数型理解の足掛かりになるようなコラムもあります.

著者 伊藤竜一
発行 インプレスR&D
価格(電子版) 1,600円(税別)
価格(印刷版) 1,800円(税別)
サイト プレス, 紹介ページ, サンプルコード(GitHub)

コピペ円滑化のためサンプルコードはGitHubでも公開しています.

なお一般的な書籍とは異なり, 印刷版はオンデマンド方式のため普通の本屋さんでは購入することができません. 以下のストアをご利用ください.

最後に, 商業化するにあたりScala関西の阿部亜沙美さん(@aa7th), 粕谷大輔さん(@daiksy), 国平清貴さん(@Kuchitama) (50音順) にレビューをして頂きました. 急な依頼にも関わらず快く引き受けてくださりありがとうございました.


同人版について: 同人版のScala Tourは紙の本の在庫限りで販売を続けています. が, 商業版は多くのアップデートを含むため, 同人版の購入はお布施程度にお考えください. なお, 今後も同人サークル「かいていどうくつ」としてほそぼそとScalaに関係する同人誌を書いていけたらと考えています.

散々既出で今更だけどmacOSデフォルトのgrepがめちゃ遅だった

(あまりに内容が雑なのでポエム扱いで)

そこそこデカいファイルを扱っていたら気になったのでメモ. 一時期 grepが10倍速くなった と話題になったりしてましたが自分のユースケースでは最大2,000倍程度の速度差がありました (記事の内容とは関係ない部分のようですが).

TL;DR;

速いし多機能なGNUgrep使おう

続きを読む

`docker exec -it` を便利にしたかった

Dockerコンテナ弄りにはみんな大好き docker exec -it (まさかSSH使ってませんよね…?). docker exec -it $container_name $shell_name とすることでコンテナ内に入ってインタラクティブシェルを使うことが出来ます.

ただし基本的にコンテナ内には素のシェル環境しかありません (ツライ). コンテナ内で作業をするとは言えあくまでコンテナは使い捨て. いちいちコンテナ内にzsh, vimやtmuxの自前環境を用意するのは大変で環境も汚してしまうという問題がありました.

…というわけでローカルに用意しておいた設定をコンテナ内に自動的に持っていく docker exec -it 用のラッパーが出来上がりました.

github.com

使い方やサンプルはリポジトリを参照してください. 大体はSSHでリモートに設定ファイルを持っていくというコンセプトの sshrc に倣っています.