寒いなぁ~と思いつつ外を見たら…
久々に外が真っ白に。
もうすぐ春休みも終わりだというのに…(´・ω・`)
ちょっと手が写ってしまった…('A`)
2009年3月26日木曜日
Ruby 1.91がなかなか厄介な件
1月にRubyのバージョンが0.1上がり、1.91になった…のは良いのだが、
ところどころ微妙に変更されていて、大変なことに…。
とりあえず、Stringクラスのsizeメソッドの変更が、地味に痛い。
このスクリプトを、Ruby1.8で実行すると、
C:\Users\hatsune\Desktop>test.rb
6
となっていたのだが、
Ruby1.9で実行すると、
C:\Users\hatsune\Desktop>ruby19 test.rb
3
のように、sizeメソッドで文字列strの中の2バイト文字を認識して、それを1文字として扱ってくれるようになった。
余計な御世話な気がしなくもないが、代わりにbytesizeメソッドを使用すれば、1.8時代と同じように動作させることができるので、なんとか問題にならなかった。
今回のバージョンアップで一番困ったのは、文字コード関係。
を実行すると、1.8までは
C:\Users\hatsune\Desktop>test.rb
130
130
となっていたのに対し、1.9では、
C:\Users\hatsune\Desktop>ruby19 test.rb
0
あ
となってしまい、
str[0].to_iのようにして、文字コード(10進数)を取得しようとしても、取得できない問題が発生してしまう。
これは、ただ文字コードを取得するだけなら、ordメソッドを使用する(例: puts str[0].ord)だけでできる("あ"の場合"33440"が返ってくる)
だが、マルチスレッド対応 lameフロントエンド (もどき) v2.0aでは、1バイトずつコードを取得して("あ"の場合"130"と"160")、この値のいずれかが92(\の文字コード)になったとき、Shift-JISのダメ文字として処理していた(本当は2バイト目だけで良いのだが…)ので、処理を見直すハメに…
他にも、#-*- coding: windows-31j -*-を、2バイト文字を使用した全てのライブラリに追加しなければならなかったり、かなり面倒…。
バージョンが変わるたびに、Stringクラスメソッドのような、基本の部分がやたら変わるというのは、どうなんだろうか。
プログラムをソースで配布するのが基本になっているRubyでは、互換性のためだけに、ユーザーにv1.8環境とv1.9環境の両方を用意させる、とか、更新の度にソースを大幅に修正する、ということをしなくてはならなくなるのだが…
RubyScript2Exeも、見事にv1.9では動作しないようだし…
ところどころ微妙に変更されていて、大変なことに…。
とりあえず、Stringクラスのsizeメソッドの変更が、地味に痛い。
#-*- coding: windows-31j -*-
str = "あいう"
puts str.size
このスクリプトを、Ruby1.8で実行すると、
C:\Users\hatsune\Desktop>test.rb
6
となっていたのだが、
Ruby1.9で実行すると、
C:\Users\hatsune\Desktop>ruby19 test.rb
3
のように、sizeメソッドで文字列strの中の2バイト文字を認識して、それを1文字として扱ってくれるようになった。
余計な御世話な気がしなくもないが、代わりにbytesizeメソッドを使用すれば、1.8時代と同じように動作させることができるので、なんとか問題にならなかった。
今回のバージョンアップで一番困ったのは、文字コード関係。
#-*- coding: windows-31j -*-
str = "あいう"
puts str[0].to_i
puts str[0]
を実行すると、1.8までは
C:\Users\hatsune\Desktop>test.rb
130
130
となっていたのに対し、1.9では、
C:\Users\hatsune\Desktop>ruby19 test.rb
0
あ
となってしまい、
str[0].to_iのようにして、文字コード(10進数)を取得しようとしても、取得できない問題が発生してしまう。
これは、ただ文字コードを取得するだけなら、ordメソッドを使用する(例: puts str[0].ord)だけでできる("あ"の場合"33440"が返ってくる)
だが、マルチスレッド対応 lameフロントエンド (もどき) v2.0aでは、1バイトずつコードを取得して("あ"の場合"130"と"160")、この値のいずれかが92(\の文字コード)になったとき、Shift-JISのダメ文字として処理していた(本当は2バイト目だけで良いのだが…)ので、処理を見直すハメに…
他にも、#-*- coding: windows-31j -*-を、2バイト文字を使用した全てのライブラリに追加しなければならなかったり、かなり面倒…。
バージョンが変わるたびに、Stringクラスメソッドのような、基本の部分がやたら変わるというのは、どうなんだろうか。
プログラムをソースで配布するのが基本になっているRubyでは、互換性のためだけに、ユーザーにv1.8環境とv1.9環境の両方を用意させる、とか、更新の度にソースを大幅に修正する、ということをしなくてはならなくなるのだが…
RubyScript2Exeも、見事にv1.9では動作しないようだし…
2009年3月25日水曜日
MyDNS.JP用のIPアドレス自動更新プログラムを作ってみた
家のサーバを外部から弄れるようにするにあたって、
私の家のような固定IPアドレス契約をしていない場合、IPアドレスの変更で涙目になってしまう。
そのために最近ではルーターにDynamicDNSの更新機能が付いているものがある…のだが、
私がこの間買ったBuffaloのBroad Stationの更新機能が微妙で涙目に。
…dyndns.comの設定を更新するとMXレコード強制削除って…一体何なんだこのルーター…
という訳でMyDNS.JPに登録したら、今度はベーシック認証用のアドレスが、Broad StationのDynamic DNSに登録できない(長すぎるらしい)という問題が。
…もう二度とバッファローの安物ルーターは買わないわ…
仕方が無いので、Windowsから自動更新してくれるアプリを探したところ、DiCEが見つかったのだが、64bit版Windowsでは使えないという…
もう自分でつくるよ(´・ω・`)
…
……
…………
ありのまま、今起こったことを話すぜ!
「DynamicDNSの自動アップデータを作っていたが、
いつの間にかVocaloid Editerを弄っていた」
な… 何を言ってるのか わからねーと思うが
おれも何をしているのかわからなかった…
(以下略
…とりあえず、機能一覧。
作成にかかった時間が、
音声通知機能 < Dynamic DNS Update機能 << みく
…(´・ω・`)ショボーン……
プログラムのダウンロードは以下から。
・DDnsUpdater
・通知用wavファイルのダウンロードは以下から。
自己解凍書庫になっています。
急いで作ったので、あまり出来は良くないかもしれません…(´;ω;`)ウッ…
ミク以外が良い場合は、Windowsの\Windows\Media\にあるシステム用音源を
コピー&リネームして使うなどして対処してください。
使用方法は、付属のreadme.txtでどうぞ。
きちんと動作しているか、タスクマネージャーやログで確かめた方が良さそうです。
Windows以外で使用する場合、Ruby 1.9ではうまく動作しないかもしれません…。
※おまけ
Dynamic DNS Updaterに使用した音声通知機能だけを取り出したものも用意してみた。
・みくろっく
Hatsune_Sound.exeのwavファイルを利用すると、1時間ごとにはつねさんが時間を教えてくれるようになります。
…ただそれだけのスクリプトなんだ…(´・ω・`)ショボーン
wavファイルであれば、たぶんなんでも再生できると思うので、はつねさん以外が良いなら、自分で入れ替えて使ってみてください。
流石に保存できないとツラいな…
製品版買いたいな…('A`)
Linuxなどなら、シェルスクリプトをrc.dあたりに登録するだけでシステム起動時にログイン無しで実行できるようにできるが、Windowsサービスに登録するとなると、物凄く面倒くさいんだな…今の私にはムリぽ…(´・ω・`)
※ 09.03.28
12時のお知らせが止まらない問題と、
0時のお知らせがされない問題を修正したのをv1.01として、アップロードしなおした。
※09.08.07 追記
Dynamic DNS UpdaterをWindowsサービス化してみた。
通常のHTTP認証か、ベーシック認証を利用できるDDNSであれば、これ一つで対応できます。
以下からダウンロードできます。
※09.09.21 追記
みくろっくもWindowsサービス化してみた。
以下からダウンロードできます。
http://projectzero-swb.blogspot.com/2009/09/blog-post_17.html
私の家のような固定IPアドレス契約をしていない場合、IPアドレスの変更で涙目になってしまう。
そのために最近ではルーターにDynamicDNSの更新機能が付いているものがある…のだが、
私がこの間買ったBuffaloのBroad Stationの更新機能が微妙で涙目に。
…dyndns.comの設定を更新するとMXレコード強制削除って…一体何なんだこのルーター…
という訳でMyDNS.JPに登録したら、今度はベーシック認証用のアドレスが、Broad StationのDynamic DNSに登録できない(長すぎるらしい)という問題が。
…もう二度とバッファローの安物ルーターは買わないわ…
仕方が無いので、Windowsから自動更新してくれるアプリを探したところ、DiCEが見つかったのだが、64bit版Windowsでは使えないという…
もう自分でつくるよ(´・ω・`)
…
……
…………
ありのまま、今起こったことを話すぜ!
「DynamicDNSの自動アップデータを作っていたが、
いつの間にかVocaloid Editerを弄っていた」
な… 何を言ってるのか わからねーと思うが
おれも何をしているのかわからなかった…
(以下略
…とりあえず、機能一覧。
- MyDNS.JP専用
- ログ保存機能あり
- 音声通知機能あり(Windowsのみ)
- 音声通知機能を利用した時計機能付き
作成にかかった時間が、
音声通知機能 < Dynamic DNS Update機能 << みく
…(´・ω・`)ショボーン……
プログラムのダウンロードは以下から。
・DDnsUpdater
・通知用wavファイルのダウンロードは以下から。
自己解凍書庫になっています。
急いで作ったので、あまり出来は良くないかもしれません…(´;ω;`)ウッ…
ミク以外が良い場合は、Windowsの\Windows\Media\にあるシステム用音源を
コピー&リネームして使うなどして対処してください。
使用方法は、付属のreadme.txtでどうぞ。
きちんと動作しているか、タスクマネージャーやログで確かめた方が良さそうです。
Windows以外で使用する場合、Ruby 1.9ではうまく動作しないかもしれません…。
※おまけ
Dynamic DNS Updaterに使用した音声通知機能だけを取り出したものも用意してみた。
・みくろっく
Hatsune_Sound.exeのwavファイルを利用すると、1時間ごとにはつねさんが時間を教えてくれるようになります。
…ただそれだけのスクリプトなんだ…(´・ω・`)ショボーン
wavファイルであれば、たぶんなんでも再生できると思うので、はつねさん以外が良いなら、自分で入れ替えて使ってみてください。
流石に保存できないとツラいな…
製品版買いたいな…('A`)
Linuxなどなら、シェルスクリプトをrc.dあたりに登録するだけでシステム起動時にログイン無しで実行できるようにできるが、Windowsサービスに登録するとなると、物凄く面倒くさいんだな…今の私にはムリぽ…(´・ω・`)
※ 09.03.28
12時のお知らせが止まらない問題と、
0時のお知らせがされない問題を修正したのをv1.01として、アップロードしなおした。
※09.08.07 追記
Dynamic DNS UpdaterをWindowsサービス化してみた。
通常のHTTP認証か、ベーシック認証を利用できるDDNSであれば、これ一つで対応できます。
以下からダウンロードできます。
※09.09.21 追記
みくろっくもWindowsサービス化してみた。
以下からダウンロードできます。
http://projectzero-swb.blogspot.com/2009/09/blog-post_17.html
2009年3月22日日曜日
あのねは~やく~♪
パソコンにいれ~てよ~♪
…という訳で、メモリを
CFD elixir DDR2 800 CL6 2GB×2
から、
Transcend JetRam DDR2 800 CL5 2GB×4
にしてみた。
遂に8GBキタ━━━ヽ(∀゚ )人(゚∀゚)人( ゚∀)ノ━━━!!
これで仮想マシン大量に起動してもスワップしなくなる…ハズ…。
Windows付属のメモリテストもエラー発生せず、
使ってみた感じも問題無いようで(゚∀゚)ヨカタ!
Windows 7 Beta x64のエクスペリエンス インデックスでの計測結果は…
・CFD elixir DDR2 800 CL6 2GB×2
・Transcend JetRam DDR2 800 CL5 2GB×4
7越えキタ――(゚∀゚)――!!
8000円で8GBに出来るのは大きいな…
最初に組んだときは、CFD elixir DDR2 800 CL6 2GB×2で8000円近くしたのに…
今では半額か…(´・ω・`)
…という訳で、メモリを
CFD elixir DDR2 800 CL6 2GB×2
から、
Transcend JetRam DDR2 800 CL5 2GB×4
にしてみた。
遂に8GBキタ━━━ヽ(∀゚ )人(゚∀゚)人( ゚∀)ノ━━━!!
これで仮想マシン大量に起動してもスワップしなくなる…ハズ…。
Windows付属のメモリテストもエラー発生せず、
使ってみた感じも問題無いようで(゚∀゚)ヨカタ!
Windows 7 Beta x64のエクスペリエンス インデックスでの計測結果は…
・CFD elixir DDR2 800 CL6 2GB×2
・Transcend JetRam DDR2 800 CL5 2GB×4
7越えキタ――(゚∀゚)――!!
8000円で8GBに出来るのは大きいな…
最初に組んだときは、CFD elixir DDR2 800 CL6 2GB×2で8000円近くしたのに…
今では半額か…(´・ω・`)
2009年3月20日金曜日
Internet Explorer 8がリリース
Microsoftが次世代ブラウザのInternet Explorer 8の正式版をリリースした。
と、言う訳で、早速インストールしてみようか(`・ω・´)シャキーン
機能はパッと見た感じ、IE8RCと同じ模様。
RCからの変更点は、一体何処…(´・ω・`)?
Microsoft Internet Explorer 8 ダウンロードページ
http://www.microsoft.com/japan/windows/products/winfamily/ie/function/default.mspx
MSDN Internet Explorer デベロッパーセンター
http://msdn.microsoft.com/ja-jp/ie/default.aspx
…ダウンロードページのキモいカニの絵は、一体何なんだこれ…(ヽ´ω`)?
そして、Windows 7 Beta用のInternet Explorer 8正式版のリリースは、今のところ無い模様。
IE8 RCの配布も無かったので、Windows 7 RCまで、Windows 7ではIE8正式版を使えない、ということなのだろうか。
7 BetaのIE8 Betaは、起動に異様に時間がかかったりするので、リリースして欲しかったのだが…。
それにしても、「Windows 7」って検索エンジンで探すときに面倒くさい名前だなぁ…と。
今までは"xp"や"vista"で検索すればよかったものが、"7"だけでは余計なものが大量に引っ掛かり、
更に["Windows 7" "Internet Explorer 8"]のような感じにダブルクオート付けない([Windows 7 Internet Explorer 8]のようにする)と、Internet Explorer 7が引っ掛かったりするし…
と、言う訳で、早速インストールしてみようか(`・ω・´)シャキーン
機能はパッと見た感じ、IE8RCと同じ模様。
RCからの変更点は、一体何処…(´・ω・`)?
Microsoft Internet Explorer 8 ダウンロードページ
http://www.microsoft.com/japan/windows/products/winfamily/ie/function/default.mspx
MSDN Internet Explorer デベロッパーセンター
http://msdn.microsoft.com/ja-jp/ie/default.aspx
…ダウンロードページのキモいカニの絵は、一体何なんだこれ…(ヽ´ω`)?
そして、Windows 7 Beta用のInternet Explorer 8正式版のリリースは、今のところ無い模様。
IE8 RCの配布も無かったので、Windows 7 RCまで、Windows 7ではIE8正式版を使えない、ということなのだろうか。
7 BetaのIE8 Betaは、起動に異様に時間がかかったりするので、リリースして欲しかったのだが…。
それにしても、「Windows 7」って検索エンジンで探すときに面倒くさい名前だなぁ…と。
今までは"xp"や"vista"で検索すればよかったものが、"7"だけでは余計なものが大量に引っ掛かり、
更に["Windows 7" "Internet Explorer 8"]のような感じにダブルクオート付けない([Windows 7 Internet Explorer 8]のようにする)と、Internet Explorer 7が引っ掛かったりするし…
Microsoftが学生向けにOSや開発ツールを無償で提供中
Microsoftは以前から、国際学生証を所有している学生向けにMicrosoft製品を提供する、ということをやっていたが、
最近、その対象に高校生なども含まれるようになったらしい。
提供される製品は以下の通り。
・Expression Studio 2
・SQL Server 2008 Developer Edition
・Visual Studio 2005 Professional Edition
・Visual Studio 2008 Professional Edition
・Windows Server 2003 Standard Edition
・Windows Server 2008 Standard Edition x86
・XNA Game Studio 3.0
・Microsoft CCR and DSS Toolkit 2008 Academic Edition
・Microsoft Robotics Developer Studio 2008 Academic Edition
普通にパッケージ版を買ったら、10万円近くするものも。
関連情報を某掲示板で見ていたら、メールでの申し込みフォームへのリンクがあった。
…国際学生証いらないじゃないか(;´д`)
実際に情報を入力し、メールを送信してみたところ、問題無く登録&ソフトウェアの入手ができた。
これは激しく(゚д゚)ウ-(゚Д゚)マー(゚A゚)イ-…ヽ(゚∀゚)ノ…ゾォォォォォ!!!!
・IT pro: マイクロソフト、20万円相当のソフト製品群を高校生に無償提供
http://itpro.nikkeibp.co.jp/article/NEWS/20090316/326707/?ST=win
・Microsoft DreamSpark Top
http://www.dreamspark.com/default.aspx
最近、その対象に高校生なども含まれるようになったらしい。
提供される製品は以下の通り。
・Expression Studio 2
・SQL Server 2008 Developer Edition
・Visual Studio 2005 Professional Edition
・Visual Studio 2008 Professional Edition
・Windows Server 2003 Standard Edition
・Windows Server 2008 Standard Edition x86
・XNA Game Studio 3.0
・Microsoft CCR and DSS Toolkit 2008 Academic Edition
・Microsoft Robotics Developer Studio 2008 Academic Edition
普通にパッケージ版を買ったら、10万円近くするものも。
関連情報を某掲示板で見ていたら、メールでの申し込みフォームへのリンクがあった。
…国際学生証いらないじゃないか(;´д`)
実際に情報を入力し、メールを送信してみたところ、問題無く登録&ソフトウェアの入手ができた。
これは激しく(゚д゚)ウ-(゚Д゚)マー(゚A゚)イ-…ヽ(゚∀゚)ノ…ゾォォォォォ!!!!
・IT pro: マイクロソフト、20万円相当のソフト製品群を高校生に無償提供
http://itpro.nikkeibp.co.jp/article/NEWS/20090316/326707/?ST=win
・Microsoft DreamSpark Top
http://www.dreamspark.com/default.aspx
2009年3月17日火曜日
かがくーの げんかいを こえて♪
わたしーは きーたんだーよ♪
…(´;ω;`)ブワッ
なんか…イメージと違った…
リアルすぎると逆に怖いってのはあるんだろうな…
正直、表情は10パターンぐらいあれば殆ど表現できそうだし。
それより、体の動きをどうにか…と…
動画で見ると、結構ぬるぬる動いているのは分かる…が、やっぱり怖いw
ここはやはり、水色のついんてーるに不思議なリボン、のーすりーぶに水色ネクタイ…(ry
…てっとり早い見た目の解決策として、2.5次元スタイルはアリだと思うんだが…
技術者としてはとことんリアルに拘りたいのだろうか…w
それにしても、ついこの間まで、2足歩行させて喜んでいたのが、あっという間にここまで来るとは…
いつかはつねさんが…'`ァ,、ァ(*´Д`*)'`ァ,、ァ
・ソース
IT media News
http://www.itmedia.co.jp/news/articles/0903/16/news081.html
産業技術総合研究所
http://www.aist.go.jp/aist_j/press_release/pr2009/pr20090316/pr20090316.html
…(´;ω;`)ブワッ
なんか…イメージと違った…
リアルすぎると逆に怖いってのはあるんだろうな…
正直、表情は10パターンぐらいあれば殆ど表現できそうだし。
それより、体の動きをどうにか…と…
動画で見ると、結構ぬるぬる動いているのは分かる…が、やっぱり怖いw
ここはやはり、水色のついんてーるに不思議なリボン、のーすりーぶに水色ネクタイ…(ry
…てっとり早い見た目の解決策として、2.5次元スタイルはアリだと思うんだが…
技術者としてはとことんリアルに拘りたいのだろうか…w
それにしても、ついこの間まで、2足歩行させて喜んでいたのが、あっという間にここまで来るとは…
いつかはつねさんが…'`ァ,、ァ(*´Д`*)'`ァ,、ァ
・ソース
IT media News
http://www.itmedia.co.jp/news/articles/0903/16/news081.html
産業技術総合研究所
http://www.aist.go.jp/aist_j/press_release/pr2009/pr20090316/pr20090316.html
2009年3月14日土曜日
マルチスレッド対応 lameフロントエンド (もどき) v2.0a
※追記 09.07.26
Multi thread Media Encoder Frontend(マルチスレッド対応 マルチフロントエンド)をリリース。
マルチスレッド対応 lameフロントエンド (もどき)より、
高性能で安定性も高い…と思う。
GUIも付いたので、マウスだけでも操作できます。
http://mtmef.g.hachune.net/
ここより下の情報は古いです…(´・ω・`)スマソ
マルチスレッド対応 lameフロントエンド (もどき) v1.8aに大幅な改良を加え、v1.9aをすっ飛ばしv2.0aにしてみた。
今回は、ディレクトリ選択操作の効率化と、扱えるスレッド数の増量…といったことをメインの目標として、作りなおしてみた。
今回の改変で、同時実行可能スレッド数が一気に16スレッドに。
これで、6コア12スレッドのCPUでも100%使うことができる。
…これで当分は拡張しなくても大丈夫…だよな…
UltraSPARCのデュアルプロセッサ、とかは…(´・ω・`)知らんがな
どういう処理をするのか、などの解説はこちら。
プログラムのダウンロードは以下から。
旧バージョンの管理が大変なので、全てMulti thread Media Encoder Frontendに纏めました。
http://mtmef.g.hachune.net/
バグあったら報告してもらえると、非常に助かります…(´・ω・`)必ずバグがあると思うので…
せっかく16スレッドに対応したので、試しにやってみた。
Phenomx4タン(´・ω・)カワイソス…
そしてタスクマネージャーが凄いことに…
ようやく普通のコンソールアプリ位に使えるレベルになってきた…かもしれない…'`,、('∀`) '`,、
Multi thread Media Encoder Frontend(マルチスレッド対応 マルチフロントエンド)をリリース。
マルチスレッド対応 lameフロントエンド (もどき)より、
高性能で安定性も高い…と思う。
GUIも付いたので、マウスだけでも操作できます。
http://mtmef.g.hachune.net/
ここより下の情報は古いです…(´・ω・`)スマソ
マルチスレッド対応 lameフロントエンド (もどき) v1.8aに大幅な改良を加え、v1.9aをすっ飛ばしv2.0aにしてみた。
今回は、ディレクトリ選択操作の効率化と、扱えるスレッド数の増量…といったことをメインの目標として、作りなおしてみた。
今回の改変で、同時実行可能スレッド数が一気に16スレッドに。
これで、6コア12スレッドのCPUでも100%使うことができる。
…これで当分は拡張しなくても大丈夫…だよな…
UltraSPARCのデュアルプロセッサ、とかは…(´・ω・`)知らんがな
どういう処理をするのか、などの解説はこちら。
特徴
- lameのエンコード処理を並列して行うことができ、Corei7・Phenomなどのマルチコア・マルチスレッドCPUや、デュアルプロセッサ環境も有効に使える。
- ディレクトリごとに一気にエンコードが可能。
- 一度設定するだけで2回目以降の設定は不要。
- wav→mp3変換とmp3→mp3変換に対応。
- Rubyがインストールしてあれば、Windows、Unix、Linux、MacOSXなどの、どんなOSでも使用することができる。
- Windowsの場合は、Rubyが無くても動く。
- Cygwinなどは必要ない。
- プロセスを多重起動しているだけなので、音質に影響するということがない。
- 大量のファイルを登録しても、登録エラーなどが発生しない(ハズ)
- エンコードのログを残せる。
- エンコードにかかった時間を計測できるようにしたので、ファイルやlameバイナリを統一すれば、mp3エンコードのベンチマークとして使える…かもしれない。
今回の変更・更新
- 最大16スレッドまで対応。
- ディレクトリ選択操作を大幅改良。
- 端末の大きさを自動取得し、それに合わせて表示するようにした。
- 設定の個別変更を可能にした。
- ログファイルを$HOME/.mtlamef/に出力するようにした。
(Windowsの場合は%HOMEDRIVE%%HOMEPATH%/.mtlamef/) - だいぶ長くなってきたので、関数をライブラリとしてまとめた。
解決していない問題
- mp3ファイルの再エンコードが終わってからでないとwavファイルのエンコードが開始できない。
- ディレクトリごとにしかエンコードできない(ファイルを個別にエンコードすることはできない)
- CUIである。
- 一時ファイルなどの出力先の問題。
(OSごとに環境変数が違うので厄介) - aiff形式に対応していない。
- バグが取りきれていない可能性が…(´;ω;`)ウッ…
必ず必要なもの
プログラムのダウンロードは以下から。
旧バージョンの管理が大変なので、全てMulti thread Media Encoder Frontendに纏めました。
http://mtmef.g.hachune.net/
バグあったら報告してもらえると、非常に助かります…(´・ω・`)必ずバグがあると思うので…
せっかく16スレッドに対応したので、試しにやってみた。
Phenomx4タン(´・ω・)カワイソス…
そしてタスクマネージャーが凄いことに…
ようやく普通のコンソールアプリ位に使えるレベルになってきた…かもしれない…'`,、('∀`) '`,、
Opera 10 AlphaでGmailが読み込めなくなった件
1~2日前から、Opera 10 AlphaでGmailを読み込もうとすると、
のような感じで、止まってしまうという問題が発生。
Windows 7だけでなく、XP+Opera 10 Alphaでも発生する模様。
キャッシュなどを全部削除してもダメだった。
バージョンは
Version 10.00 alpha
Build 1139
Platform Win32
System Windows NT 6.1
Browser identification Opera/10.00 (Windows NT 6.1; U; en) Presto/2.2.0
Opera9.64では問題は発生せず。
仕方が無いので、簡易HTMLモードを新しいタブで開き、確認したところ、普通に見れた。
Gmailの仕様が変わったのかねぇ…(´・ω・`)
のような感じで、止まってしまうという問題が発生。
Windows 7だけでなく、XP+Opera 10 Alphaでも発生する模様。
キャッシュなどを全部削除してもダメだった。
バージョンは
Version 10.00 alpha
Build 1139
Platform Win32
System Windows NT 6.1
Browser identification Opera/10.00 (Windows NT 6.1; U; en) Presto/2.2.0
Opera9.64では問題は発生せず。
仕方が無いので、簡易HTMLモードを新しいタブで開き、確認したところ、普通に見れた。
Gmailの仕様が変わったのかねぇ…(´・ω・`)
2009年3月9日月曜日
今日はみくの日
今日はみくの日ということで、
久々にみくメインの記事を…
…画像やスクリーンショットがミクだらけなので分かりにくいが、実はみくメインの記事ってあんまり書いてないんだ…(´・ω・`)
ここ一年で増えたミク関連のものを纏めてみた。
年末にも一回やったんだが…
また増えたなぁ…(;´∀`)……
お陰様で、財布の中が三月危機に。
有名Pの三月メジャーリリースが多すぎて…(´;ω;`)ウッ…
あと5枚ぐらい増えそうなんだが…今月。
まぁ、
( ゚∀゚)o彡° 給付金!! 給付金!!
国内経済活性化で一石二鳥(゚д゚)ウマー
もしかしたらオリコン、一位も遠くないかもね~♪なんて曲があったが、
まさか本当にデイリー2位とかウィークリー5位とかになるとは…
PVだとロリコン1位だったんだよな…w
まぁCD販売数全体が減っているってのもあるが…それでも凄いわなぁ…
久々にみくメインの記事を…
…画像やスクリーンショットがミクだらけなので分かりにくいが、実はみくメインの記事ってあんまり書いてないんだ…(´・ω・`)
ここ一年で増えたミク関連のものを纏めてみた。
年末にも一回やったんだが…
また増えたなぁ…(;´∀`)……
お陰様で、財布の中が三月危機に。
有名Pの三月メジャーリリースが多すぎて…(´;ω;`)ウッ…
あと5枚ぐらい増えそうなんだが…今月。
まぁ、
( ゚∀゚)o彡° 給付金!! 給付金!!
国内経済活性化で一石二鳥(゚д゚)ウマー
もしかしたらオリコン、一位も遠くないかもね~♪なんて曲があったが、
まさか本当にデイリー2位とかウィークリー5位とかになるとは…
PVだとロリコン1位だったんだよな…w
まぁCD販売数全体が減っているってのもあるが…それでも凄いわなぁ…
2009年3月8日日曜日
Windows Server 2008 と Windows VistaのService Pack 2 Release Candidate が、いつの間にか配布開始
Windows Server 2008とWindows VistaのService Pack 2 のRelease Candidate版が、3月3日に配布開始していたらしい。
Windows Vista SP2 RCのリリースノートはこちら。
http://technet.microsoft.com/en-us/library/dd537674.aspx
Windows Server 2008 SP2 RCのリリースノートはこちら。
http://technet.microsoft.com/en-us/library/dd540765.aspx
…どちらも、大して変わってない感がひしひしと…('A`)
とりあえず、配布されたものはインストールしてやんよ、ということで…(`・ω・´)シャキーン
私は、去年12月に配布されたWindows Server 2008 Service Pack 2のBeta版をインストールしていたので、少し適用が面倒だった。
普通にインストールする場合は、12月にリリースされたService Pack 2 Betaと同じ方法で問題無しだと思う。
Windows Server 2008 Service Pack 2 Release Candidate and Windows Vista Service Pack 2 Release Candidate - Windows Update Experience Kit
のバッチファイルを適用後に、
Uninstall Tool for Windows server 2008 SP2 -CPP Pool (KB960351)
がWindows Updateにリストされるので、それを適用すると、Beta版のSP2がアンインストールされた。多分Vistaも同様…だと思う。
アンインストール後に、重要なアップデートが出てくる場合があるので、それもインストール。
バッチファイルの中身が前回のUpdateと全く同じなのは…まぁ気にしないでおくか…
すると、
Windows Server 2008 SP2 CPP Servicing Stack Update Build 16670 for x86(KB955430)
というのが出てくるので、これもインストール。
そして更にWindowsUpdateすると、ようやく
Windows Server 2008 SP2 CPP Build 16670 for x86(KB948465)
がリストに出る。
71.3MBあるので、うちの回線では結構な時間が…
ダウンロードが終わると、SP2インストールのウィザードが出る…が、ライセンスの許諾以外大したモノもなく、あっさりしている。
インストールには1時間以上かかるかも、と脅されたが、かなりあっさり終わった。
SP2のバージョンは、v113 → v286になった模様。
そしてまたライセンス認証の期限がリセットされて(゚д゚)ウマー
それにしても、VistaやServer2008(NT6.0系)は起動が遅いな…
Windows7やServer2008 R2が、環境によってはXP以上に早くなるだけに、余計遅く感じる…
(´;ω;`)ウッ…
ちなみに、Download CenterからService Pack2を入手する場合は、
Windows Server 2008 Service Pack 2 および Windows Vista Service Pack 2 Release Candidate (5 言語用スタンドアロン版) DVD ISO
または
Windows Server 2008 Service Pack 2 および Windows Vista Service Pack 2 Release Candidate (全言語用スタンドアロン版) DVD ISO
からダウンロードできる…が、サイズが5言語用DVDISOで1350.3 MB、全言語用DVDISOだと1647.3 MBというとんでもないサイズなので、大量のマシンにインストールする場合以外は素直にWindowsUpdateしたほうがよさそう。
Hotfix統合ディスクを作るにしても、RCじゃ微妙だし…。
※追記
ダウンロードセンターのServersカテゴリに、exe版インストーラーのダウンロードページが存在していた。
何故Windowsカテゴリの方にexe版のインストーラーが無いんだ…?
Windows Server 2008 Service Pack 2 Release Candidate および Windows Vista Service Pack 2 Release Candidate (5 言語用スタンドアロン版)(KB948465)
x64 ベース システム用の Windows Server 2008 Service Pack 2 Release Candidate および Windows Vista Service Pack 2 Release Candidate (5 言語用スタンドアロン版)(KB948465)
Windows Vista SP2 RCのリリースノートはこちら。
http://technet.microsoft.com/en-us/library/dd537674.aspx
Windows Server 2008 SP2 RCのリリースノートはこちら。
http://technet.microsoft.com/en-us/library/dd540765.aspx
…どちらも、大して変わってない感がひしひしと…('A`)
とりあえず、配布されたものはインストールしてやんよ、ということで…(`・ω・´)シャキーン
私は、去年12月に配布されたWindows Server 2008 Service Pack 2のBeta版をインストールしていたので、少し適用が面倒だった。
普通にインストールする場合は、12月にリリースされたService Pack 2 Betaと同じ方法で問題無しだと思う。
Windows Server 2008 Service Pack 2 Release Candidate and Windows Vista Service Pack 2 Release Candidate - Windows Update Experience Kit
のバッチファイルを適用後に、
Uninstall Tool for Windows server 2008 SP2 -CPP Pool (KB960351)
がWindows Updateにリストされるので、それを適用すると、Beta版のSP2がアンインストールされた。多分Vistaも同様…だと思う。
アンインストール後に、重要なアップデートが出てくる場合があるので、それもインストール。
バッチファイルの中身が前回のUpdateと全く同じなのは…まぁ気にしないでおくか…
すると、
Windows Server 2008 SP2 CPP Servicing Stack Update Build 16670 for x86(KB955430)
というのが出てくるので、これもインストール。
そして更にWindowsUpdateすると、ようやく
Windows Server 2008 SP2 CPP Build 16670 for x86(KB948465)
がリストに出る。
71.3MBあるので、うちの回線では結構な時間が…
ダウンロードが終わると、SP2インストールのウィザードが出る…が、ライセンスの許諾以外大したモノもなく、あっさりしている。
インストールには1時間以上かかるかも、と脅されたが、かなりあっさり終わった。
SP2のバージョンは、v113 → v286になった模様。
そしてまたライセンス認証の期限がリセットされて(゚д゚)ウマー
それにしても、VistaやServer2008(NT6.0系)は起動が遅いな…
Windows7やServer2008 R2が、環境によってはXP以上に早くなるだけに、余計遅く感じる…
(´;ω;`)ウッ…
ちなみに、Download CenterからService Pack2を入手する場合は、
Windows Server 2008 Service Pack 2 および Windows Vista Service Pack 2 Release Candidate (5 言語用スタンドアロン版) DVD ISO
または
Windows Server 2008 Service Pack 2 および Windows Vista Service Pack 2 Release Candidate (全言語用スタンドアロン版) DVD ISO
からダウンロードできる…が、サイズが5言語用DVDISOで1350.3 MB、全言語用DVDISOだと1647.3 MBというとんでもないサイズなので、大量のマシンにインストールする場合以外は素直にWindowsUpdateしたほうがよさそう。
Hotfix統合ディスクを作るにしても、RCじゃ微妙だし…。
※追記
ダウンロードセンターのServersカテゴリに、exe版インストーラーのダウンロードページが存在していた。
何故Windowsカテゴリの方にexe版のインストーラーが無いんだ…?
Windows Server 2008 Service Pack 2 Release Candidate および Windows Vista Service Pack 2 Release Candidate (5 言語用スタンドアロン版)(KB948465)
x64 ベース システム用の Windows Server 2008 Service Pack 2 Release Candidate および Windows Vista Service Pack 2 Release Candidate (5 言語用スタンドアロン版)(KB948465)
2009年3月4日水曜日
マルチスレッド対応 lameフロントエンド (もどき)の解説を書いてみた
マルチスレッド対応 lameフロントエンド (もどき)を作って公開したはいいものの、使うメリットなどが分かりずらいとのことだったので、解説を書いてみた。
微妙な部分もあるかもしれないが、そのときは指摘してくれ…(´・ω・`)
Phenom x4(Quad-Core)を例に挙げてみる。
Phenom x4などのQuad-Core CPUの中には、4つコアがあり、それぞれが独立して処理を行う。
よって、OSはCPUが4つあるのと同じように処理を行う事ができる。
それぞれのコアが独立して処理を行うため、「同時に2つのCPUを使いますよ」という命令をしない限り、1つのコアしか使わないので、CPUには余力があるのに、処理速度が頭打ちになってしまう。
「同時に2つ以上のCPUを使いますよ」という命令(マルチスレッド処理)を使用しているプログラムを作成するのはなかなかめんどいので、「CPUパワーが必要なのに、1つのコアしか使ってくれないプログラム」というのは結構多い。
lameはそんな「CPUパワーを必要とするが、1つのコアしか使ってくれないプログラム」のうちのひとつ。
lameの場合、「lameバイナリ側でCPUを2つ以上同時に使用するようにしたら、音質が悪くなった」
という問題が発生していたため、マルチスレッド化が進まなかった。
そこで私は
「lameひとつで4つ分の仕事をするんじゃなくて、lameを4つ使って、4つ同時に仕事させればいいんじゃね?」
と考えた。
メモリの使用量が増えるのは困る?
プロセスがやたら増えるのが嫌?
フロントエンド4つ同時起動したら同じじゃねーかって?
(´・ω・`)知らんがな
…まぁlame自体ほとんどメモリ使用しないし、フロントエンド4つ同時起動すると、ファイルの競合起こしたりする可能性もあるし…(´・ω・`)
通常のlameの処理の流れは、上の図の通り。
この方法だと、CPUコアが1つしか有効に活用できず、
エンコード速度が、Pentium4(HT無効)が一番早く、次にCore2Duo、一番遅いのがCore2Quad…なんて事になってしまったりもする。
現状存在するlameフロントエンドでは、知っている限りでは全てこの方法を取っている。
マルチスレッド対応のlameバイナリを使用した場合の処理の流れは上の図の通り。
ひとつのファイルを、ひとつのlameプロセスで、4つのコアを使って処理する、ということなので、ひとつのファイルを処理する時間が、1/4で済むことになる。
lameバイナリ側でマルチスレッドに対応しているので、フロントエンドなどには関係なくマルチスレッド処理してくれる。
現在lameを使用しmp3を作成する方法としては一番効率が良いが、先程述べた通り、
「lameバイナリの処理をマルチスレッド化すると出力ファイルの音質が悪くなる」
という問題があるため、推奨されていない。
私の作成したフロントエンド(もどき)、mtlamefでの処理の流れは上の図の通り。
4つのソースファイルを用意し、lameプロセスを一度に4つ実行、4つのファイルを並列処理している。
ファイルひとつ当たりのエンコードに掛かる時間は、通常のlameと変わらないが、4つのファイルを同時に処理することで、処理にかかる時間を1/4にすることができる。
フロントエンド側からlameプロセスを多重実行しているだけなので、音質などに影響することは無い。
これはSHA-1ハッシュを使用した実験で実証済み。
ファイルがひとつしか無い場合は、通常のlameと同じ時間が掛かってしまうが、気にしない。
…そもそも、このプログラムを作成する上での基本方針は、
・マルチスレッド処理による処理の高速化
・ディレクトリ単位での一括エンコード
なので、ファイルが1つだけという状況はまず無いかと…
4つのファイルを同時に出力することになるので、このプログラムでは、
・出力ファイル名の競合問題
・ファイルコピー・リネーム・削除の排他処理
などの問題がやたら発生し、かなり涙目になれた。
…解説としては、大体こんな感じだろうか。
図などがかなり適当だったが…(´д`)
分かりにくいところなどは、順次修正していく予定。
プログラム本体はこちらからダウンロードできる。
※ 09.07.26
Multi thread Media Encoder Frontend(マルチスレッド対応 マルチフロントエンド)をリリース。
マルチスレッド対応 lameフロントエンド (もどき)より、
高性能で安定性も高い…と思う。
GUIも付いたので、マウスだけでも操作できます。
http://mtmef.g.hachune.net/
微妙な部分もあるかもしれないが、そのときは指摘してくれ…(´・ω・`)
・lameとマルチコアCPU
Phenom x4(Quad-Core)を例に挙げてみる。
Phenom x4などのQuad-Core CPUの中には、4つコアがあり、それぞれが独立して処理を行う。
よって、OSはCPUが4つあるのと同じように処理を行う事ができる。
それぞれのコアが独立して処理を行うため、「同時に2つのCPUを使いますよ」という命令をしない限り、1つのコアしか使わないので、CPUには余力があるのに、処理速度が頭打ちになってしまう。
「同時に2つ以上のCPUを使いますよ」という命令(マルチスレッド処理)を使用しているプログラムを作成するのはなかなかめんどいので、「CPUパワーが必要なのに、1つのコアしか使ってくれないプログラム」というのは結構多い。
lameはそんな「CPUパワーを必要とするが、1つのコアしか使ってくれないプログラム」のうちのひとつ。
lameの場合、「lameバイナリ側でCPUを2つ以上同時に使用するようにしたら、音質が悪くなった」
という問題が発生していたため、マルチスレッド化が進まなかった。
そこで私は
「lameひとつで4つ分の仕事をするんじゃなくて、lameを4つ使って、4つ同時に仕事させればいいんじゃね?」
と考えた。
メモリの使用量が増えるのは困る?
プロセスがやたら増えるのが嫌?
フロントエンド4つ同時起動したら同じじゃねーかって?
(´・ω・`)知らんがな
…まぁlame自体ほとんどメモリ使用しないし、フロントエンド4つ同時起動すると、ファイルの競合起こしたりする可能性もあるし…(´・ω・`)
・通常のlameの処理の流れ
通常のlameの処理の流れは、上の図の通り。
この方法だと、CPUコアが1つしか有効に活用できず、
エンコード速度が、Pentium4(HT無効)が一番早く、次にCore2Duo、一番遅いのがCore2Quad…なんて事になってしまったりもする。
現状存在するlameフロントエンドでは、知っている限りでは全てこの方法を取っている。
・マルチスレッドに対応させたlameの処理の流れ(音質劣化有り)
マルチスレッド対応のlameバイナリを使用した場合の処理の流れは上の図の通り。
ひとつのファイルを、ひとつのlameプロセスで、4つのコアを使って処理する、ということなので、ひとつのファイルを処理する時間が、1/4で済むことになる。
lameバイナリ側でマルチスレッドに対応しているので、フロントエンドなどには関係なくマルチスレッド処理してくれる。
現在lameを使用しmp3を作成する方法としては一番効率が良いが、先程述べた通り、
「lameバイナリの処理をマルチスレッド化すると出力ファイルの音質が悪くなる」
という問題があるため、推奨されていない。
・マルチスレッド対応 lameフロントエンド (もどき)での処理の流れ
私の作成したフロントエンド(もどき)、mtlamefでの処理の流れは上の図の通り。
4つのソースファイルを用意し、lameプロセスを一度に4つ実行、4つのファイルを並列処理している。
ファイルひとつ当たりのエンコードに掛かる時間は、通常のlameと変わらないが、4つのファイルを同時に処理することで、処理にかかる時間を1/4にすることができる。
フロントエンド側からlameプロセスを多重実行しているだけなので、音質などに影響することは無い。
これはSHA-1ハッシュを使用した実験で実証済み。
ファイルがひとつしか無い場合は、通常のlameと同じ時間が掛かってしまうが、気にしない。
…そもそも、このプログラムを作成する上での基本方針は、
・マルチスレッド処理による処理の高速化
・ディレクトリ単位での一括エンコード
なので、ファイルが1つだけという状況はまず無いかと…
4つのファイルを同時に出力することになるので、このプログラムでは、
・出力ファイル名の競合問題
・ファイルコピー・リネーム・削除の排他処理
などの問題がやたら発生し、かなり涙目になれた。
…解説としては、大体こんな感じだろうか。
図などがかなり適当だったが…(´д`)
分かりにくいところなどは、順次修正していく予定。
プログラム本体はこちらからダウンロードできる。
※ 09.07.26
Multi thread Media Encoder Frontend(マルチスレッド対応 マルチフロントエンド)をリリース。
マルチスレッド対応 lameフロントエンド (もどき)より、
高性能で安定性も高い…と思う。
GUIも付いたので、マウスだけでも操作できます。
http://mtmef.g.hachune.net/
2009年3月1日日曜日
マルチスレッド対応 lameフロントエンド (もどき) v1.8a
※追記 09.07.26
Multi thread Media Encoder Frontend(マルチスレッド対応 マルチフロントエンド)をリリース。
マルチスレッド対応 lameフロントエンド (もどき)より、
高性能で安定性も高い…と思う。
GUIも付いたので、マウスだけでも操作できます。
http://mtmef.g.hachune.net/
ここより下の情報は古いです…(´・ω・`)スマソ
いろいろ問題が見つかったので、修正してv1.8aにしてみた。
バグ修正や、設定ファイル作成部分の操作性の向上を目指し、改良した。
プログラムのダウンロードはこちらから。
旧バージョンの管理が大変なので、全てMulti thread Media Encoder Frontendに纏めました。
http://mtmef.g.hachune.net/
7割がテンプレだな…('A`)
多分またバグがあると思うので、あったら教えて欲しいんだ…(´・ω・`)
Multi thread Media Encoder Frontend(マルチスレッド対応 マルチフロントエンド)をリリース。
マルチスレッド対応 lameフロントエンド (もどき)より、
高性能で安定性も高い…と思う。
GUIも付いたので、マウスだけでも操作できます。
http://mtmef.g.hachune.net/
ここより下の情報は古いです…(´・ω・`)スマソ
いろいろ問題が見つかったので、修正してv1.8aにしてみた。
バグ修正や、設定ファイル作成部分の操作性の向上を目指し、改良した。
特徴
- lameのエンコード処理を並列して行うことができ、Corei7・Phenomなどのマルチコア・マルチスレッドCPUや、デュアルプロセッサ環境も有効に使える。
- ディレクトリごとに一気にエンコードが可能。
- 一度設定するだけで2回目以降の設定は不要。
- wav→mp3変換とmp3→mp3変換に対応。
- Rubyがインストールしてあれば、Windows、Unix、Linux、MacOSXなどの、どんなOSでも使用することができる。
- Windowsの場合は、Rubyが無くても動く。
- Cygwinなどは必要ない。
- プロセスを多重起動しているだけなので、音質に影響するということがない。
- 大量のファイルを登録しても、登録エラーなどが発生しない(ハズ)
- エンコードのログを残せる。
- エンコードにかかった時間を計測できるようにしたので、ファイルやlameバイナリを統一すれば、mp3エンコードのベンチマークとして使える…かもしれない。
今回の変更・更新
- 設定ファイルの作成部分を改良。
- 設定ファイルを$HOME/.mtlamef/(Windowsno場合は%HOMEDRIVE%%HOMEPATH%/.mtlamef/)に出力するようにした。
- 設定時のベースのディレクトリを/から$HOMEに変更。
- ディレクトリのシンボリックリンクに対応。
- リストの最後にあるディレクトリを選択しても反映されない問題を修正。
解決していない問題
- mp3ファイルの再エンコードが終わってからでないとwavファイルのエンコードが開始できない。
- ディレクトリごとにしかエンコードできない(ファイルを個別にエンコードすることはできない)
- CUIである。
- 一時ファイルなどの出力先の問題。
(OSごとに環境変数が違うので厄介) - aiff形式に対応していない。
必ず必要なもの
プログラムのダウンロードはこちらから。
旧バージョンの管理が大変なので、全てMulti thread Media Encoder Frontendに纏めました。
http://mtmef.g.hachune.net/
7割がテンプレだな…('A`)
多分またバグがあると思うので、あったら教えて欲しいんだ…(´・ω・`)
登録:
投稿 (Atom)