もぐてっく

人は1つ歳をとるたび、1ビットづつ大きくなれると信じてた。

RSSをデータソースに出来るmikutterプラグインを作ったよ。

何これ?

RSSフィードを抽出タブのデータソースに追加します。

mikutterの抽出タブを使うとTLやメンションなどのデータソースを束ねたり、必要なメッセージのみを抽出したりして独自のTLを作る事が出来ます。

mikutterの今後のバージョンでは「保存された検索」や「リスト」がデータソースとして再実装される可能性があり、より自分好みのTLが構築出来る様になりそうです。

Twitter外のサービスをサポートする場合も、独自のタブを作るよりこの流れに乗っかった方がアツいなと思って、手始めにRSSをデータソースにしてみました。

インストール

moguno/mikutter-datasource-rss · GitHub

~/.mikutter/plugin/にmikutter-datasource-rssってディレクトリを作って中身を展開して下さい。

使い方

こんな感じで抽出タブにRSSフィードを流し込める様になります。

f:id:moguno:20140810163730p:plain

設定

抽出タブ

f:id:moguno:20140810163918p:plain

データソースが11個増えます。

RSSフィード1〜10を纏めたものです。

RSSで設定したRSSフィードです。

RSS

f:id:moguno:20140810164225p:plain

  • URL

RSSフィードのURLを指定します。

  • アイコンの色

エントリーに表示されるRSSアイコンの色を指定します。

  • RSS取得間隔(秒)

WebサイトからRSSを取得(ポーリング)する間隔を指定します。速くしすぎるとDoS攻撃と勘違いされたりもなきにしもあらずなので、それなりに間隔を取って下さい。

  • メッセージ出力間隔(秒)

RSSのエントリは一定間隔で抽出タブに出力されます。その間隔を指定します。

  • 一定期間より前のフィードは流さない(日)

指定したより古いエントリを表示しない様にします。

  • 新しい記事を優先する

チェックするとエントリの日付が新しい順に出力します。

  • ループさせる

チェックすると、RSSフィードのエントリを全て表示し終わった後にまた始めから表示を始めます。

ユーザーにメモを書き込めるmikutterプラグインを作ったよ

何これ?

今回、年に一回行けるか行けないかのオープンソースカンファレンスに参加しまして、オンラインで拝見してた方々と実際に会話を交わす事が出来て嬉しかったなと。

でも何しろ年に一回行けるか行けないかの会なので、次お会いする時には一週間フレンズ状態(顔から何から一切忘れる)は必至。

なので、色々メモしとこうと思った次第です。

インストール

moguno/mikutter-user-memo · GitHub

いつもの様に~/.mikutter/plugin/にmikutter-user-memoってディレクトリを作って中身をぶちまけて下さい。

使い方

プロフィールを開くと、ワー○パッドみたいなアイコンが増えています。

そこに会った場所とか話した内容とか特徴とか初めてのキスの味とか好きに書いて下さい。

f:id:moguno:20140806184729p:plain


おまけで、メッセージにメモの内容が表示される様になります。

f:id:moguno:20140806184950p:plain

変な二つ名とかを入れておくと毎回笑けて健康に良いです。

設定

f:id:moguno:20140806185005p:plain

  • TLにメモを表示する

二つ名表示機能の有効・無効を切り替えます。

  • フォント

二つ名表示機能のフォントと色を設定します。

その他

メモのデータは~/.mikutter/settings/memo.yamlに保存されます。

大事なデータと思いますので、定期的なバックアップをお勧めします。

WindowsにcapstanをインストールしてOSvを起動してみた

はじめに

オープンソースカンファレンス2014 Kansai@KyotoでOSvの何たるかをご教示頂きました。
(ざっくり、JVMの動作に必要なLinux APIをエミュレーションする超軽量なOSとのこと。)

調べるとWindowsVirtualBoxと言う我が家のクラウド環境(?)もサポートされてるみたいなので、インストールしてみることにしました。

最終的にはマイクラサーバが動けば良いなと。

WindowsでOSvを動かしてみよう

あらかじめインストールしてあったもの

  • Windows 7 Pro 64bit(OSv自体が64bitのみサポートみたいなので、32bit OSはアウトと思います。)
  • SourceTree(内部gitを有効にしたもの) 1.5.2.0
  • VirtualBox 4.3.12

Go言語をインストールする。

capstanはGoogle謹製のGo言語で書かれているため、http://golang.org/dlから、Windows版を入手します。

f:id:moguno:20140803214923p:plain

なんとなくお勧めされた64bit版をチョイス。
インストール先はデフォルトのc:\go\にしました。

SourceTreeでcapstanのリポジトリをクローンする。

https://github.com/cloudius-systems/capstanをクローンします。

f:id:moguno:20140803193841p:plain

8/3時点のHEADは、0.1.2 + 2014/7/29 4:38までのコミットでした。

作業用コマンドプロンプト起動用バッチファイルを作る。

capstanをインストール or 実行するためには、下記のプログラムにパスを通す必要があります。

  • go.exe
  • git.exe
  • VBoxManage.exe

加えて、GOPATHにgo言語のルートになるフォルダを設定する必要があります。

毎回設定するのは面倒なのでバッチファイルにします。

・capstan_cmd.bat

set PATH=%PATH%;c:\go\bin
set PATH=%PATH%;c:\Users\desktop\AppData\Local\Atlassian\SourceTree\git_local\bin
set PATH=%PATH%;"c:\Program Files\Oracle\VirtualBox"
set GOPATH=c:\go\

cmd

capstanのインストール

さて、ここからはコマンドプロンプトでの作業です。
さっきのバッチファイルからコマンドプロンプトを起動し、install.batを実行します。

c:\>cd \Users\desktop\Documents\capstan ←capstanをクローンしたフォルダ

c:\Users\desktop\Documents\capstan>install

c:\Users\desktop\Documents\capstan>set package=github.com/cloudius-systems/capst
an

c:\Users\desktop\Documents\capstan>for /F %i in ('git describe --tags ') do set
version=%i

c:\Users\desktop\Documents\capstan>set version=v0.1.2-4-gdb6eb7e

c:\Users\desktop\Documents\capstan>go get github.com/cloudius-systems/capstan
# github.com/cloudius-systems/capstan
c:\go\src\github.com\cloudius-systems\capstan\capstan.go:64: too few values in struct initializer
c:\go\src\github.com\cloudius-systems\capstan\capstan.go:95: too few values in struct initializer

・・・(同様のエラーが続く)

あらら、エラーです。

cliのバージョンダウン

エラーの原因はcapstanが使っているcliと言うパッケージでした。
StringFlag()メソッドに渡す引数の数が足りていない様です。

調べると、cliパッケージが8/3(今日やん・・・)にバージョンアップ(1.2.0)しており、その際にメソッドの仕様が変わったようです。

1.1.0にバージョンダウンして何とかします。

c:\Users\desktop\Documents\capstan>cd \go\src\github.com\codegangsta\cli\

c:\Go\src\github.com\codegangsta\cli>git checkout 1.1.0
Note: checking out '1.1.0'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at 27ecc97... Merge pull request #112 from AudriusButkevicius/swap

再度capstanのインストール

c:\Users\desktop\Documents\capstan>install

c:\Users\desktop\Documents\capstan>set package=github.com/cloudius-systems/capst
an

c:\Users\desktop\Documents\capstan>for /F %i in ('git describe --tags ') do set
version=%i

c:\Users\desktop\Documents\capstan>set version=v0.1.2-4-gdb6eb7e

c:\Users\desktop\Documents\capstan>go get github.com/cloudius-systems/capstan

c:\Users\desktop\Documents\capstan>go install -ldflags "-X main.VERSION v0.1.2-4
-gdb6eb7e " github.com/cloudius-systems/capstan

c:\Users\desktop\Documents\capstan>

うまくいきました。

OSvの起動

引き続きコマンドプロンプトからOSvを起動します。
コマンド一発で仮想HDDイメージのダウンロードから起動までやってくれます。楽ちん。

VirtualBoxマネージャーのウインドウを開いておくと動的にVMがセットアップされていくのが見えて楽しいです。

C:\Users\desktop\Documents\capstan>capstan run -f 8000:8000 cloudius/osv
Downloading cloudius/osv/index.yaml...
126 B / 126 B [=====================================================] 100.00 %
Downloading cloudius/osv/osv.vbox.gz...
73.09 MB / 73.09 MB [===============================================] 100.00 %
Created instance: cloudius-osv
OSv v0.11
eth0: 10.0.2.15

[/]% ←OSvのプロンプト

Webインターフェースを起動する

ホストマシンからhttp://localhost:8000にアクセスするとめでたくWebインターフェースが表示されます。
f:id:moguno:20140803204302p:plain

今日はここまで。

うまく行ってないところ

VMが終了できない。

WebインターフェースからshutdownしたりVirtualBoxマネージャーからACPIシャットダウンしてもOSvが終了しません。
コンソールにはこんなメッセージ。

exception nested too deeply
[backtrace]

例外が死ぬほど出てる感じ?

ブリッジモードで起動できない

capstanから-bオプションを使ってブリッジモードで起動しようとしてもVMが起動しませんでした。