Yukiharu YABUKI の tDiary
このtDiaryを検索します。
2009-04-02 [長年日記]
_ 人の採用ってどうするのかな
これまで私は、採用される側の立場であることが多かった。採用面接に参加したこともあるけれど自分が主体的に人の採用をすることはなかった。
ところが、最近世間は不景気で仕事がないとかいわれているのですが、ありがたいことに仕事の目処が立ち、社員を入れて育てないと楽にならないことを思い知りました。
基本のフローは、人材募集、書類選考、一次選考、二次選考.... ってな感じ。まあ基本なので例外はもちろんある。
ということで、人を採るためのルートを、リストアップしてみようと試みてみた。どれにもメリット/デメリットがあるはず。
- 公共系
- ハローワークへ問い合わせ
- 大学や専修学校などの就職課(に相当する所)へ問い合わせ
- 自治体が主催する就職フェアー
- ...
- 公共系以外
- 縁故
- 公共系以外の就職フェアー
- 人材Webサイト
- ヘッドハンティング
- ...
_ memo:プログラマーは履歴書をどう見るか
(http://www.aoky.net/articles/steve_hanov/how_a_programmer_reads_your_resume.htm)読み物としてはおもしろい。が、私は職業プログラマーとして別の軸がいるような気がしている。ネタにマジレスでかっこ悪いかもしれないがね。ちなみにいまの時点では関連リンクは読んでない。
2009-04-03 [長年日記]
_ ipa font
(http://www.opensource.org/licenses/ipafont.html)これでライセンスに矛盾せずに配布や改変ができますね。2009.04.06updateチェックするべきURLが間違えておりました。すいません(http://ipafont.ipa.go.jp/enduserlicensedraft090305.htm)が正解なようです。ちなみにitproの記事(IPAフォントが2009年4月中旬にもオープンソース・ライセンスへ,改変と再配布が自由に http://itpro.nikkeibp.co.jp/article/NEWS/20090403/327784/)もありますので各位におかれましては、確認方よろしくお願いします。
_ 思わずクリックしてしまった。
ウインドリバー バイスプレジデントに聞く --- 「Androidはまだ本当の意味でOSSと言えない」(http://www.atmarkit.co.jp/news/200904/01/windriver.html)ガバナンスが民主的でないというなら、...とか思って、クリックしたら釣りタイトルだった。プロジェクト初期の段階では強力な指導力がいるので、民主的でない面も評価するという記事。
_ slashdot.jp:すべてのプログラマは英語を理解するべきなのか?
べきとかいうもんじゃないだろうに。これも注目が欲しいのか釣りタイトルっぽい。理解した方が有利だからで、プログラマーが免許制になって試験に英語が入っているなら「べき」といっていいかとはおもうけどね。(http://slashdot.jp/askslashdot/article.pl?sid=09/04/03/0354208)
_ エリック・レイモンド曰く「GPLはもう要らない」
んー、GPLでライセンスしてあるプログラムやデータなどが存在しているのは事実上変更できないと思うのだけど。ESR氏が、どこにゴールを設定しているのか私にはよくわからない。
2009-04-04 [長年日記]
_ ブルネイ写真ニュース
ブルネイって日本からするとミステリアスな国だけど、調べてみると縁浅からぬ関係なんですね。ブルネイ写真ニュース(http://geoship.typepad.jp/brunei/)
_ 携帯をS001に変更
ホワイトボードの記録などを画像にしておきたくて、デジカメなどをつかうことがある。で、携帯とデジカメはカメラ機能で似た様な進化を遂げているので、2つを一つに置き換えてみてどれぐらい便利、または不便を感じるかやってみることにした。
そのほかにも、AUで、GSMも使えるS001は私にとって魅力がある。通話料金やメール料金は高いけどね。
ちなみに、LISMOで語学の練習ができるかも試したい。そうするとmp3プレイヤーも持ち歩かなくていいかもなのだ。まだ試行錯誤が足りないので、いまいち語学の訓練には使いにくい。リピートの操作方法やプレイリストの30曲制限など、どうしたら改善できるか。あとusb serialを携帯と接続すると、3回に1度ぐらいは失敗している。なにか問題があると思うのだが...はて。何からチェックしようか。
2009-04-05 [長年日記]
_ 良かれと思って追い詰めてしまうと....
特殊清掃「戦う男たち」 --- Fight 〜父の苦悩〜(http://blog.goo.ne.jp/clean110/e/77bde618f806e353035eb497db91d79f)
この文章を書いている人を直接はしらない。特殊清掃という、一般の清掃の枠を超える部分についての記述である。一連のシリーズには凄惨を極める描写もあるので、万人にはお勧めしない。ただ、この中で語られている言葉には、納得する部分もあるので書いておく。
今回取り上げている事件は、コンピュータ業界でも一部身につまされる話なので、こちらにも書いておきます。
_ IPAの調査:IT人材「量は十分、質が足りない」
これも、現場によって異なると思いますよ。リーダーの下に大量の手下をつかって、そこそこの人間を人海戦術で利用して力業でシステムを何とかするという所もあるようですし。問題の複雑さにもよるのでしょうが。(http://www.atmarkit.co.jp/news/200902/26/ipa.html)
_ Debian で usb wireless network adapter #2
11nでのusb wireless network adapterの続き。usb wireless の 11n を使うのは、(http://wiki.debian.org/rt2870sta)を見ればよいといくやさんから教えてもらう。
2009-04-08 [長年日記]
_ 最近、思い知らされる --- 統計の力
最近、 を読んで、学校で習っていた時には気がつけなかった vivid な統計、とりわけ回帰分析、標準偏差、ベイズ理論の平易な説明*1が気になっていた。
spam filterで毎日お世話になっているのに、こんなに知らなくてごめんなさいって感じです>ベイズ理論さん。第11回 Kansai.pm / スペルミス修正プログラムを作ろう(http://d.hatena.ne.jp/naoya/20090323/1237775357) でも、ベイズ理論の話があったそうです。
直感の正しさを確かめるのには、数字の裏付けが必要だというのを、否と言えないほど列挙してくれているます。また、マーケティングや、医学分野など、「人間に判断させない方が成功率が高い」という分野についてどのように考えるか。
また、モデルの仮定について間違うこと、それが検証されずに通ってしまうと間違った結果になってしまうため、自由に検証できる環境、つまり元データへのアクセス、検証する自由がないと危ないのではないかという話も気になる所である。
*1 詳しく学びたい人には巻末に資料もあるけど、日本語でよめる良書を探してみるのもいいかもしれません
_ tcp_probeが出力するフォーマット
TCP_Probeの続きです。tcp_probeは、/proc/net/tcpprobe
からデータを取得します。そのフォーマットは、Debian GNU/Linux だと、カーネルソースを展開した所から、net/ipv4/tcp_probe.c の中を見ると良い。printlと、jtcp_sndmsgを眺めれば判ると思う。
- 秒と秒以下
- 送信データの元IPアドレスと送信元ポート
- 送信データの先IPアドレスと送信先ポート
- 送信データサイズ
- tp->snd_nxt
- tp->snd_una
- tp->snd_cwnd(輻輳ウィンドウサイズ(セグメント数)
- tcp_current_ssthresh(sk)(現在のスロースタート閾値)
- tp->snd_wnd(送信ウィンドウサイズだと思うが。要確認)
2009-04-09 [長年日記]
_ USB HID(Human Interface Device)
バーコードリーダーと関連する。物品管理に便利なUSBバーコードリーダー(http://k-tai.impress.co.jp/cda/article/todays_goods/44500.html)は、HIDデバイスとして認識できれば、Linuxでもつかえるとのこと。要するに、人間の代わりに読み取ったコードをキーボードから入力するようなものなのである。
_ Linux kernel で使われている rtt_sample の sample は動詞の sample
sampleって動詞でつかうと、(見本をとって)質を試す/味を見る/経験する/標本抽出する/などの意味になる。rtt_sample は、定義はinclude/net/ipv4/tcp.hに、使われている部分(net/ipv4/tcp_input.cを見ると *1
/* * Interface for adding new TCP congestion control handlers */ #define TCP_CA_NAME_MAX 16 struct tcp_congestion_ops { struct list_head list; /* initialize private data (optional) */ void (*init)(struct sock *sk); /* cleanup private data (optional) */ void (*release)(struct sock *sk); /* return slow start threshold (required) */ u32 (*ssthresh)(struct sock *sk); /* lower bound for congestion window (optional) */ u32 (*min_cwnd)(const struct sock *sk); /* do new cwnd calculation (required) */ void (*cong_avoid)(struct sock *sk, u32 ack, u32 rtt, u32 in_flight, int good_ack); /* round trip time sample per acked packet (optional) */ void (*rtt_sample)(struct sock *sk, u32 usrtt); /* call before changing ca_state (optional) */ void (*set_state)(struct sock *sk, u8 new_state); /* call when cwnd event occurs (optional) */ void (*cwnd_event)(struct sock *sk, enum tcp_ca_event ev); /* new value of cwnd after loss (optional) */ u32 (*undo_cwnd)(struct sock *sk); /* hook for packet ack accounting (optional) */ void (*pkts_acked)(struct sock *sk, u32 num_acked); /* get info for inet_diag (optional) */ void (*get_info)(struct sock *sk, u32 ext, struct sk_buff *skb); char name[TCP_CA_NAME_MAX]; struct module *owner; };
この中で、必須項目は、required とされているsshreshとcong_avoidである。あとは必要に 応じて定義して呼び出してもらう形となる。rtt_sampleも関数のポインターとして定義されているのが わかるだろう。
/* Remove acknowledged frames from the retransmission queue. */ static int tcp_clean_rtx_queue(struct sock *sk, __s32 *seq_rtt_p) { struct tcp_sock *tp = tcp_sk(sk); const struct inet_connection_sock *icsk = inet_csk(sk); struct sk_buff *skb; __u32 now = tcp_time_stamp; int acked = 0; __s32 seq_rtt = -1; u32 pkts_acked = 0; void (*rtt_sample)(struct sock *sk, u32 usrtt) = icsk->icsk_ca_ops->rtt_sample; struct timeval tv; ...snip.... if (acked&FLAG_ACKED) { tcp_ack_update_rtt(sk, acked, seq_rtt); tcp_ack_packets_out(sk, tp); if (rtt_sample && !(acked & FLAG_RETRANS_DATA_ACKED)) (*rtt_sample)(sk, tcp_usrtt(&tv)); if (icsk->icsk_ca_ops->pkts_acked) icsk->icsk_ca_ops->pkts_acked(sk, pkts_acked); } static u32 tcp_usrtt(struct timeval *tv) { struct timeval now; do_gettimeofday(&now); return (now.tv_sec - tv->tv_sec) * 1000000 + (now.tv_usec - tv->tv_usec); }
*1 Debian GNU/Linux Etchの Kernel 2.6.18にてチェック
2009-04-10 [長年日記]
_ memo:TCP/IPスタックをユーザランドで動かすNetBSD Rump - AsiaBSDCon 2009
ユーザランドでTCP/IPスタックを動かせるってのは、そんなに多い要望ではないかもしれないけど一定のニーズはあるのです。(http://journal.mycom.co.jp/articles/2009/03/30/asiabsdcon4/index.html)
_ Debian kFreeBSD
アナウンスがでました。それによる記事。
_ NetBSDはMMUなしでも動くか?
調べた限りでは、(http://mail-index.netbsd.org/tech-embed/2002/04/11/msg000183.html)のままかなと思いますが、詳しい人に聞くと違うのかも知れません。
2009-04-11 [長年日記]
_ 企業情報調査票
急がないリストに入って忘れていたモノに、企業情報調査票の記入がある。事務所を移転して書類整理の一環で、送られてきた調査票などを返送するのに、情報を集めている会社の略歴ぐらいはチェックしないとね。と思いながら、忙しさにかまけてすっかり忘れていました。
帝国データバンクや東京商工リサーチなどの会社に登録してないと、企業選別というか与信調査というかに受からない場合もあり、一概に情報提供がよろしくないというわけではない。
一例としては、良いビルに入居したいと思ったら、ビルの管理会社が入居しようとする会社の調査を行う。そのとき調査会社に登録されていなければ相手にもされない。つまり思ったビルには入居できない。*1
だんだんと上記のような仕組みになっていることを、肌身で理解してきたので、企業情報を登録してみるかという気になった。そこで裏を取るべくGoogleって「企業情報調査票」記入のお願い(http://www.tsr-net.co.jp/research/index.html)という文書があることを確認してから、「企業情報調査票」を記入して返送した。
*1 外見だけ整えて安心させる詐欺につかわれて、ビルの資産価値が下がっても困るというトラブルがあっても困るのだろうと推測する。他にも理由があるのかもしれないが。
2009-04-12 [長年日記]
_ memo:GBA で PDP-11/UNIX Ver5
kinnekoさんの所経由。(http://d.hatena.ne.jp/kinneko/20090407/p7)PDP-11で昔のUnixつながり。simhでのお話はmemo:UNIX version 7 on PDP-11 on simhでやってました。
2009-04-15 [長年日記]
_ Berkeley DataBase
BDBの今の upstram は、(http://www.oracle.com/technology/software/products/berkeley-db/index.html)ですかね? BDBの変遷の歴史とか気になってきた。
_ Berkeley DB XML
使ったことがないけど、スピードとか必要リソースとか、どうなんだろう。日本語の説明は(http://www.oracle.com/lang/jp/database/berkeley-db/xml/index.html)
_ graphviz
flickrで、(http://www.flickr.com/photos/kentbye/sets/72157601523153827/)を見つけた。graphvizの例なんだけど、ここまでやるかと、びっくりするかとおもう。
インタラクティブな下書きは、freemindなどで、svnやgitでグラフを管理するなら、こういうのも手かもしれない。でも、本当はプログラムにグラフを書かせるためにつかうのかなあと思う。doxygenなどで使われている様に
初心者はこのへんから入った方がいいかも(http://homepage3.nifty.com/kaku-chan/graphviz/chapter_003.html)
2009-04-17 [長年日記]
_ tcp_cong.c
TCPの輻輳制御を、入れ替え可能にするモジュールについて扱う。Debian GNU/Linux Etch にある、kernel 2.6.18 を参照しつつ記録したが、自分のために書いているので、利用するときにはソースコードをみてチェックしてその通りか確認した方がよい。。
static struct tcp_congestion_ops *tcp_ca_find(const char *name)
- リニアサーチで、"hybla","bic"などの輻輳回避のアルゴリズム(Congestion AvoidanceなのでCAかと)を選択する。
static tcp_register_congestion_control(struct tcp_congestion_ops *ca)
- 輻輳制御の関数というかモジュールをリストへ登録する。この関数で、輻輳回避のモジュール内に、スロースタートの閾値を決定する関数および輻輳回避の処理を行う関数がない場合はエラーとしている。スピンロックでかけて list_add_rcu を呼び出して、処理リストに繋いでる。
なおこの関数は、EXPORT_SYMBOL_GPLでシンボルを公開している。 tcp_unregister_congestion_control(struct tcp_congestion_ops *ca)
- 輻輳制御の関数というかモジュールをリストから削除する。スピンロックをかけてリストから処理を削除している。この関数も EXPORT_SYMBOL_GPL でシンボルを公開している。
void tcp_init_congestion_control(struct sock *sk)
- tcp_congestion_ops構造体の定義にもあるように、
/* initialize private data (optional) */ void (*init)(struct sock *sk);
で登録された関数を実行する部分。関数の1行コメントには、Assign choice of congestion control.とある。if (try_module_get(ca->owner))){の部分に関しては、あとでチェック void tcp_cleanup_congestion_control (struct sock *sk)
- tcp_congestion_ops構造体の定義にもあるように、
/* cleanup private data (optional) */ void (*release)(struct sock *sk);
で登録された関数を実行する部分。module_put(icsk->icsk_caops->owner);
についてはあとでチェック。関数の一行コメントには、Manage refcounts on socket close. とある。 int tcp_set_default_congestion_control(const char *name)
- 関数の一行コメントには、Used by sysctl to change default congestion controlとある。CONFIG_KMODで条件コンパイルされている部分があるが、その場合、スピンロックを外して request_moduleを発行する。tcp_%sって表記しているので、モジュール名はtcp_をつけるのは必須だ。
void tcp_get_default_congestion_ops(char *name)
- BUG_ONっていう関数か、マクロかは後で調べる。TCP_BICがある場合にはTCP_BICがデフォルトになるが、最悪はTCP_RENOがあるので、値がないという事態は発生しない。
void tcp_set_congestion_control(struct sock *sk, cont char *name)
- 関数の一行コメントには、Change congestion control for socket とある。見た感じでは、リストの中から指定の輻輳制御を見つけて、組み込みの分か、モジュールになっている分をとりだします。モジュールを呼び出すときには、付け替える前にtcp_cleanup_congestion_control(sk)を呼んでから、tcp輻輳制御の初期化処理を呼び出す。
void tcp_slow_start(struct tcp_sock *tp)
- スロースタートの部分、sysctl_tcp_abc man 7 tcpのtcp_abc (Integer; default: 0; Linux 2.6.15 以降) に関係する。RFC3465 - TCP Congestion Control with Appropriate Byte Counting (ABC)に関係する。この関数は、EXPORT_SYMBOL_GPLである。
void tcp_reno_cong_avoid(struct sock *sk, u32 ack, u32 rtt, u32 in_flight, int flag)
- TCP Renoの輻輳回避/輻輳制御 SIGCOMM '88のp328を参照。ここでもsysctl_tcp_abcの影響あり。安全なエリアから危険なエリアへ、線形上(リニア)に送信輻輳ウィンドウを広げる。この関数もEXPORT_SYMBOL_GPLである。
u32 tcp_reno_sshresh(struct sock *sk)
- max(tp->snd_cwnd >> 1U, 2U); となっている。送信輻輳ウィンドウが半分の値または、2の大きい方だから最小値が2だ。この関数もEXPORT_SYMBOL_GPLである。
u32 tcp_reno_min_cwnd(const struct sock *sk)
- 送信用スロースタートの閾値を半分にする。関数の一行コメントは、Lower bound on congestion window with halvingである。この関数もEXPORT_SYMBOL_GPLである。
構造体 tcp_congestion_ops の tcp_reno
- ここで、TCPのオリジナルである tcp_reno について定義している。
構造体 tcp_congestion_ops の tcp_init_congestion_ops
- この部分は、コメントによるとSYNパケットを受け取るまでの初期状態の輻輳制御なんだけど、要確認。
2009-04-23 [長年日記]
_ Bandwidth*Delay Products (BDP)
BDPとは、帯域*遅延時間をかけ算した結果である。おなじようなことを表す言葉にLFP(Long Fat Pipe)がある。詳解TCP/IP〈Vol.1〉プロトコル(W.リチャード スティーヴンス/W.Richard Stevens/橘 康雄/井上 尚司)の20.7 バルク・データ・スループットの帯域幅遅延積(BDP) (327p) および 24.3 ロング・ファット・パイプ (386p)にも同じ式がある。
キャパシティ(ビット)=帯域幅(ビット/秒) * 往復時間(秒)という表記である。ACKが相手から往復して戻ってくる時間、つまり遅延時間である。
上記の式は、TCPへの与えるバッファを考える上での基礎となる式である。
- LONG FAT PIPE問題(http://www.soi.wide.ad.jp/class/20040022/slides/08/27.html)
ロング・ファット・パイプ問題とは、「回線は太くなりうる。でも遅延がなくなるわけではない。」ってことで、土管は太くなる可能があるけど、土管の距離が短くなる訳じゃないって感じか。遅延はなくならない。それに光ファイバーで伝送しているなら、光速が律速だ。 - (http://www.psc.edu/networking/projects/tcptune/)
_ 高速再転送と高速リカバリ・アルゴリズム
Linuxカーネルで言及されている(net/ipv4/tcp_input.cあたりや、各輻輳制御でも関連する) "Fast retransmit(高速再転送)" と "Fast recovery(高速リカバリ)" は、詳解TCP/IP〈Vol.1〉プロトコル(W.リチャード スティーヴンス/W.Richard Stevens/橘 康雄/井上 尚司)の21.7 高速再転送と高速リカバリ・アルゴリズム (p351)で言及されている。
_ 最大セグメントサイズおよびウィンドウ・スケールの係数
TCPオプションで、最大セグメントサイズおよびウィンドウ・スケールの係数は設定される。tcpdumpやwiresharkでは、synパケットが流れたときに一緒にみえる。Linux同士のの場合はSACKも有効になるし、タイムスタンプも有効である。両端のどちらかがdisableにしてなければだが。
TCPウィンドウのスケール・オプションの説明については、詳解TCP/IP〈Vol.1〉プロトコル(W.リチャード スティーヴンス/W.Richard Stevens/橘 康雄/井上 尚司) の24.4 ウィンドウ・スケール・オプション (p389)を参照せよ。0から14までの、シフト値であり、16ビットのウィンドウ値をシフトすることでスケールするするようになっている
synをやり取りするときに、スケールが決まる。TCPがバッファを持っていないと、このスケールの値を大きくすることはできないだろうと思う。
ウィンドウサイズの議論は、詳解TCP/IP〈Vol.1〉プロトコル(W.リチャード スティーヴンス/W.Richard Stevens/橘 康雄/井上 尚司) の 「20.4 ウィンドウ・サイズ」(p320)で述べられる。この議論の先には、TCPのスループットを向上させるバッファサイズについての議論がある。ここでは理論と、各OSによりソケットバッファ割り当ての実際について学ぶ必要がある。Linuxの場合は、/procとか、ソケット生成時のバッファ指定の話だ。
_ GPLv3 逐条解説
IPAから最初の版がでた。八田氏はmhatta のジャーナル - GPLv3逐条解説(http://sourceforge.jp/magazine/journals/mhatta/526)で、
関わっていた人間の一人が言うのもなんだが、こんな長くてややこしいものを誰が読むんだろうという根本的な疑問が無くもない。念のため付け加えておくと、もちろんこの逐条解説をすみからすみまで理解しなければGPLv3は使えないなんてことはない。これはある種パラノイアックな仕事である。と言われているが、仕事でFLOSSを使う場合にGPLv3の隅から隅まで知りたいという要望が、IPAを動かしたので、わたしの周りでも少なくとも3人は、隅から隅まで読むだろう人が思い浮かぶ。
2009-04-25 [長年日記]
_ memo:進歩するLinuxカーネル --- バージョン 2.6.28 と 2.6.29 での新機能を紹介する
changelogやカーネルのソースをみるのもいいけど、こういう記事も便利か。(http://www.ibm.com/developerworks/jp/linux/library/l-kernel-advances/)でも、仕事でやるなら一次情報も大事なので、答え合わせとしてこういう記事を使う場合もあるかもよ。
_ memo:[Analysis] ソーシャル化するOSS開発者たち
gitの背景にある思想について語られている。中心を作らないやりかた、いつまで開発の中心になれるかは、その人のやっていることや、コードが決めるという考え。(http://www.atmarkit.co.jp/news/analysis/200904/14/git.html)
オープンソースに過大な夢をもっているというか、オープンという言葉にバラ色の感じている人がいるかもしれないけど、ソースコードが公開されていることは、誰もがオープンに受け入れられることを保証しない。そこでの統治や関わる人間たちについては、実世界と同じですよ。というか実世界の人がやっているんだから、魔法はないですよ。
大阪弁でというところの、ぼちぼち継続してやるしかないって感じかと思うのですが。
_ KVMの記事
(http://www.atmarkit.co.jp/flinux/rensai/kvm02/kvm02c.html)いやー、私にとって役に立ったのは、kvmが有効かどうかを確認する方法と、kvmで動かしているときのネットワーク設定についていろいろと書かれてあること
_ 不要PCをリサイクル
PCっていつの間にか増えるモノですよね。まあ、買わないと増えないのですけどね。で、いまはコンピューターを処分するにも大変なわけで、不要PCを無償でリサイクル処分してくれるパソコンファーム利用体験記 〜宅配便で送るだけの超簡単システム(http://pc.watch.impress.co.jp/docs/topic/feature/20090414_125316.html)は役立つ記事でしたよ。
2009-04-28 [長年日記]
_ depcomp
automakeの仕組みの一つで、自動的にライブラリの依存関係をチェックしてくれるしくみ。なんですが、googleで検索すると、足りない場合は、どっかからコピーしてこいとか書いてあることもありますが、automake -a で「パッケージ用の足りてない標準ファイルを追加する」っていうオプションで追加できるようですね。7.16 自動的な依存性追跡(http://www.bookshelf.jp/texi/automake-ja/automake-ja_7.html)
で、ふつーに謎なのは、この depcomp は automake のバージョンによって動きが変わったりしないのでしょうか。ざっと手元にあるdepcompの中身を眺めた限りでは、そういうことが起きるのかよくわかりませんでした。
2009-04-30 [長年日記]
_ WHOが新型インフルエンザの危機レベルを5に引き上げた。
豚インフルエンザ(swine flu)の世界的大流行(pandemic)の危機があるとのことなので、危機になったときに大丈夫なように対策をきめておかないとなあ。社会のレベル、企業のレベル、家庭のレベル、個人のレベルによって、基本は同じでもできることが、同じだったり違ったりする。
豚インフルエンザは、風評被害もでかねないため、より正確な、2009年型H1N1 と呼ぼうという話もある