JavaクラスからTypeScriptのインターフェース定義を生成するtypescript-generator Maven/Gradleプラグインを試してみた

フロントエンドをTypeScriptで記述することとなり、リクエストやレスポンスで受け渡すデータもTypeScriptで型定義したいという要望がでてきた。 バックエンドはSpring Bootを使ったJavaアプリケーションで、ダブルメンテになると面倒。 JavaのクラスからType…

javax.jws.WebParamなどがコンパイルエラーになったらJava 11に更新されているかもしれない

周囲に突然Javaアプリケーションのコンパイルがエラーになる人がちらほら。原因はシンプルだったが、意図せず発生していたためメモ。 問題 Spring Bootを利用したアプリケーションが、macOSのPCでコンパイルできなくなる事例が発生。 Controllerのメソッド引…

UserScriptのURLからのインストールと自動更新させる方法

社内向けにちょこちょこUserScriptを書いているが、作成時や更新のたびに、メール添付したりSlackなどのチャットツールでソース流したりと、配布するのが面倒だった。 今回、更新頻度が高くなりそうなスクリプトを書くついでに、UserScript配布サイトのよう…

NumLockが解除されるのでAutoHotkeyで常時ON状態に固定する

会社支給のPCのNumLockが、意図せず解除されてしまう。 テンキーありのラップトップPCだが、BackSpaceとNumLockの間隔がほとんどなく、キーが小さいうえにキーストロークが浅い。理由としては何かのトラブルで勝手に解除されているとかではなく、単純にBackS…

GradleのテストがUP-TO-DATEの場合の再テスト実行方法とcleanについて

前回のように、調整でGradleの test タスク実行を繰り返していると、変更がない場合 UP-TO-DATE となって実行されない。 gradle clean test ではコンパイルからやり直しだし、いちいちテストを変更して再実行するのも面倒。手軽にテストを再実行する方法を調…

SpockのテストをグルーピングしGradleタスク化、指定されたタスクで条件判定して処理を切り分け

前回の続き。 アサインされたJavaプロジェクトではSpring Bootを使用しているが、ユニットテストではモックが使われていなかった。 @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) でWebサーバーを起動し、 TestRestTemplate でControllerク…

Spockのwhen/then/whereで成功と例外の両方をテストする

Javaのユニットテストを書くとき、普段は例外が発生するパターンのテストを例外ごとに書き、それとは別に正常終了するテストを書いて、パラメータと結果の組み合わせをfixtureで渡している。 新しくアサインされたJavaプロジェクトでテストを書こうとしたら…

Windowsで使えるcURLいろいろ

Mac使いの人から、「WindowsじゃcURL使えないよね?」と聞かれたので、「最近のWindows 10ならcURLプリインストールされてますよ」と答えると驚かれた。 ほかにもいろいろな方法があるので、ざっと思いつくWindowsでのcURL使い方をメモ。 環境 Windows 10 Pro…

MySQLの初期化前にvalidate_password関連設定を変更するとエラーが発生する

前回インストールしたMySQL5.7を起動しようとすると [ERROR] --initialize specified but the data directory has files in it. Aborting. が発生。 エラーメッセージの通り、データディレクトリに何かファイルがあるのかと思ったが、調べてみると原因が違っ…

CentOS 7にMySQL 5.7をyumでインストール

CentOS 7にMySQL 5.7をインストールする機会があり、yumで入れたらどのバージョンが入るかと思ったら、MySQLが見つからない。 CentOS7からはMariaDBが標準になっているとか。ここ数年、Docker使ったりマネージドサービス使ったりで、知らなかった... MySQL用…

MySQLで不要なGRANT権限を削除する

MySQLのユーザーを確認していると、不要なGRANT権限が付与されたユーザーを発見。 念のため消しておこうと思ったが、ちょっと手間取ったのでメモ。 環境 MySQL v5.7.29。 状況 こんな感じのユーザーがいた。 mysql> SHOW GRANTS FOR 'user'@'host'; +-------…

Groovyのメジャーバージョンが3になっていた

Chocolateyでインストールしたパッケージを更新すると、Groovyがv3.0.0になっていた。 プレビュー版が出たのは2018年みたい。 GitHubのReleaseを見ると、v3.0.0は2020/2/7、v3.0.1が2/14にリリースされており、公式ページからはv3.0.1がダウンロードできた。…

JavaのStream APIで任意のCollectionに変換する

JavaのStream APIでtoListした結果を、独自のListにaddAllしていたソースがあったので、 Collectors#toCollection でできるよ、と教える機会があった。 Collectors#collectingAndThen に比べて知名度が低いようなのでメモ。 collectingAndThen これは検索す…

ISMS認証取得組織検索の描画が爆速だった

ISMS認証(ISO/IEC 27001)や、ISMSクラウドセキュリティ認証(ISO/IEC 27017)を取得している会社を調査したところ、情報マネジメントシステム認定センター(ISMS-AC) から検索できた。 トップページの「登録組織検索」から、「ISMS認証取得組織検索」や「ISMS…

ふと思ったこと

(生き死にやお金が絡まない場合のシステム開発において) 拙速は巧遅に勝るんじゃないかと思ったのでメモ。 なんで思ったの? 遅れまくってるシステム開発の話を聞いて。 数年単位で遅延していて現場はすっかり麻痺、スケジュールもないとのこと。 ベストなの…

Java正規表現のフラグ指定と埋込みフラグ表現

バグ修正をしていたところ、 java.util.regex.Pattern の埋込みフラグ表現が原因だった。 Java正規表現のフラグ指定や埋込みフラグ表現について、周囲に知っている人がいなかったのでメモ。 フラグ指定 Pattern.compile(String regex, int flags) で、指定し…

SVNHubのご紹介

Stack Overflowのレポートでは、2018年には使用率16%でGitに次ぐ2位だったSVNことApache Subversion。 新規プロジェクトでバージョン管理を始めるのであれば、選択肢はGitとなるだろうし、2019年のStack Overflowのレポートでは、バージョン管理の項目がなく…

Hudsonさんが今月末で引退されるそうです

AWS/Azure/GCP以外のパブリッククラウドサービスを比較のために調べていた。 Oracle Cloudをざっと眺めていると、Oracle Developer Cloud Serviceについての古い記事で、JenkinsのベースとなったHudsonが使われているとの記述を発見。 そういえばHudsonはど…

Jiraの課題をURLリンクから作成する

ローカルネットワーク内のJira Serverに、問い合わせがあった場合に課題を自動で作成できないか相談された。 Jira CloudならREST APIを叩けばいいが、LAN内だと面倒だと思って調べると、URLリンクから作成できたのでメモ。 参考 How to create issues using …

JWTの署名検証をOpenSSLとGroovyでやってみる

以前調べたJWTについて、jwt.ioで検索できるライブラリを使わずに、Googleで認証した署名の検証を試してみようと思い立った。 ただ、自作のスクリプトで署名の検証を計算している記事をいくつか見かけたが、さすがにそこまでフルスクラッチでやる気にはなれ…

スクラム導入したいと相談を受けたので色々話してきた

別の会社に勤める知人から、会社にスクラムを導入したいという話をされた。 ひとりスクラム歴5年の経験談を、ビール飲みながら偉そうに語ってきたのでメモ。 自分のこれまでのスクラム歴 前職 現職 スクラムを何のためにやるのか デイリースクラム 見積もり …

いまさらJWTについて調べた

JWT

SSOを導入したいという相談を受け、いまさらながらOpenID ConnectやJWTについて調べてみたのでメモ。 参考 JWS JWSヘッダー JWSペイロード JWS署名 JWE JWK Google認証時の公開鍵 JWT Nested JWT Plaintext JWT JWx OpenID Connectでの使われ方 振り返り 参…

Element.classListをInternet Explorerで使うときの注意

IEだとうまく動かないJavaScriptがあり、調べたところ Element.classList が原因だった。 まだまだIE11は切れない環境なので、備忘としてメモ。 環境 IEでは動かないメソッド add, removeの引数に配列を渡せない toggleの第2引数を渡せない replaceが未実装 …

TechCrunch Tokyo 2019 Day 2 メモ

TechCrunch Tokyo 2019 2日目。 住宅シェアリング「OYO LIFE」が目指す未来 正確な位置情報を3単語で表現する「住所革命」でできること 5Gがもたらすロボティクス新時代 女性起業家が語るリテールテックのいま 為替・送金の手数料無料、英国発フィンテックス…

TechCrunch Tokyo 2019 Day 1 メモ

TechCrunch Tokyo 2019に行ってきたので、備忘録。いやあ、面白かった。 【本日開幕!】TC Tokyo 2019のDay1の見どころ | TechCrunch Japan 聞きながらメモしていたので、聞き取れなかったり、数字が違っていたりすると思う。 後ほど配信されるらしいので、…

Git for Windowsにgit-flowが含まれるようになっていた

Git

いつ頃からかはわからないが、Git for Windowsをインストールすると、git-flowコマンドもバンドルされるようになっていた。 git-flow windows インストール で検索すると、いまだに git clone http://github.com/nvie/gitflow.git とか出てくるのでメモ。 環…

Node.js v12にアップデートするとgulp v4でもfs.jsで「ReferenceError: primordials is not defined」エラーが発生

Chocolateyのnodejs-ltsでNode.jsを更新したところ、v10.16.3からv12.13.0になった。 その状態でgulp v3.9.2のタスクを実行してみると、fs.jsで ReferenceError: primordials is not defined というエラーが発生。 ちょっと調べると、Node.js v12とgulp v3の…

Eclipse 2019-09にしたらGradle(Buildship)でdefaultOutputDirの指定ができなくなった

BuildshipでdefaultOutputDirを指定していたが、Eclipseを2019-03から2019-09に更新すると、エラーが出るようになった。 Eclipseの仕様変更が原因のようなのでメモ。 環境 Eclipse 2019-09、Buildship 3.1.2で確認。 状況 前回の記事の設定だと、Eclipse 201…

cpコマンドでディレクトリをコピーするときのメモ

Linuxサーバー上でなんやかんや変更する前など、ディレクトリをコピーしてバックアップを取ったりする。 自動化しろよというのは置いといて、 cp コマンドのオプションやディレクトリの有無による挙動の違いを、ちょくちょく忘れるのでメモ。 環境 要約 ディ…

Windows で Sourcetree を使うとゴミ箱に「www.gravatar.com__avatar_...」が溜まるようになった

Git

ふと気が付くと、ゴミ箱に「www.gravatar.com__avatar_${英数字32文字}」という名前のファイルが溜まるようになっていた。 ファイル名から察するに、Gravatarが関係しているようだが、Gravatarを使うような設定をした覚えはない。 元の場所を確認すると %USE…