ホーム » 2013 (ページ 9)
年別アーカイブ: 2013
福井高専50周年ロゴ
福井高専も、設立されで50周年。記念事業のロゴ案だそうです。
2段階認証への移行
最近は、何事にもクラウドシステムを活用するようになってきたが、 パスワードが破られてアカウントを悪用される事例も増えてきた。
これらの対応で 2段階認証を利用するサービスが増えてきている。
私も、一番依存している Google では、以前より便利に活用していた。 携帯にインストールした、認証システム用の ワンタイムパスワード生成アプリで作られた6ケタほどの数字を パスワードの後に入力する。
ワンタイムパスワードを別途入力するため、携帯などのアプリでは、 対応できない場合もある。このための機能として、アプリ固有のパスワードも生 成でき、ソフトによっては、これを入力することになる。 これにより、クラックされてもそのアプリだけ…といったように クラックされる範囲を拡大することを防ぐことができる。
Facebook/Microsoft/Evernoteも2段階認証へ
このGoogleでの2段階認証は、他のWebサービスにも拡大しており、 今回、Facebook / Microsoft / Evernote は、2段階認証の方法も ほぼ同じで、ワンタイムパスワード生成もGoogleのアプリがそのまま使える。
ただ、気になるのが、Google や Evernoteは、携帯を紛失し ワンタイムパスワードのアプリが使えなくなることを想定し、 バックアップコード(10進16桁のワンタイムパスワードが4個)を 発行してくれる。でも、FacebookやMicrosoftでは、 このバックアップコード発行の機能がない。
どちらにしろ、携帯を無くしたら、色々な意味で地獄を見そうな雰囲気…
2013年6月30日(第327回)
- まるよし Train Pops ~ 国語と遊ぼう! 第13便 「手紙」
- 季節の話題 セミ、海、夏・・・
- 国際化について
- スーパームーンの話
担当:前田勝(4EI)、松島(2C)、山野(2C)、西(教員)
Optimal Guardをインストール
担任クラスの学生さんの就職先のOPTiMさんより、 ソフトウェアが送付されてきた。 その学生さんが開発に携わった、 遠隔操作系マルウェア対策ソフト Optimal Guard が 発売されたということで寄贈して頂けたようだ。
といっても、私自身は研究室では Mac OS ばかりなので、 自宅PCにて試してみる。学内だと、遠隔操作系マルウェアの 心配な人も少ないので、みんなの先輩が作ったソフトたぞ… ということで、興味のある学生さんにも使ってもらう。
とはいえ自宅PCは、ウィルス対策ソフトも入れてあるし、 子どもも同じパソコンを使うとはいえ、コンテンツフィルタを しかけてあることから、遠隔操作系マルウエアにかかる 心配はない…はず…
開発したOBに、Facebook で試してみると伝えたら、 ガンガン使ってくださいと言われ、バグ出ししたろか… とも思うけど、その前にマルウェアにひっかかってないがな…
ということで、インストールしたとはいえ、何も起こらないのであった…….
リストを用いたスタックと待ち行列
先週の授業で、リストへの挿入・追加処理について説明したので、 今日はその応用で、リストを用いたスタックと待ち行列(Queue)の説明を行う。 また、今週は公開授業週間ということで、他の先生の見学もあって、ちょっと緊張。
スタック
配列を用いた、LIFO(Last In First Out)=スタックであれば、一般的に 以下のようなコードになる。
int stack[ 100 ] ; int sp = 0 ; void push( int x ) { stack[ sp++ ] = x ; } int pop() { return stack[ --sp ] ; }
しかし、この方法では、配列サイズ以上のデータは保存できない。 これをリストを使うことでサイズを気にしないスタックを実現できる。
struct List* stack = NULL ; void push( int x ) { stack = cons( x , stack ) ; } int pop() { int ans = stack->data ; struct List* del = stack ; stack = stack->next ; free( del ) ; return ans ; }
キュー
待ち行列(Queue)は、FIFO(First In First Out)を配列で実装する場合、 一般的には、以下のようになる。ただしエラー対策は記載していないので、要注意。
int que[ 100 ] ; int wp = 0 ; // 書き込み用ポインタ int rp = 0 ; // 読み出し用ポインタ void put( int x ) { que[ wp ] = x ; wp = (wp + 1) % 100 ; // 循環させる } int get() { int ans = que[ rp ] ; rp = (rp + 1) % 100 ; // 循環させる return ans ; }
このような配列の領域を使い切ったら、先頭から再利用するような方法は、 リングバッファなどと呼ばれる。 このような待ち行列は、キー入力バッファや、プロセス待ち行列などに よく利用される。しかし、このプログラムでも、配列サイズ以上の データは保存できないので、リストを用いる。
struct List* top = NULL ; struct List** tail = &top ; void put( int x ) { *tail = cons( x , NULL ) ; tail = &( (*tail)->next ) ; } int get() { int ans = top->data ; struct List* del = top ; top = top->next ; free( del ) ; return ans ; }
ただし、このプログラムは、常に1件以上データがリストに入っている場合は 問題がないが、get() を実行して、データ件数が0件になると、tail の指す先が おかしくなるので注意が必要。
また、待ち行列では、先頭ポインタと末尾ポインタの2つが必要であるが、 リスト構造の末尾のNULLを、先頭データを指すようにする循環リストと する場合も多い。特に、プロセス待ち行列を実装するときのラウンドロビン方式 などでは、末尾まで処理が及んだ次は先頭に戻って処理を行うため、 循環リストは都合がいい。
OSの歴史と木構造ファイル
前期の後半ということで、OSやファイル処理の話をするため、 まず今週はその導入。OSのありがたみを分ってもらうために、 OSの歴史と木構造ファイルとディレクトリ・PATHについて説明を行う。
OSの歴史
OSの歴史ということで、第1世代あたりでは、OSでの共通機能の提供という 概念がないことを説明し、OSに近いといっても機械語モニターといった程度であることを紹介。 コンピュータの普及と共に、他のコンピュータでも同じようにプログラムが動くようにしたいため、 OSが発達していった。
この後は、汎用機のOSの話は身近でもないし、パソコンのOSで説明を行う。
パソコンは、最初に Intel 4004 による4ビットコンピュータからはじまっていくが、 普及は、Intel 8008 の8bitコンピュータあたりが最初(1970年代)。 このころのOSは、パソコンの共通の使い方の提供という点では、BASICが 開発言語でもありOSでもあった。同じころに Apple社は 6502 を利用してAppleⅡなどが 発表されていた。
処理の増加と共に、1980年頃に16bitコンピュータ8086を使ったパソコンが 作られ、これのOSとして、Microsoft社が創業しMS-DOSが作られる。 同じころに、Apple社は68000を使ったMacintoshを発表している。 Macintoshでは、マウスとアイコンによるGUI(Graphical User Interface)で、 便利であったことから、Microsoft社が Windows を開発する。 このころのコンピュータは、 シングルタスクシングルユーザのことしか考えられていなかった。
WindowsやMacintoshのGUIな環境であたが、グラフィック処理の複雑化と共に、 32bitコンピュータへと性能が上がっていく。この中で、1つのコンピュータを 複数の人で複数の処理を行うマルチユーザ・マルチタスクが必要となる。 このころには、安全にプログラムを動かすためにメモリ保護機能などを持った、 32bitコンピュータ Intel 80386 , MC68020 などから、近代のOSが普及していく。 Windowsは、NT,2000,Xp,7,8 と発達していく。
一方、1970年代には、汎用機のOSをミニコンで動かそうということで、 Multicsの影響を受けながら、マルチユーザ・マルチタスクのOSである、 unix が開発されていく。これらは、1990年代ころのインターネットの普及と共に、 オープンソースの考え方の元で開発された Linux へと続いていく。
ファイルとディレクトリとPATH
前に上げた、MS-DOSの前身である 8bit OSの時代では、コンピュータの中で 扱うファイルも少なかったので、ディレクトリという概念が扱えるOSは、 少なかった。しかし、unix での木構造型ファイルシステムを引継ぎ、 ディレクトリが使われるようになった。これにより、用途別にファイルを 分類管理できるようになった。
この木構造型ファイルシステムでは、ファイルの場所を明記するために、 ディレクト構造の根っこのルートディレクトリから、ディレクトリ名を書き連ねて 場所を示す。ただし、MS-DOS/Windows では、ディレクトリ名区切りは、 バックスラッシュ(日本では¥記号)を使う。Unix 系では、スラッシュを用いる。 この根っこからの経路(PATH)を指定する方式は、絶対PATHと呼ばれる。
しかし、絶対PATHは、深いディレクトリ構造では、PATH表記が長くなり、 場所を簡潔に記載したい場合がある。この場合には、現在注目している 起点(カレントディレクトリ)からの経路を示す方式がとられる。 この方式は、相対PATHと呼ばれる。
相対PATHでは、近隣のディレクトリを簡潔に示すために、 一つ上のディレクトリ(親ディレクトリ)を示すために、「..」が使われる。 また、注目ディレクトリを示す「.」も使われる。
2013年6月23日(第326回)
- まるよし Train Pops ~ 国語と遊ぼう! 第12便 「一人称」
- 五味が答える!~かかってこいや~ 第1回
ゲスト:福井高専OB 大野様、高見様
担当:前田勝(4EI)、五味(教員)