2015年09月11日

Facebook ではデータセンターにおいて Kea DHCP サーバーをどのように活用しているか?

Kea を使うのはまだずっと先の話だろ?って考えていたんですが、「How Facebook is using Kea in the datacenter」によれば何と Facebook では既にバックエンド・テクノロジとして活用されているみたいです。  ISC(Internet Systems Consortium)社の Vicky Risk さんが書いたこの大変興味深い記事を勝手に日本語訳しつつ、僕の感じたことを付け足してみます。

Facebook_like_Kea
  続きを読む
Posted by netbuffalo at 00:30Comments(0)TrackBack(0)

2015年07月08日

RPi - Raspberry Pi 2 で周波数変調してミニ FM 局を楽しむ方法

ミニ FM 局を作って遊ぶ。 実用的かは大いに疑問でも科学が大好きな男の子にはたまらないハックですよね。 今日ご紹介するのはジャンパーワイヤと Raspberry Pi 2 さえあれば FM 電波で興奮することができるぜってハックです。

fm_radio
  続きを読む
Posted by netbuffalo at 04:00Comments(2)TrackBack(0)

2015年02月12日

ISC DHCP サーバーの IP アドレス・リース履歴を DB 化するプロトタイプ的実装

通信事業者にとって DHCP を使って配布した IP アドレスとクライアントを指し示す物理アドレスを管理することは重要な意味があります。 例えば、不正アクセスがあればアクセス元 IP アドレスをスタート地点として、そのような行いをした個人・集団まで特定・追跡する必要があるからです。 ISC-DHCP でこのような要件を満たすシステムを構築するにはどんな方法があるのでしょうか? ここ数日、思考設計していたんですが今日は具体的なプロトタイプを実装してみますよ。

追跡
  続きを読む
Posted by netbuffalo at 22:30Comments(0)TrackBack(0)

2014年12月26日

後編:Vagrant(+ VirtualBox/Ubuntu Server 14.04)環境で Appium(Node.js)と Cucumber(Ruby)を組み合わせて Android デバイス上のアプリケーションを BDD する方法

前回に続いて実機を用いた Android アプリケーションの試験自動化のお話。 後編では BDD (振る舞い駆動開発)を実現する Cucumber を使って受け入れ試験を具体的に自動化してみます。

cucumber
  続きを読む
Posted by netbuffalo at 21:15Comments(0)TrackBack(0)

前編:Vagrant(+ VirtualBox/Ubuntu Server 14.04)環境で Appium(Node.js)と Cucumber(Ruby)を組み合わせて Android デバイス上のアプリケーションを BDD する方法

考えるのが面倒になりキーワードだけを組み合わせたらよくわからないタイトルになりましたが、シュミレーターでは無く複数の実機上で Android アプリケーションの動作検証(受け入れ試験)をすると聞き、物理サーバー上にテスト環境をセットアップ・テスト自動化要素を評価しようと考えたけど仮想環境として作った方がチームでも共有できるし絶対に便利だよな、と思い Vagrant(VirtualBox)上でどこまで出来るか調べて見たよ、というお話です。

Android_robot

  続きを読む
Posted by netbuffalo at 21:00Comments(0)TrackBack(0)

2014年06月10日

NoSQL - SQL も使えるドキュメント指向データベース CRATE 入門

NoSQL でドキュメント指向データベースといえば MongoDB が有名・話題ですが、今日は同じドキュメント指向データベースでも SQL インタフェースのサポートによる既存資産・知識とのシームレスな統合、NO DATABASE ADMINISTRATION が売り文句の CRATE を実践してみますよ!

logo-elephant
  続きを読む
Posted by netbuffalo at 22:27Comments(0)TrackBack(0)

2013年09月24日

RPi - Raspberry Pi と Google Coder で作る Web プログラミング学習環境

Coder は Google がオープンソースとして公開した教育目的の Web サービス、プログラミング実行環境です。
大人が目的も無く遊んで楽しいものかと言えば・・・なんですが、これから Web アプリケーションの基礎を学んでみたい人・手軽に使える学習教材・環境を探している人にはオススメの Raspberry Pi パッケージです。

はじめての Coder

  続きを読む
Posted by netbuffalo at 22:00Comments(0)TrackBack(0)

2013年08月12日

DBCP より 50倍早い!? BoneCP を使って高速コネクション・プーリングを実現する方法

DB 殺すにゃ刃物はいらぬ、Connection の3つも短時間で get すれば良い、なんて言ったか言わないかはわかりませんが DB サーバーにとってコネクションの生成はコストの掛かる処理で、この負荷を軽減する為にアプリケーション側で DB コネクションのプーリングを実装することは多々あります。

このコネクション・プーリングは JDBC ドライバの一部として提供されることもありますが一般的には依存性を回避する為に DBCP , C3PO などのミドルウェアを利用しますよね。

今日ご紹介するのは高速、ハイ・パフォーマンスを特徴とする第三の JDBC コネクション・プーリング実装 - BoneCP です。

performance

  続きを読む
Posted by netbuffalo at 20:00Comments(0)TrackBack(0)

2013年07月19日

Webcam Capture を使って Java から Webカメラ を簡単制御(キャプチャ・動体検知)する

PCにバンドルされていながら使う頻度が低い・割高なデバイスといえば Webカメラ(独自算出)。 でも、プログラムから自由に使えるとなればその評価も変わってきます。 今日は Java でWebカメラを簡単に操作できる Webcam Capture / Java Webcam API をご紹介しますよ。

webcam capture java library

  続きを読む
Posted by netbuffalo at 20:54Comments(0)TrackBack(0)

2013年07月17日

Java cron 実装 - cron4j ライブラリでタスクのスケジュール実行を簡単実装する

cron は cron を使えばいい、Java に cron 実装を求めるなんて不思議に思うかもしれませんね。
が、もし Java で実装できればアプリケーションから OS 固有の仕組みを削除でき、より WORA (Write One Run Anyware)なアプリケーションを実現出来る、タスクの実行結果を簡単に他の Java オブジェクトと共有可能といったメリットもありますよ。

java cron

今日 はQuartz よりも簡単・手軽にタスクのスケジュール管理・実行が出来る cron4j をご紹介します。

  続きを読む
Posted by netbuffalo at 01:05Comments(0)TrackBack(0)

2013年05月16日

SLF4J - Javaロギング実装・ライブラリの柔軟な切り替え・効率化を実現するロギング Facade

僕の中では、 Java でロギングするなら log4j 1.2 系で必要十分。 それ以外、最新のトレンドについて考えることなんて数年前から無くなっていたんです。 だって、ライブラリの性能、機能(出力先の種類)が多少増えても現場のロギング要件はそんなには変わりませんから。 でも、今日ご紹介する SLF4J (Simple Logging Facade For Java) は大変興味深いロギングAPIなんですよ。 SLF4J は各種ロギング・ライブラリのアダブタAPIと言ってもよく、これによってロギング・ライブラリの実装を開発フォーズと綺麗に分離することが出来るんです(実装の遅延評価)。 さらに、このアダプタとしての役割を使えば開発者の負担も減らすことが事が出来るんですよ。

slf4j log icon

  続きを読む
Posted by netbuffalo at 19:30Comments(0)TrackBack(0)

2013年05月13日

Commons CLI vs. args4 - Java コマンドライン オプション・パーサー比較

JavaでCLIアプリケーションを開発し、少し凝った・本格的なオプション(引数)操作を実装する場合、貴方ならどうしますか?
 
知名度で言えば圧倒的に Apache Commons CLI ですが、今日は args4j という新世代(言い過ぎ?)オプション・パーサーも含めて紹介・比較してみます。

CLI option handling

  続きを読む
Posted by netbuffalo at 20:30Comments(0)TrackBack(0)

2013年04月26日

Java RMI ConnectException: Connection refused to host: 127.0.0.1 エラーの正しい理解と対策

Java RMI による分散オブジェクト開発の経験があれば一度は目にする・躓くエラーが Connection refused to host: 127.0.0.1 じゃないでしょうか(特にLinuxサーバー上でRMIサーバー・アプリケーションを利用する場合に)。 勿論、僕も経験して解決したクチなんですが、その時からずーっと気になっている事があったんです。 それは、この例外の発生メカニズム・対策に関する体系的な説明が見当たらないこと。

rmi connection refuse

良質かはわかりませんが、今日は Java RMI, Connection refused to host 127.0.0.1 エラーの原因と対策について全体像も含めて紐解いてみます。

  続きを読む
Posted by netbuffalo at 20:30Comments(2)TrackBack(0)

2013年03月27日

JavaオブジェクトをXMLへシリアライズ, デシリアライズする時に知っておきたいライブラリ2選 - Simple & XStream

データベースを使う程では無いがオブジェクの状態を保存しておきたい、そんな時にはJavaオブジェクトのシリアライズ(直列化)、デシリアライズ(非直列化)が頭に浮かびます。この方法には幾つかありますが、シリアライズされたデータを人が理解・編集出来る、外部システム/他言語間でのデータ交換にも利用することを望むのであればXMLフォーマットは大変便利です。
 
僕はアプリケーションの設定ファイル <-> Java オブジェクト変換に使うことが多いですね。

application-x-zoo

今日は Simple/XStream という2つのJavaライブラリの使い方・特徴を紹介します。 
  続きを読む
Posted by netbuffalo at 08:00Comments(0)TrackBack(0)

2013年03月08日

Log5j (Not Log4j) - Java High Performance Logging Library

アプリケーション開発においてハイ・パフォーマンス・ロギングへの注意は必要でしょうか?

media-seek-forward-3

大部分のアプリケーションでは必要無いかもしれません。しかし、もし貴方のアプリケーションがロギング要件は出来るだけ変更せずに秒オーダーで数千~数万トランザクション/セッションを管理し、なおかつタイムアウトの発生を極力避け無ければならない状況になったらどうでしょうか?

log5j を利用すれば log4j で実装したロギング処理をとても簡単にハイ・パフォーマンス化することが可能です。
  続きを読む
Posted by netbuffalo at 20:30Comments(0)TrackBack(0)