タグ

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

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

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

    invent
    invent 2020/01/21
  • カラー絵文字パッチ制作の経緯 — KaoriYa

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

    invent
    invent 2017/11/27
  • Vim の配布場所を github に変更しました — KaoriYa

    香り屋版の Vim の一次配布場所を github の releases に変更しました。今後は以下のURLより最新版の香り屋版 Vim にアクセスしてください。 最新リリース情報: https://github.com/koron/vim-kaoriya/releases/latest 過去のリリース情報: https://github.com/koron/vim-kaoriya/releases また vim-jp より、各最新バイナリへのショートカットURLが提供されています。クッションページを挟む形になりますが、必要に応じてご利用ください。 Windows 32bit版 : http://vim-jp.org/redirects/koron/vim-kaoriya/latest/win32/ Windows 64bit版 : http://vim-jp.org/redirects/

  • Vim scriptによるゲームの新アーキテクチャの考察 — KaoriYa

    従来のVim scriptによるゲーム作成時の問題点を解消する、 新しいアーキテクチャを考察してみました。 この記事は Vim script Advent Calendar 2015 の 13日目の記事です。 まずは以下のデモ画像(別ウィンドウ)を見てください。 かなりスムーズに○リオが動いています。実はこれ、全部Vim scriptでできています。 ソースコードは koron/vim-ario に置いてありますので、チェックアウトして gvim -S game.vim することで試せます。ただし動作確認・保証は Windows版の +kaoriya な gvim でしかしておりません。また解像度も画面幅1920ドット無いとおかしなことになるので、異なる環境の場合は各自で調整してPRなどしてください。 操作は以下のとおりです。 h - 左ボタンのトグル l - 右ボタンのトグル f - ジ

    invent
    invent 2015/12/13
  • Vimにrevコマンドを実装してみた — KaoriYa

    この記事は Vim Advent Calendar 2014 3日目の記事です。 前説 VAC2014 のネタを全く考えていなくて、ぜんぜん思いつかなくて困っていたところ 面接官「テキストに書かれた4行をキーストローク5回で確実に上下反転させるにはどうしたらいいですか」 KoRoN「ちょっとvimのソース弄って来る」 mattn「五人だけに誤認逮捕でしょ」 thinca「普通に無理なんじゃ」 Shougo「そのまさかだ!」 一同「言わせねぇよ!」 — mattn (@mattn_jp) 2014, 12月 1 まっつんさんから急にネタを振られたので @mattn_jp :rev<ENTER> — MURAOKA Taro (@kaoriya) 2014, 12月 1 やってみることにしました。 ということで早速 :reverse コマンドを作ってみましょう。 調査 まずは :sort が、

    Vimにrevコマンドを実装してみた — KaoriYa
    invent
    invent 2014/12/03
    Vimにrevコマンドを実装してみた via @kaoriya
  • 最近よく見かけるバッドエンジニアリング — KaoriYa

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

    invent
    invent 2014/10/20
    最近よく見かけるるバッドエンジニアリング — KaoriYa
  • 書籍:Vim scriptテクニックバイブル 発売によせて — KaoriYa

    執筆に参加させていただいた「Vim scriptテクニックバイブル」が、 日、正式に店頭に並びます。 執筆に参加させていただいた「Vim scriptテクニックバイブル ~Vim使いの魔法の杖」が、日、正式に店頭に並びます。早いお店では1週間ほど前から先行販売として売っていたようで、かく言う私も著者見よりも先に、その先行販売 で購入したという状況です(苦笑 7/30 先行販売 『Vim script テクニックバイブル Vim使いの魔法の杖』 技術評論社 (978-4-7741-6634-6) Vim script サポーターズ 著 10冊入荷 http://t.co/QJ5nx2t0QN — 書泉ブックタワーコンピュータ書売り場 (@shosen_bt_pc) 2014, 7月 30 余談ですが、この先行販売により一時的にとある書店のコンピュータ書のベスト3にい込んだらしいです。

    書籍:Vim scriptテクニックバイブル 発売によせて — KaoriYa
    invent
    invent 2014/08/06
    書籍:Vim scriptテクニックバイブル 発売によせて — KaoriYa
  • スパルタンVim 3.0のPDF公開 — KaoriYa

    2013年末のコミケ C85において頒布しました スパルタンVim 3.0 のPDFを公開します。 http://files.kaoriya.net/goto/c85pdf 真面目にVimの使い方を解説しながらも思いっきり趣味に走った作品、ご堪能いただければ幸いです。なお頒布版の誤植を1箇所だけ修正しました。お持ちの方は間違い探しとしてもお楽しみいただけるかもしれません。

    invent
    invent 2014/03/22
    スパルタンVim 3.0のPDF公開 — KaoriYa
  • お好み焼きを食べに大阪まで来ました — KaoriYa

    場のお好み焼きべたいなぁ。と思い立ったので大阪に来てしまいました。折もよく h_east さんが場をセッティングしてくれたということと、私の「夕飯にお好み焼きべに大阪行ったよ」って言えたらカッコイイんじゃないか、というお子さまじみた考えがマッチしてしまいまして。 場所は新大阪駅から御堂筋線で約30分、長居にある…あれお店の名前しらないやw 駅から出て5秒という好立地、事前に写真を見せられていた分かりやすさからお店の名前を覚えてなくても行けます。お隣が「宮むなし」でした。(帰りに確認したらお好み焼き屋さんの名前は丸葉でした。) 場のお好み焼きはなんて言うか軽い感じでべやすく、ワイノワイノ言いながらヘラ(?)で取り分けると…なんというか連帯感が高まるのです。 以上、おしまい。 じゃ、ダメですよね。やっぱりw twitter を見ていた方ならわかるかもしれませんが、このお好み焼き

    invent
    invent 2013/09/14
    お好み焼きを食べに大阪まで来ました — KaoriYa
  • Vim人Tシャツ反省会場 — KaoriYa

    C82において頒布し当サイトにおいて通頒いたしましたVim人Tシャツについて、ただいまより反省会を執り行います。 (ざわざわざわ) ━━━━ では反省会を始めます まずはじめに、Vim人(う゛ぃむんちゅ)Tシャツをお求めいただいた皆さまに御礼を申し上げます。おかげを持ちましてC82の帰り道において私を絶望の淵に立たせた在庫の山は、発送を待つわずか数枚にまで減りました。 ━━━━ 現在の心境などお聞かせください 初めは「なんとか捌けるくらいの数だろ」と甘くみてまして、それがC82が終わってあの在庫量でしたから相当に落ち込みました。ですが、その在庫も尽きようとしていますので、非常に晴れやかな気分です。 ━━━━ 反省点はありますか? サイズ毎の生産枚数です。XLが数的に一番厚くなっておりまして、これは私の趣味や独断が多分に反映されており、判断に冷静さを欠いていたと言わざるをえません。 ━━━━

    invent
    invent 2012/08/21
    Vim人Tシャツ反省会場
  • Vimスクリプトを書いてみよう — KaoriYa

    目的 機能を持ったVimスクリプト(プラグイン)を徐々に作る様子を見て、書き方を学習してみよう 作るのはよくあるタイプのプラグイン Javaの単体テスト用クラスファイルを開く(作る)コマンドを作るよ 「ね、簡単でしょう(by ボブ)」と言ってみたい まずは雛形 ひな形としてこんなスクリプトを作ります。 command! -nargs=0 UtestAppend call &lt;SID&gt;UtestAppend() function! s:UtestAppend() echo 'HERE' endfunction " s:UtestAppend() UtestAppendというコマンドを追加 UtestAppendコマンドいが実行されたら ‘HERE’ と表示する ほら、すごく簡単ですね。 Javaだけに作用させる 以下はdiff形式で変更点だけ。 @@ -1,5 +1,17 @@ c

    invent
    invent 2012/06/12
    Vimスクリプトを書いてみよう — KaoriYa
  • Vimの起動が遅い場合の原因と対策 — KaoriYa

    Vimの起動にかかる時間は来すごく短い。しかし使い方によっては長く(遅く)なってしまう。そうなる原因と対策を紹介する。 Vimは起動にかかる時間が短いソフトウェアです。この言葉に納得できない人はこの文章の残りをちょっと読んで行きませんか? 「Vimの起動、長い(遅い)なぁ」と感じているあなた、その原因が何か調べたことはあるでしょうか。Vimが遅くなる原因の95%はスクリプトの読み込み&実行にあります。「autoload化する」「–startuptimeを使ったことがある」?なかなかやりますね。でもautoloadは単に遅延させるだけで結局かかる総時間はかわりませんし、startuptimeで主にわかるのは各スクリプトの読み込みにかかった時間です。そのスクリプトがなぜ遅くなっているのか、どうすると速くなるのかを紹介しましょう。 遅くなる原因 回りくどいのはここまでです。遅くなる原因を列挙し

    invent
    invent 2011/12/01
  • Vimをお使いの皆さまへ — KaoriYa

    お詫びとお知らせとお願いがあります。今、Vimを使っているかたはもちろん、これから使ってみようかなという方、以前使っていた方も是非、文章の続きをご覧ください。 お詫び 2011/09/15の午前中にふとしたキッカケで、一部ユーザの間で日Vimのコミュニティを統合しようという機運が高まり、実際にそのように行動を開始しました。それに関してまずは幾つかお詫びをしなければなりません。 既に各コミュニティに所属し、頑張っていただいている方々への相談なしに決めて、行動を開始してしまったこと 一時的に各種リソースの位置(URL)が混乱すること 各種リソースの位置(URL)が変化すること これまでそのような情報やコミュニティをまとめていなかったこと 以上により、長い間に渡ってご不便やご不快な思いをされた方、これからされる方もいるかと考えます。まことに申し訳ありません。 ただしそのようなことも今後は過去

    invent
    invent 2011/09/17
  • rubyをdisってみる — KaoriYa

    自分で運用しているredmineが依存性の問題で動かなくなったので、腹いせ&八つ当たりでrubyをdisってみることにしました。 redmineが動かなくなりました。背景はこうです。 FreeBSDにportsでredmine入れて快適だぜ! セキュリティとか怖いからなるべくportsは新しくするぜ! あれredmineが動かくなったぜ? なんでだぜ? 結論からいうとruby-gemsとrailsのバージョンがコンフリクトしたのが原因でした。もともとこのFreeBSD boxにはredmine 1.2.1とruby-gems 1.7が入っていました。そしてある時portsでruby-gemsが1.8にアップグレードされたのです。redmine 1.2.1にはrails 2.3.11がバンドルされています。このrails 2.3.11、実はruby-gems 1.7以前でないと動かないという

    invent
    invent 2011/09/14
    rubyをdisってみる — KaoriYa
  • Vim昔語2011 — KaoriYa

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

    invent
    invent 2011/08/14
    なにこれおもしろ
  • 1