2011年11月23日水曜日

C.I.A

情報セキュリティ系の授業を受けると必ず出てくるのがC.I.Aでしたのでメモします。

C.I.Aとは情報セキュリティの3大基本理念であるConfidentiality、Integrity、Availabilityの略で情報の機密性、完全性、可用性を維持すること。

C…Confidentiality(機密性)
情報のアクセスが認められたものが、その情報にアクセスできる状態を確保できること。
脅威:情報漏えい、なりすまし、著作権侵害。
I…Integrity(完全性)
情報が破壊、改ざん又は消去されていない状況を確保すること。
脅威:不正アクセス、誤作動。
A…Availability(可用性)
情報へのアクセスが認められたものが情報、および関連資産にアクセスできる状態を確保できること。
脅威:不正アクセス、DoS攻撃、ウイルス、天災。

最近はソニーや三菱重工などで情報漏えいの問題が相次いでおりもし問題が起きたときの影響は国家に関わるものであればものすごいものがあるかと思います。現在はまだ技術が進歩し続けているのでわかりませんがそれが落ち着いてきたときにシステムを構築する際、情報セキュリティを確保するために弁護士や医師のように法律的に免許がないとできないような形になるのではと思います。そう考えると堅苦しくなりそうで色々と面倒ですね。

2011年11月1日火曜日

ウォーターフォール×アジャイル


ゲーム開発プロジェクトマネジメント講座

http://www.square-enix.com/jp/info/library/dldata/PM/PM.pdf

スクエアエニックスのプロジェクトマネジメントのパワポが面白かったので紹介します。
共感できたのはウォーターフォールとアジャイルをハイブリッド型で使うことができるというところです。
個人的には大きなプロジェクトの全体をまとめるところはウォーターフォールでやって細かいモジュールレベルではアジャイルな感じでやればいいのではないかと思っています。
ウォーターフォールの中にアジャイルが内包されているようなイメージですが誰かこういうことを考えている人はいるのだろうか?

2011年10月29日土曜日

強い公平性と弱い公平性

強い公平性
実行過程において、ある時点以降、あるスレッドが無限回動作可能状態であるにも関わらず、一度も動作しない時、その実行過程は強い公平性(strong fairness)を満たさないという。
スレッド i が動作可能であることを ei で、動作することを ri で表せば、強い公平性を満たすことはLTLにより以下で表せる。
( []<> e1 -> []<> r1) ∧ ... ∧ ( []<> en -> []<> rn )

弱い公平性
実行過程において、ある時点以降、あるスレッドが常に動作可能状態であるにも関わらず、一度も動作しない時、その実行過程は弱い公平性(weak fairness)を満たさないという。
スレッド i が動作可能であることを ei で、動作することを ri で表せば、弱い公平性を満たすことはLTLにより以下で表せる。
[]<> ( e1 -> r1) ∧ ... ∧ []<> ( en -> rn )


いろいろでてくる

世の中色々新しいものが出てくるけれども基本的なことはあまり変わらないですね。 たとえばunixのコマンドとかhttpの仕様とかjavaの基本的なAPIとかは10年以上経っても変わってないですね。 最近は毎日新しい言語だとかフレームワークがでてきているけどこれらをすべて覚える時間は普通の人はないはずです。 だから変わらないけれども大事なことを押さえておくことはこれから生きる人にとっては重要ではないかと考えます。 けして古いものがいいと言っているのではなく基本的なことを知らないと新しいものを知る、作ることもできないと思うからです。

ただ変わらないけど大事なものを見極めるのは難しいとも思います。すでに完成された分野であればよいのですがまだ未発展の分野であればどう転がるかが展開が予測できないところがありますね。

2011年8月19日金曜日

PDFからテキストを抽出する方法

PDFからテキストの抽出はlinuxのほうが簡単でしたので記録しときます。
私の環境(Ubuntu 11.04)では英語のPDFを以下のようにすることでtxtファイルに変換できました。

1.pdftotextをインストールする。

>sudo apt-get install pdftotext

2.PDFファイルをテキストファイルに変換する。

>pdftotext [PDFファイル名]

3.txtファイルが作成されるので確認する。

4.改行コードをWindows(CR+LF)にしたい場合は以下のようにperlスクリプトを実行する。

>perl -p -e 's/\n/\r\n/' [変換前].txt > [変換後].txt

2011年7月31日日曜日

インターネットから自宅PCにリモートデスクトップで接続する方法

最近、デスクトップPCを購入したので外のインターネットからリモートデスクトップで利用できるように設定しましたので記録しておきます。

利用した環境は以下です。

自宅PC: Windows 7 Ultimate
外のPC: Windows 7 Ultimate
ルータ: PR-S300NE(DHCP設定)

1.自宅PCのリモートデスクトップ接続の設定

1-1.自宅PCがリモートデスクトップのホストとして機能するか確認します。
特にWindows7の場合はProfessional以上でないとホストとして機能しません。

1-2.自宅PCがリモートデスクトップのホストとして接続できるように設定します。
これはシステムプロパティからリモートタブを選択してリモートデスクトップが利用できるように設定します。
詳しくは以下を参照ください。

リモート デスクトップ接続: よく寄せられる質問
http://windows.microsoft.com/ja-JP/windows7/Remote-Desktop-Connection-frequently-asked-questions

1-3.IPアドレスを固定にします。
ローカルエリア接続のプロパティで現在設定されているプライベートIPアドレスを固定にして設定します。

1-4.電源の設定でコンピュータのスリープ状態にすることをなしとします。
これをしないといざ外に出てからつなごうとしたときにスリープしていて接続できないといったことになります。

2.ルータのポート解放の設定

色々方法はあると思いますが一般の家庭のインターネット環境ではグローバルIPが一つだけ割り当てられている環境となるため静的IPマスカレードの設定によりインターネット側からのアクセスを可能とします。
難しい話は無しとして私の環境(PR-S300NE)では以下のようにするとできました。

2-1.http://ntt.setup/にアクセスします。ユーザ名はuser,パスワードは0000で入れました。
2-2.詳細設定から静的IPマスカレードメニューをクリックする。
2-3.エントリ番号1の編集をクリックする。
2-4.変換対象プロトコルをTCP,変換対象ポートを3389,変換アドレスを1.で固定に指定したプライベートIPアドレスを指定して設定ボタンを押します。
2-5.保存ボタンを押します。

詳細は以下を参照ください。

PR-S300NE ポート開放の説明
http://www.akakagemaru.info/port/PR-S300NE.html

3.グローバルIPアドレスを確認する。

あなたのグローバルIPとホスト名を表示 ~テレビジネス ソフトウェア~
http://dog.tele.jp/lookup.php

上記URLよりグローバルIPアドレスが確認できます。
ついでにチェックしたいポート番号に3389を入力して先ほどポート解放したポートが有効かをチェックします。

4.インターネットからリモートデスクトップで接続する。

先ほど確認したグローバルIPアドレスからリモートデスクトップで接続します。
こちらでの環境では同じLANネットワーク内からではグローバルIPアドレスを指定しても接続できなく、外部からであれば接続できました。

おまけ.DynamicDNSを利用してグローバルIPアドレスとホスト名を紐付ける。

IPアドレスだと変更される場合や外に行ってから忘れる可能性があります。
DynamicDNSサービスを利用すると好きなホスト名でリモートデスクトップを利用することができます。
またDynamicDNSサービスへグローバルIPアドレスの更新を送信するソフトとしてはDiCEがあります。
私はDynamicDNSサービスはNo-IPを利用しました。

NO-IP ダイナミックドメイン登録方法
http://www.akakagemaru.info/port/ddns/noip.html

上記のように自宅PCに外部からリモートデスクトップでつなぐには結構な手間がかかりました。
一括でやってくれるところがあればよいです。
また上記の方法の場合は電源をつけたままなのでWoLで外部から電源を復帰させることができれば電源も節約できそうですね。これはまた次の機会に試してみたいと思います。

2011年6月25日土曜日

xspin4.3.0をUbuntu11.04で動かす方法

あるところでモデル検査器のspinを触る機会があったのですがあまりに動かすのに時間がかかったのでメモをします。
そんなに難しいことはしていないのですが探してもほとんど情報がないのは困りますね。。

1.tcl/tkをインストール

>sudo apt-get install tcl
>sudo apt-get install tk

2.yaccをインストール

>sudo apt-get install bison

3.spinをダウンロード、コンパイル

spin4.3.0のソースをダウンロード
>wget http://spinroot.com/spin/Src/spin430.tar.gz

解凍、コンパイル
>gunzip spin430.tar.gz
>tar -xf spin430.tar
>cd Spin/Src4.3.0
>make

コンパイルしてできたspinの実行ファイルを移動
>mv spin /usr/local/bin/

4.tclファイルをダウンロード

>wget http://spinroot.com/spin/Src/xspin430.tcl

5.tclファイルを修正

1行目の #!/bin/sh を #!/usr/bin/wish -f に修正

3行目の
exec wish c:/cygwin/bin/xspin -- $*
を以下のようにコメントアウト
#exec wish c:/cygwin/bin/xspin -- $*

6.xspin.tclを移動

>mv xspin430.tcl /usr/local/bin/xspin

7.xspinを実行

>xspin

2011年3月16日水曜日

計画停電確認サイト


計画停電確認サイト http://teden.net を作成しました。
県市町村名を入力欄にいれて検索ボタンを押すと一致する地名とグループ名を調べることができます。計画停電のグループ名が分からない場合はチェックいただけたらと思います。
なおデータは以下を利用させていただきました。
http://code.xenophy.com/?p=1361