« 2006年4月 | トップページ | 2006年6月 »

2006年5月29日 (月)

コピーできないPDFからコピーする

http://www.bravaviewer.jp/reader.htm

このビュアーを使うとできる。

(Ref: http://q.hatena.ne.jp/1115015484#a297395 )

| | コメント (0)

2006年5月27日 (土)

pythonスクリプトからmultipart/form-dataを送る。

Webサービスのサイトに写真とかを送信するのを自動化するにはどうするか、的な話。

最初はIEとJavaScriptで適当に送ってみようと思ったんだけどセキュリティがきつくなってて無理でした。というわけでpythonを使うことに。が、pythonもデフォルトではmultipart/form-dataはサポートしてない。ので、結局のところHTTPリクエストを自分でがりがり書くしかない。んでよくよく調べてたらurllib2をかっこよく拡張してる人を発見。

http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/146306/

このスレッドの一番最後のコメント。

http://odin.himinbi.org/MultipartPostHandler.py

このMultipartPostHandler.pyを以下のように使うとurlとパラメータ渡すだけで通信できる。

cookies = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookies),
                            MultipartPostHandler.MultipartPostHandler)
params = { "username" : "bob", "password" : "riviera",
         "file" : open("filename", "rb") }
opener.open("http://wwww.bobsite.com/upload/", params)

ちなみにこのMultipartPostHandlerをハンドラに加えるとopenの第二引数のエンコードを自動的にやってくれる。

| | コメント (0)

2006年5月21日 (日)

はてなブックマークに新しいウインドウで登録

はてなブックマークに新しいウインドウで登録

ブックマークレットです。タイトルのまんまです。
登録したいときはたいていそのページを読み終わってないことが多くて、デフォルトのブックマークレットだとはてなに飛んでしまって続きが読めないので別ウインドウにしてみました。

window.openしただけだから1エントリにするのも何だけどPC再インストしたときにまた書くのがめんどくさいからUP

| | コメント (0)

2006年5月20日 (土)

YouTubeからflvを直接落とすブックマークレット

  1. ここのリンクをお気に入りに登録してください。>>DownFromYouTube
  2. 適当なYouTubeの動画ファイルのページを開きます。
  3. その状態で先に登録したお気に入りを開きます。

これでそのページの動画をダウンロードするダイアログが開きます。(ダウンロードページを開くのではなくて直接落とし始めます。)
常にファイル名がget_videoになってしまいますが、ファイルの拡張子は.flvという形式です。

ちなみにgoogle videoからAVIで直ダウンロードするブックマークレットは
Google Operating System: Download Google Videos As AVI Files
にあります。
(Ref: Going My Way: Google VideoからAVI形式でダウンロード可能なBookmarklet )

さらにちなみに、VideoDownloader(直リンじゃないけどやたら多数の動画サイトからダウンロードするページを作れる)のブックマークレットは以下

Youtubeなどのムービーをダウンロードするトイブックマークレット - Ogawa::Memoranda

| | コメント (0)

2006年5月14日 (日)

USB外付けHDDの初期化

c:\windows\system32\diskmgmt.msc
を管理者権限で起動すればドライブ文字が割り振られていないドライブでもフォーマットとかができる。

| | コメント (0)

いえもん

思わず作ってみました。

http://glucose.jp/blog/11

IE系ブラウザ(IE6,Sleipnir,glucose,...)でみてるWebページのリンクにショートカットをつけて、Altキーを押しながらショートカットを入力することでリンクを飛べるようになります。
ほかにはAlt+上で上のディレクトリに移動したり、マウス右クリックしながら右にドラッグで進む、左にドラッグで戻る、といったマウスジェスチャーがIEでも可能になります。

FireFoxにおけるGreaseMonkeyみたいなことをして実装してます。
ほとんど思いつきで作ったんでかゆいところに手が届いてないですが、機会があったらもっと使えるものにしたいなーと。

| | コメント (0)

ターミナルサーバーライセンスの期限が切れたとき。

「このコンピューターで利用できるターミナル サーバー クライアント ライセンスがないため、リモートセッションは切断されました。サーバー管理者に問い合わせてください。」

というのが出たときはHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensingをいじるとなんとかなったりする。
・HardwareID,Parameters,Storeをリネームするなどしてバックアップ。特にHardwareID\ClientHWIDがなくなると何とかして書き戻すまでリモートデスクトップ接続がまったく使えなくなるため注意。
・HardwareID\ClientHWIDに元の値の末尾を適当にちょこっとかえた値を設定すると繋がるようになる。

| | コメント (0)

2006年5月 4日 (木)

大体の日本語文字にヒットする正規表現

[ぁ-ヶ]|[亜-黑]

上を秀丸とかで正規表現で検索すればOK

(Ref: http://homepage2.nifty.com/zaco/rexp/rexp06.html#2)

| | コメント (1)

IE6でtextareaにwidth:80%とか指定するとフォーカスが当たったときににょきにょきサイズが変わるのを防ぐ

<div style="padding-left:10%;">
	<textarea style="width:80%"></textarea>
</div>

というHTMLがあると、以下のように表示されます。

IE6で見てる人は上のテキストエリアをクリックして何か書き込んでみてください。突然テキストエリアが右ににょきっと延びるはずです。と、まぁこういう困ったバグがあるのですが、これは親要素にwidthを指定してやることで解消されます。

<div style="padding-left:10%;width:100%">
 <textarea style="width:80%"></textarea>
</div>
(Ref : http://www.keynavi.net/ja/bugh/css_misc.html#_title_4_7 )(4.7 その他のCSSバグ::ブロックがうまく表示されない)

| | コメント (0)

2006年5月 2日 (火)

グローバル変数を使わずにsetTimeoutでthisを渡す。

Function.prototype.bind = function(object) {
	//関数のthisを取得
	var __method = this;
	//objectを退避
	var __object = object;
	//引数の配列を用意(ただし一番初めのthisをshiftして取り除く)
	var __arguments = arguments;
	for( var index = 0; index < __arguments.length-1; ++index )
		__arguments[index] = __arguments[index+1];
	__arguments.length = __arguments.length-1;
	//thisにbindした関数を実行する無名関数を返す。
	return function(){ __method.apply(__object, __arguments); }
}

function Obj1() {
	this.counter = 0;
	this.caller(2);
}

Obj1.prototype.caller = function( step ) {
	this.counter += step
	alert( this.counter );
	setTimeout( this.caller.bind(this, step), 100 )
}

obj1 = new Obj1();
こんな感じ。prototype.jsを使ってるならFunction.prototype.bindを使ったほうが早し。

| | コメント (0)

« 2006年4月 | トップページ | 2006年6月 »