翻訳、Subversionは、最初の洞察

2008年1月30日·で掲示される意見Subversionの · 表示のコメント

雨天の利点を生かし、この週末は、本"Subversionによるバージョン管理"の以下の翻訳を与えた。 残念ながら時間が短いですが、私は、このタスクのために週に1日を予約。

最初はそれが私が予想以上に困難に思えた、とにかく私は英語を話すことはありません、単に読み書き、これは翻訳のための十分な実証されています。

実際、私はそれを楽しんで、私は翻訳弛緩ことを発見しています。 本自体は非常によく書かれているため、それはおそらくです。 テキストは、翻訳、それを理解するの単なる帰結すること、読み取ることが明らかと楽しいです。

最後に、私は同時に私の語彙を増やすとSubversionの基本を学んでいる。 一つの値段で2を購入する。

私はこの勢いと既に25パーセントの翻訳であるそれらの実現の早期章を、続けたいと思います。

誰がサポートアカウントのために支払う?

2008年1月28日·年投稿レビュー · 表示のコメント

私は読んでいた記事ファビオのテレス彼はそれはPostgreSQLの新しいバージョンをサポートしていないので、彼らのERPベンダーと手にあったクライアントの話をした。 テキストはかなり興味深いものですし、サポートに対する所有者のサポートの問題に対処して"自由。"

私の視点から"無償サポート"、大きく分け含蓄、フリーソフトウェアのサポートの一つ、企業が提供する、と支払われ、他のフォーラムやリストで提供されている"無償サポート"の他を持っています。 サポート"所有者は、"プロプライエタリなソリューションに企業が提供するサポートとなります。

私はモデルが他より優れているということを意味するもの、または比較を行わないでください。 各モデルは、独自のニッチ、期間に適しています。 私は1つ(多くの中で)"サポート"のリストやフォーラムの側面についてのみ話します。

手始めに、メーリングリストやフォーラムでは、サポートされていることを主張しない、または私は間違ってない? 両方の目標は、情報、ヘルプではなく、サポートを共有できるようになることです。 それはニッチに合う公共としていなかったため、このコースを取った場合のどちらか。 すばらしい。

私が疑問に思う:企業はサポートに対して課金なら、彼はおそらくコストを持っています。 それから私は自問:誰が"フリー"のサポートのコストを支払う? 連中は、無料でそのサポートが愚かなリストですか? 彼らはとても優れているなら、なぜ彼らはそれのために充電されないのですか?

よく、"空きビールはない。" 会社はあなたを提供するために、アナリストや技術サポートのサービスを雇うときは、専門家は、時間当たり一定のコストを持っています。 もちろん、なんらかの形で働くすべての人は、彼女の仕事および/または時間のために、"値/時間"の充電に終わる。 ITプロフェッショナルは、フォーラムやメーリングリストでのヒントを与える、それは言葉遣いから要した時間は、最後に提出するたびに、投資になります。 記事が間違っている場合でも、他の人は、遅かれ早かれそれを修正します。 このように、情報が前後に、二つの方法で流れる。 いつでも投資の価値に関する情報は次のようになります。

専門家の観点から、大まかに言えば、私はリストやフォーラムで何かを置くたびに、私は私の時間、彼らは私にリストを与えるサポートのための私の価値/時間で支払っている。 私はリストのヒントを使用するたびに、私はクライアント言いすぎましたね。 興味深いことに、このコンテキストでは、誰がサポートを支払うことは、サポートを与えてくれるものです。 その見返りに、私は自分のキャリアを高めるために現実の世界で使用されている経験、専門知識と名声、のリストを取得。

と誰がリストに載せていないのですか? デフォルトを与えている?

技術的には、ない。 誰もが何かを投稿することが義務付けされていない、彼らはすべてボランティアです、と私のような投稿をしないいくつかの理由を、聞いたことがある:

とりわけ"私のポストは、冗長になる場合、私は質問に答えて""ああ、私は。投稿するにはあまりよくないね"それとも。 常識のように実際に有効な、何も両方。 私の考えでは、リターンが来ることがないので、上、足を撃たれてしまう利点を、取るつもりで貢献していない、唯一の非倫理的となる...

最後に、"自由"をサポートしても、それが見えるかもしれないほど逆説的支払われます。 それは途方もない付加価値を小さなコストであり、それは有能な専門家の費用のリストを持っていることから御社を解放していない、サポートしたり、独自のITスタッフを専門とする会社です。

第I部、QTで起動

2008年1月26日·で掲示されるC / C + +Qtの · 表示のコメント

要請があれば、私はQTに冒険を得るために短い記事を表示することに決めた。

apana 20行では、スペース(はい、スペースは、あなたの友人である離れることはない)と追加ヘッダを付加して、我々はすでにフレームワークの主な機能を使用して、"Hello World"のチャートを、行うことができます。

私は他のプラットフォームでテストする方法がないとして、私はプラットフォームがどの* nixを使用していると仮定している、とQTの開発ライブラリはすでにインストールされていることだけでなく、標準のビルドツール。 QTがインストールされていない場合は、それはこのを見てだと考えているリンクを

完全なソースコード例は、ダウンロードすることができますここで 、しかし、あなたが手でそれを行うのを好むなら、どこqthelloにし、次のような内容のmain.cppはと呼ばれるファイル内のディレクトリを作成します。

 02 #include <qwidget> 03 #include <qapplication> 02 01は、#include と##<qwidget> 03 あり 

今ターミナルを通過、そのディレクトリとタイプqmakeは-プロジェクト。

すべてが正しくインストールされている場合は、qthello.proというファイルが作成されている必要があります。 ディレクトリ内にqthello.proがない場合は、前の手順を確認してください。

すべての端末タイプのqmakeのに定住&&make これは例をコンパイルし、それが働いた、qthelloという実行可能ファイルが作成されました。

。/ Qthelloでそれを実行し、ボタンを持つウィンドウが表示されます。

ソースコード:[OK]を、楽しみの部品は現在してみましょう。

最初の三つの行は、QTを使用するクラスに関連するヘッダのみを含みます。

7行目は、Qtアプリケーションを宣言し、シェルプログラムによって受信されたパラメータに渡します。 QApplicationのクラスは、プログラムとその設定のメインフローを管理します。 これは、インターフェイスと他のソースの両方からすべてのイベントを処理し、出荷されるメインイベントループが含まれています。 また、他のものの間でプログラムの起動と停止を管理します。

8行目は、私たちの主要なグラフィック要素となるウィジェットを宣言しています。

9行目は、"Hello World!"というテキストを持つボタンを宣言し、私たちのメインウィジェットの"息子"です。 これはボタンがメインウィジェットに表示されるようになります。

線の11:12形状と配置のコンポーネントを設定する。

ライン14は、フレームワークの主な特徴の一つ、 シグナルスロットシステムを示しいます

シグナルとスロットはオブジェクト間の通信を実行するために使用されます。 このシステムを介してオブジェクトには、(送信)は、1つ(またはそれ以上)のオブジェクト(s)で捕捉し、処理できるイベントを(信号)起動できます。 シグナルとスロットはクラスの特殊なメソッドです。 基本的には、信号の放射を介してスロットへの呼び出しに変換されますMOC(メタ-オブジェクトのコンパイラ) 、コンパイル前に前処理のソースコード。 シグナルとスロットを実装する各クラスの場合、それは、コードの残りの部分と一緒にコンパイルされているmoc_nomedaclasse.cppというファイルを生成します。 これは、すべて透過的に行われており、プログラマは、通常、これらの詳細について心配する必要はありません。 実用面では、signigicaは呼び出しを介してそれに関連付けられているスロットはシグナルに渡されるパラメータと同じパラメータで何とか接続先となる信号を送る。 詳細については、オンラインマニュアルで確認することができます。

この例では、リンク信号がスロット終了()アプリケーションオブジェクトと、()オブジェクトのボタンをクリックした接続。 これは、ボタンをクリックすると、信号がトリガし、その後アプリケーションのオブジェクトによってキャプチャし、プロセスが終了されることを意味します。

それが見えるようになるように16行目では、show()ウィジェットのメソッドを呼び出します。

17行目では、我々は最終的にQTのためのプログラムを制御します。 exec()メソッドは、メインループとそのすべてのメカニズムを起動し、app.quitは()システム信号スロットを介して呼び出されたときにアプリケーションは、我々の場合には、終了したときのみ返されます。

この単純な"Hello World"はばかげて聞こえるかもしれませんが、メインループ、グラフィカルオブジェクトの作成とシグナルとスロットの使用として、QTのいくつかの重要な機能を実証するのに十分です。

次の投稿で私は我々自身のシグナルとスロットとタイマーの使用を作成するために紹介しま​​す。

参考文献:
QApplicationの
QWidgetの
QPushButton
シグナルとスロット

QTとマルチウィンドウのためのシンプルなインターフェイスマネージャの構築

2008年1月24日·で掲示されるC / C + +Qtの · 表示のコメント

グラフィックまたはテキストモードかどうかをいくつかの事例では、多くのスクリーンを保守システムのインターフェースを付与してしまった。 多くの場合、画面の数は、常にあいまいな呼び出しのもつれにつながった事前の計画のないシステム、、#ifndefs、スイッチ、および他のモンスターと一緒に成長してきました。

私は後半のようなゲームの最初のバージョンをしていたときに私はそのような問題に出くわした初めてだったElifoot CEFETESのフェアへ。 当時、私はそれが目標だったとき、彼らはお互いとだけ返されたのと呼ばれる一連の関数に出会いました。 結果:スタックがある! (この新しいバージョンで修正されたので、心配しないで!)

複数のウィンドウとのインタフェースの場合で、と計画はオンザフライで発生するシステムでは、破壊と恐怖の証跡を残し、そしてその上のウィンドウを閉じる前に他のウィンドウを呼び出すウィンドウを持つことが一般的です。 私は、あなたがこれまでびびるのメンテナンスを引き継ぐことにしたくないと考えています。

埃へのほこり...

私のケースでは、インターフェイスマネージャを作成して、問題を解決します。 インタフェースのオブジェクトの一元的な作成と破棄を制御するオブジェクト。 各オブジェクトは、それらのタスクを、マネ​​ージャーに信号を終えると、彼はクリーンアップの世話をする。 このように、オブジェクトが生まれるたびに、前方にプログラムの制御を渡すことなく、死ぬと、そのタスクを遂行する、彼は常にマネージャに戻ってくる。

私はマネージャーがオブジェクトを破棄することを言っていないことに注意してください、それはクリーニングを行います。 各オブジェクトには、成功または失敗のいずれかで、マネージャーに彼が終了するたびに通知するためにビルドしなければなりません。 多くの場合、オブジェクト自体は、"殺す"とそれだけでは非常に便利です、ワークマネージャのいくつかを取るが、制御できないことがあります。

開始する前に

私はこの単純なポストはすべてのQtの機能または管理インターフェイスのすべての側面をカバーするとは言えません。 私はちょうど私が私は問題を解決したかについてお話しします。 この記事はまた、そのようなパイナップル剥離に持っていた友人サンパウロ - リオデジャネイロへの賛辞です!

手オン

私は、ほとんどの部分は、ボトムアップ開発者ですが、トップダウンのアナリスト。 これは混乱に見えるかもしれませんが、ほとんどそこにパニックに陥る理由はない、または...

オブジェクトがメッセージを交換する必要があります。 このために、システムシグナル - スロットQTは大きな助けとなります。 オブジェクトは、シグナルが送信されます((信号)を発する)とマネージャは(スロット())、それらに耳を傾けるでしょう。

驚いたことに、UIMと呼ばれる上に、今からマネージャーのビルダーは、一行のコードを持っていません。 これはまさにパラノイア(またはしない)のために、0へのポインタを初期化...

UIMは、オブジェクトを作成し、混乱を洗浄するためのスロットを実装しています。 オブジェクトを作成するとき、UIMは、そのスロットのクリーニングには、このオブジェクトを接続します。 オブジェクトが死ぬと、それはクリーニングUIMスロットをアクティブにします。 スロットは、この例では、オブジェクトグラフのメインメニュー、ウィンドウの作成にリンクされます。

他のオブジェクトがすべての後、自身(約)について話をする小さいウィンドウ、ダイアログ、アプリケーションを構成するための1つ、そして2つである、マーケティングは重要です...

すべてのグラフィックオブジェクトは、私がクリックしてQt Designerをドラッグしてから、私の方法を取得するように調整。 それは芸術作品だから、手のピクセルを整列されるものは、唯一のコンセプトの証明ではありません。

グラフィックオブジェクト

セットアップ画面では、パラメータのリストがメインウィジェットに渡されるコンボボックスを持つ一般的な対話です。 私はQtのデザイナで生成されたコードを追加していることの詳細は、デストラクタ、およびマネージャに戻って、選択したデータを送信するために一対の信号スロットを持っている。 私は、現在の設定を追跡するための努力をしていません。 このチャットは別のポストのためです。

aboutsはプラスデストラクタ、基本的に同じコードがあった。

メインウィンドウには、他のウィンドウと点滅している狂気の正方形の完全なウィジェットを呼び出すメニューがあります。 正方形は、ウィンドウの設定を変更する情報の量です。

マジックQT

それらのクラスはQWidgetクラスから継承するため使用されるすべてのグラフィカルオブジェクトもQWidgetsです、と私は、次から継承された各コンストラクタメソッドで使用します。

 この-> setAttributeメソッド(QT::WA_DeleteOnClose、真の); 

によると、オンラインドキュメント 、これはそれが閉じているときにウィジェットを削除することはQtに伝えます。 そうでなければ、それは単に非表示になっています。

"... ...ウィジェットがクローズイベントを受け入れるとき、それは隠しています..."

"... ...もしそれが閉じられるとウィジェットを削除する場合は、Qtでそれを作成する::フラグをWA_DeleteOnClose。 これは、マルチウィンドウのアプリケーションの独立したトップレベルウィンドウに非常に便利です..."

[キャンセル]または閉じるをクリックするなどの故障でオブジェクトの終了を行うルーチンは、直接のclose()独自のスロットに接続されています。 これは、オブジェクトの破壊で最高潮に達する一連のイベントをトリガします。

オブジェクトのルーチンは成功し、[OK]をクリックし、データを送信、UIMに戻るには指示されたので、ルーティングすることもできます。 データを取得した後、UIMスロットは、直接オブジェクトのclose()を呼び出します。

オブジェクトが破棄されるときに、彼は彼の最後の息、と言う、(破壊されている記号)を送信します。 文字通り、彼は"私がだったという!!!".

"外部の"オブジェクトから、UIMは、定期的なクリーニングと只見にこの信号を接続して、聞いている! 準備完了。

私が使用した例では、画面上の正方形の額は、UIMを通じて、オブジェクトのMyConfを付属し、MyApplicationをにルーティングされます。 内部ウィジェットクレイジーにこれは順番に転送を。

に小さなウィンドウが開いている間、さらに面白くなる、ウィジェットはハッチが閉じているときに戻って、点滅が停止します。 それは愚かに聞こえるが、それはただ彼女が焦点にまたはではなかったしながらUIMは、それぞれのウィンドウに何が起こるかを完全に制御されていることを示すことであった。

結論

QTフレームワークは巨大で、巨大な範囲の機能を提供します。 一つは、オブジェクトが破棄される方法を制御することができます。 少しの計画でこれを一緒に使用し、信号のスロットシステムと組み合わせることにそれを回すことなく、非常に複雑なインターフェースを構築することができますTarrasque維持する時間。

ソース:

http://doc.trolltech.com

PS:完全なソースコードの例では、GPLの下にあり、これを介してダウンロードすることができますリンク ある日、私はそれにコメントを置く...

BUGFIX

クラスのコンストラクタのMySquaresの初期化プロパティがない場合の不幸な昆虫の隠蔽。 それが"セグメンテーション違反"を引き起こしたとして小さいが、有毒だったがペット、。 私はどこでも近いし、約した場合、プログラムを起動するとき、それは画面が正しく設定されていることを前提から生じた一連のイベントを表示。 修正されたコードは、上記のリンクにある、と覚えておいてください。

"常に使用する変数を初期化"

失われたブックの冒険者

2008年1月22日·年投稿BLA BLA BLALinuxの · 表示のコメント

最近、私は必要性/ Linux上の抽象的な合併症のSystem V IPCへのC + +のクラス内の1つを書きたいという願望に心を打たれましたが、私は後でこの話を伝える。 この記事の理由は様々なソースの研究に私はオンラインマニュアルの大きなリポジトリで再び自分自身を見つけたということですtldp.org そこに私は呼ばれる非常に有用だった書籍が見つかりました"Linuxのプログラマーズガイドを"

私は非常に本が1996年3月以降更新されていない、すなわち、ほぼ12年とメンテナンスされていないカテゴリに記載されていることを確認するためにしかし、びっくりしました。 私は疑いを持っていない、私は何人かの友人に参加し、我々は本を更新する権限を取得しようとしている。

基本的に許可を得るためにTLDP示唆している4つのステップがあります:

  1. 元の作者に連絡してみてください。
  2. 主題をカバーするマニュアルやその他のドキュメントの新しいバージョンがすでに存在するかどうかを判断し、
  3. 重複を避けるためにTLDPにお問い合わせください。
  4. 見直しを目的とした変更と文書をTLDPに送る。

興味深いことに、第二段階が最初に実行されました。 ネット上の検索では、我々は2000年からポーランドの出会い系への変換を除いて、新しいタイトルへの参照がないことを見た。 非常にTLDPでは、我々は、単一のタブ上でGNU / Linuxの一般的なプログラミング環境に対応する他の文書を発見した。

第二段階は、その後初めて(!?). 我々は、元の作者B.連絡を試みた スコットバーケット、スヴェンGoldt、ジョンD. 本やインターネット上で自分の名前への参照でメールを通じてハーパーとスヴェンバンダミーアとマットウェルシュ。

これまでのところ、期待どおりにするため、答えを受けていない、未配信の優しいバックの本に含まれるすべての古い電子メール。 それは良いニュースで、正しい受信者とリターンに達することができるインターネット上で取得した電子メールを待つのまま。 それまで我々が望んでいるとの可能な再版に向けて準備"Linuxのプログラマーズガイド。"

Sampaは第三のC / C + +ユーザーのグループ-会議、私がいた!

2008年1月20日·投稿のC / C + +イベント · 表示のコメント

この最後の土曜日、19/01/2008に、第三Apeoesp SAMPAの講堂で開催されたC / C + +ユーザーのグループ - 会議、C /の会合C + +ブラジルのさまざまな場所から。

我々は、GUIの開発プラットフォームの代替としてwxWidgetsを提示し、他の人がピーターラマスとによって提示、2009年にISOによって投票される新機能に焦点を当てイヴォナシメント、"C + + wxWidgetsを持つ"として非常に興味深い講義をしていたワンダCaloni

我々はまた、出席したAGIT私たちに大きな力を与えた、との面々はブラジルのTrolltechのイベント中にraffledいくつかの贈り物を与えた。

会談後、我々は、過去、現在、我々は様々なプロジェクトを議論し、会議で今年後半に開催されるグループの将来について討論を行う。

すべてこの近くには、近所でさえ黄金の鍵"C / C + +ビールの会"ここを実現するために後。

書籍"Subversionによるバージョン管理"を翻訳するのに役立っ

2008年1月18日·で掲示されるのSubversion · 表示のコメント

今日はこれで非常に迷惑してしつこいされた後、私は最終的に本の翻訳者のグループを支援するための権限だ"Subversionによるバージョン管理を"

翻訳プロセスは半分スタンディング、バージョン1.2以降がないアップデートであり、我々はバージョン1.4ですでに準備されています。 ストライドに巻き込ま忙しいメーリングリストとスタッフはそうしているみましょう。

活発なクラス、リスト沸騰、私は時間を無駄にしない、私は一つの章"基本概念"を取り、既に作業を始めている。 早い上に、私はそれが思った以上に困難であることを見た。 私はあまり期待していなかったが、これは私たちが克服することを確信している課題です。

何が最も驚いたのプロジェクトに関わる人々が国の四隅に散らばっているということですが、それは我々がすべてのネイバーているようだ。 障壁なし、境界線なし。 なんてこったのグローバル化!

ブラジルのポルトガル語への公式の翻訳、さらに古くは、この時点で見つけることができるリンク

次のページ»