<< 6月 2012 | Home | 8月 2012 >>

プロになるためのデータベース技術入門

ちょっと前になりますが「プロになるためのデータベース技術入門」を献本して頂きました。

データベース(RDBMS)を扱う上で必要な基本的なコマンドはもちろんのこと、データベースがどのような仕組みで動いているのかについても説明しています。
タイトルからはデータベース全般について解説している印象もありますが、オープンソースのRDBMSとして今人気のMySQLを中心に解説しています。
またWindowsをターゲットにしていますがOSに依存した部分は多くないのでMac、LinuxでこれからMySQLを触ってみたい!という人にも良さそう。
(中にはWindows PowerShellを活用してODBC経由でMySQLにアクセスするというWindowsベッタリで力強い(?)解説もアリ)

MySQLはストレージエンジンがプラガブルで、ちょっと古い解説書やWebサイトだとやや陳腐化しているMyISAMというエンジンの解説を見かけますが本書はもちろん最新のInnoDBがベースになっています。
(アプリケーションをまともにトランザクショナルな作りにするにはPostgreSQLかMySQL+MyISAMInnoDBにすべき!)

これからRDBMSを使ってみる、という方はやや難しめの技術解説の部分は飛ばしながらインストール、テーブルの作成、データの挿入(insert)、選択(select)といった基本的なコマンドを本書を参考に叩きながら覚えると良いでしょう。

また、RDBMSを操作する言語であるSQLには標準仕様があり、代表的なものとしてSQL92、SQL99があげられます。
基幹系システムでデファクトスタンダードとなっているOracleはSQL92に対応しているものの、SQL99の対応は微妙です(Oracle10gあたりの知識なので最近は知らない)。
DB2やMySQLの方がSQL99の対応は進んでいる(というか完全準拠?)のでOracleの訛りに慣れている人がMySQLを触る場合も良い参考になります。
(たとえばPL/SQLからSQL/PSMへの移行とか・・・)

ウチの自宅サーバでもMySQLを使っています。たいした知識もないままボンヤリ運用しているのですが、本書はバックアップ・障害対策についても詳しく書かれているので参考になりそうです。
(バックアップはTimemachineに任せていたけれどもcronでmysqldumpをしなくてはと思った・・)

Amazon:
楽天:

このエントリーをはてなブックマークに追加   

全てのソフトウェアエンジニア必携!? - Jenkins実践入門 #jenkinsja

Jenkins実践入門を頂きました。
NTTデータのトラブルシューティングやパフォーマンスチューニング、開発生産性向上のエキスパートである@lino_sの著・監修という安心クオリティ!

まとめ:
・スクリーンショットが豊富で親切・わかりやすい
・Jenkinsを使ったことない人にお勧め
・既に使っている人も運用・トラブルシューティングノウハウを獲得できるのでお勧め

Amazon:
楽天:
【送料無料】Jenkins実践入門

【送料無料】Jenkins実践入門
価格:2,919円(税込、送料別)



もう少し細かい書評・感想:
JenkinsはCI(Continuous Integration:継続インテグレーション)ツールと呼ばれるもので、ソフトウェアを自動的に、頻繁にビルド、結合、テストして品質をあげることを目的としています。

拙作Twitter4Jでは2009年からJenkins(当時はHudsonという名前だった)を使っており、今や「JenkinsなくしてTwitter4Jはありえない」くらいお世話になっています。

テストファーストでテストケースを書いてから実装コードを書き、テストケースをグリーンにしてからコミットするのは気持ちがいいもの。しかし人は怠惰で傲慢な生き物です。
いくらテストケースをしっかり書いても後々に「この修正は安全なはず」と奢ってコミット、テストをせずにリリースしてしまい、実は既存のテストケースで発見できたバグが後になって発覚するということがしばしばおきます。
新しいコードが副作用を起こさないかどうかを確認するリグレッションテストは全テストケースを実行しなければならず、それはプロジェクトによっては数十分、はては数時間という単位で時間がかかります。「自分は完璧」と思っていることを改めて証明するために数十分、数時間かけてテストを通し、コミットを待つのは大変ストレスがかかります。
そこでJenkinsの出番。コードをコミットしたら勝手にテストをして結果を記録してくれます。テストをしている間も開発者は新しいコードを書き始め、テストが終わる前に次のコミットをしてしまうこともできるのでストレスが減ります。
また、リグレッションが発生した場合はどのコミットでどのテストケースで失敗したのかをJenkinsのWeb画面で確認できるため問題の発見・追跡も大変容易になります。

正直Jenkinsは非常にユーザーフレンドリーなのでちょこっと使うのにそれほど迷うことはありません。
しかしこの本はJenkinsのインストール方法といった入門だけにとどまらずSVNやGitとの連携、issueトラッカー(Trac、Redmine、JIRA)との連携方法からSeleniumと連携したWebアプリケーションのテスト方法など「実践・入門」と掲げたタイトルに見劣りしない濃い内容になっています。

・Jenkinsを使ってみたいけれどもイマイチとっかかりがない
・インストールしてみたけれどもどうしたら便利になるのかよくわからない
という層にはピッタリの本です。

私は既にTwitter4Jでぼちぼち使っているので序盤はナナメ読みしてしまいましたが、Jenkinsは使えば使うほど可能性が広がり、また自分でプラグインを作って拡張してみたくなるもの。
この本ではもちろんプラグイン開発の基本も解説しています。アイディアだけは色々とあるので今度この本を参考にしながら作ってみたいと思います。

またJenkins自体のチューニング、トラブルシューティング方法、そして大規模な開発で必要となるマスター・スレーブ構成時の運用方法など体系的に書かれているのでいざという時のため手元に一冊あると安心です。

同じく@lino_sの著書、「現場で使えるデバッグ & トラブルシュート Java編」も大変オススメです。
Amazon:
楽天:


関連記事:
Jenkins実践入門発売にあたって - Linoブログ
「現場で使えるデバッグ & トラブルシュート Java編」を頂きました - 侍ズム #samuraism

このエントリーをはてなブックマークに追加   

「Pogoplug Family」ローンチ記念ブロガーミーティングに参加 #pogoplug

Pogoplugは簡単に設置できるNAS(LANでアクセスできるディスク)です。
ネタフルでいつも大絶賛なので気になっていました。

ウチには自宅サーバがあり、大きなデータやTimemachineのバックアップはDroboに格納しています。なのでPogoplugを導入するメリットがどれくらいあるのかは未知数なのですが写真や動画などのメディアをモバイル端末からアクセスするのに便利らしいので気になっていました。

するとPogoplug Familyローンチ記念ブロガーミーティングというのが開催され、しかも参加者はPogoplugを頂けるとのことで秒速で参加申し込みをしました。


Pogoplug Familyローンチ記念イベント

Pogoplug FamilyはPogoplugで共有しているディスクを最大5人までアクセス可能にする(全員で共有したり、個別の領域を設けたりできる)サービスで、Pogoplug本体と別に年間1,980円のサブスクリプションフィーがかかります。

ローンチ記念として今ならPogoplug Familyを申し込むとPogoplug本体がもらえるキャンペーンをするそうです!
在庫限りのキャンペーン(USB3.0、SATAポートを搭載した次期バージョンがあるので在庫処分?)なので昨日のイベントに参加し損なったけど気になっている人はとりあえず申し込んでみると良いのではないかと!!


イベントに参加して頂いたPogoplug Mobile

さて、家に帰ってセットアップしてみたけれども噂通り簡単。ACアダプタ、イーサネットケーブル、余っていたUSB接続のドライブを繋げて電源を入れるだけ。
あとはアクティベーション用のWebサイトにアクセスしてアカウントを作るだけ。

Web画面からファイルをアップロードしたり、動画ファイルを3Gネットワーク経由でiPhoneから観たりが簡単にできます。
普段の作業用ファイルはDropbox+Timemachineでバックアップ/同期をしておき、見る頻度は少ないけれども容量の大きいファイルはPogoplugに入れておくのが良さそう。

しかし、うちには既にDroboが接続されている自宅サーバがあり、そこに大容量ファイル群がおいてあります。もう一つNASが必要なの??と考えると使いどころが微妙な感じも。もうしばらく体験してから使い分けを考えていきたいと思います。

また、Windows、MacをPogoplug化してしまうPogoplug PCというソフトも発見しました。これはPogoplugのハードウェアがなくてもWindows/MacのドライブをPogoplugと同じくインターネットから閲覧できるように(もちろん指定したフォルダだけ)するソフト。Pogoplugのサイトが中継してくれるようでルーターに穴を開けたりといった面倒な設定は必要ありません。$29.95の有償ソフトでこちらも検証中。
1ヶ月は無償で利用でき、クリーンにアンインストールできるそうです。自宅で立ち上げっぱなしのPCがある場合はもしかするとこちらの方がいいのかも?
下の紹介リンクからダウンロード、評価してお買い上げの際は5ドルのディスカウントを受けられます。
Pogoplug PC Friend Referal


背面のポート類(Ethernet、USB、AC)。この他側面にSDカードスロットもある


大きさはこんな感じ

ちょっと使っていいなと思ったのは動画をiPhoneやiPadで見る場合、画面に合わせて最適化(トランスコード)してくれること。Dropboxは生のファイルをダウンロードするだけなのでこうはいかない!
やはり動画・写真などのメディア置き場としていい感じ。

ぼちぼち使ってからまたレビュー記事を書きたいと思います。

関連記事:
[N] 「Pogoplug Familyブロガーミーティング」無事終了 → 日本でもローンチ!
[N] 【参加者募集】「Pogoplug Family」ローンチ記念ブロガーミーティング開催します!【7/19】

このエントリーをはてなブックマークに追加   

動画で紹介 - からくりが美しく、連番を自動的にスタンプしてくれる「ナンバリング」

帳簿の際、会計ソフトで自動的に割り振られる項番を領収証に書いていくわけですが、まとめて10枚、20枚・・・50枚とか記帳すると(領収証溜めすぎ!)数字を書くのが大変面倒。そして数字ばかり観ているので項番ではなくて金額を間違えて書き込んでしまうミスもたまに発生します。

そこで自動的に数字が繰り上がるスタンプがないかと調べてみたら、ありました。一般的に「ナンバリング」と呼ばれるみたい。
・4ケタ打てるNR-404

Amazon:
楽天:


・スタンプを押すたびにガシャッ、ガシャッと数字が1,2,3...と繰り上がる
・4ケタ、5ケタ、6ケタ・・とケタ数のバリエーションが豊富
たぶん3ケタで十分だけども今回は4ケタのを買いました。
・毎回スタンプ台に乗せてインクをつける必要がない
本体に内蔵するインクパッドにインクをしみこませておけば自動的にインクが付く方式
・毎回繰り上がりだけでなく、「繰り上がらない」「2回押したら繰り上がり」「3回押したら繰り上がり」という方式に切り替えられる
・ケタ数を減らせる
すばらしいカラクリで不要なケタを凹ませて印字させないように設定できます。今は3ケタで使っています。

電子部品は何もなくカラクリだけですばらしい機能を実現させており、製品として非常に美しいのでビデオに撮ってしまいました。



ちなみにフリーランス・個人事業主・副業サラリーマンが日頃帳簿をチマチマつけて節税をするためのノウハウを学ぶにはきたみりゅうじさんの本がおすすめ:
Amazon:

楽天:


そして帳簿付けにはやよいを使っています。Macで評判の良いソフトはないので残念ながらParalells DesktopにWindows XPを乗せて動かしています。
Amazon:

楽天:


関連記事:
ナンバリング - クリップ・パンチ・紙ぞろえパンチャー・ナンバリング - オフィス機器 - マックス株式会社

このエントリーをはてなブックマークに追加   

Gradleトーキョー に参加しました

先月バージョン1.0を迎えた「またもう一つのビルドツール」、Gradleの勉強会、Gradleトーキョーに参加しました。
Gradleトーキョー : ATND

Ustream係で序盤バタバタしてしまい置いてけぼりに。
でもなんとか
・brewでインストール
・簡単なプロジェクトを作成
・IntelliJで読み込む
・テストを書く
・コマンドラインからテスト実行
・簡単なWebプロジェクトを作ってJettyを起動
はできた。

Gradleは後出しじゃんけんなだけあって確実にmake,ant,mavenのビルドスクリプトよりシンプル!
あとはどれくらい普及するか、IDEサポートが充実するか・・かな?

当日の様子はこちら:
パート1


パート2


関連記事:
Gradleトーキョーにいってきた! - しおしおの雑記帳

タグ :
このエントリーをはてなブックマークに追加   

アメージング・スパイダーマン #あめすぱ

を観た。
アメイジング・スパイダーマン - オフィシャルサイト
アメイジング・スパイダーマン #あめすぱ

スパイダーマンの続編を作ろうにもトビー・マグワイアの出演料が高騰してしまったので役者を変えて撮影・・・かと思えばスパイダーマン誕生話から語られる仕切り直しの作品だった。

ピータ・パーカーことアンドリュー・ガーフィールドと実際つきあってるらしいヒロインがカワイイ!毎日ミニスカートをはいてくる人がアメリカにいるのか?ニューヨークならいるのか?

人目を避けて下水で研究を続けるシーンはまるでダークマン。監督は今回はサム・ライミじゃないらしいけどオマージュなのかな?

単純明快で楽しかった。ほどほどに伏線が残してあり続編も作る気満々。

Amazon:


楽天:


タグ :
このエントリーをはてなブックマークに追加   

崖っぷちの男

を観た。
崖っぷちの男

ニューヨークの高層ホテルで自殺を試みる男が主人公。
実は自殺は偽装で別の目的の陽動作戦なんだけど・・・とう筋書き。
フクザツな伏線はなくすんなり楽しめた。期待したほどどんでん返しはなく、結構予想通りの結末。115分はちょっと引っ張りすぎな感じ。

ワンカットで窓を突き抜けて移し続けるカメラワークが面白かった。

タグ :
このエントリーをはてなブックマークに追加   

人気のメールソフト Sparrow が今週末は半額!

ということで無償のLite版も試さずに買ってみた。
今なら450円!
Mac App Store - Sparrow

このエントリーをはてなブックマークに追加   

Droboを購入

1TBのハードディスクが4台もあり持て余し気味だったのでDroboという製品を購入しました。
Drobo - Small Box, Big Storage

Droboは簡単に扱えるRAIDのようなもので、特に考えずHDDを箱に突っ込むだけで冗長性を保ちながら容量を増やしてくれる製品。


とどいた!


不織布の袋に入ってる


結構でかい


付属品: ACアダプタ、USBケーブル、Firewireケーブル、説明書


しっかりローカライズしてある説明書


LEDで状態を説明してくれる

1TBのドライブを4つ格納したところ実容量は2.69TBに。残りの1.3TBは冗長化に使われている計算になります。


OSから見える論理容量はフォーマット時に決めることができ、最大の17TBに設定してみました。
容量が足りなくなる前にドライブベイの横のLEDがオレンジ色に光ってお知らせしてくれます。容量の大きいドライブを入れたら勝手に再構築してくれて実容量が増える仕組み。
フクザツな知識なしに、容量の異なるドライブをなんとなく入れるだけ。簡単で安心感が高く満足しています。
USB2.0、Firewire800に対応しているものの速度は対して早くないのでバックアップ用データの置き場に使うのがたぶん正解。

最近USB3.0対応のモデルが出たせいで旧モデルがぐっとお値頃になりました(以前は4,5万くらいだったのが2万強)。
捨てるにはもったいないけど持て余しているハードディスクが3つ以上あるのであれば購入をお勧めします。


このエントリーをはてなブックマークに追加   

MacBook Pro Retinaモデルを購入 その6 - 薄さと重さ #mbpr

MacBook Pro Retinaを手にして感じるのはやはりその薄さ。
MacBook Airほどではないものの大きな画面に対してアンバランスなほど薄いです。

重さは1.3kg(Air)と2.0kg(MBPR)の間に決定的な体感差が現れるラインがあるのか、見た目の薄さの割に案外重量があるためか、思ったほど軽くは感じません。

さて、薄さがどれくらいなものか比較してみました。

まずはMacBook Airと。

左がAir、右がMBPR。

ぱっとみMBPRの方が薄く見えるけれどもこれはAirは傾斜をさせるためか足が若干でっぱっているため。「突起部を除く」厚みはAirの方が薄いです。
が、ポートが並んでいる側面部はMBPRの方が微妙に薄い。このデザインのため電源コネクタを新しくして薄くする必要があったのでしょう。

次は重さがほとんど同じ往年のPowerBook 2400との対決。

MBPRの方が圧倒的に薄い!

PowerBook 2400をひっくり返してみると・・・・

なんとPowerBook 2400の液晶部とMBPRの液晶部を含む全体がほぼ同じ厚みであることがわかります。

最後は3つ並べてみたところ。

6色リンゴが懐かしい!

関連リンク:
MacBook Pro Retinaモデルを購入 その5 - JavaアプリケーションのRetina対応 #mbpr - 侍ズム #samuraism
MacBook Pro Retinaモデルを購入 その4 - バックパックを購入 #mbpr - 侍ズム #samuraism
MacBook Pro Retinaモデルを購入 その3 - USB3.0でPS Vitaを充電 #mbpr - 侍ズム #samuraism
MacBook Pro Retinaモデルを購入 その2 - 初期不良(´;ω;`) #mbpr - 侍ズム #samuraism
MacBook Pro Retinaモデルを購入 #mbpr - 侍ズム #samuraism

このエントリーをはてなブックマークに追加   

MacBook Pro Retinaモデルを購入 その5 - JavaアプリケーションのRetina対応 #mbpr

MacBook ProのRetina化で気になるのはJavaアプリケーションがRetina品質でレンダーされるのかどうか。

ちょっと試してみたところ、普通にSwingプログラミングをすれば少なくともテキストやUI部品はRetina品質できれいに表示されることがわかりました。さすがに昔から解像度非依存化に向けて準備していただけのことはあります。
ちなみに試したのはOS付属のJava6の最新版でOracleのJava7やJavaFXは未検証。

$ java -version
Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8
java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b03-424-11M3720)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode)


Retina品質の:


ただ、気をつけることがあって*.app形式でMacのアプリケーションとしてパッケージ化されている場合やJava Web Startのアプリケーションは非Retina品質になってしまいます。
非Retina品質の:


*.appをRetina対応させるには右クリックでパッケージを開いてContents/Info.plistの<dict>要素内に
	<key>NSHighResolutionCapable</key>
<true/>

と書いてシステムからログアウト、ログインすればok。
Java and Mac retina support - Ask Different

.app化したJava Web Startアプリケーションは同じ方法でRetina化できたけれども.jnlpから直接起動した場合にRetina化する方法は今のところ不明。

関連リンク:
MacBook Pro Retinaモデルを購入 その6 - 薄さと重さ #mbpr - 侍ズム #samuraism
MacBook Pro Retinaモデルを購入 その4 - バックパックを購入 #mbpr - 侍ズム #samuraism
MacBook Pro Retinaモデルを購入 その3 - USB3.0でPS Vitaを充電 #mbpr - 侍ズム #samuraism
MacBook Pro Retinaモデルを購入 その2 - 初期不良(´;ω;`) #mbpr - 侍ズム #samuraism
MacBook Pro Retinaモデルを購入 #mbpr - 侍ズム #samuraism

このエントリーをはてなブックマークに追加