昔の最近の出来事(2016.02)

2016/02/29

遅めに帰着。

speed-type。伸びない。

2016/02/28

昼過ぎ起床。

掃除したり。

mcalendar.el弄り。なんとなくそれっぽい感じになったような。

mcalendar.el 160228 テスト

広い画面を使ってアクセサリ表示すると、1ヵ月分だけのカレンダー表示では 物足りないなぁ?と思い、複数月表示したくなってみました。とは言え、 実際に最大ウインドウサイズでEmacsを使う事はほとんど無いのと、 あまり先の分までカレンダーを見る事もほぼ無いので、事実上の用途は無いかも 知れません。

因みに、Emacsを最大ウインドウサイズで使う事の無い理由は、Webの閲覧と 同時に使う場面が多いのに加えて、ブラウザは専用アプリを使う為です。 xwidget-webkit-browse-urlやewwが 普通のブラウザ と変わらないくらいの性能になればEmacsを最大ウインドウで使う可能性も 無くはありませんが、まぁ当分無いかな?という気がします。

そんな訳で置いてみました。 御参考まで。

以前、EmacsのTRAMP経由でリモートマシン のファイルにアクセスした時に、flymakeとgit-gutterを有効にしていると ファイル読み込み途中で止まるという現象があったのですが、 git-gutterを20160210.28ってのにバージョンアップした所、 突っかかる事が無くなりました。素晴らしい。

2016/02/27

昼過ぎ起床。

自転車修理のためにちょろりお出かけ。

ふと文房具を眺めていて、太い芯のシャープペンが気になってきたので 試しに買ってみたり。普段、紙へのラクガキは芯が折れないという理由で 鉛筆を使っています。折れる事そのものよりも、ゴミがそこら辺に飛ぶ のが嫌という理由だったりするのですが。しかし時々削らなくては ならないのと削ると短くなるというのが当たり前ですが欠点です。
で、0.9mmのを選んだのですが、割と鉛筆と変わらない線で良い感じに 思ったり。

思いつきでELISPで書いたカレンダーコードをいじり始めたら結構大変 だったり。

2016/02/26

遅めに帰着。

Emacsのspeed-type というタイピングゲームを始めたら、ムキになってやってしまう罠。

2016/02/25

遅めに帰着。

ちょろり調べ事をして終了。

2016/02/24

遅めに帰着。

先日開催されたTDF2016の結果がPouetに 挙がっていたり。 ストリーミングで見てた時は判らなかったのですが、 combined demoの1位作品って4kだったのか。スゲェ。

2016/02/23

遅めに帰着。

帰路途中に自転車のタイヤが突如バースト。結構な音がしたのに驚いた。 てか、まだ火曜日なのに直しに行く時間が取れないので、金曜まで 歩きになってしまうよ。とほー。

2016/02/22

遅めに帰着。

Web巡回して終了。

2016/02/21

AM中に起床。ぐうたらしてたら午後も良い時間。

TDF2016。昨日よりは少し観られるようになった感じ?TANEの都合で セミナーは観られませんでしたが。1時間押しでGLSL Graphics Compo が始まったり。続けてCombined Demo Compoと、時々途切れてましたが 観られました。作品数が非常に多かったように思います。

そういや以前作成したCPU負荷表示のELISPを 少し直して置いてみました。 御参考まで。

2016/02/20

昼頃起床。

TokyoDemoFest 2016が 本日スタートしていると思うのですが、ライブ配信は13:00時点で まだ来ていないようだったり。セミナーとか見られると思ったの ですが残念。

Emacs 25では、horizontal-scroll-bar-mode っていう横スクロールバー モードがあるのを知ったり。ただ、テキスト表示ではスクロールバーと カーソル位置との関係が連動してなくて(実際の位置はスクロールバー でスクロールする前の位置にある)なんか微妙な感じが。画像表示 では、横スクロールバーは良い感じなのですが、逆に縦スクロールバー の方が画像サイズに追従できてなくてダメな感じ。 Emacsでは一つの画像は、巨大な文字扱いになっているのですが、 スクロールバーは文字単位扱いなので、縦スクロールバーがダメ という事なのかしら?

丁度14:00からTDF2016のライブ動画が配信され始めたり。でも、なんだか まだ準備中という感じが。
しばらく観ていたのですが、音だけしか出なくなったり全然 内容を見る事ができず。セミナーもGraphicsCompoも全く観られません でした。世界に向けてイベント自体を宣伝する事ができる 所なのに随分とお粗末な感じになっているのは勿体ないと思います。

久々にダライアスバースト。バーストカウンターの要領が未だに 掴めていないのですが、今日は比較的良い感じだったり。 で、何度もやっているとタイミングが合わなくなっていく不思議。 動画とか見ていると割と自由なタイミングでバーストカウンターを 繰り出しているように見えるのは何故なんだ?

たまたま見つけたファミコンのゴルフの 動画。 真意はともかくとして、ホールインワンがイーグルって表示 されているのに エー? と思ったりも。

そういやEmacsでテキスト中に画像を表示した際のスクロールやカーソル の挙動がよく分からない時があるなぁ?と思ったので少し調べてみたり。

画像のカーソル位置(2,7)画像の右のカーソル位置(1222,399)

画像のカーソル位置が(2,7)なのは良い気がするのですが、その右隣が(1227,399) になってます。どう扱っているのかやっぱりよく分かりませんが、 変な感じになっているのを変じゃない体で扱っているので、 その結果は変な感じになるという事なのかしら?

2016/02/19

遅めに帰着。

ちょろり調べ事。

2016/02/18

遅めに帰着。

ちょろり調べ事&コーディング。

2016/02/17

遅めに帰着。

ちょろり調べ事をして終了。

2016/02/16

遅めに帰着。

Web巡回して終了。

2016/02/15

遅めに帰着。

Webを見ていて知った Mirror's Edgeのスーパープレイ動画 (Mirror's Edge PC Speedrun [ 34m 49s ] World Record Single Segment)。ショートカットが行き過ぎてバグったりしてます(^^; このゲーム、こんなに自由に動き回れるほど簡単じゃ ないハズなのですが(^^;
で、5月に発売予定となっている「Mirror's Edge Catalyst」。PS3時代には PC版でしかできなかったガラスの破片が飛ぶとか普通に表現されてます。 ただ、ゲームの難易度的に自分では多分どうにもならない感じに思うので、 上手い人のを見てみたいゲームかも。

2016/02/14

AM中に起床。

そういえば、Cygwin 2.5.0のテスト版がリリースされているようですが、 2.x.xになってからマイナー版数がやたら上がるようになった気が したりも。

Webを散策していたらGNU Parallel なるソフトウェアの存在を知ったり。コマンドラインの並列実行をアシスト するツールのようです。Cygwinパッケージにはなかったので、ソースから野良ビルド してみたり。と言っても、本体はperlで書かれていた為、configure, make してもほぼ何も行われなくて一瞬驚きました。
使用場面は色々考えられますが、ジョブを並列に実行した後、全ジョブの 終了同期を取って次のジョブを実行したい場合などに良い感じになりそうです。

$ ls -l
合計 48
drwxr-xr-x+ 1 TANE None 0 4月  22  2015 gcc-5.1.0
drwxr-xr-x+ 1 TANE None 0 7月  16  2015 gcc-5.2.0
drwxr-xr-x+ 1 TANE None 0 12月  4 22:21 gcc-5.3.0

$ parallel "tar cf - {} | xz -9c > {}.tar.xz" ::: gcc-5.?.0 ; echo "Complete compress" ; parallel "/bin/rm -rf {}" ::: gcc-5.?.0 ; echo "Complete Remove DIR"
Complete compress
Complete Remove DIR

$ ls -l
合計 204060
-rw-r--r-- 1 TANE None 69505096 2月  14 21:54 gcc-5.1.0.tar.xz
-rw-r--r-- 1 TANE None 69677244 2月  14 21:54 gcc-5.2.0.tar.xz
-rw-r--r-- 1 TANE None 69763704 2月  14 21:54 gcc-5.3.0.tar.xz

三つのディレクトリを並列にtar.xz化して、全部揃った所で echoでメッセージを出して再び ディレクトリだけをrmで並列に削除、 揃った所でechoでメッセージを出すという流れです。 オプション「--dry-run」を付ければ実際に実行はせずに実行されるコマンド列が 表示されるので、デバッグに使用できると思います。 例の様に二つのparallelを続けて実行する場合、前半だけ--dry-runを抜いて、 後半を抜き忘れたり、その逆をやったり(は致命傷ですが)する事が無いよう 注意が必要かも。

2016/02/13

昼頃起床。

/proc/statというファイルにCPU負荷に関する情報が入っているというのを 知ったり。そして、Cygwinでもそのファイルが有効な事を知ったり。 そんな訳で、EmacsでCPU負荷表示できないか?ともそもそとコーディング してみたり。そういやperlのようにファイルを読み込んで一行ずつ処理 するってどうやるんだっけ?という基本的な所を知らなかったてのに 気づいたりも。

SystemMonitor on Emacs

そんな訳で置いてみます (sysmon_160213.tar.xz)。 コードの最初の方に簡単な使い方を書いてみました。 常時表示のアクセサリなので操作とかはできません(^^; Cygwinの Emacsと FedoraのEmacsで動く事は確認しました。 暇つぶしに遊んでみてください。

そういや、バッファのフォントを小さくすれば、比較的小さなウインドウでも 解像度の高いCPU負荷表示になるんじゃね?と思ったのですが、 text-scale-set関数とかでフォントサイズを小さくしても、 window-widthやwindow-height関数で返ってくる表示行桁数が増えなくて、 なんか残念な感じだったり。

2016/02/12

気持早めに帰着。

window-plusをアップデートしました。 ご参考まで

あまりの眠さに休息停止。

2016/02/11

一瞬起きてゴミ捨てて、ぐうたらしてAM中に起床。

Emacs 25。xwidget-webkit-browse-urlをもそもそと試してみたり。 Cygwinでビルドしたものは流石にYouTubeは観られそうにない感じ。 Fedoraでビルドしたものはなんとなく惜しい所まで行けてそうに 思ったのですがダメでした。

そういえば、clangで生成した実行ファイルを binutilsのobjdumpで 逆アセンブルできるものかしら?と思ったり。一応 llvm-objdumpという llvm付属のobjdumpもあるのですが、binutilsのobjdumpとはスイッチ類が 全く異なります。で、比べてみるのですが、基本的にはbinutilsのobjdumpでも llvm-objdumpでも 同じように逆アセンブルできるっぽい。

binutils objdump
--------------
004011a0 <_main>:
  4011a0:       55                      push   %ebp
  4011a1:       89 e5                   mov    %esp,%ebp
  4011a3:       50                      push   %eax
  4011a4:       e8 1b 00 00 00          call   4011c4 <___main>
  4011a9:       c7 04 24 60 30 40 00    movl   $0x403060,(%esp)
  4011b0:       e8 17 00 00 00          call   4011cc <_printf>
  4011b5:       31 c0                   xor    %eax,%eax
  4011b7:       83 c4 04                add    $0x4,%esp
  4011ba:       5d                      pop    %ebp
  4011bb:       c3                      ret

llvm-objdump
--------------
_main:
    11a0:       55                                              pushl   %ebp
    11a1:       89 e5                                           movl    %esp, %ebp
    11a3:       50                                              pushl   %eax
    11a4:       e8 1b 00 00 00                                  calll   27
    11a9:       c7 04 24 60 30 40 00                            movl    $4206688, (%esp)
    11b0:       e8 17 00 00 00                                  calll   23
    11b5:       31 c0                                           xorl    %eax, %eax
    11b7:       83 c4 04                                        addl    $4, %esp
    11ba:       5d                                              popl    %ebp

ただ、llvm-objdumpはcallとかでシンボルを埋め込んでくれないので、 パッと見が判りづらい感じになるようです。 また、llvm-objdumpで最後のc3が出てこないのは謎。

Emacsのgitリポジトリを見ていると、毎日何かしらの更新が加えられていますが、 xwidget関連についてはマージ後の更新が無いように思いました。 xwidget-Webブラウザのバックスクロールでエラーする件とか直ぐに修正される と思ったのですが、そういう感じでは無いっぽい。

2016/02/10

気持早めに帰着。

xwidget-webkit-browse-url と window-plus。なんかうまくいったかも。 ウインドウ制御乗っ取り関数に inhibit-same-window という引数が 渡って来るのですが、関数の中では特に見てませんでした。 で、この変数がtの場合はsplit-windowsでウインドウを分割して そちらに対象バッファを表示、nilの場合はカレントバッファのウインドウ に対象バッファを表示するように変更してみると、うまく反応できるように なりました。 inhibit-same-windowがnilだから、同じウインドウに表示せよという つまるところ今回入れた処理の指示をしている変数名だったのかも。 今回のxwidget-webkit-browse-url以外にも、ウインドウを分割すると ちょっと不便に感じる場面がなんか減った気がしたりも? 普段使いでもう少し試してみよう。

2016/02/09

遅めに帰着。

Emacs 25。xwidget-webkit-browse-url と window-plusとの相性を なんとかできないか少し考えてみたものの良い案浮かばず。 バッファをどのウインドウで開くかを display-buffer 関数内では 知る術が無いので、どんな場合でもsplit-windowを実行するという のがwindow-plusでの苦肉の策なのですが、ここが都合が悪い感じに。

2016/02/08

遅めに帰着。

Emacs 25。「M-x xwidget-webkit-browse-url」でブラウザが 開くらしい事を知ったり。で、X使用のCygwin Emacsで開いてみたところ、 一応開く事ができたり。

Webkit on Cygemacs

開くには開いたのですが、なんか色々と動きが怪しいような。 ページをバックスクロールするとエラーが出たり。 バックスクロールするのにxwidget-set-adjustmentという 関数の引数にスクロール量を負数で指定しているのですが、 負数をチェックしてエラーにしているようでした。 src/xwidget.c内のxwidget-set-adjustment関数から 「CHECK_NATNUM (value);」を削除してみたところ、バックスクロール は問題無くなったり。
あと、リンクを開くとき等に必ずウインドウ分割されたり。 どうやら拙作のwindow-plusとの相性が悪い模様。window-plusを 使わなければ問題無さそう。リンク先を開く時に今のバッファを 利用するのではなく、新しいバッファを生成しているのかしら?

2016/02/07

昼頃起床。

D言語で書かれた手持ちコードの中で、何か変な動きになっているのに 気づいたり。大体60fpsになるようにタイミング調節をしてOpenGL描画 を行うようなものなのですが、起動した直後はフレームレートが全然 出てなくて、途中からフレームレートが回復するというものです。 回復するタイミングに再現性が無く、数秒で回復する場合もあれば ほぼずっとそのままフレームレートが出ない場合があったり。 因みに、タイミング調節をしなければ1000fps以上出るので、 描画が重い訳ではなく、何かしら構造上の欠陥があるのだろうと 推測しているのですが、何が原因か判らないというのが今の状況。

GCをdisableにしたり、途中でsleepを入れてスレッド衝突のタイミング を変えてみたりしてみるも、現象に連動せず。うーむ?

掃除したり洗濯したり。

時間測定コードを入れて時間のかかっている箇所を絞り込んでみたり。 すると、OpenGL描画の〆に実行する「wglMakeCurrent( null, null );」 の実行に35ms以上かかっていたり。フレームレートが出るようになった途端に1ms以下 で実行できている(正しくは1ms以下で実行されるようになったからフレーム レートが出るようになったなのですが)模様。なんだこりゃ?

そういや日産の車のCM。一瞬、自動運転が装備されたような説明に 聞こえるのですが、実際に付くのは自動ブレーキの方 なんだよね?というのが判りにくいように思ったりも。

2016/02/06

AM中に起床。

GCCのWebページのNewsに「Heterogeneous Systems Architecture support」 という文言があり、なにそれ?と思ったり。 検索してみても日本語のページはほぼ出てこないようなのですが、 こちら の記事によれば、AMDなどが中心になって2012年に設立された HSA Foundationにより開発が進められている GPUなどのアクセラレータとCPUを統合したシステムのプログラミングを 容易にするシステムアーキテクチャって事らしい。 GCCではOpenMPを使った何かのようなのですが、GPU上で動作する コードを書けるという事では無いっぽい。

HSAの記事の後ろにXboxOneのCPUやKinectについての話があったので すが、Kinectなんかスゲーって感じに思ったり (記事)。 照明に影響されない画像が得られれば認識率がかなり上がるだろうと 推測されます。

Windows10では、「スタートメニュー→設定→ネットワークとインターネット」 から過去30日間の(通信)データ使用状況ってのが見られる事を知ったり。 使用状況の詳細からアプリ毎の通信量が見られるのですが、 我が家では以下のようになってたり。

アプリ別通信量

ちょっ、うちのEmacsどんだけ!?

2016/02/05

遅めに帰着。

数日テストして大丈夫そうな感じだったので、 美人時計ELISP をアップデートしました(アーカイブは2/1付けになってます)。御参考まで。

あまりの眠さに急速停止。

2016/02/04

遅めに帰着。

ちょろり調べ事。

そういえばgdcの2.067。最近ちょっとずつ更新されているようですが、 テストがあと数件で全て通りそうな感じっぽい。全て通るとmasterブランチに マージされるのかな?

Emacs 25。そろそろxwidgetを試してる人が居ないかとWebを検索してみる のですが、全然出てこなくて あれぇ?な感じだったり。

2016/02/03

早くも無く遅くも無く。

Emacs 25。Cygwinのgdbを使うと、quit後 gdbがdefunctになって しまうので、Fedoraの方でデバッグを試みてみたり。
xdisp.c内produce_xwidget_glyph()という関数に it構造体を介して xwidget構造体が参照できるハズなのですが、 xwidget構造体へのポインタが変(nillではない変な値)になっていて、 アクセスしたらSegfaultという流れ。it構造体自体はそれなりの 物のようなので、xwidgetのポインタが正しくセットされていない 模様。どこでセットされるものなのかは分からず。
因みに、以下のようなELISPコードをscratchバッファ上でC-jで 実行したら、1回目はなにやらLISPエラーになるのですが、2回目の 実行でSegfaultになります。

(put-text-property (point) (+ 1 (point)) 'display '(xwidget :xwidget-id 1 :type 'webkit-osr :title "1" :width 40 :height 50))

その後、条件付きブレークポイントがうまく設定できない とかあって、変数の変遷を観察できず。

2016/02/02

遅めに帰着。

そういえば、ちょっと前にlibphobosの コードのversion分けにおいて、「最後の「!GNU 且つ !Windows 且つ X86_64」って どういう時に通るんだ?」という事を書いたのですが、よく考えてみれば DMDってOSXやFreeBSDなんかもサポートしているから、その時に 「!GNU」を満たすのかも?と思い直したりも。

Emacsのgitリポジトリからmasterブランチをcloneしてビルドしてみたり。 でも、先日のxwidgetを使った場合のSegfaultは解決せず。 そういえばバージョンが25.1.50になってたり。あれ?次は25.2で出すの? ナンバリングの仕方がイマイチよく判りません。

Fedoraの方でもビルドを試してみたり。色々develパッケージが足りなかった のをインストールしてほどなくビルド完了。で、Cygwinのそれと同じ事を 試してみたのですが、同じようにSegfaultしたり。てことは、Cygwinだからとか Windowsだからダメという訳では無さそう。

2016/02/01

早めに帰着。

Emacs美人時計のロックの件。自動ロック開放のカウンター制御を間違えて いたのを直したり。テスト中、何度かロック中の起動がかかっていたの ですが、自動タイムアウトの方は発動していない模様。 deferredのタイムアウトが効いているっぽい?もうしばらく様子見。


TOP PREV