ひだまりソケットは壊れない

ソフトウェア開発に関する話を書きます。 最近は主に Android アプリ、Windows アプリ (UWP アプリ)、Java 関係です。

まじめなことを書くつもりでやっています。 適当なことは 「一角獣は夜に啼く」 に書いています。

Java SE 9 の javac で過去バージョンをターゲットにするときには --release オプションを使用すると良い

JDK の javac コマンドを使って過去バージョンの Java 言語で書かれたソースコードをコンパイルする際には、-source オプションや -target オプションを使用してきました。 (JDK 8 までの話。) このとき、適切なブートストラップクラスパスを設定しなければ…

Java 9 のモジュールシステム (JPMS; JSR 376) の概要

Java SE 9 がリリースされましたね! めでたい!さてさて、Java SE 9 の目玉といえばやはり The Java Platform Module System (JPMS; JSR 376) ですよね! Project Jigsaw の心臓部です。この記事では JSR 376 をさらっと読んで、JPMS の全体像をまとめてお…

WebDriver によるスクリプト実行の現状 (geckodriver と ChromeDriver)

WebDriver とは、Web ブラウザを外部から操作するための標準化された API です。 詳細は先日書きましたのでご参照ください! WebDriver について私が知っていること (2017 年版) - ひだまりソケットは壊れない 今回は、WebDriver のコマンドで JS スクリプト…

WebDriver について私が知っていること (2017 年版)

もともと Selenium 2.0 で導入された WebDriver ですが、単に 「WebDriver」 と言ってもいろいろなものを指すことがあり *1、WebDriver を初めて使おうとする人にはややこしい状況だと感じています。 (私は数か月前に WebDriver を使おうとして混乱しました…

ThreeTenABP と ThreeTenBP の関係について (Android における JSR-310 バックポート)

「ThreeTenABP って Android フレームワークに依存するけど、ドメインレイヤとかで Android 依存を排除したい場合どうするのがいいんですかね」 という相談を受けて、ThreeTenABP 周りを調べたのでメモ。 ThreeTenABP って何? JSR 310 Date and Time API の…

読んだ : .NET のエンタープライズアプリケーションアーキテクチャ 第 2 版 / Dino Esposito、Andrea Saltarello 著

ドメイン駆動開発 (DDD) 関係の読書会に参加していて、最近読んでいるのがこれです。.NETのエンタープライズアプリケーションアーキテクチャ 第2版 (マイクロソフト公式解説書)作者: Dino Esposito,Andrea Saltarello,日本マイクロソフト(監訳),クイ…

Android のアカウントマネージャ (AccountManager) の概説

最近 Android のアカウントマネージャを仕事で触ったので、調べた内容としてアカウントマネージャの概要をまとめておきます。 Web 上を調べると AccountManager を使う処理の実装方法はいろいろ見つかるのですが、アカウントマネージャの概要を説明している…

Hyper-V 上の Debian VM の vNIC の IP アドレスを管理 OS 側から取得できるように LIS を有効にする

表題通り。 Hyper-V 上の Debian 8.7.1 で Linux 統合サービス (Linux Integration Services; LIS) を有効にした方法のメモ。 私が試したのは、Windows 10 Pro (Insider Preview Build 14986) の Hyper-V 上の VM に Debian 8.7.1 Jessie をインストールする…

読んだ : RESTful Web Services with Dropwizard / Alexandros Dallas 著

Dropwizard に関わる仕事をしているので読んでみました。RESTful Web Services with Dropwizard作者: Alexandros Dallas出版社/メーカー: Packt Publishing発売日: 2014/02/19メディア: Kindle版この商品を含むブログを見る Dropwizard について Dropwizard …

読んだ : Kotlin スタートブック ― 新しい Android プログラミング / 長澤 太郎 著

Kotlin エバンジェリスト (JetBrains 黙認) であり、日本 Kotlin ユーザグループ代表であるたろーさん (長澤 太郎) によって書かれた書籍 『Kotlin スタートブック ― 新しい Android プログラミング』 (赤べこ本) を読みました!!Kotlinスタートブック -新…

Dropwizard + JDBI で SQL オブジェクトの返り値に Optional を使うときには SingleValueResult アノテーションが必要

Dropwizard で SQL ライブラリ JDBI を使うときのおはなし。 OptionalContainerFactory dropwizard-jdbi ライブラリは OptionalContainerFactory クラスを提供してくれていて、JDBI の SQL オブジェクトで返り値に Java 8 で導入された Optional 指定するこ…

MySQL Connector/J 5.1 系では useLegacyDatetimeCode=false にしよう

JDBC で MySQL に接続するときに使用する MySQL Connector/J (mysql:mysql-connector-java) の話。 サーバー・クライアントのタイムゾーン設定が違っている場合にどう対応するのがいいか。 結論 MySQL Connector/J 6 (まだ開発版だけど) 以降は自動でやって…

grunt-ts が .baseDir.ts ファイルを作るのを抑制する

Grunt を使っていて TypeScript のビルドを行うタスクを定義する際には grunt-ts を使うことが多いでしょう。 (grunt-typescript もあるけど。) grunt-ts で困ったことがあったので書いておきます。 outDir オプションを使うと .baseDir.ts ファイルが作られ…

UWP アプリ 「みお×ぽん」 のバージョン 1.1.0 をリリースしました

2016 年 10 月 1 日、IIJmio の 「IIJmio 高速モバイル / D サービス」 が au の回線にも対応して 「IIJmio モバイルサービス」 に改称されました。 IIJmio:サービス仕様の改定及びキャンペーン実施のお知らせ auの4G LTE回線を利用したIIJmioモバイルサービ…

レスポンシブデザインのために resize イベントを使うのはやめて matchMedia メソッドを使おう

レスポンシブデザインのために JS で画面サイズの変更などを検知するために resize イベントを使うことがありますが、より良い方法として matchMedia メソッドによりメディアクエリを扱うというものがありますので、紹介します。

PowerShell (Windows) で Docker コンテナにホストディレクトリをデータボリュームとしてマウントする際に pwd 相当のことをしたい

試した環境 Windows 10 Home (Anniversary Update; 64-bit 版) Docker Toolbox 1.12.0 前提知識 docker run -v /path/of/host/dir:/path/of/container ... という感じでホストディレクトリをデータボリュームとしてマウントできる。 Windows で Docker Engin…

株式会社はてなを退職しました

2016 年 8 月 31 日付で株式会社はてなを退職しました。 皆様、大変お世話になりました。 ありがとうございました!

Android の Instrumented Test で指定のサイズのテストだけ実行する (@SmallTest とか @LargeTest とか)

Android Testing Support Library (ATSL) の話。 バージョン 0.5 時点での情報です。ライブラリの準備方法などはドキュメントを読んでください。 テストサイズを表すアノテーション android.support.test.filters というパッケージがあって、この中にはテス…

Rust 入門してる #3 : オブジェクト指向っぽい部分?

#2 に続いて Rust のドキュメントをぼちぼち読んでます。 このブログ記事はメモと感想程度のものですので、詳細は各見出しの下のリンク先を見てください。今回は構造体とか列挙型とかメソッドとかトレイトとかそこら辺のオブジェクト指向っぽい部分 (の途中…

React Native の Universal Windows Platform サポートを試してみた

React Native が Universal Windows Platform をサポートするという発表が、2016 年 4 月の F8 にて Microsoft と Facebook により行われました。 すなわち、React Native を使って Universal Windows Platform (UWP) アプリを開発できるようになります。blo…

ISO 8601 DateFormat 1.0.0 (Java 向けライブラリ) をリリースしました

2016 年 5 月 3 日に ISO 8601 DateFormat の 1.0.0 をリリースしました。 ISO 8601 形式 (もしくは RFC 3339 や W3C-DTF 形式) の日付時刻文字列のパースとフォーマットのための DateFormat のサブクラスを提供するライブラリです。Bintray の JCenter リポ…

Rust 入門 #2 : 所有権システムと可変性

「Rust 入門してる #1」 に続き、ぼちぼちと Rust を学んでます。 今日は所有権システムと可変性についてのメモです。

Rust 入門してる #1

最近 Rust を学び始めました。 ドキュメントを読みながら構文を学んでいる段階です。 変数結合 (variable bindings) から初めて、関数やプリミティブ型、コメント、if やループといった制御構文あたりをざっと見てみました。

Gradle のマルチプロジェクト構成におけるプロジェクトの評価順 (設定フェーズにおけるプロジェクト間の依存関係)

Gradle の公式のドキュメントに書いてあるけどどこに書かれてるのか探すのにいつも手間取るのでメモっておく。 前提知識 Gradle のビルドには、「初期化」 (Initialization) と 「設定」 (Configuration) と 「実行」 (Execution) の 3 つのフェーズがある。…

gif-writer (GifWriter.js) version 0.9.3 をリリースしました

2013 年にリリースした GIF Encoder のライブラリ “GifWriter.js” を npm モジュールにして “gif-writer” としてリリースしました。 バージョンは 0.9.3 です。 *1 gif-writer 変更内容としては以下のとおりです。 各ファイルをモジュールに変更。 パッケー…

「DroidKaigi 2016」 と 「関モバ #11」 で発表しました

「DroidKaigi 2016」 にて 『5 年続く 「はてなブックマーク」 アプリを継続開発する技術』 というタイトルで、また 「関モバ #11」 で 『Components­Recycler­Adapter — RecyclerView で複数の view type や複雑なデータ構造を扱う』 というタイトルで、そ…

Gradle plugin を Plugin Portal で公開する (2016 年 2 月版)

背景 : Gradle プラグインの開発について 独自の Gradle プラグインの書き方は次のページに書かれています。 Chapter 39. Writing Custom Plugins ここには公開の方法も書かれていて、次のように述べられています。 If you are publishing your plugin inter…

Android の Drawable への着色について (Drawable tinting)

API level 21 から使えるようになった Drawable への色付け (Drawable tinting) について説明します。 この機能は、アルファマスクとして Drawable を定義し、表示時に色を指定するための機能です。 また、それに関連する各種 API や、Android Support Libra…

Android の Java で時刻を扱う (Date、Calendar、DateFormat クラス)

Android アプリで時刻を扱う際に利用することになる Date クラス、Calendar クラス、DateFormat クラスについて、それぞれの役割や使い方、気を付けるべきことをまとめています。

Java における byte 型について (あるいはバイナリデータを扱うためのキャスト)

この記事は、もともと次のページに書かれていた内容に、加筆・修正を行ったものです。 Java における byte 型の扱い方 - vivid memo はじめに この記事では、ビット列を角括弧で囲み、[00000000] のように表現する事にします。 byte 型の表現範囲 Java のプ…