ログイン
編集不可のページディスカッション情報添付ファイル
"clear/note/2011-04"の差分

MMA
1と14のリビジョン間の差分 (その間の編集: 13回)
2011-04-01 01:40:09時点のリビジョン1
サイズ: 669
編集者: clear
コメント:
2011-04-08 10:33:32時点のリビジョン14
サイズ: 4831
編集者: clear
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 3: 行 3:
 * kagisysは私がモタモタしているうちにハードウェアの方が進んできているので、そちらに歩調を合わせます
 * いい加減勉強する。コードを書く
  * socket programming
  * X11 programming
行 5: 行 10:
 * [[https://wiki.archlinux.org/index.php/Synaptics#The_touchpad_isn.27t_working.2C_Xorg.0.log_shows_.22Query_no_Synaptics:_6003C8.22|わりと長いこと懸案事項だったよく分からないエラーの対処法]]

=== X11、はじめました ===
とりあえずウィンドウを出す所までは行った。Win32APIを叩いていた頃の記憶がよみがえるような気がする。手始めに練習として、xmma(MMAのロゴを表示する。元ネタは言うまでもなくxlogo)を作ろうと思う。
 * どうやら、Win32APIの勘が結構生かせそうなので対比で学んでいくことにする
 * 何よりも最初にXサーバとの接続を行う。`XOpenDisplay()` <-> `XCloseDisplay()`
 * とりあえず何でも送られてくるWin32とは違って、欲しいイベントを最初に通知しておく
  * 拾わなかったものはどうやら祖先に送られるらしい
  * `MappingNotify`イベントは問答無用で全てのクライアントに届くらしい。これがどういうものかはまだ分からない
 * `XEvent`共用体というのがWin32でいうところの`MSG`構造体に当たるようだ。何か凄まじい宣言がなされている。以下`Xlib.h`から引用
 {{{#!highlight c numbers=no
typedef union _XEvent {
        int type; /* must not be changed; first element */
        XAnyEvent xany;
        XKeyEvent xkey;
        XButtonEvent xbutton;
        /* 中略。たくさんある */
        XGenericEventCookie xcookie;
        long pad[24];
} XEvent;
}}}
  * `XなになにEvent`構造体はすべて先頭の要素に`type`を持っているために、`type`を見ることでどのイベントか判別できるようだ
   * 個人的には、それをやるなら以下のようにするかなあと思うけど、まあ面倒になるだけか
   {{{#!highlight c numbers=no
typedef struct _XEvent {
    int type;
    union {
        XAnyEvent xany;
        /* ... */
        long pad[24];
    } u;
} XEvent;
}}}
  * `long pad[24];`は境界整合性を確保するための詰め物か。`union`なので、他のメンバが`pad`より小さければ`XEvent`のサイズは`pad`のサイズに従うはず

== 2011/04/03 ==
日々の記録(これ)の公開範囲を広げた
 * 公開しても問題なさそうなものの方が多いことに最近気づいたので、外部から読めるようにした
 * ページを再構築

<<Include(/03-log)>>

== 2011/04/05 ==
<<Include(/05-shinkan)>>
----
<<Include(/05-train)>>

== 2011/04/07 ==
 * 百萬石Web公開した(4/6)。後で色々まとめて[[EditHyakumangoku]]にマージする。

=== テキストエディタ ===
最近emacsを使ってみようかと思い始めている。あれこれ論評できるほどemacsを使っていない、というのが主な理由。vi(m)も活用できていない機能が多い。viで修行することも考える。

=== const ===
`XpmReadFileToPixmap()`の第3引数`filename`が`const`のないただの`char *`だったせいで、`const char *`なものを渡したら当然"invalid conversion"エラーが出る。かといってただの`char *`に文字列リテラルを代入すると"deprecated conversion"警告が出るように、これはあまり良くない。C++なら、これは`const_cast<char *>`の出番か。

== 2011/04/08 ==
 * Arch/kFreeBSD、やってみるかなあ
  * google先生に聞くと、Archのフォーラムの他に'''Debianのarchパッケージ'''がわんさか出てくる。たぶん[[http://www.gnu.org/software/gnu-arch/index.jp.html|こっちのarch]]
 * 少し前に試して分かったことだが、Archの`/etc/rc.d/`以下のスクリプトはbashの文法に依存している。動作が早くならないかなーとか言ってshとかdashに変えてはいけない。

2011/04/01

  • 4月になってしまった
  • kagisysは私がモタモタしているうちにハードウェアの方が進んできているので、そちらに歩調を合わせます
  • いい加減勉強する。コードを書く
    • socket programming
    • X11 programming

Synaptics touchpad driver

タッチパッドのレスポンスが以前からよろしくない気がしていたので、synapticsのmanを読んだりここを読んだりしていた。MinSpeedMaxSpeedの値をいじれば良さそうな気がするが、試しに適当に変えてみてもあまり変わった気がしない。静的なパラメータの変更はxorg.conf.d/10-synaptics.confに書けばできる。またsynclientコマンドを使えば動的に設定可能。もう少しパラメータの意味を探る必要あり。

X11、はじめました

とりあえずウィンドウを出す所までは行った。Win32APIを叩いていた頃の記憶がよみがえるような気がする。手始めに練習として、xmma(MMAのロゴを表示する。元ネタは言うまでもなくxlogo)を作ろうと思う。

  • どうやら、Win32APIの勘が結構生かせそうなので対比で学んでいくことにする
  • 何よりも最初にXサーバとの接続を行う。XOpenDisplay() <-> XCloseDisplay()

  • とりあえず何でも送られてくるWin32とは違って、欲しいイベントを最初に通知しておく
    • 拾わなかったものはどうやら祖先に送られるらしい
    • MappingNotifyイベントは問答無用で全てのクライアントに届くらしい。これがどういうものかはまだ分からない

  • XEvent共用体というのがWin32でいうところのMSG構造体に当たるようだ。何か凄まじい宣言がなされている。以下Xlib.hから引用

    typedef union _XEvent {
            int type;               /* must not be changed; first element */
            XAnyEvent xany;
            XKeyEvent xkey;
            XButtonEvent xbutton;
            /* 中略。たくさんある */ 
            XGenericEventCookie xcookie;
            long pad[24];
    } XEvent;
    
    • XなになにEvent構造体はすべて先頭の要素にtypeを持っているために、typeを見ることでどのイベントか判別できるようだ

      • 個人的には、それをやるなら以下のようにするかなあと思うけど、まあ面倒になるだけか
        typedef struct _XEvent {
            int type;
            union {
                XAnyEvent xany;
                /* ... */
                long pad[24];
            } u;
        } XEvent;
        
    • long pad[24];は境界整合性を確保するための詰め物か。unionなので、他のメンバがpadより小さければXEventのサイズはpadのサイズに従うはず

2011/04/03

日々の記録(これ)の公開範囲を広げた

  • 公開しても問題なさそうなものの方が多いことに最近気づいたので、外部から読めるようにした
  • ページを再構築

2011/04/05


2011/04/07

  • 百萬石Web公開した(4/6)。後で色々まとめてEditHyakumangokuにマージする。

テキストエディタ

最近emacsを使ってみようかと思い始めている。あれこれ論評できるほどemacsを使っていない、というのが主な理由。vi(m)も活用できていない機能が多い。viで修行することも考える。

const

XpmReadFileToPixmap()の第3引数filenameconstのないただのchar *だったせいで、const char *なものを渡したら当然"invalid conversion"エラーが出る。かといってただのchar *に文字列リテラルを代入すると"deprecated conversion"警告が出るように、これはあまり良くない。C++なら、これはconst_cast<char *>の出番か。

2011/04/08

  • Arch/kFreeBSD、やってみるかなあ
    • google先生に聞くと、Archのフォーラムの他にDebianのarchパッケージがわんさか出てくる。たぶんこっちのarch

  • 少し前に試して分かったことだが、Archの/etc/rc.d/以下のスクリプトはbashの文法に依存している。動作が早くならないかなーとか言ってshとかdashに変えてはいけない。

clear/note/2011-04 (最終更新日時 2011-04-30 19:17:27 更新者 clear)