おんどとりWebStorage API

おんどとりで温度モニタをしている。測定値はおんどとりWebStorageにアップロードされ、ログインすると測定結果をオンラインで確認できる。とても便利。

アップロードされたデーターはAPIをつかってダウンロードする事もできる。JavaScriptから直接叩くのは禁止されているのだけど、サーバーサイドでダウンロードして利用できる。サーバーに限定するわけでもなく、要はスタンドアロンなアプリケーションからはOKなわけで、たとえばLabViewをつかったGUIモニタなんてのも簡単に作る事ができる。

さて、最近DjangoベースのWebアプリを利用していろいろやっているわけだが、Djangoの方でもおんどとりデータを活用したい。いちいちWebStorageにアクセスするのも効率が悪いので、Djangoデーターベースをキャッシュとしてつかい、データベースに該当するデータがなければ、WebStorageから値を取得・保存するようなものを作りたい。

DjangoはPhyton3で動いていて、Python3 では urllib をつかってHTTP通信をすれば良いとGoogle先生が教えてくれたので、試してみた・・・・・・が、うまくいかない。LabViewでPOST通信をつかって最新データを取得できるのは確認済み。urllib のサンプルを見ても特段複雑な事をしているわけでもないので、コードに問題があるとも思い難い。半日くらい悩んでいたのだが、ようやく問題の特定にいたった。

APIを使うには、POST通信でリクエスト情報をJSON形式で送る。受信データもJSON形式。なんどやってもフォーマットエラーが帰ってくるので、送信データーの中身が悪いのか?と悩んでいたところ、問題はデータではなくてヘッダーにある事が判明。urllib で Content-Type を application/json に指定しているのだが、設定されているヘッダーを確認してみると、Content-type となっている。どうやら内部で、最初の文字以外は小文字に変換している様子。HTTP通信の規格上、大文字・小文字の区別はしないので、この仕様になにも問題ない。

ところが・・・・・ WebStorage 側ではどうやら大文字・小文字の区別をしているらしい。いくら Content-type で JSON 指定をしても、サーバー側で Content-Type をまたれると、データ・フォーマットの指定ができず、400番のエラーを返してくれる。話をややこしくしているのは、エラーコード 415 は JSONフォーマットエラーになっていて、エラーコードの説明だけではどこに問題があるのか判断つきにくくなっている事か?

LabViewの方でヘッダー情報を編集して試してみようとしたところ、LabView のVIでは、ヘッダー種類はすでにリスト化されていて、小文字に変更するという単純な事ができない。(もしLabViewのVIが小文字変換していたら、なかなか厄介な問題だった)

解決方法は Python の requests モジュールを利用する事。こちらは勝手に文字種変換なんてことはせず、指定したものをそのまま送信してくれる。Content-Type と Content-type で試してみたところ、問題を確かに再現。

解決したからよかったけど、なかなか根の深い問題。

CPUクロック低下問題について

X270のCPUクロックが1割まで低下する件。なんとなく条件がわかってきたような気がする。1割に固定されずに、負荷に連動してクロック変動する条件は

  1. ACアダプタを外した状態で起動(再起動ではなくて、いったんシャットダウンした後に起動)
  2. USBになにもつなげない。テザリングしたくてiphone をUSB接続するとクロック低下。WiFi経由でテザリングする場合は速度低下せず。

Window subsystem for Linux をためしている話

Windows10でLinuxを使おうとすると、別のホストにリモートログイン、Virtual Box的なもの、Cygwin等が候補にあったが、最近は Windows subsystem for Linux が選択肢にふくまれるようになった。

いろいろ考えて、WSLを今回使えるようにしようとしている。使えるようにとは emacs が使えて、ROOT が使える事。

X11は MobaXterm で対応。

とりあえずいろいろな所にかいてあるように、有効化後にMicrosoft ShopでUbuntuDebianSuSE をインストール。今回は Ubuntu を選んでみた。正直なところDebianとなにが違うの?と思わないでもないが、Ubuntu

ROOTはパッケージ化されていないのでビルドが必要。RPM系がリリースされると嬉しい所。いちいちビルドするのは面倒だ。

そうはいっても必要なので、開発環境を整えて、必要なライブラリもちょこちょこインストールして、ビルド。WSLの欠点はIOの遅さかもしれない。ディスクアクセスはなんでこんなに遅いのだろうか?ROOTのビルドはそもそも時間がかかるのだけど、IOの遅さがさらに足を引っ張っている。

どうしてNASが表示されないのか、ずーっと困っていた話

LAN中のDesktopPCからは見えるNASが、Laptopからは見えない。まったく意味がわからず困っていたところ、以下の記事をみつけた。

www.atmarkit.co.jp

わかってみれば「そうなのね」というものなのだけど、流石にわからん。きっとどこかでニュースになっていたのかもしれないけど、しらんがな。って感じ。

とりあえず有効化して、再起動。

つかっていないけどWSL

Windows Subsystem for Linux を使い始めるひとがまわりにぽちぽちと出てきた。どんなものなのかを見てみると、Ubuntu on Window, SuSE on Windows, Fedora on Windows とメジャーなところを選択しながら、Linux環境をストアから導入できるというなんともまあお手軽な感じ。

周りのひとの使い方を見てみると、WSLでOpenSSHを動かしておいて、SSHクライアントで接続して、別立てのXserver上にX11クライアントを飛ばすといった使い方をしている。

X server はないのかしら?

とググってみても、Xmingを使えだのVcXsrvを使えだのばかり。まだNativeにXserverが動くところまでは来ていないようですね。

どうやらまだまだ MobaXterm が活躍する余地がたくさんアリそうな話でした。

自前でWindows Desktopに統合してくれるようになったら、かなり使える環境なきがする。

TrumpじゃなくてTrampの話

emacs 26.1 の更新項目をみていたら、TRAMP で Google Drive 云々とあった。TRAMPってなに?なレベルなので、ぐぐってみたらリモートホスト上のファイルをSSH等でアクセスするものらしい。

ほう。

読んでいると結構便利そう。なので試してみた。

emacs でC-x C-f でファイルを開く。その時に

/ssh:username@hostname:file_path

で指定すれば良いらしい。/sshは /scpやら/sftpでもいいのだけど/sshが軽いらしい。すべてらしいなのだが、やってみる。Linuxだと.ssh/conf のあたりの設定をちゃんと反映してくれるので、エイリアスも使えてとても便利。

ファイルPATHを覚えていないとだめなんじゃ?と思いきや、タブ補完も働く。一度開いたファイルから別のファイルを開きたい時にはリモートディレクトリが起点になっているので、いちいちホスト名等を入力し直す必要もなし。

これって、結構便利なんじゃ?

こんなに便利なものならば gnupack で入れた emacs on Windows で使えれば、ファイル編集のみならsshターミナル必要ないんじゃ?とおもいきや・・・なにかssh クライアントが必要そう。 PuTTY w使う場合が示されていたりするのだけど、MobaXtermでは?

いや、しかし MobaXterm で Cygwinベースの emacsを入れてしまうと、実は結構簡単にできちゃう?

とはいえど、どうやら世の中は Window Subsystem for Linux が結構幅をきかせているようだし、そっちで emacs + ssh を動かして、リモートホストにつなぐのがいいような気がしないでもない。

Windowsから使うとすると X window server をどのような動かすかがキモなので、また別の話になってくるかもしれないけれど。

 

Tramp は使えそうなやつという話。

Chromeでアプリ化(ころころかわって大変だ)

10周年バージョンがリリースされて、評判が良かったり悪かったりするChromeです。最近はどのブラウザつかっても、体感的に大差ないらしいのでChromeにこだわる必要もないのですが、Googleのサービスを使うならChromeか?ということで、基本Chrome使い。

ショートカットを作って、--app で指定してアプリモードでいろいろ使ったいたわけなのだが、Chromeから簡単にショートカットを作れるようになっていたので健忘録。

メニュー⇒その他のツール⇒ショートカットを作成

を選択して、「ウィンドウとして開く」にチェックボックを入れるだけ。これでのぞみのショートカットアイコンがデスクトップにあらわれます。

マニュアルでおこなうよりもこちらのほうが良いことが一つ。サイトのアイコンを、ショートカットのアイコンにしてくれる様子。これを手作業でやると見かけの同じアイコンがたくさんできて本当に分かりづらい。

ショートカット作り直さないと。

 GMailのようにメールボックスの未読数をWebアイコンに反映させるような場合には注意が必要。出来たショートカットアイコンは作成時のアイコンをベースに作るようなので、意味のない数字が・・・・