AirframeのFinagleサポートを試してみる

AirframeはScala向けのDIコンテナを中心とした様々な便利機能を提供するプロジェクトなのですが、最近airframe-httpとairframe-http-finagleというモジュールが追加され、Finagleを使ったWebアプリケーションを簡単に作れるようになったので感じを掴むために…

JIRAのチケット番号をリンクに変えるChrome拡張が便利

仕事でもOSS活動でもJIRAを使うことがよくあるのですが、JIRAのチケット番号を自動的にリンクにしてくれるChrome拡張を見つけたので試してみました。 chrome.google.com リンク先のJIRAは以下のような画面で設定できます。 簡単なものですが、GitHubやGmail…

Docker/Kubernetes 実践コンテナ開発入門

職場では様々な用途にDockerが活用されていたり、今後はKubernetesを使いそうな気配もあるので予習しておこうと思い、最近出たばかりのこの書籍を購入してみました。 Docker/Kubernetes 実践コンテナ開発入門作者: 山田明憲出版社/メーカー: 技術評論社発売…

クローリングハックの韓国版が出ました

前職の同僚諸氏と執筆したクローリングハックという書籍が韓国語に翻訳されたとのことで翔泳社さんから一冊お送りいただきました。 表紙などのデザインモチーフは日本語版ではクモだったのですが、これは…カニ??? まあ、クモがちょっとというのはわかるの…

GitBucket 4.28.0をリリースしました

Scalaで実装されたオープンソースのGitサーバ、GitBucket 4.28.0をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.28.0 プラグインインストール時にプロキシを利用可能に プラグインリポジトリからのインストール設定を"System se…

Scaladocを実行時に読み取れるようにするコンパイラプラグイン

ScalaベースのフレームワークでクラスのメタデータからSwaggerなどを生成できるものがあるのですが、専用のアノテーションやオブジェクトを使って情報を記述しておく必要があり、特にパラメータの説明などはScaladocに書いたものをそのまま使えればいいのに…

相対時間で表記した期間をパースするJavaライブラリを作ってみた

正確に言うと自分で作ったのではなく、AirframeというScalaライブラリに相対時間で表記した期間をパースしてくれる機能があるのですが、わけあってこれをJavaにポーティングしてみました。 github.com Maven Centralにdeployしてあるのでpom.xmlに以下の依存…

SlickでStackOverflowErrorが発生する場合の対処法

GitBucketに以前からGitBucketのバッシュレポートでStackOverflowErrorが発生するというバグレポートが上がっていたのですが、最近直接の知り合いからも言われたので重い腰を上げて修正にトライしてみることにしました。 github.com 原因は以下のようなコー…

トレジャーデータ株式会社に入社しました

Good morning, my new workplace! pic.twitter.com/b4jEO3jun8— Naoki Takezoe (@takezoen) August 1, 2018 Good morning, my new workplace! pic.twitter.com/NZfDYWvHUS— Naoki Takezoe (@takezoen) August 9, 2018 トレジャーデータに入社したと思ったら…

株式会社ビズリーチを退職しました

Today is my last day at BizReach. I learned a lot of things here. Thanks for exciting days over 4 years! pic.twitter.com/wrPANaxbKW— Naoki Takezoe (@takezoen) 2018年7月31日 本日、2018年7月31日をもって4年と4ヶ月勤務した株式会社ビズリーチを…

GitBucket 4.27.0をリリースしました

Scalaで実装されたオープンソースのGitサーバ、GitBucket 4.27.0をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.27.0 ブラウザ上でタグを作成可能に リポジトリビューア上でタグを作成できるようになりました。 EditorConfigの…

Scalaをはじめよう! ─マルチパラダイム言語への招待─

技術書典で販売されていた同人誌がインプレスR&Dさんから電子書籍&オンデマンドで発売されたものとのことで、Scala初心者向けの入門用書籍にどうだろうと思い、Kindle版を購入して読んでみました。 Scalaをはじめよう! ─マルチパラダイム言語への招待─ (技…

Akka StreamsのElasticsearchコネクタでupdateやdeleteもできるようにした

AlpakkaにはElasticsearch用のコネクタも含まれていて、これは元々自分がコントリビュートしたものなのですが、これまではFlow/Sinkによるバルク書き込みはindexとupsertにしか対応していませんでした。また、1つのストリームでindexとupsertを混ぜることも…

Akka Streamsで巨大なXMLをストリーム処理する

Akka Streams用のコネクタを提供するAlpakkaにはXMLサポートも含まれており、XMLの読み込み・書き込みを行うためのFlowやSinkを利用することができます。 しかし読み込みはXMLのパースイベントをストリームするだけなので、実際には下流の処理で状態を管理し…

AWS Kinesisからの読み込みをAkka Streamsで行う

Akka Streams用の様々なコネクタを提供するAlpakkaですが、もちろんAWS Kinesis用のコネクタも含まれています。 しかし、書き込むためのFlow/Sinkは普通に使える感じのものなのですが、読み込むためのSourceはライセンスの問題からKCLを使ったコネクタを取り…

GitBucket 4.26.0をリリースしました

Scalaで実装されたオープンソースのGitサーバ、GitBucket 4.26.0をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.26.0 セントラルレジストリからのプラグインインストール 先日運用を開始したプラグインレジストリからインターネ…

GitBucketのプラグインレジストリの運用を始めました

GitBucketはプラグイン機構を持っているのですが、Jenkinsのようにインターネット経由でインストールできるようにしたいという考えはGitBucketを作り始めた頃からありました。また、実際にプラグイン機構を導入してみると、本体の修正にあわせてプラグインの…

ASUSのリアル店舗にスマートフォンを修理に出してみた

ASUSのZenfone2というSIMフリー端末を3年ほど使っていたのですが、うっかり落としてディスプレイをバキバキに割ってしまい、バッテリーがだいぶヘタってきていたこともあり新しい端末に変えようと思い、価格重視で同じくASUSのZenfone4 Maxという端末を購入…

MacでThinkPad Bluetoothキーボードを使う場合のKarabiner Elementsの設定

Mac

職場で使っているMacBook Proの外付けキーボードをThinkPad Bluetoothキーボードにしてみました。 レノボ・ジャパン ThinkPad Bluetooth ワイヤレス・トラックポイント・キーボード - 英語 0B47189出版社/メーカー: レノボ・ジャパン発売日: 2013/06/25メデ…

GitBucket 4.25.0をリリースしました

Scalaで実装されたオープンソースのGitサーバ、GitBucket 4.25.0をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.25.0 セキュリティの改善 以前のバージョンのGitBucketにはKacper SzurekさんによるGitBucket 4.23.1 Unauthentic…

Software Design総集編【2013~2017】に関数型プログラミングについて書かせていただきました

Software Designさんは大昔にWikiの記事などを書かせていただいた記憶があるのですが、昨年久しぶりにGitHub、BitBucket等の比較記事を書かせていただいたので総集編をお送りいただきました。そうえいば弊社の同僚も文字コードの記事やtmuxの記事を書かせて…

GraphQLスキーマからCRUDを自動生成できるPrismaについて

Prismaは、様々なデータベースをバックエンドにGraphQLのスキーマからCRUDを行うためのエンドポイントを提供するプロキシとして動作するミドルウェアです。最近$4.5Mの資金調達をしてちょっとだけ話題になりました。 www.prisma.io Prismaが提供するソフトウ…

GitBucket 4.24.0をリリースしました

Scalaで実装されたオープンソースのGitサーバ、GitBucket 4.24.0をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.24.0 プルリクエストのレビューコメントにDiffを表示 プルリクエストのConversationタブではレビューコメントに該…

GoogleのMachine Learning Crash Courseをやってみた

少し前にGoogleが社内教育用のコンテンツとして使用しているというMachine Learning Crash Courseが公開されていました。PredictionIOのコミッタをやっていながら機械学習はほぼ素人というのもどうかと思っていたこともあり、社内で毎日1時間ずつこの講座を…

PlayのRedisプラグインあれこれ

PlayのCache APIのバックエンドにRedisを使えるようにするプラグインがあり、以前はTypesafe社によってメンテされていたのですが、現在はメンテナンスが停止してしまっています。 github.com このプラグインはバックエンドにJedisとJedisのScalaラッパーであ…

GitBucket 4.23.0をリリースしました

Scalaで実装されたオープンソースのGitサーバ、GitBucket 4.23.0をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.23.0 URL末尾のスラッシュを許容するように URLの末尾にスラッシュがついていてもスラッシュがついていない場合と…

Apache PredictionIOとApache Zeppelinを組み合わせてみる

Apache PredictionIOとApache ZeppelinはどちらもApache Software Foundationのプロジェクトです。PredictionIOはSparkML / MLlibベースの機械学習アプリケーションを開発・運用するためのプラットフォームを提供するもので、ZeppelinはSpark / SparkSQLを使…

Twilio社がOSS化したScala用SwaggerコードジェネレータGuardrailを試してみる

先日のScalaMatsuri 2018でTwilioの方が発表されていた、SwaggerからAkka HTTP用(http4sにも対応している)のコードを生成するコードジェネレータがGitHubで公開されていました。 github.com 発表を聞いていて良さげな感じだったのでちょっと試してみました…

自動テストでElasticsearchを使うためのJavaライブラリ

その昔、ElasticsearchではEmbeddedモードという、アプリケーションに組み込んで使用したり、自動テストで使用するのに便利な機能がサポートされていました。しかし、この機能はElasticsearch 5.0でサポートされなくなってしまいました。詳しくはElastic社の…

ScalaDays 2018 NewYorkの気になるセッション

ScalaDays 2018 NewYorkのタイムテーブルが公開されていましたので、完全に個人的な趣味で気になるセッションを列挙してみたいと思います na.scaladays.org Type-driven Development (Workshop) カンファレンスの前日と前々日行われるワークショップでは「Ty…