2014年04月03日

hermitcrab.vim ―― シェル関係の設定を一括変更、或いは好みのシェルでコマンドを実行するVimプラグイン

この記事は、「Vim Advent Calendar 2013」の124日目の記事である。

昨日はShougoさんの「あるVimmerのブログ: Web 製作者のための Sublime Text の教科書レビュー」だった。 Sublime Text ……使った事無いんだよね。どんなもんなんだろう?

なお、今までに当 Advent Calendar に天井冴太が投稿した記事は以下の2件である。


(The original picture is "Hank trying on shells | Flickr - Photo Sharing!" by Craig Cook. The License is CC BY-NC 2.0)

INTRODUCTION

hermitcrab.vimは、シェル関係の設定を一括変更する手段を提供します。また、好みのシェルでコマンドを実行する手段を提供します。

最新版

https://github.com/AmaiSaeta/hermitcrab.vim

以下GitHub上のReleasesページから利用したいバージョン(通常は最新の物を使って下さい)の圧縮ファイルをダウンロード。その中のtestディレクトリ以下のファイル以外を貴方の vimfiles (.vim) ディレクトリへ上書きして下さい。

Releases ・ AmaiSaeta/hermitcrab.vim

何らかのVimプラグインマネージャを利用している場合は、その設定方法に従って下さい。例えばNeoBundleであれば以下の通り。

NeoBundle 'AmaiSaeta/hermitcrab.vim'

USAGE

前もってg:hermitcrab_shells辞書変数に設定内容を記述しておきます。例えば次の例は、zsh用の設定を"ZSH"という名で、bash用の設定を"BASH"という名で参照出来るようにしています。

:let g:hermitcrab_shells = {
\	'ZSH': {
\		'shell': 'zsh',
\		'shellcmdflag': '-c',
\		'shellpipe': '2>&1 | tee',
\		'shellslash': 1,
\		'shellredir': '>&',
\		'shelltemp': 0,
\		'shellxquote': ''
\	},
\	'BASH': {
\		'shell': 'bash',
\		'shellcmdflag: '-c',
\		'shellpipe': '2>&1| tee',
\		'shellquote': '',
\		'shellredir': '>%s 2>&1',
\		'shellslash': 1,
\		'shelltemp': 1,
\		'shellxquote': '',
\		'shellxescape': ''
\	}
\ }

:HermitCrabSwitchhermitcrab#switch()を用いると、シェル関係の設定をg:hermitcrab_shellsに定義した内容に一括変更出来ます。

" Zshに変更する例
:HermitCrabSwitch ZSH

:set shell?    " == 'zsh'

:HermitCrabRunhermitcrab#run()hermitcrab#call()で、任意シェルでコマンドを実行する事が出来ます。

let engine = &shell

" zshでlsコマンドを実行 (:!に相当)
:HermitCrabRun ZSH ls

echo engine == &shell	" == 1; コマンド/関数実行後は元の設定に戻ります

" zshでlsコマンドを実行 (system()に相当)
:let result = hermitcrab#call('ZSH', 'ls')
続きを読む
posted by 天井冴太 at 16:00 | Comment(0) | TrackBack(0) | 自作ソフト | このブログの読者になる | 更新情報をチェックする
投票お願いします 人気blogランキング - 投票する
2014年02月06日

closesomewindow.vim - 条件に合うウィンドウを閉じる Vim plugin

この記事は、自作Vimプラグインの公開エントリであると同時に、 「Vim Advent Calendar 2013」 の68日目の記事でもある。68日目……また去年同様365日続いたりするんだろうか……

なお、昨日(67日目)は、termoshttさんの「vimでひかえめな自動保存」だった。


INTRODUCTION

closesomewindow.vimは条件に合うウィンドウを閉じる Ex command を提供します。

最新版

https://github.com/AmaiSaeta/closesomewindow.vim

USAGE

以下の5つのウィンドウを開いているとします。

ウィンドウ番号表示されているバッファ
1"foo.txt"
2"bar.txt"
3ヘルプ
4Quickfixリスト
5"hoge.vim"
6"fuga.vim"

以下のコマンドは、2番のウィンドウを閉じます。

:CloseSomeWindow v:val == 2

以下のコマンドは、ヘルプを開いている(3番の)ウィンドウを閉じます。

:CloseSomeWindow getwinvar(v:val, '&filetype') ==# 'help'

以下のコマンドでは、閉じるべきウィンドウ番号を貴方に問い合わせます。

:CloseSomeWindow! getwinvar(v:val, '&filetype') ==# 'vim'
例えば、以下のようにして利用する事を薦めます。
" Quickfixリスト或いはヘルプを表示しているウィンドウを閉じます。
nnoremap <C-h> :<C-u>CloseSomeWindow
\	(index(['qf','unite','vimtest'], getwinvar(v:val,'&filetype')) != -1)
\		\|\| (getwinvar(v:val, '&filetype') ==# 'help'
\			&& !getwinvar(v:val, '&modifiable'))<CR>

2014年2月7日追記

当初、上記例にて、「:mapは長いRHSを受け付けない」とし、故にそれを回避するコードとなっておりましたが、それは誤認でしたので修正しました。

INTERFACE

:CloseSomeWindow[!] [-s | -script | -f | -function] {filter}

現在のタブページ内のウィンドを閉じます。

対象となるウィンドウは、{filter}に拠って決定されます。

-script」或いは「-s」が指定された場合、{filter}filter()の第2引数と同様の式として解釈されます。{filter}内のv:valは、各ウィンドウ番号に置き換えられます。

-function」或いは「-f」が指定された場合は、{filter}は関数名として解釈されます。その関数は、現在開いているウィンドウ番号のリストを引数とし、閉じる候補となるウィンドウの番号のリストを返さなければなりません。

-script」「-s」「-function」「-f」を省略した場合、{filter}は式として解釈されます(つまり、「-script」と同じです)。

もし、{filter}の条件に合うウィンドウが複数存在する場合は、一番若い番号のウィンドウを閉じます。[!]が指定されていた場合は、どのウィンドウを閉じるかユーザーに問い合わせます。

続きを読む
posted by 天井冴太 at 12:00 | Comment(0) | TrackBack(0) | 自作ソフト | このブログの読者になる | 更新情報をチェックする
投票お願いします 人気blogランキング - 投票する
2012年12月20日

jazzradio.com.js ―― JAZZRADIO.comのプレイヤーを操作する為のVimperator plugin

この記事はVimperator Advent Calendar 2012の19日目担当記事である。


Jazz専門のインターネットラジオ曲、JAZZRADIO.comのプレイヤーをVimperatorで、勿論マウスレスで、操作する為のpluginを作った。

PC作業のBGMとして、ちょくちょくJAZZRADIO.comでJAZZを流している。

ここは、課金すれば好みの音楽プレイヤーソフトで高音質音源を再生出来るが、そうでなければWebページとして実装されているプレイヤーを使う事になる。ところが、このプレイヤーは、昨今のwebページの例に漏れず、ボタンが擬似ボタン(HTMLa要素やinput要素、button要素で実装されていない物)だったり、(ボリューム調整用の)スライダーを独自実装していたりで、キーボードで操作出来ない。マウスに手を伸ばさざるを得ない。Vimperator使いには耐え難い苦痛である。

なので、Webのプレイヤーをキーボードで操作出来るようにするpluginを作った。

ダウンロード

AmaiSaeta/jazzradio.com.js ・ GitHub

jazzradio.com.jsを~/vimperator/plugin/辺りに突っ込んでくだしあ。

出来る事

  • Hint modeで各種ボタンを押す事が出来る(Extended hint modeには未対応……というか、対応する必要ない気がしている)。
  • プレイヤー右上の"channel"ボタンを押し、channelのリストを表示している状態で、j, kでリストをスクロール出来る。各チャンネルの選択はHintで。
  • v, <S-v>でボリュームの上げ、下げが出来る

将来の展望とか

  • 現状key mappingが固定なので、ユーザーが好みに設定出来るように改良したい。
  • 例えばstella.jsみたいに、Ex commandとして実装すべきだったのかも知れない。これについては要検討。
  • ややコードがきちゃない部分があるのでリファクタリングしたい……
  • どうもJAZZRADIO.comのwebプレイヤーは、AudioAddict Incのコンポーネントっぽいので、同じプレイヤーコンポーネントを使っているインターネットラジオ局で使い回せるかも知れない。SKY.FMとか。未確認。
  • むしろ、インタフェイス部とプレイヤー操作部を分離し、操作部をユーザーが好きに実装出来るようにして、あらゆるインターネットラジオ局汎用とすべきか……?
posted by 天井冴太 at 00:01 | Comment(0) | TrackBack(0) | 自作ソフト | このブログの読者になる | 更新情報をチェックする
投票お願いします 人気blogランキング - 投票する
2012年12月13日

「今どんな気持ち?」をアレするuser scriptをさらにアレしてみた

「今どんな気持ち?」をアレする user script #JavaScript - Qiita

Facebook が急にうざくなったので

太一

困って書いた。

太一after

なら更にアレするしかないよね!!

Facebookの入力欄を更にアレするuser script実行結果

kokubun.user.js

……あー、うん。自分でやった事ながら、すげーイラッと来るわこれは……

補足

  • Firefox 16.0 with Greasemonkey 1.5、及びSRWare Iron 22.0.1250.0で動作確認。
  • textarea要素のplaceholder属性の仕様では、改行記号は含めちゃ駄目な事になってるけど思いっきり改行してる。HTML5以前に在ったplaceholder実装でやれば良かったんだろうけど、正直面倒だった。
  • 入力欄にフォーカス移した時に表示が崩れまくるのは、多分、上記の通りHTML規格上おかしなDOMになってる所為だと思う。でも面倒(ry
  • font-familyがMS Pゴシック決め打ちなのは、開発した環境がWindowsで、他環境でAA表示させる時に何のフォント使ったらいいのか分からなかったから。各自適当に変えて。というかどのフォント使うべきなのか教えて。
posted by 天井冴太 at 01:11 | Comment(1) | TrackBack(0) | 自作ソフト | このブログの読者になる | 更新情報をチェックする
投票お願いします 人気blogランキング - 投票する
2012年12月04日

amazon-bookmeter-link-adder.user.js ―― Amazon.co.jpの商品ページに読書メーターの該当書籍ページへのリンクを追加するGreasemonkey script

そういうGreasemonkey scriptが在ったのだが、何時の間にか動作しなくなっていた。おそらく、Amazon.co.jpのページデザイン変更の影響だろう。対象ページのコードが変更された途端に動かなくなるのは、Greasemonkeyに限らずuser scriptの弱点だね。

動作しなくなったのは、userscripts.orgのDiscussionsに拠るならば9月25日以前。特に改修される気配もないし、作者さんのblogも7月で更新止まってるしなので、forkして改修した。ついでにリファクタリングも。

以下ページからどうぞ。ページやや右上の"Raw"って書かれてるリンク踏めばインストールが開始される筈。

(@namespace metadataを変えた為)オリジナルの上書きはしない。アレならオリジナルの方はアンインストールして下さいな。

amazon-bookmeter-link-adder/amazon-bookmeter-link-adder.user.js at master ・ AmaiSaeta/amazon-bookmeter-link-adder

Amazon.co.jpの本関係の商品ページで、右サイドバーのメールや各SNSでのシェア用のリンクに読書メーターのアイコンが追加される

以下環境でしか動作確認してない。例えばScriptishや他ブラウザのuser script実行環境で動くかどうかは分からない。「動いた」「動かなかった」等報告お待ちしてます。

  • Firefox 16.0
  • Greasemonkey 1.5
posted by 天井冴太 at 21:29 | Comment(0) | TrackBack(3) | 自作ソフト | このブログの読者になる | 更新情報をチェックする
投票お願いします 人気blogランキング - 投票する
2012年10月22日

capture.vim - ex-commandの結果をキャプチャし、新規バッファへ出力するVim script

INTRODUCTION

*capture.vim* は、ex-commandの結果を新たに開いたバッファに出力する為のVim pluginです。

最新版

AmaiSaeta/capture.vim

USAGE

:messagesの結果を、新規に開いた水平分割ウィンドウに出力します。

:Capture horizontal messages

同 (デフォルトは水平分割ウィンドウとなります)。

:Capture messages

:lsの結果をキャプチャし、新たに開いた垂直分割ウィンドウに出力します。

:Capture vertical ls

INTERFACE

:Capture {excommand}

{excommand}の結果をキャプチャし、新規に開いた分割ウィンドウ内に出力します。

:Capture {splitcommand} excommand

{excommand}の結果をキャプチャし、新規に開いた分割ウィンドウ内に出力します。ウィンドウ分割時に、{splitcomamnd}を利用します。

{splitcommand}には、次のコマンドを使用することが出来ます。

  • horizontal
  • :vertical
  • :leftabove
  • :aboveleft
  • :rightbelow
  • :belowright
  • :topleft
  • :botright

"horizontal"は、Vimに元々用意されているex-commandではありません。 これは、ウィンドウの水平分割を行います。また、このコマンドは'splitright'の影響を受けます。

CHANGELOG

1.00.20121022
  • 初版!
続きを読む
タグ:tool Extension vim
posted by 天井冴太 at 23:32 | Comment(0) | TrackBack(0) | 自作ソフト | このブログの読者になる | 更新情報をチェックする
投票お願いします 人気blogランキング - 投票する
2012年07月22日

Qiita user following tags feed - Qiitaでフォロー中のタグを付けられた新着記事を取得するfeedを吐くYahoo!Pipesを作った

タイトルは一息に読む(変に長くてごめんなさい)。

作成途中に一度Qiitaに投稿したけど、どうも上手く動いてるようなので公開。"どうも"なんて不確かな表現なのはPipeの動作確認が超絶面倒だから。お察しくださいな。

コレは何?

任意のQiitaアカウントがフォローしているタグを付与された新着記事をfeed(RSS等)として出力するPipe。

例えば私の場合、アカウント名は"AmaiSaeta"なので、AmaiSaetaがフォロー中のタグ - Qiitaでリストアップされる24種(2012年7月22日現在)のタグが対象になる。

使い方

Qiita following tags feedにアクセスし、feedを取得したいユーザーのアカウント名を"Input a user name."テキストフィールドに入力しRun Pipe。後は"Get as RSS"のリンクをフィードリーダーに登録するなりなんなりお好きなように。

稀にtimeoutしている……ような気がする。Pipesレベルじゃ対処法が思いつかないので、仕様って事で。

タグ:Qiita Feed pipes
posted by 天井冴太 at 10:00 | Comment(0) | TrackBack(1) | 自作ソフト | このブログの読者になる | 更新情報をチェックする
投票お願いします 人気blogランキング - 投票する
2012年03月30日

Display_Remember_The_Milk_Smart-Add_symbols_reference.user.js - Remember The Milkのタスクリストの入力欄下にSmart Addで用いる記号類の説明を表示させるGreasemonkey script

タイトルのまんま。

[Display_Remember_The_Milk_Smart-Add_symbols_reference.user.js導入前後キャプチャ] Remember The Milkでは、簡単に、新規タスクの各種設定を行う事が出来るSmart Addという機能が在る。詳細はRemember The Milk - Services / Smart Addを参照して頂きたい。

さて、新規タスク登録に際してSmart Addを利用する時、「はてあの設定はどの記号を使うんだっけ?」と悩む事が多い。正直憶えにくい。というか憶えられない。

入力欄横の"?"マークをクリックすれば簡単な説明文を見る事が出来るが、その為に態々マウスに手を伸ばすのも面倒だ。

そこで、新規タスク入力欄の下に、Smart Addで用いる記号とその意味を表示させるGreasemonkey scriptを作った。

上で触れた、RTMにもともと用意されている説明文から生成しているので、今後仮に新たなSmart Addが追加されても追随出来る筈だ。

ダウンロード

Githubからどうぞ

version: 1.00.20120330

ライセンス

MIT Licenseでよろしく。

posted by 天井冴太 at 19:25 | Comment(0) | TrackBack(0) | 自作ソフト | このブログの読者になる | 更新情報をチェックする
投票お願いします 人気blogランキング - 投票する
2011年08月28日

bookmeter-multi-add.user.js; 読書メーターで複数の書籍を一括登録するGreasemonkeyスクリプト

[bookmeter-multi-add.user.js エントリイメージ]自分の読んだ本を記録していく読書メーターというwebサービスが在る。
この検索結果ページから、任意の複数の書籍を一括で登録出来るようにするGreasemonkeyスクリプトを作った。

動作(確認)環境

ダウンロード

bookmeter-multi-add.user.js 1.00.20110827

開発はGithub上にて行っているので、そちらからダウンロードしても。

使い方

[bookmeter-multi-add.user.js導入後検索結果画面キャプチャ]当スクリプトをインストール後、読書メーターで検索結果のページを開くと、上部に各種情報を入力する為のフォーム、各書籍タイトルの後にチェックボックスが追加される。一括登録したい書籍にチェックを入れ、フォームの内容を埋め、一括登録ボタンを押す。

完了時には、その旨を知らせるダイアログボックスが表示される。

FAQ(的な何か)

IE、Chrome、Opera、(その他様々なwebブラウザ)では使えないの?
webブラウザによってはGreasemonkey互換機能や、それを提供するような拡張機能が存在するが、それらで動作するかは未確認。試す時は自己責任で。もし問題なく動作する場合は報告貰えると嬉しい。
検索結果ページで、既に登録している書籍かどうか確認したい。
イタズラに読書メーター側の負荷を上げるマネは避けたい。よって却下。
バグ見つけた
  • この記事のコメント欄に報告
  • Githubからforkしてpush
どちらかお好きな方を。
○○な機能はないの?
××機能作って
気が向いたら。
Github使ってるので、どんどんforkしてpushしてくださいな。
コード汚い
ごめんなさい。その内直すかも知れない。
Githubに有るんで適当にforkしてpushしてくださいな。

このエントリのイメージ画像は、aniran氏のBanned books | Flickr - Photo Sharing!、及び読書メーターのロゴイメージを元に作成しました。

posted by 天井冴太 at 02:07 | Comment(0) | TrackBack(0) | 自作ソフト | このブログの読者になる | 更新情報をチェックする
投票お願いします 人気blogランキング - 投票する
2010年05月20日

Toggle Favorite-User-Icons View - Togetterで、『お気に入りしたユーザ』のアイコン表示/非表示を切り替えるGreasemonkeyスクリプト

[Togetter新デザイン; お気に入りしたユーザアイコン一覧を折りたためるように] Togetterのリニューアルで、お気に入りしたユーザアイコン一覧が(3行までに)折りたためるようになりました。よって、今後このスクリプトは不要になりました。

これはなに?

[Toggle Favorite-User-Icons View動作イメージ]Twitterでのやりとりをまとめる事が出来るサイトTogetterにて、『お気に入りしたユーザ』欄のアイコン群の表示/非表示を切り替える事が出来るようにするGreasemonkeyスクリプト。

デフォルトでは非表示の状態。『お気に入りしたユーザ』と書かれた部分をクリックする事で表示/非表示を切り替える事が出来る

動作(確認)環境

もしかしたら、他のUserScript動作環境でも動くかも知れません。Google ChromeとかOperaとか。大した事やってないんで。でもメンドイんで調べてない。誰か動作確認して報告してくれると嬉しいです。

ダウンロード

Toggle Favorite-User-Icons View

開発動機とかその他諸々

Togetterの『お気に入りしたユーザ』リストってのは、要はニコ動のマイリストなんかと一緒で、『そのコンテンツがどれだけ注目されてるか』の1つの指標になると。しかし、ページの上部に在る所為で、一番見たい『まとめられたつぶやき』部分が見難い。いや数人なら問題ないんだけど、これが何十人レベルになると、スクロールさせなきゃ『まとめられたつぶやき』部分が読めない。不便。
探したらリストのアイコンを小さくするUserScriptは在ったけど、でもそれ根本的な解決方法じゃないよね。あと他の機能要らない。

以下ちょっと専門的な事になるけど。
自分はVimperator使いで、マウス使うと右腕が痛くなって発狂するんで、Vimperatorのhint modeで選択出来るようにrole属性を追加している。が、果たしてこれがrole="link"で妥当なのかよく分からない。'hinttags'にデフォルトで設定されている値だからこれにしたけど。
もしかしたら開閉用ボタンを追加した方が良かったのかもしれない。ここら辺誰か詳しい人意見くだしあ。

右腕が痛くなって
腕というか肩から二の腕辺りか。リアルに。別に厨二病という訳ではない。
posted by 天井冴太 at 03:56 | Comment(0) | TrackBack(1) | 自作ソフト | このブログの読者になる | 更新情報をチェックする
投票お願いします 人気blogランキング - 投票する
2010年01月26日

年賀状のお年玉の当落を判定するスクリプトを書いた

どうも、今年は年賀状が一枚も貰えなかった天井冴太です。
………………
さ、寂しくなんかない!寂しくなんかないんだからねっ!

閑話休題。

母から年賀状のお年玉抽選の当落調査を頼まれた。家に届いた年賀状全てに対して。その数約100通程。……正直目で見て行くにはめんどくさいし、誤判定も怖い。

これでもプログラマ(の端くれ)なので、パパッとチェック用のスクリプトを書いた。

急造なので結構残念なコードになっている。エラーチェックとか桁数しか見てないし。作りっぱなしと言うのも勿体ないので一応公開。煮るなり焼くなりお好きにどうぞ。

ダウンロード

checknenga.wsf

使い方他些事

WSH環境用のコードなんでWindows限定。
実行したら入力待ちになるので、葉書右下の6桁の数字をどんどん入力していくだけ。当たっていたらその旨表示される。
入力無しでEnter、或いはキャンセルボタン押下(WScript.exeでの実行時)で終了する。

なお、コード中で読んでるinput.vbsはAMAgrammar <> PROgrammer: GUI上でもCUI上でもソレっぽく使えるWSH用入力関数を作ってみた。で公開しているもの。同じフォルダに置いといて下さい。

因みに、var table = { .... };の部分を書き換えたら、来年以降も使える、筈。

posted by 天井冴太 at 02:45 | Comment(0) | TrackBack(0) | 自作ソフト | このブログの読者になる | 更新情報をチェックする
投票お願いします 人気blogランキング - 投票する
2009年10月22日

adddialog.js - 新しくダイアログを追加/削除するVimperator plugin

本当は、多くのVimp pluginが登録されているCodeReposにコミットしてからと思ってたんだけど、いつまで経ってもコミット権が貰えないので。ver1.01.20091226よりCodeReposにコミットするようにしました。

これは何?

Vimperatorに、新たにダイアログを追加/削除するexコマンドを追加するplugin。これで追加したダイアログの名前を用いて:dialog出来るようになる。

Vimperatorってなんぞ、って人は適当にググってくだしあ。

ダウンロード

adddialog.js

adddialog.js (旧版 1.00.20091021)

使い方

ダイアログの追加

:adddia[log] name {description} uri

uriで指定されたダイアログを:dialog nameで開けるようにする。descriptionで説明文を指定可。descriptionのみ省略可。

ダイアログの削除

:deldia[log] name

nameと言う名前のダイアログを削除。これ以降:dialogを使って開けなくなる。:adddialogで登録したものに限らず、全てのダイアログを削除出来るので注意

使用例


" Greasemonkeyアドオンの『ユーザースクリプトの管理』ダイアログを追加
:adddialog gmmanage "Manage Greasemonkey scripts" chrome://greasemonkey/content/manage.xul

" 上で追加したgmmanageダイアログを削除
:deldialog gmmanage

RCファイルに記述する場合の注意点

.vimperatorrc, _vimperatorrcに記述する場合は、RCファイルとpluginのロードの順番の都合上、:autocmdと併用する必要がある。

:autocmd VimperatorEnter .* :adddialog gmmanage chrome://greasemonkey/content/manage.xul

ライセンス

MIT Lisenceで。ライセンス文章はファイル内に記載。

TODO

  • 誰かPLUGIN_INFO<description><detail>書いて下さい……英語で……
    PLUGIN_INFO<detail>は書いた。けど文法的に正しいか自信なし。だれか <description>英訳 たのむ

更新履歴

1.01.20091226
作り方を勘違いしてた部分が有ったので大幅にコード書き直し
複数のダイアログを登録した際、最後に登録したダイアログしか開けない不具合を修正
英語の<detail>を追記
1.00.20091021
初版公開。
posted by 天井冴太 at 14:00 | Comment(0) | TrackBack(0) | 自作ソフト | このブログの読者になる | 更新情報をチェックする
投票お願いします 人気blogランキング - 投票する
2009年06月13日

ついったーコピィ - Twitterのstatusをはてなコピィに投稿するブックマークレット

ぎゃあああああ!ブックマークレットのコードの自分のはてなID消し忘れてたあああああ!
まぁ、ログイン情報のないPCで俺のはてなIDにログインできる訳無いから、何の問題もないんだけど。

しかし、説明と一部違う部分があったのは事実。お詫び申し上げます。

これは何

何かにコピィをつけて楽しむサービスです。あなたのセンスを存分に発揮し、粋なコピィを作り、人気モノになってください。

はてなコピィなんてサービスが出来てたから、ついカッとなって作ってしまった。後悔はしていない。

これはなに?

Twitterの各statusページ(URLhttp://twitter.com/USERNAME/status/XXXXXXXXXXといった感じのページ)で使うと、そのstatusの内容をはてなコピィへのpostとするブックマークレット

あくまではてなコピィの編集画面を表示するだけで、直接postはしない。色とか位置とかの調整が出来るしね。

使い方

まずは下準備として、下記リンクをブックマークに登録。あるいは、もひとつ下のコードをアドレス欄にコピペしたブックマークを新規作成。その際、頭の方のXXXXXXAmaiSaetaを、自分のはてなIDに書き換える事。

ついったーコピィ

javascript:(function(){var h='AmaiSaeta';window.open('http://copie.hatelabo.jp/'+encodeURI(h)+'/banner.create?title='+encodeURI(document.evaluate('//*[@class="entry-content"]/text()',document.getElementById('content'),null,XPathResult.STRING_TYPE,null).stringValue)+'&target_uri='+encodeURI(location.href),'_blank');})();

で、はてなコピィにpostしたいstatusのページで、先程登録したブックマークレットをポチッとな。

この時、はてラボにログインしていないとはてなコピィのトップに飛ばされるだけなので注意

[ついったーコピィテスト(1): Twitterのstatusページ] たとえば、このstatusページで使うと……

[ついったーコピィテスト(2): はてなコピィ投稿ページ] こうなる

注意事項

ちょっと専門的な話だけど、このブックマークレットではHTTPのGET METHODを使ってる。はてなコピィの本来の仕様はPOST METHODなんで、そのうち使えなくなるかもしれない。もしそうなっても、天井冴太は一切の責任を負わない。あしからず。

同様に、TwitterのstatusページのHTMLの構成が変わっても使えなくなるかも。そっちは気付き次第(そしてそのときヒマであれば)対応したい。

対応環境

以下のwebブラウザにて動作確認。全てWindows用日本語版。IEは内部で使っているdocument.evaluateが無いので無理IEだらしねぃな。

  • Mozilla Firefox 3.0.10
  • Opera 9.6.4 Build 10487
  • Safari 4.0 (530.17)

更新履歴

1.00.20090613
初版公開

TODO

  • はてなID入れたら、そのID用のブックマークレットを吐くフォームでも用意したいな……
  • ブックマークレットを使用したページがTwitterのstatusページか否かの判定処理
はてなコピィのトップに飛ばされるだけなので注意
2009年6月13日現在の仕様においては。はてなの中の人が編集したら、勿論それ以外の挙動になることもあり得る。
posted by 天井冴太 at 11:48 | Comment(0) | TrackBack(0) | 自作ソフト | このブログの読者になる | 更新情報をチェックする
投票お願いします 人気blogランキング - 投票する
2009年03月25日

ffbadge.js - FriendFeedに登録しているサービスを一覧表示するブログパーツ

FriendFeedがサービス終了した為、当ブログパーツの開発は終了しました


[ffbadge表示イメージ] FriendFeedに登録しているサービスを一覧表示するblogパーツ作った。サーバなんて持ってないからJavaScript製だよ!JavaScript使えるblogサービスでどうぞ。

これって何?

FriendFeedに登録しているサービスを一覧表示する。ついでに登録ニックネームとアイコンも。

FriendFeed公式で類似のモノが提供されているが、サービスのタイトルを表示出来る点が異なる。

JavaScript製なのでJSの設置が許可されていないblogサービスでは使用できない。あしからず。

使い方

下記リンクから書庫をダウンロード、適当な場所に展開する。

ffbadge.js内の、

var ffBadge_ACCOUNT_NAME = 'amaisaeta';

……の、amaisaetaの部分を自分のFriendFeedのアカウントに変更する。

編集したffbadge.jsと、top_bottom_bg1.gif、ffbadge.css、ajax-loader.gifをweb上の適当な場所にアップロード。勿論設置先のblogからアクセスできる場所に。

そして、設置したい場所のHTMLコードに以下のコードを追加。

<script src="(アップロード先)/ffbadge.js" type="text/javascript" charset="utf-8"></script>

ね?簡単でしょ?

開発の動機というかなんというか

あっちこっちのwebサービス使ってて、しかもそれが外部に公開する形式のものだったりすると、それをリスト化して一覧表示しておきたい。例えばこのblogから他の利用サービスへのリンクを貼ったり。そんなのblogのサイドバーにでもリンク列挙しとけばいい話だけど、複数のwebサービスに列挙するならば、何処か一カ所でリストを管理しないと追加削除が面倒くさい。ちょうど最近FriendFeedのアカウント取得したし、じゃあここを使おうか、と。幸いWeb APIも有るし。

本当はSkypeとかメールアドレスとかも出せればいいんだけど、FriendFeedにはそういう項目は無いし。……え?iddy?あれはTwitter登録できないから論外^^

ライセンス

MITライセンス(X11ライセンス)で。

The MIT License

Copyright (c) 2009 AmaiSaeta

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

……まぁ、日本語訳についてはOSIの日本語訳を参照。あくまで『参考訳』なのでそのつもりで。

ダウンロード

更新履歴

1.11.2014.0316
URLが"http's'"スチームのページのタイトルが表示出来ていなかった問題を修正
1.10.20120312
各サービスのタイトルが取得出来なかった場合、URLのドメイン部分を出力するよう修正
各サービスのタイトル中に文字参照が在った場合、本来の文字として出力するよう修正
各サービスのタイトル中に比較演算子("<",">")に囲まれた文字列が含まれていた場合、それをHTMLのタグとして評価しないよう修正
その他コード整形等
1.0.20090323
初版公開

既知の問題

  • 各サービスのタイトル取得失敗時、HTTPエラーコード及びその説明文がタイトルとして表示される
    内部で使用しているタイトル取得API for JSONPの仕様だが、どうにか対処したい。
  • XML(XHTML)文章で何も出力されない場合が在る
    document.write()が利用出来ない為。仕様変更(利用方法の変更)が必要になると思われるので、次のメジャーバージョンアップ時に対処する予定。

TODO

  • 各サービスのタイトルにマウスオーバー/選択した際に最新の更新内容を数件表示するようにしたい。
  • 今後、独自サーバ取得するような事になった場合は、JavaScript製からサーバサイドスクリプト(PerlとかRubyとか)製へ変更。

謝辞

FriendFeedの中の人達
このblogパーツの基幹となるwebサービス、FriendFeedの開発者に感謝。ついで言うと、このblogパーツ相当の機能を持つブログパーツを作っていてくれたらわざわざ開発しないで済んだんだけどね;-)
りょーち
登録サービスのタイトル取得に、りょーち氏作成のタイトル取得API for JSONPを利用している。これがなければ、わざわざタイトル取得の為だけに登録サービスのHTMLを拾って来なければならないところだった。
Ajaxloadの中の人
ローディングイメージに、このサービスで生成したGIFを利用させて貰った。
Web API
とあるwebサービス上の情報をプログラムから取得する為の手続き(のようなモノ)、って説明でいいのかなぁ。
FriendFeedにはそういう項目は無いし
そもそも本来そういう使い方を想定したものではない。
Twitter登録できない
正確には、『登録しようとするとエラーになる』。
TwitterのRSSが登録できません | ヘルプ | iddy参照。
posted by 天井冴太 at 19:00 | Comment(0) | TrackBack(4) | 自作ソフト | このブログの読者になる | 更新情報をチェックする
投票お願いします 人気blogランキング - 投票する
2006年10月27日

vcslncnv.vbs - Visual C++のソリューションファイルを別バージョンのVisual C++用に変換する

イメージを追加

ソフト紹介

Microsoft社の開発環境Visual C++(.NET以降)のソリューション(拡張子.sln及び、それで使っている.vcproj)を無理矢理別バージョン用のものに変換します。

私は、自宅では(無料の(^^; )Visual C++ 2005 Express Editionを使っていますが、私の在籍している専門学校の環境はVisual Studio .NET 2003です。2005で、2003用のものを2005用に変換すると2003では使えなくなってしまいます。

両環境用にそれぞれ.sln、.vcprojを用意しておけばいいのですが、その場合ファイルの追加削除・設定の変更をそれぞれに対して行わなければならず非常に面倒です。

このコンバータで変換をかける事で面倒な管理作業から開放されます。(多分)

ダウンロード

ver:1.11

その他詳細
posted by 天井冴太 at 22:26 | Comment(0) | TrackBack(1) | 自作ソフト | このブログの読者になる | 更新情報をチェックする
投票お願いします 人気blogランキング - 投票する
2006年08月15日

sendtoViX.vbs - 画像ビューアViXを、ファイルなら画像ウィンドウ(だけ)で、フォルダなら通常ウィンドウで表示する

イメージ画像をアップ

ソフト紹介

フリーソフトの画像ビューア『ViX』に、任意のファイル/フォルダを渡すソフトです。

ViX表示例ViXはファイラとしての機能も持ち合わせています。ViXでフォルダを開いた時はそれで構いませんが、只単純にViXにファイルを渡した時は画像と共にそのファイルが存在するフォルダのサムネイル一覧も表示してしまいます。やはり画像ファイルを渡した時はそのファイルの表示だけを行ってファイラとしてのウィンドウは表示しないで欲しいものです。

このソフトは対象をViXで開きますが、その際、対象がファイルならば画像ウィンドウによる表示のみを、フォルダ又は書庫ファイル(ViXの設定で『書庫ファイルをフォルダのように操作』をチェックしている場合)ならば通常ウィンドウによるファイラ表示を行うように自動的に切り替える働きをする、簡単な『クッション』として働きます

ダウンロード

ver:3.00

その他詳細
posted by 天井冴太 at 21:07 | Comment(0) | TrackBack(0) | 自作ソフト | このブログの読者になる | 更新情報をチェックする
投票お願いします 人気blogランキング - 投票する

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。