ログデータフォーマットは
サービスごとに異なる
Linux で出力できるログは
syslog サービスが出力するログ
アプリが個別に出力するログ
の2つ
まずは、syslog サービスが出力するログについて
syslogのログは
各種アプリが出力するログを処理する
syslog の出力ログは
一般的には
/var/log
にまとめて配置される
syslog が扱うすべてのログが集まるファイルが
syslog ファイル

/var/log/syslog
に記録されていく
今回は、日経Linux を参考に
cron コマンドのログを出してみました
今回は
cat /var/log/syslog | grep cron
を実行しました
以下は実行結果です
snowpool@snowpool-Prime-Series:~$ cat /var/log/syslog | grep cron
Nov 28 18:51:27 snowpool-Prime-Series anacron[1029]: Job `cron.daily’ terminated
Nov 28 18:51:27 snowpool-Prime-Series anacron[1029]: Normal exit (1 job run)
Nov 28 19:17:01 snowpool-Prime-Series CRON[6889]: (root) CMD ( cd / && run-parts –report /etc/cron.hourly)
Nov 28 20:17:01 snowpool-Prime-Series CRON[7740]: (root) CMD ( cd / && run-parts –report /etc/cron.hourly)
画像をつけると
Screenshot-2012-11-28 21:09:30
まず、ログの読み方ですが
基本的なフォーマットは
タイムスタンプ ホスト名 タグ: メッセージ本体
となります
今回のタイムスタンプなら
Nov 28 19:17:01
つまり11月28日 19:17のログ
です
ホスト名は
snowpool-Prime-Series
つまりマシンのホスト名
タグですが
ここにはプログラム名とプロセスIDになりますので
CRON[6889]:
なら
cron がプログラム
6889 はプロセスIDとなります
メッセージ本体は行ったことです
(root) CMD ( cd / && run-parts –report /etc/cron.hourly)
が実行されたということになります

停止ボタン、巻き戻しボタンの制御

停止ボタン、巻き戻しボタンの処理
まず、停止ボタン
オーディオを停止するには
pause()
を呼び出す
pauseは一時停止
実は、HTML5では、一時停止はあるけど
停止はない
なので、次にplay()を呼び出すと
一時停止した場所から再生が始まる
次に、巻き戻しボタンについて
これも、意外かもしれないけど
HTML5 Audioには、巻き戻しがない
対処として
HTML5Audioでは、再生ヘッドの位置を示す
currentTimeプロパティを使う
プロパティの値は、再生している秒数
つまり、
currentTime=0;
なら
再生ヘッドがオーディオデータの最初似戻り、巻き戻しとおなじになる
さらに、pause()で一時停止すれば、
巻き戻して止まったように見える
ゲームとかでもよくあるけど
当たり判定とか、ライフが減るのは 
ある意味見せかけ処理なので
処理がわかると応用かできるので、便利
次に、再生速度のコントロール
について
DVDとかで、よくある
標準再生、倍速再生、スロー再生とかが
このコントロール
再生速度の制御には
playbackRateプロパティと
defaultplaybackRateプロパティの
両方へ
再生速度をあらわす数値を入れる
等倍速度なら 1.0
2倍速なら 2.0
スロー再生なら 0.5
とする
ちなみに、1.2とかもできるけど
指定した速度で動くかは、ブラウザ次第
なので、正確な指定は難しい

HTML5Audio関連イベント

HTML5Audio再生関連イベント
loadstart
データの読み込み開始
loadedmetada
情報(メタデータ)を読み込んだ
progress
情報読み込み中
loadeddata
データを読み込んだ
error
エラーが発生した
stalled
通信が停止した
abort
読み込みが中断された
suspend
一時読み込みを停止
canplay
再生が可能になった
canplaythrough
スムーズな再生が可能になった

JavascriptでHTML5audioの制御

JavascriptでHTML5Audio制御
まず、何度もAudio要素の呼び出しを書くのは面倒だから
var audioObj = document.getElementById(“myAudio”);
というように、変数に格納したほうが楽
そして、オーディオ再生だけど
これは
play()を呼び出すだけで使える
今回なら
audioObj.play();
もし、再生ボタンを押したら
オーディオ再生
ていうようにするなら
document.getElementById(“playButton”).addEventListener(“click”,function(){
audioObj.Play();
},true);
ただし、実用的なプログラムにするなら
これだけだとダメ
それは、HTML5Audioは
まず、ページを表示してから音楽を再生する
つまり、ストリーミング再生じゃない
これは、YouTubeをネット回線の遅いとこで再生した時によくある再生してるけど
ネットからの画像ダウンロードが追いつかないという状態になる
このため、clickじゃなくて
canplaythrough を指定する
ちなみに、canplaythroughは
スムーズな再生が可能になったとき
という意味

HTML5Audio対応のチェック

JavascriptでHTML5 Audio対応かチェック
古いブラウザとかで、HTML5 Audio非対応ブラウザだと
エラーになり、scriptが停止する
これでは困るから
HTMLAudioElementオブジェクトの
有無を
ifを使って調べるようにする
つまり、HTMLAudioElementオブジェクトがないなら
処理を行う関数から抜け出るようにする
ソースにすると
if(!HTMLAudioElement){
return;
}
こうすれば、非対応ブラウザでは以下の処理が行われずにすむ

HTML5入力チェック無効化

HTML5入力チェック無効化
Javascriptで入力チェックしたいときには
HTML5の入力チェックを無効化する
これを行うには
HTMLなら
form要素にnoValidate属性を追加する
Javascriptなら
formオブジェクトの
noValidateプロパティにtrueを設定する
もし、元通りに標準の入力チェックをしたくなったら
noValidateにfalseを指定すればいい

プログレスパーの値の変更

プログレスパーの値の変更
プログレスパーを使い、予約状況がみれるようにする
これなら視覚的にわかりやすくなる
ちなみに、、応用すればゲームでHPが減るのをみたりできる
とりあえず、今回は、ボタンがクリックされるたびに、10人ずつ予約が埋まるというもの
まぁしつこいようだけど
一撃くらうごとにHPが減るとかにも使える
まぁ処理を書き換えればだけどね
では、解説
プログレスパーの値は、
progress要素のvalueプロパティに入っている
このvalueプロパティの値を読み出して
計算を行い、結果をvalueプロパティに書きこめばok
格ゲーのあたり判定がでたら
ライフが減る計算して、それをライフサイクルパーに反映しているとかんがえればわかりやすい
とりあえず
今回は、予約状況を調べるボタンのソース
document.getElementById(“resCheck”).addEventListener(“click”,function(){
基本的に、ボタン作成処理は
ボタンIDを
document.getElementById()へ設定して
判別させて
addEventListener()で動作を追加する
var n=document.getElementById(“resSTatus”).value;
このresSTatusは
progress要素のID
なので
.valueでその値を読み出しているということ
これで、変数nにこの値が代入される
これを10ずつ増やしたいなら
n=n+10;
そして、再度、値を書き換えたいから
document.getElementById(“resSTatus”).value=n;
これで、10足した状態に上書きされる
あとは、HTMLへ反映するため
ele.innerHTML=n;
},true);

Javascriptのエラーチェック

エラーチェック
Javascriptで入力した場合、入力した値が、指定した範囲を超えている
このため、Javascriptで入力チェックをリアルタイムでする必要がある
ただし、HTML5 で作成されたformなら
checkValidity()
で調べることができる
HTML5でないなら
従来どおりに
空欄チェック、型チェックをするscriptを何行もかかないとならなくなる
checkValidity()の使い方は
input要素のidを指定して、
checkValidity()を呼び出す
もし、input要素のid=”resNumber”なら
var flag = document.getElementById(“resNumber”).checkValidity();
となる
checkValidity()は
入力が正しいならtrue
不正ならfalseを返す
これを使い
if文と合わせれば、エラーチェックの出来上がり
if(flag == true){
okだったときの処理
}else{
不正だったときの処理
}
というかんじになる

内容を数値として読み出す

内容を数値として読み出す
Javascriptでは
テキストフィールドに入力された数値は
文字列として読み出されるため
値を、加算しようとしても
文字列の連結になってしまう
このため、parseInt() とか parseFroat()
などを使い、数値型に変換してから
計算していたけど
HTML5では
内容を数値として読み出せるプロパティの
valueAsNumber
が使えるため、効率がよくなった
ちなみに、valueAsNumberで
読み出すと、数値型になっているから
そのまま演算することができる
内容を数値として読み出す
Javascriptでは
テキストフィールドに入力された数値は
文字列として読み出されるため
値を、加算しようとしても
文字列の連結になってしまう
このため、parseInt() とか parseFroat()
などを使い、数値型に変換してから
計算していたけど
HTML5では
内容を数値として読み出せるプロパティの
valueAsNumber
が使えるため、効率がよくなった
ちなみに、valueAsNumberで
読み出すと、数値型になっているから
そのまま演算することができる

内蔵HDD権限変更

ドスパラ ウルトラブックの設定
ドスパラで購入し
Ubuntu 12.04 をインストールしたウルトラブックですが
インストール先をSSDにして
500GBのHDDは
Gparted を使い、Linux用に
ext4にフォーマットしました
しかし、このままでは、
root 権限でないと、書き込みができません
このため権限を変更します
権限を変更するには
root権限で chown コマンドを使います
まず、内蔵HDDのパスを調べます
これには
ファイルシステム500GBで
端末を開き
pwdコマンドで、フルパスを調べます
今回は
/media
にありました
パスが確認できたら、次に権限変更です

snowpool@snowpool-Prime-Series:~$ ll /media/bdec1869-7820-4557-a76e-a8b130293019/
合計 24
drwxr-xr-x 3 root root  4096  7月 21 22:25 ./
drwxr-xr-x 3 root root  4096 11月 21 22:34 ../
drwx------ 2 root root 16384  7月 21 22:25 lost+found/
snowpool@snowpool-Prime-Series:~$ ll /media/
合計 12
drwxr-xr-x  3 root root 4096 11月 21 22:34 ./
drwxr-xr-x 25 root root 4096 10月 21 08:17 ../
drwxr-xr-x  3 root root 4096  7月 21 22:25 bdec1869-7820-4557-a76e-a8b130293019/
snowpool@snowpool-Prime-Series:~$

となっているので
sudo chown snowpool:snowpool /media/bdec1869-7820-4557-a76e-a8b130293019/
を実行し、所有権を変えます
これで、ファイルやディレクトリ作成なとができるようになります
この500GB には
仮想マシンの置き場とする予定です