2008-01-01から1年間の記事一覧

yasnippet のトリガーを変更して hippie-expand と連携するようにした

yasnippet を導入してみた - gan2 の Ruby 勉強日記ではたくさんのブクマを頂いたわけだけども 当の僕はといえば、実はあれ以来日に日に yasnippet の使用頻度が低下していき 遂には全く使わないようになってしまっていた。 というのは、「スペーストリガー…

はてなハイクで筆のボタンを押したときに何かの処理を追加する

以下のように Hatena.Haiku.EntryForm.prototype.showDrawForm に フックさせてやればいいと思っていんだけどなんかうまくいかない。 (function (orig) { Hatena.Haiku.EntryForm.prototype.showDrawForm = function () { orig.apply(this, arguments); // …

Firefox3 で動かすグリモンスクリプトで unsafeWindow 以下の prototype にアクセスしたいときは

こういう書き方をする。 location.href = 'javascript:(' + function() { (function (w) { // ... // unsafeWindow.hogehoge.prototype とかはここに書く // ... }) (this.unsafeWindow || window); }.toString() + ')()'; 結論からはじめるメソッド使ってみ…

js2-mode の設定をちょっといじった

Emacs で JavaScript を書くを参考にして少し設定を追加した。 ;;; js2-mode ;; エラーの判定処理が気になる (autoload 'js2-mode "js2" nil t) (add-to-list 'auto-mode-alist '("\\.js$" . js2-mode)) (add-hook 'js2-mode-hook '(lambda () (setq js2-bou…

はてなハイクのパレットを変更するグリモン

上の画像は僕がハイクでよく使う色を抽出して作ったパレットです。 以下のグリモンスクリプトをインストールすると ハイクで元々用意されているパレットを 上のような自分好みのパレットに変更できるようになります。 インストールはこちらからどうぞ → http…

正式版 Firefox3 導入

使いたいアドオンが使えないので 3 を使うことを躊躇っていたのだけど 今回正式版を導入してみたら前よりもずっと対応しているアドオンの数が増えていたので 本格的に 2 から 3 へ移行しようと思う。 以下、2 でお世話になってたのに 3beta 時は使えなくて困…

AutoPagerize と LDRize を同時に使うとなんかおかしい

AutoPagerize と LDRize を同時に有効にすると Google の検索結果の3ページ目以降が AutoPagerize で足されなくなったりして困っていた。 AutoPagerize、LDRize、ついでに Minibuffer をインストールし直してもよくならない。 グリモンのアイコンを右クリッ…

ミリ秒まで含んだ時刻文字列

YYYY年mm月dd日HH時MM分SS.xxx秒なら、「YYYYmmddHHMMSS.xxx」のようにミリ秒まで含んだ文字列を返すプログラムを書いてください。 エロと風俗情報満載 どう抜く? というお題に対して以下のスクリプトが投稿されていた。 ただし、自分好みになるように少し…

コード中の文字の頻度分析

プログラムコード中の文字の頻度は言語によって相当にばらつきがあると思います。ある言語はピリオドが頻出するとか、別の言語はカッコの頻出頻度が高い、とか。そこで、 * 文字の頻度解析をするプログラムを作成し、 * 適当なプログラムに対して実行し、結…

はてなハイクにはキーボードショートカットが実装されていた

こんな重要なことに今更気付いた。 ここのところ毎日のようにハイクで絵を描いているというのに…。 なんというボケっぷり。 はてなハイクのお絵描きツールでは、さまざまなキーボードショートカットを使った機能があります。試験的に試していたものも多いの…

Array#replace って何が便利なの?

Array#replace は a = [1, 2, 3] a.replace [4, 5, 6] とかって使うらしいんだけど これって a = [1, 2, 3] a = [4, 5, 6] ってやっても結果は同じだと思うんだよね。 ベンチマーク取ってみても require 'benchmark' num = 100000 Benchmark.bmbm(10) do |x|…

{ } と do end の違い

Benchmark を使うときに require 'benchmark' puts Benchmark::CAPTION puts Benchmark.measure { a = [1, 2, 3] a.replace [4, 5, 6] } このように { } を使うのは OK なのに { } を do end に変えると require 'benchmark' puts Benchmark::CAPTION puts B…

Web の画像をファイルに保存する方法

require 'net/http' require 'uri' def save_file(url) filename = File.basename(url) open(filename, 'wb') do |file| file.puts Net::HTTP.get_response(URI.parse(url)).body end end url = 'http://d.hatena.ne.jp/images/diary/g/gan2/gan2_p.gif' sav…

Emacs でファイルの文字コードを変換するときの覚書

もうさすがに忘れないだろーとは思っているものの 以前もそんな風に思っていてしばらくしたらあやふやになっていたので 記憶に定着されることを祈りつつちゃんと書いておく。 基本 以下の2つを覚えておけばまず大丈夫。 文字化けしてるとき (UTF-8 のファイ…

おえかき機能のテスト

d2.hatena.ne.jp じゃなくて 普通の d.hatena.ne.jp でも「おえかき機能」が使えるようになってたみたい。 「その場編集モード」の「写真・商品などを挿入」から使える。 2月くらいから使えるようになってたみたいで 今更感があるけどまあとりあえずテストし…

最近よく絵を描いている

主にはてなハイクで描いている。 そして感じる。僕の絵に対する考え方が変わってきたことを。 僕は小さい頃から絵を描くことが好きだった。 絵を描いているときの一番古い記憶は ウルトラマンがうまく描けなくて半べそをかいている自分。 ウルトラマンの顔は…

StarRuby で作ったライフゲーム

とりあえず CodeRepos にコミットした。 ブラウザからアクセスする場合はここからどうぞ。 Subversion がある場合は以下のコマンドでソースを持ってこれます。 svn co http://svn.coderepos.org/share/lang/ruby/StarLife 簡単な説明として README の内容を…

リージョンの選択と矩形選択を切り替えられるようにする sense-region

Emacs では「C-SPC」でマークをセットして、以降リージョンを選択できる状態になるが sense-regionを使うと「C-SPC」を押すごとにリージョンの選択と矩形選択を切り換えられるようになる。 「C-x r」ではじめる通常の矩形選択だと、リージョンの選択と視覚的…

音楽ファイルを開いたときに Winamp のプレイリストに追加するようにする

普通に関連付けすると「再生」が選ばれたことになり 既に開いていたプレイリストの内容が上書きされちゃうので 「プレイリストに追加」を選ぶ。 でもこれ拡張子ごとに設定しなくちゃいけなくて面倒だなぁ。

Winamp をインストールした

最初に最新版(2008/05/11現在)の 5.531 をインストールしたんだけど モダンスキンのまま nfs のプラグインを入れると スクリプトエラーで Winamp 自体が起動しなくなるという とてもかわいくない不具合が見つかったので消した(´・ω・`) 聞くところによると…

rcodetools の導入

xmpfilter が便利らしいのでぐぐってみたら、rcodetools に含まれていることが分かった。 rcodetools。見覚えはあるけど何なのかはよく分かってない。 とりあえず gem で入るみたいなので入れてみる。 gem install rcodetoolsrcodetools には Emacs 用のイン…

1.8.6 で 1.8.7 な inject を使う

Ruby 1.8.7のinjectはSymbolを引数に取ることができる。つまり、合計は「inject{|s,x| s+x}」から「inject(:+)」でよくなった。 1+2+3+4 # => 10 (1..4).inject(:+) # => 10 1*2*3*4 # => 24 (1..4).inject(:*) # => 24 今はinjectよりもtapだよね〜 - http:…

総当たり戦の日程作成

任意の偶数Nのチームの総当たり戦を最短日数(N-1日)で 行う場合の日程表を1つ作成してください。 解はひとつではない場合もあります。 もし、余力があれば、全ての可能性も求めてください。 これは、スポーツスケジューリングと言う分野の問題で、 数学的…

あみだくじ

次のような書式で与えられた「あみだくじ」があります。 (あみだくじはコード中に埋め込んでも、標準入力や 外部ファイルから読み込んでも、書きやすい方法でかまいません) A B C D E | | |-| | |-| | |-| | |-| |-| |-| |-| | |-| | | | このあみだくじをた…

ある日からある日までの Range を週ごとの Range に分ける

日付のRangeを週に切り出すスクリプト - はこべにっき#を僕なりに書いてみた。 こんな感じでいいのかな? gen-weeks.rb 2008/04/01 から 2008/04/21 までの Range を週ごとに分ける require 'date' def gen_weeks(range) weeks = [] week = [] range.each do…

LDR の CodeRepos のフィードにユーザのアイコンを挿入するグリモン

こんな感じにアイコンが挿入される。 (ちょうど僕の前のコミットだったので id:tokuhirom さんのフィードを例に使わせて頂きました!) インストールする場合はこちらからどうぞ。 // ==UserScript== // @name LDR add profile icon for CodeRepos // @namesp…

エントリのブクマ数をタイトル付近に表示したい

僕のダイアリだとエントリの一番下に表示されている。 これをタイトル付近に表示したい。 でも探してもその方法が見つからない。 はてなブックマーク - ヘルプ - 自分のブログに「○○users」を表示にも 位置を指定する方法については全然書かれていないし 管…

Meadow を完全に UTF-8 に移行しようとして…

今のところ .emacs にこんな感じの設定をしている (都合によりほとんどの設定はコメントアウトしてある)。 ;;;; 日本語環境の設定 ;; ;; 以下の3つは set-language-environment よりも先に書いておく必要がある ;; (require 'un-define) ;; (require 'un-too…

function (#') について

「#' (シャープクォート)」が何なのか分からなくて調べたのでメモしておく。 「#'」は「function」と同じ意味 「'」を「quote」のかわりに使えるのといっしょ 関数をクオートするときは「'」よりも「#'」を使う方がよいとされている しかし「'」と「#'」は実…

便利なコンパイル機能 smart-compile

Emacs Lisp TIPS なんでこれ今まで使ってなかったんだろう…。 考えてみたらいちいちコマンドラインから「ruby hoge.rb」とかって実行するのって面倒だよなぁ。 「smart-compile」を使うと、ファイルを編集中に自分の好きなバインドでコンパイルを実行できて …