2021年7月28日

「エンジニア・プログラマにしか使えないSNS」にbarkしたやつ

let ep = "https://versatileapi.herokuapp.com/api";

//register function
let regist = function () {
    let cmd = "/user/create_user";
    let data = { "name": "naomi_mcrn", "description": "文鳥しゃんぬーむぬーむ" };
    let succ = function (d) {
        window._ajax_result = d;
        alert(d);
    };

    $.post(ep + cmd, JSON.stringify(data), succ);
}

//bark function
let bark = function (text) {
    let cmd = "/text";
    let data = { "text": text };
    let succ = function (d) {
        window._ajax_result = d;
        $.ajaxSetup({
            headers: {}
        });
        alert(JSON.stringify(d));
    };

    $.ajaxSetup({
        headers: { "Authorization": "HelloWorld" }
    });
    $.post(ep + cmd, JSON.stringify(data), succ);
}


//list function
let timeline = function (limit) {
    limit = limit || 20;
    let cmd = "/text/all?$orderby=_created_at desc&$limit=" + limit;
    let succ = function (d) {
        window._ajax_result = d;
        alert(JSON.stringify(d));
    };

    $.get(ep + cmd, succ);
}

let users = function () {
    let cmd = "/user/all";
    let succ = function (d) {
        window._ajax_result = d;
        alert(JSON.stringify(d));
    };

    $.get(ep + cmd, succ);
}

//regist();
//bark("文鳥へふへふ");
//timeline(10);

//users();
//↑これ実装した後 コンソールで「_ajax_result.forEach(u => {console.log("[" + u.name + "]: " + u.description )})」を打つ

2020年8月25日

SIR-001: 見過ごされたハッキング

001って書いてるけどたぶん続かない...続いたら困る。
(SIRはSecurit Incident Report)

今日の昼に昼食のため一時帰宅してメールチェックをしていたら、レンタルサーバを借りてるさくらからメールが。

要約すると

  • とあるメールアドレスがハッキングされてるぞ
  • 接続元は他でも悪さをやらかしてるやつらだぞ
  • とてつもなくやばいのでハックされたメールアドレスのパスワード強制変更したぞ

ってことらしい。

そういえば昔、spamを回避するため用途別にいくつもメールアドレス作ってたっけ。
(今はメインのをgmailに転送してspam抹殺してるからそんなことはしなくなった)

2020年2月17日

So-net「0 SIM」提供終了

500MBまで無料の「0 SIM」終了へ - ケータイ Watch

s h o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o c k ! ! ! ! !

あぁ、どうして!?ってこれは単純に利益が出なかったからかと。

私も契約してから一度も500MB使い切ったことなかったし(遅いから動画視聴とかできないし消費しようがない)。

今はマギレコぐらいしか使っておらず、それもほぼIIJmio回線のテザリングでやってたので、サービス終了したらiPhone 5SはSIMなしで運用予定。

2019年12月12日

blog用DBをMySQL5.7にした

  • 投稿日:
  • by
  • カテゴリ:
  • コメント: 0件

さくらから「5.1メンテあるで。ちなみに5.1は古すぎるからいつ止まるかわからんで。使ってないなら消す、使ってるならその辺わかっときや(要約)」ってメールが来たので、とりあえず細かい確認はすっとばしてMySQL5.7(現行で利用できるバージョン)に移行。

やったことといえば、さくらレンタルサーバの管理画面からDBコンソール(phpMyAdmin)開いて、エクスポートして、CREATE DATABASE文をコメントアウトして(SQLからDBは作れないのでエラーになる)吸い込ませ、mt-config.cgiを書き換えただけ。

collateがutf8_general_ciからutf8mb4_general_ciになったので、その辺の動作チェックとか全然してないけど、無事ログインできてるし、この記事が公開されたら投稿もうまくいってるということに。

これでいつ5.1が止まっても大丈夫。というか使ってないんだからバックアップして消しておいた方がいいかも。
(さくらレンタルサーバ外からは接続できないらしいけど)

あとはMySQL5.5のDBが何故かあって(強引にRailsアプリを動かす実験をした残骸)、こっちも不要なので5.1のを削除するときについでに消そう。

sdbnaomifenDSBL1912

2019年6月23日

エンディアン盲?(LE/BE/NBO)

とっさに左右がわからなくなるのを左右盲というらしいけど、リトルエンディアン(LE)とビッグエンディアン(BE)がどちらか分からなくなることは多い。

あとネットワークバイトオーダー(NBO)ってどっち?とか。


まず、0xAB12CD34みたいな整数(16進表記)があったとして

リトルエンディアン...リトルがエンドだから、小さい桁からならべて「34 CD 12 AB」?
いや最初にくる桁から並べて「AB 12 CD 34」??

ってなってしまう。

正解は下位バイトから先に並べるので「34 CD 12 AB」。

何故こうなるのかというと、Little Endianというのが「(卵の)小さい方(little end=下位バイト)から先に割る人(-ian)」かららしい。

これが「EndianなのにEnd(末尾=最後に配置)じゃない!?」という混乱の元。

ネットワークバイトオーダーはネットワーク上におけるバイト順で、TCP/IPにおいてはBig Endian。対義語はホストバイトオーダー(各コンピュータ固有のバイト順)。

ホストバイトオーダーはx86 CPUがLittle Endian。PowerPCやMotorolaがBig Endian。

Bitcoinは整数格納(ブロックハッシュなど)がLittle Endianで、Scriptの中身とかは整数ではないのでそのままの順番。


あとは、ビット単位での並びにも順番はあるのだけれど、こちらはLittle Endian/Big Endianというとややこしいので(基本LE/BEはバイト単位)、MSB First/LSB Firstとか言うらしい。

...で、リトルエンディアンはどっちが先だっけ?(記事の最初に戻る)

2019年6月23日

Senorita しからずんば

  • 投稿日:
  • by
  • カテゴリ:
  • コメント: 0件

Now a festa day カーン!!(金たらいの音)

...といううろ覚えしてたMMD動画があったので探してみることにした。

たしかたこルカ出てたはず...ということでたこルカで探すも見つからず。

MMD杯だっけ?ということでMMD杯で探すもこれも×。

結局「senorita caramba」で探す

※ここで補足すると「しからずんば」は私が勝手に「しからんば」から似た語感の日本語に置き換えて覚えてたので、違うのは分かってた。
しからんば=し+からんば、またsenoritaがスペイン語なのでスペイン語で「からんば」の音になる単語をGoogle翻訳で総当たりして見つけた。

するとCarlitoという歌がヒット。試聴してみるとまさにこれ。

あとはカリートで検索したらすぐ見つかった。

【MMD】愉快な仲間たちと『Go!Go!カリート!』PV【霊夢/リン/他いっぱい】

たこルカ一瞬しかいないやん!MMD杯でもないし...。おまけに金たらいではなく鉄球(ゴーン!)
さらにいうと「し caramba now a festa day」ではなく「say caramba now it's fiesta time」

まあ8年も前のことだし。

2019年6月11日

メモ:CentOS 7でInsight用のbitcoind系をコンパイルする呪文(./configure オプション)

  • 投稿日:
  • by
  • カテゴリ:
  • コメント: 0件

./configure CXXFLAGS='-O2 -D_FORTIFY_SOURCE=2 --param ggc-min-expand=1 --param ggc-min-heapsize=32768' --disable-gui-tests --disable-bench --without-gui --disable-wallet --with-boost-libdir=/usr/local/lib

CXXFLAGSの説明

  • O2:最適化
  • D_FORTIFY_SOURCE=2:メモリあふれ検出をON(最適化と同時に指定)
  • ggc-min-expand、ggc-min-heapsize:メモリ使用量を減らす(VPSでコンパイルしているため)

オプションの説明

  • disable-gui-tests:GUI(qt)テストをビルドしない
  • disable-bench:ベンチマークをビルドしない
  • without-gui:GUI(qt)をビルドしない
  • disable-wallet:ウォレット機能を無効にする(Insightに必要なネットワークとフルブロックノードのみ使用する)
  • with-boost-libdir=/usr/local/lib:OSのBoostだとバージョンが合わないのでカスタムビルドしたものを突っ込んであるディレクトリを指定

2019年3月 8日

件のJavaScriptに対抗する防衛(?)JavaScript

半分ネタ。件のJavaScriptとは以下の記事を参照。

【??危険なプログラム??】"何回閉じても無駄ですよ?"と無限にアラートを出すサイトのコードを添削してみた。 - Qiita

内容としてはwhile(true)window.alert()を呼び出し続けている。

Firefox等では繰り返しalertを呼ぶと「もう表示しない」みたいなチェックボックスが出て止めることができるらしい(昔はChromeもできたような記憶がある)。
しかし、少なくとも今試したらChromeではタブを閉じない限りDevToolsも開けない。

ということで意味もなく(?)無限ループを止められるようにしてみた。

    window.alert = function(msg){
        if (!window.DISABLE_ALERT){
            if (!window.confirm(msg)){
                window.DISABLE_ALERT = true;
            }
        }else{
            throw new Error("alert diabled: this is not true Error.");
        }
    }

グローバル変数使ってるあたりあまりよろしくない気もするけど、これでもし無限alertを食らってもキャンセルをクリックすれば例外を投げてwhileを抜けることが可能。

そのままだと全てのalertが無効になってしまうので、DevTools等でwindow.DISABLE_ALERTfalse/null/undefinedに戻せばOK。

これをTampermonkey等で全てのページで読み込むようにしておけば、もう無限alertを恐れることはない!
...うっかり普通の(無限じゃない)alertでキャンセルをクリックして「あ゛ぁぁ」ってなってしまう未来が見えるけど気にしない。

2019年1月23日

[Windows 10]言語の同期に要注意?

時間が無いので手短に。

経緯

  • あるPC(Aとする)でキーボードレイアウトが英語に
  • しかしデバイスマネージャやハードウェアキーボードレイアウトは日本語
  • 調べてみるとIMEが消失(MS IMEがない)

原因

どうも言語設定の同期が原因らしい。
別のPC(Bとする)ではATOKを使っているけど、しょっちゅうMS IMEに戻るので鬱陶しくてMS IME自体を削除していた。
これがAに同期された結果、AにはATOKがないので強制的に英語にフォールバックしていたのかもしれない。

逆にA→Bの同期がかかった結果として、BでMS IMEに戻る現象が発生していたのかも。
いずれも推測の域を出ないけど...。

解決策

AにMS IMEを追加し、言語設定の同期をオフにした。しばらく様子見。

2018年12月25日

XPChain チェインパラメータメモ(0.17.0)

  • 投稿日:
  • by
  • カテゴリ:
  • コメント: 0件

https://github.com/xpc-wg/xpchain/blob/1c1845a3276e176f70ab09b3ac7dc904f542e873/src/chainparams.cpp

主にinsight/explorerやSPV(軽量ウォレット)とかで使うものを中心に
ABPoS(minting/stake)関連を弄らないのであれば、bitcoinライブラリにこれらの値を入れれば動くはず

メインネット

  • P2Pポート:8798
  • RPCポート:8762
  • メッセージマジックバイト:0xfc,0x87,0xba,0xc0
  • Genesisブロック
    • ハッシュ:0x000000009f4a28557aad6be5910c39d40e8a44e596d5ad485a9e4a7d4d72937c
    • マークルルート:0xdaa610662c202dd51c892e6ff17ac1812a3ddcb998ec4923a3a315c409019739
    BASE58プレフィックス
    • 公開鍵:76 (0x4c)
    • script:28 (0x1c)
    • 秘密鍵:128 (0x80)
    • 拡張公開鍵:0x04, 0x88, 0xB2, 0x1E
    • 拡張秘密鍵:0x04, 0x88, 0xAD, 0xE4
  • bech32 HRP:"xpc"
  • チェックポイント:
    10275ブロック目=0x000000005a940193bddee51f6c649d3db5d14086201e856b0c8049f625e8e6b7

テストネット(testnet2)

  • P2Pポート:18798
  • RPCポート:18762
  • メッセージマジックバイト:0xfc,0x87,0xbb,0xc1
  • Genesisブロック
    • ハッシュ:0x00000000f04d3bdebf907f79b4b096a05d763ac890612202ff9c9cc685221617
    • マークルルート:0xdaa610662c202dd51c892e6ff17ac1812a3ddcb998ec4923a3a315c409019739
    BASE58プレフィックス
    • 公開鍵:138 (8a)
    • script:88 (58)
    • 秘密鍵:239 (ef)
    • 拡張公開鍵:0x04, 0x35, 0x87, 0xCF
    • 拡張秘密鍵:0x04, 0x35, 0x83, 0x94
  • bech32 HRP:"txpc"
  • チェックポイント:なし

共通

  • シートホスト:seed1.xpchain.io~seed3.xpchain.io
  • POW→POS切り替え:10275ブロック