Posts Tagged ‘Mandriva’

glade

覚書ページの整理が全然進まない。
PyGtk はどの順番で widget 解説を進めるか考えると頭がおかしくなりそう。
TreeView や TextView の前に Scrollbar や Scale の前に Adjustments の知識が必要で…

それより、もう使わなくなった Glade 関連の解説なんかはどうしようかと。
なんたって今では普通 libglade ではなく GtkBuilder を選ぶだろうし。
最初の GUI アプリ作りのとっかかりは Glade ほど解りやすいものは無いだろうし。

いやまてよ。
C 言語から Glade を使う方法てか GTK+ コンパイル方法も併記すればいいんでない。
なんたってソレは私自身もやったことがないので勉強にもなる。

よし Mandriva One に Glade や GTK+ ヘッダをインストールしてみよう。
C でやるには別途でコンパイラの他に GTK+ ヘッダを入れる必要があるんだよね。
Ubuntu での需要ばかりだろうから Ubuntu には後で入れる。

libgtk+2.0_0-devel を導入。
依存関係で他のパッケージも沢山インストールされるが気にしない。

devhelp も導入。
/usr/share/gtk-doc 以下の doc はコレで見られるようになる。
libgtk+ を入れた後はこんな感じになる。

glade も一応入れてと。
んで海外からチュートリアルを探してみたら強烈なとこを見つけた。

GTK+ and Glade3 GUI Programming Tutorial – Part 3

とにかく tutorial.xml を落とし C コードをコピペしてコンパイルしてみる。

普通にコンパイルが通って動かせた。
ふむふむ、C から Glade ファイルを使うにはこうすればいいのか。
しかしこんなトコを見た後では何を書くのも気後れするわ。

でもコンパイルオプションが長くてメンドクセ!
メモリの解放処理をいちいち書かなければいけないのがメンドクセ!
つーかメソッドではなく関数を使うのがメンドクセ!
PyGtk がどれほど楽チンなのか改めて思い知る。

main function

さてスッゲェ久々に Linux で C/C++ をやるか。

コンパイルするのがメンドクセェ、Python スクリプトでイイじゃん…
てか今更 ++ の無い C はどうも、class が利用できないなんて考えられない…
とは言わないで、基本は大事だから。

Mandriva One の人は gcc が入っていないので gcc-c++ をソフトウエア管理から入れよう。

なんか Ubuntu とは随分違うんだけど、Mandriva の java うんちゃらって何だろう?
とにかくコレで Mandrina One でも C/C++ のコンパイルができる。

ということで早速超最小限の C 言語コードを書いてコンパイルしましょう。

#include <stdio.h>

main()
{
    printf("はろぉわーるど\n");
}

コレを少し奇妙に思った人は最初をすっとばして勉強している人。
main 関数が値を返していない、引数が無い、でもこれでコンパイルは通るんです。
Windows で C をやっているなら知らない人はいない粂井氏や赤坂氏もコレで始めていますよ。
つまり Visual Studio でやっても同じ結果、return 0; は実は書かなくても良かったりする。

C言語編INDEX
C言語入門

main 関数は仮引数を持たない関数、又は 2 つの仮引数を持つ関数として定義される。

int main(void) { /*...*/ }
int main(int argc, char *argv[]) { /*...*/ }

返却値の無い場合のホストに返させる終了状態は未定義である。
と、私のバイブルである「新ANSI C言語辞典」に書いております。

新ANSI C言語辞典

とりあえず返却値はゼロが戻れば Windows も Linux も正常終了とホストが解釈する。
やたら詳しいページを見つけたのでリンクしておきます、envp なんて初めて知ったよ。
main – 通信用語の基礎知識

ということで CUI なら Linux でも Windows とあまり違いが無いと解りました。
後は粂井氏や赤坂氏のサイトで(ぉい!

いや、もう少しやると思うけど配列とかの基本は本や既存のサイトで十分だもの。
こういう少しヒネクレたネタのほうが私は好きなのです。

Double.NaN

びっくりした事

あれ?C# って Double ならモロに 0 で除算してもコンパイルエラーにならないんだ。
clr なら同じかなと思って IronPython で為してみたけど実行エラーが出るだけだった。
てか文法が合っているなら普通の Python でもこの強引なコードで読み取りは通るんだね。

def check():
    print 0/0
input("wait: ")
check()

C# も為してみようと思ったけど仮想 Vista を立ち上げるのが面倒なので mono でやってみる。
Mandriva One GNOME は gcc がデフォでは入っていないくせに gmcs はしっかりあるんだよね。
ま、最近の GNOME なら全部入っているだろうけど。

ということで

Console.WriteLine(0/0);

だと mono でもしっかりコンパイルエラーになります、忠実に再現しているのね。

Double.NaN フィールド (System)

コレも当然動く。
こういうのって便利なのだろうか?普通に例外を吐くだけのほうが楽だと思うのだが。

Linux のディスプレイ電源管理は DPMS で

Windows 7 の他に私は Mandriva Linux 2010.0 One GNOME 版を利用している。

しかし Ubuntu 9.04 を使っていた頃と違い何故か色々と設定が効かない。
特にどういうわけか GUI で設定しても 10 分程度でモニタ電源が切れてしまう。
動画を見ている最中に突然ディスプレイが真っ暗になるのはかなり辛い。

Ubuntu日本語フォーラム / xubuntuでブランクスクリーンにさせない方法は

Ubuntu の人でも同じようなことが起こる場合があるのか。
Mandriva が悪いのではなく ATI ドライバーか何か環境によってこうなるっぽい。
ということは別の省電力機能がこのダイアログ指定より優先して動作するのかな?

DPMSとは:IT用語辞典 / cybozu.net

どうもコレっぽい、電源管理は ACPI だけじゃないんだね。
色々探してみるとこの設定は xset というユーティリティで確認と変更できるようだ。

Manpage of XSET

xset_q

やっぱり有効だった、でも日本語でいくら検索しても皆未解決みたいな…

Screen blanks after idle for 10 mins…. – Ubuntu Forums

海外を探すとこんなのを見つけた。
DPMS を無効にする等やってみたけど駄目、noblank だと X のロゴが出る。

Screen Blanking Under X

とにかくタイムアウトさせなきゃいいのかな?
timeout: 600 になっているのが丁度 10min なので怪しいし。
xorg.conf に

Section "ServerFlags"
    # Append the following
    Option "BlankTime" "40"
EndSection

を追記して timeout を 40 分に設定、時間指定は分単位でお好みに。
これでやっと 10 分で画面がスリープしてしまうのが解決しました。

てんしん

sum とは言うまでもなく「合計」の意味である。
dim sum の意味が「点心」って、、、、、天津ではなくて?

tensin

Dim sum – Wikipedia, the free encyclopedia

プログラマーのみが笑えるネタおしまい。
こんなエントリさえもググなんとかさんは拾ってしまうかの実験を兼ねて。
いや、Mandriva ネタのアクセス解析が予想どうりだったので、というのは内緒だよ。

お知らせ – Mandriva Linux 製品取扱終了のお知らせ – SIDfm

需要ネェ…