2009-01-01から1年間の記事一覧

QtのPhononモジュールで動画再生

QtにはPhononというクロスプラットフォームなマルチメディアAPIが付属しています。PhononはもともとKDE向けに開発された、DirectX・QuickTime・GStreamerなどのバックエンドを抽象化するAPIで、音声や動画の再生を簡単に行うことが出来ます。 今回は早速、動…

QtWebKitがすごすぎる

最近Qtを使い始めたのですが、QtにはQtWebKitというWebKitベースのブラウザエンジンが付いています。 せっかくなので遊んでみよう、と思ったらあまりに簡単で驚いたので紹介です。 #include <QApplication> #include <QtWebKit> int main(int argc, char* argv[]) { QApplication app</qtwebkit></qapplication>…

オブジェクトの初期化と代入

C++

ライブラリを書いていると、自作のクラスを便利に使えるようにコンストラクタ・コピーコンストラクタ・コピー代入演算子をたくさん用意したくなることがあります。でも、これらが一体いつどこで呼ばれるのか資料が少なかったので、また仕様書を読んでみまし…

テンプレート関数のオーバーロード解決とSFINAE

C++

自作のライブラリを書いていて、SFINAE(Substitution failure is not an error)の詳細が知りたくなった。仕様書を読んだので以下にメモ。 テンプレート関数のオーバーロード解決規則 あるテンプレート関数の呼び出しに対して、オーバーロードされた関数の…

C++でURLエンコード/パーセントエンコード

ネットで見つけたものがうまく動かなかったから自分で書いた。space_to_plusをtrueにするとスペースが(%20ではなく)+記号になるようにした。 #include <string> #include <sstream> #include <iomanip> std::string url_encode(const std::string& str, bool space_to_plus = false) </iomanip></sstream></string>…

CMakeのビルド構成の設定

C++

Makefileを書くのが面倒になったので、CMakeを使ってみた。 デバッグモードやリリースモードのようなコンパイルのモードを指定できないか調べたところ、CMakeLists.txtに set(CMAKE_CXX_FLAGS "") set(CMAKE_CXX_FLAGS_DEBUG "-g -pg") set(CMAKE_CXX_FLAGS_…

gccのプリコンパイル済みヘッダ

C++

昨日の続き。gccのプリコンパイル済みヘッダ(PCH)がかなり速いことに気づいたけど、日本語の資料が少ないので本家のマニュアルを読んだ。結構複雑だったから下にメモしておく。 作り方 foo.hのプリコンパイル済みヘッダを作る場合、普通にコンパイルするよ…

ビルド時間の短縮

C++

Boostは便利だけど、ちょっと使っただけでビルド時間が一気に長くなってしまうので、何とかならないか調べてみた。まず、最近のgccではプリコンパイル済みヘッダ(PCH)が使えるらしい。しかし、ヘッダをプリコンパイルしたときのオプションが本番のコンパイ…

ブラウザとOSの境界

今現在、ウェブサイトがブラウザを通してPCにプログラムをインストールしようとするのはかなり嫌われている。 Flashやjavascriptはあるけど、もっとマシンパワーの要る計算を(サーバでなく)クライアントにさせたいというニーズは確実にあるはず。SELinuxみ…

ICFP 2009 Programming Contest

C++

結果が出たようです。 http://icfpcontest.org/scoreboard.php 私(C--)は111位でした。VMの実装に手間取ったことと、「入力を行うプログラムを書く→実行する→プログラムを修正する」のサイクルに時間をとられたのが失敗かなぁ。シミュレーションなので実行…

ニコニコ動画検索システム

以前から、ニコニコ動画をニコニコ動画APIでクロールして、面白い動画を探そうというのをしていました。サイト→Mylist per Comment基本的にはとにかくデータを集めてきて、そこからコメントに対してマイリストが多くついてるような動画を表示しています。あ…