JJUG CCC 2013 Springに行ってきた

2013年5月11日(土)にベルサール西新宿で開催されたJavaのイベントに行ってきた。当日は雨にも関わらず結構人が来ていたように感じる。 参加したセッションは以下。 基調講演-1 Javaのこれからを考える エンタープライズ寄りの話に感じた。基調講演がもっと…

細かすぎて伝わらないmaven

maven3からビルド成功の文言が「BUILD SUCCESS」になっている模様。ちなみにmaven2までは「BUILD SUCCESSFUL」。 ここ1年くらいビルドが終わるたびに感じていた違和感はこれだったのか。どうやら、以下のビルドはmaven2で行われたものらしい。 [IROF] BUILD …

「ぼくと、ゆとり。」 #yutori_history #ゆとベントカレンダー #ユトーリー

この記事は、ゆとりアドベントカレンダー(個人的な通称ゆとベントカレンダー)の13日目。 昨日の記事は、@sugarlifeさんの最新のOpenJDK8のJavaDoc (Java API) #yutori_history。 ゆとりさん転職コングラチュレーション。 私は、この機会に素直にゆとりさん…

コントローラ部分のコードでのアンチパターン(と思っていること)

以下はSpringMVCの例。urlMappingを定数として定義しているため、見てすぐ分からない。 eclipseでホバーすれば分かることは分かるが。 例は単純だが、これにpathValuableとか入ってくると辛い。 執拗に定数定義することは、DBの過度な正規化に似ている気がす…

JavaScriptでDeepCopy

2013/04/30 追記 underscoreだとDeepCopy出来ていない時があった。jQueryの方だけ使うのが吉。underscore.jsの方がぱっと見、分かりやすいかも。underscore.js var copy = _.clone(target, true); jQuery var copy = $.extend(true, {}, target); 参考 https…

Thymeleafでfor文のようなシンプルなループを書く #Thymeleaf

利用バージョン 2.0.16 Thymeleafでコレクションのループではなく、for文のように単純に1から10まで等のループをしたい場合は以下のようにする。 <select name="foo"> <option th:each="i : ${#numbers.sequence(1, 10)}" th:value="${i}" th:text="${i}+ '個'">1個</option> </select> ちなみに#numbers.sequenceには第3引数をSTEPとして指定することも出来る。 そこそこ使うことはあると思…

Scala Conference in Japan 2013 に行ってきた #scalaconfjp

書きかけ 聴いたセッションは以下の通り。 Up up and Out: Scaling Software with Akka Akka を用いたデータストリーム処理・解析プラットフォーム BRMS開発でのScala利用事例 Coding in Style エレガントなデータベース操作を実現するScala ActiveRecordの…

ThymeleafのScript inlining

利用バージョン 2.0.16 Thymeleafは@{/user/}と書くと、コンテキスト名を自動的に補完して、 /contextName/user/ のようにしてくれる。 server.xmlでコンテキスト名を変えたりしている場合に便利。 JavaScriptでAjaxを扱う場合で、上記のようにコンテキスト…

hibernate-validator 4.3.0 FinalにはEmailValidatorにバグがある #BeanValidation #ビーバリ

長いメールアドレスの際にエラーを吐く。*1 4.3.1.Final を使いましょう。 BeanValidationのUTをしていて発覚。ビバUT。JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)作者: 渡辺修司出版社/メーカー: 技術評論社発売日: 2012/11/21…

Spring勉強会でLTしてきた #jsug #秒速でポン酢まみれになる条件

タイトルは「Spring小話」。 Spring小話 from eiryu 元ネタはちょっと前に書いた記事で、URLにピリオドを含んでいると除去されてしまう内容について調べたもの。当日は急な仕事が入ったりして、一時は参加出来ないかと思われたが、なんとか20時頃VMWareに到…

SpringMVCのControllerでURLを厳密に判定する

※利用バージョン 3.0.5.RELEASE SpringMVCのControllerで以下のRequestMappingを定義すると、 @Controller @RequestMapping("/regist") public class RegistController { @RequestMapping("process") public String process(){ ... } ... 以下のURLが処理さ…

Mavenソースコードリーディング

いつもお世話になってるMaven。こいつがなければライブラリ管理やらビルドやらが大変なことになってしまう。 常々どういう仕組みになっているのか気になってはいたが、ソースは読んだことなかった。 まずはダウンロード。現時点の最新は3.0.4らしい。http://…

Beginning Java EE 6 が当たった

SE倶楽部の『若手Javaエンジニアを応援!Java書籍プレゼントキャンペーン』に当たった。 そしてタイトルの本が先日届いた。 確かお盆期間中に先着10名でやっていたはず。意外と当たるもんですね。会社の今のプロジェクトではSpringを使っているので、家では…

githugでgitの勉強

Git

gitについてまだよく分からないことが多いので、githugで勉強してみる。 gemでインストールするのだが、2世代くらい前のMacBook Airで始めようとしたらgemが古かったらしく、まずはgemをアップデート。1.3.6以上じゃないとダメらしい。 sudo gem update --sy…

JavaのAWTで作ったTwitter投稿専用クライアント「つぶや君」をGitHubに公開

最近勉強会に行ったりして、自分ももっと世間と関わっていかないとなあと思い、以前AWTを勉強する際に作っていたTwitter投稿専用クライアント「つぶや君」をGitHubに公開。 GitHub:eiryu/tsubuyakun何からつぶやかれたか(sourceという。下の via eiryu のei…

クロスドメインで子ウィンドウから親ウィンドウを更新する

やりたかったのは、サブドメインのURLが表示された子ウィンドウから親ウィンドウのlocation.hrefを変更すること。 だがIEだと、新規ウィンドウが開いてその内容が表示されてしまう。 どうもsame origin policyで子ウィンドウと言えどもクロスドメインでは親…

ダウンロードダイアログで日本語ファイル名が文字化けしないようにする

request : HttpServletRequest, response : HttpServletResponse String fileName = "予定表うんたらかんたら.txt"; if (request.getHeader("User-Agent").indexOf("MSIE") == -1) { // Firefox, Opera 11 response.setHeader("Content-Disposition", String…

GlassFish Users Group Japan 勉強会 June 2012 に行ってきた #glassfishjp

自分の勉強会参加はこれで人生2回目。以前食物連鎖の下の人としてSI業界にいた時に仕事をしたことがある @megascus さんが発表するとのことで、参加してみた。Glassfishを使うのはNetbeans上だけで、業務ではTomcat6メインなこともあり、非常に興味深い勉強…

MyBatisでカラム名をパラメータで切り替える

mybatis version 3.0.6 #ではなく$を使う。 <select id="grouping" parameterType="java.util.Map" resultType="com.eiryu.SomeBean"> select ${column}, count(*) from table where status = #{status} group by ${column} having count(*) > 1 </select>

Thymeleafの文字コード設定、キャッシュ設定

文字化けしないためにcharacterEncodingを指定。 ServletContextTemplateResolverとThymeleafViewResolverの両方に指定しないとダメだった。 あとcacheableをfalseにしておかないと、テンプレートを修正してF5を押しても変更が反映されないので、開発中はと…

Twitter4Jでフレンドとフォロワーを含んだリストを作成する

version 2.2.6-SNAPSHOT GW中に作っていたもの。フレンドとはfollowing(自分がフォローしている人)のこと。 1つのリストのメンバー上限は500人なので、フレンドとフォロワーの合計が500人を超える人はリストが複数必要。リストも確か最大で20しかつくれな…

IE7で動的追加されたラジオボタンが選択されない場合の対応

jQuery1.7 IE7で少し前にはまったのでメモ。 クリックのイベントは検知出来るが、ラジオが選択状態にならない。 手動で選択させることにより回避。 $(document).on("click", ":radio", function() { if(!$.support.tbody) { // IE7だとifブロックに入る。も…

IE7で外部CSSが効かない原因

CSS

急にCSSが効かなくなったと思ったら、1行目が以下のようになっていた。 余分なダブルクォーテーションを除去して解決。 それにしてもいつの間に増やしたんだろう。。 @charset "utf-8"";

JavaScriptのfor文の条件に文字列リテラルを使う時の注意点

ちょっと簡略化してあるが、JavaScriptで以下のコードがうまく動かなかった。for文の中にさえ入ってこない。 var kanto = "8-14"; var range = kanto.split("-"); for (var i = range[0]; i <= range[1]; i++) { // 処理 } 結局range[0]、range[1]をparseInt…

(jQuery-1.7.1)将来的に追加される要素に対してもイベントが設定されるようにする

jQuery-1.7では .live() がdepricated(非推奨)になっていて代わりに .on() を使うらしい。 変換はこんな感じ // 変更前 $("#id").live("click", function() { alert(); }); // 変更後 $(document).on("click", "#id", function() { alert(); }); 参考 jQue…

phpPgAdminにユーザpostgresでログイン出来ない場合の対処法

バージョン:phpPgAdmin-5.0.3 phpPgAdminの設定の問題だった。 conf/config.inc.php の$conf['extra_login_security']をfalseにして解決。 参考:http://mogura.in/blog/2008/11/25/postgresql-phppgadmin

Windows 7にPostgreSQL9.1をインストール

ちょっとはまったのでメモ。 インストーラで「次へ」を押してインストールを進めても、何故か最後でエラーになってしまった。やり直しても同じ。 いろいろ試行錯誤した結果、データフォルダを「ProgramData」フォルダ以下にしたら解決。 これって今のWindows…

初期BIGLOBEパスワードを変更しても、その後のログインに使用出来てしまう

偶然にも件の現象を発見したのでメモ。 郵送書類に記載されている初期BIGLOBEパスワードを変更しても、その後もBIGLOBE、ウェブリメールへのログインに使用出来る。郵送書類にも、「変更したらそれが有効になるからちゃんと管理してね」という旨の記載がある…

Twitter4JでフォロワーのIDを取得する(最大175万人)

以前書いた記事を見に来た人のGoogleの検索ワードを見ていたら、5000人以上取得したいニーズが高そうなので書いてみる。 これで理論上175万人(5000人×API制限の350リクエスト毎時)まで取得出来ることになります。twitter4j-coreのバージョン 2.2.3-SNAPSHO…

JR京浜東北線の車内アナウンスの駅名が日本語アクセントに変わった理由

知りません。 ⇒京浜東北・根岸線E233系1000番台に新アナウンス登場!(http://youtu.be/1i9CUttcvhM)