第1回【とあるサーバの下学上達】サーバ勉強会

こんばんは、高城梢です。

第1回、とあるサーバの下学上達〜サイエンスプログレス〜を放送しました。
【とあるサーバの下学上達〜サイエンスプログレス〜】とは、岡田洋一こと”ようさん”と高城梢ほか、愉快な仲間たちがお送りするサーバについての勉強会です。基本的に、対話形式で1放送1時間、Ustreamを使い、この勉強会を通して、サーバを扱い世界の覇者(インフラエンジニア)になろうと試みる集まりです。これがわかれば男性にモテモテです。玉の輿も夢ではありません。

2012年11月21日水曜日放送の内容は、ターミナルの起動〜フォルダ作成です。
☆サーバはFreeBSD、パソコンはMac、教科書は[新 Linux/UNIX 入門 第3版 著 林春比古]を使いました。ありがとうございます。
●ターミナル(terminal)を起動してみよう。
PC上のスポットライト(右上の虫眼鏡アイコン)を使うとすぐ見つかります。
●sshで接続してみよう。
sshとは主にUNIXコンピュータで利用される、ネットワークを介して別のコンピュータにログインしたり、遠隔地のマシンでコマンドを実行したり、他のマシンへファイルを移動したりするためプログラム。(IT用語辞典 http://e-words.jp/w/ssh.html )
-ログイン名を入力します。yes,noを問われるのでyesと入力、次にパスワードを入力(エコーバックオフのため表示されません。間違えたときにはbackspeaceを連打)し、[welcom to FreeBSD]から始まる文字列が表示されたらログイン成功です。
●ログアウトしてみよう。
やり方は、2パターンあります。exitと入力、もしくはcontrol+Dでログアウトできます。
●ホスト名を設定しよう。
ターミナルにhostnameを入力すると今あるサーバ内のホストが表示されます。自分のホスト名を表示する際に hostname 自分のホスト名 (例 hostname takashiro.com) と入力すればOKです
●PCの中にあるフォルダを表示させてみよう。
> ls (エルエス)コマンドを使います。フォルダリストが表示されます。ないときは表示されません。
> ls -l
total 0  (ハイフンエル)隠しファイルが表示されます。
> ls -a
. .history .mail_aliases .rhosts
.. .login .mailrc .shrc
.cshrc .login_conf .profile
このように、ドットファイルが表示されます。ドットファイルとは、ドットから始まる隠しファイルを表示するコマンドです。ls -lでは表示されないものです。
> ls -la は全てのファイルをまとめて表示させます。
total 44
drwxr-xr-x 2 kozue kozue 512 Nov 21 20:44 .
drwxr-xr-x 3 root wheel 512 Nov 21 20:32 ..
-rw-r–r– 1 kozue kozue 758 Nov 21 20:32 .cshrc
-rw——- 1 kozue kozue 38 Nov 21 21:24 .history
-rw-r–r– 1 kozue kozue 254 Nov 21 20:32 .login
-rw-r–r– 1 kozue kozue 165 Nov 21 20:32 .login_conf
-rw——- 1 kozue kozue 381 Nov 21 20:32 .mail_aliases
-rw-r–r– 1 kozue kozue 338 Nov 21 20:32 .mailrc
-rw-r–r– 1 kozue kozue 750 Nov 21 20:32 .profile
-rw——- 1 kozue kozue 283 Nov 21 20:32 .rhosts
-rw-r–r– 1 kozue kozue 980 Nov 21 20:32 .shrc
●ファイルを作ってみよう。
ターミナルで作成したファイルは、実際にPC内に作成されます。
echoコマンドを使います。
> echo abcde > aa1.txt abcdeファイルがaa1フォルダに作成されました
> cat aa1.txt      aa1フォルダには何が入っているか表示されます
abcde           abcdeファイルが入っていました
同じように、
> echo aaaaa > aa2.txt
> echo bbbbb >> aa2.txt ここで使われている >>はリストの順を表しています。
> cat aa2.txt
aaaaa
bbbbb

> cat > aa3.txt
ccccc
ddddd
と入力すると、aa3の中にcccccとdddddファイルを作成できます。
> cat aa3.txt aa3フォルダに何が入っているか表示されます
ccccc
ddddd
と表示されます。
●touchコマンドを使って作ったファイルの作成日時を見てみよう
> touch aa4.txt
> ls -l aa*  aaから始めるファイルを全て表示させるという意味の*
-rw-r–r– 1 kozue kozue 6 Nov 21 21:40 aa1.txt
-rw-r–r– 1 kozue kozue 12 Nov 21 21:41 aa2.txt
-rw-r–r– 1 kozue kozue 12 Nov 21 21:44 aa3.txt
-rw-r–r– 1 kozue kozue 0 Nov 21 21:45 aa4.txt
●ファイルをコピーしよう
> cp aa1.txt bb1.txt aa1をbb1にコピーする
> ls -l aa*
-rw-r–r– 1 kozue kozue 6 Nov 21 21:40 aa1.txt
-rw-r–r– 1 kozue kozue 12 Nov 21 21:41 aa2.txt
-rw-r–r– 1 kozue kozue 12 Nov 21 21:44 aa3.txt
-rw-r–r– 1 kozue kozue 0 Nov 21 21:45 aa4.txt
●コピーしたものを表示させてみよう
> ls -l bb1* bb1のファイルを表示させる
-rw-r–r– 1 kozue kozue 6 Nov 21 21:49 bb1.txt
> cat bb1.txt bb1とどんなファイルが連結しているか表示させる
abcde
> ls 今あるフォルダを表示させる
aa1.txt aa2.txt aa3.txt aa4.txt bb1.txt

以上が第1回の内容になります。

☆感想
・第1回目の放送をご視聴ありがとうございました。
・何点か疑問が出てきました!
-サーバへ接続するログイン名などなどってどうやって取得するのか
-ホスト名ってどういうときに必要なのか(一回聞いたと思いますが、忘れましたごめんなさい)
– ●touchコマンドを使って作ったファイルの作成日時を見てみよう
> touch aa4.txt は何を表しているのか
次回、質問し忘れないように書き残しておきます。

その他、学んだこと
☆PC搭載の矢印ボタン上↑を押すと、一歩前に入力した文がそのままでてきます。
☆コマンドの後にスペースを忘れない。
☆コマンドの後のオプションの文字の順番 例 ls -la が ls -al じゃダメなの?
ダメなときもあるもあるので、あんまり順番はかえない方がよい。
☆答えに詰まったときは、「いい質問ですね」
☆痛Macの弊害
☆ようさんの服のサイズ4Lか5L、梢はSかMかで言ったら、S
☆スクリーンショットが要りそう

間違いがありましたら、コメントをお願いします。

次週、11月28日水曜日21:00〜もよろしくお願いします。

emacsのphp-modeでarrayのインデントを改善した

1. はじめに

emacsでphp-modeを利用している。とても便利なelispなんだけどデフォルトだといくつか不便な点がある。

基本的にはPEARに準拠したコーディング規約にしたかったので下記のブログ記事を参考にしてinit.elの設定を行った。

(setq php-mode-force-pear t)

PHP開発で追加しておきたいEmacs Lisp 8選 : アシアルブログ

だけれどもこれだけだとarrayのインデントがおかしい。

2. おかしいインデント


<?php
function hoge(){
    $hoge = array(
                 'hoge' => 1,
    );
}

このように連想配列の添え字(キー名)のインデント位置が前述の括弧の位置まで下がってしまうのだ。 コレは見づらい。できれば $hoge の開始位置から規定のタブ幅(4とか)で字下げして欲しい。

2. 解決方法は見かけるのだけれど

この問題でググってみるといくつか解決方法が出てきた。だけれどもその辺のelispを適用してみてもうまくいかない。バージョンがダメなのか他のelispと競合しているのか、とにかく動かなかった。というかelispに対する理解が少ないというのが一番の根本的な問題かな。

で、しばらくこの問題は放置していたのだけれど、あまりにも気になると言うことで気合いを入れて調べてみた。すると意外にも(?)公式的なみんな大好き emacswiki が出てきた。

3. 解決

Indentation of arrays
The php-mode indentation for array is not good, It will indent like this:

$post=Post::model()->find(array(
                              'select'=>'title',
                              'condition'=>'postID=:postID',
                              'params'=>array(':postID'=>10),
                              ));

The better indentation is like:

$post=Post::model()->find(array(
    'select'=>'title',
    'condition'=>'postID=:postID',
    'params'=>array(':postID'=>10),
));

Add this to php-mode-hook:

(add-hook 'php-mode-hook (lambda ()
    (defun ywb-php-lineup-arglist-intro (langelem)
      (save-excursion
        (goto-char (cdr langelem))
        (vector (+ (current-column) c-basic-offset))))
    (defun ywb-php-lineup-arglist-close (langelem)
      (save-excursion
        (goto-char (cdr langelem))
        (vector (current-column))))
    (c-set-offset 'arglist-intro 'ywb-php-lineup-arglist-intro)
    (c-set-offset 'arglist-close 'ywb-php-lineup-arglist-close)))

EmacsWiki: Php Mode Indentation of arrays

さて早速コレを適用。init.elを開いて、php-completionですでにphp-mode-hookがあったのでそこに追記して再起動。

うまくいきました。

<?php
function hoge(){
    $hoge = array(
        'hoge' => 1,
    );
}

めでたしめでたし。

あてせり

体内年齢はそろそろ還暦な岡田洋一です、こんばんは。

さて、高城梢と愉快な仲間達で新サービスを立ち上げることになりました。その名は”あてせり”。

いろいろな画像に吹き出しを付けて画像の中にコメントを残していくことができる、そんなサービスです。各所で有名な和田祐介さんがboketeというサービスを作られててそことちょっとかぶっちゃうトコロがあるのですが、そちらとはまた一風変わった感じのサービスに仕上げて行く予定です。

  • wordpressを利用したサービスであること
  • 画像自体にGDでコメント枠と文字を入れ込む事

この二点が今回のあてせりの最大のセールスポイントだと思っております。

特に私はwordpressが結構好きで、wordpressでそんなんすんの!?というトコロにチャレンジしていくのです。今回の件では藤森さんと一緒にサービスを作っていく感じで彼にあてせりのメイン部分、私はwordpress化担当という感じです。

wordpress化していく作業についてこういったブログなどで色々と紹介していこうと思っています。よろしく御願いします。

ブログと勉強会

こんにちは。岡田洋一です。

これからしばらくブログを付けていこうと思っています。思ってみればブログっぽいことをやってこなかったんですね。ほげ~。

またサーバ勉強会を開催したいと思っています。どうぞよろしく御願いします。