2020 年の振り返り 〜 2021 年の抱負

明けましておめでとうございます。 久しぶりにブログ開いたら、昨年は 1 記事しか書かなかったようで、アウトプット不足に驚愕しています。 2020 年の振り返り まずは、なんといっても新型コロナウイルスの影響が大きかったと思います。 仕事的には大きなリ…

読書メモ「ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本」

「ドメイン駆動設計入門」を読み終えたので、感想を疑問に思ったことを残しておく。 www.amazon.co.jp 本書のコードは C# で書いてあるが、あえて Java に変更して記載する。 長文注意。 全体を通して 最終的に分かったのは、これまでやっていた DDD のほと…

macOS Mojave (10.14.3) に Python3 の環境を構築する

お久しぶりです。 キカガクさんが公開している「MacでPythonを使って『機械学習』を学ぶための環境構築」の手順で Python3 の環境を構築したところ、homebrew でインストールする際にエラーが発生したのでメモとして残しておきます。 play.kikagaku.co.jp 1.…

Selenium + Internet Explorer 11 でファイルダウンロード

Selenium WebDriver で Internet Explorer 11 を操作し、ファイルダウンロードをしようとした時にハマったのでメモ。 問題 IE 11 でファイルをダウンロードした場合、状況によって 3 種類の画面が表示されます。 ダウンロードダイアログ 通知バー ダウンロー…

Array を指定した個数で分割する ChunkPipe を作った

作ったってほどの話ではないです。 Bootstrap を使っていると、Array に入っている要素からグリッドを作成していことがあります。あるんです。

DatePipe を IE11 等で動かすと変な表示になる件に対応する

Angular で日付をフォーマット表示する場合、DatePipe を利用します。 Pipe とは、AngularJS で言う Filter で、構文も変わっていません。 <p>Date: {{ now | date:'yyyy-MM-dd HH:mm:ss' }}</p> さて、このシンプルなフィルターですが、ブラウザごとに異なる表示に…

Angular で複数回発生するイベントを抑制する (debounce)

最近は Angular と戯れています。 Qiita の自動保存のように、入力イベントを検知し、最後の入力から指定時間経過した後に何らかの処理を実行する方法についてメモ。 Component クラス Component クラスにて、入力イベントを扱う Subject を定義します。 imp…

Kotlin Compiler Plugin (kotlin-allopen) を追いかける

これは Kotlin AdventCalendar 2016 の 24 日目の記事です。メリークリスマスイブ!時間的にギリギリアウトでした・・・。 さて、少し前に Kotlin 1.0.6 RC が出ましたが、そのタイミングで kotlin-allopen と kotlin-noarg という 2 つのコンパイラープラグ…

Kotlin 向けのテストライブラリ kotassert を作りました

何番煎じか分かりませんが、Kotlin 向けのテストライブラリを作りました。 さて、Kotlin で JUnit + hamcrest を使ってテストを書くと、予約後である is に悩まされます。 assertThat(actual, `is`(expected)) これを解決するために kotlintest や knit とい…

Kotlin プロパティの Getter / Setter

Kotlin で、プロパティの Getter / Setter は以下の通りに定義できます。 var name: String get() { return ... } set(value) { ... } 定義する上でインデントは関係ないので、こんな感じでも書けちゃいます。 var name: String get() { return ... } set(va…

Redmine のカスタムフィールド「リスト」をチェックリストとして使う

Redmine のカスタムフィールドには、リストを選択するための書式「リスト」があります。(そのまんま) その書式で定義したカスタムフィールドを「チェックリスト」として使いたかったのですが、デフォルトの Redmine では使いにくかったので、プラグイン「V…

Kotlinで特定のブロック内でのみ有効な拡張関数を定義する

Kotlinのドキュメントに、Type-Safe Buildersという記事があります。 これは、Groovyでよく使われている builders パターンというものを、Kotlinで表現した際にどうかるかを示したドキュメントです。 kotlinlang.org Groovy使ったことないですが、build.grad…

Kotlinで未実装を表す方法

小ネタです。 Scalaでは ??? という関数を実行することで、未実装を表す scala.NotImplementedError を返すことができます。 Kotlinにも例外 kotlin.NotImplementedError があり、それを呼び出す関数として TODO() が定義されています。 github.com 使い方 …

SpringBoot + Kotlin + Devtools を IntelliJ IDEA で上手く動かす

Kotlin で Web 開発をするために、とりあえず今は Spring Boot を使っています。 Eclipse の HTML, JavaScript エディタが自分に合わない(合うプラグインを見つけられなかった)ため、IntelliJ IDEA を使おうと思って設定を始めたのですが、上手く動かす方…

2016年の抱負

もう1/5ですが、あけましておめでとうございます。 これまで抱負的なものは書いてなかったので、今年は書いてみようと思います。 Kotlin の学習 Web サービス作る iOS / Android のキャッチアップ 社内勉強会の継続 Kotlin の学習 昨年の10月あたりから Kotl…

Kotlinのプロパティをタイプセーフに取得する

おはようございます。Kotlinアドベントカレンダー2015の22日目の記事でございます。 DBアクセスライブラリを作っていたときに見つけたものを紹介します。 Kotlinのプロパティをタイプセーフに取得する Kotlinのプロパティは、Java8のメソッド参照のように書…

Kotlin で Loan パターン (別解)

最近 Kotlin ばっかりやってます。 さて、Qiita に同じ内容の記事が出てました。 Kotlin - Kotolin で Loan パターン - Qiita http://qiita.com/deadbeef/items/862b908ac54fdd58c3df やり始めた時に自分も作ってたので載せておこうと思います。 合わせて、…

IntelliJ IDEA 14 で SQL ファイルの方言を指定する

SQLファイルの方言を設定する方法をいつも忘れるのでメモ。 画面は Mac 版ですが、Windows 版でも同じはず。 [Preferences] を開く [Languages & Frameworks] → [SQL Dialects] を選択 カレントプロジェクトのファイルが表示されるので、該当のファイル・デ…

Windows Server に Apache を利用して Subversion サーバーを構築して ActiveDirectory 認証を設定する

タイトルの通り。以下の環境・アプリケーションを使用して Subversion サーバーを構築する。 Windows Server 2012 Apache 2.4.16 Subversion 1.9.0 外部からは http://svn.example.com/svn/ の URL に対してアクセス。 1. 準備 ApacheHaus の Web ページから…

タプルをそれぞれの変数に展開するときにも `@` が使える

FP in Scala の日本語訳読んでます。 読んでることとは直接関係ないですが、例えばこんな関数があったとします。 // 第6章 純粋関数型の状態から // RNG は乱数生成の状態を表すオブジェクトだと思ってください。 def nextInt: (Int, RNG) = ??? この関数を…

C#の「nameof」をScalaで実装してみる

C# vNext に、nameofという演算子が追加されています。 nameof演算子 - xin9le.netblog.xin9le.net どういうものかというと、指定したメンバー名を string 型で受け取ることができるというとてもイケてる演算子です。 // こんなクラスがあって class Person …

ScalaでC#のasync, awaitを実現するライブラリ「async」の紹介

この記事は Iwate Advent Calendar 2014 の22日目の記事です。昨日はnana4gontaさんのFirefox Developer Editionを使って他ブラウザをリモートデバッグする - Qiitaでした。明日はayokuraさんです。 岩手関連の記事を書こうと思い、仕事で使おうとしてるD3.j…

型パラメータ付きメソッドを持つトレイトとコンパニオンオブジェクト

タイトルはなんだか難しいですが、要は以下のコードのコンパイルを通したいということです。 trait Test { def apply[A](value: A): String } object Test { def apply[A](f: A => String): Test = new Test { def apply[A](value: A): String = f(value) } …

Play2.3でSecureSocialを使う(2014年6月時点)

※(2014年6月27日)この情報はすでに古く、Play2.3に対応した公式モジュールがリリースされている可能性があります。公式サイトやリポジトリをご確認ください。 PlayFrameworkに認証/認可機能を追加できるSecureSocialというモジュールがあります。 公式サイト…

FluentdのWindowsブランチに対してテストを流してみた

※Rubyはほとんど触ったことありません。 FluentdのWindowsブランチに結構手が入ってるようでしたので、テストを流してみました。 結果はこちら。 FluentdをWindows環境でテストしてみた。 実行環境 2013-12-19現在のWindowsブランチのHEADに対してテストを実…

CSharpCodeProvider + MEFで実行時に生成したDLLを簡単に扱う

C#

これは「C# Advent Calendar 2013」の18日目の記事です。 昨日は matarillo さんの「Java8とC# - 猫とC#について書くmatarilloの雑記」でした。 さいきん(やっと)、C#で手をつけてなかった async/await や、MEFなどを勉強しています。勉強している中で、CSha…

NancyFxチュートリアル「3.1. モジュール(コントローラ)を作成する (ルーティング編)」

この記事は、Nancy Advent Calendar 2013の8日目の記事です。 書けない日の分を書き続けるのもアレですので、かけていない日の分を空けます(^^; 前回は、プロジェクトの細かい設定と、モデルの作成をしました。 今回からモジュール(コントローラ)を作成して…

NancyFxチュートリアル「2. プロジェクトの細かい設定をする(+ モデルを作成する)」

この記事は、Nancy Advent Calendar 2013の3日目の記事です。 前回は、プロジェクトを作成して簡単な動作確認をしました。 今回は、前回触れなかったプロジェクトの細かい設定と、ToDoアプリのモデルクラスを作っていこうと思います。 もくじ 静的コンテンツ…

NancyFxチュートリアル「1. プロジェクトを作成する」

この記事は、Nancy Advent Calendar 2013の2日目の記事です。 (さっそく遅れてます・・・) 今日から何日かに渡って、NancyFxのチュートリアルということで簡単なWebアプリケーションを作ってみようと思います。 完成イメージ チュートリアルっぽく、Todoアプ…

NancyFxとは

この記事は、Nancy Advent Calendar 2013の1日目の記事です。 (寝落ちしてしまったので2日になってしまいましたが・・) NancyFxの勉強をかねて、(ひとり)NancyFxアドベントカレンダーを作成しました。 NancyFxを使うひとが一人でも増えてくれたら嬉しいです…