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

glib の内部依存関係の調査

今回は備忘録です。 現在のglib2の内部依存関係の調査。 $ rpm -q glib2 glib2-2.26.1-2m.mo7.i686 $ rpm -ql glib2-devel | grep pkgconfig /usr/lib/pkgconfig/gio-2.0.pc /usr/lib/pkgconfig/gio-unix-2.0.pc /usr/lib/pkgconfig/glib-2.0.pc /usr/lib/pk…

glib で command を実行

通常、commandを実行するときは、system()を使いますが、これだと実行ログ(標準出力など)が取れません。glibでは g_spawn_command_line_sync () があり、これを使うと標準出力と標準エラー出力が簡単に取得できます。ということで、単純に wget で lame-3.98…

metacity 等 WindowManager のデバッグ

昨日の作業だけど、忘れないように書いておきます。metacity をデバッグするには、debugオプション付きでビルドしたものを gdb 等でデバッグする必要がある。しかし、metacity のような WindowManager は gdb から起動することはできないので、 $ gdb --pid=…

GIOでWebを読み込む

GIO って GVfs もサポートしているから、当然 Web 上のファイルも読み込めるはずと期待してプログラムを書いてみたら簡単に読み込めた。 ソースは以下の通りですが、最初の #define URL は適宜書き換えてください。 #include <glib/gprintf.h> #include <gio/gio.h> #define BUF_SIZE 10</gio/gio.h></glib/gprintf.h>…

プログラミング入門書

ここ2ヶ月ほどプログラミングの入門書をいろいろ眺めていたんだけど、これらを書いた人の才能は素晴らしいと思いました。以前から、初心者向けの本は書くほうが難しいと思っていたのですが、「みんなのPython」「猫でもわかるC#入門」「たのしいRuby」などを…

gsettings の使い方

gsettings の使い方を調べてみた。 一応、マニュアルは以下にある。 http://library.gnome.org/devel/gio/unstable/gsettings.html しかし、これじゃ分からなかったので調べてみた。gsettings は、 /usr/share/glib-2.0/schemas 以下にインストールされる *.…

dconf 関係の日本語化って先は遠いのかな?

GNOME 2.32.0 から正式に dconf がGNOMEに採用された。基本的にはGConf2がGSettings(GIOモジュールの一つ)に統合され、dconfはGSettingsのバックエンドになる感じみたい。これじゃ、わからんな。。。これまでは、GNOMEではアプリケーションの設定ファイルをs…

Xephyr で二重ログイン

ログイン画面のスナップショットを取るときに、これまで、 $ gdmflexiserver -nしていたのですが、gdmの設定をいじるとXephyrを使って同じことができる。具体的には、 /etc/X11/gdm/custom.conf をいじって、 [xdmcp] Enable=trueとすると、greeterではない…

GNOME 2.32.0 リリース

GNOME 2.32.0 がリリースされました。現在手元でビルド中ですが、gobject-introspection-0.9.6 になる影響で、girファイルのバージョン管理が必要となり苦労してます。また、gtkからgdk-pixbufが分離され、gdk-pixbuf-query-loadersというコマンドでキャッシ…

vala の ref と out

「猫C#」の第8章はクラスとメソッドの紹介ですが、再帰呼び出しは vala でも行えるので、ref と out を調べてみる。swap01.vala も swap02.vala も値渡しなので、本と同じ結果になる。 // swap01.vala class myclass { private int temp; public void swap (…

vala の演算子など(省略の説明)

「猫C#」の第4章はほとんど vala でも同じだけど、GetType() が無いので型の評価はできません。ここでコードを書いてもしょうがないから省略します。制御文についても同じなので、第5章も省略します。配列は、 libgee を使う場合もあるのでなんとも言えませ…

vala の string template と Variant

Console.WriteやConsole.WriteLine と比較して、 stdout.printf は若干面倒なきもするし、 object を用いた box/unbox のサポートが無いことも面倒な気がします。それらの全面サポートと言うわけではありませんが、GLib.string には、template というものが…

vala の文字列型など

さっそくp63のサンプルを試そうと思ったら、GLib.string で IndexOf (見つけた文字のオフセットを返す)を表現するには正規表現を駆使する必要があるみたいなので、ここではパスして、分かるところだけのサンプルです。 // string01.vala class string01 { pu…

vala のスコープなど

最初から飛ばしすぎて大変になりそうなので、少しずつ進めていきます。P54のスコープは、vala も同じなので省略します。P55の型変換は、2010-09-21に(ushort)の例があるので省略します。P58のenumからスタート。 // enum01.vala class enum01 { enum MyMonth…

vala の変数とデータ型

昨日に引き続き、「猫でもわかるC#プログラミング(第2版)」の第3章を vala で書いてみようと思います。vala の型については、 http://www.vala-project.org/doc/vala/types.html を参照してください。整数: char uchar short ushort int uint long ulong si…

「猫でも分かるC#プログラミング」はValaで使えるか

Momonga Linux 7もリリースされたので、trunk環境はvala-0.10.0に上げてみました。そして、C#とvalaの違いをのんびり調べようと思ったのですが、ネタが見つからなかったので、「猫でも分かるC#プログラミング(第2版)」を買ってきて、サンプルコードを試して…

metacityのテーマ

metacityのテーマを作ろうと思っていろいろ探してたら、すでに http://blog.livedoor.jp/hiroumauma/archives/1240580.html こんなページを作っている人がいた。 ちなみに、日本語チュートリアルはこちら http://www2.starcat.ne.jp/~kanocl/metacity/metaci…

またまたseedネタ

GNOMEのJavaScript環境のseedについてぼちぼち書いているのですが、基本的な参照先をまとめていなかったので書いておきます。まずは、SeedのHome Pageから http://live.gnome.org/Seed とりあえず、ここは時々見ておこうと思う。次に、Tutorial http://live.…

seedとGtkTreeView関係とMVCモデル

SeedでList表示しようと思い、いろいろ調べていたんだけど、結局完全には理解できていない。基本的には、seed-exampleの gtktreeview.js を使い回しすれば良いのですが、微妙に納得できていないところがあるので、思うままに書きます。devhelp では "Tree an…

SeedとSignal

GUIアプリを作るためには、signal(WindowsではMessage xlibではeventと呼ばれている)の処理が重要なのですが、seedでsignalを扱う方法がいまいち分かっていない。 例えば、windowを開くだけのプログラム。 #!/usr/bin/env seed const Gtk = imports.gi.Gtk…

seedでGIOしてみる

ということで、seed-exampleのls.jsを使って、girファイルリストを作ってみる。 #!/usr/bin/env seed const Gio = imports.gi.Gio; var g_file = Gio.file_new_for_path("/usr/share/gir-1.0"); var g_file_enumerator = g_file.enumerate_children("standar…

girファイルの解析 seed 編

最近になって、seedでlibxmlが使えることがわかった。なので、わざわざpythonなんかで記述しなくても、seedでseed用のファイルが扱える。チュートリアルとサンプルもあるので、そちらを見たほうが良いでしょう。 http://live.gnome.org/Seed/Tutorial/libxml…

girファイルの解析xsltproc編

girファイルをxsltprocで読みやすくしたいと思います。と言っても、今回はとっかかりだけです。 $ xsltproc -o Gtk-2.0.html gir01.xsl /usr/share/gir-1.0/Gtk-2.0.girこれで/usr/share/Gtk-2.0.girをhtml形式に変換します。すべてのtagを解析するのは面倒…

girファイルの解析python編

seed(JavaScript)でプログラムを書こうとすると、/usr/share/gir-1.0以下のファイルを解析する必要がある。中身はxmlファイルだから文字列扱えるpythonでも使おうと思ったら、pythonにはElementTreeというものがあるらしいので、ちょっと調べてみた。girファ…

GtkBuilderとPython(pygtk) JavaScript(Seed) C#(Vala) C そして Mono gtkmm gjs

libgladeからGtkBuilderへの移行の時期が近づいてますが、対応状況がバラバラなので、ある程度の割り切りが必要になりそうです。 当然C言語では問題ないですが、C++(gtkmm)は対応が中途半端みたいです。pygtkは問題なく動作中。C# と JavaScriptはValaとSeed…

GjsでもJavaScript

GNOMEではSeed以外でもJavaScriptでプログラムが書けます。それがgjs(Gnome JavaScript)です。こちらの方が名前が勝ってますが、残念ながらGNOMEとして採用されませんでした。 サンプルコードは、 $ rpm -ql gjs | grep /usr/share/gjs-1.0/ /usr/share/gjs-…

GObjectとJavaScript

GNOMEではJavaScriptエンジンとしてSeedとgjsがあって、mutterではgjsを使っていますが、GNOMEではSeedが正式に採用されました。 GUIプログラミング入門ネタ(STLUGの人しか知らないけど)として使えそうなので、ちょっと調べてみました。 #!/usr/bin/env seed…

GIO GFileのサンプルはgvfsが良さげ

glibのGIOのGFileを使うサンプルを物色していたけど、gvfsに素敵なサンプルがたくさんあった。gvfsでコマンドラインから実行できるアプリケーション群のソースを眺めてみると、GFileの使い方がよく分かる。RPM系のディストリビューションなら。 $ rpm -q gvf…

gtk-doc-1.13対応

gtk-docが1.13になってからビルドできなくなるソースパッケージが増えています。基本的な対応として、ソースのトップディレクトリで $ gtkdocize --copyを実行すればよく、これで、ソースのトップディレクトリに gtk-doc.make が作成されます。Makefile.amで…

go言語とx11

かいらぼ勉強会で、go言語でx11が使えると言うことだったので試してみた。まぁ、このへんの内容は、いろんなブログで書かれているから、そっちを参照したほうが良いと思う。go言語がインストールされている環境なら、$GOROOT/src/pkg/exp 以下の draw と dra…