Skip to main content

Posts about software

Stay at home

不要不急の外出自粛が求められている中、他の多くの方と同様、自宅で過ごす時間が長くなっている。

おかげで通勤が不要になり、通勤時間にとられていた時間が自分の好きに扱えるようになった。 同時に、通勤で消費していたカロリーの消費機会が失われてしまった。

そのせいもあり、この春の人間ドッグで、見事にメタボ検診に引っかかってしまった。 内臓脂肪を減らし、血圧を下げ、血中コレステロール濃度を下げ、腹囲と体重を減らしていく努力が、今の自分には切実に求められている。 そのためには食後血糖値上昇の山を低くし、カロリー収支をマイナスにし、脂肪を減らし筋肉量を増やしていかなくてはならない。 具体的な取り組みは以下。

  • 運動: 朝食後、始業時間までの間のウォーキング。
  • 食事: 夕食では野菜を多くとり、炭水化物を減らす。脂質を減らす。朝昼晩の三食。
  • できていないこと: 日次の体重測定

保健指導員におだてられながら、取り組みを続けていきたい。

そうは言っても、自宅でくつろぐ時間は何物にも代えがたい。そんなこんなで自宅のメディア視聴・聴取環境の充実をはかっている。

spotify

Linuxデスクトップで常時Spotifyアプリを立ち上げておいて、AndroidタブレットにインストールしたSpotifyアプリからコントロールするという使い方をしている。 音声はアンプを接続したRaspberry pi に Pulseaudio で飛ばしている。(スマホのスピーカーでずっと聞いていると耳が痛くなる。大きなスピーカーだと大丈夫。)

サブスク購入していないが、タブレット・デスクトップからの聴取の制限解除 があったおかげで、垂れ流しBGM としてとても使いやすくなった。 Spotifyは日本上陸前から待ちわびていて、上陸後すぐくらいから使ってきた。このアップデートはまじで嬉しい。CM有り、シャッフル必須であっても、無料で利用できるのは、すごく助かる。

minidlna

蓄積しているデータを何らかの upnp/dlna クライアントで再生できるように。

shairport-sync

オープンソースの AirPlay サーバ。iPhone のアプリの音声を大きなスピーカーで聞きたいときに。

Fire TV Stick 4K

Amazon Prime Video に加入していないし、4K ディスプレイは持っていない。けど、便利に使っている。 アプリストアからいろんなアプリを入れられる。Android系なので、アプリもそこそこそろっており、いろいろ使える。

ぶっちゃけ Youtube 見るのに最強。

nikola

Nikola is one of static site generator written in python3.

  • It supports some input formats include Markdown.
  • Theme is written in Mako or Jinja2. The user can use any existing theme or can create your own theme inherits from existing one.
  • The user can specify deployment procedure and run it.
  • Especially for Github pages, you can build the site, commit the changes, and push the output to github with one command.

As described in the footer of this page, I use it now.

This is a sample Dockerfile. The docker image will become about 353MB.

FROM alpine:latest

ARG version=8.1.3
ARG PIP_INDEX_URL
ARG PIP_TRUSTED_HOST

RUN apk --update --no-cache add py3-pip git bash openssh \
gcc musl-dev python3-dev libxml2-dev libxslt-dev libjpeg-turbo-dev \
&& rm -rf /var/cache/apk/* \
&& pip3 install nikola==${version} jinja2 ghp-import2 \
&& mkdir /tmp/nikola \
&& adduser -H -D docker

VOLUME ["/tmp/nikola"]
EXPOSE 80
USER "docker"
WORKDIR "/tmp/nikola"
CMD ["/bin/bash"]

The build command will be like shown below:

docker build --build-arg version=8.1.3 --build-arg PIP_TRUSTED_HOST=192.168.xxx.xxx --build-arg PIP_INDEX_URL=http://192.168.xxx.xxx:3141/root/pypi -t nikola:alpine -f Dockerfile.alpine .

eBook reader

漫画は読まない。

電子書籍の利点は、物理的な重さや容積を考慮する必要がないこと。何百ページの本でも好きなだけいつでもどこにでも持ち運ぶことができる。家に保管するスペースも必要ない。

よく言われる電子書籍の欠点として、万が一サービスが終了したら、買った本が読めなくなる、というのがある。 (物理的に紙の本を買ったとしても、汚したり紛失したり、最悪の場合焼失したりする可能性はあり、未来永劫手元に残ることが保証されるわけではない。) 未来永劫手元に残らなくてもよい本なら、サービスを利用する価値があるのではないかと思う。資格関連本など、墓場まで持っていかなくてもよいタイプの本は、意外と多いはず。 中期から短期的にサービスを受けることができる有料サービスで、優れたコンテンツを手軽に持ち運んで読むことができると捉えれば、電子書籍は合理的なのではないだろうか。

電子書籍では書き込みができないという短所もあるが、本当に必要なところだけノートに書き写すなりすればよいのではないかと思う。本に書き込んだことを繰り返し参照するという運用が、本当に効率的なのであれば、紙の本を使えばいいし、そうでないなら電子書籍で充分ではないかと思う。

電子書籍には紙の手触りがない、紙の本なら直感的にどのあたりに何が書いてあったか覚える、という意見がある。 例えばkindle の場合、好きなページに好きなだけしおりを設定することができる。電子書籍でも、自分で設定したしおりを頼りにすれば、好きなところに比較的簡単にたどり着けるのではないかと思う。

紙の本を全否定するのではないが、雑誌を切り抜いてスクラップしたりハードカバーの本を手元におきたいなど、紙の本がどうしても必要だという事情がないのなら、電子書籍を活用しないのはもったいない。 紙の本だと人に貸すこともできるし、不要になれば売り払うこともできる。

お菓子を食べながら読んでも、コーヒーをこぼしても、電子書籍コンテンツ自体は汚れることはない。 電子書籍端末は、気に入る端末が限られるので、大切に使わないと代わりになるものに出会えなくなる可能性もある。(買いたくなるような7インチタブレットがなかなか出てこない)

電子端末の持ち込みが制限される職場には持ち込むことができない可能性がある。

自分の場合、荷物を増やしたくないので、雑誌も書籍も物理的な本はあまり買わず、短期間で読みきるタイプの本の場合は図書館を積極的に利用するようにしている。

kindle

最大手のサービスなら、そう簡単にサービスが終わることはないと考え、自分はAmazon を利用している。 (極東の島国の企業に買収されるようなサービスでは安心して利用できない)

kindleは、専用端末は必ずしも必要ではなく、Androidやiosの普通に売られてるスマホやタブレットにアプリを入れて使うことができる。また、一つのアカウントで複数の端末を使うことができる。

Adobe Acrobat Reader

オープンソースソフトウェアに限らず様々な製品のドキュメントがPDF 形式で配布されている。 タブレット端末に入れて持ち運ぶと、手軽にどこでも快適に読むことができ、とても重宝する。

FBReaderPDF plugin

epubをはじめ、様々な形式に対応したドキュメントリーダー。 2つのPDF ファイルを切り替えながら読むためにAdobe リーダーとあわせて使っている。

青空プロバイダ縦書きビューア

自分は青空文庫の本を読むのにこれらを使っている。

かつて紙の文庫本を買って読んだ古典が(全てではないが)無償で読めるのは、感慨深い。

Perfect Viewer

様々な形式に対応したドキュメントリーダー。 電子書籍だけでなく、画像ファイルの閲覧にも対応している。

Tiny Tiny RSS

Tiny Tiny RSSは、フリーのサーバサイドRSSアグリゲータです。

利用するには、構築済みの方にアカウントを払い出してもらうか、自分でwebサーバ、dbサーバを構築・運用していく必要があります。

スマホのニュースアプリと比較して、RSSアグリゲータは、ニュースソースをお仕着せのものではなく自分で選択することができること、アプリ等が突然サービス終了して泣かされることがないことが利点です。

RSSアグリゲータといえば、数年前にgoogleのサービスが終了し、今度はYahoo!Japanのサービスが終了することになりました。 自前でサーバを動かしていれば、サービスの終了に怯える必要がありません。

データがサーバにある利点は、複数の端末から同じデータにアクセスすることができること、クライアント端末に問題があってもデータは安全なことです。 サーバ上のデータの安全性は、サーバの冗長度によります。

自分の場合は安価なVPSを借りて自前で構築・運用しています。もう随分前なのであやふやですが、構築自体は難しくなかったと記憶してます。再構築することがあれば、手順を記載したいと思います。

コンテンツはWebブラウザでアクセスすることもできるし、専用のクライアントソフトから見ることもできます。

スマホで動く専用のクライアントもいくつかあります。自分が使っているのは、以下の2つです。

iPhone版のほうが自分には使いやすい気がします(Androidが好きな自分としては非常に悔しいけど)。

If you get an error 'Your access level is insufficient to run this script' after you update tt-rss, temporary update your account settings.

$ sudo docker exec -it work_postgres_1 psql -U ttrss
# SELECT access_level FROM ttrss_users WHERE login = 'yourname';
# BEGIN;
# UPDATE ttrss_users SET access_level = 10 where login = 'yourname';
# SELECT access_level FROM ttrss_users WHERE login = 'yourname';
# COMMIT;

After update, set it back as before

# BEGIN;
# UPDATE ttrss_users SET access_level = 0 where login = 'yourname';
# SELECT access_level FROM ttrss_users WHERE login = 'yourname';
# COMMIT;
# \q

chronicle

chronicle

Markdown等のテキストファイルを、ブログ形式でhtmlファイルに変換するソフトです。 できたファイルを全てWebサーバに配置するだけで、(全世界に向けて)公開することができるようになります。

このサイトがまさにこれを利用しています。 (2020/07: I used chronicle to compile this web site for a long time. I found it has been superseded by a replacement application written in golang, called ephemeris. Taking this opportunity, I replaced it to nikola )

ブログといえばコンテンツをデータベースに保存しておいて、アクセスがあるたびに動的にhtmlファイルを生成する形のものが一般的です。 そのような場合は、webサーバ上でプログラムを実行する設定が必要となり、データベースにアクセスする権限が必要となります。

一方、chronicleのようなソフトの場合は、変換したhtmlファイルをサーバに置くだけでいいので、以下の利点があります。

  • 必要なのは公開するディレクトリへのアクセス権限だけ
  • アクセスがあるごとにファイルを生成する必要がないので、Webサーバにかかる負荷も少なくて済む

同様のソフトがたくさんある中で、chronicleを選んだ理由は、以下があげられます。

  • debian等でパッケージに入っている
  • Markdownで記載することができて、記載ルールが簡単
  • テンプレートが非常にシンプル
  • perlで動くので、追加で必要となるものが(少)ない

chronicleでも、他のソフトでできるのと同様に、使用するテンプレートを変えるだけで見た目を切り替えることができます。インストール時に数種類同梱されていますが、このサイトでは自分で作成したものを利用しています。 テンプレートは簡単なテキストファイルですので、htmlやcssの知識があれば容易に変更することができます。

サイトの見た目はテンプレートで決まるため、使うテンプレートを決めてしまえば、サイトを運用していく際にはコンテンツの内容のみを考えればいいという利点もあります。

remote access tool on android

Androidで動作するリモート接続ツールのご紹介。

ConnectBot

フリーのターミナルエミュレータです。

  • telnet、ssh。
  • ポート転送に対応。
  • 鍵認証に対応(ed25519対応)。

7インチ以上のタブレットを使用して横画面にして使えば、ソフトウェアキーボードを使うストレスはあるにしても、実用に耐えるのではないかと思います。

AndFtp

フリーのftpクライアントです。

  • ftpだけでなくsftp、scpでの接続も可能。
  • 鍵認証にも対応。

リモートとローカルファイルシステムの画面を簡単に切り替えながら作業することができます。 ワイルドカード表記を利用して表示するファイルを絞りこむ機能があり、同一ディレクトリに沢山のファイルがある場合にはすごく便利です。

ESファイルエクスプローラ

フリーのファイル管理ツール(エクスプローラ)です。

ローカルファイルだけでなく、(s)ftp、samba、webdav等、ネットワークファイルシステムにもアクセスできます。 自分は使ってませんが、Dropbox等のクラウドサービスに接続する機能もあります。

[リモートデスクトップツール]

タブレットには、rdpやvncのクライアントも入れてますが、ほとんど使うことがありません。使うようなことがあれば、書き足したいと思います。

development tools on android

Androidで動作する開発関連ツールのご紹介。

*Termux

Android で動作する terminal ソフト。bash 各種ソフトをインストールすることができる。 Pythonを入れることができる。 Android端末だけであれこれできる。

MGit

下記 SGit の開発は終了したようです。非常にありがたいプロジェクトなので残念でした。 その後を引き継いで別の方が開発を続けているものが MGit です。

sshを使う場合、パスフレーズつきの秘密鍵にも対応しているようです。

基本的な事柄ですが、commit等する前に、アプリの設定でユーザ名とメールアドレスの設定を済ませておかないとエラーとなります。

SGit

フリーのgitクライアントです。

Androidタブレット端末でこのサイトのメンテナンスをする際などに利用しています。

gitでできる全てのことに対応しているわけではないようですが、clone → add → commit → pushといった基本的なことは一通り実行できます。

https、sshなどに対応してます。 ssh鍵について、ソースコードをざっと眺めてみたところ、使っているライブラリの関係で、(本稿執筆時点では)dsaかrsaしか使えないようです。 また、パスフレーズについては対応予定となっており、今のところはパスフレーズ無しのものだけの対応のようです。ssh鍵を使う方は注意して確認してみてください。

Jota Text Editor

フリーのテキストエディタです。

現在は開発を終了しており、機能追加等の予定はないとのことですが、現状で問題なく使えるようになってます。

100万文字程度まで対応とありますが、「Alphabetで1MBytes」だそうで、通常はファイルサイズ制限で困ることは少ないのではないかと思います。 よく使う機能をボタンに割り当てることができます。初期状態では、コピペ系やアンドゥ、リドゥなどが割り当てられてます。

コードの色分け表示や自動インデント機能などはありますが、一方、デスクトップのエディタにあるような便利な機能はありません。 デスクトップと同じ作業をこなすことはできない可能性がありますが、簡易な作業なら充分対応可能だと思います。

my favorite desktop tools for windows

Windowsで動くお気に入りのデスクトップツールを二つ、紹介します。

Clock Launcher

Clock Launcherは、たくさんの機能が付属したフリーのランチャーアプリです。

ランチャー機能以外に、自分は以下のような機能を使用しています。

  • クリップボード管理
  • デスクトップ付箋
  • カレンダー
  • デジタル時計
  • タイマー

ランチャー本体を操作してもランチャーメニューを表示できますが、 自分は、デスクトップの何もないところをダブルクリックするとランチャーメニューが起動するように設定しています。

普通のアプリケーションだけでなく、ユーザ辞書ツール(imjpdct.exe)や、自家製バッチ等を登録する等、とても便利に使わせてもらってます。

Virtual Desktop for Win32

Virtual Desktopはフリーの仮想デスクトップソフトです。

現在の最新バージョン(0.95)では、Windows7までの対応となっています。

デスクトップの拡張だけでなく、いくつか便利な機能があります。

  • 指定したウィンドウの半透明化。
  • ウィンドウの位置やサイズを数値で表示。
  • ウィンドウのスナップ。

広大なデスクトップを必要としている方や、ウィンドウの見た目が整理されていると作業効率改善に繋がると考えている方にはおすすめです。

WinMerge

お気に入りの差分表示ツール、WinMergeのご紹介です。

WinMergeは、Windowsで動作する、フリーの差分表示、マージツールです。が、自分は差分表示機能しか使いこなしておりません。

こちらも、PortableApps で、WinMerge Portable としても配布されています。

日本語化している方がいらっしゃるので、私は、日本語版のほうを使用しています。

次のような機能、特徴があります。

  • 3ファイル(ディレクトリ)の比較も可能。
  • シンタックスハイライト。
  • 各種文字コードに対応。
  • プラグインによるエクセルファイルの比較。
  • バッチファイル出力機能。

以前は別のツールを使用していたのですが、諸事情あって、乗り換えることになりました。空白や改行コードの違い等を無視するか、比較するか、必要に応じて細かく指定することができるので、とても便利です。

差分表示をGitHub同様のカラースキーマに設定することができます。GitHubに慣れている方には良いのではないでしょうか。(自分はGitHubを使いこなしてはいませんが、自分には見やすいです。)

エクセルファイルの比較は思った以上に便利です。お勧めです。

PuTTY

もう一つのお気に入りのターミナルソフト、PuTTYのご紹介です。

PuTTYは、Windowsまたは、Unxで動作するフリーのターミナルエミュレータです。(ここではWindows版についての情報を掲載します。Unx版については触れません。)

PortableApps で、 PuTTY Portable としても配布されています。 (PortableAppsは、アプリをUSBメモリ等にインストールして持ち運んで、いつもと異なる端末でも、いつもと同じような環境で作業できるようにするというプロジェクトです。)

日本語化している方がいらっしゃるので、私は、日本語版(PuTTYjp)を使用しています。

(私ごとですが、よく見かける"有志の方がxxしている"という表現がどうにも好きではありません。酸っぱいスメルを感じてぞわぞわします。)

次のような機能、特徴があります。

  • telnet、シリアル、ssh接続等。
  • GUIのPuTTY本体(putty.exe)だけでなく、コマンドライン用のsshクライアント(plink.exe)が付属している。
  • scp(pscp.exe)、sftp(psftp.exe)等のコマンドラインツールが付属している。
  • フルスクリーン表示ができる。 (スクロールやタイトルバー等が表示されなくなり、画面全体でターミナル画面を表示するようになる)

特にコマンドラインツールが付属しているのがありがたいです。オプション指定が、un*xのコマンドのものに似ていますので、直感的に使うことができます。ポート転送やscpファイル転送のバッチの作成に大いに役立っています。

TeraTermでもscpファイル転送できますが、やはりPuTTYの同梱ツールを使ったほうがよろしいのではないかと個人的には思います。 (WinSCPという、ファイル転送に特化したGUIツールもあります。自分はあまり使ったことがありません。)