水底

ScalaとかC#とかネットワークとか

ローカルのVSCodeから、ローカルに置いたソースコードをリモートのDocker上で動かす方法

TL;DR;

  • 現状、vscode-remote-development-containerは DOCKER_HOST で指定するdocker over sshに対応しきれていない
  • sshでリモートのdockerソケットをローカルにフォワーディング
  • amaya382/sssh を利用して、ローカルにあるソースコードディレクトリをリモートにマウント
  • vscode-remote-development-containerでローカルにフォワードされたdockerソケットを利用して起動
    • vscode-remote-development-sshは利用しない
続きを読む

さくらインターネット株式会社を退職して博士後期課程に進学します

いわゆる退職エントリってやつですね、せっかくなので。とはいえ技術書典で文章を書くことに飽きたので簡単にしか書きません。

まだ有給消化中ですが1年半勤めたさくらインターネットを10月で退職し、大阪大学大学院情報科学研究科で博士後期課程に進学します。出戻りみたいな感じです。東京から大阪に移りました。

やっていたこと

さくらインターネットには修士新卒で入社し、主に2つのプロジェクトを担当していました。

1つ目のメインで稼働していたプロジェクトですが、こちらはまだリリースされていないので詳細は伏せます。レイヤ的には要件定義・全体設計・DevOps・実際のアプリ開発といったところを担当していました (溢れ出るふるすたっく感!)。最近k8sのイベントや執筆をすることが多かったですが、主にこのプロジェクトで活かしてきたものになります。技術スタックの中でもgolangk8s・gitops辺りを中心的に扱っていましたが、いずれも入社してから触り始めたものばかりだったので非常に視野が広くなった気がします。たのしい。

あ、ただの宣伝ですが、上で触れた執筆活動の1つとして技術書典7でk8s上で動かすアプリの開発方法とデプロイ方法の本を頒布しました。この辺りの技術的に興味がある方、良ければぜひ。

2つ目はサブですがTellusという衛星データプラットフォーム事業です。ちょうど入社した辺りから本格化した完全新規のプロジェクトで、正式版リリースまでを見届けた感じです。Tellus本体の開発ではなく、Tellus本体の開発のサポート・k8sベースの処理基盤を作成し衛星データ処理を載せ替え・Tellusプロジェクトに付随するアプリのマネジメントや一部開発といった部分に携わっていました。ジョインしたての頃はまだ「Tellus」という名称すらない状態からのスタートでしたが、気づけば新しいメンバーが次々に増えサービスも形になっていき楽しかったです。特に、今まで関わったことのなかった宇宙・衛星ドメインの強い方々と一緒に仕事ができたのは貴重な経験になりました。

その他、業務としていくつかイベント参加・登壇したり、業務ではないですが個人的に朝活と称して早朝の誰もいないオフィスに行って業務とは無関係なk8sの機能検証やOSS活動等もしていました。

お世話になった皆様、ありがとうございました。

f:id:amaya382:20191001163726j:plain:w300 f:id:amaya382:20191001163658j:plain:w300

これからやっていくこと

社会人ドクターではなく10月入学の普通の学生になります。社会人ドクターの方々を見て、「私にはそんな器用なことはできないなー、博士後期進むなら集中したいなー」ってことでこの選択になりました。なかなか見かけない選択肢かも知れませんが当然私も初めてなので先が読めなかったりもします。生計の方は研究員やら業務請負やらで立てていく予定ですがどうなるやら。

元々いた研究室に戻るものの、修士までメインで取り組んでいたグラフ処理エンジンの高速化とは少しだけテーマを変え、より広いOLAPの高速化を幾つかのアプローチから取り組んでいく予定です。はやくするぞ〜

おわり

なんか小学生の感想文のようになってしまいましたが、今までのような器用貧乏を脱してなにか1分野でも自信を持てるようになれたらなと思っています。研究以外にもやらなければならないことがあったりするのでそちらも頑張ります。やることの優先順位付けと同じミスを繰り返さないこと大事 (書いておけば気をつけるだろう理論)。

もっと詳しい話を聞かせろーとかあったら声をかけてください。よろしくおねがいします。 (もう大阪ですが…)

最後に、なかなかこんな機会無いので、貼っとけと言われることが多い乞食リストを貼っておきます。碌なものがないのは仕様です。

GNU系とBSD系のコマンドで特によくハマるやつ

「あなたのシェルスクリプト、ポータビリティありますか?」

まぁ個人的によーーーくハマる、というかほぼほぼBSD環境やらかしがちなやつのまとめです。バージョンによっては別の挙動をすることも多いので注意。

続きを読む

プログラムを変更せずに標準出力ごとにタイムスタンプを付ける方法とPythonでのサンプル

プログラムの実行時間を計測したいけどプログラム自体には手を加えたくないor加えられないということがあると思います。プログラム全体の実行時間の計測時間であれば time コマンドで簡単に行なえますが、より内部的に計測する場合の一つの手段として、標準出力のタイミングをチェックするという方法があります。 そんなときに便利なコマンドのメモです。

例えばこんな感じに。

[2019-05-18 17:11:14] 0
[2019-05-18 17:11:15] 1
[2019-05-18 17:11:16] 2
[2019-05-18 17:11:17] 3
[2019-05-18 17:11:18] 4
続きを読む

GPU Passthroughの最前線

TL;DR

今のところ、デスクトップ向けGPUであれば多くの環境で動くが、モバイル向けGPUの場合はゲストOSがWindowsだと比較的新しいGPUが利用できない。

そもそもGPU passthroughとは

GPU搭載のマシンで、VMから直接オーバーヘッド無しでGPUを利用できるようにする技術の総称です。私の場合は、ノートPCでLinuxをホストとし、QEMU/KVM上に建てたWindowsからGPUを利用しようとしています。が、一筋縄では動かすことができません…

なお具体的な設定方法は巷にたくさん転がっているため、この記事ではまとめていません。

続きを読む

同一ディレクトリに複数のDockerfileを置くときの命名方法

結論から

xxx.Dockerfile とするのが良いです。Dockerfile-xxxDockerfile.xxx といった命名とは違い、多くの環境で Dockerfile として認識されるため、例えばGitHubではシンタックスハイライトが有効になります。

e.g. 同じTensorflowプロジェクト内のDockerfileでも異なる。前者はDockerfileとして扱われているが、後者は認識されていない。 (もしかしたらGitHubのアップデートで変わるかもしれませんが…)

論理削除について再考、そしてイベントソーシングへ

TL;DR;

殆の場合において論理削除は不要。素直にRDBの機能を使うかイベントソーシングパターンを導入する。

なんで今更論理削除の話を?

散々議論されていて皆さん飽き飽きしている話題だと思いますが、今一度個人的にまとめたかったからです。 実際にできる/できないではなく、テーブル設計的にあるべき姿かどうか・実装運用時にどうなるかに重きを置きます。何度か論理削除を利用したプロダクトに関わった経験に基づく個人的な感想です。PostgreSQLベースです。

続きを読む