Seasar2でWebAPI

Seasar2 を使って、リクエストを受けたらJSONを返すWebAPIを作る。

ポイントは2つ。
そして2つとも下のサンプルの13行目にあります。

ResponseUtil

意外に知られていないようです。
レスポンスはJSPで書くのだ!と思われがちですが、
この ResponseUtil を使ってレスポンスを String で指定することも出来るのです。
これ、Seasar2 の部品なので、知らなかった人は明日から使い倒せますね!

JSONIC

JSONIC というライブラリがあります。
この中に、static な JSON というクラスの encode() があります。
もちろん decode() もあります。
JSON のような構造化テキストをサラッと作れてしまうコレは非常に重宝します。

リンク: JSONIC入手元

FFXI久しぶりにログイン

2年ぶりぐらいにFFXIにログインしました!
FFXIの一部フレンドとは、ずっとFacebookで繋がっていたお陰で
きっかけは良く分かりませんが、何となくみんな復活しようぜ!みたいな雰囲気に・・・w

あまりに久しぶりで、ジーンときました。
Pik141109233305a

写真は久しぶりに復活した者同士でのアビセア。
ぶぅびぃまじっく氏も居ます!

画質やデザインだけ、ちょっと粗くて FFXIV に見劣りしますが、
そもそも「冒険!」という要素は、FFXI 圧勝といった感じです。
13年経つシステムなのに、やっぱり No.1 です。
フィールドに出たときの緊張感、あぁ冒険してるなぁと実感できるところは健在でした。

昨年、新しく出た FFXIV は本当にヌルいというか、何をさせたいのか良く分からないというのが
改めて FFXI をやってみた感想です。
初期の開発メンバーは本当に優秀だったんだなぁと改めて思いました。

LS Bower 盆踊り大会!

とめはちです!

FFXIV内のLSのメンバーと夏のイベントに参加してきました!
なんと今年の報酬は盆踊りならぬボム踊り!!
踊りなので、画像では伝わらない、ということで動画に撮ってみました!
他にもミニゲームの報酬に新型の花火が含まれているので是非ともオススメです!
ミニゲームの中でも、特に大砲編が面白かったです! ちょっと難しかったですがw

-- Credit --
BGM: 藤村有弘「ドンガバチョ」
撮影: Bandicam (Pikaboo Miller)
編集: AVIUtil (Pikaboo Miller)
出演: つこさん、そるさん、あるてみさん、ぴか

YouTube動画を埋め込む

とめはちです!

WordPress に YouTube 動画を貼り付ける事ができるとのことなので早速トライ!
2年ぐらい前にイキって出した動画。

なるほどなるほど。
こうなるんですね。

WP SyntaxHighlighter

とめはちです!

現在の職場が東京駅だということで、お盆なのにとんでもない混み様です・・・。
さて、Wordpress の SyntaxHighlighter を導入してみました。
ということで早速試してみたいと思います!

なるほどー、こう見えるわけですね。


2015/02/22 UPDATE
Wordpress の Raindrop テーマを使用してみたら、このプラグインと何かが競合しているらしく、
行番号が表示されなくなってしまいました。
Raindrop でなくても色々と動かない機能があって、使い勝手が良くないので、使うのをやめました。


WP SyntaxHighlighter をやめて、Crayon Syntax Highlighter を使用することにしました。
現在の表示も新しいレイアウトで表示しています。
色々と便利機能もついて、動作不具合もなく使いやすいので、今後はこちらを使おうと思います。

メインクエスト完了!

遂に終わりました!
FFXIVのメインキャラによるメインクエストの完遂!

長かったなぁ~・・・。 11ヵ月ぐらいかかりました!

ffxiv_20140727_200736

FFXIV内の主要キャラが勢ぞろいの中で記念撮影です!
基本的にここからが本番という人の声が多いようなので、
ここからがお楽しみですかね!

これからも楽しんで遊ぼうと思います!

JavaScript配列の指定要素を削除

意外と知られていない?ようなので書こうかと思います。

// 配列の宣言
var array = ["a", "b", "c", "d"];

alert("元の配列: " + array);
alert("削除する要素: " + array.splice(2, 2));
alert("削除後の配列: " + array);

つまり、

配列オブジェクト.splice([削除する要素のindex], [削除する個数]);

で配列の要素を削除できます。

Geocoder result

ジオコーダのRESULTを整理
Google Developersより


status内容
Google Developersより

"OK" 取得成功
"ZERO_RESULTS" 問合せは成功したが結果が0件
"OVER_QUERY_LIMIT" クエリ送信回数上限を超えた場合
"REQUEST_DENIED" sensorパラメータが無いなどの理由でリクエストが拒否された
"INVALID_REQUEST" リクエストパラメータが不正

Uncaught TypeError: Cannot set property ‘position’ of undefined

タイトルのようなメッセージが出ました。

Uncaught TypeError: Cannot set property 'position' of undefined

Google Maps Api for JavaScript V3 を使ってみようと思い、
色んな方のサンプルコードを参考にしていたら、このエラーメッセージで詰まりました。
jQueryが好きで、サンプルコードをそれ用に書き換えているときに、
私の理解不足が原因で起きていたエラーのようです。

JavaScriptの問題箇所
map = new google.maps.Map($("#map_canvas"), options);

HTML部分
<div id="map_canvas"></div>

サンプルコードでは問題のJavaScript部分をこう書かれていました。
map = new google.maps.Map(document.getElementById("map_canvas"), options);

上の書き方の違いが原因のようです。
Googleで調べると、以下の記事が見つかりました。
stackoverflow.com

I looked up google.maps.Map() and the Google reference says that the first parameter should be a mapDiv:Node which is the container for the map and is typically a div element. You are passing $(this) which is likely a jQuery object which is not what Google maps is expecting. I don't know the rest of your code, but perhaps you should just be passing this instead of $(this).

純粋なDOM要素ではなくjQuery要素を渡しているのが原因、と書いている人が居ました。
検証したわけではないですが、以下が結論ですかね。

1. document.getElementById("map_canvas") 2. $("#map_canvas") この2つは異なるもので、Google Maps Api の引数にはDOM要素を渡す。

今まで、この2つは同じものだと思っていました。

ララフェルポーズ!

先日、妻のさくらとグリダニアの飛空艇発着場でダラダラしていた時のこと。
なかなか来れる場所じゃないということで、ここの色々な景色を写真に収めていこうということに。

sakura01
何やら考え事をしているようです。

sakura02
何か結論が出たようです。

sakura03
って寝たよ(;°ロ°)!?

sakura04
いやどう見ても寝てますよね!? ∑( ̄□ ̄;ノ)ノ

sakura06

sakura05

sakura07

いや、可愛いですよ。普通に。