2012年1月9日月曜日

[メモ] [Google Chrome] [Flash] Flash Video Fileの動画保存

動画サイトは多数あり、また動画を保存(ダウンロード)するためのアプリやサイトも多数ありますが、そのあたりを使用して保存できなかった場合に昔ながらのテンポラリファイルをコピーするやり方で保存を行おうと思ったところGoogle Chromeではテンポラリファイルがロックされていて通常の方法ではコピーできませんでした。(IEは使っていないため分かりませぬ)
さらに動画を表示しているタブを閉じるとテンポラリファイルが消えてしまうのでコピーできない、という場合にコピーして保存を行うときのメモ。


ここにやり方が書いてあったのでリンクしときます。
http://www.walkernews.net/2008/09/21/how-to-copy-youtube-video-or-flv-file-from-google-chrome-cache-folder/


■結論:ロックされたファイルをコピーできるツールを使いコピーする
使用ツール:hobocopy
以下からダウンロードできます。環境にあわせてどうぞ。
https://github.com/candera/hobocopy/downloads

このツールはコマンドラインで使用するツールのため面倒くさいです。GUIで同じことができるツールがあればそっちを使ったほうがよいと思います。私はバッチファイルを作って「送る」に入れときました。緊急用なのでだいたいそれで事足りています。

■確認環境
OS:Windows7 64bit
ブラウザ:Google Chrome 17.0.963.26 beta-m
Flash Player:バージョン 11,1,102,55

以下一応サンプル

・動画のテンポラリファイルはC:\Users\[ユーザ名]\AppData\Local\Tempに作成される
・上の[ユーザ名]はWindowsで使用しているユーザ名
・hobocopyは3つの引数を渡して使用
・引数1:コピー元のフォルダ
・引数2:コピー先のフォルダ
・引数3:コピーするファイル
・「hobocopy.exe」を置いたフォルダにパスを通したとして、「fla7049.tmp」というファイルを「C:\download\movie」へコピーする場合の例

コマンドプロンプトでカレントディレクトリをC:\Users\[ユーザ名]\AppData\Localにして、下のような感じ
C:\Users\yasuyuki\AppData\Local>hobocopy Temp C:\download\movie fla7049.tmp

コピーするまでブラウザの動画を表示していたタブは開いたままにしておかないとテンポラリファイルが消えてしまうので注意

次のような簡単なバッチを作って「送る」にいれとくとかすると多少楽かも知れません。

-----

@echo off
if "%1" == "" goto error
hobocopy %temp% "C:\download\movie" %~n1%~x1
goto end
:error
echo 引数を指定してくださいまし。
pause
:end
-----

■ちなみに送るの場所はここ
C:\Users\[ユーザ名]\AppData\Roaming\Microsoft\Windows\SendTo


いろいろ面倒ですが、通常はあんまし使わないと思うのでまあいいかなという感じで

■2012/05/04 追記
ちなみにプロセスを強制終了させるとtmpファイルがロック解除された状態で
残っているかも知れません。その場合はツールを使わなくてもコピーできます。
Windowsフリーズ→電源ブッチでそんなことに遭遇しました。
タスクマネージャを使ったわけじゃないのでいつもそうなるかは分かりません。

■2012/08/13 追記
tmpファイルの保存先及び名前が変わったみたいです。
バージョン21.0.1180.60 mでは
C:\Users\ユーザ名\AppData\Local\Google\Chrome\User Data\Default\Pepper Data\Shockwave Flash
というフォルダにflaという接頭辞がつかないカタチで保存されていました。

2011年9月14日水曜日

35歳からはじめる 大腸内視鏡検査

健康診断の検便で便潜血が検出され、精密検査を指示されました。この便潜血ってやつ、ちょっと尻の穴が切れていたりするとすぐに検出されるそうで、精密検査で実際になんらかの異常が見つかる人は3割程度だといいます。

それでも初めて検出されましたし、別に痔の持ち主でもありませんでしたので、念のため精密検査を受けることといたしました。

それで大腸内視鏡検査と相成ったわけですが、まず大学病院で実施してもらおうと電話をかけると検査の前の診察のために2ヶ月待ちという事実を告げられ他をあたることにしました。

近くでやってるとこないかなと思って探したところ、家から10分程度のクリニックで実施されていることがわかりました。そこへ検査の結果を持っていき、大腸内視鏡検査をすることになったのですが、そのクリニックでも検査を受けるまでに2ヶ月待ちということでした。

大人気の大腸内視鏡検査です。私と同様に便潜血が検出される人が大変多く、この検便の一つの弱点でもあるという話もしておりました。

そこのクリニックでは、診察の日に検査当日(2ヶ月後)にやるべきことをすべて説明され、わからなかったら聞いてくださいということでその日は帰りました。
大腸内視鏡検査は腸内を綺麗にするため、事前の準備が大変面倒です。そして当日は仕事を休むべきです。

3日前から徐々に食事制限がはじまり、前日には錠剤の下剤を飲み、休みました。そして当日。朝から検査の前までにおよそ2Lの液体の下剤を飲まなければなりません。私は当日は仕事を休みましたので、朝から飲み始め、その効果はみるみる現れ、かなりの回数ぶりぶりっといたしました。するとだんだん色がなくなっていき、ついには茶色っぽさがほとんどなくなり、ほんとに水みたいな液体しか出なくなりました。これで準備Okのようです。

この状態でクリニックへ行き、尻の部分にだけ穴の開いた検査服に着替えて、診察台に横に寝かされました。肛門に異物を挿入される恐怖に耐えながらまっていると、まず、腸の活動を抑えるのと、精神安定のために点滴を刺されて、すこしの間待ちました。

わずかの時間待っていると医者が現れ、じゃあやりますかと言って黒いチューブ状のキャメラをシュルんとさせました。尻の穴にゼリーをぬられてちょっとヒンヤリしたところへ、いきますよ~って言ってずぶりっとカメラが挿入されてきました。。。

Oh。痛くなーい。

別に痛くありませんでした。入り口から少し進んだところにあるS字結腸に差し掛かると少し痛みを感じました。ここは腸内で一番入り組んでいるところらしく、特に女性は人によってはなかなか通過できない場合があるそうですが、私は案外すんなり通りました。痛みと言っても、その痛みはいわゆる普通の腹痛的な痛みで、腸内が特別に痛いということはありませんでした。その後盲腸までたどりついたところで、医者がじゃあ引き返しますから中見せますね、と言って画面をこちらに向けて腸内を見せてくれました。キレイなピンク色でした。そして、最後にS字結腸で多少の腹痛を感じたのち、痔があるかどうか見ますね、と言ってカメラをくるっと反対側に向けました。肛門からチューブが挿入されているのがよく見えました。痔もなんにもありませんでした。じゃあこれで終わりです。ということで、1時間ほど診察台で休んだあと帰路につきました。

大腸内視鏡検査の面倒なところは、食事制限と下剤。
当日の検査は痛みもさしてなく、つらいものではありませんでした。
準備がすべてです。

胃カメラは飲んだことないですけど、胃カメラよりはよっぽど楽なんじゃないかなぁと思った帰り道でした。あと、撮影した腸内の写真を頂いたのですが、処分にこまりますな。なんか。

2011年9月6日火曜日

35歳からはじめる 歌舞伎町[新宿] 客引き注意

タイトルのとおり。

歌舞伎町で遊ぶときは客引きについて行かないようにしましょう。
一般的に当たり前のことかも知れませんが、ちょっと損をしたので一応。

友人と新宿に飲みにいきました。3時間ほど飲んでちょっとお楽しみ行くかなんつってフラフラ歩き始めたのですが、歌舞伎町の客引きの多さにちとビックリしました。4年くらい前によく行っていたときは、条例かなんか知りませんが、客引きは禁止されていたと記憶しています。ので、その当時はあまり堂々と客引きをしている方々はおりませんでした。
今は違いますな。客引きでまともに歩けないレベル。

それはともかくとして、とにかくどんなとこ行くかと友達と相談しつつ、セクキャバ(おっぱいキャバ)へ行こうかってことになりました。フィニッシュはできませんけど、ちゅーちゅー楽しいですので。
そこへやってきた客引きが「おっぱいキャバ行くの案内するよ」なんて言いながら、「ちょっと待ってすぐ入れるか聞くから」とかいいつつ電話を始めました。正直、なんかあやしくね?と思ったのですが、おずおずとついて行ってしまったのです。

それで連れていかれたところは、、中国人デートクラブでした。中はキャバクラのようになっていて、一人にひとりずつ女の子がつくわけですが、当然おっぱいを出すわけでもなく、触れるわけでもなく、そこで行われるのはついた女の子と外に出てどこかでチョメチョメをするかどうかという交渉でした。そして外出料金(女の子を連れ出す)が3万円とか言われ、完全に騙されたなと思って店をでましたので、Hなことはしませんでした。まあいわゆる売春宿ですな。女の子を連れだしていないので、始めに払った1万円ですみましたが、実際連れだして、Hなことすると実質いくらかかるのか?それはわかりません。

その中国人デートクラブの客引きはその界隈では有名らしく、ヘルス、セクキャバ、手こき、キャバクラ、何を言ってもそのデートクラブに連れていくそうです。友人がその店で話が違うのでフロントに文句を言いに行ったのですが、でっかい男3人に囲まれたと申しておりました。1万円は捨てて、早々に店を後にしたのでした。
客引きについて行ったのがバカでしたね。ということで客引きには注意。

ちなみに中国人デートクラブの客引きがその界隈で有名なのを教えてくれたのは、また別の客引きでした。

2011年9月4日日曜日

[メモ] [Oracle] Long型に32760バイトを超える文字列


  • OracleのLong型を使用している場合に、そのフィールに格納されるデータが当初32760バイトを超えない想定であったものが、32760バイトを超えるようになると色々考慮するところが出てくる
  • 保守をしていて、テーブル定義のLong型をCLOBなどに変換できない状況で、Long型を使用せざるを得ないとき用のメモ
  • OracleのLong型は2Gバイトまでのデータを格納できる
  • PL/SQL のLong型は32760バイトまでしか格納できない
  • PL/SQLで32760バイトを超えるデータをOracleから取り出してLong型に格納できない。変数定義に%TYPEを使ってデータ型を他文字列型のように扱ってるといつかどこかでやられる
  • JavaからLong型に値を格納する場合にPreparedStatment#setStringを用いると32766文字までしかセットできない(バイトではないのでOracle側の文字コードがShift_JISやEUC-JPであれば、32kバイト以上格納できる)
  • それ以上の場合はPreparedStatment#setCharacterStreamを使用する。というかLong型に値をセットする場合はこっちを使う
  • Common SQL Environment を用いてLong型を参照した場合、格納されている文字列が32kバイト以下なら参照できる。32kバイトを超えると何も表示されなくなる
  • Accessのテーブルリンクを用いてLong型を参照した場合、32kバイトを超えても参照できる。おそらくメモ型の上限までは参照できる。ただしフォームやレポートのコントロールには文字数制限がある。制限文字数はAccessのバージョンによって異なる。
  • メモ型はAccessのSQL関数にも渡せるのでLong型のLengthも取れる

2011年8月21日日曜日

[メモ] [Android] iSyncrでiTunesと連携したら曲名が文字化け

・iSyncrの「よくある質問」にも書いてありますが、AndroidはID3タグv2.4には対応していないということで、それを使用している曲が文字化けするようです。

・iTunesで曲を右クリックして(複数選択もできる)ID3 タグ変換...ー> 「ID3 タグを変換ダイアログ」で「ID3 タグバージョン」をチェックし、v2.4以外を選択(一応v2.3を選択しました)

・その後シンクし直すと文字化けが解消されました

・ID3タグv2.4→v2.3変換によって、どのような情報が欠落する可能性があるのかは調べていないのでわかりませぬ

・ちなみにiSyncrのヘルプにはAndroidの制約による部分についてもいろいろ書かれているので、iSyncrの不具合なのか、Androidの制約なのかを切り分ける上で結構役立つかも知れないです

2011年2月19日土曜日

[メモ] ThinkPad X60 SSD 換装

WEB検索すると方々にやり方が見つかるので、
それらを利用したうえで実施した作業メモ。

■次の要件を満たす
・現状使用しているHDDの内容をそのままSSDに移行する
・現状使用しているHDDにはTrueCryptによりシステムドライブ暗号化
  されているが、解除せずにそのまま移行する

■使用したもの

  • SSD
    • Intel SSD 120GB SATA 2.5inch MLC w/Cable Retail K SSDSA2MH120G2K5
    • 現在使用しているHDDと同サイズの上、評判がよろしいようなので
  • USBメモリ
    • BUFFALO USBメモリー バリュータイプ 4GB RUF2-K4GE-WH
    • なんでもいい
    • CD-ROMドライブが付属しておらず、外付けドライブも所持していないため、HDD→SSDディスクコピーツールのブートドライブとして使用
  • ディスクコピーツール
    • EASEUS Disk Copy
    • ブートして利用する
  • 2.5inchHDDケース
    • 玄人志向 2.5型HDDケース SATA接続 HDD/SSD対応 USB2.0対応 ブラック GW2.5AV-SU2
    • SATA接続の2.5inchHDDケースなら、たぶんなんでもいい
    • 上記SSDをUSBで接続してディスクコピーするために利用する
  • ブートローダ
    • syslinux-3.86
    • ディスクコピーツールをUSBメモリからブートするために利用する
■作業手順

①ディスクコピーツールブート用のUSBメモリを作成する
ここにのってるの通りやればOK


以下に一応手順をそのままコピっておく

// コピースタート ↓
EASEUS Disk Copy というフリーのディスクそのままコピーソフトがあるんですが、ダウンロードできるのはCDイメージなんです。
容量も少ないし、ディスクの引越しとかでしか使わないだろうからUSBから起動できたら便利ってことで試してみました。
結論から言うと syslinux 使えばOKと。
では、手順をテキストだけで説明。

用意するもの。
・USBメモリ
・ISOをマウントできるツール(Daemon Tool とか Alchol 52% とか)
・syslinux-3.86

1.EASEUS Disk Copy をダウンロード&解凍
 →http://www.easeus.com/disk-copy/download.htm

2.1で出てきたISOをマウントしておく。

3.ついでにUSBメモリもFAT32でフォーマットしておく。
 ※フォーマットは必須ではないかも。他のデータが入っていても問題ないはず

4.2でマウントしたCDイメージの中にあるファイルをすべてUSBメモリにコピーする。
 (ISOLINUX, BOOT.CAT, BZIMAGE, INTRD.IMG)
 ※BOOT.CAT はなくてもOKかも。面倒なのですべてコピーした。

5.USBメモリのISOLINUX内のファイルを編集する
 その1 ISOLINUX.CFGを編集。
   default /isolinux/vesamenu.c32 の行の isolinux を syslinux へ変更
 その2 STDMENU.CFGを編集
   同じように menu background ~の行の isolinux を syslinux へ変更

6.編集が終わったらファイル名を変更する。変更するファイルは2つ
 その1 ISOLINUX.CFG を syslinux.cfg へ変更
 その2 "ISOLINUXフォルダ" を syslinux へ変更

7.syslinux 3.86 をダウンロード&解凍
 ※ 4.03 はうまく起動できなかったので、3.86で。
 →http://www.kernel.org/pub/linux/utils/boot/syslinux/

8.コマンドプロンプトを開き、7で解凍した syslinux の win32 ディレクトリへ移動
 ※ cd ~~win32

9.コマンドプロンプトで次のコマンドを実行
 syslinux.exe -mad syslinux z:
  ↑zはUSBメモリのドライブレターに読み替えてください。

10.お疲れ様でした。USBメモリからブート可能なようにBIOS設定して起動してください。
// コピー終了 ↑

・作業メモとして
・CDイメージのマウントにはDaemonToolを利用した
・BIOSでブートドライブを指定するには、ThinkPadのロゴが出ているときにF1キー

②ディスクコピーツールでディスクコピー

1.HDDケースにSSDをつっこんでUSB接続

2.上記USBメモリをつっこんでPC起動

3.ロゴが出たらF1キーを押すとブートドライブが選択できる画面が表示されるのでUSBメモリを選択

4.あとは指示にしたがってディスクコピー

③ThinkPadのHDD→SSDドライブ差換え
ここにくわしく写真付きでのっかっているので参照


以上でおわり
TrueCryptでシステムドライブ暗号化されていても問題なし

2011年2月2日水曜日

[メモ] [JavaScript] 関数、クロージャ

JavaScript 関数/クロージャ

  • JavaScriptの関数はオブジェクトであり、使用時にはインスタンスが生成される
  • 呼び出すごとにインスタンスが生成され、その参照を変数に格納して保持できる
  • 参照を保持した関数であっても、呼び出すごとにローカル変数は初期化される(ローカル変数の定義を通るから)
  • 関数内部で定義された関数の参照を関数外部で保持していれば、外側の関数のインスタンス、ローカル変数の値も破棄されない
  • 保持している内部関数を呼び出しても、外側の関数のローカル変数は初期化されない(外側の関数の変数定義を通らないから)
  • それによりクロージャを再現している


こんなイメージかな~

  • var c で無名関数を参照している間は関数aのインスタンスも保持される
  • var c で無名関数を呼び出しても、関数aが新たに呼び出されない限りは、var iの値は保持される
  • したがってクロージャを再現できる


                 +----------------------------+
                 |   function a(param1){      |
                 |        var i=param1;       |
var c ------------------->return function(){  |
                 |            i++;            |
                 |            return i;       |
                 |        };                  |
                 |   }                        |
                 +----------------------------+


function a(param1) {

    // 関数aのローカル変数
  var i=param1;

    // 関数aのローカル変数iをインクリメントして返す無名関数を返す
  return function() {
  i++;
  return i;
  };
}


// 関数aを実行し、返ってきた内部の無名関数の参照を保持
var c = a(1);
// 保持した関数a内部の無名関数を実行
alert(c());
alert(c());


// 結果として
// 2
// 3
// と表示される