Debian に ATDE と同じような tftpd を立てる

環境

インストール

tftp サーバーはいくつかあるが、tftpd-hpaが一番簡単そなのでこれをチョイス

# apt install tftpd-hpa

設定

/var/www/html/ に置いたファイルにアクセスしたい場合は、 /etc/default/tftpd-hpa を以下のように書き換える。

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/www/html"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-c -s"

サービスをリスタート

# systemctl start tftpd-hpa.service

終了

これで Armadillo の hermit から tftpdl で Debain 上のファイルにアクセスできるようになった :)

GStreamerからブラウザに簡単にストリーム配信をする。

GStreamer アドベントカレンダー Day 19 の記事です。

f:id:shocrunch:20151219213811p:plain

こんな感じにストリーム配信ができます。 ただ、「簡単さ」と取るがゆえに「遅い」です。

「遅い」というのは「フレームレートが低い」よりも「遅延が大きい」ほうです。

遅延はサイズにもよりますが、以下のGistに書いたような小さな画像サイズなら、 1 秒以上 3 秒未満といったところでしょうか。

用途によってはこれで十分という説も?笑

GStreamer ハンズオン

GStreamer

  • 必須環境

準備

sudo apt-get install gstreamer \
gstreamer1.0-tools \
gstreamer1.0-alsa \
gstreamer1.0-clutter \
gstreamer1.0-libav \
gstreamer1.0-libav-dbg \
gstreamer1.0-nice \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-bad-dbg \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-base-apps \
gstreamer1.0-plugins-base-dbg \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-good-dbg \
gstreamer1.0-plugins-ugly \
gstreamer1.0-plugins-ugly-dbg \
gstreamer1.0-pulseaudio \
gstreamer1.0-tools \
gstreamer1.0-vaapi \
gstreamer1.0-x \
libgstreamer-plugins-bad1.0-0 \
libgstreamer-plugins-base1.0-0 \
libgstreamer-plugins-base1.0-dev \
libgstreamer-vaapi1.0-0 \
libgstreamer-vaapi1.0-dev \
libgstreamer1.0-0 \
libgstreamer1.0-0-dbg \
libgstreamer1.0-dev

コピペする

カラーバーを表示

gst-launch-1.0 videotestsrc ! ximagesink

ひょいひょい動くボールを表示

gst-launch-1.0 videotestsrc pattern=18 ! ximagesink

Webカメラの映像を表示

gst-launch-1.0 v4l2src ! video/x-raw,framerate=30/1 ! videoconvert ! ximagesink

MP4 (動画) を映像だけ再生

gst-launch-1.0 filesrc location=input.mp4 ! h264parse ! qtdemux ! avdec_h264 ! videoconvert ! ximagesink

Kindle for PC を Debian/sid (amd64) で動かす

Kindle for PC を Debian/sid (amd64) で動かす方法を書いていきます。 これは一部の日本語が豆腐になるあなたにも有効な情報になるでしょう。

また、Debian/sid でやっていますが、現在の stable である Debian/Jessie でもいっしょです。

というより... Debian version に依存した話は出てこないので...

流れ

手順は 5 Step でとっても簡単

  • Kindle for PC のダウンロード
  • アーキテクチャの追加
  • 必要なパッケージのインストール
  • Kindle for PC のインストール
  • winetricks による font のインストール

作業は最後の Step を除いてほとんど terminal (端末) 上で行います。

手順の中で、以下の表示が出てきたら terminal にコピペするといいでしょう。

echo hoge

手順

Step1: Kindle for PC のダウンロード

Amazon からダウンロードしてきてください。

Step2: アーキテクチャの追加

Kindle for PC は 32bit バイナリらしく、wine64 では動きません。 そのため、wine32 を使う必要があります。

wine32 をインストールするには、dpkg --add-architectureをキメましょう。

sudo dpkg --add-architecture i386

追加後の update も忘れずに!!

sudo apt-get update

Step3: 必要なパッケージのインストール

  • インストールするパッケージ
    • wine32
      • 32bit 版の wine 本体
    • winetricks
      • wine のパッケージマネージャ
      • GUI でいろいろできるので便利

wine32 と winetricks のインストール

sudo apt-get install wine32 winetricks

これで、wine が入りました!

Step4: Kindle for PC のインストール

Kindle fot PC をインストールしましょう

まずは、Kindle for PC をダウンロードしたディレクトリに移動しましょう

cd ~/Download

↑これをコピペしてもムダってことはわかってね?

さて、Kindle for PC のインストール

wine32 KindleForPC-installer.exe

インストール出来ましたか??

おそらく、文字化け (文字が表示されない) など残念な状況でしょう。 とりあえず、Kindle for PC を終了させて terminal に戻りましょう。

もし、あなたが wine64 を使って Kindle for PC のインストールを 試みたことがある場合などはインストールに失敗するでしょう。

その時は、ホームディレクトリにある wine のディレクトリごと 消せばば解決できるかもしれません。(あなたはこれを望まないかもしれませんが...)

rm -rf ~/.wine

Step5: winetricks による font のインストール

さあ、最後の作業です。

wine に font をバシバシ追加していきましょう

といっても、gui でポチポチするだけなので簡単

winetricks --gui

Select the defalut wineprefix f:id:shocrunch:20150627233020p:plain

Install a font f:id:shocrunch:20150627233035p:plain

この画像と同じ場所にひたすらチェックを入れる f:id:shocrunch:20150627233041p:plain

最後に...

再度、Kindle for PC を起動すれば、正しく文字が表示されているはず!!

最高の Kindle Life を!

参考させていただいたサイト

http://linux.ikoinoba.net/index.php?mode=page&aim=winelinux.ikoinoba.net

myuon-myon.hatenablog.com

list から map に変換

これがもっとエレガントに簡単にならんもんだろうか???

(let [data '((1 2 3) (0 0 0) (1 2 3 4) (3 3 3) (3 2 3) (1 2 1))
      keyring '(:a :b :c :d :e) 
      _make-pair (fn [arg] (map #(list %1 %2) keyring arg))
      _conv-map  (fn [m [k v]] (assoc m k v))]
  (map #(reduce _conv-map, {}, %) (map _make-pair data)))
;=> ({:c 3, :b 2, :a 1} {:c 0, :b 0, :a 0} {:d 4, :c 3, :b 2, :a 1} {:c 3, :b 3, :a 3} {:c 3, :b 2, :a 3} {:c 1, :b 2, :a 1})

VimScriptの辞書型メモ

"Usage
"save -> :w
"exec -> :so %

" 定義
let dict={'foo':1 , 'hoge':2, 'good':3}
echo dict


" 追加
let dict['bad'] = 4
echo dict

" 2パターンの呼び出し方
echo "good: " . dict['good'] . ", bad: " . dict.bad


" 値を変更
let dict.foo = -1
echo dict

aptの履歴を参照する

aptのhistoryが/var/log/apt/history.logにまとめられています。

/var/log/apt/history.logの中身抜粋

:

Start-Date: 2015-03-19  19:05:58
Commandline: apt-get upgrade
Upgrade: libmpeg2-4:amd64 (0.5.1-6, 0.5.1-7), geoip-database:amd64 (20150209-1, 20150317-1), libgusb2:amd64 (0.2.2-1, 0.2.4-1), python-minimal:amd64 (2.7.8-4, 2.7.9-1), libtcl8.6:amd64 (8.6.2+dfsg-1, 8.6.2+dfsg-2), debconf:amd64 (1.5.55, 1.5.56), libicu52:amd64 (52.1-7.1, 52.1-8), openssh-server:amd64 (6.7p1-3, 6.7p1-4), openssh-sftp-server:amd64 (6.7p1-3, 6.7p1-4), cdbs:amd64 (0.4.128, 0.4.129), debconf-i18n:amd64 (1.5.55, 1.5.56), libxfont1:amd64 (1.4.99.901-1+b3, 1.5.1-1), libicu-dev:amd64 (52.1-7.1, 52.1-8), openssh-client:amd64 (6.7p1-3, 6.7p1-4), python:amd64 (2.7.8-4, 2.7.9-1), libpython-stdlib:amd64 (2.7.8-4, 2.7.9-1), tcl8.6:amd64 (8.6.2+dfsg-1, 8.6.2+dfsg-2), heroku-toolbelt:amd64 (3.28.6, 3.30.0), heroku:amd64 (3.28.6, 3.30.0), icu-devtools:amd64 (52.1-7.1, 52.1-8)
End-Date: 2015-03-19  19:06:10

Start-Date: 2015-03-22  17:04:34
Commandline: apt-get upgrade
Upgrade: libssl1.0.0:amd64 (1.0.1k-1, 1.0.1k-2), libgssapi-krb5-2:amd64 (1.12.1+dfsg-18, 1.12.1+dfsg-19), google-chrome-stable:amd64 (41.0.2272.89-1, 41.0.2272.101-1), libkrb5-3:amd64 (1.12.1+dfsg-18, 1.12.1+dfsg-19), vim-common:amd64 (7.4.488-5, 7.4.488-6), parted:amd64 (3.2-6, 3.2-7), tzdata-java:amd64 (2015a-1, 2015b-1), vim-gnome:amd64 (7.4.488-5, 7.4.488-6), libparted2:amd64 (3.2-6, 3.2-7), krb5-locales:amd64 (1.12.1+dfsg-18, 1.12.1+dfsg-19), vim-tiny:amd64 (7.4.488-5, 7.4.488-6), wget:amd64 (1.16-3, 1.16.3-2), vim-gui-common:amd64 (7.4.488-5, 7.4.488-6), heroku-toolbelt:amd64 (3.30.0, 3.30.3), libdatetime-timezone-perl:amd64 (1.75-2+2015a, 1.75-2+2015b), tzdata:amd64 (2015a-1, 2015b-1), openssl:amd64 (1.0.1k-1, 1.0.1k-2), heroku:amd64 (3.30.0, 3.30.3), libkrb5support0:amd64 (1.12.1+dfsg-18, 1.12.1+dfsg-19), libk5crypto3:amd64 (1.12.1+dfsg-18, 1.12.1+dfsg-19), strace:amd64 (4.9-2, 4.10-1), vim-runtime:amd64 (7.4.488-5, 7.4.488-6)
End-Date: 2015-03-22  17:04:49

パッケージのインストール・アンインストールについては、
shellのhistoryをgrepしても調べることができます。

しかし、同時にインストールされた依存パッケージなどはhistoryから調べることができません。

さらに、apt-get upgradeした後にterminalを閉じてしまうと、
なにどのバージョン上がったかがわからなくなります。

これらを調べることができるのが、/var/log/apt/history.logです。

aptでなにをしたかを振り返りたいときにはこれを参照するのが良さそうです。