ブックマーク / www.kaoriya.net (7)

  • Keyball61の一般販売に寄せて — KaoriYa

    2022/03/02の昼12時よりトラックボール付き自作キーボードKeyball61が一般販売されます。 販売を記念してファームウェアを担当した身としてKeyball61の魅力をかなり角度を付けて語りたいと思います。 2022/03/02の昼12時よりトラックボール付き自作キーボードKeyball61が一般販売されます。 販売を記念してファームウェアを担当した身としてKeyball61の魅力をかなり角度を付けて語りたいと思います。 明日3/2㈬の昼12時から #Keyball61 の初期ロットを10セットだけ販売開始します!初回はLEDおまけ付きです 量産版供給はその一週間後くらいの予定です。よろしくお願いします🙏https://t.co/FL8TvBTooE — 白銀ラボ ヨーキース🎱 (@Yowkees) March 1, 2022 Keyball46との関り Keyball61を

    Keyball61の一般販売に寄せて — KaoriYa
  • Goでゆっくりしていってね! — KaoriYa

  • テストのためだけに`interface`を書きたくないでござる — KaoriYa

    golangでテストのためだけにinterfaceを書くのが死ぬほど嫌だったので編み出した技を紹介します。 TL;DR テスト(=mock)のためだけにinterfaceは切りたくない 型エイリアスとビルドタグを組み合わせるとinterfaceがなくてもモックが作れる この手法に必要なモックを自動生成するプログラムを作った interfaceは当に必要なシーンで使うべき Background 現在モックを使った単体テストは一般的です。 Javaでの例を挙げると、モックしたいコンポーネントについて予めinterfaceを定義しておき、モックではそのインターフェースを実装するのが定石です。 しかしgolangのinterfaceはJavaなどのそれとは若干性質が異なるため、テスト=モックのためだけにinterfaceを書くのはオーバーワーク気味です。 そうテストのためだけにinterface

  • golangとDockerとOOM — KaoriYa

    golangで書いたプログラムをDockerで動かしOOMが発生した際になるべく情報を残して殺される方法を紹介します。 2020/08/16追記: この記事の内容はgolangに関してはやや現実的ではなくなってしまいました。 詳しくは続編を参照してください。 TL;DR golang製のプログラムは仮想メモリ(VSZ)の確保に失敗するとgoroutineのダンプを吐いて死ぬ DockerのOOMはRSSベースで検出時にSIGKILLを投げてくる Docker利用時にVSZで制限をかけるスクリプトを書いた golang製のプログラムはlinux-amd64において最低でも101MBのVSZを要求する VSZの制限がそれより小さいと当然起動できない 実際のRSSは3MB程度で起動する Background コンテナ内で動いているプロダクション上のgolang製のプログラムが時々OOMに殺されて

  • 鳩サブレーの食べ方講座 — KaoriYa

    digo
    digo 2018/09/25
    まず、しめるのね。
  • golang は ゆるふわに JSON を扱えまぁす! — KaoriYa

    以下のツイートにもある通り、一見 golang は struct を定義しないと JSON を扱えないように見えます。他にも似たようなツイートをチラホラと見かけましたが、それらは全部誤解です。そこでこの記事では、golang でゆるふわ (structを定義せず) に JSON を扱う方法を紹介します。 golangrubyのようにゆるふわにJSONは扱えない? https://t.co/olsryDHc5G — bamchoh (@bamchoh) 2016年6月24日 この記事では入力の json.Unmarshal() を取り扱いますが、出力の json.Marshal() にも応用できます。 TL;DR json.Unmarshal() には *interface{} を渡せます interface{} は dproxy を使うと、値のアクセスで楽ができます json.Unmar

  • Vim — KaoriYa

    配布の案内 WindowsVim最新版のGUI,CUI同梱版をZIP書庫で配布しています。vim.org等で配布されるオリジナルに、日語を扱う上で便利な設定やスクリプトが追加されています。必要なファイル(シンタックス定義・マクロ・日語マニュアル)が全てまとめてあるので、これ1つをダウンロードして解凍すればすぐにVimを使うことが出来ます。 VimのVersion 7.4系列をVisual Studio 2010(以下VC10)でコンパイルして配布しています。32bit版のWindowsでは64bit版はご利用いただけません。VC10でコンパイルするためにVisual Studio 2003(VC8)以前でコンパイルしていた過去の版で利用できていたいくつかの機能は使えなくなっています。 書庫にはUNIXでのコンパイルに利用可能なパッチも含まれています。 ダウンロード 下のリンクからご利

    digo
    digo 2012/02/06
  • 1