水底

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

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

プログラムの実行時間を計測したいけどプログラム自体には手を加えたくないor加えられないということがあると思います。プログラム全体の実行時間の計測時間であれば time コマンドで簡単に行なえますが、より内部的に計測する場合の一つの手段として、標準…

GPU Passthroughの最前線

TL;DR 今のところ、デスクトップ向けGPUであれば多くの環境で動くが、モバイル向けGPUの場合はゲストOSがWindowsだと比較的新しいGPUが利用できない。 そもそもGPU passthroughとは GPU搭載のマシンで、VMから直接オーバーヘッド無しでGPUを利用できるように…

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

結論から xxx.Dockerfile とするのが良いです。Dockerfile-xxx や Dockerfile.xxx といった命名とは違い、多くの環境で Dockerfile として認識されるため、例えばGitHubではシンタックスハイライトが有効になります。 e.g. 同じTensorflowプロジェクト内のDo…

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

TL;DR; 殆の場合において論理削除は不要。素直にRDBの機能を使うかイベントソーシングパターンを導入する。 なんで今更論理削除の話を? 散々議論されていて皆さん飽き飽きしている話題だと思いますが、今一度個人的にまとめたかったからです。 実際にできる…

DockerHubとDockerCloudの使い分け

DockerHubがアップデートされたのでこんな面倒なことはする必要がなくなりました。 DockerHubがまともにアップデートされなくなって暫く経ちましたが、例えば「--build-arg が使えなくて困ってる…」なんて方もいるのではないでしょうか。そんな方向けの記事…

ChromeからFirefoxに乗り換えたらOperaが最高だった話

Opera最高か!!?!?となったのでその経緯とおすすめポイントをメモ程度に。 TL;DR Operaがデスクトップ・モバイル両方で速度面、機能面で完璧だった。

ansibleで環境変数の利用

認証情報を 雑に 渡したかった (※環境依存であまりよくないので, 良い子はansible vaultやファイル分割で扱いましょう). ローカル (Controller host) の環境変数 "{{ lookup('env', 'XXX') }}" リモート (Remote host) の環境変数 "{{ ansible_env.XXX }}" …

ScalaMatsuri 2018に参加してきた

参加してきましたのでメモ書き程度に. Training Day, Day1, Day2行ってきました.

続・Dottyによる変更点

以前以下のようなDottyに関する記事を書きました. amaya382.hatenablog.jp それから暫く経ち, 多くの更新が入ったため新しくまとめました. 公式ドキュメントだけでなくあちこちにちらばった情報を集めています. 過去記事と同じくあくまで真新しい機能のみに…

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

Hivemall/xgboostのテストで使おうとしたけど結局使わなくなったので供養. QEMU全然分からんのでもっと良い方法やオプションがあったら教えてほしいです. 特定のアーキテクチャをちょっと試したいときにOSのインストールとかを考えたりするのは面倒なので, …

Scalaの入門書を書きました

Scalaの入門書がないない言われ続け早n年. この度「Scalaをはじめよう―マルチパラダイム言語への招待―」というScalaの入門向けの本を書きました. 2/16に発刊となりました. 最初は「Scala Tour」という同人誌として執筆し, α版をC92, 正式版を技術書典3にて頒…

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

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

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

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

エイリアスを無視してコマンドのフルパスを取得するだけ

例えば .bashrc や .zshrc で ls の利便性を上げるために alias ls='ls -G' といったようにエイリアスを張っているとします. この状態で ls コマンドのフルパスを取得するため which ls や type ls を実行するとフルパスではなく ls: aliased to ls -G のよ…

ISUCON7本戦は惨敗でした

最後の学生枠チャンスが… 問題解説は公式に譲るとして次回に向けて覚えていることをメモ. 特に有益な情報はないです.

欲しいもの

見かけたら教えてください ノートパソコン MUST 13-15inchi メモリ16GB CPU: HQ以上 ペン入力 (w/ 筆圧) SSD 2K以上の解像度 SHOULD 〜2.0kg メモリ32GB hot pluggable eGPU JP配列 or 短スペースキー・最下段キー多めの配列 トラックポイント 生体認証 LTE …

技術書典お疲れ様でした & BOOTHでScalaTourを販売します

技術書典お疲れ様でした. 技術系個人サークル「かいていどうくつ」としてScala入門本のScala Tourを片手に参加していました. ISUCON2日目と被るわ台風来るわで大変でしたが来てくださった方ありがとうございました. 頒布していたScala Tourですが, 若干数で…

ISUCON7予選通過できた #ISUCON

isucon.net やったぜ! ISUCON5とISUCON6はScala界隈の方とScalaで突破しようとして一般枠で撃沈していたのですが, 今回はチーム「チーム名を考えるのが苦手すぎる」として OUCC の老害組 (@spring_raining, @susisu2413) と人生最後の学生枠を初利用して最…

Scala2.13からの新しいコレクションライブラリ

今更 もうProposalが出されてから暫く経っていますが今更軽く確認したのでメモ書き. 特に大した内容はないです. ちゃんと知りたい方は SCALA 2.13 COLLECTIONS REWORK や ソース を読んで下さい. 過去にScala2.8でも一度Scalaのコレクションライブラリは大き…

日本語版PhotoshopやIllustrator (CS6) を英語環境で起動・認証する方法

ライセンスが言語ごとに分かれているらしく単純に起動しようとすると, 例えばIllustratorの場合は 日本語版としてインストールしても「This serial number supports only 日本語. 」と言われてしまい認証してくれません. CCだと自由に切り替えられるんですけ…

Scalaで競技プログラミングするためのTips

競プロ初心者作 気が向いたら更新していくつもり

Scalaで競技プログラミングに入門したかった感想

ただの感想です. 小技集的なのはそのうち別記事でまとめる予定. (追記: まとめた) amaya382.hatenablog.jp

型クラスの雰囲気をつかんでScala標準ライブラリの型クラスを使ってみる回

Scalaで型クラスと言うとScalaz!?となるかもしれませんが, Scala標準ライブラリでも使われています. 提供されている型クラスが意外と知られていない (?) みたいなのでユースケースを交えて簡単にまとめたいと思います. ※ ゆるふわです. 標準ライブラリの範囲…

(※2018/3/17 新しい記事書きました) Dottyによる変更点と使い方

新しい記事を書きました. 本記事を包含します. amaya382.hatenablog.jp Dottyで何ができるようになるのかとその使い方を簡単にまとめたいと思います. 理論的な部分は深掘りしません. 以下ちょっと長め. 調べきれてない点も多々あるので, 抜けや間違いがあっ…

複数のコマンドの出力をまとめてリダイレクトする2つの方法

1. (), {} の利用 (), {} で囲んでまとめてリダイレクト先を指定する. 丸括弧の場合はサブシェルで, 波括弧の場合はカレントシェルで実行される. 例 { command1 command2 } >> log 2>&1 2. exec の利用 exec は現行プロセスを別コマンドのプロセスに置換する…

sh・bash・zsh等, shellの違いでハマりやすい部分とか

前提として sh の実体は環境によって POSIX互換bash (bash --posix) であったり, dash であったり, busybox であったりと様々である (ls -l `which sh` とすれば実体がわかる). 唯一の制約は POSIX互換であること だ (※どこぞの今はなきお行儀が悪いOSを除け…

いい感じの深層学習に関する資料を貼るだけ

Chromeのタブにスタックされつつあったのでメモして閉じる作戦. 折角なので別途読んだものもまとめて追加してる. 理論系中心でふわふわした某プログラマのための技術情報共有サービスのようなソースはなし. 基本的に最新の事柄を扱っているもの. 結構重複が…

Alpine Linuxでユーザやグループを追加・修正・削除する

Alpine Linux 3.5+ をお使いの方 おめでとうございます!今すぐ apk add shadow しましょう. 他のディストロ同様の useradd・usermod・vipw といった 様々なコマンド がお試しいただけます. Alpine Linux ~3.4 をお使いの方 残念ながらbusyboxによる adduser…

Docker Composeでビルド時に任意のイメージ名を指定する方法

公式リファレンスを見ても分かりづらいのでメモ. Docker Compose経由でビルドされたデフォルトイメージ名は {プロジェクト名}_{サービス名} となる (デフォルトプロジェクト名はディレクトリ名だが, コマンドラインオプション -p から指定可能). 例えば以下…

既存環境に手を加えずにサクッとHTTPS化する (NAT配下でもok)

いい加減やらないとなーとn年思いながらも放置していた案件. 結論から言うと↓を使うだけ. github.com 得られるもの HTTPS化 (DV by let’s encrypt) 無料 ずっと使える (let’s encryptの証明書には90日の期限があるが, 自動的に更新してくれる)