Javaの教科書

Javaといえば、バージョン表記がJDK 8の場合には1.8となっていて、バージョン8じゃないのかと思いきや、そうではないようだ。Java Platform, Standard Edition 8の名前とバージョンにあるように、たとえば、Java SE 8というのは、名前であってバージョンではない。また、Java SEはプラットフォーム名であり、製品名ではない。なかなか奥が深い。

メモリ管理で悩むような(多重実行時にスワップするような)場合には、Oracleドキュメントを参照すると良い。

Eclipse4.4ではじめるJavaプログラミング入門Eclipse4.4Luna対応

Java SE 8に対応した書籍。
Tomcat8についての知識を少し学んでおきたいと思ったが、プログラミング入門というだけあって、肩透かしを食らった感じ。ただ、Java8からGUIがSwingがJavaFXに変わったことを知れて勉強になった。また、Androidプログラミングについても記載されているので、プログラミングの導入には非常に良い本だと感じた。

はじめてのJSP&サーブレット Eclipse 3.7 Indigo+Tomcat 7対応版 (TECHNICAL MASTER 67)

Java SE 8には対応していないが、サーブレットに関する記述が多く、Tomcatについての知識を学ぶ上では良書のように感じた。参考程度だが、JettyやGlassFishについての話題についても触れられてている。少し古いが、Java 最近のアプリケーションサーバー事情(2015年)が参考になる。

詳解 Tomcat

Tomcat8に対応したオライリー社の本。Javaアプリケーションサーバの管理の視点で詳しく知る上では、この本を購入するしかないのかもしれない。書籍を読まれた方のレビュー書籍「詳解Tomcat」を読んでが参考考になる。

設計の仕事ばかりしていると、実務から離れてしまうので少しはAndroidプログラミング等行って手を動かすようにしないといけないなと痛感。。。。

 

UMLの教科書

市の図書館にあった蔵書で借りてみた。

かんたん UML入門 [改訂2版]

入門書といえど、わりと難しいUML入門書。
ただ、漠然としか分かっていなかったUMLと設計のあるべき姿が学べるので良い本だと思う。

GoFの23パターン(オブジェクト指向における再利用のためのデザインパターン)が設計のあるべき姿として紹介されているが、具体的な内容の記述はない。賛否両論あるようだが、解説されている矢沢久雄の早わかりGoFデザインパターンを参考にして理解を深めてみたい。

HTTP_RequestをHTTP_Request2に書き換える

PHP 5.4以降でE_STRICTによるメッセージが出るようになったこととHTTP_Requestがデサポになっていることから、ようやくHTTP_RequestをHTTP_Request2に書き換えてみることにした。
参考にしたサイトは[php][pear]HTTP_Request2のサンプル#1 : うえちょこ@ぼろぐ
互換性があるライブラリと思いきや、かなり非互換。
コンストラクタから違う。上記参考サイトとあわせて下記参考にしてみてください。
HTTP_Request
HTTP_Request HTTP_Request( [string $url = ”], [array $params = array()])
HTTP_Request2
HTTP_Request2 __construct( [string|Net_Url2 $url = null], [string $method = self::METHOD_GET], [array $config = array()])

WSHでハッシュ値計算にSHA-1アルゴリズムを利用する

WSHはもう時代遅れなのかもしれない。
ただ、Windows 2000以降のOSにてデフォルトで動作するWSHは魅力的だ。
ところでハッシュ値を算出する方法がなかなか見つからなかったが、MD5とSHA-1アルゴリズムを利用しているソースが紹介されていたので、実際に使用してみるとすぐに利用できた。
papakingの日記
SHA-1もMD5もハッシュ値が衝突する脆弱性が指摘されており、中間者攻撃に利用されるリスクがある。ただ、SHA-256などは.NET Frameworkの特定バージョン以上をインストールしないと利用できないという問題がある。

CentOS 5.5にPHP 5.2をインストールする

CentOS 5.5のリポジトリでは、PHP 5.1.6までしかインストールできない。
PHPならびに対応するmemcachedのライブラリのインストール方法について「CentOS5.2にPHP5.2.6とmemcachedをインストールする」に記載があるので、こちらを利用するとよい。
ちなみに追加したリポジトリは次の通り。/etc/yum.repos.d/CentOS-Testing.repo として保存するとよい。
[c5-testing]
name=CentOS-5 Testing
baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing
includepkgs=php*
priority=1

俺のコードのどこが悪い?

俺のコードのどこが悪い?―コードレビューを攻略する40のルール
コードレビューに関する分野の書籍は珍しく先月発売された新書で、書店で平積みされていたので思わず手にとって買ってしまった。実際に読んでみると、どうすればコーディングミスを減らしたり、保守性を上げられるかについて、技術的なアプローチだけでなく仕掛けづくりについても書かれており、新人が読むための教育書という位置づけだけでなく、レビュアーも参照すべき一冊である。

CacheをMemcachedにするとエラーとなる

Memcachedをインストールしたうえで、cakePHPのcore.php設定ファイルにあるcache設定をengine => ‘File’ から engine=>’Memcache’に変更すると以下のエラーメッセージが表示されてしまう。
Warning (512): Cache not configured properly. Please check Cache::config(); in APP/config/core.php
デバッグして原因を調査したところ、php.ini に
extension=memcache.so
の設定がないためにMemcacheクラスが呼べなかったためだった。
エラーメッセージが適切?ではないために小一時間はまってしまった。
なお、memcache.soはphp-pecl-memcacheパッケージをインストールする必要がある。

pageTitleが利用できない

新しいアプリケーション「oh-toilet.com」をcakePHP+Ktai Libraryで作成していたら、なぜかタイトルが編集できない。
いつも通り
$this->pageTitle = ‘タイトル’;
にしているのに。。。。
原因を探してみると、Ver.1.3から廃止になっているじゃないですか。。。

View::$pageTitleは削除されました。代わりに$this->set(‘title_for_layout’, $var);を使用してください。

セキュリティ要件でない限りは、マイナバージョンアップ時に下位互換性をなくすのはやめてほしいと思うのは僕だけでしょうか?
下位互換性がなくなるということは、cakePHPのバージョンアップをするときには、前ページの動作確認をしなければならないことを意味しています。(もちろんドキュメントに書いてあることがすべてならばキーワードだけで探して対象を絞り込むだけでよいのかもしれませんが。。。)

サーバーサイドJavaを始めるために

仕事の都合上Java言語をようやく勉強することになった。
大学時代でswingなどを少しやったもののほぼサーバーサイドJavaは知識ゼロの状態である。
インターネットで調べてみるもののつかみが分からない場合には書籍に当たるのが時間を無駄にせずに済む。
いろんな書籍を探してみたが、手っ取り早く勉強するためには、Eclipse WTPではじめるサーバーサイドJava入門―Eclipse 3.3/WTP 2.0対応が分かりやすいように感じていて、今学習を進めている。
Eclipseを日本語化したPleiades 3.5を使っていると書籍のハードコピーと異なる部分があって戸惑うことがあるが、流れをつかんでしまえば体系的に学習できると思う。