- blogs:
- cles::blog
Google Apps Scriptで超簡易版RSSリーダーを書いてみた
先日、Google Apps Scriptを調べていて、他サイトからデータを引っ張ってこれることが分かったので、試しにRSSを他サイトから引っ張ってくるスクリプトを書いてみました。
XMLの解析にXPathとか使えないので、現状ではXMLの解釈がかなりハードコーディングになってしまっているものの、こんな感じで実装できるんだなぁということは確認できました。そのほかにも、User-Agentが標準で出力されないので、自分のサーバにHTTPコネクションが弾かれたり、日本語の情報がきわめて少なかったりと、色々ハマるポイントは尽きないと思います。
最終的に出来たのは下記のような、スプレッドシートの左上のセル(A1)にRSSのURLを入力して、Fetchボタンを押すとRSSを取得して、A2に以下にタイトル、B2以下にURLを出力するというもの。
以下完成までのメモ。
[続きを読む...]32bit版Windows7で有効活用できないメモリをRAM Diskにしてみた
X200にメモリ4GBつけているものの、使っているWindows7が32bit版なので1G近く何もできないメモリがあるような状態だった(画像参照)のですが、ググって調べてみるとそのような領域をRAM Diskとして活用できるらしいので、下記のまとめを参考にRAMディスクの作成に挑戦してみました。
Gavotte Ramdisk まとめWIKI - まとめ(仮)
ram4g.regを実行 (続行確認が数度表示されるので、はい、OK とかクリック)
ramdisk.exeを実行(Vistaは右クリックから「管理者として実行」)
[Install Ramdisk]ボタンをクリック (20秒程度掛かります)
FixedMediaを選択 16MBなり適当に設定 (デフォルトでそうなっていますが、念のため確認のこと)
[OK]ボタンをクリック (「Success」と表示がでるのでOKをクリック)
再起動
自分の場合はNTFSにしたかったので、再起動する前に下記の内容をcmd.exeから実行*1しました。
CHKDSK /L:2048 V:
CACLS V:\ /G "NT AUTHORITY\authenticated users:F"
MKDIR V:\TEMP
rdutil V: registry
上記を調べていてCACLSコマンドを使うとNTFSのACLが編集できるというのがわかったのは収穫でした。
あとは環境変数でTEMPやTMPを移行したり、IEのTemporary Internet FilesをRAMディスクに移行しました。読み書きが多い部分なのでちょっとはSSDの寿命延長になるかもしれません。開発関連のtmpもこっちに移行してしまおうと思います。
- *1: cmd.exeは管理者権限で実行しておく必要があります。
Thunderbirdをトラックポイントでスクロールできるようにする
X200を使っていて、現状の唯一の不満点はトラックポイントでThunderbird3のスクロールができないことでしたが、下記のエントリを参考にTrackPointの設定ファイルを変更することで回避することができました。これでマウスが使えない電車の中でも快適にメールを読むことができそうです。
・せうの日記:TrackPoint未対応のプログラムでスクロール
・せうの日記:TrackPointドライバの仕様変更について
自分のX200(Windows7)の場合には%PROGRAMFILES%\Lenovo\TrackPoint\tp4table.datをテキストエディタで開き、Firefoxの定義の直下に下記の内容を追加したあと、tp4serv.exeのプロセスを再起動することでスクロールできるようになりました。
同様の方法でマウスホイールに対応していて、TrackPoint非対応の他のアプリも対応できるようなので、TrackPoint愛用している人は覚えておいて損はなさそうです。
SQLiteの高速化とトランザクション
SQLiteはファイルベースだとINSERTがあまり速くないなと思っていたのですが、ググってみると大量にINSERTを発行したい場合は明示的にトランザクションを使うというのが定番のテクニックだということがわかって愕然としました。SQLiteはAUTOCOMMITだとトランザクションが発生しない訳ではなくて、内部的にはINSERTの度にBEGINとCOMMITが発行されてしまうような仕組みなんでしょうかね。
ファイルベースのベンチマーク (INSERT*100回)
user system total real
AUTOCOMMIT 0.000000 0.010000 0.010000 ( 16.499489)
TRANSACTION 0.010000 0.000000 0.010000 ( 0.199884)
インメモリのベンチマーク (INSERT*100000回)
user system total real
AUTOCOMMIT 3.150000 0.350000 3.500000 ( 3.508833)
TRANSACTION 3.090000 0.340000 3.430000 ( 3.444818)
確かにベンチマークを取ってみると、全然速度が違いますね。インメモリの場合もほんのわずかだけ明示的にトランザクションを指定した方が速いようです。同じマシンでもファイルベースとインメモリでインサート速度が劇的に違うところもなかなか興味深いです。
[続きを読む...]英語でない部分のスペースを削除する
下記のようなわざとスペースがところどころに挿入されている日本語を形態素解析したいと思って、前処理として余計なスペースを取り除く処理を書こうとしたのですが、思いのほか手こずってしまったので、後学のためにメモ。
ち ょ っ と ワ ケ あ っ て MS の ナ レ ッ ジ ベ ー ス を 検 索 し て い た ら 最 後 に 「The behavior is by design」と 書 い て あ るのを見つけてしまいました。
EOS
† はじめに書いたコード
単純にスペースを削除するようなコードなのですが、英語の部分があると単語が全部つながってしまうのでこれはNG。
#=>ちょっとワケあってMSのナレッジベースを検索していたら最後に「Thebehaviorisbydesign」と書いてあるのを見つけてしまいました。
† 最終的に書いたコード
最終的に書いたコードは下記。
文字クラスの指定が16進になっていますが、これが半角の英数字記号を表しています*1。
#=>ちょっとワケあって MS のナレッジベースを検索していたら最後に「The behavior is by design」と書いてあるのを見つけてしまいました。
Windows7ではネットワークに合わせて通常使うプリンターの管理ができる
Windows7でX200のプリンタ設定をいじっていたら、通常使うプリンターの管理という項目が追加いつの間にか追加されていました。これまでロケーションに合わせてデフォルトのプリンタを設定を変更するにはThinkVantage Access Connectionsのようなユーティリティを使う必要がありましたが、プリンタの切り替えはWindows標準でできるようになったようです。設定が分かりにくいところにあること自体はちょっと残念ですけど。
ネットで調べてみたら@ITに詳細な解説が載っていました。
Windows 7でデフォルトのプリンタを場所に応じて切り替える - @IT
実はWindows 7のProfessional/Ultimate/Enterpriseの各エディションには、位置自動認識印刷という仕組みが提供されており、ネットワークの接続先に応じてデフォルトのプリンタ(「通常使うプリンタ」とか「既定」のプリンタなどと呼ばれる)を設定できる。これを利用して仕事の場所に合わせて、デフォルトのプリンタを自動的に切り替える方法を解説する。なおこの機能は、バッテリ駆動が可能なノートPCのみしか利用できないので注意していただきたい。
Thunderbirdの移行 (Windows7編)
以前Thunderbirdの移行したときのメモを参考にThunderbirdのプロファイルをコピーしようと思ったら、メモしてあるディレクトリがなくてちょっと戸惑ってしまったので改めてメモを残しておきます。結論から述べるとThunderbirdのProfileはWindowsのバージョンに関係なく下記にあります。
%APPDATA%\Thunderbird\Profiles\
具体的にはVistaやWindows7では下記の場所にあることが多いようです。
C:\Users\(ユーザー名)\AppData\Roaming\Thunderbird\Profiles\[続きを読む...]
windows7でctrlとcaps lockを入れ替える
普段はHHK Pro JPをつかっているので、CtrlキーはAの隣にあるというのが体に染みついてしまっているので、これまでノートPCではAltIMEというユーティリティでCaps lockとCtrlの入れ替えを行ってきたのですが、いろいろ調べてみるとレジストリの書き換えで実現できるようなので、今回はこの方法にチャレンジしてみます。
具体的には下記の内容のテキストファイル作り、名前をswapCtrlForCaps.regにしてダブルクリックし、マシンを再起動するだけで完了です。
やっていることはレジストリの書き換えなので、実施は自己責任でお願いします。
swapCtrlForCaps.reg
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00, 00,00,00,00, 03,00,00,00, 1d,00,3a,00, 3a,00,1d,00, 00,00,00,00
このレジストリ書き換えの意味については「Archive: Scan Code Mapper for Windows(英文)」に詳しく書かれています。良く読めば、上記がなぜスペースで区切られているのかについて理解できると思います。
Rubyのスレッド中の例外でハマった
Rubyでスレッドをつかったプログラムを作ったら、凡ミスを修正するのに苦戦してしまったのでメモ。結論から述べると、ThreadはjoinしたときにThread内で起こった例外が再度スローされるので、自分で立てたスレッドを確実にjoinすることがエラーハンドリングでは重要みたい。
例えば下記のコードはhogeという関数は定義されていないので、スレッドt1はこの部分でエラーになるはず。ところが、このプログラムを起動してみると、意図した動作もせず、エラーも出ないという不思議な状態になります。今回はこの状態だったので、手がかりが少なくていろいろと大変でした。
test0.rb
Thread.abort_on_exception = false ###
q = Queue.new
t1 = Thread.new do
hoge ###
10.times do |i|
q.enq "message! #{i}"
end
q.enq nil
end
t2 = Thread.new do
while i = q.deq
puts i
end
end
#t1.join ###
#t2.join ###
test0.rb実行結果
Anemoneというクローラーフレームワークを使ってみる
これまでクローラー使い捨てのクローラーは結構力業で作ってきたのですが、さすがにこういうことをやり始めてから1年以上が経ちこのままでは立ちゆかない事がいろいろと顕在化してきたので、クローラーを作るためのフレームワークをいろいろ調べていました。
JavaであればLuceneのサブプロジェクトであるNutchや、Seasarプロジェクトで開発されているS2Robot、PerlであればGunghoあたりに興味があるのですが、後処理の部分はRubyで書いてしまってあるので今回はAnemoneというフレームワークをつかってみることにします。
Anemone - Ruby Web-Spider Framework
Anemone is a Ruby library that makes it quick and painless to write programs that spider a website. It provides a simple DSL for performing actions on every page of a site, skipping certain URLs, and calculating the shortest path to a given page on a site.[続きを読む...]
The multi-threaded design makes Anemone fast. The API makes it simple. And the expressiveness of Ruby makes it powerful.
sp-20100319222058644595553@cles.net
- 悪魔武器 ダウンロード方法
- Yahoo! - 10/03/19 22:17:25
- mh3 悪魔武器ダウンロード
- Yahoo! - 10/03/19 22:05:26
- ワザップ モンスターハンター2G 最強装備
- Yahoo! - 10/03/19 22:01:17
- MH2ndG 武器一覧
- Yahoo! - 10/03/19 21:17:09
- モンスターハンター2G 改造クエスト入れ方
- Yahoo! - 10/03/19 21:08:45
- モンスターハンター2Gチートコマンド集
- Yahoo! - 10/03/19 21:07:37
- エロナルト画像
- Yahoo! - 10/03/19 21:02:47
- ロム回避
- Yahoo! - 10/03/19 20:45:01
- パワポケ12 最強バーコード
- Yahoo! - 10/03/19 20:40:35
- モンハン3PSP画像
- Yahoo! - 10/03/19 20:38:45
・検索ワードランキングはこちら
- おめでとうございます (4)
- 知恵の輪 サターン編 (3)
- SourceForge.JPのSubversion... (3)
- 人生初の出来事 (3)
- サーバセットアップ (3)
- 和食 小錦 (3)
- 散髪しました (3)
- .inはインドのccTLDなのか (3)
- やっと髪をきりました (3)
- 大雪でした (3)
2 . やっぱりあった!パクれる読書感想文! [7612x]
3 . Echofon for Firefox [6384x]
4 . OpenIDで自分のサイトのURLを使う [5750x]
5 . 急性胃腸炎 [5740x]
- CD-ROM起動で、HDDを完全消去
- NP_Moblog v1.16
- pinzoro 01/15
- hsur 12/29
- and more...
- 耳がおかしいと思ったら突発..
- baca 01/13
- hsur 01/13
- and more...
★はてな認証APIをつかってログインすることができます。





