タグ

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

  • Vim の DirectX を速くした話 — KaoriYa

    先日の記事 に書いたとおり Vim のカラー絵文字パッチにより、 DirectX (正確には DirectWrite) を用いた画面描画がめちゃくちゃ速くなりました。 その記事にはこんなことを書いていましたね。 そして僕は大きな間違いに気がついた。 詳細を説明はしませんが、一言で言えば「Vimは標準的なWin32アプリではない」 このあたりをちょっと詳細に説明してみようと思います。 なので Vim の話でありながらほとんど Windows の話になります。 しかも無駄に長くなりそうです。(実際なった) なおこの記事は Vim Advent Calendar 2017 3日めの参加記事です。 遅かった理由 速くなった理由を知るには、その前の遅かった理由を知る必要があるでしょう。 まずはそれを見ていきましょう。 DirectWrite には大きく分けて2つの描画方法があります。 GPUの性能を

  • Vimmerに捧げる正規表現の基礎中の基礎 — KaoriYa

    正規表現はVimに限らずコンピューター上でのテキスト操作において非常に強力です。 しかし学習の難しさも非情で多くのIT技術者、Vimmerが正規表現に苦しんでいるのを幾度となく目の当たりにしています。 ただ正規表現は当にそんなに難しいのでしょうか。 いいえそんなことはありません。 正規表現は来とても簡単な原理で学習も容易なのです。 にも関わらず難しいと思われてしまうのは、原理を理解しないまま外見上の機能をそのまま覚えようとするからです。 記事では正規表現の原理にフォーカスし解説することで、Vimを含む様々な正規表現実装の利用難度を適切にしようという記事です。 記事は Vim Advent Calendar 2019 の1日目の記事です。 「正規表現」はもともと形式言語という言語学の一分野の研究から生まれました。 言語学というのは言葉を科学的に研究する学問です。 形式言語はその中でも

  • golang でのクロスコンパイルの留意事項 — KaoriYa

    golang (for Windows) でクロスコンパイルする際にハマったポイントと、 解決方法を紹介します。 TL;DR golang のクロスコンパイルを準備する場合には、以下の点に留意してください。 (Windows のみ) gccは32ビット版か64ビット版か、使いたい方を正しく選択する 2つ以上の環境へクロスコンパイルする場合には、make.bat/make.bash 実行時に --no-clean を指定する クロスコンパイルの準備をする golang を用いるとクロスコンパイルが容易なことはよく知られています。例えば、Windows上のgolangであっても、OSX向けのバイナリを生成したり、EdisonやRaspberry Pi用のバイナリを生成できたりするのです。ただし、以下に示す、ちょっとした事前準備が必要です。 環境変数 GOOS, GOARCH を設定し %GOR

  • Raspberry Pi 3 のハードウェアエンコーダーを使う ffmpeg のビルドのしかた — KaoriYa

    Raspberry Pi 3 のハードウェアエンコーダーを使える ffmpeg のビルド方法の備忘録です。 自分用の備忘録なので前置きとか一切なし。 まず Raspbian の Strech をインストールしておく。 Strech は2017/09にリリースされた。 一つ前の Jessie には ffmpeg が入ってない。 このあたりは libav と絡んだゴタゴタがあって それはそれで面白いのだけれどこの記事の題ではないので脱線はここまで。 次にソースパッケージを有効にする。 ffmpeg をビルドするのに build-dep と source を取得できるようにするため。 コマンドでやるとこんな感じになる。 一応 .bak にバックアップを作ってるのでなんかあったらそれで戻そう。 $ cd /etc/apt $ find . -name '*.list' | xargs sudo

  • Golang と SDL2 でゲームを作る — KaoriYa

    Golang で SDL2 を使って作ったゲームを RasPi3 で遊びました。 その方法を紹介します。 記事は Go Advent Calendar 2016 24 日目の記事です。 導入 皆さんは突然ゲームを書きたくなること、ありませんか? ありますよね? あるでしょ。あると言ってください! 私は最近 ドキュメントスキャナ を入手しまして、 手元にあった古いプログラミング雑誌をまとめてスキャンしてました。 あ、プログラミング雑誌ってのは若い人にはわからないかもしれませんが、 読者が投稿したゲームなどのプログラムのソースコードが掲載され、 それを他の読者が打ち込んで楽しむそういう雑誌です。 だいたいは BASIC で、 今となっては決して長いとはいえないソースコードなんですが、 それでも 超圧縮 されていたりして、 今読んでも「あー楽しいな(楽しかったな)」ってなるわけです。 私が所持

  • Raspberry Pi Zero W に Alpine Linux をインストールする — KaoriYa

    Raspberry Pi Zero W に Alpine Linux をインストールするベターな方法を紹介します。 前置き Raspberry Pi Zero W (以下ZeroW)は1300円という値段で購入できる、 Wi-Fiに接続可能な格的なコンピューターです。 ZeroW には発売元よりRaspbianというDebianベースのLinuxが提供されています。 しかしクアッドコアの Raspberry Pi 3 ならともかく、 シングルの ZeroW で動かすにはたとえGUIが省略されたLITE版だとしても、 ZeroWではやや非力に感じてしまいます。 つまりZeroWをより軽いLinuxで使いたいということで、 私が白羽の矢を立てたのが Alpine Linux (以下Alpine)でした。 AlpineはDocker等で使われる軽量OSの1つで、 そのサイズの小ささが特徴です。

  • Vimが変なファイルを作るようになった — KaoriYa

    +kaoriya版として配布しているVimでは デフォルトで undofile がオンになった関係で ファイルの保存時に変な名前のファイルが作成されるようになりました。 その解説をします。 うちで配布している Vim は 7.4.227 から、デフォルトで undofile がオンの状態で配布されるようになりました。そのためデフォルトではファイルを保存した時に同時に.{ファイル名}.un~ を undo ファイルを作成します。この undo ファイルにより Vim は undo の情報をセッションを越えて保持できます。 しかしいきなりゴミのような名前のファイルが生成され、普通のユーザは驚くことでしょう。かく言う私も驚きました。っていうかそのまま間違えてレポジトリに commit しちゃいました。それでは困りますので、無効化する設定などを紹介しておきます。 完全に無効化する こう設定してくだ

  • renderoptions の設定のしかた — KaoriYa

    Vim は 8.0 で DirectX に対応しました。 しかし誰もそれの良い設定のしかたを知らないはずなので解説します。 記事は Vim Advent Calendar 2016 の 25日目(最終日)の記事です。 TL;DR Vim で DirectX を使うには以下のようにしてください。 OS の ClearType テキストの調整 を実施する VimUTF-8 モードで起動し、好きなフォントを設定する set rop=type:directx,renmode:5 で DirectX を有効化する Vim の DirectX サポート 御存知の通り2016年の9月に Vim 8.0 がリリースされました。 10年ぶりのメジャーアップデートということで たいそう話題 になりました。 特に Windows 界隈のユーザーにとっては、 テキストエディタが DirectX に対応した

  • VimのDirectWriteの設定方法 — KaoriYa

    日配布を開始したVimには、すでに何度か紹介しているフォント描画を綺麗にするDirectWriteを利用したパッチを含めました。記事ではその利用方法を紹介します。 この画面は私が普段使っている UM+ フォントを用いたものです。これはいわゆるビットマップフォントというやつで、dot by dotでカッチリ表示されるので私は好きです。ちなみに設定はこんな感じ。

  • WindowsのRuby 2.2でNokogiriを無理矢理使う — KaoriYa

    ブログでは過去にWindowsでnokogiriを使う方法を紹介していました。 WindowsRuby 2.0でNokogiriを使う 以前は真面目にインストールしようとして何度も苦労させられたので、もう今回は付き合ってられるかってことで、Vimを使って無理矢理使えるようにしちゃいましょう。現時点で最新のnokogiri 1.6.6.3にはruby 2.0と2.1のプリコンパイルバイナリが含まれています。この2.1のやつを書き換えます。 使ってるruby 2.2はRubyIntallerのもので、devkitはインストール&セットアップ済みです。 まずは、普通にnokogiriをインストールしましょう。 次にrubyのインストールディレクトリ(私の場合はD:\Ruby\ruby-2.2.3-x64-mingw32)を開きましょう。そこから順番に以下のフォルダを開いていきます。32bit

  • C/Migemo — KaoriYa

    ローマ字入力から日語を(インクリメンタルに)検索するための正規表現を生成するMigemoを配布しています。 概要 ローマ字入力から日語を(インクリメンタルに)検索するための正規表現を生成するRuby/Migemoというライブラリがあります。それをVimに組み込むためにC言語でC/Migemoとしてライブラリに書き起こし公開しています。ソースコードに辞書ファイルは含まれていませんが、インターネットに接続された環境ではライブラリのビルド時に自動的にダウンロードされます。 ダウンロード Windowsバイナリ(DLL) 下のリンクから適切なバージョンを選択してダウンロードしてください。 C/Migemo for Windows 32bit C/Migemo for Windows 64bit ソースコード 完全なソースコードは https://github.com/koron/cmigemo

  • Go/Migemo の紹介 — KaoriYa

    Migemo とは Migemo とはローマ字を入力して漢字を検索するためのライブラリです。詳しく言うとローマ字をひらがなへ変換し、そのひらがなを基に漢字として変換可能な候補を列挙し、それら複数の候補を合成して正規表現パターンを生成する、それが Migemo の主機能です。Migemo が生成した正規表現パターンを用いて検索すれば「ローマ字を入力すれば漢字を含む日語を検索できる」ようになるのです。 1つ具体的な例を示しましょう。ローマ字「kikai」を考えましょう。これはひらがなで示すと「きかい」です。漢字に変換すると「奇怪」「機械」「機会」…まだまだありますが、ひとまず複数候補があるということはわかります。ここまであげた5個の単語に一度にマッチする正規表現は以下のようになります。

  • リアルタイムレイトレーシング! — KaoriYa

    前回紹介したレイトレーシングを GLSL へ移植してWebブラウザ上でリアルタイムで実行できるようにしてくれた人がいました! つい出来心で http://t.co/iTrYIE3g1h — Pentan (@c5h12) 2014, 4月 16 これはスゴい! ってことでブログに貼るためにちょっと手直ししました。 使い方 レイトレース開始! ボタンを押すとリアルタイムレイトレースが開始されます。開始後は描画しているエリアをドラッグ&ドロップすることで視点移動(回転)と、マウスホイールでズーム(視点距離の変更)ができます。 GLSL に対応したハードウェアがあれば快適に動きます。たぶんここ2,3年に購入したPCであればほぼ動くんじゃないでしょうか。是非試してみてください。 これがスゴいのは、レイトレースもどきではなくて正真正銘のレイトレースが(フラグメント)シェーダー上で動いているってことで

  • WindowsのRuby 2.0でNokogiriを使う — KaoriYa

    WindowsRuby 2.0でXML解析のNokogiriを使うのにちょっと苦労しましたのでどう解決したかを記録しておきます。 使っているRubyrubyinstallerの2.0.0で、WindowsにはMinGW/MSYSが導入済みです。Installing Nokogiriには Luckily for you, building on Windows is so difficult that we’ve done it for you などと書いてありましたが してもエラーになるばかりでした。 解決方法 どう解決したかを端的に言うとlibxml2, libxsltを自前でコンパイルしました。なので WindowsRuby 2.0でNokogiriを使う 手順はこうなります。 libxml2 の最新版を自前でコンパイル&インストールする ftp://xmlsoft.org/li

  • Chrome on Xubuntu の文字化け解消法 — KaoriYa

    Chrome on Xubuntu においてタブやアドレスバーの文字化けを 解消する良い方法が判明しましたので解説します。 最近 Chrome on Xubuntu においてタブやアドレスバーがひどく文字化けしていました。 Chrome on Xubuntuで、タブ、アドレスバー、メニュー内の非日語文字が日語文字に置き換えられる現象に見舞われてる (´・ω・`) pic.twitter.com/5efkB09pu6 — MURAOKA Taro (@kaoriya) 2014, 4月 11 あまりにもヒドイので解消法をググったところ、比較的最近 Quita に登録された記事がひっかかりました。 xubuntu の Chrome でタブだけ文字化けする場合 xubuntu-desktop に付随して入る fonts-droid がよろしくないらしい とのことで、この記事では fonts-

  • 復刻!レイトレーシング! — KaoriYa

    昔はやたら長い時間のかかったレイトレーシングを 現在のPCでやったらどのくらいで計算できるのか、 気になったのでやってみました。 レイトレーシングという3D CG技術があります。目に飛び込んでくる光(ray)を逆にたどる(tracing)ことで、リアルな、とは言っても今ではいかにもコンピュータっぽい3D CGを描くというものです。 このレイトレーシングでは非常に計算、描画に時間がかかります。またその手法自体はとても古く、8bits時代から雑誌や書籍にプログラムが掲載されていました。当時のパソコン少年にとっては、そのプログラムを苦労して入力し下手をすると数日間パソコンを動かすことで手に入るCGは、ある種のステータスだったと言っても過言ではないでしょう。しかし描画にあまりに長い時間がかかるため、もちろんマルチタスクなど無い時代ですから、途中でこらえきれずに計算を打ち切ってしまう少年・少女も多か

    復刻!レイトレーシング! — KaoriYa
  • もんたメソッドプラグインの紹介 — KaoriYa

    もんたメソッド は(最近、突然TVでは見なくなった)某司会者がTV番組で行なっていた、一部を隠した文章を基にそれを徐々に見せながら行なうプレゼンテーションの方法です。さっきそれを知った私は、手軽にHTMLでもできたらな、ということで早速 jQuery プラグイン jquery-monta を書いてみました。 使い方は簡単です。まずは jQuery を読み込んでから、jquery-montaを読み込んで、隠したい 要素を jQuery で選択して monta() メソッドを呼ぶだけです! 実際の書き方はこんな感じ。 <div id="monta-sample"> これは<span>もんたメソッド</span>のサンプルです<br /> <span>隠したい要素</span>を jQuery でクエリーして <span>monta() メソッド</span>を呼ぶだけで<br /> 手軽に<s

  • iBusがクソになった理由 — KaoriYa

    Xubuntu を 13.10 へアップデートしたら日本語入力(iBus)がクソになったのでその理由を調べてみました。 Xubuntu を 13.10 へアップデートしたら日本語入力(iBus)がクソ(1.5)になりました。どんなにクソかは iBus 1.5がクソすぎる に譲るとして、私はどうしてそうなったのか (あわよくばどうすれば直るのか) を真夜中に調べてましたのでその成果を記しておこうと思います。 私の場合 Vim でIMEを制御 できないことで問題が根深いことを知りました。調べてみると InputContext というクラスから is_enabled(), enable(), disable() の3つのメソッドが消えていました。これらのメソッドは端的に言うと日語の状態を取得、有効化、無効化するものです。うんもうIME制御なんてできません。ちなみに その修正が行われたのは約2年

    mieki256
    mieki256 2013/10/25
  • enchantMOON レビュー — KaoriYa

    enchantMOON を使ってみて気になったことを書き留めておきます。 未来の enchantMOON のために。 04/23 に注文した enchantMOON が 07/20 に届きました。 わずかな時間ですが、使ってみたので気になったことを書いておきます。お世辞にも「現状で長く使おうと思えるもの」「もっと使ってからレビューしよう」と言えないあたりは察してください。 一応、購入に至る背景を書いておきます。まずもともとは買うつもりは一切ありませんでした。理由は簡単で「ハードやるのが初めてなところから実用に足るものがでてくるわけがない」と考えていたからです。その考えは今も変わっていません。にも関わらず この記事 が 刺さり 購入を決定しました。 刺さりポイントは次の通り: 自分たちのハードを作って売ろうという心意気 手書きの重要性への共感 彼らに次の打席へ立って欲しかった まとめると、初

  • 1