Linux ShellScriptのOS起動時起動

/etc/rc.d/rc.local

/usr/local/bin/ruby 立ち上げたいrbファイル
を記述。

今回は以下のwebサービスDaemonを起動した。

def daemon
return yield if $DEBUG
Process.fork do
Process.setsid
Dir.chdir "/"
Signal.trap(:INT){ exit! 0}
Signal.trap(:TERM){ exit! 0}

Signal.trap(:HUP){ exit! 0}
File.open("/dev/null","r+") do |f|
STDIN.reopen f
STDOUT.reopen f
STDERR.reopen f
end
yield
end
exit! 0
end

require 'soap/rpc/standaloneServer'
require '/WSD/soap-server/interest-calculator'

NS='http://pragprog.com/InterestCalc'

class Server2 < SOAP::RPC::StandaloneServer
def on_init
calc=InterestCalculator.new
add_method(calc,'compound','principal','rate','freq','years')
add_method(calc,'call_count')
end
end

svr=Server2.new('Calc',NS,'0.0.0.0',12321)
trap('INT'){ svr.shutdown }

daemon do
svr.start
end


daemon化することで、バックグラウンドで実行できる。(起動後、shellにコマンドが戻ってくる)

デブサミ セッション まとめ

詳細はWebで!といっていたけど、どこなのか不明中。

1.protected
  ・rubyでは使わない。
  ・Java/Cとは意味が違う。
  意味:そのクラスとサブクラスのインスタンスでオブジェクトの外からアクセスできる。
          クラス単位←Java
          オブジェクト単位←Ruby
  RubyではPublicとPrivateだけ使えばとりあえずOK

2.pとpp
  pp・・・表示がみやすいp
      require 'pp'
        pp object.new
  to_s・・・オブジェクトを文字列に変換するときに使う
  inspect・・・オブジェクトをデバッグするときに使う

3.unlessとuntil
  unless・・・if not
until・・・while not
多様な意図を表現するために(せっかく用意されているんだから)いろいろな文法を使った方がいい。(語彙)

4.クラスと名前空間
  モジュール・クラスは名前空間を兼ねている。
  モジュールが分かれていても名前空間として分かれるので同じクラス名でも大丈夫。
   ・使用例:
1.アプリケーション名と同名のモジュールを作る
2.クラス名

5.ファイル名
  ・ファイル中で一番代表的なクラス名をdowncaseする。
  ・Cflat::Nodeクラス←cflat/node.rbってなる。
  ・関連クラスは1つのファイルにする。(ファイルが多くても困る)

6.大クラス主義
  いろいろな仕事を1つのクラスにまとめて行わせる。

JavaからRubyへ〜マネージャのための実践移行ガイド

Javaを使ったこともないし、マネージャでもないけど、Rubyということで購入。
前から気になってたのをデブサミ会場10%OFFで買ってしまった。
読みたい本・読まなきゃいけない本が増えている。

MacPortsでMySQL/Rubyをインストールする。

ruby本体とgems、MySQL5はポートでインストールしている前提。

(MySQL5のインストール方法:port install MySQL5 +server)
/opt/local/var/run/mysql5/にmyqld.sockがないっていうエラーではまる。

下記のように対処

sudo chown mysql:myql /opt/local/var/run/mysql5
sudo chmod 775 /opt/local/var/run/mysql5
sudo /opt/local/bin/myqld_safe5 --user=mysql &

とりあえず、これで動く。

sudo gem install mysql -- --with-mysql-lib=/opt/local/lib/mysql5/mysql --with-mysql-include=/opt/local/include/mysql5/mysql


 これでMySql/Rubyがインストールされる
(Proはこれだけでつながったような気がしたんだけど、Airはできなくてはまる。
調べてみると、/opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/にできてるMySQL/RUBYのファイルで、test.rbが
落ちているみたい。
これが原因でその先に進まなかったのかと思う。
make
make install
してあげるとその後つながる。謎。(mysqlの設定がしっかりされてないからかな。root系とかの)


あとは、mysqlの呼び出しをemacsで行うとOS標準の方をみにいってないっていわれるので、

;;; ENV
(setq exec-path (cons "/opt/local/bin" exec-path))
(setenv "PATH"
(concat "/opt/local/bin:" (getenv "PATH")))

して、環境変数emacs)をしてあげると、よい。

macFuse+sshfs

macFuse+sshfsを使用してsshが稼働しているサーバのディレクトリをMacにマウントする

http://code.google.com/p/macfuse/
ここからMacFUSE-Core-OSのVer-1.3.1.dmgとsshf-1.0.0.dmgをdownloadする

両方をインストールした後、sshfsを起動
サーバ名、アカウントを聞かれるので、sshが稼働しているサーバのサーバ名・アカウントを入力する。
パスワードを確認されるので、サーバアカウントの設定されているアカウントを入力する。

finderの環境設定でコンピュータ名をサイドバーに表示させる
その中にある、先ほど入力したサーバ名と同名のフォルダが見えているので、それをダブルクリックする。
(お好みによって、サイドバーにドラッグさせるのも可)

http://lifehacker.com/software/ssh/geek-to-live--mount-a-file-system-on-your-mac-over-ssh-246129.php

仕事のこと

webSite制作をすることになる。
会社のサポートサイトを全部みてほしいとのこと。
今までやってた基幹系の仕事もそのまま。

とりあえず、XHTML+CSSを基本から勉強する。+JavaScriptPHPRubyって感じで
使っていくことになる。

仕事Macの環境は余裕ができたら加工かなと思う。
Airも開発環境的には同様にそろえてある。