タグ KaoriYa
人気順 10 users 50 users 100 users 500 users 1000 usersHHKB Studio レビュー — KaoriYa
2023/10/25発売のHHKB Studioを購入し、構成・構造を細部まで検証したのでレビューします。 レビューする私の立場 私はHHKB Studioの購入者です。 特にどこからか提供や依頼を受けてのレビューではありません。 またHHKBの従来品の愛用者でした。 初期のHHKB Professionalから始まり、 Pro 2、Type-S、HYBRID Type-Sまで... 続きを読む
自作キーボードを始めて5か月の歩み — KaoriYa
はじめに 2020年の11月末。 なんとなく自作キーボードでも始めて見るかと思い付きました。 それまで自分にとって自作キーボードはハードウェア技術的にも既知で、 さらに長年使い続けたHHKBから乗り換える気も起こらず見向きもしなかったわけですが 「実際にやってもいないのにわかった気になるのは頭でっかちでよくない... 続きを読む
go get の動作メモ — KaoriYa
TL;DR module 有効下の go get は -u 相当 (バージョン未指定なら) go.mod の module には /v{2以上の値} という suffix でメジャーバージョンを書く必要がある 省略すると v0 もしくは v1 とみなされる 取得時には go get example.org/foo/bar/v2 のようにする パッケージを取ってくるときはこれで良いが、コマンドの時... 続きを読む
テストのためだけに`interface`を書きたくないでござる — KaoriYa
golangでテストのためだけにinterfaceを書くのが死ぬほど嫌だったので編み出した技を紹介します。 TL;DR テスト(=mock)のためだけにinterfaceは切りたくない 型エイリアスとビルドタグを組み合わせるとinterfaceがなくてもモックが作れる この手法に必要なモックを自動生成するプログラムを作った interfaceは本当に必要... 続きを読む
golangとDockerとOOM — KaoriYa
golangで書いたプログラムをDockerで動かしOOMが発生した際になるべく情報を残して殺される方法を紹介します。 TL;DR golang製のプログラムは仮想メモリ(VSZ)の確保に失敗するとgoroutineのダンプを吐いて死ぬ DockerのOOMはRSSベースで検出時にSIGKILLを投げてくる Docker利用時にVSZで制限をかけるスクリプトを書いた ... 続きを読む
Vimmerに捧げる正規表現の基礎中の基礎 — KaoriYa
正規表現はVimに限らずコンピューター上でのテキスト操作において非常に強力です。 しかし学習の難しさも非情で多くのIT技術者、Vimmerが正規表現に苦しんでいるのを幾度となく目の当たりにしています。 ただ正規表現は本当にそんなに難しいのでしょうか。 いいえそんなことはありません。 正規表現は本来とても簡単な原... 続きを読む
Vim の構文ハイライトでクリスマスツリー
Vim Advent Calendar 2018 の24日目の記事です.昨日は Kaoriya さんのVim に VOICEROID で喋らせたでした. もうすぐクリスマスなので,クリスマスツリーを飾りたいと思います.ただ飾るだけだと Vim のネタにならないので,Crystal や Wast,vim-gfm-sytnax, vim-github-actions といったファイルタイププラグインをつ... 続きを読む
Vim に VOICEROID で喋らせた — KaoriYa
この記事は Vim Advent Calendar 2018 23日目の参加記事です。 TL;DR Vim から VOICEROID を喋らせる koron/vim-voiceroid を作った どんな感じかは デモ動画 を見てね 解説 この10年、仕事を終えて疲れを癒やすのはニコニコ動画かYouTubeだ。 特にお気に入りなのは AquesTalk を使ったいわゆる「ゆっくり動画」。 気が... 続きを読む
Golangでログを吐くコツ — KaoriYa
この記事は Go Advent Calendar 2018 の16日目の記事です。 Golangでプログラムを書く時にログを吐くの、どうしてますか? 本記事ではログを吐く際のコツというか気にして欲しい事項と、 なぜそうなるのかを解説していきます。 一概に「ログを吐く」と言っても、 ライブラリからログを吐く場合とアプリケーションから吐く... 続きを読む
Vim の DirectX を速くした話 — KaoriYa
先日の記事 に書いたとおり Vim のカラー絵文字パッチにより、 DirectX (正確には DirectWrite) を用いた画面描画がめちゃくちゃ速くなりました。 その記事にはこんなことを書いていましたね。 そして僕は大きな間違いに気がついた。 詳細を説明はしませんが、一言で言えば「Vimは標準的なWin32アプリではない」 このあたりをちょっと詳細に説明してみようと思います。 なので Vim... 続きを読む
カラー絵文字パッチ制作の経緯 — KaoriYa
2017/11/26 19:30 頃に vim/vim へ pull request を出したカラー絵文字パッチが、 わずか3時間半のうちにマージされました。 制作に関わったのは mattn さん、k-takata さんそして私の3人で、 超優良な品質のパッチという自負はありましたが、 それでもこの短時間でのマージはまったく予想しておらず、 望外のことに喜びと達成感もひとしおです。 ではその余韻の... 続きを読む
Go言語のヒープに確保するデータの初期化コストについて調べてみた(Go1.8.1版) - Shogo's Blog
golangで p := new(Type) と p := &Type{} の使い分けってどうするべきだろう? — MURAOKA Taro (@kaoriya) April 12, 2017 こちらのツイートに対して、以下のベンチ結果が紹介されていました。 Go言語のヒープに確保するデータの初期化コストについて調べてみた しかし hnakamur2 さんも言及しているように、 これはGo1.2.... 続きを読む
Golang と SDL2 でゲームを作る — KaoriYa
Golang で SDL2 を使って作ったゲームを RasPi3 で遊びました。 その方法を紹介します。 本記事は Go Advent Calendar 24 日目の記事です。 導入 皆さんは突然ゲームを書きたくなること、ありませんか? ありますよね? あるでしょ。あると言ってください! 私は最近 ドキュメントスキャナ を入手しまして、 手元にあった古いプログラミング雑誌をまとめてスキャンしてまし... 続きを読む
golang は ゆるふわに JSON を扱えまぁす! — KaoriYa
以下のツイートにもある通り、一見 golang は struct を定義しないと JSON を扱えないように見えます。似たようなツイートを最近見ましたが、それらは全部誤解です。そこでこの記事では、golang でゆるふわ ( struct を定義せず) に JSON を扱う方法を紹介します。 golang。rubyのようにゆるふわにJSONは扱えない? https://t.co/olsryDHc5... 続きを読む
Vimとgolangの相性の良さを、お見せしますよ。 — KaoriYa
この記事は Vim script Advent Calendar 2015 の 11日目の穴埋め記事(2015/12/22執筆)です。 まずは以下のデモ画像 (別ウィンドウ) を見てください。 2015年のアドベントカレンダーを熱心に追っていた賢明な技術者諸君には、もう説明は不要でしょう。 ソースコードは koron/vim-gopher に置いてありますので、チェックアウトして gvim -S ... 続きを読む
Vim scriptによるゲームの新アーキテクチャの考察 — KaoriYa
従来のVim scriptによるゲーム作成時の問題点を解消する、 新しいアーキテクチャを考察してみました。 この記事は Vim script Advent Calendar 2015 の 13日目の記事です。 まずは以下のデモ画像 (別ウィンドウ) を見てください。 かなりスムーズに○リオが動いています。実はこれ、全部Vim scriptでできています。 ソースコードは koron/vim-ari... 続きを読む
Vim に Gosrc コマンド作った — KaoriYa
この記事は Vim Advent Calendar 2015 の 1日目の記事です。 Vim の golang サポートは非常に手厚いことで有名です。しかしながら、ちょっと $GOROOT や $GOPATH の下にあるソースコードを探検したいって時に、手軽な良い方法がなくて困ってました。主に私が。 誰か作ってくれないかなぁ (/ω・\)チラッ— MURAOKA Taro (@kaoriya) 2... 続きを読む
あぁ^~Vimがぴょんぴょんするんじゃぁ^~ — KaoriYa
let s:gravity = 2.4 function! s:start_pyonpyon() set guioptions-=m redraw! winpos 4000 4000 | winsize 80 24 let [s:maxX, s:maxY] = [getwinposx(), getwinposy()] let [s:unit_h, s:unit_v] = [s:maxX / 133... 続きを読む
golang でのクロスコンパイルの留意事項 — KaoriYa
golang (for Windows) でクロスコンパイルする際にハマったポイントと、 解決方法を紹介します。 TL;DR golang のクロスコンパイルを準備する場合には、以下の点に留意してください。 (Windows のみ) gccは32ビット版か64ビット版か、使いたい方を正しく選択する 2つ以上の環境へクロスコンパイルする場合には、make.bat/make.bash 実行時に --n... 続きを読む
Ractive.js の紹介 — KaoriYa
HTML の DOM 操作を良い感じで隠蔽してくれる Ractive.js というライブラリを紹介します。 本記事は VirtualDOM Advent Calendar 2014 の13日目の記事です。 VirtualDOM といえば React だ、と言わんばかりの流れですが、本記事では敢えて Ractive.js を取り上げます。Ractive.js が VirtualDOM かって? 確か... 続きを読む
Vimにrevコマンドを実装してみた — KaoriYa
この記事は Vim Advent Calendar 2014 3日目の記事です。 前説 VAC2014 のネタを全く考えていなくて、ぜんぜん思いつかなくて困っていたところ 面接官「テキストに書かれた4行をキーストローク5回で確実に上下反転させるにはどうしたらいいですか」 KoRoN「ちょっとvimのソース弄って来る」 mattn「五人だけに誤認逮捕でしょ」 thinca「普通に無理なんじゃ」 Sh... 続きを読む
最近よく見かけるるバッドエンジニアリング — KaoriYa
最近よく見かけるバッドエンジニアリングの発生パターン。 イカしたフレームワーク/ライブラリが誕生する あるプロダクトがそのフレームワークを利用する フレームワークのスコープから少し外れたことをやるためにハックする フレームワークがセキュリティ問題などにより更新される 3のハックのせいでアップデートできない どーすんだよ、これ。 もちろんハックがシンプルで規模が小さい or 適切な方法ならば、アップ... 続きを読む
コードに色を付ける beni を書いた — KaoriYa
ソースコードにシンタックスに応じた色を付ける code syntax highlighter を golang で書いたので 紹介します。 beni - code syntax highlighter written in golang 皆さんは code syntax highlighter (以下ハイライター)って知ってます? & 使ってますか? github や gist にコードを貼ると、... 続きを読む
書籍:Vim scriptテクニックバイブル 発売によせて — KaoriYa
執筆に参加させていただいた「Vim scriptテクニックバイブル」が、 本日、正式に店頭に並びます。 執筆に参加させていただいた「Vim scriptテクニックバイブル ~Vim使いの魔法の杖」が、本日、正式に店頭に並びます。早いお店では1週間ほど前から先行販売として売っていたようで、かく言う私も著者見本よりも先に、その先行販売 で購入したという状況です(苦笑 7/30 先行販売 『Vim sc... 続きを読む
Go/Migemo の紹介 — KaoriYa
Migemo とは Migemo とはローマ字を入力して漢字を検索するためのライブラリです。詳しく言うとローマ字をひらがなへ変換し、そのひらがなを基に漢字として変換可能な候補を列挙し、それら複数の候補を合成して正規表現パターンを生成する、それが Migemo の主機能です。Migemo が生成した正規表現パターンを用いて検索すれば「ローマ字を入力すれば漢字を含む日本語を検索できる」ようになるのです... 続きを読む