UTF-8 文字列を省略して一定の表示幅に収める

つまり Go の go/runewidth の runewidth.Truncate みたいなことをしたい。 GitHub - mattn/go-runewidth https://github.com/mattn/go-runewidth で、どうやら unicode-display_width という gem があるらしい。 GitHub - janlelis/unicode-display_width: …

Go 言語で String#eachや IO#eachみたいなことをしたい

Go

忘れがちなので自分用メモ。 string に対して package main import ( "bufio" "fmt" "strings" ) func main() { var src string = "foo\nbar\nbaz\n" var reader *strings.Reader = strings.NewReader(src) // strings.Reader は io.Reader を実装しているの…

tap break 教に入信しようと思う

便利。たった一例しか使った記憶がないけど、それだけでも便利。 first_line = File.open("..."){|f| f.gets.tap{|line| break line.chomp if line } } tap なしだとださいローカル変数がががが first_line = File.open("..."){|f| line = f.gets line ? lin…

ひさびさの自家製はてダラ

で投稿テスト。

org-hatena-diary.el のテスト

org-mode -> はてな記法エクスポータも Emacs からはてなダイアリーの記事を投稿・管理するのも既にあったので手を 組ませてみる。…実装の仕方に目を瞑りさすれば、なかなかよさげ? 設定例 (setq org-hatena-diary-username "アカウント名") (setq org-hate…

Bison/Flex による再入可能字句/構文解析器

いろいろ試行錯誤があったので結論とかをまとめる。 使う API など Flex 側 Flex が提供する `--header-file' オプション 他のソースから yylex_init_extra() とかを使うため YY_DECL マクロ Bison が yylex() のシグネチャを決めつけてくるので歩み寄る `%o…

hatena-diary.el テストそのよん

H2を置いてみるH3も

hatena-diary.el テストそのさん

def hello puts "Hello!" end

hatena-diary.el のテストそのに

私がよく書く言語は Ruby です。 おもに Emacs でコードを書いています。「J a v a」を「Ruby」、「V i m」を「Emacs」に置換する試み。 advice でやってるんだけれども、正直もっと違う仕組みが欲しいところ…。

hatena-diary.el から投稿テスト

こちら (http://d.hatena.ne.jp/tarao/20130110/1357821338) の elisp を あら素敵、と思ったので早速試してみる。

DXRuby1.2.1を試す

リリースされてたので。 http://d.hatena.ne.jp/mirichi/20120325/p1うちの環境だと(WinXPSP3 + Ruby1.9.2 mingw32 + DXRuby 1.2.1 + DirectX9)Imageが残念。↑の元の画像。 DirectX全然しらんけど、似たような現象にほかのPCゲームでも遭遇したことがあるの…

Object#as

try_convertを使うような場面では使えるんじゃないかな、どうかな。 ポッと思いついたときは割と良いと感じたんだけど、時間を置いたら微妙だ…class Object def as(converter) v = converter.try_convert(self) or raise ArgumentError, "#{self} is not com…

divinity.el

Divided initialization、ということで分割した.emacsをロードするelispで す。ずいぶんと大それた名前だなぁ。 init-loader.el (http://coderepos.org/share/browser/lang/elisp/init-loader/init-loader.el) のパクりです。改良点は、 パイトコンパイルを…

投稿テスト2

Emacs + org-mode + org-export の成果物を Ruby + Nokogiri + hatenadiary で整形して投稿するテスト、そのに。puts (1..100).map{|n| x, y = [3, 5].map{|d| n % d == 0 } case when x && y then 'FizzBuzz' when x then 'Fizz' when y then 'Buzz' else n…

org2hatena_test[Emacs][Ruby] 投稿テスト

Emacs + org-mode + org-export の成果物を Ruby + Nokogiri + hatenadiary で整形して投稿するテスト。 puts (1..100).map{|n| x, y = [3, 5].map{|d| n % d == 0 } case when x && y then 'FizzBuzz' when x then 'Fizz' when y then 'Buzz' else n end }

LRLA(1)パーサジェネーレータのDSLのアイディア

ふと思いついたので。 自分で実装する気はさらさらないけどね!lhsとかrhsとかが邪魔だ。Raccでこう書くところを、 program : { result = create_statement_list() } | stmt_list stmt_list : stmt { result = create_statement_list() result.add(val[0]) } …

nscr-mode

さっとこしらえてみた。 Xyzzy-lisps - GitHub http://github.com/arikui1911/Xyzzy-lisps

Gem which + dired + anything

gem whichでgem名からrequireされるライブラリのファイルパスが引けるので、そのファイルだけじゃなくそのgemのlib/とdiredの手を組ませてみる。 さらにインストール済みのgemをanythingでインクリメンタルに選ぶ。 (defun gem-which (name &optional gem-cm…

はてダラRD風フィルタのテスト

はてダラには投稿前にかけるフィルタを設定できることを思い出して。

[bbLean] maple style

Windows クラシック スタイル に合わせて bbLean のスタイルをつくってみた。 揃っていると割りと楽しい。 style.name: maple style.author: Arikui style.date: 2010.02.11 style.credits: style.comments: toolbar: Flat toolbar.font: メイリオ toolbar.f…

[Emacs][Scheme] cmuscheme / run-scheme

GNU Emacs 23.1.1 (i386-mingw-nt5.1.2600) にて。Inferior Mode で 2 窓で上がファイル、下が対話シェルのバッファ、という設定をこころみる。 (defadvice run-lisp (before run-lisp-preparation) (switch-to-buffer-other-window (get-buffer-create "*li…

nokogiri 1.4.1 にアップデート

で、下記の問題が解消してませんでしたが。 ちょっと困る - nokogiri 1.4.0 http://d.hatena.ne.jp/arikui1911/20091126/1259231201 勘違いでした。やらかしてたのは RubyGems のほうでした。 古い nokogiri がロードされていたみたいだ。 gem() でバージョ…

nokogiri 1.4.0

1.3.3 で直ったと思った UTF-8 以外の日本語ページでの問題が再発。 Nokogiri 1.3.3 で Ruby1.9 のパース結果は完全 UTF-8 文字列に - きたももんががきたん。 http://d.hatena.ne.jp/kitamomonga/20090729/ruby_nokogiri_1_3_3_with_ruby_1_9_encoding

ruby-mode

Windows XP、GNU Emacs 23.1.1 でのおはなし。 ついに ruby-mode が標準添付に相成ったわけですが、ちょっと残念。 ruby-mode は Ruby1.9 のエンコーディングのために自動で例のマジックコメントをつけてくれるわけですが、Ruby1.9 が知らないような # -*- c…

bison.el

これが若干残念。何が残念かと言うと、 c-mode が 1 回も呼ばれてない状態だと、 c-mode が初回に用意する変数を触る bison-mode はコケる。 xyzzy では組み込みの major-mode も /lisp に置かれていたので、ちょっと新鮮なハマり方だ。どー対処すればいいん…

Opera プラグイン Obook の目次を HTML にする

Obook は設定されたディレクトリのルートに XML ファイル (obook.xml) を置いて、そのディレクトリ以下に収めたスクラップした Web サイトデータを管理しているようだ。他のブラウザからもそれまで溜めたスクラップを見れるように、その XML ファイルをごに…

Opera が重い…わけではないが

結果的に重くなる。メモリをアホみたいに食って、しかも解放しないっぽいからだ。 Opera10になってさらにウチのマシンには重荷である。 最小化するとページアウトするんだっけ? でも重いときは最小化自体が重い。個人的になじみの無い Win32API だらけで戦々…

politrunc.rb

Windows 版の Polipo の -x オプションは使えない。http://ely.ath.cx/~piranha/software/polipo_trimcache/なのでここの polipo-trimcache という Python 製のコマンドを移植してみる。 名前は POLIpo cache TRUNCate ってことで。いまいちしっくりこないけ…

hatenadiary ライブラリ

gem にしてみました。インストールは(GitHub を gem の source として追加して) $ gem install arikui-hatenadiary何するかというと、mechanize を使ってはてなにログインしてはてダに投稿とかします。 自前のはてダラの一部を抜き出しただけです。使い方: r…

はてダとRuby1.9とMechanizeと

編集画面(http://d.hatena.ne.jp/はてなID/edit)で失敗する。 MechanizeのHTMLの実体参照を戻す関数でエンコーディング回りの例外が起きるからだ。結論から言うと、これで回避できた。 require 'www/mechanize/util' class << WWW::Mechanize::Util org = in…