log

日記です

twitterテスト

Twitter記法っていうのがあることを初めて知った。

シェルスクリプト書いてた

あれ、for構文の後にdo抜けてるし…。
IFS=環境変数の1つ、デリミタを設定。
"hoge hoge1 hoge2"のようなlsとかで取得した値って、デリミタで区切ってリストとして扱える。一行で区切って欲しいっすって時は以下のようにしますなー。これはps_listっていうファイルに書かれたテキストの値を、改行で区切ってリストとして扱ってる例っすな。

通常時はスペースでも区切られる
% cat test.sh
#!/bin/sh

# IFSがデフォルトの場合
# 文字がスペースで区切られる><

# IFS=$'\n';
hoge='a1 a2 a3
b1 b2 b4
c1 c2 c4'

for var in $hoge; do 
        echo "${var}"
done

% sh test.sh
a1
a2
a3
b1
b2
b4
c1
c2
c4
改行で区切った文字をリストで扱いたい場合
% cat test.sh
#!/bin/sh

# IFSがを改行文字にした場合場合
# 文字改行で区切られる…!

IFS=$'\n';
hoge='a1 a2 a3
b1 b2 b4
c1 c2 c4'

for var in $hoge; do 
        echo "${var}"
done
% sh test.sh
a1 a2 a3
b1 b2 b4
c1 c2 c4

これを基本にして、daemontoolsもどきを作ってた。
textファイルから死活監視するプロセス名取得して、ps -ef | grep ${var} | grep -v grep | wc -l とかやってプロセスが生きているかどうかを監視して、死んでたら起動シェルを叩く感じ。
そんなやりかたでいいのかよ、と思ったけど結構一般的なやり方っぽいらしい、きっと。
2日間とりあえず停止の状態が続かなければよかったので、それで対応。
そういう系のツールは、daemontoolsやsupervisord、foreverとかがあるみたいっすね。
基本sh使ってるんすけど、bashのほうがいいんすかね…違い分からない…。

iOS勉強してた

最近iPhoneやってるのですが、画面遷移の基本が分からずお勉強に呟いてた。Storyboardを使って、画面遷移時に遷移先にデータを送る方法っすね。Appleのドキュメント読めば色々分かる。遷移先(親)の画面から、遷移元(子)の画面に値を返す方法など。ユーザーのアクション事に画面を生成するのがiOSのポリシーってどこかに書かれていた気がする。画面遷移なしに色々しようとするんじゃなくて、なんかやるときは画面遷移するのがiOS流だよ、と認識している、多分。

iOSMVC

データの管理は

  • シングルトンのモデルマネージャークラスを用意する
  • そのモデルマネージャークラスに、JavaBeansのようなデータクラスをぶら下げるような形で管理する。TableViewController辺りと上手くおしゃべりできるようなsetter/getterを用意す…ん?
  • アクセッサ―要らない…?仕様によりけりか。
  • アクセッサーは@propertyとか@synthesize辺りで自動生成が可能なんだった。
  • アクセッサー必要です。でもJavaみたいなgetter/setterをIDEで生成するようなイメージではないっす。
  • よーはモデルマネージャー=DAO、モデルオブジェクト=JavaBeans、という認識。

iOSよくわからん。