Monthly Archives: June

オープンガバナンスにおける役割とその責任

Published Thursday June 30th, 2011 | Leave a comment
Posted in Qt | Tags: ,

この記事は Qt Blog の “Open Governance Roles and Responsibilities” を翻訳したものです。 執筆: Thiago Macieira, 2011年5月20日 先日の「成熟レベル一覧」という記事と、その前の「成熟レベル」で Qt のコードの各パーツのメンテナに何が期待されるのかを示唆しました。この記事では Qt のオープンガバナンスで働く人々に期待していること、どのような役割が存在し、そのそれぞれにどのような責任があるのかを詳しく説明しようと思います。 簡単に言うと、3つのレベルだけになるでしょう。 Contributor(貢献者) Approver(承認者) Maintainer(メンテナ) “Chief Maintainer”(チーフメンテナ)の存在は四番目のレベルではありません。詳しくは後述します。 外部からのインスピレーション Qt Open Source プロジェクトでは、非常にフラットかつシンプルな構成を望んで、そのアイデアを練り始めました。メーリングリストでの議論はとても興味深く、初期には “board” もしくは “oversight committee” と呼ばれていた構成がありました。(初期に私が作成した資料には、「スパイ映画や番組で使われるような陳腐で無意味な名前 − 例えば、理事会、監督団体、本部等 − を見つけよう」という提案もありました。)しかし、最終的にはそれらではなく、成功している既存の巨大なオープンソースプロジェクトを参考にすることにしました。 我々が特に参考にしたのは WebKit と Linux kernel の二つのプロジェクトです。双方のプロジェクトには利点も欠点もあり、どちらもそのまま Qt に当てはめることは出来ないと考えました。Qt ではそれぞれの良いところを組み合わせたいと考えました。信用に基づくネットワークと分散開発を利用したいと思いましたが、新規の貢献者と最終的なリポジトリとのホップ数は出来るだけ小さくしたいとも思いました。また、Qt には品質を保証するための非常にアグレッシブなデグレードテストと継続的インテグレーション(CI)システムがあります。 ここで紹介するモデルは長い間議論され、やがて Robin Burchell と私の間の長い IRC セッションを通じて形になったものです。全ての結論は […]

Read More

QStringBuilder を使用した文字列の結合

Published Thursday June 30th, 2011 | Leave a comment
Posted in Qt | Tags:

この記事は Qt Blog の “String concatenation with QStringBuilder” を翻訳したものです。 執筆: Olivier Goffart, 2011年6月13日 [qt QString] と [qt QByteArray] の operator+ はとても使いやすく、以下のような記述が可能です。 QString directory = /*…*/, name = /*…*/; QString dataFile = directory + QLatin1Char(‘/’) + name + QLatin1String(“.dat”); とても便利ですね。 ここで QLatin1Char と QLatin1String は正確を期すために使用しているだけなので、みなさんがアプリケーションを書く際には省略することも可能です。 というわけで、とても便利であることは分かりました。それではこの記法でのパフォーマンスはどうでしょうか? それぞれの operator+ はすぐに破棄される一時的な文字列を生成します。つまり、メモリ確保とコピーが何度も発生します。 これは以下のようにすることで高速化することができます。 QString dataFile = directory; dataFile.reserve(directory.size() + 1 + […]

Read More

ロケールを用いた文字列のコレーション

Published Thursday June 30th, 2011 | Leave a comment
Posted in リサーチプロジェクト | Tags:

この記事は Qt Blog の “String collation with locales” を翻訳したものです。 執筆: ddenis, 2011年6月14日 Carlos が 数ヶ月前に 書いたように Qt Earth Team では Qt の国際化、ローカライズのサポートを進めてきました。既に以下のいくつかの機能を実装しています。 Linux/Unix で LC_MESSAGES や LC_TIME 等の環境変数を考慮するように変更 QLocale に文字種別のサポートを追加 通貨のサポートを追加(不十分だというフィードバックがあったため、リリース前にさらに機能を追加しようと思っています) アプリケーションの翻訳のために OS から対応言語を取得、週の最初の曜日、ウィークデー、文字列のクォート、複数の文字列の結合、等々 我々の TODO リストにあるもう1つは、コレーション(collation)のサポート(QTBUG-17104)です。(これはとても複雑な話なので)馴染みが無い方のために説明すると、コレーションとは文字列を並べる順番のことです。例えば “coté” と “côte” という2つの文字列があった場合に、フランスのフランス語のロケール(fr-FR)では前者が前になるのに対して、カナダのフランス語のロケール(fr-CA)では、後者が前になります。現在の Qt でもローカライズに対応した文字列比較([qt “QString::localeAwareCompare” l=qstring m=#localeAwareCompare])ができますが、これには2つの問題があります。1つはシステムロケールしか使えないこと(どのロケールのルールかを指定できない)、もう1つは「デフォルト」の比較ルールを使用することで、これは(例えば “file10” と “file2” のような)数字の比較などを設定する方法が無いことを意味します。というわけで、私は QtCollator クラスのドラフトを実装をしてみました。このクラスは ICU ライブラリのラッパで、コレーションの機能を Qt […]

Read More

MeeGo 1.2 Harmattan を Qt SDK に追加しました

Published Friday June 24th, 2011 | Leave a comment
Posted in MeeGo, SDK | Tags: , ,

この記事は Qt Blog の “Introducing MeeGo 1.2 Harmattan to the Qt SDK” を翻訳したものです。 執筆: Maurice Kalinowski 2011年6月21日 本日、Qt SDK に以下のアップデートをプッシュしました。 Qt Creator 2.2.1: これは主にバグフィックスのリリースです。詳細は こちら の記事を参照してください。 MeeGo 1.2 Harmattan: Qt SDK に MeeGo 1.2 Harmattan アプリ 開発用のツールチェインとコンポーネントを試験的に追加しました。この機能は Qt SDK がサポートする全ての開発プラットフォーム(Microsoft Windows、Linux、Mac OS X)で利用可能です。 MeeGo Harmattan のサポートはまだ完成版ではないのでご注意ください。そのため、これらはインストーラーやアップデーターの中の “Experimental” セクションの下に含まれています。これらは自動的にはインストールされないので、新規に Qt SDK をインストールする際には “Custom” モードでのインストールを選択し、手動でこれらを有効にする必要があります。これにより全てのセットアップが完了し、 Qt Creator […]

Read More

Qt Creator 2.2.1 リリース

Published Friday June 24th, 2011 | Leave a comment
Posted in Qt Creator, ニュース | Tags: ,

この記事は Qt Blog の “Qt Creator 2.2.1 released” を翻訳したものです。 執筆: Eike Ziller 2011年6月21日 ここ6週間の間 Qt Creator IDE の 2.2 ブランチの中には、かなりの数のバグの修正が積み重なってきたため、これらを使用できるようにすることにしました。今日の Qt SDK のパッチリリースのタイミングに合わせたため、修正点はあまり多くはありません。というわけで、本日 Qt Creator 2.2.1 のリリースをみなさんにプレゼントします。 誤解の無いようにしておくと、ごく限られている期間でのパッチリリースなので、今回は 30 程度の変更しか含まれていません。以下にいくつか変更点をあげます。 スタティックな mingw ライブラリの ABI の検知の修正 CDB でのデバッグに関する修正をいくつかと、その他のデバッグ関係の修正が少し QML の import の解決と Mobility 型の説明に対する修正 翻訳の修正 Qt Creator 2.2.1 のダウンロード Qt SDK 1.1.2 のダウンロード

Read More

Qt Contributors’ Summit

Published Wednesday June 15th, 2011 | Leave a comment
Posted in Qt, イベント | Tags: , , , ,

この記事は Qt Labs Blog の “Qt Contributors’ Summit – Last Minute Updates” をもとに加筆したものです。 今週 16~18日にドイツ・ベルリンにて Qt Contributors’ Summit を開催します。これは、Qt に貢献している方々が世界中から集まり Qt の将来の方向性や開発体制についての議論をするための初めてのイベントです。 アイデアとしては、状況に合わせて変化する アンカンファレンス形式 (一部のセッションはもっと構成されていますが)で行います。トピックを公募しており、参加者による提案でアドホックセッションも行えるように十分なスペースを用意しています。 参加者の方々にイベントに向けてご提案頂いたトピックは the Qt Developer Network にて公開されていますが、Qt 5 と オープンガバナンス が主なトピックとなります。本当に素晴らしい議論になりそうで、火花が散るのを見るのが待ちきれません。タイムテーブルは こちら で公開されており、メインルーム GEO でのセッションは撮影され後日公開を予定しております。 さて、今我々の Community Manager である Alexandra はイベントの最後の準備に追われていますが、部屋はもう満杯だそうです。締め切り前に登録して頂いた方々のおかげで、十分な部屋・席・食事等の計画を立てることができ、また、たっぷり水増しはしていたそうです。それでも、土壇場のリクエストに圧倒されている状況の中ですでに定員ギリギリとなっていますので、かなり熱いイベントになるかと思います。 ひとつ残念なお知らせです。実際にオープンガバナンスをローンチしリポジトリを公開するために本当にハードに頑張っていますが、今回は「まだローンチ出来ません。」と答えるしかありません。複雑な作業で、悪い影響が後で出ないようにしたいと思っています。要するに、今回のイベントではオープンガバナンスはローンチされません。しかし、我々は本気でやろうとしていますし、早く解決したいとも望んでいます。 尚、今回のイベントには Qt コミュニティの方々に加えて世界中からたくさんの Trolls も参加する予定で、その数の多さでは DevDays 以上かも知れません。日本の Trolls も参加する予定ですので、Twitter アカウント @qtjapan @qtbynokia をフォローしておいて下さい。もしかしたら、16日10:00 […]

Read More

Qt SDK 1.1 ベータ版で、ほんの1日で出来ること

Published Tuesday June 14th, 2011 | Leave a comment
Posted in Qt Quick, SDK | Tags: ,

この記事は The Qt Blog の “From Qt SDK 1.1 Beta to an app in just a day” を翻訳したものです。 執筆: Carol Røsland 2011年3月9日 前週に出会った tweet はすぐに私の好奇心を刺激しました。それは、病気になった息子さんと一緒に家で過ごした1日についてのある父親の tweet でした。その日、彼らは一緒に Qt Quick ゲームアプリ “DoodleDrive” をデザイン・開発をしたのです。私はすぐに受話器をとり、その方に新しい Qt SDK 1.1 ベータ版の感想を尋ねたところ、私の予想通り簡単に使えることにとても驚かれたそうです。 (訳注: Qt SDK 1.1 正式版は リリース済み です。) Tommi Laukkanen さんは、これまで Qt を使ったことは無く C++ プログラマでもありません。フィンランド人ではありますが、現在も過去も Nokia で働いたことは全くありません。彼はソフトウェアエンジニアで、主にエンタープライズ向けソフトウェアの開発を仕事としています。自分の (C++以外の) プログラミングスキルを Qt で試すことのできる […]

Read More

オープンソースカンファレンス 2011 Hokkaido 御礼

Published Monday June 13th, 2011 | Leave a comment
Posted in イベント | Tags: , , , ,

6月11日の「オープンソースカンファレンス 2011 Hokkaido」でのセミナー「Qt : アプリケーション・UI 開発フレームワーク」へ多数の方々にお越しいただき、誠にありがとうございました。 当日使用した資料を公開します。Qt-OSC2011-Hokkaido.pdf をダウンロードしてください。OSC2011 Sendai で使用した資料をもとに若干構成を変更しています。セミナーに参加できなかった方でも、Qt に興味がある方には是非参考にしていただきたいと思います。 次回は7月15日~16日の「オープンソースカンファレンス 2011 Kansai@Kyoto」への参加を予定しています。お楽しみに。

Read More

Qt 4.8 での OpenGL のスレッド利用

Published Friday June 10th, 2011 | Leave a comment
Posted in Qt | Tags: ,

この記事は Qt Blog の “Threaded OpenGL in 4.8” を翻訳したものです。 執筆: Jason Barron 2011年6月3日 Qt の OpenGL モジュールを使用したことのある方ならば、OpenGL を別スレッドで動かしたいと考えたことがあるかもしれません。OpenGL の実装自体は(ほとんどが)リエントラントなので、それに対する障害はありません。実際、古めの記事ですが Qt Quarterly の [qt “第6回” l=qq06-glimpsing m=#writingmultithreadedglapplications v=qq] でその方法を説明しました。普段から OpenGL のコードを直接書いているような人々にとっては役に立つ記事ですが、Qt の有用なクラス群も別スレッドで使いたい場合にはどうでしょう。残念ながらそれらの Qt のクラスがスレッドセーフではなかったため、それは不可能でした。Qt 4.8 ではその修正を行い、多くの共通するシナリオのいくつかをサポートしました。X11 でこの新機能を使うには [qt “Qt::AA_X11InitThreads” l=qt m=#ApplicationAttribute-enum v=master-snapshot] アプリケーション属性を有効にして、GLX の呼び出しがスレッドセーフになるようにする必要があります。Windows と Mac OS X ではこの操作を行わなくても動くはずです。 バッファ交換スレッド GPU やそのドライバにもよりますが、swapBuffers() の呼び出しコストは(特に組み込みプロセッサでは)高くつくことがあります。多くの場合、この関数は GPU に全ての描画コマンドを現在のフレームに対して実行するように命じます。これが同期動作する場合、GPU が動いている間メインスレッドがブロックされます。スレッドには他にやるべき事がたくさんあるので、GPU の動作が終了するのをただ待っているのは無意味です。例えばその時間で、イベントループに戻ってネットワークやユーザからの入力を処理したり、次のアニメーションを準備したりできます。4.8 […]

Read More

QML Scene Graph が master に

Published Friday June 10th, 2011 | Leave a comment
Posted in リサーチプロジェクト | Tags: ,

この記事は Qt Blog の “QML Scene Graph in Master” を翻訳したものです。 執筆: Gunnar Sletta 2011年5月31日 5月の終わりに qtdeclarative-staging.git#master に QML Scene Graph を取り込みました。さぁ、モジュール化された Qt 5 リポジトリ からソースコードを取得して、ハックをはじめましょう。 この基本的な使用方法は qmlscene を実行することです。もしくは、QSGView を使用して qml ファイルを実行することも可能です。import する際の名前が QtQuick 2.0 にアップグレードされていますので、qml ファイルも書き換えてください。qml ファイルを書き換えていない場合には、qmlscene は QtQuick 1.0 のファイルを 2.0 としてロードしようとするでしょう。QDeclarativeItem ベースのプラグインはロードされないでしょう。 QML Scene Graph の紹介のために以下の動画を作成しました。 この動画で使用しているソースコードは こちらから 入手可能です。このデモでは QML プレゼンテーションシステム を使用しています。

Read More
Get started today with Qt Download now