かまたま日記3

プログラミングメイン、たまに日常

gradle-embulk-plugin v0.5.0 リリース

Release 0.5.0 · kamatama41/gradle-embulk-plugin · GitHub embulk_* のタスクを実行時の config.yml output.yml のオーバーライドを build.gradle 内ではなくプロパティを渡すようにしました。 以前 embulk { configYaml = "myconfig.yml" outputYaml = "m…

Lambdaオブジェクトの型パラメータを取るのは難しい

TL;DR ラムダオブジェクトの型パラメータを取得するスマートな方法は今の所見つかっていない もし基盤プログラムでそういうことをしたい場合は、ラムダを禁止して、匿名クラスを使う いい方法があったら教えてください 本文 Javaで基盤プログラム的なのを作…

embulk-output-multiを作った

前職の同僚の @mtsmfm さんがつぶやいていたので、勢いで作ってみました。 embulk で 1 つの input から複数の output に繋ぐみたいなことはできるのだろうか— Fumiaki MATSUSHIMA (@mtsmfm) 2019年2月25日 github.com 使い方 2019/03/11時点の最新版は 0.4.…

GradleプラグインをGradle community portalにアップロードした

今まで、自作の2つのGradleプラグインはGitHub上のオレオレMavenリポジトリから落とすようにしていたんですが、 buildscript でそのリポジトリを指定しないと行けなかったり、記述がちょっとだけ面倒だったので、Gradle community portalにアップしてPlugins…

JUnit 5 入門

そろそろ使ってみるかということで入門してみました。 JUnit Jupiter こちらにも書かれてますが、JUnit 5は複数のサブプロジェクトからなり、JUnit 5でテストを書いたり拡張機能を書くためのクラスはJUnit Jupiterというプロジェクトにあります。なので、テ…

gradle-embulk-plugin v0.3.0 リリース

Release v0.3.0 · kamatama41/gradle-embulk-plugin · GitHub gem, gemPush のタスクの内容を最新のEmbulkのものに追従しました。詳しい使い方は以下の記事を参照ください。 kamatama41.hatenablog.com

embulk-filter-hash v0.5.0 リリース

GitHub RubyGems イシューで希望をくれたHMACのハッシュ化に対応しました。以下のような感じで algorithm にHMACのアルゴリズムを指定した上で secret_key に秘密鍵を入れると使えます filters: - type: hash columns: - { name: username } - { name: phone…

JavaでRubyのeach_sliceがしたい

each_sliceというのは配列を指定した要素数の配列に分ける処理です。リストの中身をn件ごとに処理するときに便利です。 Javaには同様の処理が(たぶん)標準APIには無いので、こんな感じで行けそうです。 import java.util.Arrays; import java.util.List; imp…

アメリカに行ってきた

先週1週間会社の出張でアメリカ(マウンテンビュー)に行ってきました。海外は前職でのフィリピン出張以来2年ぶりです。 飛行機 行きは羽田からサンフランシスコ国際空港(SFO)の直行便で9時間ほど、帰りは後述の理由からSFOから香港国際空港(HKG)経由の成田へ…

tfenvのオーナーを移管した

色々issueとかPRとかもらっていたのですが、転職も決まってTerraformユーザーではなくなってしまったこともあり、私自身がメンテナンスするモチベーションが上がらなくなっていたため、別の方にオーナーになってもらうことにしました。 I'm looking for new …

CircleCIでgradle testがOOMで落ちるのを防ぐ

とあるプライベートなリポジトリで急にCircleCI上のgradleのテストが落ちるようになってしまい、レポートのxmlも出力されなくなってしまいました。 うーん、CirclrCIでテストに失敗したんだけど例外のログが何も出ない、その上なぜかJUnitのレポートも作成さ…

Chromeで特定のドメインのアクセスをリダイレクトさせる

Twitterのブックマーク機能は現在PC版のサイトでは提供されておらず、mobile.twitter.com を使ったモバイル版でアクセスする必要があります。 An easier way to save and share Tweets Bookmarks are now rolling out globally on Twitter for iOS and Andro…

Parallel Streamの並列数を調整する

Streamの parallel メソッドを呼ぶとストリームの処理を並列に実行できますが、これは内部的には前回紹介したForkJoinPoolが使われています。ForkJoinPoolは内部でcommon poolと呼ばれる共通プールを持っており、明示的にPoolを指定しない ForkJoinTask#invo…

ForkJoinPoolについて

ForkJoinPoolはJava 7から導入された新しいExecutorのフレームワークです。 旧来のExecutorと違うのは、タスクのスケジュールのアルゴリズムとして、work-stealingを採用していることです。これは再帰処理やタスクの中で更に細かな子タスクが生成されるよう…

退職しました3

4月で約2年半所属した前職を退職しました。お世話になった皆さんありがとうございました。 これまで SREチームとしてインフラ周りを幅広く見ていました。アプリケーション開発以外の仕事は大体やったと思います。一部ですが具体的には以下の様なことをやって…

embulk-input-remote v0.4.1 リリース

GitHub RubyGems 約1年ぶりのリリース、0.4.0はGemはリリースできたのですが、CircleCIからの自動タグ付けに失敗したので新しいのをリリースしました..w 0.3系から仕様は変わってませんがEmbulk 0.9にあげたりKotlinとかその他の依存ライブラリやGradleのバ…

embulk-filter-hash v0.4.0 リリース

GitHub RubyGems 約1年ぶりのリリース、Embulk v0.9系だと動かなかったようで、対応しました。 あとKotlinも最新版に上げました。

CircleCI上のRSpecのテスト時間をparallel_split_testを使って短縮する

CircleCIを使ってテストを実行する場合、テストはcircleci tests splitコマンドで分割した上で複数コンテナを使うことでテストの実行時間を短縮することができます(参考リンク)。ただ、コンテナ数を増やすのも限界がありますし*1、少し前までtiming-based sp…

envsubstで簡易テンプレートを実現する

設定ファイルとかで一部だけ可変にしたテンプレートを使いたいんだけど、RubyとかPerlみたいな別言語を使うまでも無くシェルスクリプトだけで完結したい場合、envsubstコマンドを使うとテンプレートに環境変数を埋め込むことが出来ます。 インストール (on U…

クラスインスタンス変数はそのクラスからしか参照できない

RubyのクラスはClassクラスのオブジェクトなので、インスタンス変数を持てます。クラスレベルとかクラスメソッドの中で定義された@付きの変数はクラスインスタンス変数(Class Instance Variable)と呼ばれ、そのクラスからしか参照できません、継承されてる場…

JenkinsでJobを起動して、終了まで待つシェルスクリプト

jqとcurlがインストールされている必要があります。Jenkinsのバージョンは 2.46.3 で認証を有効にしています。 #!/bin/bash # # Trigger a Jenkins build and wait for the build to finish. # set -eu JENKINS_HOST="jenkins.kamatama41.com" JENKINS_USER=…

xargsとddcpで高速にファイルをコピーする

総量350GBくらいの大量にファイルが入ってるディレクトリをコピーしないといけなくなったので、xargsとddcpを使って頑張ってコピーした時の記録 もっと簡単に出来る もっといい方法がある ご指摘お待ちしております! #!/bin/bash SRC_PATH=/foo DST_PATH=/b…

加地さん引退

発表されてからだいぶ経ってますが*1、ガンバ大阪やジーコジャパンなどで活躍した加地選手が引退しました。 www.fagiano-okayama.com 引退会見も"500試合にこだわらない"、"半分以上楽しくなかった"など28歳で代表引退した加地さんらしい引き方かなあと思い…

最近Pythonでハマったことメモ

2年前くらいに書いたAWS Lambda用のPythonスクリプトを修正することになったんですが、環境構築でひたすらハマったのでメモっておきます。 前提 私はPythonまともに書くのは2年ぶりのPy弱です 実行環境はMac Pythonのバージョンは2.7 問題1: pip installが上…

TOEIC 227回 結果

Listening: 360(365), Reading: 385(330), Total: 745(695) *1 苦節2年でのようやく700点超え。ただListeningはちょっと限界感があるので何かブレイクスルーが必要かも。 過去ログ TOEIC 224回 結果 - かまたま日記3 TOEIC 217回 結果 - かまたま日記3 TOEIC…

gradle-git-release-pluginでGitHubにMaven成果物をリリースする

Mavenの成果物をアップして使えるようにする場合、MavenCentralやJCenterに上げるのが公式ですが、それらに上げられない*1specificなライブラリである、公式レポジトリに上げるのが面倒などの理由でもうちょっと簡単なソリューションが欲しい時があります。 …

miamでexcludeオプションで除外したいIAMリソースを指定する

AWS

miamというAWS IAMリソースをDSLで管理できる素晴らしいツールがあるのですが、このツールの基本動作としてアカウントに紐づく全部のリソースを管理しようとするので、他のツール(例えばTerraformとかCloudFormation)で管理しているものがあった場合、こちら…

2017年振り返り、2018年の抱負

子育て 父親になった&育休を取りました - かまたま日記3 やはりこれが今年一番のトピックですね。生まれてからは完全に子供中心の生活に変わりました。自由な時間も減りましたし子供に移されて体調不良になることも増えました。が、やっぱり子供はかわいいで…

父親になった&育休を取りました

半年以上前の話ですがずっと下書きのまま放置して忘れてたのを公開します。ついでに他の方の参考になるかもしれないので、既に12/30ですが後付でAdventarにも登録しておきます。25日目の記事、という体です。 adventar.org 5/10に第一子となる子供を授かりま…

minikubeでRBACを有効にした時に、dashboardが見れないのを直す

とりあえず、 cluster-admin のClusterRoleを kube-system:default のServiceAccountにつければ動くようになる。最低限の権限とかは詳しく調べてないので分かりません! $ minikube start --extra-config=apiserver.Authorization.Mode=RBAC $ kubectl create…