2012年7月23日月曜日

[win7]勝手にウィンドウを最大化しないようにする

めずらしくいや初めてかもしれない Windowsネタ

「Windowsは、こっちが予期しないことを勝手にしがちで、したいことがしづらい」

のいい例

「Windows 7」においてウィンドウをデスクトップの端に持って行ったときに最大化かってにさせない方法

コントロールパネル(非カテゴリ表示)を開き

コントロール パネル\すべてのコントロール パネル項目\コンピューターの簡単操作センター\

をたどり。

「マウスを使いやすくする」を開く。

そして、「ウィンドウが画面の端に移動されたときに自動的に整列されないようにします」
のチェックを入れる。




ちなみにLinux含めUNIX LIKEなOSは、
「こっちが、指示した事だけを黙々とこなし、こっちがしたい事ができる」

2012年7月22日日曜日

[tcsh] 設定ファイルロードプライオリティ

bashの次は、
tcsh

ログインシェルの場合
/etc/csh.cshrc
  ↓
/etc/csh.login
  ↓
~/.tcshrc
  ↓
~/.login

ログインシェル以外は、
/etc/csh.cshrc
  ↓
~/.tcshrc 又は ~/cshrc

[シェル] プロンプト

今回は、プロンプトのカスタマイズ、cシェル系とbシェル系で異なる。

まずは、bシェル系 シェル変数「PS1」に設定する。
  PS1="\u@\H:\w$ "

cシェル系は、シェル変数「prompt」に設定する。
自分の場合

  set prompt="%n@%m:%~%# "

%n : 自分のアカウント名
%m : ホスト名
%# : スーパーユーザーならば「#」一般ユーザーならば「>」を表示

2012年7月20日金曜日

[bash] 設定ファイルロードプライオリティ

自分は、主にUbuntuでcシェル派だったが仕事でRHELの環境でbashを使わざるをえない機会があって今回意識させられた。




まずは、Ubuntuの場合、


bash(ログインシェル)の設定ファイルは以下の順序で読み込まれる。
1) /etc/profile  
    ↓
2) /etc/bash.bashrc
    ↓
3) ~/.bash_profile (ある場合)
    ↓
4)~/.bashrc (ある場合)
    ↓
5)~/.bash_login (ある場合)
    ↓
6)~/.profile (ある場合) 


bash(ログインシェルではない場合)
1)/etc/bash.bashrc
    ↓
2)~/.bashrc

Ubuntuの場合ログインシェルにしろログインシェルでないにしろ~/.bashrcは読み込まれる。
しかし、RHELは違った。むしろ、Ubuntuがいろいろ調べると"異端"な感想を持った。

ログインシェルの場合~/.bashrcは読み込まれないということである。
つまり、一般的なUNIX互換な環境では、
ログインシェルの場合

1) /etc/profile  
    ↓
2) ~/.bash_profile (ある場合)

    ↓
3)~/.bash_login (ある場合)
    ↓
4)~/.profile (ある場合)


であり、
ログインシェルでない場合。
1)~/.bashrc


となるらしい。
つまり、RHELの場合、ユーザー固有のシェルの設定は、~/.bash_profileに書くこととなる。








2012年7月12日木曜日

[システム設計哲学]MediaWikiに見る

タイトル中の"システム"とは、広義の意味であり、

広辞苑によると
複数の要素が有機的に関係しあい、全体としてまとまった機能を発揮している要素の集合体
とある。さらに私的には、最後の「の集合体」を削除した意味としたい。つまり、複数の要素の集合も要素という風に解釈するのである(再帰的な表現)。

さらに、”システム設計哲学”という専門用語自体あるかどうか定かではない。

なんだかここまで書いただけでもカオス感たっぷりだが、何回か投稿を重ねるうえでこの私の考える”システム設計哲学”を定かなものとして(体系立てて)いきたい。


その第1回目は、MediaWikiを通した考察。Wikiエンジンは、MediaWiki以外にも有名どころでは、PukiWikiなど多数あるが、ほかのWikiエンジンに同様の仕組みがあるか知らなく、MediaWikiに限定する必要はないのかもしれないがあえてMediaWikiに限定した。


MediaWikiは、WikiPediaのWikiエンジンとして採用されていることは、みなさんご存じであろう。


私は、Wikiのページ間の関連のさせかたとして、階層構造をもたせるのが良いのではないかといつも感じでいた。


しかし、本家WikiPediaでは、ページ間に階層構造なんて持たせていない。


なぜのなか?もやもやしていた。




それを最近あるブログの投稿がすっきりさせてくれた。


http://blog.livedoor.jp/lionkid/archives/3096475.html

とくに最後のこの一文。

複雑系は、階層を持たない平坦なページを使い、タグでグループ分けするのが基本だ。
ここでは、哲学的に昇華させるとすれば下記だと思う。

「巨大なシステムの要素は、階層構造で整理するのではなく、それぞれの要素の属性のみでかんりするのが良い。」

しかし、こう書いておきながらもこの一文は、私が傾倒する "UNIX哲学"とは、相容れない部分もあるのではとも考えてしまう。

まだまだ、考察が足りない。



2012年7月6日金曜日

Bloggerへ投稿するコードのハイライト化

常々しなければと思っていて暇だったのでやってみた。 コードを見やすくするためのプラグインの追加。 自分が入れたのは、「SYNTAX HIGHLIGHTER Ver.3」

基本的には、参考サイトを訪れてそこに書いてある通りにやればいい。

まず、お好みのテーマを決める。
そして、次は、対応させたい言語を選択して、JavaScriptへのリンクのコードを生成。そのコードをBloggerのテンプレートの</head>直前に挿入。

投稿時は、下記のようにする。


<pre class="brush:c;">int main(int argc,char **argv){
    printf("Hello Worild!!\n");
    return 0;
}
</pre>



以下サンプル

int main(int argc,char **argv){
    printf("Hello Worild!!\n");
    return 0;
}


参考サイト: http://www.way2blogging.org/2011/03/how-to-add-syntax-highlighterv3-to.html

2012年7月5日木曜日

[expect] 対話的コマンド

UNIX哲学 においては、バッチ処理の妨げになる極力対話的なインターフェースは避けるようかかれていますが、やはり世の中には、対話処理が必要な場面もある。

ということで今回は、expectコマンドを知ったのでメモしておく。
先に参考にさせていただいたサイトを示しておく。

http://202.253.248.12/gijutu/expect/howto-expect.html#b-interact

expectコマンドの基本を押さえるべくヤマハルーターにtelnetでログインして「show enviroment」コマンドを実行してログアウトするというお題を設定。

expectコマンドは、-cオプションを用いる方法、スクリプトファイルにする方法(#!/usr/bin/expect)、シェルスクリプトでヒアドキュメントとする方法等が考えられるが。

今回は、そんなに長くないコードであるため、シェルスクリプト内にヒアドキュメントで埋め込む方法とした。


<pre class="brush:shell">

set RHOST="192.168.100.1"
set RUSER="hoge"
set RPASSWD="hoge"
expect <<EOF
  set timeout -1
  spawn telnet $RHOST
  expect "Username: "
  send "$RUSER\n"
  expect "Password: "
  send "$RPASSWD\n"
  expect ">"
  send "show environment\n"
  expect ">"
  send "quit\n"
  expect ">"
EOF

</pre>