Archive for 1月, 2010
Google Chromeのtextareaを外部エディタで編集する (Ruby版)
Google Chrome のテキストエリアを外部エディタで編集する Edit with Emacs
自分のPCにはPerlがインストールされていないので、Rubyで書いてみました。Perlは分からないので勘で移植しましたが、一応動作しているようです。
#!/usr/bin/ruby -Ku
require 'webrick'
require 'tempfile'
require 'kconv'
$EDITOR = 'C:\vim\gvim.exe'
$PORT = 9292
server = WEBrick::HTTPServer.new(:Port => $PORT)
trap('INT') { server.shutdown }
server.mount_proc('/status') do |req, res|
res.status = 200
end
server.mount_proc('/edit') do |req, res|
temp = Tempfile.new('editwith_')
temp << req.body
temp.close false
system $EDITOR, temp.path
temp.open
res.body = temp.read.toutf8
temp.close
res.status = 200
res['Content-Type'] = 'text/plain'
res['Content-Length'] = res.body.size
end
server.start
$EDITORと$PORTを適切に設定すれば動作するんじゃないかと思います。
Mobile Safariのコピー禁止を解除するBookmarklet
iPhone向けにデザインされたWebサイトでは、誤操作を防止するためかテキストのコピーが禁止されている場合があります。
確かに微妙な操作性なので禁止したくなる気持ちも分からなくもないのですが、さすがにブログなどテキストが中心のサイトでコピーを禁止されていると不便ですよね。
そこで、Webサイトのコピー禁止を一時的に解除することができるBookmarkletを作成しました。
上のリンクをPCのブラウザでブックマークに追加して同期するか、iPhone上のSafariで適当なページをブックマークに追加したあとURLを以下のものに置き換えると導入できます。
コピーが禁止されているWebページで導入したBookmarkletを実行すると、一時的にコピー禁止が解除されます。
javascript:(function(){document.body.style['-webkit-user-select']='auto%20!important';})();
セキュリティ&プログラミングキャンプ・キャラバン2009 -名古屋-に参加
セキュリティ&プログラミングキャンプ・キャラバン2009 -名古屋-に参加してきました。
この手のイベントに参加するのは初めてでしたが、とてもよい経験になりました。というわけで簡単に感想を並べておきます。
情報セキュリティ基礎 – 園田道夫先生
そもそも「個人情報」は守るべきなのか?という視点がとても面白かったです。
重要なのは各個人が「個人情報」をどこまで公開するのかをコントロールすることのようですね。
プログラミング基礎 – 吉岡弘隆先生
オープンソースと勉強会ともに私は関わったことのない世界だったのでとても新鮮でした。
これからは興味のあるコミュニティを見つけて積極的に参加したいところです。
プログラミング言語組 – ささだこういち先生
ネット上でYARVについてのプレゼンを見たことがあったので後半の技術的なさわりについては既知だったのですが、キャンプでの言語組の内容についてはとても楽しそうで関心が持てました。
OSを作ろう組 – 河合秀実先生
話がとても楽しくて引き込まれてしまいました。
途中省略があるとはいえ、ブートからグラフィック表示までを30分で解説しつつ作成されたのには驚きです。
マルウェア解析 – 村上純一先生
登場するキーワード自体は聞いたことのあるものも多かったのですが、把握できていない内容が多かったのでぜひ勉強したいと感じました。
低いレベルの知識はCPUやOSの理解にも繋がりますしね。
脆弱性、指摘する人される人 – 竹迫良範先生
脆弱性が発見されたというニュースを見聞きすることはあっても、実際にその脆弱性がどのように報告、対応、公開されるかという流れについて考えることはほとんどないので新鮮でした。
脆弱性に「対処しない」という選択肢も、考えてみれば当然のことなのですがこれまで思い至りませんでした。
まとめ
これらの講演もとても素晴らしかったのですが、今回最も刺激を受けたのは参加者がとても若かったことです。
自分と同年代(大学生)程度が中心だろうと勝手に想像していたのですが、実際には高校生が非常に多く、中学生までいるのですから驚きです。
自分が中学生だったころのことを思うと若干凹みますね。
そんなわけで、何とか負けないように頑張りたいです。
あと、名刺は重要ですね。あらかじめ用意しておかなかったために交流の幅をかなり狭めてしまった感じです。
次回以降は必ず用意しておこうと思いました。
最後になりましたが、このような大変貴重な機会を設けてくださった主催者およびスタッフのみなさんに感謝します。
ありがとうございました!
ニコニコ大百科「面白げなページ・動画」のRSSを作ってみた
ニコニコ大百科の右サイドバーにある「面白げなページ・動画」をご存じでしょうか?
個人的には比較的面白い確率が高いので気に入っています。
実はここに載っている動画はフロッグ!というサービスでピックアップされているものと同一であり、フロッグ!のサイトにあるRSSを購読すればひとまず同じ情報を手に入れることが可能です。
しかし、このRSSに含まれているリンクはフロッグ!上のクッションページを挟んでおり、直接動画が再生できないため微妙に不便です。
そこで、クッションページを経由せず、直接動画を開くことができるフィードを作ってみました。
生成にはYahoo! Pipesを使い、ニコニコ大百科のHTMLをスクレイピングして実現しています。
また、これは想定外だったのですが、HTMLをそのまま持ってきたことで動画のサムネイルを見ることができるというメリットもあります。
Dropboxでdotfilesを同期するメモ
最近VirtualBox上でUbuntuを使うようになったので、Dropboxを使ってWindows 7とUbuntuでdotfilesを同期するようにしてみました。
以下にVimの設定を例とした手順のメモをまとめておきます。
完成形のイメージ
- 「My Dropbox/dotfiles」(Linux側では「~/Dropbox/dotfiles」)以下にdotfilesの実体が配置される。
- シンボリックリンクを利用してホームディレクトリ直下にdotfilesへのリンクを作成する。
Dropboxアカウントの作成
アカウント作成ページからアカウントを作成し、WindowsとUbuntuにそれぞれクライアントをインストールしておきます。
Windows側の設定
Windows Vista以降ではシンボリックリンクを作成するコマンドmklinkが存在するため、これを利用します。
コマンドプロンプトをコンテキストメニューから管理者として実行し、以下のように入力すると、シンボリックリンクが作成されます。
なお、環境変数HOMEにホームディレクトリが入っていることを前提とします。
mklink "%HOME%\_vimrc" "%HOME\Documents\My Dropbox\dotfiles\.vimrc" mklink "%HOME%\_gvimrc" "%HOME\Documents\My Dropbox\dotfiles\.gvimrc" mklink /D "%HOME%\vimfiles" "%HOME\Documents\My Dropbox\dotfiles\.vim"
Ubuntu側の設定
Linuxではリンクを作成するコマンドlnに-sオプションを指定してシンボリックリンクを作成します。
ターミナル上で以下のように入力すると、シンボリックリンクが作成されます。
なお、引数の順番がWindowsと逆なので注意が必要です。
ln -s ~/Dropbox/dotfiles/.vimrc ~/.vimrc ln -s ~/Dropbox/dotfiles/.gvimrc ~/.gvimrc ln -s ~/Dropbox/dotfiles/.vim ~/.vim
Windows上のVimでの注意点
Windows上のVim(Kaoriyaで公開されているバージョン)では、シンボリックリンクを開いて保存すると通常のファイルに置き換えられてしまう問題が存在します。
そのため、Windows上でdotfilesを編集する場合にはMy Dropbox\dotfiles以下にある実体を開く必要があります。
Vimのテキストオブジェクトもどきを実現するEmEditorのマクロ
Vimのテキストオブジェクトもどきを実現するEmEditorのマクロを公開しました。
EmEditorは基本的にモードレス(もちろん挿入モード、上書きモードは除外。また、一応viっぽくするプラグインもあるようです)なので、マクロを起動するために1ステップ操作が増えてしまうという難点はありますが、そこそこ便利に使えています。
まあこんなことする暇があったらVimを使えって話なんでしょうけどね。