<<Prev      Page 1      Next>>
なんだかなぁ・・・
タグ: 公開日:2010-09-03
今日は一人だから夕飯をエキナカの吉野家にしてみた。
数年ぶりの吉野家だったが、今は後悔してる。
牛さんの骨のカケラが入ってた。

生き物だし、骨ぐらいはあるのは当たり前だが、こんな経験は初めてだ。

なんだかなぁ・・・。

気づいたらテレビ東京
タグ: 公開日:2010-09-03
木曜の夜はテレビ東京を観ていることが多いことに気づいた。

・20:00 → 空から日本を見てみよう/天空散歩
・21:00 → 和風総本家
・23:00 → ワールドビジネスサテライト

「空から日本を見てみよう」は、空撮がなんとも爽快で気持ち良い。
「和風総本家」は豆助がかわいい。
「ワールドビジネスサテライト」は、曜日を問わず流している。

winkでRESTなシステム
タグ: 公開日:2010-09-03
REST(Representational State Transfer)なシステムを作るのが、結構面白い。


■RESTの概要

RESTはいわゆるWEBサービスのこと。
いや、RPC(Remote Procedure Call)に近いか。
RPCや通常のプログラムではメソッドやクラスを指定して処理を呼び出すが、
RESTはURIを指定して、何をするかをHTTPのGETやPOSTなどのコマンドで指定する点が違うが。

例えばユーザを取得する場合、通常のプログラムでは
 getUser()
などと呼びだすが、RESTでは
 http://xxx/user
に対してGETコマンドを実行する。

RESTはHTTPのコマンドと対応付けて、以下のような処理を実装する。
 POST →データ追加(C)
 GET  →データ取得(R)
 PUT  →データ更新(U)
 DELETE→データ削除(D)
綺麗にCRUDになる。

なので、先程のURI
 http://xxx/user
に対してPOSTを実行すれば「ユーザを追加する」ということになる。
(追加するための名前やIDなどの情報はHTTPのボディに埋め込む)

また、URIを工夫して
 http://xxx/user/smith
にGETコマンドを送れば、smithのデータが取得できる。


■RESTの実装

RESTなフレームワークを自前で実装するのは面倒なので、
ここはapacheのwinkにおまかせしている。

winkを使うと、上記のURIと実装を簡単に関連付けることが出来る。

例えば
 @Path("/user")
 public class UserService {
  @GET
  @Produces(MediaType.APPLICATION_XML)
  public Response getUser() {
と言った、アノテーションで注釈を付けるだけ。
@Pathアノテーションで「URIの/userに関連付くのはUserServiceクラスだ」という定義と
@GETアノテーションで「GETコマンドを受け取ったときに呼び出すメソッドだ」という定義が完了する。

先のsmithのようなURIは
 @GET
 @Produces(MediaType.APPLICATION_XML)
 @Path("{name}")
 public Response getUser(@PathParam("name") String name) throws Exception {
と書く。
「/user」の後ろに「@Path("{name}")」で名前が来ることを記して、
それを「@PathParam("name") String name」で受け取るという意味。

自分は名前だけではなくIDなどでも取得したいので、
あえてメソッドを分けて
 @GET
 @Produces(MediaType.APPLICATION_XML)
 @Path("id/{id}")
 public Response getUserById(@PathParam("id") String id) throws Exception {

 @GET
 @Produces(MediaType.APPLICATION_XML)
 @Path("loginid/{loginid}")
 public Response getUserByLoginId(@PathParam("loginid") String loginId) throws Exception {
のようにしている。

http://xxx/user/id/100だとgetUserById()が呼ばれて、
http://xxx/user/loginid/smithだとgetUserByLoginId()が呼ばれるという感じ。


■RESTの送受信

更新時の更新データや取得時の検索結果データなどは
XML、JSON、テキストなどで送受信する。
これもアノテーションで何を使うか指定する。
上のソースでもちょいちょい出ている
 @Produces(MediaType.APPLICATION_XML)
が、それ。
@Producesで送信形式、@Consumesで受信形式を指定する。
MediaType.APPLICATION_XMLでXMLということ。

例えば
 @POST
 @Consumes(MediaType.APPLICATION_XML)
 @Produces(MediaType.APPLICATION_XML)
 public Response addUser(User user) throws Exception {
は、送受信をXMLで行なう。
受信をXMLでして、その内容がUserクラスの形で受け取れる。
XML→Userクラスへの変換(マーシャリング)は、wink内でJAXBを使って行なわれる。

送信はResponseに
 User user = new User();
 ・・・
 return Response.ok(user).build();
のように詰め込む。

Userクラスの宣言にもアノテーションがいっぱい付いている。
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.FIELD)
 public class User implements Serializable {

  @XmlElement
  private Integer userId;
といった感じ。

これでマーシャリングもアンマーシャリングも
自動でやってくれるんだから、非常に簡単。


■RESTのクライアント側

クライアント側のフレームワークもwinkが提供してくれる。
 RestClient client = new RestClient();
 Resource resource = client.resource("http://xxx/user");
 ClientResponse response = resource.accept(MediaType.APPLICATION_XML).get(ClientResponse.class);
acceptメソッドの引数でXMLを受信するよと指定して、
getメソッドを呼べばresourceメソッドで指定したURIにGETコマンドを送る。

URIに
 Resource resource = client.resource("http://xxx/user/smith");
とすることも可能。

送信時のボディにデータを埋め込む場合、
 User user = new User();
 ・・・
 ClientResponse response = resource.contentType(MediaType.APPLICATION_XML)
         .accept(MediaType.APPLICATION_XML).post(ClientResponse.class, user);
のように、contentTypeメソッドで送信形式を指定して、
postメソッドの引数に送りたいものを渡せばOK。
winkが内部でXML形式に変換してボディに詰めて送ってくれる。


と、winkを使ったRESTの実装はこんな感じ。
わりと簡単・・・だが、ここまで把握するのにかなりの時間を割いてしまったが。

宅配ボックス
タグ: 公開日:2010-09-03
引越して半年余り。
ここには宅配ボックスがあるのだが、
実は登録内容を変更していないから、
宅配業者が荷物を入れようとすると
前の住人の名前が表示されて
宅配ボックスに荷物を預けてくれないことが多々あった。

親切な方は「名前違ってるよ?」と確認の電話をくれるのだが、
たいていは諦めて「不在連絡票」をポストに入れていく。

そうすると再配達の手続きをしないとならないし、
その時に部屋にいないとならない。
面倒だ。

でもそれ以上に宅配ボックスの登録内容を変えるのが面倒で
何もしていなかった。

が、さすがにそろそろと思って手続きを始めた。

ここの宅配ボックス。
サーバとつながっているらしく、
荷物が届くと登録したメールアドレスに
メールでお知らせしてくれる機能がある。
これがけっこう使いたいからだ。

特に通販で買い物をして、
それが届いたかな?というのを知るには良いツールとなる。
注文をして届くまでのドキドキ感とワクワク感が薄くなるかもしれないが。
でも期待して帰ったのに届いてなかったガッカリ感はなくなる。

食料自給率
タグ: 公開日:2010-09-02
日本の食料自給率、実はカロリーで計算するらしい。
つまり数値を上げたいなら、野菜などカロリーが低いものより、牛や豚などカロリーが高いものを生産したほうが効率的らしい。

ただし、その牛や豚を育てる飼料も計算に入れるから、これに輸入飼料を使うと自給率は下がるらしい。

全部WBSでやってた内容の受け売りだけど(笑)

新築賃貸マンションの写真
タグ:ログ 公開日:2010-09-02
こんな感じ。

これは1階の部屋。

メゾネットになっていて、部屋の階段で上の階に行ける。


これは最上階、12階の部屋。

ベランダの手前が明るいなと思ったら・・・。

天井がない!
この空間は何に使えばいいんだろう(笑)


この12階の通路からは、スカイツリーが見えた。

丘の上+12階ともあって、眺めは最高。


この賃貸マンションは上のほうの階に
「横から何かを通すの?」という感じの大きな穴が開いている。
ずっと何かなぁと思ってて、やっと謎が解けた。

上の階なのに庭?広場?
右に写っているドアから出入りできる。

これがそのドアから見たところ。

バーベキュー出来るね。
煙とにおいを気にしなければ。

ちなみにこの部屋と庭がひとつの物件。

タグ: 公開日:2010-09-02
中身をごっそり変えたから覚悟はしていたけれど、
久々にJUnitのテストがすべて通った。
実に1週間ぶりぐらいじゃないか?

たかだか20ぐらいのテスト数だけど(笑)

タグ: 公開日:2010-09-01
Javaに限った狭義な話で。
自分メモ。

■シリアライズ(serialize)=マーシャリング(marshalling)
オブジェクト(インスタンス)を何かに変換すること。
・シリアライズ(serialize)
 オブジェクト→ファイルやストリームに直列化すること
・マーシャリング(marshalling)
 オブジェクト→XMLに直列化すること

■デシリアライズ(deserialize)=アンマーシャリング(unmarshalling)
何かをオブジェクト(インスタンス)に変換すること。
・デシリアライズ(deserialize)
 ファイルやストリーム→オブジェクトに復元すること
・アンマーシャリング(unmarshalling)
 XML→オブジェクトに復元すること



■シリアライズ(serialize)、デシリアライズ(deserialize)
コンピュータ一般用語。

■マーシャリング(marshalling)、アンマーシャリング(unmarshalling)
JAXB(Java Architecture for XML Binding)の用語。たぶん。

タグ: 公開日:2010-09-01
Hibernateのログは必要以上に出てしまって他のログが埋もれてしまうという
弊害があるので、設定をいじってみた。
そうしたらすっきりした。

案の定、埋れていた例外のコールスタックが見つかって
問題解決の糸口が見えた。

以下、設定の抜粋。

■log4j.properties
log4j.logger.net.sf.hibernate=FATAL

■hibernate.cfg.xml
<property name="show_sql">false</property>

メディアプレイヤー・・・その後
タグ:IT 公開日:2010-08-31
購入しようとしていたメディアプレイヤー「DC-MC35UL4」がビックカメラでは入荷予定なしということで、Amazonで購入してしまった。



結婚式
タグ:ログ 公開日:2010-08-31
とある方の結婚式と披露宴に参加してきた。
ひとの結婚式に参加するのは、とても楽しい。

ただ、新築賃貸マンションの見学、
礼服での結婚式参列と
汗をかくことばかりだったからか、
翌日はぐったりで会社を休んでしまった・・・。

新築賃貸マンション
タグ:ログ 公開日:2010-08-31
うちのとなりに新築賃貸マンションが建って、
先日はその内覧会に参加してきて。

いま住んでいるところを引っ越すのは現実的ではないと分かっていても、
やっぱり新築を見てしまうと、いいなぁと思ってしまう。

ただ、猛暑の真昼間に冷房のない部屋を見てまわると、
ものすごくぐったりするね・・・。
実に5棟を見学。
・・・汗だくだったよ。

メディアプレイヤー
タグ:IT 公開日:2010-08-27
PCで録画したテレビ番組を観るのに、
いまはテレビに接続して再生できるタイプの
メディアプレイヤーを使っている。

ずっとDIGITAL COWBOYの「MOVIE COWBOY」という製品を使っている。
今のメディアプレイヤーは「DC-MC35UL3」、
その前は「DC-MC35UL2」だったかな?
んで、9/3に新しい「DC-MC35UL4」が発売になるようだ。

実はMOVIE COWBOYシリーズは嫌い。
新しいものが出るたびに機能はアップしているが、
消えていく機能と安定度が何とも不満を大きくさせる。
サポートもあまり良い噂を聞かない。

不具合修正や機能追加などが定期的にパッチで提供されるが、
新しい製品が出るとパッタリと止まる。
まぁ、新しい製品に乗り換えなさいということなのだろうが。

それなのになぜMOVIE COWBOYシリーズを使い続けるかというと、
他に適当な製品がないから。


さて、手元にある「DC-MC35UL3」と比較して新しい「DC-MC35UL4」の
自分が思う良い点は下記の通り。

・AVCHD(H.264)対応
 →今まで一晩かけてH.264に変換しても再生できなかった
・SATA(I/II)規格3.5インチ型ハードディスクを2基搭載可能
 →2TB×2基で4TB環境が出来る。
・Windowsファイル共有機能
 →いままでの共有機能はパフォーマンスが悪いらしく使っていなかったうえに
  専用ソフトを使わないとならなかったが、今回から専用ソフトは不要らしい
・冷却ファンが付いた
 →実はこれが一番うれしい
  いま使っているのはファンがない上に熱でHDDが壊れた時もあった

逆に残念に思う点は下記の通り。

・ネットワークが100BASE
 →このご時世なんだし、ギガビットにして欲しかった
・USB2.0
 →このご時世なんだし、USB3.0にして欲しかった


予約するかなぁ。
する。

化学式ノートPCクーラー
タグ:IT 公開日:2010-08-27
ちょっと興味がある。

■ノートパソコンの内部蓄積熱による暴走・故障を防止!!
 融解潜熱を利用した化学式ノートPCクーラー
http://buffalo-kokuyo.jp/products/accessory/cooler/note-pc/nclh/index.html

ノートPCの下に敷くだけで熱を逃がしてくれるものらしい。
何が良いって、敷くだけという手軽さと、
「化学式」という響き(笑)
製品説明を読んでも
・特殊無機結晶の融解潜熱を利用した
・融解潜熱を活用しているので
なんと「化学」な単語が散りばめられていること!

一番小さいB5ノートサイズで3,700円というのも
手頃な価格で良いですな。

追加経済対策
タグ:ログ 公開日:2010-08-26
今月中に追加経済対策の発表があるらしい。
明日にでも少々投資の仕込みをするかな。

新卒一括採用は日本を蝕む
タグ:ログ 公開日:2010-08-26
どういう内容なのか興味があって見てみたが、なんだかなぁ。

■新卒一括採用は日本を蝕む
http://mag.executive.itmedia.co.jp/executive/articles/1008/25/news026.html

以下、引用しながら反論したい。


> 終身雇用や年功序列処遇という日本的経営システムを支える1つが、新卒一括採用制度と言われる

つながらない。
採用は企業の入口の話。
終身雇用や年功序列処遇はその後や出口の話。


> 新卒同期会に入れてもらえない中途採用者たち

そんな会があるのだろうか。
よその会社にはあるかもしれないが、
自分が今まで触れてきた企業にはなかった。
「同期会」的なものはあったけれど、
その時期に中途で入ってきた人もその「同期会」に参加していたぞ。
だから年齢がバラバラで話が合わないなんてこともあったが、
むしろ同期だからそれを楽しんでいた感があった。


> 新卒一括採用された者は無垢の状態で採用されるから企業に対する忠誠心が生まれ、
> 長年にわたって構築される先輩・後輩、年令による上下の関係から社内秩序が維持され、
> 家族ぐるみで社内の結束力が高まる。
> この点だけからでも、新卒一括採用がすでに時代の流れに遅れていることが分かるというものだ。

それを狙っているが叶わないから若者の離職率が上がっているのではないか?
時代の流れに遅れているというか、その流れは身にしみてわかっているが、
やっぱりそれが「新卒一括採用は悪だ」ということにはつながらない。


> ある時期集中的に行われる採用によって採用や教育のコストが節約できるとも考えられているが、
> 逆に変化の激しいグローバル時代に、画一的にして硬直化した人材しか採用できないし、
> 教育できないという弊害を生み、あるいは創造力と活力を削ぐことになってきている。

新卒一括採用の理由はここにつきる。
こことは、採用や教育のコストが節約できること。
新卒採用活動は、新卒採用セミナーなどで希望者と初対面した時から
就職して新人研修が終わるまで1年〜1年半ぐらいの時間がかかる。
大企業なら人事部という専門の部署があるが、中小企業は日常業務との兼任がほとんどだ。
ただでさえ日常業務でいっぱいいっぱいのところで新卒採用活動を同時期に複数をまわすのは
コストパフォーマンスが悪すぎる。

それに新人研修で企業活動のすべてを教えることが出来ない。
だからOJTという制度があるし、そのOJTの中で社会の仕組や
仕事への考え方・進め方が養われていく。
新人研修はあくまでも「背中を押す」だけで、
その後の成長で創造力と活力が付いていく。
第一、自身が受けた新人研修の内容を覚えている社会人が
この世の中にどれだけいるのだろう?
少なくとも自分は覚えていない。
でも新人研修を終えた時より成長していると感じるのは、
新人研修後に成長をしたからという証拠になる。


> 説明会・面接は2・3月にピーク、内々定は4月に集中している。
> 内々定を受けられなかった者は、5月以降に内々定を受ける機会が
> 激減した厳しい状況下で就職活動を続けなければならない。
> 「青田買い」は、弊害が大きすぎる。

それは事実。これは問題だと思う。
でもだから新卒一括採用はやめましょうというのは話が違うような気がする。


> 専門科目の勉強が始まる3、4年生にかけて就職活動で時間をとられ、
> 発表当番の学生がゼミを当然のように欠席し、内定を取るためなら
> 授業を欠席してもいいなどの風潮がある。
> 内定が決まると、学生の学業に対する熱意が失われ、学力低下につながる。

これも事実で問題だと思う。
だったら採用活動を今より遅くしたら良い。
今が早過ぎるんだ。

でも良く考えて欲しいのが、何のために進学したのか?ということ。
勉強したいから?詭弁でしょ。
高卒よりも就職の幅を広げるためでしょ。
そのためなら授業を欠席するし、ゼミも欠席するでしょ。
就職活動より学業を優先する学生は性格を疑う。
いま何を優先するべきか?という社会人の基礎を知らないことになる。
知らなくても良いんだけれど、知ってる学生を採用したいのは企業にとっては当然。
だって、教育コストが削れるから。


> しかし、(言い過ぎだという批判を恐れずに言うなら)
> 「盗人にも一分の理あり」で、新卒一括採用や青田買い擁護論者にも言い分があるらしい。
> 就職活動期間が限定されれば、ある時期に集中し学生の負担が増え、大学の相談が雑になる、
> 受験企業の選択肢が狭くなる、短時間の選考で学生の考える時間が減少する、
> 企業にも学生にも自由にやらせたらいい、早く内定が決まると学生の親が安心する、
> 内定決定後の学生生活を自由に楽しめる・・・・・・。
> 何と本末転倒もはなはだしい言い分であることか。いちいち反論するのもバカバカしい。

こういうことを考えている企業があるのだろうね。
確かに反論するのはバカバカしい。
色々とエッセンスがあるが、
・受験企業の選択肢が狭くなる
 →通年採用を始めたら、就職したい学生と採用したい企業のサイクルがあわなくて
  余計に狭くなるような気がするが。
  次の採用タイミングまで、1ターン待つのか?
  更に就職留年が増えるぞ。

・早く内定が決まると学生の親が安心する
 →下の引用にもつながるが、安心するのは事実でしょ。

・内定決定後の学生生活を自由に楽しめる
 →大学に通ったときはないが、学生生活は楽しむためのものか?


> 大学卒業後2、3年銀行に勤めていたが、退職して1年間の世界旅行をしている
> ドイツの若者に出会ったこともある。彼らの将来の「定職」を心配する筆者に、
> 彼らは何が心配かといぶかる。現に、数年後に彼らから有数な銀行に就職したとか、
> 主要自動車メーカーに就職したという挨拶状をもらった。
> その後米国で再会した世界旅行の青年は、国連機関に就職したと言っていた。

いま話しているのは「新卒採用」についてで「中途採用」ではないし、これは日本の
価値観の違いもある。
日本人は起業失敗や転職者に対して再チャレンジをするハードルが高い。
転職情報やヘッドハンティングがこんなにも市民権を得た今でもハードルが高い。
ここが問題なのであって、新卒一括採用の話とは別だ。


> 今の瞬間も、多くの有為な若者が不本意にも就職留年で苦しんでいる。
> 日本が、どんどん蝕まれて行っているのだ。

就職留年で苦しんでいる若者がいるのは事実。
なんとかしないとならないが、優秀な人事部や人を見抜く力のある採用担当は
有為な若者をちゃんと見抜いて、抜け目なくがっつりと採用しているよ。
「2・6・2の法則」でいう、優秀な人材の「2」はね。
今までは中間の「6」もそつなく就職できたのにできなくなったから
大量の就職留年が発生しているような気がする。
そりゃそうだ。だって中間層は比率が多いから人数も多い。


ITMediaって、たまにこうした「飛んだ」記事を載せるよね。

MVC
タグ:IT 公開日:2010-08-25
何の話だかわかるだろうか。

 昔々、あるところに、おじいさんとおばあさんがいました。
 ある日、おじいさんは山へ柴刈りに、
 昔、昔あるところにおじいさんとおばあさんが住んでいました。
 おばあさんは川へ洗濯に出かけました。
 子供のない二人は毎日子供が授かるよう神様に祈っていました。
 「神様、どうか私たちに子供を授けてください。
 すると川の上の方から、大きな桃が流れて来ました。
 昔々、三匹の子ぶたを産んだ母ぶたがいました。
 母ぶたは子ぶたを育てていくことができなかったので、
 おばあさんは喜んでその桃を拾い上げると、家に持ち帰りました。
 子ぶたの将来を想って外に出すことにしました。
 そしておじいさんが帰ると二人で桃を切って食べようとしました。
 最初に出ていった子ぶたはわらの束を持った男に出会いました。
 どんな小さな子供でも構いません。」
 ある日のことです。驚いたことに、二人に小さな赤ん坊が授かりました。
 背の高さ一寸にも満たない男の子です。
 そこで子ぶたは言いました。
 さっそく一寸法師と名付けました。二人は宝物のように育てました。
 「ねぇおじさん、家を建てたいんでわらをちょうだいな。」

桃太郎と一寸法師と三匹の子豚の冒頭をゴチャマゼにしてみた。
さっぱり意味が分からないね。
でも、頑張って前後の行のつながりと内容を覚えておいて
頭の中で切り貼りすると内容が分かってくるような気がする。

何を言いたいかというと、MVCな書き方をしないプログラムは
上のようなものだと言うこと。
データ取得とビジネスロジックと表示処理がごちゃまぜに書かれて読み解くのに時間と労力がかかる。
あぁ、あとイライラもするから、精神衛生上もよくない。


せっかくだから3つの話を下に貼っておこう。
著作権は、もうないよね。

■桃太郎
昔々、あるところに、おじいさんとおばあさんがいました。
ある日、おじいさんは山へ柴刈りに、
おばあさんは川へ洗濯に出かけました。
すると川の上の方から、大きな桃が流れて来ました。
おばあさんは喜んでその桃を拾い上げると、家に持ち帰りました。
そしておじいさんが帰ると二人で桃を切って食べようとしました。


■一寸法師
昔、昔あるところにおじいさんとおばあさんが住んでいました。
子供のない二人は毎日子供が授かるよう神様に祈っていました。
「神様、どうか私たちに子供を授けてください。
どんな小さな子供でも構いません。」
ある日のことです。驚いたことに、二人に小さな赤ん坊が授かりました。
背の高さ一寸にも満たない男の子です。
さっそく一寸法師と名付けました。二人は宝物のように育てました。

■三匹の子豚
昔々、三匹の子ぶたを産んだ母ぶたがいました。
母ぶたは子ぶたを育てていくことができなかったので、
子ぶたの将来を想って外に出すことにしました。
最初に出ていった子ぶたはわらの束を持った男に出会いました。
そこで子ぶたは言いました。
「ねぇおじさん、家を建てたいんでわらをちょうだいな。」


ちなみに、桃太郎。
柔軟剤の「レノア」のCMで登場するが、タイトルが
「桃太郎」ではなく
「桃犬郎」になっているのをご存知だろうか?
アニメに出ているキャラクターが犬だから、遊び心だね。

次は誰だろう
タグ:ログ 公開日:2010-08-25
めざましテレビの高島アナが辞めてしまうけれど、
今後の同番組司会は誰がやるんだろう。

自分は生野アナを推したい。

commonsのvalidator
タグ:IT 公開日:2010-08-25
結局、validatorのソースに付いていたサンプルを見て解決。
マニュアルも大切だけど、サンプルはもっと大切だね。

<<Prev      Page 1      Next>>
検索
contact
contact@blog.midnight-skyway.com
タグ
読書-ビジネス
読書-IT
読書-other
IT
料理
ログ
投資
コーヒー
ワイン