「Java」と一致するもの

Movable Typeで全エントリー一覧を出力したいと考えました。
調査の結果、以下の方法で可能でした。

ダッシュボード→[ブログ]→[デザイン]→[テンプレート]から[アーカイブテンプレート]→[アーカイブテンプレートの作成]→[記事リスト]を選択します。
以下の通り、テンプレート名(例えば、「全エントリー」等)を入力した後、以下のテンプレートで作成します。

<$mt:Var name="entries_per_page" value="10"$>

<$mt:Var name="search_link" strip="" trim="1" encode_html="1" setvar="search_link"$>

<!DOCTYPE html>
<html lang="<$mt:BlogLanguage$>">
<head>
<meta charset="<$mt:PublishCharset$>">
<title>全エントリー - <$mt:BlogName encode_html="1"$></title>
<$mt:Include module="HTMLヘッダー"$>
</head>
<body>
<div id="container">
<div id="container-inner">
<header id="header" role="banner">
<div id="header-inner">
<$mt:Include module="バナーヘッダー"$>
<$mt:Include module="Navigation"$>
</div>
</header>
<div id="content">
<div id="content-inner">
<ul class="breadcrumb breadcrumb-list">
<li class="breadcrumb-list-item"><a href="<$mt:BlogURL template="main_index" encode_html="1"$>">Home</a></li>
<li class="breadcrumb-list-item">全エントリー</li>
</ul>
<div id="category-main" class="main" role="main">
<section id="posts">
<h2>全エントリー</h2>
 <ul>
  <MTEntries lastn="0">
  <li>
<time datetime="<$mt:EntryDate format_name="iso8601"$>"><$mt:EntryDate format="%x"$></time>
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>
</li>
  </MTEntries>
 </ul>
</section>
</div>
<aside class="widgets related" role="complementary">
<$mt:WidgetSet name="関連コンテンツ"$>
</aside>
</div>
</div>
<footer id="footer" role="contentinfo">
<div id="footer-inner">
<$mt:Include module="バナーフッター"$>
</div>
</footer>
</div>
</div>
<script src="<$mt:StaticWebPath encode_html="1"$>jquery/jquery.min.js"></script>
<script src="<$mt:Link template="javascript_theme" encode_html="1">"></script>
</body>
</html>

[保存]ボタンをクリックし、一旦保存します。
[▶テンプレートの設定]をクリックした後、[新しいアーカイブマッピングを作成]をクリックします。
[種類]から[ユーザー]プルダウンメニューを選択し、[追加]ボタンをクリックします。
[パス]に"index.html"を指定すると、アーカイブディレクトリの直下に"index.html"で全エントリーを出力するファイルを作成します。
※電車猫ブログの場合、「https://traincat.net/blog/neko/archives/index.html」になります。

前提条件として「Rainier」スタイルを利用しています。他のスタイルでは編集が必要かもしれません。
でもRainierスタイルってレスポンシブデザインなのでPCでもスマホでも最適な画面に切り替わるので便利ですね。

以上、Movable Type 6で全エントリー一覧のリンクを出力する方法でした。

Google Maps Android API v2のサンプルプログラム(Google Maps API Demos)をEclipseにインポートし、実機で動かそうとしてみたのですが、強制終了されてしまいました。
デバッグ実行してみたところ、以下のログがLocCatにはき出されていました。

02-09 11:32:59.657: E/dalvikvm(430): Could not find class 'com.example.mapdemo.BasicMapActivity', referenced from method com.example.mapdemo.MainActivity. 02-09 11:33:13.688: E/AndroidRuntime(430): FATAL EXCEPTION: main 02-09 11:33:13.688: E/AndroidRuntime(430): java.lang.ExceptionInInitializerError 02-09 11:33:13.688: E/AndroidRuntime(430): at java.lang.Class.newInstanceImpl(Native Method) 02-09 11:33:13.688: E/AndroidRuntime(430): at java.lang.Class.newInstance(Class.java:1409) 02-09 11:33:13.688: E/AndroidRuntime(430): at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 02-09 11:33:13.688: E/AndroidRuntime(430): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561) 02-09 11:33:13.688: E/AndroidRuntime(430): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 02-09 11:33:13.688: E/AndroidRuntime(430): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 02-09 11:33:13.688: E/AndroidRuntime(430): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 02-09 11:33:13.688: E/AndroidRuntime(430): at android.os.Handler.dispatchMessage(Handler.java:99) 02-09 11:33:13.688: E/AndroidRuntime(430): at android.os.Looper.loop(Looper.java:123) 02-09 11:33:13.688: E/AndroidRuntime(430): at android.app.ActivityThread.main(ActivityThread.java:3683) 02-09 11:33:13.688: E/AndroidRuntime(430): at java.lang.reflect.Method.invokeNative(Native Method) 02-09 11:33:13.688: E/AndroidRuntime(430): at java.lang.reflect.Method.invoke(Method.java:507) 02-09 11:33:13.688: E/AndroidRuntime(430): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 02-09 11:33:13.688: E/AndroidRuntime(430): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 02-09 11:33:13.688: E/AndroidRuntime(430): at dalvik.system.NativeStart.main(Native Method) 02-09 11:33:13.688: E/AndroidRuntime(430): Caused by: java.lang.NoClassDefFoundError: com.example.mapdemo.BasicMapActivity 02-09 11:33:13.688: E/AndroidRuntime(430): at com.example.mapdemo.MainActivity.(MainActivity.java:97) 02-09 11:33:13.688: E/AndroidRuntime(430): ... 15 more
数時間悩んでやっと解決方法を見つけたのでメモしておきます。

・前提条件
以下のページを参考にEclipseへの準備を進めて下さい:
Debian GNU/Linux 3.1 on PowerMac G4 - Google Maps Android API v2 のサンプルを動かしてみたら...

・ここからが本題
前提条件のサイトを参考に設定したつもりだったのですが、上記ログがはき出され、にっちもさっちもいきませんでした。
ググってみたところ、英語ですが、良さそうなソースを見つけました:
Stack Overflow - Google Maps Android API v2 - Sample Code crashes

なるほど。
ざっくり解説しますと、以下の通りです。

1. Google Maps API Demos (MainActivity)に"google-play-services_lib"をインポートする。
[プロジェクト(MainActivity)]→[プロパティ(R)]→[Android]と進むと[Library]の項目があります。
[Add]ボタンを押下すると[Project Selection]画面が開きますので、"google-play-services_lib"を選択し、[OK]ボタンを押下して下さい。
設定後は[プロパティ: MainActivity]画面を閉じます。
※"google-play-services_lib"を[Javaのビルド・パス]から[クラス・フォルダー]として追加しても、上手く動かないようです。

2. "libs"フォルダを作成し、そこに"google-play-services.jar"と"android-support-v4.jar"を追加する。
Google Maps API Demosには元々libsディレクトリがないようですので、[プロジェクト(MainActivity)]→[新規(W)]→[フォルダー]で[新規フォルダー]画面を開きます。
[フォルダー名(N):]に"libs"を入力し、[完了(F)]ボタンを押下します。
"libs"フォルダを選択し、[インポート(I)...]→[General]→[ファイル・システム]から[次へ(N) >]ボタンを押下します。
[インポート]画面の[次のディレクトリーから(Y):]"に"/extras/google/google_play_services/libproject/google-play-services_lib/libs"を指定し、[開く]ボタンを押下します。
"google-play-services.jar"のチェックボックスをチェックし、[完了(F)]ボタンを押下します。
同様の手順で、"android-support-v4.jar"も追加します。
"android-support-v4.jar"は、Windowsでは"/extras/android/ support/v4"に、Mac OSでは"/extras/android/compatibility/v4"に存在します。

3. 外部Jarとして"google-play-services.jar"と"android-support-v4.jar"を取り込む。
[プロジェクト(MainActivity)]→[プロパティ(R)]→[Javaのビルド・パス]と進むと[ライブラリー(L)]タブがあると思います。
その後、[外部 Jar 追加 (X)...]ボタンを押下し、[JARの選択]画面からEclipseのWorkspaceにあるGoogle Maps API Demos (MainActivity)の"libs"フォルダに進みます。
"google-play-services.jar"と"android-support-v4.jar"を選択し、[開く]ボタンを押下すれば完了です。
設定後は[プロパティ: MainActivity]画面を閉じます。

4. "MainActivity"と"google-play-services_lib"のクリーンビルド
[Eclipse]→[プロジェクト(P)]→[クリーン(N)...]から[クリーン]画面を開き、[以下で選択したプロジェクトをクリーン]ラジオボタンを選択し、"MainActivity"と"google-play-services_lib"のチェックボックスにチェックします。
[ビルドを即時に開始(B)]のチェックボックスをチェックし、[選択したプロジェクトのみビルド(P)]ラジオボタンを選択の上、[OK]ボタンを押下します。
※Eclipseで"/google-play-services_lib/bin/google-play-services_lib.jar"が存在しませんという警告が表示されていたのですが、クリーンビルドすることによって解決しました。

以上の作業が終われば、Eclipseで表示されまくりだった警告行も消え、すっきりしているのではないかと思います。
後は、Eclipseから実行すれば、USBで接続された実機でGoogle Maps API Demosが実行されるかと思います。

以上、備忘録でした( ̄∇ ̄)ノ♪

SmartPhoneは今買いか

この記事は2011年3月現在の情報を基に作成しました。
長文の記事である為、時間に余裕がある方、携帯ネタが好きな方、または携帯電話からスマートフォンへの機種変を真剣に検討されている方がお読みになるとお便利ですm(_ _)m


iPhoneが発売されてから4年弱。
最近スマートフォンが普及してきたなと身を以て感じています。

iPhone持ちの人は男性を中心に2年以上前から見かけましたが、ここ数ヶ月は若い女性でもスマートフォンを持っている人を見かけるようになりました。
最近になってAndroid OSベースのスマートフォンが日本でものメーカーから発売され始めたからですね。
数週間くらい前からはiPadや電子書籍向けタブレット端末を電車内で操作する女性や、中高年世代でスマートフォンを操作している人まで見かけます。

今までの(世界標準とは異なる日本独自の進化を遂げた)携帯電話のことをガラケー(ガラパゴス携帯)と呼び、スマートフォンと対義語として使うようになりましたし、時代は変わりましたね〜(´∀`)

さて、題名の件ですがSmartPhoneは今買いかについて考えてみましょう。


・価格面
スマートフォンはガラケーより高価です。
しかし、現在、携帯キャリアはスマートフォンを普及させたい為、インセンティブ(販売奨励金)を増やしている時期の為、本来の価格より多少安価になってるかもしれません。
それを考えると、今の時期はお得なのかもしれません。


・機能面
先駆者のiPhoneやXperiaを除けば最近発売のスマートフォンが初売りという日本のメーカーが多いです。
また、日本独自の機能(おサイフケータイ等)が付いていなかったり、日本でのスマートフォンの位置付けが確立されていない為、高機能のガラケーに比べてまだまだ不十分だと考えています。
女性の場合、スマートフォンだとデコメがしにくいのも懸案にした方が良いかもしれませんね。

ちなみに、iPhoneのユーザインタフェースに慣れていると、Androidでもっさりした画面遷移に違和感を感じます(´Д`)=з
iPhoneもiPhoneでフラッシュに対応していないのはどうなのよorz
今後の性能と機能の向上に期待です。


・携帯向けサイトへの対応
スマートフォンはガラケーではない為、携帯専用サイトが見られない場合があります。
ガラケーと違い、端末に個体識別番号がないため、セキュリティ確保が必要な携帯ゲームサイトや携帯専用予約システムなどは使えなくなる覚悟が必要です。
スマートフォン版を用意しているサイトもありますが、まだまだ多くありません。現在、愛用している携帯サイトがあるようでしたら、スマートフォンに機種変しても大丈夫か確認した方が良いです。


・サイズ面
スマートフォンは携帯より横長で厚いです。フォルムだけで言えば、ガラケーの方がスマートです(笑)
ポケットに入れてガラケーを持ち歩いている方は、スマートフォン購入前に、モックをポケットに入れてみて、違和感なく歩けるのか確認した方が良いかもしれません。


・入力形式(ボタン入力)
スマートフォンでは、キーボードがタッチパネル内に表示される、いわゆるソフトウェアキーボードのものと、PC配列のハードウェアキーボードの端末があります。
ソフトウェアキーボードの端末ではキーボードを切り替えることができます。iPhoneではPCのような英字配列、ガラケーと同じテンキー配列、絵文字一覧等があります。
ガラケーから機種変した当初は打ちにくいと感じるかもしれません。

スマートフォンだからこそ可能なフリック形式の入力方法もあります。
テンキー配列の今までの入力方法では、"あ"のボタンを5回押すと"お"が入力されます。
一方、フリック入力の場合、"あ"のボタンをタッチして、そのまま下方向に指をスライドさせると、"お"が入力されます。
つまり、あ行の入力が以下の通り最大2操作で可能ということです。

あ:"あ"をタップ
い:"あ"をタップしながら←にスライド
う:"あ"をタップしながら↑にスライド
え:"あ"をタップしながら→にスライド
お:"あ"をタップしながら↓にスライド

他の行も同じ考え方で入力でします。フリック入力は慣れると便利ですよ(´∀`)


・入力形式(タッチパネル)
ガラケーとスマートフォンの大きな違いはタッチパネルにあると思います。
実は、俺、タッチパネルのスマートフォンがここまで普及するなんて思いませんでした。タッチパネルが指紋で汚れるのがちょっとなぁという認識があったので。
ただ、いざタッチパネルに慣れると気にならないものですね。


・アプリ利用面
ガラケーアプリに比べて、スマートフォンのアプリは多種多様です。こんなアプリもあるのかぁと関心するくらいアプリが豊富です(´∀`)
上述のフリック入力を学習する為のアプリもありますし、スマートフォンはアプリをインストールするからこそ便利になると言って良いですね(´∀`)
俺のiPod touchにも50個くらいのアプリを入れてます。


・アプリ開発面
iPhoneアプリの開発には有料の開発者登録(個人で年間10,800円/法人で年間33,800円)が必要です。
開発言語はObjective-CというC++とは全然異なるオブジェクト指向の言語を使います。開発環境はMac OS上でのみ動作するXcodeというIDEがAppleから提供されていいます。
しかも、アプリの公開にはAppleの審査が必要で、公開はAppleのApp Storeのみです。審査期間も10日〜14日掛かります。
開発言語も開発環境も限られるiPhoneアプリに関しては、ガラケーアプリの開発と同じくらい難しいかもしれません。ぼったくり商売ができるのもブランドがあってこそですね...
その代わり、ガラケーと同様に粗悪なアプリが出回ることは少ないです。また、Xcodeは作り込みが良く、高スペックのMacでなくても開発アプリのシミュレーションがサクサクできます(´∀`)

Androidアプリの開発にも有料の開発者登録(年間25ドル)が必要ですが、Appleより良心的です。
開発言語はJavaで、Windows上で動作する無料の開発環境Eclipseがあります。
アプリの公開は審査があるストアとないストアがありますが、審査のないストアでは粗悪アプリが出回る可能性があります。
Androidアプリの開発環境はそれなりのスペックが必要です。Virtual Machineで動作させる必要があるJavaの宿命なんでしょうけど、かなりメモリを使う為、古いPCでシミュレーションさせるとカクカクになります。


・PCとの親和性
スマートフォンはガラケーよりPCとの親和性があります...と言うより、PCがないと不便かもしれません。
ガラケーでPCを使って何かするということは基本あり得ないと思いますが、スマートフォンだと音楽ファイルの同期やアプリの管理でPCがないと面倒なようです。

題名に戻りまして、スマートフォンは今買いか?

スマートフォンのタッチパネルやアプリが携帯可能な端末の可能性を広げたのは確かです。

しかし、ガラケーとスマートフォンは似て非なるものです。携帯専用サイト、デコメ、おサイフケータイの機能が未対応の可能性は考慮した方が良いと思います。

リスクを避けるなら、スマートフォンへの機種変は1年半くらい(2012年の夏から秋までは)待った上で検討した方が良いと思います。

以上、久々の投稿でした( ̄∇ ̄)ノ♪

時事ネタにすると古い話になってしまいますが、昨年から猛威を振るっているガンブラー型ウイルス(GENOウイルス, Gumblar, Gumblar.X, 8080等)について記事にしてみました。

記事にすると言っても、詳しく書かれているサイトがわんさかあるので、その紹介程度にしておきます:
日立SAS 情報セキュリティブログ - Gumblar(ガンブラー)型ウイルスの予防(エンドユーザー向け)
GENOウイルスまとめ
So-net セキュリティ通信 - 新手の正規サイト改ざん(2):一般ユーザーの方、サイト管理者の方へ
ITmedia - Gumblar対策を再チェック 基本的な作業で感染防止を

上記で書かれている話を纏めると以下の様になります:

  1. Microsoft UpdateでMicrosoft製品(Windows/Office)のセキュリティパッチを当てる
  2. Adobe Reader(PDF閲覧ソフト)を最新版にする
  3. Adobe ReaderのAcrobat JavaScriptを無効に設定する
  4. JRE(Java Runtime Environment)を最新版にする
  5. Flash Playerを最新版にする
  6. QuickTimeを最新版にする

上記1〜6の作業を怠らずに実施し、常にソフトウェアを最新の状態にすることで、パソコンにセキュリティホールを作らないことが重要ってことですね。

しかしながら...
このウイルスの厄介なところは、ありとあらゆるパソコンの脆弱性を突いて攻撃を仕掛け、感染を試みるということです。
Code RedやNimdaの反省から、Microsoft Update(Windows Update)こそ自動的に更新されるように設定されたPCが多いですが、その他のソフトウェア(Adobe Reader, JRE, Flash Player, QuickTime)まで常に最新版を心掛けている方は多くないと思います。

インターネットも常時接続が当たり前になり、インターネットの利用者が世界中にいる現在の状況は、ウイルス開発者にとって、パソコンの乗っ取りが簡単になりました。
ウイルス感染の被害者だと思ったら、感染拡大の協力者になってたり、さらには悪意のあるユーザが他のサイトを攻撃する際の拠点として自分のPCが使われていたりと、思わぬことに巻き込まれる可能性があります。

皆様もパソコンのセキュリティのことを疎かにしないよう、くれぐれもご注意ください( ̄∇ ̄)ノ♪

OASでLog4Jが原因のデプロイエラーが発生する

OAS(Oracle Application Server)に、WARファイルをデプロイしようとしたところ以下のエラーが発生し、失敗しました:
Operation failed with error: org/apache/log4j/Category 

今回作成しようとするシステムの中には確かにLog4Jのログ出力が含まれている訳ですが、それが原因で失敗してしまったら、実に困りものな訳ですね。
デプロイ時の設定に問題があると思いまして調査したところ、やっぱりデプロイ時のOASの共有ライブラリの設定に問題がありました。

共有ライブラリのインポート設定で[apache.commons.logging]のチェックボックスを外しましょう。
OASの共有ライブラリのインポート設定って結構くせ者ですよね...
しかも、Oracle製品だけあって相変わらず情報が少ない(;_;)

同様の悩みを抱えている方も、この情報が役に立つことを祈ってます( ̄∇ ̄)ノ♪