emacs@Cygwin
Windowsだけど似非UNIX的な使い方がしたくて。
WindowsにCygwinをいれてCygtermから接続してemacsを利用しています。
emacsを起動を制御するスクリプトを自前で用意して
emacs serverが上がっていれば同じ画面につなぎに行くようにしています。
#!/bin/bash ps_result=`ps -ef | grep emacs-w32 | grep -v grep | wc -l` if [ $ps_result == 0 ]; then echo "Stating Emacs..." emacs-w32 $@ & echo "...done" else echo "Connect to Emacs Server..." emacsclient $@ & echo "...done" fi
これだと以下の場合は問題ないのですが
(1)Cygtermからコマンドで新規に起動する場合
(2)Cygtermからコマンドでファイルを追加で開く場合
(3)既に起動したemacs-w32@GUIにファイルをドロップする場合
以下のケースが動きません。
(4)Windows上のファイルを関連付けて ダブルクリックでファイルを開くとき
というのも
(1)~(3)は何れもCygwin上、またはcygpathが裏で動くので
WindowsのPATHでもCygwinのPATH形式に変換してくれます。
(4)の場合にのみWindowsのPATHでもCygwinのPATH形式に変換できず
困ってしまします。
対策は。。。ぱっと思いつかないので暫く放置。
愚直にやるなら WindowsバッチでCygwinのシェルを呼び出す方法でしょうかねぇ。
美しくないなぁ。。。
Cygwin環境でのpingの文字化け対策
当然のように日本語環境が仇になって文字化けする。
http://calcurio.com/wordpress/?p=1387
を参考にcocotを導入。
前提となるパッケージも既にはいっていたので
./configure
make
make install
して出来上がったcocot.exeを/binに入れた。
あとはいかのaliasを切って完了。
alias ping='cocot ping'
emacs設定
また使いたい病になったのでWindowsで設定を行う。
Cygwin環境のemacsを設定するために奮闘中。
cygtermを設定して
teraterm ⇒ emacs-w32@Cygwin を呼日だせるように設定した。
特殊文字「①」などが化けるのがどうしても治らないので少し困った。
対策としてcp5022xを入れたつもりだけど
どうもまだおかしい。
読み込めないし、書けない。。
あとは矩形選択が使えるように
いかを追加。
Crtl+Ret してモードに入って操作できる。
マウスでも操作出来るようにしたかったけど
急ぎではないので後回しにした。
;;矩形三択モード (cua-mode t) (setq cua-enable-cua-keys nil)
どれだけ追加パッケージをいれるか分からないけど
いかを参考にauto-installも導入
http://blog.kondoyoshiyuki.com/2012/12/17/install-auto-install-el-on-emacs/
emacsは最近触ってなかったのでさっぱりですな。
Ruby on Rails はじめました
冷やし中華の季節でもないのに
はじめました
のタイトルで失礼します.
もはやいつインストールしたのかも定かではないですが
Valkyrie:~ (ユーザ名)$ which ruby /Users/(ユーザ名)/.rbenv/shims/ruby Valkyrie:~ (ユーザ名)$
rbenvでrubyを導入していたらしい
sudo gem install rdoc sudo gem install rails
でひとまず完了.
<環境>
モデル:13-inch, Mid 2012
プロセッサ:2.9 GHz Intel Core i7
メモリ:8 GB 1600 MHz DDR3
グラフィックス:Intel HD Graphics 4000 512 MB
ソフトウェア:OS X 10.8.2
MySQL:5.5.28 MySQL Community Server (GPL)
ruby-mysql :2.9.10
ruby:1.9.3-p385
Mysql::ProtocolError
<環境>
モデル:13-inch, Mid 2012
プロセッサ:2.9 GHz Intel Core i7
メモリ:8 GB 1600 MHz DDR3
グラフィックス:Intel HD Graphics 4000 512 MB
ソフトウェア:OS X 10.8.2
MySQL:5.5.28 MySQL Community Server (GPL)
ruby-mysql :2.9.10
ruby:1.9.3-p385
Eclipse:Version: Juno Service Release 1
bash上で実行しても問題なく動くけど
Eclipseから実行すると以下のエラーがでる...
/Users/(ユーザ名)/.rbenv/versions/1.9.3-p385/lib/ruby/gems/1.9.1/gems/ruby-mysql-2.9.10/lib/mysql/protocol.rb:562:in `read_eof_packet': packet is not EOF (Mysql::ProtocolError) from /Users/(ユーザ名)/.rbenv/versions/1.9.3-p385/lib/ruby/gems/1.9.1/gems/ruby-mysql-2.9.10/lib/mysql/protocol.rb:274:in `retr_fields' from /Users/(ユーザ名)/.rbenv/versions/1.9.3-p385/lib/ruby/gems/1.9.1/gems/ruby-mysql-2.9.10/lib/mysql.rb:326:in `query' from /Users/(ユーザ名)/workspace/ruby_test_mysql/select_test.rb:14:in `<main>'
ちなみに実行したソースは以下の通り(途中まで)
require 'mysql' client = Mysql.connect('127.0.0.1','ユーザ名','パスワード','DB名')
たぶんeclipseの設定に問題があるんだろうけど.
よくわからん.
予定している作業の本質ではないものの気になってしょうがない...
(追記)
ソースの中にpsを仕掛けてみたら驚愕の事実が...
501 3799 1048 0 11:05PM ?? 0:00.12 /Users/(ユーザ名)/.rbenv/versions/1.9.3-p385/bin/ruby -KU -I/Users/(ユーザ名)/workspace/ruby_test_mysql -r/var/folders/0f/z2h08ngn7dgbwvpkq086y7xm0000gn/T/dltk64612.tmp/scripts/sync.rb /Users/(ユーザ名)/workspace/ruby_test_mysql/select_test.rb
だれが「-KU」つけていいと言った(# ゚Д゚)
何もしてないのに勝手についてるんだよな...
(追記)
厳密な切り分けができてないけど
以下の対応をやってるうちに勝手に出来るようになった.
このあといつの間にか選択出来るようになった
RunAsの項目「RubyApplication」を使うとうまいこと動きました.
ちなみにRunConfiguration上は以下のようになってました.
おそらく正解手順のはず.
ちなみにソースに仕掛けたpsでは以下のようになってました.
501 8561 6602 0 12:16AM ?? 0:00.12 /Users/(ユーザ名)/.rbenv/versions/1.9.3-p385/bin/ruby -I /Applications/eclipse/configuration/org.eclipse.osgi/bundles/627/1/.cp/ruby -rsync -- /Users/(ユーザ名)/workspace/ruby_test_mysql/select_test.rb
見事に「-KU」がなくなりました.
Connection refused(/tmp/mysql.sock)対策
VPSで運用中のUbuntuにおいて
rubyからruby-mysql使ってDBアクセスを試みたらエラーとなった..
$ irb irb(main):001:0> require 'mysql' => true irb(main):002:0> irb(main):003:0* client = Mysql.connect('localhost','ユーザ名','パスワード','DB名') Errno::ECONNREFUSED: Connection refused - "/tmp/mysql.sock"
ちなみに環境としてはこんな感じです.
$ gem list *** LOCAL GEMS *** bigdecimal (1.1.0) io-console (0.3) json (1.5.4) minitest (2.5.1) rake (0.9.2.2) rdoc (3.9.5) ruby-mysql (2.9.10) $ rbenv versions * 1.9.3-p385
原因は割とはっきりしていて"localhost"を指定しているのがまずいらしいです.
なのでちょこっとソースを変更したら直りました.
$ irb irb(main):001:0> irb(main):002:0* irb(main):003:0* require 'mysql' => true irb(main):004:0> client = Mysql.connect('127.0.0.1','ユーザ名','パスワード','DB名') => (略)
まぁ本当はこの辺の接続情報をじかに書くのはよくないと思うので
実際にコーディングしているときには問題にならないと思います.