sci

最果て風呂

糊としての 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; をボタンの数だけ作成(名前は小文字からはじめた方がよいのだろうけど)した…

正規表現はむずかしい

スクリプトが変 Emacs Lisp で実装したものでは思惑通りの辞書が出来ているのだけれど、Ruby で作成した json へのコンバーターによる出力だと「空白+単語」の要素が登録されていない。いや登録はされているのだけれど空白が除かれてしまっているのだ。たぶ…

mto を JavaScript で実装してみる

mto を JavaScript で実装し直そうと思って、まずは JSON 形式の辞書をオブジェクトとして読み込んでみた。パースする手間がいらないので楽だった。内部辞書を調べてみると、他の実装と要素数が違ってしまっているのだった。調べてみたら、読み込んだオブジ…

Vimscript の strftime() の戻り値

久しぶりに Getsurei() を動かしたらエラーになってしまった。どうやら辞書から定数を引っぱってくるところでエラーになっているようで、strftime 関数の戻り値が影響しているみたい。 実はこのスクリプトを MBP 上の Vim で動かすのは初めてだった。iBook …

スマホもしくは携帯電話向けのページ設定

先月の終わりに SIM フリーのスマートフォンを手に入れた。SIM はデータ通信専用のものを契約したので通話はできない。電話はまったく使わないので問題なし。 専ら家内 LAN に Wifi 接続して使っているのだけれども、Mac Book Pro よりも使う頻度が高くなっ…

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

24.4 になって Cocoa Emacs でフルスクリーンにしても変な余白が残らなくなったのだけど、フォント関係で問題が生じるようになってしまった。その現象は GIF 画像にすれば一目瞭然なのだけれど、作成するのが面倒なので文章で。 その現象とは「曖昧幅文字(▽…

Cocoa Emacs のメニューバーについて

Emacs 24.4 になってからメニューバーの「Mto」表示位置が変わってしまった。いろいろと調べてみたものの情報が少なく、結局マイナーモードとすることで解決することにした。 マイナーモードは easy-mmode-define-minor-mode という関数を使って簡単に作るこ…

ghc と cabal-install を入れる

GHC と cabal-install をインストールしてみた Haskell.org から下記のファイルをダウンロードする。 ghc-7.8.3-x86_64-apple-darwin.tar.xz cabal-1.20.0.3-x86_64-apple-darwin-mavericks.tar.gz それぞれのファイルを展開し、GHC は go と同じように /opt…

Cocoa Emacs のフォント設定について

Cocoa Emacs でハングル文字が表示出来なかった件。ネットで調べた設定をそのまま参考にしてフォントを set-fontset-fontで 'unicode としてひとまとめにして設定(ヒラギノ丸ゴシック)していたのが原因だった。 昔ながらの方法で、各文字コードごとにフォン…

テストの方法

過去に何度かやってしまっているのだけれど、mto の辞書作成時に辞書形式から逸脱した記述をしてしまい、Internal Server Error を生じさせてしまった。この種の間違いを減らすにはどうすれば良いのだろう?TDD とか? テストはどうやって書けばいいのだろう…

Twitter の仕様変更で TwitVim に問題発生

Vim と TwitVim Vim で TwitVim を使っているのだけど、いつものように :CPosttoTwitter をしてもタイムラインに反映されていなかった。サーバが重くなってるのかなぁと思っていたのだけれど、一向に更新されない。 :UserTwitter をしてみるとエラーが出て何…

mto を Objective-C で実装してみる

前口上 長いこと取り組もうと思っていた Objective-C と Cocoa による mto の実装。少し調べては放置ということをずっと繰り返していて、なかなか成果品を生み出すことができないでいた。 この暮れの休みには不幸にして体調を崩してしまい寝正月になってしま…

mono を使ってみる

Mavericks に mono(MonoFramework-MDK-3.2.4) をインストールしたので、C# で作成したものを MacOSX 上で動かしてみることにした。ちなみにこれって C# だけでなくて F# も使えるようになるみたい。 バイナリというか中間物を生成するには gmcs もしくは dmc…

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

やっぱり比較したくなるじゃない? 先日ベンチマークをしたけれど、ちゃんとやってみる。 方法について 変換対象のテキストは青空文庫にある芥川龍之介の「桃太郎」とする。 新仮名使いを歴史的仮名使いに変換させる処理にかかった時間を計測する(timeコマン…

Go 言語を使ってみる

動機 Twitter の TL で Go 言語について頻繁につぶやかれていたので興味を持っていた。見よう見まねで、手始めに簡易月齢計算である getsurei.go を作ってみたのだけど、C 言語よりは簡単そうな印象だった。 go run getsurei.go のようにすればコンパイルせ…

iBook と ThinkPad

古いマシンの利用 MacBook Pro を購入してからは iBook Late 2001 にほとんど触っていない。Puma(OSX 10.1) として 1年半、Panther(OSX 10.3)と共に約 12 年間使ってきてものすごく愛着があるのだけど、バックライトがチカチカして常用が難しくなっている。…

Vim と Mavericks

Vim がビルドできない!未解決 先日 OS を Mavericks にしたのだけど、Vim のビルドに支障が出るようになってしまった。解決はしなかったけれど、試行錯誤をしたのでメモをまとめておく。 エラーの内容は下記 os_unix.c:834:13: error: conflicting types fo…

Mavericks にアップデートした

Mac Book Pro を Mavericks にアップデート もう年をとって新しもの好きではなくなっているし、不具合があったら復旧するのが面倒で嫌なので、もう少し様子を見たいなぁと思っていた。のだけれど、なぜかアップデートのボタンを押してしまった私。アップデー…