bar_1

contents_map

2014年4月24日木曜日

Mac のターミナルの Bash に単語単位カーソル移動のキーバインド設定をする


以前 Linux を使っていたとき bash で Alt+f/Alt+b でカーソル移動できて便利でした。そこで「Mac のコンソール上でも、Bash で単語単位のカーソル移動のキーバインド設定をしたい」と思いました。調べた結果、ターミナルの設定により可能なことがわかりました。以下、この設定方法について説明します。対象とするターミナル・ソフトは、iTerm2 と Terminal です。

2014年4月1日火曜日

[TIPS] Markdown でセンタリングしたい


[TIPS] Markdown でセンタリングしたい


Markdown でふりがなを振りたい」に続いて、Markdown で右寄せ左寄せ中寄せ (センタリング) したいときは、どうすればいいか? (以下、レンダラは marked.js で動作確認した例です。)

2014年3月14日金曜日

PukiWiki からのデータ移行のシンプルな方法

PukiWiki から Markdown への変換


昨年 (2013年)、XP で運用していたマシンが壊れまして。それ以降、XP上のローカルサーバで長年運用してきた PukiWiki から、他のシステムにリプレイスすることを考えてました。

Wiki 以外の方法もなにかないかと、他の方法の模索をしてきたのだけど、やっぱり、Wiki はいいなと思います。

また一方で、ここ最近は Markdown も便利だと感じてました。Markdown そのものは、Wiki (CMS) ではなく、単なるドキュメントの書式でしかないのだけれども、最近は、JavaScript で書かれた Markdown レンダラーがある。こいつを使えば、Markdown でローカル Wiki みたいなことはできるんじゃないか・・ということを考えた。

で、とりあえず PukiWiki のデータを、なんとか他のシステムに移しやすい形にしたいなと。見てみたところ、


  • PukiWiki のデータはテキストファイル (xxxx.txt) で、ひとつのディレクトリにフラットに格納される (pukiwiki/wiki/)

  • ファイル名は、EUC コード (16進数) をそのまま文字列にしたもの。スラッシュなんかの記号を含んだものになる。

  • ファイルの中身は、EUC-JP で、PukiWiki形式で記述されている。(これは、設定にもよるのかも)

ということがわかった。

PukiWiki のデータを OSX 上の HFS+ に展開する


変換するに手っ取り早い方法は、テキストファイルで表現されているデータ構造とデータを、ファイルシステム上に展開してしまう、というものです。

今使っているのは Mac なので、以下のことを考えました:


  • 元のファイル名は見にくいので、デコードして、UTF-8形式で通常の文字列として表す

    • HFS+で使用できない特殊な記号が使用されていた場合は、必要に応じてなんらかのエスケープ処理をする

    • ただし、半角スラッシュの場合は、ディレクトリを掘る (HFS+ の仕様と上記仕様からくる制限)

  • ファイルの内容は、EUC-JP から UTF-8 に、漢字コードを変換する

  • PukiWiki 記法から、Markdown か MediaWiki の形式にする

  • 検索システムは、grep か mdfind を使えばいい

ということを、考えました。

ディレクトリを掘るのは、やっぱフラットに数千ファイルあると、みるのが辛いからです。。。

スクリプト


既存のスクリプトがないか、けっこう探してみたのですが、どうも見当たらない……ぜったい誰か作ってるはずなのに……。まぁ、PukiWiki 自体がもう10年近くリリース止まってますしね。

仕方ない。ということで、Ruby で以下のようなものを作りました:


  • pw2hfs.rb (変換スクリプト本体)

  • nf-pw2md.rb (PukiWiki形式→Markdown形式変換フィルタ)

はじめは MediaWiki 形式にしようかと思いましたが、めんどくさいのでやめました。PukiWiki->Markdown変換は、適当です (一行一行の正規表現マッチングと置換)。あと、スクリプト内で、OSX に入っている iconv コマンドを使ってます。

使い方は、2つのスクリプトを、pukiwiki のデータの格納してあるディレクトリの一つ上において、結果出力用のディレクトリ dst/ を作ってから、pw2hfs.rb を実行します。しばらく待つと、dst/ 以下に、変換したものができます。

この結果と、Invisible.js かなにかを、組み合わせようと思ってます。Wiki の記法 (特に、Markdown 中での、ページ名のリンク ―スクウェア・ブラケットで2重に囲むアレ) 対応は、JavaScript 側でやったほうがいいかな……。

それでは。



2014年3月10日月曜日

Mac OSX 10.9 (Mavericks) で 日本語入力可能な日本語化された Gimp 最新版 (2.8.10) を使うには

Mac の Gimp 最新版 (2.8.10) の日本語入力と日本語化

日本語化したGimp最新版で日本語入力
2014-05-11追記: エラーが出てしまう (日本語) ヘルプを利用可能にするには「Mac の GIMP 2.8.10 のヘルプを使えるようにするには」をごらんください。あと、本記事でSourceForge版と言っていたのは、より正しくは LisaNet版 (Gimp on OS X) でした。SourceForge には、LisaNet版のGimp on OS X と GIMP本家版のGIMP.app の 2 つのプロジェクトがあります。
Mac OSX Mavericks (10.9.X) の GIMP の最新の 2.8 系統は、日本語版のパッケージではいろいろと致命的な不具合があっていい評価が得られていない (たとえば、キーボード入力がショートカットとみなされてしまうとか) みたいだ。中でも、日本語入力ができないのは非常にツラい: 具体的には、SourceForge.jp の Gimp on OS X プロジェクトからダウンロードした LisaNet 版 のもの (Gimp-2.8.10p2-Mavericks.dmg) は、メニューが日本語化されているものの、日本語入力ができない。このためワークアラウンドとして、コピペやテキストファイルからの読み込みをしなければ ならない。非常にストレスフルだ! 一方で、GIMP本家 (gimp.org) のもの (gimp-2.8.10-dmg-1.dmg) は、日本語入力はできるものの、日本語化されていない……。
そ こで、これらの問題を解決する方法として、日本語入力ができる GIMP 本家版をベースに、これを日本語化する方法を説明する。これにより、テキストファイルから文字列をコピペするなんていうまだるっこしいことをしなくて 済み、ごくごく普通に日本語を入力できる GIMP が使えるようになります!!
概要としては、(1) ロケールデータのコピーと (2) 起動スクリプトの修正である。

2014年3月8日土曜日

[TIPS]Markdown で ふりがな

[TIPS] Markdown で ふりがな (ルビ) を使うには


ものすごくニッチなニーズかもしれないけども、Markdown でふりがなを振りたいとき、どうすればいいか?

2014年3月7日金曜日

VBAUnit の OOo Basic への移植

LBAUnit::Helper


VBAUnit (.NET版) を、OOo Basic に移植しようとしてみた。正確には、OpenOffice ではなく LibreOffice にだけども。

LBAUnit-Helper

ところが、OOo Basic には、Eval がそもそもないらしい
おぉ、なんてこった! なので断念した。

ユニットテスト (一般に xUnit) のフレームワークを作るには、その言語にはメタプログラミングの機能が必要とされる。

メタプログラミングには:


  • eval

  • self

  • lambda

といった機能を言語レベルでサポートしていることが望ましい。とくに、ひとつめの Eval は必須。

ところが、OOo Basic (OpenOffice.org Basic) は、これらのどれもサポートしてないんだな。まぁ、Python や Java, JavaScript でやってくれという話なんだろう……。

いちおう、OOo Basic にも TypeName() といった関数や MRI などリフレクション/イントロスペクションの拡張機能はあるにはあるのだけど、Eval がないとどうにもならない; 例えば、テストケースやメソッドを集めて実行する、という部分には、「コードを書くコード」「コードを実行するコード」を Basic がサポートしている必要がある。

クラスやインタフェースの定義、インスタンス変数、プロパティ、オブジェクトの生成をBasicのみでできることは、確認できたのだけどね……。

なので、あきらめた _(」 L、ソ、)_。

assert関数 と結果表示をするヘルパー関数は作ったので、まぁ、なんかに使えると思ったら使ってください (xba 形式でエクスポートしてあります):




2014年1月9日木曜日

Seesaa ブログを Markdown 記法で書くには: Markdown Here を利用する方法

必要とされる準備は以下のとおり:必要とされる準備は以下のとおり:


  1. Seesaa ブログの設定で、リッチテキストエディタの有効化

  2. Firefox のアドオン: Markdown Here のインストール

試した環境は、Mac OS X Mavericks + Firefox 26.0 です。

ちなみにここで紹介する方法は、Seesaa 以外でも適用することができ、かつまたもっともカンタンな方法だと思います。また、Markdown Here アドオンはトグルする機能を提供する拡張機能であるため、Markdown ⇔ HTML 双方向の変換はいつでもできます。

1. リッチテキストエディタを有効にする



  • Seesa BLOG 管理画面で、設定>詳細設定から、ブログ設定 を選択する

  • 設定項目の リッチテキストエディタ (上から14項目目くらいにあるラジオボタン) を 利用する の方をチェックする

  • 一番下の保存ボタンをクリックする

くわしくは、こちらから。

2. Markdown Here をインストールする


Markdown Here のHP から、インストールできます。なお、Markdown Here は、Firefox 以外にも、主要なブラウザには対応している模様です。

使い方


準備1., 2. をした上での書き方は、以下のとおりです:


  • 新規投稿などで、textarea にてきとうに Markdown で書く

  • 変換したいドキュメントの部分 テキストエリアを、選択する (テキスト全体が一括で変換されます)

  • 右クリックではなく、Firefox の URI バーの右端のところに表示されている Markdown Here のアイコン (☆の右にある、紫色のばってんっぽいもの) Markdown Here のアイコンをクリックする

    • →選択部分が、変換される

  • めでたしめでたし

まとめ



  • Markdown Here アドオンを利用した、カンタンで応用性の高い、Markdown 記法の利用方法を示した。

  • この手法により、Seesaa ブログを Markdown 記法でカンタンに書くことが可能となる。

  • この記事自体も、この記事で紹介した手法で書かれている。

References





2014年1月8日水曜日

test


test.


  • MacVim 7.4, バージョンアップしてから調子が悪かったが、:NeoBundleCheck したら、neocomplcache を再インストールしてくれた。



[Ruby] case 文は、一番最初にぶち当たった条件だけが発火する


ついつい忘れがちなんでメモ。


>> def foo( x )
>>   case
?>     when x > 2
>>       puts "cond 1."
>>     when x > 4
>>       puts "cond 2."
>>   end
>> end
=> nil


>> foo( 1 )
=> nil
>> foo( 3 )
cond 1.
=> nil
>> foo( 4 )
cond 1.
=> nil
>> foo( 5 )
cond 1.
=> nil



cond 1. しか呼ばれない、ということで。


2013年9月3日火曜日

Ruby: Hash と values_atメソッド

Ruby 小ネタ。
こ〜んな Hash があるとするじゃろ:

>> h = { a: 1, b: 2 } => {:a=>1, :b=>2}
2014-06-02追記: MDH 2.11.0 で修正
これをこうして……

>> h[:a] => 1
となる。