読者です 読者をやめる 読者になる 読者になる

かまたま日記3

プログラミングメイン、たまに日常

JJUG ナイトセミナーKotlin勉強会に参加してきた

jjug.doorkeeper.jp EmbulkのプラグインをKotlinで書き直したり最近自分の中で激アツ言語のKotlinの勉強会が開かれると言うので早速参加してきました。サイバーエージェントのサーバサイドの事例だったりSpringのKotlin対応だったりKotlinの波が来ているのを…

EmbulkのプラグインをKotlinで書く

embulk-input-remoteをKotlinで書き直したv0.3.0をリリースしました。 GitHub 最初に書き直した時のPR RubyGems Kotlinは4年ほど前に会社のレポートでちょっと調べたままで知識が止まってましたが、最近はAndroidやサーバサイドの事例も多く出てきたので勉強…

JJUG ナイトセミナー 「GS Collections 道場」に行って来た

Goldman Sachsの作成したJavaのコレクションライブラリのGS Collectionsのハンズオンに参加して来ました。 【東京】JJUG ナイトセミナー 「GS Collections 道場」jjug.doorkeeper.jp Java8でStreamが追加されて導入する理由も少なくなったかなと思ってました…

JJUG CCC 2015 Springに参加した

お久しぶりです。最近は技術TipsはQiitaに書く事が多いので、ブログはご無沙汰でした。 最近社外勉強会参加してないなーと思い、ちょうど朝にTwitterで開催されていることを知りw、久しぶり*1に参加てみました。 結果めちゃくちゃ刺激受けました。やっぱりこ…

SpringAOP(JDK Dynamic Proxy)のDI仕様にハマった

SpringAOPのプロキシ化の仕組みには JDK dynamic proxyとCGLIBという二つの仕組みがあるんですが(デフォルトはJDK dynamic proxy) JDK dynamic proxyでProxy化されたbeanのインスタンスを直接実装クラス指定でAutowired出来ない仕様らしいです。※この辺が参…

JMeterメモ

絶賛負荷試験で使っているので、分かったことをメモ スレッドグループについて 「Rapm-up期間(s)」の間に「スレッド数」分のスレッドを作って各スレッドが「ループ回数」分ループする 例えばRamp-up期間600、スレッド数60、ループ回数10だとすると、10分の間…

Javaの数値は8進数のリテラルで書ける

「0x1234」的に16進数で書けるのは知ってたのですが「0」だけを頭につけると8進数になるのは知らなかったので。 public class OctalInteger { public static void main(String[] args) { System.out.println(0001); // 1 System.out.println(0010); // 8 Sys…

SpringAOPが適用されたbeanを使ったメタプログラミングでハマった件

※注意 以下の話はSpringAOP3.1.1で確認しています。SpringAOPで処理が挟み込まれたbeanは実体がProxyクラスなので、beanを使ってメタプログラミングをしたい場合、ちょっと困ることがありました。 困ること例 例えばCommandパターンを利用した以下のようなCo…

Intellij IDEAで依存関係のあるモジュールがあるプロジェクトをリンクさせる

開発中に例えばcoreロジックのモジュールとwebモジュールを分けて開発しているときに webモジュールが依存しているcoreモジュールをローカルのプロジェクトに向けたいときがあるかと思います。そんなときの方法をメモっておきます。 (もっと簡単な方法があ…

コンシステント・ハッシュ法を学びつつ分散キャッシュを実装してみる

知らないなんて言えないNoSQLまとめ(1):KVS系NoSQLのまとめ(Hibari、Dynamo、Voldemort、Riak編) (2/4) - @IT上記の記事を読んでいて「コンシステント・ハッシング」なる初見の単語を見て、調べてみました。 コンシステントハッシュ法 - Wikipedia Con…

ArrayListとLinkedListのパフォーマンスチェック

Listの2大実装であるArrayListとLinkedList。 その昔どのような用途で使うのがいいかを調べましたが、実際のパフォーマンスはどうなのかを調べてみました。 調査方法 二つのListに対して以下の順番で処理をしていきます。 順番 処理名 処理内容 1 addSequenc…

副作用が発生しないクラスを作る

Javaでは基本データ型とString以外のオブジェクトはすべて参照渡しされるため、あるオブジェクトのインスタンスが複数のオブジェクトで参照されている場合、予想しないところで参照オブジェクトの書き換わりが発生し、バグが発生する可能性があります。Clone…

(続)Setの展開はどれが一番早い?

Setの展開はどれが一番早い? - かまたま日記2前に出した結論は普通にiteratorかforeachだったのですが、本日ご指摘を受けまして調べなおしてみました。 嘘こきました、普通にめっちゃ遅かったです。。 RT @kamatama_41: 拡張forループって前調べたとき普通…

コンストラクタでメソッドを呼び出す場合の注意

レガシーコード改善ガイドを読んでいて知ったのですが、C++はコンストラクタ内のメソッドのオーバーライドが禁止されているようです。レガシーコード改善ガイド (Object Oriented SELECTION)作者: マイケル・C・フェザーズ,ウルシステムズ株式会社,平澤章,越…

Enumメモ

enumのvalueOfって存在しない文字列が来ると例外が発生するんですね。 nullが返ってくるのかと思ってました。 入力値のチェックが必要ってことか。。。*1 *1:当たり前

Class#getInterfaces() の罠

Class#getInterfaces()は自分のクラスが実装している インターフェースしか検出してくれません。スーパークラスまで遡って調べたい場合はjakarta commonsのClassUtils#getAllInterfaces、もしくはspringframeworkを使っている方はcommonsのClassUtilsを拡張…

Setの展開はどれが一番早い?

追記 (続)Setの展開はどれが一番早い? - かまたま日記2 再調査をしたところ結果が変わっています。 - ってことで調査してみました。 toArray()で配列に変換してから展開 for-eachで展開 iteratorを使って展開 Listに変換してから展開 import java.util.A…

ArrayListとLinkedListの違い

今まではArrayListしか使ってこなかったのですが、 用途によって使い分けられるようになれなければ、と思いました。 ArrayList 要素を配列で保持している 配列がメモリ上でインデックス化されている インデックスの修正、コピーに対するコストが要素数に比例…

Google App Engine for Javaでアプリケーションを作ろう その2

時間が空いてしまいましたが、本日は3章のクラウド俳句部を作成しました。やったことは GoolgeAppEngineのXMPPを利用したBOTの作成 です。 http://cloudhaiku-by-kamatama.appspot.com/このアプリの改良ポイント 使える単語が増えるようにする インターネッ…

Google App Engine for Javaでアプリケーションを作ろう その1

Webアプリケーションを作ることを思い立ったので、本を買って作ってみました。作ればわかる!Google App Engine for Javaプログラミング作者: 中垣健志出版社/メーカー: 翔泳社発売日: 2011/04/23メディア: 大型本購入: 3人 クリック: 104回この商品を含むブ…

JMockでテストをする

現在業務でJMockを使ったテストを行おうとしているため、JMockの勉強中です。最初は以下のページ jMockを使ってみる を参考にテストコードを書いていたのですが 拡張していくうちにエラーが出てきてしまい嵌ってしまったためその点をメモ 引数の比較 JMockで…

天気情報を読み込む その3

天気情報を読み込む - かまたま日記2 天気情報を読み込む その2 - かまたま日記2前回の追記でWeatherFormatterがエラーになった件ですが、やはりライブラリーが無かっただけのようでした。 結局サンプルソースを動かすのに必要だったライブラリーは以下に…

天気情報を読み込む その2

前回の続きです。 天気情報を読み込む - かまたま日記2いろいろ調べているうちに英語ですが、自分のやりたいことをやっているサンプルサイトを発見したため、そちらでYahoo! Weatherのデータを取得する処理を使ってみました。 Maven by Example - 4.6. Simp…

天気情報を読み込む

最近デザインパターンを以下の書籍で勉強しています。Head Firstデザインパターン ―頭とからだで覚えるデザインパターンの基本作者: Eric Freeman,Elisabeth Freeman,Kathy Sierra,Bert Bates,佐藤直生,木下哲也,有限会社福龍興業出版社/メーカー: オライリ…

タイトルバーにアイコンをつける

最近androidアプリをちょっと勉強中です。 そこで本日少しはまったところをメモ現在以下のページを参考に勉強していますが 連載:世界を目指せ!Androidアプリ開発入門 第6回の「タイトルバーにアイコンをつける」のところをサンプルプログラムどおりに書い…

Hibernate3.5を使おう

サンプルアプリケーションを作成するに当たって、DBとの連携は参考ページにしたがってActiveObjectsをつかっちたのですが、強制的に人口キーを加えなければいけない点が気に入らなかったので新たにO/RマッピングツールとしてHibernateを使ってみることにしま…

Struts2をつかってみた

今後の勉強のために、家でStruts2の簡単なアプリケーションを作成してみました。初心者なので、レベル低いことや的外れなこともたくさん書いてあると思いますがご容赦を・・・・参考にしたページ http://codezine.jp/article/detail/2296ファイルの配置とか…