読者です 読者をやめる 読者になる 読者になる

tmux + iTerm2とクリップボード

重い腰を上げてついにLionにアップデート。せっかくなので設定周りもちょっと見直した。そこでゆろよろさんの日記を参考に設定をしていたんだけれども、もうすこしショートカット出来るようなのでその手順をば。

tmuxのインストール

何はともあれtmuxのインストール

$ brew install tmux

reattach-to-user-namespaceのインストール

どうも今はHomebrewで用意されてるようなので、こちらもさくっと入れられる。

$ brew install reattach-to-user-namespace

.tmux.confの編集

あとは↓を.tmux.confに書くだけ。

素朴な疑問

viバインドでコピーモード時に選択モードに入るにはSpaceなんだけどこれをvに当てる方法ないのかなぁ?
viバインド時のコマンドをごにょごにょする方法が分からん・・・。

Geminaboxをhttpsなnginxプロキシ+apacheで使う

geminabox

備忘録的にクイックメモ

こんな構成

 user -(https)-> nginx -(http)-> apache(passenger) 

nginxのconf

    location /geminabox {
        proxy_set_header Host                   $host;
        proxy_set_header X-Forwarded-Host       $host;
        proxy_set_header X-Forwarded-Server     $host;
        proxy_set_header X-Forwarded-For        $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto      https; # これがないとgeminaboxがhttpとしてハンドリングしちゃう。
        proxy_pass http://host/geminabox;
    }

apachのconf

<VirtualHost *:80>
  DocumentRoot /u/apps
  <Directory /u/apps>
    Allow from all
  </Directory>

  LogLevel info
  CustomLog ${APACHE_LOG_DIR}/apps_access.log combined
  ErrorLog ${APACHE_LOG_DIR}/apps_error.log

  RackBaseURI /geminabox
  <Directory /u/apps/geminabox>
    Options -MultiViews
  </Directory>
</VirtualHost>

Geminaboxはgemじゃなくてリポジトリのそのまま使った。

$ git clone https://github.com/cwninja/geminabox

RakBaseURIに合わせるためにconfig.ruをちょこっと編集。SCRIPT_NAMEにRackBaseURIに指定したものを入れる。

diff --git a/config.ru b/config.ru
index 397ff92..6700f83 100644
--- a/config.ru
+++ b/config.ru
@@ -1,4 +1,6 @@
 $:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "lib")))
 require "geminabox"
 
+ENV['SCRIPT_NAME'] = 'geminabox'
+Geminabox.data = '/var/geminabox-data'
 run Geminabox

Homebrewで入れたfontforgeを使ってrictyをインストールする

misc

前にちょっと流行った頃にRictyをインストールして使っていたのだけど、別のMacに入れなおす時にはまったのでメモ。

Rictyの基本的なインストール方法については本家なりを参照してもらうとして・・・

  1. brew edit fontforgeして--enable-doubleを外す
  2. brew install fontforge --without-pythonする
  3. sh ricty_generator.sh auto

これでおk。

rvmでreadline, zlib, openssl付きでrubyをインストール

rvm

毎回忘れるのでメモ

# RVMからいれるなら
$ bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
$ rvm pkg install readline
$ rvm pkg install zlib
$ rvm pkg install openssl
$ rvm install 1.8.7 -C --with-openssl-dir=$HOME/.rvm/usr --with-readline-dir=$HOME/.rvm/usr --with-zlib-dir=$HOME/.rvm/usr

zshでmavenの補完まとめ

maven

他人の褌なのだけどハマる人いるかもなんて思ったのでまとめてみた。

zshでmavenコマンドの補完 - Togetter

ちなみに自分のはこんな感じ。教えていただいたsetopt complete_aliasesはrcの方に書いた。

ちなみに

togetterからTwitter記法で引用するのにid:amachangブックマークレットをちょろっと弄って使ってみた。forkして直せばいいんだろうけどなんかInternalErrorになっちゃってforkできなかったので手元で修正。修正箇所はセレクタのとこだけ。

ポトペタ用はこちら。

Apache Maven 3クックブック Javaソフトウェア開発のための特選レシピ集

Apache Maven 3クックブック Javaソフトウェア開発のための特選レシピ集


Apache Maven 2.0入門 Java・オープンソース・ビルドツール

Apache Maven 2.0入門 Java・オープンソース・ビルドツール

30になってしまったので20代を振り返ってみる

misc

25日でついに30になってしまったので、20代を振り返ってみる。

20歳

プログレやるんだぜ!と息巻いて音大に行く直前。歌舞伎町などで遊び歩く。
当時好きだったのはDream Theaterというプログレメタルバンド。

21歳

音大に入ってJazzとか古臭くてやってらんないぜ!と息巻いて2バスの練習などに明け暮れる。Mike ManginiのPrivate Lessonを取ってみたもののこの人はPlayerであってTeacherではないなぁなどと思う。
ちなみにこの頃に生涯彼を超える趣味の合う男には出会わないだろうというやつ細谷紀彰に出会う。

22歳

warr guitarなる楽器を弾くKai Kurosawaに出会ってコンテンポラリジャズの良さに気づく。Ben Monder, Keith Jarret, Peter Erskine, Brad Mehldauなどを聞くようになり、ECMいいじゃん!ってなる。
反面、レガート4分打ちの深淵さに衝撃を受け、この世界には辿りつけないんじゃと思い始める。ちなみに挫折のきっかけとなった曲はPeter ErskineはAs it is収録のGelebe Ascending

23歳

完全なる挫折。某MMOに現実逃避。ゲーム以外のやる気は起きず、好きな音楽も聞かない生活をする。このときのMMOで生涯の友人と言える人たちに出会う。

24歳

当時ホリエモンなどがブイブイ言わせてた時代。これではいかんと思い、ホリエモンを見て時代はITだろ!と息巻いて、2chで調べて特に噂のなかった専門学校に入学する。しかしこの年の専門の授業はバカでも勝手に出来るだろレベルでしかなくて、失望し、自習しつつMMO楽しいなー毎日を送る。

25歳

専門でオブジェクト指向5原則をベースに設計手法、JSFJPAなどを習いJavaの楽しさに目覚める。リフレクションを覚えて俺々フレームワークを作ってみたり、OraclePL/SQLに目覚めてBlobに画像つっこんでヒャッホイしたりと兎に角プログラム三昧の日々。どれだけプログラム三昧だったかというと寝ぼけて当時の相方様といたそうとしだした挙句、なんでこんななってんの?呼び出すメソッド順がちがくない?そんな設計だからこんななっちゃってるんだろ!という暴言を吐いたくらい。

反面就職活動するくらいなら勉強してたいぜ!となった挙句、当時天狗だったため豆蔵くらい余裕だろ!と思い面接に向かい壁の厚さを知るも、俺のことがわかってねーんだなと中二病を患う。その後2つほどの会社を受けるも内定をもらえず。当時専門の臨時講師だった方に今の会社を紹介してもらい、初対面でほとんど何も話していないのに"君ならやれる"とお墨付き?を貰い初の内定をゲットし、ここに決める。

ちなみにこの時教わっていた先生は現在は日本電子専門学校で教鞭を取っておられます。

26歳

天狗になっていたのだけども入社して3日でこの会社ではやっていけないレベルが高すぎると再度挫折しかける。出来ない自分に嫌気が刺し、若干鬱々とした日々を送る。ちなみにMaven,Jenkins(当時Hudson)に出会ったのはこの頃で、先輩のスパルタ教育のお陰もあってか今では社内一のmavenist、jenkinistとなる*1。当時はSQLパズルを解くような仕事をしていて、 @ashigeru にSQLNativeな人とからかわれる*2

27歳

念願の初AshikunepプロジェクトであるYukara Wisdomに参画する。当時TF/IDFやらなんやらと全く勉学に勤しんでいなかった自分には意味不明なアルゴリズムを @ashigeru に尻を叩かれつつもSQLでなんとか実装してみたりなどする。楽しい1年だった。ちなみに当時 @ashigeru に言われてたことがここ1-2年ほどでぼちぼちと理解出来るようになってきた。

ちなみに冬のスノボで腕を折って大目玉を食らうその1。

28歳

AppEngineがリリースされた年。いきなりAppEngineで案件!とかやった挙句本の執筆など想像だにできない日々を送る。本の執筆に至ってはこれであってるの?ほんとに大丈夫?など世に出版されてしまうという恐怖に怯えつつも、 @ashigeru に色々とアドバイスをいただきなんとかかんとか・・・。この1年はAppEngine一色?だった気がする。とはいえやっぱりMavener。27-28辺りはMavenの暗黒面に落ちてたように思う。

この年から登山なども始めるようになり、自然大好き!になる。確かtaicoclub初参戦でSquarepusherを見たりしたのもこの年。

ちなみに冬のスノボで腕を折って大々目玉を食らうその2。
iPhoneをスノボでなくす。

29歳

登山に割と没頭した年。自然綺麗!仕事は普通のSIっぽいことをやりつつ、AppEngineちょっと触りつつ。ビルド構成周りについてあーだこーだ考えてみたりなどした年。会社からMacBookProを与えられ、Linux?Unix?文化の素晴らしさに遅まきながら気づき、CUIに走り始める。
30直前で比較的本格的にRubyを学び始めてLLの素晴らしさ、Rubyの素晴らしさに目覚める。そんなこんなでRuby三昧。

お客様のところではあるもののB2Cな開発に携わる*3開発サイクルをくるくる回せそうな感じの職場で非常にやりがいを感じているなど。

ちなみに冬のスノボで腕はおらなかった!
iPhoneを会社のビルのトイレに置き忘れてパクられる。

30歳

今ここ。

今年は今年で公私ともに凄く転機になりそうな1年。Jenkinsに貢献できそうな糸口も見つけたりで技術的にも色々頑張りたい。

まとめ

波乱万丈な20代だった。これでもかというほどの挫折とそこからの復活。友人たちには感謝してもしきれないくらい。今現在、この環境に立てているのはそれら友人達、専門学校時代の恩師、会社の方々のお陰。この方々には本当に足を向けて眠れない。

これから始まる30代頑張っていきたいと思います。

*1:また天狗気味

*2:そんなにSQLが出来ていたわけではありません

*3:継続中

RVMでJRuby on Rails3

jruby rails

仕事でREST APIっぽいものを持ちつつ、スクレイピングしつつなサポートアプリを作ることになったのでRails使ってみようかなぁとか思い中。ただ運用面でRuby周りのAPサーバが云々とかになると監視だったりが若干厳しいので*1TomcatやらGlassfishやらで動かしたいなーということでJRubyでトライ。

構築して思ったけどやっぱりJVMの起動がある分コマンドが遅い。開発時はrubyで、本番はJRubyでなんてのもやればできるのかな?ちょっとテストを手厚く書くなどしてみて試してみようかな。以下、構築めも。

2011/6/25 追記

$ rvm install jruby-1.6.1

1.9.2APIを利用する為に環境変数を定義。rvm useした際のhookに仕掛けとく。
$HOME/.rvm/hooks/after_useを以下の内容で作成。

case "$GEM_HOME" in
  *jruby*)
    JRUBY_OPTS="--1.9" ; export JRUBY_OPTS
  ;;
esac

お試し用のgemsetを用意。

$ rvm use --create jruby-1.6.1@rails3-try

railsをインストール。3.0.7が最新っぽい?*2

$ gem install rails -v=3.0.7
Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8
Fetching: activesupport-3.0.7.gem (100%)
Fetching: builder-2.1.2.gem (100%)
Fetching: i18n-0.5.0.gem (100%)
Fetching: activemodel-3.0.7.gem (100%)
Fetching: rack-1.2.3.gem (100%)
Fetching: rack-test-0.5.7.gem (100%)
Fetching: rack-mount-0.6.14.gem (100%)
Fetching: tzinfo-0.3.28.gem (100%)
Fetching: abstract-1.0.0.gem (100%)
Fetching: erubis-2.6.6.gem (100%)
Fetching: actionpack-3.0.7.gem (100%)
Fetching: arel-2.0.10.gem (100%)
Fetching: activerecord-3.0.7.gem (100%)
Fetching: activeresource-3.0.7.gem (100%)
Fetching: mime-types-1.16.gem (100%)
Fetching: polyglot-0.3.1.gem (100%)
Fetching: treetop-1.4.9.gem (100%)
Fetching: mail-2.2.19.gem (100%)
Fetching: actionmailer-3.0.7.gem (100%)
Fetching: rake-0.9.2.gem (100%)
Fetching: thor-0.14.6.gem (100%)
Fetching: railties-3.0.7.gem (100%)
Fetching: bundler-1.0.15.gem (100%)
Fetching: rails-3.0.7.gem (100%)
Successfully installed activesupport-3.0.7
Successfully installed builder-2.1.2
Successfully installed i18n-0.5.0
Successfully installed activemodel-3.0.7
Successfully installed rack-1.2.3
Successfully installed rack-test-0.5.7
Successfully installed rack-mount-0.6.14
Successfully installed tzinfo-0.3.28
Successfully installed abstract-1.0.0
Successfully installed erubis-2.6.6
Successfully installed actionpack-3.0.7
Successfully installed arel-2.0.10
Successfully installed activerecord-3.0.7
Successfully installed activeresource-3.0.7
Successfully installed mime-types-1.16
Successfully installed polyglot-0.3.1
Successfully installed treetop-1.4.9
Successfully installed mail-2.2.19
Successfully installed actionmailer-3.0.7
Successfully installed rake-0.9.2
Successfully installed thor-0.14.6
Successfully installed railties-3.0.7
Successfully installed bundler-1.0.15
Successfully installed rails-3.0.7
24 gems installed

sqlite辺りもいれておくのが良さそうなのでいれとく。

$ gem install activerecord-jdbcsqlite3-adapter
Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8
Fetching: activerecord-jdbc-adapter-1.1.2.gem (100%)
Fetching: jdbc-sqlite3-3.7.2.gem (100%)
Fetching: activerecord-jdbcsqlite3-adapter-1.1.2.gem (100%)
Successfully installed activerecord-jdbc-adapter-1.1.2
Successfully installed jdbc-sqlite3-3.7.2
Successfully installed activerecord-jdbcsqlite3-adapter-1.1.2
3 gems installed

railsのお試しアプリを作る。JRubyで使う場合はhttp://jruby.org/rails3.rbを指定しないといけないらしい。

$ rails new rails3-try -m http://jruby.org/rails3.rb
Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8
      create  
      create  README
      create  Rakefile
      create  config.ru
      create  .gitignore
      create  Gemfile
      create  app
      create  app/controllers/application_controller.rb
      create  app/helpers/application_helper.rb
      create  app/mailers
      create  app/models
      create  app/views/layouts/application.html.erb
      create  config
      create  config/routes.rb
      create  config/application.rb
      create  config/environment.rb
      create  config/environments
      create  config/environments/development.rb
      create  config/environments/production.rb
      create  config/environments/test.rb
      create  config/initializers
      create  config/initializers/backtrace_silencers.rb
      create  config/initializers/inflections.rb
      create  config/initializers/mime_types.rb
      create  config/initializers/secret_token.rb
      create  config/initializers/session_store.rb
      create  config/locales
      create  config/locales/en.yml
      create  config/boot.rb
      create  config/database.yml
      create  db
      create  db/seeds.rb
      create  doc
      create  doc/README_FOR_APP
      create  lib
      create  lib/tasks
      create  lib/tasks/.gitkeep
      create  log
      create  log/server.log
      create  log/production.log
      create  log/development.log
      create  log/test.log
      create  public
      create  public/404.html
      create  public/422.html
      create  public/500.html
      create  public/favicon.ico
      create  public/index.html
      create  public/robots.txt
      create  public/images
      create  public/images/rails.png
      create  public/stylesheets
      create  public/stylesheets/.gitkeep
      create  public/javascripts
      create  public/javascripts/application.js
      create  public/javascripts/controls.js
      create  public/javascripts/dragdrop.js
      create  public/javascripts/effects.js
      create  public/javascripts/prototype.js
      create  public/javascripts/rails.js
      create  script
      create  script/rails
      create  test
      create  test/fixtures
      create  test/functional
      create  test/integration
      create  test/performance/browsing_test.rb
      create  test/test_helper.rb
      create  test/unit
      create  tmp
      create  tmp/sessions
      create  tmp/sockets
      create  tmp/cache
      create  tmp/pids
      create  vendor/plugins
      create  vendor/plugins/.gitkeep
       apply  http://jruby.org/rails3.rb
       apply    http://jruby.org/templates/default.rb
        gsub      Gemfile

起動してみる。

$ cd rails3-try
$ script/rails server 
Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8
=> Booting WEBrick
=> Rails 3.0.7 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-06-23 19:44:04] INFO  WEBrick 1.3.1
[2011-06-23 19:44:04] INFO  ruby 1.9.2 (2011-04-12) [java]
[2011-06-23 19:44:04] INFO  WEBrick::HTTPServer#start: pid=9236 port=3000

http://localhost:3000 にアクセス。して見えたらOK!

*1:ノウハウがないので

*2:3.0.9があったでござる