ラベル 日記 の投稿を表示しています。 すべての投稿を表示
ラベル 日記 の投稿を表示しています。 すべての投稿を表示

2014年4月10日木曜日

DBスペシャリスト試験勉強ログ(あと10日)

DBスペシャリスト受けます。
このシリーズだらだらと続きまーす。


今日もコレ。
平成23年度 データベーススペシャリスト 合格教本 (情報処理技術者試験)平成23年度 データベーススペシャリスト 合格教本 (情報処理技術者試験)
山平 耕作

技術評論社
売り上げランキング : 207557

Amazonで詳しく見る

13.午後Iの問題研究

13.1.午後Iの出題傾向

3問中2問選ぶ感じみたい。

13.2.データベース基礎理論

問1
 (1)×
 (2)×
問2
 (1)×
 (2)×
 (3)△
 (4)×
問3
 (1)○
 (2)○○○○
 (3)×

20分かかった。
めっちゃむずい。

13.3.データベース設計


問1
 (1)○○○
 (2)××
 (3)×
問2
 (1)○○
 (2)○○
 (3)○○

22分
勘違いして問1撃沈




このままじゃやばいなー

復習すべき内容
・正規形整理
 第○正規形が何かとか覚えておりませぬ。

注意すべき内容
・テーブル構成をこたえるときは主キー、外部キーとかの記入を忘れないこと。

2014年4月8日火曜日

DBスペシャリスト試験勉強ログ(試験まであと12日)

DBスペシャリスト受けます。
ネスペ同様にだらだらと勉強内容メモっていきます。

教材はコレ。
平成23年度 データベーススペシャリスト 合格教本 (情報処理技術者試験)平成23年度 データベーススペシャリスト 合格教本 (情報処理技術者試験)
山平 耕作

技術評論社
売り上げランキング : 207557

Amazonで詳しく見る


9.障害回復機能

9.3.ロギング

章末問題 4/6(66%) やばす。

10.インデックスとアクセス手順

10.1.インデックス

10.1.1.B+Treeインデックス

・いちばん使われてるやつ
・B-Treeインデックスを改良したもの
・バランス木構造
http://blog.h13i32maru.jp/entry/2012/07/01/000000 分かりやすい

・B木とB+木の違い
 ・B木はルートノードからリーフノードまでのすべてのページにデータへのポインタを持つ
  連続したデータを読み取る場合に効率的ではない
 ・B+木はデータへのポインタをリーフノードのみに集約。さらにリーフノード間のポインタを持つことで範囲検索時のインデックス利用効率を向上。
  B+木はリーフノードのその他のノードではっきりと役割が違う。ルートや中間ノードをランダムアクセスのための索引組(IndexSet)と呼び、リーフノードをデータアクセスのための順序組(sequence set)と呼ぶ。

10.1.2.ハッシュインデックス

・使われてるのか?これ。

10.1.3.ビットマップインデックス

・キー値の重複が非常に多い場合に有効なIndex
・リーフ以外はB+木と同じ構造を持つ。
・キー値を持つ行を1、持たない行を0としてビットマップを持つ

10.1.4.リンクインデックス

・行同士のリンクを高速に処理するためのインデックス
・各行に対してインデックス情報が付加される。

10.1.5.結合インデックス

・結合キーで検索するときに検索を高速に行うためのインデックス

10.1.6.その他のインデックス

・n-gramインデックス
 ・全文検索用インデックス。gram=文字
・四分木インデックス
 ・地図などの空間情報を効率よく検索するためのインデックス。へぇ。
・UB木インデックス
 ・B+木を改良したもの。複数列のインデックスの場合に、どの列に対しても同じ効果が得られるように改良。

10.2.インデックスの効果と弊害

メリット

・I/O削減とCPU時間の削減
 これが一番求める機能だね。
・キー値順の行データ取得によるソート処理削減
 なるほど。確かに。

デメリット

・大量データへのランダムアクセスによるI/Oの増加
 インデックス経由で参照する行データはランダムアクセス。(非クラスタインデックスの場合)
・データ更新時のオーバーヘッド増加

10.3.クラスタインデックス

キー値の近い行が同じもしくは近いデータページに配置されるよう制御してくれる機構を持つインデックスのこと。

10.4.探索条件と複数列インデックスのサーチ範囲

B+木インデックスなどで複数列がキー項目になっている場合、探索条件(Where)の順番によってサーチ範囲に大きな違いが出る。

10.5.アクセス手順

10.5.1.表のアクセス方法

・インデックスを用いないアクセス方法(表スキャン)
 全ての行に順次アクセスする
 全ての行を検索する場合や、表に対して検索行数の比率が多い場合に有効。
・インデックスを利用した行データへのアクセス方法(インデックススキャン)
 表中のごく一部を検索する場合に使う。
・インデックスだけを参照するアクセス方法(キースキャン)
 参照する必要のある列がインデックスを構成する列の中に組み込まれている場合は
 行データを参照しなくとも目的の値を取得できる。
・複数のインデックスを利用するアクセス方法(AND)
 それぞれのインデックス利用結果を満たす行(ROWID)の集合を作る。
 当然1つの複数行インデックスを使った方が効率は上。
・複数のインデックスを利用するアクセス方法(OR)
 それぞれのインデックス結果の集合和を使用。
・複数のビットマップインデックスを利用するアクセス方法
 それぞれのインデックス結果のビットマップ同士をAND演算もしくはOR演算する。
・ビットマップインデックスとB+インデックスを利用するアクセス方法
・その他のアクセス方法
 一度検索した結果を作業表に格納して再度その表を検索する場合がある。(作業表スキャン)

10.5.2.表の結合方法

・入れ子ループ結合(Nested-Loop Join)
 一方の表(外表)を検索して1行得られるごとに、その行に対して他方(内表)の行を検索する。
 内表に対してインデックスが効かないと非常に大きな負荷になる。
・併合結合(Merge Join)
 内表にインデックスがなくても利用可能。双方の表の結合キーを突き合わせながら1つずつ比較していく。
 それぞれの表のキー項目ソート処理と作業表の作成が必要となる。
・ハッシュ結合(Hash Join)
 内表からハッシュ表を作成してインデックスの代わりに用いる入れ子ループ結合。

章末問題 4/5(80%)正解


11.分散データベースシステム

11.1.分散データベースシステムとは

分散システム:地理的、論理的に分散した複数のシステムが協調して働くシステム
 分散データベース:複数のデータベースを結合し、1つのデータベースのように見せるシステム
 主な利点は危険分散と負荷分散

・危険分散
 災害や災害時に影響を局所化する。
・負荷分散
 複数マシンを使うため負荷分散が可能。またスケーラビリティも持つ。

11.2.分散データベースシステムにおける透過性

分散透過性:利用者に複数のシステムから構成されていることを意識させないこと
  ・アクセス透過性
   どこのサイトのデータにも同じ手法でアクセスできること
  ・位置透過性
   データの存在するサイトを知らなくてもアクセスできること
  ・重複透過性
   複数サイトに重複していたりしてもそれを意識させないこと。
  ・分割透過性
   1つの表が複数サイトに分散されていてもそれを意識させないこと。
  ・移動透過性
   表を格納しているサイトを変更してもそれを意識させないこと
  ・並行透過性
   複数サイトから同時に操作できること
  ・障害透過性
   いずれかの要素に障害が発生してもそれを隠ぺいできること
  ・規模透過性
   システムの規模を変更できること

  多いわw

11.3.分散データベースでの票の結合方法

複数サイトに存在している表の結合が必要になる場合は、通信負荷も考慮する必要がある。

・セミ結合(Semi Join)
 通信負荷を小さくするための結合方法。
 結合結果を射影して他サイトへ送り、さらに結合した結果を受け取る。
 2度結合が必要だが通信量が減る。
・分散入れ子ループ結合
 外表の行を1行ずつ送り、受け取った1行ずつに対して結合を行う。
・分散併合結合
 結合キーのソート結果を他方に転送し、結合を始める方法
・分散ハッシュ結合
 行数が少ない方の検索結果を転送し、ハッシュ表を作成。それを用いてハッシュ結合を行う。

 なんとなく雰囲気は分かった。

11.4.2相コミットメントプロトコル

サイト間での矛盾を防ぐ必要がある。
 コミット準備フェーズ→コミット指示フェーズの2段階。
 セキュアになったあとも通信障害などがあるとサイト間の一貫性を保証することはできない。
 サイト内のトランザクションをサブトランザクションと呼ぶ。
 サイト全体のトランザクションをグローバルトランザクションと呼ぶ。

 なんとなくどっかで読んだことあるなぁ。

11.5.データの分散配置

特定の行ごとで分割したり、列で分割したりする。
 通信のオーバーヘッドや負荷、応答時間などを考慮して分割方法を工夫する必要がある。

 並列DBエンジンのパーティショニングなども分散配置の一種。
  ・キーレンジ分割
   特定のキー範囲ごとに分割
  ・ハッシュ分割
   キーの値をハッシュ化して格納領域を決定
  ・ラウンドロビン方式
   順番に格納場所を変える

章末問題 6/6(100%)

12.応用技術他

12.1.レプリケーション

レプリカ(複製)を持ち、更新情報を自動的に反映する処理をレプリケーションという。
  ・複数のDBシステム間で同じデータを使用したい場合
  ・1つのDBシステム内でオンライン業務とバッチ業務を同時に実行したい場合
  ・分散システムの場合応答西濃をよくするために複数サイトにレプリカを持つ場合
   など。
 分散システムの場合は下記2つの更新方法がある。
  ・同一トランザクションで更新する同期更新(同期レプリケーション)
  ・トランザクション外で遅延更新する非同期更新(非同期レプリケーション)
 一般的には重複透過性のために同期更新を行う。

12.2.OLAP (OnLine Analytical Processing) :多次元分析

さまざまな集計データを迅速に求め、データを分析する処理のこと。
 OLAP = 動的な多次元分析処理機能
 多次元分析専用のデータベースとして多次元データベースがある。
 しかし主流はRDBを用いた多次元解析。
 ・多次元DBを用いたもの = MOLAP(Multi-dimensional OnLine Analytical Processing)
 ・RDBを用いたもの = ROLAP(Relational OnLine~)

 ・多次元解析の主な手法
  ・スライシング
   2つの軸を選択して特定の面だけを参照する
  ・ダイシング(サイコロ)
   サイコロを転がすように参照するデータの軸を変える
  ・ドリルダウン
   集約データ→詳細データ→より詳細データとたどる方法
  ・ロールアップ
   ドリルダウンの逆

12.3.データ発掘(データマイニング)

大量に蓄積されたデータからデータ間の規則を見つけだすこと。
 評価指標には規則信頼度や規則支持度がある。
 ・規則信頼度=条件部の条件を満たす件数:結論部の条件を満たす件数
 ・規則支持度=全件数:条件部と結論部両方の条件を満たす件数
  どちらも高いものがよりよい規則。

12.4.データウェアハウス

業務に必要なデータだけでなく、有効活用できるデータを格納しようとする概念。
  ・主題指向
   業務中心のデータではなくデータ中心でデータを格納する
  ・統合
   データ体系を統一する
    名称、コード、単位など
  ・時系列
   過去から最新のデータまで蓄積する
  ・不変性
   参照処理中心(データを更新しない)
  
 データウェアハウスは既存の基幹システムと共存し、戦略情報としてデータを活用するために用いる。

 なるほどなぁ。

12.5.メタデータ、データ辞書、リポジトリ

データに関するデータとそれを保持する仕組みとか。

12.6.ストアドプロシージャ

一連の処理をあらかじめ定義してDBMSに登録しておく。

12.7.オブジェクト指向データベース

オブジェクト指向を取り入れたデータベース
  ・オブジェクト指向データベース
   プログラミングのオブジェクト指向と同じっぽい。
  ・オブジェクト関係データベース
   RDBをオブジェクト指向っぽく拡張したもの。
   うん、よくわからん。

12.8.XML

タグによるマークアップ(情報の付加)を行うことで下記が可能
  ・文書を論理的な要素に分割(文書構造)
  ・各要素に行うべき処理を指定(見せ方)

12.9.ベンチマーク

TPCが制定しているベンチマーク
  TPC:Transaction processing Performance Council
 システム全体としての性能を評価するもの。
  ・TPC-C
   オンライントランザクション処理向けのベンチマーク
  ・TPC-H,TPC-R
   オンライン分析処理向けのベンチアーク
  

12.10.Unicode

世界中のすべての文字を1つの文字コード体系で表現するために制定。

章末問題 7/9(77%)



どっかで聞いたことあるようなことばっかやけど多すぎ。
しんどー。


2013年10月19日土曜日

ネスペ試験まで あと1日

ネットワークスペシャリスト試験まであと1日。

なんかもうどうにもならんね。
雰囲気で解くしかないわ。

今日調べたこと

OSPF

ルーティングプロトコルの1つ
 コストが最小のルートをたどる。
 http://www.atmarkit.co.jp/ait/articles/0111/06/news002.html

ネットワークのQoS(Quality of Service)

・アドミッション制御
 通信前にリソースを要求し、確保状況に応じて通信を制御する
・シェービング
 パケットの送出間隔を調整することで速度超過しないよう調整する。
・ポリシング
 トラフィックが多すぎるときに破棄する。
 破棄するとTCPの輻輳制御などで調整される。
・優先制御
 フレームの種類や宛先によって優先度を変える。

CIDR(Classless Inter-Domain Routing)

さいだー
 複数のサブネットをまとめて1つのスーパーネットにするらしいよ。
 https://www.nic.ad.jp/ja/basics/terms/cidr.html

 クラスやサブネットを一旦忘れてIPの共通部分を取り出す。
 共通部分がネットワーク番号、そこまでの長さがサブネット。

DNSキャッシュポイズニング

DNSサーバが反復問い合わせを実行しているときにタイミング良く攻撃者が偽のAレコードを送ってくるような攻撃。
 間違ったレコードが登録されるので正規じゃないホストに誘導されるようになる。

リバースプロキシ

インターネット側から社内サーバにアクセスする際に中継するサーバ。
 社内からインタネット方向はフォワードプロキシ。

システムの信頼性向上(耐障害性設計)

フェールセーフ(安全側故障)
  故障発生時、あらかじめ指定した安全な状態にシステムを保つ
 フェールソフト(機能縮退)
  故障発生時、あらかじめ用意した縮小範囲でのサービスを提供する
 フェールオーバー(冗長性故障)
  1個故障しても他ので稼働できるように。
 フールプルーフ(誤操作対応)
  どーしたって間違えるのが人間。間違えても致命的にならないような設計。
 フォールトマスキング
  故障発生時、影響が外に出ないように訂正すること。
 フォールトアボイダンス
  故障発生時ではなく、発生しないよう信頼性を高める

 別に英語考えれば分かるね。

デュアルライセンス

1つのソフトに2種類のラインセンスを設定。
 利用者はそのうち1つを選択して使う。
 もっと増えるとマルチライセンスって呼んだり。

CG

テクスチャマッピング(Texture Mapping)
  モデルの表面に画像を貼る。
 メタボール(Metaball)
  物体を球や楕円の集合としてモデル化する技法
 ラジオシティ(Radiosity)
  光の相互反射を考慮して拡散反射面の輝度を決める
 レイトレーシング(Ray Tracing)
  光の経路を計算して反射や透過を表現する技法

SOA(Service Oriented Architecture)
BPR(Business Process Re-engineering)
SLA(Service Level Agreement)
ERP(Enterprise Resource Planning)


ZigBee(IEEE802.15.4)

短距離無線通信の規格。安価で省電力。
 多数の端末と通信でき、大規模なメッシュ状のトポロジを形成できる。
 へー。

OFDM(Orthogonal Frequency Division Multiplexing)

高速無線通信の多重化。
 なげーよ。覚えられん。

FDDI(Fiber Distributed Data Interface)

=トークンパッシング

リンクアグリケーション

スイッチングハブの複数のポートを束ねる。

BGP-4

自立システム間を繋ぐ。

RSVP(Resource reSerVation Protocol)

ホスト間の伝送帯域を管理するためのプロトコル。
 わからん。

クラスDのIPアドレス

マルチキャストアドレスを割り振る場合に使う。

SAN(Storage Area Network)

サーバとストレージを結ぶネットワーク
 FC-SANとIP-SANがある。

FC-SAN(Fiber Chanel SAN)

ファイバチャネルを使う。早い。
 ファイバチャネルが何かは知らない。

IP-SAN

TCP/IPで送受信するSAN
 FCより遅いけど安い。
 最近よくつかわれてるらしい。

iSCSI

SCSIっていう規格をIPに載せられるようにした規格。
 IP-SANで使う。

仮想化

ハイパーバイザ型⇔ホスト型


2013年10月18日金曜日

ネスペ試験まで あと2日

ネットワークスペシャリスト試験まであと2日。

今日は振休もらってお休みなので引き続き勉強。
まだまだ覚えること多い。
しかも最初の方に覚えたのもう忘れてきてるし。
どこまで追い込めるか・・・。

あ、この記事がこのブログで100本目の記事みたいです。パチパチ。

今日覚えたこと

KVMスイッチ

1組のキーボード、ディスプレイ、マウスで複数のコンピュータを切り替えて操作できるようにするやつ。そーいや会社のサーバールームにもあったな。
 http://e-words.jp/w/KVME382B9E382A4E38383E38381.html

 KVMって Keyboard Video Mouseかww

リモートKVMスイッチ

KVMスイッチをリモートで扱えるようにしたやつ。

VRRP(Virtual Router Redundancy Protocol)

L3SWをL3レベルで冗長化する仕組み。
 (L2レベルにはSTPやRSTPがある)

 複数のルータを論理的に1台に見せる技術
 複数台のルータで共有する仮想IPと仮想MACを持つ。
 http://www.itbook.info/network/vrrp2.html

 VRRPとSTPを併用した冗長化構成
 http://itpro.nikkeibp.co.jp/article/COLUMN/20110118/356221/?ST=network&P=2
 これわかりやすいな

 すっげー。

 別の冗長化方法にSTACK接続ってのがあるらしい。

STACK接続

http://itpro.nikkeibp.co.jp/article/COLUMN/20110118/356221/
 なるほど、わからん。
 

STP(Spanning Tree Protocol)

数日前もまとめた気がするけど書いとこう
 http://www.infraexpert.com/study/stpz1.html

 レイヤ2で動作するプロトコル。

 使い道は2つ
 ・ループを防ぐ
 ・障害時に迂回路に自動的に切り替える(冗長構成)

 やってることはシンプルで
 ・BPDU(Bridge Protocol Data Unit)をやりとりする。
 ・ループが起こる不要なポートを判断して閉じる(ブロッキング)

STPで決まるポートの役割

・ルートポート(RP)
   ルートブリッジに一番近いポート。
   非ルートブリッジごとに1個選出される。
   ルートブリッジには存在しないので注意!!
 ・指定ポート(DP)
   各リンクのうち、ルートブリッジに近い側が指定ポートになる。
   ルートブリッジの全ポートは指定ポートになる。
   
 ・非指定ポート(NDP)
   RP,DPどちらにもならなかったポートが非指定ポートとなる。
   これはブロッキングされる。

STPの流れ

①ルートブリッジの決定
  ブリッジIDの低いやつ
  ブリッジID = ブリッジプライオリティ → MACアドレス

②ルートポートの決定
  非ルートブリッジのルートブリッジに一番近いポート

③指定ポートの決定
  各リンクのルートに近いほう

④非指定ポートの決定

細かい計算はいいや。

RSTP(Rapid STP)

よく調べてないけど早いSTP。
 ・STPにあった非指定ポートは存在しない
 ・代わりに代替ポートとバックアップポートってのがあるらしい。

スイッチングハブ

L2レベルでのフレーム交換を行う。
 ・ブロードキャストフレームを受け取ると送信元MACと受け取ったポートを学習する
 ・ブロードキャストフレームはすべてのポートに転送する

フレームの種類

ブロードキャストフレーム

・L2SWによって転送される
 ・この範囲をブロードキャストドメインっていう
 ・使われるあて先MACは全部1

マルチキャストフレーム

・MACの先頭バイトの末尾が1のフレーム
 ・ネットワーク機器間の通信など、使い道が決まってるらしい。
 ・STPでBPDUを送るのに使ったりとか。
 http://www.k5.dion.ne.jp/~netech/ethertr/ethertr4.html
 ・ブロードキャストフレームと似てるけど転送されないのね。

ユニキャストフレーム

・単一のMAC宛のフレーム
 ・L2SWは学習済みならそこに送る
 ・受け取ったポートと送出するポートが同じなら破棄する(転送必要なし)
 ・学習してないなら他の全ポートに転送する

 ⇒http://okwave.jp/qa/q1120384.html
 既定では学習していないユニキャストフレーム(Unknown Unicast Frame)は
 フラッディングしない。らしい。
 ふむふむ。
 でもそもそもシンプルなブリッジは学習しないよね。
 現実のL2SWは設定できるけどネスペの試験はどっちなんだろ。
 まぁちゃんと読めばわかるように書いてあるか。


ネットワーク機器の整理

大体わかったけど似たような言葉が多くてたまに迷う。

・L2での転送はフレーム内容ずっと一緒。
 ブリッジによって中継されるか破棄されるかだけだと思う。
・L3での転送はパケットやフレーム内容が書き換えられていく
 ここの整理がまだついてない。

リピータ

L1(物理層)で延長する装置

 ・1:1で接続
 ・入力信号を増幅や整形して出力する装置

ハブ/リピータハブ

リピータが複数くっついたものと考えればいい

 ・1箇所に入った信号は他の全ポートに出力される

ブリッジ/ラーニングブリッジ

L2(データリンク層)で延長する装置

 ・フレームを受け取り、新たなフレームとして送出する
 ・FCSをチェックし壊れたフレームは捨てる
 ・これで繋ぐとブロードキャストドメインは広がる
 ・MACを学習する(ラーニングブリッジ)
 ・学習によって無駄なフレームを転送しないようになる

スイッチングハブ/L2スイッチ

ラーニングブリッジが複数くっついたものと考えればいい

 ・フレームを受け取ると送信元MACを学習する
 ・ブロードキャストフレームを受け取ると他の全ポートに転送する
 ・学習してないMAC宛のユニキャストフレームを受け取ると全ポートに転送する

ルーター/L3スイッチ

L3(ネットワーク層)でパケットを転送する装置

 ・パケットを異なるセグメントのネットワーク間で中継する。
 ・ブロードキャストドメインは広がらない
 ・IPベースでの転送を行う

ここで疑問

Q.単にブリッジというとラーニングブリッジのこと?
 ていうか学習しないブリッジってあるの?

A.学習しないってこともできるのね。
 http://www.rtpro.yamaha.co.jp/RT/manual/rt-common/bridge_interface/bridge_interface_bridge_learning.html
 まぁ基本的にラーニングするものと考えてよさそう

Q.L2スイッチというとブリッジではなくスイッチングハブのこと?

A.スイッチングハブは広い意味っぽい。
 ハブ:いっぱいつながるやつ
 スイッチングハブ:スイッチングできるハブ
 L2レベルでスイッチングするハブ:L2SW
 L3レベルでスイッチングするハブ:L3SW

 なのでスイッチングハブっていわれたらL2/L3どっちだ?って考えよう。
 http://okwave.jp/qa/q2464842.html

 ポートが2個か複数かはどーでもいいや。

Q.SWってかかれてたら何のこと?

A..たぶんL2SW。
 今までやった問題を見る限りL3SWは明示的にL3って書いてくれてる。

ITIL(Information Technology Infrastructure Library)

ITサービスマネジメントシステムのなんちゃら
 http://ja.wikipedia.org/wiki/Information_Technology_Infrastructure_Library
 へぇ。

ARP(Address Resolution Protocol)

IPからMACを取得するためのプロトコル
 ・レイヤ2で動作
 ・ARP要求はブロードキャストフレームとして送られる
 ・ARP応答はユニキャストフレームとして返ってくる

RARP(Reverse Address Resolution Protocol)

ARPの逆。MACからIP取得。
 組み込み機器に特定のIPを指定したいときとかに使うらしい。
 まー試験には出そうにないねこれは。

ICMP(Internet Control Message Protocol)

L3でIPプロトコルの状態を通知するためのプロトコル。
 http://www.infraexpert.com/study/tcpip4.html 
 ・エコー要求
 ・エコー応答
 ・到達不能
 ・リダイレクト
 ・時間切れ
 などなど。

 pingとかtracertとかで使われてる。
 ICMPエコー要求はpingの確認してると思えばいいな。

コンティンジェンシプラン

偶発的なできごとに対応するための計画
 なんだこれ。初めて聞いた。

まとめ

調べる必要のある言葉はだいぶ減ってきた。
あとは過去問解きまくるぐらいかな。

2013年10月17日木曜日

ネスペ試験まで あと3日

ネットワークスペシャリスト試験まであと3日。

がんばりましょ。

今日覚えたこと

IEEE802.1X(Port-Based Network Access Control)

認証VLAN
 http://www.infraexpert.com/study/dot1x.htm
 http://www.infraexpert.com/study/wireless14.html
 ・EAP(Extensible Authentication Protocol)
  802.1Xでの認証に利用されるプロトコル

 ・接続→EAP認証→接続完了の流れ

PPP(Point to Point Protocol)

http://ascii.jp/elem/000/000/337/337668/
 2点間を結ぶためのプロトコル
 純粋なデータリンク層(イーサネットはデータリンク層+ちょっと物理層)
 認証はPAPとCHAP

PAP(Password Authentication Protocol)

PPPで使われる。
 ID、パスワードを暗号化しないで流す。
 ゆるゆる。

CHAP(Challenge Handshake Authentication Protocol)

これもPPPで使われる。
 チャレンジ・レスポンス方式での認証を行う。
 送られてきたチャレンジに対して特定の処理をしてレスポンスを作る。
 それを使って認証する方式。毎回パスワードが変わる感じ。
 PAPよりいい感じ。

PPPoE(PPP over Ethernet)

http://itpro.nikkeibp.co.jp/article/COLUMN/20060424/236003/
 Ethernetは認証の仕組みもってない。
 そんなEthernet上でPPPの認証を使えるようにするためのもの。
 PPPフレームにPPPoEヘッダを付け、それをイーサネットフレームで挟んで通信する。

EAP認証(Extensible Authentication Protocol)

PPPを拡張した認証方式。
 いろんな認証方法がある。

 ・EAP-MD5
   ID,パスワードによる認証方式。無線LANでは安全じゃない。
 ・EAP-TLS(Transport Layer Security)
   デジタル証明書による認証。USBトークンなどと組み合わせる場合が多い。無線LANでも大丈夫。
 ・PEAP(Protected EAP)
   ID,パスワードによる認証。SSLと同じ暗号化技術を利用。認証行程も暗号化されている。
   認証サーバにデジタル電子証明書が必要。だけど無線LANでも安全。
 ・LEAP(Lightweight EAP)
   CISCOの何か。
 ・EAP-TTLS(EAP-Tunneled Transport Layer Security)
   FuncSoftwareの何か。

EAP-TLS(Transport Layer Security)

 無線LANの認証とかに使われる。

 イメージはこんな感じ↓。
[PC] ---(EAPOL)--- [無線AP] ---(RADIUS)--- [認証サーバ]
 
 ・PCと無線AP間はEAPOLフレームとして送られる。
  EAPOLはレイヤ2
 ・無線APと認証サーバ間はRADIUSパケットとして送られる。

 ・無線APが認証しているわけではない。変換してスルーしてるだけ。

EAPOL(EAP over LANs)

http://www.infraexpert.com/study/dot1x.htm
 EAPをレイヤ2のフレームに入れてやりとりするためのプロトコル
 無線APとPC間などでやりとりする。

RADIUS(Remote Authentication Dial-In User Service)

EAPをレイヤ3のパケットに入れてやりとりするためのプロトコル
 無線APと認証サーバー間でやりとりする。

VPN-GW(Virtual Private Network GateWay)

外部からVPN通信をする装置

IEEE802.11i

無線LANでセキュリティを確保するための標準仕様。
 IEEE802.11a/b/gで利用可能
 
 ・暗号化方式
  TKIP(WEPの脆弱性を改善したもの)
  CCMP(AESを利用)
 ・認証方式
  IEEE802.1X

 ざっくりいうと
  802.11i = AESによる暗号化+TKIPの鍵交換管理+802.1X認証
 らしい。はぁ…

・WPA2

IEEE802.11iとは別物だが中身はほぼ同じ。
 こっちはWiFiアライアンスが標準化した。

・CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)

搬送波感知 多重アクセス / 衝突回避
  無線で利用。
  これはもう分かった。

・RTS/CTS(Request To Send/Clear To Send)

・CSMA/CA方式を使っても、位置関係や障害物の有無によって事前確認できない場合がある。
 ・CSMA/CAに加えてRTS/CTSを使う。
 ・送信したい端末はデータ送信前にRTSフレームを送る。
 ・RTSを受け取ったAPはCTS全端末に配信する。
 ・CTSを受け取った端末は待機する。(衝突回避)
 ・衝突はどうしても起きちゃうので、必ず受信側はACKを返送する。
  ACKが受け取れない場合は衝突が起きたと判断し、再送する。

 ・無線APがCTSを送信するが、送信端末がCTSを送る方式もある(自己CTS)
 なるほどねぇ。

・CSMA/CD(Carrier Sense Multiple Access/Collision Detection)

搬送波感知 多重アクセス / 衝突検知
  イーサネットで利用。

 ・衝突を検知したらジャム信号を流す。
 ・ジャムを受け取ったら衝突してるので一定時間待って再送する。

無線LAN規格

IEEE802.11a 5GHz 最大54Mbps
 IEEE802.11b 2.4GHz 最大11Mbps
 IEEE802.11g 2.4GHz 最大54Mbps
 IEEE802.11n 2.4GHz、5GHz 最大300Mbps

PKI(Public Key Infractructure)

公開鍵基盤

CRL(Certificate Revocation List)

失効リスト
 CA(認証局)で管理する。
 電子証明書を無効化するためのブラックリスト。
 認証サーバがCAにあるCRLを確認し、失効されてないか確認する。


今日のまとめ

午後問やばすぎでしょ。芋づる式に分からん言葉がどんどん出てくる。
午後問1を説き始めてから解説読んで理解しきるまでに4時間半かかった。

このペースだとやばい…どうしよ。

2013年10月16日水曜日

ネスペ試験まで あと4日

ネットワークスペシャリスト試験まであと4日。

今日は中国からの出張者さんの歓迎会でした。
おなか一杯だけどがんばる。

今日調べたこと

LB(Load Balancer)

負荷分散装置
 下記3つの機能があったりする
 ・処理の振り分け機能
 ・セッションの維持機能
 ・ヘルスチェック機能

負荷分散方式

・ラウンドロビン
 ・セッション数が少ないものに
 ・サーバの負荷を見て
 など。これらは製品によって異なる。

セッションの維持機能

 レイヤ4LB:リクエスト元のIPアドレスに基づいて行う
 レイヤ7LB:Cookieに埋め込まれたセッションIDに基づいて行う

 レイヤ4の方が当然高速。
 ルータのNAPTなどで同一IPから大量にアクセスがある場合はレイヤ7を使った方がより均等に分散できる。

ヘルスチェック機能

 レイヤ3:ping
 レイヤ4:telnet
 レイヤ7:telnet -> GETxxxなど

ソースNAT(Source NAT)

 ⇔宛先NAT(Destination NAT)
 送信元IPを変換する。
 LBでソースNATを利用する場合は宛先SVは特に設定変更がいらない。
 だがLBでソースNATを利用しない場合は宛先SVのデフォルトゲートウェイをLBにする必要がある。

宛先NAT

 わからん。

DSR(Direct Source Return)

 LBがサーバーに振り分けた通信をサーバーがクライアントに直接返す方法

ループバックインターフェイス

 127.0.01みたいなの。
 送信元がここのパケットは受け取れる。
 LBにDSRを設定した場合、LBのVIPをループバックアドレスに設定したりして使う。

2013年10月15日火曜日

ネスペ試験まで あと5日

ネットワークスペシャリスト試験まであと5日。

台風来てますねー。10年に1度の強さだとか。
最近10年に一度のものが何度も来てる気がします。

じゃー今日もお勉強です。

今日調べたこと

DMZ(DeMilitarized Zone(非武装地帯))

社内LANとインターネットの間に置いたりする。
 外部に公開するメールサーバーとかをここに置くことでセキュリティを向上させる。
 http://www.atmarkit.co.jp/aig/02security/dmz.html
 このURLが分かりやすかった。

ASP(Application Service Provider)

アプリケーションを提供する事業者
 最近だとSaaS(Software as a Service)とか似てる。
 ソフトウェアをサービスとして提供する仕組み。

DNS(Domain Name System)

ドメイン名とIPを対応させる仕組み
 ・FQDN
  完全修飾ドメイン名
  mxl.viva-netscreen.net.みたいなの。
 ・A(Address)
ホストとIPアドレスの対応
 ・MX(Mail eXchanger)
  メールサーバーを指定する
 ・NS(Name Server)
  上位や下位のネームサーバIP
 ・PTR(PoimTeR)
  IPとホスト名の逆引き 

DDNS(Dynamic DNS)

・クライアントがIPをDNSサーバに通知。サーバはそれに基づいてゾーン情報を修正。
  一般的にはLAN内で利用

エニーキャストアドレス

いくつかのインターフェイスに共通アドレスを割り振る。
 アニーキャストアドレスあてのパケットは一番近い1つだけに送られる。
 そのためルートの冗長化に使われる。
 DNSサーバの分散配置などに使われてる。

SMTP(Simple Mail Transfer Protocol)

メール送信プロトコル
 TCPのポート25を利用

POP(Post Office Protocol)

メール受信プロトコル
 メールボックスの管理機能はない。
 添付ファイルの部分取得とかはできず、全部受信しなきゃいけない。

IMAP(Internet Message Access Protocol)

メール取得プロトコル
 POPはクライアント側でメールを管理するが、IMAPはサーバー側で管理する。
 特定の添付ファイルのみDLなども可能

POP3

POP バージョン3
 何が変わったのか知らない。

よく出るポート

HTTP:80
 HTTPS:443
 FTP:20,21
 SSH:22
 TELNET:23
 SMTP:25
 DNS:53
 POP3:110

SUBMISSION

スパムメール対策らしい。使用ポートは587。
 http://bb.watch.impress.co.jp/cda/bbword/8764.html
 うん、分からん。

NAPT

Network Address Port Translation
 1つのグローバルアドレスを複数のクライアントで共有する仕組み
 別名:IPマスカレード、NAT+
 http://bb.watch.impress.co.jp/cda/bbword/6476.html

SSLゲートウェイ

ゲートウェイとなるサーバがSSL通信接続を肩代わりしてくれる仕組み?
 http://www.infraexpert.com/study/security8.html
 分からんわコレ。




結局3時間かけて午後1の問2しかできなかった。

ネスペ試験まで あと6日

ネットワークスペシャリスト試験まであと6日。

勉強始めたのが先週。
無謀ながらも頑張ってます。
せっかくなんで調べたこと書いとこうかと。

それにしても難しい。

今日調べたこと

L2SW

レイヤ2(データリンク層)のSW。ルーティングは行わない。
 ラーニングブリッジの集合体みたいなもの。

L3SW

レイヤ3(ネットワーク層)のSW。ルーティングできるすごいやつ。

広域イーサネット

レイヤ2のイーサネット網。たぶんNTTとかが提供してるようなの。
 L2SWが繋がりまくってんじゃないかと思うけどよくわからん。

IEEE802.1Q

レイヤ2のフレームにタグを付けてタグVLANとして扱えるようにするプロトコルらしいよ。別に覚えんでよさげ。

VLAN

L2SWの中継先ポートを限定できるようにするそうな。
 1つのリソース(イーサネット)を論理的に分けるために使うとかなんとか。
 コリジョンの起こる範囲を狭くできていいらしい。

タグVLAN

 VLANをタグによってさらに拡張するってさ。もー分からん。

NativeVLAN

タグVLANを有効にすると必ずタグをつけなきゃいけないんだけど
 特別なVLANIDにはタグをつけなくてもいいらしい。
 タグVLANをサポートしてない機器との互換性のためか?

STP

スパニングツリープロトコル
 イーサネットのループを防止するためのプロトコル
 ネットワークの冗長化にも使われる。
 でも接続してから通信可能になるまで40秒とかかかる
 http://www.infraexpert.com/study/stpz1.html
 ここの説明がめっちゃ分かりやすい。

BPDU

Bridge Protocol Data Unit
 STPでやり取りされるデータ

STPを無効にするメリット

BPDUのやり取りが発生しないから再接続待ち時間が発生しない。

無線LAN

 ・SSID 識別するためのID
 ・BSSID BasicSSID
 ・ESSID ExpandedSSID

スイッチングハブ

 ブリッジがいっぱい入ったハブ
 MACを記憶する。

MACテーブル

 送信元MACアドレスとポートを記憶する。
 L2SWの中(ブリッジ)が持ってる

802.11b

 よく使われる代表的な無線規格
 通信速度は1Mbps~11Mbps 2.4GHzの電波を使う

PoE

Power over Ethernet
 UTPの使ってない4本を使って電源供給する仕組み。
 これすげーーーーー

802.11af

PoE取り決めたタスクフォース

Auto MDI/MDI-X

 ストレートケーブルとクロスケーブルを自動判別してどっちでも使えるようにしてくれる仕組み
 MDI:Mediam Dependent Interface
 MDI-X:Mediam Dependent Interface Crossover

オートネゴシエーション

 自動で機器感の伝送方式を決める機能
 ・Duplex(全二十、反二重)
 ・Speed(1GBPS,100MBPS/10MBPS)

UDPがよく使われるのは

ストリーム配信、VoIP、SNMP、DHCPなど

TCPがよく使われるのは

HTTP、Telnet、FTPなど

L2フレームの種類

ブロードキャスト、ユニキャスト、マルチキャスト
 ブロードキャストはL2SWで中継されて進むけど
 ユニキャスト、マルチキャストは宛先MACで止まるのかな?

2013年8月20日火曜日

GAMEFEATさんすごいねってお話

最近開発環境の記事ばっかりでしたね。
たまには違う話をしましょー。

なんのグラフでしょう?






はい、とあるAndroidアプリのダウンロード数です。
(少ない!?知ってるから言わないで!w)

それより急に傾き変わってるところ!
GAMEFEATさんの相互送客に登録してみたんです。

すご。
いや、登録しといた方がいいよ!!って聞いてたのに
やってなかった自分が悪いんですけどね…

効果

5/11~8/4(86日間)  60DL  0.7DL/day
8/5〜8/19(15日間)  306DL  20.4DL/day

0.7DL/day → 20.4DL/day   29.14倍!!

すごいね。
相互送客に登録するだけでDL数が30倍になるんだって!

まとめ

やっぱり色々試さないと損しますね。
根っからのものぐさ人間なのでなので作っただけで放置しがち、、、
アプリで食べてく訳じゃないけれど
お小遣いになるとやっぱりうれしいですもんね。

あとグラフみて面白いなーと思ったのは
導入前後で傾きは違えどDL数はずっと一緒なこと。
0.7DL/dayとか逆にどこから見つけてくるんだろうって不思議w
iOSだとまた違うのかなー?

こんなゲームだけど遊んでくれた方々ありがとー。
そしてがっかりさせてごめんなさい!w


今回のアプリはこちら
Google PlayでDownload「うて!!」

紹介ページはこちら
「うて!!」簡単な紹介と作ってみた感想。

GAMEFEATさんはこちら
https://www.gamefeat.net/

2013年8月9日金曜日

MacBookAirを買いました!

MacBookAir Mid 2013

ついに

前々から欲しい欲しい言ってましたけどついに買っちゃいました!
MacBookAir 2013年モデルの13inchです。

少しだけ操作になれてきたので練習を兼ねてブログ書いてみます。
使い慣れたWindowsと違って写真のリサイズするだけでも一苦労^^;

外観については一足先に手に入れた友人が載せてますので必要ないですね。
MacBookAirがうちにやってきた
上記記事を読んで「ついに買ったんですね!」って連絡いただいた方すいませんでした。
一緒にブログ書いてる友人の記事なので買ったのは自分じゃなかったんです・・・。
自分(naichilab)と友人(baiteen)の2人で記事書いてます。以後よろしくお願いします。 

スペック

13inch 128GBモデルをベースにCPUとメモリを強化しました。
SSD増やしたかったけど金額的に断念。
まぁ写真も音楽も取りためるつもりないからなんとかなるだろうって判断です。

それにしてもノートでこれだけのスペックでバッテリー10時間近く持つとか
すごい時代になったもんですね。

所感

半日使ってみて思ったこと。
初期設定は10分ぐらい
1、うすっ!
  ほんとすごい。閉じると手前は5mmぐらいしかないんじゃないですかね?
  奥側でも20mmないぐらい。無駄に閉じたくなる。そんな感じ。

2、かるっ!あれ、そうでもない?
  薄いから軽いかっていうとそうでもないです。
  持った感じ会社で使ってるノートの方が軽いかな?(薄いからそう感じるだけかも)
  でもアルミボディと適度な重量感で高級感は抜群ですね。

3、操作わからん!
  Windowsに慣れきってる人間がMac買ったらみんな思うでしょうね。
  慣れるまではいろいろ大変そう!

他にも字がきれー。とか
キーボードうちやすいなー。とか
タッチパッド使いやすいなー。とか
いろいろありますけど書ききれないのでこれぐらいで。


使い倒すぞー!( *´艸`)

2013年7月22日月曜日

MacBookAirがうちにやってきた


こんにちは、いつもだらだらbaiteenです。

ついにMacBookAirが手に入りました。
短冊に書いたり、毎日星にお願いしたりしてたら、リッチなオジサマがくれました。
七夕さまに感謝です。

13インチの128GB、COREi5。十分です十分です、もらえただけでラッキーです。
箱はこんな感じ。

Appleの製品は箱からかっこいいよね。

んで、中身はこんな感じ。もう箱から出しちゃった。


順番にトリセツ(もちろん読んでない)、電源、電源アップ、電源の延長。

電源は以外とおっきかった。ルービックキューブ半分にしたくらい。

そして本体。
順番に足、背中(薄い)、左腕(薄い)、左アップ(SDXC、USB、Thunderbolt)、右腕(薄い)、右アップ(電源、USB、オーディオ)、顔。

とにかく薄い。そしてシルバー。
コネクタ類は、薄いやつだけが生き残ったって感じ。
LANケーブル?Wifiでしょ。光学ドライブ?クラウドでしょ。って感じ。
ここまでやられると諦めつくね。

電源のコネクタが超かわいい。マグネット最高。


ということで、電源つないでー と思ったけど、今日はここまで。
写真のセンスのなさに耐え切れない。
実物はもっとかっこいいので、みんなサンタさんにお願いしましょう。
俺は次は一眼レフをお願いしようと思います。


2013年6月30日日曜日

【Unity,NGUI2.x】【お勉強】NGUI Basic Tutorialを見た

NGUI

[追記2013/11/01]
こちらの記事はNGUI2.xを扱ってます。
最新の3.0のチュートリアル動画を見たときに書いた記事はこちら。
http://naichilab.blogspot.jp/2013/11/unityngui30.html

Unityでなんか作りたいけどUnityに関する知識が乏しすぎるので勉強中。
先日半額セールで買ったNGUIもほったらかしなのでそれから調べてます。

覚えたことメモしとこうと思う。

NGUI Basic Tutorial

見た動画はこれ。
20分ちょいの動画だけど実際に操作しながら進めたら1時間半かかった…
NGUIってUnityを使うためのGUIかと思ってたけど
GUIを作るためのGUIなのかな?いまだによくわからんw

動画を見て覚えたこと

  • NGUIのインポート方法(00:20~)
    ・動画はExamples抜きでインポートしてる
  • サンプルリソース(GUI用の画像)のダウンロードとインポート(00:50~)
    http://www.tasharen.com/ngui/atlas.zip
    ・Textureフォルダを作って管理
  • NGUI->Create a Textureでテクスチャの追加(01:20~)
  • テクスチャのサイズ変更、移動、回転
    ・回転軸(Pivot)の利用方法
    ・Shift+回転で自由回転(既定は15度刻み)
  • テクスチャの色変更方法(02:20~)
    ・シェーダはTransparent Colored
    ・モバイルならPremultipled Coloredの方がパフォーマンスがいいらしい
    ・色のコピーとペースト
  • テクスチャの表示順(Depth)(03:45~)
    ・動画では同じマテリアルの場合Depthではダメだと言っているけど
    ・自分の環境は行けた。修正されたのかな。
  • NGUI->Open the Atlas MakerでAtlasの作成(04:30~)
    ・画像の追加、削除、修正も簡単
  • NGUI->Create a Spriteでスプライトの作成(06:45~)
  • スプライト表示タイプの変更(07:10~)
    ・Simple
    ・Sliced
    ・Tiled
    ・Filled
    Filledとか面白い
  • スプライト拡大時のエッジボケの対応(07:50~)
    9Sliceスプライト
  • NGUI->Create a Labelでラベル作成(09:00~)
  • BMFontでビットマップフォントを作成し取り込み(09:05~)
  • NGUI->Open the Font MakerでAtlasにフォント追加(11:00~)
  • ラベルでフォント選択、色の変更(11:30~)
  • テキストの変更方法
  • テキストの一部を画像に置き換える方法(11:45~)
    これすごいな
ここまでが基本の使い方?
こんなことしなくても簡単に作れるよってのがここからな気がする。
  • NGUI->Open the Widget Wizard
  • Buttonテンプレート
    既定でエフェクトついてる
    色の変更
    エフェクトの変更などなど
  • Sliderテンプレート
    画像の変更
    BackGroundとForeGroundとか
    Thumbとか
  • Checkboxテンプレート
    複数チェックボックスのグループ化(ラジオボタン的な動作)
  • PopupLitテンプレート
    リサイズしたときのクリック判定範囲の変更は
    NGUI->Attach a Colliderで簡単に反映可能
  • 違うマテリアルの描画はDepthじゃなくてZOrder変更してね(21:00~)


2013年6月23日日曜日

6/22 大阪 Unityクリエイターズ勉強会に行ってきました。


6/22に大阪で開催された「Unityクリエイターズ勉強会」に行ってきました。
聞いた内容を忘れないうちにメモ。
うろ覚えの内容多いです。間違ってたらスイマセン。

タイムテーブルなどATNDはこちら

発表内容

BlenderとUnityのいろいろ(仮) 松田さん 14:00~

終始ワケワカウッヒャーでしたがデモを見て純粋にすごい!って思えました。
Blenderを知るきっかけを頂けたことに感謝。

Blenderって

  • 3DCGやアニメーション作成ソフト
  • オープンソースのフリーソフト
  • 3DCG作成ソフトは数あれどフリーなのはBlenderだけ

BlenderとUnityは親和性 大

  • Blenderで作った.blenderという拡張子のファイルをUnityでそのまま見ることができる
  • Unityプロジェクトのアセットフォルダ内にBlenderプロジェクトを作り始めると楽
  • でも最新のBlender使うと自動インポート機能に不具合あり
  • 現時点ではまだBlender2.66aをオススメ

Unityのアニメーションの仕組み

  • Unityは4.0でアニメーションの仕組みが変わった
  • 新アニメーションのことをメカニムと呼ぶ
  • Unity4.xでは旧アニメーションを使わない方がいいとはっきり書かれている

スカルプト

  • Blenderの機能の一つ
  • マウスで粘土のようなものを積んだり削ったりして3DCDを描く機能
  • 10時間ほどで作ったという50万ポリゴンのトカゲを見せていただきました。

ポリゴン

  • スカルプトでどんどん作りこむとポリゴンが増える=重たい
  • ポリゴンを減らすことで軽くする
  • プレゼンでは50万→10万→1000まで減らして変化を表示
  • ポリゴンが減るほどのっぺりツヤツヤした感じになる
  • モバイルでも1000ポリゴンぐらいなら問題なく動くらしい

ノーマルマップ

  • ポリゴンが多い状態からテクスチャを作る(これがノーマルマップ?)
  • ポリゴンを減らして動作を軽くする→見た目がのっぺりする
  • のっぺりしたものにノーマルマップを貼り付ける
  • →動作軽くて見た目もいい。バンザイ。
  • UnityだとMaterial->Shader->Bumped SpecularにNormalmapという項目がある。
  • Mobole->Bumped Specularの方が軽い(かもしれない)とかなんとか

  • よりリアルに見せるために影をつける
  • 影の付け方も色々
  • モバイルだとリアルタイムにつけるのは厳しい
  • ノーマルマップに影をつけておくのが簡単?
  • AO(Ambient Occlusion)でへこんだ部分に影を付ける?
  • AOはローポリで描けるの方が綺麗だとか
  • BlenderでローポリにAO!ってのは聞き取れた。あとワケワカウッヒャー

クロスシミュレーター

  • Blenderで物の動きをシミュレーションできる?
  • 箱の上に布が落ちる動きを実演
  • 箱にコリジョン、布にクロスって設定してベイク→再生
  • ベイクっていうのが一定時間ごとの動きを計算する操作らしい
  • これで作ったアニメーションをUnityに取り込み?してたけどついてけなかった。

Unity freeについて色々 高橋さん 14:50~

Unityの中の人、黄本の著者さん。
動画マニュアルに日本語解説がついてると聞いて驚きました。少しずつ見ていこう。
勉強方法やPro,Freeの違いなどとても分かりやすかった!

Unity freeって?

  • UnityiOS/Android無料になりましたよー
  • iOS developer(年8400円)払ってなくてもエミュならすぐ試せますよー
  • 簡単ですよー
  • AndroidもSDKとかめんどいけどできますよー
  • 今後のモバイルプラットフォームも無料で提供予定ですよー

Unityの勉強方法

  • Unity公式Web->Learn->Tutorialsに大量の動画マニュアルがある
    http://unity3d.com/learn/tutorials/modules
    各動画再生中にコメント機能をオンにすると日本語字幕が表示できる
    ↑公式Webが日本語表示だとLearnが表示されないようですね。
  • Unityアセットストアからプロジェクトをダウンロードして参考にする
    Unity->Window->Asset Storeでアセットストア起動
    さらにCategories->Complete Projects->Tutorials

ProとFreeの違い

Unity freeに向いているジャンル

  • 2Dゲーム
  • デバイス系一発ネタ(カメラ、マイク、ジャイロ、GPS、etc...)
  • 買い切りタイプの昔ながらのゲーム(追加コンテンツのないものって意味)

Unity freeに向いていないジャンル

  • DLC(ダウンロードコンテンツ)
    追加ダウンロード系はProじゃないとできない
  • 容量の極端に大きなアプリ
    appleStoreは50MBまで。それ以上は追加ダウンロードとなるため
  • 見た目にすごいこだわってるアプリ
    Proじゃないと使えないエフェクトとかがあるため

Unityはどうやって勉強したらいいの? 荒川さん 16:00~

チキンウォーズの作者さん
自身がされてきた勉強法をもとに、とても分かりやすくまとめてみえました。
Unityの勉強はソフトバンククリエイティブの本がいいらしい。

Unity本の紹介

  • Unity本はいくつも出てる
  • Unity本にハズレはほとんどない
  • まずは一冊読んでみて

チュートリアルで勉強する

  • アセットストアにサンプルは落ちてる
  • 「C# Game Examples」 free
  • 「Crusher Baloons」 $25.0
  • 「Match-3 Starter Kit」 $45.0
  • などなど

プログラムを書かずに遊んで覚える

  • Unityにはプログラムを書かなくても使える機能がたくさん
  • CharacterController
  • Terrain
  • Particle(Shuriken)
  • Mecanim

説明サイトとか

まとめ

  1. まずは1冊読もう
  2. 実際になんか作ろう
  3. 外部勉強会やGameJamで仲間を作ろう

LT(Lightning Talk) 16:50~

  • Takarabako18さん
    卒研で作ったアプリの紹介
    ボードゲームを2D、3D等どのように見せるかを試したらしい。
    モデリングも自前らしい。すごい。
  • Ligha(ライハ)さん
    個人で作っている3Dロボットゲームの紹介
    跳んだり撃ったり撃たれたり。こちらもすごい。
  • moririringさん
    C#の便利機能、LINQについて。
    LINQを使えば10行弱のループを1行にできることを紹介。
    C#を肴に4時間は軽く呑めるらしい。
    自分もLINQ大好きです。
  • 暇人さん
    Unity+VuforiaでARカメラソフトを作る手順を紹介
    コーディングゼロ!すごすぎ!
    手順の載った資料はこちら


勉強法とかとても為になった。
自分の中にうっすらと進め方の指針が出来たかな。
マイペースにやっていこう。

発表された方、運営の方々、参加者の皆さんお疲れ様でした!!

2013年6月5日水曜日

ボールを浮かしたい。その3。挙動が変。

昨日の続きです。

おさらい

昨日は端末を振るとFloorが上下し、ボールが上に跳ねあがるのを確認できました。
スマホを振るとボールが跳ねる。

適用してみる

それを黄本の迷路サンプルに適用。
スマホを振るとボールが跳ねるはず。
ここでFloorとWallはMaze(空GameObject)の子供にしてあります。
Maze、Floor、Wallは全てRigidbodyがついており、isKinematicもONです。
Mazeと階層構造に
上下に動かすスクリプトは昨日と同じ

実行するも

全然跳ねない…
昨日はポンポン跳ねたのにほんっと跳ねない。
それだけじゃなくすぐにFloorすり抜けて落ちてくし全く別物の挙動。

訳が分からないもののひたすら違いを探して小一時間、
やっと原因個所を見つけました。

スクリプトでMazeのZ座標を動かしてたんですが
Floorを動かすようにしたら昨日と同じ挙動になりました。

親オブジェクトのMazeを操作するか、Floorオブジェクトを操作するかで全く挙動が違いました。

この違いはなんなんだろう…

まとめ

  • オブジェクトの座標をスクリプトで操作した場合の物理挙動が
    親・子オブジェクトのどちらを操作するかによって違う。

どなたか理由分かる人いたら教えてください…

2013年6月4日火曜日

ボールを浮かしたい。その2

一日開いちゃいました。
前回の続き。

ボールを浮かしたい

コースは固定されてて重力が変化する空間の中でボールだけ浮かしたい…とか
書くだけでややこしいですね。

この考えでは進みそうにないのでちょっと考え切り替えました。
めんどくさいから物理エンジンに任せようって。
コースが上下に動けば勝手にボールは跳ねるだろうと。

どうやろうか

なんとかしてスマホの上下移動をコースの高さに反映すればいいんだよね。

Input.accelerationは常に重力加速度を受けてるから
スマホが固定されていれば1G(単位ベクトル)がかかった状態。

ここでスマホを上下に動かすとベクトルサイズが変わるはず。

やってみた

てきとーにInput.accelerationのベクトルサイズを計算して表示

float g = Input.acceleration.magnitude;
print(string.Format("DEBUG {0}", g));

動かさないとおおむね1前後
スマホ机に置いた状態
動かすとそれなりにばらつく
上下に動かした状態


でもこれだと左右に動かすだけでも1G以上がかかるよね。
まぁ傾けて遊ぶゲームだし急に左右に振るのは考えなくていいか。
無視しよ。

とりあえず使えそう!

ちょっと修正

Floorタグを持つオブジェクトのZ座標を動かすように書いてみた。
どんどんずれてどっか行っちゃうので自然と0近くに収束するようにした。

こんな感じ。

using UnityEngine;
using System.Collections;

public class Sensor : MonoBehaviour
{
    /// <summary>
    /// スマホの移動に連動させるオブジェクト
    /// </summary>
    GameObject floor;

    /// <summary>
    /// 前フレームでのZ座標
    /// </summary>
    float lastZ;

    // Use this for initialization
    void Start()
    {
        this.floor = GameObject.FindGameObjectWithTag("Floor");
        this.lastZ = 0;
    }


    // Update is called once per frame
    void Update()
    {
        //端末が上下に動いた量 +↑、-↓
        float g = Input.acceleration.magnitude - 1.0f;

        this.lastZ = (this.lastZ + g) * 0.9f;


        Vector3 lastPos = floor.transform.position;
        Vector3 newPos = new Vector3(lastPos.x, lastPos.y, this.lastZ);

        floor.transform.position = newPos;
    }
}

追記

黄本読んでたら気になる記述見ちゃった。

  • プログラム制御するオブジェクトはRigidbodyコンポーネントを付ける
  • そのうえでIsKinematicプロパティをONにする
  • Update関数ではなくFixedUpdate関数内で更新する
  • transformを直接操作せず、RigidbodyクラスのMoveRotation、MovePositionを使う
だそうな。


急きょ書き換え

  • floorオブジェクトにrigidbodyを付加、isKinematicをON
  • スクリプトも変更

using UnityEngine;
using System.Collections;

public class Sensor : MonoBehaviour
{
    /// <summary>
    /// スマホの移動に連動させるオブジェクト
    /// </summary>
    GameObject floor;

    /// <summary>
    /// 前フレームでのZ座標
    /// </summary>
    float lastZ;

    // Use this for initialization
    void Start()
    {
        this.floor = GameObject.FindGameObjectWithTag("Floor");
        this.lastZ = 0;
    }


    // Update is called once per frame
    void FixedUpdate()
    {
        //端末が上下に動いた量 +↑、-↓
        float g = Input.acceleration.magnitude - 1.0f;

        this.lastZ = (this.lastZ + g) * 0.9f;

        Vector3 lastPos = floor.transform.position;
        Vector3 newPos = new Vector3(lastPos.x, lastPos.y, this.lastZ);

        floor.rigidbody.MovePosition(newPos);
    }
}

FixedUpdateだと更新間隔を指定できるみたいね。
指定方法はまた調べよう。

transporm.positionとrigidbody.MovePositionの違いはまだ分かんない。

ていうかボールの跳ねあがり方まったく別物になったんだけどw

Unity系記事まとめ

2013年6月1日土曜日

ボールを浮かしたい。

Unityで遊んでます。

黄本のサンプルにある迷路を作って思ったんです。
転がすだけじゃ物足りないなぁって。

飛んだり跳ねたりさせたい。
スマホを水平に持って急上昇→急停止させたときにボールが浮くような感じ。


どうやるんだろうなぁ。

ここで書いたようにInput.accelerationを使えば傾きが取れるのは分かった。
でもaccelerationって言うからには加速度を取ってるんだよね?

調べてみた。

Input.acceleration

→公式リファレンス
3次元空間でのデバイスの加速度を取得します。

端末を机に置いた状態でX,Yは0近くでZが-1だから…
もしかして単位は重力加速度かな?

ぐぐったら出てきた。
http://sumaho0.blog.fc2.com/blog-entry-6.html
この中に「1は1Gを意味します。」って
まじかーー。

accelerationで傾き取るってどういうことよって思ってたけど疑問が氷解した。
動いてないから加速度0でしょ?って思ってたけど
重力方向の単位ベクトルが取得されてるってことね。

重力も加速度!たしかに!!

じゃあどうしよう

現在の仕様は(本のまま)

  • 画面いっぱいにはコースを表示する→OK
  • 端末を傾けてもコースの表示は変わらない→OK
  • 端末を傾けたとき重力を傾ける→OK
追加したい内容
  • 端末上昇→停止でボールを浮かせる
加速度の変化から速度を計算してボールに初速を与えればいいよね。
って言うのは簡単だけど全然作れる気がしない。

んー。
  1. accelerationで単位ベクトルが取れてる状態=端末が動いてない状態
  2. accelerationの変化 - (重力方向の)単位ベクトル = 本体移動による加速度
  3. それをさらに微分して一定の変化があるときに適当な初速をボールに与える
って感じ??
傾き変化による加速度変化と本体の移動による加速度変化をどうやって分離するかが問題だと思うけど…

頭爆発しそう。とりあえずやってみよう。

続きはまた。


Unity系記事まとめ

2013年4月29日月曜日

Xperia Z 購入!


2年以上使ってきたGalaxySとお別れを告げ
docomo Xperia Z買ってきました。
なんだかんだでやっぱりAndroidが好きだわー。

ちょっと使ってみたけど
いやー早い。サックサク!
画面大きくて見やすい!
前も後ろもガラスでかっこいい!
Android4.1だしChromeが使える!

このスタイリッシュな感じ久々にソニーっぽい!


ケース買わないとだけど見た目ださくなるの必至だね。
みんなどうしてるんだろう。

防水機だから充電もクレードルでやりたいし・・・。

どーせ開発デバイスとして使うためにはUSB直挿ししなきゃいけないからケースもクレードルもなしでフィルムのみでもいいかも。

もしくはフィルム+ケースでクレードルなしか。

どーしよ!
Related Posts Plugin for WordPress, Blogger...