2016年の振り返り

2016年もそろそろ終わりということで、毎年恒例の振り返りです。 仕事関係 自分の担当しているパートはだいぶ安定してきたこともあり、機能改善や効率化がメインでした。時間的な余裕もだいぶ出てきたのでイベント活動やOSS活動などにも時間を割けるようにな…

今年のGitHubの草状況

去年はこんな感じでした。 takezoe.hatenablog.com 仕事で使っているprivateリポジトリも含めた状況はこんな感じ。去年と比べるとだいぶ減ってますね…。 publicリポジトリだけだとこんな感じ。こちらは結構増えてます。年末にかけてコミットが増えているのは…

GitBucketでのGitLFSサポートについて考える

GitBucketに以前から要望として上がっていたGitLFSサポートですが、どうやったら実装できるんだろうと思い軽くリサーチしてみたところ、どうやらGitblitではすでにGitLFSがサポートされているようです。 github.com LFSサーバのソースコードの該当部分はこの…

Scala用のDIライブラリAirframeを試してみた

ScalaではJavaと違ってDIコンテナの必要性を感じることがあまりないのですが、フレームワークを作っているとユーザコードにフレームワークが提供するコンポーネントを供給したり、フレームワーク自体を拡張するための拡張ポイントを提供するためにDIコンテナ…

Scala用のREST APIフレームワークResty 0.0.5をリリースしました

Scala用の超シンプルなREST APIフレームワークとしてRestyというものを作っています。 takezoe.hatenablog.com github.com 前回ブログで書いてからちょこちょこいじりつつバージョンアップを重ねているので、前回のブログで紹介できなかった機能や、これまで…

GitBucket 4.8をリリースしました

Scalaで実装されたオープンソースのGitサーバ、GitBucket 4.8をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.8 リポジトリ名での検索 GitBucketで管理しているリポジトリが増えてくると、目的のリポジトリを探すのが難しいとい…

ポートとソケットがわかればインターネットがわかる――TCP/IP・ネットワーク技術を学びたいあなたのために (Software Design plus)

技術評論社さんから送っていただきました。ありがとうございます。 内容的にそれほど踏み込んでいないということもあるのですが、わかりやすい説明とイラストのおかげで非常に読みやすいです。とはいえ、中盤では軽くですがCによるソケットプログラミングや…

JJUG CCC 2016 FallでGitBucketの話をしてきました

以前ScalaMatsuriでGitBucketについてお話しさせていただいたことはあるのですが、用途を考えると受託開発の現場で使われているケースが多いはずで、JavaコミュニティのほうがGitBucketのユーザ層に近い方が多いのでは…と思ったこともありJJUG CCCのCfPに応…

RestyというScala用のREST APIフレームワークを作ってみました

GitHubリポジトリはこちら。 github.com なぜ作ったのか? Scala業界のフレームワークは関数型的なアプローチのものが主流になっています。これらのフレームワークはノンブロッキングI/Oや並列処理をうまく扱うことができますが、本質的な複雑さをもたらしま…

【改訂新版】Gitポケットリファレンス

技術評論社さんのポケットリファレンスシリーズから出ているGitポケットリファレンンスが改訂されるとのことで見本誌を送っていただきました。ありがとうございます。 【改訂新版】Gitポケットリファレンス作者: 岡本隆史,武田健太郎,相良幸範出版社/メーカ…

GitBucket 4.7をリリースしました

4.7にはログイン時のダッシュボードのサイドバーに表示されるリポジトリ一覧にグループリポジトリが含まれないというバグがあったため修正した4.7.1をリリース済みです。こちらをご利用いただければと思います。 https://github.com/gitbucket/gitbucket/rel…

ソフトウェアデザイン2016年12月号

会社の同僚であり、若者であり、エモジニアである@todokrが文字コード特集の記事を執筆したとのことでゲットしてみました。 ソフトウェアデザイン 2016年 12 月号 [雑誌]出版社/メーカー: 技術評論社発売日: 2016/11/18メディア: 雑誌この商品を含むブログを…

Scala 2.12に対応したScalatra 2.5がリリースされました

ここしばらく作業をしていたScalatra 2.5が先日無事リリースされました。 Scalatra 2.5.0 released, with Swagger 2.0, Scala 2.12 support, and many other changes. Get it while it's hot! https://t.co/1Dcf3rmdme— Scalatra (@scalatra) November 21, 2…

同僚が「それゆけ!ターミナル部」という連載を始めました

会社の同僚である@tanacasinoがマイナビさんのギークロイドというメディアで「それゆけ!ターミナル部」という連載を始めました。 若干老害の入ったマーティン・シェルスキー先生が若干意識高めの若者タミ夫くんにターミナルのテクニックを教えていくという…

続・AtomでMarkdownのアウトラインを表示する

以前こんな記事を書いたのですが… takezoe.hatenablog.com 最近document-outlineというパッケージを発見しました。 atom.io こちらはMarkdownの見出しをツリー状に階層化して表示してくれます。これこそ正に私の求めていたもの!! …と思ったのですが、どう…

市ヶ谷Geek★Nightで「Scalaによるタイプセーフなフロントエンド開発」という発表をしました

普段フロントエンド開発は若者に丸投げしているバックエンドおじさんですが、ここのところScala Warriorを開発するためにScala.jsを触っていたということもあり、お声がけいただいてScala.jsの紹介をさせていただきました。 ichigayageek.connpass.com 発表…

GitBucket 4.6をリリースしました

Scalaで実装されたオープンソースのGitサーバ、GitBucket 4.6をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.6 リポジトリのフォークを禁止するオプション リポジトリの設定でフォークを禁止できるようになりました。 Wikiペー…

ScalaでタイプセーフにCSSを記述できるScalaCSSを使ってみる

Scala Warriorではユーザが入力したコードを実行する目的でScala.jsを使っているのですが、せっかくScala.jsを使っているのでフロントエンドもできるだけScalaで書いてみようと思い、ScalatagsやScalaCSSなどを試しています。今日はScalaCSSについて紹介して…

ULTRA Beer Bashを開催しました

去る10月14日(金)弊社の主催でULTRA Beer Bashというイベントを開催しました。 Web界隈のCTOさんたちがパネルディスカッションを行うトラックと、最新の技術動向のプレゼンテーションを行うテクニカルトラックの2トラック構成のイベントだったのですが、テ…

はてな × BizReach合同Scala勉強会を開催しました!

Scala関西 Summit2016の翌日、京都のはてなさんオフィスに伺わせていただき弊社とはてなさんの合同Scala勉強会を開催しました。 今回はクローズドな勉強会ということで普段あまり外には出せないようなリアルな悩みなどもご相談させていただいたのですが、当…

Scala Warriorをリリースしました

昨年から密かに作り続けていたScala WarriorというWebアプリケーションをScala関西 Summit2016にあわせてリリースしました。 github.com これはRuby WarriorにインスパイアされたScala学習用のゲームで、Scalaコードを書いて侍を操作しステージをクリアして…

Scala関西 Summit2016に参加してきました

10月8日(土)大阪で開催されたScala関西 Summit2016にスポンサーとして参加させていただきました。 summit.scala-kansai.org 私自身は前職時代を含めここ4年ほどはScalaで仕事ができるようになっていますが、日本だけでなく世界的に見てもScalaの普及度とい…

第十七回 #渋谷java を開催しました

10月1日(土)に弊社オフィスで第十七回 #渋谷javaを開催しました。 今回は以下の皆さんに発表していただきました。 セッション枠(20分) ayato_p 「Clojureで状態管理をするためには」 shimamoto 「doobieの紹介」 Shunsuke Tadokoro 「平成生まれの楽しい…

第十七回 #渋谷java でScalaのマクロの紹介をしました

最近Scalaのライブラリを作っていて自分でマクロを書く機会があったのでScalaのマクロを簡単に紹介をしてみました。発表資料はこちらです。 Macro in Scala from takezoe www.slideshare.net Lispはプログラム=データ構造なのでデータを操作する感覚でマク…

GitBucket 4.5をリリースしました

Scalaで実装されたオープンソースのGitサーバ、GitBucket 4.5をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.5 テキストエリアにもファイルのドロップが可能に イシューやWikiにファイルを添付する際、これまではテキストエリア…

Akka Typedを試してみる

MEAPが開始してから丸4年、Akka in Actionがようやく完成したそうです。 Received my first copies today, #akka in action is finally finished and rolling of the press! pic.twitter.com/nx1UmBRUwl— Ray (@RayRoestenburg) September 18, 2016 完成版の…

Scalaでコンパイル時にSQLをバリデーションするマクロを作ってみた

以前からscala-jdbcというScala用のシンプルなJDBCラッパーを作っています。 github.com このscala-jdbcにコンパイル時にSQLのバリデーションを行うためのマクロを追加してみました。 たとえば以下のように少し間違ったSQL(カラム名の後ろに余計なカンマが…

Scala関西 Summit 2016に参加します

来る10月8日(土)に大阪で開催されるScala関西 Summit 2016ですが、弊社もスポンサーとしてサポートさせていただいています。 summit.scala-kansai.org スポンサーセッションでは「Play2+SlickだけじゃないScalaのWeb/DBフレームワーク事情」という発表をさ…

OracleのDavid BuckさんによるBytecode Verification

毎週金曜日に開催している社内勉強会ですが、今週は久々の外部ゲストとしてOracleのDavid Buckさんにお越しいただきBytecode Verificationについてお話しいただきました。 Buckさんは今年もサンフランシスコで開催されるJavaOne 2016で3本のセッションに登壇…

Twitter製の大規模ソフトウェア向けビルドツール「Pants」を試してみる

PantsはTwitter社が開発した大規模ソフトウェア向けのビルドツールです。今年の5月に1.0がリリースされました。 github.com 主にPythonで書かれているようですが、Java、Scala、Python、Golangのビルドに対応しており、Thriftのコード生成やMarkdownからのド…

GitBucket 4.4をリリースしました

Scalaで実装されたオープンソースのGitサーバ、GitBucket 4.4をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.4 SQLダンプファイルのインポート これまでデータベースのダンプはXMLとSQLで行うことができましたが、インポートはX…

ThinkPad USBキーボードをちょっとだけ使いやすくする方法

PC

ThinkPad USBキーボードの現行モデルはThinkPad本体と同じくアイソレーションキーボードでパームレストがない分サイズもコンパクトです。Bluetoothモデルもあるのでタブレットと組み合わせて使うのもよいかもしれません。 レノボ・ジャパン ThinkPad トラッ…

ThinkPadキーボード(の前モデル)こそ至高のキーボード

PC

結構前に会社の人にThinkPadキーボードの前モデル(55Y9024)を譲ってもらって職場のMacBookで使っているのですが、このキーボードが非常に使いやすいです。 レノボ・ジャパン ThinkPad USB トラックポイントキーボード(日本語) 55Y9024出版社/メーカー: Len…

blocking−slickで大体Slick2と同じメソッドが使えるようになりました

先日からblocking-slickというSlick3にSlick2風のブロッキングAPIを追加するライブラリを作っています。 github.com 基本的にはQueryオブジェクトにimplicit conversionで同期実行用のメソッドを生やすという方式で実装していたのですが、更新系のメソッドが…

Slick3用のブロッキングAPIを作ってみました

github.com なぜ作ったのか? 事の発端はSlickのこのイシューです。 github.com GitBucketはServletベースということもあり、Slick3のDBIOは非同期実行のメリットが得られないのに複雑さだけが劇的に向上してしまうこと、プラグイン開発者にもモナディックな…

GitBucketプラグインを作ってみよう

GitBucketはプラグインシステムを備えており、プラグインで様々な機能を拡張することができます。このエントリではプラグイン開発の最初の一歩について説明します。内容的には以前GitBucket Newsで書いた以下の英語のエントリと同じものです。 gitbucket.git…

GitBucket 4.3をリリースしました

Scalaで実装されたオープンソースのGitサーバ、GitBucket 4.3をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.3 絵文字のサポート GitBucket 4.3と同時にgitbucket-emoji-pluginがリリースされました。このプラグインは以下の機…

第十六回 #渋谷java を開催しました

7月23日(土)に弊社オフィスで第十六回 #渋谷javaを開催しました。 今回は以下の皆さんに発表していただきました。 セッション枠(20分) Shunsuke Tadokoro 「JISの歴史から迫る文字コード入門」 ayato_p 「翻訳にまつわるエトセトラ」 通常枠(10分) yy_t…

Akka HTTPでJacksonを使ってJSON変換をする

Akka HTTPではspray-jsonを使用するモジュールが提供されており、これを使用することでJSONで受け取ったリクエストをオブジェクトに変換したり、戻り値として返却したオブジェクトをJSONとしてレスポンスすることができます。 takezoe.hatenablog.com が、sp…

Jekyllで未来の日付のエントリも表示する

Jekyllは以下のようにエントリの先頭にYAMLでメタデータを記述することができます。 --- layout: post title: "GitBucket 4.3 released!" date: 2016-07-30 00:00:00 image: /images/gitbucket-4.2/adminlte.png categories: gitbucket --- dateで公開日を指…

GitBucketをPostgreSQLやMySQLで動かす

GitBucketは標準では内蔵のH2という組み込みデータベースで動作しますが、4.0からはH2の代わりに外部データベースとしてPostgreSQLやMySQLを使うことができるようになっています。H2はデータの保全性に問題がありますので業務等の重要な用途にGitBucketを使…

JekyllでTwitterカード用のタグを出力する

前回紹介したjekyll-seo-tagプラグインはogp用のタグは出力してくれるのですが、twitterカード用のタグを出力するにはTwitterのユーザ名を設定しないといけないようです。 GitBucketは自分のTwitterアカウントで情報を流していますが、プロジェクトとしての…

GitHub PagesのJekyllでogpタグを出力する

GitHub Pagesのドキュメントによるとjekyll-seo-tagというプラグインが使えるみたいです。 github.com まず_config.ymlに以下の記述を追加します。 gems: - jekyll-seo-tag それから_layouts/_default.htmlなどタグを出力したい位置に{% seo %}という記述を…

GitBucket 4.2をリリースしました

GitBucketを3.x系から4.0にアップデートしていた場合に4.2にアップデートできないというバグがあることが発覚したためこれを修正した4.2.1をリリース済みです。この条件に該当する方は4.2ではなく4.2.1を使用するようにしてください(ただし、新規にGitBucke…

Netflixのオープンソースソフトウェア

ここのところHystrixについて調べていたのですが、Netflixは他にもGitHub上で様々なOSSを公開しています。 github.com Javaのものが中心ですがPythonやGo、Cで書かれているものもあります。ライブラリ的なものからミドルウェアや運用ツールまで多岐に渡って…

HystrixをScala / Playアプリケーションから使ってみる

前回はHystrixの簡単な紹介を書きました。 takezoe.hatenablog.com HystrixはJavaライブラリなのでもちろんScalaからも使うことができるのですが、そのままだと若干Scalaからは使いにくい部分もあります。今回はScala(主にPlay Framework)でHystrixを使う…

マイクロサービスにレジリエンスをもたらすHystrixを試してみる

github.com HystrixはNetflixが開発しているオープンソースのJavaライブラリで、主として分散システムにおけるサービス間のやり取りをラップして以下のような機能を提供します。 スレッドプールの分離 フォールバック、サーキットブレーカー タイムアウト キ…

ScalaCheckでケースクラスを生成するジェネレータの作り方

先日社内勉強会でJavaでのプロパティベーステストライブラリとしてjunit-quickcheckが取り上げられていました。 今週の社内勉強会は「やる夫と学ぶプロパティベーステスト」だった。junit-quickcheckが紹介されてたんだけど確かに日本語情報少ない。ScalaChe…

Happy Hacking Keyboard Professional2を買ってみた

PC

ずっとThinkPad USBキーボードを使っていたのですが、職場の若者たち(オッサンもですが…)が皆HHKBやRealforceなどの高級キーボードを使っていて羨ましくなってきたので買ってみました。*1 PFU Happy Hacking Keyboard Professional2 墨 英語配列 静電容量…

Apache DrillでLTSVを検索するためのプラグインを作ってみた

DrillはJSONやCSV、TSVなどはデフォルトでサポートしているのですが残念ながらLTSVはサポートしていません。もちろんLTSVはシンプルなのでJSONなどへの変換も容易なのですが、S3にバックアップしたLTSV形式のログを直接Drillから検索できると便利かなと思っ…