2012年ふりかえり

2012年のふりかえりが流行ってるっぽいので簡単にふりかえっておこうかなー。

ガジェット総入れ替え

全然気付いてなかったんですが、今メインで持ってるガジェットが一通り今年買ったやつみたい。

N903i / Galaxy S2 / iPhone 3GS / 初代iPad / Kindle 4th / Macbook Air Late 2010

だったのが、

P-03B / Xperia GX / iPhone 4S / Nexus 7 / Kindle Paperwhite / Macbook Air Mid 2012

といつの間にか切り替わってたっぽいです。 Kobo? なにそれ、美味しいの?

CandyCane にコミットした

普段あんまりオープンソース的な活動してなかったんですが、 CandyCane 本体には今年の 5/17 のコミットを最初に40回ほどコミットしました。

1
2
% git shortlog -sn | grep hamaco
10:    40       hamaco

CandyCane には本体のコミットよりプラグインてきとーに作ったほうがネタになった気がします。 作ったプラグインはこんな感じ。まあ大半が Redmine の同名プラグインのパクりかネタプラグインですね。

まあ、CandyCane 以外のにもコミットしたりしたけど、バグちょこっと直したとかがメインで CandyCane ほどコミットしたのはないかなぁ。

アニメ見るようになった

昔はボチボチアニメ見たりしてたんだけど、ここ数年まったく見てませんでした。 でも、あにみた!っていうサービスが夏頃でたのと、同僚からオススメされたのを切っ掛けにまた見るようになりました。

結構アニメ見てる知り合い・同僚いたり、プレゼンでネタとしてでてくるので、これは結構話のネタになったりして良い感じでした。

イベントのスタッフ初めてやった

手伝いとかその程度のことは今までやってきたことあったけど、スタッフ自体をやったのは今年が初めてでした。 「PHPカンファレンス 2012」の当日スタッフやったとか「XOOPS Cube CONFERENCE 2012」のやり取り眺めてたとかその2つかな?

(追記:2013-01-03) 完全に忘れてたけど、WordBench東京もスタッフやってました。

おしまい

意外とこうやって振り替えってみると、去年までビールを飲む以外に何やってたのかが気になりますね。

来年はもうちょっとブログでふりかえれるような活動していきたいかなぁ。

CandyCane API実装中

このエントリは、CakePHP Advent Calendar 2012の9日目です。8日目は@junichi_11さんの「NetBeans plugin の改善点」でした。

はじめに

普段仕事でCakePHPをメインに使ってるとかそういったことがまったくなく、私がCakePHPをネタにする時は大体CandyCaneネタなので、今回もCandyCaneネタでいきたいと思います。

REST API

RedmineにはREST APIというものがあって、XMLやJSON形式でチケットの一覧が見れたり、チケットの登録などの作業がRedmineのWebページを使わずにできるようになっています。 ここで紹介するだけあって、もちろんCandyCaneには実装されてません(でした)。

そんな訳で一部APIをさっき実装してみました。 今回は git-issue というRedmineのチケットを表示・編集できるツールが使えるようにしたいというのを目標に実装してみたので、それの動作をRedmineとCandyCaneで比較しつつ紹介していきたいと思います。

API keyの作成

API keyの作成部分はCandyCane側は今の所APIをOFFにできないくらいで基本的な作成方法は同じになっています。 個人設定ページの右サイドバーにAPI keyの表示・作成がある感じですね。

Redmine

CandyCane

git-issueの設定

一応git-issueの初期設定も簡単に書いておきます。 git-issueを使いたいプロジェクトの中で以下のようにコマンドを打つとgit issueサブコマンドで色々できるようになります。 type以外の部分は自分のCandyCane/Redmineのに合わせて変えて下さい。

1
2
3
4
5
% git config issue.type redmine
% git config issue.url http://candycane.hamacbook.local/
% git config issue.apikey e9897fd4de9570b5d61744d8ab1e18b796615e5b
% git config issue.repo candycane
% git config issue.user hamaco

チケットの一覧表示

CandyCane/Redmineに登録されているチケットの一覧が表示できます。

Redmine

CandyCane

チケットの詳細表示

CandyCane/Redmineに登録されているチケットの詳細が表示できます。

Redmine

CandyCane

チケットの登録

ここが一番やりたかったのですが、時間がなくなってしまったのと、git-issueがチケット登録時にJSONでデータを渡していて、CakePHPで上手いやり方が分からなかったので実装できてません……

最後に

まだまだ全然できてないですが、一応多少作ったので紹介してみました。まだ本家にpull requestを投げてないので、今はここのブランチをチェックアウトしてくると試す事ができます。

明日は@yandodさんです。よろしくお願いしますー。

SpeakerDeckのスライドを操作するvimperatorプラグイン書いてみた

slideshare.js プラグインが便利で、SpeakerDeck でも同じ様に h/l でスライドをめくりたかったので slideshare.js を参考にプラグイン書いてみた。

まだ vimperator のプラグイン良く分かってなくて、PLUGIN_INFO だか INFO だかを書いたほうが良いっぽいんだけどどっちが正しいのかが分からなかったので書いてない……

ブログのテーマを変更してみた

久し振りに Octopressのテーマ一覧 を見たら結構テーマが増えていたのでテーマを変更してみました。

今回は一番上にあった greyshade っていうテーマを入れてみたのですが、ちょっとだけ面倒だったのでメモメモ。

インストール

インストール自体は他のテーマと同じ感じでOK。

1
2
git clone git://github.com/shashankmehta/greyshade.git .themes/greyshade
rake install['greyshade']

リンクカラー設定

このテーマはリンクカラーを自分で決めないといけないみたいなので _colors.scss に $greyshade: {color} を追加します。 今回はこのテーマのデモページと同じ色にしてみました。

1
echo "\$greyshade: #2571B8;" >> sass/custom/_colors.scss

プロフィール画像設定

結構目立つ所にプロフィール画像が表示されるので source/images/dp.jpg に自分のプロフィール画像を配置します。

1
cp {my_profile}.jpg source/images/dp.jpg

見た目修正

ヘッダー部分のソーシャルアイコンが以下の画像のように微妙に変な位置に表示されてしまっていたのでちょこっとだけテンプレートを編集します。

といっても source/_includes/header.html の7行目からalignleftを取り除くだけですが。

おしまい

後は普通に deploy すれば完了です。

PHP Matsuri 2012に参加してきた

11/3 – 11/4に福岡で開催されたPHP Matsuri 2012に参加してきました。 東京のMatsuriには行ったことがないのでPHP Matsuriの参加は前回の関西に続いて2回目の参加です。

前回PHP Matsuriってのがどんなのか良く分からずなんの準備もなく参加したけど、今回は前回の教訓を生かして事前にLTネタを考えてから参加しま……せんでした。 PHP Matsuriの前のPHP勉強会でネタ決めましたー? 決めてないですーとか会話しつつ何か考えないといかんなー何にしようかなーとか思ってたらいつの間にか当日になってたとかいう状態で去年の反省どこいったのやら。

前日

そんなわけで唯一の去年の教訓を生かして事前に金曜と月曜の有給を取得しておいたので夕方頃に福岡に到着。 しかし、この時点で昼を福岡で食べれるように飛行機とっておけば、一食福岡で食事する機会が増えたのにとちょい後悔。

福岡に着いた時点でXperiaのバッテリーがヤバかったのでホテルで充電してたら、アシアルの変な人がMonacaのセミナーやってるとか言ってたので懇親会目当てに参加したら懇親会にグラハム & ホセが現れたり、3次会まで行ったりとかでホテルに戻ってきたのが朝の4時近くとかいうMatsuriの前日とは思えない時間になってました。 セミナー会場入った時に見えた人に嫌な予感がしたんだよなぁ……

初日

昼から夜の間の記憶がうどんが美味しかったくらいしか残ってないのですが、多分デプロ~イとかあったようななかったような。

夜中1時前くらいから部屋の前の方でファミコンをピコピコやってる音が聞こえてくる中、candycane-repository-browserをある程度形に持っていったり、一緒にファミコンやったりしてました。 ファミコンがあるかもと噂を聞いていたので家にあったなんか良くわからないスーパーマリオブラザーズを持って行ったりしたのですが、マリオをプレイしてそうな時間帯に丁度BEAR.Sundayのワークショップ参加してたので実際プレイしたのかどうかは分からず……

ファミコンやった後丁度LTの申し込み受付開始してたので申し込みして眠たかったので椅子4つ程並べて3時間程寝て初日はおしまい。

二日目

朝起きてちょっとポチポチ弄ってたらgithubのAPI制限に引っかかってしまい何も表示されない状態になったりしつつ細かい所修正したり、もうどうでも良い気分になって諦めたりしてたらいつの間にか時間切れ。

どうせ発表時間3分ないだろうと高をくくってまったく資料とか用意してなかったのに、4分+準備に1分とか凄い長い時間あったので仕方なくshowtime.vimで簡単なスライド作って自作のネタプラグインとかインストールしてLT準備しました。

発表自体は後5秒くらいって所で終わってしまい微妙に残念でしたが、意外とポイントが高かったみたいでスタバのカード(3000円)貰っちゃいました。

完成物

LTで発表したcandycane-repository-browserがいきあたりばったりすぎてCakePHPのPluginとしてちゃんと動いてなかったのを直してから書こうと思ってたらこんなに遅くなってしまいました。

まあまだまだ色々ちゃんと動いてなかったりするので実際に使えるようになるのはもうちょい先だと思うけど、一応Plugin化できたので公開しちゃおうかと。 ちゃんと作ってからだとなんかあんまりPHPMatsuriで頑張った感がなくなっちゃうし。

そんなわけでここで公開してます。

ただ、CandyCane本体を弄ってるのでこの後pull request投げて、取り込まれるまで動かないです。取り込まれ次第candycane-pluginsのリポジトリにpull request投げる予定なのでしばらくしたらプラグインマネージャからインストールできるようになると思います。

既にいくつかIssues書いたりしてるのでボチボチ作業していこうかなぁといった所。

おまけ

ついでなので福岡で食べたものの写真でも載せときます。

mac

新Macbook Airを買ったので設定したことまとめ その2

大分前にその1を書いた、Macbook Airのセットアップまとめ記事 その2。めんどくさくて放置してたんですが、なんかもうMountain Lionが発売されちゃうらしいので、別マシンにMountain Lion入れる時の参考用兼ねて、よく見かけるMacに最初に入れたアプリ20個を紹介してみます。

ちなみに前回はこちら

インストールしたアプリ

前回入れたKeyRemap4macbookとAquaSKKは除外

1.Opera

まあこれを入れなきゃなにも始まらないですよね。戻る・進むが高速だったりどこぞの腐ったブラウザと違って普通にPOSTページのソース見れたり、簡単にHTML弄れたりと基本的な部分が使い易すぎます。 ただ、Operaだとちゃんと動かないページがそれなりに……

2.Firefox

主に開発中のメインブラウザ。携帯ページの開発とかでUA簡単に変更できるFirefoxをずっと使ってます。 ちなみにインストールしたアドオンはこれくらい。

  • 1Password
  • Clearly
  • Evernote Web Clipper
  • Firebug
  • FireMobileSimlator
  • Hatenabookmark
  • Stylish
  • Vimperator

3.Google Chrome

ほとんどFlash見る専用ブラウザ。Windowsマシンだとfacebook見たりとかに使っててたのでインストールしたけど、MacだとSafariで十分なのであんまり立ち上げる機会がない。

4.MacVim

メインで使ってるエディタがVimなのでそれのMac版。もうVimがないと開発とか色々やる気が起きない。 設定はこの辺に置いてあります。

5.YoruFukurou

Twitterクライアント。他に使い易いのがあるかもしれないけどキーバインドとかが自分の好みにあっているのでずっとこれを使ってます。

6.Growl

通知ツール。Lionに入れてからそれなりに暴走するのが困り所。

7.Dropbox

きっと誰もが知ってるクラウドストレージ。なんだかんだで他のに移行するの面倒だし、色んなアプリが対応してたりするのでずっとこれ使ってます。ちょこちょこイベントあったりして容量が増えてくのもGOOD!

8.1Password

パスワード管理ソフト。Windows/Mac/iPhone/Android/WindowsPhoneとLinux以外の自分が使ってる全てのOSに対応している&Opera以外のブラウザAdd-onがあるので、パスワード管理はこれ一択。 いや、まあKeePassとかあるけど、昔使ってた時全体的な使い勝手が悪かったりしたので……

9.Sequal Pro

MySQLのフロントエンドツール。基本コマンドラインでMySQLを操作してたんだけど、普通の人に画面見せたりする時に分かりにくいと思って試しに入れてみたらこれが非常に使い易い。 これのPostgreSQL版とかないかなー。

10.MAMP

買った直後にハッカソンがあったりとかで開発環境必要だったのでとりあえず入れた。PHP5.3も動くし、変なことしないなら案外これだけでもいけるかもしれない。

11.iTerm2

ターミナルソフト。MacデフォルトのTerminalだとなんか問題があってこいつ使ってるんだけど理由を覚えていないという…… 基本的にTerminal&Visorの頃と同様に、Command+EnterでHotkey Windowsがでるようにして使ってます。

12.homebrew

パッケージマネージャ。 yumとかaptみたいなやつ。macportsより楽に使えるのでこっち使ってる。

13.Horst

hostファイルをGUIで管理できるようになるツール。今迄普通にTerminalで/etc/hosts弄ってたんだけど、LionになってHorstが使えるようになったので試しに使用中。 起動時に毎回ウィンドウサイズがリセットされる以外はまあボチボチ使い易いかな。

14.BetterTouchTool

細々した機能があるツールをいくつも入れるのが面倒だったので、まとめて導入できるこいつを使ってます。 Windows7風にキーボードで画面サイズ最大化とか、Opera以外のブラウザでロッカージェスチャ(TipTap)有効化にするとかそんな感じでちまちましたやつをいくつか設定してます。

15.Alfred

ランチャー。QuickSilverが更新されてなかったのとなんだったか問題があってしばらく前にこれに乗り換えた。まだ普通のランチャー機能+ホットキーでのLockくらいしか使ってないけど……

16.Caffeine

Macのスリープを防止してくれるソフト。普段メインマシンはWindowsなので、Macがしょっちゅうスリープして面倒だったので入れてます。後はイベントの時とかにONにしておくとプレゼンしてて、気が付くと画面真っ黒とか防いでくれるので便利。ON/OFFするの忘れるのが一番の困りもの。

17.OmniFocus

TODO管理ソフト。他にも色々あるんだけどなんか良く名前を聞く気がしたので使用中。

18.SimpleCap

スクリーンショットツール。最低限必要な機能があったのと、角丸で撮ることとかができたので基本的にはこれを使ってます。基本的にスクリーンショット加工しないのでこれで十分。

19.Transmit

FTPとかのファイル転送クライアント。なにかのタイミングで安く手に入ったのと、リモートとローカルを同期してくれたりして細かい所が便利だったので使ってます。最近だとディスクとしてマウントできたりするのでさらに便利になってるけど、FTPとかWebDAV関係使う機会もなくなってきたのであんまり活躍する所がなくなってきてる。

20.iStat Menus

リソースモニタリングソフト。メニューバーから簡単にCPU使用状況とか見れるので便利。Memory・CPU・Date&Time・Batteryの4つ表示して使ってます。 ちなみに関係ないアプリですがiStat ProというDashboard用のモニタリングソフトも一応入れてたりします。

終わり

とりあえずインストールしたのはこのくらい。 まあ現在はお試しで入れてみたり、仕事で必要になったアプリとか入れてますが必ず入れるのはこの辺かなーと。

Firefox OSを試してみた

Firefox OSが試せるらしいので試してみました。まあ参考サイトまんまですが一応メモ。 基本的に全てのコマンドでデカいファイルDLしたりしてそれなりに時間が掛かるので何か作業やりながらとかやると良いと思います。

インストール

Windowsだと動かないとかいう話を聞いたりするのでUbuntu 12.04で試してみました。Mac? 知らん。

ダウンロード

ここからWindows/Mac/Linux用のファイルがDLできるのでDLして解凍する。20MBくらいあってそれなりにDLに時間掛かります。

1
2
wget http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central/b2g-17.0a1.en-US.linux-i686.tar.bz2
tar xf b2g-17.0a1.en-US.linux-i686.tar.bz2

プロファイル作成

それなりに長いb2gのDLが完了したらMozillaスマフォのUIであるGaiaなるもののprofileを作成する。こっちはひたすら時間が掛かるので実行後放置推奨。

1
2
3
cd b2g
git clone git://github.com/mozilla-b2g/gaia
make -C gaia profile

起動

プロファイルの作成が終わったら後は起動するだけ。

1
./b2g -profile gaia/profile

以下テキトーにスクショ

ロック画面

ホーム画面

通知バー

Androidっぽい通知バーも一応ある。出し方も一緒

ブラウザ

なんかブラウザでページ表示させると上2/3くらいが真っ黒になるのは自分だけだろうか。

メール

メールも一応ある。流石になにかあったら怖いので自分のアカウントは入れてないけど。

カメラ

カメラはあるけどやっぱり真っ暗。

マウスカーソルの存在忘れてたorz

参考サイト

Firefox OS を試す | Mozilla Developer Street (modest)

Macのtmuxでクリップボードを使えるようにする(主にVimの為に)

MacOSXのtmuxだとpbcopy|pbpasteが正常に動作しないみたいで、CUI版のVimでset clipboard=unnamedしているとpでペーストする際にE353: Nothing in register *とかエラーがでてペーストが一切できなくなってしまいます。 常にGui版のMacVimでも使っていれば良いのですが、流石にCUI版を一切使わない or ペーストしない生活は私には出来ないのでちょっと調べてみたら結構簡単に対処できたのでメモ。

やり方

ChrisJohnsen/tmux-MacOSX-pasteboardを使うと簡単にできるみたいです。READMEに書いてあるままやってるだけなのでそのままそっち見ながらやった方が楽かもしれない。

プログラムのコンパイル

普通にgitでcloneしてきてからmakeして、PATHの通った所にファイルを置きます。

1
2
3
4
git clone https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard.git
cd tmux-MacOSX-pasteboard
make reattach-to-user-namespace
cp reattach-to-user-namespace ~/bin/

別にmakeだけでも実行ファイルできあがりますが、ついでにtestとかいうのもmakeされるので、READMEに書かれてる通りmakeに引数渡してます。

tmuxの設定

次に.tmux.confに以下の内容を追加。

1
set-option -g default-command "reattach-to-user-namespace -l zsh"

できた

これで準備は完了。後はtmux kill-serverとかやってtmux立ち上げ直すとdate | pbcopyとかで結果がMacのクリップボードに入るようになっているはず。 無事クリップボードが使えるようになったら、Vimでもset clipboard=unnamedしている状態でコピペが動作するようになっているのを確認して終了!

参考サイト

Mac の tmux でクリップボードを使う。 – こせきの技術日記

mac

新Macbook Airを買ったので設定したことまとめ その1

ディスク容量やらメモリやら普通に使う上で不便になってきたので新しく発売されたMacbook Air 13inchを買いました。 で、OSもLionになったしどうせだから最初から設定してみるかーってことになったのでその時のメモを何回かに分けてまとめてみます。

初期設定

ことえりとか意味の分からないもの使わないのでUSを選んだ以外はまったくもってふつーだと思うので省略。

最低限必要なアプリ導入

まあ、真っ先にインストールしたのはOperaとMacVimなのですが、インストールしたアプリは後日まとめるとして環境設定系でとりあえず必須のKeyRemap4MacBookとAquaSKKをインストールしました。

システム環境設定

後はひたすら1個ずつ確認しながらシステム環境設定をちまちま弄ります。

デスクトップとスクリーンセーバー

壁紙を自分の好きなのに変更し、半透明メニューバーをOFFす。 そしてスクリーンセーバーをFlurryに変更し、開始時間を5分に。

Dock

元々狭い縦が狭くなるの嫌いなのでDockを左に移動して最小化。

Mission Control

ホットキーの設定をSnow Leopardの頃と同じにしてみた。ただ、ジェスチャが揃ってるので不要になるかも。

言語とテキスト

入力ソースでAquaSKKを有効にして、一生使うことのないであろう入力ソースのショートカットを無効化。

セキュリティとプライバシー

一応なにかあった時の

Spotlight

SpotlightなんてどうせGrowlで被るし使わないのでキーボードショートカットOFF。

キーボード

JISキーボードのCapsLockはDelayもなく誤爆しやすいし、CapsLockなんて使わないのでアクションなしに。ここでキーリピートとか変更したけど実は意味なかったりもする。

トラックパッド

全てのチェックを入れて軌跡の速さをMAXに。

共有

デフォルトのコンピュータ名が酷いので変更する。

KeyRemap4MacBook

とりあえず今の設定はこんな感じ。

  • US配列
  • SandS
  • かな –> Enter
  • 英数 –> ESC
  • 右Shift –> ^と&

さっきキーボードの設定でキーリピート弄ったけど、結局それでも遅くてこっちで設定した。

AquaSKK

eskkがEnterで改行しないようにしてないと安定しないのでそれに合わせるのと、邪魔な現在の入力モード表示をOFF。

補完はやっぱり欲しいのでON。

まとめ

システム環境設定は今の所こんな感じにしています。導入したアプリーケーションとかはある程度落ち着いたらその2とかでまとめます。

CandyCaneでギャル文字

最近ギャル文字が流行っているらしいのでCandyCaneでもギャル文字が使えるプラグイン作った。

hamaco/candycane-gal – GitHub

http://github.com/hamaco/candycane-gal

インストール

まだ、CandyCaneのプラグイン一覧に登録されていないので以下の様な感じでgithubから持ってくる必要があります。

1
git clone https://github.com/hamaco/candycane-gal.git app/Plugin/CcGal

インストールはこれで終わり。 これだけでチケットの説明やコメント等が全部ギャル文字になります。

スクリーンショット

参考までにギャル文字プラグインを入れる前と入れた後のスクリーンショットを貼っておきます。

Before

After

参考サイト

Big Sky :: Vimでギャル文字

CandyCaneのチケット作成での誤爆を防ぐプラグイン書いた

CandyCane でチケット作成してて、タイトルで Enter キーを連打して書きかけのチケットを作って、うがぁあああ、ってなったことありませんか?

私はありません。

ですがその様な人がいるかもしれないようなので、こんな悲しい思いを繰り返さないためのプラグインを作りました。

ソースコード

hamaco/candycane-enter-cancel · GitHub

謝罪

すみません、このサイトのRedmineプラグインをパクりましたm(_ _)m

Redmineのチケット作成での誤爆を防ぐプラグイン書いた – すえひろがりっっっっ!

RedmineのテーマをCandyCaneで使ってみた

プラグインは言語が違うので無理ですが、テーマなら言語関係ないのでRedmineのがCandyCaneでも使えるんじゃないかと思って試してみました。 今回はRedmine Themeで検索して上の方にでてきたfarend basicをCandyCaneで使ってみます。

テーマのダウンロード

まず、テーマをダウンロードするのですが、RedmineとCandyCane(CakePHP)ではテーマのディレクトリ構成など多少違うのでそのままダウンロードするだけだと動きません。 なので、CakePHPの規則に従った形でテーマを用意します。

1
2
$ cd {CANDYCANE_ROOT_DIR}
$ mkdir -p app/webroot/themed/farend_basic/css

次にテーマのcssをダウンロードしてきます。

1
2
$ cd app/webroot/themed/farend_basic/css
$ wget https://raw.github.com/farend/redmine_theme_farend_basic/master/stylesheets/application.css

今回のはcss1個だけなのでディレクトリ作ってcssだけダウンロードしてきましたが、テーマに画像などが含まれている場合はzipファイルとかでダウンロードしてきたあとcssの入っているディレクトリを変更するのが簡単だと思います。

テーマの修正

CandyCaneはデフォルトのapplication.cssを読み込んだ後にテーマのcssを読み込む為、テーマのcss内にあるapplication.cssの読み込み処理を削除(コメントアウト)します。そもそもPATHが違うのでエラーでちゃいますし。

application.css
1
/* @import url(../../../stylesheets/application.css); */

テーマの設定

テーマファイルを設置したら後はCandyCaneの画面上でfarend basicテーマを使用するよう設定します。 管理の設定からテーマのセレクトボックスでfarend_basicを選択すると、さっきDLしてきたfarend_basicが使えるようになります。

このテーマは基本的な所は変わらないので分かりにくいですが、チケットの一覧ページに行くと優先度に応じて色が付いているのが分かると思います。

書いてから投稿までに数日経ってしまったのでちょっと他のテーマも動かしてみました。Redmineのテーマ一覧一覧の一番上にあったA1 themeっていうテーマです。これもfarend basicと同じやり方で使えます。

終わりに

こんな感じで比較的簡単にRedmineのテーマが使用できるのでライセンス的に問題のないやつがあればCandyCane用にコンバートしてみたり、Redmineのテーマを参考にCandyCaneのテーマを作ってみてはどうでしょうか。

TokyoVim #7に参加してきた

前日会社の人達と飲んで終電を逃したのと、会社から歩いて10分くらいの所だったので飲み会終わった後に参加決めてTokyoVim #7に参加してきました。

初参加でどういうイベントか良く分かってなかったのとまったく何も考えてなかったのでとりあえず自分の.vimrcの整理をすることに。

あまり考えてなかったので.vimrcを上から見ていって、ずっと放置してて大半の設定がなくなってたneocomplcacheの設定したり使ってないプラグイン削除したりネタプラグインをNeoBundleLazyでロードするようにしたりしました。

neocomplcacheの設定見直してる辺りで時間がなくなったのと気力が切れたのであと何回か頑張らないといけなさそう。

シャイなのであまり話さず、基本的に全部Twitterで呟いたので特別言うことがない。

おわり。

jsx

JSXをインストールしてちょろっと触ってみた

jsx.vimがあったので多少変更

今朝TwitterのタイムラインでJSXなるものが話題になっていたのでちょろっとインストールしてみた。

インストール

JSXにはnode.js / npmが必要なのでインストールする。今回はお試しで入れたのでaptitudeからインストールする。

1
$ s aptitude install npm

まずはJSX本体がないと話にならないのでgitからcloneしてくる。

1
2
$ git clone https://github.com/jsx/JSX.git
$ cd JSX

READMEに従ってインストールする。

1
$ make setup

以下のようなのがずらずらでてくるので暫く待つ。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
npm install
npm http GET https://registry.npmjs.org/browserbuild
npm http GET https://registry.npmjs.org/source-map
npm http 200 https://registry.npmjs.org/source-map
npm http GET https://registry.npmjs.org/source-map/-/source-map-0.1.0.tgz
npm http 200 https://registry.npmjs.org/browserbuild
npm http GET https://registry.npmjs.org/browserbuild/-/browserbuild-0.4.9.tgz
npm http 200 https://registry.npmjs.org/source-map/-/source-map-0.1.0.tgz
npm http 200 https://registry.npmjs.org/browserbuild/-/browserbuild-0.4.9.tgz
npm http GET https://registry.npmjs.org/commander
npm http GET https://registry.npmjs.org/debug/0.6.0
npm http GET https://registry.npmjs.org/requirejs
npm http 200 https://registry.npmjs.org/requirejs
npm http GET https://registry.npmjs.org/requirejs/-/requirejs-2.0.0.tgz
npm http 200 https://registry.npmjs.org/debug/0.6.0
npm http GET https://registry.npmjs.org/debug/-/debug-0.6.0.tgz
npm http 200 https://registry.npmjs.org/commander
npm http GET https://registry.npmjs.org/commander/-/commander-0.5.2.tgz
npm http 200 https://registry.npmjs.org/requirejs/-/requirejs-2.0.0.tgz
npm http 200 https://registry.npmjs.org/debug/-/debug-0.6.0.tgz
npm http 200 https://registry.npmjs.org/commander/-/commander-0.5.2.tgz
Bbrowserbuild@0.4.9 ./node_modules/browserbuild 
├── debug@0.6.0
└── commander@0.5.2
source-map@0.1.0 ./node_modules/source-map 
└── requirejs@2.0.0
perl web/setup.pl
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:06 --:--:--     0
100  320k  100  320k    0     0  39278      0  0:00:08  0:00:08 --:--:--  343k
--> Working on String::ShellQuote
Fetching http://www.cpan.org/authors/id/R/RO/ROSCH/String-ShellQuote-1.04.tar.gz ... OK
Configuring String-ShellQuote-1.04 ... OK
Building String-ShellQuote-1.04 ... OK
Successfully installed String-ShellQuote-1.04
--> Working on JSON::PP
Fetching http://www.cpan.org/authors/id/M/MA/MAKAMAKA/JSON-PP-2.27200.tar.gz ... OK
Configuring JSON-PP-2.27200 ... OK
Building JSON-PP-2.27200 ... OK
Successfully installed JSON-PP-2.27200 (upgraded from 2.27105)
2 distributions installed

bin/jsxにファイルができあがるのでこれでインストールは終わり。

Hello World!

試しにhello worldを実行してみる。一度jsファイルで出力してnodeで実行する。

1
2
$ ./bin/jsx --executable --output hello.js example/hello.jsx
$ node hello.js

また一々jsファイルを作成しなくても以下のようにすれば実行できるみたい。

1
$ ./bin/jsx --run example/hello.jsx

jsx.vimのインストール

jsxのVim用syntaxファイルが実はあるみたいなのでインストールする。自分はNeoBundleを使用しているのでNeoBundleでインストールした。

.vimrc
1
NeoBundle 'git://github.com/jsx/jsx.vim.git'

.vimrc書いて:Unite neobundle/install:NeoBundleInstallでインストールができる。

quickrunの設定を書く

まあ毎回コマンド叩くの面倒だよねってことでquickrunから一発で実行できるようにしてみる。

まずはJSXをPATHの通った所(自分の場合は$HOME/app/*/bin)に配置する。 jsxファイル単体をbinの中に置いても動作しなかったのでgit cloneしたやつ丸ごと移動させた。

.vimrc
1
$ mv JSX ~/app/JSX

次に.vimrcに拡張子がjsxのファイルの扱いを設定する。syntaxファイルがないのでとりあえずjavascriptのが有効になるようにしてみた。syntaxファイルあったので修正。

.vimrc
1
2
3
4
5
let g:quickrun_config = {}
let g:quickrun_config['jsx'] = {
          \ 'command': 'jsx',
          \ 'exec': ['%c --run %s']
          \ }

後はテキトーにjsxファイルを開いて<Leader>rを押すとそのまま実行されて結果が表示されるようになる。

shadow.vimで使ってみる

こんな感じでコードの最初の行にshadow.vim向けの1行を追加したshdファイルを作成した後vim hello.jsと.shdなしのファイルを開くと自動的に.shd付きのファイルが開かれ、保存時に自動でjsにコンパイルされたものがhello.jsに保存されます。

hello.js.shd
1
2
3
4
5
6
7
8
9
10
// jsx /dev/stdin

class _Main {
  static function main(args : string[]) :void {
      log "Hello, world!";
  }
}


// vim: set ft=jsx :

しかしこれやってみたけど、できあがるファイルに/dev/stdinとか入るから複数ファイル使うような時に使えないような気がしないでもない。

Firebugのコマンドラインのフォントをカスタマイズした

多分誰かのはてブとかにあったんだと思うけど、Firebugのコマンドラインのフォントを変更してるサイトを見かけて、そういえばFirebugのコマンドラインの文字ってめっちゃ小さくて読みにくいなーとか思い出したので、stylishでフォントの設定してみました。
参考サイトそのままじゃダメだったので調べたついでにコマンドラインだけじゃなくコマンドエディタとかコンソールの表示部分とかもついでに調べて最終的に以下の様な感じに。

firebug-commandline-custom.css
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/**
 * コマンドライン
 */
textbox#fbCommandLine {
    font-size: 13pt !important;
    font-family: "Rounded M+ 1m" !important;
}

/**
 * コマンドラインの補完候補
 */
#fbCommandLineCompletion {
    font-size: 13pt !important;
    font-family: "Rounded M+ 1m" !important;
}

/**
 * コマンドエディタ
 */
#fbCommandEditor {
    font-size: 13pt !important;
    font-family: "Rounded M+ 1m" !important;
}

/**
 * コマンドエディタツール
 */
#fbCommandToolbar {
    font-size: 11pt !important;
    font-family: "Rounded M+ 1m" !important;
}

/**
 * コンソールログ
 */
.panelNode-console {
    font-size: 10pt !important;
    font-family: "KugimmyAA" !important;
}