sci

最果て風呂

データSIMのみでネット接続をまかなう

事情 突然に転居することになり、インターネット接続はどうしようかなぁと、ぼんやりと考えていました。前の部屋を引き払ってから最初の1カ月間、ネット接続はスマホで利用しているデータ SIM だけで過ごすことになりました。 今まで、スマホだけの運用では …

旧仮名遣いと 5 年間

旧字旧仮名の文章を置換するスクリプト mto を作りはじめてから丸 5 年が経った。当時はバージョン管理システムを使っていなかったので、ファイルを更新する度に file-1 のように別名で保存して管理をしていた。使い捨てのスクリプトばかりだったし、自分に…

mto を PHP で実装してみる

OSX には PHP が標準で装備されていることを知り実装してみた。スクリプトの実行だけならば Node.js のような感覚で使うことができるようだ。とりあえず Ruby のスクリプトを参考にしながら PHP でスクリプトを書いてみた。 環境変数の取得 まずは辞書の場所…

mto を C++ で実装してみる

C++ での実装ができた。手間はあまり変わらなくて、実行速度は C よりも若干速い程度だった。大きいファイルの読み込みでベンチマークをしていないので、誤差の範囲かもしれないけれど。 今まで実装してきたものと大きく変わるのが class を使うという概念。…

Gnuplot で AquaTerm を使えるようにビルドする

5.0.3 にアップデートするため、いつものように ./configure --with-readline=builtin --with-aquaterm としてビルドしたのだけれど、AquaTerm が認識されていなかった。config.log を見ると下記のようになっていた。 configure:8910: checking for AquaTerm…

Fork するタイプの Pull Request

はじめに しばらく GitHub で 独り Pull Request をしていたのだけれど、ステップアップしてちょっと難しい Fork をするタイプのプルリクエスト (以降 PR とする) をすることにした。理解するポイントは、本家・リモート・ローカルの 3 つのリポジトリの関係…

texi2any で出力される HTML タグの関係表

Emacs をビルドしていると UTF-8 うんぬんの警告が出るので、texinfo を 6.1 に上げてみた。C の makeinfo から Perl の texi2any になって変換速度は遅くなったけれど、かなりまともなタグを出力するようになっていた。<br> タグが惜しい。 @documentencoding U…

続 ImageMagick をビルドする

年末に一瞬 7.0.0 のアナウンスがあったような気がするのだけれど、6.9.2-x に戻ってしまった。何か問題があったのかな?さて、この度 6.9.3 がリリースされたのでこちらをビルドすることにした。 前回は png が有効にならなくてあれこれと作業をしたのだが…

ひとり Pull Request その少し先へ

ちょっと前から GitHub で独りプルリクエストの練習をしてきたのだけれど、もう少し先に進んだことをやろうと思った。それは「コミットがコンフリクトしてしまった際に解消する手順を練習する」ってこと。つまり、自分が PR をして、マージされる前に master…

mto を JavaScript(Node.js) で実装してみる

Node って JavaScript の実行環境なんだ GitHub pages で JavaScript 版を動かしているのだけれど、これが意外と速くて使い心地が良いのであった。自分は他人の文章を変換する際はもっぱらこれを使っている(自分の文章の場合は Emacs か Vim 上でちょっとず…

異体字セレクタ?

UTF 系の LaTeX を使えば漢字を手軽に扱えると思っていたら違った。取っ掛りとして葛飾区や葛󠄀城市の「葛」について調べてみることにした。 ウェブブラウザでの表示 ヒラギノ ProN フォントでは「人」の「葛」と表示される ヒラギノ Pro フォントでは「ヒ」…

Objective-C でパスに日本語を含むファイルを開く

普段は JavaScript 版ばかりを使っているので気付かなかったのだが、メニューバーからオープンダイアログを使ってファイルを読み込ませる場合、パスやファイル名に日本語の文字列があると開くことができなかった。また、ファイルの文字コードが UTF-8 以外の…

Windows XP に MSYS2 をインストールした

Windows に MSYS2 をインストールしてみた。ここからダウンロードしてインストーラを実行するも 68% の進捗でインストールが終わらない。何度やってもダメだった。プロセスマネージャを見てみると、bash が動いていて、これを kill するとインストーラが(エ…

mto を C 言語で実装してみる

小さな部品を作って組み合せる 多次元配列 C 言語で辞書を作成する部分を作ってみた。C 言語は入門書しか持っていなかったので、ネットで各人の記事を参考にした。かなり詳しく書かれている人もいて、情報量はかなり多い。そして有用なものばかりだった(すみ…

CocoaMto に辞書の要素を表示するダイアログを実装

メニューバーを利用してファイルの入出力 この記事の続き。 辞書の語彙量を計算して表示させる機能を追加した。それ用の新しいウインドウを作成する方法がわからないので、とりあえずメニューバーから「情報」を選択すると inputTextArea に出力させるように…

ImageMagick をビルドする

ライブラリの依存関係を疑う ビルドはできているのに PNG ファイルを扱うとエラーになってしまうことの調査。ImageMagick-6.9.1 までは必須でなかった pkg-config は、6.9.2 からは必要になってしまった。自分の場合、これをインストールしてから問題が生じ…

Markdown 環境を変えてみた

はてなブログでも Markdown で書けるようになっていた。記事の作成方法はエディタで .md を書き、jekyll で .html を生成し、ブラウザで確認しながら修正していくというもの。そしてこれをブログにコピペして投稿するという流れ。 自分が Markdown を使いは…

糊としての Golang

まるぱく 手持ちの写真の高さを揃える必要があったので、画像を縮小するスクリプトを作成した。はじめに Ruby で実装して作業は終了したのだけれど、勉強のために golang で実装し直してみた。参考にしたのはまっつんさんのこれ。 Ruby では標準で画像のサイ…

Vim script の <SNR>

バグと戯れる :source で読み込んで使っている時には問題が無かったのに、プラグイン化したら動かなくなってしまった。そんな自作プラグイン作成の話。放置してひと月以上が経ってしまった。 エラーメッセージは下記の通り。 Error detected while processin…

Win の Vim は VS で

Vim の clone 元を GitHub へ Vim が GitHub に移行されたので、ここから新規に clone することにした。.git は細かいファイルをたくさん持っているので、リポジトリサイズ(つまりディスク容量)が気になっていたのだけど、400MB あったものが 90MB まで小さ…

Pow は便利

悩みがある sinatra アプリが増えてきて、それぞれのディレクトリに移動していちいち rackup -p xxxx をするのが面倒になってきた。調べてみると、Pow というものが良いみたい。各ブログや紹介記事から推察すると、流行したのは 2011 年後半のようで、現在の…

CocoaMto にファイル入出力を実装

メニューバーを利用してファイルの入出力 この記事の続き。 Cocoa 版にメニューバーからのファイル読み込み・保存機能を付けた。情報が少なくてかなり時間がかかった。 NSOpenPanel *openPanel = [NSOpenPanel openPanel]; NSArray *allowedFileTypes = [NSA…

正規表現の表現

ハイライティングがおかしいので気付いた Vim と Emacs で .scm ファイルのハイライトがおかしい。最初は syntax ファイルをいろいろといじっていたのだけど、どうやら #/〜/ 記法が Gauche 特有のものらしくて、Emacs も Vim もこれを想定していないために…

sbcl 実行バイナリの作り方

実行ファイルを作成するのにはまる 今までずっと sbcl --script hoge.lisp のような使い方をしていたのだけれど、「実行バイナリにすると速くなるよ!」とのことなので挑戦してみることにした。 記事に書いてある通りにやってみたのだが、ファイルを load す…

Gnuplot でのグラフ作成

今回のグラフ作成に使ったコマンド Gnuplot はスクリプトに書いて実行させる使い方をしているので、そう頻繁にコマンドを打ち込むことがない。だからすぐに忘れてしまう。 まずは下記のような tmp.dat を用意しまして、 1 100 2 50 3 430 4 10 ... 11 500 Gn…

各種言語でベンチマーキングその2

やることがなくて暇じゃない? 辞書の要素数が 4400 に増えてきて変換への負荷が高まってきた。前回のベンチからずいぶんと経ったので、再度計測してみることにした。 方法について ブログ記事をローカルで保存している 3.4MB のテキストを変換対象とする。 …

Vim プラグインを作成する

source で読み込んで使ってきたスクリプトをプラグイン化してみる。世の中には良い記事があふれていて丁寧な解説がなされているのだけれども、あまり上手くいかなかった。もっと Vim script を書けということなのかな。 プラグインフォルダの中では autoload…

Cocoa Emacs のフォント設定その3

前回と前々回の記事を書いてからしばらく経った。このときに試行錯誤したことが実は不要になった(であった?)というお話しです。 次のようにすれば期待通りの表示になりました。まずは Font Book でコレクション→日本語→Osaka→レギュラーと進んで、これを「…

mto を iOS に移植してみる

Mto for iOS 画面の構成は iPhone 4.7-inch のサイズでつくることにした。MainMenu.xib ではなく、Main.storyboard になっているのでこれを選択して部品を配置。しなければいけないのだが…… テキストボックスを配置する初っ端から詰まってしまった。Text Vie…

mto を Cocoa で実装してみる

Cocoa で実装することができた 関連付け IBAction は HTML の Form でいうところの name プロパティに相当するのかな?ということに気付いて、 - (IBAction)ClearInput:(id)sender; をボタンの数だけ作成(名前は小文字からはじめた方がよいのだろうけど)した…