AM中に起床。
秋葉原でお買い物。
先日、狙い目の製品が入荷したという事で
「遊舎工房」に捕獲に。
たまたまなのかは判りませんが人が結構入ってました。
という訳で
仕入れたのは「Dozen0(ダースゼロ)」
という12キーパッド。自作キットなのは当然ですが、キースイッチ、キーキャップ、
制御マイコンは別途購入が必要です。そんな訳でまとめて購入。専門店はやっぱり便利です。
スイッチ用のソケットをはんだ付けするタイプなのでスイッチを後から交換可能とか
特長は色々あるのですが、単純に一目惚れしました(^^;
秋葉原での買い物終了後、少し遠回りをして神保町で本を物色。
所望の物が見つからなくて心当たりを巡回していたのですが、巡回中に
「コミック高岡」が
本日を以って閉店するというのを知ったり。何も知らずに入ったら
棚がガラガラだったので改装でもするのか?と思ったのですが、
外の張り紙に閉店すると記されてました。張り紙には「創業から70年以上」
と記されていましたが、
こちらの記事
によると、本屋としては100年以上やってたのだそうな。
まるまる昭和と平成の間営業していた事になる訳で、すごい事だと思うと
同時に閉店してしまうのは残念にも思います。
帰着。少し休んでから早速Dozen0を組み立ててみたり。
ソケットはガイドが付いてて基板もそれに合うように設計されているので、
ランドに半田を少し盛った後にソケットの端子を盛った半田に押し付けるように
付ければ良さげだったり。今回はkailhのロープロファイルスイッチにしたので、
Cherry向けのソケットは付けなくても良いのですが、スイッチを変えたくなった時に
直ぐ変えられないと面倒臭いと感じるだろうと思って、全部半田付けしてみました。
手順も含めて全て
ビルドガイド
に記されていますので、ガイド通りに組み立てれば問題無かったです。
むしろ勝手にソケットにどんな感じでスイッチが付くのか?とか、
試しながらやってたので順番を間違えそうになりました(^^;
ちょっとハマり所はありましたが 1.5時間程度で完成。
ガイドにはファームウェアの書き込みに手順については具体的に書かれていない
のですが、今回TANEは RaspberryPi 上で
QMK Firmware
を使って書き込みを行いました。
QMK Firmware自体は
こちらのWebページ
を参考にMSYS2でインストールとhexファイルのビルドを確認してみたのですが、
キーの設定をチョンボると変なキーコードを送り続けるデバイスが出来上がる
可能性があるという事だったので、念のためにssh接続したRaspberryPi
でファーム書き込みしたものをWindowsマシンで使うという事にしました。
RaspberryPi でのツールのインストールについては
こちらのブログエントリ
を参考にさせていただきました。MSYS2でのインストールにならって、
./util/linux_install.shを実行すれば見ているだけで必要なものが
インストールされる感じのようです。後で気づいたのですが、
./util/qmk_install.shを実行すればunameでプラットフォームを検査して
適切なインストールスクリプトを実行する仕掛けになってるようです。
で、firmの本番の書き込みは事前に確認できなかったので今回初めて試したのですが、
書き込みに失敗(^^;
$ make dozen0:default:avrdude QMK Firmware 0.6.312 Making dozen0 with keymap default and target avrdude avr-gcc (GCC) 5.4.0 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Size before: text data bss dec hex filename 0 21856 0 21856 5560 .build/dozen0_default.hex Compiling: tmk_core/common/command.c [OK] Linking: .build/dozen0_default.elf [OK] Creating load file for flashing: .build/dozen0_default.hex [OK] Copying dozen0_default.hex to qmk_firmware folder [OK] Checking file size of dozen0_default.hex [OK] * The firmware size is fine - 21856/28672 (6816 bytes free) Detecting USB port, reset your controller now..................... Device /dev/ttyACM0 has appeared; assuming it is the controller. Waiting for /dev/ttyACM0 to become writable. sh: 1: avrdude: not found tmk_core/avr.mk:235: ターゲット 'avrdude' のレシピで失敗しました make[1]: *** [avrdude] エラー 127 Make finished with errors Makefile:535: ターゲット 'dozen0:default:avrdude' のレシピで失敗しました make: *** [dozen0:default:avrdude] エラー 1
$ make dozen0:default:avrdude QMK Firmware 0.6.312 Making dozen0 with keymap default and target avrdude avr-gcc (GCC) 5.4.0 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Size before: text data bss dec hex filename 0 21856 0 21856 5560 .build/dozen0_default.hex Compiling: tmk_core/common/command.c [OK] Linking: .build/dozen0_default.elf [OK] Creating load file for flashing: .build/dozen0_default.hex [OK] Copying dozen0_default.hex to qmk_firmware folder [OK] Checking file size of dozen0_default.hex [OK] * The firmware size is fine - 21856/28672 (6816 bytes free) Detecting USB port, reset your controller now........... Device /dev/ttyACM0 has appeared; assuming it is the controller. Waiting for /dev/ttyACM0 to become writable. Connecting to programmer: . Found programmer: Id = "CATERIN"; type = S Software Version = 1.0; No Hardware Version given. Programmer supports auto addr increment. Programmer supports buffered memory access with buffersize=128 bytes. Programmer supports the following devices: Device code: 0x44 avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e9587 (probably m32u4) avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input file ".build/dozen0_default.hex" avrdude: input file .build/dozen0_default.hex auto detected as Intel Hex avrdude: writing flash (21856 bytes): Writing | ################################################## | 100% 2.18s avrdude: 21856 bytes of flash written avrdude: verifying flash memory against .build/dozen0_default.hex: avrdude: load data flash data from input file .build/dozen0_default.hex: avrdude: input file .build/dozen0_default.hex auto detected as Intel Hex avrdude: input file .build/dozen0_default.hex contains 21856 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 0.43s avrdude: verifying ... avrdude: 21856 bytes of flash verified avrdude: safemode: Fuses OK (E:FB, H:D8, L:FF) avrdude done. Thank you.
AM中に起床。
掃除しながら様子見(謎)。その後、入荷したようだけど時間がアレ
なので明日にするという事で。
難しい日本語。例えば「おもしろいゲームを作る本」。
「おもしろいゲーム」を「作る本」なのか、
「おもしろい」「ゲームを作る本」なのか。
前者は「本としてはおもしろいかどうかは分からないが、おもしろいゲームは作れる」
と解釈でき、後者は「作ったゲームがおもしろいかどうかは分からないが、
本としてはおもしろい」と解釈できます。使う場面を間違えると
あらぬ誤解を与えてしまう表現かも知れません。
気持ち遅めに帰着。
C言語で、マクロ関数と実関数の両方に同じ名前を付けると
いうチョンボをしてしまったのですが、コンパイルエラーの
原因が直ぐに判らなくてへにょり。
$ cat -n deffunc_test.c 1 #include <stdio.h> 2 3 #define test_func(a) (a+2) 4 5 int test_func(int a){ 6 return ++a ; 7 } 8 9 int main() 10 { 11 printf("%d\n",test_func(10)) ; 12 return 0; 13 } $ gcc deffunc_test.c deffunc_test.c:5:15: エラー: expected identifier or ‘(’ before ‘int’ int test_func(int a){ ^ deffunc_test.c:3:25: 備考: in definition of macro ‘test_func’ #define test_func(a) (a+2) ^
# 5 "deffunc_test.c" int (int a+2){ return ++a ; }
#include <stdio.h> int test_func(int a){ return ++a ; } #define test_func(a) (a+2) int main() { printf("%d\n",test_func(10)) ; return 0; } $ gcc deffunc_test2.c $ ./a.exe 12
早くも無く遅くも無く。
GTS。アップデートが来ていたのですが、1.4GBほどダウンロードする
感じ。インストールの方が時間がかかるのは相変わらず。
それにしても、Windowsアップデートとかよりも大きい気がしたりも。
そんな訳で追加されたイベントを少し消化。でも、単位時間当たりの
賞金は高く無いのでイマイチ。
少し早めに帰着。
あまりの眠さに急速停止。
早くも無く遅くも無く。
あまりの眠さに急速停止。
気持ち早めに帰着。
Webを散策していて、2019年って大友克洋氏の漫画「AKIRA」の
時代設定と同じ年だというツイートを読んで言われてみればそうかと思ったり。
そういや本日でへっぽこページは19周年を迎えました。
毎度みてくださっている方々に感謝いたします。
これからもよろしくお願い致しますm(_'_)m
AM中に起床。
掃除したり洗濯したり。
先週捕獲していた「コロコロ創刊伝説(4)」。「星のカービィ」は
読んだことは無いのですが、改めて連載を続けるってのは大変な事
なのだなぁと思いました。
ちょろっとGTS。まだまだCRは足りない。
AM中に起床。
突然思い立って秋葉原に。
自作キーボード専門店である
「遊舎工房」に行ってみました。
店舗の半分がショップで半分が工作エリアという感じ。
ショップエリアは広くはありませんが、一回りすれば大体どこに何が
あるのか判るくらいの感じでした。狙い目のレンタルボックス内製品が
あったのですが、在庫無しという事で残念ながら今回はスルー。
昔の日記を読んでて、そういや以前、
Google翻訳で「least」を翻訳すると「いらばん少ない」という訳が出てきて、
「一番少ない」の誤記だろうと思った事がありました。その後どうなった
のか?と翻訳してみたのですが、結果は以前と変わらず「いらばん少ない」
だそうです(^^; 因みに、「一番少ない」を英語に翻訳すると「Least」と
訳されるし、
「一番少ないのはリンゴ。」は「The least is apples.」と訳される
(ただし逆翻訳すると「少なくともリンゴです。」になりますが)ので、
意味的な対応付けはされているようにも見えるのですが、
単語で訳す人が居ないと 変だと気づいて直される事は無いものなのか?と
思ったり。
少し早めに帰着。
あまりの眠さに急速停止。
ゴミ出しに朝起きて、再び寝て起きたら夕方orz。寝すぎ。
GTS。あれ?GTリーグって何度もやってると賞金レートが下がるんだっけ?
早めに帰着。
Raspberry Piで -mthumb 有効にする件。
結局 ターゲットがarm-linux-gnueabihf (hard-float)になってると
soft-floatはことごとく無効になっているという感じだったので、
arm-linux-gnueabiをターゲットに
binutils,gcc,glibcを揃えれば良いようだという結論に達したり。
という訳で、随分前に暇つぶしでARMターゲットの
クロスコンパイラをビルドしました
が、それでイケるだろうと試したり。VMware上のFedoraに
ビルドして置いといたと思ったのですが、何かしら邪魔になったのか
消してしまってたので再度ビルド。
最新のgccでは gcc-4.9.2 をビルドできなくなってたりして
ハマリましたが、ひとまずC言語だけを生かしてコンパイラの
ビルドに成功。 ビルドしたクロスgccで -mthumbを指定して
HelloWorldコードをコンパイルしてみたところリンクにも成功。
glibcはAArch32ですが、-mthumbを指定してコンパイルした部分は
thumb命令セットを使った命令列になっていたり。
000103f0 <main>: 103f0: b580 push {r7, lr} 103f2: af00 add r7, sp, #0 103f4: 4b03 ldr r3, [pc, #12] ; (10404 <main+0x14>) 103f6: 0018 movs r0, r3 103f8: f7ff ff4c bl 10294 <puts@plt> 103fc: 2300 movs r3, #0 103fe: 0018 movs r0, r3 10400: 46bd mov sp, r7 10402: bd80 pop {r7, pc} 10404: 00010478 .word 0x00010478
野暮用で早めに帰着。
そういえば武蔵溝ノ口に古くからあるゲーム屋
「シータショップ溝の口店」が3/24をもって
閉店する
というのを知ったり。35年。店のある通りを通るたびに まだやっていけてるのが
すげぇと思っていたのですが、スマフォゲームやオンライン購入が
普通になった御時世で続けるのは やっぱ難しいのかもなぁ?とは思ったりも。
因みに、シータショップは溝の口店以外にも、
藤沢店、志木店、戸塚店 があるようですが、全店舗閉店のようです。
ここ数年は 極たまに利用してた程度ですが、長い間お世話になりました。
Raspberry Piで -mthumb (thumb命令セットでコンパイル) を有効にして
コンパイルしてみたところエラー。hard-floatのABIではダメだという
コンパイルエラーが出たので、-mfloat-abi=soft を足してみたら、
今度は /usr/include/arm-linux-gnueabihf/gnu/stubs.h の中でincludeしている
gnu/stubs-soft.h が見つからないというエラーになったり。soft-float
対応でgccをビルドしてみる必要があるのか?と思いビルドしてみるも
sys/cdefs.hが見つからないというコンパイルエラーでlibgccのコンパイルに失敗。
Webを検索してみるも、「-mfloat-abi=soft」になっているのがダメだ
「-mfloat-abi=hard」にせよという回答ばかりで、
"意図的にsoft-floatが使いたいんじゃー!"という
要求を満たすものでは無かったり。
AM中に起床。
ちょろり調べ事をして終了。
AM中に起床。
掃除したり洗濯したり。
調べ事。
GTS。ボチボチ。
先日の剰余演算で a % 1.0 の結果が1.0と表示される場合がある件。
ldc2でも条件によってそうなるケースがある模様。ふーむ?
割り算を含む式で、変数に一時置きした値を使っているのを
全部バラせは本来の期待値が得られそう。浮動小数点数の誤差が
蓄積しているのも原因の一旦にあるかも。
昼前起床。寝すぎ。
そういやいつの頃からかC言語で2進数リテラルが使用できるようになっていた
のを知ったり。例えば 0b11001010 は 0xca と同じ値になります。
X68kを使っていた頃、gcc 1.29とかで2進数リテラルが使えてたのですが、当時は
X68kのgccだけの独自拡張機能だったと記憶しています。ただ、X68k gcc以外で
食ってくれなかったので、使う事は無かったですけれども。
Webで調べた所によると 本家gccで2進リテラルがサポートされたのは
gcc-4.3.0くらいみたい。gccのソースアーカイブに含まれている
gcc/ChangeLog-2007 に以下のようなログがあり、
2007-06-05 Joerg WunschPR preprocessor/23479 * doc/extend.texi: Document the 0b-prefixed binary integer constant extension.
$ cat -n fmod_test.d 1 import std.stdio; 2 import std.string ; 3 4 void main() 5 { 6 int srcw=192 ; 7 int dstw= 10 ; 8 9 double scalew=cast(double)(srcw)/cast(double)(dstw) ; 10 11 for( int x=0 ; x<dstw ; x++ ){ 12 double t=(scalew*x)%1.0 ; 13 writef("%d : %f %d\n",x, t, cast(int)(t)) ; 14 if( !(t<1.0) ){ 15 writef("why?\n") ; 16 } 17 } 18 } $ dmd --version DMD32 D Compiler v2.085.0 Copyright (C) 1999-2019 by The D Language Foundation, All Rights Reserved written by Walter Bright $ dmd -O fmod_test.d $ ./fmod_test.exe 0 : 0.000000 0 1 : 0.200000 0 2 : 0.400000 0 3 : 0.600000 0 4 : 0.800000 0 5 : 1.000000 0 6 : 0.200000 0 7 : 0.400000 0 8 : 0.600000 0 9 : 0.800000 0
早めに帰着。
風邪気味状態は脱した気が。
早めに帰着。
ちょろりGTS。
あまりの眠さに急速停止。
早めに帰着。
調べ事。
IntelのCPUってプログラムの中でプログラムカウンタ(eipとかrip)の値を
取得するのは結構面倒臭いのを知ったり。デバッガを使うと気軽に表示できる
ので、簡単なのかと思ったらそういう訳では無かった。
早めに帰着。
うっすら風邪気味はあまり回復せず。
GTS。アップデートが来ていたのですが、やっぱりダウンロードするよりも
インストールに時間がかかる感じでなんでだ?と思ったり。
早めに帰着。
昨日からうっすら風邪気味。
昼過ぎ起床。寝すぎ。
そういや UWP(Universal Windows Platform)アプリのウインドウ描画が変になる件
(直近のメモ)。
気になった時に「設定」とかでウインドウを開いて、バグの有無を確認
しているのですが、ここ最近は変になる所を見なくなったなぁ?と思ったりも。
デスクトップPCでPowerDVDを使ってREGZAのDLNAサーバ上の動画を再生すると、
数分間の再生後に再生が停止するという現象のその後。
なんとなく原因判明。ネットワークの負荷などを観察する目的で、
NetWorxという常駐アプリを使用していたのですが、どうやらそれが悪さを
していたという結論。
ルーターを再起動したらどうなるか?を確認する為、PowerDVDでREGZAの
DLNAサーバ上の動画を再生していたのですが、NetWorxがやたらとCPUを食っていたので
終了させてみた所、ネットワーク負荷が安定すると共に切れなくなり、また異常に
時間がかかるようになっていたDLNAサーバーの認識が正常に戻りました。ルーター再起動だけでも
切れる事が無くなったので、ルーターが変になっていただけか?とも思ったのですが、
偶然 NetWorxも原因の一端だったというのが判明したという感じ。という訳で、
REGZAは無実だったのですが、DLNAサーバーによってこんなにも反応が違う物なのか?
とは思ったりも。
AM中に起床。
Emacsがハングする件はsnapshotのCygwin DLLの使用でその後も
問題無さそう。MailingListでは
「2019-03-08のsnapshotで まだ直ってなくね?」みたいな話が
あったようですが、バージョンを2019-03-06と書き間違えてただけ
だったようで、2019-03-08 のsnapshotでは大丈夫そうという事に
落ち着いた模様。
「Wacom Pro Pen slim」という直径の細いペン(スタイラス)
が出てるらしい。そういやArtPad2のペンは細かったのですが、
Intuos3とかでは太くなってて、そういうものなのかと
思っていました。Pro Pen slimのグリップ部の直径は 11mm
(9.5mmはペン本体の一番細い部分の直径)と細いことは細いのですが、
ArtPad2のペン直径は8.8mm、
PilotのHi-tec-cは8.5mmといった所なので、まだ少し太いと
感じるかもと想像したりも。
因みにPro Pen slimのお値段は9,720円.....大分高価な
ペンかも知れません(^^;
夕方頃に散髪にお出かけ。
「ONEPIECE(92)」。色々キャラが出てきてる気が。まだまだ続きます。
早めに帰着。
先日のCygwinでのEmacsがハング状態になる件は、同様と思われる
報告がされてそう。
と書いた少し後に対応された Cygwin DLLがsnapshotにアップロード
されてるようだったので試してみたり。大丈夫そうかも。デッドロック
の可能性がある所を直したらしい。
早めに帰着。
GTS。ボチボチ。
NVIDIAドライバやCygwinの3.0.2が来てたのでインストールして再起動。
NVIDIAドライバの方は問題無いのですが、Cygwinの方はやっぱり
Emacsがズッコケるのが直っておらず。で、以前
のように2.x系に戻そうと思ったら、setup.exeから2.x系を選択出来なくて
死亡。二つ前までしか戻れない感じになってるようだったので、一旦3.0.0に
まで戻せばイケるか?と思いきやそれもイケず。エ~~~?
ひとまずEmacsの方はCygwin64の方で少し古いのをバックアップ使用する
事にして、Cygwin32の方でEmacsのズッコケる件はしばらく直り待ちを
考えたり。というのも、CygwinのMailingListでは3.0.2で直りそうな
流れになってた(当該スレッド)
のですが、その後もやっぱり直っていないというやり取りが続いてそうなので。
よく見ると、修正対応したものをsnapshotにアップロードしてあると
いう書き込み
があったので試してみたところ、Emacsがズッコケる事は無くなりました。
近いうちに3.0.3がリリースされるものと思われます.......
と思ったのですが、使っているとハング状態に陥る場合があったり。
やっぱまだダメかも。
早めに帰着。
GTS。ボチボチ。アップロードで増えたイベントもどうにか
消化して、プロリーグのノスタルジックカーイベントを残すのみ。
でも、手持ち額が全然足りないのでしばらく賞金稼ぎを続ける
しかない感じ。そういやアチーブメントの中に「走行距離」が
あるのですが、これまでの総距離が約20,000kmなのですが、
Lv3到達は40,000kmで、よく考えるとまだ半分しか達成して
いないなぁ?と思ったり。プレイ時間が100時間ちょいで
まだ半分って事は、計算上あと100時間プレイしないとLv3に達しない
のに気づいてへにょる。
早めに帰着。
GTS。アップデートが来てたのですが、それなりの容量があって
インストールに少々時間がかかったり。ダウンロードよりも
インストールの方に時間が掛かっていたのが解せない気も。
ファイルを適当に分割してダウンロードと展開(インストール)を
同時に出来ないものなのだろうか?とは少し思ったりも。
早めに帰着。
LANが切れる件とは別に、デスクトップPCでPowerDVDを使って
REGZAのDLNAサーバ上の動画を再生すると、数分の再生後に
再生が停止するという現象に遭遇していたのですが、
結局TVで観るのでまぁいいかと思ってました。でも、
LANが切れる事と何か関係があるのかも?と思い少し調べて
みたり。以下のような感じで色々試してみたり。
AM中に起床。
掃除したり洗濯したり。
ブレイクダンス、いや breakin'。武蔵溝ノ口周辺って世界レベルなの?知らなかった。
そういやセルDVDってまだ新しく出てるなぁ?と思ったりも。
DVDとBlu-rayだとDVDの方が少し安いというのはあるのですが、
今やBlu-ray再生できない環境の方が少ないのでは?とは思ったりも。
GTS。アマチュアリーグをどうにかオールゴールドで埋められたり。
車によって楽勝になるのが釈然としない気がしながらも、まぁそういう
ものだという事で。プロリーグのノスタルジックカーイベントは
そもそもレギュレーションを満たす車を購入できなかったり(^^;
最低10億CRを用意しなくてはならなさそうですが、プロリーグ
1位賞金の2400万CRで換算すると、40回くらいプレイしなくては
ならなくて、なんだかへにょる。
昼過ぎ起床。寝すぎ。
ちょろりお出かけ。「はじめアルゴリズム(6)」を捕獲。
スペースXの有人飛行ロケットのテスト打ち上げ。
そういや50年前の1969年に人類は月に到達し、その12年後
の1981年にはスペースシャトルで宇宙と地球を行き来する感じ
だったので、2019年ともなればもっと自由に宇宙を行き来する
時代になってると未来予想した人も少なくはないのではと
思ったりも。
全然関係ない流れで知った
「初代Core i7と最新のCore i7の性能を比較検証。10年で性能はどこまで進化したのか?」
という動画。10年で3倍に満たないのは厳しいなぁと思ったのは
ひとまず置いといて、グラフィックボードが同じでもCPU
(とその足回り)によって、グラフィックボードの性能を結構な倍率で
引き出せないというのは へぇ~と思いました。例えばゲーム機だからと言って
単純にGPUだけリッチなマシンに仕上げても、GPU性能を引き出せないのでは
意味が無いと言えそうです。
有線LAN切断問題。TVは関係無さげ。LANハブの接続ポートを変えてみたり。
さてどうなるか?
GDC。gcc-9に向けて、現在GDCの更新はgccの開発リポジトリで行われている感じになってます。
で、GDC向けのgccのリポジトリコピーと思われるプロジェクトとして
「GNU D Compiler Development Repository」
というリポジトリがいつの間にかできてて、その中で MinGW向けの
ブランチが出来てるようだったり。gcc-9には入らないと思うのですが、
いずれ正式にサポートターゲットになる事を期待したいです。
早めに帰着。
GTS。ぼちぼち。
そういやGTSをやっていると有線LAN接続なのに時々ネットワークが
切れる現象が起こっています。少し前から気にはなっていて、心当たりがあると
言えば 新しいTVを買ったときにLANの接続を変えたというのが
あります。怪しさから言うと新しいTVか?という事で切り分けを
試みてるのですが、切れる頻度はあまり高くないので、
LAN接続を外してしばらく様子見するという感じ。
時間がかかりそう.....