Classic Computer Science Problems in Java

Classic Computer Science Problems in Java作者:Kopec, David発売日: 2021/01/19メディア: ペーパーバック 正月にManningが全品半額セールをやっていたのでなんとなく購入しておいたものですが、読んでみたら思いの外面白かったです。 シンプルな検索アルゴ…

Apache SparkをLivy経由でZeppelinから使ってみる

SparkにREST API経由でアクセスできるようにするApache Livyは以前から知っていたのですが、アドホックなジョブを投げるにはやっぱり画面がないと辛いなぁと思っていたところ、ZeppelinにもLivy用のインタプリタがあるっぽいのでこれを使えばZeppelinのノー…

Scala Love in the CityでGitBucketの発表をさせていただきました

主催者のOliさんからのDMで急遽 Scala Love in the City で話させていただくことになり、あまり時間もなかったので準備なしでも話せるGitBucketの紹介をさせていただきました。スライドは以下になります。 GitBucket: Open source self-hosting Git server b…

jgitverでMavenのバージョン番号をGitの情報から自動設定する

sbtではsbt-dynverプラグインを使ってGitのタグ、コミット情報から自動でバージョン番号を付与できるのですが、同じようなことをMavenでやるにはどうするのがいいのかなぁと以前から疑問に思っていたので、どのような方法があるのか少し調べてみました。結論…

sbt 1.4.xで作ったjar/war内のファイルのタイムスタンプがおかしくなる問題を修正した

最近GitBucketでTomcatにデプロイするとエラーになるというレポートがあり、調べていたのですが、 github.com どうやらwar内のファイルのタイムスタンプが負の値になっており、warの展開時にその値をファイルの更新日時として設定しようとしてエラーになって…

CSVをMarkdownのテーブルに変換するVSCode拡張を作ってみた

昔Atom用に作ったものを移植しただけですが、こんな感じでCSVテキストを範囲選択してコマンドパレットから「Convert CSV to Markdown table」を選択すると適当にフォーマットしてMarkdownのテーブル記法に変換します。 GitHubリポジトリはこちら。 github.co…

My Life in Red and White

昨年ベンゲルの自伝が出版されたのでこれは読まなくてはとKindle版を購入していたのですが、年末年始の休暇中にようやく読むことができました。 My Life in Red and White: The Sunday Times No 1 Bestseller (English Edition)作者:Wenger, Arsene発売日: 2…

実践Terraform AWSにおけるシステム設計とベストプラクティス

仕事でTerraformを使っているのですが、Terraform弱者すぎて毎回「なんもわからん…」となっているので学習のために日本語で読める本として購入してみました。 実践Terraform AWSにおけるシステム設計とベストプラクティス (技術の泉シリーズ(NextPublishing…

2020年の振り返り

今年も今日で仕事納め(の予定)ということで、いつも通り1年を振り返ってみたいと思います。 リモートワークへの移行 今新型コロナウィルスの影響で3月頃から完全にリモートで作業をしています。同業他社の皆さんも似たような状況かとは思いますが、元々ト…

SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム

だいぶ今更感がありますが、現職では業務における運用作業の比率が割と高めなこともあり、読んでみました。和訳版ですが、分量と読み辛さが相まって読み終わるのにかなり時間がかかってしまいました。 SRE サイトリライアビリティエンジニアリング ―Googleの…

GitBucket 4.35.0をリリースしました

このバージョンにはWebフックが設定済みの場合のみ発生するDBマイグレーションに関するバグおよび標準でバンドルされているnotificationsプラグインに関する互換性問題が存在します。すでに修正版である4.35.3 がリリースされていますのでこちらをご利用くだ…

GitHub Actionsで重複ビルドを排除する

最近のTravisCIの残念なムーブもあり、GitHub Actionsへの移行を積極的に行なっているのですが、個人的に1つ気になっているのがブランチへのプッシュとプルリクエストに対するアクションでビルドが重複してしまうケースがあることです。 まず、GitHub上で標…

Presto Conference Tokyo 2020でトレジャーデータにおけるPrestoサービスのテスト戦略について発表させていただきました

今年はリモート開催となったPresto Conference Tokyo 2020で、トレジャーデータのPrestoサービスのテスト戦略について発表させていただきました。 スライドはこちらです。 Testing Distributed Query Engine as a Service from takezoe www2.slideshare.net …

mockito-scalaについて調べてみた

ScalaTestでは以前からMockitoSugarというトレイトが提供されており、ScalaからMockitoをちょっとだけ便利に使用することができるようになっていたのですが、元々それほど大した機能もなかった上に現在は別ライブラリに切り出されてしまったこともあり、使う…

sbt-native-imageプラグインによるScalaアプリケーションのネイティブイメージの生成

これまでScalaでGraalVMのネイティブイメージ生成機能を使う場合はsbt-native-packagerプラグインを使用していたのですが、最近新たにsbt-native-imageというプラグインがリリースされたとのことで実際に試してみました。 Released the first version of sbt…

Learning Spark: Lightning-Fast Data Analytics 2nd Edition

Spark 3.0に対応したLearning Sparkの2nd Edition、しばらく前にDatabricks社のWebサイトから無料でダウンロードできるものを入手していたのですが、最近ようやく一通り目を通すことができました。 Learning Spark: Lightning-Fast Data Analytics作者:Damji…

GitBucket 4.34.0をリリースしました

Scalaで実装されたオープンソースのGitサーバ、GitBucket 4.34.0をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.34.0 2020年初、7ヶ月ぶりのリリースとなります。色々変更が溜まっていたり、プラグインのアップデートも必要だっ…

ThinkPadキーボードをMacで使うためのKalabiner Elementsの設定 最新版

Mac

過去にも同じ記事を書いたのですが、ThinkPadキーボードのモデルチェンジやKarabinar Elementsのバージョンアップで微妙に変わっている部分もあるのでThinkPad TrackPoint Keyboard IIで行った設定を自分の備忘録を兼ねてメモしておきます。 スペースキー周…

ThinkPad TrackPoint Keyboard IIを買った

ここ数年メインの作業環境がThinkPadではなくなってしまったため、外付けのThinkPadキーボードを買い替えながら使い続けており、現在使っているBluetooth版のものもまだまだ全然使えるので迷ったのですが、7年ぶりのバージョンアップということでやはり購入…

GitHub Actions 実践入門

最近GitBucketのCIをTravisからGitHub Actionsに移行したりしていたのですが、達人出版会さんのセールでこの本が半額になっていたので購入してみました。 tatsu-zine.com 内容的にはGitHub Actionsの基本的な使い方から様々な機能、アクションの作り方まで一…

GraalVMでネイティブイメージを生成可能なScalaベースのCLIアプリケーションのためのgiter8テンプレートを作ってみた

以前PicocliとGraalVMを使ってScalaでネイティブCLIアプリケーションを作成する方法を試してみたのですが、その後細々とスタンドアロンのネイティブイメージを作成するのに適したScalaライブラリの組み合わせを試したりしていたので、これらをまとめてgiter8…

MetalsプロジェクトでBloopのCLIを活用する

以前Metalsユーザ向けのBloopの紹介記事を見かけたのですが、確かにVS CodeなどでMetalsを使っている場合、BloopやMetalsサーバが常にVS Codeの背後で起動しているのでターミナルでのコンパイルやテストの実行にもBloopのCLIを活用するには理に適っているか…

ScalaのLanguage Server「Metals」にコントリビュートしてみた

Metalsも最近は随分出来が良くなってきて割とVSCodeでも割と不自由せずにScalaの開発ができるようになってきました。Emacsやvimユーザの方もMetalsを導入することで実用的なScala開発環境を構築できるのではないかと思います。 ひとつ気になっていたのが、業…

Presto: The Definitive Guide: SQL at Any Scale, on Any Storage, in Any Environment

昨年から執筆中という話だったオライリーのPresto本がこの4月に発売になったとのことでゴールデンウィーク中に読んでみました。 Presto: The Definitive Guide: SQL at Any Scale, on Any Storage, in Any Environment (English Edition)作者:Fuller, Matt,M…

Scala Love Conferenceをライブストリーミングで視聴していました

今年はコロナウィルスの影響でScala Daysが延期されてしまったのですが、Scala Loveポッドキャストを配信しているOliさんの主催で先週末にScala Love Conferenceというオンラインカンファレンスが開催されました。 初開催にも関わらず、2トラック構成で休憩…

jenvで複数バージョンのJDKを切り替える

仕事でJava 8とJava 11を行ったり来たりしたり、Javaの特定のマイナーバージョンでのみ発生する問題の調査などをしないといけないケースが出てきて、最初は都度環境変数で切り替えていたのですが、切り替え忘れてうっかり別のバージョンでコンパイルしてしま…

Modern Systems Programming with Scala Native: Write Lean, High-Performance Code without the JVM

いまだScala 2.11までのサポートしか提供されていないなど開発が停滞気味のScala Nativeですが、最近書籍が出たということで読んでみました。 Modern Systems Programming with Scala Native: Write Lean, High-Performance Code without the JVM作者:Whalin…

みんなのJava OpenJDKから始まる大変革期!

Java 14もリリースされるとのことですが、最近の動向をちゃんと追えていないので学習のためと、最近ずっと自宅から仕事をしているので気分転換の読書も兼ねて最近発売された「みんなのJava」を読んできました。 みんなのJava OpenJDKから始まる大変革期!作者…

Scala、Picocli、GraalVMによるネイティブCLIツールの作成

以前、Scalaを使ってCLIツールを作るという記事を書いたのですが、やはりJVMベースのアプリケーションには起動時間のオーバーヘッドが付き物なのでちょっとしたCLIツールをScalaで書こうという感じにはなかなかなりません。そこで今回はPicocliというJava向…

Scalatra 2.7.0をリリースしました

Scala用のSinatraライクなWebフレームワークScalatraの最新バージョン2.7.0をリリースしました。 github.com 今回は2年以上ぶりのメジャーバージョンアップですが、今回はScala 2.13への対応、メンテナンス性向上のためにあまり使われていないモジュールやSc…