Haskell を使ってみる 9 (高階関数1)

前回の続き Haskell を使ってみる 8 (再帰) - kntmr-blog 引数に取ったり返り値として返せる関数を高階関数と呼ぶ。 カリー化関数 Haskell のすべての関数は引数を1つだけ取る。複数の引数を受け取るような関数はカリー化されている。関数を本来より少ない引…

LINE Messaging API と Google Apps Script で LINE BOT を作ってみる

LINE Messaging API と Google Apps Script で LINE BOT を作ってみるメモ。今回は、LINEのグループに送信したメッセージをメールで転送するBOT。 アカウント作成 / BOT設定 ※事前にLINEアカウントを作成すること 「LINE Business Center > サービス」の Mes…

Haskell を使ってみる 8 (再帰)

前回の続き Haskell を使ってみる 7 (ガード) - kntmr-blog 再帰 関数を再帰的に定義する場合は問題を同じ種類のより小さな問題に分解する。再帰を使わずに定義できる問題を基底部と呼ぶ。再帰を実装する場合は基底部から考える。 maximum' :: (Ord a) => [a…

テスト駆動開発モドキ実践

TDD

過去のブログを掘り起こしたらこんなエントリを見つけました。 単体テスト(ユニットテスト/UT)で考えること - kntmr-blog どうすれば、メンテし易く保守性の高いソースコードが書けるか、というようなことを考えていた頃のエントリだと思われます。所謂、『…

JSUG勉強会 2017年その4 ~ Springを使ったバッチアプリケーション特集 に行ってきた

JSUG勉強会 2017年その4 に行ってきました。簡単に所感をまとめます。 jsug.doorkeeper.jp 今回のテーマは Spring を使ったバッチアプリケーション特集です。 バッチは地味だが役に立つ 20170525 jsug バッチは地味だが役に立つ from Yuichi Hasegawa …

フレームワークや開発ツールを取り入れることの意義とは

数年ほど前から JavaScript フレームワークの話題をよく見かけるようになり、同時に各所で適用事例が挙がるようになりました。 ところが、最近になって、JavaScript フレームワークを採用した SPA をやめてサーバーサイドレンダリングに移行した、みたいな話…

Eclipse の Team Synchronizing パースペクティブが開かない

Eclipse でプロジェクトのメニューから Team > Synchronize with Repository とすると、今まで Team Synchronizing パースペクティブが開いていたが、新しい開発環境を構築したら、ふとした拍子にパースペクティブが開かなくなってしまった。そんなときのメ…

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 今回のテーマは『理想の開発現場の「ふつう」のお話』です。資料はこちら。 開発者もテストエンジニアも品質を向上するという共通の目的を持つ テストの現場の理…

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— kntmr (@knt_mr) 2017年2月21…

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…