昔の最近の出来事(2018.05)

2018/05/31

遅めに帰着。

GTS。F1500選手権で追加されたニュルブルクリンクGPコースをやって みたり。こちらも割と楽にゴールドが取れたり。 んじゃという訳でブロンズがやっとというブランズハッチをやってみる のですがやっぱり取れず。チェっ。

dmd対応。libpngのコンパイル済ライブラリを探してみるも見つからず。 いやー、ソースコードがあれば普通は自分でビルドするよなぁ? と思ったりも。そういやDUBというD言語向けのビルドツールがあり、 それを使えば必要なライブラリをインストールできるという事で、 libpngをfetchしてみたのですが、libpngのD言語バインディングが インストールされる感じで、ライブラリ(*.libや*.dll)が インストールされる訳では無いっぽい。うーむ。

2018/05/30

早くも無く遅くも無く。

そういやCygwinを使う際に、ここ最近Cygwin標準のminttyを使っていた のですが、ペーストがマウスの右クリックじゃないとか微妙に 間違えるのでTeraTermのCygwin接続に戻りました。でも、 PC本体をスリープするとCygwin接続したTeraTermがひっそりと終了 してしまっててなんで?って感じ。screenコマンドを使っている ので復帰は問題無いのですが、毎度TeraTermを起動し直す必要がある のが面倒臭いです。

GTS。アップデートが来てたので入れたり。F1500選手権にイベント追加 されててクラクラしたのですが、モンツァ・サーキットをやってみた ところゴールドが取れたり。なんかバランス調節されてるのか?

2018/05/29

遅めに帰着。

dmd対応。外付けライブラリを使うものをビルド。色々ダメ。

  1. MinGWでスタティックビルドしたfreeglutがリンクできない。仕方ないのでMSVC向けの出来合いバイナリをリンク。
  2. MinGWでスタティックビルドしたlibpngをリンクしたところ __mingw_vfprintf というシンボルが見つからなくて リンクに失敗。fprintf()がマクロで置き換えられてしまってる模様。空のスタブ関数として__mingw_vfprintf() を定義してみた所リンクには成功。

という感じで実行ファイルを生成できてみたのですが、実行すると何も動いていない感じ。 そういやコマンドラインヘルプの出るアプリだったというのを思い出し、ヘルプが 出るかを見てみたら、ちゃんと出力されました。という事は途中のどこかで突っかかっている という事になるかも。MinGWでビルドした関数をリンクしているのがダメ? とは言え、WinAPIを実行するのと違って関数呼び出しするだけなら簡単な実験コードは 上手く使えているのですが。全部出来合いのライブラリをリンクするしか無いか.....面倒くせぇ。

2018/05/28

遅めに帰着。

dmd対応。とりあえずソースコードの方は対応できてみたので、 ビルドの為のMakefileやらスクリプトやらをdmdとgdcの両方に 対応してみたり。とは言え、Makefileはdmd用とgdc用のをそれぞれ 用意して、スクリプトでどちらのMakefileを使用するかを決定する 感じですが(^^; 如何せん、オブジェクトファイル名が .oか.obj、 ライブラリが .a か.libといった違いがあり、コンパイラドライバ がどちらでもイケる訳ではないので、結局両対応のMakefileの 作成は(やればできるのかも知れないけど)困難という結論に 至ってみました。

GTSのF1500選手権。かなり良い調子でイケてたのに8周でミスって 挽回不能 orz

2018/05/27

AM中に起床。

「眼鏡橋華子の見立て(2)」。(1)の後、半年くらいで来るのかな? と思っていたら意外と来なくて、その間も発売日が誤報されたりと 大分混乱してたように思います。今巻も安定の内容だったように思います。 次巻はまたしばらく先かな?

洗濯したり掃除したり。

dmd 2.080でコンパイルエラーになったりdeprecateになっている記述を 直した分を手持ちコードのマスターにフィードバッグしたり。

ちょろりお出かけ。近所の本屋で はじめアルゴリズム(3)が見つからない....

2018/05/26

AM中に起床。

CC2の方にもWindows10の April 2018 Updateが来たり。準備にやたら時間が かかってる気もしましたが、ひとまずアップデート完了。WiFiの 暗号化キーが忘れられてしまってましたが、それ以外は見た目の変化は無し。

dmdでの手持ちアプリのビルド。GetWindowLongPtr()とSetWindowLongPtr()を C言語の関数でラップして、x86_64-w64-mingw32-gccでコンパイルし、 それをD言語から呼び出し。リンクは「user32.lib libuser32.lib」で行って みた所、ひとまずリンクには成功。でも動かず。ラップしたC言語の 関数の中には入れているのですが、GetWindowLongPtr()を呼び出すと 死ぬ感じ。

そもそもdmdでGetWindowLongPtr()とかを使っている人居ないのか?と思い 検索してみるも、なんだか的外れな情報しか得られなかったり。なんだこれ?

何故こんなにも答えが得られないのだろう?と思い、 c:/WINDOWS/System32/USER32.dll をobjdumpで眺めてみたところ、 GetWindowLong[AW]は見つかるのですが、GetWindowLongPtr[AW]が 見つからない感じだったり。

$ /usr/x86_64-w64-mingw32/bin/objdump.exe -x /cygdrive/c/WINDOWS/System32/USER32.dll | grep GetWindowLong
        [ 484] GetWindowLongA
        [ 485] GetWindowLongW

$ /usr/x86_64-w64-mingw32/bin/objdump.exe -x /cygdrive/c/WINDOWS/SysWOW64/USER32.dll | grep GetWindowLong
        [ 484] GetWindowLongA
        [ 485] GetWindowLongW

なんか特有の事情があるのかしら?

まさかと思い、{Get/Set}WindowLongPtr() を {Get/Set}WindowLong()に書き換えて みたところ動いたりorz。なんで? 32bitと64bit 両対応のコードにするには {Get/Set}WindowLongPtr()の方を使うんじゃないの? (以前の日記)

ひとまず動くには動いたのですが、ファイルエクスプローラから 起動するとコンソールウインドウが開くのをどうにかできないのだっけ? と思ったり。MinGWのgccだと -mwindows というスイッチがあり、スイッチを付けると コンソールウインドウは開かず、printf()とかしててもどこかに空中散布されます。 dmdにはそれっぽいオプションが無かったのでリンカか?と思いlld-link.exeの ヘルプを表示しようとしたのですが、コマンドラインヘルプが出ないようだったり。 面倒臭ぇ....
当てずっぽうで試したところ「lld-link.exe /help」でコマンドラインヘルプが出ました。 その中に/susbsystem:<value>というオプションがあり、dmdのコマンドラインから 「dmd -L=/subsystem:windows ...」と指定すればコンソールウインドウの開かない 実行ファイルが生成されました。因みに、lld-link.exe はLLVMのリンカであるlldを ベースにしているようなのですが、lldの方もイマイチ説明らしい説明が出てこないのが 謎です。subsystemにwindowsを指定するというのはプログラム言語のGaucheに そういうオプション指定をする方法があると言うのを知ったから。 てか、D言語に関連する所から情報が得られないのはどういう事?という感じも。

SAI2の新しいのが来ていたり。お疲れ様です。バグ修正と調節がメインな感じ。

2018/05/25

遅めに帰着。

Windows10の April 2018 Updateが来たので入れてみたり。 見た目は特に変化無し。

UWP((Universal Windows Platform)アプリのウインドウ描画が変になるバグの件 (以前のメモ)はそのまま。 Cygwinのemacs-w32を二つ起動すると再現するのも変わらず。 Windowsが原因なのかNVIDIAのドライバが原因かその両方か、どちらでもないのか はやっぱり判らず。

dmdでの手持ちアプリのビルド。 GetWindowLongPtr()とSetWindowLongPtr()が見つからない件は、 Cygwinのx86_64-w64-mingw32 クロス環境の /usr/x86_64-w64-mingw32/sys-root/mingw/lib/libuser32.a をlibuser32.libという名前にコピーし、libuser32.libをdmdコマンドに 指定してリンクしてみた所、リンクに成功してみたり。 で、実行してみるのですがSegfaultでズッコケる実行ファイルが生成されました(^^; gdbが使えないので、main()関数のすぐ直後からwritef()と途中returnでどこまで 進むか見てみたところ、とりあえずいきなりズッコケる訳ではない事が判ったり。 少し進めてみたところ、

   if( RegisterClassEx(&this.winc)==0 ) return(-1) ;

でSegfaultする事が判ったり。でも、何がマズいのかよく判らず。うーむ。

どうやらMinGWクロスの libuser32.a を騙してリンクしてたのが原因でした。 dmd付属の user32.lib の方なら大丈夫そう。因みにuser32.libだけだと Get/PutWindowLongPtr()がリンクできない問題が解決できないので、 「user32.lib libuser32.lib」の順で二つ指定してみたり。ですが、 次に予想されるのはGet/PutWindowLongPtr()を実行したらSegfaultするかも知れないという点。

うん、予想通りになった。で、どうすりゃいいのか分からない。

2018/05/24

遅めに帰着。

GTSのF1500選手権。あとちょっとでミスるorz

MinGW向けに新しいGDCがビルドできなくなって久しいのですが、dmdベースに 環境を移す事を考え始めてみました。というのも少し調べてみたところ、 64bit向けライブラリは dmdの *.libも MinGW64 の lib*.a も ファイル形式が pei-x86-64の為、MinGW64のgccでコンパイルしたオブジェクトファイルを dmdの方でもリンクできそうな感じだった為。
ひとまず手持ちのWinアプリをdmd -m64でビルドできるか試してみているのですが、 何故か WinAPIである所の GetWindowLongPtr()とSetWindowLongPtr()がシンボルが 見つからなくてリンクに失敗しました。 user32.dll内の関数で、CygwinのMinGW64クロス環境のライブラリには含まれて いるようなのですが、dmdのアーカイブに含まれるuser32.libの中には 見つからなくてなんで?って感じです。

$ objdump -d /usr/x86_64-w64-mingw32/sys-root/mingw/lib/libuser32.a | grep GetWindowLongPtr
0000000000000000 :
   0:   ff 25 00 00 00 00       jmpq   *0x0(%rip)        # 6 
0000000000000000 :
   0:   ff 25 00 00 00 00       jmpq   *0x0(%rip)        # 6 

$ objdump -d ~/develop/dlang/dmd/dmd_2.080.0/windows/lib64/mingw/user32.lib | grep GetWindowLongPtr

WinAPIのバインディングはdmdに標準で入っている core.sys.windows.* を 使っていないのですが、dmdの方も「/src/druntime/src/core/sys/windows/winuser.d」には ちゃんとGetWindowLongPtrW()のプロトタイプ宣言がされているので、 コンパイルエラーはしないがリンクに失敗するという感じになるのでは? と思ったりも。まさかこんな所でつっかかるとは。さて、どうしたものか.....

2018/05/23

遅めに帰着。

GTSのF1500選手権。ほとんどミスらずに走れたのにブロンズ。なんでだ?

2018/05/22

遅めに帰着。

GTSのF1500選手権。ぐぅ、ダメだ。

2018/05/21

遅めに帰着。

なにやらサポートアシストというDELLのアプリからドライバやらBIOSやらの アップデート通知が来たので入れてみたり。一発目はインストールに 失敗した臭かったのでもう一度実行して大丈夫そうな感じに。見た目は特に変化無し。

GTSのF1500選手権。ミスらずに走れない。3つのイベントをひとまずブロンズとシルバーで 埋めてみたり。

2018/05/20

AM中に起床。

GTS。F1500選手権。ギア比をいじって少し加速側に寄せると 置いてけぼりを食う感じがなくなり、なんとかなりそうな光が 見えた気がしてきたり。でも、ミスると挽回不可能な感じなのですが ミスらずに走れない。

なんでも鑑定団の再放送で松本零士が出てました。 で、松本零士と藤子不二雄って、漠然と松本零士の方が先に漫画家として 活躍していたと思っていたのですが、逆だというのを今頃知ったり。 多分、宇宙戦艦ヤマトや銀河鉄道999よりもドラえもんの方を後から 知った為かも知れません。因みにドラえもんのアニメは、いわゆる 日テレ版 (参考Wikipedia) が1973年に放送されていたらしいのですがその後封印されました。 TANEが初めて見たアニメのドラえもんは、いわゆるテレ朝版 (参考Wikipedia) になります。宇宙戦艦ヤマトのアニメははそれより少し前から放送されていた というのが記憶の順番になります。

GTS。F1500選手権はなんとか3位以内はイケそうだけど1位にはまだ届かず。 てか、途中まで1位の車が速すぎる。

2018/05/19

AM中に起床。

ちょろりお出かけ。

「はじめアルゴリズム(1),(2)」。宇宙兄弟の単行本に挟まってた広告 でちょっと気になったので買ってみました。面白かったです。 因みに1巻の初版は2017年11月で、2巻の初版は2018年の2月、3巻が 今月出るという事で、今の所週刊連載ペースの作品のようです。

2018/05/18

遅めに帰着。

GTS。F1500選手権。ダメだ。

何故かデスクトップPCで起動したPowerDVDからDLNA機器(NASのディスクとか)が すぐに見つからなかったり(認識されるのにやたら時間がかかる)。 WindowsMediaPlayerからだとすぐ見つかるのに。これまでそんな事なかったのですが なんでだ?

2018/05/17

遅めに帰着。

GTS。GTリーグのF1500選手権がさっぱり取れる気がしない。なんでだ?

2018/05/16

遅めに帰着。

ちょろっとGTS。あまりの眠さに急速停止。

2018/05/15

遅めに帰着。

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

2018/05/14

遅めに帰着。

Web巡回して終了。

2018/05/13

AM中に起床。

Eテレで放送されていた「コングラ ~CGの教室~」の2話。 番組の中でいくつかCG映像作品が紹介されていたのですが、 その中に「Hunger」 という作品が紹介されていたり。1974年の作品だそうな。 どんなシステムで制作されたのか判るかな?と思い Wikipedia を見てみたのですが、ハードウェア的な所は判らず。 この作品の為にキーフレームアニメーションのソフトウェアを開発 したようなので、現在のFlashのようなソフトが実現されてた 感じかも知れません。 因みに、パーソナルコンピュータ史 というWikipediaで当時のパソコン事情を見てみると「Apple I」の 登場以前という事になります。現在で例えるならば、 ハリウッドやDisny/Pixerの技術で制作された感じなのかも。

そういやX68kにもベクターで描いたキーフレームの中割りを 行うフリーのアニメーションソフトウェアがあったような?と 思い調べてみると、 こちらのページ を見つけたり。そうだ、「lanma」だと判ったのですが、その 作者の大和団次郎氏がその後も「9VAeきゅうべえ」 というソフトを開発している事を知ったり。

アオイホノオ(19)。この物語はフィクションですが、山賀氏が こういう流れでマクロスOPの絵コンテを任されたのはどこまで本当 なのか気になる。愛國戰隊大日本 (Wikipedia, 動画) の方はなんとなくこの感じで分かる気がします。

2018/05/12

AM中に起床。

ちょろり本屋に。

「推しが武道館いってくれたら死ぬ(4)」。 「おまえは好きな相手が同じ次元にいるだけでありがたいと思え」 に吹いた。

2018/05/11

遅めに帰着。

そういやRazerのデバイス群制御ソフトウェアのSynapseですが、 何度か更新はあったものの、定期的にネットワークに向けて謎の データ送信を行っているのは変わりなかったり。

2018/05/10

遅めに帰着。

ちょろっとGTS。少し取れたり。

2018/05/09

遅めに帰着。

ちょろっとGTS。

2018/05/08

遅めに帰着。

Web巡回して終了。

2018/05/07

遅めに帰着。

ちょろっとGTS。取れず。

2018/05/06

昼頃起床。社会復帰が辛い。

掃除したり洗濯したり。

CG描く時どれくらいレイヤーを使うかという ツイート を見つけたり。 中には数千レイヤー使っているという人も居ますが、描く絵によると いう感じのようです。ただ、レイヤーリストを公開されている 人のを見ると、名無しのレイヤーというのが相当枚数を占めている 場合があり、このようなケースでは統合するなりした方が良いのでは? とは思ったりも。

2018/05/05

昼前起床。

CG描いてみたり。

巨大かしわ餅絵

SAI2の20180502-64bit版、CC2のデスクトップモード(液タブモード)で描いてみました。 元サイズは2900x3500pixくらいのサイズがあるのですが、巨大サイズである事が 全く気にならないのは毎度の事ですがどうかしてると思います(褒め)。
今回、フローティングビューを使ってCC2表示とディスプレイ表示とで色を見比べながら 塗ってみました。と言っても大して色の違いが気になるような絵でもないですが(^^; 4kの解像度感覚に未だに慣れていないので、フローティングビューの方で縮小 イメージサイズに表示した上で、CC2側で細かい所を直したりする感じ。 縮小すると大して気にならない修正はあまり行わない感じで直してみたのですが、 なかなか良い感じだったかも。

そういやGIMPの2.10.0が出ていたので入れてみたのですが、インストール済の 2.8.xがアンインストールされたり。そういや違うバージョンを同居できない んだっけ?Inkscapeもそうなのですが、何故バージョン違いを同居できるように しないのか謎。不具合があった場合に古いバージョンでひとまずその場をしのげる可能性を 考えないのだろうか?

2018/05/04

AM中に起床。

Webを散策していたら、Windows3.x時代の「ファイルマネジャー」の ソースコードがGithubで公開されているというのを知ったり (参考)。 Githubのプロジェクトを 見てみると、既に色々な変更がコミットされてしまっていますが、 (恐らく)当時のMSのコーディングスタイルはこんな感じだったのかと 思ったりも。

Web散策していて知った 「絵文字がある種のUnicodeバグを世界から一掃しつつある件について」という文書。 事実か否かは置いといて、利用される頻度が高いとバグが少ない というのは確かにそうかも。

2018/05/03

AM中に起床。ゴミを捨てたり。

何故かCygwinのscpやsshがいつの間にか無くなってて、しかもインストーラーは インストール済という認識されているという謎な状態になってたり。再インストール しても入らなくて困ったのですが、Cygwinアプリを全て終了してから再インストール すると入ったり。UninstallはできるがInstallに失敗した状態だったのだろうか? 何の警告も無くインストールに成功したフリをしてる感じだとすると 環境が壊れてしまっている可能性があります....

そういや気にした事が無かったのですが、VMwarePlayerは32bitアプリです。 でもその上で動いているFedoraは64bitのものが動いていて、コマンド類も ネイティブの64bit命令セットで動いているものと思われます。 今更ですがどういう仕組み?と思ったりも。

GDCがgcc-8.1.0に追従したようなのでFedoraでビルドしてみたり。 エラー無くビルドに成功。make installして手持ちコードをコンパイル&実行 してみた所では問題無さげ。MinGW向けにコンパイルできたらいいのになぁ.....

2018/05/02

AM中に起床。

ノイタミナ枠で放送しいている「ヲタクに恋は難しい」を録画で みたり。作中に出てくる漫画が実在の作品なのがスゲぇと 思ったりも。

GTS。ちょろっとやってたらまたディスプレイのファンが高回転に なったり。今回は2k+HDRなのですが、ディスプレイ横の温度計で 32℃でした。30℃を超えるとこんな感じなのかも。 エアコンを発動すれば多分問題無いレベルだと思うのですが、 この時期は温度調節が難しい(28℃だと暑いけど27℃だと寒い、でも温度調節の フィードバックはそんな精度で制御できない みたいな)ので、 もう少しの間は扇風機で空気の流れを作って対応する方向で。

DCONF 2018のライブ配信をちょろっと見たり。 そういやYouTubeのライブ配信で〇〇人が視聴中っていうのは、その時点で観ている世界の 総人数なのかしら?それとも、あるチャンネルに接続されている数を人数と見立てて いるのかしら?と言うのも、ある時点で47人だったのですが 会場に 居る人数よりも少ないように思ったので(^^;

Google翻訳。「Don't avoid.」は「避けてはいけない。」と翻訳 されますが、「Don't avoid XXX.」は「XXXを避けてください。」と 翻訳されました。なんで? 因みに「Avoid XXX.」も「XXXを避けてください。」 となりました。

じわじわくるGoogle翻訳の『誤訳』たち」。 英単語として辞書に無い場合は日本語読みのまま翻訳されてた感じです。 因みに2015年~2016年始め頃の誤訳のまとめですが、 2016年の11月頃にニューラルネット機械翻訳に なりました。 今だとイケるものもありますが、やっぱりそのままというものも、 もっとイケてない感じになっているものもあるようです。

gcc-8.1.0が出た模様。GDCはまだ追従していないようなので もう少し待ち。

2018/05/01

AM中に起床。

野暮用&ちょろっと観光案内。疲れた。


TOP PREV