モダンなディレクトリインデックス「h5ai」を導入してみた

経緯

  • img.example.comみたいな感じで画像を貯めておける場所がほしい
  • 場所は用意出来たけどブラウザから見るとデフォルトのダサいインデックスが出てきてしまう
  • 調べたらこれが出てきた

というわけで使ってみることにしたh5ai

h5aiとは

h5ai is a modern file indexer for HTTP web servers with focus on your files. Directories are displayed in a appealing way and browsing them is enhanced by different views, a breadcrumb and a tree overview. Initially h5ai was an acronym for HTML5 Apache Index but now it supports other web servers too. (公式サイトより引用)

HTML5 Apache Indexの略だったけど今は他のhttpサーバでも使えるらしい。

導入する

nginxでの導入手順は

  1. 公式サイトから最新版(執筆当時は0.26.1)をダウンロードして、設置したいディレクトリに解凍。_h5aiディレクトリが出てくる。
  2. nginx.confもしくは所定の設定ファイルのserverディレクティブに
    index index.html index.php /_h5ai/server/php/index.php;
    を設定。
  3. _h5ai/server/php/index/index.php
    define("PASSHASH", "da39a3ee5e6b4b0d3255bfef95601890afd80709");
    ハッシュ値を編集する。これは設定ページを開くためのパスワードで、デフォルトでは空のハッシュ値になっている。www.sha1.czなどでハッシュ値を生成して置き換える。

これで、_h5aiディレクトリを設置したディレクトリにアクセスすればデモページのような表示になっているはず。

細かい設定

  • _h5ai/index.htmlから設定ページに飛べる。画像・動画・PDFなどのサムネイル機能があるが、有効にするにはそれぞれ別のソフトウェアが必要。
  • _h5ai/conf/options.jsonから直接設定が変更できる。標準ではURLをQRCode化して表示する機能があるが、要らなかったのでここから無効にした。
  • 上記の設定ファイルと、同階層にあるtypes.jsonを併せて編集して、新しい拡張子を登録してプレビューを有効にしたりできる模様。試しにWebP形式を登録してみたところ、ブラウザ自体が対応していれば正常にプレビューされた。ただ、サムネイル生成はできなかった。

スクリーンショット

f:id:aiwas:20170413215024p:plain

感想

導入も簡単、設定ファイルもJSON形式なのでとても易しいところが良かった。httpサーバでちょっとしたファイル置き場を作るときには便利なんじゃないかと思った。

これを書いている今、留年確定まで残り17時間を切っているががんばりたいと思う。

Debian + Chinachu + PT3 で録画マシンを建てた

発端

録画マシンを建てようという考えは1年前に引越した当初からあったのだが、資金繰りなどの事情もあり、とりあえずPT3だけを購入しメイン機で録画していた。当然起動し忘れなどもあって録画ミスも多かった。
そこで今回の年始に得たお年玉臨時収入でパーツを調達し、録画専用機を組むことにした。

ちなつの動く城 写真はC86で七森中録画研究会より頒布された『ちなつの動く城』。

スペック

項目 詳細
M/B&CPU ASRock Q2900-ITX & Intel Pentium J2900@2.41GHz x4
RAM 4GB
カードリーダ SCR3310-NTTCom
OS Debian Wheezy(7.8) 64bit

Q2900-ITXはSoCでTDPが10Wと低く、常時起動に向いているので選択した。SATAポートが4つあるので、将来的にHDDを増設する際も心配がない。 OSはChinachuを使うのでDebianを選択。

ケースはFractal Design社製 NODE304(白)を購入した。3.5/2.5インチベイを最大6基使用可能なのがウリだったが、とにかくデザインに一目惚れしたので先に買っていたもの。

Debianをインストール

特に変なことをせずインストールした。KDE Plasma5を使ってみたかったのだが、まだtesting/unstableでも4.x系だった。

Chinachuをインストール

ここの通りにやる。途中、一度目はyasm>=1.2.0が必要ということで中断された。Wheezy(stable)では1.1.0までしか提供されていないので、backportsから取得する。sources.listに  

deb http://ftp.jp.debian.org/debian/ wheezy-backports main
deb-src http://ftp.jp.debian.org/debian/ wheezy-backports main

と追記してアップデート。apt-get install yasm -t wheezy-backportsで必要なバージョンのものが入る。その後もう一度インストールを実行すると通った。

Chinachuの設定

引き続き上記のページを参考に進める。
config.json.sampleには余計なチューナー(FSUSB2)のエントリもあるので削除しておく。チャンネル設定はデフォルトでは関東広域圏のものになっているので、必要に応じて変更する。
録画の保存先は、システム用のSSDとは別に3TBのHDDを用意してマウントしておいた/recに指定した。

その他必要なもの

  • PT3ドライバ … 有志の方がGitHubで公開されている
  • recpt1 … 録画コマンド。様々な版があるらしいので、好きなものを使う。
  • arib25 … 復号化に使う。がんばって入手。
  • SC関連 … B-CASカードを認識させる。全てapt-getで入るが、関連ライブラリの一つlibccidのWheezy(stable)にあるVerが1.1.0で止まっており、カードリーダSCR3310-NTTComを認識しない。ここを参考に対処する。

最後に

あくまで記録なので説明は適当。
まだとりあえず構築したという段階なので、今後運用していく上で何かあればまた書くかもしれない。

参考

Venue 8 Proを売却した

DELL Venue 8 Proは8インチのWindowsタブレットで、大学受験前の2014年1月に購入した。
もともと艦これしたり、適当にブラウジングしたりできればいいかという感じで購入したが、スタイラスペンを注文し忘れた結果品切れで入手が難しくなり、微妙に持て余す感じになっていた。
スペックは、

項目 詳細
CPU Intel(R) Atom Z3740D@1.33Ghz
RAM 2GB
ストレージ 64GB
OS Windows 8.1 (32bit)
解像度 1280x800

という感じ。 DELL公式通販では現在は新モデルが販売されており、だいたい¥23000くらいから購入できるが、今回のものは2013年末発売の旧モデル。
今回はじゃんぱら秋葉原4号店に持ち込んだ。買い取り上限価格は¥19000で、充電用ケーブル欠品と細かい傷などにより減額され最終的に¥17000での買い取りとなった。
購入時はOffice Personal付で¥39980なので、大体約42%のリターンということになる。
回収しきれなかった諭吉は、今後タブレット端末を買う際の勉強代ということで納得したいと思う。具体的には、周辺機器をケチるのは良くないということを教訓にしたい。
なお今回回収した資金は、懲りずにNexus 9に投資する予定。

某演奏会の手伝いをしてきた話

去る12月21日、某演奏会の手伝いをしてきた。 自分は今まで出演者としてしか参加していなかったので、スタッフの仕事については全くわからない状態だった。
そこで今回得られた知見を共有し、また来年以降に活かすために記録しておくこととする。

続きを読む

端末のスクリーンショットからスクフェスのカードを切り出すスクリプトを書いた

端末のスクリーンショットからスクフェスのカードを切り出すスクリプトを書いた話。

先日、友人を煽るためにUR・SRカードをリストアップしたページを作っていたのだが、端末で撮ったスクリーンショットをいちいち手作業で加工するのはどうにも面倒だ、ということで、自動化してみることにした。
普段自分が画像を編集するときはGIMPを使っているのだが、これにはScript-Fuというバッチ処理機能がある。
以前から気になってはいたのだが、別段使う機会がなかったのと文法が取っ付きにくそうだったのとで今まで触ったことがなかった。そこでいい機会なのでこれを使おうということになった。

Script-FuはSchemeというプログラミング言語の派生であるらしくやたら括弧が出てくる文法には目眩がしたが、3,4工程の簡単な処理ならほぼコピペでどうにかなった。
GIMPの各処理は関数(プロシージャ)という形で提供されており、Script-Fuはそれを順に呼び出して実際に処理をさせることになる。 あまり(邦訳の)資料がないようなので、覚え書き程度に簡単な手順を書いておく。

  1. GIMPを起動したら、メニューからフィルター>Script-Fuと進んでScript-Fu コンソールを起動する。
  2. 参照ボタンを押し、Script-Fu プロシージャブラウザーを起動する。
  3. 検索ボックスから適当に検索して行いたい処理に該当する関数を見つけ出す。
    ロケールを英語にして起動し、通常のメニューから処理の名前を調べるといいらしい)
    このとき、右側のボックスには関数が要求する引数とその型が書いてあるので参考にする。
  4. 適用ボタンを押すとScript-Fu コンソールのボックスに関数が引数を伴う形でコピーされるので、これをコピペして使う。

f:id:aiwas:20141122081016j:plain

なんやかんやで出来上がったスクリプトがこちら。

(define (script-fu-CardCut image layer)
        (gimp-image-rotate image 2)
        (gimp-image-resize image 1080 1520 0 -201)
        (gimp-layer-resize-to-image-size layer)
        (gimp-displays-flush)
) ;end of define

(script-fu-register
    "script-fu-CardCut"
    "<Image>/Script-Fu/CardCut"
    "Cut image to the size of cards"
    "aiwas"
    "Copyright 2014, aiwas"
    "Nov 19, 2014"
    "RGB*, GRAY*"

    SF-IMAGE        "Image"     0
    SF-DRAWABLE     "Drawable"  0
) ;end of register

文法を除けば、関数の名前は大体そのまんまなのであまり迷うことはない。
引数についてもプロシージャブラウザに表示される説明を読めばどうにかなる。

最後に実行方法だが、まずはスクリプト.scmファイルとして保存する。
これを.gimp-x.y\scripts\(x.yはバージョン)に配置する。自分の環境(Windows7 Professional 64bit)ではC:\Users\Username\配下にあった。 最後に、メニューバーからフィルター>Script-Fu->スクリプトを再読み込みを実行すると、メニューバーのScript-Fuの配下にスクリプトが出現する。スクリプトが正しくないと、再読み込みの時点でエラーが出る。

とまあこんな次第だが、今回はScript-Fuの存在を紹介するのが目的なので、細かな説明は省かせてもらった(というかできない)。
本当は上書きエクスポートの処理まで加えたかったのだが、今のところうまくいっていない。

ちなみに、実際に上のスクリプトで切り出した画像はここに置いている。