2012年3月27日火曜日

Emacsコマンド

Emacsのコマンドを少しずつ覚えていくことにする。
まずはコマンドラインから
$ emacs & // emacsの立ち上げ(バックグラウンドで動かす為に"&"つける)
立ち上がった後は、Emacsコマンド集を参考にして必要最低限のコマンドを使いながら覚える。

C-x C-f
ファイルを開く
C-x C-s
ファイルのセーブ
C-g
コマンドのキャンセル
C-x u
最後の操作の取り消し
C-x C-c
Emacsの終了
C-w
指定範囲のカット
M-w
指定範囲のコピー
C-y
切り取りorコピーした内容を貼り付け

C-x C-w
別名のファイルにセーブ
C-x k
ファイルを閉じる
M-x goto-line
特定の行へ移動

C-x 
全選択

C-s
文字列の検索


2012年3月25日日曜日

Linux入門 / Emacs,コンパイラ

作業効率をあげたい!
Windows上でGUIベースで作業してると待ち時間が生じてあんまり快適じゃない!

そんな気持ちが芽生えたのでエディタを探してみることにした。
既にあの有名なeclipseと呼ばれるIDE(統合開発環境)を使ったことがある俺は、CDTのプラグインをインストールする気満々だった。

学生時代に周囲にいた情強たちはeclipseを経由してから結局Emacsやvimを使っている様子。
調べてみたらエディタ界には 「Emacs VS vim」 みたいな構図があるらしいことがわかった。
拡張性という面でemacsに可能性を感じた俺はEmacs軍につくことにした。
http://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E6%88%A6%E4%BA%89



ここからはCentOS上でEmacsのインストール手順の覚書。
スーパーユーザーになって yum を唱えるだけ。
yumって何の略なのか気になったんだけど、

Yellowdog Updater Modified

なんだってさ。
語源から抑えたかったけど意味フですわ。
以下コマンド。

# yum install emacs // emacsのインストール
# yum install anthy-el // 日本語入力を可能にする

ついでにCコンパイラもインストールしたった!
# yum install gcc*

Linux入門 / ツールのインストール

2年前に5万で買った低スペックPC。
Linuxの知識が皆無で、かつ会社に入ってから苦労しそうなので仮想化かデュアルブートを検討した。

仮想化はOSの上にOSが乗る。
再起動を伴わずにOSの切り替えができる点はメリット。
マシンのスペックが高くないと使える速度では動かないのがデメリット。
試しにVMWARE入れてUbuntuぶち込もうとしたけど端末起動するだけで耐えられないくらい遅い。。。

デュアルブートはその逆で、OSは再起動しないと変更できない。
パーティションを分けたりするのは面倒だけど、ググりながらやったら難なくできた。
Cドライブ内の空き領域を増やせばいいんだろーと思っていろいろファイル消した。
DVD経由でCentOSインストールしようとしたけど空き領域が無いとのこと。
Cドライブあいてるのに。。。

結局「空き領域」の捉えかたが違って、Cドライブ内の領域ではなくて、Cドライブ外の空き領域が必要だったみたい。
そこでパーティションいじる方法を見つけるためにググる!
http://pasofaq.jp/windows/mycomputer/makedrive.htm
これに書いてあるとおりにwindows7上で操作していったら「空き領域」ってやつができた。
あとは下記の書籍に書いてあるインストール方法どおりにCentOSをインストールしたらデュアルブート完了。

2012年3月23日金曜日

通信の歴史

TCP/IPの勉強をしている.
通信の歴史についての記述がわかりやすくて面白いのでまとめる.


主に軍事目的で発展してきた通信技術.
通信の始まりは狼煙(のろし)からきている.
敵の侵攻を遠くにいる人に伝えるために煙をあげた.
煙が見えないほど遠くにいる人に伝えるためには,中継地点を設けて遠距離通信を可能にしていた.
この方式には2つのデメリットがある.
1つは単位時間あたりに送れる情報は極めて小さいこと.(伝送効率)
もうひとつは,各地点に人を配置するため人的リソースが必要であること(コスト)
中国の万里の長城では,煙に替わって灯火を用いて同様の通信を行なっていたと言われている.

次に出てきたのはモールス信号
ここでは,情報と二種類の信号(トン/ツー)の対応関係を定めるアイディア(符号化)が採用された.
また,信号の開始の合図,理解したかの確認,信号の終了の合図といった規則(プロトコル)も使っている.


上記の内容は独習TCP/IPを読んで内容を再編集したものである.
この後の内容としては,電信,文字コードといったものが解説されていた.
通信の歴史を導入としてTCP/IPの説明をわかりやすく解説している点で本書は秀逸であると思う.


わからないものは歴史的経緯から理解していくと,記憶に残るし理解しやすい.
技術の仕様における「なぜ?」を解決する方法として「歴史を学ぶこと」の重要さが身にしみてわかった.

Google App Engine for Java (1)

Java入門のためにGoogleのクラウドサービス"Google App Engine for Java(以下GAE/J)"を初めてみた.
Eclipseという統合開発環境(IDE)で開発することを想定した環境構築を説明します.
やることは以下の4つです.

1. JDK(Java Development Kit)のインストール
Javaの開発をするので当然JDKは必要です.GAE/JではJava5,6に対応しています.

2. GAE/J SDKのインストール
Googleのサイトを参照

3.Eclipse for Java EE Developersのインストール
このパッケージは,web開発向けツールがまとまってるのでこれをダウンロードする.
デフォルトでは英語なので,日本語化したいひとはPleiadesをつかうべし.
MacOSへのインストールの仕方はここ(http://macphp.sblo.jp/article/43286453.html)がわかりやすい.

4.GAEに登録
http://code.google.com/intl/ja/appengine/