SyntaxHighlighter

2011年1月13日木曜日

SyntaxHighlighterを導入してみた

早速Bloggerをカスタマイズしてたんだけど、コードとか綺麗に表示したくてSyntaxHighlighterを導入したみた。

ダウンロードしたスクリプトとCSSをアップロードして...といっても、アップロードするところがないので、スクリプトとスタイルを1つにまとめてデザインからガジェット(HTML/JavaScript)を追加してみた。

package sample;

public class TestClass {
  public String echo(String msg) {
    return msg;
  }
}

まぁこんな感じ。

2011年1月9日日曜日

トランザクションの厳密さについて考えてみた

今月からお仕事で新しいプロジェクトに就く予定です。

要求というか、プロジェクトで目指すものについても、関係者それぞれのイメージが全く違っている状態なので、そもそもこのプロジェクトを開始して良いものかと悩むところです。

少なくとも、今までの経験上、嫌な感じのするプロジェクトですわ~orz

で、今のところ、うちの会社のワークフロー・エンジンをベースにヒューマンタスクを制御するエンジンを目指す予定なのですが、EJBとJPAを利用したものを...と思っていたんですが、昨今のクラウド事情で、ここ数日GAE上に展開できるかを検討してました。
特にスケーラビリティに関しては、元々のワークフロー・エンジンに限界があるのが分かっていましたので、どうにかならないかと思ってGAEの勉強していたんですが、結構面白いですねぇ。

BASEトランザクションという考えが今までの非クラウドアプリケーションにない考え方で、いままでACIDでどうやって整合性を保つかという側面でしか考えていなかったので、すごく新鮮でした。
  • Basically Available
  • Soft-State
  • Eventual Consistency
BASEトランザクションについては、この資料が一番解りやすかったです。

よくよく考えたら、ACIDや分散トランザクションで厳密にConsistencyを確保させても、そんなに厳密さを要求する場面って結構少ない気がします。
Soft-Stateなデータを読み込んで処理したって、アプリのAvailabilityをある程度確保しようとしたら、悲観的ロックなんて利用できないです。また、JPAのエンティティをリモート環境にDTOとして利用するなど、トランザクション境界外に持っていったら、Soft-Stateなデータとあんまり変わらない気がする...。

そもそも今まで盲目的に信じていたACIDでなくて、十分なんとかなるし、2pcなど分散トランザクションを利用していた場合は、ネットワーク障害などでHeuristic例外が発生し得ることを考えたら、そんなに厳密さっていらないんじゃないかと思ってしまいます。

結局は、適材適所なわけで、アプリケーションの要件によるんですが、見方を変えればいろんな可能性が考えれて面白いと思います。

Bloggerにお引越し

最近、仕事のプロジェクトが一段落し、ちょっと余裕が出てきたので、ブログを更新しようと思っていたんですが、他のブログサイトの自分のブログはAndroidアプリ対応されていないので、Bloggerにお引越しすることにしました。

なぜ、Androidアプリ対応が必要なのかというと、家では娘にこれっぽちも時間を空けてもらえないため、基本、会社の通勤時間などに投稿する必要があるからです!

前のブログも何ヶ月も投稿していなかった理由は、家では(娘が寝た後しか)時間を使えないからです。(ちなみに、今は寝てますw)

基本、プログラミングなど技術に関連することのみ書いていく予定です。
あんまり面白くないかも~、と思うので、自分の知り合いには知らせず、細々と続けていきたいなぁと思ってます。