PHAZOR.JP

ところで、本サイトのドメインは phazor.info で、そのトップページは英語表記になっている。

もともとは HorliX 案内用のサイトだったので、英語ページ作成が優先になったのは半ば必然なのだが、今の今までトップの日本語ページは存在していなかった。
日⇄英切り替え表示も考えなくもなかったのだが、一手間かかる。

その一方で、ここ数年、サーバープログラムも個人的には書いていて、ドメイン(hogehoge.org とか人間が認識しやすいサイト名)もまったくないサーバで実験みたいなことをたびたびおこなっていた。

この前、apache サーバを立てる機会があったのだが、「そういやこれ利用してウェブサイト作れるなあ」と思いつき、結局、ドメイン名も取得してこれを PHAZOR.INFO の日本語サイトとした。なお、ドメイン名は phazor.jp 。

具体的にはこちら https://phazor.jp/

もともとテスト用サーバだったのでサーバマシンのスペックはそれほどいいものではないし、今でもサーバプログラムなどを走らせていたりするので、それほど凝ったコンテンツは載せられないと思うが、デモ兼用のサイトとしてはちょうど良いと思う。しばらくは、そういった運用をしていくつもりだ。

本サイト同様、phazor.jp の方もよろしくお願いいたします。

 

 

猪股弘明
フェイザー合同会社代表

C 言語における 16 進表記文字列⇄バイナリ列変換

C 言語では、わかりやすい感じのフレームワークはそれほど多くないせいで、例えばタイトルのようなことをやらせようとすると苦労する。

16 進表記文字列→バイナリ列変換

これは、よくネット上で落ちている。

後利用しやすいように書けば

uint8_t* hex2bin(char* hex, size_t length) {
    static uint8_t* bin;
    bin = malloc(length/2);//need free(bin) later
    
    for (int i=0; i<length; i+=2) {
         unsigned int x;
         sscanf((char *)(hex + i), "%02x", &x);
         bin[i/2] = x;
    }
    
    return bin;
}

ポインタが hex である長さ length の文字列を渡せば、バイナリ列のポインタを返してくれる。

バイナリ列→16進表記文字列変換

この記事の発想にいたく感心した。

ポインタを使うと初学者はわかりにくくなると思い、一部配列表記にしている。

char* bin2hex(uint8_t* bin, size_t length){
    static char* magicarray = "0123456789ABCDEF";
  
    static char* hex;
    hex = malloc(length * 2 +1);//need free(hex) later
    
    for(int i = 0; i<length; i++){
        uint8_t octet = bin[i];
        hex[2 * i] = magicarray[octet / 0x10];
        hex[2 * i + 1] = magicarray[octet % 0x10];
    }
    hex[length * 2] = '\0';
    return hex;
    
}

要するに

「バイト列の一つの要素に注目したとき

(文字列表記上の)上位 4 bit 相当部分は、その要素を 0x10 (=16) で割った商

(文字列表記上の)下位 4 bit 相当部分は、その要素を 0x10 (=16) で割った余り

という論理。

その際に 16 進表記特有の文字( A…F) を指定するのに、専用の配列を用いている。
上のコード上では、その配列を magicarray としたが、こうするとすっきり書けますね。

 

猪股弘明

 

病院日当直・訪問診療で履きやすい靴

X でも触れたのだが、現在は週1で訪問診療の仕事を入れている。

悩みの種になるのは履き物で、最低でも

・脱ぎ履きしやすい

・少々の雨でも気にしなくていい

という条件を満たす必要がある。

皮のローファーなどは、着脱は容易なのだが、雨風に弱いし、第一重い。

試行錯誤の結果、現在はメレルというところのモアブというハイキングシューズを採用している。

ゴアテックス、どんなものだろう?と思っていたのだが、先日の雨の日でも雨水はじきまくり。

しばらくは、これかな。


ところで、Amazonで並行輸入品が安く買えたりする。

カラーは「ウオルナット」と説明されているが、写真ほどバーガンディっぽくはない。

(続く)

 

 

保護中: Java 開発環境

このコンテンツはパスワードで保護されています。閲覧するには以下にパスワードを入力してください。

WebORCA

医療情報系ではもう積極的に何かすることはないだろうなあと思っていた。
ORCA のブラウザタイプ(いわゆる WebORCA)も自分ではインストールすらしないだろうと漠然と考えていた。
さすがにドルフィンのあれこれは、捨て置くわけにはいかないと思っていたが。→結局、動画を何本(これとかこれとかこれ)か公開し『ソースコード嫁』や『@masudanaika による個人情報流出ツィート』などの記事は書かせてもらった。

だが、標準型電子カルテあたりの話が比較的評判良かったこともあって、HPKI あたりのことは割と自主的に調べていた。
へえ、電子処方箋の署名はこういうものなんだなと感心したりもした。

もうちょっと踏み込んで、MacOS で電子処方箋のデジタル署名のテストなども行った。

手を動かし始めると欲するのは現実とのリンクというやつで、実際のレセコンと連携できないかとぼんやり考え始めた。

そうなると手っ取り早く試せる環境が欲しくなる。

ここはやっぱり ORCA。

結論から書くと今もっともお手軽に WebORCA を試せるのは MS Windows の WSL2 環境。

通常に wsl をインストールしただけで MS の手が入った最新版の Ubuntu がインストールされる。まあ、GUI は一切ないが。

WebORCA と言えどもインスト手順自体は従来の ORCA とそうは変わってないので、作業に要する時間も慣れた人なら1時間もかからないと思う。

wsl1 だと systemctl が動かないという話なので、ハマるかも。インストール自体はできるが、動作させるのに相当苦労しないといけないようだ。

なお、MacOS + パラレルデスクトップという環境は、WebORCA 自体が amd64 にしか対応してない(arm64 非対応)ようで arm Mac だとインストール自体ができない

(追記)ORCA の ML にも投稿

そこで、「WSL2 の仕様上、ゲスト Ubuntu を再起動させるとIPアドレスが変わってしまうようで、いちいち上のコマンドを打ち込む必要があるから」と書いたが、ホスト windows 上で以下のバッチファイルを管理者権限で走らせると(走らせた後は)ホスト windows と同じIPでアクセスできるようになる。

FOR /F "usebackq" %%i in (`wsl -d Ubuntu exec hostname -I`) do set IP=%%i

netsh interface portproxy delete v4tov4 listenport=8000
netsh interface portproxy add v4tov4 listenport=8000 connectaddress=%IP% connectport=8000

少々、ダサいが、私の用途では実用的にはこれで十分。

同じ LAN 上にある Mac からもホスト windows のIPを指定することで WebORCA と通信できるようになった。