« 2008年12月 | トップページ | 2009年2月 »

2009年1月

NetJan設計 Com - 各Com処理内容 - 4

最後に、各局の終了時に使用されるコマンド

Com_4

  • Com_Win はサブステータスがWAIT_DISCARDの時はツモ上がりとして、AFTER_DISCARD/STEAL_REQUESTEDの場合はロン上がりか流局として、それぞれ許可判断される。 ModelScoreHolderのclose_request はfalseでリセットされ、その他メンバは上がりに応じてセットされる。 このコマンドでSCORE_CALCULATEステータスに遷移した時点から、UIで得点画面等が表示される。
  • Com_CloseScore は得点計算画面を閉じる等の操作を行った時に、各プレイヤーから送信され、全員が得点計算から受信した時点で次の局に移る準備を行い、GAME_SHUFFLEステータスへ遷移する。

| | コメント (0) | トラックバック (0)

NetJan設計 Com - 各Com処理内容 - 3

次はゲーム中に使用されるコマンド。 これらのコマンド群の使われ方を理解するには、サブ状態 を十分に理解している必要がある。

Com_3

  • Com_DiscardはサブステータスがWAIT_DISCARDの時のみ許可される。 切り番の人が、指定した牌を山へ移動する。
  • Com_StealはサブステータスがWAIT_DISCARDの時とSTEAL_REQUESTEDの時のみ許可される。 許可されてもすぐには“鳴き”の処理は行われず、STEAL_REQUESTEDの状態で一定時間経過するか、あるいは、要求者以外全員からCom_NoStealを受信した時点で、次のサブステータス(STEALING)に遷移する。 例えば、東家が牌を捨ててWAIT_DISCARDサブステータスにある時、南家から“チー”の要求があったとする。 この時、南家の手配がチー可能な状態であったら、stealrequests[南家のgpos] に”チー”をセットする。 ただ、この直後に“ロン”、“ポン”の要求が来る可能性があるので、STEAL_REQUESTEDで待機する。
  • Com_ChooseStealは、サブステータスがSTEALINGの時のみ許可される。 要求者は自分の手配のどの牌と組み合わせて“鳴く“かを要求コマンドの付加情報として送信する。 クライアントは鳴き方の選択肢が1つしか無い場合もSTEALINGから抜けるために、このコマンドを送信しなければならない。
  • Com_NoStealはサブステータスがWAIT_DISCARDの時とSTEAL_REQUESTEDの時のみ許可される。 捨てられた牌に対して、チー/ポン/ロンをしない事の宣言をするコマンドとなり、クライアント側は鳴く事ができない状況の場合、ユーザアクション無しにこのコマンドを発行するようにする。 この発行はコマンドの自動生成について の仕組みを用いて実現される。

| | コメント (0) | トラックバック (0)

NetJan設計 Com - 各Com処理内容 - 2

Com_2

Com_ShuffleはCom_DiceSeat処理時に自分が親だったら自動で要求発行される。 親以外からの要求は拒否する。 サーバ側は牌をシャッフルし、134個の牌の配列をまず作成し、クライアントへ送信、134個をModelHolderPileへセットする。 クライアントは配列を受信したら同じようにセットする。

Com_DiceDevide も親からの要求のみ許可される。 サイを振り、結果によってModelBoardのgpos_nexttake、ModelHolderPileのnexttake、をそれぞれセットする。 例えば、サイの目が“3”であった場合、gpos_nexttake=2、nexttake=7となる。 ここでの6は、西家プレイヤーの右手から見て何牌目のところから配牌するか、を示す。

Com_Distribute も親からの要求のみ許可される。 牌を山から手牌へ移動する。 親には14枚目まで配る。 この時点で、6.6.2サブ状態 のWAIT_DISCARDになり、親の捨て牌を待つ形となる。

| | コメント (0) | トラックバック (0)

NetJan設計 Com - 各Com処理内容 - 1

各Comコマンドのトリガ条件、Requestコマンドに付加されるデータ、(許可された場合の)サーバでの実行内容、Notifyコマンドに付加されるデータ、クライアントでの実行内容、を表にしたもの。 これら以外に、許可条件があるがこれについては以下表では省略する。

Com_1

Com_Startはサーバへのゲーム参加要求。 サーバから許可通知を受信した場合、受信したloginnames配列と自分のログイン名(myloginname)を比較し、例えば配列のloginnames[3]とmyloginnameが等しい場合、myloginindexは“3”になる。 

次にCom_SeatConfigコマンドにて、席順を決める。 本来は東南西北の牌をそれぞれが引いて決めるが、まずは固定とする。 gpos[0] (サーバ) = 5、gpos[1] (ゲームに最初に参加した人) = 3、gpos[2] = 2、gpos[3] = 1、gpos[4] (ゲームに最後に参加した人) = 0 と割り振る。 あえて参加順序と逆にするのは、そのほうがデバッグがしやすいと考えるから。 ただ、loginindexはゲームが開始されれば、ほとんど意識しない識別概念となる。

この時点でgpos=0の人が仮親なので、Com_DiceSeatで親決める事になる。 サイコロを振る権利の無い人からのコマンドは拒否される。

| | コメント (0) | トラックバック (0)

NetJan設計 model - ゲームサブ状態

サブ状態の定義のさせ方により要求の輻輳に対する処理方法を設計する。 例えば、プレイヤーAからのチー要求と、プレイヤーBからのポン要求が輻輳した場合、プレイヤーAからのチー要求を受けたサーバーは、チーが可能な状況でもすぐには許可せず、一旦、待ち状態(STEAL_REQUESTED)に移り、もっと優先度の高い要求が来ないかを確認してから、許可通知を行う。

  • WAIT_DISCARD   :プレイヤーの1人が牌を14枚持っている状態。 つまり、そのプレイヤーが捨てるのを待っている状態。
  • AFTER_DISCARD  :プレイヤーが牌を捨てた後の状態、誰かがロン上がり、鳴き、下家が牌取り(時間切れによる自動ツモ含)、のいづれかのアクションを起こすまで、このステートになる。
  • STEAL_REQUESTED:捨牌に対していづれかのプレイヤーから鳴き要求があった場合。 上がり要求よりも弱いため、上がり要求が無い事(他家からのNoAction)を確認してから、STEALINGに遷移する。
  • STEALING     :鳴きが認められて、鳴き方(チーの場合)を選択している最中。 選択不要な場合は、自動的にCom_ChooseStealが発生して捨て待ちとなる。

下記がその状態遷移図(ステートチャート図)

Gamesubstate

| | コメント (0) | トラックバック (0)

NetJan設計 model - ゲーム状態

メイン状態のステートチャート図は下記の通り。 ゲーム開始、サイコロで席決め、牌混ぜと山積み、サイコロで山の分け目決め、配牌、ゲーム(PLAY状態)、ゲーム終了(点数計算)、という流れ。
PLAY状態は更に細分化されたサブステートにて表される。
Gamestate

| | コメント (0) | トラックバック (0)

NetJan設計 Model_TileHolder

捨て牌、手配、山牌はそれぞれModel_TileHolderの派生クラスにより保持される。
ツモ、泣き、牌捨て、等の牌の移動を伴う操作は、各TileHolder派生クラスのメソッドを2つ組み合わせる事によって行う。 例えば、gpos=1の山から、gpos=0のプレイヤーが牌をツモる場合、

  • TileHolder_Pile(gpos=1) のtakeメソッド
  • TileHolder_Hand(gpos=0) のtakeメソッド

を組合せる事により実行する。

Tile_holder_xls

Class_model_tileholder

これで疎結合になっているか? と考えながらこのクラスが使われる各場面を想像してみる。

| | コメント (0) | トラックバック (0)

NetJan設計 Network - ソケットスレッド含有イメージ

サーバは4つのクライアントと同時に、非同期で送受信を行う必要があるため、4つのソケットスレッドを持つ。

Network_socketthread

ソケットの実際の最下層の処理は、ネットで調べたところ、java.io.InputStream、java.io.OutputStream、java.net.Socket 等を使う事になりそう。 細かい話は実装フェーズで決める。

設計書は随時Subversionにコミット。 ※blog右下のリポジトリへ

| | コメント (0) | トラックバック (0)

NetJan設計 Network - 詳細シーケンス

通信シーケンス内、TCP通信を行うのはSocketThreadクラス。 このクラスはNetJanのその他処理(表示等)とは非同期でデータ送受信ができるように、スレッドとする。 このクラスから、SDK共通クラスのTCP送受信クラスを利用して送受信を行う。

Sequence_network_cs

| | コメント (0) | トラックバック (0)

NetJan設計 Network - クラス

Network関係のクラスもcontrolパッケージの一部に属する。 下記はNetwork関係のクラス図。 サーバ用とクライアント用で、Networkのドライバクラスが異なる。 ドライバクラスの違いは、複数の送受信スレッドを持つかどうか、と、起動時に接続待ちになるか、それとも接続依頼する側になるか、の点。

Class_network

| | コメント (0) | トラックバック (0)

Excelで、開いたら変更履歴を出すようにする

Excelの変更履歴機能はなぜWordと仕様が異なるんだろう、と思うことがあります。 それはおいておき・・・

Excelに変更履歴を持たせるには、ツール → 変更履歴の記録 から記録させるようにもできるし、あるいはツール → ブックの共有 から共有にすると自動的に変更履歴を保持するようになる。

ただ、変更履歴の表示はDefaultでは最終保存時点以降の他ユーザのものしか表示されないので、全て保存させるには、ツール → 変更履歴の記録 → 変更箇所の表示 で設定しなければならない。 添付のファイルはブックを開くときにこの設定を自動で行うマクロを組み込んだもの。 

「hist.xls」をダウンロード

マクロ内容を確認するためには、一旦共有を外さなければなりません。 外したうえで、Alt+F11 を押せば、ソースが表示されます。 3行だけのいたって簡単なマクロです。

当然、ツール → マクロ → セキュリティ で”中”に設定されてる必要はあります。

| | コメント (0) | トラックバック (0)

NetJan設計 control - コマンド自動生成

内部クラス図内、ControlComGeneratorは、コマンドの自動生成を行うクラス。 通常のコマンド処理は、クライアントからの要求が元となって、サーバで実行可否判断が行われるが、サーバで自動生成されるケースもある。

例えば、プレイヤーの1人が牌を“ツモ“ると、一定時間内に捨てる必要がある場合。 そうしないと、他のプレイヤーは永久に“ツモ“をしたプレイヤーの捨て待ちとなってしまうからである。 このようなケースにおいて、ControlMainからControlComGeneratorへ“ツモ“コマンドが発生した事を通知し、Generator側はその時点からのタイマーで、”捨てる“コマンドの自動生成を行う。

Com_timer

| | コメント (0) | トラックバック (0)

NetJan設計 control - 内部構成

controlパッケージは、メインクラス(ControlMain), Com生成クラス, キュー、タイマー等で構成される。
Class_control

| | コメント (0) | トラックバック (0)

NetJan設計 ui - GUIの表示 - 表示位置判断

modelの識別概念の続きで、uiの関係する部分である、表示位置判断について記載する。

表示ポジションは、どの視点からゲーム盤を表示するかという概念。 Modelクラス、controlクラスでは、この概念は意識しない。
自分の位置を目の前とするので、そこを0とした時、席順(反時計周り)に、90、180、270という反時計周りに何度回転した状態か、というデータで保持する。

例えば、modelの状態が下記の状態であったとする。

Ui_pos1

”南”家のプレイヤーの表示をする際には、下記のように、gpos=0の部分を目の前として表示する。 ”自分がgpos=0である”という事は、myloginindexが”2”であるところから、導き出せる。

Ui_pos2

同じデータ状態でも、”西”家プレイヤーから見ると、下記のようになる。 このイメージ図では、南が下にあるが、西プレイヤーの画面には、西が一番下に表示される。

Ui_pos3

| | コメント (0) | トラックバック (0)

NetJan設計 Model-識別概念-役割

この後、サイコロで実際の起家が決まるが、gpos(Gameポジション)は変化しない。 例えば、仮親だった人が南になったとすると、下記のようになり、gpos_dealerのみ変化する。 ここで、役割は変化する

Gpos3

このように、gposはゲーム開始時点で確定してから、席替えするまでは、変化しない。 表示ポジションの概念については、”表示位置判断について”にて説明する。

| | コメント (0) | トラックバック (0)

NetJan設計 Model-識別概念-gpos(ゲームポジション)

次に、各ログインindexを持ったプレイヤーの中で、座り位置と仮親が決められる。 gpos=0が仮親、そこちら座り順(反時計周り)に、1⇒2⇒3となる。

Gpos1

上記のようにgposが決まった場合、席順のイメージに合わせると、下記のようになる。

Gpos2

| | コメント (0) | トラックバック (0)

NetJan設計 Model-プレーヤー識別概念について

麻雀は4人で行うゲームであるため、4人を識別を行う必要があるが、識別概念には、4つの種類がある。ログインindex、Gameポジション、役割、表示ポジションの4種。

  • ログインindex  :ゲームに参加表明した順に与えられるインデックス。
  • Gameポジション : 仮親になった人を0(東)として、席順(反時計周り)に割り当てられる識別子。  Modelの配列添字やメンバのほとんどは、gposで表される。
  • 役割       :各プレイヤーが、東南西北のどの役割なのか、という概念
  • 表示ポジション  :各プレイヤー毎に、自分の座り位置を0として、考える位置概念

ログインindexは、ゲームへの参加要求順番に割り当てられる。

Login_index

| | コメント (0) | トラックバック (0)

NetJan設計 Modelデータ構成

下記のデータで、NetJanの全ての状態を表せるようにする。 
基本的に、下記の全てのデータは、サーバと4つのクライアント全てで共有する事になるが、ModelLoginInfo 内のmy****メンバについては、それぞれが自分自身の情報のみを保持する。 この情報を利用する事により、自分自身が4人の参加プレイヤーの中のどの人なのかを識別できる。 

Model内のデータ構造について、loginindexとgameposの違いを理解している必要かある。
これについては、"プレーヤー識別概念について"、で記述する。

Data1

Data2

| | コメント (0) | トラックバック (0)

NetJan設計 Model派生クラス

ui、controlに対して、modelパッケージからのIFとなるのは、ModelMainで、このクラスが他の全てのデータクラスを含有する構成となる。 また、3.1.3表示パフォーマンス設計 にあるように、各モデルクラスは更新が発生した時に親クラスに通知する。

_model

| | コメント (0) | トラックバック (0)

NetJan設計 Com実行前確認と実行

Comは、クライアント側で、実行前確認/OKならサーバへの要求送信、サーバ側では、受信/サーバ側での実行前確認/実行とクライアントへの実行許可通知、クライアントは許可通知受信し、実行、という順序で処理が行われる。

_com_2

| | コメント (0) | トラックバック (0)

NetJan設計 Com派生クラス

ComはCom基本クラスから派生した各種コマンドクラスで構成される。

_com

| | コメント (0) | トラックバック (0)

NetJan設計 ui の役割について

uiと外部のインターフェースは、

  • ユーザからの操作受け付け
  • 要求コマンド発行(ユーザから明示的に操作がなく、タイムアウト等で発生するコマンドも含む)
  • controlからの表示命令受け付け
  • 表示処理

という4つに分けられる。

_ui

また、uiパッケージの方針として、

表示処理、及び、ユーザ操作の受け付けをつかさどるuiパッケージについては、さまざまな形を提供できるようにする。 最終的にはGUI、CUIの両方でのIFを提供する。 GUIについては、画面サイズの違いによる異なるUIのあり方を実現できるようにする。 
ただし、control, modelとは同じインターフェースにて設計する。

| | コメント (0) | トラックバック (0)

サーバ構築 Apacheのアクセスログ表示ができない

先日設定したWebalizerの集計を見ようとして、開くと、下記エラーが発生。 先日は見れてたのに・・・ httpdの再起動で無理になったのかな。

Forbidden
You don't have permission to ~

/etc/httpd/conf.d/webalizer.confに、下記行を追加

Allow from 192.168.11.0/24

/etc/rc.d/init.d/httpd restart

これでも同じ結果・・・ 仕方ないので、Wiresharkでパケット解析。 

どうもLinuxサーバにDNSしにいこうとしてるみたい。 ブラウザのツール⇒インターネットオプション⇒接続⇒LANの設定⇒詳細設定 に、LinuxのURLを追加して解決。

| | コメント (0) | トラックバック (0)

NetJan設計 表示パフォーマンス設計

表示更新処理は、uiパッケージ内のクラスで行うが、表示更新のパフォーマンスを確保するため、下記の2点を設計方針とする。

  • modelクラスの階層において、元祖 デザインパターンのCompositeパターンを変形させた形を用い、子側のデータ更新が、親側に伝わるようにする。 この事により、親側は自分の子も含めてデータ更新が発生しているかどうかが判断できるようになり、自管轄に変更が無い場合は何も処理しないようにできる。 この事により、パフォーマンス改善を狙う。
  • 子側は、データ更新時に親側に更新を伝える必要があるため、子に対して誰が親なのかを知らせておく必要がある。 注意点として、途中で親が変わるようなケースにおいて、親設定を随時更新する必要がある。

_composite

_composite_2

| | コメント (0) | トラックバック (0)

NetJan設計 MVC間の排他制御について

MVC間の排他制御は、Model部へのデータ更新(Comクラス経由にて行う)、View部への表示指を、ControlMainクラスが一括で行う事により行う。

独習Javaを見てsynchronized化部分を理解し直して作成。

_mvc

| | コメント (0) | トラックバック (0)

Voralent Invidi は相当使いやすい

Voralent Invidi は相当使いやすいですね。 

  • iTuneを立ち上げてない状態で、Voralent Invidiを起動すると、自動的にiTuneも起動されて、2つのソフトが起動された状態になります。
  • 次にiTune側で、いずれかの曲を再生します。
  • そうすると、Voralent Invidi 側でiTuneで再生中の曲が認識され、候補画像が表示されます。 この中から、好みのものを選択して、右クリック⇒アートワークをiTuneへ転送 を選択します。

2_transfer

  • これだけの操作で、iTuneに画像が転送されます。 
  • また、マイナーな曲を再生している場合等、Voralent Invidi が画像を拾ってくれない場合は、メニュー⇒ツール⇒検索キーワード から文字列を微調整すると、拾ってくれたりします。

3_string_change

| | コメント (0) | トラックバック (0)

Excelで、曜日を自動計算する方法

Excelの曜日計算はよく使いますよね。

式をシンプルにする方法と、使用セルを減らす方法、どちらが好みですか?

「test.xls」をダウンロード

ついでに、期限切れが近いもの(食べ物)とかを、期限の近さに合わせて、自動色変えするシートを隣に混ぜました。

続きを読む "Excelで、曜日を自動計算する方法"

| | コメント (0) | トラックバック (0)

【本】寝ている間に全自動で副収入が月8万円儲かるしくみ

私的ランク:★★★★☆

気軽な気持ちで買った本ですが、色々なタイプの副業が載ってると思ったら、アフィリエイトの詳細なテクニックが載ってる本でした。 このブログでは目的も違うのでここまで実践するつもりは無いですが、培っててたノウハウを惜しみなく公開しているので、高い点数を付けました。

| | コメント (0) | トラックバック (1)

NetJan設計 クライアントとサーバ間の排他制御について

クライアントとサーバ間の排他制御は下記設計方針にて行う。

  • クライアントは4つあるので、サーバは複数のクライアントからのパケット受信をするために、4つのソケットスレッドを立てて通信を行う。 但し、受信したパケットの処理は、1つずつ行う事によりパケットが錯綜しても大丈夫なようにする。
  • また、クライアント側でユーザ操作が発生等した場合、クライアントはサーバに要求を行うが、全ての処理において、あくまで“要求”であり、サーバから“許可通知”が来ない限りは処理しない。 また、要求と異なる“許可通知”がきても、それを処理する。

_cs

| | コメント (0) | トラックバック (0)

LetsNoteのカバーをamazonで購入

LetsNoteのカバーをamazonで購入しました。 最近はこんなものまで、amazonで購入できるんですね。

私が持ってるLetsNoteはT8ですが、サイズがピッタリです。

| | コメント (0) | トラックバック (0)

NetJan設計 設計書構成変更

Subversionの整理が完了したので、設計書を見直していたら、どうも見づらく感じました。 Word、Excel、Judeの3つの良いとこどりをして、それぞれの形式で表現しやすい部分をそれぞれのファイルに記載する方針としていましたが、どの情報がどこに書かれているか、全体像が掴みにくいです。 

なので、基本、Wordをメインの設計書とし、ExcelやJudeで作成したものは画像等にしてインポートして、Wordに全体像がわかりやすく表されてる事を目標とします。

0

今回、モデリングツールとして何を使うか色々調べました。 前に活動していたのが1年前なので、もっと良い、Eclipse上でソースと綺麗に連携できるフリーのツール等出てきてるかと思いましたが、まだまだ発展途上な感があります。 なので、Judeを継続して使う事に決めました。

また、設計内容についても、modelパッケージについては元祖 デザインパターンで紹介されている、Compositeパターンを使ったほうがうまく作れそうなので、この点、方針変更します。

| | コメント (0) | トラックバック (0)

ココログサイト改造

ココログサイトを色々と変更しました。

http://java.cocolog-nifty.com/blog/2007/02/cocolog_ajax_ca_45a0.html からココログのカレンダーを月移動可能なものに変更。 それにしても、暴想さん、良いところに目を付けてうまく作ってくれてます。

http://www.favicon.jp/ でfaviconを作成して、このココログに登録しました。 グローバル、を意識して地球にしたかったのですが良いのが作れなくて、このblogの記事タイトル前のPCからとることにしました。  色々見てると、どうもSleipnirだと"link"命令は使えないみたい

| | コメント (0) | トラックバック (0)

サーバ構築 webalizerインストール

LinuxサーバはEmobileのカードで繋いでおり、公開用として使う状態にはなってないけど、先にWebalizerを入れておく事にしました。

Webalizer

インストールして、

yum install webalizer

/etc/webalizer.conf を編集。  ローカルからのアクセス集計をして欲しくないから、IgnoreSiteで設定。 格納場所はデフォルトでクライアント側からhttp://www.alesi.mydns.jp/usage で見れるように、htmlディレクトリ内に指定

HostName       alesi.mydns.jp
OutputDir      /var/www/html/usage
IgnoreSite      192.168.11.*

集計実行。 

/usr/bin/webalizer

IgnoreSiteで設定したのに、反映されず集計されてしまう。 色々調べてると、どうも、 /etc/webalizer.conf 内の、HistoryName、IncrementalName で設定されているファイルに、キャッシュみたいなものが残ってるみたい。 /etc/webalizer.conf を開いて、

HistoryName     /var/lib/webalizer/webalizer.hist
IncrementalName /var/lib/webalizer/webalizer.current

hist、currentの2ファイルを削除してから、再び集計実行させると、うまくいきました。

解析作業は定期的に行うように設定しておく。 wgetの時同様、crontab -e で定期実行を指定するファイルを開き、下記の行を追加して保存。

0 9 * * * /usr/bin/webalizer

| | コメント (0) | トラックバック (0)

Excelで、複数の置換を一度に行う方法 複雑版

以前の記事で、複数文字列置換の数式を作成しましたが、今度は、1つの元文字列内に、2つ置換定義があれば、2つとも置換してくれるものを作成。 例えば、

  • AA ⇒ CC
  • BB ⇒ DD

という置換が必要なら、"AA and BB"⇒ ”CC and DD”となる。

今回はマクロにて提供。 definitionファイルは、置換セットを定義した別ファイルとしました。 replace.xls内、C1に、difinition.xlsへのフルパスを記入したうえで使用、です。

| | コメント (4) | トラックバック (0)

サーバ構築 Subclipseでのtag作成

前回記事で作成した、テスト用のクラスを削除し、この時点の環境をSubclipseでtag作成。

クラス削除してCommitしたうえで、SVNリポジトリViewへ移動して、tag作成。

31_tag_make

32_tag_name_input

Subversion導入時にもtagを作成してるので、これで2つ目のtag。 この様子がわかりやすいのが、TortoiseSvnのrevisiongraph機能

33_revision_graph_2

下記のように表示されます。

34_graph_displayed

この画面上で2つのrevisionを選択し(Ctrlを押しながら2つクリック)、比較とかもできます。 便利ですね。

フリーでここまでできるって、最近はすごいと感じます。

| | コメント (0) | トラックバック (0)

サーバ構築 Subclipse導入

Eclipse上のSVNリポジトリViewから、ブランチやタグの操作ができるみたいなので、やはりtrunkからでなく、その親フォルダから登録し直す。

11_parent_folder

既にリポジトリに作成済みの空フォルダ、”6_ソースコード/NetJan” フォルダにソースとプロジェクトが入るようにしたいので、Eclipseプロジェクトを作成する。 Eclipseのファイル ⇒ Import ⇒ SVNからプロジェクトをチェックアウト 既存のリポジトリロケーション利用を選択 

12_existing_svn

SVNリポジトリのどの部分からImportするか選択できるので、~ 6_ソースコード/NetJan を指定。 

13_specify_svn_folder

新規プロジェクトウィザードを使ってプロジェクトとしてチェックアウト ⇒ JavaProject 選択。 既存ソースから作成、を選択してローカルの”~ 6_ソースコード/NetJan”に対応するフォルダを指定。 

14_create_project

Finishボタンを押して終わり、のはずが、 ”This client is too old to work with working copy”とかいうエラーが発生。 メッセージ内容からして、ローカルリポジトリのSubversionのversionと、Subclipseのものが違ってそう。 調べてみると、Subversionの1.5移行のリポジトリの場合、Subclipseはversoin1.4.7以降を使う必要があるとの事。。。

前回記事で http://subclipse.tigris.org/update をEclipseのUpdateサイトとして登録したが、ここからだとSubclipseの1.4.7以降はDLできないみたい。 なので、削除して、代わりに、 http://subclipse.tigris.org/ で紹介されている最新のversion1.4.7用のURL、http://subclipse.tigris.org/update_1.4.x を登録。 ここからSubclipseをDL(ダウンロード)。

update_1.4.x 下のもの全てにチェックを付けて、Install

21_install_new_subclipse

(中途半端に作成されたものを削除してから) 改めて同じ手順を踏んで、プロジェクトを作成。 今度こそ成功した!

実験的にクラスを作成し、Commitしてみる。

22_create_class

23_commit_test_class

チェックイン成功したので、今度はTortoiseSvnから確認してみる。 ローカルの”~ 6_ソースコード/NetJan”で右クリックして、RepositoryBrowserで確認すると、Eclipseのプロジェクトファイル、作成した試験クラス、等がCommitされているのがわかる

24_check_with_tortoisesvn

それにしても、今後はSubversionのDBのversionが変わる事に注意しなければないない、と思いました。

| | コメント (0) | トラックバック (0)

サーバ構築 EclipseとSubversionの連携

EclipseとSubversionの連携をしていきます。 Subclipseというものを使えば、できるらしいので、Eclipseに組み込みます。 Help -> Software Update -> Available Software から、”Add Site”を選んで、http://subclipse.tigris.org/update を入力。

1_add_site

すると・・・ ”No repository found at eclipse” とかいうエラーが発生。 通信エラー発生時の頼みの綱、WireShark で確認すると、何とパケットが全く流れていない。 そもそもパケット送信する前にエラー発生したと判定されてしまってるという事か。 もしかして、proxyを通ってくれていないのかな? と思い、proxyの設定をできる項目を探したらありました。

Windows -> Preferences -> Network Connections

2_proxy_set

もう一度”Add Site”すると成功。 追加したサイトをチェックして、Install。

3_install

4_installing 

Eclipse再起動するよう聞かれるので、再起動。 次に、Eclipse左したのボタンから、Other選択

5_other

SVNリポジトリを選択。 

6_svn_repo_add

SVNリポジトリ画面が開くので、リポジトリの追加ボタンを押して、作成したtrunkのリポジトリを入力。 trunkの親を指定したほうがやりやすいのかもしれないが、必要なら変更します。

| | コメント (0) | トラックバック (0)

サーバ構築 Subversionリポジトリへ格納

リポジトリ内に、trunk、branches、tagsを作成。 適当なフォルダから右クリックしてリポジトリブラウザを開き、

Ws000000

フォルダを作成 ⇒ ”trunk”入力 のようにして作成していく。

Ws000001

次に、ローカルの”svn”フォルダを右クリックし、SVNCheckout 

URL部分には、http://www.alesi.mydns.jp/svn/netjan/trunk

チェックアウトディレクトリ部分には、C:\work\Job\Output\NetJan\svn\

を入力

Ws000002

今までの過程で作成したものを、格納する。 格納の方法はTortoiseSvnの説明書を見なくてもわかる。 この時点でtagを作成しておく。 RevisionGraph使うと、格納された様がわかりやすい。

Ws000004 Ws000003

| | コメント (0) | トラックバック (0)

サーバ構築 Subversionへの格納構成

Subversionのリポジトリに、設計書、ソースコード、その他をどのように格納していくか、を決めていきます。 

  • バージョン管理する必要の無さそうなものは、svn外 フォルダ内に格納する。
  • svnはいづれ公開する予定なので、公開するものはsvnフォルダにおいておく。

くらいの基準で、まずは決めて進めていく。

Folder_2

当然、Subversion内には、trunk、tags、branchesを持たせた上で、上記のフォルダイメージを1つの固まりとして管理する。

Svn_2

閲覧は、http://www.alesi.mydns.jp/svn/netjan で外からもできるようにしておくが、現時点、Emobileのカードを抜いた時点で、外からのアクセスは途絶えてしまう状態。

| | コメント (0) | トラックバック (0)

Excelで、複数の置換を一度に行う方法

Excelで、下記のように複数の置換を一度に行いたい時がありますね。

before_1 ⇒ after_1
before_a ⇒ after_a
bofore_z ⇒ after_z

こういう場合、「multi_replate.xls」 のような式を作成し、一端数式ありで置換させて、(この例だとC列) 置換語文字列全体をコピー、適当な場所で右クリック⇒形式を選択して貼り付け⇒値⇒OK とするとできます。

数式内、”H$3:I$5”の部分で、3と5の前に$を付けて、行を絶対参照にするのがミソでしょうか。 慣れてる人なら普通にやってる事ですが。。

| | コメント (0) | トラックバック (0)

サーバ構築 subversionのリポジトリアクセス改善

前回記事では、Apacheと連携したsubversion設定について記載したけど、今の設定方法では、リポジトリが全ユーザから書き込み可能な設定になっている。

drwxrwxrwx 7 toshiki toshiki 4096 2009-01-01 23:37 test

これはあまりよくないので、NetJan開発用のリポジトリはグループユーザのみフルアクセスを許可する形にする。 httpdはapacheというユーザで実行されているので、apacheとtoshikiを同じグループに所属させ、このグループに書き込み許可を行う。

groupadd subversion
usermod -G subversion apache
usermod -G subversion toshiki

vi /etc/group でグループ作成されているのを確認しておく。 

ついでに、新しいsubversoinユーザを作成しておく

cd /etc/httpd/conf.d/
htpasswd -mc svn.passwd nj_dev

パスワードは非公開 ★非公開010★

TortoiseSvnからnj_dev でtestリポジトリにチェックインできる事を確認。 OK! 次に、新しいNetJan用リポジトリを作成し、グループまでしかアクセスできないように設定

chmod 774 netjan -R

ノートPCから同じようにアクセスしようとすると、”Could not open the requested SVN filesystem” とエラー

・・・ Linuxの事をよくわかっていなかっけど、作成時にプライマリグループがtoshikiになってしまってると、ownerが、toshiki:toshikiになってしまい、せっかく作成したsubversionグループに属していない事になるみたい。 なので、chownで補正

chown -R toshiki:subversion netjan

もう一度 ノートPCからアクセスすると、成功した!

| | コメント (0) | トラックバック (0)

サーバ構築 Apacheとsubversionの連携設定

先日の記事にて、TortoiseSvnからのアクセスがうまくいかなかったが、それ以前にhttp経由でアクセスできるようにしてから、問題解決しようと思い、まずはhttpd(Apache)にsvn(subversion)を連携させました。 

まずは、mod_dav_svn をイントール。

yum install mod_dav_svn

次に、/etc/httpd/conf.d/subversion.conf を編集

<Location /svn>
   DAV svn
   SVNParentPath /var/www/svn/repo
   # Limit write permission to list of valid users.
   <LimitExcept GET PROPFIND OPTIONS REPORT>
      # Require SSL connection for password protection.
      # SSLRequireSSL
      AuthType Basic
      AuthName "Authorization Realm"
      AuthUserFile /etc/httpd/conf.d/svn.passwd
      Require valid-user
   </LimitExcept>
</Location>

/etc/httpd/conf.d/svn.passwd にユーザ一覧とパスワードが登録される事になる。 次はこのファイルの設定。 

htpasswd -mc svn.passwd ★非公開009★

パスワードを聞かれるので、入力して設定する。 ★非公開009★

apacheを再起動。 httpdデーモンで動作するので、iptablesのsvnデーモン用のポートをアクセスさせないようにする。 ※”iptables -D~”で削除

/etc/rc.d/init.d/httpd restart
iptables -D RH-Firewall-1-INPUT -p tcp -m tcp --dport cvspserver -j ACCEPT
iptables -D RH-Firewall-1-INPUT -p udp -m udp --dport cvspserver -j ACCEPT

次に、ノートPC側(ローカル)に、適当なフォルダを作成する。 右クリックし、”SVN Checkout” サーバ側のURLと、ノートPC側の作成したフォルダのパスを入力してOK。 成功したらその旨ダイアログBoxが表示される。

サーバ側のURLは、

Checkout Checkout_success

しかし、ローカルフォルダ内に適当なテキストファイルを作成して、Commitしようとすると、”Can't create directory '/var/www/svn/repo/test/db/transactions/1-1.txn': Permission denied”のエラー発生。。。

色々調べてると、Subversionの情報サイト に、解決方法が記載されていた。 どうも、Apacheを実行しているユーザに対して、リポジトリ内の全てのフォルダ、ファイルへのアクセスを許可する必要があるみたい。 

Apacheを実行しているユーザ というのは、恐らく、/etc/httpd/conf/httpd.conf 内、”User”で設定されているユーザの事。 今日のところは、"chmod 777~" を使ってこのユーザ以外も含めて全てのユーザにアクセス許可する。

リポジトリがあるフォルダに移動して、chmod実行 ※-Rは、testフォルダ以下の全てのファイルとフォルダに対しての設定

cd /var/www/svn/repo
chmod 777 test -R

再び、ローカルPCの作成したフォルダから、右クリック⇒SvnCommitを選択すると、ユーザとパスワードを聞いてくるので、htpasswd で作成したユーザとパスワードを入力して 成功!

| | コメント (0) | トラックバック (0)

サーバ構築 Linuxをproxyサーバとして使う

前回記事にて、D02HW を使ってLinuxサーバからネットアクセスできるようにしたので、今度は、ノートPC2つ(Let’sNoteとVaio)から、Linuxをproxyとして使ってネットアクセスできるようにします。

Lan_

まず、/etc/sysconfig/network のゲートウェイを、eth0に設定する。 

GATEWAY=ppp0

yumコマンドで、dhcp, squidをインストール

yum install dhcp

yum install squid

次に、できるPRO Fedora 8 Linux (DVD付) から、NATの設定をコピーし、アクセス制限変更。

mount /dev/cdrom /mnt

cp /mnt/dekiru/ipmasq /etc/rc.d/init.d

chmod 755 /etc/rc.d/init.d/ipmasq

/etc/rc.d/init.d/ipmasq を編集する。 私の自宅の場合、eth0がハブ(ルータ)に繋がってる、イントラネットのデバイスで、ppp0がemobileが繋がってる、外部インターネットへのデバイスなので、下記のように修正

IF_OUT=ppp0

IF_IN=eth0

LOCALNET=192.168.11.0/255.255.255.0

iptables -I RH-Firewall-1-INPUT -i eth0 -o ppp0 -j ACCEPT

iptables -D RH-Firewall-1-INPUT -i eth0 -o ppp0 -j ACCEPT

NATを起動させ、また次回Linux起動時に自動で立ち上がるようにしておきます。

/etc/rc.d/init.d/ipmasq start
chkconfig ipmasq on

次に、DHCPの設定をします。 /etc/dhcpd.conf のモード変更を行い(chmod 644 /etc/dhcpd.conf)、その後下記編集

    subnet 192.168.11.0 netmask 255.255.255.0 {
        range 192.168.11.16 192.168.11.240;
        option broadcast-address 192.168.11.255;
        option routers 192.168.11.100;
        option domain-name "alesi.mydns.jp";
        option domain-name-servers 60.254.193.158;
        option netbios-name-servers 192.168.11.100;
    }

次に、DHCPのデーモンファイルを、できるPRO Fedora 8 Linux (DVD付) からコピー。 その前に現時点のものをバックアップしておく。 

mv /etc/rc.d/init.d/dhcpd /etc/rc.d/init.d/dhcpd.20090102
cp /mnt/dekiru/dhcpd /etc/rc.d/init.d
chmod 755 /etc/rc.d/init.d/dhcpd

/etc/rc.d/init.d/dhcpd を編集し、eth0 をinputとして設定

IF_IN=eth0

DHCPを起動させ、また次回Linux起動時に自動で立ち上がるようにしておきます

/etc/rc.d/init.d/dhcpd start
chkconfig dhcpd on

次に、squidサービス(proxyサービス)を設定していきます。 /etc/squid/squid.conf を編集。  squidサービスは一般的に8080ポートを使うので、8080を設定。

http_port 8080
ftp_user Squid@alesi.mydns.jp
 ※ "acl CONNECT method CONNECT" の上に追加
acl localnet src 192.168.11.0/24 119.72.29.75/29 

 ※ "http_access allow localhost"の下に追加
http_access allow localnet

8080に対して、パケットを受け付けるようにiptableを設定、その後、squidサービスを起動。

iptables -I RH-Firewall-1-INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
/etc/rc.d/init.d/iptables save
/etc/rc.d/init.d/squid start
chkconfig squid on

ここまでで、Linuxサーバ側の設定は完了。 次はノートPC側の設定。

C:\WINDOWS\system32\drivers\etc\hosts ファイルに、"proxy.alesi.mydns.jp"を192.168.11.100 として登録。 

その後、ブラウザにproxy.alesi.mydns.jpを登録する

  • ツール
  • インターネットオプション
  • 接続 タブ
  • LANの設定
  • Proxyサーバのアドレスとポート、に”proxy.alesi.mydns.jp”と”8080”を入力

ノートPCから適当にネットサーフィンしてみる・・・ 成功!

■■■■■■■ 参考図書 ■■■■■■■
できるPRO Fedora 8 Linux (DVD付)
Linuxの仕組み
しっかり学べるUML2.0
元祖 デザインパターン
独習Java
入門Subversion
■■■■■■■■■■■■■■■■■■■■

| | コメント (0) | トラックバック (1)

サーバ構築 LinuxサーバでのEmobileの利用

年末にLetsNoteを買った事により、今まで使ってたノートPCを妻用にしました。 ただ、これにより、Emobileカードを何回も差し替えないといけないという事になり、 ”Linuxサーバ(Fedora8)にEmobileを繋げて、proxyにしたらいいんでは?” と思い立って、やってみました。 ただ、大抵の設定例はGUIなので、コマンドラインだけでの対応にはなかなか苦労したので、メモを残しておきます。

今回思ったのは、英語がスラスラ読めるメリットの大きさです。 英語のサイトまで足を広げると、大分助かりました。

まずは、Emobile(D02HW)をLinuxに差し込みます。 この時点で、Linuxがモデムを認識していないと、以下の手順以前の状態なので、このサイトだけでは解決できません。

まずは、モデムのシリアルが認識されているか、下記コマンド実行。 Linuxでは、モデムはシリアルとして扱われるそうです。

dmesg | grep tty

下記のように、"ttyUSB0"のような表示がされれば、認識OK。

usb 4-1: GSM modem (1-port) converter now attached to ttyUSB0
usb 4-1: GSM modem (1-port) converter now attached to ttyUSB1

次に、モデムからのダイアリングをするモジュールをインストールします。 

yum install wvdial

インストール完了したら、etc/wvdial.conf を作成します。

[Dialer Defaults]
Phone = *99***1#
Username = em
Password = em
Stupid Mode = 1
Dial Command = ATDT
Modem = /dev/ttyUSB0
Baud = 3500000
Init2 = ATZ
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = Analog Modem
ISDN = 0

wvdial を実行し、接続成功したら、Ctrl+Cで止めます。 

次に、今まで私の自宅LinuxはノートPC経由してネット接続していたので、defaultのゲートウェイがノートPCを指してるので、これを削除します。

/sbin/route delete default

wvdial & で、改めてモデムからダイアルし、Ctrl+Cではなく、リターンで接続継続したままコマンドプロンプトへ。 /etc/resolv.conf のDNSサーバのIPを、wvdialで取得したEmobile経由のものに更新。

先日、ノートPC経由でyumwgetを行うように設定したので、これらを元に戻しました。 この状態で、yumとwgetが成功する事を確認成功!

次記事では、ノートPCからのネットサーフィンができるところまで。

■■■■■■■ 参考 ■■■■■■■
できるPRO Fedora 8 Linux (DVD付)
Linuxの仕組み
しっかり学べるUML2.0
元祖 デザインパターン
独習Java
入門Subversion
■■■■■■■■■■■■■■■■■

テキスト コマンドライン CUI コマンドプロンプト イーモバイル 通信カード

| | コメント (0) | トラックバック (0)

Excelで、小数点の第*位で四捨五入

Excelで四捨五入する方法はround関数ですが、テキストにある数値ファイルを四捨五入したい場合等は、csvに一旦変更するのが楽でしょうか。

「round.xls」をダウンロード

"体重1", "65.735623", "55.238345" というテキストファイルがあるとすれば、そのテキストファイルの拡張子を.txt ⇒ .csvに変更。

それをダブルクリックし、添付のファイルのA~C列にコピー、すれば四捨五入できます。

| | コメント (0) | トラックバック (0)

サーバ構築 TortoiseSvnのインストール

次はノートPCにTortoiseSvnをインストール、設定していく。 まずは、http://tortoisesvn.tigris.org/ から、TortoiseSVN-1.5.6.14908-win32-svn-1.5.5.msi をダウンロードし、インストール。 普通に”次へ”を選択していくだけでOK。

インストールが完了すると、Windows上のどのフォルダからでも、右クリックするとTortoiseSvnのメニューが選択できるようになる。 

まずは、リポジトリブラウザで、リポジトリが見れるか確認。 なんと・・・

”no access allowed to this repository” と表示され、いきなりこけた。 色々調べてみると、/var/www/svn/repo/test/conf/ ディレクトリ内、

  • svnserve.conf の、anon-access = none を、anon-access = read に変更、
  • passwdの、ユーザ=パスワードの"="の前後にスペースを入れる

と、見れるようになった。 ただ、気になるのは、なぜ認証を聞いてこないのか、こちらはtoshikiユーザとしてアクセスしたいのに。 

| | コメント (0) | トラックバック (0)

サーバ構築 subversionの設定

次はLinuxサーバ(Fedora)Subversionの設定を行っていく。 

  • /var/www/svn/repo を作成
  • chown toshiki:toshiki repo で、ディレクトリのオーナをtoshikiに変更
  • /etc/xinetd.d の下に、svnserveを作成し、下記の内容を記載。 当然、user, server, server_argsは環境に合わせる必要あり。 only_fromの192.168.11.0の部分も、自分の自宅内ネットのサブネットに合わせてる

------------------------------------------------
service svnserve
{
disable = no
socket_type = stream
wait = no
user = toshiki
server = /usr/bin/svnserve
server_args = -i -r /var/www/svn/repo
log_on_failure += USERID
only_from = 192.168.11.0/24 127.0.0.1
}
------------------------------------------------

  • 同フォルダ内にcvsというファイルがあるが、これはcvsを使ってたころのものなので、削除する。
  • /etc/services に下記を追加する

------------------------------------------------
svnserve 3690/tcp # Subversion
svnserve 3690/udp # Subversion
------------------------------------------------

  • 同ファイル内に、cvs、svnで始まる行があれば、それらを削除しておく。 片方はcvsを使ってた頃のもの、svnはFedoraインストール時点で入ってるみたい。
  • 下記命令にて、svnのパケットを受け付けるようにする

------------------------------------------------
iptables -I RH-Firewall-1-INPUT -p tcp -m tcp --dport 3690 -j ACCEPT
iptables -I RH-Firewall-1-INPUT -p udp -m udp --dport 3690 -j ACCEPT
------------------------------------------------

  • cvs用のパケットを受け付けるようになっているものは、削除する

------------------------------------------------
iptables -D RH-Firewall-1-INPUT -p tcp -m tcp --dport 2401 -j ACCEPT
iptables -D RH-Firewall-1-INPUT -p udp -m udp --dport 2401 -j ACCEPT
------------------------------------------------

  • iptables --listでパケット受け付けの追加と削除が反映されているか確認する
  • /etc/hosts.allow ファイルに、”svnserve : 192.168.11. 127.0.0.1”を追加する。
  • xinetdにsvnserveを認識させる。 まずは、chkconfig --list で現状確認。
  • もしsvnserveが無いなら、下記にて追加作業

------------------------------------------------
chkconfig --add svnserve
service xinetd restart
------------------------------------------------

  • 上記で設定したアクセス権のあるユーザにて、 telnet localhost 3690 でsvnserveの動作確認。 ”Connected to ”と出れば接続成功!

  • 次に、アクセスするユーザの登録を行う
  • 作成したリポジトリ用のディレクトリ (/var/www/svn/repo) の下に、リポジトリを作成  ”svnadmin create test”で、今回はtestという名前のリポジトリを作成。
  • testディレクトリが作成され、この中のsvnserve.confとpasswdを編集する
  • svnserve.confについては、下記のようにする

------------------------------------------------
anon-access = none # Anonymous(匿名)ユーザのアクセスを許可しない
auth-access = write # 認証済みユーザには書き込み権限を与える
password-db = passwd # パスワードファイルをpasswdとする
realm = sample repository # リポジトリの説明(適当でOK)
------------------------------------------------

  • passwd については、下記のようにユーザ=パスワード の形式。 登録したいユーザの数だけ、行追加する事。 

------------------------------------------------
[users]
toshiki=★非公開009★
------------------------------------------------

ここまでで、設定作業は完了。

■■■■■■■ 参考 ■■■■■■■
できるPRO Fedora 8 Linux (DVD付)
その場でつかえるしっかり学べるUML2.0
元祖 デザインパターン
独習Java
入門Subversion
■■■■■■■■■■■■■■■■■

次回はノートPCからのアクセスについて

| | コメント (0) | トラックバック (0)

サーバ構築 mydnsのアクセス確認

さて、先日の記事で登録したmydnsについて、Linuxからアクセスしてみる。 http://connect2.jp/weblog/2007/05/linuxproxy.html を参考に、下記のproxy設定を行う。

■wgetの設定
/etc/wgetrc
http_proxy=http://[servername or server IP] :[port number]/

できるPRO Fedora 8 Linux (DVD付) の284ページを見ながら、”wget --spider --http-user=mydns33333 --http-password=<登録したパスワード> http://www.mydns.jp/login.html”を実行。 mydns サイトを見て、Linuxからアクセスされた事を確認できた。

■■■■■■■ 参考 ■■■■■■■
できるPRO Fedora 8 Linux (DVD付)
その場でつかえるしっかり学べるUML2.0
元祖 デザインパターン
独習Java
入門Subversion
■■■■■■■■■■■■■■■■■

上記の本とネットで調べながら、ここまでの作業を行ってます。

| | コメント (0) | トラックバック (0)

サーバ構築 subversionのインストール成功!

先日の記事にて、subversionのインストールができてなかったのですが、色々試行錯誤の末、できました。 

そもそも、事をややこしくしてるのは我が家のネットワーク環境。 後はLinuxの仕組みの理解不足。 HOW LINUX WORKS を買って勉強予定。

Lan_

上記のように、ノートPC(LetsNote)からしか、インターネットにアクセスできないようにしてるので、LinuxServerも、ノートを経由させなければインストール等ができない。 麻雀ゲーム完成して、稼働する段になれば別のネットサービス申し込みますが。

Linuxから”yum install subversion”としても、失敗するので、まずはノートPCとLinuxがネット的に接続されているのかを確認していく。 フリーソフトのWireShark を使って、パケットをモニタリングしながら、コマンドラインからping。 すると、パケットは流れてるけど、pingはタイムアウトしてる。。。 つまり、データはきてるけど、アプリ(ここではping)までは届いていない状態。

ファイアウォール関係でブロックされてるみたい。 ウイルスバスタを見ていくと、どうもここでブロックされてるみたい。 192.168.11から始まるIPなら、すべて受け付けるように設定。

Ws000000_2 Ws000001 Ws000002 Ws000003 Ws000004

ここまでしても・・・ yumコマンドは失敗。 WireShark を再び使って調べてると、yumコマンドをLinux側で実行してもノートまで来てない。 linuxがノートPCをproxyとして認識しなければならないが、それができてないのか。 http://connect2.jp/weblog/2007/05/linuxproxy.html を参考にして設定し、更に・・・フリーソフトのproxyソフトをノートPCに入れる( BlackJumboDog ) 

ここまで設定すると、やっとLinuxのYumが成功! 

下記はyum通信をproxy経由で行うための設定。

yumの設定
/etc/yum.conf
proxy=http:// [servername or server IP] :[port number]/

| | コメント (0) | トラックバック (0)

Java開発環境 eclipse

次は、Java開発環境のデファクトスタンダードである、eclipseをhttp://www.eclipse.org/downloads/からダウンロードする。

Eclipse

For_windows

Windows用のものをダウンロード。 解凍して、適当なところに移動するだけです。 起動はフォルダ内のeclipse.exe をクリックで。 初めて立ち上げると、ワークスペースをどこにするか聞かれるが、適当なところにワークスペース用のフォルダを作成して、そこを指定する。

Javaの言語の勉強は、独習Java でOKと思います。 今回の麻雀ゲーム作成にあたって、ちょっと読み直そうと思ってます。 

| | コメント (0) | トラックバック (0)

【本】なぜマネジメントが壁に突き当たるのか

私的ランク:★★☆☆☆

かなり深い事を書いてるように思え、また、書物を読んだだけではマネジメントは学ぶことができない、というのもわかったけど、それを書籍で書いているので、どうもつかみ所の無さを感じました。 しかし、amazonのレビューの点数はかなり高いです。

ただ、田坂さんという方はかなりレベルの高いマネージャーのような感触は受けたし、実際に会えるものなら会ってみたいと思いました。

| | コメント (0) | トラックバック (0)

Java開発環境 Jude

今後の麻雀ゲーム作成は、最近買ったLetsNoteで行うため、改めて必要なソフトをインストールする。 

まずは、JavaのSDKを http://www.sun.com/ からDL。 

Java

その次に、Judeをhttps://jude.change-vision.com/jude-web/index.html からインストール。

Jude

JudeはUMLモデリングツール。 UMLについては、その場でつかえるしっかり学べるUML2.0 がお勧め。 この本を見ながら設計を進めていく予定。

| | コメント (0) | トラックバック (0)

« 2008年12月 | トップページ | 2009年2月 »