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

GitHubとクラスメソッドの勉強会に行ってきた #github_method

GitHubとクラスメソッドの勉強会に行ってきました。簡単に所感をまとめます。 classmethod.connpass.com 今回のテーマは「GitHub x AWS の最新 DevOps 事情」です。 DevOps はインフラ自動化やリリース自動化など、ひとによって捉え方は違う 価値を無駄なく…

正規表現メモ

CODEPREP で正規表現を学びつつ、練習問題の3パターンをメモる。 codeprep.jp 電話番号にマッチさせる 電話番号は3ブロックの数字の並びで構成される 各ブロックの桁数は 3桁、3桁 or 4桁、4桁 各ブロックは - または ( or ) で区切られる 先頭のブロックの…

Cookpad Tech Kitchen #7 に行ってきた #cookpad_tech_kitchen

Cookpad Tech Kitchen #7 に行ってきました。簡単に所感をまとめます。 cookpad.connpass.com 今回のテーマは『理想の開発現場の「ふつう」のお話』です。資料はこちら。 speakerdeck.com 開発者もテストエンジニアも品質を向上するという共通の目的を持つ …

Haskell を使ってみる 7 (ガード)

前回の続き Haskell を使ってみる 6 (パターンマッチ) - kntmr-blog ガード ガードは引数の値が満たす性質で処理を分岐させるときに使う。パイプ文字 (|) と条件式と関数本体を組み合わせて記述する。(パターンは引数の構造で条件を分岐させるもの) -- 階乗…

Haskell を使ってみる 6 (パターンマッチ)

前回の続き Haskell を使ってみる 5 (型) - kntmr-blog パターンマッチ パターンマッチは、データ型が従うべきパターンを指定してそのパターンに従ってデータを分解するために使う。 -- パターンマッチと再帰で n の階乗を求める関数 factorial :: Int -> In…

Oracle Certified Java Programmer, Gold SE 8 認定資格

1Z0-809-JPN - Java SE 8 Programmer II を受験しました。 結果: 合格 / 正解率 72% (合格ライン: 65%) という訳で『Oracle Certified Java Programmer, Gold SE 8 認定資格』を取得しました。 「中上級者向け資格」とあるので、Java の開発案件を数年程度や…

JSUG勉強会 2017年その3 ~ ドメイン駆動設計 powered by Spring に行ってきた

JSUG勉強会 2017年その3 に行ってきました。簡単に所感をまとめます。 jsug.doorkeeper.jp 今回のテーマはドメイン駆動設計と Spring です。資料はこちら。 ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring from 亨 増田 www.slideshare.n…

java.util.function パッケージのインタフェースサマリー (用途別)

公式ドキュメントにインタフェースのサマリーが記載されているが、アルファベット順でイマイチ読み辛いので用途別に並べる。 java.util.function (Java Platform SE 8) Supplier インタフェース インタフェース 説明 抽象メソッド Supplier<T> 結果のサプライヤ</t>…

自分のブログを振り返る

ブログを始めて1年半近くが経とうとしています。ブログを始めた当初は、3日坊主レベルであまり続かないんではないかと思っていましたが、我ながらそこそこいいペースで更新できているんではないかと思います。内容はたいしたことないけども…。 というわけで…

HttpServletRequest#isRequestedSessionIdFromCookie は初回アクセスのときは false を返す

JSESSIONID とか Cookie とか URL リライティングに関連する備忘録。 ※Servlet API 3.x の話です。 レガシーな Web アプリのちょっとしたリプレース中なんですが、携帯サイトがなくなったり、サイト自体が SSL アクセスされるようになったりしたので、セッシ…

カスタム Bean Validation の initialize でアノテーションのパラメータをインスタンス変数に保持して大丈夫なのか

Bean Validation の isValid は、実装によってスレッドの安全性が保証されるべきって書いてあるけど、initialize でアノテーションのパラメータをインスタンス変数に保持するのはダメなの?という話。 https://t.co/M4uQGmFMuZ— knt_mr (@knt_mr) 2017年2月2…

JMockit の部分モックを試す

JMockit の部分モックを試してみる。このあたりの API はバージョンによって変更や削除となることがあるため要注意。ちなみに今回試したバージョンは以下。 JMockit 1.30 JUnit 4.12 gist.github.com メソッドをモック化する場合は、Expectations の中でモッ…

Atom から Visual Studio Code に乗り換える

普段、Markdown エディタとして使っている Atom がどうにも重たい。起動が重たいのはしょうがないにしても普通に文字を入力したいときに固まったりするし。 そこで、Atom よりは軽量と噂の Visual Studio Code に乗り換えようかと。標準で Emmet が使えるし…

java.io.InputStream を複数のファイル読み込みで共有しない

java.util.zip.ZipOutputStream による ZIP アーカイブについて調べてたら、以下のようなコードを見かけました。(適当に抜粋してます) gist.github.com 単純に、ディレクトリ配下のファイルを commons-io で取得して、ZIP にアーカイブするコードです。これ…

Spring Boot + Spring Batch + Java 6 でバッチを実装した話

今回、Spring Boot + Spring Batch + Java 6 でバッチを実装する機会があったので、もろもろを備忘録としてまとめる。 開発環境 Spring Tool Suite v3.8.3 を使用。Spring Starter Project からプロジェクトを作成する。 Java Version 1.6 Spring Boot 1.4.3…

Spring Boot で複数の @ConfigurationProperties のプロパティを読み込む

src/main/resources に application.properties があって、プロジェクト直下に config/application-env.properties があるとする。このとき、両方のプロパティファイルを読み込むことを検証したい。 プロパティファイルの内容は次の通り。 src/main/resource…

Bootstrap を利用して簡単なモックアップを作る

仕事で提案活動向けに画面のモックアップを作る機会がありまして、今回は Bootstrap ベースで作りました。 で、せっかくの機会なので Bootstrap の調査を兼ねて Bootstrap の機能をいくつか盛り込んだサンプルみたいなものを作りました。ログインから検索、…

JSON Server でダミーサーバを手軽に構築する

JSON を返すダミー API サーバを構築する際、以下が手軽で便利そうだったので使ってみる。 github.com npm コマンドでインストール。 npm install -g json-server API は JSON ファイルで作成する。以下の場合は、example が API のエンドポイントで、values…

jQuery プラグインを使ってキーワードサジェストを実装してみる

Google 検索のようなキーワードサジェストを実装する際、以下の jQuery プラグインが使いやすくてよかったです。というメモ。 www.devbridge.com ソースコードはこちら github.com 利用方法 プラグインを読み込む。 <script src="js/jquery.autocomplete.min.js"></script> キーワードサジェストを適用するテキスト…

2017年の行動指針

早くも2017年の1.9%が過ぎ去ろうとしていますが、年末年始を帰省先でだらだらと過ごした影響で、未だに怠け癖が抜けない今日この頃です。このまま貴重な時間を浪費するのはよろしくないので、きちんと計画というか行動指針みたいなものを決めておこうかと思…

Apache HttpClient の HttpRequestRetryHandler でリトライをカスタマイズするサンプル

Apache HttpClient の DefaultHttpRequestRetryHandler は ConnectTimeoutException のときはリトライしない - kntmr-blog これの続き。 雑ですが、HttpRequestRetryHandler でリトライをカスタマイズするサンプルを書いてみました。ついでにリトライの間隔…

Apache HttpClient の DefaultHttpRequestRetryHandler は ConnectTimeoutException のときはリトライしない

すべてドキュメントに書かれてるんですが、HttpClient はデフォルトで3回リトライする機能を持っています。しかし、コネクションタイムアウト (ConnectTimeoutException) のときはリトライしません。そのあたりを調べたときのメモ。 ※以下は Apache HttpClie…

Windows 7 / 8.1 仮想環境

必要に迫られて構築したときに調べたメモ。 Free Virtual Machines from IE8 to MS Edge - Microsoft Edge Development IE8 から Microsoft Edge までの Windows 仮想環境をダウンロードできる。 組み合わせは以下の通り。(2016/12/08 時点) IE8 on Win7 IE9…

JJUG CCC 2016 Fall に行ってきた

JJUG CCC 2016 Fall に行ってきました。簡単に所感をまとめます。 [CCC2016Fall]Be a great engineer! #jjug_ccc #ccc_a1 // Speaker Deck 「こんなセッションを聞きに来てる時点でダメ」とのこと 技術の本質を考える 適材適所で使い分ける 技術には必ずニー…

妻を愛してる IT エンジニアの件

【その2】妻・夫を愛してるITエンジニア Advent Calendar 2016 - Adventar の5日目です。枠が空いてたので書きます! もうすぐ結婚して6年になります。2人の子供に恵まれました。夫婦の仲は昔と変わらずまだまだアツいです。ぐへへ。 妻もITエンジニアです。…

TortoiseSVN で Compare revisions するときはリビジョンの選択範囲に注意する

自戒を込めて。 例えば、r123 ~ r130 でコミットしたファイルを抽出する場合。 単純にヒストリーの r123 ~ r130 を範囲選択して Compare revisions すると、r123 でコミットしたファイルは含まれない。(当然と言えば当然...) あるリビジョンの差分ファイル…

Spring Day 2016 に行ってきた

Spring Day 2016 に行ってきました。簡単に所感をまとめます。 いくつかの資料は公式サイトで公開されています。 springday2016.springframework.jp Spring 5.0 では JUnit 5 が標準になる模様 JUnit 4 ⇔ 5 は少しギャップがある気がするので個人的には気に…

djUnit を Eclipse 4.5 (mars) と Maven2 で使えるようにする

djUnit 自体、2011年頃から更新されていないため、もはや需要がないかもしれませんが、必要に迫られて調べました。 Eclipse 4.5 (mars) Eclipse 4.x 以降ではプラグインの仕組みが変更されているようで、古い形式のプラグインが動作しません。よって、古い形…

cp コマンドでディレクトリごとファイルをコピーする

メモ。 $ cp --parent foo/bar/*.json target/ コピー元のディレクトリ階層(foo/bar/)を維持した状態でコピーされる。

Oracle Java Archive

Java SE (JDK/JRE) アーカイブページ Oracle Java Archive | Oracle Technology Network | Oracle

iOS 10 で勝手にスリープ解除されるのをやめる

iOS 10 にしてから iPhone を自分の方に向けるだけでスリープが解除されるようになったようです。 便利と言えば便利なんですが、例えば手に持ってる iPhone をポケットに入れようとしただけで、iPhone が反応してスリープ解除されちゃうのがちょっと煩わしい…

JMockit で System.currentTimeMillis を Mock 化する

JMockit で java.util.Calendar のメソッドを Mock 化する - kntmr-blog 上記のエントリでは java.util.Calendar#getTimeInMillis を Mock 化してミリ秒を取得する例を挙げましたが、そもそもミリ秒を取得するだけなら java.lang.System#currentTimeMillis …

Oracle Certified Java Programmer, Silver SE 8 認定資格

1Z0-808-JPN - Java SE 8 Programmer I を受験しました。 結果: 合格 / 正解率 92% (合格ライン: 65%) という訳で『Oracle Certified Java Programmer, Silver SE 8 認定資格』を取得しました。 受験対象は「開発初心者向け」とあるので、Java の開発案件を1…

Haskell を使ってみる 5 (型)

前回の続き Haskell を使ってみる 4 (タプル) - kntmr-blog 型宣言 式の型は :t コマンドで調べることができる。:: は xxx の型を持つことを意味する。 Prelude> :t 'a' -- Char 型 'a' :: Char Prelude> :t "Hello" -- Char 型のリスト "Hello" :: [Char] P…

Git でリモートリポジトリのブランチを checkout

Git

たまに忘れるのでメモ。 リモートの origin から foo ブランチを取得して、ローカルに bar という名前でブランチを作成する。-b を付けるとブランチの切り替えも同時にできる。 git checkout -b bar origin/foo (メモ) ブランチを表示するときのコマンド # …

環境構築でよく使う Linux コマンドなど

最近、環境構築する機会があったので、よく使う Linux コマンドなどをメモる。完全に個人のメモレベルなので、いろいろ間違っている可能性あり。 尚、OS は不幸にも CentOS 5.4 ...。 アーカイブ系 .tar.gz 形式のアーカイブファイルを扱う場合は tar コマン…

Haskell を使ってみる 4 (タプル)

前回の続き Haskell を使ってみる 3 (リスト内包表記) - kntmr-blog タプル タプルは、複数の異なる型の要素を格納することができる。タプルは括弧で囲む。 Prelude> (1,3) (1,3) Prelude> (1,'a',"Hello") (1,'a',"Hello") サイズ2のタプルはペアと呼ばれる…

InputStream のカスタム Matcher

なんとなく思い付きで書いた java.io.InputStream のオレオレ Matcher です。あまり使い道はなさそう...。(単純にカスタム Matcher を書いてみたかっただけ) InputStream を byte 配列に読み込んで Arrays.equals で比較します。読み込んだ配列をメンバに保…

JMockit の Mock 化する方法あれこれ

JMockit で java.util.Calendar のメソッドを Mock 化する - kntmr-blog これの続き。 以下、テスト対象クラスとして単純に文字列を連結して返すだけのクラスを用意。 public class FooService { BarService barService; public String execute(String arg) …

Haskell を使ってみる 3 (リスト内包表記)

前回の続き Haskell を使ってみる 2 (リストの操作) - kntmr-blog レンジ 列挙できる要素の組み合わせでリストを作成することができる。 Prelude> [1..10] [1,2,3,4,5,6,7,8,9,10] Prelude> ['a'..'z'] "abcdefghijklmnopqrstuvwxyz" ステップを指定してリス…

単体テスト(ユニットテスト/UT)で考えること

単体テスト(ユニットテスト/UT)で考えることを雑に書きます。 コードを書くときはテストしやすい粒度でメソッドを分割する。 以下の場合、なにも意識しないと execute 内にすべての処理を書きがち。1メソッドの処理が長くなるとテストがやり辛くなる。 これ…

JMockit で java.util.Calendar のメソッドを Mock 化する

必要に迫られて調べました。 JMockit 1.26 JUnit 4.12 以下は java.util.Calendar#getTimeInMillis の場合。 final long expected = 1234567890000L; new MockUp<Calendar>() { @Mock public long getTimeInMillis() { return expected; } }; long actual = Calendar.g</calendar>…

プリミティブのラッパーのコンストラクタの代わりに valueOf を使う件

Java9から(?)、java.lang.Integerやその他のプリミティブのラッパーのコンストラクタdeprecatedになる(valueOf使え)のかーhttps://t.co/p67OBUS3n9— Kenji Yoshida (@xuwei_k) July 27, 2016 valueOf でインスタンスを取得することになるわけか。 というわけ…

Haskell を使ってみる 2 (リストの操作)

前回の続き Haskell を使ってみる 1 (導入) - kntmr-blog リスト同士の連結 ++ 演算子は2つのリストを引数に取る。第1引数に指定したリストは最後まで走査されるため、要素数が大きいリストを扱う場合は注意が必要。 Prelude> [1,2,3,4] ++ [5,6,7,8] [1,2,3…

Elasticsearch を使ってみる on Windows

とりあえずメモ。 前提 Windows 7 Professional SP1 64bit Elasticsearch 2.3.4 インストール/起動 Download Elasticsearch Free • Get Started Now | Elastic ZIP をダウンロードして展開 bin/elasticsearch.bat を実行 使ってみる GitHub - elastic/elasti…

「家事を手伝う」から考える主体性

数年前に結婚しましたが、たまに周りから「家事のお手伝いされてるんですか?うわー偉いですねっ!」みたいなことを言われたりします。 自分が男だからこそ言われることなんだと思いますが、この「家事を手伝う」という言葉に疑問を感じます。 じゃあ、ひと…

jad で class ファイルをまとめてデコンパイルする

メモ。 > jad -s java -d sources -r target-folder/**/*.class 階層を維持した状態で sources に出力される。

Haskell を使ってみる 1 (導入)

前提 OS X Yosemite (10.10.5) Haskell Platform 8.0.1 for Mac OS X Haskell Platform for OS X インストール Download Haskell Platform For OS X Download Full (64 bit) をクリックしてインストーラをダウンロード インストーラを起動してインストール …

homebrew で PostgreSQL をインストール

古い PostgreSQL をアンインストール $ brew uninstall postgresql データベースクラスタを削除 $ rm -rf /usr/local/var/postgres/ homebrew で PostgreSQL をインストール $ brew install postgresql homebrew でインストールすると内部で initdb が走る。…

Windows に VirtualBox / Vagrant 環境を構築する

昔のメモを掘り起こしたので、一部加筆修正して転記。 前提 Windows 7 Professional SP1 64bit Oracle VM VirtualBox 4.3.12 Vagrant 1.8.1 VirtualBox インストール Downloads – Oracle VM VirtualBox VirtualBox older builds > VirtualBox 4.3 > VirtualB…