BOINC】 【BoincView】 【MIDIGraphy1.4.3】 【FlashPoint】 【USB-RSAQ2】 【psqledit】 【psqledit】 【TTSSH.2】 【Lhasa】 【EmEditor】 【MidiSwing
まだ見ぬ誰かの笑顔のために . Team 2ch

FreeNAS用USBメモリ作成

FreeNAS-8.0.4 MULTIMEDIAをMicroserverにインストールしました。
 今回はイメージをCD-Rに焼かずにUnix系のDDを使って直接USBに
書き込むという方法をとっています。

インストールの過程は以下のとおりです。

 前準備として必要なファイル、ソフトをダウンロードしておきます。

1.FreeNAS-8.0.4 MULTIMEDIAの64bit版をここからダウンロード。
 (以降 FreeNAS-8.0.4)

ちなみにファイル名は

FreeNAS-8.0.4-RELEASE_MULTIMEDIA-p2-x64.img.xz

というものを使用しました。

2.Explzhをここからダウンロード。

3.上記2で使うアーカイバDLL、tar64.dll ver 2.40 私家版 をここから
 ダウンロード。
  ※私の環境がWindows7pro 64bit環境のためです。

4.DDforWindowsをここからダウンロード。

 以上で必要なものがそろいました。
 続いて実際のインストールです。

ア.2をインストールします。
これは、特に難しいことはないと思うので説明は割愛。

イ.3で落としてきたtar64.dll ver 2.40 私家版.zipを解凍します。
これはアでインストールしたExplzhでも、普段お使いの解凍ソフトでも
使いやすいほうで解凍して下さい。
で、解凍されたものを

64 ビット版 DLL を利用するので、\Windows\System32 
 ※私の環境がWindows7pro 64bit環境のためです。
  
に移動させます。

これでExplzhを使ってtar形式のファイルを解凍できます。

ウ.DDforWindows適当な場所に解凍します。

エ.1.で落としてきたFreeNAS-8.0.4を右クリックして、即時解凍を
 クリックします。
デスクトップにFreeNAS-8.0.4-RELEASE_MULTIMEDIA-p2-x64.img
というフォルダが作成され、中にイメージファイルがあるはずです。

オ.FreeNAS-8.0.4をインストールするUSBメモリをPCに接続します。
 続いて、DDforWindowsのフォルダを開きDDWinを実行。

ddwin

という画面が開きますのでディスク選択をクリックしてインストールする
USBメモリを選択。
ファイル選択でFreeNAS-8.0.4-RELEASE_MULTIMEDIA-p2-x64.img
フォルダ内のファイルを選択。
この時、ファイルの種類はAll Fileを選択しておいて下さい。
あとは、書込をクリックして書き込みが終わるまで待つだけです。
USBメモリの速度によって数分から十数分かかります。

 書き込みが終わったら、USBメモリを取り外してMicroserverの内部USB
ポートに接続し、電源を入れれば、FreeNAS-8.0.4が起動します。

と、今回はとりあえずFreeNAS-8.0.4の起動まで。
 次で、CIFSの設定(Windowsとの共有)設定まで書く予定です。
と言っても、現在試行錯誤中なのですけどね。  

あ!なるほど!と思えるWindows8の使い方

職場で「仕事が速い」と言われる人になるための15の方法

flv・wmv・avi等ほぼ全ての動画を簡単にmp4に変換する方法

記憶域スペースでパリティを利用する際に、パフォーマンスを向上させるPowerShellコマンド

Windows8で古いATi Radeonカードを使いたい

太ももを細くしたいんだけどどうすればいい?

ポートマルチプライヤ(PMP)とはなんなのか

Radiko録音

Ctrl2capでCaps LockとCtrlを置き換え

iPad原因不明のエラー(20)

iOS 5をダウングレードする方法 & エラー対処法 , iOS FW

iPhone3GS

, ,

remshはrshへのシンボリックリンク

UNIXシステムの基本

お勧めAndroidアプリ

Galaxy Nexusに入れてあるソフトまとめ

低消費電力でコンパクトなNASを購入 LS-WS1.0TGL/R1

Link Station mini

Androidは「ComittoN」

ComittoN

ESi(EGOSYS) WaMi Rack 24

wamirack24

画像変換ソフトとしても使える画像ビューア

XnView

Windows7での、ぴたすちおの代替ソフト

マグネットウィンドウ

サービスの起動停止、OS起動時のサービス起動設定 ? ubuntu service update-rc.d sysv-rc-conf

Ubuntu 12.04

ファイルディスクリプタ【file descriptor】

プログラムがアクセスするファイルや標準入出力などをOSが識別するために用いる識別子。
0から順番に整数の値が割り当てられる。OSによってはファイルディスクリプタにバッファ
管理機能なども含めた「ファイルハンドル」と呼ばれる管理体系が存在する。

ファイルディスクリプタには、識別子とともにファイル名、ファイルサイズ、プログラムが
操作中のファイル内の位置、ファイル作成、更新日時などの情報が含まれており、OSは識別
子によってどのファイルを操作するかを判断する。

通常、0:標準入力(stdin)、1:標準出力(stdout)、2:標準エラー出力(stderr)の3つはOS
(シェル)が最初に用意するため、プログラムがファイルをオープンすると「3」から順番に
ディスクリプタが割り当てられる。

FAST Original ベアボーンキット F510 購入


自宅サーバを、VIA EPIA-MII12000 C3 1.2 Ghzから変更しようかと…
60GBx2のSSDで静音&低消費電力に!

シェルスクリプト・ステップ・バイ・ステップ

コマンドラインで使える超絶便利なワンライナーを投稿・共有できる

iphone用cydiaのリポジトリ

http://theiphonespotrepo.net/apt/

bashで変数の値を変数名にする

eval echo '$'$TEST
のようにすると、最初に$TESTが評価されてから、echoに処理が渡る。

CentOS6でXen4を利用する

CentOS6の標準のYumリポジトリから、なんとXenが消えてしまいました。。。
そうですよね。。KVMよりなんですもんね。
でもこのサイトで、CentOS6でもちゃんとXenが動く方法を紹介してくれています。
http://www.ayutaya.com/2011/05/22/xen4-sl6-dom0/

Xenはカーネルをビルドする必要があるので、こういったインストール方法で無ければ複数の物理環境でXenを動かすなんてのは非現実的です。
ですのでこのサイトの管理者様と、リポジトリを公開している方に感謝です!
これでIntelVTやAMD-Vに未対応のCPUにもまだまだ活躍の場が残せそうですね!!

1枚のビデオカードで3画面出力

Sapphire Radeon HD5770 FleX 1GB GDDR5
購入。今までビデオカード2枚挿しで3画面やっていたけれど、これでスッキリ!

簡単にjpg一覧HTMLを作成

for i in `ls *.jpg`;do echo "<IMG src=\"${i}\"><BR>" >> index.html;done

ハイバネーション(hiberfil.sys)を無効にする・削除する

チーミングしても…速度は上がらない

アミノ酸

トリプトファン … ぐっすり眠れるようになる。
チロシン … やる気が出る。

シェルで、source sh . ./ の違い…

"source"は、カレントシェルの内部コマンドです。なので、スクリプト中のコマンドは、カレントシェルから直接実行したのと同じになります。
"sh"の「sh スクリプトファイル名」の場合は、/bin/shを、引数として「スクリプトファイル名」を渡して実行する、です。
"."は"source"と同じです。カレントシェルがbashではなく、shである場合はこちらしか使えなかったと思います。
"./"はカレントシェル上で実行ファイルを実行した状態と同じです。
つまり、
"source"、"."、"./"はカレントシェル内で定義した変数が使える
"sh"はシェル変数が引き継がれない(環境変数ならok)
という事。

仮想化入門 ぷらっとホーム

LPIC 304 主な出題

・ドメインのXenの移行する実行コマンド
・コンポーネント名
・xendのメイン設定ファイル
・サーバ上の完全仮想化の可用性を確認するコマンド
・Xen仮想マシンの無効xmコマンド
・OpenVSについて
・クラスタ設定システムの目的
・heartbeatの設定ファイル名
・DRBDにおいてのディスクの状態について
・OCFS2クラスタファイルシステムの設定ファイル名について

LPIC 304 出題範囲

主題330仮想化

330.1 仮想化の概念と理論
重要度 10
説明 仮想化に関する一般的な概念、理論と用語。Xen及びKVMの用語を含む。
主要な知識範囲
  • 専門用語
  • 仮想化の利点と欠点
  • 様々な仮想マシンモニター
重要なファイル、
用語、ユーティリティ
  • ハイパーバイザー
  • HVM(HardwareVirtualMachine)
  • PV(Paravirtualization;準仮想化)
  • ドメイン
  • エミュレーションとシミュレーション
  • CPU flags
330.2 Xen
重要度 10
説明 Xenのインストール、設定、保守、およびトラブルシューティング。
主要な知識範囲
  • Xenの設定
  • Xenのユーティリティ
  • Xenのインストールとトラブルシューティング
重要なファイル、
用語、ユーティリティ
  • Intel VTでのXen
  • AMD-VでのXen
  • Dom0 DomU ゲストOS ホストOS
  • xm
  • /etc/xen
  • xmdomain.cfg
  • xentop
330.3 KVM
重要度 7
説明 KVMのインストール、設定、保守、およびトラブルシューティング。
主要な知識範囲
  • KVMの設定
  • KVMのユーティリティ
  • KVMのインストールとトラブルシューティング
重要なファイル、
用語、ユーティリティ
  • /proc/cpuinfo
  • カーネルモジュール: kvm kvm-intel kvm-amd
  • /etc/kvm/
  • kvm-qemu
  • kvm_stat
  • kvm netwoking
  • kvm monitor
  • kvm storage
  • qemu
330.4 その他の仮想化ソリューション
重要度 3
説明 XenおよびKVM以外の仮想化技術についての基本的知識と経験。
主要な知識範囲
  • その他の仮想化技術についての認知
  • その他の仮想化技術に関する基本的な技術的知識
重要なファイル、
用語、ユーティリティ
  • OpenVZ
  • VirtualBox

このページのトップへ

主題331ロードバランシング(負荷分散)

331.1 Linux Virtual Server
重要度 5
説明 LVSのインストール、設定、保守およびトラブルシューティング。keepalivedの設定と利用を含む。
主要な知識範囲
  • IPVS
  • VRRP
  • keepalivedの設定
重要なファイル、
用語、ユーティリティ
  • ipvsadm
  • syncd
  • LVS-NAT/Tun/DR/LocalNode
  • コネクションスケジューリングアルゴリズム
  • genhash
331.2 HAProxy
重要度 3
説明 HAProxyのインストール、設定、保守およびトラブルシューティング。
主要な知識範囲
  • HAProxy
重要なファイル、
用語、ユーティリティ
  • ACL
  • 負荷分散アルゴリズム
331.3 LinuxPMI
重要度 1
説明 LinuxPMIの概念、LinuxPMIのインストールに関する基本的な経験。
主要な知識範囲
  • カーネルへのパッチ適用
  • SSIとMSI
重要なファイル、
用語、ユーティリティ
  • linuxPMI

このページのトップへ

主題332クラスタ管理

332.1 Pacemaker
重要度 5
説明 Pacemakerのインストール、設定、保守およびトラブルシューティング。
heartbeatバージョン2の利用を含む。
主要な知識範囲
  • 重要ななクラスタ設定
  • リソースエージェント
重要なファイル、
用語、ユーティリティ
  • crmd
  • PEngine
  • CIB ptest
  • cibadmin
  • crmadmin
  • crm_* リソースエージェント (heartbeat v2, LSB, OCF)
  • authkeys
  • /usr/lib/heartbeat/ResourceManager
  • /etc/ha.d/
332.2 Pacemaker上級
重要度 3
説明 Pacemakerの高度な機能に関する経験。OpenAISとcorosyncの利用を含む。
主要な知識範囲
  • fencing
  • quorum
  • データの整合性
  • ファイルシステムとの統合
重要なファイル、
用語、ユーティリティ
  • STONITHd
  • OCFS2
  • ldirectord
  • softdog
  • OpenAISとcorosync
332.3 Red Hat Cluster Suite
重要度 3
説明 Red Hat Cluster Suiteのインストール、設定、保守およびトラブルシューティング。
主要な知識範囲
  • 重要なクラスタ設定
  • リソースエージェント
重要なファイル、
用語、ユーティリティ
  • ccs
  • OpenAIS
  • rgmanager
  • /etc/ais/
  • /etc/corosync/
332.4 Red Hat Cluster Suite上級
重要度 3
説明 Red Hat Cluster Suiteの高度な機能に関する経験。LVSおよびGFSとの統合を含む。
主要な知識範囲
  • fencing
  • quorum
  • データの整合性
  • ファイルシステムとの統合
  • LVSとの統合
重要なファイル、
用語、ユーティリティ
  • qdiskd
  • /etc/lvs.cf
  • Piranha
  • GFS
  • Conga

このページのトップへ

主題333クラスタストレージ

333.1 DRBD
重要度 3
説明 DRBDのインストール、設定、保守およびトラブルシューティングに関する経験と知識。
Pacemakerおよびheartbeatとの統合を含む。
主要な知識範囲
  • DRBD
重要なファイル、
用語、ユーティリティ
  • Pacemakerとの統合
  • heartbeatとの統合
333.2 グローバルファイルシステムとOCFS2
重要度 3
説明 GFSおよびOCFS2のインストール、保守およびトラブルシューティング。
主要な知識範囲
  • GFS2
  • OCFS2
重要なファイル、
用語、ユーティリティ
  • 分散ロックマネージャ
333.3 その他のクラスタファイルシステム
重要度 1
説明 Linux環境で利用可能なその他のクラスタファイルシステムに関する認知。
主要な知識範囲
  • Coda
  • AFS
重要なファイル、
用語、ユーティリティ
  • GlusterFS

日本語最終更新日:2010年8月26日(木)

ZALMAN ZM-VE200 購入


買ったらやること
  1. HDDのパーティションをまっさらにしNTFSでフォーマットする。個人的にはアロケーションサイズは最大にするのがおすすめ。
  2. 小文字半角でトップディレクトリに"_iso"ディレクトリを作成。この中にISO拡張子なファイルを突っ込んでおくとCDイメージにできる。
  3. ファームウェアをアップデートする
    http://www.zalman.com/ENG/product/Product_Read.asp?idx=431
    ProgramDownloadからファイルを入手。形式がISOなので_isoに突っ込む。これを選択するとLoadingとなり読み込まれる
  4. 日本語化する
    http://www.i-odd.com/tiki-index.php?page=%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C&no_bl=y
    hira 'あ' ?? ?? ??をクリックしダウンロードする。文字化けがひどく解凍ソフトによってエラーを吐く。WinRarがおすすめ
    3と同じように読み込ませるとファイルが日本語で表示できるようになる
使い方
  1. 上に3秒間
    ファイルのリロードが行われる。ファイルをコピーしてすぐに仮想CDとしてマウントしたい場合はこれを行うと画面に出てくる
  2. 下に3秒間
    HDDを停止状態にする。画面のバックライトも消える。これを行ってUSBを抜けばノーダメージでとりはずすことができる。
一般的な取り扱い方は英語のマニュアル見ればわかる
個人的にはまってしまったこと
err23と表示されて仮想CDが利用できない
→チェックディスクを完全に行うと解決する。古いHDDだったので損傷していた模様。特にフォーマット時に怠けてクイックフォーマットを選択するとこうゆうことになったりするので注意

    Logitec LBT-PCHP04 購入

    Disk sda contains BIOS RAID metadata, but is not part of any recognized BIOS RAID sets

    インストールオプション(ブートオプション)でnodmraidを付けてインストールすると良いらしい。
    一番最初のインストール画面でブートオプションを指定するらしい。
    書式はboot: linux option1 option2 option3
    Tabキーを押して出てきた文字の後ろに boot: linux nodmraid と入力し、Enterを押します。
    

    OCZ REVODRIVE AND REVODRIVE X2

    SCM ICカードリーダー/ライター B-CAS・住基カード対応 SCR3310/v2.0

    cnet2_SCR3xxx_win_installer_V8_41_zip.exe

    Ubuntu 12.04 LTS を導入したらまずやることまとめ

    , ,

    Linux の 302 (Mixed Environment) 試験対策: Active Directory との統合

    実例でわかる awk: 第1回

    強制アクセス制御

    MAC:Mandatory Access Control

    多段ssh

    $ ssh -t user@host1 "ssh user@host2"
    

    Excelで検索

    vlookup関数でなんとかなる。

    レッツノート!

    Let's Note CF-T7BW を購入しました。

    Linuxディストリビューション別ネットワークインストールのパス一覧

    仮想化でいろいろ入れるのが楽しくなってきたのでメモがわりにまとめてみます。
    
    CentOS 5
    http://ftp-srv2.kddilabs.jp/Linux/packages/CentOS/5/os/x86_64/
    
    CentOS 6
    http://ftp-srv2.kddilabs.jp/Linux/packages/CentOS/6/os/x86_64/
    
    Scientific linux 5
    http://ftp-srv2.kddilabs.jp/Linux/packages/scientificlinux/5x/x86_64/
    
    Scientific linux 6
    http://ftp-srv2.kddilabs.jp/Linux/packages/scientificlinux/6x/x86_64/
    
    Fedora 16
    http://ftp-srv2.kddilabs.jp/Linux/packages/fedora/releases/16/Fedora/x86_64/os/
    
    Fedora 15
    http://ftp-srv2.kddilabs.jp/Linux/packages/fedora/releases/15/Fedora/x86_64/os/
    
    OpenSUSE
    http://ftp-srv2.kddilabs.jp/Linux/packages/opensuse/distribution/openSUSE-stable/repo/oss/
    
    <ネットワークインストール用のiso>
    Fedora 16
    http://ftp-srv2.kddilabs.jp/Linux/packages/fedora/releases/16/Fedora/x86_64/iso/Fedora-16-x86_64-netinst.iso
    
    Fedora 15
    http://ftp-srv2.kddilabs.jp/Linux/packages/fedora/releases/15/Fedora/x86_64/iso/Fedora-15-x86_64-netinst.iso
    
    Debian
    http://ftp-srv2.kddilabs.jp/Linux/packages/Debian/debian-cd/current/amd64/iso-cd/debian-6.0.3-amd64-netinst.iso
    
    Ubuntu
    http://archive.ubuntu.com/ubuntu/dists/oneiric/main/installer-amd64/current/images/netboot/mini.iso
    

    海外のLPI用練習問題のサイトを見つけた

    Linux exams , Linux exams , Linux exams , Linux exams
    LPIC,RedHat,Ubuntuがある…

    CG-NSC2100GTのDLNAとsambaの設定を弄る

    ダブルグリスバーガーの悲劇

    ■ダブルグリスバーガー、ニュースサイトに掲載!! 
    
    Intelの新CPU「Ivy Bridge」が高熱になる「ダブルグリスバーガー症候群」状態 
    http://gigazine.net/news/20120501-ivybridge-double-grease-burger/ 
    
    ダブルグリスバーガー発売 
    . _____ 
    (_____) ←CPUクーラー 
    ._|___|_ ←グリス 
    .|_____| ←ヒートスプレッダ 
      |___|  ←グリス 
    .__|___|_←コア 
    (_______) 
    
    

    iPad,iPhoneでDLANだ!

    Linux機にmediatombをインストールすると、iPadやiPhoneからLinux機にアクセスできていろいろ遊べる事が今頃知りました。

    超簡単! XenServerを試してみよう

    無償になったXenServerを設定する
    無償XenServer 2台で本格運用環境を作る
    OSPN Press

    シンプルな考えで人生を楽に生きる8つの方法


    前書き
    言葉で楽に生きられるなら苦労はしませんよね。
    だけど本当に苦労せず生きている人もいます。彼らは言葉を信じ、言葉の通りに生きているだけです。
    目の前の現実をいかにシンプルにとらえ、シンプルに処理するか。下記の言葉がヒントになれば幸いです。あなたの人生が『楽』になりますように。
    
    1.今に生きる
    過去を悔やんでたらればを繰り返したり、起きてないことをあれこれ憂いたりするのは時間と労力の無駄遣いで非生産的。
    今の自分の状況や気持ちに行動原理をおく。
    
    2.人や社会に期待をしない
    求めたり「こうあるべき」とイメージを持ったりすれば、現実との差異にがっかりすることになる。
    基本は人生は自己責任。
    
    3.他人は自己の投影
    自分が見ている他人は、他人という物質に反射して映った自分だと考える。
    それが心地よくないものなら自分が変われば良い話。
    
    4.事象を引き寄せている(選んでいる)のは自分
    その出来事を通して味わいたい思いや学びたいことがあるからそれを引き付ける。
    災難ととるのではなく自分の選んだものと思って構える。
    
    5.自分がいなくても世界は回る
    自分が思うより他人や社会は自分を見ていない。
    こうしなきゃ、こうでなきゃ、というのは自己満足であって、大抵の場合は不必要。
    
    6.ワクワクするものごとを選ぶ
    自分の選択で他人が困っても、それは他人が対処すべき問題。
    選択の連続の人生で、自分の心がワクワクする方を正直に選ぶのが一番スムーズ。これができないと葛藤やジレンマに苦しむ。
    
    7.自分の行いは必ず帰ってくる
    自分の行動は、空へ向けてボールを投げるのと同じ。
    きちんと受け止めないでぶつかった時に、痛いと言って責任転嫁しようとしても事は進まない。
    自分が受けたい言動をとればそのまま返ってくる。
    
    8.物事は全て中立
    「悪い出来事」「縁起の良い場所」なんてのは本当はなくて、全て中立な物事に自分が意味付けをしてるだけ。
    たとえば同じ場に居合わせて災害にあったとしても、ある人はたまたま見舞われたと感じるし、ある人は自分の信教の教えを遵守しなかったからと捉えるかもしれない。
    
    後書き
    『ワクワクする事を選ぶ』
    これだけでもだいぶ肩の荷は降りるのではないでしょうか。
    迷ったらワクワクする方を選ぶ。両方ともワクワクしないならそれは選択すべき事柄ではないということ。もちろんワクワクを辛抱しなければいけない場面もでてくるかもしれませんが、辛抱であって決して我慢ではないということを覚えておいていただきたいです。
    

    習うより慣れろ! iptablesテンプレート集



    iptablesとipchainsの違い

    一見したところでは、ipchains と iptables は非常に似ているように思われます。
    どちらの方法でパケットフィルタリングを行っても、Linuxカーネル内で有効な規則
    のチェーンを使用して、指定された規則を満たすパケットの処理方法を決定します。
    しかし、iptables を使用するとより拡張性のある方法でパケットをフィルタリング
    できるので、管理者は複雑な作業をせずに、きめ細かい制御を行うことができます。
    

    主要シグナルの説明

    INT 中断(インタラプト)。コマンドラインで C-c すると送られるシグナル。
    TERM プロセスを終了させる。シグナル名を指定しないと TERM が送られる。
    STOP プロセスを中断させる。CONT で再開できる。C-z のサスペンドと同じ。
    HUP 回線切断。デーモンプロセス (apache や inetd など)を再起動させる場合によく使われる。
    CONT STOPで中断したプロセスを再開させる。
    KILL プロセスを強制終了させる。
    

    LPIの資格を取ってみた

    1/31 LPIC 101
    2/17 LPIC 102
    3/11 LPIC 201
    4/1 LPIC 202
    4/30 LPIC 301
    5/20 LPIC 302
    6/10 LPIC 303
    6/24 LPIC 304
    結構簡単に取れた…こんなものかぁ〜という感じ。

    Cacoo(カクー)を使ってワイヤーフレームを作ってみる


    CentOSでDLAN


    にわか管理者のためのActive Directory入門


    お勧め動画プレーヤー

    The KMPlayer
    GOM

    徹底解説!VMware ESXi


    Windows 7の高速化/猿知恵流な備忘録2012版


    PDFファイルの余白を削除(トリミング)

    PDF Scissors

    私たち凡人が目標を達成するために。

    前書き
    1年も1/4が経過しようとしています。日数にしておよそ90日。 たった90日かもしれませんが、
    目標を達成しようと意識して過ごす90日とそうでない90日では、あなたの成長に雲泥の差が生まれます。
    成長も大切ですが、結果論にこだわるなら「目標が達成できたかどうか」についてこだわりたいです。
    ここでは凡人が目標を達成するために意識すべき5つのことについてまとめてみます。
    肩の力を抜いてサラっと読んでいただければ幸いです。
    
    1.時間が有限であることを意識する
    時間は無限ではありません。楽しい時間も辛い時間もいつか過ぎ去ります。
    2012年も永遠に続くわけではなく、すでに1/4が過ぎようとしています。
    私たちの命も永遠ではなく、いつか亡くなります。
    事故や怪我などをしなければ私たちより先に親は亡くなります。
    人間の死亡率は100%です。元気でいられるのにも、体力的に無茶できるのも今だけです。
    周りの人が遊んでる今、あなたは何をしますか?
    
    2.自分の目標を誰かに伝える
    コミットメントというモノですね。
    『叶う』という漢字は『口に十』と書きます。私は口に出して十回言えば願いは叶う、
    という解釈です。(さすがにプラスじゃないだろう)
    アウトプットすることはとても大切なことです。
    アウトプットすることで自分の目標が記憶に刻まれます。他人に伝えることで自分の逃げ道を塞ぐこともできます。
    自分の目標を主張することは恥ずかしいことではありません。堂々と伝えてみましょう。
    難点といえば、あなたの目標を快く聞いてくれる人が必要です。
    
    3.自分の目標を毎日みる場所に貼り出す
    毎日眺めることで目標を潜在意識に刷り込みます。お手軽ですが非常に効果的な目標達成術の1つです。
    オススメはトイレの壁です。時点でPCのデスクトップだったり手帳だったり。
    
    4.やらないことリストの作成
    私たちの生活には無駄なことなんて何ひとつありません。やらなくてもいいことはたくさんあります。
    無駄なことをたくさんToDoに詰め込んで忙しくなっている人、いませんか?あなたがそうなっていませんか?
    やらないことリストの作成するコツは「とりあえず1つ、やめてみること」です。
    何をやめていいかわからないなら、『急ぎだけど重要ではないもの』をやめてみましょう。
    テレビの視聴がイイ例ですね。私はバラエティ番組(某しゃべくり007と某アメトーーク)を、
    録画して自分の都合の良い時間帯にチェックするだけになりました。
    
    5.目標を数値化し、進捗率にこだわってみる
    目標達成地点を100とすると、今はどの程度完了しているのか数値化できますか?
    数値化できれば、自分が今どこにいて目標達成まであとどれくらいなのか明確にわかります。
    私を含め、凡人ならば目標を数値化できなければ目標達成は難しいです。
    
    後書き
    上記5つのことを無意識のうちに実行できているあなたは間違いなく偉人です。
    私はまだまだ凡人ですので、これらのことはトイレに貼ったりGoogleTaskに記述して眺める頻度をあげたりしています。
    最後に、私に時間の大切さを教えてくれた恩師の言葉を載せて〆ます。
    ―――「お前に足りないものは、それは情熱思想理念頭脳気品優雅さ勤勉さ!
                  そしてなによりも速さが足りない!!」 by ストレイト・クーガー―――
    

    俺でも解るIPTABLES

    1.フィルタリングとアドレス変換
    パケットフィルタリングとは:パケットのヘッダー部分を見て、 設定した条件(送信元IPアドレスや宛先IPアドレス、ポート番号など)
    と一致するかどうかを判定して、 一致する場合は設定したアクション(転送、破棄、アドレス書き換えなど)を行うものである。
    
    アドレス変換とは:パケットのヘッダー部分を見て、設定した条件と一致するかどうかを判定し、 一致する場合はヘッダーのIPアドレス
    やポート番号を書き換えるものである。
    
    2.ipchainsとの違い
    などと ipchains と iptables を比較して、解説してるページがあるが混乱するだけなので、ipchainsのことは忘れてしまった方が良いと思う。
    よってここでは解説しない。
    
    3.「テーブル」という概念
    パケットフィルタリング専用の filter テーブルと、 NAT/マスカレード専用の nat テーブルと分けて区別されている。
    (mangleテーブルってのもあるんですが、解説が省かれている解説サイトが多いので、特に覚えなくてもいいのか?)
    

    フィルタリング用
    filterテーブル

    アドレス変換用
    natテーブル

    FORWARD フォワードするパケット
    INPUT 入力(受信)パケット
    OUTPUT 出力(送信)パケット
    PREROUTING 送信時に変換するチェイン
    POSTROUTING 受信時を変換するチェイン
    OUTPUT 出力(送信)パケット
    よくテーブルやチェインなどの概念を難しく解説している所があるが要は、
    filter(テーブル)で使えるのがFORWARD,INPUT,OUTPUT(チェイン)で、
    natで使えるのがPREROUTING,POSTROUTING,OUPUTということらしい。
    
    これでフィルタリングとマスカレードの機能をちゃんと区別できる。
    
    つまり、# /sbin/iptables -t nat -A FORWARD ってのはありえないってこと。
    
    また、書式の中で filter(テーブル) は省略できる為、通常書かないようだ。つ〜か面倒だから誰も書かない。
    
    4. filter テーブルの INPUT/OUTPUT チェインは、ローカルマシンへのパケットだけに適応される
    ローカルに出入りするパケットの流れと、ロー カルを通過するパケットの流れを完全に区別して取り扱うように
    なった為、外部から入って来るパケットをフィルタするには、ローカルへのフィルタリング設定と、内部LANへの
    フィルタリング設定と、 両方指定する必要がある。
    
    5.iptablesコマンドのオプション
    iptablesの形式
    # iptables [ -t <table> ] [ -A <chain> ] [ <条件> ] [ <アクション> ]
    
    iptablesのオプション([ -A <chain> ])
    -A(--append)	指定チェインに1つ以上の新しいルールを追加
    -D(--delete)	指定チェインから1つ以上のルールを削除
    -P(--policy)	指定チェインのポリシーを指定したターゲットに設定
    -N(--new-chain)	新しいユーザー定義チェインを作成
    -X(--delete-chain)	指定ユーザー定義チェインを削除
    -F	テーブル初期化
    
    iptablesのパラメータ([ <条件> ])
    -p(--protocol) プロコトル	プロトコル(tcp、udp、icmp、all)を指定
    -s(--source) IPアドレス[/mask]	送信元のアドレス。IPアドレスorホスト名を記述
    -d(--destination) IPアドレス[/mask]	送信先のアドレス。IPアドレスorホスト名を記述
    -i(--in-interface) デバイス	パケットが入ってくるインターフェイスを指定
    -o(--out-interface) デバイス	パケットが出ていくインターフェイスを指定
    -j(--jump) ターゲット	条件に合ったときのアクションを 指定
    -t(--table) テーブル	テーブルを指定
    -m state --state	パケットの状態を条件として指定
    stateは、 NEW、ESTABLISHED、RELATED、INVALIDが指定できる
     !	-p、-s、-dなどで、条件を反転(〜以外となる)
    
    上記パラメータにある-jのターゲット([ <アクション> ])
    ACCEPT	パケットの通過を許可
    DROP	パケットを破棄
    MASQUERADE	マスカレード
    SNAT	送信元のアドレスの変換
    DNAT	送信先のアドレスの変換
    LOG	ログを取る
    REJECT	パケットを拒否し、ICMPメッセージを返信
    REDIRECT	特定ポートにリダイレクト
    
    とりあえず、他にかなりのボリュームのコマンドオプションがあるが、それについては設定例に出てくるたびに解説することにする。以下に設定例
    
    iptableの初期化
    # /sbin/iptables -F INPUT
    # /sbin/iptables -F OUTPUT
    # /sibn/iptables -F FORWARD
    この例では-Fオプション指定でINPUT、OUTPUT、FORWARDのテーブルを初期化している。
    
    基本ポリシーの設定
    # /sbin/iptables -P INPUT DROP
    # /sbin/iptables -P OUTPUT DROP
    # /sbin/iptables -P FORWARD DROP
    すべてのパケットを破棄するという意味。すべての穴をふさいでから必要なポートを空けていくのが良い。
    
    外側に向ってマスカレード(NAT)
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
    -t nat でNAT宣言、-A POSTROUTINGでLAN内部から送信するパケットを対象にし、プライベートネットワークのアドレス
    (-s 192.168.1.0/16)を、ネットワークカードeth0から出る時( -o eth0)にマスカレードしますよ〜となる。
    
    特定の外部のサーバからパケットを受け入れる場合(NAT)
    iptables -t nat -A PREROUTING -d 172.16.0.10 -i eth0 -j DNAT --to 192.168.1.10
    -t nat でNAT宣言、-A PREROUTINGで、外部ネットワークのアドレス(-d 172.16.1.10)から、eth0にパケットが送られて
    きたら(-i eth0)、192.168.1.10に転送しますよ〜。
    
    特定の外部のサーバからパケットを受け入れる場合その2(NAT)
    iptables -t nat -A PREROUTING -d 172.16.0.10 -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.0.10 -t nat でNAT宣言、
    -A PREROUTINGで外部ネットワークから受信するパケットを対象に、外部ネットワークのアドレス(-d 172.16.1.10)から、
    eth0にパケットが送られてきた(-i eth0)かつ、プロトコルがTCPでポートが80の場合、192.168.1.10に転送しますよ〜。
    
    ゲームやる時必要になる静的NAT(NAT)
    iptables -t nat -A PREROUTING -p tcp --dport 7000 -i eth0 -j DNAT --to 192.168.0.10:7000
    iptables -t nat -A PREROUTING -p udp --dport 7000 -i eth0 -j DNAT --to 192.168.0.10:7000
    ネットゲーで、自分がサーバを提供する場合必要になる。-t nat でNAT宣言、-A PREROUTINGで外部ネットワークから受信する
    パケットを対象に、tcpプロトコル及びudpプロトコル7000番のパケットが、eth0に送られてきたら、192.168.1.10の7000ポートに転送しますよ〜。
    
    ループバックアドレス
    
    iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
    iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
    ループバックアドレスに関してはすべて許可する。
    
    ゲームやる時必要なフィルタリング
    iptables -A FORWARD -i eth0  -p tcp --dport 1024:65535 -j ACCEPT
    ネトゲーに必要なフィルタリング。EQでは1024番以降のパケット通さないとゲームできませんのでこの設定が必要。
    つ〜か通しておけば何のゲームでもできる。eth0から入ってきたパケット1024〜65535はクライアントに流す。
    ただしほとんどパケットを受け入れる状態になるのでゲームサーバーのアドレスが解っていたら指定するに限る。
    
    www用フィルタリング
    iptables -A FORWARD -i eth0  -p tcp --dport 80 -j ACCEPT
    www用に80を設定。すでにお判りだと思うが、あとは自分で使いたいポートを好きなようにパケット通せば良い。
    smtpは25番とかね。ftpに関しては20:21を通すだけでなく下記のモジュールのロードが必要。
    
    プライベートアドレス側からftpを使えるようにする
    /sbin/insmod ip_nat_ftp
    /sbin/insmod ip_conntrack_ftp
    ftpちゅ〜のは特別なことをしてるそうで、単純にフィルタリングを掛けるだけでは使えない。
    使えるようにするには上記のモジュールをロードする必要がある。
    

    ChainLP・マイ設定を参考までに

    ChainLPのすごいところは
    
     1.画面を効率良く使って表示させるためにページ数の文字だけを文章部分に近づけた上で
     2.書籍の余白を自動で認識して削除し
     3.機種に適した解像度(Dot by dot)に調整し
     4.薄くなりがちな文字を濃くし
     5.この処理を数百枚連続で行った上で、PDF化。
    
    実はかなり細かい設定のできるChainLPですが、私はそこまで検証できていません。
    ですが、おおむね以下の設定で使えていますので大丈夫だと思います。
    もっと細かく設定して美しいPDFを作成するパラメーターを見つけた方はぜひ教えて!!
    
     ・入力:dir/回転なし
     ・出力:pdf
     ・サイズ:解像度より機種を選ぶと数字が自動で入ります
     ・綴じ:右綴じ
     ・2個1:なし
     ・ルーラー配置:なし
     ・縦横比チェック:OFF
     ・ページ補正:コミックは「コミック優先」
            小説は「小説優先」
            ノンブルはページ数が打たれた位置を指定
     ・本文ボールド化:OFF
     ・ガンマ値補正:ON/数字空欄にして、自動レベルにチェック
     ・シャープネス:OFF
     ・タイトルはあとでリネームするのでそのままで。
    
     ※編集→詳細設定より「ファイル出力」タブのKindle対応の余白除去キャンセルにチェック
         キンドル利用の方はチェックを入れておくといいと思います。
         文章がページの半分くらいで終わっているときなどに、無駄に拡大して表示されないように
         ページの角にわざとゴミデータをいれてくれます。
    
     ※編集→詳細設定より「ページ補正設定」タブの補正時レベルは「傾き補正と余白除去(精細)」
         小説解析・コミック解析のあたりは細かい設定ができるようですが、私はそのまま使っています。
    

    自炊コミックの最適画像サイズ

    自炊したマンガ(コミック、漫画)を各種読書端末で読むための最適化についてメモ。各種と言ってもiPad 2とKindle 3だが。
    
    Windowsには自炊データを各種端末に合わせて最適化するためのChainLPという定番アプリケーションがあるらしいが、あいにくMac用はない。しかたないのでImageMagickとRubyスクリプトを組み合わせて、スキャン画像を切り抜き/結合/リサイズ/最適加工した画像をzip, mobi化して読んでいる。
    
    iPad
    見開きで1536×1024pxが最適。
    
    iPadのスクリーンサイズは768×1024pxである。この大きさが単ページを表示する最適サイズ。
    
    単ページイメージ2枚をつなぎ合わせて見開きのイメージを作成する。こうしておくと気の利いたビューアは、iPadを縦にした時は単ページ表示で1ページずつ、横にした時は見開き表示で2ページずつめくってくれる。少なくとも今までのマンガは見開きで読まれることを前提に作画されているだろうから、これが合理的。この画像サイズなら、
    
    iPad横置き=見開きで読み進めて、細かいところを見たい時だけ縦にする。
    iPad縦置き=単ページで読み進めて、大ゴマ・見開きがある時だけiPadを横にする。
    どちらの読み方でも快適だ。
    
    ちなみにビューアとして、CloudReadersを使っている。
    

    fetchmail,procmail,dovecot

    Linuxサーバーにfetchmailで取り込まれたメールは、procmailで振り分けられて、Maildir形式で保存されるようになりました。今日は、この保存されたメールをリモートから参照できるようにLinux箱にIMAPサーバーであるdovecotを立てる。
    

    FTP接続時のアクティブモードとパッシブモード

    通常FTPでクライアント→サーバへデータ転送要求御、サーバ→クライアントへ制御接続要求を出す。
    これがアクティブモードで、クライアント側のFirewallにひっかかってしまう事がある。
    これを回避できるのがパッシブモード接続
    データ制御要求も、クライアント→サーバの形で要求を出すためクライアント側のFirewallを回避
    する事ができる。

    ATiのビデオカードでスパンモードにする

    1920x1200の液晶を2個用意できたので、2つとも縦置きにして2400x1920の1つの画面モードにした。
    1.Catalyst Control Centerを起動
    2.AMD Eyefinity Multi-Displayを選択
    3.適当にセッティング
    これで、でっかい1画面のできあがり。

    デリミタ(区切り文字)として使用される値が設定されている環境変数。

    IFS は "Internal Field Separator" の略。
    デフォルトではタブ、スペース、改行が設定されている。for 文の値リストの区切りや、
    read コマンドで読み込む値の区切りなどに使用される。
    IFSoriginal=$IFS
    IFS=$'\n'
        for i in `cat hoge.txt`
            do
            echo ${i}
        done
    IFS=$IFSoriginal
    

    難しい思考法を簡略化するためのヒント。

    1.過去から学ぶ

    私たちは常に経験を重ねて生きています。
    その経験を『失敗』と受け止めることも『トラウマ』に変えることもあなた次第です。

    私の先輩にスロプロがいます。彼がパチスロを始めたのは今から10年ほど前のことです。
    それから3年ほど彼は負け続けました。
    借金も増え、周りからもバカにされてました。
    そんな彼も今では立派にパチスロだけで食べていけるようになりました。
    彼は負け続けたおかげで『どうやってパチスロで遊戯をしたら負けるのか』を学んだそうです。
    あとは過去に負けた敗因と同じことを繰り返さないよう注意するだけで、パチスロでの負けはだいぶ減り、その分勝つ事が増えたと私に教えてくれました。

    パチスロが良いか悪いかは置いといて、彼は過去の経験から学んだ賢者であることは間違いありません。
    あなたも、過去の『失敗』や『トラウマ』から何か学べませんか?

    2.重要なことに焦点を当てる

    重要なことを決めるのは自分自身です。自分にとって何が重要なのか判断する必要があります。
    重要なのか判断できたら、次に重要でないことを排除します。出来る限り視界に映らないようにします。

    『二兎を追う者は一兎をも得ず』という言葉がありますがこの精神が大切です。
    二兎ではなく自分にとって重要な一兎だけを見るようにします。
    『両方大切で選べない』という場面は、大抵どちらも正解です。
    考える時間がもったいないのでどちらか適当に決めましょう。
    また、生活をしていれば急ぎの用事も突然舞い込んでくるでしょう。
    どんなときも、それらに巻き込まれないよう注意してください。
    常に重要なことだけを見る姿勢を忘れずに。

    3.ギブ・アンド・ビーギブン

    他人にギブしたものは必ず返ってきます。与えた人から直接返ってくるときもあれば、別の人を経由して返ってくるときもあります。

    愛が欲しければ愛を与えること。
    他人に愛を与えてない人が「恋人ができない」「モテない」と言いますが当たり前です。
    ギブしない人のところに情報は集まりません。
    友達が欲しければ友好的な感情を与えること。
    お金が欲しければお金を与えること。
    仕事が欲しければ仕事を与えること。

    ギブ・アンド・テイクに近いけど、テイクではないんですよね。
    「あなたに愛を与えたから、あなたの愛をもらうよ」というモノではありません。
    この方法は愛も友達もお金も仕事もあなたに与えられるモノです。ですから、あなたは何も考えずにひたすら与えてみればいいのです。
    どこに与えればどこからリターンがくるのか少しずつ見えてきます。
    見えるまでひたすら与えるだけの単純作業です。

    4.他人に嫌われることを気にしすぎない

    誰からも好かれる人なんていません。あのキムタクでさえ、アンチがいます。
    AKB48にだってアンチがいます。キリストや仏陀にだってアンチがいます。
    全員を喜ばすことは不可能です。全員を助けるのは不可能です。全員から好かれるのは不可能です。
    全員から好かれることを目標に行動をしても勝手ですが、それはキリストや仏陀を超えることになります。

    他人から嫌われすぎるのはどうかと思いますが、多少なりとも他人から嫌われることに対して意識を低くすると、詰まっている息がスッと吐き出せるようになります。

    5.道徳にそむくことをやめる

    常に公平であり、常に正直であり、常に忠実であるだけです。
    これを守るだけで人生はだいぶシンプルに、スッキリします。

    6.悲劇のヒロインから距離をおく

    被害妄想が強く、常に悲劇のヒロインを演じている知人はいませんか?
    彼らは周りの幸せを吸い取り、一緒に不幸になることに喜びを感じます。
    私たちの幸せを彼らに分け与えるには、人生は短すぎます。
    お互いが尊重できるような人といる時間を増やすことで人生はだいぶ楽しくなります。

    7.他人からの期待を全て忘れる

    他人から期待を背負っている人は少なくないと思います。
    勉強やスポーツの世界は親からの期待がのしかかります。
    男子はバレンタインデーにチョコをもらったらホワイトデーに期待されます。
    恋人同士はお互いの誕生日プレゼントなど相手に期待するのではないでしょうか。
    他人からの期待に応えようとして空回りした経験はありませんか?
    他人からの期待という小さな箱に入ろうとして、思考が窮屈になっていませんか?

    後書き

    注目して頂きたいのが3番。
    成功者ってとにかく周りに与えますよね。
    ご飯をご馳走したり募金したり。人と人との出会いの架け橋になったり。
    『シンプル=成功者』とまでは言いませんが、自分が描く理想の世界で生きる人はみなシンプルに物事を考えて楽観的に生きているように見受けられます。
    この他にもヒントはたくさんあると思います。あなたがそのヒントに気づき、知っているならばぜひ周りの人に情報を発信してみませんか。

    #ギブ・アンド・ビーギブン。カタカナで書くと頭悪そうに見えますね。私の頭の悪さを今更隠す気はないのでこのままエントリーします。

    Excelで数式のみ削除

     Dim myad As String
      myad = Selection
      With ActiveSheet.Selection
      .Copy
      .PasteSpecial Paste:=xlValues
      End With
      ActiveSheet.Range(myad).Select
      Application.CutCopyMode = False
    

    Linux,Windowsのファイルシステム入門

    bashのコマンドライン履歴機能。直前のコマンド、直前の引数。

    実行系

    !sudoとすれば、sudoで始まる直近の実行コマンドを再度実行。他にヒットしないのがわかってれば、!suとか!sでもいい。最短マッチ。

    $ vim ../../.zshrc

    $ !:s/zsh/vim

    代わりの名前系(単語指示子、というらしい)

    使うケースは多い。

    $ ls /etc/hoge/fuga/

    $ cd !^

    とか。!^が最初の>引数、!$で最後、!:nでn番目、!*ですべての引数を表す。引数が一つで単純に「さっき引数にした奴」を取りたいなら、左手だけで打てる「!$」を使う事が多いかな。

    オプション

    ファイル連番&リネームソフト

    Namery使ってたけど時々エラーが出て厄介だった。
    そこで、AllRenameってソフトを使ってみたら凄く便利だった!
    

    キーボードのショートカット一覧

    Microsoft

    ACCESSでのワイルドカード

    ワイルドカード

    説明

    抽出結果例

    ?

    任意の1文字

    Like "?やま"

    "かやま""すやま""とやま"

    *

    任意の数の文字

    Like"*"

    "さとう""さかた""さかもと"

    #

    任意の1文字の数

    Like "199#"

    "1990""1998""1999"

    [文字リスト]

    文字リストに指定した文字の中で任意の1文字

    Like "[こご]*"

    "こやま""こんどう""ごとう"

    [!文字リスト]

    文字リストに指定した文字以外で任意の1文字

    Like "[!かすと]やま"

    "こやま""のやま""ひやま"

    開いた窓を全てダウンロード

    FireFox + TabMixPlus
    

    Windows7での仮想ドライブ

    DaemonToolsが使いにくくなった・・・つか、使えない。
    よって、簡単なMagicDiscに移行。かなり便利で良い!

    Windows7でハイバネーションを無効に

    ハイバネーション(hiberfil.sys)を無効にしたい時は
    コマンドプロンプト上で
    powercfg.exe /hibernate off
    と入力すればOK
    これでエクスプローラなどからシステムドライブを確認すればhiberfil.sysは消えているはず。
    
    再びハイバネーションを有効にしたいときは
    powercfg.exe /hibernate on
    と入力すればOKです。
    
    ステータスを確認したい時は
    powercfg.exe /a
    と入力。
    

    awkオプション

    Linuxコマンド集

    linuxにおけるSUID,SGID,スティッキー ビット(Sticky bit)

    1.SUID,SGID,スティッキービットの説明
    フラグ 説明 設定
    SUID ファイルの所有者として実行される 実行可能ファイル(スクリプトは不可)
    SGID ファイルの所有グループとして実行される 実行可能ファイル(スクリプトは不可)
    スティッキービット 全ユーザは書き込み可能だが、所有者以外は削除できない ディレクトリに設定
    2.SUID (1)suidの例
    -r-s--x--x 1 root root 21200 6月 17 2005 /usr/bin/passwd
    
    (2)検索方法
    find / -type f -perm -04000
    
    (3)設定方法
    chmod u+s test.txt 
    
    あるいは
    chmod 4??? test.txt
    
    (注)???はその他のパーミッションで適切な数字を入れる必要があります。 3.SGID (1)SGIDの例
    -rwxr-sr-x 1 root smmsp 733912 6月 9 2006 /usr/sbin/sendmail.sendmail
    
    (2)検索方法
    find / -type f -perm -02000
    
    (3)設定方法
    chmod g+s test.txt
    
    あるいは
    chmod 2??? test.txt
    
    (注)???はその他のパーミッションで適切な数字を入れる必要があります。 4.スティッキービット (1)スティッキービットの例
    drwxrwxrwt 2 root root 4096 7月 12 2006 samba
    
    (2)設定方法
    $ chmod o+t testdir
    

    CentOSでBonding

    vi操作など

    ,

    シェルスクリプト入門

    シェルスクリプトとは

    複数の処理(コマンド)をまとめて行なうことのできるスクリプトである。スクリプトとは、機械語への変換作業を省略した簡易プログラムのことで、代表的なものにはPerlやVBScript、JavaScriptなどがある。また、シェルとは与えられた指示をOSの中核部分に伝えるソフトウェアのことである。

    シェルの書き方

    最も簡単なシェルスクリプト(以降シェル)は、実行したいコマンドをそのまま並べてファイルに記述することです。例えば、定期的に「abc.log」というファイルをバックアップ&圧縮した後、内容をクリアしたいとします。それをシェル「abclog_bk.sh」にしたい場合、下記のように記述します。
    abclog_bk.sh

    #!/bin/sh
    cp -p abc.log abc.log.bak
    gzip abc.log.bak
    cat /dev/null > abc.log

    #!/bin/sh」(または、#!/usr/bin/sh)はお約束で、必ず1行目に記述します。「#!」以後に書かれたプログラムでスクリプトを実行するという意味です。また「/dev/null」とは空ファイルのことで、ファイルの内容をクリアするのに利用できます。「: > ファイル名」でもファイルの内容をクリアすることができます。

    シェルの実行

    上記で作成した「abclog_bk.sh」を実行するには、ファイルに実行権限を付与した後、下記のように実行します。

    $ chmod u+x abclog_bk.sh
    $ abclog_bk.sh

    環境変数「$PATH」に「.」を記述していない場合は、ファイル名の前に「./」を記述する必要があります。

    シェル変数

    変数は文字列や数値など、さまざまなデータを記憶しておくものです。変数名に使える文字は、英数字または「 _ 」(アンダーバー)で、1文字目に数字は使えません。変数に値を代入するには「変数名=値」とします。「=」の前後にはスペースやタブを入れることはできません。変数を参照する場合は、変数名の前に「$」を付けます。下記の例を参考に解説します。
    test.sh

    #!/bin/sh
    #-----変数に値を代入します-----
    PARA1="string"
    PARA2=string
    PARA3=3
    PARA4=`date '+%Y-%m-%d'`
    #-----変数を「echo」で表示します-----
    echo "PARA1 = ${PARA1}"
    echo "PARA2 = ${PARA2}"
    echo "PARA3 = ${PARA3}"
    echo "PARA4 = ${PARA4}"
    echo "PARA5 = ${PARA5}"

    上記の「echo」コマンドの部分のように、どこまでが文字列でどこからが変数なのか誤解釈されそうな場合には、変数名を「{ }」で囲む必要があります。変数名は常に「{ }」で囲むようにすることをお勧めします。PARA1 と PARA2 は「" "」の有り無しという違いがありますが、結果は同じです。PARA4 のようにコマンドの結果を変数に格納したい場合は、「` `」でコマンド部分を囲みます。PARA5 のように値が代入されていない変数は、空文字となります。
    それでは実際に上記スクリプト実行してみます。以下のような結果となります。

    $ test.sh
    PARA1 = string
    PARA2 = string
    PARA3 = 3
    PARA4 = 2006-02-03
    PARA5 =
    $

    特殊な変数

    ここでは、記号または数字を使用した特別な意味を持つ変数について説明します。これらの特殊な変数は、参照専用で値を代入することはできません。

    変数 意味
    $$ シェル自身のPID(プロセスID)
    $! シェルが最後に実行したバックグラウンドプロセスのPID
    $? 最後に実行したコマンドの終了コード(戻り値)
    $- setコマンドを使って設定したフラグの一覧
    $* 全引数リスト。"$*"のように「"」で囲んだ場合、"$1 $2 … $n" と全引数を一つにくっついた形で展開される。
    $@ 全引数リスト。"$@"のように「"」で囲んだ場合、"$1" "$2" … "$n" とそれぞれの引数を個別にダブルクォートで囲んで展開される。
    $# シェルに与えられた引数の個数
    $0 シェル自身のファイル名
    $1〜$n シェルに与えられた引数の値。$1は第1引数、$2は第2引数…となる。

    シェルに引数を渡すには、シェルの後ろにスペースで区切って、引数を並べていきます。 下記サンプルを例に引数について解説します。
    arg_test.sh

    #!/bin/sh
    echo $#
    echo $@
    echo $0
    echo $1
    echo $2
    echo $3

    それでは実際に上記スクリプトに引数を与えてみます。以下のような結果となります。

    $ arg_test.sh a b c
    3
    a b c
    arg_test.sh
    a
    b
    c
    $

    if

    条件によって処理を分岐させたい場合は、if文を使用します。
    シェルスクリプトのif文は下記のような構文になります。

    if [ 条件1 ]
    then
      処理1
    elif [ 条件2 ]
    then
      処理2
    else
      処理3
    fi

    if、スペース、[ 条件 ] という文法となりますが、条件の前後にはスペースを入れないと、エラーとなりますので注意が必要です。「 if [ 条件 ] 」という書き方を「 if test 条件 」と書くこともできます。elif, else は省略することも可能です。また、条件が偽の場合に処理を行いたい場合は、「! 条件」と記述します。下記は、簡単なif文のサンプルです。
    test.sh

    #!/bin/sh
    pwd
    ret=$?
    if test ${ret} -eq 0
    then
      echo "pwd 正常終了"
    else
      echo "pwd 異常終了"
    fi

    上記サンプルスクリプトの2〜3行目は「pwd」コマンドを実行して、終了コード(戻り値)を変数「ret」に格納しています。4行目以降は、変数「ret」が「0」なら正常終了と表示し、「0以外」なら異常終了と表示します。それでは実際に上記スクリプト実行してみます。以下のような結果となります。

    $ test.sh
    /home/user
    pwd 正常終了
    $

    ↑先頭へ

    case

    変数の値によって複数の処理に分岐させたい場合は、case文を使用します。
    case文は下記のような構文になります。

    case 変数 in
       パターン1) 処理;;
       パターン2) 処理;;
       パターン3 | パターン4) 処理;;
       *) 処理;;
    esac

    ;;」は「case文を抜ける」という意味です。「*)」は「いずれのパターンにもあてはまらない場合」という意味で、省略可能です。パターンを「 | 」で区切って論理和(or)をとることもできます。また、パターンには正規表現が使えます。正規表現についてはこちらを参照ください。

    ↑先頭へ

    while

    条件が真である間、処理を繰り返し実行したい場合は、while文(ループ処理)を使用します。処理を途中で中断してループを抜けたい場合は「break」、ループの先頭に戻りたい場合は「continue」を使用します。while文は下記のような構文になります。

    while [ 条件 ]
    do
      処理
    done

    以下はwhile文を使用したサンプルスクリプトです。
    while_test.sh

    #!/bin/sh
    a=0
    while [ $a -ne 10 ]
    do
      a=`expr $a + 1`
      echo "${a} 回目の処理"
    done

    上記は、変数「a」を「echo」コマンドで表示する処理を10回繰り返します。
    実行結果は以下のようになります。

    $ while_test.sh
    1 回目の処理
    2 回目の処理
    3 回目の処理
    4 回目の処理
    5 回目の処理
    6 回目の処理
    7 回目の処理
    8 回目の処理
    9 回目の処理
    10 回目の処理
    $

    また、ファイルを1行毎に読み込んで処理させたい場合は、以下のような構文になります。

    while read line
    do
      処理(${line}を処理)
    done < ファイル

    line」は変数であり、指定したファイルを1行毎に読み込んで順次「line」に格納されます。ファイルの終端(EOF)まできたら「while」を抜けます。

    ↑先頭へ

    for

    与えられた引数の数だけ、処理を繰り返し実行したい場合は、for文(ループ処理)を使用します。処理を途中で中断してループを抜けたい場合は「break」、ループの先頭に戻りたい場合は「continue」を使用します。for文は下記のような構文になります。

    for 変数 in 引数1 引数2 …
    do
      処理
    done

    変数に与えられた引数を順次代入していき、引数がなくなり次第「for」を抜けます。
    以下はfor文を使用したサンプルスクリプトです。
    for_test.sh

    #!/bin/sh
    for arg in $@
    do
      echo ${arg}
    done

    上記は、シェルに与えられた引数「$@」を変数「arg」に順次格納して、「echo」で表示します。それでは実際に上記スクリプトに引数を与えてみます。以下のような結果となります。

    $ for_test.sh aa bb cc dd
    aa
    bb
    cc
    dd
    $

    ↑先頭へ

    until

    条件が偽である間、処理を繰り返し実行したい場合は、until文(ループ処理)を使用します。処理を途中で中断してループを抜けたい場合は「break」、ループの先頭に戻りたい場合は「continue」を使用します。until文は下記のような構文になります。

    until [ 条件 ]
    do
      処理
    done

    until文の用途としては、あるコマンドが正常終了(終了コード=0)するまで、コマンドを繰り返し実行したい場合などに便利です。例として以下のような処理です。

    #!/bin/sh
    until コマンド
    do
      sleep 5
    done

    コマンドが異常終了(終了コード!=0)した場合は、5秒間スリープして再実行を繰り返します。コマンドが正常終了(終了コード=0)したら、「until」を抜けます。

    四則演算

    シェルスクリプトで数値の演算を行いたい場合は、「expr」コマンドを使用します。例えは、変数に5と3を足した数値を格納したい場合、「変数=5+3」と書くことはできません。変数には「5+3」という文字列が格納されることになります。シェルスクリプトでは、「変数=`expr 5 + 3`」と書きます。
    「expr」コマンドで使用できる算術演算子は以下のとおりです。

    算術演算子 意味
    a + b aとbの和
    a - b aとbの差
    a \* b aとbの積
    a / b aとbの商
    a % b aとbの剰余

    乗算の演算子は「*」ですが、UNIXでは「*」はワイルドカードという特別な意味がありますので、エスケープ文字「\」を使用して「\*」と書きます。また、演算子の前後のスペースは省略できませんので注意してください。以下は四則演算のサンプルスクリプトです。
    expr_test.sh

    #!/bin/sh
    a=`expr 5 + 3`
    b=`expr 5 - 3`
    ab=`expr $a + $b`
    c=`expr 5 \* 3`
    d=`expr 5 / 3`
    e=`expr 5 % 3`
    echo "a=$a"
    echo "b=$b"
    echo "ab=$ab"
    echo "c=$c"
    echo "d=$d"
    echo "e=$e"

    それでは実際に上記スクリプトを実行してみます。以下のような結果となります。

    $ expr_test.sh
    a=8
    b=2
    ab=10
    c=15
    d=1
    e=2
    $

    ↑先頭へ

    数値比較

    if文やwhile文の条件で、変数等を数値として評価して比較を行いたい場合は、以下のように記述します。

    数値評価演算子 意味
    数値1 -eq 数値2 数値1と数値2が等しい場合に真
    数値1 -ne 数値2 数値1と数値2が等しくない場合に真
    数値1 -gt 数値2 数値1が数値2より大きい場合に真
    数値1 -lt 数値2 数値1が数値2より小さい場合に真
    数値1 -ge 数値2 数値1が数値2より大きいか等しい場合に真
    数値1 -le 数値2 数値1が数値2より小さいか等しい場合に真

    ↑先頭へ

    文字列比較

    if文やwhile文の条件で、変数等を文字列として評価して比較を行いたい場合は、以下のように記述します。

    文字列評価演算子 意味
    文字列 文字列の長さが0より大きければ真
    -n 文字列 文字列の長さが0より大きければ真
    ! 文字列 文字列の長さが0であれば真
    -z 文字列 文字列の長さが0であれば真
    文字列1 = 文字列2 2つの文字列が等しければ真
    文字列1 != 文字列2 2つの文字列が等しくなければ真

    ↑先頭へ

    ファイルチェック

    if文やwhile文の条件で、ファイルの形式・パーミッション・特性で評価したい場合、以下のように記述します。

    ファイルチェック演算子 意味
    -d ファイル名 ディレクトリなら真
    -f ファイル名 通常ファイルなら真
    -L ファイル名 シンボリックリンクなら真
    -r ファイル名 読み取り可能ファイルなら真
    -w ファイル名 書き込み可能ファイルなら真
    -x ファイル名 実行可能ファイルなら真
    -s ファイル名 サイズが0より大きければ真
    ファイル1 -nt ファイル2 ファイル1がファイル2より新しければ真
    ファイル1 -ot ファイル2 ファイル1がファイル2より古ければ真

    ↑先頭へ

    論理結合

    if文やwhile文で、複数の条件を結合(AND,OR)して評価したい場合は、以下のように記述します。

    論理結合演算子 意味
    ! 条件 条件が偽であれば真
    条件1 -a 条件2 条件1が真、かつ、条件2が真であれば真
    条件1 -o 条件2 条件1が真、または、条件2が真であれば真
    関数の作成

    シェルスクリプトでも関数を作成することができます。
    関数は下記のような構文になります。

    関数名()
    {
      処理
      ・・・
    }

    C言語のように括弧の中に引数を記述する必要はありません。関数に引数を渡す場合は、シェルと同じようにスペース区切りで渡します。関数に渡された引数を参照する場合も、シェルと同じように「$1, $2, ...」と参照します。呼び出し元に終了コードを返す場合は「return コード」と記述します。以下は関数を使用したサンプルスクリプトです。
    func.sh

    #!/bin/sh
    arg_chk()
    {
    # 引数の数が2の場合
    if test $# -eq 2
    then
      return 0
    # 引数の数が2以外の場合
    else
      return 1
    fi
    }

    arg_chk $@
    ret=$?
    echo "引数チェック結果=${ret}"

    関数「arg_chk」で、引数の数をチェックして、2の場合は戻り値「0」で終了し、それ以外の場合は戻り値「1」で終了します。それでは実際に上記スクリプトに3つの引数を渡して実行してみます。以下のような結果となります。

    $ func.sh a b c
    引数チェック結果=1
    $

    関数を使用した応用的なプログラムについては、サンプルスクリプト集で解説します。

    ↑先頭へ

    オプションの使用

    シェルには、コマンドのオプションを解析したりチェックしたりするための、「getopts」というコマンドがあります。スクリプトに「シェル名 -l abc」のようにオプションを利用して引数を渡したい場合に使用します。以下に「getopts」コマンドを利用したサンプルスクリプトを紹介します。
    getopts.sh

    #!/bin/sh
    while getopts l:t: opt
    do
      case ${opt} in
      l)
       LIST=${OPTARG};;
      t)
       TYPE=${OPTARG};;
      \?)
       exit 1;;
      esac
    done
    echo "LIST=${LIST}"
    echo "TYPE=${TYPE}"

    l:t:」の部分は、「-l」と「-t」というオプションを取得するという意味で、オプション文字の後ろに「:」(コロン)を付けて、複数指定できます。変数「opt」には、「l」または「t」という文字列が順番に格納され、case文で「l」の場合、「t」の場合と処理を分岐させています。変数${OPTARG}は、オプションに続く文字列が格納さる「getopts」コマンド固有の変数です。
    それでは実際に上記スクリプトを実行してみます。以下のような結果となります。

    $ getopts.sh -l list -t type
    LIST=list
    TYPE=type
    $

    上記の例では、「-l」オプションで文字列「list」、「-t」オプションで文字列「type」を渡して、「echo」コマンドで表示しています。「-l」「-t」以外のオプションが渡された場合は、終了コード「1」で終了します。

    共通関数を外部ファイルに作成する

    各シェルスクリプトで共通に使用したい関数を外部ファイルに作成しておくと便利です。外部ファイルの読込は、各シェル内で「 . ファイル名 」と記述すれば外部ファイルに記述した関数を使用できます。外部ファイルに「変数」を定義しても同様に使用できます。以下は関数のサンプルです。
    sample.fnc

    # --共通関数定義--
    # ログ出力関数
    LOG()
    {
      # ログ出力先
      LOG_DIR=./

      # 引数展開
      FILENM=`basename $0`
      MSG=$1

      # 変数定義
      LOG_DATE=`date '+%Y-%m-%d'`
      LOG_TIME=`date '+%H:%M:%S'`
      LOGFILE="${LOG_DIR}${LOG_DATE}_`basename $0 .sh`.log"

      # ログ出力実行
      printf "%-10s %-8s %-14s %-50s\n" \
      "${LOG_DATE}" "${LOG_TIME}" "${FILENM}" "${MSG}" >>${LOGFILE}
    }
    # 年月取得関数
    GetYM()
    {
      SYSTEM_MONTH=`date '+%Y%m'`
      echo ${SYSTEM_MONTH}
    }
    # 年月日取得関数
    GetYMD()
    {
      SYSTEM_DATE=`date '+%Y%m%d'`
      echo ${SYSTEM_DATE}
    }

    ・ログ出力関数「LOG」
     呼び出し元のファイル名($0)より、「
    basename」コマンドを使用して「.sh」を「.log」に変更したファイルに「printf」コマンドを使用して、引数で渡されたメッセージの内容を出力します。ファイル名の先頭に年月日、メッセージの先頭に年月日時分秒と呼び出し元のファイル名を付加しています。
    ・年月取得関数「GetYM」
     「date」コマンドの年月フォーマットを取得して返却します。「return」では返却できない数値のため「echo」で返却しています。
    ・年月日取得関数「GetYMD」
     「date」コマンドの年月日フォーマットを取得して返却します。「return」では返却できない数値のため「echo」で返却しています。

    以下は、共通関数「sample.fnc」を読み込んで、処理を実行するサンプルです。
    sample.sh

    #!/bin/sh
    # --共通関数ファイル読込--
    . sample.fnc

    # ログ出力
    LOG "ログ出力のテスト開始"

    # 年月取得
    YM=`GetYM`
    mkdir ${YM}

    # 年月日取得
    YMD=`GetYMD`
    touch ${YMD}.dat

    # ログ出力
    LOG "ログ出力のテスト終了"

    それでは実際に「sample.sh」を実行してみます。以下のような結果となります。

    $ ls
    sample.fnc  sample.sh
    $
    $ sample.sh
    $
    $ ls -F
    2006-02-07_sample.log   20060207.dat   sample.sh*
    200602/          sample.fnc
    $
    $ cat 2006-02-07_sample.log
    2006-02-07 16:20:32 sample.sh   ログ出力のテスト開始
    2006-02-07 16:20:32 sample.sh   ログ出力のテスト終了
    $

    ↑先頭へ

    ヒアドキュメントの利用

    シェルスクリプトでもヒアドキュメントを使用することができます。ヒアドキュメントは、Perlなどの「cgi」を利用したホームページ作成などでよく使用されますが、構文は同じです。
    ヒアドキュメントは、下記のような構文になります。

    コマンド <<_EOF_
    line1
    line2
    line3
    _EOF_

    シェルは「<<」を見つけると、それに続く文字列(上記例では_EOF_)を EOFマークとして覚えます。そして、その直後の行から次のEOFマークの直前の行までをコマンドへ順次渡していくという仕組みです。それではヒアドキュメントを「ftp」コマンドで使用するサンプルスクリプトを紹介します。
    ftp_sample.sh

    #!/bin/sh
    HOST_NAME="ホスト名またはIPアドレス"
    USER_NAME="ftpユーザー名"
    PASSWORD="パスワード"
    LOCAL_DIR="ローカル側の作業ディレクトリ"
    GET_DIR="ftp先の作業ディレクトリ"
    FILE_NAME="getするファイル名"

    ftp -n ${HOST_NAME} << _EOF_
    user ${USER_NAME} ${PASSWORD}
    bin
    lcd ${LOCAL_DIR}
    cd ${GET_DIR}
    get ${FILE_NAME}
    bye
    _EOF_

    上記は、指定したホストに「ftp」で接続して、指定したファイルを取得するサンプルスクリプトです。取得するファイル名等を引数にすれば汎用的に使えると思います。

    ↑先頭へ

    findコマンドの有効利用

    ここでは、「find」コマンドを有効利用して、手動で行うような処理を自動化する方法を紹介します。例えば古いログファイル等を自動的に削除したい場合、findコマンドとcronを利用して自動化することができます。以下はそのサンプルです。
    auto_del.sh

    #!/bin/sh
    find /home/usr/log -name '*.log' -mtime '+30' -exec rm -f {} \;
    find /home/usr/log -type d -name '2*' -mtime '+60' -exec rm -r {} \;

    1つ目のfindでは、拡張子が「.log」のファイルで、最終更新時刻が30日前のファイルを削除します。2つ目のfindでは、「2」で始まるディレクトリで、最終更新時刻が60日前のディレクトリをディレクトリごと削除します。
    上記のスクリプトを「crontab」コマンドで定期的に起動するように登録しておくことで自動化できます。もちろん「crontab」のファイルに「find」コマンドを直接記述してもOKです。

    ↑先頭へ

    リストファイルを読み込んで処理する

    指定したファイルを1行毎に読み込んで処理する方法は、制御構文「while」にて解説したが、ここではその応用となるサンプルスクリプトを紹介する。
    sample1.fnc

    # --共通関数定義--
    LIST=./abc.lst
    # 文字列取得関数
    GETSTR()
    {
      # 引数チェック
      if [ $# -ne 1 ]
      then
        return 1
      else
        ID=$1
      fi

      # IDより文字列を探す
      while read F1 F2
      do
        if [ "${F1}" = "${ID}" ]
        then
          echo ${F2}
          break
        fi
      done < ${LIST}
    }

    上記は、「abc.lst」という外部ファイルから、引数で与えられた文字列をキーに対応する文字列を検索して返却する関数である。「abc.lst」ファイルの内容は以下のようになっています。
    abc.lst

    001 AAA
    002 BBB
    003 CCC
    004 DDD

    abc.lst」ファイルは、2つのフィールドに分かれています。例えば、1行目はフィールド1が「001」、フィールド2が「AAA」となっています。各フィールド間は、スペースかTABで区切る必要があります。処理の流れは、「abc.lst」ファイルを1行ごとに読み込み、「while read」で2つのフィールドの文字列をそれぞれ「F1」と「F2」に格納します。引数で与えられた文字列「$ID」と「$F1」が一致した場合に「$F2」を「echo」コマンドで返却するという流れです。
    下記は、上記関数を呼び出すサンプルスクリプトです。
    sample1.sh

    #!/bin/sh
    # --共通関数ファイル読込--
    . sample1.fnc

    # 文字列取得
    STR002=`GETSTR 002`
    STR004=`GETSTR 004`
    STR006=`GETSTR 006`

    echo "STR002=${STR002}"
    echo "STR004=${STR004}"
    echo "STR006=${STR006}"

    それでは実際に「sample1.sh」を実行してみます。以下のような結果となります。

    $ sample1.sh
    STR002=BBB
    STR004=DDD
    STR006=
    $

    フィルタ活用法

    |(パイプライン)でコマンドをつなぐこと

    cat file | filter_1 | finter2


    sedコマンド

    sed -e "s/OldText/NewText/g" samplefile >result
    サンプルファイルの中のOldTextをNewTextに変換してresultに書き出す

    sed -n '2p' samplefileの2行目だけを出力する

    sed -e "s/TexttoRemove//g"
    文字列の削除

    sed -e "s/^TexttoRemove//"
    行頭の文字列を消す

    sed -e "s/TexttoRemove\$//"
    行末の文字列を消す

    sedファイルを読み込んで実行

    sample.sed
    s/Jan/1月/ s/Feb/2月/

    ls -la / | sed -f sample.sed
    sample.sedから読み込んで実行

    ドット(.)とアスタリスク(*)

    sed -e "s/^...//"
    行頭から3文字消去

    sed -e "s/Pattern.*//"
    Patternを含む行を削除する

    USER=`id |sed 's/uid=.*(\(.*\)) gid=.*/\1/'`
    ユーザーIDをUSERに代入

    いろいろな例

    awk '{printf "%-.5s\n",$0}'
    先頭から5文字だけを取り出す

    cat file |tr '[A-Z]' '[a-z]' >lowfile
    fileを小文字にする

    sed -e 's///g
    タブをスペースに変換

    sed -e '*//g'
    複数のスペースを1個スペースに変換
    sed -e 's/^[]*//'
    行頭のホワイトスペースを削除する

    sed -e "s/[]*\$//"
    行末のホワイトスペースを削除

    sed -e "/Text/d"
    Textという文字列を含んだ行を削除する

    sed -e '/^$/d'
    空白行を削除

    sed -e "5,20s/OldText/NewText/g" file
    5行目から3行目を処理

    sed -e "5,$s/OldText/NewText/g" file
    5行目から最後までを処理
    sed -e '1d' file
    1行目を削除

    sed -e '1,4d' file
    1行目から1行目を削除
    sed -e '$d' file
    最終行を削除

    sed -e '$-3,$d' file
    最終4行を削除

    sed -n 'n,mp' file
    nからmまでを表示

    ls -l|grep ^[d].*|awk '{print $9}'~
    配下のディレクトリを表示


    テストコマンド

    test コマンドは、ある条件を判定し、真(0)か偽(0 以外)を返す。
    if や while の条件判定に使うことが多い。

    書式


    test expression
    
    もしくは、
    [ expression ]
    

    オプション

    ファイルに関するテスト


    -r file : file が読み取り可能なら真
    -w file : file が書き込み可能なら真
    -x file : file が実行可能なら真
    -f file : file が普通のファイルなら真
    -d file : file がディレクトリなら真
    -s file : file が 0 より大きいサイズなら真
    

    文字列に関するテスト


    -z string : string の長さが0なら真
    -n string : string の長さが0より大なら真
    string : string が Null でなければ真
    str1 = str2 : str1 と str2 が同じなら真
    str1 != str2 : str1 と str2 が同じでないなら真
    

    数値に関するテスト


    int1 -eq int2 : int1 と int2 が等しいなら真
    int1 -ne int2 : int1 と int2 が等しくないなら真
    int1 -lt int2 : int1 が int2 より小さいなら真
    int1 -le int2 : int1 と int2 以下なら真
    int1 -gt int2 : int1 が int2 より大きいなら真
    int1 -ge int2 : int1 が int2 以上なら真
    

    その他


    ! : NOT の意味。直後に続く判定が偽なら真
    -a : AND の意味。前後の判定がどちらも真なら真
    -o : OR の意味。前後のどちらかが真なら真
    

    メールサーバ

    メール管理
    ・メール配送の仕組み
             相手のドメインのDNAサーバ問い合わせる
                    │
    ┌───┐    ┌────┐ ↓  ┌────────┐
    │MUA├───→│MTA;Ж;;;;→MTA◆  ;
    └───┘    └────┘    │  ↓     │
    クライアント  メールサーバ     │  ↓ MDA │
    (送信者)   (SMTPサーバ)  │  ↓     │
                       │メールボックス │
                       │  ↓     │
                       │  ↓     │    ┌───┐
                       │POPサーバ──┼───→│MUA│
                       └────────┘    └───┘
                        メールサーバ       クライアント
                       (SMTP+POPサーバ) (受信者)

     MUA:メールクライアントソフトウェア
     MDA:ローカル配送プログラム
     MTA:メール配送エージェント(SMTPサーバ)

    稼動中のMTAの確認
    MUA(Mail Usser Agent)
    ユーザがメールを読み書きするためのプログラム。
    一般的に「メーラー」と呼ばれるソフトウェア。
    代表的なメーラーとして、「Microsoft Outlook」、「Beckey!」、「Thunderbird」などがある。
    MSA(Message Submission Agent)
    MUA がメールを送信する際に接続するプログラムのこと。
    今までは、MTA と MSA は厳密に区別されないことが多かったが、現在では MTA と MSA を分離して考えることが多い。
    また 25 番ポートでなく、submission 用に定義された 587 番ポートを用いることも多い。
    MTA(Mail Transfer Agent)
    メール転送エージェント。
    MTA は、MSA や 他の MTA からメールを受け取り、他の MTA にメールを配送したり、ローカル配信のために MDA にメールを渡す。
    MDA(Mail Delivery Agent)
    メール配送エージェント。
    MTA からメールを受け取って、ローカルスプールにメールの書込みを行う。

    MDA の実装としては、次のようなものがある。

    ・mail.local(sendmail に付属)
    ・Qpopper
    ・Procmail
    ・Maildrop
    ・Dovecot
    etc.
    MRA(Mail Retrieval Agent)
    MUA がメールサーバからメールを受信する際に接続するプログラム。いわゆる「POP サーバ」、「IMAP サーバ」のこと。
    メールボックスからメールを取り出し、POPやIMAPなどのプロトコルでMUAにメールを渡す。

    ■参考
    http://www.rbbtoday.com/column/spamadmin/20050221/...

    sedテクニックいろいろ

    ,

    最近お気に入りの音楽

    楽曲名作曲者ミュージシャン
    Synchrogazer上松範康水樹奈々
    stone cold梶浦由記FictionJunction
    I'll believe八木沼悟志ALTIMA

    VMplayerでOracleSolaris11

    VMplayerのネットワーク設定

    接続形態 意味
    ブリッジ 物理的なネットワーク・インターフェイスに直結して動作させるモード。ホスト・コンピュータに装着した物理ネットワーク・インターフェイスと同様に、外部と通信できる。IPアドレスはホスト・コンピュータと同様に、外部のDHCPサーバを使って割り当てらえる。外部から見ると、ホスト・コンピュータも仮想マシンも同じネットワークに直接接続されているように見える
    NAT 仮想マシンはNAT機能を介して、ネットワークに接続される。仮想マシンのインターフェイスには、ホスト・コンピュータのインターフェイスとは異なるIPアドレスが割り当てられ、外部からは直接参照できない
    ホスト オンリー 仮想マシン間での通信のみが可能な仮想的なネットワークに接続される。仮想マシンのインターフェイスには、ホスト・コンピュータのインターフェイスとは異なるIPアドレスが割り当てられ、外部からは参照できない。ホスト・コンピュータとこの仮想ネットワーク間では通信が可能だが、仮想マシンから外部(インターネットなど)へアクセスすることはできない
    VMware Playerで利用可能なネットワーク接続の形態
    各仮想マシンで利用できるネットワーク・インターフェイスには、これらのタイプがある。デフォルトではNATタイプのインターフェイスが1つ作成され、割り当てられる。

    分散ファイルシステムを調べたい - GlusterFS

    dfs, glusterfs
    
    GlusterFS について調べてみた。使ってみたわけではない。
    
    1. ファイルを分割して保存するかどうか
    Stripe の設定をすれば分割する。ただし、GlusterFS FAQ からすると、勧めてはいない感じ。
    
    2. サーバーやディスクが落ちても問題なくアクセスを受け付けられるか
    分散ファイルシステム/ブロックデバイスをまとめる - 古橋貞之の日記 だと×になっているけど、その後状況が変わったのか
    
    Replicate provides high-availability, i.e., in case one of the subvolumes go down (e. g. server crash, network disconnection) replicate will still service the requests using the redundant copies. 
    
    GlusterFS
    とあるので、問題なさそうだ。
    
    3. サーバーやディスクが落ちたときにデータが失われないか
    Replicate の設定をすれば、データは複製される。複製数は制御できるが、ファイルの種類で複製数を変えることはできない。
    
    4. サーバーやディスクが落ちたとき、もしくはそれらが復帰したときに自動的にデータが修復されるか
    落ちただけではなにも修復されない。復帰すれば、アクセスのタイミングで必要な修復が行われる。
    
    5. データ量の偏りがないように自動的にデータを再配置することができるか
    ファイルを作成するときにはデータの偏りがないようにすることは可能だけど、新しいサーバを追加後に再配置するような機能はないみたい。
    
    6. メタデータサーバの冗長化機能はあるか
    メタデータサーバみたいなものはない。
    
    クライアント設定で、必要なサーバの情報を記述することになるみたいなので、メタデータサーバがいらないということ?それでも、目的のファイルが存在する実サーバをどうやって見つけているのだろう?
    
    7. 読み込みの負荷分散
    できていない。Replicate 設定時には、読み込みは設定記述にある最初のノードに対して行われる。
    
    今後のバージョンで round-robin 的なものを計画している。
    
    8. 書き込みの負荷分散
    Stripe であれば1ファイルでも分散される。Unify であれば複数ファイルでみれば分散される。
    
    9. 動的なサイズの拡張
    できない。今後のリリースで対応する計画はある。
    
    10. 動的なサイズの縮小
    縮小について言及されていないみたいだけど、拡張が無理なので同じくできないと思う。
    
    11. 実装形態(言語とか、カーネルパッチの必要性とか、利用する側の言語とか)
    C。カーネルパッチは不要。
    
    12. mount できるか
    できる。FUSE を使う。
    
    13. random access 可能か
    とくに記述もないので、できる感じ。
    
    14. 実績はどんなものか
    GlusterFS にいろいろ書かれている。テストしているって人が多い?
    
    15. ライセンス
    GPLv3
    
    
    
    現在のバージョン(2.0)では、システムを止めないとサーバ追加をしてサイズの拡張ができないので、これは困る。やはり、システムは止めたくないので。次期バージョンに期待しておく。
    

    HP-UX sed メモ

    編集前ファイル (user.txt)
    --------------------
    user02
    user03
    --------------------
    
    先頭行への挿入コマンド。標準出力へ。
    --------------------
    #!/bin/sh
    sed '1i\
    user01' user.txt
    --------------------
    user01
    user02
    user03
    
    
    先頭行への挿入コマンド。ファイルへ書込み。
    --------------------
    #!/bin/sh
    sed '1i\
    user01' user.txt > user.txt.tmp
    mv user.txt.tmp user.txt
    --------------------
    $ cat user.txt
    user01
    user02
    user03
    
    
    先頭行への挿入コマンド。tmpファイルを使用せずファイルへ書込みする。
    --------------------
    #!/bin/sh
    sed '1i\
    user01' user.txt > user.txt
    --------------------
    $ cat user.txt
    $
    この場合ファイル user.txt が空になるので間違い
    
    
    先頭行への挿入コマンド。catで最初にファイルを読み込んでおく方法。
    --------------------
    #!/bin/sh
    cat user.txt | sed '1i\
    user01' > user.txt
    --------------------
    $ cat user.txt
    user01
    user02
    user03
    

    Bourne sh メモ

    ################################################################
    # Bourne sh メモ
    ################################################################
    
    ■特に注意するべきこと
        - ファイル名展開が出来ない場合の動作
            *, ?,  [] などでファイル名への置換が出来ない場合には,
    	これらの文字そのものが使用される
    
        - 代入の = の前後に空白を入れてはならない
    
        - { の後ろには空白が必要
    
        - 数値演算には expr コマンドを使う
    
        - 条件判定には test コマンドを使う
    	別形式は [ 条件 ] になる。[] のすぐ内側には空白が要る
    
        - if 文の then はコマンドとし認識される位置になければならない
    	if [ -f $1 ]; then  # if と同じ行に書くには必ず ; が必要
    
    ################################################################
    ■シェルがコマンドラインを解析する手順
        1. コマンドラインから特殊文字*, ?, [, ]を探す
    	    *	NULL 文字列を含む,任意の文字列
    	    ?	任意の単一文字
    	    [..] 囲まれた文字のいずれか [1sz]
    		 [A-Z] という書き方もあり
        2. 文字が見つかればファイル名で置換を試みる。置換できなければそのまま
        3. コマンドラインから起動すべきコマンドと引数を取り出しコマンドを起動する
    	
    ■リダイレクション
        ディスクリプタ
    	0:  標準入力
    	1:  標準出力
    	2:  標準エラー出力
    
        [n]< file	ディスクリプタ n (省略時 0) でfileを読み込み用にオープン
        [n]> file	ディスクリプタ n (省略時 1) でfileを書き込み用にオープン
        [n]>> file	ディスクリプタ n (省略時 1) でfileを追加書き込み用オープン
        << 'eof'	標準入力を次行から eof の直前行までとする(here document)
        n>&m	ディスクリプタ n の出力をディスクリプタ m に変更
        n<&m	ディスクリプタ m の入力をディスクリプタ n に変更
        [n]<&-	入力ディスクリプタ n (省略時 0)をクローズ
        [n]>&-	出力ディスクリプタ n (省略時 1)をクローズ
    
        [ ]内は省略可。ディスクリプタはオープンしたファイル番号で0〜9の数字で表す
    
        【例】
        $ wc < foo
        $ wc foo > hoge
        $ wc foo 2> err.txt (標準エラー出力をリダイレクト)
        $ wc foo 2>- (標準エラー出力をクローズ)
        $ wc foo 1> output.txt 2>&1 (エラーメッセージも同じファイルに書き出す)
    				
        スクリプトの中で..
    	cat <<'EndOfFile' > data.txt
    	JAL 123 NGY NYI
    	ANA 465 OSK CHT
    	NWA 453 LND LAA
    	EndOfFile
    
    ■パイプとバッググラウンドタスク
        | と & 	(csh と同じ)
    
    ■コマンドの区切り文字
        ;	';' で区切ることによって複数のコマンドを書くことができる
    	
    ■グルーピング
        (cd /bin; ls -C)      # サブシェルで実行
        { cd /bin; ls -C; }    # カレントシェルで実行
    	
        ※ { の直後と,}の直前には 1 個のスペースが必要
        ※ { }  によるグルーピングの最後のコマンドの後ろには ';' が必要
    
    ■環境,環境変数
        PS1, PS2	プロンプト文字列
    		(PS2 はコマンド行が複数にまたがる場合に使われる)
        .profile	ログイン時に実行されるスクリプトファイル
    	
        export $var	変数 var を環境変数に設定する
    
    ■ドットコマンド
        $ . script	.profile を実行してからスクリプトを実行する
    		スクリプトに executable ビットが立っている必要はない
    
    ■シェル変数
        var=$value	    代入には '=' を使う
    		    '='の前後に空白を入れてはいけない!
    		    変数を参照するには変数名の頭に '$' をつける
    	
        ${var}_item	    変数名の明示的な区切りには '{' '}' を使う
    	
        readonly var    変数 var を読み取り専用にする
    					このとき変数名の前の '$' はつけない
    
        var=value command 変数 var に値 value を代入した状態でコマンドを実
    		      行する(サブシェルでコマンドが実行されたときに
    		      変数 var に値が入った状態になる)
    
    ■引用符
        ''	シングルクォートは,変数置換や展開をまったくしない
    	バックスラッシュさえ無視される
    	シングルクォートの中で,シングルクォートを含めることはできない
    				
        ""	ダブルクォートの中では $var, `` (バッククォート),
    	バックスラッシュが認識される。
    				
    	バックスラッシュはエスケープ文字として働く
    	変数展開が行われる
    	バッククォートによるコマンド実行を行う
    				
        ``	バッククォートは,これで囲んだコマンドの実行結果を文字列として返す
    	【例】$ echo "Now is `date`"
    
    ■特殊変数
        $IFS    フィールド区切り文字(デフォルトはホワイトスペース)
    
        $#	    コマンドラインに与えられた引数の個数
    	    (コマンドそのものは含まない。つまり引数がなければ値は 0)
    
        $1 〜 $9
    	    それぞれ n 番めの引数   (定位置バラメータ)
    
    	    shift を使って,$1 から取り出せる。
    	    shift を使うと,値は前にずれていき,$# も 1 ずつ減って行く。
    	    shift に引数 n をつけると,一度に n 回 shift する
    
        $0	    実行したスクリプトの名前
    
        $*	    $0 以外のすべての引数に対応する
        $@	    $0 以外のすべての引数に対応する
    
    	    * $* と $@ の違い
    		ダブルクォートで囲んだ場合に違いがある
    		引数が 'abc def' と xyz のとき
    
    		"$*"	'abc' 'def' 'xyz'
    		"$@"	'abc def' 'xyz'
    
    		としてコマンドに渡される
    
        $?	    sh が最後に時効したコマンドの終了状態
        $$	    sh の PID
        $-	    セットされている sh のオプション
    
    ■ set コマンド
        二つの機能を持つ
            ・シェルのオプションの設定と解除
    	    set -a  a フラグを ON にする
    	    set +a  a フラグを OFF にする
    
            ・引数の文字列(レコード)から $IFS で区切られたフィールドに切
              り出し,位置パラメータに入れる
    	    set a b c	文字列 a, b, c がそれぞれ $1 $2 $3 にはいる
    
    	引数無しで set を実行すると全変数をリストアップする
    	(csh とは異なり,環境変数もリストアップする)
    
    ■ unset コマンド
        シェル変数,環境変数の削除
    
    =======================================================================
    			       構文規則
    =======================================================================
    ■定義
        単純コマンド:  ブランクで区切られたブランクでないワードの並び
    		    先頭のワードは実行すべきコマンド名
    
        パイプライン:  パイプ (|) で区切られた 1 つ以上のコマンドの並び
    
        リスト:	    ; & && または || で区切られた 1 つ以上のパイプライ
                        ンの並び。 並びの後ろに ; または & があっても良い
    
        		    リスト中のコマンドを区切るのに ; の変わりに
    		    改行を使うことも可能
    
        各記号類の優先度
    	1. |	    
    	2. && ||    
    	3. ; &	    
    
        コマンド:	    単純コマンドまたは以下のいずれか
    		    ・[] は省略可能なことをを意味する
    		    ・以下のワードはコマンドの先頭かつクォート去れてい
    		      ない時のみ認識される
    			if then else elif fi case esac for 
    			while until do done { }
    
    	■ 条件分岐
    	    case ワード in パターン [ | パターン] ) リスト ;; ... esac
    
    	    if リスト ; then リスト ; [ elif リスト ; then リスト ; ]
    		[ else リスト ; ] fi
    
    		リストの最後のコマンドの終了ステイタスで判定
    
    	■ ループ
    	    for 変数名 [ in ワードのリスト ] do リスト done
    		(Perl での foreach)
    	    while リスト do リスト done
    	    until リスト do リスト done
    
    		リストの最後のコマンドの終了ステイタスで判定
    	
    	■ グルーピング
    	    (リスト)	サブシェル内でのリストの実行
    	    { リスト:}	現在のシェル内でのリストの実行
    			{ の後ろには空白が必要
    
    	■ 関数定義
    	    関数名 () { リスト;}
    		・リストが関数の本体
    		・{ の後ろには空白が必要
    		・関数の本体が単一のコマンドである場合,
    		  前後の {} は不要
    =======================================================================
    ■構文の例(制御構造)
    
    ### 普通に書いた場合
    case $1 in
        a)	echo a
    	echo A
    	;;
        b)	echo B
    	;;
    esac
    
    if [ $1 = $2 ]; then
        echo $1 and $2
        echo is same
    else
        echo $1 and $2
        echo is different
    fi
    
    for a
    in *.txt *.sh
    do
        printf "%s\t" $a
        cat $a | wc -l
    done
    
    a=0
    while [ $a -le 10 ]
    do
        echo [$a]
        a=`expr $a + 1`
    done
    
    ### なるべく短く書いた場合
    case $1 in a)echo a; echo A;;b)echo B;;esac
    
    if [ $1 = $2 ];then echo $1 and $2;echo is same;else echo $1 and $2;echo is different;fi
    
    for a in *.txt *.sh; do printf "%s\t" $a;cat $a | wc -l;done
    
    a=0;while [ $a -le 10 ];do echo [$a];a=`expr $a + 1`;done
    
    ■制御構造に関連するもの
    
        : コマンド	何もしない。終了ステイタスは常に 0
    
        break	for または while (until) ループから抜け出す
    		引数 n があると,n レベル分抜け出す。
    
        continue	for または while (until) ループの次のイテレーションを実
    		行する。引数 n があると n 番目のループから実行する。
            
        command1 && command2
    	command1 の終了ステータスが真なら command2 を実行
    	if command1; then command2; fi と等価
    
        command1 || command2
    	command1 の終了ステータスが偽なら command2 を実行
    	if command1; then :; command2; fi と等価
    
        ■ループ文のリダイレクト,パイプ,バックグラウンドでの実行
    	- ループ全体に対してリダイレクトが可能
    	    for i in Text Book; do echo $i; done > output.txt
    
    	    while read line; echo $line; done < input.txt
    
    	- ループ全体をパイプに繋げることができる
    	    for i in Text Book; do echo $i; done > grep 'B'
    
    	- ループ全体をバックグラウンドで実行可能
    	    for i in Text Book; do echo $i; done > output.txt &
    
    	*注意: リダイレクト,パイプを使う場合,ループの中身はサブシェ
    		 ルで実行される。つまり,ループ内で変更された変数はルー
    		 プの外ではその変更が反映されない
    
    ■条件判定: test コマンド
        書式:  test condition 
    	    または [ condition ]
    		[] の内側には空白が必要
    
    	    演算子の前後には空白が必要
    
    	    str1 = str2	    文字列 str1 と str2 が一致
    	    str1 != str2    文字列 str1 と str2 が不一致
    	    -n str	    文字列 str は NULL ではない
    	    -z str	    文字列 str は NULL
    
    	    int1 -eq int2   整数 int1 と int2 は等しい
    	    int1 -ne int2   整数 int1 と int2 は等しくない
    	    int1 -gt int2   整数 int1 は int2 より大きい
    	    int1 -ge int2   整数 int1 は int2 以上
    	    int1 -lt int2   整数 int1 は int2 より小さい
    	    int1 -le int2   整数 int1 は int2 は以下
    	    
    	    -d file	    file はディレクトリ
    	    -f file	    file は通常ファイル
    	    -r file	    file は読み込み可
    	    -w file	    file は書き込み可
    	    -x file	    file は実行可
    	    -s file	    file は 0 バイトではない(中身をもつ)
    	    (ファイルテストはこれ以外にもあり)
    
    	    ! expr	    論理式 expr の否定
    	    expr1 -a expr2  論理式 expr1 と expr2 論理積
    	    expr1 -o expr2  論理式 expr1 と expr2 論理和
    
    	    '(' ')'	    グループ化を表す。
    			    クォートが必須(sh で意味をもつから)
    
    ■数値演算: expr コマンド
        数値演算での使い方:    a=`expr $a + $b`
    	    数値は整数であること。整数以外は文字列と見なされる
    
        論理演算では,非ゼロが真,ゼロが偽とみなされる。sh の中とは逆。
        sh 内での論理演算には expr より,test コマンドを使う方が良い。
    
        ( )		    優先順位を明示するのに使う
        str : regexp    文字列 str と正規表現 regexp を比較
    
    		    一致した文字数を返す
    		    regexp が \(
    
        * / % + -	    普通の意味を持つ
        <, <=, =	    比較演算,真なら 1 偽なら 0 を返す
        !=, >, >=
        val1 & val2	    (val1 != 0 && val2 != 0) なら val1 それ以外は 0 を
    		    返す(論理積)
        val1 | val2	    (val1 != 0) なら val1,そうでなければ val2 を返す
    		    (論理和)
    
        演算子 ( ) ,*,は sh 上で意味を持つので \ でエスケープして使うよう
        にする。
    
    ■実行制御
        exit [n]	    終了状態 n で sh を終了する
    		    n が指定されない時は,直前のコマンドの終了状態を sh 
    		    の終了状態とする
    
        exec [argument] 現在の sh の変わりに,引数で指定されたコマンドを新
    		    規のプロセスを生成せずに実行する。
    
    		    また,引数がない場合でも,これによってシェルの入出
    		    力が変更される。
    
    		    【例】
    			exec < file
    			exec 2> file
    			exec foo.exe 2>file
    
        eval argument   引数をシェルの入力として解析してからコマンドとして
    		    実行する
    
        wait [n]	当該ユーザーのバックグラウンドプロセスのうち ID が n の
    		プロセスを待ち、その終了ステータスを返す。 n が省略され
    		た場合、当該ユーザーの現在活動中のすべてのバッ クグ ラ 
    		ウンドプロセスを待ち、リターンコードは 0 になる。
    
        trap コマンド シグナル番号のリスト
    		シグナルを受信した時に行うコマンドを指定する
    
    		シグナルを無視する場合には
    		    trap '' シグナル番号のリスト
    		のように,コマンドを '' でヌル文字列に指定する
    
    		■良く使うシグナル
    		    1	SIGHUP	回線切断
    		    2	SIGINT	割り込み
    		    13	SIGPIPE	パイプ切断
    		    15	SIGTERM	終了
    
    		【具体例】
    		# 一時ファイルを必ず消す
    		signal 'rm -f $tmpfile; exit 1' 1 2 15
    		cp $1 $tmpfile	    
    
    		# コピー中の割り込みで処理が止まるのを防ぐ
    		signal '' 1 2 15    # シグナルを無視
    		cp $tmpfile $1
    
    ■ sh の実行オプション(一部)
        -v	一行読む語とにコマンドを表示。デバッグに威力を発揮。
    
        -x	コマンドを実行するたびにそのコマンド名と引数を + に続いて表示す
    	る。変数展開,ファイル名展開の確認に便利
    

    vi クイックリファレンス

    ====================================================================
    	VI クイックリファレンス
    ====================================================================
    
    追加・挿入
    	a	カーソルの右にテキストを追加
    	A	カーソルのある行の最後尾へテキストを追加
    	i	カーソルの左にテキストを挿入
    	I	カーソルがある行の先頭にテキストを挿入
    	o	カーソルがある行の下の行にテキストを追加
    	O	カーソルがある行の上の行にテキストを挿入
    
    カーソルの移動
    	h	1 文字左に移動
    	j	1 行下に移動
    	k	1 行上に移動
    	l	1 文字右に移動
    
    	H	現在の表示画面の左上端へ移動
    	M	現在の表示画面の中央の行へ移動
    	L	現在の表示画面の最下行へ移動
    
    	nG	ファイル全体の最初から n 行目へ移動
    	1G	ファイルの先頭へ移動
    	G	ファイルの最下行へ移動
    
    	0	行頭へ移動
    	[return]次の行の左端へ移動
    	^	空白を除いた行頭へ移動
    	$	行末へ移動
    	-	上の行の行頭へ移動
    
    	w	次の単語の先頭文字へ移動
    	b	前の単語の先頭文字へ移動
    	e	現在または次の単語の末尾へ移動
    
    検索
    	/str	指定文字列 str の先頭の文字へ移動(順方向検索)
    	fchr	行内の指定した 1 文字 chr へ移動(順方向検索)
    	?str	指定した文字列 str の先頭の文字へ移動(逆方向検索)
    	Fchr	行内の指定した 1 文字 chr へ移動(逆方向検索)
    
            /       順方向再検索
            ?       逆方向再検索
            n       順方向次検索
            N       順方向次検索
    
    削除
    	x	カーソル位置の 1 文字を削除
    	X	カーソルの左の 1 文字を削除
    
    	dd	カーソルのある行を削除(あとでペースト可能)
    	dw	カーソル位置からその語の最後までを削除
    	df chr	カーソル位置から指定した 1 文字 chr までを削除
    	d$	カーソルのある位置から右側を削除
    	d^	カーソルのある位置から左側を削除
    
    置換
    	r	カーソル位置の文字を次に指定した文字で置換
    	R	カーソル位置から複数個の文字を置換(上書き)
    	s	カーソル位置の 1 文字を複数個の文字で置換
    	S	カーソル行全体を置換
    	cc	カーソル行全体を置換
    	cw	カーソル位置からその語の最後まで置換
    	cf chr	カーソル位置から指定した 1 文字 chr まで置換
    
            :s/正規表現/置換後文字列/[g] 現在の行での置換
            :%s/正規表現/置換後文字列/[g] 全体の置換
            :n,ms/正規表現/置換後文字列/[g] n 行めから m 行めまでを置換
    
    そのほかの編集
    	.	修正を繰り返す(リドゥ)
    	u	最後の修正を取り消す(アンドゥ)
    	yw	コピーする単語を指定
    	yy	コピーする行を指定
    	p	ペースト(行ペーストの場合は次の行にペースト)
    	P	ペースト(行ペーストの場合は前の行にペースト)
    
    画面操作
    	\C-f	次の画面を表示
    	\C-b	前の画面を表示
    	\C-d	半画面分次を表示
    	\C-u	半画面分前を表示
    	\C-l	再表示
    	\C-g	表示中の画面の位置を表示
    
    ファイル操作
    	ZZ	vi の終了
    	:w[file]指定したファイルに保存する
    	:wq	ファイルに保存して vi を終了
    	:q	vi の終了(ファイル未保存の場合はメッセージあり)
    	:q!	強制終了(ファイルは保存されない)
    	:e[file]別のファイルを編集する
    
    シェル
    	:!cmd	シェルコマンド cmd の実行
    		(適当なキーを押せば元の常態に戻る)
    	!!cmd	シェルコマンドを実行し,結果をカーソル位置に挿入する.
    	:shell	シェルへ制御を移す
    		(\C-d)でもとの常態に戻る
    
    その他
    	:set number
    		行番号をつける
    	:set nonumber
    		行番号を消す
    	:r file
    		現在の行の次にファイル file を読み込む
    

    sed に関するメモ

    ####################################################################
    #                sed に関するメモ
    ####################################################################
    =======================================================================
    			      基本的な例
    =======================================================================
    ■基本形
        sed 'ed コマンドのリスト' ファイル名
    
        入力行は一行ずつ処理される
        行を戻ることはできない
        入力ファイルの内容は変更しない
        入力ファイルを指定しなければ,標準入力が入力して利用される
        出力は標準出力へ
    
    ■置換:'UNIX' → 'UNIX(TM)' 
        sed 's/UNIX/UNIX(TM)/' foo.txt > bar.txt	#一行に一回だけ
        sed 's/UNIX/UNIX(TM)/g' foo.txt > bar.txt	#g オプションで何回でも
        sed 's/UNIX/&(TM)/g' foo.txt > bar.txt      #同上 & を使った
    
    ■条件にマッチする行だけで置換
        sed '/./s/UNIX/UNIX(TM)/g'	foo.txt > bar.txt
        (空行以外で処理する: /./ は空行以外にマッチする)
    
    ■条件にマッチしない行だけで置換
        sed '/^$/!s/UNIX/UNIX(TM)/g'
        (空行以外で処理する:/^$/ は空行にマッチするから)
    
    ■指定行の表示
        sed -n '/UNIX/p'   
        (UNIX を含む行だけ表示:p コマンドは印刷,
    			    -n オプションは標準の出力の抑制)
    
        sed '/UNIX/q'
        (UNIX を含む行まで表示:q コマンドは終了)
    
    ■指定行の削除
        sed '/UNIX/d'
        (UNIX を含む行を出力しない:d は削除コマンド)
    
        sed -n '/UNIX/!p'
        (上と同じだが,違う方法)
    
    ■表示する行の範囲の指定
        sed -n '20,30p'	# 20行から30行までを表示
    			# *,* は ed のコマンドのアドレスの指定である
    
        sed '1,10d'		# 1行から10行まで出力しない
        sed '1,/^$/d'	# 最初の空白行まで表示しない
        sed -n '/^$/,/^end/p' # 空行から end で始まる行まで表示
        sed '$d'		# 最終行を表示しない
    
    ■複数のファイルに書き出す
        $ sed -n '/pat/w file1
        >	     /pat/!w file2' foo.txt
        # /pat/ にマッチすれば file1, そうでなければ file2 に書き出す
        
        sed 's/UNIX/UNIX(TM)/gw u.out' foo.txt > output.txt
        #置換の結果全体を output.txt に書き出し,置換が行われた行だけ(結果)
        #が u.out に書き出される
    
    =======================================================================
    			    sed 詳細
    =======================================================================
    ■ -n オプション
        デフォルトの出力を抑制する
        (デフォルトではすべてのパターンスペースを標準出力に出力する)
    
    ■ -f オプション
        スクリプトをファイルから読み込む
        ex)	sed -f scriptfile < input.txt > output.txt
    
    ■ sed のコマンドの基本形
    
            [アドレス] コマンド [引数]  
    
        アドレスは以下のような形式
    	a,b	a 行から b 行まで
    	a	a 行
    
        a, b には行数そのものを指定しても良いし,正規表現を使用しても良い。
        正規表現を使用した場合,最初にその RE にマッチする行がアドレスとし
        て使用される。
    
        アドレスが指定されなければ,コマンドはデフォルトの行に対して作用を
        及ぼす。sed では全ての行に対して処理が行われると思っていいだろう。
    
        コマンドは 1 文字
    
        \n が改行文字のエスケープシーケンスとして利用できる。
    
    ■全コマンドリスト
        ■コメント
    	#	    # 以降はコメントとして扱われる
    
        ■追加
            a\	    行の追加(複数行追加するときにはテキストの行末に \ が必要)
            
    
        ■挿入
    	i\	    挿入(複数行追加するときにはテキストの行末に \ が必要)
    	
    
        ■置換
            c\	    行の置換(複数行追加するときにはテキストの行末に \ が必要)
            	    
    
    	s/RE/replacement/フラグ	    置換
    		    フラグ
    		    --------------------------------------------------
    		    整数 n	n 番目の発生を置換
    		    g		重ならない全ての例を置換
    		    P		パターンスペースの先頭セグメントから
    				最初の復帰改行までを標準出力に出力する
    		    w ファイル名 置換が行われた場合,ファイルにパターン
    				 スペースを追加する
    
    		    置換文字列中の & は正規表現に一致する文字列に置き換
    		    えられる
    			
    	y/pattern/replacement/flags 文字ごとの置換 (/usr/bin/tr)
    
        ■削除
            d	    行の削除
    	D	    先頭セグメントから最初の改行まで削除
    
        ■入力
    	r ファイル名	ファイルの内容を読み込む
    	n	    パターンスペースを入力の次の行で置換
    	N	    入力の次の行をパターンスペースに追加し,改行文字を
    		    埋め込む
    
    		    ('\n' で改行として認識されるのはここで埋め込まれた改
    		    行文字だけである)
    
        ■出力
    	p	    パターンスペースを標準出力に出力
    	P	    パターンスペースの先頭セグメントから最初の改行まで
    		    を標準出力に出力
    	l	    明白な形式でパターンスペースを標準出力に一覧表示する
    	=	    現在の行番号を 1 行として標準出力に出力
    		    (タブ文字などは対応するエスケープシーケンスとして
    		      表示され,非印字文字は 8 進数表記法で表示される)
    	w ファイル名	ファイルにパターンスペースを追加する
    			w コマンドが最初に呼び出されたときにはファイル
    			の中身はクリアされる
    
        ■ホールドスペースの利用
    	g	    パターンスペースの内容をホールドスペースの内容で置換
    	G	    ホールドスペースの内容をパターンスペースに追加
    	h	    ホールドスペースの内容をパターンスペースの内容で置換
    	H	    パターンスペースの内容をホールドスペースに追加
    	x	    パターンスペースの内容とホールドスペースの内容を交
    		    換する
    
        ■グループ化
    	{コマンドリスト
    	}
    	
        ■制御構造
    	b ラベル    指定したラベルの : コマンドに分岐
    	t ラベル    入力行の最新の読みとりまたは t の実行以降に代入が行
    		    われている場合,指定したラベルの : コマンドに分岐
    	: ラベル    ラベル付け
    	q	    終了
    
    -----------------------------------------------------------------------
    

    awk に関するメモ

    ####################################################################
    #                awk に関するメモ
    ####################################################################
    =======================================================================
    			      基本的な例
    =======================================================================
    ■基本形
        awk 'プログラム' 入力ファイル
        awk -f プログラムファイル名 入力ファイル
    
        プログラムの書き方は以下のようになる
    
            パターン {アクション}	    # パターンは勿論 RE である
            パターン {アクション}
    	...
    
    	or
        
    	パターン {アクション; アクション}[;] パターン{アクション; アクション}
    
        パターンにマッチすると,アクションが実行される
        文は ; 改行 } のどれかで終了する
        入力ファイルの内容は変更しない
        入力ファイルを指定しなければ,標準入力が入力して利用される
        出力は標準出力へ
    
    ■ egrep のエミュレート
        awk '/RE/{print}' filenames
        awk '/RE/' filenames	# アクションを省略すると print が使われる
    
    ■ cat のエミュレート
        awk '{print}' filenames	# パターンを省略するとすべてにマッチ
    
    ■フィールド
        入力行は自動的に複数のフィールドに分割される
        各フィールドは $1, $2, ... $NF となる
        
        $0 = 入力行全体
        NF = フィールド総数を表す変数
        (sed の変数にはフィールド以外 $ はつけない)
    
        ex) who | awk '{print $1,$5}'	#ユーザのログイン時刻を表示
            who | awk '{print $1"\t"$5}'	#タブを含んで見やすくした
            who | awk '{print $1"\t"$5}' | sort +1 -n # 時刻順にソート
    	who | awk '{print $1"\t"substr($5,1,2)}' 
    					#ログイン時刻の分の部分を削除
    
    ■フィールドセパレータ
        -F オプションまたは FS 変数への代入で変更可能
        デフォルトはタブと空白文字
    
        ex) awk -F: '{print $1, $4}' /etc/passwd # ログイン名と本名を表示
    
    ■表示
        awk '{print $1 $3} foo	# 続けて表示
        awk '{print $1, $3} foo	# 出力フィールドセパレータで区切って表示
        awk '{printf "%4d %s\n", $1 $3} foo #フォーマットして表示
    
    ■パターン
        awk '$2==""' foo	    # $2 が空文字列
        awk '$2 ~ /^$/' foo	    # 同上(正規表現のマッチを利用)
        awk '$2 !~ /./' foo	    # 同上(正規表現の非マッチを利用)
        awk 'length($2) == 0' foo	# 同上(関数を利用)
    
        awk 'NF % 2 !=0' foo	# フィールド数が奇数
        awk 'length($0) > 72' foo	# 一行が長すぎる
    
        awk 'BEGIN{FS=":"} $1=="susumu"' /etc/passwd 
    				# BEGIN パターンの利用(FS の変更)
    
        awk 'END{print NR}' foo	# END パターンの利用(行数の表示)
    
    ■算術演算と変数
        awk '{s+=$1} END{print s}' foo 
    				# foo の第一フィールドの値の和を表示
        
        awk '{nc+=length($0)+1; nw+=NF} END {print NR,nw,nc}' foo
    				# wc のエミュレート
    
        変数は暗黙の内に初期化されている
        変数に文字列・数値の区別はない
            
    ■文字列定数
        ""	ダブルクォートで囲む(C と同じ)
    
    ■配列
        連想配列と普通の配列が一緒になっている
            a["hogehoeg"]
            a[1]
        ともに OK であり,名前空間は同一である
    
    ■演算子(優先度の高い順)
        ++ --
        * / %
        + -
        (何も無し)	    文字列の連結
        > >= < <= == != ~ !~    関係演算子	(~ は正規表現のマッチ)
        !		    論理否定
        &&		    論理積
        ||		    論理和
        = += -= /= %=   代入
    
    ■組み込み変数
        FILENAME	現入力ファイル名
        NF		現レコード中のフィールド数
        NR		現レコード番号(つまり行番号)
        FS		入力フィールドセパレータ(デフォルトはスペースとタブ)
        OFS		出力レコードセパレータ(デフォルトはスペース)
        RS		入力レコードセパレータ(デフォルトは改行文字)
        ORS		出力レコードセパレータ(デフォルトは改行文字)
        OFMT	数値の出力形式(デフォルトは %.6g)
    
    ■制御構造
        C と同じ(for で foreach のようなことができる以外)
        print, printf ではリダイレクト,パイプが使用できる
    
        文は以下のいずれか
    	if (expression) statement [else statement]
    
    	while (expression) satement 
    	do satement while (expression)
    	for (expression; expression; expression) statement
    	for (var in array) statement	    # foreach のような用法
    	    # var には array の添字の変数が予想できない順番で入る
    	    # (ハッシュのキーが順番に得られると考えた方が良いだろう)
    	    # ソートするには /usr/bin/sort の手助けが必要だ
    	break
    	continue
    	{[statement] ...} # 複文
    	expression
    	print [expression-list] [>expression]	# リダイレクト
    	print [expression-list] [|cmd]		# パイプ
    	printf format [, expression-list] [>expression]
    	printf format [, expression-list] [|cmd]
    	exit [expr] # expr は終了ステータス
    
    ■組み込み関数
        ■算術関数
    	cos(x), sin(x), exp(x), log(x), sqrt(x), int(x)
    
        ■文字列関数
    	index(s, t)	文字列 s 中で文字列 t が最初に出現する位置を返
    			す(先頭が 1,出現しなければ 0)
            int(s)		整数値になるよう s を切り捨てる
    	length(s)	文字列の長さ
    	match(s, re)	文字列 s 中で正規表現 re に最初にマッチする位置
    	split(s, a, fs)	文字列 s を正規表現 fs でフィールド分けし,配列
    			a の各要素(a[1], a[2],...a[n])に代入する
    			値 n (要素数)を返す
    
    			(nawk では fs は正規表現のようだが,awk では田
    			  だの文字列のような感じが...)
    	    
    	sprintf(fmt, expr, expr) 
    			同型式の printf で出力される文字列を返す
            substr(s, m, n)	文字列 s 中の m 番目から始まる長さ n の部分文字
    			列を返す
    
        ■入出力関数
    	getline		$0 に現入力ファイルの次のレコードを設定する
    			正常時 1, EOF で 0, エラーで -1 を返す
    
    =======================================================================
    				その他
    =======================================================================
    ■ nawk と gawk
        標準の awk は貧弱な機能しか持っていない。nawk, gawk はより強力な関
        数,組み込み変数,システムとの連係がサポートされている
    
    ■ perl で awk を真似る
        awk '/^#/' foo		    # # で始まる行を表示
        perl -n -e "print if /^#/;" foo
    

    ストリーミングエディタ

    ・1行目にHOGEを挿入。
    sed '1s/^/HOGE/g' hoge.txt
    ・最後の行にBOKEを追加。
    sed '$s/$/BOKE/g' boke.txt
    ・HOGE文字列の次の行にBOKEを追加。挿入は"i"をしよう。改行はその前に\を付ける。
    sed '/HOGE/aBOKE/' guge.txt
    

    正規表現とパターンマッチング

    awk '$2 ~ /^611/{print $0}' hoge.txt
    awk -F"/" '{sub("^S","s",$4);pring $3"/"$2"/"$1"/"$4}' < echo hoge.txt
    

    DELLのモニタ

    2005FPW
    E207WFP

    memtest+専用USBメモリの作成

    1.FreeDosのサイトから起動用イメージ(balder10.img)を落としてくる。 上記サイトの上のほうにある「 (Download)」のLinkを辿ると落とせます。
    2.linux上で上記ファイルをddで書き込み USBメモリがsdaの場合は # dd if=balder10.img of=/dev/sda で書き込み。(USBメモリを刺したときに /var/log/message を見ればどこか分かります)
    3.memtest86+のサイトより、「Download (Pre-built & ISOs)」→「Download - Pre-Compiled EXE file for USB Key (Pure DOS)」をダウンロードする。
    4.落としてきたファイルをunzipで解凍する。
    5.ddしたUSBメモリをvfatでmountする。 # mount -t vfat /dev/sda /mnt/floppy/
    6.上記で解凍したファイルをmountしたUSBメモリにコピー
    後はumountしてあげればいっちょ上がり。
    

    Destination Goa 9

    ICH10Rの性能

    iTunes整理術

    アーティストがバラバラなコンピアルバムの場合は、
    アルバムアーティストを統一して、オプションのコンピレーションをいいえを選択。
    すると、フォルダはアルバムアーティスト名でできて整理しやすくなる。
    

    WSUS導入したい・・・

    メモリモジュールオーバークロック指南



    OCZSSDPX-1RVD0120も購入

               Sequential Read :   358.610 MB/s
              Sequential Write :   129.622 MB/s
             Random Read 512KB :   331.001 MB/s
            Random Write 512KB :   128.213 MB/s
        Random Read 4KB (QD=1) :    16.411 MB/s [  4006.6 IOPS]
       Random Write 4KB (QD=1) :    66.945 MB/s [ 16343.9 IOPS]
       Random Read 4KB (QD=32) :   180.654 MB/s [ 44104.9 IOPS]
      Random Write 4KB (QD=32) :   128.063 MB/s [ 31265.4 IOPS]
    
    Driver , 記事 , BenchMarkSoft

    4GBx6枚メモリ購入

               Sequential Read :  3298.965 MB/s
              Sequential Write :  3480.488 MB/s
             Random Read 512KB :  3540.057 MB/s
            Random Write 512KB :  4022.916 MB/s
        Random Read 4KB (QD=1) :  1541.645 MB/s [376378.2 IOPS]
       Random Write 4KB (QD=1) :  1028.058 MB/s [250990.8 IOPS]
       Random Read 4KB (QD=32) :  1362.611 MB/s [332668.7 IOPS]
      Random Write 4KB (QD=32) :   975.373 MB/s [238128.2 IOPS]
    
    KM-LD3-1600-8GD , XMPメモリ
    Features:
    ・1600MHz / 2000MHz Support Intel & AMD all series  
      2200MHz / 2400MHz Support Intel P55 Chipset 
    ・Adopting Nano Thermal Dissipation Technology 
    ・ASIC chip embedded for anti-counterfeiting purpose 
    ・Lead-free production process 
    ・TinyBGA technology adopted: with advantages as compact size, well heat dissipation and low EM interference 
    ・100% product compatibility and stability 
    ・High data transfer performance for overclocking enthusiasts and hardcore gamers
    
    Specification:
    ・240-pin DDR3 1600MHz / 2000MHz / 2200MHz /2400MHz 
    ・CAS Latency:1600MHz / 2000MHz :CL9
            2200MHz : CL10 (10-11-10-30)
            2400MHz : CL10  
    ・Bandwidth:1600MHz(12.8GB/sec)
           2000MHz(16GB/sec)
           2200MHz(17.6GB/sec )
           2400MHz(19.2GB/sec ) 
    ・Voltage: 1.5~1.8v 
    ・Capacity:
     1600MHz / 2000MHz / 2200MHz:
     - Single Channel - 1GB/2GB/4GB
     - Dual Channel - 2GB/4GB/8GB
     2400MHz:
     - Single Channel - 2GB/4GB
     - Dual Channel - 4GB/8GB 
    ・Worldwide lifetime warranty
    
    メモリー規格 データ転送レート
    (Mbps)
    帯域幅:データ転送速度
    (MB/sec)
    1channel当り
    バスクロック周波数
    Frequency(MHz)
    内部セル周波数
    Frequency(MHz)
    DDR3-2400(PC3-19200) 2400 19200(19.2GB/s) 1200 300
    DDR3-2300(PC3-18400) 2300 18400(18.4GB/s) 1150 287.5
    DDR3-2200(PC3-17600) 2200 17600(17.6GB/s) 1100 275
    DDR3-1600(PC3-12800) 1600 12800(12.8GB/s) 800 200
    DDR3-1333(PC3-10600) 1333 10600(10.6GB/s>) 667 166
    DDR3-1066(PC3-8500) 1066 8500(8.5GB/s) 533 133
    DDR3-800(PC3-6400) 800 6400(6.4GB/s) 400 100

    知らないと損するWindows 7にGavotte RAMDISKを導入

    Windowsのショートカットキー一覧

    Windowsの標準機能 [編集]
    Ctrl+X 切り取り・カット
    Ctrl+C コピー
    Ctrl+V 貼り付け・ペースト
    Ctrl+I お気に入り呼び出し
    Ctrl+H 履歴呼び出し
    Ctrl+D お気に入りに追加
    Ctrl+A 全て選択
    Ctrl+F 検索
    Ctrl+P 印刷
    Ctrl+Z 元に戻す
    Ctrl+Esc スタートメニューを開く
    Ctrl+↑Shift+Esc タスクマネージャを開く(NT系列のみ)
    Ctrl+Alt+Delete 「プログラムの強制終了」を表示(9x系列のみ)、タスクマネージャまたは「Windowsのセキュリティ」を表示(NT系列のみ)
    Alt+Tab⇔ アクティブウインドウの切り替え
    Alt+F4 アプリケーションの終了
    Alt+PrintScreen アクティブウィンドウのハードコピーをクリップボードに入れる
    PrintScreen 画面全体のハードコピーをクリップボードに入れる
    F5 最新の情報に更新
    Windowsキー スタートメニューを開く
    Windowsキー+E マイコンピュータを開く
    Windowsキー+L コンピュータのロック、ユーザー切り替え
    Windowsキー+M 全てのウインドウを最小化する
    Windowsキー+D デスクトップを表示
    Windowsキー+Tab⇔ 3Dビュー(Windows Vista、Windows 7)
    Windowsキー+1or2or3or4or5or6or7or8or9 クイック起動などのソフトの起動(Windows Vista、Windows 7)
    Windowsキー+G ガジェットを前面に表示(Windows 7)
    Windowsキー+↑ ウィンドウを最大化(Windows 7)
    Windowsキー+↓ ウィンドウを最小化(Windows 7)
    Windowsキー+↑Shift+← ウィンドウを左に寄せて表示(Windows 7)
    Windowsキー+↓Shift+→ ウィンドウを右に寄せて表示(Windows 7)
    Windowsキー+Alt+1or2or3or4or5or6or7or8or9 ジャンプリストの起動(Windows 7)
    ↑Shift+Delete 直接削除(ゴミ箱に残らない)
    

    エクセルのショートカットキー一覧

    Ctrl Alt Shift 他のキー 機能
    Ctrl     0 列を非表示にする
    (テンキー不可)
    Ctrl   Shift 0 非表示の列を再表示
    (テンキー不可)
    Ctrl     1 [書式設定]ダイアログの表示
    (テンキー不可)
    Ctrl     2 [太字]の設定・解除
    (テンキー不可)
    Ctrl     3 [斜体]の設定・解除
    (テンキー不可)
    Ctrl     4 [下線]の設定・解除
    (テンキー不可)
    Ctrl     5 取り消し線の設定・解除
    (テンキー不可)
    Ctrl     8 アウトライン記号の表示・非表示
    (テンキー不可)
    Ctrl     9 行を非表示にする
    (テンキー不可)
    Ctrl   Shift 9 非表示の行を再表示
    (テンキー不可)
    Ctrl     A 全て選択
    Ctrl     B [太字]の設定・解除
    Ctrl     C [コピー]の実行
    Ctrl     D 上のセルのコピー&貼り付け
    Ctrl     F [検索(と置換)]ダイアログの表示
    Ctrl     G [ジャンプ]ダイアログの表示
    Ctrl     H (検索と)置換]ダイアログの表示
    Ctrl     I [斜体]の設定・解除
    Ctrl     K [ハイパーリンクの挿入]ダイアログの表示
    Ctrl     N ブックの新規作成
    Ctrl     O [ファイルを開く]ダイアログの表示
    Ctrl     P [印刷]ダイアログの表示
    Ctrl     R 左のセルのコピー&貼り付け
    Ctrl     S [上書き保存]の実行
    Ctrl     U [下線]の設定・解除
    Ctrl     V [貼り付け]の実行
    Ctrl     W [閉じる]の実行
    Ctrl     X [切り取り]の実行
    Ctrl     Y 直前の操作の繰り返し
    Ctrl     Z 直前の操作を元に戻す
      Alt Shift ' [スタイル]ダイアログの表示
    (シングルクオーテーション)
    Ctrl     - セル・行・列の削除
      Alt Shift = SUM関数を挿入
    Ctrl   Shift !(1) [桁区切り]スタイルを設定
    Ctrl   Shift #(3) [日付]スタイルを設定
    Ctrl   Shift $(4) [通貨]スタイルを設定
    Ctrl   Shift %(5) [パーセント]スタイルを設定
    Ctrl   Shift &(6) [外枠]罫線を設定
    Ctrl   Shift * データが入力されている範囲を選択
    (テンキーの[*]なら[Shift]不要)
    Ctrl     : 現在の時刻を入力
    (コロン)
    Ctrl     ; 今日の日付を入力
    (セミコロン)
    Ctrl     @ [時刻]スタイルを設定
    Ctrl   ^ 指数書式を設定
    Ctrl   Shift ~ 標準書式を設定
    Ctrl   Shift _ 罫線の削除
    Ctrl   Shift + セル・行・列の挿入
    (テンキーの[+]なら[Shift]不要)
    Ctrl     BackSpace アクティブセルの表示
    Ctrl     End 最後のセルにジャンプ
    Ctrl   Shift End アクティブセルから最後のセルまで選択
    Ctrl     Enter 複数セルに同じデータの入力
    Ctrl     Home 先頭のセルにジャンプ
    Ctrl     PageDown 次のシートを表示
    Ctrl     PageUp 前のシートを表示
    Ctrl     スペース 列を選択
        Shift スペース 行を選択
    Ctrl     ↑↓←→ データの途切れるセルにジャンプ
    Ctrl   Shift ↑↓←→ データの途切れるセルまで選択
      Alt   リストの表示
          F1 ヘルプ・Officeアシスタントの表示
        Shift F1 ポップヒントの表示
      Alt   F1 新規グラフシートへグラフの作成
          F2 編集モードへの切り替え
        Shift F2 コメントの挿入
    Ctrl     F3 [名前の定義]ダイアログの表示
          F4 相対・絶対・複合参照の切り替え
      Alt   F4 Excelの終了
          F5 [ジャンプ]ダイアログの表示
          F7 [スペルチェック]の実行
          F8 拡張モードへの切り替え
        Shift F8 ADOモードへの切り替え
      Alt   F8 [マクロ]ダイアログの表示
          F9 開いているブックの再計算を実行
        Shift F9 アクティブワークシートの再計算を実行
    Ctrl     F10 子ウィンドウの最大化←→解除
          F11 新規グラフシートへグラフの作成
        Shift F11 新規シートの挿入
      Alt   F11 Visual Basic Editorの起動
          F12 [名前を付けて保存]ダイアログの表示
        Shift F12 [上書き保存]の実行
    Ctrl     F12 [ファイルを開く]ダイアログの表示

    特殊な変数

    変数 意味
    $$ シェル自身のPID(プロセスID)
    $! シェルが最後に実行したバックグラウンドプロセスのPID
    $? 最後に実行したコマンドの終了コード(戻り値)
    $- setコマンドを使って設定したフラグの一覧
    $* 全引数リスト。"$*"のように「"」で囲んだ場合、"$1 $2 … $n" と全引数を一つにくっついた形で展開される。
    $@ 全引数リスト。"$@"のように「"」で囲んだ場合、"$1" "$2" … "$n" とそれぞれの引数を個別にダブルクォートで囲んで展開される。
    $# シェルに与えられた引数の個数
    $0 シェル自身のファイル名
    $1〜$n シェルに与えられた引数の値。$1は第1引数、$2は第2引数…となる。

    シェルスクリプトの使い方メモ

    ,

    HDDがまだまだ高い・・・

    押入れから引っ張り出してきて使うことにしました。
    HD-Q2.0TSU2/R5 TS-1.6TGL/R5

    grep、#で始まる行と、空行を表示しない。

    $ grep -vE "(^#)|(^$)" hoge
    

    指定日付以前の古いファイルを削除したり移動する方法

    システムを運用していると、
    ログファイルやデータファイルなどが
    どんどん溜まっていきますね。
    
    そんなファイル、いつかは移動したり削除する必要がありますね。
    
    
    ●それには、findとxargsをうまく使うとコマンド一発で対処できます。
    
    
    (例1)
    find ./ -mtime +50 -name "*.txt" | xargs mv --target-directory=./aaa
    
    
    ファイル名に.txtがついて、最後に修正されたのが50日より前のものを、
    aaaというディレクトリに移動させる方法です。
    
    
    (例2)
    find ./ -mtime +50 -name "*.txt" | xargs rm -f
    
    
    ファイル名に.txtがついて、最後に修正されたのが50日より前のものを、
    削除する方法です。
    
    
    (解説)
    xargsは、標準入力の引数を引き込み続くコマンドを実行するコマンドです。
    findは、オプションでファイル名を検索できます。
    
    ちなみに、+50を-50にすると、
    50日以内の新しいファイルを削除したり移動できたりします。
    
    
    ●危険なコマンドでもあるので、実行前には
    lsコマンドでリストを確認してから実行しましょう。
    
    find ./ -mtime -50 -name "*.txt" | ls
    

    iPhoneやiPadなどにUSB接続で直接ファイル転送

    iFunBoxを使用すると便利

    Windows7でフォルダの表示設定を配下のフォルダに適用する

    【1】[整理]をクリックします。
    【2】[フォルダーと検索のオプション]をクリックします。
    【3】[フォルダーオプション]ウィンドウが表示されます。
    【4】[表示]タブをクリックします。
    【5】[フォルダーに適用(L)]をクリックします。
    【6】確認ウィンドウが表示されます。
    【7】[はい(Y)]をクリックします。
    【8】[OK]をクリックします。
    【9】表示設定が該当フォルダ配下のフォルダに適用されました。
    

    手軽にWin7を高速化設定

    Windows Booster 7

    ヒアドキュメント

    ソートしてユニーク
    $ sort<<|uniq -d
    
    ホスト名順にネットワークコマンド
    $ for HOST in `cat <<EOF
    EOF` ; do ping $HOST ; done
    

    VMware ESXi5

    vSphere 5ではハイパーバイザーがESXiに一本化。
    ホストOS型ではなく、VMkernelと呼ばれる専用のホストカーネルが直接ハードウェア上で動作し仮想マシン環境を構成するベアメタル型。
    
    ・ESX ⇒ VMKernel + サービスコンソールLinuxOS (計2GB程)
    ・ESXi ⇒ VMKernelのみ (150MB)
    
    VMware vSphere Hypervisor
    従来の名称はVMware ESXi
    VMware ESXからコンソールOS(VMware VirtualCenter、カスタマイズされたLinux)を除き、さらに単独での運用に特化したクラスタ機能を含まない製品。
    Hyper-Vに対抗するために無償公開される前はInfrastractureの一部だった。
    

    ICH10RでRaid10とか

    ライトキャッシュバック使用すると書き込み速度が半減する・・・謎ですw
    2TBのHDDとRaptorでRaid10で比べてみたけど大差ないですねぇ〜涙
    2TBx4
               Sequential Read :   173.807 MB/s
              Sequential Write :   167.692 MB/s
             Random Read 512KB :    33.018 MB/s
            Random Write 512KB :    79.713 MB/s
        Random Read 4KB (QD=1) :     0.563 MB/s [   137.5 IOPS]
       Random Write 4KB (QD=1) :     2.387 MB/s [   582.7 IOPS]
       Random Read 4KB (QD=32) :     5.121 MB/s [  1250.2 IOPS]
      Random Write 4KB (QD=32) :     2.968 MB/s [   724.7 IOPS]
    -----------------------------------------------------------
    74GBx4
               Sequential Read :   140.203 MB/s
              Sequential Write :   141.489 MB/s
             Random Read 512KB :    43.628 MB/s
            Random Write 512KB :    73.254 MB/s
        Random Read 4KB (QD=1) :     0.828 MB/s [   202.2 IOPS]
       Random Write 4KB (QD=1) :     2.645 MB/s [   645.8 IOPS]
       Random Read 4KB (QD=32) :     3.136 MB/s [   765.6 IOPS]
      Random Write 4KB (QD=32) :     3.484 MB/s [   850.6 IOPS]
    

    ちなみに、Gigabyteのi-ramのベンチマーク
               Sequential Read :   137.518 MB/s
              Sequential Write :   129.790 MB/s
             Random Read 512KB :   133.720 MB/s
            Random Write 512KB :   127.560 MB/s
        Random Read 4KB (QD=1) :    38.621 MB/s [  9429.0 IOPS]
       Random Write 4KB (QD=1) :    33.890 MB/s [  8274.0 IOPS]
       Random Read 4KB (QD=32) :    85.134 MB/s [ 20784.8 IOPS]
      Random Write 4KB (QD=32) :    72.305 MB/s [ 17652.5 IOPS]
    

    Linuxでmdadmを使ってRaid10

    # mdadm --create /dev/md0 -v --raid-devices=4 --level=raid10 /dev/sdc1 /dev/sde1 /dev/sdd1 /dev/sdf1
    

    メモリーまめ知識

    ECCとかBufferedとか

    Lpic1対策 3-1 コマンドライン操作

    ・コマンドには組み込みコマンドと外部コマンドがある。
     組み込みコマンド一覧はhelpで表示される。
    
    ・echo コマンド
     入力したテキストを表示
    
    ・uname コマンド
     カーネルの名称を表示するには -s
     カーネルのバージョンを表示するには -r
     カーネルが完成した日の表示は -v
     全ての情報表示は -a
    
    ・pwd コマンド
     現在作業しているディレクトリ(カレントディレクトリ)を表示
     Print Working Directory
    
    ・cd コマンド
     カレントディレクトリを移動するコマンド
     ディレクトリの指定には絶対パスと相対パスがある
    
    ・history コマンド
     コマンドの実行履歴を表示
     履歴の保存ファイルは環境変数HISTFILEに保存される(.bash_history)
     履歴の保存件数は環境変数HISTSIZEで指定される
     履歴の削除はオプション -c
    
    ・exec コマンド
     指定したコマンドの実行。新たなプロセスを作成せずに
     既存のシェルと置き換えて実行される。
    
    ・シェル変数と環境変数
     シェル変数は現在実行中のシェルでしか使えない変数
     環境変数は環境変数が設定されたシェルから実行されたアプリ(コマンド)や、
     環境変数が設定されたシェルから新たに起動したシェルにも受け継がれる。
    
    ・env コマンド
     シェル変数の一覧表示
     リダイレクトによるファイルの上書き禁止にしたい場合には
     $ set -o noclobber (clobber:打ち負かす)
     許可するには
     $ set +o noclobber
     bashの操作をviのようにするには
     $ set -o vi
    
    ・export コマンド
     シェル変数を環境変数する
     $ hoge=123
     $ export hoge
     一括で行うには
     $ export hoge=123
    
    ・特定のシェル変数を表示するには
     $ echo $hoge
    
    ・unset コマンド
     シェル変数を削除する
     $ unset hoge
    
    ・子プロセスで変更された環境変数の内容は孫プロセスに受け継がれるが、
     親プロセスには伝わらない!
    
    ・環境変数PATH
     外部コマンドはこのPATHで指定された場所を順番に調べて見つけて実行される。
     環境変数PATHにパスを追加する事を、パスを通すと言う。
     パスが通ってないコマンドはフルパスで指定する事で実行できる。
    
    ・more コマンド
     ファイルの内容を1画面づつ表示。ページャという。
     / に続けてキーワードで検索できる。
     終了するには q
    
    ・less コマンド
     moreコマンドの機能拡張バージョン。moreの反対語。
     方向キーで画面をスクロール。
     g ファイルの先頭へ移動
     G ファイルの末尾へ移動
    
    ・man コマンド
     manページというテキストベースのヘルプを表示するコマンド。
     $ man modprobe
    
     manページのカテゴリー
     1 実行プログラムやシェルコマンド
     2 システムコール(カーネルが提供する関数)
     3 ライブラリ
     4 デバイスファイル
     5 ファイルのフォーマット(/etc/passwdなど)
     6 ゲーム
     7 約束事など(ネットワークプロトコルや文字コード等)
     8 システム管理コマンド(rootのみが実行可能なコマンド)
     9 カーネルのドキュメント
    
     コマンド名やつづりがわからない場合は検索
     $ man -k キーワード
     $ apropos キーワード
    
     コマンドやファイルの簡単な説明を表示
     $ man -f コマンド名
     $ whatis コマンド名
    
    ・whereis コマンド
     コマンドやファイルの場所、ソースファイル、manページの場所を表示
     $ whereis コマンド名
     -b コマンド・ファイルの場所のみ表示
     -m manページのみ
     -s ソースファイルのみ
    
    ・which コマンド
     指定したコマンドの場所をフルパスで表示
     $ which passwd
     パスが通ってないコマンド等を検索はfindやlocateを使用
    
    ・cat コマンド
     テキストの内容を表示するコマンド
     -n で行番号を表示する
     tac コマンドはファイルの末尾から表示
    
    ・head コマンド
     ファイルの最初の部分を表示。デフォルトでは先頭の10行
     -n 表示する行数を指定する
    
    ・tail コマンド
     ファイルの末尾部分を表示。
     -n 表示する行数を指定する
     -f ファイルの末尾に行が追加されると、リアルタイムに表示する。
     $ tail -f /var/log/messages
    
    
    
    

    SSDプチフリ対策:ReadyBoostの停止

    ,

    SSDならReadyBoost(SuperFetch)は停止!Windows 7編

    ,

    iPhone対応Webサイト構築入門

    前編 , 後編

    20代が日本で夢を叶えるために気づいておきたい20の事実。



    前書き

    20代前半の私はとにかく無欲で無気力でした。
    趣味はゲームとボウリングとネットサーフィンだけ。
    夢も希望も何もなく、定年までプログラマーとして孤独に働くんだろうなあ…なんて考えていました。
    そんなどこにでもいそうな、少しばかりオタクよりの私も、今では2社の代表取締役をさせていただいております。
    毎日一歩ずつ、自分の夢を叶えるために前に進んでおります。

    夢を叶えようと前に進むごとに、私はたくさんの事実に気づきました。
    もし無気力時代の私がこの事実に気づいていたらもっと人生の可能性は広がったのかな?なんて考えると、少しだけ悔しい気持ちになれます。

    過去に戻ってあの頃の自分に伝えるのは不可能なので、
    代わりにこの気づきを多くの若い方とシェアしたいと考え、
    ブログでまとめさせていただきました。
    一人でも多くの若者が夢を追い、夢を叶えられることを願っています。
    ※当記事は20歳の自分に伝えたいこととしてまとめました。きりのいい数字を選び、20項目でまとめてみました。20項目に深い意味はありません。

    1.ビジネス本を読む。読んだらアウトプットする。

    私を成長させるキッカケを作ったのは「読書」です。
    もし読書をしてなかったら、今の私は在りません。

    ―――元々私は読書は好きなほうではありませんでした。
    そんな私を本屋に通わせるようになったキッカケは、母が読んでいた小説でした。今でも覚えています。東野圭吾さんの「時生」です。リビングに無造作に置かれていたその小説を、たまたま読んだのがキッカケです。何度も泣かせていただいた素晴らしい小説です。
    東野圭吾さんに魅了された私は、ミステリー小説にどっぷりハマり、活字に慣れ、書店に足を運ぶようになり、気がついたら新刊コーナーにあるビジネス書にも手を出し始めていました…。―――

    私が読むことをオススメする本は「心理学」「成功学」「成功者の自伝」「自己啓発」です。
    成功者の自伝はプロのゴーストライターさんが読みやすく書いてる場合が多いので、読書に不慣れな人でもスラスラっと読めると思います。
    成功者の自伝には様々な発見や、セルフモチベーションアップなどが詰まっています。
    今ではiPhoneやiPadがあれば、AppleStoreなどで手軽に読むことが出来ます。

    読むだけでは意味がありません。
    本の内容を理解し、自分の知識にすることで意味があります。
    読んだら人に伝えたりすることで理解力はどんどん深まり、自分の知識となります。
    話したり、twitterでつぶやいたり、tumblrでゴリゴリ書き綴ってみましょう。

    2.恥を手放す。

    私たち日本人は世間体を非常に気にします。
    他人に良く見られたい、他人の前で失敗をしたくないという方が多いのではないでしょうか。人前で失敗したり恥をかきたくないから、人前に立つことを心が拒みます。
    私はそのような考えを捨て、積極的に人前に立ってきました。
    たくさん恥をかきました。

    英語の発音も悪く、英語の理解力が乏しい私は、高校生のころは学校行事の英語のスピーチコンテストに参加し、全校生徒約1000人の前で壮大な恥をかきました。体育館に失笑でつつまれました。
    社会人になっても、私は人前でたくさん恥をかきました。
    今日、私の個人的失敗を覚えている人なんて皆無です。覚えている人がいたとしても私の人生にデメリットを与えることはありませんでした。
    これらの失敗や恥は私の中では最高の経験として生きており、今日までにたくさんの結果や成果を生みました。

    他人はあなたのことをさほど思ってもいませんし、覚えてもいません。
    人前に立つことを恐れず、率先して行動してみてください。
    きっとあなたにとって良い経験しか残りません。

    3.今この瞬間を楽しむ。

    ――――昨日は歴史である。明日は謎ですが、今日は贈り物です。―――

    私たちの生活の中で、"時間"はもっとも貴重でもっとも不確実な資源です。
    非常に若い年齢でこの世を去るかたもいらっしゃいます。
    私たちは自分の余命があとどれくらいなのかを知れば、今この瞬間がどれだけ貴重か痛感できると思います。

    若いころは「時間は無限にある。」と勘違いしがちです。
    時間は有限であることを理解し、自分の成長の過程を楽しみ、人生の階段を一歩ずつ上ってください。

    4.夢は叶うと信じること。そのような環境下に身を置くこと。

    多少の失敗で挫折しないでください。
    あなたは始めて自転車に乗ったとき、きっと何度も転倒を繰り返したと思います。
    それでもあなたが自転車を補助輪をつけずに乗れるようになったのは、「乗れるまで挑戦したから」です。
    そしてなぜ乗れるまで挑戦できたかというと、
    ・あなたは自転車を上手に乗りこなす人をみてきたから
    ・あなたが転倒を繰り返すたびに「もう一回!」と励ましてくれる人が近くにいたからです。
    このような環境下で育ったあなたの潜在意識は「自転車は乗れるもの」と認識します。だから乗れるまで諦めなかった。

    でも多くの人が夢を諦めるのは、
    ・あなたの周りで夢を叶えた人がいないから
    ・あなたが諦めそうになったときに「もう一回!」と励ましてくれる人が近くにいないから
    です。このような環境下で育ったあなたの潜在意識は「夢は叶わない」と認識します。だから簡単に諦めます。
    あなたの周りに夢を叶えた人がいて、あなたのことを励ましてくれる人がいるならあなたは必ず夢を叶えることができます。
    なぜなら、その環境下にいればあなたの潜在意識は夢は叶うものと認識するからです。

    5.あなた自身のビジネスを開始すること。

    あなた自身の行動力で何かを始め、収益を得ようとすることは自分自身を飛躍的に成長させます。
    今の時代はノートPCとネット回線さえあればすぐにでもサイドビジネスを始めることが可能です。
    収益を得るための手段はとくに関係ありません。
    路上でクツを磨いてもかまいません。ブログを始めてアフィリエイトに挑戦してみてもかまいません。オークションを使って転売を始めてもかまいません。
    始めることで「どうやったら収益を得ることができるのか」考えるようになります。
    この考える力こそが非常に重要です。
    この考える力を早く身につければ、早い年齢で経済的に成功を手にすることができます。

    6.外見で人を判断しない。

    ルックスは簡単に人を欺くことができます。
    営業をしている方なら理解が早いと思います。営業職の方なら、相手に好印象を残すためのファッションテクニックをたくさんご存知でしょう。
    もちろん、自分のことは常に清潔にしていたいところですが、世の中そういう人ばかりではありません。
    清潔でなくても、不細工でも、特定の分野に対して素晴らしい方はたくさんいらっしゃいます。

    特に若い人はファッションセンスだけで派閥をつくりがちです。
    似たもの同士と一緒にいるほうが気が合う確率が高く、居心地も良いでしょう。
    誰とでも仲良くしろ、というお話ではありません。
    ファッションだけで他人を決め付けるのではなく、まず相手がどのような人なのか知るために自分自身に時間を与えることが大切です。
    あなたが人を外見で判断しなくなったとき、知人の輪はグンと大きくなります。

    7.できるだけ多くの"知らない人"とコミュニケーションをとる。

    年齢や職業、性別に関わらず、あなたは目の前にいる人から何かを学ぶことができます。
    ここ数年間、私はたくさんの人と面と向かってお話をしました。
    携帯電話のメモリは1000件を超えました。
    私が自己紹介をした数は1000回どころではありません。

    ――――最初は知らない人と話すのはとても苦手でした。話しも上手ではないので、すぐに”間”が出来てしまいます。その”間”がとても苦手でした。―――

    自己紹介とは面白いもので、場数を踏めば踏むほど進化していきます。
    今では知らない人と話すときは「どうやって心を掴もうかな」なんて芸人さんのような考えを持つ余裕さえ生まれました。
    私は今後数十年間、まだまだ知らない人とたくさんの出会う予定です。
    きっとこれからの数十年間で出会う人たちとはもっと簡単に素早く心の距離を縮められそうです。

    自己紹介の練習や大切さは、学校では教えてくれませんし社会人になってもなかなか機会がありません。
    ですから自分から率先して練習した人だけが周りより何歩も前に進めます。

    8.付き合う人全員を「運命の人」でくくらない。

    これは若い人、そして恋愛経験が少ない男女に良く見受けられます。
    当然、私も若い頃はだれかれ構わず「運命の人だ!」と決め付けたものです。
    安心してください。あなたが運命だと気づき、運命を受け入れるときは同じ墓に入るときだけです。
    ですからどんな異性との付き合いも気を張らずに気楽に付き合ってください。
    目の前の彼氏彼女は運命の人ではありません。ただ、同じ時間軸を過ごす上でお互いの利害が一致した関係でしかありません。
    ですから金銭的に貢ぐ必要もありません。金銭的に貢くらいなら自分に投資したほうが有意義です。
    肩の力を抜いて気楽に付き合ったほうが、恋愛そのものが長続きしますし、別れた後も交友関係が長く続きます。
    別れたあとの交友関係から新しいビジネスチャンスが生まれることもありますし、お互い良く知っている仲なので気兼ねなく相談できるパートナーになります。

    9.健康的な食事。

    今でこそ食事は自炊を心がけるようになりましたが、私はジャンクフードが大好きでした。
    私の大きな過ちは、どんなにジャンクフードを食べても太らないし、一生健康でいられると過信していたことです。
    ―――ジャンクフードは脂質、油分が大変多く、消化するのにものすごい量のエネルギーを使います。体の全エネルギーを消化器官に注ぐので、思考回路はボーっとします。生産性が非常に落ちますし、三大成人病の引き金にもなります。―――

    体調を崩してからでは遅いです。30過ぎてからでは取り返しがつきません。
    自分の好きなことを仕事にしたり、1秒でも長く家族と一緒にいたいならば健康的な食事を取り入れるのは必須です。

    10.成功は簡単に手に入らない。

    物事で成功を掴むには、成功するために長期間活動しなければなりません。
    数週間、数ヶ月程度で手に入る成功に対して、あなたは満足を見出せないでしょう。

    私は若いときは何でも短期間で成功すると思っていました。そして失敗するたびに自分自身に失望し、自信を失っていました。その負のスパイラルから抜け出すのに非常に苦労しました。
    成功に対して非常に甘い考えを抱いていたのが原因でした。

    もしあなたが何かで成功したいと思っているなら、長期的なスパンで考えなければなりません。
    そして毎日コツコツと成功にむかって行動し、ときには障害や挫折を楽しむ余裕も必要です。

    11.ポジティブ・ネガティブの側面。

    全てのものにはポジティブとネガティブの側面があり、その側面はあなたの信念が選択します。
    もちろんこの記事にもポジティブ・ネガティブ両方の側面が存在します。
    現在まとめている当記事は私の体験談や読書で得た知識をまとめ、記事にしているものです。ある人にとっては参考になる記事かもしれませんし、ある人にとっては反感を買うかもしれません。

    私は経験上、どんなことであれポジティブな側面を見るようにするのが自分にとってお得だと思っています。
    あなたがネガティブな側面しか見れない場合、あなたに幸せや喜びが訪れることは一切ありません。幸せが訪れても気づけないからです。
    そして周りの人の幸せや喜びを奪うガン細胞のような存在になるでしょう。
    あなたの友達にもネガティブなことばかり考えている人はいませんか?その人の友好関係はどうですか?
    逆にポジティブな側面ばかり捉えられる人の周りには必然と人が集まります。
    その人と過ごすとなぜだか自分もポジティブな考えになれるからです。

    12.予測できない将来について心配するのをやめる。

    未来を予測するのは不可能です。
    しかしなぜ私たちは未来を予測するために多くの時間を使い、悩むのでしょうか。
    今この瞬間を楽しめない人に明るい未来は訪れません。
    ネガティブな未来をイメージし、気分を落としながら今この瞬間を過ごす人は、次の瞬間もネガティブな感情を抱いています。またその次の瞬間も…。
    あなたが将来の夢や目標を達成するために未来を計画することは大変素晴らしいことですが、不確実な将来を心配するために時間を割く必要はありません。

    13.お金をゴールにしないでください。

    私たちを自由にするために不可欠な存在なのが、お金です。
    十分なお金は、あなたの望みの大半を叶えてくれます。
    お金で幸福は買えますが、(一部の通貨コレクターを除き)お金そのものではあなたは幸せになることはありません。

    「私は将来○○○○万円貯金するぞー!」「月収○○○万円めざすぞー!」このような目標設定は絶対に避けて下さい。
    お金は、あなたが本当にやりたいことを叶える手段でなければなりません。
    あなたは目標を達成するために、お金はこれだけ必要かな?といったようにお金を定め、その計画に基づいて貯蓄したり収益を確保する必要があります。

    14.あなたが信じるもののために立ち上がる

    あなたの周りには、あなたの夢や希望をぶち壊すような負のオーラ全開の方々が必ず存在します。
    あなたの夢について、あなたがいかに達成できないかについて熱心に説いてくれる方々です。それは恋人・友人かもしれませんし、あなたのご両親かもしれません。
    あなたは、自分がやろうとしていることの先に得られるものを信じているならば、あなたはこのような負のオーラ全開のツワモノと戦わなければなりません。
    もちろん、このような方々の言葉を避けることは大前提ですが、いつボロボロに言われても大丈夫なように心の準備をしておく必要があります。

    あなたの手元には当選番号1等の宝くじがあります。
    なんど見直しても1等の宝くじです。
    あなたの友達は「それ、1等じゃないから捨てなよ。換金しにいくと恥をかくよ。」などと熱心に説いてきます。
    あなたは友人の助言の通り、1等の宝くじを捨てますか?過去に捨てた経験はありませんか?

    15.困難な出来事は「試練」として受け入れる。

    人生は時々残酷で、嵐が吹き荒れるような道を歩かなければいけないときもあります。
    挫折しそうになるくらいの大きな障害が目の前に立ちはだかるときもあります。

    困難な出来事に遭遇したときは、「これは試練なんだ。」と自分に言い聞かせましょう。忍耐のテストでも構いませんし、信念や信仰を測定するテストだと言い聞かせても問題ありません。
    このような考え方は、困難を合理化し、目の前の障害を乗り越える原動力になります。

    16.怒りや憎しみを持ち越さない。

    人間の「幸せ」や「楽しい」といった感情の正反対に位置するのが「怒り」や「憎しみ」です。これらの感情はあなたに大きな負の影響を与えます。

    私たちは人間ですから怒ったり憎んだり…ネガティブな感情は必ず抱きます。
    誰かから嫌がらせを受ければ、誰だって良い気持ちにはなりません。
    しかしその感情をずっと持っていて損をするのは誰でしょうか。
    怒ったり、憎んだりするときに、最も影響を与えるのはあなた自身です。
    それでもあなたはその気持ちを持ち続けますか?

    17.でしゃばる必要はありません。

    あなたの周りの人々は常に自分自身を証明しようとでしゃばっていませんか?
    能ある鷹は爪を隠す。愚か者ほど自分を大きく見せたいがために自己顕示欲が強くなります。
    例えばキーボードで素早いタイピングができることを自慢したいがために、
    「カシャカシャカシャ・・・ターン!!!」のように強くEnterキーを押したり、似合いもしないブランド物でコーディネートしたり…etc。
    カシャカシャターン!をすることであなたの能率がアップするなら問題ありません。
    そのブランドが大好きだったり、本革でコスパが優れてるから所持しているなら問題ありません。

    自分を大きく見せるためにこのようなことをやっても滑稽に見えるだけだと学びました。
    それは周りの似たような人をみたときにあなた自身の感情を思い出せば明らかです。

    18.尊敬第一。

    一言で尊敬と言っても、あなたが高齢者に対して抱く感情ではありません。
    ここでいう尊敬とはほとんど宗教のようなものです。
    「人」「自然」「動物」「機械」・・・etc
    人間は一人では絶対に生きられません。常に何かの助けがあって生きることができています。
    あなたが着ている服はあなたがお金を払ったから手元にあるわけではありません。それを販売してくれた方々、流通場所まで運んでくれた方々、企画・デザインをしてくれた方々がいてくれたからこそ今あなたが着ることができています。

    あなたの身の回り全てに対して敬意を示せるようになると、あなたの周りには自然と人が集まってきます。それはあなたと一緒にいると穏やかな気持ちになれるからです。あなたが支払った敬意は必ずあなたに返ってきます。バンバン支払いましょう。

    19.何事においても「当然」だと思い込まないでください。

    人生は贈り物です。
    情報も贈り物です。
    あなたは他人にはできないことができます。
    あなたは他人の知らない知識をたくさん持っています。
    あなたに住む家があることは当然ではありません。
    あなたが事故に合わないのは当然ではありません。
    あなたの目の前に食べるものがあるのは当然ではありません。
    あなたに恋人がいるのは当然ではありません。
    あなたに家族がいるのは当然ではありません。
    あなたが日本に生まれ、今この時代を生きていることは当然ではありません。
    ただ、それが当然だと思い込んでいるから、気づかないだけです。
    感謝の気持ちを忘れると、ある日突然目の前からなくなります。

    20.ヴィジョンボードを作成し、毎日達成した姿を想像する。

    ヴィジョンを達成した姿や風景を自分の潜在意識に埋め込むことは、ヴィジョンを達成させるために非常に効果があります。
    あなたが手に入れたいモノ、行きたい場所などの写真をコルクボードなどに貼り、目につく場所に飾ります。
    毎日何度も見ることで、潜在意識に埋め込むことができます。

    友人に恵まれている人のお部屋には、友人との写真がコルクボードにビッシリと貼ってあるものです。彼らは潜在意識で友人関係を大切にしようとします。

    このヴィジョンボードは、あなたが本当にやらなければいけないことは何かを思い出させてくれる素晴らしいガジェットです。
    作り方は簡単です。コルクボードなどに写真をペタペタ貼るだけです。

    Linux標準教科書(Ver1.1.1)

    Linuxのパフォーマンス計測ツールperf

    ファイル名の一括変更コマンドrename

    ファイル名を変更するのに、Linux(Unix)では
    mv コマンドを使うと、なんとなく覚えてしまっていました。
    
    ただし、たくさんのファイルに対して、一気にファイル名を変更しよう
    とすると、手間がかかります。
    
    例えば、pic1.jpg, pic2.jpg, ..., pic9.jpg, pic10.jpg
    pic11.jpg, pic12.jpg, ..., pic99.jpg, pic100.jpg, pic101.jpg, ...
    というようなファイルがあるとします。(何のファイルなのかは気にしないでください^^;)
    
    これを ls で普通に表示させると、pic1.jpg, pic11.jpg, pic111.jpg, pic2.jpg,...
    という順序になってしまうので、pic001.jpg, pic002.jpg, pic003.jpg, ...と
    3桁の数字に揃えたい。さて、どうするか?
    
    mv コマンドでは一括処理はできそうにないので、うーむ、shell-scriptでも組む?
    しかし、結構面倒なスクリプトになりそうな予感。
    
    そんな時に、rename というコマンドがあるのに気づきました。
    (Gentooの場合は、sys-apps/util-linux に含まれています。)
    
    使い方は
    $ rename 変更前文字列 変更後文字列 filename
    です。
    filename の部分は、ワイルドカードが使えるので、上記の場合だと
    $ rename pic pic00 pic?.jpg
    とすると、
    pic?.jpg で、pic1.jpg, pic2.jpg, pic3.jpg, ..., pic9.jpg の
    一桁数字のファイルだけが対象となり、
    その pic の部分が pic00 にリネームされます。
    
    結果、pic001.jpg, pic002.jpg, pic003.jpg ..., pic009.jpg になるのです。
    
    同様に
    $ rename pic pic0 pic??.jpg
    とすると、2桁の数字のファイルだけが対象となり、pic0xx.jpg と
    3桁の数字を持つファイル名になるわけです。
    
    これは便利。
    (みんな知ってる常識だったら失礼)
    

    コンソールが文字化けてしまった時の対処

    バイナリファイルを cat した時などに、コンソール(rxvt) の表示が乱れて(アルファベットを入力しているのに訳のわからない漢字が出るようになって)元に戻らなくなる事があります。
    
    そんな時は、
    echo ^v[ESC]c [Enter]
    と(文字化けにメゲずに)入力すると戻ります。
    
    ^v は、[CTRL] を押しながら V キー
    [ESC] は [ESC]キーです。 [CTRL] 押しながら [ キーでも OK。
    c は普通に C のキー
    です。
    
    または、
    
    ctrl+v → ESC → v
    

    Windows7のエクスプローラをカスタマイズ

    エクスプローラの左ペイン(ナビゲーションウィンドウ)から
      邪魔な項目を消して、必要な項目を追加して以下のようにしたい!

    記事紹介

    Linuxで動作するHAクラスタリング・ソフト

    ,

    tta等をwavへ変換

    Tau Producer

    LVM復習

    , ,

    HAクラスターの教科書

    SSD運用テクニック intel ssd toolbox

    dhcpでクライアントのMACアドレスによりIPアドレスを付与する

    【解説】
    DHCPクライアントをMACアドレスによって識別し、IPアドレスの割り当てを
    行う方法について説明します。
    
    【手順】
    10.1.1.0/24のネットワークで10.1.1.2〜10.1.1.10のIPアドレスを
    MACアドレスで許可されているクライアントにのみ付与する場合について
    説明します。
    
    クライアント1:
    ホスト名     host1
    MACアドレス 11:22:33:44:55:66
    
    クライアント2:
    ホスト名     host2
    MACアドレス 1A:2B:3C:4D:5E:6F
    
    とします。
    
    定義した2つのホスト(host1、host2)からの要求時にのみIPアドレスを
    割り振り、それ以外のホストからの要求は拒否する設定として、
    /etc/dhcpd.conf ファイルに以下のように記述します。
    
    例)
    [/etc/dhcpd.conf]
    -------------------------------------------------
    # dhcpd.conf
    #
    # Configuration file for ISC dhcpd
    #
    
    # option definitions common to all supported networks...
    option domain-name "yourdomain.org";
    option domain-name-servers ns1.example.org, ns2.example.org;
    
    default-lease-time 600;
    max-lease-time 7200;
    
    ddns-update-style none;
    
    ........
    
    subnet 10.1.1.0 netmask 255.255.255.0 {                                          
      range 10.1.1.2 10.1.1.10;             
      deny unknown-clients;
    }
    host host1 { hardware ethernet 11:22:33:44:55:66; }
    host host2 { hardware ethernet 1A:2B:3C:4D:5E:6F; }
    
    ........
    
    -------------------------------------------------
    
    IPアドレスを付与するクライアントのホスト名、MACアドレスを
    host行に記述してください。
    また、サブネットセクションには、"deny unknown-clients;" を
    追加してください。
    
    この設定により、host1またはhost2からの要求時にのみ10.1.1.2から
    10.1.1.10までのいずれかのIPアドレスが付与されます。
    

    頭がよくなる食べ物と食生活

    カーネルモジュールを利用する

    ・依存関係を生成
    depmod -a
    
    ・依存関係が記述されたファイル
    modules.dep
    
    ・カーネルモジュールのロード
    modprobe
    
    ・ロードされた設定内容
    /etc/modprobe.conf
    
    ・現在ロードされている一覧
    lsmod
    
    ・詳細は
    modinfo
    

    つくづく納得させられる名言

    高信頼システム構築標準教科書 − 仮想化と高可用性

    SSD導入後の設定など

    オープンソースソフトウェアの「Heartbeat」によるHAクラスタ

    RamDISK

               Sequential Read :  4328.666 MB/s
              Sequential Write :  5571.975 MB/s
             Random Read 512KB :  4373.431 MB/s
            Random Write 512KB :  5726.502 MB/s
        Random Read 4KB (QD=1) :  1160.870 MB/s [283415.6 IOPS]
       Random Write 4KB (QD=1) :   815.044 MB/s [198985.3 IOPS]
       Random Read 4KB (QD=32) :  1049.251 MB/s [256164.7 IOPS]
      Random Write 4KB (QD=32) :   753.258 MB/s [183900.9 IOPS]
    

    SSD 30GB x 6 RAID0

               Sequential Read :   503.397 MB/s
              Sequential Write :   226.670 MB/s
             Random Read 512KB :   262.101 MB/s
            Random Write 512KB :   116.702 MB/s
        Random Read 4KB (QD=1) :    13.699 MB/s [  3344.4 IOPS]
       Random Write 4KB (QD=1) :     2.346 MB/s [   572.8 IOPS]
       Random Read 4KB (QD=32) :    69.495 MB/s [ 16966.6 IOPS]
      Random Write 4KB (QD=32) :     7.797 MB/s [  1903.6 IOPS]
    

    intel SSDSA2M040G2GC

               Sequential Read :   129.024 MB/s
              Sequential Write :    40.138 MB/s
             Random Read 512KB :   119.927 MB/s
            Random Write 512KB :    28.756 MB/s
        Random Read 4KB (QD=1) :    17.043 MB/s [  4161.0 IOPS]
       Random Write 4KB (QD=1) :    23.921 MB/s [  5840.0 IOPS]
       Random Read 4KB (QD=32) :    87.021 MB/s [ 21245.2 IOPS]
      Random Write 4KB (QD=32) :    38.547 MB/s [  9410.9 IOPS]
    

    OCZ OCZSSD2-1APX60G

               Sequential Read :   124.564 MB/s
              Sequential Write :    90.645 MB/s
             Random Read 512KB :   118.799 MB/s
            Random Write 512KB :    46.888 MB/s
        Random Read 4KB (QD=1) :    20.694 MB/s [  5052.4 IOPS]
       Random Write 4KB (QD=1) :     0.613 MB/s [   149.6 IOPS]
       Random Read 4KB (QD=32) :    23.656 MB/s [  5775.5 IOPS]
      Random Write 4KB (QD=32) :     1.839 MB/s [   449.0 IOPS]
    

    Mtron SSD MSD-SATA6025-032-N-A

               Sequential Read :    81.538 MB/s
              Sequential Write :    76.999 MB/s
             Random Read 512KB :    80.964 MB/s
            Random Write 512KB :    33.404 MB/s
        Random Read 4KB (QD=1) :    26.132 MB/s [  6379.8 IOPS]
       Random Write 4KB (QD=1) :     0.613 MB/s [   149.6 IOPS]
       Random Read 4KB (QD=32) :    38.534 MB/s [  9407.8 IOPS]
      Random Write 4KB (QD=32) :     0.623 MB/s [   152.1 IOPS]
    

    Excelでマクロ(VBA)を使う

    CentOS6, RHEL6でkvmを使う

    tar(とtarを使ったいろいろな)サンプル

    tar.gzを作る(ローカル)
    ※標準入出力経由でのtarのブロックキングファクタは(指定無き場合は)1。
    $ tar cvf - ./hoge | gzip > hoge.tar.gz
    
    tar.gz形式でテープに吸い出す
    $ tar cvf - ./hoge | gzip -c | dd of=/dev/rmt/0m obs=20b
    
    tar.gzを解凍(ローカル)
    $ gzip -dc hoge.tar.gz | tar xvf - 
     又は
    $ gzcat hoge.tar.gz | tar xvf -
    
    tar.gzを作る(リモート)
    $ tar cvf - ./hoge | remsh HOSTNAME '(cd tgzdir; gzip > hoge.tar.gz)'
    
    tar.gzを解凍(リモート)
    $ remsh HOSTNAME '(cd tgzdir; gzip -dc hoge.tar.gz)' | tar xvf -
    
    リモートマシンのDATに吸い上げ
    ※HP-UXのtarでは、テープへの書き出しにおけるデフォルトブロッキングファクタは20である。
    $ tar cvbf 20 - ./hoge | remsh HOSTNAME dd of=/dev/rmt/0m obs=20b
    
    リモートマシンのDATから復元
    $ remsh HOSTNAME -n dd if=/dev/rmt/0m bs=20b | tar xvbf 20 -
    
    DATからtar.gzを作る
    $ dd if=/dev/rmt/0m bs=20b | gzip -c > hoge.tar.gz 
    
    ローカルDATからリモートのDATにコピー(中間ファイルを作らず)する
    $ dd if=/dev/rmt/0m bs=20b | remsh HOSTNAME dd of=/dev/rmt/0m obs=20b
    
    RCPALL_EX
    $ tar cf - 'pwd'/hoge | gzip -c | remsh cpuname '(gzip -dc | tar xvfp -)'
    

    VineLinux6にSamba3.6を入れてみた

    ,

    CentOS6をネットワークインストール

    http://ftp.riken.jp/Linux/centos/6/os/i386
    
    Install or upgrade an existing system...
    Disc Found --- インストールメディアのテスト
      ...Skip
    Installation Method --- インストール方式の選択
      ...URL...OK
    Configure TCP/IP --- TCP/IPの設定
      [*] Enable IPv4 support
        (*) Dynamic IP configuration (DHCP)
      [ ] Enable IPv6 support
      ...OK
    URL Setup --- URLの設定
      http://rsync.atworks.co.jp/centos/6.0/os/x86_64
      [ ] Enable HTTP proxy
      ...OK
    CentOS
      Welcome to CentOS!...OK
    Language Selection --- インストール作業の言語の選択
      Japanese...OK
    Language Unavailable
      ja_JP.UTF-8 display is unavailable in text mode.
      The installation will continue in English. ...OK
    Keyboard Selection --- キーボード選択
      jp106...OK
    Warning --- データ消去の警告(画像は後ろの方に貼り付け)
      ...Re-initialize
    Time Zone Selection --- 地域の選択
      [*] System clock uses UTC
        Asia/Tokyo
      ...OK
    Root Password --- 管理者のパスワード
      適宜入力...OK
    Partitioning Type --- パーティション操作
      Replace existing Linux system
      インストール先のパーティションを選択...OK
    Writing storage configuration to disk -- パーティション変更適用の警告
      ...Write changes to disk
    インストール開始
      Formatting
      Copying File
      Installation Progress
      Dependency Check
      Installation Starting
      Package Installation
    Complete --- インストール完了
      ...Reboot
    

    iPhone4sへ簡単に動画変換して転送プレイ

    1.XMediaRecodeで、プロファイルをAppleに、その下で種類をiPhone 4H,264 960x640 1640 kbpsを選択
    2.完成した動画をiTunesに登録で完了。

    便利な一行野郎…Effective AWK Programming

    多くの有用なawkプログラムは短く、一行か二行のものである。ここに集 めたのはそういった、便利で短いプログラムである。これらのプログラムのうち の幾つかは、まだ説明していない機能を使っている。プログラムの説明は何かを するための良いアイデアをあなたにもたらすだろうが、どうかこの マニュアルの残りを読んで欲しい。あなたがawkのエキスパートと なるために!
    
    例の大部分は`data'という名前のデータファイルを使用している。これは 単なるプレースホルダー(placeholder)である。これらのプログラムを使う 場合、`data'を好きな名前に置き換えることができる。
    
    awk '{ if (length($0) > max) max = length($0) }
    END { print max }' data
    このプログラムは入力行の中でもっとも長いものの長さを出力する。
    awk 'length($0) > 80' data
    このプログラムは80キャラクタを越えるの長さの行をすべて出力する。 このただ一つのルールはパターンとしての関係式を持ち、 アクションを持たない(したがって、デフォルトアクションである レコードの出力が適用される)。
    expand data | awk '{ if (x < length()) x = length() }
    END { print "maximum line length is " x }'
    このプログラムは`data'中にある行の中でもっとも長いものの長さを 出力する。入力は、正しいカラム数で比較を行うために expandプログラムによってタブをスペースに展開される。
    awk 'NF > 0' data
    このプログラムは少なくとも一つのフィールドがある行をすべて 出力する。これはあるファイルから空行を取り除く (もしくは古いファイルから空行を除いた新しいファイルを作成する)。 簡単な方法である
    awk 'BEGIN { for (i = 1; i <= 7; i++)
    print int(101 * rand()) }'
    このプログラムは0から100の間にある乱数を七つ出力する。
    ls -lg files | awk '{ x += $5 } ; END { print "total bytes: " x }'
    このプログラムはfilesが使用しているバイト単位の大きさの 合計を出力する。
    ls -lg files | awk '{ x += $5 }
    END { print "total K-bytes: " (x + 1023)/1024 }'
    このプログラムはfilesが使っている領域の合計をキロバイト単位で出力する。
    awk -F: '{ print $1 }' /etc/passwd | sort
    このプログラムはすべてのユーザーのログイン名リストをソートして出力する。
    awk 'END { print NR }' data
    このプログラムはあるファイルの行数を数える。
    awk 'NR % 2 == 0' data
    このプログラムはデータファイルの偶数行を出力する。 `NR % 2 == 1'という式を使うと、奇数行を出力するようになる。
    

    RaptorでRAID計測

    HDDが4基搭載できる外付けeSATAボックスに74GBのRaptorを4発入れて計測してみました。
    まぁ、eSATAコントローラが腐っているのかあまり良好な結果は得られませんでした。
    -----------------------------------------------------------------------
    x4
               Sequential Read :   123.682 MB/s
              Sequential Write :   122.669 MB/s
             Random Read 512KB :    29.636 MB/s
            Random Write 512KB :   104.694 MB/s
        Random Read 4KB (QD=1) :     0.817 MB/s [   199.3 IOPS]
       Random Write 4KB (QD=1) :     5.712 MB/s [  1394.5 IOPS]
       Random Read 4KB (QD=32) :     5.441 MB/s [  1328.5 IOPS]
      Random Write 4KB (QD=32) :     6.161 MB/s [  1504.2 IOPS]
    -----------------------------------------------------------------------
    x3
               Sequential Read :   117.712 MB/s
              Sequential Write :   121.265 MB/s
             Random Read 512KB :    27.726 MB/s
            Random Write 512KB :    96.862 MB/s
        Random Read 4KB (QD=1) :     0.806 MB/s [   196.9 IOPS]
       Random Write 4KB (QD=1) :     4.271 MB/s [  1042.7 IOPS]
       Random Read 4KB (QD=32) :     4.822 MB/s [  1177.2 IOPS]
      Random Write 4KB (QD=32) :     4.609 MB/s [  1125.3 IOPS]
    -----------------------------------------------------------------------
    x2
               Sequential Read :   116.560 MB/s
              Sequential Write :   120.915 MB/s
             Random Read 512KB :    43.647 MB/s
            Random Write 512KB :    85.237 MB/s
        Random Read 4KB (QD=1) :     0.771 MB/s [   188.2 IOPS]
       Random Write 4KB (QD=1) :     2.814 MB/s [   687.1 IOPS]
       Random Read 4KB (QD=32) :     3.006 MB/s [   734.0 IOPS]
      Random Write 4KB (QD=32) :     3.010 MB/s [   734.9 IOPS]
    -----------------------------------------------------------------------
    x1
               Sequential Read :    88.130 MB/s
              Sequential Write :    86.810 MB/s
             Random Read 512KB :    31.054 MB/s
            Random Write 512KB :    47.971 MB/s
        Random Read 4KB (QD=1) :     0.800 MB/s [   195.3 IOPS]
       Random Write 4KB (QD=1) :     1.680 MB/s [   410.1 IOPS]
       Random Read 4KB (QD=32) :     1.555 MB/s [   379.7 IOPS]
      Random Write 4KB (QD=32) :     1.632 MB/s [   398.5 IOPS]
    -----------------------------------------------------------------------
    

    O型にありがちな事

    自称若くてかわいい女「年収4000万以上の男と結婚したい」J.P.モルガン社長「君の資産価値0だよねw」

    初見で絶対に間違える問題書いてけwwwww

    アニメガジェット製作所

    古いiPod Touchの活用法〜RemotePad/Touch Mouseで無線トラックパッド化

    RemotePad for iPhone, iPod touch, and iPad RemotePad for iPhone(ServerAPP)

    UbuntuでPFUのHHKを使う

    GUIで上のメニューから「システム」、「設定」、「キーボード」
    キーボードの型式のモデルからHappy Hacking Keyboardを選択
    「追加」、言語から英語とUSAを選択して、「追加」
    追加したUSAをクリックそして、デフォルのまるにチェック
    システム全体に適用すれば、完了
    

    HDDのベンチマークソフト

    ATTO Disk BenchMark Ver2.46
    CrystalMark 2004 R3
    CrystalDiskMark Ver3.0

    気になった啓蒙関連

    ◆名言から学ぶ幸せのヒント
    ◇カウンセラー発!すぐに役立つ心理学講座
    ◆社会人の生涯学習

    WiMAXを使ってみたいけど・・・

    iPhoneのパケホを最大まで使う月額\4,480-より、データ通信だけWiMAXにしたほうがいいのかなぁ?

    RTX-1000をIPルータで使う実験

    iPhone関連の遊びとか脱獄とか・・・

    仮想光学ドライブになるケース

    iPhoneをWi-Fiルータに

    JailBreakしてPdaNetを入れるとテザリングができましたが・・・すぐ切れてしまいあまり使えなかった。

    iPhone4Sを買ったら、簡単にMMS、メール、WIFIを設定する方法

    [ ICT関係 ]    
    iPhoneを今までの3GSから4Sに変えました。
    超嬉しい反面、種々の面倒な設定が待ち構えていてウンザリな部分も正直ありますね。
    極力面倒を省きたいとしのすけ、試行錯誤の結果、以下の方法が良いと考えましたので、これから移行(機種変更、旧iPhone→iPhone4S)をお考えの諸兄は参考にしていただければ幸いです。
    
    (1)バックアップからの基本的な移行、アプリの整理整頓
    
    新しいiPhoneにデータを移行しようとすると、どうしても旧iPhoneで作り上げていたアプリのフォルダが消失してしまいます。
    そこからのアプリの整理整頓は各自の方法でやるしかないのですが、としのすけが編み出した?方法は以下です。
    
    Step.1:まずは、トップページから順に「ニュース関係」だけをフォルダにまとめて行き、最後のページまでいく
    
    Step.2:次に、「便利ツール関係」を最後まで、次に「辞書関係」を最後まで、といった感じで、
    どんどんカテゴリ別のフォルダを作っては、機械的に束ねていき、スッキリ片付ける
    
    Step.3:それぞれのカテゴリのフォルダを後でゆっくりリファインしたり、好きなカテゴリに分類しなおしたりする
    
    こうすることで、そこそこ効率よく整理整頓ができました。
    
    (2) MMSの設定を行う
    
    これは、設定>メッセージ>MMSメールアドレスに行って、メアドをいれるだけ。
    ここのアドレスは *****@softbank.ne.jp
    です。
    ※ *****を忘れた人は、MySoftBank(www.email.softbank.ne.jp/scspc/pc/ja/)
    で確認して入力してくださいね。
    
    
    (3)メールとWIFIアクセスポイントの設定を行う
    
    残念ながら、ソフトバンクのメールアドレスもWIFIアクセスポイントの設定も再設定が必要です。
    が、この部分については、便利な「一喝設定」の機能が提供されているので便利です。
    アクセスポイントは、以下の4つのネットワークが、
    ・mobilepoint
    ・0001softbank
    ・FON
    ・FON_FREE_INTERNET
    メールアドレスは、 *****@i.softbank.jp
    のアドレスが自動的に設定されます。
    
    一喝設定の方法は簡単。
    MySoftBank(my.softbank.jp)にアクセスし、
    ソフトバンクWI-FIスポットのバナーからか、
    メール設定(Eメール(i))のバナーから
    「一括設定」のページに入り、利用規約に同意して、インストールボタンを押すだけです。
    
    (4)メール&カレンダーをGoogleメール・カレンダーと同期させる
    
    iOS5になって、カレンダーがググッと便利になりました。
    iOS5になって一番便利になったと評判の「通知センター」ですが、天気や株価、新着メール・TWITTER・FACEBOOKはもちろん、カレンダーの予定表を表示させることができるので重宝します。
    Googleのカレンダーとの同期も簡単で、
    設定>メール/連絡先/カレンダー>アカウントを追加>Gmail>名前、アドレス、パスワードを入力するだけでOKです。
    
    Googleカレンダーで複数のカレンダーを使っている方(としのすけは domo Todo+ を使っています)は、それも登録できるのはご存知ですか?
    
    ポイントは、Googleカレンダーで、「カレンダーのアドレス」を取得しておくこと。
    カレンダーのアドレスは、Googkeカレンダーの
    マイカレンダー>設定>当該カレンダーと進み、下部の「カレンダーのアドレス」の箇所の右側のカレンダー ID: *****@group.calendar.google.com の部分です。
    これをコピーしておきましょう。
    次に、iPhoneの
    設定>メール/連絡先/カレンダー/アカウントを追加/その他/CalDAVアカウントを追加に進みます。
    すると「CalDAVアカウント情報を入力してください」と出てきますので、
    サーバー:https://www.google.com/calendar/dav/*****@group.calendar.google.com/user
    
    ユーザ名:****@gmail.com(google calendarのアカウント名)
    
    パスワード:google calendarのパスワード
    
    説明:マイカレンダーと同じ名前を記入
    
    を入力します。
    ※先ほどコピーしておいたカレンダーのアドレスを貼付け、その後ろに /user をつけるのがミソです。この /user を忘れるとダメですのでお気をつけください。
    
    これで、メールもカレンダーも完璧!
    
    (5)twitter、facebook、evernote、dropbox、RSSリーダー等は地道にコツコツと
    
    もう、ここまでくれば普通にiPhoneを使えますね。
    その先のtwitter、facebook、evernote、dropbox、RSSリーダー等は地道にこつこつと。(^^;)
    
    いろいろな設定情報やメールアドレスは、 evernoteに諸情報を載せていると便利ですよ。
    iPhoneに最初から入っている「メモ」アプリも、googleのメアドのアカウントで書いていると、icloudで自動的に複数のデバイスに共有されるのですごく便利ですが、所詮iCloudの世界だけになりますので、PCや様々なAPPLE以外のデバイスとの連携を考えるとevernoteに軍配があがります。
    
    

    見開き画像ビューア

    Leeyes
    SpReader

    iPadで漫画など

    iComic Viewer

    血液型・・・

    シェルスクリプトでnull判定など

    自分の親父にクラウドコンピューティングを説明するための種置き場

    ChainLP V0.37-8

    画像のリサイズ、回転、グレースケール変換から、
    傾き補正、余白削除、 カラーページの自動判別、
    バッチ処理等、色々な機能が盛りだくさんのツールです。
    

    ジョブズ語録

    ・海軍に入るくらいなら海賊になった方がいい
    ・残りの人生も砂糖水を売ることに費やしたいか、それとも世界を変えるチャンスが欲しいか
    ・美しい女性を口説こうと思った時、ライバルの男がバラの花を10本贈ったら、君は15本贈るかい?そう思った時点で君の負けだ
    ・方向を間違えたり、やりすぎたりしないようにするには、まず「本当は重要でも何でもない」1000のことに「ノー」と言う必要がある
    ・あなたの時間は限られている。だから他人の人生を生きたりして無駄に過ごしてはいけない
    ・ドグマ(教義、常識、既存の理論)にとらわれるな。それは他人の考えた結果で生きていることなのだから
    ・仏教には「初心」という言葉があるそうです。初心を持っているのは、素晴らしいことだ
    ・製品をデザインするのはとても難しい。多くの場合、人は形にして見せて貰うまで自分は何が欲しいのかわからないものだ
    ・消費者に、何が欲しいかを聞いてそれを与えるだけではいけない。完成する頃には彼らは新しいものを欲しがるだろう
    ・iPodより高いスニーカーもある (300ドルは高いのではないか、という記者の質問に対して)
    ・アップルのシェアは自動車産業におけるBMW・ベンツ・ポルシェよりも大きい。BMWやベンツであることの何が悪いんだ?
    ・画面にはとても見た目のよいボタンを配した。思わず舐めたくなるだろう
    ・盗んだものを驚くほど効率的に配布できるシステムがある。インターネットと呼ばれているシステムだ
    ・私たちはいつも偉大なアイデアを臆面もなく盗んできた
    ・30代や40代のアーティストが斬新なものを生み出して社会に貢献できることはめったにない
    ・私はまだ30歳だ。もの作りを続けるチャンスが欲しい
    ・お前、クビな (エレベーターで偶然出会った社員に対して)
    ・日本人は死んだ魚のように岸に押し寄せてきた。まるで海岸を埋めつくす死んだ魚のようだ
    ・この醜悪な犬の糞をどけろ!! (華道の大家の生け花を見て)
    ・ちゃんと通訳して、こいつに犬の糞を目の前からどけろと伝えないならお前はクビだ!! (ジョブズを諌めた通訳に対して)
    ・「邪悪になるな」なんてのはデタラメだ!! (Googleの社是について)
    ・ポルノが欲しい人はAndroid携帯を買えばいい
    ・こんな国、二度と来るか!! (関空で手裏剣を没収されて)
    

    アンガーマネジメントの9の心得


    日常生活において誰しもイラっとする瞬間はあるものだが、一人前の大人として怒りの感情のコントロールは必要不可欠だ。そんな"アンガーマネジメント4 件"について、米国のキャリアコンサルタント Penelope Trunk氏が自ら実践しているTipsをブログで紹介している。おもに子どもをもつ人に向けて書かれているが、ビジネスシーンでのふるまいにおいても参考になる。

    1. 問題に向き合い、優先して対処すること
    怒りの感情をコントロールしなければならない人というのは、たとえば妻の尻に敷かれていてストレスが溜まっている夫などではない。不満を爆発させたがために解雇されたり、子どもが成長し、感情が読めないゆえに自身が嫌われるかもしれない…と憂う人が抱える問題である。

    2. 怒りの引き金となるポイントにフォーカスする
    ただでさえ忙しい朝は、子どもに手を焼いて癇癪を起こすことが多い。穏やかな朝を過ごすには、早起きをして子供が起きる前に自分の時間をたっぷりかけられるような余裕を。

    3. ストレスを抑えるために深呼吸をする
    深呼吸は、気分を落ち着かせ、精神を集中するヨガと同様の効果がある。

    4. 自戒の能力を向上させるために、定期的な睡眠スケジュールを立てる
    早起きのためには早寝は必須。さらに、子どもは自分が寝る1時間半前には寝かしつけておく。

    5. 日常とは予測不能であることを受け入れて、それをよしと考える
    癇癪を起こさないように毎日準備万端にしていても、当日になって不測の事態というのは起こりうるもの。日常生活というのはそういうものだと認識し、急なトラブルでも前向きに捉えること。

    6. フラストレーションのもととなるものを心得ておく
    子どもに対して苛立ちをを覚えたときは、それが子どもではなく、世間が親に対して向ける目線に対して動揺しているのだと考える。そして、自分自身に「私は感情のコントロールができている」と言い聞かせて、子どもに対して八つ当たりをしないようにする。

    7. 食べ物への思いは抗いがたいと理解する
    子どもが食べ散らかしているところを見ると、腹ただしく感じて、お皿を取り上げたくなりがちだが、食べ物に対する欲求はコントロールが難しい。大人であっても、大好物が目の前にあれば、他人の目も気にせずにかぶりつきたくなるはず。子どもであればなおのこと。

    8. 切迫した状況においても言葉で言い聞かせる
    たとえ状況が緊迫していたとしても、子どもに対しては暴力的な態度ではなく、言葉で言って聞かせるよう努める。

    9. 困難な状況のときこそ落ち着いて行動して正しい判断を
    思わずカッとなったときには、静かな場所に移動して、まずは気を落ち着け、冷静な判断を。

    OSSでLinuxサーバ構築


    ランチャ等設定


    orchis , RocketDock

    解説サイト
    http://goo.gl/XyrKi
    http://goo.gl/fTIo8
    特に理由がなければこの2.0を使え。もう入れたならシラネ
    http://goo.gl/2U0mK
    OSが32bitならこのパッチをあてる
    http://goo.gl/C31bu
    64ならこっちを当てる
    http://goo.gl/l6HPf
    主なスキン
    http://goo.gl/XfGYk
    http://goo.gl/WLgjS

    FreeNAS設定

    Google Chrome ショートカットキー一覧

    ウィンドウとタブのショートカット

    Ctrlを押しながらリンクをクリックする新しいタブでリンクを開く
    Shiftを押しながらリンクをクリックする新しいウィンドウでリンクを開く
    Alt+F4現在のウィンドウを閉じる
    Ctrl+T新しいタブを開く
    Ctrl+Tab次のタブに切り替える
    Ctrl+Shift+Tab前のタブに切り替える
    Ctrl+WまたはCtrl+F4現在のタブやポップアップを終了する
    Ctrl+Shift+T最近閉じたタブをもう一度開く。最後に閉じた10個までのタブが記憶されている
    Ctrl+1〜8タブバーの位置に対応する数字を押すと、特定の位置番号のタブに切り替わる
    Ctrl+9最後のタブに切り替える

    アドレスバーのショートカット(アドレスバー内でのアクション)

    キーワードを入力する既定の検索エンジンを使用して検索する
    キーワードを入力してCtrl+Enterキーワードの前後に「www.」と「.com」を追加してウェブアドレスとして開く
    F6またはCtrl+Lアドレスバーにフォーカス
    アドレスを入力してAlt+Enter新しいタブでそのアドレスを開く

    Google Chrome の機能にアクセスするショートカット

    Shift+Escapeタスクマネージャを表示
    Ctrl+Bブックマークバーのオンとオフ
    Ctrl+H履歴ページを表示
    Ctrl+Jダウンロードを表示する
    Shift+Alt+TChromeツールバーを矢印キーとリターンキーで移動・操作する

    ウェブページのショートカット

    F5現在のページをリロード
    Ctrl+F5またはShift+F5キャッシュコンテンツを無視して現在のページをリロード
    Altを押しながらリンクをクリックリンク先をダウンロード
    Ctrl+Fページ内検索ボックスを開く
    Ctrl+GまたはF3ページ内検索ボックスに入力した情報の次の一致を表示
    Ctrl+Shift+GまたはShift+F3ページ内検索ボックスに入力した情報の前の一致を表示
    Ctrl+Uソースを表示
    Ctrl+D現在のウェブページをブックマーク
    Ctrl++テキストの拡大
    Ctrl+-テキストの縮小
    Ctrl+0通常のテキスト サイズに戻す

    テキストのショートカット

    テキストフィールドでCtrl+Shift+Vクリップボードの現在のコンテンツをプレーンテキストとして貼り付け

    flac等をmp3へ変換

    bonkenc ⇒ fre:ac

    やる気を出す30の方法


    1. やる気を出すとは「気分を高める」ということ。
    2. スピードを出せば、やる気も出る。
    3. やる気を持続させる燃料は「達成感」。
    4. 他人のために一生懸命になると、やる気が出る。
    5. ガケっぷちが、やる気をかきたてる。
    6. やる気は、空気感染する。
    7. やめられない、止まらない。行動すれば、やる気が出る。
    8. 自主的に行っていることには、すでにやる気がくっついている。
    9. 言われる前にすると、やる気が出る。
    10. 好きなことをすると、やる気が出る。好きなことをすると、幸せになれる。
    11. 「負けたくない」という意識が、やる気に変換される。
    12. 結果を目に見える形にすると、やる気が出る。
    13. 睡眠不足は、やる気不足。
    14. やる気はあるのに、出ない。やる気を詰まらせている障害物を取り除くだけでいい。
    15. やる気がないのは、夢がないだけ。夢がないから、何をやっていいのかわからないだけ。
    16. あこがれをもつと、やる気が出る。
    17. 実際の成功体験ほど、やる気の出ることはない。
    18. 集中力は、やる気力。
    19. やる気は、生もの。
    20. 見られると、やる気が出る。
    21. やる気の出る音楽を聴くと、やる気が出る。
    22. 後悔することで、やる気が出る。
    23. できないことはやらなくていい。できることだけやればいい。
    24. 異性を原動力にすると、やる気が出る。
    25. やる気は、出そうとするから出なくなる。
    26. やる気が出ないときは、やる気がなくてもできることから始める。
    27. やる気を出すためには、笑うことが大切。
    28. 嫌いなことには、やる気は出ない。好きなことだから、やる気が出る。
    29. 一気にやることで、やる気が出る。
    30. 応援されると、やる気が出る。

    BIOSの基礎知識

    Gavotte Ramdisk を Windows 7 x64 で使う

    SDKインストール後に移動して鍵を作成する
    C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin
    
    Windows SDK 7.0
    ,

    プチフリ対策・SSD・高速化・RAIDにおける考察

    メールの転送設定

    .forwardファイル
    
     メールを転送したい場合は、ユーザーのホームディレクトリ内(public_htmlの一つ上の階層)に.forwardと言う隠れファイルを置きます。(Linuxの場合、ファイル名の頭にピリオド「.」を置くと隠れファイルになります。)このファイル内に転送先に指定するメールアドレスを書き込む訳です。
    

    GMapCatcher覚書

    オフラインで、GoogleMapsが使えるスグレモノ。
    
    いまいち使い勝手がわからなかったので覚書。
    
    
    作業の手順としては、エリアと縮尺を指定し、
    その地図データをローカルに保存するという単純なもの。
    
    実際のGoogleMapと同じような使い方をするのであれば、
    はじめに世界地図をDLし、徐々に目的地を拡大しながら、
    縮尺を変えながら地図を保存していくイメージだ。
    
    
    
    オンラインでやること。
    
    1.起動したら、画面上で最大化する。
    
    2.Queryのスパナのマークから、Settingsをクリック。
     Custom Map Directoryでマップを保存したい場所を指定。
    
    3.全体図(縮尺17か16あたり)でDownloadをクリック。
     縮尺はフォルダの階層と考えるとわかりやすい。
     実際、画像の管理はそうなっている。
    
    4.Centerはどこでもよい。
     Areaが気の遠くなるほど長い距離になっているのを確認し、
     Zoomのminを13あたりに設定。maxは17を設定。
      ここで設定したZoomの画像が保存される。
      Areaをバカデカく設定しておけば、
      全世界の13のサイズまでの画像がダウンロードされる。
      これをしておかないと、初期の17の縮尺のときに
      全体図がダウンロードされていない状態になってしまい、
      ダブルクリックで目的の場所を絞っていく使い方ができない。
    
    5.4で設定したminの縮尺(上では13)まで、Map上で目的地を拡大する。
     Downloadをクリックすると、
     その分Area(ダウンロードする範囲)は縮まっているので、
     今度はminを13、とmaxを13と同値に設定し、
     表示されている縮尺(階層)のマップをDLする。
     
    5-2.DLを開始したら、続けて次の階層(拡大)のマップをDLする。
    上では13までDLしたので、Map上は12に拡大する。
     Downloadのボタンを押し、minとmaxを12に設定する。
     また、Areaのサイズが13の時よりも小さくなっていることを必ず確認すること。
     これが大きいままだと、広い範囲で縮尺の小さいMapをDLすることになり、
     DLに膨大な時間がかかってしまう。
    
    6.5の手順を繰り返す。
     Downloadボタンでウィンドウはいくつも起動するので、
     12、11、10…とマップの拡大とDownloadを繰り返す。
    
     min:11 max:12、min:10 max:11の2つのウィンドウでDLした場合、
     なぜか両方のウィンドウで11の画像を取得しに行ってしまうので、
     やはり同値でDLしたほうがよい。
     コネクションを複数張ることにより、DLの高速化にも一役かう。
     目的地の階層が0になるまで、DLする。
     ただし、縮尺が3,4程度になるとかなり拡大されたマップなので、
     Areaのサイズを変更せずmin:2 max4あたりで一気にDLするのが楽。
    
    7-1.もし容量と時間に余裕があるのなら、
     日本全体が映っている状態でDLボタンを何度も押し、
    DL画面を表示させる。
    
    (画像は世界全体の地図をDLしているところ。
     Pen4メモリ1GのXPというロートルでは
     システムリソース不足でフリーズしたのですぺックには注意。)
     それぞれにmin10max10、min9max9、min8max8…と設定し、
     自分で使うサイズまで設定して一気にDLしてしまうのもアリだ。
     DLが遅いため、4未満の縮尺では鬼のように時間がかかる。
     月曜にDLをはじめても週末のピクニックに間に合わないかもしれない。
    
    7-2.現実的なのは日本地図の5あたりまで一気にDLしたら、
     目的地周辺で日本全体と同じようなことを縮尺-2まで繰り返す方法。
     地図類は「ない」より「使わないけどある」方が好まれるので、
     DLしておいて損はないだろう。
    
    
    
    マップが食う容量は、相応といったところ。
    使っていくうちにどんどん食っていく。
    ファイル数は5万を超えるので、
    最低100〜300MBくらいはみておいたほうがいい。
    画像ファイルは実際1KB未満〜50KBと様々だ。
    特に文字も建物も道も何も無いMapだと、
    4KB未満ということが多い。
    XP以降基本は4KBのアロケーションユニットサイズなので、
    このSoftwareとの相性はすこぶる悪い。
    実際、50MBも満たないファイルサイズなのに、
    ディスク上ではその10倍近く、500MB以上食っている…
    リムーバルディスクだから?謎だ・・・。
    exFATでもNTFSでも10倍。
    ローカルのNTFSだと2倍の100MB程度でおさまった。
    NTFS圧縮も使ってみたが、ディスク上のサイズは1割しか縮まなかったので、
    時間と容量を考えると効率的ではなかった。
    
    最もネックなのは、DLが遅いことだ。
    5の作業で、minとmaxで差を作ってDLすると、
    余計なところの詳細MapまでDLしてしまい、大変だ。
    
    無駄に思えるかもしれないが、差を0にしてDLしたほうが、
    時間の節約にも容量の節約にもなる。
    
    
    便利っちゃ便利だけど、もっと早くDLできる方法はないのかね。
    Googleがナビでも出してくれるといいんだけど。
     ああ、Googleナビはもうあるのか。
    

    正規表現

    ・"a"で始まる5文字の文字列で、2文字目に"3","5","7"のいずれかが含まれる。
    a[357]...
    
    ・行末の文字が";"である。
    ;$
    
    ・行頭は数字で始まり、行末はアルファベットの小文字で終わる。
    [0-9].*[a-z]$
    

    xargs

    ・標準入力から受け取った文字列を引数に指定して、与えられたコマンドを実行する。シェルの制限を超える処理でもxargsに渡せばOK!
    find . -mtime +60 -type f -exec rm {} \;
     ↓
    find . -mtime +60 -type f | xargs rm
    
    rm * → エラー
     ↓
    echo * | xargs rm
    

    仮想光学ドライブになるHDDケース

    CPU性能比較表

    IPアドレスをDynamic DNSサイトに更新する為の設定

    動画を好きな場面で切るツール

    unitemovie

    Windows7でthumbs.dbファイルを作成しないようにする

    手順
    
    「ファイル名を指定して実行 *2 」に「gpedit.msc」と入力し、グループポリシーエディター *3 を開く。
    「ユーザーの構成」−「管理用テンプレート」−「Windowsコンポーネント」−「エクスプローラ」にある「非表示のthumbs.dbファイルで縮小表示のキャッシュを無効にする」をダブルクリック
    「有効」をクリックして「OK」ボタンを押す
    同じく「ユーザーの構成」−「管理用テンプレート」−「Windowsコンポーネント」−「エクスプローラ」にある「縮小画像のキャッシュをオフにする」をダブルクリック
    「有効」をクリックして「OK」ボタンを押す
    

    WindowsのTeaming

    Linux と違って Windows には teaming の機能はありません. 
    ですので,専用の application/device driver を install して実現します. 
    ※Broadcom Advanced Control Suite とか Intel PROSet II とか. 
    
    同じではありませんけど「ネットワークブリッジ機能」ならもともと備えています. 
    

    C#関連

    , , , ,

    FreeNAS関連

    , , , ,

    Hyper-V Server 2008 R2をリモートのWin7とVistaクライアントで管理するには


    Core i7 で「Hyper Threading をオフにすると速くなる」は OS によっては正しくない!


    OS ごとの対策
    
    Windows XP 32ビット版では、HT: off にした方が絶対に有利。ベンチマークによって 27% 程度のスコアの向上が見られるようです。
    Windows Vista 64ビット版では、HT: off にした方が有利。XP ほどではないにしても、ベンチマークによって 0.2%〜7.6% ぐらいのスコアの向上が見られ、HT を切る御利益はある。
    Windows 7 RC 64ビット版では、HT: on にした方が有利。最新の Windows 7 RC 64ビット版では、そのまま HT をオンにしておいた方がわずかながらスコアが高いようです。この結果は Windows 7 製品版では異なるかもしれませんので、あしからず。
    

    わかるネットワーク図の書き方

    論理構成と物理構成を分けよ

    ■論理構成図→ネットワークがどのように論理的に分割されていて,それらの間でどう通信がやりとりされているか。IPネットワークではIPアドレスやサブネット,デフォルト・ゲートウエイ,といった情報。

    ■物理構成図→ネットワークを構成するすべての機器や端末についてケーブルの接続や物理的な配置場所を書いておく。それを基に,トラブルの原因と疑われる機器のところに行けば,実際の配線や機器の状態が確認できる。

    FlashをPDFにする方法

    Flashを一旦、印刷でXPSで出力する。
    そして、下記のツールを使用してPDF化できる。
    PDFCreator

    InternetExplorer / IEの起動が遅いと思ったときにとりあえずやるべきこと

    1) IEを起動する
    2) 「ツール」→「インターネットオプション」→「プログラム」→「アドオンの管理」
    3) 起動が遅くなっている原因と思われるアドオンを無効にする
    4) IEを再起動
    

    最強の勉強法教える

    一番最強なのは反復法。 
    これに勝る物はない。 
    
    自分もやったし友人4人(内馬鹿2人)で
    いろいろな勉強法試したが反復法が一番だった。 
    何故反復法が最強なのか。 
    
    
    ・構造、原理がシンプル。 
    
    ・目標を立てやすい。 
    
    ・複雑な技術、時間のかかる技術
    (美しいノート作りのようなもの)が不要。 
    
    ・科学的(脳科学的)に見ても反復法の効果は明らかである。 
    (しかし、ほかの方法が検証されていないだけかもしれない) 
    
    ・記憶期間が長い。 
    
    記憶期間が長い為1回やれば
    (1回やるというのは反復法を1回やるということ)
    直前にもう一度確認すれば復活する。 
    
    反復法のやり方(独自法) 
    
    注意 : どの勉強法でも同じだが、
    やはり根本的ヒエラルキーは「やる気」である。 
    やる気がない勉強法は土台のない家と一緒で建てても崩れ落ちる。 
    
    1、覚えるパートを3つ4つ決める。(パートは短めに決める) 
    
    2、パート1をやる。その後パート2をやる。
    
    その後パート3をやる。その後パート4をやる。 
    
    3、パート4が終わったらまたパート1をやる。
    
    ……パート3が終わったらパート4をやる。 
    
    4、2、3を複数回程度繰り返す。 
    
    何故パート1を何度も何度もやらないのか。 
    
    同じものばかりをやると記憶の蟠りができてしまい、
    問題・設問の場所等で暗記してしまう。 
    別パート(これは違う教科・種類のものをやった方がよい。)を
    間に挟むことで場所で暗記するのではなく
    設問事態を暗記することができる。 
    

    最近のビデオカード

    NVIDIA「規格を守ったら負けかなと思ってる」 
    
    AMD「規格を守ってたら負けると分かった」 
    

    いますぐ実践! Linux システム管理


    対話型アプリケーションを自動実行する

    エクスプローラのフォルダの表示方法を「詳細」に統一したい。

    フォルダを開いた状態で、希望の表示にし、ツール(T)→フォルダーオプション(O)→表示にて
    「フォルダーに適応(L)」をクリックします。
    WindowsXPまでは「すべてのフォルダに適応」だったのですが、Windows7では「フォルダーに適応」と表現が変わっています。
    

    Win7デスクトップカスタマイズ

    ◆ランチャ 
    http://all-freesoft.net/desktop11/launcher/rocketdock/rocketdock.html 
    ◆スタートボタン 
    http://www.gigafree.net/system/theme/windows7startbuttonchanger.html 
    ◆壁紙 
    http://www.v3wall.com/ja/ 
    ◆アイコン 
    http://browse.deviantart.com/customization/icons/dock/?order=9&alltime=yes 
    

    主なLinuxファイル・システムの機能比較

    ファイル・システム名Btrfsext3ext4xfsjfsZFS(参考)
    メタデータ・ジャーナリング
    データ・ジャーナリング××
    動的inode割り当て××
    エクステント対応×
    スナップショット作成××××
    遅延アロケーション××
    チェックサム×××
    透過圧縮機能××××
    オンライン・デフラグ×××
    RAID機能××××
    対応RAIDレベル0, 1, 100,1,5(RAID-Z),6(RAID-Z2),10
    ボリューム管理機能××××

    Realtek Teaming Utility

    Fault tolerance(フォールトトレランス)
    LANアダプタをプライマリ、セカンダリに分ける。通常はプライマリで通信し、問題が生じたらセカンダリを使う
    Link Aggregation(リンク・アグリゲーション)
    二つの回線を合わせる。単純に速度が二倍になるわけではないが、全体としての帯域幅が増加する(らしい)
    Load Balancing(ロード・バランシング)
    送信する際の負荷を分散させる機能。サーバーからのトラフィックを分析して、適当に振り分けてくれる(らしい)
    

    涙が出るほど感動したフリーソフト Part.02

    Windows7レジストリチューニング

    レジストリの構成

    1. HKEY_CLASSES_ROOT
     HKEY_CLASSES_ROOT は主にファイルの関連付けの設定を保存します。レジストリの編集対象になるものは、ほとんど全てここにあります。HKEY_CLASSES_ROOT については HKEY_CLASSES_ROOT Key (Windows) が詳しいです。
    
    2. HKEY_CURRENT_USER
     HKEY_CURRENT_USER は現在ログインしているユーザーの設定を読み込みます。HKEY_CURRENT_USER については HKEY_CURRENT_USER レジストリ サブキーの説明が詳しいです。
    
    3. HKEY_LOCAL_MACHINE
     HKEY_LOCAL_MACHINE はパソコンがインストールしているプログラムの情報などを保管します。
    
    4. HKEY_USERS
     HKEY_USERS はユーザーの設定情報を保管します。
    
    5. HKEY_CURRENT_CONFIG
     HKEY_CURRENT_CONFIG はパソコン内部機器の設定情報を保管します。
    

    RAID0のCHUNK SIZE設定

    楽天APIとかAmazonAPI

    これをC#から使うとDBにアクセスしてる感じで商品検索などなどできるみたい。

    RTX1100 SNMP でトラフィック監視

    設定にあたっては、以下のドキュメントが参考になります。

    PPPoEで使っているPPポートをSNMPで見れるようにするにはsnmp yrifppdisplayatmib2 onコマンドで有効にしなければならない。
    cactiで設定すればOK
    snmp host XXX.XXX.XXX.XXX
    snmp community read-only PUBLIC
    snmp yrifppdisplayatmib2 on
    
    MRTG
    YAMAHA RTX1100は、SNMPに対応している。 
    折角、MRTGを立ち上げたので、ルータも監視対象にしよう。
    先ず、ルータ側(SNMPエージェント)の設定は、
    # snmp host xxx.xxx.xxx.xxx
    # snmp cummunity read-only public
    # snmp yrifppdisplayatmib2 on←pp側の監視をする場合、この設定が必要
    そして、MRTG側は、
    # cfgmaker xxx.xxx.xxx.xxx >hoge.txt
    で、インターフェイス番号などが取得できますので、これを、/etc/mrtg/mrtg.cfgに設定し、
    # indexmaker /etc/mrtg/mrtg.cfg > /var/www/html/mrtg/index.html
    そして、ブラウザで見てみると、
    出来た、出来た。(勿論、Apacheなど、www serverが動作していることが前提です)
    

    ExcelでSQLインサート文を作成

    =A1&"'"&B1&"','"&C1&"','"&D1&"','"&E1&"','"&F1&"',"&G1&H1
    

    デュアルディスプレイでの画面のチラつき


    メモリクロックを固定すると、2画面時の画面のチラつきが抑えられます。

    LinuxサーバのシリアルポートからRTX1100と接続


    シリアルケーブルでLinuxサーバとRTX1100接続
    WindowsPCからSSH(PuTTYとか)でLinuxサーバに接続(文字コードはSJIS)
    Linuxサーバのscreenコマンドで接続する
    # screen /dev/ttyS0 9600 -> 文字化けするのでSJIS化する
    エディタでscreenの設定ファイルを編集する
    # vi /etc/screenrc
    encoding sjis
    defencoding sjis
    再びscreenコマンドで接続する
    # screen /dev/ttyS0 9600
    空ENTERを押したらRTX1100がパスワードを聞いてくる。
    後はおのれとYAMAHAルーターコマンドの格闘
    

    iPadで画像を順番に並べる

    作成日時順に写真は並べられて表示されるので次のツールで一発変換。
    Neo File Time Change

    LinuxでAFT対応HDDを使う

    LinuxでAFT対応HDDを使うには64セクタ(従来のHDDは63セクタ開始)から領域を確保する事。
    root@Linux# parted /dev/sda
    parted# unit s
    parted# print
    parted# mkpart primary 64s -1s
    parted# print
    parted# quit
    root@Linux# exit
    

    SQL Server に画像を登録。C# から読み込む。

    MACアドレスとベンダー一覧

    BOINCマシンの消費電力

    シンプルに、Core i7 920 + MSI Eclipse SLI + Radeon x800 + 8GB + WD Veloci Raptor + Windows7 64bit
    で、BOINCを8タスク処理だと180w。

    Baidu Japan Blog

    百度の文書共有サービス「Baiduライブラリ」が話題に

    Postfixのメール添付ファイルの送受信サイズの変更方法

    WindowsXPをUSBメモリからインストールする作り方

    DOS bootable usb-key(DOS 起動 USBメモリ)作り方

    IntelのNIC EXPI9301CTでiSCSIブートのBIOSと戻し方

    ファームのアップデートですが 2 種類の方法があります。 , ,
    1.一度ローカルディスク上に OS をインストールしてそこからデバイスマネージャーで iSCSI 用のファームにアップデート
    2.USB メモリに起動可能な DOS のイメージを格納して、そこから iSCSI Boot 用のユーティリティを実行
    iSCSI -> iSCSI_Boot.zip
    iSCSI -> http://supportapj.dell.com/support/downloads/download.aspx
    ファームを書き換えるとチーミング / PXE ブートができなくなるのですが、元のファームに戻したい場合はこちらのファームを適用します。
    元のBIOS -> BootAgent.zip

    日立工機 コードレスドライバドリル

    ビバホームで\4,980-で売ってました。迷わず買っておけばよかった…

    FreeNAS ZPOOL

    WebUIからだとzpool作成でエラーとなってしまってできないので、shellコマンドラインから強引に作成
    zfs# zpool create -f zpool0 raidz ad4 ad6 ad8
    そして、WebUIから「ディスク」→「ZFS」→「設定」→「同期」とメニューを進んで現在のディスク構成をインポートする。
    

    FreeNAS設定

    ,
    ・チューニング
    /cf/boot/loader.conf を[高度な設定]→[ファイルエディタ]でロード
    vm.kmem_size_max="7200M"
    vm.kmem_size="7200M"
    vfs.zfs.arc_max="1800M"
    を追加。
    zraidでのiSCSIのキューの深さは16で設定。

    FreeNAS on USB

    DDwinで作成したFreeNASは起動しない…ナゼなんだ?
    Linuxから下記のコマンドで作成するとOKだった。
    gzip -cd /share/FreeNAS-amd64-embedded-0.7.2.5543.img | dd of=/dev/sda bs=16k
    

    アプライアンスOS


    Openfiler+iSCSI bootでディスクレスサーバ

    OpenFiler USB Boot

    Openfiler NAS/SAN Appliance, version 2.3 (Final Release)
    1. サーバは、HP-ProLiant-ML115 G5
    2. HDDは、1TB x 4 でRAID10にする。
    3. USB4GBをブートメディアにする。
    4. USB-DVDドライブからインストールする。

    ■USB4GBをブートメディアにする。

    これがはまったねー1日かかりました。

    1. Openfiler 2.3のISOイメージをダウンロードして、CD-Rを焼く。
    2. USB-DVDドライブでOpenfilerをブートできるようにする。
    3. USB4GBをマザーのUSBポートに指す。
    4. 起動。
    5. BIOS画面を出す。
    6. BIOS画面で、SATAを無効にする。
    7. BIOS画面で、USB-DVDドライブを起動ドライブにする。
    8. BIOS画面で、USB4GBをHDDに設定する。
    9. Openfiler のブートプロンプトで "linux expert" と入力。USBメモリを認識させる。
    10. USBにインストール。遅いUSBメモリだと超時間がかかる。速いやつでも、1時間以上かかる。
    11. インストール終了後、再度インストールCDからブートさせる。
    12. Openfiler のブートプロンプトで "linux rescue" と入力する。超重要!
    13. デフォルトだと、こんな感じでパーティーションが切られる。

      sda1  /boot

      sda2  /

      sda3  swap

    14. ブート途中に、マウントするけど? と質問がでるが、Noを選択する。
    15. こんな感じでマウントさせる。

      mkdir /mnt/source/boot

      mount /dev/sda2 /mnt/source

      mount /dev/sda1 /mnt/source/boot

    16. さて、面倒が続きます。chroot したいのですが、/mnt/source/boot 配下のファイルを使いたいので、先にコピーをします。

      cp /mnt/source/boot/initrd-2.6.26.8-1.0.11.smp.pae.gcc3.4.x86.i686.img /mnt/source/tmp/initrd.gz

    17. chroot /mnt/source でchrootします。/tmp に initrd.gz があるはず!
    18. gunzip /tmp/initrd.gz
    19. cd /tmp
    20. mkdir /tmp/a
    21. cd /tmp/a
    22. cpio -i < /tmp/initrd
    23. これで、initrd が /tmp/a に解凍されます。ファイルを細工していきましょう。
    24. vi /tmp/a/init
    25. init スクリプトを編集します。echo "Loading jbd.ko module" の手前にこんな感じで、登録します。「間違えると起動しないので慎重に」

      insmod /lib/sr_mod.ko

      insmod /lib/sd_mod.ko

      insmod /lib/uhci-hcd.ko

      insmod /lib/ohci-hcd.ko

      sleep 10

      insmod /lib/usb-storage.ko

      sleep 12

    26. カーネルモジュールをコピーします。
    27. cd /lib/modules/2.6.26.8-1.0.11.smp.pae.gcc3.4.x86.i686/kernel/drivers
    28. cp scsi/sr_mod.ko /tmp/a/lib
    29. cp scsi/sd_mod.ko /tmp/a/lib
    30. cp usb/storage/usb-storage.ko /tmp/a/lib
    31. cp usb/host/uhci-hcd.ko /tmp/a/lib
    32. cp usb/host/ohci-hcd.ko /tmp/a/lib
    33. これで、カーネルモジュールをコピーは終了です。パッケージに戻しましょう。
    34. cd /tmp/a
    35. find . | cpio -c -o | gzip -9 > /tmp/usbinitrd.img
    36. cp /tmp/usbinitrd.img /boot/
    37. 改造したinitrdをコピーしたので、grub.conf も直しちゃいましょう。
    38. vi /boot/grub/grub.conf
    39. default=1 に変更し、0 からこんな感じでコピーする。

      title Openfiler NSA (32-bit PAE) USB

      root (hd0,0)

      kernel /vmlinuz-2.6.26.8-1.0.11.smp.pae.gcc3.4.x86.i686 ro root=/dev/sda2

      initrd /usbinitrd.img

    40. chroot から抜けるため、ここでexitします。
    41. umount /mnt/source/boot
    42. umount /mnt/source
    43. exit で自動リブートする。CD-Rを取り出しておく。
    44. USB4GBでブートをさせる。

    ブートさせると、grubの選択画面がでます。USB版を選んで起動してください。普通に、起動できると思います(と、信じますw)

    で、一度ログインして、root でシャットダウン(shutdown ?h now)をしてください。

    1. 起動。
    2. BIOS画面を出す。
    3. BIOS画面で、SATAを有効にする。
    4. BIOS画面で、USB4GBを起動ドライブにする。
    5. grub でUSB版を選択する。sda2 が sde2 になります。行を選択して、e でeditして、b でブートしてください。
    6. (ブートできるはず)
    7. RAID10なので、先にこんな感じの操作をします。
    8. fdisk /dev/sda
    9. n で、swap パーティーションを作ります。512MBぐらい。t で、82  Linux swapにします。
    10. そのまま、n で全パーティーションを選んで、t で fd  Linux raid auto にします。最後は、w で書き込みます。
    11. 同じ操作を /dev/sdb /dev/sdc /dev/sdd にします。
    12. mdadm ?-create /dev/md0 ?-level=10 ?-raid-devices=4 /dev/sd[abcd]2 を実行します。fdisk /dev/md0 を実行します。
    13. mdadm ?-detail ?-scan >> /etc/mdadm.conf で設定を書き込みます。
    14. vgscan を実行する。
    15. pvcreate -v /dev/md0 を実行する。
    16. vgcreate storage /dev/md0 で「storage」というボリューム・グループに追加する。

    これで、コンソールからの操作は終わりです。続いて、Openfiler 上で作業をします。ブラウザで、https://[IPアドレス]:446/ にアクセスしてください。Firefoxでは、「安全な接続ができませんでした」が出るが、「例外として扱う」を選び、「例外を追加」を選び「証明書を取得」して「セキュリティ例外を承認」をクリックしてください。IE/Opera/Google Chromeも同じような事をしないとダメかも。

    1. ログイン画面では、デフォルトのユーザ名である“openfiler”およびデフォルトのパスワードである“password”を入力する。パスワードは変えた方がいいかも。
    2. [system]タブの「Network Access Configuration」アクセス可能なアドレスを登録します。
    3. [Volumes]タブで、「storage」というボリューム・グループが見えているはず。
    4. [Services]タブで、iSCSI target server をEnable にします。
    5. [Volumes] の右側にある[Add Volume]を選択します。
    6. Volume Name を storage と入力し、Required Space をMAXにし、Filesystem を iSCSI に設定して、Createボタンを押します。
    7. 再度、[Volumes]を選び、右側の[iSCSI Targets]を選択する。
    8. で、[Add]を選択する。
    9. 再度、[Volumes]を選ぶ。
    10. [Edit]を選んで、[iSCSI Targets]を選ぶ。そして、[LUN Mapping]を選ぶ。
    11. [Transfer Mode]は、fileio が正解(らしい)
    12. [MAP]ボタンを押す。
    13. [Network ACL]タブを押す。
    14. Accessを[Deny]から[Allow]に変更して、Update ボタンを押す。
    15. CHAPはとりあえず無視。
    16. これで終了かな!?

    ESXi から、iSCSIを見るには、VMware Infrastructure Client(VIC)を起動させて、以下のようにするといいらしい。

    1. [構成]タブの左側にある[ストレージ アダプタを選択する。
    2. 左側で小さく書かれている[プロパティー]をクリックする。
    3. [動的検出]タブを選択する。
    4. [追加]ボタンを押して、Openfiler(iSCSI)サーバのIPアドレスを指定する。
    5. 登録が終わったら、[閉じる]ボタンを押す。
    6. [はい]を選択する。
    7. はい!これで、ESXiからOpenfiler(iSCSI)が利用できるようになりました。
    8. パチパチパチ!完全終了〜

    で、いかがでした? 相当面倒ですが、iSCSIの環境をうまく作ると、爆速になるらしいです。みんな、頑張って! >って、俺もなw

    [追記]

    その後、7ヶ月。社内ESXi4*4+Openfiler(RAID10)で、ガンガン使っていますが、何も問題が起きていません。非常に安定していて逆に怖いw

    OpenFiler Bonding Mode

    0(balance-rr): ラウンドロビンでパケットを送信。送信のみ負荷分散。
    1(active-backup): 障害時のみバックアップに切り換えて受送信。冗長化のみ。
    2(balance-xor): MACアドレスを使ってNICを決定して負荷分散。送信のみ負荷分散。
    3(broadcast): 全てのNICから伝送。通常のネットワーク構成では使えない。
    4(802.3ad): IEEE802.3adで負荷分散
    5(balance-tlb): NICの負荷に応じて送信NICを決定。送信のみ負荷分散。
    6(balance-alb): balance-tlbに加えて、受信についても負荷分散。
    

    VMware ESXi 4で NICを認識させる Realtek8169,GPE-1000T(Yukon)

    VMware ESXi 4 で認識するNICと言えば、BroadcomやINTELなど一部のGiga対応のネットワークカードに限られる。

    安価なPCI-EXPRESSのボード Planex GPE-1000T も認識できなかった。

    これを認識させる方法が無いか、いろいろと調べた結果、
    http://www.vm-help.com/forum/viewtopic.php?f=12&t=1670

    の情報があった。
    この情報によると、oem.tgz の置き換えにより、
    Marvell Yukon 88E8053(Planex GPE-1000T) や Realtek 8169
    が認識できるようになる。

    (バッファローの LGY-PCI-GT でも大丈夫とのコメントを頂きました。情報ありがとうございました。)

    実際にやってみると、驚くほど簡単に認識した。
    手順は次のとおり。

    1.VMware ESXi4へ mymod-network.new2.tgz  をダウンロードしたのもを、ESXi内のデータストアへファイルアップロードやNFSなど利用して入れる。
    (リンク切れの場合は、http://vm-help.com/esx/esx3i/customize_oem_tgz.phpなどから探す)
    2.VMware ESXi4へコンソールログオンする。(SSHでリモートログオンが便利
    3./vmfs/volumes/ の下にデータストアがマウントされているため、この中から先ほどアップロードしたファイルを探す。
    4.ファイルをoem.tgzとリネームし、そのまま、
     cp oem.tgz /bootbank 
    と/bootbankフォルダへコピーする。
    5.あとは再起動するだけである。

    ダウンロード VMware vSphere 4

    VMware vSphere 4

    rtx系でのNATのセッションの時間

    RI社のバックアップサービスを入れた途端、RTX1000(rev.7.00.30)が急に不安定に。
    この原因が全く分からず半ばあきらめていたが、ふとNATのテーブルを見て唖然。
    NATテーブルがほぼこのバックアップサービスに使い切られている。
    
    このため、一時的にNATのセッションの時間を短く設定。
    デフォルトは900秒だが、300秒にしてみたところ状況が改善。
    
    nat descriptor timer 1 300
    
    しかし、根本的な解決にはつながらない。ペースは遅くなったがNATテーブルを
    どんどん使っていくRI社のバックアップサービス。
    いったい何なんだ!?とか思いつつ、嘆いても仕方ないので更に調査。
    すると
    
    nat descriptor masquerade ttl hold ftp 
    
    というコマンドがサーチエンジンで引っかかった。
    (参照先はこちら)
    [入力形式]
    nat descriptor masquerade ttl hold TYPE
    
    [パラメータ]
    TYPE ... TTLを同期させる方法
    - 'all' ... すべてのコネクションを対象とする
    - 'ftp' ... FTPの制御チャネルのみを対象とする
    
    [説明]
    このコマンドによってIPマスカレードテーブルのTTLの扱いを制御するこ
    とができる。通常、テーブルのTTLは単調に減少するが、FTPのように制御
    チャネルとデータチャネルからなるアプリケーションでは、制御チャネル
    に対応するテーブルをデータ転送中に削除するべきではないため、制御チ
    ャネルとデータチャネルの両テーブルのTTLを同期させている。ただし、
    現有の機能では、制御チャネルとデータチャネルの対応を把握することが
    難しいため、同じホスト間の通信については、すべてのコネクションを関
    係づけ、TTLを同期させている。しかしながら、このような動作では、多
    くのテーブルのTTLが同期し、多くのテーブルが長く残留するという現象
    が起きる。さらに、状況によっては、ルータのメモリが枯渇する可能性も
    ある。そこで、この処理をFTPの制御チャネルに限定し、メモリの枯渇を
    予防する選択肢を提供する。TTLの同期をFTPの制御チャネルに限定すると
    きには、パラメータに'ftp'を設定する。FTPに限定せず、従来と同じよう
    に動作させるためには、パラメータに'all'を設定する。
    
    
    
    どうやらこの「ttl hold」というのが肝で、しかもマニュアルを確認すると初期値が「all」になっている。
    どうやらTTLで同期?を取ってしまうものがあるらしい。これが「ftp」ではなく「all」になっていると、このバックアップサーバのTTLが減らないことが判明。
    
    【初期値】
    nat descriptor masquerade ttl hold all
    ↓
    【変更後】
    nat descriptor masquerade ttl hold ftp
    
    これでTTLの処理をFTP制御チャネルに限定できるようだ。
    最新ファームだと「auto」というのもあるようだ。
    どちらにしても上記コマンドを実行したところ安定(というか元に)してバックアップサービスのTTLも減少するようになった。
    これで原因が特定できたので
    
    nat descriptor timer 1 900
    
    でNATのセッション時間を900秒に戻して終了。
    

    ASUS P5Q-E チーミングの設定

    , ,

    Core i7 920作動に必要な最低電圧

    共通項目
    ・core i7 920ロット : 3837B062
    ・マザーボード : ASUS P6T Deluxe
    ・TurboMode : ON
    ・EIST : ON
    ・CPU倍率  : AUTO(X21)
    ・メモリ倍率 : 2:6(FSB133Mhzの時のみ2:8)

    FSBVcore HToffVcore HTonQPI v(x16)QPI v(X12)
    1330.968751.000001.100001.03900
    1661.112501.125001.200001.14100
    1701.131251.150001.212501.15500
    1741.150001.176001.225001.17000
    1771.181251.200001.237501.18300
    1811.212501.231251.250001.20000
    1911.287501.343751.293751.2375
    2001.425001.530001.331251.27500

    ▲表1:ウチのCore i7 920 OC電圧下限表

    表の見方
    1.上記電圧はBIOSで設定した電圧であり、OS上で読み取ったものではない。
    2.青字はPrime95を4~8時間作動確認した設定。
    3.赤字はPrime95を30分~1時間作動確認した設定。
    4.黒字は完全に予想数値。
    5.灰字は使用しているマザー(ASUS P6T Deluxe)では設定できないので予測した数値。
    6.QPI Vの(x16、x12)はuncore freqの数値をBCLKで割った数値。
     BCLK200、QPI v(x12)の場合、uncore freqは200x12=2400MhzでQPI v=1.275vとなる。
    7.QPIVに関しては、大雑把な検証しかしなかったため、この数値に信憑性はない(X16とX12で計算合わないし。)故に直線(または緩やかなカーブ)とはならないかもしれない。
    8.BCLK200MhzX21=4.2Ghz HT on熱すぎ。アイドル時コア温度50℃近いので検証せず。
    9.HT ONでも、HT OFF時のVcoreでWindowsは起動できる。しかしCPUに高負荷を与えると
     プラスαの電圧が無ければ作動は不安定になる。

    Windows7でthumbs.dbファイルを作成しないようにする

    「ファイル名を指定して実行 *2 」に「gpedit.msc」と入力し、グループポリシーエディター *3 を開く。
    「ユーザーの構成」−「管理用テンプレート」−「Windowsコンポーネント」−「エクスプローラ」にある「非表示のthumbs.dbファイルで縮小表示のキャッシュを無効にする」をダブルクリック
    「有効」をクリックして「OK」ボタンを押す
    同じく「ユーザーの構成」−「管理用テンプレート」−「Windowsコンポーネント」−「エクスプローラ」にある「縮小画像のキャッシュをオフにする」をダブルクリック
    「有効」をクリックして「OK」ボタンを押す
    

    Transfer rate

    ●パソコンのカタログなどに表記されている転送速度がありますが、速度表記が統一されていないため理解しにくい場合があります。そこで、転送スピード単位をハードディスクやFDなどで使用される「MB」で統一してみました。
    なお、これはあくまで「最大転送速度のおおよその目安」でしかなく、実際のデータ転送時には、コマンドやアドレス指定、シリアル通信ではさらにCRCやバスネゴシエーションなど、実際のデータ転送ではない(しかし不可欠な)要素も一緒に転送されます。 そのため、単純に数字のみを比較しているだけです。
    bpsはbit/sec(秒)、B/sはbyte/sec(秒)、1byteは8bitです。
    インターフェイス bit/sec(秒) Mbyte/sec(秒)
    56モデム 56kbps 0.007MB/s
    ISDN 64 64kbps 0.008MB/s
    IEEE 802.11b 11Mbps 1.375MB/s
    IEEE 802.11g 54Mbps 6.75MB/s
    10 BASE-T 10Mbps 1.25MB/s
    10 BASE-T(全二重) 20Mbps 2.5MB/s
    100 BASE-TX 100Mbps 12.5MB/s
    100 BASE-TX(全二重) 200Mbps 25MB/s
    1000 BASE-T 1000Mbps 125MB/s
    FastSCSI 80Mbps 10MB/s
    UltraSCSI 160Mbps 20MB/s
    UltraATA/33 264Mbps 33MB/s
    Ultra Wide SCSI 320Mbps 40MB/s
    UltraATA/66 528Mbps 66MB/s
    Ultra2 SCSI 640Mbps 80MB/s
    ULtraATA/100 792Mbps 99MB/s
    Ultra160 SCSI 1280Mbps 160MB/s
    Ultra320 SCSI 2560Mbps 320MB/s
    USB 12Mbps 1.5MB/s
    USB 2.0 480Mbps 60MB/s
    FireWire 400Mbps 50MB/s
    FireWire 800 800Mbps 100MB/s
    PCI BUS 33MHz/32bit幅 1064Mbps 133MB/s
    PCI BUS 66MHz/64bit幅 4264Mbps 533MB/s
    AGP BUS 66MHz 2128Mbps 266MB/s
    AGP x2 BUS 133MHz 4264Mbps 533MB/s
    AGP x4 BUS 266MHz 8528Mbps 1066MB/s

    Core 2 Quad Q6600のオーバークロック試験

    実績棚卸しクエスチョン

    Q1.あなたがビジネスマンとして、経験・実績を積んできたスペシャリティー(専門性)はなんですか?
    Q2.その業務を行う上で、「これは他の人には負けない自信がある!」と思える点がありますか?もしあれば、それはどんなことですか?
    Q3.その業務を行う上で、会社に利益をもたらすために工夫した事はありますか?あるとすれば、それはどんな工夫ですか?
    Q4.その業務を行う上で、会社のコスト削減につながるような工夫をした事はありますか?あるとすれば、それはどんな工夫ですか?
    Q5.その業務を行う上で、業務フローの改善などやりやすくするために工夫した事はありますか?あるとすれば、それはどんな工夫ですか?
    Q6.その業務を行う上で、「これは私の実績だ!」といえるような結果を残した実績がありますか?あるとすれば、それはどうして実績だと言えるのですか?また、それはどのような実績でしたか?数値で結果を測る事ができれば数値も含めて答えてください。

    チーミング

    WHSでCHKDSK

    net stop pdl
    net stop whsbackup
    chkdsk D: /x /r
    chkdsk C: /x /r
    

    C1EステートとEISTの違い

    <C1E>
    C1E(何の略かしらない)ステートは、Pentium D世代の途中より登場。アイドル時のみクロックと電圧を下げます。
    基本的にONに設定します。熱対策にも有効です。(車で言えばマニュアルエアコンの強・弱切り替えを自動化したものです)
    
    <EIST>
    EIST(Enhanced Intel SpeedStep Technology)は、CPUの負荷に応じてクロックと電圧を下げます。
    こちらは、使用状況に沿って下げることができます。(車で言えばオートエアコンです。)
    
    <Intel C-STATE Tech>
    BIOSの当該項目の右(Help部分)にあるとおりCPUアイドル時のステートをC2/C3/C4を有効/無効の設定です
    ※ ネットで探す場合は「C2ステート」で探せば引っかかります
    
    以下は記事抜粋です
    
     ACPIではCPUの電力の状態をC0〜C3の4段階で規定されている。それぞれどのような状態かと言えば、次のようになっている
    
    ・C0 通常動作状態:OSなどでアプリケーションなどが実行されている
    ・C1 Halt状態:Halt命令の実行によりCPUコアのクロックが停止
    ・C2 クロック停止:CPUコアとバスのクロックが停止
    ・C3 Deep Sleep:クロック生成機も停止
    ・C4 Deeper Sleep:Vcc(CPUへの供給電圧)を低減
    
     CPUはC0>C1>C2>C3と徐々にステートを変更していくことで、CPU内部のクロックを停止していき、徐々にCPUの動作を止めていくことをやっている。
    
     さらにIntelでは独自にC4と呼ばれるモードを設定している。IntelがDeeperSleepと呼ぶモードで、130nmで製造されたモバイルPentium IIIあたりからこのモードが追加された。C4ではCPUに供給される電圧(Vccというパラメータで設定されている)を低下させ、CPUの消費電力をさらに低下させている。
    
    <Cool'n'Quiet>
    AMDのintelの<EIST>に似た機能です。
    

    ブレインストーミングの4原則

    判断・結論を出さない(結論厳禁)
    自由なアイデア抽出を制限するような、判断・結論は慎む。判断・結論は、ブレインストーミングの次の段階にゆずる。ただし可能性を広く抽出するための質問や意見ならば、その場で自由にぶつけ合う。たとえば「予算が足りない」と否定するのはこの段階では正しくないが、「予算が足りないがどう対応するのか」と可能性を広げる発言は歓迎される。
    粗野な考えを歓迎する(自由奔放)
    誰もが思いつきそうなアイデアよりも、奇抜な考え方やユニークで斬新なアイデアを重視する。新規性のある発明はたいてい最初は笑いものにされる事が多く、そういった提案こそを重視すること。
    量を重視する(質より量)
    様々な角度から、多くのアイデアを出す。一般的な考え方・アイデアはもちろん、一般的でなく新規性のある考え方・アイデアまであらゆる提案を歓迎する。
    アイディアを結合し発展させる(結合改善)
    別々のアイデアをくっつけたり一部を変化させたりすることで、新たなアイデアを生み出していく。他人の意見に便乗することが推奨される。

    Windows 7/Vistaのエクスプローラにおける自動フォルダ・タイプ設定を無効にする

    Windows7のフォルダ表示が異様に遅い…

    表示するカラムを更新時刻にすれば、速く表示される

    PLCラダー小学校

    mhddfsを導入

    扱うデータ量が多くなってくると、HDD1台で1つのパーテションになっている場合、データが分散して管理がとてもめんどくさい。そこで、従来まではパーテションを連結して1つに見せかける事の出来るLVM2を使用していた。LVM2に関してはうんざりするほど情報があるので詳細を割愛。
    HDDの増設や取り外しにも対応しているLVM2の残念な面倒な点は、1つのパーテションとして管理するいわゆるストライピングの拡張したようなファイルシステムであるため、耐故障性が無い上に、いちいちfsckをしないとHDDの取り外しが出来なかったりという辺りにある。
    そこで、実在するパーテションを擬似的に1つのパーテションに見せかけるmhddfsへ移行する事にした次第だったりする。mhddfsはそのものがファイルシステムではないため、元のパーテションに対しての直接のアクセスが可能であり、またHDDの追加や取り外しも容易である。HDDの故障があったとしても、その単体の範囲で被害を食い止める事が出来るので被害は最小限におさえる事が出来る。

    幸いにもDebianではmhddfsがパッケージ化されているのでインストールはとってもお手軽。
    #aptitude install mhddfs
    にてインストールは完了する。

    使い方はとても簡単。
    あらかじめ、HDDをマウントした状態で、そのマウントポイントを指定するような感じ。
    (実際にはまとめたいディレクトリを指定するので、マウントする必要があるんだけども)
    /mnt/disk01
    /mnt/disk02
    /mnt/disk03
    にマウントされているHDDをまとめたい場合は
    #mhddfs /mnt/disk01/,/mnt/disk02/,/mnt/disk03/ /data
    の様にすれば良い。当然ながら指定するのはディレクトリなので、/mnt/disk01/aaa/を指定する事も可能だ。
    /etc/fstabに記述する場合は
    mhddfs#/mnt/disk01/,/mnt/disk02/,/mnt/disk03/ /data fuse defaults,allow_other 0 0
    の様にすれば良い。
    実際のアクセス動作としては、先頭の方のディレクトリ(/mnt/disk01/)から順に書いていき、容量がいっぱいになると次のディレクトリ(/mnt/disk02/)に書く様な感じだ。ファイルが途中でとぎれる事は無い様になっているので、若干の容量を余しながら書いていく事になるが、空き容量内に収まるファイルの書き込みであればその隙間に埋まる様になっている。
    mhddfsの動作として、先頭の方のディレクトリから順に検索をするのだが、ディレクトリのタイムスタンプについては一番最初に見つかったタイムスタンプのみ保持するので、複数のHDDにまたがって存在するディレクトリに対しては、実際に最終の更新のタイムスタンプではないのでこの辺には注意をば。ソース見た感じではそういう箇所はなかった感。fuseの仕様なんかな。

    CentOSで文字コードをUTF-8からEUC-JPにする

    CentOS-4では、システムの文字コードにUTF-8を使っているために、色々と 問題が起こります。ktermやviで文字化けが起こります。
    システムの文字コードをEUC-JPにする必要があります。
    1. /etc/sysconfig/i18nファイルのLANGをEUC-JPに変更する。

      # vi /etc/sysconfig/i18n

      LANG="ja_JP.EUC-JP"

    2. manで開くテキストビュアープログラムを変更するために、/etc/man.configの PAGERをmoreに変更します。
      # vi /etc/man.config

      (中略)

      PAGER /usr/more

    3. GNOMEのデスクトップ環境を使っている場合、~/.dmrcのLanguageをeucJPに変更する。
      # vi ~/.dmrc

      Language=ja_JP.eucJP

    4. 再起動する。

    CentOS5.5初期設定

    (1)rootでのログイン&ログアウト
     
    centos login: root ← ログインユーザ名としてrootと入力 
    Password:  ← rootのパスワード応答(表示はされない) 
     
    [root@centos ~]#  ← rootでログインした状態 
     
    [root@centos ~]# exit ← ログアウト 
     
    centos login: ← ログアウトした状態 
    

    (2)一般ユーザの作成&削除(例として一般ユーザ名をcentosとする)
     
    [root@centos ~]# useradd centos ← 一般ユーザcentosの作成 
     
    [root@centos ~]# passwd centos ← centosのパスワード設定 
    Changing password for user centos.
    New UNIX password:  ← centosのパスワード応答 
    Retype new UNIX password:  ← centosのパスワード応答(確認) 
    passwd: all authentication tokens updated successfully.
     
    [root@centos ~]# userdel -r centos ← 一般ユーザcentosの削除 
    

    (3)一般ユーザからrootになる
     
    [centos@centos ~]$  ← centosという名前の一般ユーザでログインしている状態 
     
    [centos@centos ~]$ su - ← suコマンドでrootになる(-を忘れずに) 
    Password:  ← rootのパスワード応答 
     
    [root@centos ~]#  ← rootになった 
     
    [root@centos ~]# exit ← rootから一般ユーザに戻る 
     
    [centos@centos ~]$  ← centosに戻った 
    
    ※rootは制限なくなんでも出来てしまい、誤操作により重要なファイルを削除してしまったりすることがあるため、基本は一般ユーザでログインし、root権限が必要な操作を行う場合のみ、suコマンドでrootになるようにする。

    (4)rootになれるユーザを管理者のみにする
    例として、管理者用の一般ユーザ名をcentosとする
     
    [root@centos ~]# usermod -G wheel centos ← 管理者ユーザをwheelグループに追加 
     
    [root@centos ~]# vi /etc/pam.d/su
    #auth       required     pam_wheel.so use_uid
    ↓
    auth       required     pam_wheel.so use_uid ← コメント解除 
     
    管理者用一般ユーザからはrootになれて、管理者以外の一般ユーザからはrootになれないことを確認 
    
    ※viエディタについては、vi操作手引書を参照

    (5)パッケージ管理システム設定
    RPMパッケージのインストール・アンインストールを行うyumの初期設定を行う
     
    [root@centos ~]# /etc/rc.d/init.d/yum-updatesd stop ← yum-updatesd停止 
    yum-updates を停止中:                                      [  OK  ]
    ※以下に示す理由によりyum-updatesdを停止しておく 
    ・デフォルトで1時間ごとにアップデートチェックを行うようになっており、手動によるパッケージインストールと競合すると
    インストールが失敗する 
    ・大量にメモリを消費する(約10MB以上使用) 
     
    [root@centos ~]# yum -y remove yum-updatesd ← yum-updatesd削除 
     
    [root@centos ~]# yum -y install yum-fastestmirror ← fastestmirrorプラグインインストール 
    ※インストールパッケージダウンロード時の最適ミラーサイトを自動選択するようにする 
     
    [root@centos ~]# yum -y update ← インストール済パッケージの一括アップデート 
    ※大量のパッケージのダウンロード/アップデートを行うため時間がかかる 
     
    [root@centos ~]# yum -y install yum-cron ← yum-cronインストール 
     
    [root@centos ~]# /etc/rc.d/init.d/yum-cron start ← パッケージ自動更新起動 
    夜間 yum 更新の有効化中:                                   [  OK  ]
     
    [root@centos ~]# chkconfig yum-cron on ← パッケージ自動更新自動起動設定 
    

    (6)root宛メールを転送する
    システムからroot宛に重要なメールが送られてくるので、root宛メールを普段使用しているメールアドレス宛に転送するようにする
     
    メールサーバーのOP25B対策(sendmail編)実施 
     
    [root@centos ~]# sed -i '/^root:/d' /etc/aliases ← 旧root宛メール転送設定削除 
     
    [root@centos ~]# echo "root: hoge@nifty.com" >> /etc/aliases
     ← root宛メールを普段使用しているメールアドレス(例:hoge@nifty.com)宛に転送する 
     
    [root@centos ~]# newaliases ← 転送設定反映 
     
    [root@centos ~]# echo test|mail root ← テストメールをroot宛に送信する 
     
    テストメールが転送先メールアドレス宛に届いていることを確認する 
    

    (7)SELinuxの無効化
     
    [root@centos ~]# getenforce ← SELinux状態確認 
    Enforcing ← SELinux有効 
     
    [root@centos ~]# setenforce 0 ← SELinux無効化 
     
    [root@centos ~]# getenforce ← SELinux状態確認 
    Permissive ← SELinux無効 
     
    [root@centos ~]# vi /etc/sysconfig/selinux ← SELinux設定ファイル編集 
    SELINUX=enforcing
    ↓
    SELINUX=disabled ← システム起動時にSELinuxを無効化 
    

    (8)ファイアウォール停止※必要な場合のみ
    ルーターでブロックするためファイアウォールが不要な場合はファイアウォールを停止する
     
    [root@centos ~]# /etc/rc.d/init.d/iptables stop ← ファイアウォール停止 
     
    [root@centos ~]# chkconfig iptables off ← ファイアウォール自動起動解除 
    

    (9)システムの停止&再起動
     
    [root@centos ~]# halt ← システム停止する場合 
     
    [root@centos ~]# reboot ← システム再起動する場合 
    
    ※その他のLinuxコマンドについては、Linuxコマンド集を参照

    Maximus II Formula の Speeding HDD

    Marvell 88SE6121 controller 上にSilicon Image Sil5723 が勝手にミラーかストライプをしてくれるモノらしい。 設定はBIOSから、SpeedingHDDで、ミラーかストライプかシングルの3種類のいずれかを選択のみで設定完了。 あとは、MarvellとSpeedingHDDの2種類のドライバを入れればOS上から見えるようになる。

    mhddfs や mdadm や samba や lvm のメモ

    ◆ インストール
    yum install postgre*
    
    ◆ 初期設定
    リモート接続を行うため、postgresql.confとpg_hba.confを修正します。
    vi /var/lib/pgsql/data/postgresql.conf
    listen_addresses = ’192.168.xxx.xxx’
    
    vi /var/lib/pgsql/data/pg_hba.conf
    host all all 192.168.0.0/16 password
    
    サービスを起動します。
    service postgresql initdb
    service postgresql start
    chkconfig postgresql on
    
    メンテナンスはWindowsマシンから黒猫SQLStudioで行います。
    
    
    fsck -t ext3 /share -- -yttvfc
    
    http://ftp.riken.jp/Linux/fedora/releases/9/Fedora/x86_64/os/
    http://ftp.riken.jp/Linux/fedora/releases/9/Fedora/i386/os/
    
    
    /usr/bin/ssh-keygen -b 1024 -t rsa1 -f /etc/ssh/ssh_host_key -N ''
    sed -i '1s/^/HostKey \/etc\/ssh\/ssh_host_key\n/g' /etc/ssh/sshd_config
    sed -i '/Protocol 2/d' /etc/ssh/sshd_config
    /etc/init.d/ssh restart
    sed -i 's/false/true/g' /etc/default/sysstat
    
    apt-get update;apt-get install smartmontools lvm2 kbd mdadm samba sysstat console-data lv console-common make build-essential bin86 kernel-package gcc libqt3-headers libqt3-mt-dev gawk libreadline5 libreadline5-dev libncurses5 libncurses5-dev sysv-rc-conf
    
    sed -i '1s/^/ja_JP.EUC-JP EUC-JP\n/g' /var/lib/locales/supported.d/local
    locale-gen
    locale -a
    sed -i '$s/$/\nexport LANG="ja_JP.EUC-JP"/g' .bashrc
    sed -i '$s/$/\nexport PAGER="lv"/g' .bashrc
    
    mdadm -C /dev/md0 -l0 -n2 -f /dev/sda2 /dev/sdb2
    mdadm -C /dev/md1 -l0 -n2 -f /dev/sdc1 /dev/sdd1
    
    pvcreate /dev/md1 /dev/md2 /dev/md3
    vgcreate VG00 /dev/md1 /dev/md2 /dev/md3
    PESIZE=`vgdisplay | grep "Free" | awk '{print $5}'`;echo ${PESIZE}
    lvcreate -l ${PESIZE} -n LV00 VG00
    mkfs.ext3 /dev/VG00/LV00
    tune2fs -m0 -c0 -i0 /dev/VG00/LV00
    mount /dev/VG00/LV00 /share
    chmod -R 777 /share ; chown -R なまえ /share
    
    
    mount /dev/VG00/LV00 /share ;  chmod 777 /share ; chown なまえ /share ; /etc/init.d/samba restart
    
    
    smbpasswd -a なまえ
    
    	dos charset = CP932
    	unix charset = EUCJP-MS
    	display charset = LOCALE
    
    [share]
    	comment = share
    	path = /share
    	browseable = yes
    	writable = yes
    #	create mask = 0700
    #	directory mask = 0700
    
    mkdir /share
    chmod 777 /share ; chown なまえ /share
    mount /dev/VG00/LV00 /share
    chmod 777 /share ; chown なまえ /share
    /etc/init.d/samba restart
    
    mdadm --misc --stop /dev/md0
    mdadm --misc --stop /dev/md1
    mdadm --misc --stop /dev/md2
    mdadm --misc --stop /dev/md3
    
    mdadm --misc --zero-superblock /dev/sda1
    mdadm --misc --zero-superblock /dev/sdb1
    mdadm --misc --zero-superblock /dev/sdc1
    mdadm --misc --zero-superblock /dev/sdd1
    mdadm --misc --zero-superblock /dev/sde1
    mdadm --misc --zero-superblock /dev/sdf1
    mdadm --misc --zero-superblock /dev/sdg1
    mdadm --misc --zero-superblock /dev/sdh1
    mdadm --misc --zero-superblock /dev/sdk1
    mdadm --misc --zero-superblock /dev/sdl1
    
    for i in a b c d e f g h i j k l ; do
    hdparm -t /dev/sd${i}
    done
    
    for i in a b c d e f g h i j k l  ; do
    smartctl -s on -o on -S on /dev/sd${i} 1> /dev/null
    done
    for i in a b c d e f g h i j k l  ; do
    echo -e
    echo -n "[ "`echo ${i} | tr [:lower:] [:upper:]`" ] : "
    fdisk -l /dev/sd${i} | grep GB
    smartctl -a /dev/sd${i} | grep -i -e Current -e Reallocated -e Seek_Error
    done
    
    for i in a b c d e f g h i ; do
    echo -e
    echo -n "[ "`echo ${i} | tr [:lower:] [:upper:]`" ] : "
    fdisk -l /dev/sd${i} | grep GB
    done
    
    mdadm -C /dev/md1 -l0 -n2 -f /dev/sda1 /dev/sdd1
    mdadm -C /dev/md2 -l0 -n2 -f /dev/sdb1 /dev/sdg1
    mdadm -C /dev/md3 -l0 -n2 -f /dev/sdc1 /dev/sdh1
    
    mdadm -C /dev/md1 -l0 -n3 -f /dev/sda1 /dev/sdc1 /dev/sdg1
    mdadm -C /dev/md2 -l0 -n3 -f /dev/sdb1 /dev/sdd1 /dev/sdh1
    
    hdparm -t /dev/md1 ; hdparm -t /dev/md2 ; hdparm -t /dev/md3
    mkfs.ext3 /dev/md1 ; mkfs.ext3 /dev/md2 ; mkfs.ext3 /dev/md3
    tune2fs -m1 -c0 -i0 /dev/md0
    tune2fs -m1 -c0 -i0 /dev/md1
    tune2fs -m1 -c0 -i0 /dev/md2
    tune2fs -m1 -c0 -i0 /dev/md3
    
    while :;do cat /proc/mdstat ;w;sleep 15;clear;done
    ◆◆◆
    mdadm -C /dev/md0 -l0 -n6 -f /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1
    mdadm -C /dev/md0 -l5 -n9 -f /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1
    mkfs.ext3 /dev/md0 ; tune2fs -m1 -c0 -i0 /dev/md0
    mount /dev/md0 /share ; chmod 777 /share ; chown なまえ /share ; /etc/init.d/samba restart
    ◆◆◆
    root@PenDC:~# smartctl -a /dev/sde | grep -i -e On_Hours -e Temperature -e Current -e Reallocated -e Seek_Error
      5 Reallocated_Sector_Ct   0x0033   230   229   063    Pre-fail  Always       -       241
      7 Seek_Error_Rate         0x000a   253   252   000    Old_age   Always       -       0
    194 Temperature_Celsius     0x0032   253   253   000    Old_age   Always       -       28
    196 Reallocated_Event_Count 0x0008   253   253   000    Old_age   Offline      -       0
    197 Current_Pending_Sector  0x0008   253   253   000    Old_age   Offline      -       0
    207 Spin_High_Current       0x002a   253   252   000    Old_age   Always       -       0
     SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    root@PenDC:~# smartctl -a /dev/sdf | grep -i -e On_Hours -e Temperature -e Current -e Reallocated -e Seek_Error
      5 Reallocated_Sector_Ct   0x0033   252   252   063    Pre-fail  Always       -       18
      7 Seek_Error_Rate         0x000a   253   252   000    Old_age   Always       -       0
    194 Temperature_Celsius     0x0032   253   253   000    Old_age   Always       -       28
    196 Reallocated_Event_Count 0x0008   252   252   000    Old_age   Offline      -       1
    197 Current_Pending_Sector  0x0008   253   253   000    Old_age   Offline      -       0
    207 Spin_High_Current       0x002a   253   252   000    Old_age   Always       -       0
     SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    root@PenDC:~# smartctl -a /dev/sdg | grep -i -e On_Hours -e Temperature -e Current -e Reallocated -e Seek_Error
      5 Reallocated_Sector_Ct   0x0033   217   217   063    Pre-fail  Always       -       370
      7 Seek_Error_Rate         0x000a   253   252   000    Old_age   Always       -       0
    194 Temperature_Celsius     0x0032   253   253   000    Old_age   Always       -       28
    196 Reallocated_Event_Count 0x0008   253   253   000    Old_age   Offline      -       0
    197 Current_Pending_Sector  0x0008   253   253   000    Old_age   Offline      -       0
    207 Spin_High_Current       0x002a   250   246   000    Old_age   Always       -       3
     SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    root@PenDC:~# smartctl -a /dev/sdh | grep -i -e On_Hours -e Temperature -e Current -e Reallocated -e Seek_Error
      5 Reallocated_Sector_Ct   0x0033   185   185   140    Pre-fail  Always       -       237
      7 Seek_Error_Rate         0x000b   196   189   051    Pre-fail  Always       -       271
      9 Power_On_Hours          0x0032   095   095   000    Old_age   Always       -       4023
    194 Temperature_Celsius     0x0022   118   097   000    Old_age   Always       -       32
    196 Reallocated_Event_Count 0x0032   092   092   000    Old_age   Always       -       108
    197 Current_Pending_Sector  0x0012   200   178   000    Old_age   Always       -       0
     SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    root@PenDC:~#
    
    perl -MCPAN -e 'CPAN::Shell->install("Net::Telnet")'
    perl -MCPAN -e shell
    Jcode.pm モジュール
    cpan> install Jcode
    DB_File モジュール
    cpan> install DB_File
    DBI モジュール
    cpan> install DBI
    DBD::mysql モジュール
    cpan> install DBD::mysql
    
    /dev/sda:
     Timing buffered disk reads:   82 MB in  3.00 seconds =  27.33 MB/sec
    
    /dev/sdb:
     Timing buffered disk reads:   84 MB in  3.06 seconds =  27.49 MB/sec
    
    /dev/sdc:
     Timing buffered disk reads:   86 MB in  3.00 seconds =  28.63 MB/sec
    
    /dev/sdd:
     Timing buffered disk reads:   86 MB in  3.01 seconds =  28.61 MB/sec
    
    /dev/sde:
     Timing buffered disk reads:  174 MB in  3.01 seconds =  57.84 MB/sec
    
    /dev/sdf:
     Timing buffered disk reads:  154 MB in  3.03 seconds =  50.78 MB/sec
    
    /dev/sdg:
     Timing buffered disk reads:  130 MB in  3.02 seconds =  43.09 MB/sec
    
    /dev/sdh:
     Timing buffered disk reads:  130 MB in  3.01 seconds =  43.17 MB/sec
    
    Host: scsi0 Channel: 00 Id: 00 Lun: 00
      Vendor: ATA      Model: ST340015A        Rev: 3.01
      Type:   Direct-Access                    ANSI  SCSI revision: 05 a
    
    Host: scsi0 Channel: 00 Id: 01 Lun: 00
      Vendor: ATA      Model: ST360020A        Rev: 3.31
      Type:   Direct-Access                    ANSI  SCSI revision: 05 b
    
    Host: scsi1 Channel: 00 Id: 00 Lun: 00
      Vendor: ATA      Model: ST340810A        Rev: 3.39
      Type:   Direct-Access                    ANSI  SCSI revision: 05 c
    
    Host: scsi1 Channel: 00 Id: 01 Lun: 00
      Vendor: ATA      Model: ST360020A        Rev: 3.34
      Type:   Direct-Access                    ANSI  SCSI revision: 05 d 
    
    Host: scsi2 Channel: 00 Id: 01 Lun: 00
      Vendor: ATA      Model: Maxtor 7Y250P0   Rev: YAR4
      Type:   Direct-Access                    ANSI  SCSI revision: 05
    
    Host: scsi3 Channel: 00 Id: 01 Lun: 00
      Vendor: ATA      Model: Maxtor 7Y250P0   Rev: YAR4
      Type:   Direct-Access                    ANSI  SCSI revision: 05
    
    Host: scsi6 Channel: 00 Id: 00 Lun: 00
      Vendor: ATA      Model: ST340015A        Rev: 3.01
      Type:   Direct-Access                    ANSI  SCSI revision: 05 g
    
    Host: scsi6 Channel: 00 Id: 01 Lun: 00
      Vendor: ATA      Model: ST340810A        Rev: 3.39
      Type:   Direct-Access                    ANSI  SCSI revision: 05 h
    
    USB Memory
    
    Rectangle   Text Ellipse  BitBlt    Read   Write   RRead  RWrite  Drive
            0      0       0       0   16786   12263   17685    2566  N:\2MB
    
    Rectangle   Text Ellipse  BitBlt    Read   Write   RRead  RWrite  Drive
            0      0       0       0   12263     386    7262     266  N:\2MB
    
    
    
    hdparm -t /dev/sda ; hdparm -t /dev/sdg ; hdparm -t /dev/md1
    
    mdadm -C /dev/md0 -l0 -n4 -f /dev/sda1 /dev/sdc1 /dev/sde1 /dev/sdg1
    mdadm -C /dev/md1 -l0 -n4 -f /dev/sdb1 /dev/sdd1 /dev/sdf1 /dev/sdh1
    mkfs.ext3 /dev/md0 ; tune2fs -m1 -c0 -i0 /dev/md0
    mkfs.ext3 /dev/md1 ; tune2fs -m1 -c0 -i0 /dev/md1
    mount /dev/md0 /share ; chmod 777 /share ; chown なまえ /share ; /etc/init.d/samba restart
    
    既存LVMなボリュームに新しくHDDを追加!!
    VG00 と LV00 がありそこに/dev/sde1を加える。
    
    /etc/init.d/samba stop
    umount /share
    pvcreate /dev/sde1
    vgextend VG00 /dev/sde1
    PESIZE=`vgdisplay | grep "Total PE" | awk '{print $3}'`;echo ${PESIZE}
    lvextend -l +${PESIZE} /dev/VG00/LV00
    e2fsck -f /dev/VG00/LV00
    resize2fs /dev/VG00/LV00
    mount /dev/VG00/LV00 /share
    /etc/init.d/samba start
    
    dd if=/dev/scd0 of=/share/001.iso
    dd if=/dev/scd1 of=/share/002.iso
    dd if=/dev/hde  of=/share/003.iso
    dd if=/dev/hdf  of=/share/004.iso
    
    
    mhddfs /mnt/sda1,/mnt/sdb1,/mnt/sdc1,/mnt/sdd1,/mnt/sde1,/mnt/sdf1,/mnt/sdg1,/mnt/sdh1,/mnt/sdk1,/mnt/sdl1 /share -o allow_other,mlimit=1g
    
    
    UUID=61dad97b-5c31-441a-8628-5f9dde10eceb /               ext4    errors=remount-ro 0       1
    UUID=aa1de8d0-30d2-4d77-a00a-75791ed5bea7       /mnt/sda1       ext4    defaults        0       0
    UUID=796a49cf-5412-4404-85a5-3c064361eee5       /mnt/sdb1       ext4    defaults        0       0
    UUID=8f5041cf-455e-4f2a-b8e0-4c2568c02a24       /mnt/sdc1       ext4    defaults        0       0
    UUID=b9f5fd58-c286-42f6-b20b-e4a45db49f5b       /mnt/sdd1       ext4    defaults        0       0
    UUID=b0760235-56b4-46f7-be6a-8d4fac26ffd9       /mnt/sde1       ext4    defaults        0       0
    UUID=ebfb5b77-748e-4974-bef8-50d12dea17a7       /mnt/sdf1       ext4    defaults        0       0
    UUID=23a545be-fb91-46c1-ac6d-16d56af0cb8e       /mnt/sdg1       ext4    defaults        0       0
    UUID=d7241ce5-b2f9-4cd8-a11f-429bd92ddef7       /mnt/sdh1       ext4    defaults        0       0
    UUID=15beea20-ecc4-42f0-be62-aded5d2aab25       /mnt/sdk1       ext4    defaults        0       0
    UUID=cda9d7a3-8ee9-4ce9-8061-2d9f840ecd0b       /mnt/sdl1       ext4    defaults        0       0
    
    mhddfs#/mnt/sda1,/mnt/sdb1,/mnt/sdc1,/mnt/sdd1,/mnt/sde1,/mnt/sdf1,/mnt/sdg1,/mnt/sdh1,/mnt/sdk1,/mnt/sdl1 /share fuse defaults,allow_other 0 0
    
    
    /dev/sda: Timing buffered disk reads:  376 MB in  3.01 seconds = 124.77 MB/sec
    /dev/sdb: Timing buffered disk reads:  372 MB in  3.01 seconds = 123.48 MB/sec
    /dev/sdc: Timing buffered disk reads:  364 MB in  3.00 seconds = 121.24 MB/sec
    /dev/sdd: Timing buffered disk reads:  370 MB in  3.00 seconds = 123.32 MB/sec
    
    /dev/sde: Timing buffered disk reads:  258 MB in  3.01 seconds =  85.73 MB/sec
    /dev/sdf: Timing buffered disk reads:  208 MB in  3.01 seconds =  69.06 MB/sec
    /dev/sdg: Timing buffered disk reads:  208 MB in  3.02 seconds =  68.96 MB/sec
    /dev/sdh: Timing buffered disk reads:  208 MB in  3.01 seconds =  69.12 MB/sec
    
    /dev/sdi: Timing buffered disk reads:  170 MB in  3.02 seconds =  56.30 MB/sec
    /dev/sdj: Timing buffered disk reads:  170 MB in  3.03 seconds =  56.13 MB/sec
    
    /dev/sdk: Timing buffered disk reads:  370 MB in  3.00 seconds = 123.17 MB/sec
    /dev/sdl: Timing buffered disk reads:  364 MB in  3.01 seconds = 121.06 MB/sec
    
    mdadm -C /dev/md1 -l5 -n5 -f /dev/sda1 /dev/sdc1 /dev/sde1 /dev/sdg1 /dev/sdk1
    mdadm -C /dev/md2 -l5 -n5 -f /dev/sdb1 /dev/sdd1 /dev/sdf1 /dev/sdh1 /dev/sdl1
    
    mdadm -C /dev/md1 -l0 -n2 -f /dev/sda1 /dev/sde1
    mdadm -C /dev/md2 -l0 -n2 -f /dev/sdb1 /dev/sdf1
    mdadm -C /dev/md3 -l0 -n2 -f /dev/sdc1 /dev/sdg1
    mdadm -C /dev/md4 -l0 -n2 -f /dev/sdd1 /dev/sdh1
    mdadm -C /dev/md5 -l0 -n2 -f /dev/sdk1 /dev/sdl1
    
    mhddfs /mnt/md1/,/mnt/md2/,/mnt/md3/,/mnt/md4/,/mnt/md5/ /share
    
    UUID=61dad97b-5c31-441a-8628-5f9dde10eceb       /       ext4    errors=remount-ro 0       1
    UUID=910b255e-b4b9-4139-8620-fcca10e597fa       /mnt/md1        ext4    defaults        0       0
    UUID=56db74b9-cc7b-494e-8995-b0f654fecda0       /mnt/md2        ext4    defaults        0       0
    UUID=ba333b34-42e6-4543-a38b-82656fbdad11       /mnt/md3        ext4    defaults        0       0
    UUID=ce5880f0-d747-4359-8266-a8d3e11634d2       /mnt/md4        ext4    defaults        0       0
    UUID=70c9e1a4-5fc5-4486-97a8-aab1aa0c0303       /mnt/md5        ext4    defaults        0       0
    
    Filesystem UUID:          910b255e-b4b9-4139-8620-fcca10e597fa
    root@BE2350:~# dumpe2fs -h /dev/md2 | grep UUID
    dumpe2fs 1.41.9 (22-Aug-2009)
    Filesystem UUID:          56db74b9-cc7b-494e-8995-b0f654fecda0
    root@BE2350:~# dumpe2fs -h /dev/md3 | grep UUID
    dumpe2fs 1.41.9 (22-Aug-2009)
    Filesystem UUID:          ba333b34-42e6-4543-a38b-82656fbdad11
    root@BE2350:~# dumpe2fs -h /dev/md4 | grep UUID
    dumpe2fs 1.41.9 (22-Aug-2009)
    Filesystem UUID:          ce5880f0-d747-4359-8266-a8d3e11634d2
    root@BE2350:~# dumpe2fs -h /dev/md5 | grep UUID
    dumpe2fs 1.41.9 (22-Aug-2009)
    Filesystem UUID:          70c9e1a4-5fc5-4486-97a8-aab1aa0c0303
    
    for i in a b c d e f g h k l  ; do
    mkfs.ext4 /dev/sd${i}1
    done
    
    

    iphone ios4.1 JB

    C# 塗りつぶした四角形と楕円を描画する機能を追加する。

    □ヒント ・パネルにラジオボタンを2つ追加し、図形の種類として「塗りつぶした四角形」と「塗りつぶした楕円」を選択できるようにする。 塗りつぶした四角形を表すFilledRectangleクラスと、塗りつぶした楕円を表すFilledEllipseクラスを作成する。 これらのクラスは、Figureクラスを継承したクラスとする。 FilledRectangleクラスのDrawメソッドではGraphicsクラスのFillRectangleメソッドを使って、塗りつぶした四角形を描画します。 FilledEllipseクラスのDrawメソッドではGraphicsクラスのFillEllipseメソッドを使って、塗りつぶした楕円を描画します。 FillRectangleメソッドとFillEllipseメソッドの1番目の引数には、図形を塗りつぶすブラシ(System.Drawing.Brushクラス)を指定します。
    Brush brush = new SolidBrush(pen.Color);
    で、ペンと同じ色のブラシbrushを作成し、それを描画メソッドの引数に指定するとよい。 線だけでなく塗りつぶしの色も指定することになったので、線の色というボタンのTextプロパティを図形の色に変更しておきます。

    C# 2つの画面をいったりきたり

    namespace WindowsFormsApplication10
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                this.Hide();
                Form2 frm2 = new Form2();
                frm2.ShowDialog(this);
                this.Show();
                frm2.Dispose();
            }
        }
    }
    
    namespace WindowsFormsApplication10
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                this.Close();
            }
        }
    }
    

    C# 入門

    C# Visual Studio によるテーブルアダプタ構成ウィザードを利用したビジュアル開発

    VisualStudio2005以降では、テーブルアダプタ構成ウィザードを利用すると下記の2つのオブジェクトを生成する事が可能。
    ・型付きDataSet
    テーブル名や定義などを事前にDataTableとして定義し、それをコレクションとして取り込んで作成されたDataSetです。(DataSetから継承されています。)
    ・TableAdapter
    SqlDataAdapter,SqlConnection,SqlCommand等をラッピングし、型付きDataSetの中で定義された各DataTableに対して参照・更新処理などを実行する事もできます。

    あらゆるものをPDF・JPEG・PNGなどに変換できる無料PDF作成ソフト「CubePDF」

    CubePDF

    インストールするだけでインクを節約してくれるソフト「inksaver無料版」

    inksaver無料版

    C# DataTable 内のデータの表示

    DataTable の内容には、DataTable の Rows コレクションと Columns コレクションを使用してアクセスできます。また、Select メソッドを使用すると、検索条件、並べ替え順序、行の状態などの基準に基づいて DataTable 内のデータのサブセットを返すことができます。さらに、主キー値を使用して特定の行を検索するときは、DataRowCollection の Find メソッドを使用できます。

    DataTable オブジェクトの Select メソッドは、指定された基準と一致する DataRow オブジェクトのセットを返します。Select は、フィルタ式、並べ替え式、および DataViewRowState のオプション引数を受け取ります。フィルタ式は、DataColumn 値に基づいて返す行を識別する LastName = 'Smith' などの式です。並べ替え式は、列の並べ替えについての標準 SQL 規則に基づく LastName ASC, FirstName ASC などの式です。式の記述の規則については、DataColumn クラスの Expression プロパティのトピックを参照してください。

    ヒント : DataTable の Select メソッドへの呼び出しを多数実行する場合は、最初に DataTable の DataView を作成することにより、パフォーマンスを向上させることができます。DataView を作成すると、テーブルの行にインデックスが付けられます。Select メソッドがこのインデックスを使用すると、クエリ結果を生成するまでの時間が大幅に減少します。DataTable の DataView を作成する方法については、「DataView (ADO.NET)」を参照してください。

    C# ADO.NET 非接続型 データ更新

    using System.Data.SqlClient;
    
    namespace WindowsFormsApplication18
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                // 1.Connectionで接続(と設定)
                SqlConnection con = new SqlConnection();
    
                string str = @"Data Source = localhost ;
                               Initial Catalog = AppDB;
                               User ID = sa;
                               Password = default";
    
                con.ConnectionString = str;
    
                SqlDataAdapter da;
                da = new SqlDataAdapter("select * from member", con);
    
                DataSet ds = new DataSet();
    
                da.Fill(ds, "member");
    
                ds.Tables["member"].Rows[0]["m_name"] = "YAMAZAKI";
    
                SqlCommandBuilder cb = new SqlCommandBuilder();
    
                cb.DataAdapter = da;
    
                da.Update(ds, "member");
    
                for (int i = 0; i < ds.Tables["member"].Rows.Count; i++) // 行で…
                {
                    for (int j = 0; j < ds.Tables["member"].Columns.Count; j++) // 列で…
                    {
                        textBox1.Text += ds.Tables["member"].Rows[i][j] + "\r\n";
                    }
                }
            }
        }
    }
    

    C# ADO.NET 接続型 データ更新

    using System.Data.SqlClient;
    
    namespace WindowsFormsApplication18
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                // 1.Connectionで接続(と設定)
                SqlConnection con = new SqlConnection();
    
                string str = @"Data Source = localhost ;
                               Initial Catalog = AppDB;
                               User ID = sa;
                               Password = default";
    
                con.ConnectionString = str;
    
                // レコードの追加・更新・削除もCommandオブジェクトを使う
                SqlCommand cmd = new SqlCommand();
    
                cmd.Connection = con;
    
                // 2.CommandTextプロパティに更新用のSQL文を設定
                cmd.CommandText = "update member set m_name = @param1 where m_id = '001'";
                cmd.Parameters.Add("@param1", System.Data.SqlDbType.NVarChar);
                cmd.Parameters["@param1"].Value = "Aoki";
    
                // 3.接続→ExecuteNonQueryを実行→切断
                con.Open();
                cmd.ExecuteNonQuery();
                con.Close();
                con.Dispose();            
            }
        }
    }
    

    C# ADO.NET 非接続型

    using System.Data.SqlClient;
    
    namespace WindowsFormsApplication18
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                // 1.Connectionで接続(と設定)
                SqlConnection con = new SqlConnection();
    
                string str = @"Data Source = localhost ;
                               Initial Catalog = AppDB;
                               User ID = sa;
                               Password = default";
    
                con.ConnectionString = str;
    
                // 2.DataAdapterを作成して、データ取得のSQL文を設定
    
                SqlDataAdapter da;
    
                da = new SqlDataAdapter("select m_name from member", con);
    
                // 3.DataSetを作成し、DataAdapterのコマンドを実行して取得したデータをデータセットのデータテーブルに格納
    
                DataSet ds = new DataSet();
    
                da.Fill(ds, "member");
    
                // データグリッドビューに取得したテーブルの内容を表示
                //dataGridView1.DataSource = ds.Tables["member"];
    
                DataTable dt = new DataTable();
    
                dt = ds.Tables["member"];
    
                for (int i = 0; i < dt.Rows.Count; i++) // 行で…
                {
                    for (int j = 0; j < dt.Columns.Count; j++) // 列で…
                    {
                        textBox1.Text += dt.Rows[i][j] + "\r\n";
                    }
                }
            }
        }
    }
    
    ※下記でもOK
                //DataTable dt = new DataTable();
    
                //dt = ds.Tables["member"];
    
                for (int i = 0; i < ds.Tables["member"].Rows.Count; i++) // 行で…
                {
                    for (int j = 0; j < ds.Tables["member"].Columns.Count; j++) // 列で…
                    {
                        textBox1.Text += ds.Tables["member"].Rows[i][j] + "\r\n";
                    }
                }
    

    C# ADO.NET 接続型

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    
    namespace WindowsFormsApplication18
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                // 1.Connectionで接続(と設定)
                SqlConnection con = new SqlConnection();
    
                string str = @"Data Source = localhost ;
                               Initial Catalog = AppDB;
                               User ID = sa;
                               Password = default";
    
                con.ConnectionString = str;
    
                // 2.データを取得するためのCommandを作成
                SqlCommand cmd = new SqlCommand();
    
                cmd.Connection = con;
                cmd.CommandText = "select m_name from member";
    
                SqlDataReader dr;
    
                con.Open();
    
                // 3.Commandを実行して取得したデータをDataReaderに格納
                dr = cmd.ExecuteReader();
    
                // 4.DataReader内のデータを参照する
                while (dr.Read())
                {
                    textBox1.Text += dr.GetValue(0).ToString() + "\r\n";
                }
    
                // 5.データベースへの接続を解除する(解除の時点でDataReader内のデータは破棄される)
                con.Close();
    
                // リソースを解放する
                con.Dispose();
            }
        }
    }
    

    C# DB接続文字列<の例

    ■  DB接続文字列<の例

    いろいろなパターンの接続文字列の例です

    SQLServer(NT認証)の例
     
     
            Dim cn As New SqlClient.SqlConnection  'SQL接続用オブジェクト 
     
            cn.ConnectionString = "Integrated Security=SSPI;" & _
                                  "Persist Security Info=False;" & _
                                  "Initial Catalog=TESTDB;" & _
                                  "Data Source=FUKU;" 
    


    SQLServer(SQL Server認証)の例
     
     
            Dim cn As New SqlClient.SqlConnection  'SQL接続用オブジェクト 
     
            cn.ConnectionString = "Persist Security Info=True;" & _
                                  "database=TESTDB;" & _
                                  "server=SERVER;" & _
                                  "User=USER001;" & _
                                  "Password=pass;"
    


    Oracle(Oracle Provider for OLE DB)の例
     
     
            Dim cn As New OleDb.OleDbConnection  'Oracle接続用オブジェクト 
     
            cn.ConnectionString = "Provider=OraOLEDB.Oracle.1;" & _
                                  "Persist Security Info=True;" & _
                                  "Data Source=TESTDB;" & _
                                  "User ID=USER002;" & _
                                  "Password=pass;"
     
    

    Oracle Provider for OLE DBはオラクルクライント(管理者用)をインストールしなければ使えません。


    Oracle(Microsoft OLE DB Provider for Oracle)の例
     
     
            Dim cn As New OleDb.OleDbConnection  'Oracle接続用オブジェクト 
     
            cn.ConnectionString = ????
     
    

    Microsoft OLE DB Provider for Oracle)を使うと、SELECT文は問題ないですが、INSERT文で文字列の制限エラーとなる場合があります。
    (だからキライです)


    ACCESSの例
     
     
            Dim cn As New System.Data.Odbc.OdbcConnection  'Access接続用オブジェクト 
     
            cn.ConnectionString = "Provider=MSDASQL.1;" & _
                                  "Persist Security Info=False;" & _
                                  "Data Source=MS Access Database;" & _
                                  "DSN=MS Access Database;" & _
                                  "DBQ=\\SERVER\temp\db1.mdb;" & _
                                  "DriverId=25;" & _
                                  "FIL=MS Access;" & _
                                  "MaxBufferSize=2048;PageTimeout=5;"
     
    

    ※AccessのMDBをアクセスには、NetBEUIが必須となります。DBQの指定はドライブ付フルパス指定か上記のような共有名の形式を指定します。
    (だからキライです)


    Excelの例
     
     
            Dim cn As NewSystem.Data.OleDb.OleDbConnection  'Excel接続用オブジェクト 
     
            cn = System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; " & _
                                                   "data source=C:\TEMP\BOOK1.xls; " & _
                                                   "Extended Properties=Excel 8.0;")
    

    ※ExcelBookにパスワードが付いている場合は、このコネクションはできません。
    「解読に失敗しました」となります。

    C# デリゲートとは?

    何かの処理を行う際に、メソッドを直接呼び出すのではなく、間接的なデリゲートと呼ばれる機構を
    経由して呼び出す事ができる。

    C# ジェネリックス

    ・型付コレクションと覚える。コレクションは配列と役目は大して変わらない。
    ArrayList al = new ArrayList();
    al.Add("hoge");
    
    と、やると中身の型が不明なままなので
    List al = new List();
    al.Add("boke");
    
    と、書いてあげるとstring型のListとなり明確。

    C# Visual C# お役立ちサイト

    C# ポリモーフィズムの練習

    ◆ Class1.cs の作成
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace WindowsFormsApplication16
    {
        public abstract class Class1
        {
            public abstract void ShowMessage(string msg);
        }
    
        public class Class2 : Class1
        {
            public override void ShowMessage(string msg)
            {
                System.Windows.Forms.MessageBox.Show("[Class2]が実行されました。", msg);
            }
        }
    
        public class Class3 : Class1
        {
            public override void ShowMessage(string msg)
            {
                System.Windows.Forms.MessageBox.Show("[Class3]が実行されました。", msg);
            }
        }
    }
    
    ◆ Form1.cs の内容
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication16
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private Class1 chgMessage;
    
            private void radioButton1_CheckedChanged(object sender, EventArgs e)
            {
                chgMessage = new Class2();
            }
    
            private void radioButton2_CheckedChanged(object sender, EventArgs e)
            {
                chgMessage = new Class3();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                chgMessage.ShowMessage("実行結果");
            }
        }
    }
    

    C# オーバーライドの練習

    ◆ Class1.cs の作成
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace WindowsFormsApplication15
    {
        public class Class1
        {
            private string strName;
            private DateTime datBirthday;
    
            public virtual string Name
            {
                get
                {
                    return strName;
                }
                set
                {
                    strName = value;
                }
            }
    
            public virtual DateTime Birthday
            {
                get
                {
                    return datBirthday;
                }
                set
                {
                    datBirthday = value;
                }
            }
    
            public virtual int GetAge()
            {
                return (int)(DateTime.Today.Subtract(Birthday).Days / 365.25);
            }
        }
    }
    
    ◆ Class2.cs の作成
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace WindowsFormsApplication15
    {
        public class Class2 : Class1
        {
            public override string Name
            {
                get
                {
                    return base.Name;
                }
                set
                {
                    if (value.Length == 0)
                    {
                        System.Windows.Forms.MessageBox.Show("名前を入力してください。", "確認");
                        base.Name = "名無し";
                    }
                    else
                    {
                        base.Name = value;
                    }
                }
            }
    
            public override DateTime Birthday
            {
                get
                {
                    return base.Birthday;
                }
                set
                {
                    if (value > DateTime.Today)
                    {
                        System.Windows.Forms.MessageBox.Show("今日以前の日付を選択してください。", "確認");
                        base.Birthday = DateTime.Today;
                    }
                    else
                    {
                        base.Birthday = value;
                    }
                }
            }
    
            public override int GetAge()
            {
                System.Windows.Forms.MessageBox.Show("GetAgeメソッドを実行します。", "確認");
                return base.GetAge();
            }
        }
    }
    
    ◆ Form1.cs の内容
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication15
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Class1 person = new Class1();
    
                person.Name = textBox1.Text;
                person.Birthday = dateTimePicker1.Value.Date;
    
                MessageBox.Show(person.Name + "さんの年齢は、" +
                                Convert.ToString(person.GetAge()) + "才です。");
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                Class2 person = new Class2();
    
                person.Name = textBox1.Text;
                person.Birthday = dateTimePicker1.Value.Date;
    
                MessageBox.Show(person.Name + "さんの年齢は、" +
                                Convert.ToString(person.GetAge()) + "才です。");
            }
        }
    }
    

    C# クラスの作成・継承の練習

    ◆ Class1.cs の作成
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace WindowsFormsApplication14
    {
        public class Class1
        {
            // フィールド(メンバ変数)の宣言
            private string strName;
            private DateTime datBirthday;
    
            // コンストラクタ作成
            public Class1(string cst_name, DateTime cst_birthday)
            {
                Name = cst_name;
                Birthday = cst_birthday;
            }
    
            // プロパティの設定
            public string Name
            {
                get
                {
                    return strName;
                }
                set
                {
                    if (value.Length == 0)
                    {
                        System.Windows.Forms.MessageBox.Show("名前を入力してください。", "警告");
                        value = "名無し";
                    }
                    else
                    {
                        strName = value;
                    }
                }
            }
            public DateTime Birthday
            {
                get
                {
                    return datBirthday;
                }
                set
                {
                    if (value > DateTime.Today)
                    {
                        System.Windows.Forms.MessageBox.Show("今日以前の日付を選択してください。", "警告");
                        datBirthday = DateTime.Today;
                    }
                    else
                    {
                        datBirthday = value;
                    }
                }
            }
    
            // メソッドの作成
            public int GetAge()
            {
                return (int)(DateTime.Today.Subtract(Birthday).Days / 365.25);
            }
        }
    }
    
    ◆ Class2.cs の作成
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace WindowsFormsApplication14
    {
        public class Class2 : Class1
        {
            private string strAddress;
    
            public Class2(string cst_name, DateTime cst_birthday, string cst_address)
                : base(cst_name, cst_birthday)
            {
                Address = cst_address;
            }
    
            public string Address
            {
                get
                {
                    return strAddress;
                }
                set
                {
                    strAddress = value;
                }
            }
        }
    }
    
    ◆ Form1.cs の内容
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication14
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                //Class1 person = new Class1();
    
                //person.Name = textBox1.Text;
    
                //person.Birthday = dateTimePicker1.Value.Date;
    
                //DateTime dt = new DateTime();
                //dt = dateTimePicker1.Value;
                //person.Birthday = dt.Date;
    
                // コンストラクタを使用してクラスのインスタンス化を1行で書く!!
                //Class1 person = new Class1(textBox1.Text, dateTimePicker1.Value.Date);
                Class2 person = new Class2(textBox1.Text, dateTimePicker1.Value.Date, textBox2.Text);
    
                MessageBox.Show(person.Name + "さんの年齢は、" +
                                Convert.ToString(person.GetAge()) + "才です。\r\n" +
                                "住所は" + person.Address + "です。","結果");
            }
        }
    }
    

    C# 変数

    変数宣言はクラス内ならどこでもOK!
    宣言場所により有効範囲(スコープ)が違ってくる。
    原則として{}内だけで有効。宣言前にはもちろん使用できない。
    ・クラス内、メソッド外で宣言したものはフィールド(メンバ変数)という。
    ・メソッド内(イベントハンドラ内)で宣言したものはローカル変数という。
    

    C# DateTime , TimeSpan

    DateTime + TimeSpan → DateTime
    DateTime - TimeSpan → DateTime
    DateTime - DateTime → TimeSpan
    

    C# サンプルソース

    ,

    電気回路

    HandBrakeで字幕つきDVD/動画ムービーもiPod/iPhone/iPadへ一発変換

    , 魚拓

    C# DataSet Tips

    C# 9.データセットにテーブルを作成(追加)と、行の挿入

      public Form1()
       {
           InitializeComponent();
       }
    
       DataSet ds = new DataSet();
       DataTable dt;
       DataRow dr;
    
       private void Form1_Load(object sender, EventArgs e)
       {
    
           dt = ds.Tables.Add("恐竜");
           dt.Columns.Add("ID", Type.GetType("System.Int32"));
           dt.Columns.Add("名前", Type.GetType("System.String"));
    
           dr = dt.NewRow();
           dr["ID"] = 1;
           dr["名前"] = "ティラノサウルス";
           dt.Rows.Add(dr);
    
           object[,] ColData =new object[,] { {2, "プラキオサウルス"},{3, "xxxxx"},{4,"yyyyyy"} };
           dt.Rows.Add(ColData[0,0],ColData[0,1]);
           dt.Rows.Add(ColData[1, 0], ColData[1, 1]);
           dt.Rows.Add(ColData[2, 0], ColData[2, 1]);
    
           this.listBox1.Items.Clear();
           string rowData;
           int i;
           foreach (DataRow dr2 in dt.Rows)
           {
               rowData = "";
               for (i = 0; i < dt.Columns.Count; i++)
               {
                   rowData = rowData + dr2[i] + "\t";
               }
               this.listBox1.Items.Add(rowData);
           }
       }
    
       private void button1_Click(object sender, EventArgs e)
       {
           dr = dt.NewRow();
           dr[0] = 3;
           dr[1] = "ティラティラ";
           dt.Rows.Add(dr);
           this.listBox1.Items.Clear();
           string rowData;
           int i;
           foreach (DataRow dr2 in dt.Rows)
           {
               rowData = "";
               for (i = 0; i < dt.Columns.Count; i++)
               {
                   rowData = rowData + dr2[i] + "\t";
               }
               this.listBox1.Items.Add(rowData);
           }
       }
    

    Visual Studio クイックヒント

    クイック ヒントは、コード内の識別子の宣言全体を表示します。
    マウス ポインタを識別子に合わせるだけで、その識別子のクイック ヒントが黄色のポップアップ ボックスに表示されます。
    クイック ヒントは、次のように手動で呼び出すこともできます。
    [編集] メニューの [IntelliSense] をクリックし、[クイック ヒント] をクリックします。
    ショートカット キー (Ctrl + K、Ctrl + I) を使用します。
    [テキスト エディタ] ツール バーの [クイック ヒント] ボタンをクリックします。
    関数がオーバーロードされている場合、IntelliSense では一部のオーバーロード形式の情報が表示されないことがあります。
    クイック ヒントにメンバ定義上のコード コメントが含まれることがあります。詳細については、「XML コード コメントの追加」を参照してください。

    努力する人は希望を語り、怠ける人は不満を語る。

     さて、この一年を振り返ると、みなそれぞれに目標を持って臨んだ一年であったと思うが、
    うまくできたところもあれば、そうでないところもあったと思う。私は、うまく行く、行かな
    いは、気持ちの持ち方の問題だと思う。
    
     「敦煌」や「風林火山」などを書いた有名な小説家である井上靖さんの言葉に「努力する人
    は希望を語り、怠ける人は不満を語る。」というのがある。これは実に言い得て妙。世の中の
    すべてを現している。「〜がないからできない」「〜は〜のせいだ」「〜などむちゃだ」何か
    につけて愚痴や不満ばかり言う人がいる。もちろん、不満は誰にでもあるし、いくらでも言え
    る。しかし、不満や文句ばかり言い続けて成功した人はいない。努力不足による力不足を正当
    化するために、他人を責めるのが不満であり愚痴の大部分。不満ばかり言ってモチベーション
    が上がるはずがない。モチベーションが上がらなければ努力はできない。そこから更に不満が
    出る。不満は自分のためにもよくないし、周囲にもいい感じを与えない。
    
     逆に希望を語る人はどうだろう。希望を語る場合はたいていの場合、それに近づこうと努力
    をしている。希望がやる気を、やる気が努力を引き出すのである。そして、努力しているとき
    は意外と不満は言わない。これが不満ばかりを言う人との違い。また、周囲の受ける好感度も
    ぜんぜん違う。ぐだぐだ文句ばかり言って好かれる人はいない。不満は言ってもさっと切り上
    げ、前向きになれる人は好かれ、尊敬される。言い換えると「希望を語る人は努力をし、人に
    も好かれる、不満を語る人は怠け、人にも好かれない。」と言えるのではないか。さて君たち
    はどうか?不満ばかり言ってはいないか?最近愚痴が多いなと思ったら、危険信号。
    

    C# 8.データセットのデータの変更をデータベースに反映させる。

          // データセットの宣言
          DataSet ds = new DataSet();
    
          // データテーブルの宣言
          DataTable dt = new DataTable();
    
          // データアダプタの宣言
          SqlDataAdapter da = new SqlDataAdapter();
    
          // コネクションの宣言と接続文字列の設定(SQLサーバの構成マネージャでTCP/IPを使用するに設定しておく)
          SqlConnection con = new SqlConnection();
          string cs = string.Empty;
          cs += "Data Source=PC名;Initial Catalog=AppDB;";
          cs += "User ID=sa;Password=xxxxxxxx;";
          con.ConnectionString = cs;
    
          // データベースから取得したデータセットのデータの更新をデータベースに反映させるオブジェクトの宣言(コマンドビルダの生成)
          SqlCommandBuilder cb = new SqlCommandBuilder();
    
          // コマンドの宣言と、接続とselect文の格納
          SqlCommand cmd = new SqlCommand();
          cmd.Connection = con;
          cmd.CommandText = "select * from member";
    
          // データアダプタにselect文を格納
          da.SelectCommand = cmd;
    
          // デターベースからデータセットに取得し、コマンドビルダのデータアダプタに自動生成する対象を格納
          da.Fill(ds, "t_member");
          cb.DataAdapter = da;
    
          // データセットのテーブルデータを更新し、データベースに反映させる
          dt = ds.Tables["t_member"];
          dt.Rows[0]["m_name"] = "aoKi";
          da.Update(dt);
    
          MessageBox.Show("更新しました", "通知");
    

    Windows Home Serverに後からAHCIドライバを入れる

    最初からAHCIモードでWHSをインストールすると途中でブルーバックでエラーになりインストールできません。
    F6でフロッピーディスクからドライバを入れてもいいんだけどFDを用意するのが面倒くさい。
    1. AHCIドライバーをダウンロード
     IntelのHPからIntel Matrix Storage Managerをダウンロードします。
     Intel Matrix Storage Manager
    
    2. ダウンロードしたファイルを実行する
     ファイルをダブルクリックして実行すると、インストールに失敗するはずです。
    このときダイアログが出てくると思うのですが、閉じずに無視しておいてください。
    ここで閉じちゃうと必要なファイルが取り出せなくなってしまいます^^;
    
    3. AHCIドライバーをこっそりとってくる
     さて、先ほどのダイアログが出たままエクスプローラーから下記フォルダを開いてください。
    
    C:\WINDOWS\Temp\IIF2\Winall
     ここに必要なドライバーファイルが展開されていますので、その中にある「Driver」
    フォルダをごっそりデスクトップあたりにコピーします。コピーしたら先ほどのダイアログは消しちゃってOKです。
    
    4. デバイスマネージャーからドライバーをインストールする
     ここがちょっと面倒くさいというか僕も躓きそうになったところなんですが、P5Q
    Deluxeのやり方で説明します。まずデバイスマネージャーを開いて「IDE/ATA/ATAPIコントローラ」という項目を探します。
     その中にある、下記ふたつの項目に対してドライバーをあてていきます。
    Intel(R) ICH10 2 port Serial ATA Storage Controoler
    Intel(R) ICH10 4 port Serial ATA Storage Controoler
     とりあえずどちらかを右クリックして、「ドライバの更新」をクリックしてください。
    すると「ハードウェアの追加ウィザード」が出てくるので「いいえ、今回は接続しません」
    →「一覧または特定の場所からインストールする」→「検索しないで、インストールするドライバを選択する」
    を選んでいきます。で、先ほどデスクトップに保存した「Driver」フォルダを選択し、一覧の中から下記を選択しましょう。
    Intel (R) ICH10R SATA AHCI Controller
     成功したらもう一方にも同様にしてドライバーをあてていきます。
     ここまで無事に済んだら、BIOSのSATAの動作モードを変更するために再起動しましょう。
    さぁ、これで設定は完了しましたのでワクワクしながらOSを起動してみてください。無事起動すれば、成功です!!^^v
    

    C# Visual Studio 2008 C# からPostgreSQL(CentOSの)サーバへ接続する!

    PgOleDb-1.0.0.20
    上記ファイルを、WindowsのSystemフォルダへ入れて、"regsvr32 PGOLEDB.DLL"を実行する。
    using System.Data.OleDb;
    
    ...
    
    string strConntionString =
        "Provider=PostgreSQL;"+
        "Data Source=localhost;"+
        "location=db1;"+
        "Password=******;"+
        "User Id=******";
    
    // Create Database Connection.
    OleDbConnection oldDBConnection = new OleDbConnection( strConntionString );
    
    try
    {
    oldDBConnection.Open();
    }
    catch(Exception ex)
    {
    Console.WriteLine(ex.Message.ToString());
    }
    finally
    {
    oldDBConnection.Close();
    }
    

    C# create databaseなど

    // --- データベースの作成
    create database db00 on(
    name = 'db00_data',
    filename = 'c:\db00_data.mdf',
    size = 10,
    filegrowth = 10%
    ) log on (
    name = 'db00_log',
    filename = 'c:\db00_log.ldf',
    size = 2,
    filegrowth = 10%
    ) collate Japanese_CI_AS
    GO
    
    // --- 各テーブルの作成
    create table T商品マスタ(
    商品番号 char(13) primary key,
    商品名 varchar(40),
    商品単価 money
    )
    
    create table T担当者マスタ(
    入力担当者NO tinyint primary key,
    入力担当者名 varchar(20)
    )
    
    create table T得意先マスタ(
    得意先ID char(3) primary key,
    得意先名 varchar(40)
    )
    
    create table T受注データ(
    受注番号 smallint primary key,
    受注年月日 datetime,
    得意先ID char(3) references T得意先マスタ(得意先ID),
    入力担当者NO tinyint references T担当者マスタ(入力担当者NO)
    )
    
    create table T受注明細(
    受注番号 smallint references T受注データ(受注番号),
    商品番号 char(13) references T商品マスタ(商品番号),
    注文数量 smallint check (注文数量 > 0),
    primary key(受注番号 , 商品番号)
    )
    
    create table Tシリアル番号(
    種類 varchar(10),
    番号 int
    )
    insert into Tシリアル番号 values('受注番号',1)
    

    C# msdnのページで絵付きで分かり易い解説

    データベース

    C# SQL ServerとIPアドレスでSqlConnectionする

    SQLサーバはインストールされた標準のそのままの状態では、TCP/IP接続を受け付けないようになっている。
    よってい、VisualStudio2008C#からはPC名かlocalhostとData Sourceを指定するしかなかった。
    SQLサーバの設定を変えてあげれば、他のPCからもIPアドレス指定でつながるようになる。
    [スタート] → [Microsoft SQL Server 2005] → [構成ツール] → [SQL Server Configuration Manager] → [ネットワークの構成] → TCP/IPを"はい"に変更。
    こうすることで、C#から、Data Source=192.168.0.5とかでつながるようになる。

    C# DataGridViewを極める

    01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19

    SQL Server と PostgreSQL のテーブル作成

    SQL server編
    --テーブルの作成
    CREATE TABLE Course(
    c_id NCHAR(1) PRIMARY KEY,
    c_name NVARCHAR(50)
    )
    GO
    
    CREATE TABLE Member(
    m_id NCHAR(3) PRIMARY KEY,
    m_name NVARCHAR(50),
    age INT,
    c_id NCHAR(1) REFERENCES Course(c_id),
    enrollment BIT DEFAULT(0) --0は在籍、1は退所
    )
    GO
    
    CREATE TABLE AppLog(
    a_id INT PRIMARY KEY IDENTITY(1,1),
    m_id NCHAR(3) REFERENCES Member(m_id),
    [time] DATETIME DEFAULT(GETDATE())
    )
    GO
    
    -------------------------------------------
    PostgreSQL編
    --テーブルの作成
    CREATE TABLE Course(
    c_id CHAR(1) PRIMARY KEY,
    c_name VARCHAR(50)
    );
    
    CREATE TABLE Member(
    m_id CHAR(3) PRIMARY KEY,
    m_name VARCHAR(50),
    age INT,
    c_id CHAR(1) REFERENCES Course(c_id),
    enrollment BIT
    );
    
    create sequence applog_seq
      increment 1  -- 増加量
      minvalue 1   -- 最小値
      maxvalue 65536   -- 最大値
      start 1      -- 開始の値
      cache 5      -- 計算結果 5 つをメモリに保持しておく(アクセス高速)
      cycle;       -- 最大値に到達したら最小値に戻る
    
    CREATE TABLE AppLog(
    a_id INT PRIMARY KEY default nextval('applog_seq'),
    m_id CHAR(3) REFERENCES Member(m_id),
    time timestamp DEFAULT "timestamp"('now'::text) not null
    );
    
    -------------------------
    シンプルなシーケンスの使用例を示します。
    create sequence fruits_seq; -- シーケンス作成
    
    create table fruits (       -- フルーツテーブル
      id integer default nextval('fruits_seq'),  -- シーケンス使用
      name varchar(10)
    );
    
    insert into fruits (name) values ('apple');  -- nameだけを設定
    insert into fruits (name) values ('banana');
    insert into fruits (name) values ('orange');
    
    select * from fruits;  -- idが連番になった
    --  id |  name
    -- ----+--------
    --   1 | apple
    --   2 | banana
    --   3 | orange
    

    PostgreSQL のシーケンス

    連番を生成するための機能だそうです。
    シーケンス操作関数を試してみる
    4 つのシーケンス操作関数 nextval、setval、currval、lastval を試してみます。
    create sequence test_seq;   -- シーケンス作成
    
    select nextval('test_seq');  -- => 1
    select nextval('test_seq');  -- => 2
    select nextval('test_seq');  -- => 3
    
    select currval('test_seq');  -- => 3 -- 現在値
    
    select setval('test_seq', 10); -- 現在値を更新
    
    select currval('test_seq');  -- => 10
    select nextval('test_seq');  -- => 11
    
    create sequence test_seq2;   -- もう一つ追加
    select nextval('test_seq2'); -- => 1
    
    select lastval();            -- => 1 (タグによらず最新の値)
    
    select nextval('test_seq');  -- => 12
    
    select lastval();            -- => 12
    カラムのデフォルト値として使う
    シンプルなシーケンスの使用例を示します。
    create sequence fruits_seq; -- シーケンス作成
    
    create table fruits (       -- フルーツテーブル
      id integer default nextval('fruits_seq'),  -- シーケンス使用
      name varchar(10)
    );
    
    insert into fruits (name) values ('apple');  -- nameだけを設定
    insert into fruits (name) values ('banana');
    insert into fruits (name) values ('orange');
    
    select * from fruits;  -- idが連番になった
    --  id |  name
    -- ----+--------
    --   1 | apple
    --   2 | banana
    --   3 | orange
    次に、少し複雑な例です。
    create sequence fruits_seq
      increment 3  -- 増加量
      minvalue 3   -- 最小値
      maxvalue 9   -- 最大値
      start 4      -- 開始の値
      cache 5      -- 計算結果 5 つをメモリに保持しておく(アクセス高速)
      cycle;       -- 最大値に到達したら最小値に戻る
    
    create table fruits (
      id integer default nextval('fruits_seq'),
      name varchar(10)
    );
    
    insert into fruits (name) values ('apple');
    insert into fruits (name) values ('banana');
    insert into fruits (name) values ('orange');
    insert into fruits (name) values ('grape');
    
    select * from fruits;
    --  id |  name
    -- ----+--------
    --   4 | apple
    --   7 | banana
    --   3 | orange
    --   6 | grape
    

    PostgreSQL初期設定

    PostgresqlをLocalhost以外からアクセスさせるには、以下設定を行う。
    
    1. どのインターフェースでサービスを行うかを決める
    
    /var/lib/pgsql/data/postgresql.confで以下の行を見つけて、
    
    #listen_addresses = ‘localhost’
    このようにする。
    
    listen_addresses = ‘*’
    これによって、その機械に割り振られているすべてのIPアドレス/インターフェースでのアクセスを受けつける。
    もちろん、制限したければそのように書く。
    
    listen_addresses = ‘localhost, 192.168.0.10′
    2. どのネットワークにサービスを提供するかを決める
    
    このアクセス制御は/var/lib/pgsql/data/pg_hba.confで行なわれている。
    こんな書式で書く。左からアクセス方法、DB、ユーザ、許可IP、認証方法。
    
    host all all 192.168.1.0/24 trust
    この書き方だと「外からの暗号化されていないアクセスで、すべてのDB、すべてのユーザのときに192.168.1.0/24のネットワークだったら無条件に信頼してアクセスさせちゃう」となる。
    ユーザ認証をしたければ、MD5なりを指定する。
    
    -------------------------
    
    外部からの接続は、
    $ psql -Upostgres -h192.168.1.111 -p5432 AppDB
    

    Fedora13でeuc-jp

    覚え書き
    
    ■ Fedora13で日本語コードを「UTF-8」→「eucJP」に
       変更する方法。
    
     viエディタで /etc/sysconfig/i18n ファイルを
       下記のように編集する。
    
       (変更前) LANG="ja_JP.UTF-8"
          ↓
       (変更後) LANG="ja_JP.eucJP"
    
     マシンを再起動する。
    
    ログイン後、GNOME-PANELが非表示になってしまう現象が発生する。
    (Windowsでいうと、タスクバーが消えてしまう。)
    
    ■ GNOME-PANEL(タスクバー)を再表示する方法。
    
     端末を起動する。
       /usr/binフォルダにある gnome-term を起動する。
    
     端末で killall gnome-panel と入力する。
       →GNOME-PANELが出現する。
    
       ついでに端末で locale と入力して、
       文字コードが「eucJP」に変更されていることも
       確認しておく。
    

    C# 7.データセットから指定行のレコードを取得する

        SqlConnection con = new SqlConnection(@"Data Source=PC名;Initial Catalog=AppDB;User ID=sa;Password=xxxxxxxx");
        SqlDataAdapter da = new SqlDataAdapter("select * from member", con);
        DataSet ds = new DataSet();
        da.Fill(ds, "t_member");
        DataTable dt = ds.Tables["t_member"];
    
        // テーブルから3行目のレコードを取得し、1列目と2列目を返す
        DataRow dr = dt.Rows[2]; // "= ds.Tables["t_member"].Rows[2];" でも別に良い。
        MessageBox.Show(dr[0] + "\t" + dr[1], "通知");
    
        // フィールド名で指定して取得
        MessageBox.Show(dr["m_name"] + "\t" + dr["age"], "通知");
    

    C# 6.データセットのテーブルのフィールドの型名を取得する

        SqlConnection con = new SqlConnection(@"Data Source=PC名;Initial Catalog=AppDB;User ID=sa;Password=xxxxxxxx");
        SqlDataAdapter da = new SqlDataAdapter("select * from member", con);
        DataSet ds = new DataSet();
        da.Fill(ds, "t_member");
        DataTable dt = ds.Tables["t_member"];
    
        // データセットのテーブルのフィールドの型名を取得
        this.listBox1.Items.Clear();
        foreach (DataColumn dc in dt.Columns)
        {
            this.listBox1.Items.Add(dc.DataType.ToString());
        }
    

    C# 5.データセットのレコードをフィールドの値で並び替える

        SqlConnection con = new SqlConnection(@"Data Source=I7920-3;Initial Catalog=AppDB;User ID=sa;Password=default");
        SqlDataAdapter da = new SqlDataAdapter("select * from member", con);
        DataSet ds = new DataSet();
        da.Fill(ds, "t_member");
        DataTable dt = ds.Tables["t_member"];
    
        // データベースからデータセットに取得し、取得したレコードを並び替えて表示
        this.listBox1.Items.Clear();
        DataView dv = new DataView(ds.Tables["t_member"], "", "age ASC", DataViewRowState.CurrentRows);
    
        for (int i = 0; i < dv.Count; i++)
        {
            this.listBox1.Items.Add(dv[i][1] + "\t" + dv[i][2]); // 2列目の名前と、3列目の年齢を表示
        }
    

    C# 4.データセットから条件に合致するデータを取得

        SqlConnection con = new SqlConnection(@"Data Source=PC名;Initial Catalog=AppDB;User ID=sa;Password=xxxxxxxx");
        SqlDataAdapter da = new SqlDataAdapter("select * from member", con);
        DataSet ds = new DataSet();
        da.Fill(ds, "t_member");
        DataTable dt = ds.Tables["t_member"];
    
        // データベースからデータセットに取得し、条件を満たすレコードを抽出して表示
        this.listBox1.Items.Clear();
        DataView dv = new DataView(ds.Tables["t_member"], "c_id = 'M'", "", DataViewRowState.CurrentRows);
    
        string rowData;
        for (int i = 0; i < dv.Count; i++)
        {
            rowData = "";
            for (int j = 0; j < dv.Table.Columns.Count; j++)
            {
                rowData += dv[i][j] + "\t";
            }
            this.listBox1.Items.Add(rowData);
        }
    

    C# 3.データセット内のフィールド数とレコード数を取得する

        SqlConnection con = new SqlConnection(@"Data Source=PC名;Initial Catalog=AppDB;User ID=sa;Password=xxxxxxxx");
        SqlDataAdapter da = new SqlDataAdapter("select * from member", con);
        DataSet ds = new DataSet();
    
        //データセットに取得し、テーブルのフィード数を表示する
        da.Fill(ds, "t_member");
        int fNum = ds.Tables["t_member"].Columns.Count;
        int rNum = ds.Tables["t_member"].Rows.Count;
        MessageBox.Show("フィールド数:" + fNum.ToString() + "レコード数:" + rNum.ToString(), "通知");
    

    C# 2.データセットのデータを参照する

        SqlDataAdapter da;
        DataSet ds = new DataSet();
        SqlConnection con = new SqlConnection(@"Data Source=PC名;Initial Catalog=AppDB;User ID=sa;Password=xxxxxxxx");
        DataTable dt;
    
        // データベースからDataSetに取得し、DataTableオブジェクトに取得後に出力
        this.listBox1.Items.Clear(); // リストボックスをクリアしておく
        da = new SqlDataAdapter("select * from member", con);
        da.Fill(ds, "t_member");
        dt = ds.Tables["t_member"];
    
        string rowData;
        foreach (DataRow dw in dt.Rows) // 全てのレコードを順に参照
        {
    	rowData = ""; // レコードデータをクリア
            for (int i = 0; i < dt.Columns.Count; i++) // 全てのフィールドを参照
            {
                rowData += dw[i] + "\t"; // フィールドデータを取得
            }
            this.listBox1.Items.Add(rowData); // リストボックスに追加
        }
    

    C# 1.データセットにデータベースのデータを取得する

        // 変数csに接続情報を格納しておく。
        string cs = string.Empty;
        cs += "Data Source=PC名;Initial Catalog=AppDB;";
        cs += "User ID=sa;Password=xxxxxxxx;";
    
        SqlDataAdapter da;
        DataSet ds = new DataSet();
        SqlConnection con = new SqlConnection(cs);
    
        // データベーステーブルのデータをデータセット取得する
        da = new SqlDataAdapter("select * from member", con);
        da.Fill(ds, "member");
        MessageBox.Show("データセットに取得しました", "通知");
    

    C# ADO.NETでDBとやりとり2

    using System.Data.SqlClient;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                string cs = string.Empty;
                cs += "Data Source=PC名;Initial Catalog=AppDB;";
                cs += "User ID=sa;Password=xxxxxxxx;";
                SqlConnection con = new SqlConnection(cs);
                SqlDataAdapter da = new SqlDataAdapter("select * from member", con);
                DataSet ds = new DataSet();
    
                da.Fill(ds, "member");
                DataTable dt = new DataTable();
                dt = ds.Tables["member"];
    
                int r = dt.Rows.Count;
                int c = dt.Columns.Count;
    
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        label1.Text += dt.Rows[i][j];
                        label1.Text += "\t";
                    }
                    label1.Text += "\r\n";
                }
                // DataRow
                DataView dv = new DataView();
                dw.Table = dt;
                dw.RowFilter = "c_id='M'";
                dw.Sort = "age DESC";
    
                for (int i = 0; i < dw.Count; i++)
                {
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        label1.Text += dw[i][j];
                        label1.Text += "\t";
                    }
                    label1.Text += "\r\n";
                }
            }
        }
    }
    

    C# ADO.NETでDBとやりとり

    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                SqlConnection con = new SqlConnection(@"Data Source=PC名;Initial Catalog=AppDB;User ID=sa;Password=xxxxxxxx");
                SqlDataAdapter da = new SqlDataAdapter("select * from member", con);
                DataSet ds = new DataSet();
    
                da.Fill(ds, "member");
                DataTable dt = new DataTable();
                dt = ds.Tables["member"];
    
                //dataGridView1.DataSource = ds.Tables["member"];
    
                int r = dt.Rows.Count;
                int c = dt.Columns.Count;
    
                //MessageBox.Show(r + "\r\n" + c);
    
                //label1.Text = dt.Rows[2]["m_name"].ToString();
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        label1.Text += dt.Rows[i][j];
                        label1.Text += "\t";
                    }
                    label1.Text += "\r\n";
                }
                // DataRow
                DataView dv = new DataView();
                dv.Table = dt;
                dv.RowFilter = "c_id='M'";
                dv.Sort = "age DESC";
    
                for (int i = 0; i < dv.Count; i++)
                {
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        label1.Text += dv[i][j];
                        label1.Text += "\t";
                    }
                    label1.Text += "\r\n";
                }
            }
        }
    }
    

    C# + DB 連携開発PCセットアアップ

    まず下記の3点を用意。
    SQLEXPR_JPN ← SQL Server 2005 Express 体験版
    SQLServer2005_SSMSEE ← Management Studio 2005 体験版
    Visual Studio 2008 Express C# ← 体験版
    VisualStudioはSQLServer無しでインストール。

    textやjpgを簡単pdf化

    Jpg2pdfex015 , txt2pdf014

    ubuntuでctrlとcapsを入れ替え

    下記を作成して再度ログイン
    [hidekaz@Ubuntu ~]$ vi ~/.Xmodmap
    keycode 37 = Caps_Lock
    keycode 66 = Control_L
    clear Lock
    clear Control
    add Lock = Caps_Lock
    add Control = Control_L
    

    C# 簡単な構造体

    public struct Customer
     {
      public int Number;
      public string Name;
      public int Age;
    
      public void showCustomerInfo()
       {
        MessageBox.Show(Number + "\r\n" + Name + "\r\n" + Age);
       }
     }
    private void button1_Click(object sender, EventArgs e)
     {
      Customer cs = new Customer();
      cs.Number = 1;
      cs.Name = "hoge";
      cs.Age = 25;
      cs.showCustomerInfo();
     }
    

    C# 課題

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            int[,] tensu = new int[,] { { 65, 50 }, { 45, 80 }, { 90, 70 } };
            string[] namae = new string[] { "田中", "高橋", "鈴木" };
            string[] kamoku = new string[] { "国語", "算数" };
    
            public void keisan(int xx, int yy)
            {
                textBox5.Text += namae[xx] + "さんの" + kamoku[yy] + "の点数は、" + tensu[xx, yy].ToString() + "点です。\r\n";
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    keisan(int.Parse(textBox1.Text), int.Parse(textBox2.Text));
                }
                catch (Exception)
                {
                    MessageBox.Show("番号を入力してください。", "エラー",MessageBoxButtons.OK,MessageBoxIcon.Error);
                    textBox1.Clear();
                    textBox2.Clear();
                }
            }
    
            private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
            {
                char ch = e.KeyChar;
                if (ch < '0' || ch > '2')
                {
                    e.Handled = true;
                }
            }
    
            private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
            {
                char ch = e.KeyChar;
                if (ch < '0' || ch > '1')
                {
                    e.Handled = true;
                }
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                try
                {
                    keisan(Array.IndexOf(namae, textBox3.Text), Array.IndexOf(kamoku, textBox4.Text));
                }
                catch (Exception)
                {
                    MessageBox.Show("存在しない名前・科目です。", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    textBox3.Clear();
                    textBox4.Clear();
                }
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                foreach (RadioButton selectButton1 in this.groupBox1.Controls)
                {
                    if (selectButton1.Checked)
                    {
                        int x = Array.IndexOf(namae, selectButton1.Text);
                        foreach (RadioButton selectButton2 in this.groupBox2.Controls)
                        {
                            if (selectButton2.Checked)
                            {
                                keisan(x, Array.IndexOf(kamoku, selectButton2.Text));
                                break;
                            }
                        }
                        break;
                    }
                }
            }
    
            private void button4_Click(object sender, EventArgs e)
            {
                // 名前別平均点
                for (int i = 0; i < tensu.GetLength(0); i++) //名前ループで3回
                {
                    int goukei = 0;
                    for (int j = 0; j < tensu.GetLength(1); j++) //科目ループで2回
                    {
                        goukei += tensu[i, j];
                    }
                    textBox5.Text += namae[i] + "さんの平均点は、" + (float) goukei / tensu.GetLength(1) + "点です。\r\n";
                }
            }
    
            private void button5_Click(object sender, EventArgs e)
            {
                // 科目別平均点
                for (int i = 0; i < tensu.GetLength(1); i++) //科目ループで2回
                {
                    int goukei = 0;
                    for (int j = 0; j < tensu.GetLength(0); j++) //名前ループで3回
                    {
                        goukei += tensu[j, i];
                    }
                    textBox5.Text += kamoku[i] + "の平均点は、" + (float) goukei / tensu.GetLength(0) + "点です。\r\n";
                }
            }
        }
    }
    

    C#.s Garden

    C#Note

    JavaScript 用語集

    オブジェクト

    すなわち「物」です。
    JavaScriptでは、クラスオブジェクトとインスタンスオブジェクトがあり、単にオブジェクトと言った場合、インスタンスを指すことが多いです。

    プロパティ

    すなわち「特徴」です。
    JavaScriptでは、変数のことです。

    メソッド

    すなわち「動作」です。
    JavaScriptでは、関数のことです。

    コンストラクタ

    すなわち「構築子」です。
    JavaScriptでは、クラスと同じ名前になります。

    インスタンス

    すなわち「実例」です。
    JavaScriptでは、インスタンスオブジェクトのことです。まぁ、普通、オブジェクトというとこれのことです。

    クラス

    コンストラクタ、メソッド、プロパティを一括りにまとめたパッケージのことです。逆に云うとインスタンスされていないオブジェクトです。

    C# 用語集

    アクセス修飾子

    型または型のメンバへのアクセスを制限するキーワード (privateprotectedinternalpublic など)。詳細については、「アクセス修飾子 (C# プログラミング ガイド)」を参照してください。

    アクセス可能なメンバ

    特定の型からアクセスできるメンバ。ある型でアクセス可能なメンバが、他の型からもアクセスできるとは限りません。詳細については、「アクセス修飾子 (C# プログラミング ガイド)」および「フレンド アセンブリ (C# プログラミング ガイド)」を参照してください。

    アクセサ

    プロパティに関連付けられているプライベート データ メンバの値を設定または取得するメソッド。読み書き可能なプロパティには、get アクセサと set アクセサがあります。読み取り専用であるプロパティのアクセサは、get だけです。詳細については、「プロパティ」を参照してください。

    匿名メソッド

    匿名メソッドは、デリゲートにパラメータとして渡されるコード ブロックです。詳細については、「匿名メソッド (C# プログラミング ガイド)」を参照してください。

    基本クラス

    他のクラス (派生クラス) に継承されるクラス。詳細については、「継承 (C# プログラミング ガイド)」を参照してください。

    呼び出し履歴

    実行時における、プログラムを開始してから現在実行されているステートメントまでの一連のメソッド呼び出しの履歴。

    クラス

    オブジェクトを記述するデータ型。クラスは、データと、データを操作するメソッドの両方を含みます。詳細については、「クラス」を参照してください。

    コンストラクタ

    クラスまた構造体の特殊なメソッド。同じ型のオブジェクトを初期化します。詳細については、「コンストラクタ (C# プログラミング ガイド)」を参照してください。

    デリゲート

    デリゲートは、メソッドを参照する型です。デリゲートにメソッドを代入すると、デリゲートはそのメソッドとまったく同じように動作します。詳細については、「デリゲート (C# プログラミング ガイド)」を参照してください。

    派生クラス

    継承を使用して、他のクラス (基本クラス) の動作とデータを取得、追加、または変更するクラス。詳細については、「継承 (C# プログラミング ガイド)」を参照してください。

    デストラクタ

    クラスまたは構造体の特殊なメソッド。システムによってインスタンスを破棄できるようにします。詳細については、「デストラクタ (C# プログラミング ガイド)」を参照してください。

    イベント

    クラスまたは構造体のメンバ。変更通知を送信します。詳細については、「イベント (C# プログラミング ガイド)」を参照してください。

    フィールド

    直接アクセスできるクラスまたは構造体のデータ メンバ。

    ジェネリック

    ジェネリックでは、型パラメータで定義されているクラスまたはメソッドを定義できます。クライアント コードで型をインスタンス化するときは、特定の型を引数として指定します。詳細については、「ジェネリック (C# プログラ??ング ガイド)」を参照してください。

    IDE

    統合開発環境 (Integrated Development Environment) の略語。コンパイラ、デバッガ、コード エディタ、デザイナなどの各種開発ツールの統合ユーザー インターフェイスを提供するアプリケーションです。

    変更不可の型

    インスタンスの作成後、インスタンス データ (フィールドとプロパティ) を変更できない型。ほとんどの値型は、変更不可の型です。

    アクセス不可のメンバ

    特定の型でアクセスできないメンバ。ある型ではアクセス不可のメンバが、他の型からもアクセスできないとは限りません。詳細については、「アクセス修飾子 (C# プログラミング ガイド)」を参照してください。

    継承

    C# では継承がサポートされているので、別のクラス (基本クラス) から派生したクラスは、基本クラスと同じメソッドとプロパティを継承します。継承は、基本クラスと派生クラスに関係します。詳細については、「継承 (C# プログラミング ガイド)」を参照してください。

    インターフェイス

    パブリック メソッド、イベント、およびデリゲートのシグネチャのみを含む型。インターフェイスを継承するオブジェクトは、インターフェイスで定義されているメソッドとイベントをすべて実装する必要があります。クラスや構造体は、任意の数のインターフェイスを継承できます。詳細については、「インターフェイス (C# プログラミング ガイド)」を参照してください。

    反復子

    反復子は、コレクションまたは配列を含むクラスのコンシューマが、foreach、in (C# リファレンス) を使用してそのコレクションや配列を反復処理できるようにするメソッドです。

    メンバ

    クラスまたは構造体で宣言されているフィールド、プロパティ、メソッド、またはイベント。

    メソッド

    クラスまたは構造体の動作を示す名前付きコード ブロック。

    変更可能な型

    インスタンスの作成後、インスタンス データ (フィールドおよびプロパティ) を変更できる型。ほとんどの参照型は、変更可能な型です。

    入れ子にされた型

    別の型の宣言の中で宣言されている型。

    オブジェクト

    クラスのインスタンス。オブジェクトはメモリ内に存在し、データとデータを操作するメソッドを含みます。詳細については、「オブジェクト、クラス、および構造体 (C# プログラミング ガイド)」を参照してください。

    プロパティ

    アクセサによってアクセスされるデータ メンバ。詳細については、「プロパティ」を参照してください。

    リファクタリング

    以前に入力したコードを再利用すること。Visual C# Express コード エディタでは、強調表示したコード ブロックをメソッドに変換する場合など、コードの書式をインテリジェントに再設定できます。詳細については、「リファクタリング」を参照してください。

    参照型

    データ型の 1 つ。参照型として宣言された変数は、データ格納先の位置を指します。詳細については、「参照型 (C# リファレンス)」を参照してください。

    静的

    静的として宣言されたクラスやメソッドは、new キーワードを使用してあらかじめインスタンス化しなくても存在します。Main() は静的メソッドです。詳細については、「静的クラスと静的クラス メンバ (C# プログラミング ガイド)」を参照してください。

    構造体

    通常、一定の論理的な関係を持つ少数の変数を格納するために使用する複合データ型。構造体は、メソッドやイベントを格納することもできます。構造体は、継承はサポートしませんが、インターフェイスはサポートします。構造体は値型ですが、クラス参照型です。詳細については、「構造体 (C# プログラミング ガイド)」を参照してください。

    値型

    値型は、ヒープに割り当てられる参照型とは違って、スタックに割り当てられるデータ型です。組み込み型は、数値型、構造体型、および null 許容型を含め、すべて値型です。クラス型と文字列型は参照型です。詳細については、「値型 (C# リファレンス)」を参照してください。

    MZK-NAS関連itunes

    Web管理画面から、itunesServerを有効にします。
    メディアフォルダオを設定。ファイルサーバで設定した共有フォルダ配下にitunesとか作るとファイル転送が楽。
    あとは、作成して設定したフォルダにaacやmp3ファイルを直に置けるしさらにフォルダ(階層)があっても大丈夫。
    ファイルを転送してからDBアップデートがNAS側で行われるので少し待つとクライアントPC側のiTunesに表示されます。
    【mt-baap】なるアプリがiTunesサーバ
    オンライン・マニュアル

    C# 構造体について

    C# objectのメッソド名一覧が知りたい場合

    クラス ライブラリ リファレンス

    Windows Home Server : Seagateの恐さとWHSの素晴らしさ

    初めてのC# 〜 覚え書き 〜

    C# コード集

    C# と VB.NET の入門サイト

    アルゴリズム入門 : 第 1 章 Visual C# による文字列処理入門

    〜 アルゴリズム入門 〜

    DVDディスク→ISO化ソフト

    Free DVD ISO Maker

    C# コマンドプロンプトに簡単に表示するプログラム

    using System;
    
    class SampleProgram1                      // SampleProgram1クラスの宣言
    {
        static string title = "My First Program";   // titleフィールドの宣言
    
        static void Main()                    // Mainメソッドの宣言
        {
            int a, b, ans;
            string s;
            int c;
    
            s = Console.ReadLine();
            a = Int32.Parse(s);
            s = Console.ReadLine();
            b = Int32.Parse(s);
    
            ans = SampleProgram1.GetAverage(a, b);
    
            Console.WriteLine(ans);
            Console.WriteLine(SampleProgram1.title);
            System.Threading.Thread.Sleep(5000);
        }
    
        static int GetAverage(int x, int y)    // GetAverageメソッドの宣言
        {
            int average;
    
            average = (x + y) / 2;
    
            return average;
        }
    }
    

    C# インスタンスメンバとスタティックメンバ

    ・インスタンスメンバとは?
     ベースクラスライブラリに用意されている「Button」クラスは、ボタンの設計図です。使用する場合には、その設計図に従ってインスタンスを作成し、
    インスタンスの方を使用します。ボタン上の文字を設定する場合には、そのボタンのインスタンスのTextプロパティを使用します。ボタンにフォーカス
    を移動する場合には、そのボタンのインスタンスのFocusメソッドを使います。TextプロパティやFocusメソッドはインスタンスのメンバなので、「インス
    タンスメンバ」と呼ばれます。

    ●インスタンスの生成1
     1.変数の宣言 → クラス名 変数;
                 ̄ ̄ ̄ ̄ ̄ ̄ ̄
     2.インスタンスの生成 → 変数 = new クラス名();
                     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ●インスタンスの生成2
     宣言と生成をセットで → クラス名 変数 = new クラス名();

    例) Button button1;
      button1 = new Button();
     ※インスタンスの生成とは、メモリ上にオブジェクトを保存するための領域を確保する事です。インスタンスを生成しただけではボンタはフォームに
     表示されません。さらに、別のコードの記述が必要です。

    ・スタティックメンバとは?
     インスタンスメンバは、インスタンスを作成しないと利用できません。Textプロパティを設定する、フォーカスを移動する、などの処理は、実態に対し
    てしか実行できないからです。それに対して、インスタンスを生成しなくても、クラスに対して直接利用できるメンバがあります。これを、「スタティッ
    クメンバ」と呼びます。スタティックメンバはクラスに直属したメンバと考えられます。

     MessageBox.Show("C#の世界へようこそ!");
      ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

    C# 簡単なストップウォッチ

            DateTime startTime;
    
            private void button1_Click(object sender, EventArgs e)
            {
                startTime = DateTime.Now;
                timer1.Enabled = true;
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                timer1.Enabled = false;
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                timer1.Enabled = false;
                label1.Text = "00:00:00";
            }
    
            private void timer1_Tick(object sender, EventArgs e)
            {
                TimeSpan t = DateTime.Now - startTime;
                label1.Text = String.Format("{0:00}:{1:00}:{2:00}", t.Minutes, t.Seconds, t.Milliseconds);
            }
    

    C# テキストボックス(textBox)の内容をクリア

    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                //string Myoji, Namae;
                //int Nenrei;
    
                //Myoji = textBox1.Text;
                //Namae = textBox2.Text;
                //Nenrei = int.Parse(textBox3.Text);
    
                //textBox4.Text = "私の名前は、" + Myoji + Namae + "です。\r\n年齢は、" + Nenrei.ToString() + "才です。";
    
                //foreach(Control ctrl in this.Controls)
                //{
                //    textBox4.Text += (ctrl.Text)+"\r\n";
                //}
    
                foreach (Control ctrl in this.Controls)
                {
                    if (ctrl is Label)
                    {
                        ctrl.Text = "";
                    }
                }
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                textBox1.ResetText();
                textBox2.ResetText();
                textBox3.ResetText();
            }
            private void Form1_Load(object sender, EventArgs e)
            {
                label4.Text = DateTime.Now + "に起動されました。";
            }
    
            private void Form1_Click(object sender, EventArgs e)
            {
                label4.Text = DateTime.Now + "に起動されました。";
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                button1.Visible = !(button1.Visible);
            }
    
            private void button3_MouseEnter(object sender, EventArgs e)
            {
                button3.ForeColor = Color.Red;
                button3.BackColor = Color.White;
            }
    
            private void button3_MouseLeave(object sender, EventArgs e)
            {
                button3.ForeColor = Color.Black;
                button3.BackColor = Color.Empty;
            }
        }
    }
    

    イチからはじめる。SQLリファレンス

    TCP/IPネットワーク

    FireFoxを+アドオンを使えば、GoogleBooksをダウンロードできる

    ファイル名を指定して実行 まとめ

    「ファイル名を指定して実行」のコマンド一覧

    「ファイル名を指定して実行」で覚えておきたい20個
    Fonts fonts
    Internet Explorer iexplore
    Windows Update wupdmgr
    Windows セキュリティ センター wscui.cpl
    エクセル excel
    管理ツール control admintools
    コマンドプロンプト cmd
    コントロールパネル control
    サービス services.msc
    システム構成ユーティリティー msconfig
    ディスク デフラグツール dfrg.msc
    デバイスマネージャ devmgmt.msc
    電卓 calc
    パワーポイント powerpnt
    日付と時刻のプロパティ timedate.cpl
    プログラムの追加と削除 appwiz.cpl
    メモ帳 notepad
    レジストリ エディタ regedit
    ワード winword
    ワードパット write
    「ファイル名を指定して実行」で覚えとけばどこかで使えるかもよ?ってやつ
    Microsoft ムービーメーカー moviemk
    Outlook Express msimn
    User Account Management nusrmgr.cpl
    Windows Media Player wmplayer
    Windows Messenger msmsgs
    エクスプローラ explorer
    画面のプロパティ control desktop
    画面のプロパティ desk.cpl
    コンピュータの管理 compmgmt.msc
    コンポーネントサービス dcomcnfg
    サウンドとオーディオ デバイスのプロパティ mmsys.cpl
    システムのプロパティ sysdm.cpl
    自動更新 wuaucpl.cpl
    タスクマネージャ taskmgr
    ディスクの管理 diskmgmt.msc
    電源オプションのプロパティ powercfg.cpl
    パフォーマンス perfmon.msc
    パフォーマンス perfmon
    ファイアウォール firewall.cpl
    フォルダ オプション control folders
    プリンタとFAX control printers
    「ファイル名を指定して実行」でまず普通は使わないやつら
    Add Hardware Wizard hdwwiz.cpl
    Bluetooth ファイル転送ウィザード fsquirt
    DDE共有 ddeshare
    DirectX診断ツール dxdiag
    Disk Partition Manager diskpart
    Driver Verifier Manager verifier
    Iexpress Wizard iexpress
    Logs You Out Of Windows logoff
    Malicious Software Removal Tool mrt
    Netmeeting conf
    ODBC データ ソース アドミニストレータ odbccp32.cpl
    Password Properties password.cpl
    Printers Folder printers
    Removable Storage ntmsmgr.msc
    Scanners and Cameras sticpl.cpl
    SQLクライアント設定ユーティリティ cliconfg
    TCP Tester tcptest
    Telnet Client telnet
    Windows Management Infrastructure wmimgmt.msc
    Windows System Security Tool syskey
    Windows XP ツアー tourstart
    Windows ワトソン博士 drwtsn32
    Windowsのバージョン情報 winver
    アドレス帳 wab
    アドレス帳インポートツール wabmig
    イベントビューア eventvwr.msc
    インターネット接続ウィザード icwconn1
    インターネットのプロパティ inetcpl.cpl
    インデックス サービス ciadv.msc
    オブジェクト パッケージャ packager
    拡大鏡の設定 magnify
    キーボードのプロパティ control keyboard
    共有フォルダ fsmgmt.msc
    クリップブック clipbrd
    グループ ポリシー gpedit.msc
    ゲームコントローラ joy.cpl
    システム エディタ sysedit
    システム情報 msinfo32
    証明書 certmgr.msc
    スクリーン キーボード osk
    スパイダーソリティア spider
    ダイヤラ dialer
    タスク control schedtasks
    地域と言語のオプション intl.cpl
    チェックディスク chkdsk
    チャット winchat
    ディスククリーンアップ cleanmgr
    電話帳 rasphone
    電話とモデムのオプション telephon.cpl
    同期する項目 mobsync
    ネットワーク接続 control netconnections
    ネットワーク接続 ncpa.cpl
    ハーツ mshearts
    ハイパーターミナル hypertrm
    ピンボール pinball
    ファイルと設定の転送ウィザード migwiz
    ファイルの書名の確認 sigverif
    フォント control fonts
    フリーセル freecell
    ペイント mspaint
    ペイント pbrush
    ヘルプとサポート センター helpctr
    ポリシーの結果セット rsop.msc
    マインスイーパ winmine
    マウスのプロパティ control mouse
    マウスのプロパティ main.cpl
    文字コード表 charmap
    ユーザー補助のオプション access.cpl
    ユーザー補助の設定ウィザード accwiz
    ユーティリティー マネージャ utilman
    リムーバブル記憶域の操作要求 ntmsoprq.msc
    リモート デスクトップ接続 mstsc
    レジストリ エディタ regedit32
    ローカル セキュリティ設定 secpol.msc
    ローカル ユーザーと設定 lusrmgr.msc
    ワイヤレス ネットワーク セットアップ ウィザード netsetup.cpl

    Accessのパラメータクエリ

    like "*" & [ 〜を入力して下さい。 ] & "*"
    

    MySQLレプリケーション+keepalived

    VMWare ESXi の覚書集

    Active Directory 準備ツール (Adprep.exe)

    ADPrep.exe の機能
    
    Adprep.exe は、Microsoft Windows 2000 フォレストまたは Windows 2000 ドメインに Windows Server 2003 ドメイン コントローラをインストールするための準備に使用されるコマンド ライン ツールです。
    

    仮想化のすすめ

    いまさら聞けないHyper-V

    前編 , 後編

    OSSでLinuxサーバ構築

    オラSVさ行くだ

    ハァ
    予算もねぇ 時間もねぇ コードも全然書けてねえ
    仕様がねぇ 設計もねぇ 部長は 毎日オーロオロ
    朝起きて、出社して、5時間ちょっとの朝会議
    人足りねぇ 技術もねぇ 休みは一月一度ある
    オラこんな国いやだー オラこんな国いやだー SVへ出るだあ。
    SVへ出たなら SI作って 一次受けで入札するだー
    
    ハァ 
    休憩ねえ 定時もねえ 終電以外は 見たごとねえ
    社食もねぇ 組合もねぇ まったぐ技術者 俺一人
    部長様と 管理者が 工程表にらんで神頼み
    コメントねえ テストもねえ たまに来るのはアルバイト
    オラこんな国いやだー オラこんな国いやだー SVへ出るだあ
    SVへ出たなら 設計者ンなって Excel設計書 書くだ
    
    ハァ
    盆がねえ 正月ねえ 「ばけえしょん」ってのは何者だ?
    有給は あるけれど 使った人は見たことねえ
    保険もねぇ 健診もねぇ たまに来るのは霊柩車
    新人ねえ 来るわけねえ おらの会社はブラックだ
    オラこんな国いやだー オラこんな国いやだー SVへ出るだあ
    SVへ出たなら 上流になって 外注に丸投げするだー
    
    ※SV : しりこん ばれぃ。 伝説の黄金郷のこと。東の大海の果てに
      あるといわれているが、そこから生きて帰ってきた者は誰もいない。
    

    Windowsのコマンドプロンプトでのコマンド集

    rTorrentとScreenの組み合わせで構築する最強のtorrentダウンロード環境

    ActiveDirectory+Linuxによる部署内サーバ構築

    Linuxあれこれ設定

    Windows Server 2003 / 2008 をデスクトップOSとして使うまとめWiki - 設定しておくと便利な設定

    CentOS日本語表示に

     
    # vi /etc/sysconfig/i18n
    #LANG="C"
    LANG="ja_JP.UTF-8"
    SYSFONT="latarcyrheb-sun16"
    
    あとはログインしなおせば日本語化されているはずです。

    それどこ情報?どこ情報よー?

    「俺昨日寝すぎちゃって逆にだるいわーw」
    「俺ってそんなに寝てるイメージある?それどこ情報?どこ情報よー?」
    「えーそれだけ?俺10時間も寝ちゃったわー」
    「かぁ〜今から帰っても8時間しか寝れないわー」
    「ホントは寝なくても全然大丈夫なんだけどな〜俺の本気みせてあげたいわー」
    

    debianでタイムゾーンの設定

    tzconfig
    or
    dpkg-reconfigure tzdata
    

    NEC Citrix XenServer ソフトウェア

    , ,

    install URL

    XenCenterでCentOSをインストール時に聞かれるmediaをURLを選択したい場合。
    → http://ftp.riken.jp/Linux/centos/5/os/i386/
    

    Windows Server 2008 Active Directory 構築

    評価版のライセンス期間の延長

    あまりに検証の速度が遅く、評価版のライセンス期間があと3日になってました。
    
    評価期間の延長
    
    1.[スタート] ボタンをクリックし、[コマンド プロンプト] をクリックします。 
    2.slmgr.vbs -dli と入力し、Enter キーを押して、評価期間の現在の状態を確認します。 
    3.評価期間をリセットするには、slmgr.vbs -rearm と入力し、Enter キーを押します。 
      再起動を促すメッセージが表示されます。
    4.コンピュータを再起動します。 
    
      これにより、評価期間が 60 日にリセットされます。
    

    VMwareESXi やら CentOS やら

    , , , , , , , , , , , , , ,

    chgkey110

    Windows7を106キーボード配列から101配列に変換してくれるソフトです。
    

    HDD Regenerator

    追記
    HDDを数年使用していると不良ブロックが出現してくる。
    だいたいは不良ブロック代替が行われているが怪しく残っている。
    これは諦めずに、HDD Regeneratorというソフトを使用してみると潰れて綺麗に直る場合がある。
    
    AMD BE-2350 で 1.5TBのHDDで全スキャンが4時間半程度。
    AMD Geode1750 で 1.5TBのHDDで全スキャンが5時間半程度。
    古いバージョンだとFDDを作成してFDDからPCを起動して不良ブロック潰し作業をしてくれる。
    最近のバージョンだと起動USBメモリを作成してくれる。
    

    smartmontools情報一覧

    SaaSとは

    SaaS(サース、Software as a Service)。必要な機能を必要な分だけサービスとして利用できるようにしたソフトウェア(主にアプリケーションソフトウェア)もしくはその提供形態のこと。
    

    ISMバンド

    ISMバンドとは、産業・科学・医療分野で汎用的に使うために割り当てられた周波数の帯域(バンド)のこと。国際電気通信連合(ITU)によって取り決められている。Industrial Scientific and Medical
    

    ガラケー

    ガラパコスケータイを略してガラケー。日本の携帯電話はガラパコス諸島のように外界から隔離され独自だから。
    対義語としてスマホ。スマートフォンの事でiPhoneなど。独自の通信サービスは使えない。
    

    OpenVAS ネットワーク越しに脆弱性をスキャンする

    Nmap … ポートスキャナー TCPのSYNやFINパケットなどを送って開いているポートやサービスを提供するソフトのバージョンを一覧表示
    Nussus … サービスの脆弱性の有無を調べるソフト。Nmapなどのポートスキャナーであらかじめ開いているポートを調べ、そのポートにさまざまなコマンドを送信して応答内容を確認し脆弱性の有無を判定。
    OpenVAS … Nessusの流れを汲むソフト。バージョン2.xxまでは無料。3.xxは有料。スキャナーとクライアントで構成される。
    

    触って学ぶルータ&VPN

    Vyatta : ソフトウェアルータ
    UT-VPN : VPNソフト
    

    ”頂点”のルートでDNSSECが稼動 DNSサーバの管理者は対応を検討

    DNSのセキュリティ拡張プロトコルDNSSEC(ディーエヌエスセック)[DNS SECurity extensions]の普及が本格化。7/15ルートゾーンで正式に稼動。
    

    ショートカットのアイコン表示するだけで感染 Windowsシェルを悪用するウィルス

    Stuxnet(スタックスネット)です。Gamblar(ガンブラー)ほど猛威は振るってなさそうですが凶悪です。
    

    ネットワークエンジニアの仕事の分類

     .優奪肇錙璽監視 & 運用
    ◆.優奪肇錙璽構築 & 保守
     ネットワーク設計 & 提案
    

    awkさえあれば!

    ◇正規表現を用いた行の検索を行う ⇒ grep
    ◆検索文字列の置換や内容の修正を行う ⇒ sed
    ◇特定フィールドを抽出する ⇒ cut
    ◆特定フィールドに対してロジックを含む処理を行う ⇒ awk

    awkでファイルかディレクトリか

    パターンとアクションを複数記述
    $ ls -l | awk '/^-/{print "file: " $9}/^d/{print "directory:" $9}'
    
    特定フィールドのみでマッチング処理
    $ ls -l | awk '$2 ~ /5/{print $0}'
    $ ls -l | awk '$2 ! /5/{print $0}'
    

    履歴書のウソの見抜き方教えます

    頭の回転を早くする30の方法

    年齢は関係ない。頭は使えば使うほど、よくなる。
    脳の1番のトレーニング法は、好きなことをして、体を動かすこと。
    初体験ほど、脳を活性化させることはない。
    若返りの薬は、日常生活にたくさんある。
    かっこをつけていると、脳の老化も早くなる。
    時間という緊張感が、脳を活性化させる。
    音読をすると、脳の活動が活発になる。
    部屋の外のほうが、脳を広範囲に刺激できる。
    おいしいものを食べて、モチベーションと元気をアップ!
    プラスに考えることが、脳を育てる。
    散歩中の脳は、回転が速くなっている。
    考えが複雑になってきたら、紙に書き出して、整理すればいい。
    仕事が早い人の脳は、楽しんでいる。
    大きな夢は、小さく分ければ、かなえやすくなる。
    朝食を取るだけで、頭の回転が速くなる。
    テレビをオフにすれば、本来の自分と向き合える。
    本当に自分にとって必要な情報には、お金を払って求めることが必要。
    目と耳を交互に使う勉強法を取り入れよう。
    交感神経は、活発な活動の際に使用される自律神経。副交感神経は、休憩の際に使用される自律神経。
    買ってすぐに読み始めれば、自然と速読ができる。
    頭の回転が速い人は、パワーを一点に集中している。
    食欲に素直になって行動するから、頭の回転が速くなる。
    興味のある本を読み続けていると、速読力は自然と身につく。
    友達との仲がよくなるのは、メールの「内容」よりも、返事の「速さ」。
    恥ずかしがり屋は、返事の速さで気持ちを伝えていけばいい。
    好きなことをしているとき、頭の回転は速くなる。
    好きなことをしていると、脳を鍛えるトレーニングになる。
    達成感を得るために、小さなことから始めよう。
    「反対の行動」をしていると「思い込み」がなくなり「新発見」ができる。
    直感を信じて行動したほうが、前向きになれる。
    

    「PDF to Word」&「PDF to Excel」

    無線LAN設定「資格情報の確認中」?

    WindowsXPでは無線LANに接続しようとすると「資格情報の確認中」となって止まってしまうことがあるようです。
    
    そんなときは「コントロールパネル」⇒「ネットワーク接続」⇒「ワイヤレス ネットワーク接続」⇒右クリック「プロパティ」⇒「ワイヤレスネットワーク」タブ⇒「優先ネットワーク」でつなぎたい無線LANを選んで
    
    「プロパティ」⇒「認証」タブ⇒「このネットワークでIEEE802.1X認証を有効にする」チェックを外す
    
    と、ちゃんとつながりました。
    

    GPUの性能比較 〜高負荷版〜

    落ちたデーモンを自動的に再起動するスクリプト

    ヘアースタイルいろいろ

    iPhoneで動画や省電力関連

    ,

    PLANEX MZK-NAS02SG1T買ったよ

    CG-NSC2100GT iTunesサーバの文字化け

    CG-NSC2100GT 設定メモ

    ISOファイル作成

    Windows7でウィンドウが画面外に行って帰ってきません

    訳の分からないタイトルをつけたり解り易いタイトルをつけたり。
    検索に掛かった方がいいときはストレートに。
    
    えー、わざわざ書くほどのことはないんですが、まあ一応書き残しておきます。
    
    デュアルモニタでPC使っていると、たまにウィンドウが画面外のどこかに行ってしまって全く戻ってこなくなることがあります。
    ソフトを立ち上げても、何処にもない。
    タスクバーにはあるので、起動はしているんだけど。
    
    今までの解決方法は、タスクバー上のそのアプリ(ウィンドウ)を右クリック→移動 を選んで、カーソルキーをしばらく押していればウィンドウが戻ってきます。(マウス操作でも)
    ウィンドウの端っこも見えないときは、一体どの辺りにあるのか分からないので、適当にカーソルキーを押すことになりますが。
    
    でもWindows7だと、タスクバー上で右クリックしても、
    
     アプリの名称
     タスクバーにこのプログラムを表示する
     ウィンドウを閉じる
    
    の3つしか表示されない。
    
    仕方がないので次の手段は、タスクバー上で問題のソフトをクリック、アクティブにしておいて、
    
     Altキー→スペースキー→Mキー
    
    で移動できます。
    後はカーソルかマウスでどうぞ。
    
    が。
    これ、出来るものと出来ないものがある。
    うちのだとFireFoxとか無理。
    
    途方に暮れました。
    ブラウザ立ち上げても画面内に無い。
    
    
    ・・・、待てよ?
    タスクバー上で問題のソフトの上にマウスオーバ。
    しばらく待つと、右に補足ウィンドウが開いて・・・。
    その上で右クリックすれば、移動できました。
    たんに慌て者でした。
    
    心にゆとりを。
    
    同じような感じで困ってる人とかいるんだろうか・・・。
    

    Windows7 64bit アプリ導入メモ。

    PC自作用語解説

  1. 3DNow!

  2.  AMDの拡張命令セット。浮動小数点演算を中心とした21の命令を追加。1998年リリースのK6-2から搭載。

  3. 3DNow! Professional

  4.  SSE互換機能を含む52の命令を追加。2001年リリースのAthlonXPなどから搭載。

  5. AC'97(Audio Codec '97)

  6.  Intelが1996年に提唱したPC用オーディオアーキテクチャ。

  7. ACPI(Advanced Configuration and Power Interlace)

  8.  Compaq(現hp)、intel、Microsoft、Phoenix、東芝を中心に策定された電源管理の規格。OSの管理下で、本体や周辺機器のパワーセーブ、電源ON/OFF制御を可能にしたもの。

  9. AGP(Accelerated Graphics Port)

  10.  Intelが提唱したビデオカード専用のインターフェース規格。32bit/66MHzをベースに、2X(133MHz)、4X(266MHz)、8X(533MHz)の高速転送をサポート。

  11. AHCI(Advanced Host Controller Interface)

  12.  Intelを中心としたAHCI Contributor Groupが策定する、Serial ATA用のホストコントローラのインターフェース規格。

  13. ATAPI(AT Attachment Packet Interface)

  14.  ATAインターフェースを使い、さまざまなデバイスをしようするためのプロトコル。SCSIのパケットコマンドに準じたプロトコルを実装している。

  15. ATX(Advanced Technologies eXtended)

  16.  Intelが1995年に発表したマザーボードのフォームファクター。305x244mmの標準サイズと、284x208mmのMiniATX、244x244mmのmicroATXが規定されている。

  17. B(Byte)

  18.  バイト。データ量の単位。1byteは通常8bit。

  19. BD(Bru-ray Disc)

  20.  読み出し専用のBD-ROM。書き込み可能なBD-R。書き換えが可能なBD-REがある。容量は単層メディアで最大27GB、2層メディアで最大54GB。

  21. BIOS(Basic Input/Output System)

  22.  基本入出力システム。OSとハードウェアの間に立ってデータの受け渡しを制御する基本ソフト。

  23. bit(binary digit)

  24.  ビット。2進数の最小単位。Byteとbitを区別する場合には、byteをB(大文字)、bitをb(小文字)で表記することが多い。

  25. Bluetooth

  26.  2.4GHzの周波数帯を用い、10m程度の短距離での利用を想定した双方向の無線通信技術。帯域は1Mbps。

  27. bps(bit per second)

  28.  ビット/秒。通信などで伝送速度や容量を表す単位。

  29. C3/Eden

  30.  VIA TechnologiesのCPU。x86互換の「Cyrix」が起源で、2001年リリースの後継チップからC3の名で呼ばれる。EdenはC3をベースにした低電圧省電力型ファンレスCPU。

  31. CAVConstant Angular Velocity)

  32.  ディスクの回転制御方式の一つで、回転速度を一定に保つ。外周部よりも内周部のほうが記録密度が高くなる。角速度一定。

  33. cd(candela)

  34.  光度(光源の明るさ)を表す国際単位系の単位。ディスプレイの輝度は一平方メートルあたりの光度(cd/m2)であらわす。

  35. CL(CAS Latency)

  36.  メモリアクセス時のタイミングの値の一つで、CAS信号を出力してから実際に入出力が開始されるまでの遅延時間のこと。

  37. CLD(Constant Linear Density)

  38.  ディスクの回転制御方式の一つ。回転速度を連続的に変化させ、内外周にかけて一定の記録密度で記録する。記録密度一定。

  39. CnQ(Cool'n Quiet)

  40.  AMDが開発し、Athlon64などに搭載されている省電力機構。CPUの負荷に応じてクロックと電圧を動的に制御し、消費電力を調整できるようにする。

  41. CPP-GMR(Current Perpendicular to Plane Giant Magneto Resistance)

  42.  ディスクの再生用磁気ヘッドの一つ。薄膜の面方向に電流を流す従来方式に対し、高密度な記録に有利な垂直方向に電流を流すタイプのGMRヘッド。

  43. CPU(Central Processing Unit)

  44.  中央演算処理装置。コンピュータにおいて頭脳となる部分。メモリとの間で数値の演算処理を行う。

  45. dB(deciBel)

  46.  デシベル。電磁波や音圧のレベルを示す単位。基準値または相対値を常用対数比で表し、電力比ではその10倍、電圧比や音圧比ではその20倍。

  47. DDR SDRAM(Double Data Rate Synchronous DRAM)

  48.  クロック信号の両端に同期してデータ転送を行うSDRAM)

  49. DDR2 SDRAM(DoubleData Rate 2 Synchronous DRAM)

  50.  JEDECで標準化された、DDRの2倍のクロックで動作する第二世代のDDR SDRAM。

  51. DDR3 SDRAM(Double Data Rate 3 Synchronous SDRAM)

  52.  JEDECで標準化された、DDR2のさらに2倍のクロックで動作する第三世代のDDR SDRAM。

  53. DirectX

  54.  Microsoftが開発した、Windows上でグラフィックスやオーディオ、ビデオなどを扱うためのマルチメディア技術。

  55. DLAN(Digital Living Network Alliance)

  56.  家電、PC、モバイル機器間の相互接続環境を実現するための設計項目を規定したデザインガイド。物理的な接続にはイーサネットまたは無線LAN、通信プロトコルにはIPv4とHTTP、機器の検出や管理にはUPnP、メディアフォーマットにはJPEG、MPEG2と、既存の標準技術を使って構成されている。

  57. DOS/V(PC DOS Jx.x/V)

  58.  ドスブイ。IBMが開発した、ソフトウェアで日本語表示を行うAT互換機用のDOS。日本でAT互換機がDOS/V機と呼ばれるようになったのはこれに由来する。

  59. DPS版(Delivery Service Parthner)

  60.  Microsoftの指定販売業者用のパッケージ。ハードウェアにバンドルする形で販売され、そのハードとの併用が必須となる。

  61. Dsub(D-subminiature)

  62.  コンピュータや電子機器を接続するために広く用いられるコネクタの規格。シリアルポート(RS-232C)や、ゲームポート、ディスプレイのコネクタなどに使われている。

  63. DVI(Digital Visual Interface)

  64.  1999年に策定されたデジタルディスプレイインターフェース規格。アナログインターフェースのみ対応のDVI-A、デジタルインターフェースのみのDVI-D、双方に対応するDVI-Iがある。

  65. EFI(Extensible Firmware Interface)

  66.  従来のPCのBIOSに代わる、OSとファームウェアの間のインターフェース。

  67. EIST(Enhanced Intel SpeedStep Technology)

  68.  Intelが開発したCPUのクロックと電圧制御による省電力技術。手動/自動による単純なモード切り替えだった従来のSpeedStepを拡張、CPU負荷に応じてダイナミックに切り替え、最小限の消費電力で必要十分なパフォーマンスを得られる。

  69. Enhanced 3DNow!

  70.  MMXの拡張命令などの24の命令を追加。1999年リリースのAthlonから搭載。

  71. EPP(Enhanced Performance Profiles)

  72.  NVIDIAとCorsairMemoryが共同で開発したSPDの拡張規格。対応マザーボード/メモリの組み合わせにより、自動オーバークロック機能を提供する。

  73. eSATA(external Serial ATA)

  74.  外付け機器用のSerialATA規格。

  75. FDB(Fluid Dynamic Bearing)

  76.  流体軸受け。油や空気などの流動体を使って、モーターのスピンドル(回転軸)を支えるベアリング(軸受け)機構。静かで耐久性が高く、軸のぶれも少ない。

  77. fps(frames per second)

  78.  フレーム/秒。ビデオや動画の1秒あたりのフレーム数。

  79. FPU(Floating-point Processing Unit)

  80.  浮動小数点演算装置。実数演算を処理するためのプロセッサ内の回路。あるいはCPUに代わって処理する専用プロセッサ。

  81. FSB(Frong Side Bus)

  82.  CPUとチップセットを接続するバス。

  83. GbE(Gigabit Ethernet)

  84.  1Gbpsの伝送速度を持つ1000BASE系のイーサネット。

  85. GDDR(Graphics Double Data Rate)

  86.  グラフィックス(ビデオカード)用のDDRメモリ。最新の規格はGDDR4。

  87. GMA(Graphics Media Accelerator)

  88.  915以降のIntelチップセットに搭載されているグラフィックスコア。

  89. GMR(Giant Magneto Resistive)

  90.  HDDの再生用磁気ヘッドに用いられる磁気抵抗効果の方式。MRヘッドの数倍の高出力を得られ、記録密度を向上できる。

  91. GPU(Graphics Processing Unit)

  92.  画面出力を専門に制御するプロセッサ。グラフィックスコントローラ。

  93. GUI(Graphical User Interface)

  94.  グイ。ジーユーアイ。WindowsやMacOSのような、グラフィックスを主体としたユーザインターフェース。

  95. HD Audio(Intel High Definition Audio)

  96.  Intelが2004年に発表した、AC'97の後継となる音声・通信デバイス向けの規格(開発コード:Azalia)。

  97. HDCP(High bandwidth Digital Content Protection)

  98.  DDWGが2000年にリリースした、DVI用の著作権保護技術。

  99. HDD(HD) (Hard Disk(Drive))

  100.  コンピュータの外部記憶装置。密閉容器中で高速回転する磁気ディスク、ヘッド、モーター、制御回路が納められている。

  101. HDMI(High Definition Multimedia Interface)

  102.  DVIをベースにAV機器用にアレンジしたHDTVディスプレイ用のデジタルインターフェース規格。

  103. HT(Hyper-Threading)

  104.  IntelのSMT技術。一つのコアで二つのスレッドを同時に実行できる。

  105. Hz(Hertz)

  106.  ヘルツ。周波数を表す国際単位系の単位。

  107. I/O(Input/Output)

  108.  入力と出力の意味。外部機器とのデータのやり取りを意味することが多い。入出力。

  109. ICH(I/O Controller Hub)

  110.  Intelのハブアーキテクチャにおける、I/Oまわりの機能を統合したチップ。従来のSouthBridgeに相当。

  111. IDE(Integrated Device (Drive) Electronics)

  112.  Compaq(現hp)が中心となって開発した、ISAバスにHDDを接続するためのインターフェース規格。現在の正式名称はANSIによって承認されたATAで、規格はNCITSのT13という委員会によって管理されている。

  113. Intel 64

  114.  IA-32を拡張する形で64bit化したIntelの64bitアーキテクチャ。AMD64との互換を有する。

  115. LGA(Land Grid Array)

  116.  半導体パッケージの一つで、パッケージの片面に平板なパッド(ランド)を並べたタイプ。

  117. MBR(Master Boot Record)

  118.  PCなどの外部記憶装置で、起動時に最初に読み込まれる領域。システムが存在する位置などの情報が記録されている。

  119. MCH(Memory Controller Hub)

  120.  Intelが8xxチップセットから採用したハブアーキテクチャにおける、ホストコントローラ側のチップ。従来のNorthBridgeに相当する。

  121. MIMO(Multi-Input Multi-Output)

  122.  複数の送信アンテナを使って信号を多重化し、複数の受信アンテナを使って受信・分離する、アンテナ間の伝搬応答を用いた多重化技術。

  123. MMX(Multimedia Extensions)

  124.  整数用のSIMD演算を中心とする57の命令を追加。1997年リリースのPentium with MMX Technologyから搭載。

  125. NCQ(Native Command Queuing)

  126.  Serial ATA 2.5からサポートされた、複数のコマンドをバッファリングし、最適な順番で処理していく機能。

  127. NTFS(New Technology File System)

  128.  Microsoftが開発し、WindowsVista/XP/2000/NTに実装されているファイルシステム。セキュリティ機能や圧縮機能、ロギング機能などをサポートしている。

  129. PCI(Peripheral Component Interconnect)

  130.  PC用バスアーキテクチャの一つ。一般的に用いられるのは32bit/33MHzの拡張バス。規格上は64bit/66MHzまで、PCI-X(3.0でPCIに統合)では133MHzまでサポートする。

  131. PCI Express

  132.  PCI-SIGが2002年に標準化した、シリアル伝送方式のPCIバスアーキテクチャ。PCIのパラレル伝送に対し、一方向のシリアル伝送を採用し高速化を容易にしている。

  133. PFC(Power Factor Correction(Corrector))

  134.  力率補正、力率改善。力率を改善して高周波電流を抑制すること(Correction)。またはそのための回路(Corrector)。

  135. POST(Power On Self Test)

  136.  システムの起動時に行われるハードウェアのテスト。障害があると、ビープ音やメッセージなどで知らせる。

  137. RAID(Redundant Arrays of Inexpensive Disk)

  138.  複数代のディスクドライブを利用して、ディスクの容量や高速性、信頼性を向上する技術。

  139. rpm(revolutions per minute)

  140.  ディスクなどの回転系における、1分あたりの回転数。

  141. S.M.A.R.T.(Self-Monitoring Analysis and Reporting Technology)

  142.  HDDの自己管理解析報告機能。対応ドライブとコントローラでは、ドライブの状況や総合的な診断情報を得られる。

  143. S/P DIF(SONY/Philips Digital Interface Format)

  144.  ソニーとPhilipsが開発した、デジタルオーディオ用インターフェース規格。多くのデジタルAV機器に採用されている。

  145. SATA(Serial ATA)

  146.  Serial ATA WGが、2000年にリリースした、シリアルインターフェースを使ったATA規格。

  147. SLI(Scalable Link Intefaces)

  148.  nVIDIAが開発した、複数のビデオカードを接続してマルチプロセッサ化するためのアーキテクチャ。

  149. SO-DIMM(Small Outline-DIMM)

  150.  一般にノートPCに用いられるメモリモジュールの規格。

  151. SOI(Silicon-On-Insulator)

  152.  チップの製造技術の一つ。絶縁膜の上に回路を組むことによってトランジスタ〜基盤間の不要な容量(寄生容量)を低減し、高速化と省電力化を実現する。

  153. SPD(Serial Presence Detect)

  154.  メモリモジュール上のEEPROMに記録されている情報(メモリの種類やパラメータなど)を取得するための規格。

  155. SSE(Streaming SIMD Extensions)

  156.  浮動小数点演算向けのSIMD演算など70の命令を追加。1999年リリースのPentium3から搭載。

  157. SSE2

  158.  倍精度浮動小数点演算など144の命令を追加。2000年リリースのPentium4から搭載。

  159. SSE3

  160.  複素数演算やスレッド同期など13の命令を追加。2004年リリースのPentium4から搭載。

  161. SSSE3(Supplemental Streaming SIMD Extension 3)

  162.  整数演算を中心とした32の命令を追加。2006年リリースのCore2などから搭載。

  163. TCP/IP(Transmission Control Protocol/Internet Protocol)

  164.  インターネットで使われているプロトコル。ネットワーク上の機器の住所付けを行うIPと、プロトコルの橋渡しをするTCPからなる。WindowsやMacintosh、Unix、汎用機などもTCP/IPが扱えるため異機種相互接続としての実績も高い。

  165. TDP(Thermal Design Power)

  166.  熱設計電力。放熱対策設計の目安となる、デバイスの放熱量。

  167. TFT(Thin Film Transistor)

  168.  ガラス基板上にシリコンの薄膜を積層し、トランジスタを形成したもの。液晶パネルなどに広く用いられているSOIトランジスタの一つ。

  169. UAC(User Account Control)

  170.  ユーザアカウント制御。WindowsVistaがサポートする。アカウントの管理者特権を制限し、一般的な作業を最小限の権限で実行する機能。

  171. UDF(Universal Disk Format)

  172.  OSTAが策定した光ディスク用ファイルシステムの規格。CDのパケットライト、DVDなどで使用されている。

  173. Ultra DMA(Ultra Direct Memory Access)

  174.  ATA/ATAPI(IDE)の転送モードの一つ。クロックの両エッジに同期する連続転送モード。100MB/s以上の転送速度を持つUltraATA/100や133が現在の主流。

  175. UMA(Unified Memory Architecture)

  176.  メインメモリをグラフィックス用にも使用する方式。専用メモリを用意する必要がないのでコストを削減できる。

  177. USB(Universal Serial Bus)

  178.  コンピュータにさまざまなデバイスを接続するための汎用シリアルインターフェース。接続デバイス数は最大127台。伝送速度はUSB1.1で最大12Mbps、USB2.0で最大480Mbps。

  179. UWB(Ultra Wide Band)

  180.  きわめて広い周波数帯域を使った無線通信技術。または、きわめて短いパルスを使った無線通信技術。

  181. VRD(Voltage Regulator Down)

  182.  電圧調整器。入力電圧を一定の出力に変換する回路。プラグイン式の「VRM」に対し、オンボード実装のタイプ。

  183. VRM(Voltage Regulator Module)

  184.  電圧調整器。入力電圧にかかわらず、一定の出力電圧を得るための回路。

  185. VT(Virtualization Technology)

  186.  Intelが開発した、CPUの仮想化技術。1個のCPU上で異なるOSやアプリケーションを実行できる。

  187. WDDM(Windows Display Driver Model)

  188.  WindowsVista用に新たに設計された、ビデオカード用ドライバのアーキテクチャ。

  189. WOW64(Windows On Windows 64)

  190.  64bit版のWindows上で32bitアプリケーションを実行するためのサブシステム。

  191. WiMAX(Worldwide Interoperability for Microwave ACCess)

  192.  IEEEの802.16委員会で標準化された、ネットワークの無線インターフェース規格である「IEEE802.16」の愛称。

  193. ZCAV(Zoned Constant Angular Velocity)

  194.  HDDやMOなどに使われるトラックフォーマット。半径ごとにトラックをいくつかのエリアに分け、外周に向けて段階的にセクタ数を増やす。エリア内では回転数を一定に保つCAVとして動作するが、CAVよりも多くのデータが記録できる。

  195. ZCLV(Zoned Constant Linear Velocity)

  196.  CDやDVDに使われている回転制御方式の一つ。線方向の記録密度が一定のメディアに対し、一定の半径ごとに回転数を変えて転送速度を段階的に上げていく。

  197. 圧力損失

  198.  たとえば通気口にエアフィルタを入れると空気の流れを妨げ、その上流側と下流側で大きな圧力差が生ずる。これを圧力損失と言い、空気の流れが妨げられて低下する圧力を指す。

  199. シークタイム(Seek Time)

  200.  ディスクドライブのヘッドを目的のトラックに移動するために必要な時間。

  201. システムバス(System Bus)

  202.  CPUとチップセット間を結ぶ伝送路。プロセッサバス、FSBとも。

  203. パイプライン(Pipeline)

  204.  命令の実行に必要な処理を小さなステップに分け、それぞれを個別のユニットが流れ作業のように処理していくことによって、CPUの処理速度を向上させる技術。

  205. ヒートパイプ(Heat Pipe)

  206.  パイプの内側に、細かな網目状の素材(ウィック)を貼り、その中を真空にして内部にわずかな液体(作動液)を封入したもの。一方の端で液が加熱されて蒸発、管内の圧力差でもう一方へ移動した後、冷えて液化した動作液が、毛細管現象を利用して戻ってくる仕組み。

  207. フォームファクター(Form Factor)

  208.  1981年にIBMがリリースしたPC/ATベースのPCをリファレンスに多くのベンダーが製品を提供したことに始まり、マザーボードやケースなどの規格を指すときによく使われる。1990年代半ば以降はIntelのデザインがリファレンスとなる。

  209. プラッタ(Platter)

  210.  HDD内部の磁気円盤。HDDの内部に納められている、表面を磁性体でコーティングした、アルミニウム合金や硬質ガラスなどを使って作られた円盤。

  211. プロセッサー・ナンバー(Processor Number)

  212.  Intelが2004年にリリースした90nmプロセスのPentiumM(Dothan)から採用した、CPUのクラス(機能)とグレード(性能)の違いを表すアルファベットや数字。

  213. モデルナンバー(Model Number)

  214.  AMDのAthlonXPから採用された、CPUの基本性能とクロックを考慮したパフォーマンス値、またはCPUのクラス(機能)やグレード(性能)の違いを表すアルファベットや数字。

    喫煙者を救え

    プロジェクト一覧・日本チーム順位・Team 2ch参加プロジェクト

    271 :名無しさん?:2010/05/31(月) 02:49:14 ID:???
    これらでプロジェクト一覧・日本チーム順位・Team 2ch参加プロジェクトを 
    大体網羅出来ますんで、使ってやってください 
    プロジェクトに関しては、できるだけマイナーなプロジェクトも入れたつもりです。 
    いくつかは終了してますが。(DepSpid等) 
    
    BOINC 日本全チーム成績状況(試験運用中) 
    ttp://www17.atpages.jp/boinc/BOINC_team_japan.html
    
    BOINC 日本主要チーム成績 日報一覧 
    ttp://www17.atpages.jp/boinc/nippo_list_all.html
    
    Team 2ch 各プロジェクト成績状況 
    ttp://www17.atpages.jp/boinc/nippo/BOINC_Team2ch_list.php
    

    IntelのCPUを簡単に説明

    Celeron Dual-Core 
    ( ゜ω゜ )( ゜ω゜ ) 
    
    Core2Duo 
    ( ^ω^ )( ^ω^ ) 
    
    Core2Quad 
    ( ^ω^ )( ^ω^ )人( ^ω^ )( ^ω^ ) 
    
    PentiumG 
    ( ^ω^ )( ^ω^ )人(^o^ ) 
    
    Core i3 5--X 
    ( ^ω^≡^ω^)( ^ω^≡^ω^)人(^o^ ) 
    
    Core i5 6--X 
    ⊂二( ^ω^≡^ω^)⊃⊂二( ^ω^≡^ω^)⊃人(^o^ ) 
    
    Core i5 7--X 
    ⊂二( ^ω^)⊃⊂二( ^ω^)⊃⊂二( ^ω^)⊃⊂二( ^ω^)⊃ 
    
    Core i7 8--X 9--X 
    ⊂二( ^ω^≡^ω^)⊃⊂二( ^ω^≡^ω^)⊃ 
    ⊂二( ^ω^≡^ω^)⊃⊂二( ^ω^≡^ω^)⊃ 
    
    Core i9 
    ⊂二( ^ω^≡^ω^)⊃⊂二( ^ω^≡^ω^)⊃⊂二( ^ω^≡^ω^)⊃ 
    ⊂二( ^ω^≡^ω^)⊃⊂二( ^ω^≡^ω^)⊃⊂二( ^ω^≡^ω^)⊃ 
    

    Windowsの時刻同期

    日付と時刻の調整から、インターネット時計で次のように設定する。
    ntp.nict.jp

    BOINC VIEW のクライアント側の設定ファイルの置き場所

    クライアント側PCのポート31416を開けてから。
    Boincクライアントのバージョンが
      【Ver5.x.xの場合】"gui_rpc_auth.cfg"と"remote_hosts.cfg"は以下に配置する
          XPなら   "C:\Program Files\BOINC"
          Vistaなら "C:\Program Files\BOINC"
    
      【Ver6.x.xの場合】"gui_rpc_auth.cfg"と"remote_hosts.cfg"は以下に配置する
          XPなら   "C:\Documents and Settings\All Users\Application Data\BOINC"
          Vistaなら "C:\ProgramData\BOINC"
    
    隠しフォルダを表示するように設定しておくのを忘れずに
    "gui_rpc_auth.cfg"と"remote_hosts.cfg"を配置後、Boincマネージャーの再起動を忘れずにしてください。
    そうしないと、BoincViewが認識できませんよ。
    

    ビデオカードのBIOSをいじろう

    Windows7: Windows Time サービスで時刻同期

    windows 7でクイックランチャー(クイック起動バー)を表示する

    ,

    WD Raptorで構成したRAID0の調整例

    フリーソフト・無料ソフトの番外編

    Windowsエクスプローラ拡張ソフト「Explorer Construction」

    上へのボタン追加など

    浜田「徳永英明に貸したラジオを壊された時の心境を教えてください」

    「CPU-Z」「GPU-Z」などにも匹敵する情報量の総合スペックビューワー「Speccy」

    LinuxでBOINCに各種参加方法

    ./boinccmd --project_attach www.worldcommunitygrid.org ae1ec8783d15339c2c91e049f740e37e
    ./boinccmd --project_attach milkyway.cs.rpi.edu/milkyway 7e875f4aee2573f3b1ad06637111f50c
    

    CentOSでBOINC

    まず http://boinc.berkeley.edu/download_all.php からBOINCの最新版をダウンロード。
    
    Linux x86 のとこです。
    
    # cd /usr/local
    # wget http://boincdl3.ssl.berkeley.edu/mirror/boinc_6.10.45_i686-pc-linux-gnu.sh
    # wget http://boinc.berkeley.edu/dl/boinc_6.10.46_i686-pc-linux-gnu.sh
    ダウンロードしたシェルスクリプトを実行
    
    # sh boinc_6.10.46_i686-pc-linux-gnu.sh
    BOINCディレクトリが作成されます。
    
    # cd BOINC
    # ./boinc
    BOINCを起動
    
    # ./boinc
    いろいろ表示される
    Linuxのプロンプトに戻ってこれなくなるので、ターミナルをもう一つ開きます。
    
    そしたら、プロジェクトに参加します。
    
    僕はもうアカウントがあるので下記のようにしました。
    
    アカウントが無い場合は、ここにやり方がのってます。
    
    # cd /usr/local/BOINC
    # ./boinccmd --lookup_account <プロジェクトのURL> <登録したメールアドレス> <パスワード>
    <アカウントキーが表示されます。>
    # ./boinccmd --project_attach <プロジェクトのURL> <アカウントキー>
    これで目的のプロジェクトに参加できました。
    
    このままではターミナルを閉じると./boincのプロセスも止まってしまうので、デーモンとして起動します。
    
    # ./run_client -daemon
    これでOKです。
    
    先ほど ./boinc を実行したターミナルに戻って ctrl+c としても、プロセスは維持されます。
    
    タスクの状態は下記のようにして確認できます。
    
    ./boinccmd --get_results
    参考
    
    http://d.hatena.ne.jp/rsyudo/20090615/p1
    
    http://k-ishik.seesaa.net/article/38820175.html
    

    Windows7 Tips道場

    古いCentOSは…

    RPMforgeを新しくしないと、clam等が古いままでDBも古くなり更新できなくなりメール送受信等にも影響がでてくる。
    # rpm -Uvh http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
    

    CentOS5.4のnetinstメモ

    Installation Method: HTTP
    HTTP Setup Web Site: ftp.riken.jp
    HTTP Setup Directory: Linux/centos/5.4/os/x86_64
    

    146種類のCPUでベンチ比較


    73種類のGPUの消費電力


    chrome plus

    ハードディスクを別マシンに移動したら異形式と表示されディスクにアクセスできない

    Q.グループのファイル・サーバーとして利用しているWindows 2000 Professinalが起動しなくなりました。
    急ぎということもあり,データが格納されているハードディスクを外し,Windows XP Professionalマシン
    に付けました。しかし,[コンピュータの管理]の[ディスクの管理]を見ると,追加したハードディスク
    は[異形式]と表示され,ディスク上のデータにアクセスできません(図7)。 
    
    A.既存のディスク・グループを持つ他のコンピュータに,ダイナミック・ディスク形式のハードディスクを
    移動すると,移動したダイナミック・ディスクは[異形式]と表示され,アクセスできません。このディスク
    上のボリュームにアクセスするには,移動したハードディスクを移動先のマシンでインポートする必要があります。
    ただし,事前にいくつか注意しなくてはいけない点があります。以下では,ディスクのインポート方法と併せて説明します。
    
     まず,移動先のマシンのOSが,ダイナミック・ディスクをサポートしている必要があります。Windows 
    95/98/Me/NT 4.0/XP Home Editionではサポートされていません。Windowsで対応しているのは,Windows
     2000/XP Professional,Windows Server 2003です。
    
     移動するダイナミック・ディスクのハードディスクが,スパン・ボリューム,ストライプ・ボリュームなど,
    マルチディスク・ボリュームの一部になっている場合,他のハードディスクも移動しないと,データにはアクセ
    スできません。後から移動することも可能ですが,かなり煩雑です。できれば,同時に全ハードディスクを移動
    したほうが適切です。
    
     これらの条件を満たせば,あとはディスクをインポートするだけです。手順は簡単です。[異形式]となっている
    ディスクを右クリックして[形式の異なるディスクのインポート]をクリックします。次に,インポートするディスク
    ・グループを選択し,[OK]ボタンをクリックし,[形式の異なるディスクのボリューム]ダイアログで,ボリューム
    の状態が[OK]と表示されていれば,そのディスク上のデータにアクセスできるようになります。
    

    windows7を買ったら最初にやるべき事ってなんだ?XPと違った設定多すぎ

    Windows7でセキュリティの警告を無くす(ローカルイントラネット)

    「コントロールパネル」→「インターネットオプション」→「セキュリティ」タブ→「ローカルイントラネット」→「サイト」→「詳細設定」→「このWebサイトをゾーンに追加する」の入力欄に、コピー元のアドレスを入力。例)192.168.1.1-254 →「追加」→「閉じる」→「OK」→「OK」
    

    家で仕事をする時にモチベーションを保つ10個の方法

    1. 仕事空間と生活空間を分ける
    
    by Fabio Bruna
    
    ノートPCをキッチンやベッドに持ち運んで作業するというのは確かに楽で魅力的ですが、モチベーションを保ち生産性を上げるという点ではよい選択ではありません。そこで、部屋の一部でもよいのでそこを仕事専用の場所とすることで、生活空間との間に精神的、肉体的境界を作ります。
    
    2. 仕事場をエルゴノミクスにする
    
    by Ezu
    
    重要な時間を過ごすためには、机と椅子を快適にすることは必須です。そのため、エルゴノミクス (人間工学) デザインな椅子を買うことは非常に重要です。また、モニタ、キーボード、マウスなどが適切な高さに配置されており、変な姿勢で使っていないことをチェックしてください。さらに、足が伸ばせるようなスペースを確保し、適度に足を伸ばすようにします。
    
    3. 仕事場をちらかさない
    
    by Jeffrey Beall
    
    すっきりとした仕事場はすっきりとした気持ちを生みます。そのため、不必要な小物類や本の山や洗っていないマグカップなどは机の上から取り除き、ごちゃごちゃしたケーブル類は可能な限り隠すことで、机には必要最小限のものしか置かないようにしましょう。
    
    4. セカンドモニタを使う
    
    by totalAldo
    
    同時に多くのウィンドウを開くのは混乱の元ですが、セカンドモニタによってこれを改善することができます。そして、メインモニタ上ではリアルタイムの仕事に専念できるようにするため、セカンドモニタ上には関連する文書やウェブサイトを表示させるようにします。
    
    5. 視覚的な刺激を与えるようにする
    
    by hyperbolation
    
    ポスターや絵画などの視覚的な刺激はインスピレーションを与えたりモチベーションを上げたりします。また、モニタから目を離したときに空を眺められるように窓の側に机を配置するのもよいでしょう。
    
    6. 光や色に気を付ける
    
    by Jeremy Levine Design
    
    色は気分に、光は思考にそれぞれ影響を及ぼします。そのため、生産性を上げるためには仕事場の色彩をどのようにするかを慎重に設計してください。そして、自然光を最大限に利用し、かつ、柔らかく暖かめの色の光を出す光源を利用してよい雰囲気を醸し出すようにしてください。
    
    7. ホワイトボードとカレンダーを使う
    
    by ekalb
    
    ブレインストーミングや出張計画などを書き出すにはホワイトボードは非常に便利です。また、電子手帳などを利用していたとしても壁に掛けられた紙のカレンダーは予定を俯瞰して締切を守るために役立ちます。
    
    8. 植物を配置する
    
    by wili_hybrid
    
    植物を置くことは仕事環境を大いに改善します。植物は空気をよくする効果がありますし、時おりの水やりや剪定は仕事の重圧からのよい気晴らしになります。
    
    9. 音楽を聴く
    
    by .m for matthijs
    
    BGMは気分に影響を与えるため、PCをスピーカに繋げるかサウンドシステムを設置するかしましょう。そして仕事に合った音楽やラジオを流して生産性を高めましょう。
    
    10. ソファーまたはリラクゼーション空間を置く
    
    by threefatcats
    
    仕事中に休憩を取ることは重要です。そのため、ちょっと仕事から離れられる場所にリラクゼーション空間を作ったり、ソファーを置いたりしましょう。もっとよいのは、家を出て散歩することです。家に戻って来たときには、このインスピレーションを高めて生産性を上げる仕事環境があることを素晴しく思うでしょう。
    

    低GI食品って何?肥満になりにくいとされる理由は

    最近コンビニやスーパーなどで「低GI食品」と書かれた商品をよく目にする。  この「低GI食品」、何やら体によさそうなことはわかるのだが、一体どういう意味なのだろうか?低GI食品を食べると何がよいのだろう?  低GI食品の『GI』は、グリセミック・インデックス(Glycemic Index)の略であり、直訳すれば血糖指数となる。この『GI』、私たちが目にするようになったのは最近になってからであるが、使われ始めたのは20年以上も前のことである。1981年にトロント大学のデイビット・ジェンキンス博士らによって提唱された概念であり、炭水化物摂取後の血糖値の上昇する速さを表した指標である。この値が大きければ大きいほど、炭水化物を食べた後の血糖値の上昇が早いのだ。  ということは、低GI食品とは、摂取後の「血糖値の上昇が遅い食品」ということになる。どうやら、カロリーが同じ炭水化物ならば、『GI』がより小さい食品を食べた方が太りにくく、肥満になりにくいらしい。なぜだろう?  その鍵となるのは、インスリンという物質である。インスリンは、血中の糖分を脂肪に変える働きを持つ物質である。また、インスリンは血糖値の急激な上昇により、すい臓から多く放出されることが知られている。  つまり、『GI』が大きい食品を食べると、食後の血糖値の上昇が速く、インスリンが分泌されやすくなるため、からだの中に脂肪がたまりやすくなるということになる。逆に低GI食品を食べれば、血糖値の上昇がゆるやかになり、インスリンの過剰な分泌が抑えられる。このような理由で、同じカロリーの炭水化物を摂取しても、低GI食品のほうが太りにくいのだ。  また、低GI食品のもう一つのメリットとして、腹持ちがよいということが挙げられる。「血糖値の上昇が遅い」ということは、「消化が遅い」ということであり、低GI食品は腹持ちがよく、空腹感を抑えることができるので、食欲抑制につながる。  なお、低GI食品としては、ヨーグルトや大豆、りんご、玄米などが挙げられる。また、高GI食品としては、白米や食パン、ジャガイモなどがある。つまり、同じ量を食べるなら、白米よりも玄米を食べたほうが太りにくいということが言えるだろう。  高GI食品ばかり食べていると、脂肪がたまり続け、高血糖や高脂血症などの「メタボリックシンドローム」になる危険性が増してしまう。最近お腹まわりが気になりだした人がいたら、低GI食品を食すことをお勧めする。 注意:低GI食品でも、食べ過ぎれば太ります。また、低GI食品は消化の遅い食品です。体調がすぐれない時や、お腹の調子が悪い時は避けるようにしましょう。

    Windows7裏技

    ubuntu server 9.10 作業等

    , , , , , ,

    Ubuntu Server でNIC増設した時の設定ファイル

    下記のファイルに自動的に追加されている
    /etc/udev/rules.d/70-persistent-net.rules
    
    よって、次のファイルで設定するだけでOK!
    /etc/network/interfaces
    

    Download BOINC client software

    入社後1年未満な僕が考える「損するタイプ」、「得するタイプ」

    あいさつ
    損するタイプ
    挨拶はするが、声が小さく顔を見ない。
    得するタイプ
    顔を見て元気に挨拶。
    
    コミュ力
    損するタイプ
    笑顔が無い。分かる、分からないを言わない。声が小さすぎる。
    得するタイプ
    笑顔がある。分かる、分からないを言う。
    
    態度
    損するタイプ
    過剰な自信家。学ぼうとしない。先輩面をする。"俺が上だから、文句いうな"系
    得するタイプ
    謙虚。学ぶ姿勢がある。後輩の教育をする。"調べても分からなかったら聞いていいよ"、"調子どう?"系
    
    メール
    損するタイプ
    適当に始まり、署名で終わる。
    得するタイプ
    "○○さん"から始まり、署名で終わる。
    
    飲み会
    損するタイプ
    静かに飲む。楽しんでいない。楽しんでいるとしても身内。
    得するタイプ
    お酌に廻り、その場で話を楽しむ。
    
    勉強
    損するタイプ
    忙しいのを理由にやらない。当然結果が出ない。
    得するタイプ
    忙しくても時間を見つけ、勉強する。頑張って結果を出す。
    
    意見
    損するタイプ
    言わない
    得するタイプ
    言う
    
    積極性
    損するタイプ
    ない
    得するタイプ
    ある
    
    人付き合い
    損するタイプ
    相手の名前を覚えない。コミュニケーションをとらない、とれない。
    得するタイプ
    相手の名前を覚える。何かしらのコミュニケーションをとり、覚えてもらう。
    
    時間管理
    損するタイプ
    始業直前に来る。
    得するタイプ
    結構前から来る。Todoの確認。(と見せかけニュースサイト閲覧は私)
    
    残業
    損するタイプ
    たくさんする。
    得するタイプ
    必要最低限
    
    人間関係
    損するタイプ
    横のつながり
    得するタイプ
    横は当然ながら、縦のつながり
    
    以下、追記
    
    会話
    損するタイプ
    目を見て話さない
    得するタイプ
    目を見て話す
    

    速読

    電源の事なら

    GPGPUでBOINC

    電源選びとか

    ゆめりあベンチのスコア一覧

    □マルチカード 
     GTX280SLI		223000 
     GTX260(192)SLI	193000 
     GTX260(216)SLI	192000 
     HD4870CF		186000 
     HD4870X2CFX		178000 
     F9800GTXSLI		167000 
     HD4890CF		156000 
     HD5870CF		155000 
     HD4850CF		154000 
     GF8800GTSSLI		153000 
     GF8800GTSLI		143000 
     GTX480SLI		128951 ←NEW !
     HD4830CF		125000 
     HD4770CF		111000 
    
    □シングルカード 
     GTX295		193000 
     HD5870		183000 
     HD5970		180000 
     HD4870X2		176000  
     GTX285		164000 
     GF9800GX2		156000 
     GTX280		150000 
     HD5850		146000 
     GTX480		145300 ←NEW !
     GTX275		135000 
     GTX260(SP216)		130000 
     GTX470		125000 ←NEW !
     GTX260(SP192)		119000 
     HD5770		117000 
     HD4890		115000 
     HD4870		112000 
     GF9800GTX+		108000 
     HD3870X2		103000 
     HD5750		100000 
    

    AP-1000GLX80+BLとか

    便利サイト

    find

    基本的なオプション
    まずは基本的な使い方。
    
    -type
    ファイルタイプの指定に使用するオプションです。スペシャルファイルや名前付きパイプ等様々な引数がありますが、よく使うのはディレクトリを示す d と通常ファイルを示す f でしょうか。
    
    -name, -iname
    パターンマッチングな文字列でファイル名、ディレクトリ名を検索してくれます。-iname にすると大文字、小文字を区別しません。
    
    以下は /var/www/htdocs/ 以下の名前が plugin* に合致するディレクトリを検索する例です。
    
    view sourceprint?1 find /var/www/htdocs/ -name "plugin*" -type d 
    
    頭に ! マークを付けると逆に合致しないものが表示されます。以下は拡張子が .php ではないファイルを検索する為の例です。
    
    view sourceprint?1 find /var/www/htdocs/ ! -name "*.php" -type f 
    
    また、オプションとオプションを -o でつなぐと OR 条件になります。以下は拡張子が .jpg か .gif のファイルを検索する例です。
    
    view sourceprint?1 find /var/www/htdocs/ -name "*.jpg" -o -name "*.gif" -type f 
    
    何かと便利なオプション
    もうちょっと複雑な検索がしたい!という時に使うオプションです。find コマンドの真骨頂はここからですよ。
    
    -atime, -ctime, -mtime
    ファイルのタイムスタンプを元に検索してくれます。-atime は最後にアクセスされた、-ctime は最後にステータスが変更された、-mtime は最後に修正されたタイムスタンプを見ます。いずれも指定した数字× 24 時間前であれば検索に引っ掛かりますが、より細かい時間を見たい場合は -amin, -cmin, -mmin を使うと分単位で検索する事が可能です。
    
    -user, -group
    ファイルのユーザやグループを元に検索します。
    
    -perm
    ファイルのパーミッションを元に検索します。例えばパーミッション 744 のファイルを全て 644 に直したい!という時に重宝します。
    
    -path
    個人的に中々良く使います。指定したパターンマッチングな文字列を元にファイルまでのパスを検索します。-regex も同様のオプションですが、若干正規表現の挙動が違います。
    
    -exec
    個人的にむちゃくちゃ良く使います。このオプションがあるが為に find コマンドは素晴らしい、とさえ言えます。条件に合致したファイルに対して -exec 以降に指定したコマンドを実行する事が出来ます。\; までの文字列がコマンドとして認識され、{} が find で検索にヒットしたファイル名、ディレクトリ名に置き換えられます。
    
    -ok
    -exec と同様に指定したコマンドを実行する事が可能ですが、こちらはコマンドを実行する前に確認のプロンプトを表示してくれます。シェルスクリプトで使うと便利です。
    
    実際の使用例
    個人的にあるある!なコマンド実行例です。
    
    .svn ディレクトリを全て削除する。
    
    view sourceprint?1 find /var/www/htdocs/ -type d -name ".svn" -exec rm -rf {} \; 
    
    .svn を除外したディレクトリから __construct という文字列が記述されたファイルを検索、表示する。これむちゃくちゃ良く使います。
    
    view sourceprint?1 find /var/www/htdocs/ -type f ! -path "*.svn*" -exec grep "__construct" {} \; -print 
    
    パーミッション 777 でない tmp という名前のディレクトリを全て 777 に変更する。
    
    view sourceprint?1 find /var/www/htdocs/ -type d ! -perm 777 -name "tmp" -exec chmod 777 {} \; 
    
    オーナー apache のファイル、ディレクトリをオーナー root に変更する。
    
    view sourceprint?1 find /var/www/htdocs/ -user apache -exec chown root:root {} \; 
    
    7 日よりも前に出来たファイルを削除する。バックアップスクリプト等でファイルのローテーションをするのに良く使います。
    
    view sourceprint?1 find /var/backup/ -type f -mtime +7 -exec -rm -f {} \; 
    
    終わりに
    find コマンドのオプションはまだまだあるので他のものも見てみたい!という方はコマンドラインで man find と実行してマニュアルページを参照して下さい。Linux でのファイル検索に関しては find が最強だと思います。積極的に活用していきましょう!
    
    

    遠隔操作

    VNCだけじゃなくて、FreeNXなるモノもある。

    いざmhddfs!

    mhddfsを導入してみた

    自宅ファイルサーバのファイルシステムをLVM2からmhddfsに変更してみた。
    扱うデータ量が多くなってくると、HDD1台で1つのパーテションになっている場合、データが分散して管理がとてもめんどくさい。そこで、従来まではパーテションを連結して1つに見せかける事の出来るLVM2を使用していた。LVM2に関してはうんざりするほど情報があるので詳細を割愛。
    HDDの増設や取り外しにも対応しているLVM2の残念な面倒な点は、1つのパーテションとして管理するいわゆるストライピングの拡張したようなファイルシステムであるため、耐故障性が無い上に、いちいちfsckをしないとHDDの取り外しが出来なかったりという辺りにある。
    そこで、実在するパーテションを擬似的に1つのパーテションに見せかけるmhddfsへ移行する事にした次第だったりする。mhddfsはそのものがファイルシステムではないため、元のパーテションに対しての直接のアクセスが可能であり、またHDDの追加や取り外しも容易である。HDDの故障があったとしても、その単体の範囲で被害を食い止める事が出来るので被害は最小限におさえる事が出来る。

    幸いにもDebianではmhddfsがパッケージ化されているのでインストールはとってもお手軽。
    #aptitude install mhddfs
    にてインストールは完了する。

    使い方はとても簡単。
    あらかじめ、HDDをマウントした状態で、そのマウントポイントを指定するような感じ。
    (実際にはまとめたいディレクトリを指定するので、マウントする必要があるんだけども)
    /mnt/disk01
    /mnt/disk02
    /mnt/disk03
    にマウントされているHDDをまとめたい場合は
    #mhddfs /mnt/disk01/,/mnt/disk02/,/mnt/disk03/ /data
    の様にすれば良い。当然ながら指定するのはディレクトリなので、/mnt/disk01/aaa/を指定する事も可能だ。
    /etc/fstabに記述する場合は
    mhddfs#/mnt/disk01/,/mnt/disk02/,/mnt/disk03/ /data fuse defaults,allow_other 0 0
    の様にすれば良い。
    実際のアクセス動作としては、先頭の方のディレクトリ(/mnt/disk01/)から順に書いていき、容量がいっぱいになると次のディレクトリ(/mnt/disk02/)に書く様な感じだ。ファイルが途中でとぎれる事は無い様になっているので、若干の容量を余しながら書いていく事になるが、空き容量内に収まるファイルの書き込みであればその隙間に埋まる様になっている。
    mhddfsの動作として、先頭の方のディレクトリから順に検索をするのだが、ディレクトリのタイムスタンプについては一番最初に見つかったタイムスタンプのみ保持するので、複数のHDDにまたがって存在するディレクトリに対しては、実際に最終の更新のタイムスタンプではないのでこの辺には注意をば。ソース見た感じではそういう箇所はなかった感。fuseの仕様なんかな。

    mhddfsでLVMやらmdadmとサヨウナラ!

    >>701 
    mhddfsでまとめたディレクトリをsambaを使って共有させようとしたとき、 
    システム上では表示されるがネットワーク後しに表示されない場合は 
    オプションで"-o allow_other"を追加するとOK。 
    
    例; $ mhddfs /mnt/dirA,/mnt/dirB,/mnt/dirC /mnt/dirD -o allow_other,mlimit=5g 
    dirA〜dirCまでのディレクトリ内をdirDにまとめる。HDDの残り容量が5GByteを切ったら次のHDDに記録する。 
    
    あとubuntu9.10では/etc/fuse.confにuser_allow_otherを追加。 
    
    とくに便利なのは、個々のHDDにも従来通りアクセス可能なことと、あるHDDの最低容量を切ったら次のHDDに自動的ににファイルが移動されること。 
    
    仕事ならともかく個人でRAID再構築・LVM構築なんて面倒。もうRAIDシステムの復旧は勘弁してください。 
    
    下記のブログにわかりやすく解説されているんで詳しくは下記URIから。 
    http://blog.browncat.org/2008/05/mhddfsubuntu.html 
    
    >>704 
    そこまで危険な香りのするシステムではないと思うw 
    

    windows XPからネットワーク共有へのアクセスが遅いのを解消する

    mdadm 再構築と検索

    mdadm raid5

    mdadm

    20歳のときに知っておきたかったこと

    ・1問題は無限にあり、問題を解決すればビジネスになる。2今ある資源を使って問題解決する独創的な方法は常に存在する。3問題を狭く捉えすぎると解決できない。
    ・起業家とはチャンスになりそうな問題を探し、限られた資源を有効に使う独創的な方法を見出し、問題を解決し、目標を達成する人を指す。
    ・「問題が大きければ大きいほど、チャンスも大きい。大した問題でないものを解決しても、誰もカネを払ってはくれない」(ビノッド・コースラ)
    ・「カネを稼ぐよりも、意義を見つける方がいい。」(ガイ・カワサキ)
    ・1問題の解決策を考え、最高の案と最悪の案を出す。2最高の案をシュレッダーに。3最悪の案を練り直して最高にする。素晴らしい案になる。
    ・すべきことをあれこれ挙げていくよりも、絶対にしてはいけないことを知っておくほうがいい。
    ・「会社や製品は失敗することがあっても、自分が失敗者なのではない。」(ジェフ・ホーキンス)
    ・よき観察者であり、開かれた心を持ち、人あたりがよく、楽観的な人は、幸運を呼び込みます。
    ・目標を絞り、ひたむきに努力すれば、幸運が舞い込む確率は上げられます。
    

    結局、クラウドとかSaaSって何なの?

    ラプタ〜

    --------------------------------------------------
    CrystalDiskMark 2.2 (C) 2007-2008 hiyohiyo
          Crystal Dew World : http://crystalmark.info/
    --------------------------------------------------
    WDC WD1500ADFD-00NLR5
    
       Sequential Read :   65.129 MB/s
      Sequential Write :   63.977 MB/s
     Random Read 512KB :   30.581 MB/s
    Random Write 512KB :   46.715 MB/s
       Random Read 4KB :    0.675 MB/s
      Random Write 4KB :    1.557 MB/s
    
             Test Size : 50 MB
                  Date : 2010/02/26 22:05:56
    
    --------------------------------------------------
    CrystalDiskMark 2.2 (C) 2007-2008 hiyohiyo
          Crystal Dew World : http://crystalmark.info/
    --------------------------------------------------
    WDC WD3000GLFS-01F8U0
    
       Sequential Read :  133.322 MB/s
      Sequential Write :  129.475 MB/s
     Random Read 512KB :   61.191 MB/s
    Random Write 512KB :   99.317 MB/s
       Random Read 4KB :    1.171 MB/s
      Random Write 4KB :    3.583 MB/s
    
             Test Size : 50 MB
                  Date : 2010/02/26 22:09:38
    

    CentOS5.4

    http://ftp.jaist.ac.jp/pub/Linux/CentOS/5.4/isos/x86_64/

    ぶっ壊れて再生できないAVIファイルを修復して再生可能にするフリーソフト「DivFix++」

    買ったばかりのパソコンに最初から入っている余計なソフトをまとめてアンインストールできるフリーソフト

    PC Decrapifier

    Windows VISTA 高速化ツール

    comfortablepc

    64ビット版 iTunes

    Windowsで重複ファイルを見つけるツール

    Duplicate File Finder

    Download BOINC client software

    開発版 6.10.4
    安定版 6.6.34
    旧版  6.4.7

    ATi RADEON HD38* HD48* 系でBOINCでMilkyway@HOMEに参加する手順

    Catalyst9.1だとスグにクラッシュして解析不能になるので8.12が良い。
    【MilkyWay@HomeにGPUで参加する方法】
    ・Boincクライアントのダウンロード ※6.4.7の旧版でないとCPUとGPUそれぞれ独立して処理してくれない。
    http://boinc.berkeley.edu/download_all.php
    ・Boincマネージャーから下記アドレスで参加登録
    http://milkyway.cs.rpi.edu/milkyway/
    ・下記アドレスの中段にある version 0.19g : Win32_SSE2 , Win64のいずれかの最適化アプリをダウンロード
    http://zslip.com/milkyway.htm
    (*対応するグラフィックドライバはCatalyst8.12か9.1か9.2になります。うちはカタ8.12にしました)
    ・Boincマネージャーを一旦終了させる
    ・Boincのデータフォルダに先ほど落とした最適化アプリを配置
      BoincマネージャがVer6.*の場合
       XPなら
        C:\Documents and Settings\All Users\Application Data\BOINC\projects\milkyway.cs.rpi.edu_milkyway
       Vistaなら
        C:\ProgramData\BOINC\projects\milkyway.cs.rpi.edu_milkyway
    ・Boincマネージャーを再起動にて完了
    -----------------------------------------------------------------------
    書き忘れてましたが、上記設定(最適化アプリ等を入れただけ)では、
    GPUを使用して同時に3タスク(デフォ)実行するようになっています。
    もし、より多くのタスクを同時にGPUでやらせる場合は以下の手順で設定を変更してください。
    
    ・Boincマネージャーを終了
    ・最適化アプリを配置したフォルダにあるapp_info.xmlをワードパッド・メモ帳などで開く
    
    <app_info>
    <app>
    <name>milkyway</name>
    </app>
    <file_info>
    <name>astronomy_0.19_ATI_SSE2f.exe</name>
    <executable/>
    </file_info>
    <file_info>
    <name>brook.dll</name>
    <executable/>
    </file_info>
    <app_version>
    <app_name>milkyway</app_name>
    <version_num>19</version_num>
    <flops>1.0e11</flops>
    <avg_ncpus>0.1</avg_ncpus>
    <max_ncpus>1</max_ncpus>
    <cmdline></cmdline>
    <file_ref>
    <file_name>astronomy_0.19_ATI_SSE2f.exe</file_name>
    <main_program/>
    </file_ref>
    <file_ref>
    <file_name>brook.dll</file_name>
    </file_ref>
    </app_version>
    </app_info>

    同時実行タスクの数を8個にする場合 上記のの部分をn8と変更して保存。 ・Boincマネージャーを再起動で完了。

    CPUまとめ

    分かりやすいAMD 主力CPUのラインナップ ※全モデル45nmプロセス ソケットAM3 
     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    Phenom II X6 (Thuban/6コア/L3有り) 
    Phenom II X4 900 (Deneb/4コア/L3有り 6MB) 
    Phenom II X4 800 (Deneb/4コア/L3有り 4MB) 
    Phenom II X3 (Deneb/3コア/L3有り) 
    Phenom II X2 (Deneb/2コア/L3有り) 
    Athlon II X4 (Propus/4コア/L3無し) 
    Athlon II X3 (Propus/3コア/L3無し) 
    Athlon II X2 (Regor/2コア/L3無し) 
    
    
    分かりやすいIntel 主力CPUのラインナップ 
     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    Core i9 (Gulftown / 6コア12スレッド) LGA1366 
    Core i7 900 (Bloomfield / 4コア8スレッド) LGA1366 
    Core i7 800 (Lynnfield / 4コア8スレッド) LGA1156 
    Core i5 700 (HT非対応Lynnfield / 4コア4スレッド) LGA1156 
    Core i5 600 (Clarkdale / 2コア4スレッド) LGA1156 
    Core2Quad Q9000 LGA775 
    Core2Quad Q8000 LGA775 
    Core i3 500 (TB非対応Clarkdale / 2コア4スレッド) LGA1156 
    Core2Duo E8000 LGA775 
    Core2Duo E7000 LGA775 
    Pentium G6000 (TB&HT非対応Clarkdale / 2コア2スレッド) LGA1156 
    Pentium Dual-Core E6000 LGA775 
    Pentium Dual-Core E5000 LGA775 
    Celeron Dual-Core E3000 LGA775 
    Celeron Dual-Core E1000 LGA775 
    

    ITパスポート

    ベストなCiscoコマンドリファレンスはどれだ

    VMware ESXi インストール資料

    Linux CentOS5.2 Bonding&VLAN Interface作成

    WindowsXPにSPを当てたISOを作成

    SP+メーカー

    iscsiサーバ

    iSCSI Server を立てればVMwareESXiマシンにHDDを付ける必要が無いのでは?USBブート等のディスクレスで運用できるかも?

    ESXiサーバで準仮想化の設定方法

    Edit Settings
    Options→Advanced→Paravirtualization→Support VMI Paravirtualization 
    確認方法はdmsgで以下のメッセージがあればOK
    Booting paravirtualized kernel on vmi
    ちなみにUbuntuは標準カーネルで準仮想化をサポート、CentOS5.2はサポート
    していない。Xenカーネルのインストールが必要。
    完全仮想化と準仮想化では、準仮想化のほうがパフォーマンスがよい。
    

    VMware ESXi に CentOS をインストール後の設定

    さまざまなOSのインストール“USBメモリ”を手軽に作成できる「UNetbootin」

    VMware VI3運用ノウハウおよびTips

    PDF

    VMware ESXi まとめ

    CentOSでクラスタリング構成

    AD

    @engineer

    第二世代の仮想化支援機能

    CPUには第二世代の仮想化支援機能であるIntel EPTやAMD RVIがあるそうだ。

    Windows XPで無効化してはならないサービス10個

    〜から本気だす

    【1月】 初っ端から飛ばすと後でばてる。2月から本気を出す
    【2月】 まだまだ寒い。これではやる気が出ない。3月から本気出す
    【3月】 年度の終わりでタイミングが悪い。4月から本気を出す
    【4月】 季節の変わり目は体調を崩しやすい。5月から本気を出す
    【5月】 区切りの良い4月を逃してしまった。6月から本気を出す
    【6月】 梅雨で気分が落ち込む。梅雨明けの7月から本気を出す
    【7月】 これからどんどん気温が上昇していく。体力温存の為8月から本気を出す
    【8月】 暑すぎて気力がそがれる。9月から本気を出す
    【9月】 休みボケが抜けない。無理しても効果が無いので10月から本気を出す
    【10月】 中途半端な時期。ここは雌伏の時。11月から本気を出す
    【11月】 急に冷えてきた。こういう時こそ無理は禁物。12月から本気を出す 
    【12月】 もう今年は終わり。今年はチャンスが無かった。来年から本気出す
    

    ipchains / iptables

    ## デフォルトルールは、外に向かうパケットのみ全許可
    ## それ以外は DENY する。
    :input DENY
    :forward DENY
    :output ACCEPT
    ## local の インターフェイスを使用するパケットは全て許可
    -A input -s 0/0 -d 0/0 -i lo -j ACCEPT
    ## 信用しているネットワークFTP・Http・ssh(ポート20〜23)を許可
    -A input -p tcp -s 10.4.252.0/24 -d aaa.bbb.ccc.ddd -j ACCEPT
    -A input -p tcp -s 0/0 -d aaa.bbb.ccc.ddd 21 -j ACCEPT
    -A input -p tcp -s 0/0 -d aaa.bbb.ccc.ddd 22 -j ACCEPT
    -A input -p tcp -s 0/0 -d aaa.bbb.ccc.ddd 80 -j ACCEPT
    

    米Red HatがRHEL 5.4正式版を発表、KVMを商用レベルに

    nVIDIA GeForce 9800GX2 スペック


    Windows XP or VISTA でパス無し自動ログイン方法

    コマンドから
    control userpasswords2
    

    9800GX2

    9800 GX2 8800 GTS 8800 GTX 8800 GT
    コアクロック 600MHz 650MHz 575MHz 600MHz
    メモリクロック 2GHz 1.94GHz 1.8GHz 1.8GHz
    シェーダクロック 1.5GHz 1.62GHz 1.35GHz 1.5GHz
    ストリーミングプロセッサ 128×2 128 128 112
    搭載メモリ 512MB×2 512MB 768MB 512MB
    メモリバス幅 256bit×2 256bit 384bit 256bit

    iPod用に動画をなんでも変換

    TMPGEncでAVIにデコードして、Free Video to iPhone Converterで、好みの動画へエンコード。

    新しくPCを買った時に 入れておきたいソフトを10個上げて下さい。

    メモリの掃除屋さん
    Sleipnir(webブラウザ)
    Lhaplus(圧縮・解凍ソフト)
    Spybot - Search & Destroy(ウイルス対策)
    CDex(CD〜mp3)
    Media Player Classic (メディアプレーヤー)
    Gimp(高性能レタッチソフト)
    win_accelerator(windows高速化)
    すっきり!! デフラグ
    EasyCleaner(パソコンの調子を整える)
    

    GeForceAA

    24x365のシステム管理

    システム障害に対応する、とは?

    grepについて基礎

    システム化計画 - ITパスポート編

    GoogleChromeのTheme

    サーバ構築関連

    GPUGRID

    現時点での推奨GPU。中の数字はプロセッサ数。右の数字はGflops。
    GTX 295         ---   894*2
    GTX 285         ---  1063
    GTX 280         240   933
    GTX 260(GT200b) 216   804
    GTX 260         192   715
    GTS 250         ---   705
    9800 GX2        128*2 576*2
    9800 GTX        128   648
    9600 GT         112   312
    8800 Ultra      128   576
    8800 GTX        128   518
    8800 GTS(512MB) 128   624
    8800 GTS         96   346
    8800 GT         112   504
    8800 GS          96   396
    
    スレッドに書込のあった計算時間とクレジット効率。1WUは1987.41クレジット固定。
    9800GTX  10h  198cre/h
    8800GT   12h  165cre/h 
    8800GTX  13h  152cre/h
    8800GTS  18h  110cre/h
    8600GT   50h   40cre/h(コア数32)
    参考:PS3 150cre/h 
    

    ベンチマーク

    ,

    cactiのインスコとか…

    ,

    mysqlコマンド一覧表

    YAMAHA RTX1000,1100シリーズの初期設定等

    iPod Touch を1.1.4に戻す方法

    ,

    出世してきてわかったこと←コレ大事w

    31歳、同期90人中一番早く管理職になれる位置まで来た。

    1.馬鹿は馬鹿として切り捨てろ

    できないやつはできない。

    意見を聞いて同じ土俵にたった時点で負け。

    仕事でマイナスしか生まないやつは諦めろ、マイナスを無くすより、他のメンバーでプラスを作れ。

    もちろん無碍に扱うことは禁止。

    2.自分より優秀なプロパーがプロジェクトに入ると思うな

    プロパーは馬鹿しかこない。なぜなら優秀なプロパーは別のプロジェクトのリーダーをするから。

    内製化という馬鹿な流れに従って、できないプロパーを押しつけられても我慢しろ。

    協力会社で優秀な人を5人ほど集めろ。

    馬鹿なプロパーでももちろん年齢が上の人はちゃんと目上として扱う。

    3.馬鹿の意見を聞くな

    馬鹿が言った意見は、いくら聞いても馬鹿な意見。

    わがままで利己的で、プロジェクトがどう動いてるかなんて気にしていない。

    それに振り回されて自分の時間を使うよりも、もっと利益を考えろ。

    もちろん話を聞くときは笑顔で聞く。聞くだけでも、実現しなくても少し褒めれば馬鹿は満足する。

    4.信頼できるやつとできないやつを判断しろ

    理想しかいわないやつは諦めろ。理想だけいって、現実的な道は示さない。

    理想いうなら馬鹿でもできる。理想は小さくても実現力があるやつだけを信じろ。

    そういったやつがいたら全面的に信じて、そいつが失敗しても責任は自分がとって、次もそいつに任せろ。

    伸びる仕事、伸びない仕事を、利益を上げる仕事、あげない仕事、社内で信頼を得ることができる仕事、できない仕事。

    それを瞬時に判断して、信頼できるやつをどんどんのばせ。

    馬鹿にはどんな仕事与えてもできないんだから結果としてはどんな仕事を与えても一緒と割り切ろう。

    でも仕事はあげましょう。

    5.所詮は株式会社

    所詮は株式会社と割り切れ。

    利益が得ることができないやりことがあっても、他で利益を得ることができるプロジェクトを立ち上げてプラスマイナスは絶対プラスへ持って行け。

    取締役は利益しかみていないし、それが株式会社のすべて。

    6.出世しろ

    力、肩書き、信頼がないやつが何をほざいても無駄。

    基本自分では何もやらない馬鹿しかないんだから、ちゃんと意見をいって聞いてもらえない。

    自分の意見が正しいとしても、100の意見があって99の馬鹿の意見の中で1の正しい意見なんていったって、上からみたらすべて馬鹿な意見でしかない。

    99の馬鹿な意見聞いている暇があるなら、上司は自分の経験を生かして、可能性が高い仕事を自分で作る。

    意見を聞いて欲しければ、声を大きくするよりも、出世して発言力を強くしろ。

    7.まとめ

    所詮仕事は仕事。

    人生は楽しくやりましょう。

    仕事で嫌な思いをしないように、仕事のせいで人生が面白くないと思わないよう出世しましょう。

    会社ってシステムは何もしなければ何も返してくれないが、自分が利益をあげれば、それなりのお金と地位をくれる。

    会社っていうシステムを理解して、うまく利用しましょう。

    nVIDIA 3-way SLI

    ストレージ仮想化の本質を知る

    FlashPointがFlashFireとなって復活!!

    「ウツ」の人が遅刻や無断欠勤を繰り返すのは、責任感が足りないから?

    怪しい1000w電源

    Ubuntu9.04にVMware Tools

    aptでインストール
    $ sudo apt-get install open-vm-source open-vm-toolbox open-vm-tools open-vm-tools-dbg
    

    複数のVMware仮想ディスクを1つに統合するには

    TeraTermでUTF8やSSH2対応版

    VMware TIPS No.3: VMware ESXi で、ssh, telnetを有効にする

    VMwareESX4インストール

    ,

    CentOS4.8がリリース

    Windows側をiSCSIのターゲットに

    StarWindを使用すれば、Windows側でターゲットが作成できる。
    ,

    FreeNAS日本語設定

    XenServer 5.5によるサーバー仮想化を体験しよう!

    MySQLクイック・リファレンス

    2つ合わせて…

    Intel デスクトップ・プロセッサーの仕様

    プロセッサー・ナンバーΔ キャッシュ 動作 周波数 フロントサイド・バス
     45 nm
    Q9650 12 MB L2 3 GHz 1333 MHz
    Q9550S 12 MB L2 2.83 GHz 1333 MHz
    Q9550 12 MB L2 2.83 GHz 1333 MHz
    Q9450 12 MB L2 2.66 GHz 1333 MHz
    Q9400S 6 MB L2 2.66 GHz 1333 MHz
    Q9400 6 MB L2 2.66 GHz 1333 MHz
    Q9300 6 MB L2 2.50 GHz 1333 MHz
    Q8400 4 MB L2 2.66 GHz 1333 MHz
    Q8400S 4 MB L2 2.66 GHz 1333 MHz
    Q8300 4 MB L2 2.50 GHz 1333 MHz
    Q8200S 4 MB L2 2.33 GHz 1333 MHz
    Q8200 4 MB L2 2.33 GHz 1333 MHz
     65 nm
    Q6700 8 MB L2 2.66 GHz 1066 MHz
    Q6600 8 MB L2 2.40 GHz 1066 MHz

    わかりやすい技術文章の書き方

    WAVclean

    ブラウザを選ばずWebテストを自動化するSelenium

    Linuxサーバー構築ログ

    xoopsインスコ

    ,

    Intel VT 対応表

    「APIPA」とは?

    APIPA とは、DHCP機能によってIPアドレスが自動取得できなかった時などに、ネットワーク機器に対して、IPアドレスを自動的に割り当て、利用するための機能のことです。APIPA は IPアドレスを「169.254.1.0」〜「169.254.254.255」の範囲から、またサブネットマスクを「255.255.0.0」と、他のシステムと重複しないように自動的に割り当てます。「169.254」で始まる IPアドレスはAPIPAでのみ有効なIPアドレスです。
    /etc/sysconfig/networkに
    NOZEROCONF=yes
    

    気になったので

    iPod Touch Jailbreak ZiPhone 3.0

    CentOS をインストールしたあとに、まず行う設定

    YAMAHA RTXルータのISDNやDSUについて

    RTX1500はDSU内蔵なので、ISDN端子のUポートがある。
    RTX1100はDSU内蔵してないので、ISDN端子はS/Tポートのみ。

    YAMAHAルータでの用語

    用語 説明
    BGP パスベクトル(Path Vector) 方式で経路を制御するExterior Gateway Protocol の1 つ。RFC1771。Version4 がBGP-4 でBGP-3 とは非互換。
    IPsec 暗号化プロトコルの1 つです。
    IP マスカレード NAT の中でも特にTCP やUDP のポート番号を変換することにより、1 つのIP アドレスで複数のホストを動作させる技術。
    MP PPP Multilink Protocol(RFC 1717) の略。論理的に複数のPPP のリンクを分離したり統合したりするプロトコルです。本機では、通信トラフィックに応じて相手とのISDN 回線のチャネル数を増減させることが可能です。
    NAT Network Address Translator の略。主にグローバル空間とプライベート空間のIPアドレス変換を行う。始点/ 終点のIP アドレスの変換だけを行う。
    OSPF グラフ理論をベースとしたリンク状態型の動的経路制御プロトコルです。
    PPP Point-to-Point Protocol (RFC 1661, IETF STD 0051) の略。回線を接続した後パケットをカプセル化するプロトコルです。
    PPPoE イーサネット上でPPP 接続を行うためのプロトコル。RFC2516
    PPTP Point-to-Point Tunneling Protocol の略。トンネルプロトコルの1 つでWindowsパソコンに標準搭載されています。暗号化アルゴリズムRC4 と組み合わせた使用が可能です。
    PP側 PPとはPoint to Point の略。“PP 側”というのは、Point to Point 接続した相手側という意味です。
    RFC Request for Comments の略。通信に関する取り決めを記述したドキュメントであり、多くの通信装置がこれに基づいてインプリメントされています。しかし、規格ではないことに注意する必要があります。
    RIP,RIP2 Routing Information Protocol の略で、動的経路制御プロトコルの1 つ。ホップ数に基づく経路の優先付けを行う。
    RIPng IPv4 用であるRIP をIPv6 に対応させたプロトコル。
    アクセスレベル セキュリティの観点から、本機へのアクセスには一般ユーザと管理ユーザの2 つのレベルが設定されています。
    コールバック PPP 接続を開始する場合の一形態です。ISDN 回線への発信側がコールバック要求を出して着信側がその要求を受け付けると、通信を接続せずに終了し、改めてその着信側が発信側へ発信し直します。相手に料金負担してもらう場合等に利用します。
    コマンド コンソールから本機に与える命令です。多くのコマンドはユーザがパラメータを指定する必要があります。
    セキュリティクラス アクセスとログインに関する制限のことです。
    フィルタ 本機がパケットを捨てる条件のことです。フィルタをかけることをフィルタリングと言います。主にセキュリティの観点から特定のネットワークに対するパケットの送信/受信を抑止する目的で設定することができます。フィルタには、IP とIPX とブリッジに対するものの3 種類が用意されています。
    リビジョン ファームウェアの版番号のこと。Version と同義語。
    ログインパスワード 本機にログインする時のパスワードです。
    一般ユーザ 本機にログインした直後のアクセスレベルです。一般ユーザのアクセスは、本機の設定内容や管理情報などの参照に限定されています。
    管理パスワード ログイン後に管理ユーザになる時に必要なパスワードです。
    管理ユーザ 本機の設定を行ったり、管理するアクセスレベルです。操作に限定がありません。
    相手先情報 ディジタル専用線またはPPPoE で接続する際に必要な相手側の情報です。
    不揮発性メモリ 本機の電源をOFF にしても、内部情報が失われないメモリのことです。システムのプログラムとユーザの設定情報を保存します。

    CentOSで一般ユーザでw3m

    CentOSで一般ユーザでw3mをすると、セグメンテーション違反ですと表示されて落ちる。rootユーザだと大丈夫。
    ここで、w3mに-no-mouseオプションを付けると、一般ユーザでも落ちずに使用可能になる。
    $ w3m -no-mouse -F -M http://www.google.co.jp
    

    inetd と TCP Wrapper

    ATiのグラボでもGRIDコンピューティング!

    YAMAHA RTX1000関連覚書

       Mask value:                             # of
       Hex            CIDR   Decimal           addresses  Classfull
       80.00.00.00    /1     128.0.0.0         2048 M     128 A
       C0.00.00.00    /2     192.0.0.0         1024 M      64 A
       E0.00.00.00    /3     224.0.0.0          512 M      32 A
       F0.00.00.00    /4     240.0.0.0          256 M      16 A
       F8.00.00.00    /5     248.0.0.0          128 M       8 A
       FC.00.00.00    /6     252.0.0.0           64 M       4 A
       FE.00.00.00    /7     254.0.0.0           32 M       2 A
       FF.00.00.00    /8     255.0.0.0           16 M       1 A
       FF.80.00.00    /9     255.128.0.0          8 M     128 B
       FF.C0.00.00   /10     255.192.0.0          4 M      64 B
       FF.E0.00.00   /11     255.224.0.0          2 M      32 B
       FF.F0.00.00   /12     255.240.0.0       1024 K      16 B
       FF.F8.00.00   /13     255.248.0.0        512 K       8 B
       FF.FC.00.00   /14     255.252.0.0        256 K       4 B
       FF.FE.00.00   /15     255.254.0.0        128 K       2 B
       FF.FF.00.00   /16     255.255.0.0         64 K       1 B
       FF.FF.80.00   /17     255.255.128.0       32 K     128 C
       FF.FF.C0.00   /18     255.255.192.0       16 K      64 C
       FF.FF.E0.00   /19     255.255.224.0        8 K      32 C
       FF.FF.F0.00   /20     255.255.240.0        4 K      16 C
       FF.FF.F8.00   /21     255.255.248.0        2 K       8 C
       FF.FF.FC.00   /22     255.255.252.0        1 K       4 C
       FF.FF.FE.00   /23     255.255.254.0      512         2 C
       FF.FF.FF.00   /24     255.255.255.0      256         1 C
       FF.FF.FF.80   /25     255.255.255.128    128       1/2 C
       FF.FF.FF.C0   /26     255.255.255.192     64       1/4 C
       FF.FF.FF.E0   /27     255.255.255.224     32       1/8 C
       FF.FF.FF.F0   /28     255.255.255.240     16      1/16 C
       FF.FF.FF.F8   /29     255.255.255.248      8      1/32 C
       FF.FF.FF.FC   /30     255.255.255.252      4      1/64 C
       FF.FF.FF.FE   /31     255.255.255.254      2     1/128 C
       FF.FF.FF.FF   /32     255.255.255.255   This is a single host route
    
    Yamaha RTX Router Command Config Get Or Put
    5 6 月, 2008  Router
    Yamaha RTXシリーズ configファイルのtftpからのI/Oコマンド覚書
    
    『読込み』
    tftp ルータIP get config/AdminPassword FilePath
     
    例:tftp 172.16.100.1 get config/hogehoge c:\rtx.conf
     
    『書込み』
    tftp ルータIP put FilePath config/AdminPassword
     
    例:tftp 172.16.100.1 put c:\rtx.conf config/hogehoge
    
    『注意点』
    1.書込みの場合、「clear configuration」がconfigファイル内の先頭に無いと
    現状のconfigに追加されるだけなので、書き換えをしたいのであれば上記コマンドを入れる
    
    2.書込みの場合、フラッシュに記憶させるため最後に「save」コマンドを設定するとよい
    
    3.もちろん、アクセスするクライアントに対して「tftp host」の設定をしておくこと
    -----------------------------------------------------------------------------------
    
    Windowsコマンド集
    コマンド集(機能別) | コマンド集(アルファベット順)
    
    tftp	 ファイルの転送	(Shell)
     構文	 
    TFTP [-I] [ホスト] [{GET | PUT}] [ソース] [転送先]
     オプション	 
    -I	バイナリ・イメージ転送モード (オクテット・モード) を指定する
    ホスト	ローカル・コンピュータまたはリモート・コンピュータを指定する
    PUT	ローカル・コンピュータのファイルを,リモート・コンピュータのファイルに転送する
    GET	リモート・コンピュータのファイルを,ローカル・コンピュータのファイルに転送する
    ソース	転送するファイルを指定する
    転送先	ファイルの転送先を指定する
     利用環境	 
    NT/2000/XP/2003
     説明	 
    簡易ファイル転送プロトコル・サービスまたはデーモンを実行しているリモート・コンピュータとの間でファイルを転送する
     使用例	 
    revise.docをwinproという名前のコンピュータ上のdraft.doc に転送する
    tftp winpro put revise.doc draft.doc
     関連事項	 
    なし
    

    XenServerのコマンド

    どこにも……ヘルプが見当たらない……最近覚えたXenコンソールでのコマンド
    ■VMのリスト xe vm-list
    ■VMのスタート xe vm-start vm="名前"

    64bit かどうか判定する方法 , NIC の DHCP 設定を解除する方法

    ,
    $ getconf LONG_BIT
    

    iPhoneいろいろ

    XenServerのローカルストレージ関連

    iPhoneの電池がスグに無くなる…

    「iPhone 3G」のバッテリーを長持ちさせる15の方法 – iPhone・iPod touch ラボ
    iPhoneのバッテリーを長持ちさせる10の方法 : Gizmodo Japan(ギズモード・ジャパン), ガジェット情報満載ブログ
    iPhoneのバッテリーを長持ちさせる7つの方法:iPhone (アイフォン) 3G、SMSデータベース

    XOOPSって何だ!?

    今更ながら…

    その他、監視ツール

    Linux関連いろいろ勉強

    Poderosaの起動を高速化

    Windowsで
    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>ngen.exe "C:\Program Files\Poderosa\Poderosa.exe"
    

    Linuxで時刻を合わせる

    # ntpdate time.apple.com
    

    CentOSの初期設定など

    GPUGRID関連

    , , ,

    LinuxでもBOINCでGridComputing とりあえずubuntu

    ,
    GUIが無いと動かないらしい?……無くても動いた(・∀・)
    apt-get install boinc-client
    /etc/init.d/boinc-client stop
    boinc&
    boinccmd --project_attach URL アカウントキー
    boinccmd --get_state
    
    boinc_cmd コマンド一覧
    ※/etc/init.d/boinc-clientは動かしてはダメ。
    ※参加URLとアカウントキーはworld community gridのマイ・プロファイルから確認できる。

    ATiのGPUでBOINCに参加する手順

    自動的に sources.lst を設定するスクリプト netselect-apt

    debian lenny のインストール

    debian lenny の sources.list

    deb http://ftp.jp.debian.org/debian/ lenny main non-free contrib
    deb-src http://ftp.jp.debian.org/debian/ lenny main non-free contrib
    deb http://security.debian.org/ lenny/updates main contrib
    deb-src http://security.debian.org/ lenny/updates main contrib
    
    もしくはnetselectやnetselect-aptで選ぶ。

    群雄割拠が続くサーバ仮想化の将来

    フローチャート

    VMware ESXi4 NFSする

    VMwareESXiにNFSでドライブを貸せば、ISOファイルからインストールが可能。
    NFSするCentOS側の設定を下記のようにする。
    # cat /etc/exports
    /share/Linux 192.168.1.0/24(rw,all_squash,sync)
    # /etc/init.d/nfs restart
    
    そして、VMware vSphere Clientのホストの構成タブよりストレージの追加をしてあげればマウントできる!
    ※FC1 / FC2 / FC3 / FC4 / FC5 / FC6 / CentOS4 / CentOS5 の場合FC1 / FC2 / FC3 / FC4 / FC5 / FC6 / CentOS4 / CentOS5 の場合 ⇒  NFS は portmap を使用するので「portmap」を起動する必要があります。
    ※Fedora7 / Fedora8 / Fedora9 / Fedora10 の場合 ⇒  NFS は rpcbind を使用するので「rpcbind」を起動する必要があります。

    VMware ESXi4 インストール

    NICがIntelじゃないと絶対無理。
    VMware ESXi4 のCDイメージを落としてCDに焼く。そしてCDブート。
    XenServerのように適当に画面を進めてインストールして完了。
    WindowsPC等から、ESXi4を入れたPCへブラウザからアクセスするとWelcome画面が出てくる。
    Download vSphere Clientをダウンロードしてインストール。
    あと続きは⇒

    VMware ESXi まとめ

    「脳とやる気」1秒で勉強意欲に火がつく法

    CCleaner

    42歳までに知ることになる、22歳の自分に教えてあげたい12のこと

    <がんばれ街の仲間たち>

    【電柱】
      DQN撲滅のエースで今まで輝かしい戦績を誇ってきた。設置数、強さ、実績とも文句なし。
      NTT電柱単体でも十分な殺傷能力は有するが、送電線電柱(もしくはNTTとの共架電柱)は
      耐用年数約50年というだけあってさらに太く強力である。
    【街路樹】
      電柱と比較し衝突強度は弱いが、地球温暖化防止にも一役買うお得なマルチ兵器。
    【ガードレール】
      強力装備である鉄の爪の除去は進んでしまったが、二輪車両には相変わらずの強みを見せる。
    【中央分離帯・キャッツアイ】
      車両バランスを崩し諸施設への激突を堅実にアシストする縁の下の力持ち。
    【対向車】
      持ち前の機動力で中央分離帯が漏らした車両や二輪車から放り出されたDQNに止めをさす。
      常時警戒型ではないものの加速衝突が鮮やかに決まった際、その威力は脅威的。
    【フェンス・側壁】
      カバー範囲の広さで敵の回避に断固立ち向かう頼れる存在。
    【歩道の段差】
      致命傷を与える力はないが、歩道によれたDQNのトス役を地道にこなす仕事屋。
    【標識柱・信号柱】
      細身の体を鋼鉄の強度でカバーするクールガイ。ひっそり佇みDQNを討つ。
    【マンホール・横断歩道路面標識ライン】
      地味だが雨の日には抜群のスリップ力を発揮する名アシスト役
    【パトカー】
      忘れちゃいけない彼の存在。赤ランプの追い込みが他の仲間の活躍を生む
      絶対的な司令塔でありながら、チャンスは逃さず自分で決めるユーティリティープレイヤー
    【落ち葉】
      秋の紅葉をさかいにヒラヒラと道路に降り積もり見事に珍をスリップから激突もしくは
      死亡へと導くすぐれ物
    <がんばれ街の仲間たち その2>
    【釘】
      道路のレアアイテム。低確率でタイヤをパンクさせ走行困難へと誘う。
    【マンホール】
      悪天候を突いてDQN車両を強襲する交通界の暗殺者。上記のいずれの仲間とも
      コンビネーションを組める万能型。特に磨り減ったベテランの殺傷力は脅威的。
    【踏み切り・通過列車】
      日本で最も安全かつ時間に厳しい社会貢献度抜群の必殺仕事人。遮断機で退路を断ち、
      一撃必殺の攻撃を繰り出す。本屋で万引きをするDQNガキを始末した実績も持つ。
    【鉄製の排水口】
      晴れたときはそんなに威力は無い。
      しかし、ひとたびぬれた場合のスリップ能力は想像を絶する。
      チャリ&バイクに対しては究極兵器かも。
    【側溝】
      フラつく足元を狙う意外な伏兵。ひとたび噛み付かれると自力脱出は不可能。
      田園の憂鬱や峠の守り地蔵となった時、さらなる恐怖をDQNに与える。
    【ガードワイヤー】
      まさに現代に生まれた”ギロチン”といっても過言ではない。
      高速道路に多く、その破壊力は人間を自動車もろとも切断する。
    

    iPhone - [パケット定額フル]定額にならない場合はありますか?

    以下のサービスのご利用分は、「パケット定額フル」の定額対象外となります。
    
    ■□■□ 「パケット定額フル」の定額対象外サービス □■□■
    
     ・通話、TVコール通信
     ・SMS、国際SMS、国際S!メール(MMS)
     ・海外でのご利用分
     ・携帯電話とパソコンなどを繋いでインターネットに接続するモバイルデータ通信(アクセス
      インターネットを含む)
     ・コネクトUSBなどでのモバイルデータ通信(アクセスインターネットを含む)
     ・Xシリーズ以外のノキア機種で、「E-mail クライアント」(取扱説明書などには「メールボックス」
      または「E-mail」と記載)やフルブラウザをご利用された場合
     ・ノキア機種やXシリーズで、アクセスポイントを変更して接続された場合 
    

    教えてクン養成マニュアル

    明日の「教えてクン」を目指す、若き戦士達に以下の文章を捧げる。
    日々精進し、パソコンヲタクどもの親切を蹂躙してやれ。
    1. 努力を放棄すること
    2. いやしくも「教えてクン」たるもの、努力をしてはならない。
      過去ログを読んだり、検索してはいけない。
      「英語は苦手なので、分かりません。」は、高く評価できる。
      辞書片手にマニュアルやReadMeを読むなど、決してしてはならない。
      他力本願と言われようと、自分で調べたり試行錯誤したりせず、 他人の努力の結果を搾取するのが、正しい「教えてクン」である。
      また、「もう何が悪いのかサッパリ分かりません。」 と言ってふてくされるのも有効である。
      「サッパリ」という単語が「やる気の無さ」を効果的に表現している。
      「原因を特定するには、何をすべきでしょうか?」 と訊いてしまうと自己の積極性が現れてしまうので、「教えてクン」失格である。

    3. 情報を開示しないこと
    4. 使用OSや、機器構成などの必須の情報を知らせてはならない。
      マザーボード名やBIOSのバージョンも同様だ。
      具体的なアプリ名やバージョンも隠蔽すべきだ。
      「DVD再生ソフト」のように曖昧に表記しておけばよい。
      反対に「前から欲しいと思っていた○○」とか「安売りされていた ○○」等の 「どうでもいい情報」は、どんどん書いてやれ。
      トラブルの場合は、状況を正確に記述してはならない。
      「なんだかうまく動きません。」とか「エラーが出ます。」 等と具体的なことは何も書かないことが重要である。
      また、自分の試してみた事も具体的に書いてはいけない。
      考えられる組合せのマトリックスを作成し、状況を整理するなどもってのほかである。
      最悪の場合、それだけで問題が解決してしまうこともあるのだ。
      「いろいろやってみたけど、動きません。」が理想的だ。

    5. 答える人間のことを考えないこと
    6. 「教えてクン」は、孤高の戦士である。
      相手のことを考えるようでは教えてクン失格というものだ。
      以下のような行動が、望ましい。
      初心者であることを高らかに宣言し、 初心者向けの丁寧で分かりやすい説明を強要する。
      専門用語の使用を禁じておくとさらに効果的である。
      簡潔な説明を禁じられたヲタクどもは、 同じ内容を説明するのに、何倍もの労力を強いられる。
      自分は努力せず、相手には多大な努力をさせることこそが 「教えてクン」の真骨頂である。マルチポストも有効である。
      そのBBSを信用していないことを明確に示せる。
      「どうせ、お前らじゃ分からんだろう。」という意志表示として高く評価できる。
      もちろんマルチポストの非礼をあらかじめ詫びてはならない。
      それでは、単なる「急いでいる人」になってしまう。
      それは、教えてクンではない。質問のタイトルは、「教えてください。」で良い。
      タイトルを読んだだけでは「何に関する質問」か全く分からない。
      そういう努力は、答える人間にさせれば良いのだ。
      とにかく、答える人間が答えやすいように気を使って質問してはならない。
      傲慢で不遜な態度が必須である。「聞きたいことがあります。」など、 プロの仕事であろう。

      最後に、言うまでも無いことだとは思うが、 答えてくれた人達に礼の言葉を返すなど言語道断である。
      せっかく「教えてクン」を貫いてきたのに、最後にお礼を言っているようでは、 画竜点睛を欠いていると言わざるを得ない。
      質問だけしておいて、後はシカトが基本である。
      上級テクニックとして、「そんなことはもう試しました。」とか、 「そこまで初心者じゃありません。」などと言って、 回答者の神経を逆なでしておけば完璧である。

      以上のことを踏まえて質問すれば、君も立派な「教えてクン」である。
      ビバ!教えてクン! 教えてクンに栄光あれ!!

    Xen

    LVSでの永続処理

    CentOS5.3でipvsadm+keepalived

    UltraMonkeyL7

    マシン1台で簡単確認ロードバランサ

    debianインストール後の言語設定は

    , , , ,
    # dpkg-reconfigure locales
    

    ssh経由でsedでデフォルトゲートウェイを変更

    ssh root@192.168.1.52 'sed -i "s/192.168.1.1/192.168.1.2/g" /etc/network/interfaces'
    

    Debian 目的別パッケージ管理コマンド一覧表



    したいこと

    dpkg

    apt

    aptitude

    基
    本
    コ
    マ
    ン
    ド

    システムの更新情報を取得


    apt-get update

    aptitude update

    システムの更新


    apt-get upgrade

    aptitude upgrade

    パッケージのインストール

    dpkg -i <パッケージ名>



    パッケージのインストール (依存関係もみる)


    apt-get install <パッケージ名>

    aptitude install <パッケージ名>

    パッケージのアンインストール(設定ファイルは残す)


    apt-get remove <パッケージ名>

    aptitude remove <パッケージ名>

    パッケージのアンインストール(設定ファイルも削除)



    aptitude purge <パッケージ名>

    パッケージの依存関係を修復


    apt-get -f install


    情
    報
    の
    表
    示

    パッケージの情報を表示

    dpkg -s <パッケージ名>


    aptitude show <パッケージ名>

    インストールされているパッケージの検索

    dpkg -l | grep <検索する文字>



    インストールされているパッケージの一覧を表示

    dpkg -L <パッケージ名>



    インストールしたいパッケージの検索


    apt-cache search <検索する文字>

    aptitude search <検索する文字>

    応
    用
    コ
    マ
    ン
    ド

    インストール済みパッケージの再設定(debconf)

    dpkg-reconfigure <パッケージ名>



    ソースパッケージのダウンロード

    apt-get source <パッケージ名>

    ソースパッケージの解凍
    dpkg-source -x <パッケージ名>.dsc

    ソールパッケージのコンパイルに必要なパッケージの取得

    apt-get build-dep <パッケージ名>
    ソースパッケージのコンパイル
    dpkg-buildpackage -rfakeroot -us -uc


    パッケージをホールドする。 echo <パッケージ名> hold | dpkg --set-selections
    aptitude hold <パッケージ名>
    パッケージのホールドを解除する。 echo <パッケージ名> install | dpkg --set-selections
    aptitude unhold <パッケージ名>
    ホールドされているパッケージを確認する。 dpkg --get-selections | grep hold
    aptitude search "~ahold" | grep "^.h"
    お
    ま
    け

    イースターエッグ


    apt-get moo

    aptitude moo

    ヒント:vオプションを足していく。

    国内のdebianミラーサイト一覧

    ftp.jp.debian.org
    ftp.debian.or.jp
    ftp.linux.or.jp
    debian.softagency.co.jp
    ftp.TokyoNet.AD.JP
    ftp.dti.ad.jp
    dennou-h.ees.hokudai.ac.jp
    dennou-t.ms.u-tokyo.ac.jp
    dennou-k.gaia.h.kyoto-u.ac.jp
    dennou-q.geo.kyushu-u.ac.jp
    debian.mis.hiroshima-u.ac.jp
    ftp.pu-toyama.ac.jp
    core.ring.gr.jp
    ring.etl.go.jp
    ring.asahi-net.or.jp
    ring.crl.go.jp
    ring.astem.or.jp
    ring.jah.ne.jp
    ring.nacsis.ac.jp
    ring.exp.fujixerox.co.jp
    ring.so-net.ne.jp
    ring.ip-kyoto.ad.jp
    ring.iwate-pu.ac.jp
    ring.shibaura-it.ac.jp
    ring.ocn.ad.jp
    ring.htcn.ne.jp
    ring.omp.ad.jp
    ring.jec.ad.jp
    mirror.nucba.ac.jp
    ftp.ics.es.osaka-u.ac.jp
    ftp.netlab.is.tsukuba.ac.jp
    ftp.lab.kdd.co.jp
    ftp.riken.go.jp
    

    XenServerでNICをチーミング(ボンディング)

    XenCenterからXenServerセットアップ後に設定が可能。ただし、NIC2枚で1組まで。4枚あると、2組のボンディングさ作れる。3枚以上をボンディングは製品版かなぁ?
    ※VMを新規作成する前にボンディングをする事

    pingブロードキャスト反応しないホスト……は

    最近のOSはping -b 192.168.0.255などに反応しません。
    ホスト単体へのpingだと反応があるのに。これはいろんな事情から設定でしてあるみたいです。クラスタリングや相手からの攻撃などに備えて…

    こうすると、ping -bに反応するようになる。
    echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
    

    VMware vCenter Converter

    いつのまに、こんな便利そうなモノが…

    Fedora11でkvm

    XenServer5.5にDebianLenny5.0をインストール

    デビアンのCDイメージから普通にはインストールできません。下記手順で、ネットワーク経由でインストールが可能。
    1. Windowsマシンから、XenCenterでXenServerに接続。
    2. 新規VMボタンを押して新規VMの作成。
    3. テンプレートでDebianLennyを選択。
    4. 名前は適当に入力。
    5. 場所で、インストールURLに"http://ftp.jp.debian.org/debian"を入力。
    6. あとは適当に入力すればOK。自動でネットワークが開始される。かなり待つ。

    ヤマハ・ルータ

    "administrator" で管理者になる。
    
    "show config" で設定表示
    
    "pp select 番号" で、保存している設定情報を指定する。
    つまり、複数の設定を覚える事ができる。
    
    "isdn local address 自分の電話番号" で自分の電話番号を指定する。
    
    "isdn remote address call 自分の電話番号" で接続先の電話番号を指定する。
    
    "pp auth accept pap chap" で PPP のパスワード送信方法を指定する。
    
    "pp auth myname ユーザ名 パスワード" で PPP のユーザ名/パスワードを指定する。
    
    "nat use on/off" で NAT 使用をする/しないを指定する。
    
    "nat masquerade on/off" で IP マスカレード使用する/しないを指定する。
    
    "ppp ipcp ipaddress on/off" で PPP 側の IP アドレスを IPCP? で取得する/しないを決定する。
    
    "nat address global ipcp" で NAT するアドレスを IPCP? で取得したアドレスにします。
    
    "connect 番号" で番号で指定された保存している設定で接続する。
    
    "disconnect 番号" で番号で指定された保存している設定で切断する。
    
    "isdn auto connect on/off" で番号で指定された保存している設定を自動接続する/しないを設定する。
    
    "isdn auto disconnect on/off" で番号で指定された保存している設定を自動切断する/しないを設定する。
    
    "login password" でログイン時のパスワードを設定する。
    
    "administrator password" でログイン時のパスワードを設定する。
    
    "ip filter 番号 pass 元IPアドレス 先IPアドレス プロトコル 元ポート 先ポート" でフィルタリング
    
    "ip filter 番号 reject 元IPアドレス 先IPアドレス プロトコル 元ポート 先ポート" でフィルタリング
    
    プロトコル : UDP,TCP,Established,ICMP
    (Established は TCP の最初の接続のパケット以外を指す)
    (pass は通して、reject は通さない)
    
    で、設定し、
    
    "ip pp secure filter in 番号1,番号2,番号3,...." でフィルタを有効にする。
    "save" で設定を保存
    
    "restart" で再起動
    
    "ip lan route add host IPAddress" でなんでしょう
    lan 側のコネクションを、IPアドレスを割り当てます?。
    そのIP アドレス宛てのパケットが着たら、lan 側に流します?。
    
    "ip filter delete 番号" フィルタの削除
    
    "pp line 種類 [BCH]" 電話する種類
    種類 : isdn or l64 etc....
    [BCH] : 1b or 2b
    
    コマンドの例)
    pp line isdn
    isdn local address xx-xxxx-xxxx
    pp select 1
    isdn remote address call xx-xxxx-xxxx
    isdn auto connect off(on)
    isdn disconnect time off(on)
    
    コマンドの例)
    ip pp route add net default 1
    (別にもあると、default はできない)
    pp auth accept pap(chap)
    pp auth myname ユーザ名 パスワード
    nat use on
    nat address global ipcp
    nat address private 192.168.1.1
    ppp ipcp IPアドレス on
    ppp enable 1
    
    "connect 名前" 名前で指定した設定情報で接続
    
    "disconnect 名前1" 切断
    
    ■フィルタの順
    指定順。
    つまり、"ip pp secure filter in 番号1,番号2,番号3,...." と指定した場合、「番号1」->「番号2」->「番号3」とフィルタルールがチェックされ「真」になったところでチェックは終了する。
    
    ■pp と lan
    pp
    isdn などのインターフェイス
    lan
    LAN 側のインターフェイス
    
    ■in と out
    インターフェイスに対してのパケットの方向。
    LAN から、外部へ行くパケットは、 「ip lan in」->「ルーティング」->「ip pp out」 の順でフィルタされる。
    外部から LAN へ行くパケットは、 「ip pp in」->「ルーティング」->「ip lan out」 の順でフィルタされる。
    

    xenでHDDをRaid1する方法

    , ,

    xen日本語マニュアル

    XenServerを極める特集

    仮想化技術情報

    , ,

    xenにubuntu

    xenとかkvm

    XenServer 5.5.0 の Debian 4.0(etch) での GPG エラーの対策

    # gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 9AA38DCD55BE302B
    # gpg --armor --export 9AA38DCD55BE302B | apt-key add -
    # wget -q http://updates.vmd.citrix.com/XenServer/5.5.0/GPG-KEY -O- | apt-key add -
    

    やっぱりDebianかも…XEN

    ,

    ホストOS型xen

    ,

    ZABBIX

    ,

    PhenomII X2 550 GIGABYTE MA770T-UD3P 4コア検証済SET

    マザーボードの製品詳細はこちらです。
    
    BIOS設定ACC AUTOにて2コア→4コア化検証済です。
    XP PROにてデバイスドライバのセットアップ、
    3DMARK、CRYSTAL MARK2004ベンチマークの動作確認済です。
    BIOSは最新のVer F2にアップ済です。
    動作時間は5時間程度で新品同様の美品です。
    
    4コア化可能なPhenomII X2 550とマザーのセットでの出品となります。
    付属品の欠品は一切なく、全て揃っております。
    中には4コアで動作しないロットもあるようですが、
    今回出品するこちらの商品は検証済ですので、大変お買い得です。
    

    debianのパッケージ管理コマンド一覧

    プチフリーズバスター

    FlashPointが無くなって有料版で復活?してます。

    PCI カードの形状とバス幅・電圧の規格

    PCIスロットの形状
    PCIスロットは、規格に適合したPCIカードしか装着できないように設計されています。
    PCIスロットには、32Bitのコネクタと64bitのコネクタがあり、さらにPCIカードの電圧仕様にあわせ32Bitのコネクタに、3.3V仕様は手前側(下図では左側)、5V仕様は奥側(下図では右側に)に切り欠きがあり、誤装着できないようになっています。
    カード側
    32bitPCIのばやい
    ┗━┛┗━━━━┛┗━┛ 3.3V、5V両方対応
    ┗━━━━━━━┛┗━┛ 5V専用
    ┗━┛┗━━━━━━━┛ 3.3V専用
    64bitPCIのばやい
    ┗━┛┗━━━━┛┗━┛┗━━━━┛ 3.3V、5V両方対応
    ┗━━━━━━━┛┗━┛┗━━━━┛ 5V専用
    ┗━┛┗━━━━━━━┛┗━━━━┛ 3.3V専用
    
    スロット側
    32bitPCIのばやい
    ┏━━━━━━━━━━┓3.3V、5V両方対応
    ┗━━━━━━━━━━┛
    ┏━━━━━━━┳━━┓5V専用
    ┗━━━━━━━┻━━┛
    ┏━━┳━━━━━━━┓3.3V専用
    ┗━━┻━━━━━━━┛
    64bitPCIのばやい
    ┏━━━━━━━━━━┳━━━━━┓3.3V、5V両方対応
    ┗━━━━━━━━━━┻━━━━━┛
    ┏━━━━━━━┳━━┳━━━━━┓5V専用
    ┗━━━━━━━┻━━┻━━━━━┛
    ┏━━┳━━━━━━━┳━━━━━┓3.3V専用
    ┗━━┻━━━━━━━┻━━━━━┛
    

    ホームページ丸ごとダウンロード

    GetHTMLW

    WindowsServer2008でサーバ構築

    評価版が240日使いえるとかで、Microsoft太っ腹!

    旧CPU一覧表

    kvm

    vmplayerのimageをqemuで作成

    Fedora11でkvm+qemu

    ブート能力のないWindows 9X系インストールCDを組み込む

    findしてtar

    たとえば、10日以内に更新されたファイルの差分をtar.gzで固めたい場合、
    find ./ -mtime -10 | xargs tar zcvf hogehoge.tar.gz
    

    ディレクトリサービスとは

    ディレクトリサービスとは、ネットワークで使用する各種の資源情報( PCやプリンタなど )をデータベースで管理し、ユーザがその情報を簡単に検索できるようにした仕組みの総称。

    WindowsServer2003構築

    ClamWin Free Antivirus

    WindowsServer2003用のフリーなウィルス対策ソフトはコレくらいしか無いみたい。

    xen

    Citrix Essentials for XenServer 5.5

    WindowsでTeaming

    WindowsにNICを複数枚挿してチーミング(トランク)させるのは……
    Linux と違って Windows には teaming の機能はありません.
    ですので,専用の application/device driver を install して実現します.
    ※Broadcom Advanced Control Suite とか Intel PROSet II とか.
    (同じではありませんけど「ネットワークブリッジ機能」ならもともと備えています.)

    Windows2003 or 2008比較

    , , Windows Server 2008の基礎知識

    LinuxVirtualServerProject

    Linux/atコマンド

    デフォルトゲートウェイ(GW)の変更方法

    # route add default gw 192.168.0.2
    # route del default gw 192.168.0.1
    

    EXCELで抽選会

    B列が1〜20のランダム配置
      A    B
    1 =RAND() =RANK(A1,$A$1:$A$20)
    2 ↓    ↓
    3 ↓    ↓
    : :    :
    : :    :
    20 ↓    ↓
    

    クラスタリング

    ・「群れ」「房」の言葉どおり、クラスタシステムとは「複数のコンピュータを一群(または複数群)にまとめて、信頼性や処理性能の向上を狙うシステム」といえます。しかし、その種類はさまざまで、次のように分類することができます。
    ●HA(High Availability)クラスタ
     ○フェイルオーバークラスタ
      共有ディスクタイプ
      データミラータイプ
      遠隔クラスタ
     ○負荷分散クラスタ
      ロードバランスクラスタ
      並列データベースクラスタ
    ●HPC(High Performance Computing)クラスタ

    はんだシュッ太郎

    冗長化と可用性

    EXCELで住所を入力すると郵便番号が表示される

    =LEFT(PHONETIC(C2),8)
    

    HDDデフラグソフト

    mydeflag

    Craving Explorer

    YouTube・ニコニコ動画ダウンロードブラウザ Craving Explorer

    FinePC

    範囲でpingを打って端末を見つけてくれる。

    nLite

    スパボ一括8円ケータイ?

    pptpサーバ用にrtxを空ける

    in -> out は全部pass
    out -> in で、1723とgreを通せばOK
    ※in -> out で全部passしてないと、establishedなど使用しなくてはいけない。

    RTX システム奮闘記

    rtxから他PCへtelnet

    最後をonにすると、ルータから他へtelnetが使用可能になる。
    # security class 2 on on 
    

    Windowsのコマンド集

    ,

    IMEショートカット全集

    NTPサーバ一覧

    SayMove!

    やはり履歴書は手書きがいいの? 採用担当者はココを見ている

    仮想化道場

    Excelの便利ワザ

    「Ctr」キーと「Y」キーの同時押しで「繰り返し」が実行できます。

    USBブート推進協議会

    heartbeatでクラスタリング

    , pdf

    Ubuntu Linux による自宅サーバーの構築

    apcupsd
    awstats
    bind
    cpus
    dovecot
    fetchmail
    iptables
    ldap
    ntp
    openssh
    pdc
    postfix
    squid
    security

    止まらないシステムはLinuxで作る!〜オープンソースを活用したHAサーバ構築入門

    ubuntuセットアップについてイロイロ

    ,

    時間を有効に使うための14の時間管理術

    1.TO DOリストを作成する
    いわゆる行動チェックリストの作成。しかも一度作って放置ではなく、必要があれば逐次更新する。そのためにもデジタル式の媒体(携帯電話など)の方が運用はしやすい。さらにできるだけ要件を細かく分解し、詳しく書き連ねること。

    時間配分イメージ2.時間を配分する
    TO DOリストの内容について時間を配分する。短時間でできるものがあれば、電車の待ち時間などふいに訪れた「スキマ時間」に行えることも見えてくる。

    3.デッドラインの設定とその遵守
    各作業のデッドラインを設定し、その期日を極力守るようにする。明確な目標を設定することによってプレッシャーはかかるものの、遵守率は高くなる。

    4.効率的な時間の活用
    例えばメールチェックを毎日決められた時間にのみ行う、同じメールを何度もチェックしない、今この瞬間に返事をする時間がないのならメールのチェックは後回しにする、同じ書類を二度三度読み返すようにしないなどなど、余計な時間拘束は極力避けるようにする(【「電子メール中毒」からの解放を目指して・12ステップ解消法】なども参考になる)

    机の整理イメージ5.机の整理整頓
    いざという時にすぐに必要な文具を見つけ出せるように、机の上を整理しておく。さらにデスクトップやメールソフトの受信メールフォルダーもきれいにまとめ上げておく。

    6:自分の仕事に執着する
    自分宛の書類箱を作り、そこに書類をまとめておいてもらうようにする。さもないと机の上が自分宛の書類で煩雑化し、ゴミ溜めのようになる。

    7.邪魔を避ける
    時間がまったく無いのなら、個室で作業をしている場合には扉を閉める。同僚にもその旨を伝えて対応するヒマが無いことを意思表示しておく。

    8.共同・協力姿勢を忘れずに
    単独作業でなく同僚らと共同した作業の場合、自分は同僚の作業が予定通り終了する前提でいるし、同僚も自分の作業が予定通りに終わるつもりで進行している。しかしその思惑が100%うまくいくとは限らない。どちらかが(何らかのトラブルで)相手の足を引っ張る可能性も否定できない。あらかじめ締め切りよりも早めに作業を終えられるよう勤めるのが無難。同僚が作業に遅れを来たした場合でも、自分が「予定通り」締め切りより早めに終えていれば、残りの時間を手助けに充てられるからだ。

    9.不必要なフォローアップを止める
    進捗状況の検証や分析、適切なアドバイスは必要だが、それが「横やり」「茶々入れ」のレベルになると、単なる邪魔でしかない。個々に「責任」を与えた上で委任しているのだから、それに任せるべき。一から十まで自分が把握しようとすると、自分自身がオーバーフローを起こすだけでなく、フォローアップを受けた側も効率が低下しかねない。

    だらけた会議イメージ10.定期会議を止める
    定期会議が本当に必要なら、定刻に終えるように努める。もし「会議のための会議」となっているのなら、それは単なるムダでしかないので見直しを図るべき。

    11.「多忙状態」を維持する
    常に最低でも一つのプロジェクトに携わる状態を維持し、緊張感をキープする。さらに単なるルーチンワークの繰り返しではなく、複数のプロジェクトに関わることで、心身ともリフレッシュが出来、アクティブさを確保できることになる。

    12.プロジェクトは慎重に選ぶ
    いくら自分自身が真剣に、そして誠心誠意をもって努めても、手がける作業がロクでもないものなら、モチベーションは下がるし時間の無駄となり、時間管理どころではなくなる。対象となるプロジェクトが会社、そして自分自身にプラスとなるものか否かを判断するのが大切。例えば「これは自分のキャリアにプラスとなるのか」「この作業に時間を費やして良いのか」と自問自答する姿勢を持たねばならい(【残業を断るための5つの決めゼリフ】などが必要になる場合もあるだろう)。

    13.イヤなことの先延ばしは止める
    つまらないことを後回しにしたくなるのは人間の性(さが)というもの。しかし「つまらないこと」を先に手がけることで、「これが終われば次に自分の興味深い作業に取り掛かれる」というポジティブな心境で作業をすることができる。逆に後回しにしてしまうと「このあとには、あのイヤな作業をしなきゃならないよ」という思いにかられ、好きな作業の効率も落としかねない。例えば数字とにらめっこをするのが苦手な人なら、会計関連の作業は(頭がさえている)朝一にこなしておくべきだ。

    14.「ごほうび」の設定
    時間管理は純粋な仕事の作業だけとは限らない。仕事・作業を終えて、一休みをし、活力を充てんすることも含まれる。また、あらかじめ「ごほうび」を自己設定しておくことで、モチベーションも高まり、作業効率も上がり、予定通りに作業をこなせ、時間の管理もうまくいくはずだ(「ごほうび」そのものについては【やる気を回復させる4つのポイント】も参考になる)。

    あなたが3日坊主で終わる理由。あるいはメンヘル療法。

    sed,awk,perlで行頭・行末に挿入

    sed -e 's/^/"/;s/$/"/' test.txt
    awk '{$0="?"" $0 "?"";print}' test.txt
    perl -pe 's/^/"/;s/$/"/;' test.txt
    

    debianインストール後の標準時刻設定など

    sed -i 's/D29/D79/g' /etc/hosts
    sed -i 's/D29/D79/g' /etc/hostname
    /etc/init.d/hostname.sh
    
    mount /dev/xvdd /mnt/
    sh /mnt/Linux/install.sh
    
    sed -i 's/UTC=yes/UTC=no/g' /etc/default/rcS
    shutdown -r now
    

    xenでのactivate手順

    Windowsをコマンドでシャットダウン

    shutdown -s -f -t 0

    xen server 5.5 でdebian lennyをNetInstするURL

    http://ftp.yz.yamagata-u.ac.jp/debian
    http://ftp.nl.debian.org/debian/

    Ubuntu Server に関するメモ

    xen server tools install

    debianでapt-getでgpgエラーの際は

    tarコマンドで覚えておくと便利なものたち

    tarに関するメモ
    
    パーミッションをそのまま保持する
    $ tar cpf archive.tar archive
    
    gunzipにしてパーミッションも保持
    $ tar zcpf archive.tar archive
    
    tarで固めるときにファイル名に日付を使いたい
    $ tar cpf archive_`date '+%Y%m%d%'`.tar archive
    
    時間も入れる
    $ tar cpf archive_`date '+%Y%m%d%H%M%S'`.tar archive
    
    .svnとか.projectとかよけいなものを入れない
    $ tar cpf archive.tar --exclude .svn --exclude .project archive
    

    CentOSでvimの環境設定などなど

    $ vi ~/.vimrc
    :set number
    :set encoding=utf-8
    :set fileencodings=iso-2022-jp,euc-jp,sjis,utf8
    

    CentOSにXenをインストール

    Xenのインストールメモ
    
    xenblkモジュールを読み込むように設定
    # vi /etc/modprobe.conf
    alias scsi_hostadapter xenblk
    
    
    xenカーネルで起動するように設定
    # vi /etc/sysconfig/kernel
    DEFAULTKERNEL=kernel-xen
    
    
    xen本体とxenカーネルをインストール
    # yum -y install xen kernel-xen
    
    
    楽するためにスクリプト作ってみました。
    
    #!/bin/bash
    
    # Add xenblk module
    echo alias scsi_hostadapter xenblk >> /etc/modprobe.conf
    
    # Change default kernel
    mv /etc/sysconfig/kernel /etc/sysconfig/kernel.org
    sed -e "s/DEFAULTKERNEL/#DEFAULTKERNEL/g" /etc/sysconfig/kernel.org > /etc/sysconfig/kernel
    echo "DEFAULTKERNEL=kernel-xen" >> /etc/sysconfig/kernel
    
    # Install Xen and Xen kernel
    yum -y install xen kernel-xen
    

    xenでのpeth0とは

    ドムゼロのコンソールでifconfigを打つと、見慣れたeth0やloの他に、見慣れないデバイス名がたくさん出てきて不気味な気分になる。
    これらのうちまず「peth0」はXenでないときのeth0だ。Xenを起動すると、まずこの物理デバイスeth0がpeth0のお札をペシっと貼られて封印され、その中身はXenがひねくり出したニセのeth0にそっくりコピーされてしまう。だから今ifconfigで出てきたeth0デバイス、アドレスも生意気に割り振っててパケットの受渡しなんぞも記されているが、そいつは偽物よッ!ということになるのだ。
    というのは実はちょっと違っていて、Xenはまずvif0.0、vif1.0,vi2.0...という仮想インターフェイスを自分の中に作り出し、物理デバイスeth0のマネをするのはこのうちのvif0.0だ。ドムゼロが起動するときには普通のLinuxと同じようにネットワークはどこですかぁーと探すと、ハードウェア情報の代わりにこのvif0.0の情報がeth0に渡されるわけで、正確にはだまされているのはeth0、ワタシも被害者なんですということになる。
    同様に、Xenの仮想インターフェイスvif1.0はある追加ドメインのeth0になり、vif2.0は別の追加ドメインのeth0になる。じゃあ物理デバイスが2個ある場合はというと、物理デバイスeth1がvif0.1を通じてドムゼロのvif0,1になり以下同様。
    実は物理デバイスは1個しかなくてもまさに架空のvif0.1をひねくり出して追加ドメインに複数の仮想ネットワークデバイスを与えることもできるらしいがそれはむづかしいらしいので深く追求しないー。
    なお、ドムゼロからifconfigで見えるのはpeth0とvifの情報までで、仮想カメのeth0やeth1のアドレスがどうなっているかとかは見えない。

    仮想マネージャでのnetinst

    http://ftp.riken.jp/Linux/fedora/releases/10/Fedora/i386/os/
    images/xenディレクトリが上にある場所を指定

    ネットワークツール

    IPエイリアスの指定

    ifconfig eth0:0  192.168.1.12
    
    物理的に1つのインターフェイスに、複数のIPアドレスを割り当てるのがIPエイリアスだ。この設定により、仮想的に複数のインターフェイス(IPアドレス)を利用可能になる。必要になることは少ないだろうが、例えばISP業者のように、1台のサーバマシン上で複数のWebサーバを起動して、それぞれ別の IPアドレスを割り当ててサービスを提供する場合などに利用される。

    実践でも役立つLPICドリル

    最新チップセットG45にLinuxをインストール

    ネットワーク監視ソフト

    いろいろあるなぁ。NagiosとかHinemosとかフリーのしか知らない(笑

    natかbridgeか

    【NAT】 ⇒ libvirt
    【Bridge】 ⇒ bridge-utils

    virbr0とは

    , , インストール時に仮想化のパッケージを選択してるとデフォルトでlibvirtdがインストールされて
    ・Domain0上に192.168.122.0/24のDCHPサーバが起動する。
    ・Domain0に仮想スイッチvirbr0が作られる。
    ・Domain0には192.168.122.1が割り当てられてvirbr0に接続される。

    KVMでブリッジ接続をする

    , , , , , ,

    Firefoxの標準設定

    フォントはMS Pゴシック16

    922SH(920SH)で携帯動画変換君

    409 名前:白ロムさん[sage] 投稿日:2008/10/18(土) 14:32:41 ID:T2s5FtNP0 
    動画を920SH用に変換する方法 
    
    QuickTime for Windows 7.2をインストール 
      
    ttp://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=14402&cat=59&platform=osx&method=sa/QuickTimeInstaller.exe 
    
    Avisynthをインストール 
      
    ttp://downloads.sourceforge.net/avisynth2/Avisynth_257.exe?modtime=1168199840&big_mirror=0 
    
    7搬啼芦菠儡昂をダウンロードして解凍する 
      
    ttp://mobilehackerz.jp/contents?plugin=attach&refer=3GPConv&openfile=3GP_Converter034.zip 
    
    な儡昂のcoresフォルダにQT_3GPP(MobileMP4)_VGA_AAC.iniを入れる 
      
    ttp://mobilehackerz.jp/archive/wiki/index.php?plugin=attach&refer=920SH&openfile=QT_3GPP%28MobileMP4%29_VGA_AAC.ini 
    
    ナ儡昂のdefault_settingフォルダにTranscoding_XviD_AAC_920SH.iniを入れる 
      
    ttp://mobilehackerz.jp/archive/wiki/index.php?plugin=attach&refer=920SH&openfile=Transcoding_XviD_AAC_920SH.ini 
    
    κ儡昂フォルダのSetup.exeを起動して「920SH向け MP4ファイル Xvid・AAC」を選択 
    
    
    Р莠狙瀋蠅鯀んで動画をドラッグ&ドロップで変換が始まる 
    
    変換した動画をmicroSDカードのVideosフォルダ(\PRIVATE\MYFOLDER\My 
    Items\Videos\)に入れる 
    
    
    831 白ロムさん[sage] 2009/01/16(金) 08:17:42 ID:Cka/pq1o0 
    >>23ってもしかして最新のQuickTime7.5じゃうまくいかない? 
    
    832 白ロムさん[sage] 2009/01/16(金) 14:53:09 ID:mFUoMnb70 
    >>831 
    うん、上手く行かない。 
    俺はv7.4をアップルのサイトから落として入れ替えたよ。 
    あと、設定ファイルのフレームレートを落とさないと映像が止まる事がある。 
    
    925 白ロムさん[sage] 2009/01/27(火) 22:24:05 ID:v8g6KMZc0 
    >>831,832 
    コンパネ−Quicktime設定ー詳細で、 
    レガシーコーデックを使用したエンコーディングを有効にする 
    にチェック入れれば7.4以降でも幸せになるかも。てか、うちではできている。 
    
    926 白ロムさん[sage] 2009/01/28(水) 10:14:24 ID:ZGfaxcwJ0 
    >>925 
    テンプレ追加 
    
    まず、携帯動画変換君の優先度を上げます。
    変換君と同じフォルダにある
    3GP_Converter.ini
    を右クリック→編集で開きます。
    
    ExePriority=0と書かれている部分があるので、
    0を2に書き換えて上書き保存
    
    つづいて、同時処理数を変更します。
    変換君と同じフォルダにある
    default_settingフォルダの中から
    設定したいiniファイルを右クリック→編集で開きます。
    
    Command0=""<%AppPath%>\cores\ffmpeg" 〜という部分を探して
    
    「 -threads 2」を追加します。
    
    変更後はこんな感じ
    Command0=""<%AppPath%>\cores\ffmpeg" -threads 2〜 
    
    ちなみに、 デュアルコアなら「-threads 2」
    クアッドコアなら「 -threads 4」
    になります。
    
    あとは、変換君と同じフォルダにある
    「setup.exe」を実行して、
    設定ファイルを選択しなおします。
    
    最後は、いよいよ変換実行!
    
    いつもより、数倍早い変換速度に感動することうけあいです。
    
    

    LVSで構築するgatewaying型負荷分散システム(クラスタリング)

    , ,

    2chの過去ログ検索

    にくちゃんねる

    lessの文字化け

    ~/.bashrcに次の行
    alias less='lv'
    
    を挿入して、lessのエイリアスをlvとしておく。

    LANケーブルの作成方法

    , Linuxユーザのためのチップス

    半田付け

    Windowsの便利操作(ショートカット)

    辞めさせるのも大変なんだ…

    CPUが仮想化に対応しているかどうか…

    $ egrep '(vmx|svm)' /proc/cpuinfo
    

    再びUbuntuでkvm

    , , , , , ,

    CUIで一通りkvmを操作

    , ミラー

    Linuxでシリアル接続

    NetScreenをハード的に初期化する

    ピンホールを6秒ほど押す
    (STATUSランプがオレンジ色になる)
    2秒ほど待つ
    (STATUSランプが緑色になる)
    ピンホールを6秒ほど押す
    (STATUSランプが赤色になる)
    赤から「オレンジ⇒緑・・・」が繰り返されれば成功
    192.168.1.1で接続
    

    keepalivedでvrrp

    SNMP TRAP


    SNMPを使ったネットワーク管理で,管理対象となる端末から管理サーバーに届けられる状況通知用のレポート。SNMPエージェントが稼働する端末上で,あらかじめ指定したイベントが発生したり,しきい値に達したときにSNMPマネージャに送信する。

    よく利用されるポート番号とプロトコル

    No. Protocol 用途
    20 ftp-data ファイル転送(データ本体)
    21 ftp ファイル転送(コントロール)
    22 ssh シェル:SSH(セキュア)
    23 telnet シェル:telnet
    25 smtp メール送受信:SMTP
    53 domain DNS
    70 gopher gopher
    80 http WWW
    110 pop3 メール受信(POP)
    119 nntp ネットニュース
    143 imap メール(IMAP)
    443 https WWW(セキュア)

    RTX1000 / RTX1100 のファームウェア更新

    ルータにログインしtftpを許可する。
    # tftp host 192.168.0.2
    
    Linuxからファームを転送してバージョンアップ
    $ tftp -v -m binary 192.168.0.1 -c put rtx1100.bin exec
    

    WindowsサーバーのActiveDirectoryって何?

    って、ずっと思ってました。こんなに凄いとは…

    RTXで使用できるネットワーク数

    LAN分割機能(LAN1の)と、Primary/Secondary(LAN1の)を使えば最大で7つ?
    ip lan1 address 192.168.0.1/24
    ip lan1 secondary address 192.168.1.1/24
    ip lan1.2 address 192.168.2.1/24
    ip lan1.3 address 192.168.3.1/24
    ip lan1.4 address 192.168.4.1/24
    ip lan2 address 192.168.5.1/24
    ip lan3 address 192.168.6.1/24
    

    RTXで自動時刻合わせ

    schedule at 1 */* 05:00 * ntpdate 219.164.211.129
    

    RTX1100でVRRPで冗長化

    ,
    ・マスタールータ
    プライマリアドレスとVRRPの仮想IPアドレスが同じ場合は、自動的にPriorityが255と最大値になりマスタールーターと設定される。
    ・バックアップルータ
    プライマリアドレスと仮想IPアドレスが違う場合のデフォルトのPriorityは100が設定される。

    Ubuntu9.04 on Windows7

    RTX1000でLAN1をポート毎に別インタフェースとして扱うことのできる機能

    機能を有効にすると、インタフェース名としてlan1が使えなくなり、新たに、lan1.1、lan1.2、lan1.3、lan1.4が使えるようになる
    lan1.1〜lan1.4は別セグメントとして扱える
    lan1.1〜lan1.4はすべて同じMACアドレスを持つ
    ファストパスには対応していない
    lan1.1〜lan1.4についてshow status lanコマンドの表示は、lan1の場合と全く同じとなる。個々のインタフェース毎に送受信パケットをカウントすることはできない
    QoS機能をlan1.1〜lan1.4に適用することはできない
    例:
    lan type lan1 port-based-ks8995m=on
    ip lan1.1 address 192.168.1.1/24
    ip lan1.2 address 192.168.2.1/24
    ip lan1.3 address 192.168.3.1/24
    ip lan1.4 address 192.168.4.1/24
    

    ネットワーク経由でのファイル転送のOS別速度

    OSによってネットワーク経由でのファイル送受信の速度が違う…ナゼだろう。
    Windows -> 持ってくる(引っぱる)と最大速度が出る。送るのは遅い。
    Linux(Samba) -> 受ける(書き込んでもらう)のが速い。

    ccstudy

    次はココ

    やっぱりXenもいいなぁ

    rtxでフィルター



    ip filter 任意の番号 [reject/pass] 送信元IP 宛先IP プロトコル 送信ポート 宛先ポート
    # ■静的フィルタの定義
    # 静的フィルタとして以下の定義をします。
    # ※フィルタ番号はあくまでも私の環境で適用した番号であり、利用する環境によって異なります。
    # (1) LAN側(LAN1)のフィルタ
    # WindowsのNetBiosなどを遮断するフィルタの定義
    ip filter 100000 reject * * udp,tcp 135 *
    ip filter 100001 reject * * udp,tcp * 135
    ip filter 100002 reject * * udp,tcp netbios_ns-netbios_dgm *
    ip filter 100003 reject * * udp,tcp * netbios_ns-netbios_dgm
    ip filter 100004 reject * * udp,tcp netbios_ssn *
    ip filter 100005 reject * * udp,tcp * netbios_ssn
    ip filter 100006 reject * * udp,tcp 445 *
    ip filter 100007 reject * * udp,tcp * 445
    ip filter 100099 pass * * * * *
    # (2) WAN側(LAN2)のフィルタ
    # LAN側のIPアドレスを送信元で詐称している通信のフィルタの定義
    # 200000,200001,200002は一般的にいわれるプライベートIPの遮断フィルタです。
    # 200003は利用するネットワークアドレスを定義します。
    ip filter 200000 reject 10.0.0.0/8 * * * *
    ip filter 200001 reject 172.16.0.0/12 * * * *
    ip filter 200002 reject 192.168.0.0/16 * * * *
    ip filter 200003 reject 192.168.0.0/24 * * * *
    # LAN側のIPを宛先としてWAN側からくる通信を遮断するフィルタ
    # 200004,200005,200006は一般的にいわれるプライベートIPの遮断フィルタです。
    # 200007は利用するネットワークアドレスを定義します。
    ip filter 200004 reject * 10.0.0.0/8 * * *
    ip filter 200005 reject * 172.16.0.0/12 * * *
    ip filter 200006 reject * 192.168.0.0/16 * * *
    ip filter 200007 reject * 192.168.0.0/24 * * *
    # WindowsのNetBiosなどを遮断するフィルタの定義
    ip filter 200008 reject * * udp,tcp 135 *
    ip filter 200009 reject * * udp,tcp * 135
    ip filter 200010 reject * * udp,tcp netbios_ns-netbios_ssn *
    ip filter 200011 reject * * udp,tcp * netbios_ns-netbios_ssn
    ip filter 200012 reject * * udp,tcp 445 *
    ip filter 200013 reject * * udp,tcp * 445
    # ICMP,ident等、WAN側から最低限応答するプロトコルの指定
    ip filter 200014 pass * * icmp * *
    ip filter 200015 pass * * established * *
    ip filter 200016 pass * * tcp * ident
    # フィルタで遮断しない通信を明示的に通過させる定義
    # 利用しなくともこの定義は作っておきましょう。
    ip filter 200099 pass * * * *
    
    # ■動的フィルタの定義
    # 静的フィルタは通信の通過、拒否を判断しますが、動的フィルタは指定した種類の通信があるときのみ穴をあけ、通信が完了すると穴を閉じる動的なフィルタをいいます。
    # 動的フィルタとして以下の定義をします。
    # ※フィルタ番号はあくまでも私の環境で適用した番号であり、利用する環境によって異なります。
    ip filter dynamic 200080 * * ftp
    ip filter dynamic 200081 * * domain
    ip filter dynamic 200082 * * www
    ip filter dynamic 200083 * * smtp
    ip filter dynamic 200084 * * pop3
    ip filter dynamic 200085 * * telnet
    ip filter dynamic 200098 * * tcp
    ip filter dynamic 200099 * * udp
    
    # ■フィルタの適用
    # 静的、動的フィルタを定義しましたが実際、適用しなければ有効となりません。
    # 定義したフィルタを以下のように適用します。
    # LAN側からWAN側への通信の定義
    # これでWindowsのNetBios等が遮断されます。
    ip lan1 secure filter in 100000 100001 100002 100003 100004 100005 100099
    # WAN側からLAN側への通信の定義
    # 2行にわたって記述していますがもちろん1行で記入してください。
    ip pp secure filter in 200000 200001 200002 200003 200008 200009 200010 200011 200012 200013 200014 200015 200016
    # LAN側からWAN側への通信の定義
    # 動的フィルタの適用により内部からの通信の戻りを許可しています。
    # 3行にわたって記述していますがもちろん1行で記入してください。
    ip pp secure filter out 200004 200005 200006 200007 200008 200009 200010 200011 200012 200013 200099 dynamic 200080 200081 200082 200083 200084 200085 200098 200099
    # ここでは、接続がPPPoEということでの定義ですが専用線など直接LAN2にIPの定義がある場合はppという定義は lan2 として置き換えてください。
    
    # ■不正アクセス検知の定義
    # ヤマハRT/RTXには不正アクセス検知というすばらしい機能があります。
    # どのように機能するのかわかりませんが一応定義しておいて損はないでしょう。
    ip pp intrusion detection in on reject=on
    ip pp intrusion detection out on reject=on
    # こちらも、専用線接続の場合は lan2 と置き換えて定義してください。
    

    綺麗なコンフィグ

    RTX1000等、tftpコマンドでconfigを取得すると綺麗な形で出力されます。

    RTFAN

    こんなサイトが

    1つのIPアドレスでインターネットもPPTPもIPsecも!!

    RTX1000でフレッツスクエアとPPTPとIPsec。
    nat descriptor type 1 masquerade
    nat descriptor address outer 1 グローバルIP
    nat descriptor address inner 1 192.168.1.254
    nat descriptor masquerade static 1 1 192.168.1.254 udp 500
    nat descriptor masquerade static 1 2 192.168.1.254 esp
    nat descriptor masquerade static 1 3 192.168.1.254 tcp 1723
    nat descriptor masquerade static 1 4 192.168.1.254 gre
    

    ファイルが多すぎます

    -bash: /bin/grep: Argument list too long
    -bash: /bin/grep: 引数リストが長すぎます
    などなど、表示されようものならxargsで!
    # ls | xargs rm -fv
    

    Linux便利な小技ページ



    RTX1100をrarpdで設定する@Debian

    こんな技があるなんて!シリアルケーブル要らず…

    ipsec sa policyコマンドは、どんな組み合せが可能ですか?

    RTXでインターネットとVPNを併用

    【可否】
    センター&複数拠点間ネットワーク
    VPN接続の他にインターネット接続も併せて利用
    3拠点WAN接続方法について
    RTシリーズの資料
    障害切り分け手順
    IPsec 設定ガイド(NATを使う理由)

    RTX覚書


    IPsec

    IPsecで接続時に、同時にLANからインターネットもしたい!場合は1つしかないグローバルIPは外側でもあり内側でもある…

    コンソール(ハイパーターミナル)の設定

    【Cisco】 ・ビット/秒(B) : 9600
    ・データビット(D) : 8
    ・パリティ(P) : なし
    ・ストップビット(S) : 1
    ・フロー制御(F) : なし
    【YAMAHA】
    ・ビット/秒(B) : 9600
    ・データビット(D) : 8
    ・パリティ(P) : なし
    ・ストップビット(S) : 1
    ・フロー制御(F) : Xon/Xoff

    強制的にlogrotateを実行

    # logrotate -f /etc/logrotate.conf
    

    グローバルIPが固定で振られている時のnat

    natの限界

    NetmeetingはNATしちゃ駄目らしい

    nat descriptor

    RTシリーズのPPTPに関するFAQ

    YAMAHAルータのいろいろ

    pp select anonymous
    不特定接続相手(発信者番号による認証を用いない接続相手)の設定情報は、 pp select anonymousで接続相手を選択しておく必要があります。
    不特定のIP addressからのPPTPとなるので,pp select nではなく, pp select anonymousとなる。

    Windowsのスパンボリュームからファイル救済方法

    WindowsでHDDを拡張フォーマットしてスパンで作ったボリュームにて、1台でもHDDに障害が起こると全部見えなくなります。が、File Scavengerというソフトで復元できるファイルもあるそうです。

    WindowsからExt2/Ext3のファイルを読み取る

    DiskInternals Linux Reader

    Ciscoケーブルの作り方

    Cisco用シリアルコンソールケーブルの作り方
    CISCO用コンソールケーブル
    Ciscoコンソールケーブルの製作
    シスコヒモ(紐)

    フロッピーレスPC友の会

    922shで動画

    Acala DVD 3GPRipper
    メモリーカード保存場所(SoftBank910SH)
    「マイ・コンピュータ」
       ↓
    「リムーバムディスク(H)」
       ↓ 
    「PRIVATE」
       ↓
    「MY FOLDER」
       ↓
    「My Items」
       ↓
    「Videos」
    

    Craving Explorer

    Craving Explorerは、YouTube、ニコニコ動画などの動画をダウンロードし、AVI / MPEG / MP4(iPod) / FLV / WAV / MP3 の形式に変換、保存することができる動画専用ブラウザみたい。

    sed

    特定の行から後を出力する(文字列191009で始まる行以降をファイルに出力したい。)
    sed -ne '/^191009/,$p' < input > output
    
    n行目以降を出力したい(2行目以降を出力したい)
    sed -ne '2,$p' < input > output
    

    ピーナッツ

    良いらしい

    Catalystスイッチのコンソールポートに端末を接続する方法

    xargs

    find の結果をごにょごにょしたいときや「引数のリストが長すぎます」なんて怒られた場合 xargs を使いますよね。
    $ find . -type f | xargs grep hogehoge
    
    パイプで渡された結果は xargs のコマンドの末尾に渡されるので grep などの引数の最後に結果を受けつけるコマンドならこれでも問題ないのですが、 cp や mv のように引数の途中に結果を受け付けたい場合はこうもいきません。

    このような場合は -i オプションを使います。
    $ find . - type f | xargs -i cp {} ~/tmp
    
    xargs に -i オプションをつけるとパイプで渡された結果を {} で展開できます。

    Ciscoルータ・シミュレータ

    Dynagen
    CiscoIOS

    sed

    文字列の置換に大変便利です。正規表現も使用できます。
    ・基本
    sed \"s/target/dest/g\" inputFile.txt > outputFile.txt
    
    → inputFile.txt中の文字列 target を dest に変換して outputFile.txt に出力する

    ・文字列の先頭に挿入
    sed \"s/^/dest/g\" inputFile.txt > outputFile.txt
    
    → inputFile.txt中の文字列の先頭にdestを挿入して outputFile.txt に出力する

    ・文字列の語尾(終わり)に挿入
    sed \"s/$/dest/g\" inputFile.txt > outputFile.txt
    
    → inputFile.txt中の文字列の終わりにdestを挿入して outputFile.txt に出力する

    ※ \"(ダブル クォーテーション)が対象となるときは、\\(円マーク)でエスケープする。 sed \"s/\\\"/dest/\" inputFile.txt > outputFile.txt

    SSH鍵でパス無しログイン

    自分のPCで3種類の公開鍵を作成
    # cd .ssh/
    # ssh-keygen -t rsa1
    # ssh-keygen -t rsa
    # ssh-keygen -t dsa
    # cat *.pub >hoge.key
    
    作成した公開鍵を相手PC(パス無しで入りたいサーバ)の.ssh/にauthorized_keysとauthorized_keys2にhoge.keyをリネームしてchmodで600にして置くとOK。

    ファイルを1行毎に読み込んでお処理

    while read line
    	do
    	処理(${line}を処理)
    done < ファイル
    

    新しいハードウェアの検出

    NIC対応モジュール一覧
    ubuntuではkudzuではなく、udevdが管理してる。/etc/udev/〜

    SOTEC C101 で Linux (Ubuntu) を使う場合の注意点

    Linux用のカッコイイシステムモニター

    KonfabulatorってのがFedoraCore4の時代からあった模様…KDE専用かな?

    CtrlとCapsを入れ替える便利ソフト

    AltIME

    nohup

    ログアウトした後もコマンドを実行し続ける
    nohup rsync -avz -e ssh syncp@192.168.1.250:/share/ /share/ &
    
    オプション(かっこ内はロングオプション) 機能
    -a 「-rlptgoD」と指定したのと同様の効果。元のパーミッションやグループなどを保持したまま同期できるので、基本的に付加しておくのがよい。アーカイブモードとも呼ばれる
    -v 処理中の経過ファイル名を表示する
    -e [シェル名] リモートシェルを指定する。デフォルトでsshが利用されるため、rshなどを使う特別な必要がなければ最近では用いない
    -n(--dry-run) 実行時の動作だけを表示。テストに使用するとよい
    -r 指定したディレクトリ下の各ディレクトリも再帰的にバックアップする
    -u 追加されたファイルだけをコピーする
    -z データを圧縮する
    --existing 更新されたファイルだけをコピーし、追加されたファイルは無視する
    --delete コピー元で削除されたファイルは、コピー先でも削除する。-aオプションと同時に指定することでコピー元とコピー先を同期できることになる
    --exclude=PATTERN パターン一致するファイルを除外する(--exclude 'パターン'と書いてもよい)
    --exclude-from=FILE ファイルに記述されたパターンと一致するファイルを除外する
    --include=PATTERN パターン一致するファイルを除外しない
    --include-from=FILE ファイルに記述されたパターンと一致するファイルを除外しない
    --stats rsyncアルゴリズムの転送効率を表示する
    -h(--help) ヘルプを表示する

    ReiserFS

    noatimeを入れないと読み書きが遅くなる。
    LABEL=/share     /var/share            reiserfs    noatime        0 0
    

    Linuxコマンドあれこれ

    IPv6をスマートに無効化

    /etc/modprobe.conf または /etc/modprobe.d/aliases に
    alias net-pf-10 off
    alias ipv6 off
    
    Ubuntu9.04は/etc/modprobe.d/blacklist.conf に
    blacklist ipv6
    

    PDF作成フリーソフト・サイト

    FreePDFConverter , PrimoPDF

    Ubuntu9.04でkvm/qemuのネットワークブリッジ

    , , ←この方の情報が良さそうです。

    Bridge(ブリッジ)の構築

    # brctl addbr br0
    # brctl addif br0 eth0
    # ifconfig br0 192.168.1.125 up
    # ifconfig eth0 0.0.0.0 up
    # route add default gw 192.168.1.1
    

    不要なブリッジインターフェースの削除

    libvirtをインストールすると自動的にブリッジインターフェースvirbr0が作成される。このインターフェースには192.168.122.1が割り当てられDHCPとDNS Proxyが稼動している。さらにiptableにルールが追加される。邪魔だ…で削除方法
    # virsh net-autostart default --disable
    # reboot
    

    CentOS5.3でVirtualization入れるとI/Fがこうなる。

    [root@localhost ~]# ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:02:2A:DD:04:18  
              inet addr:192.168.1.207  Bcast:192.168.1.255  Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:280 errors:0 dropped:0 overruns:0 frame:0
              TX packets:379 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:53497 (52.2 KiB)  TX bytes:40588 (39.6 KiB)
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:1705 errors:0 dropped:0 overruns:0 frame:0
              TX packets:1705 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:2813532 (2.6 MiB)  TX bytes:2813532 (2.6 MiB)
    
    peth0     Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF  
              UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
              RX packets:288 errors:0 dropped:0 overruns:0 frame:0
              TX packets:404 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:55766 (54.4 KiB)  TX bytes:45073 (44.0 KiB)
              Interrupt:18 Base address:0x9000 
    
    vif0.0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF  
              UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
              RX packets:379 errors:0 dropped:0 overruns:0 frame:0
              TX packets:280 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:40588 (39.6 KiB)  TX bytes:53497 (52.2 KiB)
    
    virbr0    Link encap:Ethernet  HWaddr 00:00:00:00:00:00  
              inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:26 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:0 (0.0 b)  TX bytes:4880 (4.7 KiB)
    
    xenbr0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF  
              UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
              RX packets:26 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:6702 (6.5 KiB)  TX bytes:0 (0.0 b)
    
    [root@localhost ~]# brctl show
    bridge name     bridge id               STP enabled     interfaces
    virbr0          8000.000000000000       yes
    xenbr0          8000.feffffffffff       no              peth0
    

    Fedora10 kvm/qemu

    # yum -y groupinstall Virtualization
    (1/14): gtk-vnc-python-0.3.8-4.fc10.i386.rpm                                      |  14 kB     00:00     
    (2/14): gnome-python2-gnomekeyring-2.23.0-1.fc10.i386.rpm                         |  20 kB     00:00     
    (3/14): bridge-utils-1.2-6.fc10.i386.rpm                                          |  28 kB     00:00     
    (4/14): virt-viewer-0.0.3-3.fc10.i386.rpm                                         |  28 kB     00:00     
    (5/14): qemu-img-0.9.1-12.fc10.i386.rpm                                           |  76 kB     00:00     
    (6/14): gtk-vnc-0.3.8-4.fc10.i386.rpm                                             |  84 kB     00:00     
    (7/14): libvirt-python-0.5.1-2.fc10.i386.rpm                                      | 102 kB     00:00     
    (8/14): etherboot-roms-kvm-5.4.4-4.fc10.i386.rpm                                  | 126 kB     00:00     
    (9/14): xen-libs-3.3.0-1.fc10.i386.rpm                                            | 180 kB     00:00     
    (10/14): python-virtinst-0.400.0-5.fc10.noarch.rpm                                | 315 kB     00:00     
    (11/14): iscsi-initiator-utils-6.2.0.870-1.0.fc10.i386.rpm                        | 606 kB     00:00     
    (12/14): kvm-74-10.fc10.i386.rpm                                                  | 745 kB     00:00     
    (13/14): virt-manager-0.6.0-5.fc10.i386.rpm                                       | 1.4 MB     00:01     
    (14/14): libvirt-0.5.1-2.fc10.i386.rpm                                            | 1.7 MB     00:00   
    

    powerchute

    インストール:
    #rpm -ihv PowerChutePlus-4.5.3-1.i386.rpm
    設定:
    #/usr/lib/powerchute/Config.sh
    稼動:
    #/usr/lib/powerchute
    
    また、Webブラウザから「http://サーバーのIPアドレス:3052/」

    taskselをubuntuでVirtual Machine host入れると…

    下記パッケージはインストールされます。
    root@ubuntu:~# diff after.txt before.txt
    < ii  bridge-utils         1.4-5                           Utilities for configuring the Linux Ethernet
    < ii  dnsmasq-base         2.47-3                          A small caching DNS proxy and DHCP/TFTP serv
    < ii  kvm                  1:84+dfsg-0ubuntu11             Full virtualization on i386 and amd64 hardwa
    < ii  libasound2           1.0.18-1ubuntu9                 shared library for ALSA applications
    < ii  libavahi-client3     0.6.23-4ubuntu4                 Avahi client library
    < ii  libavahi-common-data 0.6.23-4ubuntu4                 Avahi common data files
    < ii  libavahi-common3     0.6.23-4ubuntu4                 Avahi common library
    < ii  libdirectfb-1.0-0    1.0.1-11ubuntu1                 direct frame buffer graphics - shared librar
    < ii  libhal1              0.5.12~rc1+git20090403-0ubuntu1 Hardware Abstraction Layer - shared library
    < ii  libice6              2:1.0.4-1                       X11 Inter-Client Exchange library
    < ii  libpolkit-dbus2      0.9-2ubuntu1                    library for accessing PolicyKit via D-Bus
    < ii  libpulse0            1:0.9.14-0ubuntu20              PulseAudio client libraries
    < ii  libsdl1.2debian      1.2.13-4ubuntu3                 Simple DirectMedia Layer
    < ii  libsdl1.2debian-alsa 1.2.13-4ubuntu3                 Simple DirectMedia Layer (with X11 and ALSA
    < ii  libsm6               2:1.1.0-1                       X11 Session Management library
    < ii  libsmbios2           2.2.13-0ubuntu2                 Provide access to (SM)BIOS information -- dy
    < ii  libsysfs2            2.1.0-5                         interface library to sysfs
    < ii  libts-0.0-0          1.0-4ubuntu2                    touch screen library
    < ii  libvirt-bin          0.6.1-0ubuntu5                  the programs for the libvirt library
    < ii  libvirt0             0.6.1-0ubuntu5                  library for interfacing with different virtu
    < ii  libxen3              3.3.0-1ubuntu9                  library interface for Xen, a Virtual Machine
    < ii  lvm2                 2.02.39-0ubuntu9                The Linux Logical Volume Manager
    < ii  netcat-openbsd       1.89-3ubuntu1                   TCP/IP swiss army knife
    < ii  ubuntu-virt-server   1.2                             Common packages necessary for hosting virtua
    < ii  watershed            4                               reduce superfluous executions of idempotent
    
    あと、下記も一緒に入れてみました。
    $ sudo apt-get install qemu virt-manager virt-viewer virt-top ubuntu-virt-mgmt
    $ sudo adduser `id -un` kvm
    $ sudo adduser `id -un` libvirtd
    

    Debian/Ubuntuで楽々パッケージインストール

    丸ごとパッケージの場合
    # tasksel
    
    1つ1つ指定する場合
    # aptitude
    

    仮想インターフェース

    kvm関連のパッケージをインストールすると、virbr0やpan0などのネットワークインターフェースが追加されます。使い方がイマイチわかりません。
    , , , ←ココを見て、bridge設定すればvirt-managerからnetworkが選択できるようになるかも?!

    Linux標準の仮想化技術「KVM」の仕組

    ,

    Ubuntu9.04でmdadmのRaid

    8.04の時とかわって、/etc/mdadm.confを使用するようになったっぽい。 ,
    mdadm -C /dev/md2 -l1 -n2 -f /dev/sda3 /dev/sdb3
    mdadm -D --scan >> /etc/mdadm/mdadm.conf
    

    KVMを使ったときの命令の流れ


    CD-ROMイメージのISOファイル化

    WindowsのCD-ROMをISOイメージ化します。ddコマンドでiso化できます。僕が持っていたCD-ROMはWindows2000からのアップグレート版のCD-ROMなので、インストール時にWindows2000のCD-ROMを要求されます。なので、今回はWindows2000のCD-ROMもISO化します。(※通常版のXPのCD-ROMがある場合は不要です。)
    # dd if=/dev/sr0 of=/root/winxp.iso
    # dd if=/dev/sr0 of=/root/win2k.iso
    
    /dev/sr0はUSB接続のCD-ROMドライブのデバイス名です。直接続の場合は/dev/cdromだったりするかもしれません。

    わかりやすいタグVLAN

    仮想化技術

    ,

    Ubuntu で KVM (Kernel-based Virtual Machine)

    FedoraCore4

    FC4

    NetScreen-5GT/5XT/5XPの10ユーザーライセンスの動作仕様

    仮想マシン環境のアーキテクチャ


    ◆準仮想化(para virtualization)
     -新たに定義した仮想的なハードウェア環境を提供
     -OSは上記環境に対応したものが必要
      (既存OSはそのままでは動かない)
     -性能重視
     -例)Xen
    ◆完全仮想化(full virtualization)
     -既存ハードウェア環境を完全にエミュレートする
     -既存OSがそのまま動作する
     -オーバーヘッド大
     -例)VMware,KVM,QEMU,Xen

    UbuntuでSystemドライブをRaid1(ミラー)でイロイロ実験

    1.Ubuntu9.04とHDDx2本用意して、パーティションは"/"のみのRaid1で構築してインストール。
    2.インストール後は、2本目のHDD(/dev/sdb)にはgrubが入っていないため、/dev/sdaが故障した場合起動しなくなる。よってgrubを/dev/sdbにもインストール。
    3.電源を落として、2本目のHDDのSATAケーブルを抜いて電源ON。
    4." Do you wish to start the degraded RAID? [y/N]: "と聞かれてきます。Raid構成が崩れたまま(HDDが1本足りないまま)システムを起動するかどうかです。
    5.そのままだと、タイムアウトして"N"が選択されて" (initramfs) "とCUIモードになります。helpを叩くとそれなりのコマンドが出てきて障害内容を調べられそうです。
    6.とりあえず、" cat /proc/mdstat "を入力。すると、md0ドライブはsda1だけが接続されてますよ的な感じに表示されます。ホットスワップ対応なら、新しく2本目のHDDをつけてmdadmコマンドでリビルドできちゃいそうです。
    7.haltコマンドで電源を落とします。次は、1本目のSATAケーブルを抜き2本目のSATAケーブルを接続してPCを起動。
    8.2本目からもシステム起動するのを確認します。(grubが正常にインストールされているかどうか)
    9.同じく、" Do you wish to start the degraded RAID? [y/N]: "と聞かれるので今度はタイムアウトする前に"y"を入力します。
    10.すると片側のHDDだけでシステムが起動します。" cat /proc/mdstat "で見るとmd0デバイスがsdb1のみで稼動しているのがわかります。
    11.ここでホットスワップ対応HDDなら新しいのを接続してmdadmコマンドでリビルドできます。私のPCはホットスワップ未対応なので一度電源を落とします。
    12.1本目のSATAケーブルを挿してPCを起動します。再度、/proc/mdsataを見ます。ですが、接続した/dev/sda1は無かった事になってます。/dev/md0として稼動しているのは/dev/sdb1のみです。
    13.ここで、/dev/sda1を参加させてあげます。新しい/dev/sda1ならfdiskでパーティション区切って領域はLinux raid 自動にして作成します。
    14.md0にsda1を参加させてあげます。" mdadm -a /dev/md0 /dev/sda1 "これでリビルドが始まって正常なシステムに復旧です。
    簡単な流れですが、ソフトRaidでも簡単に障害対応できそうです。

    UbuntuでIPアドレス設定をstaticに

    /etc/network/interfaces
    # The primary network interface
    auto eth0
    #iface eth0 inet dhcp
    iface eth0 inet static
            address 192.168.1.100
            netmask 255.255.255.0
            network 192.168.1.0
            broadcast 192.168.1.255
            gateway 192.168.1.1
    

    RTXでVPNの勉強

    RTXでPPTPサーバ

    MS-IMEのショートカット

    カタカナに変換

    Ctrl+I
    「あいう」と打った後にCtrl+Iを押すと、「アイウ」に変換されます。

    ひらがなに変換

    Ctrl+U 「アイウ」の状態で Ctrl+U を押すと、「あいう」に変換されます。

    半角に変換

    Ctrl+O

    英数字に変換

    Ctrl+P
    例えば、「ぜんかく」と打った後にCtrl+Pを押すと、「zenkaku」に変換されます。

    一文字削除

    Ctrl+H
    これ、私が最も頻繁に使うキーかもしれません。

    全文確定

    Ctrl+M もともと、Ctrl+M にはEnterキーと同じ意味合いがあります。 Ctrl+M は、Ctrl+H と並んで私が最も頻繁に使うキーでしょう。

    未変換時にキャレットを移動する

    Ctrl+K (左移動)、 Ctrl+L (右移動)

    (変換キーを叩いた後)文節の長さを調節する

    Ctrl+K (短くする)、 Ctrl+L (長くする)

    変換中の文節のみを確定する

    Ctrl+N

    直前に確定した文字列を再変換する

    Alt+Backspace
    エディタなどによっては、使えないこともあります。また、確定した後に一文字でも入力してしまうと使えません。

    NTTのグループアクセスについて

    過去ログ

    RTXでVPNの設定は…2種類

    IPsec
    tunnel select 1
     ipsec tunnel 1
     ipsec sa policy 1 1 esp 3des-cbc sha-hmac
     ipsec ike keepalive use 1 on
     ipsec ike local address 1 192.168.2.1
     ipsec ike pre-shared-key 1 text test
     ipsec ike remote address 1 192.168.1.1
     tunnel enable 1
     ipsec auto refresh on
    
    IP over IPトンネル
    tunnel select 1
     tunnel encapsulation ipip
     tunnel endpoint address 10.128.1.10 10.128.1.11
     tunnel enable 1
    

    RTX3台と拠点をグループアクセスでVPN

    ストライプ処理でスワップ高速化

    # vi /etc/fstab
    
    ※通常は,このように「defaults」指定されている
    /dev/hda2  swap  swap defaults 0 0
    
    ※次のように「pri=」指定で並列度合いを指定すればよい
    /dev/hda2  swap  swap defaults,pri=5 0 0
    /dev/hdb2  swap  swap defaults,pri=5 0 0
    

    software RAID1 を debianでちゃんと使う


    # grub
    device (hd0) /dev/hda
    root (hd0,0)
    install /boot/grub/stage1 (hd0,0) /boot/grub/stage2 0x8000 (hd0,0)/boot/grub/menu.lst
    install /boot/grub/stage1 d (hd0) /boot/grub/stage2 0x8000 (hd0,0)/boot/grub/menu.lst
    
    
    device (hd0) /dev/hdb
    root (hd0,0)
    install /boot/grub/stage1 (hd0,0) /boot/grub/stage2 0x8000 (hd0,0)/boot/grub/menu.lst
    install /boot/grub/stage1 d (hd0) /boot/grub/stage2 0x8000 (hd0,0)/boot/grub/menu.lst
    quit
    
    OSインストール時にRAID1を設定しても、2つ目のディスクにGRUBはインストールされません。
    なので、こちらをまたまた参考にして、インストール後にgrubで以下のように設定をしました。
    # grub
    grub> device (hd0) /dev/sdb
    grub> root (hd0,0)
    grub> install /boot/grub/stage1 (hd0) /boot/grub/stage2 p /boot/grub/menu.lst
    grub> quit
    

    一旦、1台のHDDでraid1を構築して、後から2台構成のraid1に変更する手順(mdadmの場合)

    mdadm -C /dev/md0 -l1 -n2 /dev/hdd1 missing(最も大切なのはこの一語)
    mdadm -a /dev/md0 /dev/hda1
    

    ソフトウェアRAID1にgrubをインストールする(メモ)

    サーバー再構築も近いので、ソフトウェアRAID1にgrubをインストールする方法をメモ。
    ※grub-installやgrub-updateといったコマンドも気になりますが、使わないでやってみたいと思います。
    
    まず、/dev/md0をマウントポイント/bootとして、RAID1を構築しておく。
    ※以下のパーティションで構成しておく
    /dev/sda1
    /dev/sdb1
    
    1本目のディスクにのみ、インストールされるので、2本目のディスクにgrubをインストールする必要がある。
    ※どちらが一本目か、は/proc/mdstatを見れば解る。
    
    $ su-
    # grub
    grub > device (hd0) /dev/sdb
    grub > root (hd0,0)
    grub > install /grub/stage1 (hd0) /grub/stage2 p /grub/grub.conf
    grub > quit
    
    以上。
    
    /dev/sdb2にインストールする場合は、
    $ su-
    # grub
    grub > device (hd0) /dev/sdb
    grub > root (hd0,1)
    grub > install /grub/stage1 (hd0) /grub/stage2 p /grub/grub.conf
    grub > quit
    となる。
    
    /dev/sdc3にインストールする場合は、
    $ su-
    # grub
    grub > device (hd0) /dev/sdc
    grub > root (hd0,2)
    grub > install /grub/stage1 (hd0) /grub/stage2 p /grub/grub.conf
    grub > quit
    となる。
    
    /bootを分けていない場合は、/がマウントポイントになっているデバイスを指定する必要がある。
    また、コマンドも以下のように変化する
    $ su-
    # grub
    grub > device (hd0) /dev/sdb
    grub > root (hd0,0)
    grub > install /boot/grub/stage1 (hd0) /boot/grub/stage2 p /boot/grub/grub.conf
    grub > quit
    となる。
    

    Ubuntu9.04あれこれ

    仕事がはやいね〜

    rsync

    Ubuntu 9.04 "Jaunty Jackalope" リリース

    携帯電話端末の固有番号

    IMEIは共通で*#06#押せば出てくるみたい
    

    ネットワークのトラブル

    Linuxのネットワークインストールが上手くいかない…とかは、まずNICをIntel製のモノに変更すればだいたい解決。

    順番にアンマウント

    # seq 1 12 | while read i ; do umount /share/hdd${i} ; done
    

    VPNのトンネルを理解する

    暗号化をしないトンネルでのVPNだと処理が軽い。

    dig

    digコマンド形式……dig @server domain query-type

    <<指定する内容>>
    server:利用するネームサーバ
    domain:情報を知りたいドメイン名
    query-type:知りたい情報のタイプ
    query-type例

    A: ネットワークアドレス (省略時)
    NS: ネームサーバ
    MX: メールサーバの情報
    SOA: SOA 情報
    ANY: 知っているすべての情報
    $ dig @211.9.32.235 as.dip.jp A | grep -v -e "^:" -e "^;" | sed '/^$/d'
    $ dig @220.220.248.1 as.dip.jp A | grep -v -e "^:" -e "^;" | sed '/^$/d'
    $ dig @220.216.100.2 as.dip.jp A | grep -v -e "^:" -e "^;" | sed '/^$/d'
    $ dig @143.90.130.165 as.dip.jp A | grep -v -e "^:" -e "^;" | sed '/^$/d'
    

    syslinuxのオプション

    -m,-aオプションはDOS,WindowsインストーラでMBR(Master Boot Record)に書き込み、そのパーティションをアクティブにする時に指定します。

    XenServer Toolsのインストール

    ゲストOSのインストール後に行うと、ネットワーク・ディスク周りのドライバが準仮想化デバイスドライバに置き換わりI/Oが高速になる。

    XenServerドキュメント群

    ,
    Citrix XenServer 5.0 無償版インストール Step by Step Guide(PDF)

    仮想化技術を使用すると、1台のコンピュータ上で複数のOSを同時に走らせることができます。 仮想化技術はOSやCPUの標準機能として実装される方向にありますが、 当面は仮想化ソフトウェアを導入することになります。

    ベンダ 製品名 仮想化の方式
    (OSS) Xen ベアメタル仮想化
    KVM ハイブリッド仮想化
    QEMU ホスト仮想化
    OpenVZ OS仮想化
    EMC VMware ESXi ベアメタル仮想化
    VMware Server ホスト仮想化
    VMware Player ホスト仮想化
    Sun Microsystems Sun xVM Server ベアメタル仮想化(Xen)
    Sun xVM VirtualBox ホスト仮想化
    Citrix Systems XenServer Express Edition ベアメタル仮想化(Xen)
    Oracle Oracle VM ベアメタル仮想化(Xen)
    Microsoft Hyper-V ベアメタル仮想化
    Virtual Server ホスト仮想化
    Virtual PC ホスト仮想化

    ひかり電話とIP電話の違い

    フルバーチャルゲストOS対応か調べる

    FAQ
    # cat /proc/cpuinfo
    Intel の場合 : vmx
    AMD の場合 : svm
    

    DebianでGNOMEを使うには

    PowerBookG4でできるかな?

    yumで関連パッケージをまとめて追加/削除

    # yum grouplist
    # yum groupinstall Virtualization
    # yum groupinstall "Text-based Internet"
    

    Virtualization関係

    ハイパーバイザ

    大別して以下の2種類があり、作成した仮想機械(バーチャルマシン)でそれぞれのOS(ゲストOS)を動かすことができる。
    ◆ハードウェアの上で直接稼働する(狭義のハイパーバイザ。専用OSの形のz/VM、VMware ESX、ESXi、Xenなどや、ファームウェアの形のIBM LPARなど。)
    ◆他のOSの上で稼働する(VMware Server など)
    
    また、ゲストOSを修正せずそのまま稼働できる(ハードウェアを完全にエミュレートする)ものを完全仮想化、性能などの理由でゲストOSに修正が必要なものを準仮想化とも呼ぶ。

    Ubuntu 8.10の仮想関連環境の構築

    以下のコマンドで仮想マシン管理環境を構築します。
    # apt-get install ubuntu-virt-server ※openssh-serverもインストールされます。
    # apt-get install ubuntu-virt-mgmt ※virt-managerもインストールされます。
    上記で[アプリケーション]メニューに[システムツール]−[仮想マシンマネジャ]が追加されます。

    マルチコアでmakeする

    make -j4
    

    フル・パラ

    仮想化
    X86仮想化
    Xen(仮想化)
    ハイパーバイザ

    IntelR VT vs AMD AMD-V

    ハードウェア仮想化 徹底比較

    1CD LinuxをUSBメモリから起動するには

    CDにLinux焼くのが面倒くさくなったので。

    Fedora9をnetinstする場合のURL

    http://ftp.iij.ad.jp/pub/linux/fedora/releases/9/Fedora/i386/os/

    FedoraCore4をnetinstする場合のURL

    http://ftp.riken.jp/Linux/fedora/core/4/i386/os/

    CentOS5をnetinstする場合のURL

    http://ftp.riken.jp/Linux/centos/5.2/os/i386/
    http://ftp.riken.jp/Linux/centos/5/os/x86_64/

    Xen用のメモリ

    4GBを超えるメモリをPCに搭載するとXenの挙動が怪しくなる……これは一体?

    UbuntuのユーザーホームをLinuxっぽくアルファベット表記に戻す。

    $>LANG=C xdg-user-dirs-gtk-update
    
    これで、英語フォルダ名が使えるようになります。
    また最初の設定どおり、日本語フォルダ名に戻したいときは
    $>xdg-user-dirs-gtk-update
    

    UbuntuにXenをインストール

    sudo apt-get install ubuntu-xen-server xen-tools
    
     /boot/grub/menu.lst
      title		Xen 3.2 / Ubuntu 8.04.1, kernel 2.6.24-23-xen
      root		(hd0,0)
      kernel		/boot/xen-3.2.gz
      module		/boot/vmlinuz-2.6.24-23-xen root=UUID=df932484-5102-4d01-a7b4-5ca314bed4d4 ro console=tty0
      module		/boot/initrd.img-2.6.24-23-xen
    
    xm listコマンドで確認できる
    ところがどっこい、ネットワークで躓く。
    eth0 にデスクトップで使っていたIPアドレスをそのまま割り当て。
    peth0 に新たにIPアドレスを設定。するとDomain-0のUbuntuからネットワークにアクセスできた。

    debina ubuntu を使うのに

    apt- get

    UbuntuServerにGUIとXen

    Server版はCUIのみなので、下記でGUIをインストール
    sudo apt-get install ubuntu-desktop
    

    コンソール解像度のkernelオプション

    Grub用
    番号   解像度:色数 
    771    800×600:256色 
    773    1024×768:256色 
    775    1280×1024:色 
    788    800×600:6万5000色 
    791    1024×768:6万5000色 
    794    1280×1024:6万5000色 
    789    800×600:1600万色 
    792    1024×768:1600万色 
    795    1280×1024:1600万色
    

    メモリの ECC と Registered と Unbuffered の意味

    - ECC メモリ

    エラーの検出・訂正機能を持ったメモリモジュール。対義語は・・・「ノンパリティ」?
    @IT:Insider's Computer Dictionary [ECCメモリ]
    ECC(Error-Correcting Code)は、「誤り訂正符号」の意味。ECC(Error Check and Correct)メモリは、メモリ・エラーの存在を検出するだけでなく、エラーが発生した箇所(ビット)を特定して、これを正しいものに修正する機能を持ったメモリ。

    - Registered メモリ

    レジスタチップを搭載し、電気信号の整流や増幅機能を持たせたメモリモジュール。対義語は Unbuffered メモリ。
    @IT:Insider's Computer Dictionary [Registered DIMM]
    入力される電気信号の状態(電圧の高低)を基準クロックに合わせて一定間隔で取得・保持する半導体チップを意味する。レジスタ・チップは、各信号のタイミングをクロックに合わせる役割を担うほか、電気信号の電流を増幅したり信号波形を整形したりする機能もある。
    Registered メモリの特徴。
    Registered チップを経由するため、レイテンシは Unbuffered メモリに比べて増える (帯域は同じ)。
    電気的に安定させやすいのでマザーボードに搭載可能なメモリモジュール数が増える。

    - ECC と Registered は別の軸にある概念

    ECC と Registered は別の軸にある概念。つまり、
    ECC で Registered なメモリ
    ECC だけど Unbuffered なメモリ
    非 ECC で Registered なメモリ
    非 ECC で Unbuffered なメモリ
    と4つの組み合わせがあることになる。

    Kernel2.4系の再構築手順

    カーネルコンパイルの実行手順(※古いカーネルバージョンのコンフィギュレーションファイルの設定を新しい.configファイルにインポートするには、make oldconfigコマンドを実行します。)
    # cd /usr/src/linux
    # make mrproper        ←カーネル設定の初期化
    # make menuconfig      ←カーネルコンフィギュレーション
    # make dep             ←依存関係の確認
    # make clean           ←中間ファイルの削除
    # make bzImage         ←カーネルイメージの作成(カーネルコンパイル)
    # make modules         ←モジュールの作成(モジュールコンパイル)
    # make modules_install ←モジュールのインストール
    
    # mkinitrd -v --with=sd_mod --with=scsi_mod -f /boot/initrd-2.4.37.img 2.4.37
    # cp -f System.map /boot/System.map-2.4.37
    # cp -f arch/i386/boot/bzImage /boot/vmlinuz-2.4.37
    

    ファイルシステムの修復

    こっちの方がいいのかなぁ?
    # fsck -fy
    

    標準入力を標準出力とファイルに出力する

    # telnet aaa.bbb.xx.jp | tee telnet.log
    
    ファイル内容を上書きせずに、標準入力をファイルに追加する。
    fsck -t ext3 /dev/sda6 -- -nttvf | tee -a fsck.log
    

    smartctlの情報

    ID01、05、196、197、198、220あたりを注視すれば良いとされます
    01(Raw Read Error Rate)読み込みエラー発生率
    05(Reallocated Sectors Count)代替処置済みの不良セクタ数
    C4(196)(Reallocation Event Count)代替処理済のセクタ数
    C5(197)(Current Pending Sector Count)代替処理待ちセクタ数
    C6(198)(Off-Line Scan Uncorrectable Sector Count)回復不可能なセクタ数
    DC(220)(Disk Shift)ディスクのズレた距離
    

    IP unnumbered と マルチNAT についておさらい

    Xen

    HVMは「Hardware Virtual Machine」

    netstat

    再確認

    WindowsユーザーのためのXenServer入門【後編】

    WindowsユーザーのためのXenServer入門【前編】

    シトリックス、サーバー仮想化製品「Citrix XenServer」の無償提供を開始(2009年3月31日)

    〜 仮想化の普及促進を目指し、企業の実稼働環境で使用できる仮想化ソリューションを無償化、大規模な仮想サーバー群向けに「Citrix Essentials for XenServer」を提供開始 〜
    http://www.citrix.co.jp/products/xenser/xenser.html

    VMware ESXi 3.5


    概要
    VMwareのハイパーバイザ型の仮想化ソフトウェアです。無償利用可能です。

    特徴
    従来のVMware Serverの様なエミュレート型の仮想化と違って、処理のオーバーヘッドが少ないと言われています。
    仮想ディスクは固定割り当てのみです。(物理ディスク直接マウントは出来たかも?)
    ホストだけれはほとんど何も出来ません。ゲストを作ったり管理する場合はVi Clientというツールから行います。
    ホスト自身はあまりリソースを食いません。
    ハードウェア用件が他の仮想化製品に比べるとダントツで厳しいです。特にNICに関しては、オンボードでよく搭載されているRealtecのNICなどをサポートしてないので、クライアント機に入れる場合は別途Intel製などのNICが必要です。HALに載ってないものが必ず動かない、という訳ではないです。
    ゲストに追加できるハードウェアの種類が少ないです。サウンド、USB、パラレルポートは追加出来ません。クライアント系のOSを入れて動かすのには向いていなくて、あくまでサーバー稼働用と考えた方がいいでしょう。
    スナップショットは、無限では無いかもしれませんが複数取得する事が出来ます。
    競合製品と比べて、ホストOSを別途用意する必要が無いのは一つ便利な点かと思います(好みの問題でしょうが)
    有償版のvmware infrastructure 3にある、バックアップ系の機能やVMotionは無償では使えません。

    Virtual Appliance

    VMware用に用意された仮想マシン。Webサイトに沢山置いてある。

    VMwareESXi

    インストール後、ゲストOSを最適に稼働させるためにVMware Toolsモジュールを入れる。

    fsckの注意点

    マウントしているデバイスに絶対行わない事。
    チェックだけでもアンマウントしてから行う事。
    fsckするたびに、いろんな場所でエラーっぽい事を言われてしまう。(使用してる場所なので)

    VMwareの種類

    VMware Server ⇒ ホストOS必須(例:Windows上で別のOSを動かす)
    VMware ESXi ⇒ ホストOS無し(いきなりESX起動、その上に各OSなど)
    VMware GSX Server(現:VMware Server)
    VMware ESX(無償公開したのがESXi)

    findを条件orで

    find ./ -type f \( -iname "*wmv" -o -iname "*mp3" \) -print
    

    人生にやる気を与える24の名言

    「物事がうまくいかないと思ったら、まず最初にあなたがこれまで何人の人を幸せにしてきたかを考えなさい」(H. Duane Black)
    「成功とは目的ではなく過程である。成した事そのもの(プロセス)こそが大抵において結果よりも尊いことに他ならない」(Arthur Ashe Jr)
    「成功への秘けつなど何も無い。準備、キツい努力、そして失敗から学んだことによる積み重ねの結果に過ぎない」(Colin Powell)
    「成功の秘けつは知らないが、失敗のカギなら知っている。それはすべての人を喜ばせようとすることだ」(Bill Cosby)
    「想像力さえあればどんな力でも発揮できる」(John Muir)
    「失敗こそがよりよいやり直しを得るための機会になる」(Henry Ford)
    「すべての反論に打ち勝った上で物事をやろうとすると、何もできなくなる」(Samuel Johnson)
    「失敗すると失望するかもしれない。しかし何もしなければ必ず失敗する」(Beverly Sills)
    「誰からも信用を得ずに何かを達成できるとしたら、それは驚くべきものだ」「(自分がしたことに対する)賞賛を誰が受けても構わない、(つまり、自分が受けなくても構わない)と思うなら、とても素晴らしいことを成し遂げることができる」(Harry S. Truman)※1
    「ちょっとでも周囲に気をかけると、それなりの結果を得られるだろう。そして十分に気をかければ素晴らしい結果を得られるに違いない」(Jim Rohn)
    「誰だって最初は初心者さ」(Ralph Waldo Emerson)
    「人生の中で何かを成し遂げたいと考えてる人にとって欠かせないことは、『自分が欲しいものを確定する』ことに他ならない」(Ben Stein)
    「壁にぶち当たっても止まる必要は無い。振り向かず、あきらめるな。その壁を登る方法を考えるか、潜り抜けるか、迂回する方法を探し出せ」(Michael Jordan)
    「成功は幸福のカギではない。しかし幸福は成功の秘けつである。もしあなたがしていることが好きなことなら、きっと成功を導くことだろう」(Herman Cain)
    「人生において失敗した人の多くは、自分がいかに成功に近づいていたのか、そしてそれにも関わらずあきらめてしまったのかを知らなかった人だ」(Thomas Edison)
    「想像力は知識よりも重要である」(Albert Einstein)
    「可能と不可能の違いなどその人の決意次第でしかない」(Tommy Lasorda)
    「ハイリスクなチャレンジをする人だけが、とてつもない成果を成し遂げることができる」(T. S. Elliot)
    「目的地までの距離など問題ではない。はじめの一歩が難しいんだ」(Marquise du Deffand)
    「熱意無しには何も素晴らしいものは創生されない」(Ralph Waldo Emerson)
    「人生で最もうれしいことは、他人からできるわけが無いと言われたことをやり遂げたことだ」(Walter Gagehot)
    「本当に何かを成し遂げたいと思ったら、やり方を見つけることだ。さもなくば言い訳を見つけねばならなくなる」(Frank Banks)
    「あることを夢見る人もいれば、やりたいと思う人もいる。そしてそれを実現する人もいるんだ」(Michael Jordan)
    「成功も失敗も、永久には続かない」(Dell Crossword)

    シェルで9回カウント

    for ((i=1;i<10;i++));do echo ${i};done
    

    SOTEC DC101 でLinuxを使う場合の注意点

    i8042 のバグ対策を行なってタッチパッドを認識させる!!grubのmenuに"i8042.nomux=1"を追加
    kernel   /boot/vmlinuz-2.6.24-23-generic root=UUID=(省略) ro quiet splash vga=789 i8042.nomux=1
    

    システム時刻をJSTに設定

    JST(日本標準時)にする
    /etc/default/rcSを開き、UTC=noにする
    sudo ln -sf /usr/share/zoneinfo/Japan /etc/localtime

    UTC(世界協定時)にする
    /etc/default/rcSを開き、UTC=yesにする
    sudo ln -sf /usr/share/zoneinfo/UTC /etc/localtime

    時計を合わせる
    sudo ntpdate ntp.bbtec.net

    ハードウェア時計を設定する
    sudo /etc/init.d/hwclock.sh start

    tar.gzとbz2ファイルの解凍

    tar zxvf hoge.tar.gz
    tar jxvf hoge.bz2
    

    USB用Ubuntu作成

    こっちの方が楽かな?
    ■ubuntuをUSBフラッシュメモリから起動させるには(Windows上で作成)
    0、syslinuxを落としてきて、解凍する。
    1、USBフラッシュメモリをFATでフォーマット。
    2、LIVE CDから全部のファイルをUSBフラッシュメモリへコピーする。
    3、isolinuxのフォルダにある全部のファイルをフラッシュメモリのルートにコピー。
    4、isolinux.cfgをsyslinux.cfgにリネーム
    5、DOSプロンプトを起動して、解凍したsyslinuxのフォルダのwin32フォルダにカレントドライブを移動し、以下のコマンドを実行。
    	(フラッシュメモリは自分の環境では「g:」)
    cd c:\syslinux\win32
    syslinux -ma g:
    

    わからない事があれば…

    MLogで結構調べられそうです。が、質問ばかり引っかかる…

    initrdにカーネル・バージョン非対応のドライバを組み込む

    1.はじめに

    Red Hat などのLinuxディストリビューションでは、 7.2, 7.3, 8.0とバージョンがすすむにつれて、デバイスドライバのローダブルモジュール化も進んでいます。ローダブルモジュールの採用は、開発時に毎回コンパイルし直す必要がないというメリットもあるのですが、insmodによるロード時にバージョンの整合性検査があるので、開発時などでロードするモジュールのバージョン番号がカーネルと合わない場合には、コンパイルし直すか、'-f'の強制モードのオプションをつけてモジュールをロードするといった注意が必要です。

    モジュールの再コンパイルは、組み込み系の開発等でクロス開発のホスト環境が手元に無い場合にコンパイルできないとか、開発ホストからのファイルの転送が面倒だという問題があります。またATAディスクドライバ等、デバイスメーカがバイナリ・イメージだけしか公開していないドライバを使用する場合には、ソースが無くてターゲット用のカーネルのバージョンでコンパイルできないという問題があります。

    ブート時に必要なローダブルモジュールは、カーネルがブート時に展開するinitrd (Initial RamDisk)でロードする必要があります。この時にモジュールの再コンパイルをせずに、バージョン・ミスマッチのモジュールを組み込んで、initrdの中を修正して、'-f'の強制モードのロードをinitrdの中でやってしまうという方法です。たいしたことはして無いのですが、頻繁に参照するのでメモにしておきます。

    2.カーネルのコンパイルとinitrdイメージの作成

    一般的な方法でカーネルをコンパイル、リンクして、デフォルトのinitrdを作成します。
    以下は、kernel-2.4.19の場合の操作例です。

    # cd /usr/src/linux-2.4.19
    # make mrproper
    # make ?config #好きなCONFIG作成方法でconfigファイルを読み込んで設定します
    # make dep
    # make clean
    # make bzImage
    # make modules
    # make modules_install
    # cp -p System.map /boot/System.map-2.4.19
    # cp -p arch/i386/bzImage /boot/vmlinuz-2.4.19
    # mkinitrd /boot/initrd-2.4.19.img 2.4.19

    3.INITRD RAMDISKの展開と修正、再作成

    以下は、前項の「カーネルコンパイル」手順が終った後での作業です。

    2.4.19用initrdを名前を変えて展開

    # cd /boot
    # gzip -cd initrd-2.4.19.img > initrd-2.4.19new
     
    または、
    # zcat initrd-2.4.19.img > initrd-2.4.19new
    

    RAMDISKファイルのマウント

    # mkdir /mnt/initrd
    # mount -o loop initrd-2.4.19new /mnt/initrd

    必要なローダブル・モジュールのコピー(ext3モジュールを組み込む例)

    # cd /mnt/initrd
    # cp -p /usr/src/linux-2.4.19/fs/ext3/ext3.o lib
    # cp -p /usr/src/linux-2.4.19/fs/jbd/jbd.o lib

    linuxrcファイルの編集例

    # vi linuxrc
    <==== 編集内容ここから:insmodに'-f'オプションを付けます。(4行目と6行目)===>
    #!/bin/nash
     
    echo "Loading jbd module"
    insmod -f /lib/jbd.o 
    echo "Loading ext3 module"
    insmod -f /lib/ext3.o 
    echo Mounting /proc filesystem
    mount -t proc /proc /proc
    echo Creating block devices
    mkdevices /dev
    echo Creating root device
    mkrootdev /dev/root
    echo 0x0100 > /proc/sys/kernel/real-root-dev
    echo Mounting root filesystem
    mount -o defaults --ro -t ext3 /dev/root /sysroot
    pivot_root /sysroot /sysroot/initrd
    umount /initrd/proc
    <====ファイルは、ここまで====>

    RAMDISKファイルのアンマウントと2.4.19用圧縮イメージの作成

    # cd /boot
    # umount /mnt/initrd
    # gzip -c initrd-2.4.19new > initrd-2.4.19new.img
    

    4.ポイント

    ここでのポイントはlinuxrc内のinsmodに'-f'を付ける事です。簡単なことですが、セルフでモジュールコンパイルができない組み込みLinuxでの開発実験や、メーカからバイナリしか提供されないモジュールのロードに有効です。
    組み込む前には、当然ながら組み込み先のカーネルで、モジュールが動作するかを手作業で組み込んで動作確認する必要があります。

    Windows2000以降のOSでネットワークの経路を調査する

    こんな便利なコマンドがあるのを今更知った!つか、誰か教えてよw
    pathping [IPアドレス]
    

    ファイルシステムの種類の確認

    df -T
    

    ブロードバンドルーター

    Planex社のBRL-04AのWAN⇒LANは500KB/sが限界。

    USBメモリにUbuntuをインストール手順

    USBメモリが4GB以上なら、CD-ROMブートなUbuntuのGUI画面からUSBメモリへインストールが簡単にできるが、
    2GB以下だと空き容量が少なくて失敗する。2GB以下へのインストール手順は次のとおり。
    syslinux(ダウンロード)
    Knoppix(フォルダー全体)をコピー
    boot¥isolinuxの内容をコピー
    ファイル名isolinux.cfgの名前を変更 (isolinux.cfg→syslinux.cfg)
    syslinuxの組み込  (syslinux -ma USBドライブ名:)
    終了
    

    MBRをバックアップ

    # dd if=/dev/hda of=~/mbr bs=512 count=1
    # dd if=~/mbr of=/dev/hda bs=446 count=1
    
    ※447バイト目以降はSSDのパーティションテーブルなので、上書きしないように注意。

    Juniper Netscreen

    困ったときの”?”
    設定するときの”set”
    設定を解除するときの”unset”
    情報を見るときの”get”
    設定を保存するときの”save”
    この5つのコマンドとTabキーによる補完さえ覚えてしまえば、あとはなんとかなります。
    

    フリーのCD焼きソフト

    kanbe , imgburn

    HDDの情報

    # dumpe2fs -h  /dev/sda1
    

    fsck(チェックと不良ブロック代替)

    service サービス stop
    umount /share &> /dev/null
    fsck -t ext3 /share -- -yttvfc
    sync; reboot
    

    fsck(チェックのみ・マウント状態で)

    fsck -t ext3 / -- -nttvf
    fsck -t ext3 /home/lpod/data -- -nttvf
    fsck -t ext3 /home/lpod -- -nttvf
    

    再マウントする

    Linux起動途中でコケた場合、リードオンリーでマウントされる。
    ファイルを書き換えたい場合には読み書き可能で再度マウントすればOK。
    # mount -o rw,remount /
    

    どのバイナリ(コマンド)がどのパッケージに含まれるかを調べる

    rpm -qf /usr/X11R6/lib/libXp.so.6.2
    rpm -qf /sbin/fsck
    

    GeForceのリネーム9xxx系

    最近、nVidia系カードに手を出しちゃってるので……メモ
    例:
    8800GT→9800GT(アッパーミドル帯。近日発売)
    8800GS→9600GSO(ミドル)  ←注目
    8500GT→9400GT(ローエンド)
    8400GS→9300GS(ローエンド)
    

    AWKの第一歩

    素敵です

    続・Reflect FREE Edition

    バックアップしたファイルはISOマウントできるみたい。
    復元(リストア)するには、ブータブルディスクを別途作成する必要あり。Reflectで作成可!!

    945

    http://gpuz.techpowerup.com/09/03/31/h7e.png

    YAMAHAルータでnetvolante-dns を取得しているのかチェック


    # netvolante-dns get hostname list all
    

    ネットブックを高速化?

    本当に動くのかな…動いた!SOTEC DC101 ネットブック i945GME でもOK!!
    GMABooster というか、945GMEにGMA950(グラフィックス・コア)が入っているって事なんですね。

    WinXPのIE6のデフォルトFONT

    MS Pゴシック

    MacOS(PowerPC)エミュレータ

    PearPC

    os-museum

    素晴らしいサイトを見つけました。→

    宛名のエクセルデータをワードのラベル印刷に

    Windowsでラベルに宛名印刷とか…!
    宛名のエクセルデータをワードのラベル印刷に
    
    エクセルデータの1行目は項目名で!(データだと1件目だけ印刷されない事に)
    
    ワードを立ち上げて、[ツール]→[はがきと差し込み印刷]→[差し込み印刷]を選択。
    
    画面の右側に作業ウィンドウが表示されます。されない場合には[表示]→[作業ウィンドウ]を選択してから。
    
    【ラベル】を選択後、最下段の【次へ:ひな形の選択】
    
    【文章レイアウトの変更】を選択後、中段の【ラベル オプション】を選択
    
    ラベルオプションで、≪プリンタ≫はレーザープリンタとインクジェットプリンタのラジオボタンを選択
    ≪ラベル製品名≫は、その他/ユーザー設定を選択し、製品番号は好きなモノを選択してOK
    
    画面右側の作業ウィンドウの最下段の【次へ:宛先の選択】
    
    画面右側の作業ウィンドウの中段の【参照...】を選択し、印刷したいエクセルデータを選択
    
    画面右側の作業ウィンドウの最下段の【次へ:ラベルの配置】
    
    【住所ブロック】を選択して…フィールドの対応の姓→名に氏名をする。
    
    左側画面に<住所ブロック>と表示されるので、その後に"様"などを入れる。
    
    画面右側の作業ウィンドウの中段のすべてのラベルの更新をクリック。
    
    画面右側の作業ウィンドウの最下段の【次へ:ラベルのプレビュー表示】を選択。
    
    

    MLCのSSDまとめ。

    ♪デフラグはDefraggler
    ■JMF602搭載SSDのプチフリ対策 
    SSDと相性の良いXPの作り方 by OCZサポート 
    ttp://www.ocztechnologyforum.com/forum/showthread.php?t=43460 
    
    ○はじめに 
    
    nLiteを使え
    
    ○その次にやること 
    
    Prefetchを切れ 
    RAMを最大容量まで搭載しろ 
    ハイバネーションを切れ 
    システムの復元を切れ 
    「ディスクの書き込みキャッシュを有効にする」のチェックを外せ 
    8.3文字ファイル名の生成を切れ 
    最終アクセス日時の更新を切れ 
    インデックスサービスを無効にしろ 
    NTFS Change Journalを切れ 
    SSDの容量が50%以上ならないようにしろ 
    カーネルを物理メモリに置くな(習慣でやってる奴多め)
    
    何をやってもダメなら敢えてプチフリSSDを買った自分を称えながら悶絶しろ 
    
    寿命が気になるなら 
    ■JMF601/JMF602搭載SSD用モニタリング・寿命予測ソフト「JSMonitor」 
    博士課程大学院生の現実逃避日記 
    ttp://d.hatena.ne.jp/Lansen/20081220/1229794552 
    を使ってみる。 
    

    Windowsが起動したままの状態でハードディスクをまるごとイメージ化できるフリーソフト

    Macrium Reflect FREE Edition

    ASUS M/B SoundMAX Maximus II Formula SupremeFX X-Fi

    WindowsXPだと、KB835221 or KB888111を入れないとドライバがインストールできない。

    Linux <-> Windows

    Q:Windowsで使ってたアプリと似たようなのありますか? 
    A:代表的なアプリは以下です。 
    ブラウザ: Firefox(標準)、Opera、Konqueror 
    メーラー: ThunderBird(ヘルパ、OutLook Express似)、Evolution(標準、OutLook似)、Sylpheed 
    オフィス: OpneOffice.org(標準)、Koffice 
    マルチメディアプレーヤー: Totem(標準)、VLC(DVD再生可)、MPlayer・SMPlayer 
    音楽プレーヤー: Amarok、RhythmBox(標準) 
    PDFリーダー:Acrobat(ヘルパ)、KPDF 
    2ちゃんねるブラウザ: JD(ヘルパ、JaneStyle似)、おちゅ?しゃ(ヘルパ)、V2C(JaneStyle似)、b2r 
    画像管理(?) : Fspot、GTumb、Picasa 
    画像編集: Gimp(標準、ペイント)、Inkscape(ドロー)、Scribus(DTP) 
    FTPクライアント: gFTP 
    CD作成: K3b、X-CD-Roast 
    漫画ビューア: Comix、Wine+MangaMeeya・Leeyes 
    ファイル交換: Transmission(標準)、LimeWire 
    メッセンジャー: Pidgin(標準) 
    インターネット通話: Skype(ヘルパ、Ver2)、Ekiga(標準) 
    仮想ドライブ: Gmount-iso 
    動画DL: Mitterツールバー(Firefox用) 
    システムカスタマイズ:Ubuntu Tweak 
    日本語入力: Anthy(標準)、Prime、ATOK(有料) 
    テキストエディタ: gedit(標準)、vi(標準)、vim、emacs、Kate、Kwrite 
    Windowsエミュレータ:Wine 
    ドック: CairoーDock、AVANT 
    ファイアウォール: FireStarter 
    アンチウィルス: ClamTK、Avast、Antivir 
    その他:http://www12.atwiki.jp/linux2ch/pages/7.html#apps 
    
    http://forum.ubuntulinux.jp/viewtopic.php?id=281

    無線LANの電波状況チェックツール

    NetStumbler ,  日本語化

    2度寝をしない!!

    • 朝起きてスグに水を飲むとイイらしい。酸素が頭にいきわたってサッパリのよう。水を枕もとに置いて寝よう。

    いろんな動画Codecを自動収集

    Windows Essentials Codec Pack

    grepでカウントできる!

    boke.txtの中にhogeの文字が何行出てきたか
    grep -c hoge boke.txt
    less boke.tar | grep -ic hoge
    

    OpenSSH : WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

    OpenSSH の ssh コマンドや scp コマンドで相手先のホストにアクセスしようとしたとき、次のようなメッセージが出ることがあります。
    これは、ホスト側のコンピュータが入れ替わったを検出して警告を出しているものです。たとえば、誰かがなりすましで同じ名前で別の PC を設置し、パスワードを盗むつもりかもしれません。また、途中に盗聴用のサーバを置いて通信内容を盗み見るためかもしれません。
    もちろん単にサーバが壊れて予備のサーバに置き換えたとか、LAN ボードを交換しただけという時もあるでしょう。自分で分かるときはよいですが、不明なときはホスト側の管理者に確認しましょう。何も変わっていないのにこのような警告が出るときは、盗聴のおそれがあります。
    さて、問題ないと分かった上でこの警告を出ないようにするには、~/.ssh/ ディレクトリにある known_hosts ファイルを開いて該当する項目を削除してください。
    の該当するホストの行 (ホスト名だけや IP アドレスだけの時もあります) を削除します。次にアクセスすると RSA key fingerprint が表示され正しいホストかどうか確認されます。正しければ Are you sure you want to continue connecting (yes/no)? に対して yes を入力すれば known_hosts ファイルに新しいホストが追加されます。
    ただし、OpenSSH 4.0以降で、ssh_config の HashKnownHosts が有効になっていると、knows_hosts 内のホスト名、IP アドレスはハッシュ化されて保存されます。このとき、known_hosts ファイルを直接開いただけではホスト名や IP アドレスは分からないようになっています。この場合は ssh-keygen コマンドの -F オプションを使って
    とすればどの行に格納されているかを見ることができます。エディタでこの行を削除するのは間違えるかもしれませんので、ssh-keygen コマンドの -R オプションで削除しましょう。

    nptdateで時刻合わせ

    (ntpdate -b -s 130.69.251.23 && clock -w) || (ntpdate -b -s 133.100.9.2 && clock -w)
    

    CentOSのnetinstallモードのサイト設定

    *FTP or HTTP Setup*
    Web site name    : ftp.riken.jp
    CentOS directory : Linux/centos/5.2/os/i386/
    

    GPUの消費電力

    http://www.techpowerup.com/reviews/Powercolor/HD_4850/21.html 
    model アイドル/ 3D平均 / 3D最大 (Watt)
    9600GT   111 171 190
    8800GT   113 171 190
    88GTS512 125 192 215
    9800GTX  130 203 228
    HD3850    93 169 187
    HD3870    94 177 198
    HD4850   128 192 208
    

    DNSの役割

    1. 正引き - ホスト名からIPアドレスを返す。Aレコードで管理される。
    2. 逆引き - IPアドレスからホスト名を返す。PTRレコードで管理される。
    3. SMTPサーバの特定 - MXレコードで管理される。

    TeratermでCOM5以上を使うには

    Terminal.ini の中の値を以下のように変更する
    MaxComPort=10
    

    ヒネモス

    コンピュータ群を統合し、効率的に運用するOSS管理ツールHinemos(ヒネモス)

    LVS(LinuxVirtualServer)についてまとめ

    Ultra Monkey

    とは、
    Linux-HA (High Availability=高可用性) プロジェクト
    LVS (Linux Virtual Server) プロジェクト
    の産物を中核とした様々なツールを組み合わせて、冗長化と負荷分散、つまり広義のクラスタを Linux で実現しようというプロジェクト。

    Bonding モジュールで NIC を Teaming する手順

    1: ifenslave
    
    ifenslaveは、bond デバイスに実際の NIC を登録するコマンドです。
    bond デバイスが Master、実際の NIC は、Slave と呼びます。
    
    標準ではインストールされていないので以下の手順で作成します。
    
    --------------------------------------------
     # cd /usr/src/linux-2.6.8/Documentation/networking/
     # gcc -Wall -Wstrict-prototypes -O -I/usr/src/linux/include ifenslave.c -o ifenslave
     # cp ifenslave /sbin/ifenslave
    --------------------------------------------
    
    2: /etc/modules.conf
    
    起動時に bond モジュールがロードされるように /etc/modules.conf に次の行を追加します。
    
    --------------------------------------------
     alias bond0 bonding
    --------------------------------------------
    
    以下のコマンドでモジュールを反映します。
    
    --------------------------------------------
     # depmod -a 
    --------------------------------------------
    
    3: /etc/sysconfig/network-scripts/ifcfg-bond0
    
    bond0 デバイスを追加するために、ifcfg-bond0 を作成します。
    
    --------------------------------------------
     DEVICE=bond0
     IPADDR=172.16.36.58
     NETMASK=255.255.252.0
     NETWORK=172.16.36.0
     BROADCAST=172.16.39.255
     ONBOOT=yes
     BOOTPROTO=none
     USERCTL=no
    --------------------------------------------
    
    4: /etc/sysconfig/network-scripts/ifcfg-eth0、/etc/sysconfig/network-scripts/ifcfg-eth1
    
    結合するインターフェイス(eth0, eth1)を次のように構成します。
    
    /etc/sysconfig/network-scripts/ifcfg-eth0
    --------------------------------------------
     DEVICE=eth0
     USERCTL=no
     ONBOOT=yes
     MASTER=bond0
     SLAVE=yes
     BOOTPROTO=none
    --------------------------------------------
    
    /etc/sysconfig/network-scripts/ifcfg-eth1
    --------------------------------------------
     DEVICE=eth1
     USERCTL=no
     ONBOOT=yes
     MASTER=bond0
     SLAVE=yes
     BOOTPROTO=none
    --------------------------------------------
    
    5: 確認
    
    OS を再起動して Teaming されている事を確認します。
    --------------------------------------------
     # ifconfig
    
     bond0     Link encap:Ethernet  HWaddr 00:D0:B7:47:22:4A
               inet addr:172.16.36.58  Bcast:172.16.39.255  Mask:255.255.252.0
               UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
               RX packets:1096 errors:0 dropped:0 overruns:0 frame:0
               TX packets:64 errors:0 dropped:0 overruns:0 carrier:0
               collisions:0 txqueuelen:0
               RX bytes:79592 (77.7 Kb)  TX bytes:7536 (7.3 Kb)
     
     eth0      Link encap:Ethernet  HWaddr 00:D0:B7:47:22:4A
               UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
               RX packets:1096 errors:0 dropped:0 overruns:0 frame:0
               TX packets:66 errors:0 dropped:0 overruns:0 carrier:0
               collisions:0 txqueuelen:1000
               RX bytes:79592 (77.7 Kb)  TX bytes:7876 (7.6 Kb)
     
     eth1      Link encap:Ethernet  HWaddr 00:D0:B7:47:22:4A
               UP BROADCAST SLAVE MULTICAST  MTU:1500  Metric:1
               RX packets:0 errors:0 dropped:0 overruns:0 frame:0
               TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
               collisions:0 txqueuelen:1000
               RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
               Interrupt:17 Base address:0xcc80
     
     lo        Link encap:Local Loopback
               inet addr:127.0.0.1  Mask:255.0.0.0
               UP LOOPBACK RUNNING  MTU:16436  Metric:1
               RX packets:18 errors:0 dropped:0 overruns:0 frame:0
               TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
               collisions:0 txqueuelen:0
               RX bytes:1228 (1.1 Kb)  TX bytes:1228 (1.1 Kb)
    --------------------------------------------
    

    LVSチュートリアル

    クラスタリングについて

    クラスタシステムの種別は、目的別で分けて2種類あります。
    ○HAクラスタ(High Availability クラスタ。高可用クラスタとも言われる)
     高可用性(High Availabilty)を求めるためのクラスタシステム。24時間365日ノンストップとか、アクセスが集中しても性能ダウンやシステム停止を起こさないなど、安定性・信頼性が要求される場合は、こちらの手法が使われます。
    ○HPCクラスタ(High Performance Computing クラスタ)
     高性能を求めるためのクラスタシステムです。スーパーコンピュータのように強力な計算能力を持つシステムを構築する場合は、こちらの手法が使われます。
    高可用クラスタ(Webサーバーでよく使われるのはこの種別のクラスタ)、これも2種類の手法があります。
    ●フェイルオーバークラスタ
     機材やデータの冗長化により、障害が発生してもダウンさせないためのシステム
    ●負荷分散クラスタ
     アクセスが増えても極端に性能が落ちないよう、処理を複数のマシンに振り分けて負荷を集中させないシステム
    

    手軽に負荷分散

    DNSラウンドロビンを使用すればゾーンファイルの設定のみで導入できる。が、問題点が多い。

    FreeNAS

    メモリを4GB以上搭載していると起動しません(ノ∀`*)

    簡単にDD

    Windowsでイメージを簡単に書き込むソフトがDDforWindows

    ポートとプロトコル

    YAMAHA RTXルータのリビジョンを最新に!!

    # http revision-up go
    

    Perlのオプション

    くわぞう (2006年5月31日 20:00) | 個別ページ
    -e 'コマンド'
    
    -Mモジュール モジュールを使う
    $ perl -MCPAN -e shell
    -c hoge.pl 構文をチェックするだけで実行しない
    -T 汚染チェック 5.004以降は#!行では使えなくなった
    
    ■デバッグモード
    http://fleur.hio.jp/perldoc/mix/pod/perldebug.html
    
    -w 警告を出力する。まず最初にためす。
    
    -d hoge.pl デバッグモード
    
    nで進み、以降、[Enter]で進み続ける
    Nでもどる。
    qで終了する。
    

    楽々(らくらく)Fedora10でpptpクライアント接続

    まずVPN PPTPに必要なパッケージ、pptp-1.7.2-3.fc10.i386 をインストールする
    # yum -y install pptp
    
    スクリプトファイルを作成する
    PPTPクライアント用の設定ファイルを作成する
    
    ※ その都度接続する場合は
    # vi /usr/bin/pptp-client
    
    ※ 自動起動する場合は
    # vi /etc/rc.d/init.d/pptp-client
    
    ------------------------------ ここから ------------------------------
    
    #!/bin/bash
    #
    # PPTP
    # chkconfig: - 99 20
    #
    # description: PPTP service script
    
    # Source function library.
    . /etc/rc.d/init.d/functions
    
    SERVER="pptpサーバー"		# 接続先のIPアドレス or ホスト名
    USER="ユーザー名"		# PPTP用 ユーザー名
    PASSWORD="パスワード"		# PPTP用 パスワード
    HOSTNET="192.168.0.0"		# 接続先のネットワークアドレス
    HOSTMASK="255.255.255.0"	# 接続先のネットマスク
    
    RESOLVCONF="/etc/resolv.conf"
    RESOLVCONFBAK="/tmp/resolv.conf.bak"
    
    DEBUG="debug"
    LOGLEVEL="2"
    
    case "$1" in
        start)
            if [ -z "$(/sbin/pidof pptp)" ]; then
                echo -n "Starting pptpd..."
                if [ -f $RESOLVCONF ] ;then
                  cp -p $RESOLVCONF $RESOLVCONFBAK
                fi
    
                /usr/sbin/pppd \
                $DEBUG lock noauth nodeflate nobsdcomp noccp \
                name $USER \
                password $PASSWORD \
                require-mppe \
                pty "/usr/sbin/pptp $SERVER --nolaunchpppd --loglevel $LOGLEVEL"
    
                sleep 5
                if [ ! -z "$(/sbin/pidof pptp)" ]; then
                  route add -net $HOSTNET netmask $HOSTMASK dev ppp0
                  echo -e "                                    [\033[32m  OK\033[0m  ]"
                else
                  echo -e "                                    [\033[31m  NG\033[0m  ]"
                fi
    
                touch /var/lock/subsys/pptp
            else
                echo "pptpd allready running!!!"
            fi
            ;;
        stop)
            if [ -z "$(/sbin/pidof pptp)" ]; then
                echo "pptpd not running!!!"
            else
                echo -n "Shutting down pptpd..."
                /usr/bin/killall /usr/sbin/pptp
                if [ -f $RESOLVCONFBAK ] ;then
                  cp -p $RESOLVCONFBAK $RESOLVCONF
                fi
                until [ -z "$(/sbin/pidof pptp)" ]; do :; done
                rm -f /var/lock/subsys/pptp
                echo -e "                               [\033[32m  OK\033[0m  ]"
            fi
            ;;
        status)
            if [ -z "$(/sbin/pidof pptp)" ]; then
                echo -e "pptpd not running...\n"
            else
                echo -e "pptpd is running... pid=[ \033[32m$(/sbin/pidof pptp)\033[0m ]\n"
            fi
            ;;
        version)
            echo -e "$(/usr/sbin/pptp --version)\n"
            ;;
        restart)
            $0 stop
            $0 start
            ;;
        *)
            echo -e "\nUsage: $0 {start|stop|restart|status|version}\n"
            exit 1
    esac
    
    exit 0
    
    ------------------------------ ここまで ------------------------------
    
    PPTPクライアント用の設定ファイルに実行権を与える
    
    ※ その都度接続する場合は
    # chmod +x /usr/bin/pptp-client
    
    ※ 自動起動する場合は
    # chmod +x /etc/rc.d/init.d/pptp-client
    
    # chkconfig --add pptp-client
    
    # chkconfig pptp-client on
    
    # chkconfig --list pptp-client
    pptp-client    	0:off	1:off	2:on	3:on	4:on	5:on	6:off
    
    PPTP接続
    ※ その都度接続する場合
    
    オプション無しで開始してみる
    
    # pptp-client
    Usage: /usr/bin/pptp-client {start|stop|restart|status|version}
    
     ↑ヘルプが出る。
    
    開始してみる
    
    # pptp-client start
    Starting pptpd...                                    [  OK  ]
    #  ←プロンプトが帰ってきたことを確認
    
    IPアドレスを確認する
    
    # ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:1E:90:D3:46:B1
              inet addr:xxx.xxx.xxx.xxx  Bcast:xxx.xxx.xxx.xxx  Mask:255.255.255.0
              inet6 addr: fe80::xxx:xxxx:xxxx:xxxx/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:6271143 errors:0 dropped:0 overruns:0 frame:0
              TX packets:6592528 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:1963469937 (1.8 GiB)  TX bytes:312092375 (297.6 MiB)
              Interrupt:20 Base address:0x8c00 
    
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:1251500 errors:0 dropped:0 overruns:0 frame:0
              TX packets:1251500 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:181020084 (172.6 MiB)  TX bytes:181020084 (172.6 MiB)
    
    以下が追加されていることの確認
    
    ppp0      Link encap:Point-to-Point Protocol
              inet addr:192.168.0.6  P-t-P:192.168.0.1  Mask:255.255.255.255
              UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
              RX packets:6 errors:0 dropped:0 overruns:0 frame:0
              TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:3
              RX bytes:60 (60.0 b)  TX bytes:56 (56.0 b)
    
    サーバー側のネットワーク内のPCにpingをとばしてみる
    
    # ping -c 4 192.168.0.80
    PING 192.168.0.80 (192.168.0.80) 56(84) bytes of data.
    64 bytes from 192.168.0.80: icmp_seq=1 ttl=254 time=6.56 ms
    64 bytes from 192.168.0.80: icmp_seq=2 ttl=254 time=6.04 ms
    64 bytes from 192.168.0.80: icmp_seq=3 ttl=254 time=6.16 ms
    64 bytes from 192.168.0.80: icmp_seq=4 ttl=254 time=5.92 ms
    
    --- 192.168.0.80 ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3009ms
    rtt min/avg/max/mdev = 5.926/6.175/6.562/0.238 ms
    
    ↑ エラーが帰ってきていないことの確認。
    これでつながった状態になっている。
    
    # pptp-client status
    pptpd is running... pid=[ 3677 3662 ]
    
    # pptp-client version
    pptp version 1.7.2
    
    切断してみる
    
    # pptp-client stop
    Shutting down pptpd...                               [  OK  ]
    #  ←プロンプトが帰ってきたことを確認
    
    IPアドレスを確認する
    
    # ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:1E:90:D3:46:B1
              inet addr:xxx.xxx.xxx.xxx  Bcast:xxx.xxx.xxx.xxx  Mask:255.255.255.0
              inet6 addr: fe80::xxx:xxxx:xxxx:xxxx/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:6271143 errors:0 dropped:0 overruns:0 frame:0
              TX packets:6592528 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:1963469937 (1.8 GiB)  TX bytes:312092375 (297.6 MiB)
              Interrupt:20 Base address:0x8c00 
    
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:1251500 errors:0 dropped:0 overruns:0 frame:0
              TX packets:1251500 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:181020084 (172.6 MiB)  TX bytes:181020084 (172.6 MiB)
    
     ↑ ppp0 がなくなっている
    
    サーバー側のネットワーク内のPCにpingをとばしてみる
    
    # ping -c 4 192.168.0.80
    PING 192.168.0.80 (192.168.0.80) 56(84) bytes of data.
    
    --- 192.168.0.80 ping statistics ---
    4 packets transmitted, 0 received, 100% packet loss, time 12999ms
    
    ↑ エラーが帰ってきていることの確認。
    これで切断された状態になっている。
    
    以上です。
    

    NetMeeting は次のポートを使用しています

    ポート    目的
    -------------------------------------
    389       Internet Locator Server [伝送制御プロトコル (TCP)]
    522       User Location Server (TCP)
    1503      T.120 (TCP)
    1720      H.323 コール セットアップ (TCP)
    1731      Audio コール制御 (TCP)
    Dynamic   H.323 コール制御 (TCP)
    Dynamic   H.323 ストリーミング [User Datagram Protocol (UDP) 経由の
                       Realtime Transport Protocol (RTP)]
    

    マルチホーミング

    概要
    マルチホーミングは、同一宛先に対する複数の経路で負荷を分散させることができる機能です。例えば複数のISPに同時に接続して通信することが可能となり、各ISPへの回線速度に応じてパケットを振り分けることができます。また、回線ダウン時にも別ISP経由でパケットを送出することができます。

    この機能を使用するためには、NAT/IPマスカレードによるアドレス変換を行う必要があります。一般的なISP接続では、ISPからユーザにグローバルアドレス空間が割り当てられ、ユーザからISP経由でインターネットにパケットを送出する時には、割り当てられたグローバルアドレス空間内のIPアドレスを始点IP アドレスとする必要があります。そのため、複数のISPを利用するためには、利用するISPに応じて始点IPアドレスを変えなくてはなりません。これを実現するためにルータでアドレス変換を行います。NAT/IPマスカレードを使わず割り当てられたグローバルアドレスのままこの機能を設定した場合、対向機器側での経路情報が問題となり、正しく動作することは保証されません。

    また、これは1台のルータで実現する機能であり、複数のルータ間では使用することはできません。複数のルータ間で設定した場合には、単にパケットがロスするだけではなく、LAN上の他の通信に悪影響を及ぼすことが考えられます。

    アプリケーションによってはマルチホーミング環境では動作しないものがあります。例えばFTPのパッシブモードは正しく動作しないことがあります。マルチホーミング導入の前に利用するアプリケーションを検証しておく必要があります。

    マルチホーミングは、Rev.6.00.20以降のファームウェアで使用することができます。

    Linuxからルータへシリアル接続

    WindowsだとハイパーターミナルやTeraTermで接続。Linuxは下記コマンドで接続。切断はチルダ・ドット"~."で抜ける。
    # yum install uucp
    # cu -l /dev/ttyS0 -s 115200
    

    MACアドレスからメーカー検索

    Radiusサーバ接続確認用のクライアント

    NTRadPingはWindowsでRADIUSをテストするRADIUSのクライアント。

    バックアップ接続

    pp1が切れた時に自動でpp2接続してくれるやり方
    # pp select 1
    pp1# pp backup 2
    

    NAT時の注意点

    ip lan2 addressの設定アドレスとnat descriptor address outerの設定アドレスが 同じであるときには、nat descriptor address innerにも設定アドレスを含める。
    nat descriptor type 1 masquerade
    nat descriptor address outer 1 xxx.xxx.xxx.170
    nat descriptor address inner 1 xxx.xxx.xxx.170 192.168.11.1-192.168.11.254
    

    YAMAHA RTX1100のコンフィグをゲット

    CeontOSでRTX1100のコンフィグをゲットするコマンド
    tftp 192.168.1.254 -c get config/パスワード 保存ファイル名
    

    PPPoE設定コマンド

    ISP接続では Unnumbered でIP固定なのでPP側IPアドレスのネゴシエーションは不要だが、フレッツ・スクウェアの接続では必要とする。
    pp select 2
    ppp ipcp ipaddress on
    
    IPCPのMS拡張オプションでDNSサーバのIPを取得できる。
    ppp ipcp msext on
    
    下記コマンドで確認できる。
    show status pp 2
    

    VPN参考ページ

    ipsecの設定(で、policy_idとかgatewa_idとは?)

    ■必要なこと
    ・SAのポリシーの定義 (policy_id、1..255、かぎ交換のポリシーのこと)
    ・セキュリティゲートウェイの番号 (gateway_id、1.30、接続する相手先のこと)

    ■トンネルモード

    .札ュリティゲートウェイを設定する(gateway_id) 相手先のセキュリティゲートウェイのIPアドレスの設定
    # ipsec ike remote address (gateway_id) (相手先のWAN側アドレス)
    事前共有鍵の登録
    # ipsec ike pre-shared-key (gateway_id) text (仮共有キー)
    SAのポリシーを設定する(policy_id
    # ipsec sa policy (policy_id) (gateway_id) (ah/esp) (esp_algo) (ah_algo)
    例:# ipsec sa policy 06 24 esp des-cbc sha-hmac
    トンネルの設定
    # tunnel select 2
    # ipsec tunnel (policy_id)
    # tunnel enable 2

    BGP4(ビージーピーフォー)

    ボーダ・ゲートウェイ・プロトコル:TCP/IPネットワークでデータを送受信する際に、あらかじめルータに設定されたデータ到達経路ではなく、ルータが適切な到達経路を自動的に選択することで、到達経路の手動設定を不要とするルーティングプロトコルの1種。インターネットのように大きなTCP/IPネットワークでは、ISPや企業といった組織ごとのネットワークをAS(Autonomous System)という単位で扱い、ルーティングプロトコルは、異なるAS間で利用されるEGP(Exterior Gateway Protocol)と、同一のAS内で利用されるIGP(Interior Gateway Protocol)に分類される。BGP4は、現在のインターネットにおけるEGPのスタンダードとみなされている。

    RTXのパス忘れの時

    • シリアル接続で⇒w,lXlma

    フリーの焼きソフト

    • かんべ

    RTX1100のリビジョンアップ

    % tftp 192.168.1.254
    > mode binary
    > put rtx1100.bin exec
    

    netvolante-dnsに登録してみた

    # pp select 1
    pp1# netvolante-dns use pp auto
    pp1# netvolante-dns hostname host pp tokyo-gate
    pp1# netvolante-dns go pp 1
    [ayame.aa1.netvolante.jp] を登録しました
    新しい設定を保存しますか? (Y/N)Y
    セーブ中... 終了
    pp1#
    

    RTX1000/1100/1500等シリアル接続

    端末パラメータ設定値
    データ転送速度9600bit/s
    キャラクタビット長8
    パリティチェック無し
    ストップビット数1
    フロー制御Xon/Xoff

    ネットボランチDNS

    RTXとか持ってると、YAMAHAのDNSサイトへ無料で登録できるみたい。例によってコピペ(苦笑
    yamaha rtx1000のnetvolante-dns設定コマンド
    ヤマハが公開しているコマンド事例が若干分かりずらいので
    覚書として掲載
    
    pp2にてpppoe接続
    #pp select 2
    pp2# netvolante-dns hostname host pp pc-help
    pp2# netvolante-dns go pp 2
    [pc-help.aa1.netvolante.jp] を登録しました
    新しい設定を保存しますか? (Y/N)Y
    セーブ中... 終了
    (^_^)v お役に立てたらご登録願います!
    

    tcpdump メモ

    tcpdump -i ppp0 -n tcp port 80 and src host xx.xx.xx.xx

    -i :インターフェースを指定

    -n :出力をホスト名ではなく IP で表示 tcp port 80 : プロトコル・ポートを指定 src host xx.xx.xx.xx : パケット送信元が xx.xx.xx.xx であるものを表示

    src の部分は、 src, dst, src and dst, src and src の4種類 host の部分は、 host, net, port が指定可能

    tcpdump -i ppp0 -n -w ./tcpdmp.out tcp port 80 and src host xx.xx.xx.xx

    -w ファイル名 : tcpdump 結果をファイルに出力

    tcpdump -r ./tcpdmp.out

    -r :-w オプションで出力した結果ファイルを ASCII に解析

    アクティブFTPとパッシブFTP

    PORTモード/ノーマル・モード/アクティブ・モード

    昔からある方法で、WindowsのFTPコマンドなどがこれにあたる。 FTPの制御(コマンドとレスポンス)に21番ポートを使用し、FTPのデータ転送(lsコマンドの結果、ファイルのアップロード・ダウンロード)に20番ポートを使用する。

    PASVモード/パッシブ・モード/ファイアウォール(フレンドリ)モード/Proxyモード

    ブラウザによるFTPなどがこれにあたる。 FTPの制御(コマンドとレスポンス)に21番ポートを使用し、FTPのデータ転送(lsコマンドの結果、ファイルのアップロード・ダウンロード)に任意のポートを使用する。

    FreeRadiusインストール方法

    (2)RADIUS サーバの設定

    設定ファイルは /usr/local/etc/raddb ディレクトリにあります。 今のところはとりあえず簡単に設定して、サーバが正常に動作していることを確認できたら 細かく設定することにしましょう。

    radiusd.conf ファイルでは、freeRADIUS の さまざまな機能を設定します。 では、radiusd.conf ファイルを覗いてみましょう。

    最初に設定ファイルのパスやログファイルのパスの指定が記述されています。 ここでもう一度それぞれのパスを確認しておきましょう。
    さらに進むと、CLIENTS CONFIGURATION というセクションがあります。 これは、RADIUS サーバへのアクセスを許可するクライアントの一覧が設定されているファイルの指定です。

     
    # CLIENTS CONFIGURATION
    #
    #  Client configuration is defined in "clients.conf".
    #
     
    #  The 'clients.conf' file contains all of the information from the old
    #  'clients' and 'naslist' configuration files.  We recommend that you
    #  do NOT use 'client's or 'naslist', although they are still
    #  supported.
    #
    #  Anything listed in 'clients.conf' will take precedence over the
    #  information from the old-style configuration files.
    #
    $INCLUDE  ${confdir}/clients.conf 
    

    clients.conf というファイルがクライアントの一覧のファイルと指定されていますね。 あとでこのファイルを設定します。

    またまたさらに進むと、unix というセクションがあります。 ユーザー認証に Unix ユーザーのユーザーIDとパスワードを使用する場合は、このセクションの passwd, shadow, group の各項目に正しいファイル名が指定されているかチェックしておきましょう。

     
            unix {
                    #
                    #  Cache /etc/passwd, /etc/shadow, and /etc/group
                    #
    	      -----省略-----
                    #
                    #  Define the locations of the normal passwd, shadow, and
                    #  group files.
                    #
                    #  'shadow' is commented out by default, because not all
                    #  systems have shadow passwords.
                    #
                    #  To force the module to use the system password functions,
                    #  instead of reading the files, leave the following entries
                    #  commented out.
                    #
                    #  This is required for some systems, like FreeBSD,
                    #  and Mac OSX.
                    #
                           passwd = /etc/passwd
                       shadow = /etc/shadow
                       group = /etc/group 
       	   -----省略-----
    

    では、clients.conf を見てみましょう。
    コメントアウトされている部分を除くとこんな風になっています。

     
    client 127.0.0.1 {
            secret          = testing123
            shortname       = localhost
            nastype         = other
    }
    

    これはローカルホストのエントリです。とりあえずここはこのままにしておけば大丈夫です。 内容は後で見ていくことにしましょう。
    さて、設定確認してみましょうか!と言ってもまだできません。サーバに接続する ユーザー情報を登録する必要があります。登録先は users ファイルです。
    細かい説明は後回しにして、users ファイルの最後に以下のように記述してみてください。 この例では、ユーザー名を「hanako」、パスワードを「suzuki」としてみました。

     
    hanako  Auth-type := Local, User-Password == "suzuki"
            Service-Type = Framed-User,
            Framed-Protocol = PPP,
            Framed-IP-Address = 255.255.255.254,
            Framed-IP-Netmask = 255.255.255.0,
            Framed-Routing = Broadcast-Listen
    

    ここまで設定できたら、サービスを起動してみましょう。

     
    # radiusd
    Info: Starting - reading configuration files ...
    #
    

    エラーメッセージが出なければ起動できています。次に接続確認をしてみましょう。 確認には radtest というコマンドを使います。radtest の引数は・・・

     
    # radtest [ユーザー名] [パスワード] [サーバIPアドレス] [クライアント着信ポート番号] [secret]
    

    となっています。 クライアント着信ポート番号とは、TCPやUDPのポート番号とは全く異なるもので、クライアントが 接続している着信ポートのポート番号です。わからなければ0(ゼロ)にしておきましょう。
    最後の引数は、client.conf に書かれていた secret のことです。 コマンドを実行してみるとこんな感じになります。

     
    # radtest hanako suzuki localhost 0 testing123
    Sending Access-Request of id 209 to 127.0.0.1:1812
            User-Name = "hanako"
            User-Password = "suzuki"
            NAS-IP-Address = 192.168.xxx.xxx
            NAS-Port = 0
    rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=209, length=50
            Service-Type = Framed-User
            Framed-Protocol = PPP
            Framed-IP-Address = 255.255.255.254
            Framed-IP-Netmask = 255.255.255.0
            Framed-Routing = Broadcast-Listen
    #
    

    Access-Acceptと返ってくれば接続成功です。 もし、接続に失敗しているなら以下の項目をチェックしてみてください。

    • radtest を実行したときのエラーメッセージを見てください。 ヒントが書かれているはずです。
    • RADIUSサーバは動作していますか?
      ps コマンドで確認してください。
    • client.conf で設定した secret を正しく入力しましたか?
    • users ファイルに登録したユーザーIDとパスワードを正しく入力しましたか?

    いかがでしょうか?接続できたでしょうか?

    サーバを停止させるには、以下のコマンドを実行しましょう。

     
    # kill `cat /usr/local/var/run/radiusd/radiusd.pid`
    

    ついでに起動スクリプトも用意しておきましょう。/etc/init.d/ ディレクトリに 保存し、実行権限をつけます。

     
    #!/bin/sh
     
    case $1 in
    'start')
    	/usr/local/sbin/radiusd
    	;;
    'stop')
    	if [ -f /usr/local/var/run/radiusd/radiusd.pid ]; then
    	pid=`cat /usr/local/var/run/radiusd/radiusd.pid`
    	kill -TERM $pid
    	echo ' radiusd stop'
    	fi
    	;;
    *)
    	echo "usage : radiusd {start|stop}"
    	;;
    esac
    

    これで一応サーバの設定ができました。次はクライアントの設定に参りましょう。

    FreeRadiusインストール方法

    こっちの方がわかりやすいかな…?
    ==========================================================================
      ゼロから始めるLinuxサーバー                          #123  2005/08/12
                                                    http://www.urizinlab.jp/ 
    ==========================================================================
    
    
    ==========================================================================
    
     こんばんは。
    配信が大幅に遅れてしまい、申し訳ございません。お盆休みもまともに無いくら
    い忙しく、この状態が当分続きそうです。
    
     今回は、「FreeRADIUS」の設定方法の続きを説明します。
    
    ==========================================================================
    
    ---- INDEX ---------------------------------------------------------------
    
      ◆1 「clients」の設定
      ◆2 「naslist」の設定
      ◆3 「clients.conf」の設定
    
    --------------------------------------------------------------- INDEX ----
    
    
    == ◆1 「clients」の設定 ===============================================
    
     「clients」ファイルでは、RADIUS サーバーへアクセスする RADIUS クライア
    ントを登録します。
    
     ただし、最近のバージョンの FreeRADIUS では、「clients」ファイルではなく、
    「clients.conf」ファイルで設定することを勧めています。現在の最新バージョ
    ンの「1.0.4」では、デフォルトのインストールで「clients」ファイルは存在し
    ていますが、内容は「互換性を維持するために存在するだけで「clients.conf」
    ファイルで設定することを勧める」との記述があるだけです。
    
     従来、「clients」ファイルと「naslist」ファイル (着信装置のホスト名、IP 
    アドレス、略称、機種コードなどを登録しておくファイル) で設定を行っていた
    内容を「clients.conf」ファイルだけで行うことができるようになっていて、よ
    り柔軟性があって、管理もしやすくなっているようです。
    
     ここでは簡単に「clients」ファイルの設定方法を説明します。
    
      −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
    
     RADIUS サーバーと RAUDIUS クライアントは、共通の共有鍵でお互いの正当性
    を確認するので、RADIUS サーバーは接続してくるクライアントの共有鍵を知って
    いる必要があります。
    
     「clients」ファイルでは、単にクライアント毎の共有鍵を設定するだけです。
    
    
      A1:  # RADIUS CLIENT        KEY
      A2:  localhost             test01
      A3:  192.168.1.11          test02
      A4:  host01.urizin.com     urizin03
      A*:         :
    
    
    のように、ホスト名やIP アドレスと、そのクライアントの共有鍵を1行に空白を
    開けて指定します。
     
    =============================================== ◆1 「clients」の設定 ==
    
    == ◆2 「naslist」の設定 ===============================================
    
     「clients」ファイルで設定を行うと、「naslist」の設定も必要なる場合があ
    るので、少し説明しておきましょう。
    
    
     このファイルもインストール時に作成されますが、ファイルの最初に「互換性
    を維持するために存在するだけで「clients.conf」ファイルで設定することを勧
    める」との記述があります。
    
     「naslist」の設定は、1行に3つの項目で設定します。
    
     1つ目は、クライアントのホスト名か IP アドレスで、2つ目がログファイル
    の中で使う省略名称。3つ目がその機器のタイプです。これら3つの項目を空白
    を開けて指定します。
    
     デフォルトでは、
    
    
      B*:           :
      B1:  # NAS Name              Short Name      Type
      B2:  #----------------       ----------      ----
      B3:  #portmaster1.isp.com    pm1.NY          livingston
      B4:  #portmaster2.isp.com    pm1.LA          livingston
      B5:  localhost               local           portslave
    
    
    の様な記述があります。
     B3、B4 行目はサンプルで、B5 行目はサーバー自身を示す設定となっています。
    
     3つ目の項目の「タイプ」には、
    
      ┏━━━━━━━━━━━━━━━━┳━━━━━┓
      ┃     機    種     ┃ タイプ ┃
      ┣━━━━━━━━━━━━━━━━╋━━━━━┫
      ┃Cisco Access Server 系     ┃cisco   ┃
      ┣━━━━━━━━━━━━━━━━╋━━━━━┫
      ┃Computone PowerRack       ┃computone ┃
      ┣━━━━━━━━━━━━━━━━╋━━━━━┫
      ┃Livingston PortMaster      ┃livingston┃
      ┣━━━━━━━━━━━━━━━━╋━━━━━┫
      ┃Ascend Max 4000 系       ┃max40xx  ┃
      ┣━━━━━━━━━━━━━━━━╋━━━━━┫
      ┃Multitech CommPlete Server   ┃multitech ┃
      ┣━━━━━━━━━━━━━━━━╋━━━━━┫
      ┃3Com/USR Netserver       ┃netserver ┃
      ┣━━━━━━━━━━━━━━━━╋━━━━━┫
      ┃3Com/USR TotalControl      ┃tc    ┃
      ┣━━━━━━━━━━━━━━━━╋━━━━━┫
      ┃3Com/USR Hiper Arc Total Control┃usrhiper ┃
      ┣━━━━━━━━━━━━━━━━╋━━━━━┫
      ┃Cyclades PathRAS        ┃pathras  ┃
      ┣━━━━━━━━━━━━━━━━╋━━━━━┫
      ┃Patton 2800 系         ┃patton  ┃
      ┣━━━━━━━━━━━━━━━━╋━━━━━┫
      ┃Cistron PortSlave        ┃portslave ┃
      ┣━━━━━━━━━━━━━━━━╋━━━━━┫
      ┃その他             ┃other   ┃
      ┗━━━━━━━━━━━━━━━━┻━━━━━┛
    
    などがあります。
    
    =============================================== ◆2 「naslist」の設定 ==
    
    == ◆3 「clients.conf」の設定 ==========================================
    
     「clients.conf」ファイルは、「clients」と「naslist」の両ファイルを組み
    合わせ、さらに柔軟性を持たせた RADIUS クライアントに関する設定ファイルで
    す。
    
     この「clients.conf」ファイルもインストール時に作成されます。
    
    
     「clients.conf」ファイルでは、一つのクライアントに対して、複数の項目を
    「{」と「}」で囲って設定を行います。
    
     デフォルトの状態では、RADIUS サーバー自身に対する設定と、サンプルが記述
    されているので、参考にしてください。
    
     設定は基本的に、
    
    
      C*:  client ホスト名など {
      C*:    設定項目
      C*:      :
      C*:  }
    
    
    という書式になります。
    
     「client」キーワードで始まり、その後にホスト名や IP アドレス、ネットワー
    クアドレス (「192.168.1.0/24」のような) などでクライアントを指定し、「{」
    と「}」で複数の設定項目を囲みます。
    
     各設定項目の書式は、
    
    
      D1:  項目 = 値
    
    
    です。
    
     例えば、
    
    
      E1:  shortname = eigyou01
    
    
    とのように記述すると、クライアントからの接続に関して、ログファイルには、
    「eigyou01」という名で記録されます。
    
     設定項目には、
    
    ┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
    ┃ 項 目 ┃          内      容          ┃
    ┣━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
    ┃shortname ┃ログファイルの中で使う省略名称。            ┃
    ┣━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
    ┃nastype  ┃クライアントの機器のタイプ。「naslist」ファイルのタイプ ┃
    ┃     ┃と同じ。                        ┃
    ┣━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
    ┃secret  ┃共有鍵。32文字以内で省略不可。             ┃
    ┗━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
    
    などがあります。
    
     サンプルでは、「login」や「password」という項目もありますが、将来のバー
    ジョンで対応する機能の項目のようです。
    
    ========================================== ◆3 「clients.conf」の設定 ==
    
    
    ==========================================================================
    
     今回は、「FreeRADIUS」の「clients.conf」などの設定方法の説明でした。次
    回は「FreeRADIUS」の「users」ファイルの設定方法などを説明する予定です。
     当分忙しい状態が続きそうなので、毎週配信は難しいと思います。ご迷惑をお
    かけしますが、よろしくお願いします。
    
    では・・・。
    
    ==========================================================================
    

    FreeRadiusインストール方法

    やっと発見!面倒くさいのでコピぺ
    RADIUSインストール方法
    2004/02/24,
    最近Linuxを触っていない。いまいち正体の掴めないRADIUSサーバについて構築してみようという気になり、
    O'REILLY 「RADIUS」を買った。構築上Linuxは操作しまくるので一石二鳥である。早速AMAZONで発注し、ま
    ずは理論を学習する。重要用語を適度に抑えていく。
    
    【RADIUSサーバの構築】
    さて、いよいよRADIUSサーバ構築だ。ここからは構築メモ風に記していく。本当は構築など、
    ./configure>make>make installで終わってしまうのだが、今回はこういったやり方が理解に効率的かどう
    か確認するためにも、書籍の項目を細かく筆記した上で構築するという方法を行っている。
    
    構築に使うLinuxサーバは、SOTECのノートPC「WINBOOK」。元々OSにXPが入っており、PEN4/1.6GHZの大排
    気量マシンであるが、ノートPCの故排気しきれず熱暴走しがちのため、長時間運用のサーバにははっきり
    いって適していない。会社でネットワークの勉強をするため1年半前に買いすぐにRedHatLinux7.3をデュ
    アルインストールし、XPと共存させつつSnortやNagiosといったLinux系ツールを構築していたが、マンシ
    ョンに移ってからはメール専用のメインPCとし、win98/win2kサーバのデュアルPCはバックアップ専用と
    なっている。現在所有するマシンでLinuxが入っているのがこのノートしかないため、これを使って
    RADIUSサーバのインストールを行う。RedHatは現在企業用のEnterprise版のみサポートがあり、フリー板
    はFedora Coreとして新生したので、Errata等は打ち切りになっており、余り構築検証には相応しいとはい
    えないが、一方で企業で使っているフリーサーバ、ツール群は未だ過去のものを使い続けているという現
    状がある。金が絡むため、客先がうんと言わないと金が下りず、とっくにサポートが打ち切られたリリー
    スのサーバやツールを使い続けるしかないのである。そういう意味では7.3で検証することに何の意味もな
    いということには当たらない。(逆にバグフィックスやセキュリティが完全かどうか分からないリリース
    直後のサーバやツールを使うケースの方が珍しいと言える)
    IPは会社でも家でもルータから閉鎖LANかましていたのでそのままとする。(192.168.0.90)DNSは会社の
    イントラ用になっていたためインターネットのDNSを指定する。ルータへのping、インターネットへのping、
    Mozzilaでヤフー閲覧できることなどを確認する。
    
    O'REILLY 「RADIUS」を途中まで読んでみると分かるが、RADIUS単体ではなくpostgresqlやMySQLでのDB構
    築前提で話が進んでいることが分かる。元々Snort用にpostgresqlはインストール済みであったが、
    ポスグレユーザ会の話題では全くRADIUSに触れていないし、本でも構築DBサーバにMySQLを使っているので、
    MySQLを先にインストールし、データベーススキーマを作った上でRADIUSを入れることにする。
    (!!インストール順番はMySQL>RADIUSであること。逆であると動かない!!)
    日曜まる1日かけてMySQLをインストールしたが、mysql.sockがexistといって怒られ、全く起動しない。
    仕方がないので本屋で「MySQL徹底攻略ガイド」(技術評論社)を買い求め、添付のCDROMのソースからイ
    ンストール。あっさり入ったので拍子抜けする。とかく動かない場合は成功例を探してネットの記事を参
    照するが、ソースがついているなら本でやった方が成功率は圧倒的に高いということが分かった。
    Linux系ツールの場合、自分であれこれ試行錯誤するのは完全に時間の無駄である。メール等を送ってとっ
    とと教えてもらうか、100%成功する書籍の手順に従う方がよい。
    
    次にFREERADIUSをインストールする。完全に本の手順と同じやり方で行う。
    http://www.freeradius.oragからTARBALLのソースをダウンロードし、解凍する。
    できたディレクトリに移動し、環境設定のため、configする。
    root# ./configure --localstatedir=/var --sysconfdir=/etc
    
    コンパイル、インストールする。
    root# make
    root# make install
    
    設定ファイルを書き換える。
    /etc/raddb/clientsに
    RADIUSを入れているPCと、同じLANセグにいるWindowsPCのIPをそれぞれ書き加える。
    
    /etc/raddb/naslistに
    同様の情報を書き加える。
    
    動作確認を行う。
    RADIUSデーモンを起動する。
    root# /etc/raddb/radiusd
    
    以下のメッセージが表示され正常起動が確認できた。
    Starting - reading configuration files ......
    
    エラーメッセージが何も出ないのでOKである。
    念のためプロセスを確認したが、radiusdが起動している。
    RADIUSクライアントの動作確認のため、NTRadPingというWindows用のツールが紹介されており、
    WindowsPCにインストールする。
    インストールというほどのものはなく、ZIPファイルをダウンロードしてLHACAで解凍し、
    解凍されたフォルダ内のNTRadPing.exeを起動するだけ。
    
    NTRadPingのコンソール画面のそれぞれの項目に入力してRADIUSサーバとの疎通を確認する。
    [RADIUS Server/port] 192.168.0.90 1645
    [RADIUS Secret key] testing123
    [User Name] root
    [Password] rootのパスワード
    [Request type] Authentication Request
    
    注意点としては
    ・radiusdを起動する際はrootで起動すること。
    ・clientsファイルに接続元(ここではWindows)のIPが記されていること。
    ・Secret keyがclientsファイルに記されたものであること。
    ・サーバと接続元の間でFW等で1645ポートを遮断していないこと。
    
    一回目、繋がらない。
    RADIUS側でポートを指定して再度起動させる。
    root# radiusd -p 1645
    
    NTRadPingを行うと、今度は問題なく接続できた。
    ユーザのアカウント情報をMySQLのテーブルで管理するために、テーブルを作成する。作成に使う
    sqlはFREERADIUSのツールセットに入っている。ソースを展開したディレクトリ(俺の場合は
    /usr/local/src/radius/freeradius-0.9.3)配下の
    /src/modules/rlm_sql/drivers/rlm_sql_mysql/db_mysql.sqlが使用するsqlファイルとなる。
    実行には以下のコマンドを使った。
    
    1.mysql起動
    root# mysql -u root
    
    2.DATABASE作成
    mysql>create database myradiusdb
    
    3.一旦抜ける
    mysql>exit
    
    4.SQLファイルを流し込む
    root# mysql -u root myradiusdb < db_mysql.sql
    
    5.use databaseに指定する
    root# mysql -u root
    mysql>use myradiusdb
    
    6.確認する
    以下のテーブルの一覧が表示されればOK
    
    mysql>show tables;
    radacct
    raccheck
    radgroupcheck
    radgroupreply
    radreply
    usergroup
    
    設定ファイルを書き換えているので、radiusdを起動後にlogの書き込み権限がないので書き込めない、
    などと怒られる場合がある。そういう場合は該当するディレクトリの権限を
    chown nobody.nobody DirName
    chmod 775 DirName で変えたりして対応する。
    

    iPod touch に 2chブラウザ「2tch」のインストール方法

    1. iPod touchのSSHをONにする。
    2. WinSCPなどで接続。
    3. 解凍した「2chViewer.app」フォルダを、/private/var/Applications にコピー。
    4. 2chViewerファイルを選択
    5. プロパティ-パーミッション「755(0755)」に変更

    ローマ神話で登場する神や人物の名前

    mars(マース)→ ローマ神話の戦いの神
    venus(ヴィーナス)→愛と美の女神
    pluto(プルート)→下界の王
    ceres(セレス)→穀物の女神
    lares(レアリーズ)→家庭の守護神
    remus(リーマス)→兄・Romulusとともにオオカミの乳で育った双子の弟
    ops(オプス)→穀物の神
    iris(アイリス)→虹の女神
    aurora(オーロラ)→あかつきの女神
    sol(ソル)→太陽神
    diana(ダイアナ)→月の女神
    terra(テラ)→大地の女神
    zephyr(ゼファー)→西風の神
    eurus(ユーラス)→東風の神
    nona(ノナ)→誕生の女神
    fides(フィデス)→信義、誠実の女神
    juno(ジュノー)→6月、結婚の女神
    horae(ホーリー)→季節の女神
    boreas(ボレアス)→北風の神
    uranus(ウラノス)→天の神
    vesta(ウェスタ)→かまどと火の女神
    saturn(サターン)→農耕の神
    muse(ミューズ)→芸術の女神たち
    notus(ノトス)→南風の神
    

    レイヤ2?レイヤ3?

    MACで判断するのがレイヤ2
    IPアドレスで判断するのがレイヤ3

    YAMAHA RTX シリーズ

    YAMAHA RTX1000(RTX1100)で固定IP1個の契約でPPTPサーバを構築する
    ネット上をいろいろと調べても、パッとした設定例がなかったので、いろいろやってみて、完成した設定をご紹介します。
    
    要件としては
    
    ・固定IPアドレス1個の契約をしている。(IP1)
    ・社内から常時インターネットにアクセスしている
    ・PPTPサーバを利用して、自宅のWindowsXP端末を社内LANに接続する
    ・ヤマハのRTX1000を使う(RTX1100でも可)
    
    というもの。
    なんだか簡単そうだけど、設定に結構時間がかかりました。
    
    IPアドレスの割り当てはこんな感じ。
    
    ・社内IPアドレスは 192.168.50.x (LAN1ポートを使います)
    ・PPPoE接続するのは、LAN2ポートを使用
    ・PPTPで接続するクライアントに割り当てるIPアドレスは 192.168.51.11−192.168.51.19
    ・契約している固定IPアドレスは、hogehoge@ip1.nifty.comでPPPoE接続すると必ず同じIPアドレスをもらえるのでルータには特に設定しない
    
    出来上がった設定は以下のとおりです。
    実際に使っているルータの設定から、フィルタ関係を取り除いた状態のものです。
    
    ## 以下は普通のインターネット接続のための設定です。
    
    ip route default gateway pp 1
    ip lan1 address 192.168.50.1/24
    pp select 1
    pp always-on on
    pppoe use lan2
    pp auth accept pap chap
    pp auth myname hogehoge@ip1.nifty.com PASSWORD
    ppp lcp mru on 1454
    ppp ipcp ipaddress on
    ppp ipcp msext on
    ppp ccp type mppe-any
    ip pp mtu 1454
    ip pp nat descriptor 1
    pp enable 1
    
    ## ここまでが普通のインタ0ネット接続のための設定です。
    
    ## PPTPの設定です。
    
    pp select anonymous
    pp bind tunnel1-tunnel3
    pp auth request mschap
    
    ## PPTP用の接続ユーザーとパスワードの設定
    
    pp auth username hogehoge hogepassword
    pp auth username herohero heropassword
    pp auth username funifuni funipassword
    ppp ipcp ipaddress on
    ppp ipcp msext on
    ppp ccp type mppe-any
    
    ## PPTPクライアントに割り当てるIPアドレス
    ## 社内用IPとちょっと違うのがポイントです。
    
    ip pp remote address pool 192.168.51.11-192.168.51.19
    ip pp mtu 1280
    pptp service type server
    pp enable anonymous
    
    ## PPTPセッションの分だけ tunnelの設定をします。
    
    tunnel select 1
    tunnel encapsulation pptp
    pptp tunnel disconnect time 300
    tunnel enable 1
    tunnel select 2
    tunnel encapsulation pptp
    pptp tunnel disconnect time 300
    tunnel enable 2
    tunnel select 3
    tunnel encapsulation pptp
    pptp tunnel disconnect time 300
    tunnel enable 3
    
    ## 通常、IPマスカレードを使ってインターネット接続しているので、
    ## 外部からPPTP接続のリクエストが跳ねられてしまいます。
    ## 以下の設定でPPTP接続リクエストに応えてくれるようになります。
    
    nat descriptor type 1 masquerade
    nat descriptor masquerade static 1 1 192.168.50.1 tcp 1723
    nat descriptor masquerade static 1 2 192.168.50.1 gre
    
    ## 普通のDHCPサーバの設定
    
    dhcp service server
    dhcp scope 1 192.168.50.100-192.168.50.109/24
    dns server pp 1
    pptp service on
    

    YAMAHA RTX シリーズ

    ipsecの設定

    ■必要なこと
    ・SAのポリシーの定義 (policy_id、1..255、かぎ交換のポリシーのこと)
    ・セキュリティゲートウェイの番号 (gateway_id、1.30、接続する相手先のこと)

    ■トンネルモード

    .札ュリティゲートウェイを設定する(gateway_id)
    相手先のセキュリティゲートウェイのIPアドレスの設定

    # ipsec ike remote address (gateway_id) (相手先のWAN側アドレス)

    事前共有鍵の登録

    # ipsec ike pre-shared-key (gateway_id) text (仮共有キー)

    SAのポリシーを設定する(policy_id)

    # ipsec sa policy (policy_id) (gateway_id) (ah/esp) (esp_algo) (ah_algo)
    例:# ipsec sa policy 06 24 esp des-cbc sha-hmac

    トンネルの設定

    # tunnel select 2
    # ipsec tunnel (policy_id)
    # tunnel enable 2

    IPの設定

    ○インターフェースにipアドレスを設定する

    # ip [interface] address [ipaddress/mask] 
    # ip [interface] address dhcp
    # ip pp address [ipaddress/mask]
    # ip [interface] secondary address [ipaddress/mask]
    # ip [interface] secondary address dhcp

    ○ルーティングの設定

    # ip route default gateway [address/pp/dhcp/tunnel] [metric/hide/weight] 
    # ip route [net/mask] gateway [address/pp/dhcp/tunnel]

    NATの設定

    NATディスクリプタの動作タイプの設定

    # nat descriptor type [nat_descriptor 1..21474836] [nat/masquerade/nat-masquerade/none]

    ※IPアドレスの変換だけを「NAT」、ポートの変換も合わせて「masquerade」としている

    NAT処理のIPアドレスの設定

    # nat descriptor address outer [nat_descriptor] [outer_ipaddress/ipcp/primary] 
    # nat descriptor address inner [nat_descriptor] [inner_ipaddress/auto]

    静的NATの登録

    # nat descriptor static [nat_descriptor] [id] [outer]=[inner] [count]

    だ電IPマスカレードの登録

    # nat descriptor masquerade static [nat_descriptor] [id] [inner_ip] [protocol] [[outer_port=]inner_port]

    ゥぅ鵐拭璽侫А璽垢NATディスクリプタを適用する

    # ip [interface] nat descriptor [nat_dewscriptor_list 16こまで]
    # ip pp nat descriptor [nat_dewscriptor_list 16こまで]
    # ip tunnel nat descriptor [nat_dewscriptor_list 16こまで]

    設定の保存とリストア

    RTXの場合は、自分自身がTFTPサーバーとして振舞う
    (考えようによってはいい奴である)

    ■RTXでのTFTPホストの設定

    これはRTXの画面
    > administrator
    Password:******
    # tftp host 172.16.0.32
    # show tftp
    アクセス許可:172.16.0.32
    # save

    以下、RTXは172.16.0.1、UNIXは172.16.0.32という設定で。

    ■TFTPホスト(UNIX)に、RTXの設定を保存する操作
    最初に設定を保存するファイルをUNIX上に作っといてね。

    これはUNIXのシェルの画面
    $ tftp
    tftp> connect 172.16.0.1 (←RTX)
    tftp> mode ascii
    tftp> get config/(administratorのpassword) ファイル名称
    Received 768 bytes in o.1 seconds
    tftp> quit
    $

    ■TFTPホスト(UNIX)から、RTXに設定を書き込む操作

    これはUNIXのシェルの画面
    $ tftp
    tftp> connect 172.16.0.1 (←RTX)
    tftp> mode ascii
    tftp> put ファイル名称 config/(administratorのpassword)
    Sent 799 bytes in 0.1 seconds
    tftp> quit
    $

    基本コマンド

    ○管理者モードに入るには?

     > administrator

    ○ヘルプ

    # show command

    ○設定の表示

    # show config
    # show config pp [number]
    # show environment

    ○状態の表示

    # show arp
    # show status [interface]
    # show status pp [pp_num]
    # show ip route
    # show status pptp

    ○設定の保存

    # save

    ○設定ファイルの一覧

    # show config list

    ○設定の初期化

    # cold start

    ○動的情報の初期化

    # clear arp
    # clear ip dynamic routing
    # clear bridge learning
    # clear log
    # clear account pp [number]
    # clear account [interface]
    # clear dns cache

    ○ログインパスワードの設定

    # login password

    ○管理者パスワードの設定

    # administrator password

    ○ログインタイマの設定

    # login timer 30..21474836
    または
    # login time clear
    (telnetで入ったときはこれは有効にならない)

    ○タイムゾーンの設定

    # timezone jst (これで日本時間)

    ○現在の日付と時刻の設定

    # date yyyy-mm-dd
    # time hh:mm:ss
    # ntpdate [ntp-server]

    ○仮想インターフェースの操作

    # pp enable [all / number]
    # tunnel enable [all / number]
    逆は # disable

    # connect [pp_number]
    # disconnect [pp_number]

    ○再起動

    # restart

    ○インターフェースの再起動

    # interface reset [interface]
    # interface reset pp [number]

    詭弁の特徴のガイドライン

    • 議論するにあたり、真っ当な意見と見せかけ、実は詭弁で論点をはぐらかす輩が多々おります。皆様も以下の「詭弁の特徴15条」を覚え、そういう輩を排除しましょう。
    1. 事実に対して仮定を持ち出す
    2. ごくまれな反例をとりあげる
    3. 自分に有利な将来像を予想する
    4. 主観で決め付ける
    5. 資料を示さず自論が支持されていると思わせる
    6. 一見関係ありそうで関係ない話を始める
    7. 陰謀であると力説する
    8. 知能障害を起こす
    9. 自分の見解を述べずに人格批判をする
    10. ありえない解決策を図る
    11. レッテル貼りをする
    12. 決着した話を経緯を無視して蒸し返す
    13. 勝利宣言をする
    14. 細かい部分のミスを指摘し相手を無知と認識させる
    15. 新しい概念が全て正しいのだとミスリードする

    Linuxの起動を高速化する10の方法

    1. 不必要なサービスを無効化する
    2. 不必要なカーネルモジュールを無効化する
    3. GNOMEやKDEではなく、軽量のウィンドウマネージャを使う
    4. グラフィックなログインではなくテキストベースのログインを使用する
    5. 軽量のディストリビューションを使用する
    6. オープンソースのBIOSを使用する
    7. DHCPプロトコルを使用しない
    8. 可能であれば、ホットプラグ機能を削除する
    9. Initngを試してみる(「本当の」勇気を持ち合わせている人向け)
    10. Debianの裏技を使う(Debianユーザー限定)

    Linux版のハイパーターミナル

    • LinuxからRTX1100なんかを設定するには…と、調べたら出てきた。
    cu
    xc
    minicom
    seyon

    あたり.

    awkの

    JAN=`awk <<< ${i} -F"\t" '{print $1}'`

    HDDのRAIDについて

    ★RAIDの落とし穴★

    大文字ファイル名を小文字に変換

    # for file in `find ./ -type f` ; do mv $file `echo $file | tr '[A-Z]' '[a-z]'` ; done
    

    仮想化実装分類(コピペで持ってきました)

    手軽な仮想化ソフトウェア、lguestのコメントに触発されたので自分なりに分類してみます.
    用語を統一するために仮想化環境を提供する側をホスト,提供される側をゲストと定義します.

    ■計算機の仮想化(完全仮想化,準仮想化)■

    ホスト上で様々なを動作させることができるます.準仮想化の場合ゲストにホストを意識した修正が必要となります.(Linuxの場合デフォルトで対応していたりしますが...)
    • KVM
      • いまのところハードウェア支援必須
      • 完全仮想化
      • 準仮想化との併用もあり
    • Xen
      • 準仮想化が基本
      • 完全仮想化もサポート
    • VMware
      • ダイナミックトランスレーションによる完全仮想化が売り
      • 準仮想化,ハードウェア支援活用となんでもあり
    • VirtualBox
      • ハードウェア支援利用はオプション
    • QEMU
      • エミュレーションによる完全仮想化
      • 周辺デバイスのエミュレーション機能は引っ張りだこ
        • XenやKVMに利用されている
      • 異なる命令セットアーキテクチャ(ISA)の相互変換が可能
    • lguest
      • 現在はLinux on Linuxのみだが,私見ではlguestはゲストとしてLinux以外のOSを動かすポテンシャルはあるはず...
    • Solaris Logical Domains (LDoms)
      • ハイパーバイザ構成,完全仮想化

    KVM, Xen, VMwareにはいろいろなバリエーションがあるので表にしてみました.

    ハードウェア支援ありハードウェア支援なし
    完全仮想化KVM, Xen(, VMware, VirtualBox)VMware, VirtualBox, QEMU
    準仮想化KVM, Xen, VMwareXen, VMware, lguest

    ■Container型の仮想化■

    ホストの機能を部分的にそのまま利用し,カーネルなどを除いてホストと異なる環境を提供します.

    • OpenVZ
    • Linux-VServer
    • UML
    • Jail, chroot
    • Solaris Containers

    ※UMLのみホストと異なるバージョンのカーネルを動かすことができます.しかし,ホストとゲストが同じLinuxである必要があるため,計算機の仮想化からは外しました.構造的には準仮想化に近いかもしれないですが...

    ■その他の仮想化■

    ホストとは異なるOS環境(通常1種類)を提供します.

    • Wine
      • Unix系OS上でWindowsアプリケーションを動かす
      • Win32 APIをエミュレートするソフトウェアと言い換え可能
    • coLinux
      • Windows上でLinuxカーネルおよびLinuxアプリケーションを動かす
    • Linuxエミュレータ
      • ホストはFreeBSDやSolarisなど

    distinct on

    • HOGEだけuniqにする場合
    select distinct on (HOGE) HOGE,BOKE from TABLE;
    

    標準出力

    標準エラー出力もリダイレクトするなら、
    $ ./sysbackup.sh > log.txt 2> err.txt
    
    とします。「2>」というのがミソで、これが標準エラー出力のリダイレクトの指示です。さらに、
    $ ./sysbackup.sh > log.txt 2>&1
    
    とすると、すべての出力がlog.txtに記録されます。

    quagga

    • 仮想ルータ?いろいろテストして遊べるらしいです。

    IPマスカレード(NAPT)とマルチNAT

    • 混乱してきたのでメモメモ
    静的IPマスカレード機能
    WAN側IPアドレス宛に来る転送先LAN側ホストが不明なパケットのうち、特定のプロトコル/ポート
    のパケットをあらかじめ設定したローカルIPアドレスのホスト宛に転送する機能
    マルチNAT機能
    WAN側IPアドレス宛に来る転送先LAN側ホストが不明なすべてのパケットをあらかじめ設定した
    ローカルIPアドレスのホスト宛に転送する機能
    

    連番の発行はseq

    $ for i in `seq 1 7` ; do echo "$i 回目のループです。" ; done
    

    findの使い方

    • 「一週間以内にアクセスがあったファイル」と、「一週間以上前に作成されたファイル」★参考★
    $ find  / -atime -7 -print
    $ find  / -ctime +7 -print
    

    psqlコマンドのタブ区切り

    test=\ psql -tAF $'\t' HOGE -Upostgres -c "select * from BOKE;"
    

    HDDのチューニング

    起動時にfsckとかかからないように
    tune2fs -c-1 -i0 /dev/hda1
    

    KNOPPIXで起動して使用できなくなったRaid5を読み込む方法

    KNOPPIXを起動し、suコマンドでrootになってから、以下のように実行する。
    Linux# modprobe md_mod <= mdadmの実行に必要なモジュールのロード
    Linux# mknod /dev/md0 b 9 0 <= デバイスファイルの作成(/dev/md1 の場合 "b 9 1" を指定)
    Linux# mdadm -A /dev/md0 /dev/hd[efgh]1 <= RAIDを復元
    
    これでRAIDが復元されたので、後はマウント用ディレクトリを作成後、マウントする。
    Linux# mkdir /mnt/data <= マウント用のディレクトリを作成
    Linux# mount /dev/md0 /mnt/data <= マウント
    

    Windowsの楽々チューニング

    電源容量計算機

    ★計算機★

    ハート♥の表示

    &hearts;
    

    GRUB2を入れるには新しいLZOライブラリ必須

    http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz
    wget ftp://alpha.gnu.org/gnu/grub/grub-1.96.tar.gz
    

    GRUBの指定可能な解像度と色深度と、vga文に渡す必要のある値との対応表

    640x480 800x600 1024x768 1280x1024
    256 0x301 0x303 0x305 0x307
    32k 0x310 0x313 0x316 0x319
    64k 0x311 0x314 0x317 0x31A
    16M 0x312 0x315 0x318 0x31B

    さて、Xenについて勉強していきます。

    • とりあえず流れだけ
    1. Xen専用サーバを用意して、そこにXenServerをインストール
    2. 管理したいWindowsマシーンにXenProductCDをインストール(管理ツール)
    3. 次に、P2V Toolによる物理サーバのバーチャル化。仮想化したいPCの電源を落としてXenツールCD-ROM入れて起動してXenServerへ吸出し(吸い上げ?)(メニューの一番下に出てくるPConvert an existing OS on this machine to a XenVM(P2V)を選択)
    4. NFS設定ではなくXenで転送する方がお勧め
    5. 処理が終了すると管理コンソール上に、バーチャルマシーンが出現します。

    画像ファイル⇒Excelファイルへ

    • すなおに、読んでココあたりを使った方が楽に変換できました。体験版だけど2週間使用できます。

    awkでシングルクォートの出力

    $ echo a | awk '{print "\047" $1 "\x27" }'
    

    Ubuntu8.10が出てます

    コードネーム バージョン リリース日 サポート期限
    Intrepid Ibex 8.10 2008年10月30日 2010年4月
    Hardy Heron 8.04 LTS 2008年4月24日 2011年4月(デスクトップ)
    2013年4月(サーバ)
    Gutsy Gibbon 7.10 2007年10月18日 2009年4月
    Dapper Drake 6.06 LTS 2006年6月1日 2009年6月(デスクトップ)
    2011年6月(サーバ)
    以下はサポートが終了したリリース
    Feisty Fawn 7.04 2007年4月19日 2008年10月
    Edgy Eft 6.10 2006年10月26日 2008年4月
    Breezy Badger 5.10 2005年10月13日 2007年4月
    Hoary Hedgehog 5.04 2005年4月8日 2006年10月
    Warty Warthog 4.10 2004年10月20日 2006年4月

    長い1行野郎を見やすく改行

    • スクリプトファイルであまりに長い行があって折り返してしまい見づらい場合には、バックスラッシュで改行すれば1行と見なされる
    ls \
    -la\
    | grep hoge
    

    awkで列を入れ替えようかっ

    • tab区切りのテキストで出力はカンマ区切りで入れ替えたい場合
    $ awk 'BEGIN{FS="\t";OFS=",";}{print $2,$1,$3,$4,$6,$5;}' < a
    

    sedとcatを組み合わせて空行を除去する

    $ cat -s /etc/X11/XF86Config | sed '/^[[:space:]]*$/d'
    

    sedで空行を除去する

    $ cat hoge | sed '/^$/d'
    
    例えば inetd.conf の中から、コメント行を抜き、空行を抜いて表示するにはこうなる。 sed '/^$/d' は grep -v '^#' と併せて使うことが(俺は)多い。
    $ cat /etc/inetd.conf | grep -v '^#' | sed '/^$/d'
    

    XFree86のフォントについて

    • xfs(xのフォントサーバ)使用時に/usr/X11R6/lib/X11/fs/configのファイルが、/etc/X11/XF86Config-4にFontPath "unix/:7100"の記述がある場合に参照される。某機種では/usr/share/fontsに商用フォントが格納されているのでココで拡張。

    Kernel再構築について

    make xconfig 
    Qt base の GUI 設定ツールです。従来の 2.4 base と比べるとツリー表示になって設定しやすくなっています。 
    make gconfig 
    Gtk base の GUI 設定ツールです。2.6 にて追加されています。 
    make menuconfig 
    Text base の GUI 設定ツールです。これは 2.4 base と変わりないようです。 
    make oldconfig
    前回の .config ファイルとの差分を設定するツールです。前回同様、使い勝手は良いです。 
    make defconfig
    多分、前回の .config ファイルとの差分を全てデフォルトに設定されるはずです。 
    make allmodconfig
    全て module 設定にするらしい。 
    make allyesconfig
    全て Y 設定にするらしい。 
    make allnoconfig
    全て N 設定にするらしい。 
    

    swapファイルについて

    • swapに使っている領域はプライオリティ値が0に近い順番に使われていくみたい。なので、複数ディスクにswap領域を使い全てプライオリティを0にすればRaid0のような感じで高速に処理されるっぽい。mkswap後に表示されるUUIDを使ってfstabへ UUID=xxxx none swap sw,pri=1 0 0 って感じで追加。■ここ■とか参照。
    #  cat /proc/swaps 
    Filename                       Type            Size    Used    Priority
    /dev/hda3                      partition       5221116 0       1
    /dev/sda2                      partition       4578516 0       1
    /dev/sdb2                      partition       4578516 0       1
    /dev/sdc3                      partition       56216   0       1
    /dev/sdd3                      partition       56216   0       1
    

    ImageMagickでアニメ画像へコンバート

    convert -delay 20 anim*.png anim.mng
    

    最近のinitrdのマウントは…

    • Kernel2.6から?initrdがloopback mount imageフォーマットからcpioフォーマットに変わったみたい
    『cpioフォーマットのinitrdイメージの展開と作成』
    1.はじめに
    FedoraCore 3 等に含まれる、mkinitrd 4.1以降等では、initrdのフォーマット(*.img)が従来のloopback mount image
    からcpioフォーマットに変わりました。mkinitrdコマンドを使用してinitrd imageを作成する手順と、新しいinitrdの拡
    張子が*.imgのままで変わらないのでわかり難いのですが、注意が必要です。
    
    cpioフォーマットのinitrdの内容を確かめたり、手作業で修正したりする場合には、以下のような手順になります。
    
    2.作成したinitrdイメージの展開例
    /boot/initrd-2.4.9 ディレクトリ以下にinitrdイメージを展開します。
    
    # cd /boot
    # mkdir initrd-2.4.9
    # cd initrd-2.4.9
    # zcat ../initrd-2.4.9.img | cpio -i -c
    3.initrdイメージの作成例
    /boot/initrd-2.4.9 ディレクトリ以下のファイルからinitrdイメージを作成する例です。
    
    # cd /boot/initrd-2.4.9
    # find . | cpio --quiet -c -o | gzip -c > ../initrd-2.4.9-new.img
    

    Linuxの起動画面をWindows(笑)っぽくする!!Bootsplash 1024x768編

    最近のLinuxは起動画面に絵が表示されてプログレスバーが伸びます。
    Kernel2.4なRedHat7.2でもやりたい!って事で下記が手順になります。
    1. Bootsplashを使用します。kernelは2.4系は2.4.30版のパッチしかありません
      http://www.bootsplash.org/Welcome_to_the_graphical_world_of_Linux
      http://nemaru.at.infoseek.co.jp/bsplash9.html
      等を参考に

    2. 上記サイトより、kernelパッチとsplashユーティリティをダウンロード
      ftp://ftp.bootsplash.org/pub/bootsplash/kernel/bootsplash-3.0.7-2.4.30-vanilla.diff or  ここ
      ftp://ftp.bootsplash.org/pub/bootsplash/rpm-sources/bootsplash/bootsplash-3.0.7.tar.bz2 or  ここ

    3. テーマファイルについては、下記サイトから落とすか出来合いの2番目が便利です。
      http://www.kde-look.org/index.php?xcontentmode=61
      http://nemaru.at.infoseek.co.jp/file/theme.tar.bz2 or  ここ

    4. kernel2.4.30を解凍し、diffファイルでパッチを当てて下さい
    5. cd /usr/src
      wget http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.30.tar.bz2
      tar jxvf linux-2.4.30.tar.bz2
      rm -f linux
      ln -s linux-2.4.30 linux
      cd linx-2.4
      make oldconfig
      cp .config ../linux
      cd ../linux
      cat ../bootsplash-3.0.7-2.4.30-vanilla.diff | patch -p1
      make menuconfig
      
      • メニュー画面で下記をチェック

      Code maturity level options  ---> 
          [*] Prompt for development and/or incomplete code/drivers 
      Processor type and features  ---> 
          [*] MTRR (Memory Type Range Register) support 
      Block Devices -> 
          [*] Loopback device support 
          [*] RAM disk support 
          (4096)   Default RAM disk size 
          [*] Initial RAM disk (initrd) support 
      Console Drivers -> 
          [*] VGA text console 
          [*] Video mode selection support 
      Console Drivers -> Frame-buffer support -> 
          [*] Support for frame buffer devices 
          [*] VESA VGA graphics console 
          [*] Use splash screen instead of boot logo
      

    6. 再構築します。Makefileを見ると2.4.30-bsになってます。--withオプションは好みで
    7. time make dep && make clean && make bzImage && make modules && make modules_install
      mkinitrd --with=sd_mod --with=scsi_mod --with=BusLogic -f /boot/initrd-2.4.30-bs.img 2.4.30-bs
      cp -f System.map /boot/System.map-2.4.30-bs
      cp -f arch/i386/boot/bzImage /boot/vmlinuz-2.4.30-bs
      
    8. GRUBを書き換えて再起動します。

    9. kernel2.4.30-bsで起動できたらsplashユーティリティのインストール
    10. cd /usr/src/
      tar jxvf bootsplash-3.0.7.tar.bz2
      cd bootsplash-3.0.7/Utilities
      make all
      cp splash fbtruetype fbresolution fbmngplay /sbin/
      cd ../Scripts/
      cp Scripts/splash.sh /etc/rc.d/
      chmod 755 /etc/rc.d/splash.sh
      ln -s /etc/rc.d/splash.sh /etc/rc3.d/S10bootsplas
      ln -s /etc/rc.d/splash.sh /etc/rc5.d/S10bootsplas
      
    11. splash.shは修正が必要みたいなのですが、よくわからないので下記の通り修正
    12. #!/bin/bash
      #
      # splash.sh - This shell script triggers bootsplash actions during
      # system boot/shutdown. It can be run by the init scripts repeatedly
      # specifying the currently executed system script.
      # 
      # This script is used to play animations/sounds/show text/move the
      # progress bar, etc.
      # 
      # We call this function from /etc/rc.status:rc_splash() 
      #
      # This program is free software; you may redistribute it under 
      # the terms of the GNU General Public License. This program has 
      # absolutely no warranty.
      #
      # written 2002-2003 Stefan Reinauer, 
      #
      # this script expects the following environment variables for an operable
      # progress bar:
      #
      #  sscripts = number of start scripts to be executed for runlevel change
      #  kscripts = number of stop scripts to be executed for runlevel change
      #  progress = number of currently executed start/stop script
      #  RUNLEVEL = runlevel to be reached.
      #
      # To play animations, it's advised that you have an animations.cfg in your
      # theme's config directory specifying the initscript name for an event and
      # the command to be executed:
      #
      #   fsck start:bootanim start bounce.mng
      #   master:bootanim stop
      #
      # See http://www.bootsplash.org/ for more information.
      #
      
      _procsplash="`cat /proc/splash 2>/dev/null`"
      
      ############################### BootSplash Start ###############################
      THEME="Linux"
      ############################### BootSplash End   ###############################
      test -f /etc/sysconfig/bootsplash && . /etc/sysconfig/bootsplash
      test ! -d "/etc/bootsplash/themes/$THEME" && exit 0
      
      # parse animations.cfg. This part should not be handled by the
      # splash binary.
      
      if [ -f /etc/bootsplash/themes/$THEME/config/animations.cfg ]; then
        COMMAND="`cat /etc/bootsplash/themes/$THEME/config/animations.cfg| grep "^$1"|cut -f2 -d\:`"
        eval $COMMAND
      fi
      
      # assertions
      test -r /proc/splash || exit 0
      ############################### BootSplash Start ###############################
      #test -z "$progress" -a -z "$num" && exit 0
      ############################### BootSplash End   ###############################
      test -z "`echo $_procsplash|grep on`" && exit 0
      test "$1" == "bootnetwork stop" -o "$1" == "YaST" && exit 0 # no progress
      
      # We chose verbose in grub
      test "`cat /proc/cmdline |grep \"splash=silent\"`" == "" && exit 0 
      
      if [ "$PREVLEVEL" == "3" -o "$PREVLEVEL" == "5" ] ; then
        if [ "$RUNLEVEL"  = "3" -o "$RUNLEVEL" == "5" ] ; then
          exit 0
        fi
      fi
      
      # acquire data
      # 
      ############################### BootSplash Start ###############################
      #num=$(( $sscripts + 2 ))
      num=$sscripts
      ############################### BootSplash End   ###############################
      _shutdown="no"
      _silent="no"
      test "`cat /proc/splash |grep silent`" && _silent="yes"
      test "$RUNLEVEL" == "6" -o "$RUNLEVEL" == "0" && _shutdown="yes"
      ############################### BootSplash Start ###############################
      #test "$_shutdown" == "yes" && num=$(( $kscripts + 2 ))
      test "$_shutdown" == "yes" && num=$kscripts
      test -z "$progress" -a -z "$num" && exit 0
      ############################### BootSplash End   ###############################
      
      function box() { true; } # ignore box descriptions in the config file
      
      test -f "/etc/bootsplash/themes/$THEME/config/bootsplash-`fbresolution`.cfg" && \
        . /etc/bootsplash/themes/$THEME/config/bootsplash-`fbresolution`.cfg
      
      #
      # Print text string. (Booting/Shutting down the system. Press
      # F2 for verbose mode)
      #
      
      if [ "$progress" == 1 -o "$1" == "splash start" ]; then
      ############################### BootSplash Start ###############################
      # test "$_shutdown" == "yes" && ( echo "silent" >/proc/splash; chvt 1 )
        test "$_shutdown" == "yes" && ( \
      /sbin/splash -s /etc/bootsplash/themes/$THEME/config/bootsplash-`fbresolution`.cfg ; \
      echo "silent" >/proc/splash; chvt 1 \
        )  
      ############################### BootSplash End   ###############################
        _boot="Booting"; test "$_shutdown" == "yes" && _boot="Shutting down"
      
        if [ "$text_x" != "" -a "$text_y" != "" \
             -a "$text_color" != "" -a "$text_size" != "" -a "$_silent" == "yes" ]; 
        then
          fbtruetype -x $text_x -y $text_y -t $text_color -s $text_size \
        			"$_boot the system... Press F2 for verbose mode"
        fi
      fi
      
      #
      # Now paint the progressbar. This is done via the proc 
      # interface of the bootsplash.
      #
      
      test -z "$progress_enable" && exit 0
      echo "show $(( 65534 * ( $progress + 1 ) / $num ))" > /proc/splash
      
    13. /etc/rc.d/rcファイルも修正が必要なのですが、これまたよく調べきれてないので下記の通り修正
    14. #! /bin/bash
      #
      # rc            This file is responsible for starting/stopping
      #               services when the runlevel changes.
      #
      # Original Author:       
      #               Miquel van Smoorenburg, 
      #
      
      # check a file to be a correct runlevel script
      check_runlevel ()
      {
      	# Check if the file exists at all.
      	[ -x "$1" ] || return 1
      
      	# Reject backup files and files generated by rpm.
      	case "$1" in
      		*.rpmsave|*.rpmorig|*.rpmnew|*~|*.orig)
      			return 1
      			;;
      	esac
      	return 0
      }
      
      # Now find out what the current and what the previous runlevel are.
      argv1="$1"
      set `/sbin/runlevel`
      runlevel=$2
      previous=$1
      export runlevel previous
      
      . /etc/init.d/functions
      
      ############################### BootSplash Start ###############################
      RUNLEVEL=$runlevel
      PREVLEVEL=$previous
      export progress=0
      SSC=(/etc/rc.d/rc$runlevel.d/S*)
      case "$SSC" in
      	*\*) sscripts=0 ;;
      	*) sscripts=${#SSC[*]}
      esac
      export sscripts
      #if test "$PREVLEVEL" != "N" ; then
      	KSC=(/etc/rc.d/rc$runlevel.d/K*)
      	case "$KSC" in
      		*\*) kscripts=0 ;;
      		*) kscripts=${#KSC[*]}
      	esac
      	export kscripts
      #fi
      sscripts=$(( $sscripts + $kscripts ))
      kscripts=$sscripts
      ############################### BootSplash End   ###############################
      
      # See if we want to be in user confirmation mode
      if [ "$previous" = "N" ]; then
      	if [ -f /var/run/confirm ] \
      			|| grep -i confirm /proc/cmdline >/dev/null ; then
      		rm -f /var/run/confirm
      		CONFIRM=yes
      		export CONFIRM
      		echo $"Entering interactive startup"
      	else
      		echo $"Entering non-interactive startup"
      	fi
      fi
      
      # Get first argument. Set new runlevel to this argument.
      [ -n "$argv1" ] && runlevel="$argv1"
      
      # Is there an rc directory for this new runlevel?
      [ -d /etc/rc$runlevel.d ] || exit 0
      
      # First, run the KILL scripts.
      for i in /etc/rc$runlevel.d/K* ; do
      ############################### BootSplash Start ###############################
              progress=$(( $progress + 1 ))
      	/etc/rc.d/splash.sh
      ############################### BootSplash End   ###############################
      	check_runlevel "$i" || continue
      
      	# Check if the subsystem is already up.
      	subsys=${i#/etc/rc$runlevel.d/K??}
      	[ -f /var/lock/subsys/$subsys -o -f /var/lock/subsys/$subsys.init ] \
      		|| continue
      
      	# Bring the subsystem down.
      	if egrep -q "(killproc |action )" $i ; then
      		$i stop
      	else
      		action $"Stopping $subsys: " $i stop
      	fi
      done
      
      # Now run the START scripts.
      for i in /etc/rc$runlevel.d/S* ; do
      ############################### BootSplash Start ###############################
              progress=$(( $progress + 1 ))
      	/etc/rc.d/splash.sh
      ############################### BootSplash End   ###############################
      	check_runlevel "$i" || continue
      
      	# Check if the subsystem is already up.
      	subsys=${i#/etc/rc$runlevel.d/S??}
      	[ -f /var/lock/subsys/$subsys -o -f /var/lock/subsys/$subsys.init ] \
      		&& continue
      		    
      	# If we're in confirmation mode, get user confirmation
      	if [ -n "$CONFIRM" ]; then
      		confirm $subsys
      		case $? in
      			0) :;;
      			2) CONFIRM=;;
      			*) continue;;
      		esac 
      	fi
      
      	# Bring the subsystem up.
      	if [ "$subsys" = "halt" -o "$subsys" = "reboot" ]; then
      		export LC_ALL=C
      		exec $i start
      	fi
      	if egrep -q "(daemon |action |success |failure )" $i 2>/dev/null \
      			|| [ "$subsys" = "single" -o "$subsys" = "local" ]; then
      		$i start
      	else
      		action $"Starting $subsys: " $i start
      	fi
      done
      
    15. 次にテーマファイルのインストールとinitrdへくっつけ作業
    16. mkdir -p /etc/bootsplash/themes
      cd !$
      tar jxvf /tmp/theme.tar.bz2
      splash -s -f /etc/bootsplash/themes/Linux/config/bootsplash-1024x768.cfg >> /boot/initrd-2.4.30-bs.img
      
    17. grubのmenu.lstを修正
    18. title Red Hat Linux (2.4.30-bs)
              root (hd0,0)
              kernel /vmlinuz-2.4.30-bs ro root=/dev/hda6 quiet splash=silent vga=0x317
              initrd /initrd-2.4.30-bs.img
      
    19. 以上で、再起動後に指定した画像ファイルで起動&橙色のプログレスバーが伸びます(・∀・)b

    パケットキャプチャ

    • eth0に届く1000パケットをhoge.txtとして保存する
    # tcpdump -c 1000 -w hoge.txt&
    # tcpdump -r hoge.txt | less
    
    • port80(web)のパケットをキャプチャする
    # tcpdump -i eth0 port 80
    

    SSHとtarでコピー

    (cd path && tar cf - .) | ssh user@hostname "(cd path && tar xvfp -)"
    

    Windows共有をマウント

    smbmount //server-name/hoge /mnt/hoge -o username=boke,codepage=cp932,iocharset=euc-jp
    

    tarでコピー

    基本形: tar cf - . | ( cd dir; tar xfv - )
    % cd ~/www/nais.to-yto
    % tar cf - . | ssh nais.to '(cd public_html; tar xfv - )'
    % tar cf - . | ( cd /lpod/A ; tar xf - )
    

    Postgresで他のユーザもDB接続

    • /etc/bashrcの最後に下記2行を追加
    export PGUSER=postgres
    export PGDATABASE=lpod
    

    コンソール画面のスクリーンセーバ?

    • 一定時間たつとコンソール画面が消えますが下記で解決
    # setterm -blank 0
    

    古いkernelでSATAを使う

    • なんとなく覚えてたメモ。そのままでは駄目かもw
    cpioフォーマットのinitrdイメージの展開と作成
    7.2 initrd 2.4.32
    #!/bin/nash
    insmod /lib/scsi_mod.o
                sd_mod.o
                ata_piix.o
                jbd.o
                ext3.o
    mount -t proc /proc /proc
    mkrootdev /dev/root
    echo 0x0100 > /proc/sys/kernel/real-root-dev
    umount /proc
    mount --ro -t ext3 /dev/root /sysroot
    pivot_root /sysroot /sysroot/initrd
    
    mount -o defaults --ro -t ext3 /dev/root /sysroot
    

    解像度と対比

    1920 x 1080 16:9  1080i
    1280 x  720 16:9  720p
     720 x  480  4:3  480p
    1366 x  768 16:9
    1280 x  768  ? ?
    

    Fresh RPMSとRPM Search

    • 赤帽系のrpmパッケージは下記のサイトから見つかる。
    http://freshrpms.net/
    http://rpm.pbone.net/
    

    ネットマスク

    /21 255.255.248.0   11111000.00000000 2048
    /22 255.255.252.0   11111100.00000000 1024
    /23 255.255.254.0   11111110.00000000 512
    /24 255.255.255.0   00000000 256
    /25 255.255.255.128 10000000 128
    /26 255.255.255.192 11000000  64
    /27 255.255.255.224 11100000  32
    /28 255.255.255.240 11110000  16
    /29 255.255.255.248 11111000   8(実質6台)
    /30 255.255.255.252 11111100   4(実質2台)
    /31 255.255.255.254 11111110   2(実質0台)
    /32 無い
    

    Windowsでの検索

    • Ctrl+Fでファイルの検索時にZIPファイルの中身まで調べるのを止める
    regsvr32 /u cabview.dll
    regsvr32 /u zipfldr.dll
    

    CD-ROMのイメージ(ISO)作成手順

    # dd if=/dev/cdrom of=hoge.iso
    

    このページには、セキュリティに不備がある可能性があります。続行しますか?

      WindowsXPでSP2以上だと、ローカルネットワーク上にあるファイル共有部分にアクセスする度に警告が出てきて邪魔です。回避策は下記の手順。
    • スタート⇒設定⇒コントロールパネル⇒インターネット オプションをクリック!!
    • セキュリティをクリック!!
    • 信頼済みのサイトをクリック!!
    • サイト(S)なボタンをクリック!!
    • 192.168.1.1-254と入力して追加をする前に、このゾーンのサイトにはすべてサーバの確認(https:)を必要とする(S)はチェック外さないと入力できないかも!! 以上でローカルネットワーク内では警告が出ません。ですが、油断は禁物です!

    amd64のubuntuをJapaneseTeam対応パッケにする

    下記2行を/etc/apt/sources.listへ追加
    • deb http://archive.ubuntulinux.jp/ubuntu-ja hardy/
    • deb http://archive.ubuntulinux.jp/ubuntu-ja hardy-ja/
    # apt-get install ubuntu-ja-keyring
    # apt-get update
    
    これで駄目なら下記の対処法を!

    apt-get で GPG errorが発生した場合の対処法

    amd64の場合には本家のを入れてからJapanese Teamのパッケージを入れる訳だがダウンロード?Ubuntu Japanese Teamに記載されている手順を踏んでも
    W: GPG error: http://xxxx Release: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY 鍵の文字列
    と出てパッケージが追加出来ないことがある。 要は認証鍵の賞味期限なので以下のコマンドを実行する。 これでダメなら下記の通りに手動で鍵を追加する
    # gpg --keyserver pgp.nic.ad.jp --recv-keys 鍵の文字列
    # sudo gpg --armor --export 鍵の文字列 | sudo apt-key add -
    
    これで
    # sudo apt-get update
    
    すればJapanese Teamのパッケージが導入可能になる。

    簡単なアクセス制限

    • /etc/hosts.allow
    sshd: 192.168.1.
    
    • /etc/hosts.deny
    ALL: ALL
    

    OpenSSHのプロトコル1への対応

    • 面倒くさいのでsed版
    # /usr/bin/ssh-keygen -b 1024 -t rsa1 -f /etc/ssh/ssh_host_key -N ''
    # sed -i '1s/^/HostKey \/etc\/ssh\/ssh_host_key\n/g' /etc/ssh/sshd_config
    # sed -i 's/Protocol 2/Protocol 1,2/g' /etc/ssh/sshd_config
    /etc/init.d/ssh restart
    

    CentOS5のBind9

    • yum -y install bind caching-nameserver bind-chroot
    • cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.conf
    • vi /var/named/chroot/etc/named.conf
    • /var/named/chroot/var/named/1.168.192.db
    • /var/named/chroot/var/named/epia.as.dip.jp.db
    • dig epia.as.dip.jp
    • dig -x 192.168.1.254

    既存LVMなボリュームに新規HDDを追加したい!

    • VG00とLV00があり、そこへ/dev/sde1を加える手順。
    # /etc/init.d/samba stop
    # umount /share
    # pvcreate /dev/sde1
    # vgextend VG00 /dev/sde1
    # PESIZE=`vgdisplay | grep "Free" | awk '{print $5}'`;echo ${PESIZE}
    # lvextend -l +${PESIZE} /dev/VG00/LV00
    # e2fsck -f /dev/VG00/LV00
    # resize2fs /dev/VG00/LV00
    # mount /dev/VG00/LV00 /share
    # /etc/init.d/samba start
    

    Ubuntuをeuc環境にしたい

    # apt-get install lv
    # sed -i '1s/^/ja_JP.EUC-JP EUC-JP\n/g' /var/lib/locales/supported.d/local
    # sed -i 's/ja_JP.UTF-8/ja_JP.EUC-JP/g' /etc/default/locale
    # locale-gen ; locale-gen ja_JP.EUC-JP ; locale -a
    # sed -i '$s/$/\nexport LANG="ja_JP.EUC-JP"/g' .bashrc
    # sed -i '$s/$/\nexport PAGER="lv"/g' .bashrc
    

    Raidが組まれた各々のスーパーブロックを見る

    • そして、そこから得られる情報をもとにassembleオプションでRaidの復旧など
    # mdadm --examine /dev/sda1
    

    解除したRAIDを復旧

    • 何故か突然ある日の事、/dev/md0が見えなくなった時!assembleで見つけられます。
    # mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
    

    ubuntuのデフォルトのsources.listを高速なサーバへ変更手順

    • sed使ってrikenとか他へ置換
    sed -i 's/jp.archive.ubuntu.com/ftp.riken.go.jp\/Linux/g' /etc/apt/sources.list
    sed -i 's/jp.archive.ubuntu.com/ftp.jaist.ac.jp\/pub\/Linux/g' /etc/apt/sources.list
    sed -i 's/jp.archive.ubuntu.com\/ubuntu/ftp.yz.yamagata-u.ac.jp\/pub\/linux\/ubuntu\/archives/g' /etc/apt/sources.list
    

    HDDの内容を完全抹消する方法

    • お手軽版
    #  dd if=/dev/zero of=/dev/hda
    
    • 米国政府での安全基準の1つであるNSA方式(ランダム2回、ゼロを1回書き込む)
    # for i in urandom urandom zero ; do dd if=/dev/$i of=/dev/hda ; done
    

    rsyncでバックアップ

    rsync -avh --delete /share/ /share_backup/
    rsync -avh --delete --rsh=rsh /share/ /share_backup/
    

    大好きな名台詞など…

    • 人類の社会には大きく分けて思想の潮流が二つあるんだ 人の命より大事なものがあるという説と、命に優るものはないという説だ。人は戦いをはじめる時、前者を口実にしやめる時に後者を理由にする、それを何百年何千年と続けてきた 〜ヤン

    LVMを作成

    • fdisk で 8e (Linux LVM) なsystemを作成。
    pvcreate /dev/hda4 /dev/hdb1 /dev/hdc1 /dev/hdd1 /dev/sda1 /dev/sdb1
    vgcreate VG00 /dev/hda4 /dev/hdb1 /dev/hdc1 /dev/hdd1 /dev/sda1 /dev/sdb1
    PESIZE=`vgdisplay | grep "Free" | awk '{print $5}'`
    lvcreate -l ${PESIZE} -n LV00 VG00
    mkfs.ext3 /dev/VG00/LV00
    

    コンデンサ\(^o^)/キャパシター

    長いのでリンク張ります。⇒一覧表

    SATAで強制的にSMART

    smartctl -a -d ata /dev/sda | grep -i -e On_Hours -e Temperature -e Current -e Reallocated -e Seek_Error
    

    PC起動時のBIOS警告音表

    長いのでリンク張ります。⇒一覧表

    mdadmの削除

    /etc/init.d/mdadm stop
    /etc/init.d/mdadm-raid stop
    mdadm --misc --stop /dev/md0
    mdadm --misc --zero-superblock /dev/hda1
    mdadm --misc --zero-superblock /dev/hdb1
    mdadm --misc --zero-superblock /dev/hdc1
    mdadm --misc --zero-superblock /dev/hdd1
    

    mdadmで楽々RAID5

    mdadmは従来はraidtoolsとかmdctlとかで知られていたLiNuxの RAID構築ユーティリティ群です。mdadmになってコマンドが統一されRAID構築やメンテナンスが非常にわかりやすくなりました。最新版は1.11.0です。
    • RAID化
    いきなりmdadmでRAID構築コマンドをブチこんでもRAIDが構築できますが,何か気持ち悪いので律儀にfdiskを使ってRAID用パーティションを作成してからRAID構築します。
    # fdisk /dev/hda
    基本パーティションを作成して,typeを0xfd(raid自動)に設定します。/dev/hddまで繰り返します。で,RAID構築のおまじないです。
    # mdadm -C /dev/md0 -l5 -n4 -f /dev/hd[abcd]1
    オプションはmanを読んでいただきたいのですが,一つ解決できていない謎が。-fオプション(--force)をつけないとRAID構築後,「Failed Device」が検出されます。ちなみに-fオプション付きで構築すると,
    # mdadm -D /dev/md0
    /dev/md0:
    Version : 00.90.00
    Creation Time : Wed Apr 20 16:46:25 2005
    Raid Level : raid5
    Array Size : 480238656 (457.99 GiB 491.76 GB)
    Device Size : 160079552 (152.66 GiB 163.92 GB)
    Raid Devices : 4
    Total Devices : 4
    Preferred Minor : 0
    Persistence : Superblock is persistent
    
    Update Time : Wed Apr 20 16:46:25 2005
    State : active
    Active Devices : 4
    Working Devices : 4
    Failed Devices : 0
    Spare Devices : 0
    
    Layout : left-symmetric
    Chunk Size : 64K
    
    UUID : 3ab1c8a3:de4289b1:d79a16f3:4080436f
    Events : 0.1
    
    Number   Major   Minor   RaidDevice State
    0       3        1        0      active sync   /dev/hda1
    1       3       65        1      active sync   /dev/hdb1
    2      22        1        2      active sync   /dev/hdc1
    3      22       65        3      active sync   /dev/hdd1

    これが,-fオプション無しだと,

    # mdadm -D /dev/md0
    /dev/md0:
    Version : 00.90.00
    Creation Time : Thu Feb 24 15:42:40 2005
    Raid Level : raid5
    Array Size : 480256128 (458.01 GiB 491.78 GB)
    Device Size : 160085376 (152.67 GiB 163.93 GB)
    Raid Devices : 4
    Total Devices : 5
    Preferred Minor : 0
    Persistence : Superblock is persistent
    
    Update Time : Thu Feb 24 17:12:51 2005
    State : active
    Active Devices : 4
    Working Devices : 4
    Failed Devices : 1
    Spare Devices : 0
    
    Layout : left-symmetric
    Chunk Size : 64K
    
    UUID : 71dff297:d31dd5ea:fad2add8:d8c5f382
    Events : 0.2
    
    Number   Major   Minor   RaidDevice State
    0       3        0        0      active sync   /dev/hda
    1       3       64        1      active sync   /dev/hdb
    2      22        0        2      active sync   /dev/hdc
    3      22       64        3      active sync   /dev/hdd

    と,Failed Devicesが現れます。

    おっと,もちろん/dev/md0はフォーマットして,mountしないと使えませんよ。

    # mkfs -j /dev/md0
    ◆起動後自動認識 LiNux起動時に自動的にRAIDを認識させるには,まず/etc/mdadm.confに
    DEVICE /dev/hd[abcd]1
    の一行を追加しておいて,/etc/rc.d/rc.sysinitのどこかに
    /sbin/mdadm -As

    と追加。あとは例によって/etc/fstabあたりに/dev/md0の行を追加しておけばOKです。

    で,ソフトウェアRAID-5ってどうなのよ? 思った以上に早いです。基本的に/dev/md0はsamba経由でWindowsマシンのネットワークドライブ,バックアップ用途として使っておりますが,ネットワークがギガビットということもあって,リードライトでネットワーク経由30〜40MB/sぐらいでしょうか。 確かにHDD不具合発生時にアラーム上がりにくかったり,HDD交換時に電源落とさないといけないなど不便ではありますが,個人ユースでは問題ないかと。

    PostgreSQLでベンチとか

    /usr/local/pgsql/bin/createdb -E EUC_JP HOGE -U postgres
    pgbench -i HOGE
    pgbench -c 50 -t 1000 HOGE
    

    ドレミファ…

    #!/bin/bash
    for ((u=0;u<2;u++))
            do
    	        echo "[ "${u}" ]"
    		out=/dev/tty0;
    		my_wait (){
    		   i=0; until [ $i -eq $1 ] ; do i=$[i+1] ; done
    		   }
    		   echo -e "\033[10;440]\007" > $out; my_wait 2000;
    		   echo -e "\033[10;495]\007" > $out; my_wait 2000;
    		   echo -e "\033[10;550]\007" > $out; my_wait 2000;
    		   echo -e "\033[10;587]\007" > $out; my_wait 2000;
    		   echo -e "\033[10;660]\007" > $out; my_wait 2000;
    		   echo -e "\033[10;733]\007" > $out; my_wait 2000;
    		   echo -e "\033[10;825]\007" > $out; my_wait 2000;
    		   echo -e "\033[10;880]\007" > $out; my_wait 2000;
    		   done
    

    ATX電源側20PIN端子の配列

    • AHCIでXPをインストールする方法
    1. LANケーブルは抜いておく。 
    2. BIOSのSATA Configtarionを[AHCI]にする。 
    3. XP SP2のCDで立ち上げる。画面の一番下に「Press F6...」の表示が出たら、F6キーを押す。 
    4. 「To specify additional SCSI driver...Press S」と表示されたら、Sキーを押す。 
    5. Aドライブにインテル(R) マトリクス・ストレージ・マネージャー 
      (上記 [C]) で作ったフロッピー) を入れ、何かキーを押す。 
    6. いくつか選択肢が出るので、「Intel(R) ICH9 SATA AHCI Controller」を選ぶ。 
     (注: ICH9Rであってもこのドライバで良い) 
      読み終わってもフロッピーはまだ取り出さない。 
    7. インストール続行 
    8. 「Aドライブにフロッピーが入っているなら抜いてください」というメッセージが出たら、 
      フロッピーを取り出して何かキーを押す。 
    9. とりあえずインストール完了。まだ終わりではない。 
    10. インストールが終わったら、最初に「INF アップデート・ユーティリティー」 
      (上記 [D]) を入れる。 
    11. デュアルコア用XPパッチ (上記 [E]) を入れる。 
    12. 「RAID/AHCI ソフトウェア - インテル(R) マトリクス・ストレージ・マネージャー」 
      (上記 [F]) を入れる。お好みで... 
    13. VGAドライバを入れる 
    14. マザーボード付属のオンボードデバイスのドライバを入れる。 
    15. もしあるなら、その他のデバイスのドライバを入れる。 
    16. ウイルススキャンソフトを入れ、ファイアウォールの設定などを行う 
    17. LANケーブルをつなぐ 
    18. ウイルススキャンソフトのアップデートを行う 
    19. Windows Updateを行う 
    20. アプリのインストールを行う 
    21. 環境を整える (クラシックモード、Powertoys、いじくるつくーる、窓の手etc...) 
    以上
    

    ATX電源側20PIN端子の配列

    PinColorSignal
    1Orange3.3V
    2Orange3.3V
    3BlackGND
    4Red5V
    5BlackGND
    6Red5V
    7BlackGND
    8GrayPWR-OK
    9Purple+5VSB
    10Yellow12V
    11Orange
    Brown
    3.3V
    3.3Vsence
    12Blue-12V
    13BlackGND
    14GreenPS-ON
    15BlackGND
    16BlackGND
    17BlackGND
    18White-5V
    19Red5V
    20Red5V

    2つのテーブルとサブクエリィ、カウントとか

    select a.bango,b.serial,b.trackno,b.name
      from HOGE as a,BOKE as b
        where a.serial=b.serial
            and b.serial in (select serial from HOGE where code ='1234567')
    	    order by b.serial,a.bango;
    
    select a.name,b.id,count(*) from shop as a,sogs as b
        where a.id=b.id group by a.name,b.id order by count(*) ;
    

    Intel(ICH)とHGSTの関係

    ■チップセットとHDDのいざこざ会話
     用語解説&登場人物
      ・LBA28・・・(最大137GBまで制御可能な命令)
      ・LBA48・・・(最大144PBまで制御可能な命令)
      ・HGST・・・日立HDD P7K500
      ・Intel・・・Intelチップセット ICHR でAHCI/RAIDモード

     Intel :おれはLBA28とLBA48の両方を扱えるぜ。どっちにする?
     HGST  :いまどきLBA28なんぞ使わんだろ。LBA48でよろしく。
     Intel :了解。ただし128GBまでのアクセスはLBA28で命令するぜ。
     HGST  :いや、両方つかわれると混乱するから、やめてよ
     Intel :知るかボケ。はい前半LBA28。はい後半LBA48。アドレス0x0FFFFFFFはLBA28だね〜。
     HGST  :おっとそこはLBA28ではアクセスできない領域だよ。足洗ってLBA48で出直してこいや。
     Intel :なんだエラーか。リトライリトライ。
     HGST  :だからそこはLBA28じゃアクセスできないんだって。
     Intel :またえらーかよ。リトライリトライ。
     (以下無限ループ)
     Windows:データまだぁ〜? (・∀・ )っ/凵 ⌒☆チン

    ■原因
    ・Intelドライバはなぜか128GB以上(LBA48対応済み)HDにもLBA28を使いたがる
    ・HGSTはLBA28とLBA48を混同されると、脇が甘いため境界部分が読めない
    (パーティション境界をうまく挟めばOKだが、爆弾を抱えている状況は変わらない)

    ■両者の言い分
    Intel :LBA28の終わり(LBAアドレス0x0FFFFFFE)をちゃんと処理しろ!ボケ!!
    HGST :いちいちLBA28とLBA48をつかいわけず、全部 LBA48使え!ボケ!!

    /dev/cdromが無い?!

    まず、落ち着こう。
    • セカンダリのマスター側にCD-ROMが付いているのであれば/dev/hdcだ!
    mount /dev/hdc /mnt
    

    巫女ぐにょ - 3.2 ストレージクラスタ化の手順

    なんと超カンタンにiSCSIでストレージクラスタリングできるのでメモ!というか、そのままコピペ!
    • ストレージクラスタ化の手順
    1. 巫女ぐにょを3台立ち上げる
    2. DHCPサーバーがネットワークのどこかにあることを確認する
      1. なければrouter.qcow2を使うとDHCPサーバーになります
    3. それぞれの巫女ぐにょでiscsi-node.qcow2を立ち上げる
      1. コマンドは kvm -hda /mnt/cdrom/qemu-img/iscsi-node.qcow2 -net nic,macaddr=54:52:00:12:34:56 -net tap
      2. macaddrの部分はすべての巫女ぐにょで重複のないようにする
    4. 起動したiscsi-nodeのIPアドレスを確認しておく(ここでは 10.10.0.100〜102 とする)
    5. どこかマスターにしたいPCでiscsi-master.qcow2を起動する
    6. masterからすべてのiscsi-nodeへ接続する
      1. iscsiadm -m discovery -t st -p 10.10.0.100
      2. iscsiadm -m discovery -t st -p 10.10.0.101
      3. iscsiadm -m discovery -t st -p 10.10.0.102
    7. 発見したすべてのiSCSI Targetにloginする
      1. iscsiadm -m node -L all
    8. dmesgを見るとディスクが見えているはず(ここではsda、sdb、sdcとする)
    9. 認識したiSCSIのディスクをmdadmを使ってRAID5にする
      1. mdadm --create --auto=yes /dev/md0 --level=5 -n 3 /dev/sda /dev/sdb /dev/sdc
      2. 台数が足りないときは --level=1 にしてmirroringもよい感じ

    これでデータノード3台を束ねたストレージが完成。巫女ぐにょはサンプルとしてramdisk上に10MのiSCSIディスクを作る設定が入っています。 ストレージノードからローカルのディスクが見えるようにして、そのディスクを同様の方法で束ねれば大容量の分散ストレージが作れます。 iSCSIのディスクに関する設定はiscsi-nodeの/etc/ietd.confを確認してみてください。

    キーボード配列の変更

    • コンソール
    loadkeys emacs
    
    setxkbmap us
    

    ubuntu7.10でcompiz

    sudo aptitude install compizconfig-settings-manager
    

    yumをミラーで高速化

    yum -y install yum-fastestmirror
    yum check-update
    

    smartでHDDの不良ブロックチェック

    smartctl -s on -o on -S on /dev/hda
    smartctl -a /dev/hda | grep -i -e On_Hours -e Temperature -e Current -e Reallocated -e Seek_Error
    

    OpenSSH2サーバでProtocol1接続許可設定

    • サーバ側での設定
    /usr/bin/ssh-keygen -b 1024 -t rsa1 -f /etc/ssh/ssh_host_key -N ''
    vi /etc/ssh/sshd_config
    
    • sshd_configにProtocol2をコメントアウトと、その下2行を追加
    #Protocol 2
    # HostKeys for protocol version 1
    HostKey /etc/ssh/ssh_host_key
    

    CentOS5でiSCSI

    • 3行目がiSCSI名の設定
    • 4行目がiSCSIとして見せるデバイスの設定
    • 5行目がACL設定、特に設定せず、全ホストに見せるためALLを指定
    yum install scsi-target-utils
    /etc/init.d/tgtd start
    tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2008-01.com.example:storage.sdb
    tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sdb
    tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL
    

    initランレベル

    0 - 休止
    1 - シングルユーザーモード
    2 - 未使用(ユーザー定義可能)
    3 - フルマルチユーザーモード
    4 - 未使用(ユーザー定義可能)
    5 - フルマルチユーザーモード(Xベースログイン画面を持つ)
    6 - 再起動
    

    rsync

    • 転送元:コマンド実行場所/tmp/hoge,転送先:/tmp/boke
    rsync -avr --rsh=ssh --delete /tmp/hoge/ user@xxx.xxx.xx.x:/tmp/boke/
    


    Geforce Radeon
    8800 GTX  
    8800 GTS HD 2900 XT
    7950 GX2 X1950 XTX
      X1950 XT, X1900 XTX
    7800 GTX 512, 7900 GTO, 7900 GTX X1900 XT
    7800 GTX, 7900 GT, 7950 GT X1800 XT, X1900 AIW, X1900 GT, X1950 PRO
    7800 GT, 7900 GS, Go 7950 GTX, 8600 GTS X1800 XL, X1950 GT, Mobility X1800 XT
    6800 Ultra, 7600 GT, 7800 GS, Go 7800 GTX, Go 7900 GTX, 8600 GT X800 XT (& PE), X850 XT (& PE), X1650 XT, X1800 GTO, Mobility X1900, HD 2600 XT
    6800 GT, 6800 GS (PCIe), Go 7800, Go 7900 GS X800 XL, X800 GTO2/GTO16, Mobility X800 XT
    6800 GS (AGP), Go 6800 Ultra, Go 7600 GT X800 GTO 256mb, X800 PRO, X850 PRO, HD 2600 PRO
    6800, Go 6800, 7300 GT GDDR3, 7600 GS, Go 7700 X800, X800 GTO 128mb, X1600 XT, X1650 PRO, Mobility X1800
    6600 GT, 6800LE, 6800 XT, 7300 GT DDR2, Go 7600 (128-bit), 8500 GT 9800 XT, X700 PRO, X800 GT, X800 SE, Mobility X800, X1300 XT, X1600 PRO, HD 2400 XT
    FX 5900, FX 5900 Ultra, FX 5950 Ultra, 6600 (128-bit), Go 6600, Go 6800 (128-bit) 9700, 9700 PRO, 9800, 9800 PRO, X700, X1300 PRO, Mobility X1450, X1550, Mobility X1600, Mobility X1700, HD 2400 PRO
    FX 5800 Ultra, FX 5900 XT, Go 7600 (64-bit) 9500 PRO, 9600 XT, Mobility 9800, 9800 PRO (128-bit), X600 XT, Mobility X700, X1050, Mobility X1350, Mobility X1400
    4 Ti 4600, 4 Ti 4800, FX 5700 Ultra, 6200 9600 PRO, Mobility 9700 (128-bit), 9800 LE, X600 PRO, Mobility X600, Mobility X1300
    4 Ti4200, 4 Ti4400, 4 Ti4800 SE, FX 5600 Ultra, FX 5700, Go 6200, 6600 (64-bit), 7300 GS 9500, 9550, 9600, Mobility 9600, X300, Xpress 1150
    3 Ti500, FX 5200 Ultra, FX 5600, FX 5700 LE, Go 5700, 6200 TC, 6600 LE, 7300 LE 8500, 9100, 9000 PRO, 9600 LE, Mobility 9700 (64-bit), X300 SE
    3, 3 Ti200, FX 5200 (128-bit), FX 5500, Go 5600, Go 6200, Go 6400, Go 7200, Go 7300, Go 7400 (64-bit) 9000, 9200, Mobility 9600 (64-bit), Mobility X300
    FX 5200 (64 bit), 6100, 6150, Go 7200, Go 7400 (32-bit) 9200 SE, Xpress 200M, Xpress 1000, Xpress 1150
    2 GTS, 4 MX 440, 2 Ultra, 2 Ti, 2 Ti 200 7500
    256, 2 MX 200, 4 MX 420, 2 MX 400 SDR, LE, DDR, 7000, 7200
    Nvidia TNT ATI Rage 128

    ■ GPU比較

    スコアが高いものほど3Dゲームに適する。

    GPU VRAM 標準
    1280×1024
    高負荷
    1920×1200
    GeForce 9800 GX2 512MB×2 13,792 11,101
    GTX 512MB 12,260 7,184
    GeForce 9600 GT 512MB 10,271 5,716
    GeForce 8800 Ultra 768MB 12,257 7,840
    GTX 768MB 11,729 7,220
    GTS(新) 512MB 12,087 7,037
    GTS 640MB 9,680 5,498
    320MB 9,596 5,208
    GT 512MB 11,489 6,524
    256MB 10,741 4,284
    GS 384MB 9,972 5,073
    GeForce 8600 GTS 256MB 6,053 2,281
    GT 256MB 5,142 2,064
    GeForce 8500 GT 256MB 2,253 -
    GeForce 7950 GX2 512MB×2 8,236 -
    GT 512MB 5,462 2,754
    256MB 5,394 -
    GeForce 7900 GTX 512MB 6,248 -
    GT 256MB 4,669 -
    GS 256MB 4,331 -
    GeForce 7600 GT 256MB 3,417 -
    GS 256MB 2,290 -
    RADEON HD3870×2 512MB×2 13,823 9,850
    RADEON HD3870 512MB 10,719 5,566
    RADEON HD3850 256MB 9,631 4,541
    RADEON HD3650 256MB 4,662 -
    RADEON HD3450 256MB 1,778 -
    RADEON HD2900 XT 512MB 11,038 5,481
    RADEON HD2900 XT 256MB
    [GDDR4]
    4,926 2,100
    256MB
    [GDDR3]
    4,478 1,908
    Pro 256MB 2,835 1,206


    CPU比較

    メーカー CPU コア 動作クロック キャッシュ
    AMD Phenom X4 9850 BE 4 2.5GHz 512KB×4
    Phenom X4 9750 4 2.4GHz 512KB×4
    Phenom X4 9650 4 2.3GHz 512KB×4
    Phenom X4 9550 4 2.2GHz 512KB×4
    Phenom X4 9100e 4 1.8GHz 512KB×4
    Phenom X3 8600 3 2.3GHz 512KB×3
    Phenom X3 8400 3 2.1GHz 512KB×3
    Intel Core2 Duo E8500 2 3.16GHz 6MB
    Core2 Duo E8400 2 3.00GHz 6MB
    Core2 Duo E8200 2 2.66GHz 6MB
    Core2 Duo E8190 2 2.66GHz 6MB
    Core2 Duo E6850 2 3.00GHz -
    Core2 Duo E6700 2 2.66GHz -
    Core2 Duo E6600 2 2.40GHz -
    Core2 Duo E6650 2 2.33GHz -
    Core2 Duo E6400 2 2.13GHz -
    Core2 Duo E4700 2 2.6GHz 2MB
    Core2 Duo E4600 2 2.4GHz 2BM
    Core2 Duo E4500 2 2.2GHz 2BM
    Core2 Duo E4400 2 2.0GHz 2BM
    Core2 Duo E4300 2 1.8GHz 2BM
    Intel Pentium Dual-Core E2220 2 2.4GHz 1MB
    Pentium Dual-Core E2200 2 2.2GHz 1MB
    Pentium Dual-Core E2180 2 2.0GHz 1MB
    Pentium Dual-Core E2160 2 1.8GHz 1MB
    Pentium Dual-Core E2140 2 1.6GHz 1MB
    Intel Core2 Quad Q9550 4 2.83GHz 6MB×2
    Core2 Quad Q9450 4 2.66GHz 6MB×2
    Core2 Quad Q9300 4 2.50GHz 3MB×2
    Core2 Quad Q6600 4 2.40GHz -

    GPUの性能比較

    性能スコア コアクロック
    MHz
    メモリクロック
    MHz
    Unified Shader メモリバス幅
    bit
    メモリ(VRAM)容量
    MByte
    Vertex
    Shader
    Pixel
    Shader
    Radeon HD 3870 X2 16675 825 1800 320*2 256*2 512*2
    GeForce 9800 GX2 16025 600 2000 128*2 256*2 512*2
    GeForce 8800 Ultra 14369 612 2160 128 384 768
    GeForce 9800 GTX 13862 675 2200 128 256 512
    (新)GeForce 8800 GTS 13465 650 1940 128 256 512
    GeForce 8800 GTX 13448 575 1800 128 384 768
    GeForce 8800 GT 12676 600 1800 112 256 512
    GeForce 9600 GT 11747 650 1800 64 256 512
    Radeon HD 2900 XT 11137 740 1650 320 512 512
    ATI Radeon HD 3870 10760 775 2250 320 256 512
    ATI Radeon HD 3850 9760 670 1660 320 256 256
    Crysis 推奨
    GeForce 8800 GTS 320M 9697 500 1600 96 320 320
    GeForce 7950 GX2 9296 500 1200 16 48 256*2 512*2
    GeForce 8800 GS 8744 580 1400 96 192 384
    Radeon X1950 XTX 8502 650 2000 8 48 256 512
    Radeon X1900 XTX 7661 650 1550 8 48 256 512
    Radeon X1900 XT 7033 625 1450 8 48 256 512
    GeForce 7900 GTX 6953 650 1600 8 24 256 512
    Radeon X1950 Pro 6321 575 1380 8 36 256 256
    GeForce 7800 GTX512 5894 550 1700 8 24 256 512
    GeForce 7950 GT 5807 550 1400 8 24 256 512
    Radeon X1800 XT 5700 625 1500 8 16 256 512
    LOST PLANET 推奨 *VRAM512以上
    GeForce 8600 GTS 5577 675 2000 32 128 256
    Mobility Radeon HD 2600 XT 5532 800 1400 120 128 256
    GeForce 7900 GT 4731 450 1320 8 24 256 256
    GeForce 7800 GTX 4669 430 1200 8 24 256 256
    GeForce Go 7950 GTX 4583 575 1400 8 24 256 512
    GeForce 8700M GT 4404 625 1600 32 128 512
    Radeon X1800 XL 4339 500 1000 8 16 256 256
    GeForce 8600 GT 4330 540 1400 32 128 256
    GeForce 7900 GS 4279 450 1320 7 20 256 256
    Mobility Radeon X1800 XT 4200 550 1300 8 16 256 256
    GeForce Go 7900 GTX 4146 500 1200 8 24 256 512
    Radeon HD 3650 4044 725 1600 120 128 256
    GeForce 7800 GT 4034 400 1000 7 20 256 256
    Radeon X1800 GTO 4029 500 1000 8 12 256 256
    Mobility Radeon X800 XT 4000 480 1100 6 16 256 256
    Mobility Radeon X1900 3879 400 940 8 36 256 256
    Radeon X1650XT 3874 575 1350 8 24 128 256
    Radeon HD 2600 XT 3721 800 2200 120 128 256
    GeForce 8600M GT 3366 475 1400 32 128 512
    GeForce Go 7800 GTX 3220 440 1100 8 24 256 512
    Radeon X850XT PE 3216 540 1180 6 16 256 256
    Radeon X800XT PE 3109 520 1120 6 16 256 256
    GeForce 7600 GT 3107 560 1400 5 12 128 256
    ファンタジーアース ゼロ  リネージュ郷箴グラフィックカード
    GeForce Go 7900 GS 3073 375 1000 7 20 256 256
    Mobility Radeon X1800 3068 450 1000 6 12 256 256
    Mobility Radeon X1700 3043 475 800 8 24 128 256
    Radeon X800 XT 3039 500 1000 6 16 256 256
    Mobility Radeon X800 2900 400 700 6 12 128/256 256
    Mobility Radeon X700 1366 350 700 6 8 128 256
    GeForce 8500 GT 2786 450 800 16 128 256
    Radeon X800 XL 2632 400 980 6 16 256 256
    Radeon X1600 XT 2600 590 1380 5 12 128 256
    Mobility Radeon X1600 2564 450 940 5 12 128 256
    GeForce Go 6800 Ultra 2439 450 1100 5 12 256 256
    Radeon HD 3200 2410 500 ? 40 ? ?
    GeForce Go 7600 GT 2390 500 1200 5 12 128 256
    GeForce 8600M GS 2324 600 1400 16 128 256
    GeForce 6800 Ultra 2282 400 1100 6 16 256 256
    GeForce 6800 GS 2259 425 1000 5 12 256 256
    Radeon X800 2200 400 1000 6 12 128 256
    Mobility Radeon 9800 2083 350 600 4 8 256 256
    GeForce Go 7700 2049 450 1000 5 12 128 256
    GeForce 6800 GT 2008 350 1000 6 16 256 256
    GeForce Go 6800 2000 450 1100 5 12 128/256 256
    GeForce 7600 GS 1881 400 800 5 12 128 256
    モンスターハンターフロンティアオンライン  フライトシミュレータX 推奨 *VRAM128以上
    GeForce Go 7800 1854 400 1100 6 16 256 256
    Radeon X700 XT 1822 475 1050 6 8 128 128
    Radeon X700 Pro 1719 420 864 6 8 128 128
    Mobility Radeon X1450 1659 445 500 2 4 128 256
    GeForce Go 7600 1659 450 1000 5 8 64/128 256
    GeForce 6800 1514 325 700 5 12 256 128
    女神転生 IMAGINE 推奨  *VRAM128以上 
    Radeon X1300 Pro 1442 600 800 2 4 128 256
    GeForce 6600 GT 1405 500 1000 3 8 128 128
    GeForce Go 6600 1369 375 600 4 8 128 256
    Mobility Radeon X700 1366 350 700 6 8 128 256
    Radeon HD 3450 1303 800 1900 40 64 256
    Mobility Radeon X1400 1244 445 500 2 4 128 256
    GeForce 8400M GS 1235 400 1200 16 64 256
    GeForce 6800 XT 1214 325 700 4 8 256 128
    GeForce 6600 1150 300 500 3 8 128 256
    バイオハザード4  リネージュ 推奨
    Radeon X1300 1117 450 500 2 4 128 256
    Radeon X600 XT 1065 500 740 2 4 128 128
    GeForce 8400 GS 1061 450 800 16 64 256
    GeForce 5950 Ultra 1018 475 950 ? ? 256 256
    Radeon 2400 Pro 1016 525 800 40 64 256
    Radeon 9800 XT 988 412 730 4 8 256 256
    Mobility Radeon X600 986 400 500 2 4 128 256
    GeForce 8400M G 973 400 1200 8 64 256
    GeForce Go 7400 927 450 900 3 4 32/34 128
    Radeon Xpress X1250 913
    Radeon X600 Pro 892 400 600 2 4 128 128
    GeForce 7300 GS 880 550 550-810 3 4 64 128
    Mobility Radeon HD 2300 861 ? ? ? ? ?
    GeForce Go 7300 780 350 700 3 4 64 64
    GeForce Go 7200 707 450 700 3 4 32 64
    GeForce 5900 XT 677 390 700 ? ? 256 128
    GeForce 6200 670 300 550 3 4 128 128/256
    Mobility Radeon 9700 658 450 550 2 4 64/128 256
    GeForce 5700 Ultra 615 475 900 ? ? 128 128
    Radeon X1300 LE 594 450 533 2 4 64 256
    Radeon 9600 XT 582 500 600 2 4 128 128
    セカンドライフ 推奨
    Intel GMA X3000 577 ? ? ? ? ? ?
    Mobility Radeon X1300 548 350 500 2 4 128 256
    Mobility Radeon 9600 Pro 548 350 500 2 4 64/128 128
    Mobility Radeon X300 493 350 500 2 4 64 128
    Intel GMA X3100 492 667 ? 1 8 ? ?
    Radeon Xpress X1200 488 400 ? 2 4 ? 128
    GeForce Go 6400 439 400 700 3 4 64 32
    GeForce Go 6200 439 300 600 3 4 34 32
    Intel GMA X3500 382 667 ? 8 ? ?
    Intel GMA 3100 380 400 ? ? ? ?
    Radeon X300 375 325 400 2 4 128 128
    フロントミッションオンライン 推奨 *VRAM128以上のPCI-E接続カード
    GeForce FX Go 5600 366 350 600 2 2 128 32
    GeForce PCX 5900 349 350 550 ? ? 256 128
    Radeon Xpress X1150 338 400 ? 2 4 ? 128
    Radeon XPress X1100 326 300 ? 2 4 ? 128
    GeForce 7150 319 ? ? ? ? ? ?
    GeForce Go 6100 307 425 ? ? ? ?
    Intel GMA 3000 288 ? ? ? ? ? ?
    Radeon Xpress 200 283 ? ? ? ? ? ?
    Intel GMA 950 258 400 0 4 ? ?
    Radeon Xpress 200M 247 350 ? 2 4 ? 128
    GeForce FX Go 5700 244 450 550 0 4 128 32
    GeForce PCX 5750 222 425 500 ? ? 128 128
    GeForce 6200 TC64M 212 300 700 3 4 64/32 64
    GeForce 6150 189 475 425 ? ? ? ?
    GeForce 7050 PV 168 ? ? ? ? ?
    GeForce 6200 TC16M 124 300 700 3 4 64/32 16
    Intel GMA 900 98 400 0 4 ? ?

    ◎まとめ
     > fileA 標準出力を fileA に書き出す。
     < fileA 標準入力を fileA から読みこむ。
     >> fileA 標準出力を fileA に追加(append)する。
     2> fileA 標準エラー出力を fileA に書き出す。
     2>>fileA 標準エラー出力を fileA に追加(append)する。
     2>&1 標準エラー出力を標準出力と同じファイルに書き出す。標準入力+標準エラー出力
    LPIC-1 LPIC-2 LPIC-3