stylesheet

2020-09-23

AutoHotKeyで変換/無変換キーを有効利用

中古で安く手に入れたThinkpadの一体型パコパコパッドが、アレなもんで...。余ってる変換/無変換キーを活用するAutoHotKeyスクリプトを書いてみた。
このスクリプトを起動しておくと、変換/無変換キー/かなキーでそれぞれ右/左/中クリックを行うことができる。
また、同じキーで日本語入力のON/OFFを行うモードもつけているので、そちらの気がある方も便利に使えるのではと思う。

だだし、このスクリプトはUSキーマップ環境で日本語キーボードを使っている変態さん向けのプログラムだ。
完全な日本語環境では、いろいろとキーバインドが衝突して、動作に支障をきたす可能性があるので注意されたし。

2020-09-10

一眼レフカメラ Olympus E-410 電源スイッチ修理

オリンパスのミラーレスではない、デジタル一眼レフカメラE-410。
2007年の発売なので、かれこれ10年以上前の製品。

オリンパスがカメラ事業を手放すことが決まったそうで。そういえば、オリンパスの一眼レフを持ってたなと。 久々に引っ張り出してみるもうまく電源が入らない。
スイッチの接点が退化してしまっているようで、上から押さえつけてやるなりしてうまくアタリをつけてやらないとすぐに電源がオフになってしまう。

この症状、検索してみるとよくあるようで、接点の清掃で治るらしい。
分解作業もドライバー一本で簡単に行えるようなので、セルフリペアすることとし、分解手順を記録としてここに記す。

2020-08-25

格安Wi-Fi6ルーターのTP-Link Archer AX1500 / AX10

Wi-Fiルーター故障に付き、新調。

せっかくなのでWi-Fi6対応品にしてみた。購入したのは、tp-link製のArcher AX10。 Wi-Fi6対応品としては最安値レベル、実売8000円前後のエントリーモデル。

2020-07-09

東証株価指数ヒートマップ表示 デスクトップアプリ その3

東証株価指数ヒートマップ表示デスクトップアプリです。久々に触って気分がよくなったので連日の更新です。

今度は新機能追加です。
ユーザーCSSを追加できるようにしてみました。

前回同様、アプリについて詳しくはその1を参照してください。
また、前回の更新内容についてはその2を参照してください。

ダウンロード (最新版はv1.1.0になります)

2020-07-08

東証株価指数ヒートマップ表示 デスクトップアプリ その2

東証株価指数ヒートマップ表示 デスクトップアプリです。地味に更新しました。
アプリについてはその1を参照してください。

稀に、リモート側が壊れたデータを返すことがあるので、そちらへの対処を追加しています。
新しい機能などはありませんので、面倒ならば更新スルーしても問題ありません。

ダウンロード (最新版はv1.0.2になります)

2020-04-11

Ubuntu 18.05 マウスの中ボタンクリックエミュレーション

左右ボタンクリックで中ボタンクリックとする機能。昔はGUIで設定できた気がしたのだが...

# /usr/share/X11/xorg.conf.d/99-mydev.conf

Section "InputClass"
    Identifier "Kensington Orbit Trackball with Scroll Ring"
    MatchIsPointer "on"
    MatchDevicePath "/dev/input/event*"
    MatchUSBID "047d:2048"
    Driver "evdev"
    Option "Emulate3Buttons" "True"
    Option "Emulate3Timeout" "50"
EndSection

Match*でデバイスを絞り込んで、オプションを追加している。Emulate3Buttonsフラグで中ボタンエミュレーション。Emulate3Timeoutはしきい値。

デバイスIDを調べるにはlsusbを、ボタンIDを調べるのはxevを使用するとよい。evdevドライバで使えるオプションはman evdevに記載されているので参照されたし。

2020-02-18

Clova Friends mini SALLY + Clova Friends Dock (赤外線リモコン) の在庫処分品を救出

某所マラソンセールでドックとのセット品が投げ売りされていたので買ってみた。

Clova Friends mini SALLY + Clova Friends Dock (赤外線リモコン)がクーポン利用で1480円。
格安のBluetoothスピーカーとして使えればいいかといったモチベーション。

2020-02-11

東証株価指数ヒートマップ表示 デスクトップアプリ

東証の株価指数をヒートマップ表示するElectron製アプリを公開。
他人の褌で土俵を取っているので、ひっそりと...

ちゃんと保守する気はないので、突然消えたりします。必要な方は早めに確保願います。

東証株価指数ヒートマップ - jpx-heatmap

概要

日本取引所グループ公開の株価指数データを使用したヒートマップ表示アプリケーションです。

ダウンロード

こちらからダウンロードできます。

Electron製につき、内容の割に非常にファイルサイズが大きいのでご注意ください。

  • Windows 64ビット版 - jpx-heatmap-?.?.?-win.zip
  • Linux 64ビット版 AppImage - jpx-heatmap-?.?.?.AppImage

インストールと実行

Windows版
zip書庫を解凍し、jpx-heatmap.exeを実行します。

Linux版AppImage
AppImageファイルを直接実行します。

アンインストールと削除

Windows版
ディレクトリごと削除してください。設定情報なども削除する場合は、%AppData%/Roaming/jpx-heatmapディレクトリも削除します。

Linux版
ファイルを削除してください。設定情報などは~/.config/jpx-heatmapディレクトリを削除します。

スクリーンショット

メイン画面

設定画面

アプリについて

Window 64ビット版/Linux 64ビット版 ダウンロード

2020-02-09

Electron + Vue.jsでデスクトップアプリを作る

久々のJavaScriptネタは、Electron

ダウンロードしたアプリケーションがコイツを使ったWebアプリだったりするとなかなかに残念な気持ちになる、あのElectron。
一部のセクターで根強いニーズがあるとかないとか。

そんなElectronをVue.jsと合わせて使うメモ。開発環境はUbuntuベースのディストリ。

2020-01-19

OrangePi WinをDLNAメディアサーバーにする

前回、OrangePi WinへSambaを入れてファイルサーバー化した。

ネットワーク内でのファイル共有、主にメディアファイルの複数マシンからのアクセスに便利に使用しているが、せっかくなので、格納しているメディアファイルをDLNAで公開してメディアサーバーにしてみようと思う。

最近は、PlexServiioといった有償アプリケーション(無料版もある)が人気のようだが、高機能な分リソース消費も多そう。非力なOrangePiでは荷が重いことだろう。
そこで、今回はDLNAサーバーとしては最もシンプルな、管理用UIやトランスコーディング機能もない、minidlnaを使用することにする。

インストールはaptで行える。

$ sudo apt install minidlna

設定ファイルを編集。管理用のUIは持たないので、直接設定ファイルを編集する。
配信用ディレクトリは、音声/画像/動画で別々のディレクトリを指定することも可能。 また、friendly_nameで表示名を変更できる。

$ sudo jed /etc/minidlna.conf

...

# Path to the directory you want scanned for media files.
#
# This option can be specified more than once if you want multiple directories
# scanned.
#
# If you want to restrict a media_dir to a specific content type, you can
# prepend the directory name with a letter representing the type (A, P or V),
# followed by a comma, as so:
#   * "A" for audio    (eg. media_dir=A,/var/lib/minidlna/music)
#   * "P" for pictures (eg. media_dir=P,/var/lib/minidlna/pictures)
#   * "V" for video    (eg. media_dir=V,/var/lib/minidlna/videos)
#   * "PV" for pictures and video (eg. media_dir=PV,/var/lib/minidlna/digital_camera)
# media_dir=/var/lib/minidlna
media_dir=A,/mnt/usbhdd/music
media_dir=P,/mnt/usbhdd/photo
media_dir=V,/mnt/usbhdd/media

...


# Name that the DLNA server presents to clients.
# Defaults to "hostname: username".
friendly_name=OrangePi Media Server

ファイルが多いとinotfyが足りなくなるので、max_user_watchesを増やしておく。
最大524288まで指定できるが、大きな値を指定するとそれだけメモリーを専有するので程々に。
64bitシステムで最大値を指定した場合、1つあたり1kB、合計512MBのカーネルメモリーを使用する。

$ sudo sysctl -a | grep fs.inotify
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 128
fs.inotify.max_user_watches = 8192

$ sudo sysctl fs.inotify.max_user_watches=65536

再起動後も反映させるため、sysctl.d以下にファイルを作成。

$ sudo jed /etc/sysctl.d/90-inotify.config 

fs.inotify.max_user_watches = 65536

デーモンを停止。


$ sudo service minidlna start

DBを強制再作成。

$ sudo minidlnad -R

デーモンを起動。

$ sudo service minidlna start

MediaTombのような管理インターフェイスは存在しないが、ブラウザでポート8200番にアクセスすると簡易なステータス表示を行える。死活監視用に使えるだろう。

Windows10ではエクスプローラーが自動認識した。
クライアントとしてはPCではWindows Media Player、スマホではVLC Media Player等がDLNAに対応している。 その他、一部テレビやプレイステーション等からも参照可能。

もっとも、PCやスマートフォンならばSamba経由でマウントしてしまうほうがよっぽど扱いやすいので、DLNA自体の出番は少ないかもしれない。
Google HomeやAmazon Echo等のスマートスピーカーで直接再生できるようになれば、もう少し活用のしがいもあるだが...

2020-01-18

OrangePi WinにSambaを入れてファイルサーバーにする

OrangePi Winへ最新のArmbianをクリーンインストールしたので、ちまちまと環境再構築を行っている。
今回は、NTFSファイルシステムのUSBハードディスクを繋いで、簡易ファイルサーバーにする手順をメモ。

USBハードディスクを起動時に自動マウント

据え置きでつけたり外したりすることがないならfstabに追記してしまうのが楽。割当先が変わってしまっても良いようにHDD固有のUUIDを指定する。
UUIDを調べるにはblkidコマンドが手っ取り早い。

$ sudo blkid
/dev/mmcblk0p1: UUID="df60a59a-dc75-4ca4-9a17-c546acbb03f3" TYPE="ext4" PARTUUID="e6de6566-01"
/dev/zram0: LABEL="log2ram" UUID="297abf0b-bd2e-4f58-a031-424e6c752837" TYPE="ext4"
/dev/sda1: UUID="D6BEABF3BEABCA77" TYPE="ntfs" PARTLABEL="Elements" PARTUUID="4dd64d94-0369-4714-a4b6-6bdf04b56b62"
/dev/zram1: UUID="924853f6-4a2d-4b88-b93b-bdd289a81d77" TYPE="swap"
/dev/mmcblk0: PTUUID="e6de6566" PTTYPE="dos"

/dev/sda1がUSBハードディスクなのでUUIDは"D6BEABF3BEABCA77"だとわかる。

マウント先を作ってfstabに追記。
今回のハードディスクはNTFSファイルシステムを使用しているため、ntfs-3gを使用。uidgidにはマウント時に所有権を与えるユーザーを指定する。

$ sudo mkdir /mnt/usbhdd
$ sudo emacs /etc/fstab

UUID=df60a59a-dc75-4ca4-9a17-c546acbb03f3 / ext4 defaults,noatime,nodiratime,commit=600,errors=remount-ro 0 1
tmpfs /tmp tmpfs defaults,nosuid 0 0
UUID=D6BEABF3BEABCA77 /mnt/usbhdd ntfs-3g defaults,iocharset=utf8,uid=1000,gid=1000,umask=0022 0 0

再起動するかmount -aで反映させる。

Sambaをローカル認証で使用

aptでインストール。

$ sudo apt install samba

Linuxユーザーを作成してSambaへ登録。ユーザー名とパスワードはWindowsと合わせておくと楽。

$ sudo adduser USERNAME
$ sudo pdbedit -a USERNAME

共有を追加してサービスを再起動。

$ emacs /etc/samba/smb.conf

...

[share]
  comment = USB Harddisk
  path = /mnt/usbhdd
  browseable = yes
  read only = no
  writable = yes
  force user = 1000
  create mode = 0755
  directory mode = 0755

# ゲスト共有用
;  guest only = yes
;  guest ok = yes


$ sudo service smbd restart

以上。

Windows10 Creators Updateの留意事項

Windows 10 Creators Update以降、SMB1.0と認証なしゲスト共有はセキュリティリスクの懸念からデフォルトで無効化されているので使用しないようにする。

どうしても必要な場合は...

SMB1.0は「Windowsの機能の有効化または無効化」からインストールできる。

ゲスト共有は、グループポリシーの「コンピューターの構成 > 管理用テンプレート > ネットワーク > Lanmanワークステーション > 安全でないゲストログオンを有効にする」または、レジストリ「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\AllowInsecureGuestAuth」で設定できる。

2020-01-15

mDNSはマルチキャストなDNSだ

大事なことなのでメモ。ルーターを跨いで名前解決するには、ルーターのマルチキャストを有効にすること。

有線LANと無線LANの混在環境で、同じネットワークなのに一部の機器からはmDNSで名前解決できない。無線LANで繋いだときだけ名前解決できる等。

それってルーターでとめられてませんか。

フレッツ光のルーターPR-400KIでそれは起こりました。

マルチキャスト設定は、詳細設定の高度な設定にある。なかなかの場所にあるね。

NTTさんも、もっとええルーターに交換してくれんかな。
こっちも好きで更に2台もルーターぶら下げとるわけやないんやで。

2020-01-12

OrangePi WinへArmbian Bionicをクリーンインストール

面倒なので放置していたが、OrangePi Winへ最新版のArmbianをクリーンインストールすることにする。
インストール自体は、SDカードにイメージを書き込んで電源ONするだけなので、通常のPCとくらべてもあっけないほど簡単に終わる。

準備するもの

  • OSインストール用のTFカード(microSDカード)。最低でも2GBは欲しい。
  • TFカードを読み書きできるPC
  • HDMIケーブル/ディスプレイ/USBキーボード。(最初からリモートで行う場合は不要)

OSイメージの準備

OSイメージの準備はPCで行う。
TFカードにOSイメージを書き込むだけなので、WindowsでもMacでも、なんでもいい。今回は手近にあったUbuntuPCを使用した。

armbian公式からイメージファイルをダウンロード。
ubuntuベース(Armbian Bionic)かdebianベース(Armbian Buster)かを選べる。
また、ダウンロード方法もTorrentと直接ダウンロードを選べる。ただ、直接ダウンロードはかなり遅いので環境が許すならTorrent使用を推奨。

ダウンロードしたファイルは7zipで圧縮されているので展開しておく。

$ 7z e Armbian_19.11.6_Orangepiwin_bionic_current_5.4.7.7z

イメージの書き込みにはEtcherが推奨されてる。Linuxなのでddコマンドでもよいが、Etcherを使用するのが簡単。

$ wget https://github.com/balena-io/etcher/releases/download/v1.5.70/balena-etcher-electron-1.5.70-linux-x64.zip
$ unzip balena-etcher-electron-1.5.70-linux-x64.zip
$ chmod +x balenaEtcher-1.5.70-x64.AppImage 
$ ./balenaEtcher-1.5.70-x64.AppImage

imageを選択してFlash!
SDカードがうまく自動認識されない場合はlspcilsusbなどしてみると認識する場合がある。

うまく焼けたらマウントし直して、必要なファイルを追加しておくと初期設定がスムーズに進む。ext4ファイルシステムなので、ubuntuならそのまま読み書きできるはず。

Armbianを起動

HDMIケーブルでディスプレイを接続、USBキーボードを接続、TFカードを挿入、電源ボタンをON。
SSHサーバーが有効なので最初からリモート経由でもよいが、対面で行ったほうがトラブルも発生しない。

Linuxの起動メッセージが終わり、無事に起動したらrootユーザーでログインする。

login: root
password: 1234

ログインするとrootパスワードの変更、一般ユーザーの作成を聞かれるので答える。

初期設定

初期設定には、設定用のツールが用意されているので、そちらを使用するとググる手間が省ける。
最低限、タイムゾーンやネットワークの設定を行うとよいだろう。

$ sudo armbian-config

ここまでで基本的なセットアップは終了。あとはやりたいことに応じて好きにすればOK。

リリース情報はUbuntuのものをそのまま使用しているようだ。

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS"

その他

mDNS

ホスト名.localアクセスできるようにmDNS関連を入れておく。

$ sudo apt install avahi-daemon libnss-mdsn

GPIO

/sys/class/gpioの仮想ファイルを直接いじってももちろん良いけど、WiringPiを入れておく。

$ sudo apt install build-essential

$ git clone https://github.com/OrangePiLibra/WiringPi.git
$ cd WiringPi
$ sudo ./build OrangePi_A64
$ sudo ./build OrangePi_A64 install

$ gpio readall
 +-----+-----+----------+------+---+-Orange Pi Win/Win+ +---+---+------+---------+-----+--+
 | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
 +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
 |     |     |     3.3v |      |   |  1 || 2  |   |      | 5v       |     |     |
 | 227 |   8 |    SDA.1 |   IN | 0 |  3 || 4  |   |      | 5V       |     |     |
 | 226 |   9 |    SCL.1 |   IN | 0 |  5 || 6  |   |      | 0v       |     |     |
 | 362 |   7 |   GPIO.7 |   IN | 0 |  7 || 8  | 0 | OUT  | S_TX     | 15  | 354 |
 |     |     |       0v |      |   |  9 || 10 | 0 | OUT  | S_RX     | 16  | 355 |
 | 229 |   0 |     RxD3 |   IN | 0 | 11 || 12 | 0 | OUT  | GPIO.1   | 1   | 100 |
 | 228 |   2 |     TxD3 |   IN | 0 | 13 || 14 |   |      | 0v       |     |     |
 | 231 |   3 |     CTS3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO.4   | 4   | 361 |
 |     |     |     3.3v |      |   | 17 || 18 | 0 | IN   | GPIO.5   | 5   | 68  |
 |  98 |  12 |     MOSI |   IN | 0 | 19 || 20 |   |      | 0v       |     |     |
 |  99 |  13 |     MISO |   IN | 0 | 21 || 22 | 0 | IN   | RTS3     | 6   | 230 |
 |  97 |  14 |     SCLK |   IN | 0 | 23 || 24 | 0 | IN   | CE0      | 10  | 96  |
 |     |     |       0v |      |   | 25 || 26 | 0 | IN   | GPIO.11  | 11  | 102 |
 | 143 |  30 |    SDA.2 |   IN | 0 | 27 || 28 | 0 | IN   | SCL.2    | 31  | 142 |
 |  36 |  21 |  GPIO.21 |   IN | 0 | 29 || 30 |   |      | 0v       |     |     |
 |  37 |  22 |  GPIO.22 |   IN | 0 | 31 || 32 | 0 | IN   | RTS2     | 26  | 34  |
 |  38 |  23 |  GPIO.23 |   IN | 0 | 33 || 34 |   |      | 0v       |     |     |
 |  39 |  24 |  GPIO.24 |   IN | 0 | 35 || 36 | 0 | IN   | CTS2     | 27  | 35  |
 | 101 |  25 |  GPIO.25 |   IN | 0 | 37 || 38 | 0 | IN   | TxD2     | 28  | 32  |
 |     |     |       0v |      |   | 39 || 40 | 0 | IN   | RxD2     | 29  | 33  |
 +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
 | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
 +-----+-----+----------+------+---+-Orange Pi Win/Win+ +---+------+----------+-----+-----+

Armbianについて

少し触った感じでは以前のxenialベースの時のような変なクセもなくなって扱いやすくなった気がする。
有線LANが1Gbpsでリンクしない問題は解消されていた。