githubにAPIアクセスキーとかをpushすると警告メールを飛ばしてくれるGitGuardian

手持ちの本を管理するプログラムが欲しくて、作ることにした。

以前ヤフオクで落としたバーコードリーダーOPI-2201をつかって、背表紙にあるISBNのバーコードを読み取って、あとはこれをAmazonのProductAdvertising API使って書籍情報を取得してくる…みたいなのを作っていたんだけど、PA-APIアクセスのキーとかをソースコードにベタ打ちしたcommitをgithubにpushしたら、GitGuardianとやらから警告メールが飛んできた。

 

メールの日付を見るに、pushから数十秒くらいで送信されているみたい。すごい早いじゃーんと思ってGitGuardianのページを眺めに行くと、どうやら人工知能に興味がある人が趣味的にやってるサイトらしくて、機械学習で自動判別しているらしい。

毎日200万くらいあるPublicなcommitをひたすらチェックしていってるみたいで、 平均すると2時間あたり3個くらいのペースでSensitiveなcommitがあるらしい。ぼくもそのうちの一つであったのだ…

Good Guyのありがたい通知に従って、今はもうこのAPIキーは無効にして、configから読み取るようにしたけれど、できればお世話になるようなヘマはしたくないなーなどと。そういうサンプルとそのフィードバックがあるからもっと精度も良くなっていくんでしょうけどね。

 

Windows10でいくつかのアプリケーションが落ちる

例えば、

・まめFile5SE

・桜時計

・Exact Audio Copy

・StepMania

あたり。

まめFile5SEはぶっちゃけただのファイラーだしExplorerで代用できる(というか本来はExplorerの代用として使う立場なんだけど、Explorerあんま使い勝手良くないので)し、桜時計もWindows標準の時刻合わせに頼る事にすれば(数分くらいのズレを許容すれば(許容できないでしょ))使わなくても良い。ただ、EACは代替ソフトがあんま見つからなかったし、StepManiaなんかゲームなんだし代替ソフトもクソもねーよ。

いつからこうなったのか記憶がはっきりしないけど、OSバージョンはWin10 Pro 1703。

まめFileでは起動後タブリストが復元されて、ファイルリストが表示された直後に「動作を停止しました」エラー。

桜時計はタスクトレイにいる間は何も言わないんだけど、ウィンドウを開くと「動作を停止しました」エラー。

EACはCDの読み込みまでは良くて、リッピングを開始しようと(Alt+F7)すると「動作を停止しました」エラー。

StepManiaはそもそも起動もしてくれなくて、「エラー起こったよ!詳しくはログ見てね!」なメッセージが表示されるのみ。ログ眺めると「なんか知らんがデータ無かったわwwwww」みたいな感じ。

 

最初はHyperThreadingのエラーかなと思って(使用CPUはIntel Core i7 6700KなのでSkylakeだ)、HTTをオフにしてみたりもしたけど状況変わらず。使用マザーボードはASRock Z170 Gaming K4だけどマイクロコードアップデート降ってないかなと思ったら、7.10が最新(既に適用済み)、ベータ版の7.12ではHTTについてのマイクロコードアップデートが入ってるらしいが、ベータ版を迂闊に適用できるほど人柱ではないので敬遠。

 

もうちょっとちゃんと調べようと思って、イベントビューアを見てみる事にした。EACを起動して落ちたタイミングのイベントを見てみると、エラー情報が。

障害が発生しているアプリケーション名はEAC.exeで良いんだけど、障害が発生しているモジュール名にMacType.dllの文字…

 

取り敢えずMacTypeを無効にしてみると、今まで落ちまくってたアプリケーションが全く問題なく動作するように。

フォントレンダリングの汚さがWindows10でも改善されてなかったから、Windowsインストール直後にMacTypeを入れていたんだけど、それが悪さをしていたみたい。

最近のWindows Updateで降ってきた更新とMacTypeが競合するような内容だったのかもしれない。

 

 

最近ノートPCがサイズ変更無しに1366×768から1920×1080に変わった(どちらも13インチモデルなので寸法はあまり変わってないはず)お陰で画素密度が向上して、文字が随分見やすくなった。というわけで、23インチとか21インチの面積にFullHDを放り込む状況、いい加減やめにして、もうちょっと高解像度な世界で生きていけば、文字もなんとなく見やすくなるんじゃなかろか、という気持ちだ。

4Kモニタ買うなら40インチ前後にして、外形寸法あんま変わらないようにしようと思ってたけど、30インチ切りとかでも綺麗さで言えば向上するはずだから、そういう手もあるんだよな、と思ったりした。4Kモニタでも小さいサイズなら手を伸ばしやすい価格帯になるし。

この辺ワンチャンありそうじゃない?まぁお金無いけど。

シェルで直前の入力を使う

なんか使いたくなったときはいつも忘れてるのでメモ。

まず、直前に入力した引数を使いまわすには!$を使う。

$ mkdir hoge
$ cd !$

直前に入力したコマンドそのものを使いまわすには!!を。

$ pacman -Syu
$ sudo !!

!!が直前の入力に置き換わるような感じなので、次のような使い方もできる。

$ sudo eject
$ !! -t

ejectコマンドは-t, –traycloseをつけると光学ドライブのトレイを閉じてくれる。

Linuxで音楽CDをリッピング

今メインに使ってるWindows PCにディスクドライブが装備されていないので、リッピング部分のみLinuxマシンにやらせて、あとの変換とか再生行程は従来どおりにやりたい的な感じ。

当初/dev/sr0からddで引っ張り出せばいいだろと思ってたけどダメらしい。てきとうにぐぐった結果できそうだったのでやってみる。

 

CDを挿入後lsblkにエントリが追加される

$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 119.2G 0 disk
├─sda1 8:1 0 200M 0 part /boot/efi
├─sda2 8:2 0 256M 0 part /boot
├─sda3 8:3 0 111G 0 part /
└─sda4 8:4 0 7.8G 0 part [SWAP]
sdb 8:16 0 3.7T 0 disk /mnt/r_array
sdc 8:32 0 1.8T 0 disk
sr0 11:0 1 324.2M 0 rom

ケツにあるsr0がそうだ。cdrdaoでリッピング。

$ sudo cdrdao read-cd --device /dev/sr0 --read-raw --datafile ZMCZ-11306.{bin,toc}
Cdrdao version 1.2.3 - (C) Andreas Mueller <andreas@daneb.de>
/dev/sr0: HL-DT-ST DVDRAM GH24NS50      Rev: XP01
Using driver: Generic SCSI-3/MMC - Version 2.0 (options 0x0000)

Reading toc and track data...
~以下略

tocファイルをcueシートに変換。

$ toc2cue ZMCZ-11306.{toc,cue}

できあがったbinファイルはエンディアンが異なるっぽいのでddで変換する。このまま再生するとホワイトノイズにしかならない。

$ dd conv=swab if=./ZMCZ-11306.bin of=./ZMCZ-11306.bin.swap

以上でリッピングは終了。

 

ここまででbin+cueな状態にできたので、完了ということで。あとはてきとうに、煮るなり焼くなり。

 

ちなみに上記で使っていたZMCZ-11306はメイドインアビスのED。

あとOPも買ったよ

原作コミックスも全部買った。最高に心がきゅうっとするのでおすすめです(?)

ひどい広告記事になってしまった…

自宅サーバの新調

10年以上前に組んだマシンがいい加減死にそうになっていたので(画面出力は完全に死んでいるとか、電源投入してもたまに起きてこないとか)、新調した。

構成は以下のような感じ。

 

CPU:Core i3 7100
M/B:ASRock H110M-ITX
RAM:W4U2400BMS-4G
CAS:RAIJINTEK METIS
SSD:Intel SSDSC2KW240H6
PSU:CORSAIR CX450M

 

ちなみにSSDは流用品。メインマシンにSamsung 960 PROとかいうM.2なSSDを入れた時に外したものをそのままつかった(一応SecureEraseはしといた)

最初AMDを使おうと思っていたんだけど、なんかパッとしない感じだし(グラフィックは最小限あれば十分だけど、最近のラインナップはAPUばっかりに見えてしまい…)、前提としてRAIJINTEK METISを使うってのがあったのでmini-ITXマザーである必要がある、AMDでかつmini-ITXだと選択肢が欠片もない…3000円くらい追加すればIntelにできるかな、という事で、IntelのCoreシリーズ最下層という感じで。

M/BはIntelのネットワークチップが載ってるらしいという事で(Intel I219V)ほぼ即決。旧メインマシンではオンボードも追加したものも蟹さんで、どっちもご臨終だったのを思い出しながら。

 

OSには挑戦として(?)ArchLinux

安定して動かせるかどうかドキドキだけど、まぁ趣味の自宅鯖だしいいかなという逃げ口上とともに、それなりにがんばります。

 

 

PSUがCorsairだし、スリーブケーブルでも入れてみるか〜?とも思ったけど、ケーブルを全然使わない構成なので意味がない事に気づいたのであった。メインマシンの電源が流用品なので、ここでまた考えようかなって感じだね

Windows10でアプリケーションが管理者権限で動いてるかチェック

メイプルなんちゃらとかいうゲームでSteam Controllerを使うためには、管理者権限で起動したSteamからクライアントを呼び出さないといけないらしい。

PC起動しっぱなしで、管理者権限だったかどうか思い出せない時、まぁ再起動すればいいんだけど、チェックできればいいよね、という話。

 

タスクマネージャの詳細タブで、「管理者特権」つー列を追加すればおしまい。

しょーもな。

 

こないだのSteamサマーセールで安くなってたから思わずSteam Controller買っちゃったけど、L2, R2が半押しと全押しとか、各ボタンの二回押しとか長押しとかで違うキーがマップできるとか、モードシフトの設定をすれば1つのボタンに複数キーマップできるとか、これが凄い良い

2次職3次職4次職とかまで進めばスキル数がガンガン増えていくので、通常のジョイパッドでのプレイはかなり厳しい、それ用にボタンが多いものを用意しないといかんなと思っていたけど、大凡普通のボタン数+ちょっとしかない状況でも全く問題ない。どのスキルをどこにあてるかはかなり考えないといけないし、慣れるまで難しいけど、まぁオンラインゲームってそういうものだよね。

ちなみに、見た目から一番わかりやすい、マウスを操作できるってのもなんだかんだ便利、狩りしながらインベントリの中確認とか余裕

 

ゆかり鯖でまったりやってるので暇だったら声かけてくれると喜びます

ノートPCを新調した

前使ってたのはVPCS14AFJで、購入は6年前。

購入当初はWindowsで使ってたけど、ある時からUbuntuへ移行、その後色々あってArchLinuxにうつって、今に至る。

 

で、もう7年目というわけで、普通に寿命が来てた。ソフトウェアに関しては、 初期化してしまえばなんとかなるけど、ハードウェアに関してはどうしようもない。

普通にガワにはヒビが入ってるし、角は割れてたりもする

無線通信もヤバそうで、ちょいちょい落ちてしまう

 

という訳で新調しました

購入したのはDellのXPS13 9360のCore i5 7200U/RAM 8GB/ NVMe SSD 256GBモデル。

選び方は単純で、

・日本メーカーは一部の例外を除いてJISキーボードしかない(論外)

・その一部の例外は予算オーバーしまくり

海外メーカーでは、

・ASUS→ダサい

・HP→ダサい

・LG→Gram悪くないけど中身が詰まってる感じしなくてテンション上がらない、スッカスカ安っぽい

・Lenovo→悪くないけど昔のキーボードを復活させてくれないなら価値はあまり…

・acer→印象に残らない

・msi→ゲーミングのデカいものしか陳列されてなくてつらい

という訳でDellしか 残っていない

 

消去法で決めたと言われれば確かにそうなんだけど、それとは別に、XPS13は米国市場ではDevelopers Editionと称して、WindowsでなくUbuntuがプリインストールされているモデルがある。

どこぞのYogaなんたらとか、マッなんたらと違って、Linuxを素直にインストールできる可能性が非常に高い。

という訳で決定しました。

 

Dellは注文後生産で在庫を持たないし、最近はヒアリ騒動もあるし、随分遅れそうだなぁとは思ったけど、Dellが注文を受け付けてから17日(17営業日でない)で届いたので、まぁまぁの感じだった。事前情報通りオーダーステータス確認画面はゴミだったけど。

 

モノについては大したレビューもできないので、他のサイトを見てもらうとして。届いた初日にWindowsに別れを告げて(一応リカバリメディアは作成した)、InstallBattle逃げのantergosをインストール。

大雑把に旧PCから環境やデータを引っ越してきて、一区切りついた。

 

解像度が1366×768からFullHDに変わったおかげですごく目に優しい環境になったと思う。よかったよかった。

$(window).load(function() {});の形が廃止された

今更なはなし。

要素のロードが完了したら実行してくれるのを考えて、Webページのロードが完了したらJS関数を実行して欲しいというのを書いたけど、$(window).loadの形が、廃止されたらしい。

今の形はまた違うようだ。

 

以下が廃止された形

$(window).load(function() {
ほにゃらら
});

以下が今使える形

$(window).on('load', function() {
ほにゃらら
});

 

そもそもdeprecatedだったらしいので、まぁいつかはこうなる運命だったんだな

特定文字列を含むファイルを検索する

NOMP(node-open-mining-portal)を使ってオレオレプールをつくってひっそりとソロマイニングしていたけど、恐らくsegwitが有効化されてから、getblocktemplateがエラーでこけるようになってしまった(全然気づかなかった)

ぐぐってみると、bitcointalkにドンピシャの話が。getblocktemplateの引数に”rules”:[“segwit”]を追加しなさい、と。

なるほど~と思ってgit pullとかnpm updateとかしてみたけど、なんだかうまく取り込まれなかった気がした…ので、自分でなんとかしてみることにした。

 

というわけで、getblocktemplateという文字列を含むファイルを検索する。

grep一発でおk

$ grep -rnw hoge -e "PATTERN"

今回は「カレントディレクトリ内にgetblocktemplateという文字列があるファイルを検索する」のが目的なので、

$ grep -rnw . -e "getblocktemplate"

あとは適当に修正していけばなんとかなった。よかったよかった。

動かせないデータを隣のストレージに動かしてなんとかする

Windowsの話。

C:\Windows\Installerが死ぬほど肥大化して死んで欲しい場合とか、あと今回はMinerGateでETH掘ってるときのDAGデータが大きいとか

要は、その大きすぎるデータを隣のストレージに移動させたいが、そこに移動させたという設定をアプリケーション側で行うのが面倒、というパターン。

 

JunctionというのがMSから提供されているので、これを使う。

 

今回はDAGデータを移動させる。DAGデータ本体はC:\Users\user\AppData\Local\minergate\.ethash-minergate以下にあるので、これを事前に他のストレージに(今回はE:\.ethash-minergateとして)移動させておいてから、以下のような感じで

E:\>junction.exe C:\Users\user\AppData\Local\minergate\.ethash-minergate E:\.ethash-minergate

Junction v1.07 - Creates and lists directory links
Copyright (C) 2005-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

Created: C:\Users\user\AppData\Local\minergate\.ethash-minergate
Targetted at: E:\.ethash-minergate

 

要はシンボリックリンクみたいなものを張っているだけ。これでいくらでも移動させられるぜ

ちなみにC:\Windows\Installerが60GBくらいになってるマシンもあったんだけど、普通に使っているだけでここまでOSを肥大化させられちゃうOSってのも、なんだかなぁという感じだよね