2013年9月2日月曜日

かつて、フィールドワークコンサルティング手法を勝手に試してみた話

とどのつまり、何をしたらゴールなのかよくわからない仕事ってあると思います。

普通、なんの仕事でも、始まりの時に、勝利条件を明確にするものですが、仕事を依頼する側も、仕事を受け取る側も、勝利条件がわかっていないとき、まずゲームのルールを探らなければいけない時があります。

現実世界は、ゲームのルールなんて、どっかに書いてあることも少ないので、みんな(利害関係者たち)これがルールかな、とおもったものが、ゲームのルールとなります。

で、ゲームのルールを探る必要があるときに、その手法っていろいろあるかと思います。

何年か前のしごとで、フィールドワークコンサルティング手法を勝手に使ってみたことがありました(フィールドワークコンサルティングという言葉は使ってない)。その時の感想をメモがてら書いておきます。

参考リンク
フィールドワークを活用したコンサルティング手法とその効果

(今日skypeでなぜなぜ分析の話題を出したら、この数年前の仕事を思い出しました)

フィールドワークコンサルティング手法に対する自分の理解



  • 文化人類学のフィールドワークをベースにしている

  • STEP1.えらいひとにインタビュー(まとめておく)

  • STEP2.業務フローをつくる

  • STEP3.現場に張り付く


    • 現場の人の動きをひたすらメモる(なるべく先入観なしで)

    • 邪魔者扱いされるが泣かない


  • STEP4.現場の人を含めた利害関係者で、ディスカッションしたり個別にインタビュー

  • STEP5.まとめて、改善の実行案つくる(もしくは改善案の実行まで行って)おしまい(次につなげる)


きっかけ:とある依頼



  • SE派遣をしているSIerがありました

  • 派遣している方(SIer)も、受け入れている方(お客さん)も、現場でなにをやっているのかイマイチよくわかってません

  • でも、改善したいです

  • 改善とかしていきます前向きさをアピールしたい

  • あと、実際現場ブラックボックスなんだよねー


前提条件



  • 期間は半年

  • この件に裂ける人員は俺一人

  • 0.3人月 * 6ヶ月ぐらいでよろぴく

  • 俺はただのしがないSEだった(25歳ぐらい?)


    • この手のしごとはしたこともなかったし、誰もやり方を教えてくれない。



どうしよう



  • 契約や、日々のドキュメント類は見せてもらったが、これだけだとやっぱりよくわからん

  • とはいえ、きれいなBPRっぽいテンプレドキュメント出したところで、なんか納得されなさそう

  • 逃げたい

  • ぐぐる

  • 富士通のサイトに面白いはなしがのってる

  • これだ


まず、やったこと



  • 仮設を立てる


    • 現状こういう問題があるんじゃない?


  • スケジュールを立てる


    • ざっくりと


  • キックオフをする


    • 利害関係者を集めれる範囲でキックオフをして、これから半年やることを宣言する

    • この時は、調査3ヶ月、施策3ヶ月ぐらいにしといたと思う

    • 怒られたらその部分はなおす


  • シートを作る


    • インタビューシート、フィールドワークのメモ用シートなどをつくる



じゃあインタビューしてみよう



  • 利害関係者のなかでも偉い人方面にインタビューしてみる


    • 同じ船に乗ってるとは思えないほど、認識が違う

    • 逃げたい

    • 無知な若者が、失礼なことを聞いてるんですぅという感じで相手の器量に期待する方向で物事をすすめることを決意する。若くて良かった。


  • 現場の人にインタビューしてみる


    • 現場ならではの問題意識をいろいろ抱えている

    • よくわからないところは、フィールドワークで補うか

    • この時点で現場の人が助かる方向に物事を進めようという気になる

    • 偉い人方面は、政治のできる人になんとかしてもらおうという気になる



で、フィールドワーク



  • 週2回ぐらい、現場にいく

  • 現場のSEの後ろについてまわる(マジで)最初はすごく恥ずかしかった。

  • だんだん慣れてくる。

  • あんたなんなの?の視線にもめげない。

  • やっぱり答えは現場にある。


仮説の修正、結果の報告、施策案を提示



  • ブラックボックスってのが気になるのであって、箱を開けてあげれば、具体的な議論ができる


    • ブラックボックス→あいつら仕事してんの?(不安の裏返し)

    • ブラックボックスを紙に可視化

    • フィールドワークの結果があるので、説得力はある


  • 現場は疲弊している


    • こういう理由で疲弊しているので、戦力増強なり、効率化(のためのコストをかける必要がある)みたいな話を、利害関係者の偉い人にいう。


  • 紙をいっぱいつくる


    • 現場に近い人にとっては有用な資料

    • 偉い人向けには、ちゃんとエグゼクティブ・サマリーをつくるのを忘れない

    • 偉い人は細かい文書を読まない。くれって言われたら出すぐらいでちょうどいい


  • 改善案を出す


    • この時は現場よりの改善案だった。

    • 実行も結局俺がやることになってしまった。


  • 改善案のゴールを明確にする(KPI)


    • フィールドワークの結果をもとに、定性的、定量的な改善目標を立てる

    • これがゲームのルール



その後



  • 業務改善のためのツールをつくった


  • 施策の結果は、多分、利害関係者全員が納得できるものではなかった。

  • これはひとえに俺の力不足であった。

  • 継続的にコミットできる仕事として、このツールをブラッシュアップしていかないと意味ないなーと思った。


    • そのために、ツールをつくるにしても、その現場の人が扱えるテクノロジーを採用するってのが大事。

    • ただ、自分がそれに習熟しているかは別問題なのであった。。。





まとめ



  • フィールドワーク手法はかなり有用だった


    • 机上で資料を眺めているよりはるかに意味があった

    • 日本の仕事のスタイルで、現場のドキュメンテーションが少ない、ってのも大きい


  • 改善案の実行を定量目標を満たすように達成するのはすごく大変


    • 特に自分でやる場合、その業務なり、テクノロジーに造詣が深くないと、その成果は微妙なものになりがち。

    • なんの仕事でもそうなんだけどね。。。


  • とにかくすばやく


    • ゆっくりやっていると、組織だったり、技術だったりが変わってしまう

    • 来月ココかわるから、手を入れても意味ね~じゃんとか普通に起こりまくる

    • メスを入れるべきところの見極めと、素早さが重要


2013年8月22日木曜日

macでbind使いたい人のメモ

Macでインターネッツ共有をしたときに、自前のDNSを参照させたい時ってあると思います。
そんなときに、MacでBINDを使うメモです。

環境


Max OS X Lion

事前準備



/etc/rndc.keyの作成

sudo rndc-confgen -a


named.confの設定

vim /etc/named.conf


以下サンプル


include "/etc/rndc.key";

controls {
inet 127.0.0.1 port 54 allow {any;}
keys { "rndc-key"; };
};

options {
directory "/var/named";
pid-file "/var/run/named.pid";
allow-query { any; };

// query-source address * port 53;

};

zone "." IN {
type hint;
file "named.ca";
};

zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};

zone "blog.shase.info" IN {
type master;
file "blog.shase.info.zone";
};

logging {
category default {
_default_log;
};

channel _default_log {
file "/Library/Logs/named.log";
severity debug;
print-time yes;
};
};



zoneファイルを作る


vim /var/named/blog.shase.info.zone


以下zoneのサンプル

$TTL 86400
@ IN SOA localhost root.example.jp.(
2002122001 ; serial
3600 ; refresh 1hr
900 ; retry 15min
604800 ; expire 1w
86400 ; min 24hr
)
IN NS localhost.
hoge IN A 0.0.0.0


他のファイルはデフォルトです。

起動と停止



フォアグラウンド起動


$ sudo named -g


デーモン起動

$ sudo launchctl load -F /System/Library/LaunchDaemons/org.isc.named.plist
Password:
$ ps aux |grep named
hoge 41792 0.2 0.0 2434892 548 s007 S+ 9:27PM 0:00.00 grep named
root 41784 0.0 0.1 2439512 6280 ?? Ss 9:27PM 0:00.02 /usr/sbin/named -f


デーモン停止

$ sudo launchctl unload /System/Library/LaunchDaemons/org.isc.named.plist
$ ps aux |grep named
hoge 41800 0.0 0.0 2434892 548 s007 R+ 9:29PM 0:00.00 grep named


あわせてどうぞ


MacOSXのインターネット共有で、MACアドレス制限を行いたい

2013年8月5日月曜日

JBODはややこしい

カイワレ先生のブログを見て、自分のメモがてら、JBODについて書いてみます。
JBODって、なんぞやって、日本人なら誰もが一度は考えると思うからです。(RAID0と何が違うの?って)

現状、JBODという言葉は非常に曖昧な言葉です。
日本語wikipediaにも3つ定義があります。


1.JBOD機能を持つRAIDコントローラカードを取り付けて、JBODにしたいハードディスクをRAIDコントローラカードに接続する。
2.JBOD用として製造されたディスクアレイ製品をSCSIやファイバーチャネル等のインターフェースに接続する。
3.すでに接続されている複数のハードディスクを、ソフトウェア的に統合してJBODとする(Windows NT系列のOSには「スパン」という名称でこの機能が標準装備されている)。


http://ja.wikipedia.org/wiki/JBOD
より。これはこれで微妙なんですが。。。

まず大雑把な理解として、JBODの特徴を2つ挙げます。(どちらともRAIDに対する優位点です)

  • A.複数のディスクにて、容量が異なる場合も(単純な足し算の)単一のボリュームを構成することができる

  • B.I/O性能がよい、とされる



ちなみに、Aが成立するのは、上記wikipedia定義の1,2,3のときです。
Bが成立するのは、1,2です。(とはいうものの、状況によってRAIDのほうが性能がよかったりします。これは使い方によって変わります。)

3のとき、なぜBが成立しないかというと、ソフトウェアで処理している分オーバーヘッドが大きく、I/Oが出ません。

以下は、ざっくり、1と2は、ハードウェアベースのJBOD。3をソフトウェアベースのJBODとします。

ハードウェアベースのJBOD


ハードウェアベースのJBODとHadoopの話に入りますね。ハードウェアベースのJBODも2つの意味があります。1つは、「束ねられたディスク群」という意味のJBOD。

もうひとつは「物理ディスクが別々の論理ボリュームにマッピングされて、並列書き込み可能な状態(仕組み)」です。上記とはぜんぜん違いますね。

つまり、OSから見えるマウントポイントと物理的なディスクが紐付いている状態ということです。(そして、きちんと別々に書き込むように対応したコントローラがいわゆるJBOD対応のコントローラってやつです)。

Hadoopはアーキテクチャ上、並列に書き込みをしてくれるようです。これは、マウントポイントと実際のディスクが一対一で結びついている時に、その並列性が意味を成すということです。逆にRAIDを組んでしまうとストライプ書き込みをしてしまうので、そのラウンドロビン並列書き込みの意味がなくなってしまうということですね。

ハードウェアのJBODは外付けのエンクロージャで使用されることが多く、サーバ筐体の内蔵ディスクで対応しているものがどのくらい世にあるのかは知りません。

ちょっとだけ調べたら、さすがにDELLのCシリーズとかはJBOD対応のチップ(HBAとしての役割しか果たさないモード)を搭載したLSIのチップとか積んでるみたいですね。

ソフトウェアベースのJBOD


ソフトウェアベースのJBODの話は余談です。こっちは束ねる方だけ触れておきます。

お仕事用途ではあまり使われないので。カイワレ先生がWindows Home Serverの例を出してましたが、あれは、「Drive Bender」の実装の話だと思います。(別に、HOME鯖が最初のJBOD実装ってわけではないです)。

なぜ、Home Server(家庭用鯖)にJBODが必要とされてMSが実装したかというと(最新のHOME鯖では外されているようです)、発売当時、まだ、HDDの値段はそれなりに高く、ユーザのニーズとして、「ジャンク屋で買ってきたHDDいくつか、組み合わせて、でかいOneボリューム構成したいんだけどなー」というのがあったからです。

そのニーズに合致していたのが、ソフトウェアJBODだったんですね。

Linuxの場合は、LVMでソフトウェアのJBOD(のようなもの)を構成することができます。

まとめ


JBODという言葉は、いろんな人が勝手にオレオレ定義で使っている言葉です。さりとて、代替になる適当な言葉もないので、JBODいいよーって言いたいエライ人は、適当に新しい言葉をでっち上げていただけると、世のエンジニアが助かります。

ちなみに、Hadoopのクラスタ組もうと思って、JBOD使えないRAIDカードしか積んでないサーバ渡されたら、しょうがないから、1ディスクでRAID 0ってのを一つの筐体で何個か組む感じの構成になるかと思います。お金くれるんだったら、LSIとかのちゃんと対応したチップ詰んだ鯖にしたいですが。

世の事例を見ると、RAID 0を並べたようなものをJBODなんて言ってる例もあるので、みんな適当に使ってる単語といえばそんな感じ。

おまけ


JBODではWriteキャッシュを切りましょうが一般的なお約束なのですが、もしかしたらHadoopだと気にしなくてもいいのかもしれません。ぐぐればどっかにそんなこと言ってる人いるかも。

2013年7月13日土曜日

struts2参考になるリンク集

本家




日本語記事



マイナビ




codezine


MacOSXのインターネット共有で、MACアドレス制限を行いたい

MAC,MACややこしいですが、T/Oです。
MACのインターネット共有は便利なので、ついつい使いたくなってしまうのですが、はやりセキュリティを考慮しないのは危険ということで、インターネット共有を行う際に、指定したMACアドレス以外は、接続できないようにしたいと思います。

環境



  • Mac OS X Lion



どのレイヤーでやるか


最初、ipfwでやろうとしたのですが、どうにもうまく行かず。

インターネット共有では、dhcpでIPアドレスをばらまいてるわけですが、ココで指定したMACアドレス以外にはdhcpでアドレスを付与しない方向に切り替えました。

想定外の端末が直接アドレス指定してアクセスしてくるリスクには、払い出すアドレス数の管理+ipfw等で対応することとします。もちろん、無線LANのキーを設定するのは言うまでもありません。

もし、下記を実行して、セキュリティインシデント起こしても当方は知りません( ー`дー´)キリッ

概要:インターネット共有の手順


[システム環境設定] -> [共有] -> [共有する接続経路(Ethernet)] + [相手のコンピュータが使用するポート(Wi-Fi)]を選択し、インターネット共有チェックボックスをONにします。

そうすると、bootpが動き出し、/etc/bootpd.plist が生成されます。このファイルを編集するのですが、難があり、デーモン起動時に新規にファイル生成し、デーモン停止時にファイルを削除しやがります。この点、多少ケアが必要です。

/etc/bootpd.plist 実際のファイルサンプル


[xml]




Subnets


_creator
com.apple.InternetSharing
allocate

dhcp_domain_name_server

10.0.2.1

dhcp_router
10.0.2.1
lease_max
86400
lease_min
86400
name
10.0.2/24
net_address
10.0.2.0
net_mask
255.255.255.0
net_range

10.0.2.2
10.0.2.254



allow

xx:xx:xx:xx:xx:xx

bootp_enabled

detect_other_dhcp_server

dhcp_enabled

en1

use_server_config_for_dhcp_options



[/xml]

allowの部分に注目して欲しいのですが、
[xml]
allow

xx:xx:xx:xx:xx:xx

[/xml]
allowで指定したMACアドレスだけに、IPアドレスを割り振るようになります。(その他はデフォルト値です)

実際のオペレーション


[bash]
#設定ファイルを編集して
sudo vim /etc/bootpd.plist

#chflagsを立てます
sudo chflags uchg /etc/bootpd.plist

# インターネット共有開始
[/bash]

ファイルが消されてしまう対策として、BSD系OSで使用出来るchflagsを利用します(chmodでreadOnlyにしても消されるので)。
もっとエレガントな方法ありそうな気はしますが。。。

再度ファイルを編集したくなったら
[bash]
sudo chflags nouchg /etc/bootpd.plist
[/bash]
上記を叩けばOKです。

ではでは。

参考にしました


https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man8/bootpd.8.html

2013年7月11日木曜日

2013年前半振り返り

さらっと振り返ってみる

1月

  • インフルで死んでた記憶しかない


2月

  • 新チーム体制になったけど、裏側の保守っぽいことメインに仕事してた気がする。



3月

  • 2月とやってること変わらず保守っぽいのがメインだったけど、エイプリルフールの実装とかは、初めてまともに機能的なものを仕込んだかも。



4月

  • チームでフロント周りのリソースが薄かったので、かなりの部分、マークアップっぽいことしてた気がする。FTL/CSSに少しだけ詳しくなる。



5月

  • r***とか、e***とかのある程度のカタマリ機能を実装。



6月

  • 保守っぽいのから、***の機能とかを実装。手広く浅く。



振り返り

  • この半期開始時点よりは、ずいぶんマシになった気がする(元が酷すぎるんだけど)

  • 6月ぐらいから自分に不足してる知識とかがかなりクリアになってきて、Inputの元気も戻ってきたので、最近は本とかも読めている



後半戦へ向けて

  • もーちょいマシなエンジニアになりたい。

  • QCDをあげていきたい。

  • 設計〜実装〜テスト:やっぱりこのあたりを強化していきたい。分析とかは当分いいいや。

2013年6月11日火曜日

FreeMarkerのハッシュの要素にアクセスする(2)

前回「FTLのハッシュの要素にアクセスする」というのを書いたのですが、このときやりたかったことって、配列の「最後」にアクセスしたかったからなんですね。

でも、値直接指定じゃなくて、配列の最後を判定する構文がちゃんと用意されていたのでした。。。

マニュアルはちゃんと読みましょうというはなし。


[java]
<#assign foobar = ["hoge", "fuga", "piyo"]>

<#list foobar as str>
${str}
<#if str_has_next>さいごじゃ


[/java]


参考


http://freemarker.org/docs/ref_directive_list.html

2013年5月23日木曜日

FreeMarkerのハッシュの要素にアクセスする

T/Oなんですが。FTLのお話。

こんなハッシュがあったとして
[java]
<#assign hoge = [

{
"title":"fuga",
"id":"piyo"
}
] />
[/java]

ずらーっとね。で、特定要素にアクセスするときは、こんな感じで書けるっぽい。
[java]
<#list foo.hoge as bar>
    <#if bar.id == "piyo">
    ぴよぴよ
    

[/java]
みたいな。

2013年5月15日水曜日

ドキュメントについてのリンク集

書きかけ

ウォーターフォール



  • 即活用!業務システムの開発ドキュメント標準化


    • http://thinkit.co.jp/free/project/4/1/1.html


  • グラス片手にアジャイル開発 第4回 - ハイブリッドアジャイルの実践法


    • http://codezine.jp/article/detail/5498



アジャイル



  • ドキュメントを効果的に利用する


    • http://it.impressbm.co.jp/e/2010/08/20/2665


2013年4月20日土曜日

EclipseがWorkbenchのロード中で止まっちゃうとき

環境は

  • MacOS X Lion

  • Eclipse 3.7 (英語版/JavaEE)

  • Java 6




間違って電プチしちゃったときとか、バッテリー切れて落ちたとか、Eclipseが突然死するとかで、
不意に落ちるとworkspace選択->workbenchのロードで止まっちゃうことが多いです。

その時用のまとめ。

やること1.ログを見よう


このへんのログを見る。解決の糸口があるはず。

workspace/.metadata/.log


やること2.cleanで立ち上げよう


こんな感じのログの場合

!ENTRY org.eclipse.core.resources 2 10035 2013-04-20 02:00:14.017
!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.

ワークスペースをリフレッシュせよとあるので、一旦

./eclipse -clean

を試してみる。ケースにもよるけどこれで割りと復活する。

やること3.snap的なファイルを消してみる


こいつらが居たら消す

.metadata/.plugins/org.eclipse.core.resources/.snap
.metadata/.plugins/org.eclipse.core.resources/.projects/*/.*.snap


だいたいこれで治る。

とても参考になりました


http://www.andr0o0id.com/?p=854

2013年4月18日木曜日

シェルスクリプトで添付ファイル付メール送信

例によって、備忘録。CentOS 5系にて

※ わかりにくい箇所を書き直した 2015.10.13

uuencodeが入ってなければInstall
$ sudo yum install sharutils


mailコマンドでメールが送信できる前提での、
動作サンプル:本文+添付ファイル
$ (echo "mail_body"; uuencode file_path file_name) | mail -s 'mail_title' mail_address

見にくいので、ちょっと補足すると、

mail_body : 本文
file_path : 添付するファイルのpath
file_name : 添付ファイル名
mail_title : メールの件名
mail_address : 宛先メールアドレス(to)

ちなみに、日本語とか文字化けするので、
mailコマンドに渡す前に、nkf -j をパイプで通すとよい。

2013年4月16日火曜日

シェルスクリプトで自身のフルパスを取得

T/Oです。
いっつも忘れるので。
[bash]
#!/bin/sh

hoge=$(cd `dirname $0`; pwd)/`basename $0`
echo $hoge
[/bash]

こんな感じで。

2013年4月7日日曜日

スタンドアローンで動作する祝日判定スクリプト

タイトルどおりなんですが、仕事で必要なので作ってみました。(ついでに社内のレポートもあったので)。
でも、最近仕事が忙しくて、悲しいかな業務時間に作業してないので、せっかくなのでブログにも置いときます。
社内のレポートは業務時間を使ってもいいことになっているので、有難い制度なんですけどねー。

やりたいこと


日本の祝日を判定したい

1.元データ


スタンドアローンということで、何らかの元データをローカルに保持しないといかんわけで、今回はGoogle カレンダーのAPIを利用しました。

今回利用したXMLリクエスト


http://www.google.com/calendar/feeds/outid3el0qkcrsuf89fltf7a4qbacgt9@import.calendar.google.com/public/full-noattendees?start-min=2013-01-01&start-max=2013-12-31

リクエストパラメータの意味


詳細は、Google Calendar API v2 Atom Referenceを。























outid3el0qkcrsuf89fltf7a4qbacgt9@import.calendar.google.com比較的信頼度が高いとされる、mozillaプロジェクトの祝日一覧(mozzila Calendar Project)
 full-noattendees full版からgg:whoを抜いたもの(今回は不要なので)
 start-min=2013-01-01 期間の始まり
start-max=2014-01-31 期間の終わり

2.実際のコード


[python]
#!/usr/bin/env python

from xml.dom.minidom import parse
import sys
import re

def get_parse(fileName):
try:
obj = parse(fileName)
except IOError:
obj = 0

return obj

def get_arg2(arg2):
pattern = re.compile("^\d{4}-\d{2}-\d{2}$")
matched = pattern.search(arg2)

if matched:
argDate = arg2
else:
argDate = 0

return argDate


def main():
fileName=sys.argv[1]
obj = get_parse(fileName)

if obj == 0:
print "file not found"
return 1

argDate = get_arg2(sys.argv[2])

if argDate == 0:
print "argument is unjust. ex)2013-01-01"
return 1

obj_list = obj.getElementsByTagName("gd:when")

for i in obj_list:
if argDate == i.getAttribute("startTime"):
return 0

print "unmatch holiday"
return 2


if __name__=='__main__':
sys.exit(main())
[/python]

3.ざっくり仕様



  • 第一引数に元xmlのファイルパス

  • 第二引数に確認したい日付をyyyy-MM-ddにて渡す

  • 祝日であれば、0、祝日でない場合は2、その他のエラーは1を返す


4.動作イメージ


[bash]
shase$ ./holidayCheck.py japanHoriday.xml 2013-10-15
unmatch holiday
shase$ ./holidayCheck.py japanHoriday.xml 2013-05-05
shase$ echo $?
0
[/bash]

2013年3月26日火曜日

Linuxでのhostsの反映

前に、macでのhostsの変更の反映メモを書いたけど、Linuxでも似たような話があるので、メモ代わりに。


Linuxはリゾルバキャッシュがありましぇーん、とかよく(古い)記事とかであったりしますが、最近のディストロだとだいたい、nscdっていうネームサービスキャッシュデーモンたんが動いており、時々、hostsやらpasswdやらの変更が反映されないみたいな悪さをしてくれやがります。(LDAP関連のトラブルでもよくでてくるんじゃないかな?)

余談だけど、最近のFreeBSDでも動いてるらしい(余談おわり)。

詳細は「man nscd」してもらえればいいんですが、とりあえずhostsのキャッシュをクリアしたいとき(nscdの再起動:nscd restartでもいけるけど)。

/usr/sbin/nscd -i hosts

とかすればおk

2013年3月24日日曜日

macでipfwを使って特定ホストに対する通信を止めたい

環境はMacOS X Lion


ipfwのチートシート


  • sudo ipfw list
    • ルールの表示
  • sudo ipfw delete "number"
    • ルールの削除
  • sudo ipfw add "rule"
    • ルールの追加"rule"のところはmanでもみてくれ
  • sudo ipfw show 
    • ルールとパケットの表示
  • sudo ipfw -f flush
    • 既存の設定のflush

で、特定ホストに対する通信のblock


denyのところに止めたい宛先アドレスを入れよう
以下、設定シェルの例

#!/bin/sh
ipfwcmd="ipfw"
add="$ipfwcmd -q add"
# flush old rules
$ipfwcmd -f flush
$add deny tcp from me to xxx.xxx.xxx.xxx
$add deny icmp from me to xxx.xxx.xxx.xxx

細かいルールはmanでも見てね(・ω<)

2013年3月23日土曜日

2013年2月16日土曜日

mavenプロジェクトでのjvmのバージョン指定してるトコ

mavenのサイトに書いてるけど。

http://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html
maven-compiler-pluginのトコで指定だってさ。下の例はjdk1.4を指定してる様子。
[xml]

[...]

[...]


org.apache.maven.plugins
maven-compiler-plugin
3.0

1.4
1.4



[...]

[...]

[/xml]

2013年1月1日火曜日

2012年を振り返りつつ、2013年を考える

最初、2012年のまとめを書こうかと思っていたんですが、2012年は個人的に激動すぎて、ちょっと今の段階で振り返って、それをまとめることが難しいという結論になりました。

外部環境の動きによって、もたらされた自分の変化。

自分から能動的に動いた結果の自分の変化。

それぞれあるのですが、どれも今の段階でどうだったのか、評価を下すには早すぎると感じました。2〜3年して振り返った時に、2012年の評価ができるんじゃないかな、と思っています。

個別の事項についての、KPTはできるんですけどね。

というわけで、2013年の豊富を。

仕事の面で。

世の中の動きがどうなるかわかりませんが、Web系のエンジニアとしてやっていこうという気持ちに変わりはありません。今年選択した道を深化させて行きたいと思います。(Web以外のインターネット産業が勃興した場合はその限りではありませんw)

2011年の今頃は、モヤモヤしていたのですが、2012年は個人的な決断を行ったので、今は雑念も少なく、仕事に取り組むことができています。

多くの人にご迷惑をかけました。働くようになって、今年ほど自分の無力を感じたことはありませんでした。スキル的なところもそうですし、人間的なところもそうです。

スキル的なところは、一朝一夕にどうしようもないので、積み上げをしていくしかありません。そのスピードは上げていく必要がありますが。

人間的なところは逆にすぐできることも多くあります。同じ失敗だけはしないようにしたいと思います。今年はそこで、大きな失敗をしました。IT業界ではよくある話ですが、よくある話しとして済ませてはいけないと個人的には考えています。

抽象的なことばかり書いてもあれなので、1つだけ今年記憶に残ったエピソードを書きます。

弊社では、運用と開発に役割が分かれているわけではなく、エンジニア職は基本的に両方をこなします。

今年は3ヶ月ぐらい、実際のサービス運用から離れていた時期がありました。ニートしていたとかではなく、仕事で別のミッションがあったからなのですが。

その後、またとあるサービスの開発&運用をやることになったのですが、運用の感覚みたいなものが欠落していることに気が付きました。

具体的に言うと、リソースのモニタリングにおける気づき、であったり、何かのオペレーション時のリスク(事前察知?)に疎くなっていたり、等。

このあたり、日々の筋トレに近いものがあるのかもしれません。やらなくなると、徐々に衰える。

よくよく考えてみると、仕事って現場から離れると現場感覚が無くなんて、よく言われる話。ただ、それを如実に実感したのは初めてでした。