2012-03-04
■[雑記]研究室に持って行ってた書籍一覧
持って帰るのが面倒くさいってレベルじゃなかったので、何冊の本を持って行っていたのかをチェックしつつ。順不同。
- jQuery ポケットリファレンス
- JavaScript ポケットリファレンス
- 知的財産権の知識
- アイデアの作り方
- 知財マネジメント入門
- JavaScript本格入門
- 統計学入門
- プロとしてのデータモデリング入門
- 発達障害に気づかない大人達
- データマイニング入門
- 知識マネジメント入門
- 集合知プログラミング
- ザ・マインドマップ
- 定本 Cプログラマのためのアルゴリズムとデータ構造
- ヤマハ発動機の経営革新
- 発想法入門
- 知の協創支援
- 誰が本当の発明者か
- デザイニング・インターフェース
- アルゴリズムとデータ構造 改訂C言語版
- Vimテクニックバイブル
- 製品開発の知識
- 世界に勝てる!日本発の科学技術
- 知財戦争
- ビジネスチャンス発見の技術
- Python入門
- ビジュアライジング・データ
- Built with Processing
ちなみに、まだ十数冊研究室に残ってる…
2011-11-22
■[PowerPoint]パワポにサウンドファイルを埋め込む方法
最近,PowerPointにBGMを入れるという作業をしなければならなくなったんですが,手持ちのPowerPoint 2003と2007では,MP3やWMA,MP4と言った,いわゆる圧縮された形式のサウンドファイルは.ppt(pptx)ファイルには埋め込めず,埋め込めるのはWAVE形式だけだったんですね.
2010はわからないですけど*1,そういうこともあって,WAVEで埋め込むにはBGMとして使うにはファイルサイズ大きすぎるし,結局,埋め込まずに相対パスで同じディレクトリに入れておけば再生されるようにして,お茶を濁したんです.
しかし,腑に落ちなかったので,なにか方法あるだろうと言うことで,遙か彼方に放り投げていた記憶の中から知識を思い出し,MP3ファイルを.pptに埋め込む方法をひらめいて試してみたらうまくいったので,記録しておこうと思います.
簡単に言えば,RIFF WAVEの仕様を使うというものです.RIFF WAVEというのは,そのものWAVEファイルのことです.通常,WAVEファイルというと多くの人は,リニアPCMの無圧縮のものを思い浮かべると思いますが,RIFFというのはコンテナですので,実際には各種オーディオコーデックを利用できるのです.つまり,圧縮されたWAVEを使うと言うこと.
以下,手順です.MP3以外のコンテナの指定の仕方は僕はわかりませんので,圧縮形式はMP3になります.
- 元となるサウンドファイルを入手
- 固定ビットレート(CBR)のMP3ファイルを作成.可変ビットレート(VBR)だと,3で使うソフトが対応していないので,再生時間が変わってしまったりします.
- KKKKK.Net - K5 MP3 to RIFF WAVE←ダウンロードして解凍
- 2で作ったMP3ファイルを,3で解凍したフォルダの中のEXEファイルにD&D.
- MP3ファイルのあるディレクトリにMP3圧縮されたRIFF WAVEを生成.
これで良いのですが,気をつけなければならないのは,PowerPointの設定.2003ではツール→オプション→[全般]タブの中の「指定するファイルサイズより大きいサウンドとリンクする」という項目の値を完成したRIFF WAVEのファイルサイズより大きくしないと,結局リンクになってしまうので,埋め込みには成りません.
これだけ注意すれば,ある程度長いサウンドファイルでも圧縮して埋め込めるようになるはずです.サウンドファイルによっては,拡張子偽装するだけで埋め込めてしまうこともあるようですが….
…KeyNote?しらねーよ
2011-11-10
■[SQLite][PostgreSQL][Python]Pythonからデータベースを扱う時の注意
Python Database API Specification v2.0というものがありますが、使うさきのDBのモジュールの仕様が、それぞれ微妙に違うので注意です。
特に、cursor.execute()の (query[,parameter]) の部分の違いにはまってたのでちょっとだけ書いてみますです。
全部は試してませんが、とりあえず、僕がわかっているものだけ。
sql = u"SELECT * FROM table1 WHERE id = :id"
cur.execute(sql, { 'id': 1 })
上記はpgdb(Version 4.0)では使えませんでした。SQLite3では使えます('named')。
一方、
sql = u"SELECT * FROM table1 WHERE id = %(id)d"
cur.execute(sql, { 'id': 1 })
は、SQLiteでは使えませんでした('pyformat')。
また、
sql = u"SELECT * FROM table1 WHERE id = %d" cur.execute(sql, (4))
はSQLite3では使えません。SQLite3では、
sql = u"SELECT * FROM table1 WHERE id = ?" cur.execute(sql, (4))
で、発行できます。
あわてて書いているので間違っている可能性もありますし、MySQL等ほかのRDBMSでは試していないので、なんとも言えませんが、こんなところです。
