2014-12-18

はじめに @making さんからオファーをいただいて、12/17 (水) の JJUG ナイトセミナーで Java でカジュアルに機械学習するお話をしてきました。 Java というコミュニティ的に機械学習ガチ勢の方が圧倒的に少ないことが予想されたので、あんまり小難しい技術の話は含めず初学者向けの内容構成とし、機械学習をシステムに組み込んでいく上でこれは大事だよね… と個人的に思っているポイントを整理してスライドにしていったら、文字が多くなってしまった上に若干エモくて Java 的な話がほんのり程度になってしまったのが今回の反省点です。 なお講演時の動画が YouTube にアップロードされています ので、より詳しい話を知りたい場合はこちらをご覧ください。 Java と機械学習 Java で動く機械学習ライブラリ・フレームワークはわりと数多あって、でも Java で機械学習を利用する際のワークフローをすべてカバーするのがいいかというとそんなことはない、と私は考えています。 特に、モデルを作る際の...

2014-12-13

はじめに 会社の合宿予定が入っていて参加できそうになかったので、やむなく参加を見送っていた 12/13 (土) の 第九回 渋谷java でしたが、思ったより早く東京に戻ってくることができたので、下記のように @komiya_atsushi @jflute できますよー。LT枠空いているので是非お願いしますw— Naoki Takezoe (@takezoen) 2014, 12月 13 と参加できそうなのかつぶやいてみたところ、カジュアル無茶ぶりコメントをたけぞー先生よりいただいたので適当にネタをでっちあげて LT 発表してきたのでした。 SmartNews ♥ Slack @amachino さんが先日 Slack の Advent calendar に投稿したとおり、スマートニュースでは 社内のコミュニケーションに Slack を活用しています。 通常の人同士の会話だけでなく...

2014-10-22

最近 Redshift を触っていて、圧縮エンコードについて調べることがあったのでメモメモしておきます。なお、2014 年 10 月時点での情報であることと、わりとざっくりとした確認だったので不正確な情報が混じっているかもしれないのでご承知おきください。 文字列データ (VARCHAR など) 選択肢としては、 text255, text32k, bytedict, lzo あたり 空間効率的には text255 text32k はあんまりよろしくなさげ また、text255 はカラムサイズが 255 を超えるカラムに適用することができない (厳密には、255 バイトを超える文字列が入っている場合に適用できない、となる) 値の種類数が少なく (目安として、256 個以下ぐらい)、かつ種類が増える可能性が低い場合 bytedict もしくは lzo を選ぶのがよい 種類数が 256 を超える場合であっても、出現頻度に偏りがある場合は...

2014-09-21

はじめに 毎回、他の発表者の方々が有益情報を発表してくれる中で僕一人が誰得情報をひたすら発信しているわけですが、今回もご多分に漏れず Java 8 で認証系を自作する、というニッチな話をしてきました。 昨今のパスワード流出系のセキュリティインシデントが業界内で話題になるたびに「認証系なんてものは自作するようなもんじゃない」という認識が醸成されつつあると思います。しかし、マイナー...

2014-09-17

VM 上の Ubuntu に apt-get で mysql-server-5.6 をインストールし、VM の外から VM 内部の mysqld に接続しようとしたときにこのエラーが発生した。 原因は my.cnf に bind-address = 127.0.0.1 が設定されていたためであった。 この行を my.cnf から削りとって、ようやくVM 外部から mysqld に接続できるようになったけど、毎回こんな感じのトラブルで時間を喰われてしまっているわけで、MySQL 力が低いと何かと生きるのが辛い…...

2014-09-15

「えーマジ native2ascii!?」「プロパティエディタプラグインが許されるのは J2SE 5.0 までだよねー」 ジャバエンジニアはそろそろ、プロパティファイルを扱う場合に native2ascii やら各種プロパティエディタプラグインやらの呪縛から解放されてもいいと思うのです… 概要 Java でアプリケーションの各種設定を記述したプロパティファイル (.properties) を取り扱う場合、 Properties クラスもしくは ResourceBundle クラスのお世話になるかと思います。 一昔前までは、プロパティファイル内で日本語などいわゆるマルチバイト文字を含む場合に、 native2ascii コマンドを利用して ASCII コードの文字のみで表現できる ユニコードエスケープ (!= UTF-xx エンコーディング) 表現に変換することが必要とされていました。 しかし、Java...

2014-09-11

「何をいまさら」な感じの機能追加だけど、Java 8 から 標準のクラスライブラリで Base64 エンコーディング できるようになった。これはこれで嬉しいことなので、使い方とそのパフォーマンスをメモっておく。 使い方 まずはデモコードから。 ...

2014-08-21

気づいたらいつの間にか Docker Official な MySQL イメージ が公開されていたので、ちょうどとある製品の検証目的で使い捨てられる MySQL の環境が欲しかったついでに試してみたところ、ちょっとハマって数時間を無駄にしてしまったことにカッとして書き殴ったメモ。 (photo by Mark Interrante) 達成したいこと 達成したかったことは以下のとおり。 お手軽にポイ捨てできる...

2014-06-10

はじめに ちょこっとご報告が遅れてしまった気もしますが、タイトルにあるとおり、 @chezou さん主催の Machine Learning Casual Talks #1 @クックパッド社にて発表をしてきました。 当 Casual Talks 開催に至った背景は以下のとおり。 @unnonouno @komiya_atsushi...

2014-04-07

ようやく Ansible 始めたけど右も左も分からない初心者なので、忘れないようにメモっておきます。 ssh 接続に関する情報をどこに記述すればいいのか? 方法 1: .ssh/config に記述する ssh コマンドが参照する .ssh/config ファイルに、ssh 接続に必要な情報を記述する方法です。 Host hoge.example.com HostName hoge.example.com User deployguy IdentityFile ~/.ssh/id_rsa.hoge.example.com 普段お使いの .ssh/config を Ansible にそのまま流用・活用することができるため、 開発者ごとにサーバへのログインアカウントが異なる場合に適している方法と言えるでしょう。 一方で、Ansible...

2014-03-31

お手軽に各種バンディットアルゴリズムの特性・性能を比較することができる Web ベースのバンディットアルゴリズムシミュレータを、Yeoman, Bower, Grunt, D3.js, NVD3.js, AngularJS, Bootstrap なんかを使って作ってみましたよ、というお話です。 デモサイト&ソースコード シミュレータのデモサイトとソースコードはそれぞれ以下になります。 デモサイト...

2014-02-27

lz4-ruby の開発を進めるために、LZ4 の近況を確認してみたところ、 それなりに活発に開発されているようで変更点が多かったため、メモを兼ねてエントリにまとめてみました。 r76 から r113 までの変更履歴を追う形で、主だった変更を列挙していきます。 API が増えた r76 の時点ではマクロを含めて 6 個だった API が、r113 では obsolete を除いても 36 個と大幅に増えました。 LZ4 の基本機能は以前とはそう変わらないものの、後述するストリーム処理用 API など、 利用シーンごとに適した API を拡充しているようです。 liblz4 が作成されるようになった r111 より。 以前の LZ4 は Makefile はあれど make してもライブラリは生成されず、 そのためアプリケーションから LZ4 の圧縮・伸長機能を利用しようとすると、 アプリケーションのビルド時に...

2014-01-21

はじめに 2.x 系が公開されているこのご時世に、やんごとなき理由により OpenCV 1.0.0 をソースコードビルド&インストールしなければならない状況、エンジニアの皆さんなら一度や二度は経験していますよね。ね? 今回、Ubuntu 12.04 LTS 上で OpenCV 1.0.0 を苦労しながらソースコードからビルドしてみたので、そのメモを残しておきます。 1. パッケージのインストール パッケージのインストールなどを先に済ませます。個人的な好みで aptitude を使っていますが、 apt-get でも同様にインストールできるはずです。 sudo aptitude install build-essential # コンパイルエラー/リンクエラーを阻止するために、これはインストール必須。 sudo aptitude install libv4l-dev $...