<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/paladin/">
    <title>あるエンジニアの独り言</title>
    <link>http://w.atwiki.jp/paladin/</link>
    <atom:link href="https://w.atwiki.jp/paladin/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>あるエンジニアの独り言</description>

    <dc:language>ja</dc:language>
    <dc:date>2015-09-10T09:11:24+09:00</dc:date>
    <utime>1441843884</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/paladin/pages/13.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/paladin/pages/1.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/paladin/pages/39.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/paladin/pages/38.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/paladin/pages/37.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/paladin/pages/36.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/paladin/pages/35.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/paladin/pages/34.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/paladin/pages/33.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/paladin/pages/32.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/paladin/pages/13.html">
    <title>書籍の紹介（２）</title>
    <link>https://w.atwiki.jp/paladin/pages/13.html</link>
    <description>
      **ＵＭＬモデリングの本質
#amazon(4822221180,right,image)
ＵＭＬの勉強の為に友達から借りた本。Javaもオブジェクト指向も中途半端だった頃に借りたのだが、その時はさっぱりわからなかった。
ちなみに、最近も読み直したがやっぱり難しい気がする。
そんな中で読み解けたような気がする内容は、モデリングがしっかりしていれば設計、実装が楽になるよ、という話だろうか。
開発対象のモデリングを実施し初期クラス図を作る。そしてそのクラス図をいろいろな観点から見直す（筆者は「ゆさぶる」という独自の表現をしている）。そして実装に落とす。
タイトルから推量できるとおり、重点はモデリングに置かれている。
自分も上流工程を目指す以上、こういう内容はもっとしっかり理解しないといけないと思いつつ、アナリシスパターン等の話は今の自分には難しく、流して読んでしまった。
そのうち返さなくてはならない本だが、もう少し力がついたら改めて目を通したい一冊だと思っている。


**入門オブジェクト指向設計
#amazon(4797328517,right,image)
これもJavaやVB.NETでオブジェクト指向を勉強していて設計について考えてる時期に買った本。
内容については、サーバーサイドJavaについてＭＶＣ２モデルに基づいてモデル、ビュー、コントローラーを上手に分割された設計をすることで、それぞれを得意分野とする担当者で分業が可能であるという話から始まる。
JSP、サーブレット、struts等について基本的なことがわかっていないと読むのが苦痛だと思う。ちなみに自分もサーバーサイドまで手をつけていない時期に買ったのだが、最初はさっぱりわからず、さらっと目を通したのち本棚に放置していた。
最近、サーバーサイドについて勉強を始めており、改めて読み直したところ若干理解できるところが増えたと感じた。
文章は問題を挙げて、その解法を示すというアプローチが多く、簡潔なサンプルコードについても悪い例と良い例を記載してある。サンプルコードについてはあくまでもポイントのみの記述なので、しっかりコードを読まないと何をする為のコードかわからないかもしれない（自分のスキル不足もあると思うが・・・）。
まだまだこの本から吸収しきれるだけのスキルが無いと感じているので、あと２、３回は読み直すことになる気がする。    </description>
    <dc:date>2015-09-10T09:11:24+09:00</dc:date>
    <utime>1441843884</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/paladin/pages/1.html">
    <title>トップページ</title>
    <link>https://w.atwiki.jp/paladin/pages/1.html</link>
    <description>
      *テーマ
エンジニアによるプログラミングに関するメモ
＆同じ事で悩んでいる人にとって少しでも助けになること
etc

読んだ本の記録やレビューはブクログに移行します。
http://booklog.jp/users/dark-k

*日記的
|BGCOLOR(gray):日付|BGCOLOR(gray):ページタイトル&amp;nbsp(80)|
|2010/01/20|[[VMWareでホストOSとゲストOS間の通信ができない件]]|
|2010/01/17|[[UbuntuをVMWareにインストールしてみた]]|
|2010/01/05|[[MySQLのBLOBに入ったPDFを表示する]]|
|2009/12/27|[[JavaでHTTP通信を試してみる(1)]]&amp;br()[[JavaでHTTP通信を試してみる(2)]]|
|2009/12/26|[[近況とか]]|
|2008/03/29|[[ＤＩコンテナについて勉強してみた]]|
|2008/03/19|[[Webアプリケーションの構成]]|
|2008/03/09|[[Strutsの入り口]]|
|2008/03/08|[[DTDとweb.xml]]|
|2008/03/05|[[SVN &amp; Subclipse導入]]|
|2008/03/02|[[Oracle10g]]|
|2008/03/01|[[自宅サーバー構築]]&amp;br()[[ApacheとTomcatの連携]]|
|2008/02/28|[[PostgresSQLで自動採番]]|
|2008/02/26|[[ドキュメントの旅　connectionインターフェース]]&amp;br()[[プライベート辞書　とりあえず完成]]|
|2008/02/23|[[プライベート辞書作成]]|
|2008/02/19|[[MySQL挫折、PostgresSQLへ]]|
|2008/02/17|[[計算機の改良]]&amp;br()[[Tomcatの設定ファイルの読込み]]|
|2008/02/16|[[開発環境再構築]]&amp;br()[[JSPの勉強開始]]|
※日付降順


----
Copyright &amp;mark_copy()　2007-2008　dark-k    </description>
    <dc:date>2010-04-04T11:25:27+09:00</dc:date>
    <utime>1270347927</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/paladin/pages/39.html">
    <title>VMWareでホストOSとゲストOS間の通信ができない件</title>
    <link>https://w.atwiki.jp/paladin/pages/39.html</link>
    <description>
      **2010/01/17
VMWareにUbuntuLinuxをインストールしてちまちま遊んでいる。
そんな中、ひとつ問題に遭遇した。

ホストOS（WindowsXP SP3）とゲストOS（UbuntuLinux）の間で
TCP通信がうまくいかないのだ。

気になったので、色々調べてみた。

環境は以下のとおり。

A：ホストOS　WindowsXP　192.168.99.100
B：ゲストOS　UbuntuLinux　192.168.99.101　Apache2インストール済
C:外部OS　WindowsVista　192.168.99.102
※IPアドレスは仮。

状況としては

A　→　B　にPingは届く
A　→　B　にブラウザでアクセスはNG
C　→　B　にPingは届く
C　→　B　にブラウザアクセスでページ表示

Cからの通信が成功している以上、Bの問題では無いと思われる。
また、AからBにPingが届いており、http通信ができていないので
TCPレイヤでの問題であることが推量できる。

不思議だったので、WireSharkでパケットキャプチャしてみたところ

A　→　B　[SYN]
A　←　B　[SYN,ACK]
A　→　B　[ACK]
A　←　B　[SYN,ACK]
A　←　B　[SYN,ACK]
A　←　B　[SYN,ACK]
・・・

ざっくり、上記のような通信状態になっていた。
つまり、3Wayハンドシェイクがうまくいっていない。
確定的な裏までは取り方が思いつかないが、どうも下記のような状態に見える。
１．AからBへの[SYN]は&quot;届いている&quot;
２．BからAへの[SYN,ACK]は&quot;送信されている&quot;
３．AからBへの[ACK]は&quot;送信されている&quot;
４．BからAへの[SYN,ACK]が&quot;再送されている&quot;
上記４から推察するに、BがAからの[ACK]がなんらかの要因で受信できておらず、
[SYN,ACK]の再送を繰り返しているように見える。

ここで手詰まり。
１から２への流れがあるから、AからBへのTCP通信がまるっきりできてないわけでは無い。
（２は１というトリガーが無いと送信されないはずなので）

とまぁ、ここまでの調査結果を踏まえてネットで調べてみたところ
同様の事例はあるらしい。
NAT接続で回避しているケースもあったが、一件ブリッジ接続での
解決方法を発見。

http://lunatear.net/archives/001090.html

いい線まで調査できていたけど、詰めが甘かった。
これで万事解決。
次のステップに進めそうだ。

しかし、文字だらけでわかりづらい。
気が向いたら、キャプチャ画像とかログのせてみるかも。






=============== &lt;&lt;&lt;ここから宣伝(自動追加)&gt;&gt;&gt; ===============    </description>
    <dc:date>2010-01-20T23:15:51+09:00</dc:date>
    <utime>1263996951</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/paladin/pages/38.html">
    <title>UbuntuをVMWareにインストールしてみた</title>
    <link>https://w.atwiki.jp/paladin/pages/38.html</link>
    <description>
      **2010/01/17
もう少しUnix系OSに慣れておきたい、でも新しいPCを用意するのは
ちょっと面倒、というわけでVMWareにUbuntuLinuxをインストールして
使える環境を作ってみた。

作業的には
・VMWareのインストール
・UbuntuのVMWare用イメージの取得
これだけ。
拍子抜けするくらい簡単だった。

以前、仕事でRedHatLinuxを触ったことがあったものの
１年以上前ということで、さっぱり忘れていた。
また、当時パッケージのインストール等は必要なかったので
その辺の操作もさっぱり。

というわけで備忘録的メモ。

起動してから、SSHやSubversionのインストールで使用
#highlight(highlight,){
sudo　rootログインせずに、root権限で実行する為のコマンド
apt-get install　アプリケーションのインストール
apt-get upgrade　アプリケーションのアップグレード}

設定ファイルを書き換えてからアプリを再起動するとき
#highlight(highlight,){
sudo /etc/init.d/ssh restart}

あと、設定ファイルの内容確認等で
#highlight(highlight,){
less [ファイル名]　ファイル内容を表示
head [ファイル名]　ファイルの先頭を表示
tail [ファイル名]　ファイルの末尾を表示}
headやtailは行数指定もできるんじゃなかったかな。

編集には当面viを使う予定。
使い方が特殊だけど、Unix系OSを扱う機会があるなら
覚えておいて損はない予感。

適当にいじりながら、今後はSubversion使えるようにしたり
APサーバー立てたりということを試していく予定。





=============== &lt;&lt;&lt;ここから宣伝(自動追加)&gt;&gt;&gt; ===============    </description>
    <dc:date>2010-01-17T19:58:01+09:00</dc:date>
    <utime>1263725881</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/paladin/pages/37.html">
    <title>MySQLのBLOBに入ったPDFを表示する</title>
    <link>https://w.atwiki.jp/paladin/pages/37.html</link>
    <description>
      **2010/01/05
MySQLでBLOB型の列にPDFファイルを挿入して、ブラウザで取り出して
表示する方法を友人に聞かれて答えられなかったので調べてみた。

BLOBについて簡単におさらい。
&gt;BLOB  は様々な大きさのデータを保持する事ができる大きいバイナリオブジェクトです。
&gt;4つの BLOB  タイプは、TINYBLOB、 BLOB、MEDIUMBLOB、そしてLONGBLOB  です。
MySQL5.1リファレンスマニュアルより

ＤＢに格納するところまではできたそうなので、取り出すところだけやってみる。

テーブル構造はこんな感じ
ＤＢ名:blobtest
テーブル名:test
|BGCOLOR(gray):フィールド|BGCOLOR(gray):種別|BGCOLOR(gray):備考|
|id|int|一意になるコード|
|data|longblob|今回の本命、バイナリデータ|

格納データはこんな感じで準備
|BGCOLOR(gray):id|BGCOLOR(gray):data|
|0|(PDFデータ)|
|1|(画像データ)|
いずれもネットで拾ってきたデータ。

PHPのファイルはバイナリデータそのものを返す&quot;view_data.php&quot;
バイナリデータを呼び出す&quot;view_main.php&quot;の２ファイルを用意。

view_data.php
#highlight(linenumber,sql){{
&lt;?php
header(&#039;Content-type: application/pdf&#039;);

//MySQLサーバに接続
$con = mysql_connect(&quot;server&quot;, &quot;user&quot;, &quot;password&quot;);
if (!$con){
    print(&quot;MySQLへの接続に失敗しました&quot;);
    exit;
}

//ＤＢ接続
if (!mysql_select_db(&quot;blobtest&quot;)){
    print(&quot;データベースへの接続に失敗しました&quot;);
    exit;
}

$sql = &quot;select data from test where id=0&quot;;

$result = mysql_query($sql);

$row = mysql_fetch_array($result);

echo $row[0];

?&gt;}}

view_main.php
#highlight(linenumber,sql){{
&lt;html&gt;
  &lt;head&gt;
    &lt;meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8”&gt;
    &lt;title&gt;PDF表示&lt;/title&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;a href=&quot;view_data.php&quot; target=&quot;new&quot;&gt;PDF表示&lt;/a&gt;
  &lt;/body&gt;
&lt;/html&gt;}}
※ここまで書いて気づいたけど、&quot;view_main.php&quot;はただのHTMLでよかった。

ファイルは別窓に表示したいということだったので、
a タグには target=&quot;new&quot; を入れている。
もしクリックした時に表示ではなくダウンロードにしたいなら、
&quot;view_data.php&quot;の3行目に下記の１行を追加すればOK。
#highlight(linenumber,sql){
header(&#039;Content-Disposition: attachment; filename=&quot;downloaded.pdf&quot;&#039;);}

最低限のことしか記述してないけど、伝わると幸いです。
今回はここまで。




=============== &lt;&lt;&lt;ここから宣伝(自動追加)&gt;&gt;&gt; ===============    </description>
    <dc:date>2010-01-05T22:24:53+09:00</dc:date>
    <utime>1262697893</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/paladin/pages/36.html">
    <title>JavaでHTTP通信を試してみる(2)</title>
    <link>https://w.atwiki.jp/paladin/pages/36.html</link>
    <description>
      **2009/12/27
とりあえずソースコードから。

#highlight(linenumber,sql){{package jp.dark.http.test;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.Map;

public class HttpRequestTest {

  /**
   * @param args
   */
  public static void main(String[] args) throws Exception {
    // TODO 自動生成されたメソッド・スタブ

    URL url = new URL(&quot;http://www.google.co.jp&quot;);

    HttpURLConnection urlcon = (HttpURLConnection)url.openConnection();

    //リクエストメソッドをセット
    urlcon.setRequestMethod(&quot;GET&quot;);

    urlcon.connect();

    //レスポンスヘッダ
    Map&lt;String,List&lt;String&gt;&gt; headers = urlcon.getHeaderFields();

    System.out.println
      (&quot;===================&lt;&lt;header&gt;&gt;===================&quot;);
    for (Object key : headers.keySet()) {
      System.out.println((String)key + &quot;:&quot; + headers.get(key));
    }

    BufferedReader reader =
      new BufferedReader(new InputStreamReader
          (urlcon.getInputStream()));

    System.out.println
      (&quot;\n====================&lt;&lt;body&gt;&gt;====================&quot;);
    while(true){
      String line = reader.readLine();
      if (line == null) {
        break;
      }
      System.out.println(line);
    }

    reader.close();
    urlcon.disconnect();

  }

}
}}

とりあえずHTTPリクエストが投げられれば目的達成なので、最小限のコードのみを記述。
ターゲットはグーグル先生にしてみる。

見てのとおり、コードを実行すればレスポンスヘッダとレスポンスのボディ部は出力されるようにコーディングしてるけど、実際どんなパケットが流れるのか興味があったので、WireSharkでパケットキャプチャしてみた。

このソースコードで生成されるHTTPのリクエストヘッダはこんな感じ
#highlight(,text){GET / HTTP/1.1
User-Agent: Java/1.5.0_21
Host: www.google.co.jp
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive}
User-Agentに何が入るのかは興味があったけど、まさかJavaがバージョンと共に入るとは・・・。

んでもってレスポンスはこんな感じ
#highlight(,text){HTTP/1.1 200 OK
Date: Sun, 27 Dec 2009 03:03:17 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=Shift_JIS
Set-Cookie: PREF=ID=96b84c3ca73be4fc（省略）
Set-Cookie: NID=30=Sxv5c1iaM5gF_Wu23r（省略）
domain=.google.co.jp; HttpOnly
Server: gws
X-XSS-Protection: 0
Transfer-Encoding: chunked}
Set-Cookieは長いので後半は省略。

ちゃんとボディ部も返ってきてるのだけど、難読化してるのかレスポンスのソースについての体裁を気にしてないのか、非常に見づらいので省略。

いずれにしても、実験は成功したと言えそう。
あとはTwitterAPIの仕様に基づいてリクエストを投げることで、期待するレスポンスが返ってくれば実験ができる予感。





=============== &lt;&lt;&lt;ここから宣伝(自動追加)&gt;&gt;&gt; ===============    </description>
    <dc:date>2009-12-27T21:04:37+09:00</dc:date>
    <utime>1261915477</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/paladin/pages/35.html">
    <title>JavaでHTTP通信を試してみる(1)</title>
    <link>https://w.atwiki.jp/paladin/pages/35.html</link>
    <description>
      **2009/12/27
最近Twitterが流行っているようで、技術者のはしくれとして気になっている。
（いまさら感たっぷりだが）
ひとまず、アカウントを作って一通り使い方を理解したので（ちなみに、使用したクライアントソフトはTweetDeck）、Twitterの機能を実現しているAPIについて色々と試してみたい。

以下、大雑把な方針。
-言語については、Javaを使用（ただの趣味）
-まずはJavaでHTTP通信ができるようになることから
-Twitterクライアントを作る為の基礎知識を得られる程度をとりあえず目標に
----
何はともあれ情報収集ということで、今回は以下のページを参考にさせて頂いた。

TwitterAPIについては英語で公開されているが、日本語に訳して公開してくれているページがあるのでそこを参照させていただいた。

&amp;color(pink){観測気球：}http://watcher.moe-nifty.com/memo/2007/04/twitter_api.html

ネットワーク系のクラスはほとんど使ったことがないので、javadocくらいは目を通すことにする。

&amp;color(pink){参照javadoc：}http://java.sun.com/javase/ja/6/docs/ja/api/java/net/URL.html

HTTPについて気になることは以下のページでRFCの日本語訳を探してみた。
ＲＦＣを訳してくれる方々にも、リストとしてまとめてくれている方にも感謝。
原文もたぶんＲＦＣなら読めるけど、やはり若干ストレスが・・・。
というわけで大変助かります。

&amp;color(pink){ＲＦＣ日本語版リスト：}http://www5d.biglobe.ne.jp/~stssk/rfcjlist.html
&amp;color(pink){RFC 2068 HTTP/1.1 日本語訳：}http://www.y-adagio.com/public/standards/tr_http11_2068/toc.htm

実装にあたっては、下記ページを参考にさせて頂いた。

&amp;color(pink){68user&#039;s page：}http://x68000.q-e-d.net/~68user/
----
つづきは[[JavaでHTTP通信を試してみる(2)]]で




=============== &lt;&lt;&lt;ここから宣伝(自動追加)&gt;&gt;&gt; ===============    </description>
    <dc:date>2009-12-27T19:55:01+09:00</dc:date>
    <utime>1261911301</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/paladin/pages/34.html">
    <title>近況とか</title>
    <link>https://w.atwiki.jp/paladin/pages/34.html</link>
    <description>
      **2009/12/26
どうやら1年9ヶ月ほど放置していた模様。

放置していた期間に起こったこと等。

■2009年に入って会社の方針ということもあり資格を取得
-OracleMasterBronze
-OracleMasterSilver
つまりOracleの勉強をしてましたよ・・・と。

■2008年10月からVB系の作業を1年程度
一般に上流と言われる、基本設計（的な何か）や詳細設計（的な何か）も
やったのだけど、常駐先の人がみんな上流肯定の経験が薄く、
上流肯定ごっこみたいな雰囲気だったのが残念。

■個人的な自己啓発はあまりしてなかった
我ながら迷走していた。
何かやらないといけないという思いをずっと抱えながら、自己啓発的な
活動は特筆できるようなことはほとんど無い。
強いて言うなら、ビジネス書をよく読んだくらいか・・・。

こんな感じ。
人生無駄なことは何も無いという人もいるし、概ね同意だけど・・・
もう少し色々真剣に取り組めば違ったかなと、振り返ってみて思った。
まもなく２０１０年、来年はもう少し１年を振り返って充実していたと
記録できるような年にしたいものである。




=============== &lt;&lt;&lt;ここから宣伝(自動追加)&gt;&gt;&gt; ===============    </description>
    <dc:date>2009-12-27T19:54:26+09:00</dc:date>
    <utime>1261911266</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/paladin/pages/33.html">
    <title>ＤＩコンテナについて勉強してみた</title>
    <link>https://w.atwiki.jp/paladin/pages/33.html</link>
    <description>
      **2008/03/29
相変わらず仕事が微妙に忙しい・・・

思うところがあって、今日はＤＩコンテナについて調べてみた。

検索してみた感じだと、国産のSeaserと外国産のSpringが
一般的な選択肢という感じ。
実態はよくわからないものの、どうやらSpringの方が実際の
プロジェクトでの実績があるっぽいので、Springをいじってみることにする。

今回参考にしたのは＠ＩＴ
http://www.atmarkit.co.jp/fjava/rensai3/springdi01/springdi01_2.html

EclipseにSpringIDEというプラグインを導入してサンプルコードを動かしてみる。
とりあえず、ソースコードでnewしなくてもインスタンスが作れるところまで
確認できた。

まだ途中なので、もうちょい遊んでからもう一回くらいSpringの内容で
記事を書いてみようと思う。



----    </description>
    <dc:date>2008-03-29T22:50:55+09:00</dc:date>
    <utime>1206798655</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/paladin/pages/32.html">
    <title>Webアプリケーションの構成</title>
    <link>https://w.atwiki.jp/paladin/pages/32.html</link>
    <description>
      **2008/03/19
仕事の方がぼちぼち忙しく、あまり自分の勉強ができてない今日この頃。

とりあえずいま作りたいと思っているのは、家計簿アプリケーション。
概ねやりたいことは
・日々の入出金の入力
・一ヶ月単位での科目別の集計
・月の出費の内訳比率表示
ｅｔｃ・・・
まぁ、普通に家計簿でできそうなことをやりたいなと。

実装にあたり必要な要素は
ユーザーインターフェース　→　Struts
データベース接続　→　Tomcatのコネクションプール
ロジック　→　Java
というところだと考えており、それぞれ未完成ながらも
基本的なところは押さえているつもり。

作り始めるのに最初に考えなくてはいけないのは、どうやら
データベースのテーブルスキーマ定義になると思うが
これについてはまだまだ勉強不足。

次の勉強のテーマはデータベース定義かな・・・。




----    </description>
    <dc:date>2008-03-19T06:12:40+09:00</dc:date>
    <utime>1205874760</utime>
  </item>
  </rdf:RDF>
