前回の中規模ネットワーク構築メモ(ケーブル切断・配線編)の続きです。

記事全体の目次は中規模ネットワーク構築メモを参照してください。

前回はケーブルを切断しましたが、今回はケーブルを作成していきます。

必要なもの

ケーブルの作成では、このようなものが必要になってきます。

装置など

  • (前回切断した)ケーブル
  • ジャック(複数の色があれば便利)

工具

  • ニッパ
  • ケーブルの皮むき(ケーブルストリッパ?)
  • ジャックを圧着する工具(なんていう名称なのだろうか?)
  • ケーブルテスタ
  • マイナスドライバ(あると便利)

ではでは、さっそく作業に移っていきましょう。

ケーブルの皮むき(外側)

外側の皮をむきます。15cmくらいかな?

皮をむくと、よく見るケーブルが6本出てきます。 IMG_1403_R.jpg

このケーブル1本1本には、番号(1~6まで)が印刷されています。

この番号のおかげで、作業が楽に進みます。 (なければ、ケーブルの端のチェックがしんどいですね・・・)

ケーブルの皮むき(内側)

次に、内側の6本のケーブルの皮むきをします。

IMG_1405_R.jpg

なんの変哲もないツイストペアケーブルです。

ジャックの取り付け

ジャック(差し込み口)を取り付けていきます。

まず、ジャックの部品をケーブルに差し込みます。

IMG_1406_R.jpg

部品にケーブルの色が記されたシールが貼ってあるので、その通りに配線していきます。

IMG_1407_R.jpg

そして、はみ出たケーブルをニッパで切り、もう一つの部品を差し込みます。 IMG_1409_R.jpg

最後に、圧着工具で圧着します。 (この工具の名前は何なのだろうか・・・)

IMG_1412_R.jpg

ゾーンボックス側、パッチパネル側それぞれのケーブルの端にジャックを取り付けます。

ここで1つポイントですが、

  • 1番のケーブルには違う色のジャックを取り付けて目立つようにする

ということです。

ゾーンボックスや、パッチパネルに並べるときに、色の違う1番のジャックが左端にあると、ケーブル番号の順番の目印になりますよね。 (左から、1,2,3,4・・・みたいな感じで。)

今回は、

  • ゾーンボックスが白色のため -- 1番を橙色 -- 2~6番を白色
  • パッチパネルが黒色のため -- 1番を白色 -- 2~6番を黒色

としました。

これらのジャックを、6箇所にゾーンボックスを設置するので、6(箇所)×6(本のケーブル)×2(ボックス側・パネル側の端)の72個のジャックの取り付けをしています。

ゾっとしますね。 はっきり言って、肉体労働です。

ケーブルのテスト

ケーブルの作成が終わると、テスタを使ってテストをします。 IMG_1410_R.jpg

テストで失敗すれば、マイナスドライバを使って、ジャックを取り外し、やり直します。

最後に

以上で、ケーブルの作成は終了です。

手先を使う作業なので、やってるうちにだんだんと握力がなくなってきて、しんどいです。

資金が潤沢な方は、業者に頼むのも手かもしれません・・・。 そういう風に思ってしまうくらい、心が折られます(笑)

いまだに全貌が見えてこない感じですが、次回の中規模ネットワーク構築メモ(ゾーンボックス作成編)で何かが見えてくるかもしれません。

乞うご期待!

posted by Png y_tsuda on Mon 13 Oct 2008 at 12:02 with 2 comments

Xcodeでgdbを使ってObjective-Cのコードをデバッグしているときに、 Objective-Cのメソッドを呼んだ結果が知りたい場合、 以下のようにすれば良いようです。

   1  (gdb) call (int) [@"a" length]
   2  $1 = 1

C関数の形式で以下のように呼び出してもOkです。

   1  (gdb) call (int) objc_msgSend(@"ab", @selector(length))
   2  $2 = 2

ただし、戻り値のサイズや型によっては、objc_msgSend ではなく、objc_msgSend_stretなどを使う必要があります。

posted by Png genki on Mon 13 Oct 2008 at 00:42

中規模ネットワーク構築メモのケーブル切断・配線編です。

ここでは、ケーブルを切って、床下に配線する様子を掲載します。 大したことはしていないのですが、配線工事がどのようなものなのかを感じていただければ良いなぁと思います。

必要なもの

装置など

  • 19インチラック
  • UTPケーブル (6本のケーブルが束になったもの)

工具

  • メジャー
  • 油性マジック
  • 大きなカッター
  • 大きなハサミ

ではでは、さっそく作業の備忘録を書いていきます。

ラックの設置

まずは、ラックを設置します。設置のポイントは、

  • 床が重さに耐えられるかどうか
  • 普段作業しているところと別電源である です。

床が重さに耐えられるかどうかは言わずもがなですね。

普段作業しているところと別電源にするのは、ブレーカーが落ちるのを防ぐためです。

ラックは摂津金属のものがお勧めだそうです。

今回買ったラックは、こんな感じ。

IMG_1397_R.jpg

ものすごく重いです。

ケーブルの切断

ケーブルを切断します。

ポイントは、

  • 切断する前に、配線の計画をする(主に長さ)
  • 広いところで作業をする です。

配線の計画を行い、どれくらいの長さがいいのかを検討する必要があります。長さは、床に配線する長さ+3~4メートルくらいが必要となります。

ラック内では、自分の目の高さくらいにパッチパネル(ケーブルの片端の接続先)を設置するので、この余裕が結構重要だったりします。

長さを決めたら、実際に切っていきます。 長さを測りながら切っていくので、広いところでやりましょう。

今回は廊下を使ってみました。

IMG_1399_R.jpg

この状態からメジャーで長さを計ってケーブルを切っていき、ケーブルの両端に油性マジックで番号と長さを書いておきます。

床下の配線用のケーブルには、普通のLANケーブルが6本束ねられているものを使うので、大きなカッターやハサミが重宝しました。

それでも切るのに苦労しましたけど・・・。

配線

切ったら、実際に床をはがし、配線してみます。

床をはがす様子。 結構広いので、この作業が本当に面倒。

IMG_1398_R.jpg

ケーブルを配線する様子。 写真みたいに綺麗に並べてあげるとスッキリします。

IMG_1401_R.jpg

この段階では、実際にケーブルが足りるかのシミュレーションなので、あとで回収します。

配線してから、ケーブルの端を作成すると、ケーブルのテストが大変なので・・・。

最後に

以上で、ケーブル切断・配線編終了です。 かなりの肉体労働で大変でした。 もう、腰が痛くて、痛くて・・・。

次回は、中規模ネットワーク構築メモ(ケーブル作成編)です。

乞うご期待!

posted by Png y_tsuda on Mon 13 Oct 2008 at 00:41

立ち上げたばっかりのベンチャー企業や、大学の研究室のようなちょっと広いめの部屋に使えそうな、中規模なネットワーク構築のメモです。

同じようなことをしたい・しようと思っている人の参考になれば良いなぁと思っています。

長編になりそうなので、数回に分けてまとめます。

(以下、暫定の記事・これから追加していく可能性があります)

必要なもの

中規模なネットワークを構築するにあたって、以下のような装置・工具が必要になってきます。

装置など

  • 19インチラック
  • パッチパネル
  • ゾーンボックス
  • UTPケーブル (床下配線用)
  • UTPケーブル (ハブとパッチパネルをつなぐ用)
  • スイッチングハブ

工具

  • かしめ工具
  • ニッパ
  • ケーブルテスタ
  • マイナスドライバ(あると便利?)
  • メジャー
  • 油性マジック
  • 大きいハサミ
  • 大きいカッター
  • シールを作る機械(テプラなど)

「中規模ネットワーク構築メモ」はこのような感じで進めていきます。

ブックマークされる方は、この記事をブックマークしておくと幸せな気分になれるかも(?)です。

記事目次

posted by Png y_tsuda on Mon 13 Oct 2008 at 00:03

時々忘れるのでメモ。

引数の数英語(A)英語(B)
0constant function
1unary functionmonadic function
2binary functiondyadic function
3ternary(trinary) functiontriadic function
4quaternary functiontetoradic function
不定/可変multinary functionvariadic function

5つ以上の場合は、 quinary, senary, septenary, octonary, nonary, denary, undenary, duodenaryなどと続きます。

posted by Png genki on Fri 10 Oct 2008 at 04:10

Objective-Cで、Method構造体からCレベルの関数ポインタを取得する方法のメモです。

以前は、

   1  Method *method = class_getInstanceMethod(class, selector);
   2  IMP imp = method->method_imp;

という感じで取得出来ていたみたいですが、現在はDeprecatedとなっており、 以下のようにする必要があるようです。

   1  IMP imp = method_getImplementation(method);

posted by Png genki on Thu 9 Oct 2008 at 02:31

Objective-Cで、クラスやプロトコルを前方宣言(前方参照とも呼ばれたりします)をする方法のメモです。

クラスの前方宣言

クラスを前方宣言する場合は、@classに続いてクラス名、セミコロンを書きます。

   1  @class Foo;

プロトコルの前方宣言

クラスのときと同様、プロトコル名のあとにセミコロンでOk。

   1  @protocol Foo;

posted by Png genki on Wed 8 Oct 2008 at 16:56

前回の記事で書いた、表のセル内で改行する方法の応用編。

   1  \begin{tabular}{|ccc|}
   2    A & \shortstack{B1 \\ B2 \\ B3} & C
   3  \end{tabular}

という風に表を作成すると、

となって、他のセルとの高さのバランスが微妙な感じになる。

こういうときは、\raiseboxを使うことによって高さの調節ができる。

使い方は、こんな感じ。

   1  \raisebox{どれだけ文字を持ち上げるか}{高さ調節したい文字列}

これを先の例に適用して、実際に高さの調節を行う。

   1  \begin{tabular}{|ccc|}
   2    \raisebox{1em}{A} & \shortstack{B1 \\ B2 \\ B3} & \raisebox{1em}{C}
   3  \end{tabular}

適用後はこのような感じ。

一応見栄えは整った感じになるけれども、いちいち\raiseboxで高さを指定するのは面倒。

他に何か方法ないかなぁ。

See Also

posted by Png y_tsuda on Tue 7 Oct 2008 at 16:52

今さら何をという感じなのですが。自分用メモ。

まとめ

   1  $ chmod 755 /home/hibi/bin
   2  $ ls ./bin -al
   3  drwxr-xr-x  2 hibi hibi   45 2008-09-22 10:29 .

chmodについて:/usr/local/binで学ぶ

   1  drwxr-sr-x /usr/local/bin

  • 最初の3文字(rw-)は所有者のアクセス権,
  • 次の3文字(r--)は所有グループメンバーのアクセス権,
  • 最後の3文字(r--)はその他のユーザーのアクセス権

アクセス権は「r」「w」「x」で表され,アクセス権がない場合は「-」
http://itpro.nikkeibp.co.jp/article/COLUMN/20080617/308467/?ST=develop&P=3

さらに、

  • r 4 読みだし可
  • w 2 書き込み可
  • x 1 実行可能

http://www.k-tanaka.net/unix/chmod.html

[追記 2008.11.12] sshの鍵設定していたら、参考になりそうなものを見つけました

[追記おわり]

ちなみにsはセットIDというものらしく

SetUIDを設定していると,そのプログラムのプロセスのUIDは,所有者になります。SetUIDを設定する場合は

   1  $ chmod u+s samplepgm
http://itpro.nikkeibp.co.jp/article/Keyword/20070405/267555/

他にもg+s, o+sがあるそうです。

Refs

http://www.k-tanaka.net/unix/chmod.html
http://itpro.nikkeibp.co.jp/article/COLUMN/20080617/308467/?ST=develop&P=3

posted by Png satoko on Tue 7 Oct 2008 at 11:51

Objective-Cでオブジェクトを初期化する処理は、-init メソッドなどの初期化メソッドで実装されます。 よく見かけるのはこんな例ですね。

   1  - (id)init
   2  {
   3      [super init];
   4      /* initialization code */
   5      return self;
   6  }

しかしながら、基底クラスの初期化処理[super init]の最中に、 メモリアロケーションの失敗などによって正常に初期化が行われなかった場合に備えて、次のようなエラーハンドリングを行った方が良いでしょう。

   1  - (id)init
   2  {
   3      if(self = [super init]){
   4          /* initialization code */
   5      }
   6      return self;
   7  }

この辺の処理はXcodeなどが生成するひな形にも書かれていますね。

さて、ここからが本題ですが、上述の /* initialization code */ の中で初期化が失敗したときは、どうしたら良いでしょうか。 仕様的には、初期化に失敗したら nil を返す必要がありますが、 その際、途中までの段階で確保したリソースを解放する必要があるでしょう。 つまり、[super init]の中で確保されたであろうリソースを解放する必要があります。

   1  - (id)init
   2  {
   3      if(self = [super init]){
   4          /* initialization code */
   5          if(/* initialization failure */){
   6              /* release all resources */
   7              [super dealloc];
   8              return nil;
   9          }
  10      }
  11      return self;
  12  }

ということで、こんな感じに[super dealloc] を呼び出して nil を返します。 ここで、[super release] を呼び出すと、 参照カウンタが0になり、 [self dealloc] が呼び出されてしまうので注意が必要です。 [self dealloc]を呼び出すようにする場合は、上述の /* release all resources */ の中でリソースを解放せずに、[self dealloc] の中で解放するようにする必要があります。 しかし、失敗した初期化処理の中で中途半端に確保したリソースを、 正しく解放する為には、[self init] の内部で解放処理まで行った方が楽な気がします。 あるいは、以下の様に初期化済みのものだけ解放するようなコードを [self dealloc]に書いておくという手もあるかもしれません。

   1  #define RELEASE(x) if(x) [(x) release]
   2  
   3  - (void)dealloc
   4  {
   5      RELEASE(_something);
   6      [super dealloc];
   7  }

こんなコードを見ると、なんだかノスタルジーを感じます。

ちなみに関係ないですが、このブログシステムでは、 Objective-Cのソースコードを以下のような記法でSyntax highlightさせる事ができます。

   1  objective-c>>
   2  /* Objective-C code */
   3  <<objective-c

posted by Png genki on Mon 6 Oct 2008 at 22:09 with 4 comments