ブログトップ 記事一覧 ログイン 無料ブログ開設

それはそれ。これはこれ。 このページをアンテナに追加 RSSフィード

2003 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 03 | 04 | 05 | 06 | 07 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 11 | 12 |
2013 | 01 | 02 | 04 | 05 | 07 | 08 | 10 | 11 | 12 |
2014 | 02 | 03 | 07 | 08 | 09 | 10 | 11 | 12 |
2015 | 01 | 02 | 03 | 05 | 06 | 07 | 11 |
2016 | 07 |
2017 | 01 | 03 | 06 | 07 | 11 |
2018 | 05 | 07 | 08 | 09 | 10 |

2009-03-26(木)

[][]UCS-2の奥は深い UCS-2の奥は深いを含むブックマーク UCS-2の奥は深いのブックマークコメント

一昨日、id:otn:20090324 で、「[Ruby] 文字セットとエンコーディングの混同??」というのを書いたらすぐさま元記事を書いた方id:nurseさんに、解説いただけた。http://d.hatena.ne.jp/nurse/20090325#1237964260 色々とご教示いただきありがとうございます。少なくとも私の書いたのは言われ無き疑いだったことは確かです。


教示いただいた、http://www.unicode.org/glossary/ を見ると、明確に UCSが character set で、UCS-2 UCS-4はencoding form と言う風に書いてある。UCSを2または4 octetで表したものが UCS-2 UCS-4であると。


ただ、UTFの所では、encoding form と encoding scheme が区別して書いてあり、実装というか byte sequence で表現する方法は encoding scheme という扱いだ。そして、バイト列にする前の scalar な値で表現する方法が encoding form。UTF-32だとわかりやすいが、encoding formとしてのUTF-32は、32ビットの値。それをバイト列に変換する方法に、encoding schemeとしてのUTF-32(BOM付き)、UTF-32BE、UTF-32LE がある。UTF-16もほぼ同じ。UTF-8の場合はちょっと違って、encoding formの時点でバイト列なので、encoding schemeでも変わらず。


ところが、UCS-2 UCS-4の所を見ると、encoding form としての意味しか書いてなくて、encoding schemeは無い。つまり、バイト列で表す方法が定められていないということか。ううむ、これではエンコーディングと言っても、ファイルに書いたり、通信に使ったり出来ない。何らかの手段で、バイト列にシリアライズしないと。


ということで、「UCS-2は文字セット」と書いたのは間違いだったけど、ことさらRubyのEncodingに取り入れる必要性があったのかということは引き続き疑問です。



あと、Emacs-Muleについても、私の誤解ですね。Muleだと文字コーディングをちゃんとセットしないと、よくctextになってしまって、他のソフトで読めないファイルになってしまうという経験があるので、compound textを連想したのだけど、そうじゃなくて内部コードを指していると言うことで、理解できました。でも、この形式ってEmacs/Muleからファイルに書けるのでしょうか?出来ないとすると、Rubyで取り扱えてもしょうがない。。。と思ったけど、これも教示いただいた るびま http://jp.rubyist.net/magazine/?0025-Ruby19_m17n を見ると、こういう事のようだ。


ISO-2022-JPデータがあったとして、そのままでは文字単位で処理できないので、statelessな stateless-ISO-2022-JPコード変換すると、JISX0208:1978とJISX0208:1983の区別を保ったままで文字単位で処理できる。このstateless-ISO-2022-JPは、Emacs-Muleのサブセットである。」


つまり、ISO-2022-JPデータを文字単位で扱えるような内部コードが必要であり、そのためにEmacs-Muleの内部コードを借りてきたと言うことですね。内部専用Encodingというか。

こっちも奥が深い。

nursenurse 2009/03/27 12:46 emacs-muleについてはこちらで。Emacsでcodingをemacs-muleにすると普通にかけますね。あと、クラッシュしたときのダンプファイルの中身とか。

2009-03-24(火)

[] 文字セットとエンコーディングの混同??  文字セットとエンコーディングの混同??を含むブックマーク  文字セットとエンコーディングの混同??のブックマークコメント

Ruby1.9のEncodingにちょっとおかしな点がある。どうしてなんだろうと思っていたんだけど、下記の記事を読むと本気でおかしいのかもという疑惑が。。。

Ruby Freaks Lounge - 第4回 Ruby M17N 事始め:文字コード編」http://gihyo.jp/dev/serial/01/ruby/0004

各種エンコードの説明をしているのだが、中に何故か UCS-2 が。UCS-2は、エンコーディングじゃなくて文字セットですよね。JISX0208が現れたレベル違和感

この記事には書いて無いけど、Encoding.list で得られる一覧には UCS-2BE UCS-4BE UCS-4LE という得体の知れない物もあるし。


もしかして、Rubyのこのあたり、文字セットとエンコーディングの区別が付いてない人がやってるのか?


それはさておき、エンコーディングの説明をするなら、Encoding.listにある中だと、Emacs-Mule と stateless-ISO-2022-JP も説明して欲しかった。Emacs-Muleとはもしかして、Compound Textのことか?もしそれならそういう名前にすべきだけど。stateless-ISO-2022-JP はぱっと見、euc-jpのように見えるが、違いは何だろう?

2009-03-23(月)

[]ぷらいべえと ぷらいべえとを含むブックマーク ぷらいべえとのブックマークコメント

ふと懐かしくて注文。LPは持ってたような気がするが、CDは間違いなく持ってない。↓の他に紙ジャケット仕様もあるが、どちらもすでに絶版なので、マーケットプレイスで。幸運にも新品が残ってた。


聞くとますます懐かしい。メロディーリズム記憶のまま。って当たり前か。ここの曲はその後ほとんど聴かないからね。当時は歌謡曲を歌うことに批判的な声もあったみたいだけど。

「夜霧を今夜もありがとう」や「メランコリ−」は拓郎の歌うこの曲の方が記憶に残ってたりする。「歌ってよ夕陽の歌を」「いつか街で会ったなら 」「やさしい悪魔」「くちなしの花」「悲しくてやりきれない」「よろしく哀愁」「あゝ青春 」は、オリジナル歌手の曲の方が記憶に強いので、「拓郎が他人の歌(自分の詩や曲のもあるけど)を歌っている感」がちゃんとありますね。


2009-03-19(木)

[]少年メリケンサック 少年メリケンサックを含むブックマーク 少年メリケンサックのブックマークコメント

また最終日の最終回映画を見に行った。

面白いと言うより、すげー楽しい映画。さすが宮藤官九郎。宮藤のテレビドラマを楽しく見られた人はきっとこれも楽しめる。

ただ、最初のうちはどうなることかと。。。駄目なおじさん達、駄目な彼氏ダメダメ物語になるのかと。。。

事前に知っていたのは、「宮崎あおいがパンクバンド動画を見てスカウトしに会いに行くと動画から25年経ったおじさん達*1。何故か全国ツアーをすることに」という程度なので、何故おじさん達に全国ツアーをさせたのかとか、その後どうなるのかとかは知らなかった。

その後の盛り上がりがすごい!


メインストーリー以外の見所は、

田辺TELYAの怪演

・勝地マサルの歌の歌詞

田口ジミーの涙

テレビ番組中のニュースで「農薬のかかったせんべいを置かれてあり、それを食べた人が〜」


あと、画面からはわからないので見所じゃないけど、篤姫の収録と平行して撮影してた*2とは切り替えがすごい。


普通映画だと役名じゃなくて俳優名で考えてしまうけど、この映画はアキオ、ハルオ、ジミー、ヤングと役名が印象的。25年を隔てて違う俳優が演じているからかな。それから後で公式HPを見ると、バンド系の人がたくさん出てる。

*1:と言っても、私も同年代だが

*2さんまのまんまの宮藤・宮崎の回で知った

トラックバック - http://d.hatena.ne.jp/otn/20090319

2009-03-12(木)

[][]Firefoxsqliteデータを圧縮するバッチ Firefoxのsqliteデータを圧縮するバッチを含むブックマーク Firefoxのsqliteデータを圧縮するバッチのブックマークコメント

Firefoxの起動・終了を速くするために、sqliteデータを再作成・圧縮するというのが流行っている?ようなので、乗ってみる。サイズを小さくするためには一度削除して再作成させるといいのだが、そこはそれ、データが失われるなど難しい。

すっきりしたい場合は、大きくなりがちな places.sqliteデータを失わずに再作成する解説ページがある。「places.sqlite の再作成 - Firefox Hacks 翻訳日記http://firefoxhacks.at.webry.info/200902/article_1.html

でもこれ、そのときは小さくなっても、またどうせ大きくなるんだよなあと思うと、定期的にバッチ処理でVacumeするほうが良いのではと思って、「sqlite3 vacume」でググるとぴったりのページがあった。

id:dolphinkick:20090309 「Firefox3のSQLiteファイルを一括してreindex/vacuumするバッチ - 雑木林とコンピュータメモ帳

バッチがよくわからないとお書きの通り、スクリプトがこなれてないので、書き直してみた。

なお、sqlite3.exe は、http://www.sqlite.org/download.html からダウンロード。exeファイル1つだけのパッケージシンプルなので安心。

@echo off
setlocal
set TT=%TIME: =0%
set DT=%DATE:/=%-%TT:~0,2%%TT:~3,2%
set BKDIR=sqlitebackup

pushd "%USERPROFILE%"
for /d %%D in ("Application Data\Mozilla\Firefox\Profiles\*" 
"Local Settings\Application Data\Mozilla\Firefox\Profiles\*") do (
  pushd %%D
  if exist parent.lock echo Firefox is on & goto :EOF
  md %BKDIR% 2>NUL
  for %%F in (*.sqlite) do call :sub "%%F"
  popd
)
goto :EOF

:sub
if %~z1 lss 10240 goto :EOF
copy %1 %BKDIR%\%~n1-%DT%%~x1 >NUL
for /f "skip=5" %%F in ('dir /b /o-n %BKDIR%\%~n1*') do del "%BKDIR%\%%F"
dir %1 | findstr /b "20"
sqlite3.exe %1 reindex
sqlite3.exe %1 vacuum
dir %1 | findstr /b "20"

toshitoshi 2009/06/15 22:02 スクリプトの知識は全くありませんが、ぜひ使いたいのですが、うまく動作してくれません。
次のパスのとき、どう修正すればいいでしょうか?
なお、Local Settingsのsqliteファイル不要です。

1.sqlite3.exe
C:\FreeSoft\Mozilla Firefox\sqlite3\sqlite3.exe

2.SQLiteファイル
C:\Documents and Settings\(名前)\Application Data\Mozilla\Firefox\Profiles\ntid74nw.okbtsnr

3.バックアップ
C:\Documents and Settings\(名前)\Application Data\Mozilla\Firefox\Profiles\ntid74nw.okbtsnr\sqlitebackup

よろしく、お願いします。

otnotn 2009/06/15 22:29 2.3.の、「ntid74nw.okbtsnr」は自動検出しますので、そのままでいいです。
1. 最後から2,3行目の、sqlite3.exe を "C:\FreeSoft\Mozilla Firefox\sqlite3\sqlite3.exe
" に変更。引用符(")も必要です。

Local Settingsにsqliteファイルがなければそのままでいいですが、「あるけど処理したくない」ということなら、"Local Settings\Application Data\Mozilla\Firefox\Profiles\*" を削除。

toshitoshi 2009/06/15 23:06 うまく動作しました。
ありがとうございました。

toshitoshi 2009/06/18 13:39 先日から、重宝させてもらっています。
プロンプトにvacum前後の容量が確認できて便利なのですが、最後のファイルは前の値は確認できるのですが、後の値はプロンプトが消えるので目視できません。
最後のファイル処理後、1秒ほどとめられませんか?

otnotn 2009/06/18 19:16 末尾に pause と入れるとそこで止まります。

toshitoshi 2009/06/18 21:22 お世話になります。
pauseならキー入力待ちになるので、1-2秒でプロンプトは消えて欲しいのですが・・・

otnotn 2009/06/18 22:15 ping -n 3 localhost >NUL
で、2秒待ちになります。

toshitoshi 2009/06/18 22:31 うまく動作しました。
これで満足できるのですが、ping -n 3 localhost >NULを末尾に入れると各ディレクトリ毎に待ちになっているようなので、最後のディレクトリの処理後に2秒待ちにすると複雑になりますか?
簡単なら、お願いします。

otnotn 2009/06/18 22:43 ああ、ファイルの末尾じゃなくて、処理の末尾(goto :EOFの直前) に入れてください。

toshitoshi 2009/06/18 22:51 完璧です。
大変、お世話になりました。

2009-03-08(日)

[]ドライブのAutorun抑止が効かないことがあるらしい ドライブのAutorun抑止が効かないことがあるらしいを含むブックマーク ドライブのAutorun抑止が効かないことがあるらしいのブックマークコメント

CD/DVDドライブに入れたり、USBメモリを刺したりしたときに、自動起動しないようにレジストリで設定しておくのがフツーなわけですが、何らかの状態でそれが効かずにAutorunしてしまうケースがあるらしい。2000/XP/2003での不具合

対応のパッチは、http://support.microsoft.com/kb/967715

トラックバック - http://d.hatena.ne.jp/otn/20090308