2013/02/26

tweet を中央寄せで blogger に埋め込む

Twitter の tweet は

みたいに埋め込めるのだけれど、デフォルトだと中央に寄ってないのでどーせなら中央に寄せたいなー、と。

上のツイートのリンク先に詳細があるのだけれど、
<blockquote class="twitter-tweet" lang="ja" > 

<blockquote class="twitter-tweet" lang="ja" align="center">
くらいにすると良いみたい。

最初は <center> でやろうかと思ったけれど 非推奨らしい ので。

あと、ツイートの埋め込み方法は ツイートのページ に行って その他 -> ツイートをサイトに埋め込み で html が出てくるので、それを blogger の html に貼りつけるだけ。

Vimperator で マルチバイトな URL を yank する

ブラウザは firefox + vimperator を使ってるのですが、マルチバイトURLを y で yank すると
http://ja.wikipedia.org/wiki/日本語
という感じに。もちろん p できちんと開けるのだけれど、Twitterとかで短縮URL化する時にマルチバイトの部分が無視されちゃったり。
困っていたら @teramako さんから
すると良いよ、とのリプライが。ありがとうございます。

ということで早速 .vimperatorrc に
nnoremap y :js util.copyToClipboard(buffer.URL, true)<CR>
を追記。一応 nnoremap に変更。
y で yank すると
http://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E8%AA%9E
と。ちゃんとエスケープされてる。

URLをパッと見で内容が分かるのは上の方だけれど、短縮URLを使うためにはこっちの方が相性良さげなのでこっちを使ってみることにするかなー。
にしても私のツイート日本誤してるな。

2013/02/25

2.0.0 の rubyinterp 対応な最新の Vim を Homebrew でビルドする

ruby 2.0.0-p0 が出たので
atton.blog: rbenv で --enable-shared な ruby 2.0.0-p0 をビルドする
で dylib がある ruby 2.0.0-p0 を rbenv でビルドしてみた。

それを反映した Vim をビルドしてみる。

環境

  • Mac OSX Mountain Lion
  • Homebrew 0.9.4
  • rbenv 0.4.0
  • ruby-build 20130224
  • Vim (HEAD は  7.3.831 )

方法

$ brew install --HEAD vim
 おしまい。
--enable-shared な ruby があれば一発みたい。
1.9.1 系列から 2.0 への変更にも対応できるような rubyinterp だったらしい。良いですね。

一応
:ruby puts RUBY_VERSION

2.0.0
が出る。

なんだか --enable-shared な 2.0.0 に比べてあっさり。
いや、苦労しないのは良いことなので良いか。

rbenv で --enable-shared な ruby 2.0.0-p0 をビルドする

ruby 2.0.0-p0 が 昨日リリースされましたねー。

私は rbenv で ruby を管理しているので、rbenv の ruby installer の ruby-build への反映待ち プラス、 ruby-build を brew で入れてるので brew への反映待ちということで今日試してみることに。 というかこう見ると依存酷い。

あと、Vim で rubyinterp を使うためには dylib が必要なので、 --enable-shared な 2.0.0-p0 が欲しいところ。なのでビルドしてみた。

環境

  • OS X Mountain Lion
  • XCode 4.6 + Command Line Tools
  • rbenv 0.4.0
  • ruby-build 20130224 

結論

$ RUBY_CONFIGURE_OPTS="--enable-shared" rbenv install 2.0.0-p0
とりあえず結論から先に書くと、RUBY_CONFIGURE_OPTS を使えば良い様子。
以下、格闘のログだのぼやきだの。

 

格闘ログとかぼやきとかつぶやき


atton.blog: ruby 1.9.3 の rubyinterp を有効にした最新の Vim を brew でビルドする で書いたように

$ CONFIGURE_OPTS="--enable-shared" rbenv install 2.0.0-p0 
じゃダメな様子。

1.9系列の yaml みたいに、2.0.0 では openssl を rbenv が依存の解決として入れてくれるのだけれど、 openssl の configure にも --enable-shared が渡っちゃって configure が落ちる。
openssl は shared ってオプションがあるらしいので、そっちに合わせると、今度は ruby の configure が通らない。

どーしたものかしてると 2.0.0-rc2 のビルドが通らない的な issue を見つける。
そこでは openssl の path とか gcc とか cc の話もあるのだけれど
2.0.0-rc2 build failed · Issue #290 · sstephenson/ruby-build · GitHub
RUBY_CONFIGURE_OPTS=--with-openssl-dir=`brew --prefix openssl`  ...
 というのを発見。

RUBY_CONFIGURE_OPTS 使えば良いのかなー、と思って試してみる。
この issue 的に brew の openssl を使いたかったからかもしれないけれど、 --with-openssl-dir も指定する必要があるらしい。
けれど私は brew で入れてる訳じゃないのでどーしたものか。
とりあえず、試しに openssl-dir は無視して
$ RUBY_CONFIGURE_OPTS="--enable-shared" rbenv install 2.0.0-p0
する。通った。なんか怖い。
一応、 configure のオプションを見るために ruby-build に echo 挟んだつもりなのだけれど全く出ていない。なんか怖い。
でもちゃんと dylib ある。うーん。
%ls ~/.rbenv/versions/2.0.0-p0/lib/
libruby.2.0.0-static.a    libruby.2.0.dylib    pkgconfig
libruby.2.0.0.dylib    libruby.dylib        ruby
rbenv とか ruby-build がどこで作業してるのか分からないので configure の log 見られないし、ruby が見てる openssl のバージョン確認もできそうにない。
 ちなみにコマンド打つと出てくる openssl は Mac のデフォルトの様子

%which openssl
/usr/bin/openssl
%openssl version
OpenSSL 0.9.8r 8 Feb 2011

うーむ。 ruby-build 側の openssl でちゃんと build されてるかな。 気になる。
とりえあず、openssl の version が低くて bundle install がコケる事例 があるらしいので、逆に bundle install できたら良いかな、と思ってその辺も試す。

まずは 2.0.0-p0 を使うように
$ rbenv global 2.0.0-p0

とりあえず github から 本家 rails を clone。んで、bundle install 前にバージョン確認
%ruby -v
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.0]
%gem -v
2.0.0
大丈夫そう。
念のため gem の version を update
%gem update --system
Latest version currently installed. Aborting.
最新。
いざ bundle install と思ったら
%bundle install
rbenv: bundle: command not found

The `bundle' command exists in these Ruby versions:
  1.9.2-p320
  1.9.3-p194
入ってない。入れる。
%gem install bundle
さらにもう一度 bundle install と思ったら
%bundle install
Bundler is not compatible with Ruby 2.0 or Rubygems 2.0.
Please upgrade to Bundler 1.3 or higher.
なんか 2.0互換無いっぽい。gem install bundle で入った bundler は  1.2.4 で
Ruby 2.0 で bundler を使うには 1.3 以降を入れたら良い らしい。ので
$ gem install bundler --version '1.3.0.pre'
いざもう一度 bundle install。
いろいろ入ったので大丈夫っぽい。 mysql の native extention の compile はコケたけれどこれは bundler 側の問題じゃないよね……?
bundle install できたので openssl も有効であると勝手に判断。最低限、古くはなさそう。
一応 irb で requre 'openssl'  すると true 返ってきたから良いのかな。
その辺分かる方いたら教えて欲しいです。 ruby が見てる openssl の path 表示方法とか。

という訳でなんだかんだしながら --enable-shared な 2.0.0-p0 のビルド完了。
2.0.0 でほげほげする前に大分時間食った感。
brew だと brew install ruby --enable-shared とかで良いのかな。 rbenv さんもその辺サポートしてくんないかな。
あと、1.9.3だと gcc のversion は組込みだと落ちたのに、2.0.0だと通ったのも気になる。大丈夫かな。

まー、今のところ問題無し。何もしてないので問題の発生しようも無いけれど。

2013/02/23

brew な git で zsh の補完が効かなくなった

brew で入れた git を使っていて
$ git add hoge<tab>
とかすると
(anon):6: command not found: __git_main
とかエラーが出て補完できないなど。

こちら を見るとどうやら補完用のスクリプトがちゃんとリンク貼られているかが問題な様子。

$ brew unlink git
$ brew link git

でリンクを貼りなおすと復活。
ログは残ってないけれど、 unlink が 214 で link が215 くらいなので一個消えてたっぽい。
brew cleanup で prune されたのが1つあったよーな気もしたので、それで消えたのかな。

2013/02/21

ひさびさに Okinawa.rb Meet Up に行ってきた

ひさびさに Okinawa.rb Meet Up に行ってきました。

ブログに書くまでが勉強会らしいので書いてみます。

@_siman_ さんについてってひさびさにギー沖へ。
ひさびさすぎてボケーっとしてたら _siman_ さんが AtCoder の D問題難しいですよねみたいなことを@tompng さんとしてたので横で考えて唸ってました。唸るだけで全然分からない。

その後くらいから@kimihito_ さんが discourse のソース読もうぜー、してたので読んでるのを眺めてました。
@hanachin_ さんがテレビにMBA繋いでソース解説。 いつの間にかsubl使いに。あとdivvy。

discourceのソースが膨大だったので Gem 覗いたり、Chrome の Developer Tools で要素とかnetwork でアクセスが飛んでる URL から method 検索したりでいろいろ見たこと無い操作多し。WebWebしい感じ。

あとは @naopontan さんが Okinawa.rb in 北谷 的なやつでやったペアプロなあみだくじ 読みとか。ペンさんのデバッグがマッハ。

ペンさんといえばjsでそれっぽい背景を生成するの作ったよー、ってことでそれの解説をきみひとさんにしてるのを横で聞いてたり。数学ー。

ちなみにそのあと、あみだくじの実装が思い浮かんだのでついカッとなって実装して今では公開している

とりあえず一言まとめ
  • siman さんが競技プログラマ
  • はなちんさんが Gem master
  • ペンさんがマッハ 
  • きみひとさんがくるくるしててなんかソース読もう読もうしてる
  • うあー、数学かー

んで、RubyなTipsということで正規表現のキャプチャをそのまま変数に入れたりできる方法をはなちんさんから紹介されるなど。
/(?<variable>< regexp>/ みたいな感じ。テキトーに書いた例題はこんな感じ。
なんか ?<> は String の #{} みたいな感じで読むと良いのかな。
あと、和暦西暦変換で H とか M とかで変換できるよ、みたいなのもあるらしいです。



それと、来週木曜から ryudai.rb やる、ということで偵察に来てた意味合いもあったのですけれどテレビ見てわいわいしてた感じ。なんかWebWebしい系多かった。
個人的には割と Rails or Ruby なら Ruby の方やってみようかなー、といった感じなので偵察失敗。Web分からないだけとも言う。
スパイは「偵察しに来た」とは言っちゃいけないなー。
ちなみに「良い本ありませんか」の答えは「Land of Lisp」でした。Lispかー。

さて意外と長くなったしリンク多いな。
blogger横幅大きくないかなー、どこで設定するのだろ。

とりあえずひさびさの Okinawa.rb はこんな感じでした、と。

2013/02/19

ruby 1.9.3 の rubyinterp を有効にした最新の Vim を brew でビルドする

rbenv + brew な環境で、rubyを入れて HEAD のVimをビルドしていると
:ruby puts RUBY_VERSION
するとSEGVでVimが落ちてしまう現象が発生。
Mac標準の /usr/bin/vim だと落ちないのでどうやら自分でビルドしたのが問題みたい。
原因がbrewなのかrbenvなのかruby-buildなのかrubyなのかVimなのか分からなかったけれど一応解決したので。


環境
  • OS X Mountain Lion
  • XCode 4.6.2
  • Homebrew 0.9.4
  • gcc 4.7.2
  • rbenv 0.4.0
  • ruby-build 20130208
  • Vim  7.3.822  
  • ruby 1.9.3-p385


こちら の記事を見ると、どうやら ruby のdylibが無いのが問題の様子。
rbenv global の ruby を見ると確かに無い 。
$ ls ~/.rbenv/versions/1.9.3-p374/lib/
libruby-static.a
libyaml-0.2.dylib
libyaml.a
libyaml.dylib
libyaml.la
pkgconfig
ruby

ruby をビルドする時に オプションを指定  すると良いらしく、渡し方は こうらしい
今回は --enable-shared のみを有効化してみる。

なので
$ env CONFIGURE_OPTS="--enable-shared" rbenv install 1.9.3-p385
したけれどmakeに失敗。どうやら cc が問題らしい。

XCode 4.6 の Command Line Tools の gcc 4.2.1 じゃ make できない様子。
brew を使って gcc 4.7.2 を gcc-4.7 という名前で入れていたのでそっちを使ってみる。
Web 見てると env があるのと無いのがあるので消している方でも試す。
$ CC="gcc-4.7" CONFIGURE_OPTS="--enable-shared" rbenv install 1.9.3-p385
これだと通った。

ライブラリを見るとちゃんとdylibがある。
$ ls ~/.rbenv/versions/1.9.3-p385/lib/
libruby.1.9.1-static.a
libruby.1.9.1.dylib
libruby.1.9.dylib
libruby.dylib
libyaml-0.2.dylib
libyaml.a
libyaml.dylib
libyaml.la
pkgconfig
ruby
そっちを使うようにしてから
$ rbenv global 1.9.3-p385
 最新のVimをbrewでビルド。ちゃんと通った。
 $ brew install --HEAD vim
 そして確認
:ruby puts RUBY_VERSION
#=> 1.9.3 
動いてる。やたー。


今のところオムニ補完とかで文句も出ていない。
CONFIGURE_OPTS を自分で指定した ruby は始めて使うけれど、大丈夫かなー。
Vim の rubyinterp が 1.9系に対応してるのかとかも気になるけれど、とりあえずビルドできたのでこれで良いかな、とか。

ちなみに最初のlsが 1.9.3-p374 なのは p385 のlsを取る前にp385を消してしまって、ブログのログ用にp374で代替したからだったり。
一応p385の時点でもdylibは無かったです。