サイズ: 11732
コメント:
|
サイズ: 12032
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 190: | 行 190: |
{{attachment:xsm.png}} * まあこうなりますよね。フローティングで出しても邪魔になるだけと思われるのでやめた * 一応、xsm用にタグを一つ用意する手もあるにはある * 後で読む: https://wiki.archlinux.org/index.php/Arch_Boot_Process |
2011年4月
04/01
- 4月になってしまった
- kagisysは私がモタモタしているうちにハードウェアの方が進んできているので、そちらに歩調を合わせます
- いい加減勉強する。コードを書く
- socket programming
- X11 programming
Synaptics touchpad driver
タッチパッドのレスポンスが以前からよろしくない気がしていたので、synapticsのmanを読んだりここを読んだりしていた。MinSpeed、MaxSpeedの値をいじれば良さそうな気がするが、試しに適当に変えてみてもあまり変わった気がしない。静的なパラメータの変更は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のサイズに従うはず
04/03
日々の記録(これ)の公開範囲を広げた
- 公開しても問題なさそうなものの方が多いことに最近気づいたので、外部から読めるようにした
- ページを再構築
04/05
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 *>の出番か。
04/08
- Arch/kFreeBSD、やってみるかなあ
google先生に聞くと、Archのフォーラムの他にDebianのarchパッケージがわんさか出てくる。たぶんこっちのarch
- ローリングリリースがネックとなりそう
少し前に試して分かったことだが、Archの/etc/rc.d/以下のスクリプトはbashの文法に依存している。動作が早くならないかなーとか言ってshとかdashに変えてはいけない。
muttの設定を施そうとして挫折した。muttrcでencodingを指定してもeuc-jpで送られる……
- どうもvimのエンコーディング設定(euc-jp)が上書きされている気がする
- やっぱりそうだった
:set fileencoding=iso-2022-jp
- 毎回設定するのは面倒なので、自動設定する方法を探さねば
- autocommandとかかな
- やっぱりそうだった
- どうもvimのエンコーディング設定(euc-jp)が上書きされている気がする
04/10
- Uターンには気を付けよう
- 油断するな
なんとなく家のマシンでVirtualBoxにArchを入れて遊ぶ
nestのVirtualBoxに入れる場合、blueをfedoraに取られてしまった
- 別に色に縛られる必要はないか
- nestの元ネタであるところのACネタなら、候補はいくらでも出てくるが
- インストール途中で挫折。何か壊れてるよこれ
- パッケージのインストールまでは成功したように見えたが、各種設定ファイルのテンプレートがことごとく空っぽ
- 少し前にpacmanのデータベース形式が変わったが、使用したインストールイメージ(最新)はそれ以前のものなので、ここに問題がある可能性が高い
- もう一回パッケージインストールをしたら途中から始まって上手く行った模様。良く分からない
- その後は無事にインストールが完了して動いている、ように見える
- もっと、もっとコード書こう
- POJとかAOJとか活用するのも良いかも
登録したまま放置してるTopCoderとか
04/11
- 部室にあった「X Window ハンドブック」が非常に良さそう
04/12
04/13
mutt+vim、エンコーディングの設定
メール作成時に上がってくるvimで:set filetypeすると、どうやらファイルタイプは適切に設定(認識?)されているようだった。あとはfileencodingを適切に設定してやればよい。.vim/ftplugin/mail.vimに次の1行を書く。
setlocal fileencoding=iso-2022-jp
これでOK。vimrcでfiletype plugin onしておく必要がある。
04/15
bcd、ppt(6)
- 感動した
See Also: morse(6)
04/16
graphvizのdotへの入力はUTF-8でないといけないのか
標準入力から読んでくれるので、nkf -wとか使って流し込めばいい
- やろうやろうと思っていた、日付から無駄な年を削る作業を完了
- 度々お騒がせしております(更新履歴を)
- ちょっと追記したり
- 衝撃の事実: dwm用のランチャ(dmenu)は全然dwmと連携していなかった
- dwmのバーとすっかり同じサイズ、同じフォントで描画するからあたかもdwmの一部であるかのように見えるだけ
dmenuを呼び出す際のオプションはconfig.hに書く -> dwmのバーのフォントとか色とかはconfig.hに書いてある -> 後は分かるな
- dmenu自体コンパクトで良いんだけど、何から何まで(パスの通ってるもの全部を、辞書式で)表示してくれるので使ってなかった
- パスの通ってるものを表示する機能は実際にdmenuを呼び出すのに使っているdmenu_runというやつが実現しているようだ
- dmenu自体は標準入力から受け取ってメニューを作り、選択されたものを標準出力に出すだけ
- ということはそういうことだ。上手くやればdynamic度が上がるぞやったね。しかし本当に良く考えられている……
- パスの通ってるものを表示する機能は実際にdmenuを呼び出すのに使っているdmenu_runというやつが実現しているようだ
Originally designed for dwmってそういうことだったのか
- UNIX的。小さいツールを組み合わせることの強み
- dwmのバーとすっかり同じサイズ、同じフォントで描画するからあたかもdwmの一部であるかのように見えるだけ
admonitions
テスト。文章は完全にネタなのでスルー推奨
メインシステム、戦闘モード起動
AC用パーツを入手
南東に敵増援を確認
AP50%、機体ダメージが増大しています
作戦目標クリア。システム、通常モードに移行します
04/17
- dwmとかdmenuをhackしている楽しい人たちが相当数いるようだ
dmenuいじった
こちらに分離
04/20
私がhameggです
- どうしてこうなった! どうしてこうなった!
04/23
私はclearです
- このひとなにいってるんだろう
最近More Effective C++を原書で読んでいる。比較的古い本だけど勉強になる
new演算子とoperator newの違いとか、例外を投げた際は必ず(throwで投げた時点で)オブジェクトのコピーが発生するとか、色々新しく知ったり
- 後でいくつかテストコードを買いてちゃんと挙動を確認する
- C++で例外を使い出した途端、気をつけなければならない事柄が急増する。kagidで例外を使うか悩む程度には
- 「ちゃんと」書ければ問題ないが。特に怖いのはリソースリーク
The Annoted C++ Reference Manual(大学図書館にあった)とかThe Design and Evolution of C++(大学図書館にはない? 訳書を生協で売ってる)、も読んでおきたい
- 何というか、C++にはただ一通り学ぶだけでは分からない落とし穴が多いと思う
- そもそもある程度知らないと検索のしようがないので、個々の事柄について自分から調べるというよりは、人の書いたまとまった分量の文章(本とかblogとか)を読んで初めて知る、といった感じ
- 結構クリティカルなものが多いのでたちが悪い
- それをおいても面白いからもっと使えるようになりたい
- 何というか、C++にはただ一通り学ぶだけでは分からない落とし穴が多いと思う
- いろいろな意味でboost
04/24
- muttがしょっちゅうバスエラーで落ちるのは私だけだろうか
- とりあえず、何もしないデーモン(命名: nulldaemon)を書いてる
- 「詳解UNIXプログラミング 」図書館にあるので今度借りてくる
- 欲しいけどご多分に漏れず高い
- 4/25 借りてきた
メモ: /usr/src/lib/libc/gen/daemon.c
04/26
- xsmを使えば特別に細工しなくてもdwmを再起動できるようになるね、と考えて試した
- まあこうなりますよね。フローティングで出しても邪魔になるだけと思われるのでやめた
- 一応、xsm用にタグを一つ用意する手もあるにはある
- まあこうなりますよね。フローティングで出しても邪魔になるだけと思われるのでやめた
後で読む: https://wiki.archlinux.org/index.php/Arch_Boot_Process