株式会社インフィニットループ PHPとスマホアプリ開発を行う札幌のシステム会社

技術ブログ

  1. トップ>
  2. 技術ブログ>
  3. 2011 10月の記事一覧

2011年10月25日 (火)

著者 : 

【社内勉強会レポート】 スクウェア・エニックスさんの講演資料「ゲーム開発プロジェクトマネジメント講座」を読み解く会を行いました

こんにちは、インフィニットループ代表のmatsuiです。

インフィニットループでは、毎週金曜日に社内勉強会を行っています。

ちょうど先日、株式会社スクウェア・エニックス CTOの橋本善久氏の講演資料
ゲーム開発プロジェクトマネジメント講座
が公開されていましたので、今回の社内勉強会ではそれを読み解く会を行いました。

          

          ※資料はPDFの形で公開されています → こちら

  

全部で285ページにも渡る巨大なスライドで、読み終わるのにおおよそ1時間半の時間がかかりました。
プロジェクトを失敗させないための色々なテクニックがちりばめられており、大変参考になると思います。

弊社でもさっそく一部の手法を取り入れてみたのですが、「仕様が決まっていない」 or 「途中で大きく変わる」(スライド資料内の例でいうと、ビルの形が定まっていない)場合には、多少のアレンジが必要かな、と感じました。

勉強会の様子はこのような感じです。
(進行役が資料を読んでいき、周りが思いついたことを発言し、ワイワイガヤガヤ議論していきます。)


2011年10月21日 (金)

著者 : 

100人繋いでも大丈夫!3000円で出来るサクサク社内ネットワーク構築法

こんにちは。弊社ネットワーク担当のshiromaです。
以前当ブログでも取り上げました通り、弊社は六月に新社屋へと引っ越しを行い、社屋の拡張と併せて人員の拡充を行ってきました。しかし、その人員の拡充に伴って内外の通信の量は肥大し続け、20人を過ぎた頃からNTT貸出のルータでは遅延がひどくなり、40人近くなった現在、社内基幹ルータの入れ換えが切実に必要という状況となりました。

かつてRTX1000を利用していた経験を活かせると考え、数万円の費用を払ってRTX1100を購入し、配備してみたのですが、一向に遅延は改善されません。更に調査を進めていくと、この遅延は弊社で標準利用していたSkypeが原因だという事が判明しました!

大人数でのSkype利用の問題

Skypeは非常に便利なコミュニケーションソフトであり、弊社でも内外での連絡の為にSkypeのチャットサービスを標準採用しています。しかし、人数が増えるに従って、Skypeの以下の点が問題となってきます。

  • Skypeは大量のショートパケットを吐き出す
  • Skypeは多くのホストと通信を行う

SkypeはP2Pでの通信を行い、他のホストを介して通信するので、他のノードと常に接続をすると同時に、他のノード同士の通信を仲介する役割を課せられる場合もあります。一つ一つの通信は大した事がなくても、ネットワーク内のマシン台数が増えていくに従って次第にルータの処理が追いつかなくなり、通信が遅延するという結果になっていたのです。

RTX1100での運用が間に合わないという悲しい結論になって、次の候補を選別中に先のSkypeの問題に気が付き、ショートパケットに強いルータを探す必要が出てきました。しかし、同じYAMAHAのルータを選ぶ場合は更に上位のRTX1500を購入する必要があり、その上でもちゃんと処理が出来るのかは実際に試してみないとわからないという不安な状況でした。その時、NECのIXシリーズのルータがショートパケットの処理に強い(=Skypeに強い)という評判を聞きつけ、Yahoo!オークションでIX2015を落札し、実際に試してみる運びとなりました。

以下で、実際にルータを設置してネットワークを安定させるまでの顛末を記しますので、Skypeやその他のメッセンジャーソフトの吐き出す大量のパケット負荷に喘いでいるのに、高い機器代を出して貰えなくて困っているネットワーク管理者の皆様は、どうぞご一読ください。

IXシリーズとは

IXシリーズとは、NECの業務用ルータのシリーズです。CiscoのIOSに近い設定方法で、柔軟で多機能を実現出来て、多くの拠点へVPN接続ルータとしての導入実績もあるシリーズですが、今回紹介するIX2015は2005年リリースの機種であり、定価は10万円近くした機種ではありますが、今ではオークション等で3000円程度で出回っています

結論としましては、2005年頃の機種と言っても、一般家庭やSOHOでの処理を捌くのに十分な性能を持っています。ただ一つ注意しないといけない点としては、本体のファームウェアを更新する為にはNECとの保守契約を結ぶ必要があるので、落札する際にファームウェアのメジャーバージョンが8になっている事(例:8.3.48)を確認してください。

実際の設定

前提となる社内のネットワークは以下になります。

  • /29レンジのグローバルIPをプロバイダから提供されている(例:xxx.yyy.zzz.104/29)
  • IP Unnumberedを利用して、グローバルIPアドレスを有効活用する
  • 社内には50台ほどのコンピュータがあり、連絡用ソフトとしてSkypeを利用している

※クリックで大きい画像を表示します。
network

IX2015/ファームウェア8系に準拠した設定方法を以下に紹介します

ip cache-size 20480
ip ufs-cache enable
ip ufs-cache max-entries 20480
ip route default FastEthernet0/0.1
ip name-server 8.8.8.8

dns cache enable
proxy-dns ip enable
proxy-dns interface FastEthernet0/0.1 priority 200
proxy-dns server 8.8.8.8
proxy-dns server 8.8.4.4

ppp profile example
  authentication myname user@example.net
  authentication password user@example.net sineup-password

interface FastEthernet1/0.0
  ip address xxx.yyy.zzz.105/29
  ip address 192.168.0.1/24 secondary
  ip mtu 1454
  ip tcp adjust-mss 1414
  no shutdown

interface FastEthernet0/0.1
  encapsulation pppoe
  auto-connect
  ppp binding example
  ip unnumbered FastEthernet1/0.0
  ip tcp adjust-mss auto
  ip napt enable
  ip napt translation max-entries 20480
  ip napt inside list napt_host
  no shutdown

大まかに言えば、左端のFE0/0のポートでインターネットへの接続を受け付け、右側のFE1/0の部分で内部LANを展開する方法になっています。この際、FE0/0.1の設定で、それ自体はグローバルなIPアドレスを持たず、FE1/0.0の持っているプライマリIPアドレスを名乗る様に設定しています。

そして、FE1/0のポートにxxx.yyy.zzz.105と192.168.0.1の二つを設定する事で、FastEthernet0/0.1はxxx.yyy.zzz.105を名乗り、192.168.0.0/24のマシンは192.168.0.1を、xxx.yyy.zzz.106~xxx.yyy.zzz.110のグローバルIPアドレスを持つマシンはxxx.yyy.zzz.105をゲートウェイとして、外部へ接続する事が出来ます。

SOHO向けの話として各種キャッシュ設定に関して触れますと、一番気を使ったのはnapt(アドレス変換)のエントリ数です。前述の通り、弊社ではコミュニケーションツールとしてSkyepを利用していますが、Skypeは非常に多くのホストに対して接続を仕掛けるので、平常時でも5000セッション、多い時には同時に10000セッション以上も張られている場合があるため、デフォルトの4096ではとても捌ききれないので増やす必要があります。

同様に、IPのルートキャッシュも増やしていますが、ある程度はNEC独自の高速化機能であるufs-cacheが吸収してくれるので、ここまで増やす必要があるのかは微妙ですが、ルートキャッシュは他の設定と違って設定の反映に再起動が必要という点を鑑みて、多めに設定しています。

以下の画像は、実際に置き換えて運用しているルータをモニタしたものです。

※クリックで大きい画像を表示
munin graph

始業時間周辺や突発的な大量通信の場合は多少CPU負荷が掛かるものの、基本的には40%前後を維持、メモリも50%前後といった所で安定しています。ネットワークへの接続は以前より格段に安定し、Skypeへのログインへ掛かる時間も短縮されました。監視している負荷状況から考えるに、この設定であれば、使い方にもよりますが一般的な事務所で100人規模の処理も捌ききってくれると考えられます。

基本的な設定は以上です。あとは各々の環境にあわせてDHCPを使う、NTPで時刻同期を取る、アクセスフィルタを設定する、IPSecを使う等々、IXシリーズのルータはパワフルで、設定もわかりやすく、多くの機能を提供出来ます。事業所のルータ選定に迷っている方は、選択肢として検討してみてはいかがでしょうか。

2011年10月10日 (月)

著者 : 

あなたも今日から布団人!!3万円で始める介護ベッドでプログラミング生活

こんにちは、インフィニットループ代表のmatsuiです。

プログラマは長時間労働はもちろんのこと、休日出勤も当たり前、その上座りっぱなしで腰痛気味、というようなケースも多く、この記事をご覧になっている皆さんも、かなり疲労を溜めていることだと思います。
「疲れを癒すには休息」 誰もが当たり前に分かっていることですが、日々の忙しさに追われ、なかなか実践は出来ないものです。
今回は、そんな限られた時間を使って、最大限の疲労回復をしつつプログラムを書くための、介護用ベッドを使った快適プログラミング環境の作り方についてお伝えしたいと思います。

まずはベッドです。
介護ベッドとは言っても、本格的なものは必要ありません。
市販の電動リクライニングベッドで十分です。
amazonや楽天あたりでサクッっと買ってしまいましょう。

1万円後半くらいからあるようですが、あまり安い物は動作モーター音が大きく下の階の人に気兼ねしてしまったり、スプリングがすぐにダメになってギシギシいってしまったりするので、少しお高くても良い物を買った方がよいと思います。

私が使用しているのは「収納式電動スマーティベッド AX-B914E」という機種です。
動作音が小さく、布団の上で長時間活動しても敷き布団がずれにくいので気に入っています。

しかしながら、この機種にあえてこだわる必要は無いでしょう。
3万円も出せば色々と選択肢がありますので、ご自身のライフスタイルに合わせて選ぶと良いと思います。

お好みでマットも買うといいでしょう。私は腰が悪いので、堅めのマットを買って敷いています。
サイズ的にはこちらのマットが安くてぴったりです。ゴムバンドを使って止めると、さらにズレにくいです。
→ ニトリ 3つ折りかためマットレス(ファニー2S)シングル

続いてPCを置くためのテーブルです。
膝上PC族の人には不要という方もいるかもしれませんが、これがあるか無いかで疲労度がぐっと違います。
2000~3000円程度の安いものでも十分です。
(※私の使っているモデルは販売が終わってしまったらしく、似た商品をご紹介しています。)

高さ調整ができるので、ベッドのワキにグッっと入ります。

PCを載せるとこんな感じです。

部屋スペースや、予算に余裕のある方にオススメするのが、介護用テーブルです。
広いテーブルで周辺機器を置くことが出来ますし、食事もできます。
テーブルには窪みがついていますので、万が一こぼしても安心です。
1万円程度で購入することができます。

キャスターが付いていますので、寝るときには足の方に軽くずらせば、邪魔になることなく寝ることができます。

メインのグッズのご紹介はこれで終わりですが、その他便利な小道具としては、次のものがあります。

まず必須なのは、上の写真にもPCの横に小さく移っていますが、ワイヤレスキーボードです。
布団の上で線がこんがらがる等の惨状は想像もしたくありません。迷わずワイヤレスにしましょう。

同じくワイヤレストラックパッドも必須です。
ワイヤレスであれば、寒い日は布団の中で手を出さずに操作ができます。
トラックボールでも良いでしょう。

もうひとつ強くオススメしたいのが、こちらの電源タップです。
安くコンパクトで、しかも考え抜かれた配置で、タップの穴を無駄にすることなく使い切れます。
1m, 2m, 3mの3タイプがあり、スイッチの有る無しも選べます。(私はスイッチ無し派です)
ベッドとは直接関係ないのですが、最近気にいっているものなのでご紹介します。

さて、いかがでしたでしょうか。
このような環境があれば、寝る寸前はもちろんのこと、起きて5秒でプログラムを書くことができますのでオススメです。

プログラマにとっての何よりの癒やしは、コードを書くことだと思います。
今回ご紹介したような快適なベッド環境を作成し、ぜひ仕事以外の「寝たまま趣味プログラミング」で、疲れを癒してみてはいかがでしょうか。


  • このブログについて

    このブログは、札幌市の「株式会社インフィニットループ」が運営する技術ブログです。
    お仕事で使えるITネタを社員たちが発信します!

    最新の記事