適当にサンプルを選ぶ

技術研究所の(あ)です。
ここ数年の流行りの機械学習ですが、僕もちょっと機械学習を用いた画像分類を試してみる機会がありました。
識別したい対象 (例えば猫) が写っている画像(正例)と、写っていない画像(負例)を用意し、機械学習アルゴリズムで学習させると、「その対象 (猫) が写っているか?」という確信度を返す分類器ができあがります。

試したシステムの説明では「正例と負例は同じくらいの数で学習させるとよい」と書いてありました。

手持ちの写真がたくさん (例えば1万枚) あって、その中に猫の写真が100枚 (集合C としましょう) あったとしたら、猫の写ってない写真を残りの 9900枚 (not-C としましょう) から 100枚選んでやる必要があります。どうせならなるべく偏りがないよう、ランダムにせねばなりません。
C と、not-C から選んだ100枚から、それぞれ同じ割合でランダムに学習用データとテスト用データに切り分ける必要もあります。どうやって選ぶのがスマートかなー、調べれば出てくるよなー、と思ったのですが、その前にちょっと自力で考えてみました。

続きを読む

スプリントプランニングとプランニングポーカーのやり方

こんにちは、技研の「むらたん」です。

先日、客先で開発チームのメンバーとしてスクラムを実践している社員から「スクラムが上手く回っていない」という相談を受けました。

具体的には、以下の内容です。

① プランニングしたポイントがスプリント期間中に膨らみ、予定していた作業を達成できない。その結果、プロダクトオーナーに悪い印象を持たれてしまう。
② ポイントが膨らむ理由は「環境整備」や「調査」のように、プロダクトには直接関係なく、スプリントプランニングで計画しきれていないタスクを行う必要が出てくるためである。
③ そもそも、メンバーによってベロシティが異なるから、ポイント自体の扱い方がよくわからない。

現場を観察しておらず、立ち話で聞いた程度の情報なので外れているかもしれませんが、聞く限りでは以下の印象です。

  • ポイントと工数が同じものとして扱われており、ポイントで見積もることの本質が理解できていない。
  • プロダクトオーナー(PO)、スクラムマスター(SM)、開発チームというロールの役割と責務の認識が正しくない。

今回のエントリーでは、ここから推測される問題について触れたいと思います。

免責事項
以降、スクラムの用語を用いた説明になります。用語の説明はスクラムガイドあたりを参考にしてください。

続きを読む

Cloud9で作るGAE/Go環境

技術研究所(ほ)です。

去年の冬に Chromebook を購入したことをきっかけに、すべてをChromebookで済ませられる環境を目指しています。

そのなかで、先日 GAE/Go で開発を行いましたので、その開発環境の作り方を書きたいと思います。

続きを読む

定型作業の自動化とChatOps

こんにちは、技研の「むらたん」です。

今年度も開発技術SIGを継続することになり、引き続き、リーダーを務めることとなりました。
活動方針は以前のエントリーにもあるとおり、「技術を【自分たちのため】に活用して、プロジェクトの品質・生産性を向上させる」です。

今期のテーマは
「プロジェクト管理基盤の機能強化と全社標準化」
「定型作業の自動化」
としました。「プロジェクト管理基盤」は昨年からの継続活動であるため簡単に、「定型作業の自動化」については、詳しく紹介したいと思います。

続きを読む

Java日記~Apache HttpComponents でクライアント認証②~

こんにちは、技研のブルマンです。

だいぶ間が開いてしまいましたが、前回の投稿
Java日記~Apache HttpComponents でクライアント認証~
からの続きとなります。

前回のおさらい

前回は

ただ情報量が少なすぎて調べきれずに今回はタイムアップです。
この件なんと続きます、、、すみません

と続けてしまいました。

続けた理由は以下の実装の

// サーバー証明書のキーストアとクライアント証明書をコンテキストに設定する
TrustStrategy trustStrategy = new TrustStrategy() {
public boolean isTrusted(X509Certificate[] certificate, String type) {
return true;
}
};
SSLContext sslcontext = SSLContexts.custom()
.loadKeyMaterial(keyStore, keyPass)
.loadTrustMaterial(trustStore, acceptingTrustStrategy).build();

TrustStrategyの実装がセキュリティ的にどうなんだ?と疑問が残ったためです。

TrustStrategyクラスを見た限りでは4.1から導入されていますが、情報量が少なすぎて正しい使い道が分かりません。

続きを読む

重ねる二次元コードを作ってみた

技術研究所の(あ)です。
技術研究所では毎年、イベントに参加して頂いた方などに配るノベルティを作っています。
これまで、ポストイットとかステッカーとかを作ってきました。
では、今年度分は何にしよう? というのを技研メンバーで考えていたのが前年度の一月末ころ。

予算的に合いそうな選択肢がいくつかピックアップされていたのですが、
その中に、透明プラスチックベースの栞、というのがありました。
「『二枚重ねると絵柄が変わる』とかおもしろいかも」
「重ねる組み合わせで違う絵柄になるとか」
「重ねると『正しい』QRコードが読める、とかできそうだよね」
まずはちょっと試してみましょう。

続きを読む

【テスト自動化#2】「テスト設計の自動化を支える技術」

はじめに

こんにちは、技研の「むらたん」です。

前回の投稿でテスト自動化に先駆けて、テストについて簡単に触れました。

「テスト自動化」と聞くと、人が手で行っている作業が自動化され、楽になり、品質も上がって幸せになれるような感覚を抱きがちですが、それは紛うことなき幻想であります。この手の話は各方面で語りつくされており、内容に目を通してみると、現時点では「こうすれば良い」という模範解答は無いということが見えてきます。
そして、しばらくはこの状態が続くことと思われます。

それが故に、
「我が社のテスト自動化事例」という形で各社の取り組みが紹介されたり、有償・無償を問わず、多様なテスト自動化ソフトが開発・販売されているのだと思います。

続きを読む

PowerPoint で始める動画編集

技術研究所の (あ) です。
今時のプレゼンで、デモビデオって重要ですよね。
実機でのデモが見せられなかったとしても、たとえば
「スマホを使ってこういうことができます!」
という様子を映像で見せられれば、解りやすくなり説得力も増します。

素材はスマホやデジカメで撮れるとして、
必要な部分を切り出したりつなげたり、とか、
タイトルや簡単な説明を入れたり、くらいのことはしたくなりますし、
それだけで見栄えもだいぶ増します。

「でも、自分のパソコンに動画編集アプリとか入ってないし…」
(あれ、前回と同じような展開が…^^;)
「…大丈夫、PowerPoint があればなんとかなります!!
(やっぱりこうなる^^;;;)

ということで、今回はパワポで動画を編集してみます。
今回も PowerPoint 2010 での編集例です。

続きを読む

PowerPoint で始める画像加工

技術研究所の (あ) です。
写真を撮ったけど
「暗い」「赤っぽくなってしまった」「余計な部分が写ってる」
などの困った点があって、シェアしたいけど躊躇してしまうことはないでしょうか。

「でも、自分のパソコンに PhotoShop とか入ってないし、
フリーのアプリとかもよく解らないし…」
「…大丈夫、PowerPoint があればなんとかなります!!

ということで、
前に「PowerPoint の使い方はさほど詳しくなくて」と書いたわりに
またパワポネタです。

PowerPoint の意外と多彩な画像加工の機能は
「スライド作成のための便利な機能」として広く紹介されています。
しかし、応用範囲はスライド作成に限りません。
加工した画像は「画像として保存」のメニューで JPEG や PNG 形式のファイルとして
保存可能です。
つまり、「写真・画像の加工のため」だけに PowerPoint が使えるのです。
以下、PowerPoint 2010 での加工例を紹介します。

続きを読む

Java日記~Apache HttpComponents でクライアント認証~

こんにちは、技術研究所(通称:技研)のブルマンです。

今回は「Apache HttpComponents HttpClient」について書きます。

コトの始まり

技術研究所ではRedmineの環境にAWS・EC2を使用しているのですが、サーバ通信(HTTPS)は自己署名証明書を使用しています。

自己署名証明書(通称:オレオレ証明書)はインターネット上の一般公開で使用するのは厳禁ですが、
クローズドな環境でHTTPS通信をする場合はやはり頼らざるを得ません。
(AWSのFWでのアクセス制限をかけているだけなので厳密にはクローズでありませんが)

今回はEC2側に自己CA認証局を建てて、クライアント証明書を発行、それでクライアント認証をするという仕組みを作りました。これの構築もかなり苦労したのですが、当記事ではJavaからRestAPIでRedmineを叩くため苦労した結果を紹介します。

続きを読む