あっきぃ日誌

鉄道ブログのような技術系ブログのようななにか

Raspberry Pi TV HAT

ってのがリリースされたので、という話をraspi.jpに書いといたので見てね!!!!!

www.raspi.jp

こっちの記事はちょいおさわりした話。なんでもう持っているのかと言うのはもう毎度ですが、Raspberry Piモデレーターの太田さんのお手伝いです。

アンテナについて。変換コネクターは付属のものは日本では多分見かけないタイプのやつで、使えません。ただし、アキバとかでよく見るUSBワンセグチューナーの変換ケーブルが使えます。もしTV HATを使うならこのドングルを300円とかで買ってきてケーブルだけ使うみたいなやり方ができそうです。ロッドアンテナは、モノによるのかもしれませんが、なんか途中で出っ張っててつけられませんでした。

チップについて。SONYのCXD2880というものが使われています。SDRな方面だとRTL2832uというカニがポピュラーで、情報も豊富ですが、ツールもそれ用っぽいのであんまこのへんの情報は使えなさそうという感じです。SDR全然わからないんでもしかしたらなんかいけるのかもしれませんが。CXD2880自体はググるLinuxカーネルに取り込まれる感じのやり取りが見ることができます。なんかISDB-Tとか言う文字列が見えつつも問題があったらしく消えてしまってるのが気になります(別に普通にググって出てきただけなので……)。

ゆーてもなんか頑張れば見れたりするのかしらと思い、地デジの周波数で受信を試みましたがだめっぽそうです。以下はmumudvb( http://mumudvb.net/ )というツールで受信を試みた例。

$ cat chideji.conf
freq=539.143
bandwidth=6MHz
autoconfiguration=full

※539.143→テレ朝

$ sudo mumudvb -d -c ~/chideji.conf -s
MuMuDVB Version 1.7.3_20140822_master
 --- Build information ---
Built with CAM support.
Built with SCAM support.
Built with ATSC support.
Built with ATSC long channel names support.
Built with support for DVB API Version 5.4.
Built with support for DVB-T2.
---------
Originally based on dvbstream 0.6 by (C) Dave Chapman 2001-2004
Released under the GPL.
Latest version available from http://mumudvb.braice.net/
Project from the cr@ns (http://www.crans.org)
by Brice DUBOST (mumudvb@braice.net)

Info:  Main:  Full autoconfiguration, we activate SAP announces. if you want to deactivate them see the README.
Info:  Main:  Full autoconfiguration, we activate PAT rewriting. if you want to disable it see the README.
Info:  Main:  Full autoconfiguration, we activate SDT rewriting. if you want to disable it see the README.
Info:  Main:  ========== End of configuration, MuMuDVB version 1.7.3_20140822_master is starting ==========
Info:  Autoconf:  The autoconfiguration auto update is enabled. If you want to disable it put "autoconf_pid_update=0" in your config file.
WARN:  Main:  Can't create /var/run/mumudvb/channels_streamed_adapter0_tuner0: No such file or directory
WARN:  Main:  Can't create /var/run/mumudvb/channels_unstreamed_adapter0_tuner0: No such file or directory
Info:  Main:  Streaming. Freq 539143
Info:  Tune:  Using DVB card "Sony CXD2880" tuner 0
Info:  Tune:  Tuning DVB-T to 539143000 Hz, Bandwidth: 6000000
Info:  Tune:  FE_STATUS:
Info:  Tune:  Strength:      11687
Info:  Tune:  Strength:      11687
:
(中略)
:
Info:  Main:  Card not tuned after timeout - exiting

gqrx( http://gqrx.dk/ )っていうGUIで波形とか見られるツールもあるんですが、これはデバイスの選び方がわからないと言うか多分対応していないです。ただ、Raspberry Pi向けにdebパッケージを配ったりしててラズパイフレンドリーな雰囲気を感じるので、そのうち対応してくれたら道がひらけそうな感じもしています。

FMラジオとか聞けるのかしら。なんかナイスアイデアがあればぜひ。

紙っぽく曲がる電子ペーパーを買ってみた

WaveaShareから新しい電子ペーパーが発売されていたのでdx.comからポチポチしてしまいました。は~また増えちゃったよと思っていたところ、運悪くWaveShare版3カラー(赤)電子ペーパーのフレキシブルケーブルを切ってしまいました……。なのでプラマイゼロです。

電子ペーパーは、ボードからケーブルを外すときに留め具を外し忘れていて、引っ張ったらケーブルが切れて死亡しました。。幸い赤系のボードはInky pHATがあるので困りはしませんが、悲しい。

f:id:Akkiesoft:20181017135920j:plain:w480

そして新しい電子ペーパーがこちら。出荷時の画像データヤバないですかね?

f:id:Akkiesoft:20181017140038j:plain:w480

裏面。カッコの意味は、初代のカッコなしは白黒、(B)は冒頭で破壊報告した赤、(C)は黄色、(D)が今回の白黒です。初代と比較すると解像度が250x122から(B)と(C)に合わせた212x104に変わっている点ですが、さらなる特徴が……

f:id:Akkiesoft:20181017140108j:plain:w480

曲がる(!)

f:id:Akkiesoft:20181017140303j:plain:w640

ついに曲げられる電子ペーパーがラズピッピで遊べるようになったワケです。すごいですね。

サンプルスクリプトはメーカーのサイトからダウンロードできます。サンプルの中には出荷時のヤバげな画像を含むスクリプトなどが含まれています。ところで初代のサンプルも改めて落としてみたら、スクリプトが洗練されていて扱いやすくなっていました。えらい。

2.13inch e-Paper HAT (D) - Waveshare Wiki

購入時にペーパーの型番自体は同じだったので、他ボードを使い回しできるだろうと予想していて、今回はそれこそ赤ペーパーのボードを使い回すつもりでボードなしの電子ペーパーのみで購入していたのですが、赤ペーパーを壊してしまったので、そのまま付け替えとなりました。両面テープで貼り付ければきれいですが、そうするとフレキシブルの意味がなくなるので悩ましいですね。

自分でコソコソ作って使っていた、Inky pHATのライブラリにかぶせてWaveShare系のボードでも使えるようにするライブラリも色コードを適宜直せばそのまま使えることが確認できました。これならわりと簡単。

f:id:Akkiesoft:20181017141108j:plain

電子ペーパーだけだと10ドルちょっとで買えるので、↑の値札みたいに常時書き換えないのであれば、ペーパーだけ複数持って、書換のときだけつなぐ運用のほうがかさばらなくて良いかもとかは思いました。

WaveShareの電子ペーパーシリーズ、この次は何が出るかしら。そろそろ緑とか青もほしいなー(チラチラ

こくだランド同人作品がとらのあなで委託始まってます。

先週の技術書典5のときにとらのあなで委託したEJECTO、Ejectタオル、ラズピッピいじり3がとらのあな秋葉原店Aで販売開始されています。

news.toranoana.jp

今日早速見に行ったのですが、ご丁寧にもとらのあなのエンジニアさんがひとつひとつPOPを書いてくださっていて、とても嬉しかったです。ありがとうございます。

通販の方はまだ始まっていないようで、在庫はバツのようです。委託した量が少ないからかも。(16日追記)通販の販売も始まりました。

ec.toranoana.shop

なお、COMIC ZINのほうは見つけ方がいまいちだったのか秋葉原店での陳列は確認できなかったので、確実にあるといえるのは新宿店のみになりそうです。

MacPortsをやめてHomebrewにしたけどMacPortsに戻ってmikutter環境作り直した話

わたしはmikutterをまともに使えるのでMacPorts派なんですが、XQuartzもリリースされなくなって久しく、どうもMacPortsのリリースを使えということのようですが、そうするとmac-uimの調整が面倒そうだったので、Homebrewに移行してみました。

Homebrewは昔からmikutterとの相性が悪いと言うかGTK周りが微妙に不安定で使い物にならない印象(個人の感想です)だったのですが、昨今はXQuatrzなしでも動いてIMEMacで使用しているものがそのまま動くっぽいと聞いていたので期待していたのですが……だめでした。インストールとmikutter環境の整備自体はさっくりできたんですが、mikutterのウィンドウが非アクティブの間プロセスがスリープしたような状態になっていて、ウィンドウがアクティブになると我に返ったようにTLが流れ出すというもの。なんやこれ使い物にならんやんけェ!

というわけでMacPortsにカムバックです。が、これはこれでつまづいたのでメモ。

MacPortsのインストールとgtkのインストールは難なく。あと、XQuartzはmac-uimの調整を頑張るという意味でMacPorts版をインストール。

Rubyを入れてmikutterのbundleをしていたところでエラー。cairoのところで引っかかりました。

akkie@Soful-usb:~/mikutter (master) $ gem install cairo
Building native extensions. This could take a while...
ERROR:  Error installing cairo:
	ERROR: Failed to build gem native extension.

    current directory: /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/cairo-1.15.14/ext/cairo
/Users/akkie/.rbenv/versions/2.5.1/bin/ruby -r ./siteconf20181013-80742-1d89nxg.rb extconf.rb
checking for GCC... yes
checking for Win32 OS... no
checking for cairo version (>= 1.2.0)... yes
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
	--with-opt-dir
	--without-opt-dir
	--with-opt-include
	--without-opt-include=${opt-dir}/include
	--with-opt-lib
	--without-opt-lib=${opt-dir}/lib
	--with-make-prog
	--without-make-prog
	--srcdir=.
	--curdir
	--ruby=/Users/akkie/.rbenv/versions/2.5.1/bin/$(RUBY_BASE_NAME)
	--with-pkg-config
	--without-pkg-config
	--with-override-variables
	--without-override-variables
/Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:299:in `parse_pc': .pc for xproto doesn't exist. (RuntimeError)
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:196:in `declaration'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:210:in `collect_cflags'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:145:in `cflags'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:215:in `block in collect_cflags'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:214:in `collect'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:214:in `collect_cflags'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:145:in `cflags'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:212:in `block in collect_cflags'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:211:in `collect'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:211:in `collect_cflags'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:145:in `cflags'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:212:in `block in collect_cflags'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:211:in `collect'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:211:in `collect_cflags'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:145:in `cflags'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:215:in `block in collect_cflags'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:214:in `collect'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:214:in `collect_cflags'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:145:in `cflags'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:212:in `block in collect_cflags'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:211:in `collect'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:211:in `collect_cflags'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:154:in `cflags_only_other'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:475:in `cflags_only_other'
	from /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pkg-config-1.3.1/lib/pkg-config.rb:522:in `have_package'
	from extconf.rb:52:in `required_pkg_config_package'
	from extconf.rb:60:in `<main>'

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/extensions/x86_64-darwin-17/2.5.0-static/cairo-1.15.14/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/cairo-1.15.14 for inspection.
Results logged to /Users/akkie/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/extensions/x86_64-darwin-17/2.5.0-static/cairo-1.15.14/gem_make.out

pkgsrcのxproto.pcがないとのこと。しらべたところ、/opt/local/lib/pkgsrcと/opt/local/share/pkgsrcの2箇所に.pcファイルが分散していて後者を参照できていない様子だったので、.bash_profileに以下を追記してgot kotonaki。:$PKG_CONFIG_PATHこそつけていますが、echoしたら何もなかったです。念の為です。

export PKG_CONFIG_PATH="/opt/local/lib/pkgconfig:/opt/local/share/pkgconfig:$PKG_CONFIG_PATH"

libidnもMacPortsでlibidnを入れたり/opt/localを指定してgemをインストールする必要があるので以下の通りやっていきます。

$ sudo port install libidn
$ gem install idn-ruby -- --with-idn-dir=/opt/local

MacUIMは https://github.com/e-kato/macuim/releases から最新とMacUIM 0.6.16-2とMacUIM.appを持ってきてインストールした後にMacUIM.appを/Library/Input Methodsに放り込みます。

その他設定はあひるさんが私の過去の記事をアップデートしたものを用意してくれているのでそれを参考にやりますが、plistファイルは~/.MacOSディレクトリ以下に置いて良さそうなのでそうしました。

github.com

MacPorts版向けのmac-uimの調整。そのままuim-ximを動かすとコケます。

akkie@Soful-usb:~ $ /Library/Frameworks/UIM.framework/Versions/Current/bin/uim-xim &
[1] 866
dyld: Library not loaded: /usr/X11/lib/libXext.6.dylib
  Referenced from: /Library/Frameworks/UIM.framework/Versions/Current/bin/uim-xim
  Reason: image not found
[1]+  Abort trap: 6           /Library/Frameworks/UIM.framework/Versions/Current/bin/uim-xim

が、libXext.6.dylibは/opt/local/lib/libXext.6.dylibにあるようなので、/usr/X11を/opt/localに向ければOK。大変そうと思いきや大したことなかった。

akkie@Soful-usb:~ $ ls -l /usr/
total 0
lrwxr-xr-x    1 root  wheel      8  9 26  2017 X11 -> /opt/X11
lrwxr-xr-x    1 root  wheel      8  9 26  2017 X11R6 -> /opt/X11 ←こいつはsudoでも消えなかったので無視
akkie@Soful-usb:~ $ sudo rm -rf /usr/X11
akkie@Soful-usb:~ $ sudo ln -s /opt/local /usr/X11
akkie@Soful-usb:~ $ /Library/Frameworks/UIM.framework/Versions/Current/bin/uim-xim
uim <-> XIM bridge. Supporting multiple locales.
Using full-synchronous XIM event flow
(動いたのを確認したらCtrl+Cで止める)

これでひととおりMacPortsなmikutterが復旧しました。MacPorts版のXQuartzはオフィシャルのパッケージよりも新しいので、これは積極的に切り替えても良さそうな気がしました。Homebrewもプロセスがスリープするみたいなあの挙動がなければまあ良かったんですけどねえ。あと、「mikutterではIMEの切り替えは(MacUIMの)Shift+Space」という癖が完全に定着してしまっていて、Homebrewで普通に英数/かなで切り替えるという操作をめっちゃ失敗している自分に笑ってしまいました。もとに戻ってめっちゃ安心して草。

技術書典5にサークル参加した

先週末の3連休はOSC2018 Kagawaで四国を旅した直後に技術書典5というハードなスケジュールだったのですが、台風がそれてくれたおかげでなんとか無事に完走できました。香川レポートも後日(と行って書かないパターンは多い)。というわけで技術書典5のレポートです。

技術書典5のサークル参加は私の既刊2種(EJECTOとラズピッピいじり3)とEjectタオル、mikutterの薄い本2種の計5種を頒布してきました。EJECTOは勢い余って2刷目に突入。気長に売っていきますといいつつ1箱を事前発送。mikutterの薄い本もVol.14はmikutterに限らずTwitterクライアント作者たちが勢揃いで大変エモい一冊とあって、どれだけの人が買い求めに来るのかわからなかったので、預かっている1箱をほぼそのまま事前発送。ラズピッピいじりも入り切らなかったので小さい箱一つで事前発送。と、3箱も事前に出しておりました……。

f:id:Akkiesoft:20181011225922j:plain

ブース展開後の様子。今回も値札を電子ペーパーでやろうとしたのですが、なんか滲んでしまってうまく出力できず断念。

f:id:Akkiesoft:20181011230022j:plain

代わりにMicro Dot pHATのいつものブース表示とScroll pHAT HDをiPhoneからその場でSSH接続してPixiv Pay OK!なんて流すのを作ったりして派手にしてみました。

f:id:Akkiesoft:20181011230156j:plain

今回はPixiv Payのレジ機能を使用してみましたが、紙よりはるかに正確で鼻水ふくレベルだったので、次回以降もコレで行くと思います。なのでPixiv Payはいつでも行けます。たぶん。今回の売りアージュはこんな感じで記録されました。

f:id:Akkiesoft:20181011230325p:plain

mikutter以外自分のはぜんぶ既刊だったり、Twitterの更新を8月でやめた都合告知も特にしていなかったので、さすがにちょっと予想より売上少なめで、影響が出たかなあ?といった感じです。でもTwitter告知やらないです。というか冬コミは新刊出せるようにしたいですね(なおネタは……)。

一方で一般参加者はなんと1万オーバー。カウント方法が気になるところですが、整理券を配っていたあたり、その方法で最後までやっていたとするとガチだと思うので半端ないですね。自分の買い周りも、もともとチェックしてなかったのでどうでもいいんですが、人が多すぎて出るのが面倒になり、14時くらいにやっと軽く見に回った程度でした。なので買い物は結構控えめになりました。

頒布をしていて意外だったのは、技術書典の後払い決済システムを利用しようとする一般参加者がけっこう多かった点。ブースで聞かれた回数は5〜6回なので、自分の売上の件数を思えばなかなかの頻度だったと思います。ほとんどの方は現金決済に切り替えてくれましたが、たしか1件はじゃあいいですと言われて機会損失になってしまったので、次回は導入せざるを得ないかなあ、と思っているところです。やってもいいんですが、売り手としては決済手段を増やしていくぶんだけ手間が増えていくので……。PixivPayのレジに派どういう扱いでつっこめばいいの?とかね?悩ましいです。

同人ショップ周りの話。今回はとらのあなも出展して開発系のアピールと委託の受付をしていました。出展といえばとらのあなさんは今月末のOSC2018 Tokyo/Fallも出展されますし、ブースではまさにその宣伝もされていてうれしくなったので、中途半端に中の人ながらちょっとだけご挨拶させていただきました。委託の方も案内を聞かせてもらいつつ「店頭に並べる予定はありますか」と聞いたらアキバでコーナーを作りたいとのことだったので、委託を決めました。既刊2種とタオルもちらのあな専売扱い(!)で委託したので、そのうち通販や店頭で買えるようになるかもです。

ちょっと前だとメロンブックスがブースを回って営業していましたが、同じ質問をしたら基本は通販(店舗にコーナーを構える予定はなし)とのことだったので見送らせてもらったことがあります。今回は出展も営業さんも見かけず、個人的にはメロブの技術系同人誌の取扱に対する熱意の差が他所とけっこう出たなあと感じています。わたしの普段の買い物はメロブ率高いので結構惜しい気持ちです。

もともと技術系同人誌の扱いが先行していたCOMIC ZINは今回も引き続き参加されており、朝イチで今の在庫数をお知らせいただいていたので、帰り際に持ち帰りの箱に詰めきれなかったぶんだけ委託の追加をお願いしました。タオルは委託しませんでしたが、本は引き続きZINで購入できます。ただし在庫は追加後も一桁冊なのでお早めにどうぞ。

おかげさまで段ボールの持ち帰りは1箱で済んだので、キャリーカートに載せて引っ張って帰ってきました。

一日お手伝いいただいたunicのひと、ばんごはんにもつなべに誘ってくれたhasegawさん、ありがとうございました!