タグ

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

  • 自作キーボードを始めて5か月の歩み — KaoriYa

    はじめに 2020年の11月末。 なんとなく自作キーボードでも始めて見るかと思い付きました。 それまで自分にとって自作キーボードはハードウェア技術的にも既知で、 さらに長年使い続けたHHKBから乗り換える気も起こらず見向きもしなかったわけですが 「実際にやってもいないのにわかった気になるのは頭でっかちでよくないな」 と考えてやってみることにしたのです。 ということでやってみて見事にハマりまして 始めて1か月で数台のキーボードを組み立て この5か月で10台を超え20台に迫る勢いでキーボードを組み立て・設計・制作するに至りました。 この記事では自分が作ってきたキーボードたちを振り返ってみたいと思います。 なにぶん数が多いので1つのキーボードにつきなるべく量を絞って以下の観点から書き下していきます。 なぜそのキーボードを選択したのか(作ろうと思ったのか) 作った際の特徴、思い出話とかあれば 作っ

    tuki0918
    tuki0918 2021/04/23
  • 一部のポートが潰されちゃう件と正しい回避方法 — KaoriYa

    記事は前回の DockerNATが一部のポートを潰しちゃう話 を読んでることを前提に書かれています。 まだの方は先にそちらを読んでからこちらをどうぞ。 TL;DR Windows には「ポート除外範囲」(excludedportrange)という指定した範囲のポートの利用を禁ずる機能がある 実は「ポート除外範囲」には2種類ある エフェメラルポートの動的割当から除外する 特定プログラムが予約し、そのプログラム以外からの利用を禁ずる 2種類とも同じコマンドで確認できるのでややこしい Hyper-Vをインストールする前に「ポート除外範囲」を追加するのが良い コマンド例: > netsh int ipv4 add excludedportrange protocol=tcp startport=2222 numberofports=1 経緯 前回の記事 を公開したところ、 ある方から以下のような

    tuki0918
    tuki0918 2019/11/03
  • DockerNATが一部のポートを潰しちゃう話 — KaoriYa

    Docker Desktop for Windows と VirtualBox を共存できないか試していて、 もっとも納得できていない現象を紹介します。 記事はトライしたけどできなかった系のお話から始まります。 さらに妥協した方法を模索しているうちに不可解な現象に遭遇しました。 たまたまその不可解な現象の回避方法を発見しましたが、 どうしてそれがうまく機能するのかはわかっていません。 教えてもらったことをきっかけに正しい理解を得ました。 詳しくはこちらの 追加記事 をご確認ください。 TL;DR Docker Desktop for Windows の仮想スイッチ vEthernet (DockerNAT) が生きてると、VirtualBox のポートフォワーディングで 1688 から 2279 の範囲が利用できなくなる ネットワークアダプタ vEthernet (DockerNAT)

    tuki0918
    tuki0918 2019/10/21
  • カラー絵文字パッチ制作の経緯 — KaoriYa

    2017/11/26 19:30 頃に vim/vim へ pull request を出したカラー絵文字パッチが、 わずか3時間半のうちにマージされました。 制作に関わったのは mattn さん、k-takata さんそして私の3人で、 超優良な品質のパッチという自負はありましたが、 それでもこの短時間でのマージはまったく予想しておらず、 望外のことに喜びと達成感もひとしおです。 ではその余韻の残るうちに、 この色付き絵文字対応パッチ制作の時間的経緯を ログを掘り返して書き記しておきましょう。 来は Vim アドベントカレンダーのほうにも使えるネタなんですが、 まぁそちらには別のやつを考えましょうってことで。 あ、メッチャ長いんで要注意。 前日譚 まず以前から mattn さんは色付き絵文字を出したいと表明していました。 先日行われた VimConf 2017 でも言っていましたね。

    tuki0918
    tuki0918 2017/11/27
  • 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

    tuki0918
    tuki0918 2016/12/29
  • 最近よく見かけるバッドエンジニアリング — KaoriYa

    最近よく見かけるバッドエンジニアリングの発生パターン。 イカしたフレームワーク/ライブラリが誕生する あるプロダクトがそのフレームワークを利用する フレームワークのスコープから少し外れたことをやるためにハックする フレームワークがセキュリティ問題などにより更新される 3のハックのせいでアップデートできない どーすんだよ、これ。 もちろんハックがシンプルで規模が小さい or 適切な方法ならば、アップデート時にフレームワークのソース読んでなんとかできるわけだけれど。 とくにフレームワークがカジュアルに使えるほど、3のハックを行う人がド素人で、どうにもならなくなるように感じてる。

    tuki0918
    tuki0918 2014/10/20
  • Vim昔語2011 — KaoriYa

    目次 第一話 遭遇編 第二話 スクリプト編 第三話 激闘編 第四話 昇華編 第五話 翻訳編 最終話 未来編 あとがき 勢いだけで書いてきて未回収の伏線もあったりしますが、そろそろ記憶のほうもかなり曖昧になってきましたので、ここで一つの区切りといたします。2011年のお盆の緊急特別企画ということで楽しんでいただければと思います。 幾分古いことですし、またエンタテインメントとしての性格が強いものですので、文章の表現には誇張や創作があることをお赦しください。また文章中に名前をあげました皆々様には、事前の許可などいただかず誠に申し訳ありませんでしたが、なにとぞご理解とご協力の程をお願いいたします。同時にネタになっていただきありがとうございました。 こういう企画文章を集中的に掲載するのってしんどいですけど面白いですね。特にtwitterを中心にほぼリアルタイムに反応をいただけるのが、執筆を進める上で

    tuki0918
    tuki0918 2012/09/06
  • Vim人ロゴのデータ頒布 — KaoriYa

    おかげさまを持ちましてVim人Tシャツの発送業務が完了し在庫がなくなりました。ご愛顧への感謝の意を込めてTシャツ作成に用いたデータを公開いたします。 Vim人ロゴ - ZIP形式(SVGとPNG同梱) 公開のラインセンスは下記の通りとなります。 Vim人ロゴ by KaoriYa is licensed under a Creative Commons 表示 2.1 日 License. 「表示」とはありますが表示箇所は特に規定しませんので、Tシャツを作るなりマグカップを作るなどした際に、対象物(Tシャツやマグカップ)に表示する必要はありません。頒布や販売する場合に告知媒体(Webページなど)に記載していただければ充分です。 よろしくお願いいたします。

    tuki0918
    tuki0918 2012/09/02
  • C/Migemo

    店主KoRoNはtwitterの @kaoriya にてつぶやいてます。主にカレーのことを。 最近はGoogle+の +Taro MURAOKA でも活動を始めました。 …気が付いたら Vim を配布し始めてから10年が経っていました。 沿革 香り屋は店主KoRoNが1997年4月1日に開設したWebサイトです。 Vimなどの店主が興味を持った物事を取り扱っております。

    tuki0918
    tuki0918 2012/01/28
  • C言語における文字列連結 — KaoriYa

    C言語で文字列連結を行う。とても簡単に思えるけれど、実はパフォーマンスについて考えることもあるんだよ、というお話。 C言語で2つ文字列の連結して、1つの文字列にするプログラム(関数)を書けるでしょうか? ちょっとC言語でプログラミングを学んだことがあれば簡単ですよね。要求仕様としては2つの引数aとbをとり、どちらもNULターミネートな文字列で、その文字列をヒープから確保した領域で連結して戻り値として返す、という感じの動作です。ヨユーですね。ちょっと書いてみてください。 char* str_join(const char* a, const char* b) { char* p = malloc(strlen(a) + strlen(b) + 1); strcpy(p, a); strcat(p, b); return p; } こんな風に書いてしまったあなたは及第点です。個人的には失格です

  • 1