Raspberry Piで温度計測と在籍確認

取引先の方から、室温を測ってグラフ化したいんだけど…という相談を受けました。
その話は実施には至らなかったのですが、いろいろ調べてみると、温度センサーは安価でしかもAmazonあたりでも売られています。
また、ぐぐってみると、それほど難しい作業でもないようです。

ということで、ユニバーサル基板や端子台などを買ってきて、組んでみることにしました。
なんだかんだで20年ぶりくらいの電子部品の半田付けです。
買ってきたばかりの半田ごて、最初にハンダをなじませることをしなかったもんで、すぐに黒さびが吹いてしまうというチョンボからのスタートです。
すったもんだがありましたが、三本の温度センサーのプローブと人感センサーを取り付けました。


温度センサーと人感センサーの出力を10分間隔で取得して、データベースに保存させて、それをグラフ化するというプログラムを組んでみました。
これらのプログラムはPHPで組んでいます。

グレーの網掛けの部分は、僕がPCの前にいるということを示しています。
グラフの生成は、Chart.jsを使用しました。

これはなかなか楽しいです。

カテゴリー: その他 | Raspberry Piで温度計測と在籍確認 はコメントを受け付けていません。

mpcbridge ver 5.8 リリース

mpd(Music Player Daemon)のリモコンとして動作するWebアプリ、mpcbridge ver 5.8をリリースしました。

mpcbridgeの詳細は、こちらをご覧ください。

↓↓ダウンロードはこちら
https://mpcbridge.fourthgate.jp/files/download/mpcbridge.zip

ver 5.7から以下の修正、変更を行っています。
1) タグにアルバムタイトルが空または存在しない場合に、DB構築でエラーになる問題を解消
2) mpdの楽曲DBをMySQLデータベースにインポートする際のパフォーマンスをちょっとだけ改善
3) フリーテキスト検索の処理を、CakePHP3本来の構造に近づけました
4) アーティスト情報を更新
5) CakePHPコアを3.6.14にアップデート

カテゴリー: PCオーディオ, サーバーまわり | mpcbridge ver 5.8 リリース はコメントを受け付けていません。

Raspberry Pi 3をTimeMachine用に

これまでRaspberry Pi 3 BをTimeMachine用に使っていましたが、これをRaspberry Pi 3 B+に変更しました。
設定内容を備忘録として…

公式サイトからRaspbian Stretchをダウンロードして、SDカードに書き込みます。
Raspberry Piを起動させて、必要があればネットワークの設定を行います。
僕は、IPアドレスをdhcpから固定に変更しました。

まずは、sshを起動させます。

sudo systemctl enable ssh.service
sudo systemctl start ssh.service

とりあえず、インストール済みパッケージを更新。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install rpi-update

次に、netatalkのインストールに必要なツール類をインストールします。

sudo apt-get install build-essential

次は、netatalkのビルドに必要なライブラリ類をインストールします。
詳細は、http://netatalk.sourceforge.net/wiki/index.php/Install_Netatalk_3.1.11_on_Debian_9_Stretchを参照してください。

sudo apt install libevent-dev libssl-dev libgcrypt20-dev libkrb5-dev libpam0g-dev libwrap0-dev libdb-dev libtdb-dev libmariadbclient-dev avahi-daemon libavahi-client-dev libacl1-dev libldap2-dev libcrack2-dev systemtap-sdt-dev libdbus-1-dev libdbus-glib-1-dev libglib2.0-dev libio-socket-inet6-perl tracker libtracker-sparql-1.0-dev libtracker-miner-1.0-dev

netatalkのソースコードをダウンロードして展開し、ビルドします。

./configure \
–with-init-style=debian-systemd \
–without-libevent \
–without-tdb \
–with-cracklib \
–enable-krbV-uam \
–with-pam-confdir=/etc/pam.d \
–with-dbus-daemon=/usr/bin/dbus-daemon \
–with-dbus-sysconf-dir=/etc/dbus-1/system.d \
–with-tracker-pkgconfig-version=1.0

make
sudo make install

ひとまずインストールは完了。
次は、TimeMachine用のHDDの接続とフォーマットして、マウントします。
ここでは、/mnt/timemachine としておきます。

netatalkの設定ファイル( /usr/local/etc/afp.conf )を編集します。

[Global] セクションに、以下を追加します。

mimic model = AirPort

これで、アイコンがTime Capsuleになります。
また、以下を追加します。

[RaspberryTimeMachine]
path = /mnt/timemachine/backup
time machine = yes

以上で設定は終了したので、netatalkを起動します。

sudo systemctl enable avahi-daemon
sudo systemctl enable netatalk
sudo systemctl start avahi-daemon
sudo systemctl start netatalk

Macからは、これでTime Machine先に選べるはず。

カテゴリー: サーバーまわり | Raspberry Pi 3をTimeMachine用に はコメントを受け付けていません。

オープンソースカンファレンス2018 Fukuoka

今年もオープンソースカンファレンスに参加してきました。
百道のSRPで開催だったのですが、学生さんが多かった印象です。
オジサンは少なかったですが、ラズパイオーディオの話だけはオジサンがそれなりにいたような…

お昼過ぎまでしか会場にいなかったんで、そんなに沢山の話は聞けませんでした。

MySQL 8のGIS系のお話は、緯度経度が測地系によって微妙に違う話や、平面に投影する座標系の話とか、昔地理の授業で習ったような話で面白かった。
また、その昔ガラケーの位置情報で今いる場所を調べようとしてた時に、いくつかの座標系があって面倒だったのですが、その経緯も知れました。
また、東経135度の話も面白かった。建前上は、明石の天文台が東経135度にあることになっているけど、地図で使われている測位系では明石市役所付近が東経135度らしい。
もっとも、米軍が使っているWGS84と、日本が使っているJGD2011では、またすこし違うらしいですが。
というわけで、MySQLのGIS関数では、どの測地系を使うかの設定もできるようになってるとか。

git超入門も拝聴いたしました。
gitは使ってはいるものの、pullして、ちょこちょこっと変更して、commit、pushしているだけなので、わかっているとは到底言いがたく(笑)
大変勉強になりました。。

BaserCMSは、いよいよCakePHP3化ということだそうです。
一部のホスティングサービスでは、いまだにPHP 5.4が使われている現状では、CakePHP3ベースに移行するのはどうかということだったそうです。
さすがに最近はそれもなくなり、PHP7が主流になりつつあるから、いよいよ移行ということでした。
最先端の案件だと、こんなことは気にしなくて良いのでしょうが、中小企業のWebサイトだと、ずっと昔からのホスティングサービスを使っていたりしますからね。
次バージョンでは、プラグイン化してcomposerでインストールできるようにするということでした。
とはいえ、Cakeは2から3でかなり変わるので、大変だろうなあ。
僕もCakeの2から3では四苦八苦しています。。。

カテゴリー: その他 | オープンソースカンファレンス2018 Fukuoka はコメントを受け付けていません。

CakePHP3.6 で画像表示

備忘録として…

CakePHP3で画像をストリームとして吐き出す場合のコード。
この辺、CakePHPがアップデートする度に、結構変わってて、ググっても古い情報が結構ヒットするので…

ファイルを吐き出す場合

use Zend\Diactoros\Stream;

$this->autoRender = false;
$imageinfo = getimagesize( $imagefile );
$stream = new Stream($imagefile, ‘rb’);
$response = $this->response->withType($imageinfo[‘mime’]);
$response->getBody()->write($stream);
return $response;

データベースから読み込んだ場合、

$this->autoRender = false;
$data = $this->Model->get( $id );
$imagestream = stream_get_contents($data->image);
$response = $this->response->withType($data->mime);
$response->getBody()->write($imagestream);
return $response;

カテゴリー: 未分類 | CakePHP3.6 で画像表示 はコメントを受け付けていません。

Microsoft Edgeのふしぎなバグ

MicrosoftのWebブラウザーEdgeでちょっとおかしな現象に遭遇しました。

Basic認証されたページへ、target=”_blank”でジャンプされた場合、Basic認証が効かずにエラーになって何も表示されません。
同一ページで遷移した場合には、正常にBasic認証に進みます。

ちょっと分かりにくいですが…

↓こちらは正常に動作します。

<a href=”Basic認証がかかったページのURL”>すすむ</a>

↓これだとエラーになります。

<a href=”Basic認証がかかったページのURL” target=”_blank”>すすむ</a>

謎です。
この現象はWindows 10のみで、WIndows 8ではおきないみたいです。

同じ現象に遭遇した方いるようです。
https://answers.microsoft.com/ja-jp/edge/forum/edge_other-edge_win10/%EF%BD%85%EF%BD%84%EF%BD%87%EF%BD%85/89da0630-31d6-42ba-ad67-b01d8df9aad2

カテゴリー: Webコンテンツ | Microsoft Edgeのふしぎなバグ はコメントを受け付けていません。

PRIMERGY TX1310 M3 + Ubuntu 18.04 LTS

富士通のTX1310 M3の価格が、かなり下がってきたので、自宅サーバー用途で購入しました。
これに、Ubuntuの新しいLTS、18.04 LTSをインストールしようとしたのですが…途中で止まってしまうと言う現象に遭遇しました。

mini.isoからのインストールでは、なにかのアップデート途中で無限ループに入っているっぽいです。
サーバー版では、ディスクのパーティション処理を行っているところで、止まってしまいます。
ネットを検索しても、それっぽい記事は見つからないので、うちだけの現象かなとも思います。

結局のところ…16.04をsshをいれただけの状態でインストールして、そこから、do-rlease-upgrade して18.04にしました。
この場合は、何の問題もなく18.04.1にアップグレードされました。

カテゴリー: サーバーまわり | PRIMERGY TX1310 M3 + Ubuntu 18.04 LTS はコメントを受け付けていません。

決算処理

お盆休み中に昨年度の決算処理をしました。
申告書もなんとなくできてしまいました。
しかし、毎年じり貧の状況で、全くよろしくないです。

さて、それはさておき、僕が使っている某社のかんたん!会計ソフトですが、バージョンアップして超遅くなってしまいました。
年間保守契約に入っているので、1〜2年サイクルで新しいバージョンが送られてくるのですが、今年送られてきた版がとにかく遅い。
使用しているパソコンの性能が低いというのもありますが、決算書を印刷するのになんだかんだで10分くらいかかります。
たった4ページの内容なのに…
振替伝票も、作って保存するだけで1分くらいかかります。その間、ソフトは(応答なし)と表示されます。。
ソフトの作りが問題なのか、バックで動いているMS SQL Serverの問題なのかわかりませんが…

月に1、2回触るだけですし、今更会計ソフトを乗り換えるのも大変ですので、我慢しながら使い続けることになるとは思います。
名前通り、簡単で使いやすい会計ソフトですが、これほどまで遅いとなると新規導入はとてもじゃないですがオススメできないです。

追記
この記事を書いた直後に、アップデート版がリリースされました。
MS SQLを使わなくなったようです。処理速度も不満無いレベルになりました。めでたしめでたし。

カテゴリー: その他, 仕事 | 決算処理 はコメントを受け付けていません。

PHP 5.6

http://php.net/supported-versions.php

今更ですが、php 5.xは、年内でサポートが終了するんですね…
過去に納めた殆どの案件はPHP 5.xばかりなのですが、さて、どうするのがいいでしょうねぇ?

カテゴリー: Webコンテンツ, サーバーまわり | PHP 5.6 はコメントを受け付けていません。

PHPカンファレンス福岡 2018

PHPカンファレンス福岡に参加してきました。
なんだかんだで毎年参加しています。そして、ビシビシと刺激されています。

参加者は、なんとなく若い人が増えているような…そして、僕は参加者の中でも最年長の部類に入ることは間違いなし。
そもそも50代と思しき人はまったくいないし。

印象に残っているのは…
「MySQLで画像を扱うデメリットと特殊パターン」
今まさにやろうとしていることなので、参考になりました。
画像の用途に応じてDBに入れるか、ファイルのままにしておくか検討しないといかんと、再認識しました。

「PHPerのためのよくわかるCPU脆弱性解説」
テレビのニュース番組でも取り上げられたCPUの脆弱性のお話。
あーなるほど、こういうことかと実にわかりやすかった。
最近のCPUの高速化の手法に起因するだけに、根が深い問題ということですかね。
その昔、僕がアセンブラとか書いてた頃は、CPUは一つずつ命令を実行していくだけで、先読みとかキャッシュとかほとんどなかったですし…

「ランサーズバージョンアップ報告」
CakePHPのバージョンアップのお話。
僕も経験があるだけに、他人事ではないないようでした。ま、案件の規模は全く違いますが…
しかし、コントローラー/アクション毎にCakePHPを切り替えていくというやりかたには感心しました。

登壇者の皆さん、スポンサーさん、そして運営スタッフの皆さん、毎度のことながらありがとうございました。
僕は会場のはしっこで、ヘラヘラしながら登壇者のお話を聞くだけですが、深く感謝いたしております。

カテゴリー: 仕事 | PHPカンファレンス福岡 2018 はコメントを受け付けていません。