decadence

個人のメモ帳

run-script-region.el

Emacs

の整理を少しした
特にinit-loader入れた分,ファイルを分け分けしたぐらい

ついでにEmacs Lispを少し勉強しつつ,何か書いてみた

run-script-region.el

範囲指定した箇所をコピペってファイル名の拡張子に応じてスクリプトとして実行するもの
よくわからないけど,一応以下の6個に対応させてる

  • js → node
  • pl, pm, t → perl
  • py → python
  • rb → ruby
  • scala → scala
  • sh → sh

使用用途としては,ちょっとprivate関数書きたいけどテスト書くのも億劫だし,少し試してみたい,とか考えた際に使うとか想定してる.
注意として,特に他のファイルとか全く読み込まないで,指定されたregionを1つのスクリプトファイルとして実行する事.

run-perl-region.el


で,libとか適当に読み込んでくれたら嬉しいな,ってなったのがこっち
git管理下にあるファイルで呼び出すと上手い具合にlibとか参照しつつregionをスクリプトとして実行するもの
perlしか書いてない

このあたりの引用してる

Emacs Lisp

コピペだけじゃなく,もっと書いてこう

RSS管理スクリプト

今日も今日とてPerlの練習

作成したものは,RSS管理スクリプト
Perlはこんな感じのターミナル上で動かす,ちょこちょこっとしたスクリプトを書くのに便利な気がする

ソースはこちら

説明

バッバっバッって見れて,パパパッと選べて,シュババババって開けるやつ

なぜ今更RSSなのか?

普段はてなブックマークなどのRSSで配信されているものを読む際に私は以下のようなアプローチを取っている

  1. 眺めながら,興味のある記事を⌘+クリックで別タブで開く
  2. そのRSSの一覧を見終えたら記事を1つずつ見る
  3. 1つの記事を見終える毎にそのタブを閉じていく

この1の処理をもっと効率良く行えないのか,というのが本スクリプトの目標である.

HowTo

簡単な使い方は以下の通り

  • 複数のRSSを登録
  • RSSの内容を表示
  • indexを指定して一度にデフォルトブラウザで記事を開く

上図のものを実行すると,下図のようになる

これは1つのRSSのみを表示しているのだが,おすすめはinteractive-modeと名付けたもの

myrss --interactive

と実行することで登録している全てのRSSを順に表示し,表示の度に開きたい記事を指定する.
全てのRSSを巡航し終えた所で,指定された記事を全てまとめて一度にブラウザに表示する.

RSSはちょこちょこ見るよりか,一度にババっと見てしまうのが良い気がするのでこのような機能もつけた.
一応逐一取得しにいくのも時間がかかるし,1時間程度のなんちゃってキャッシュもさせてる.

備考

globの挙動があまり理解出来なかった.

理解できなかった挙動例はこちら

ファイル操作関数に与えた際にループの偶数回目のみundefになっている?ようだが普通に利用する際にはundefになっていない.
それらしい記述はperldocでは以下ぐらいだが,なんか違う気がする...

In scalar context, glob iterates through such filename expansions, returning undef when the list is exhausted.

globはチルダをホームディレクトリへと展開するためのみに利用していたため,結果的に$ENV{"HOME"}を使ってglobを使わないようにした.


久しぶりだけど,取り敢えずPerl動くものは書けてる...?

ターミナルでグラフを表示する

Webに掲載されたデータから情報を取得し,ターミナル上でグラフ表示するものを書いた

自前のサーバからデータを取得し,jsonを返すAPIを作成
今回はPerlの練習も兼ねてMojolicious - Perl real-time web frameworkを利用

ターミナルでグラフを表示させるのに参考にしたものはyuroyoro/gfspark · GitHub

実際に表示を行う部分については,ソースはこちら

丁度雨が降りそうだったのでターミナルで表示したのが以下の図