GeekFactory

int128.hatenablog.com

2012-01-01から1年間の記事一覧

Revert "はてなブログに引っ越しました"

This reverts entry id:int128:20121213.はてなブログからはてなダイアリーに戻ります。rebaseじゃなくてrevertしておきます。クリスマスにこんなエントリを書くとは想定外でした。

Webアプリのデプロイ後に初期化を待つスクリプト

Gradleスクリプトの小ネタです。Webアプリのインテグレーションテストやスモークテストを行う場合、デプロイ後にアプリが完全に初期化されるまで待機してからテストを行いたい場合があります。そんな時は、アプリがHTTP 200を返すまでリトライする処理を直前…

Gradle SSH Plugin 0.1.3をリリースしました

GradleでSSH経由でコマンド実行やファイル転送を行うためのプラグイン gradle-ssh-plugin のバージョン 0.1.3 をリリースしました。 https://github.com/int128/gradle-ssh-plugin 今回のバージョンからは Maven Central Repository から取得できるようにな…

はてなブログに引っ越しました

はてなブログ はてなブログ に引っ越しました。今後ともよろしくお願いいたします。

gradle-ssh-plugin-0.1.0を公開します

GradleでSSHを使う際に便利なプラグインを作ったので公開します。複数のサーバでコマンドを実行したりファイルを転送したりするのを簡潔に記述できます。 https://github.com/int128/gradle-ssh-plugin 現在のバージョンは最小限の機能しか実装していません…

ビルドツールによる開発プロセスの改善と効果

世の中にいくら便利なツールがあっても、それを使うのは人です。ツールを導入するだけでは開発プロセスは変わりません。開発プロセスを変えるには、前例や慣習にしがみつく人や組織のリテラシーを変えていく必要があります。そういうレガシーな人たちと闘う…

Gradle タスクの直列実行を Collection.inject() で書いてみる

非同期処理の直列実行を Array.reduce() で書いてみる - GeekFactory と同じことを Gradle (Groovy) でやってみます。Gradle で複数のタスクの依存関係を定義するケースを考えます。Task.dependsOn を使って複数のタスクを指定した場合、タスクの順序は保証…

第6回Jenkins勉強会に参加しました

第6回Jenkins勉強会 - connpass に参加しました。某試験等の影響により遅くなってしまいましたが、まとめを書いてみます。不備がありましたらご連絡頂けますと幸いです。 Gerrit Trigger Pluginを使ってJenkinsをコードレビューシステムGerritのレビューアー…

Gradleのマルチプロジェクト構成を運用してみた

Gradleでマルチプロジェクト構成を運用してみて、気付いた点を書いてみます。以下の環境で確認しています。 JDK 1.7 Eclipse 4.2 Subversive, SVNKit 1.7 Gradle IDE 3.0 Jenkins マルチプロジェクト構成については下記が参考になります。 第7章 Javaクイッ…

How to install Apache Tomcat 7.0 on Linux

公式ドキュメントに従って Apache Tomcat 7.0 をインストールしてみました。前提条件 Scientific Linux 6.3 x86_64 Oracle JDK 7u7 x86_64 Apache Tomcat 7.0.30 gcc, make などのビルドツールが必要です。 実行ユーザ 実行ユーザを作成します。ここでは tom…

URI Template JSを使って簡単にURIを組み立てる

JavaScriptでURIを組み立てる時、文字列の連結で頑張ったりしてませんか? var detail = 1; var products = ['iphone5', 'nexus7']; products.forEach(function (product) { $.get('/products/' + product + '?detail=' + detail).done(/* ... */); }); RFC6…

非同期処理の直列実行を Array.reduce() で書いてみる

jQuery 1.5から Deferred Object がサポートされて、AJAXのレスポンスは Deferred API を通じて受け取れるようになりました。例えば、下記のように $.post() の結果は .done() もしくは .fail() で受け取れます。 $.post('/reserve', {product: 'iPhone5'}).…

Windows上のJenkinsでドメイン認証を使う

Active Directory環境にあるJenkinsをドメイン認証(統合Windows認証)でシングルサインオン化する方法について説明します。ここでのシングルサインオンは、ドメインアカウントでWindowsにログオンしていて、WebブラウザでJenkinsを開くと自動的にログイン済…

Windows上のApache httpdでドメイン認証を使う

mod_auth_sspiを使うとドメインアカウントによる認証が可能です。例えば、Active Directory環境にあるSubversionリポジトリの認証をシングルサインオン化できたりします。使い方はとても簡単です。 ドメインに参加済みとします。 Apache httpdをインストール…

GradleでAPT (Annotation Processing Tool) を使う

GradleでAPTを使うにはAntのaptタスクを利用します。slim3-genをどうやって組み込むか小一時間悩んだので残しておきます。やり方は色々あると思います。私は以下の方針でやってみました。 新しいソースセット(apt)を定義します。 APTコンパイルタスク(com…

もしSIerのマネージャがFizzBuzz問題を解いたら

SIerのピーエム*1と呼ばれる人たちはパワーポイントを武器に日々闘っている。そんなパワーポインターがFizzBuzz問題を解いたらどうなるだろうか?作ってみた。 作成手順書 PowerPointを起動する。 スライドマスタを表示し、ページ番号を大きなフォントにして…

Zabbixの概況をポータルサイトに貼り付ける

ポータルサイトに監視項目の概況を表示したいとき、Zabbixのグラフ画像をそのまま貼り付けると便利です。グラフやスクリーン等でグラフ画像を右クリックするとURLを確認できます。以下のパラメータをうまく料理すれば、ポータルサイトのサイドバーにぴったり…

第10回 TFSUG に参加しました

7月13日 第10回 TFSUG:ざっくりわかるScrum and Team Foundation Server #tfsug(東京都) 19:00-21:00 日本マイクロソフト品川本社「ざっくりわかる SCRUM AND TEAM FOUNDATION SERVER」講師は @ryuzee さんです。スライドに書いてないトークを中心にメモし…

Gitポケットリファレンス

著者の方から Git ポケットリファレンスを頂きました。ありがとうございます。Gitポケットリファレンス作者: 岡本隆史,武田健太郎,相良幸範出版社/メーカー: 技術評論社発売日: 2012/07/10メディア: 単行本(ソフトカバー)購入: 7人 クリック: 103回この商…

Knockout.js で Drag and Drop

Knockout.js で jQuery UI の Draggable and Droppable を利用する方法を説明します。まず、新しい binding を定義します。 draggable binding 初期化時に $(element).draggable() を実行し、要素をドラッグ可能にする。 droppable binding 初期化時に $(ele…

入れ子になっている要素のイベント処理を制御する

Knockout.js を使う場合に、入れ子になっている要素のイベントを上手く制御する方法について書きます。公式ドキュメントに記載されている典型的なパターンですが、混乱しやすいのでまとめてみました。 やりたいこと 以下のHTMLを考えます。 <div class="task"> <input type="checkbox" /> <span class="title">温泉を予約する</span> <div class="notes"></div></div>…

CloudForecastでL2スイッチのトラフィックを監視する

パフォーマンスの問題を調査するためにCloudForecastを使ってみることにしました。48ポートをざっくり眺めてみましょう。CloudForecastの画面はこんな感じです。ちょっと手狭ですね。Chromeのデベロッパーツールで即席でCSSをいじると、2列×12行に並べたりで…

プロキシ環境変数を対話的に設定するエイリアス&関数

多くのコマンドでは http_proxy 環境変数を設定することでHTTPプロキシを使えます。 export http_proxy='http://proxy.example.com:8080' 認証付きプロキシを使う場合は URI にユーザ名とパスワードを含めます。 export http_proxy='http://user:passwd@prox…

jQueryのクロスドメインAJAXをIEに対応させる

XMLHttpRequest Level 2 に対応しているWebブラウザは、(ある条件下で)異なるドメインにAJAXリクエストを投げることが可能です。jQueryでは以下のように書けます。 $.ajax({ context: this, type: 'POST', url: 'http://www.example.com/hoge', /* 異なる…

Apache CXFでRESTサービスをさくさく作る

Apache CXF で REST サービスをさくさく作ってみます。自分で用意するもの。 Java 6 Eclipse Indigo m2e (Maven integration for Eclipse) Maven が用意してくれるもの。 Apache CXF Spring JUnit Apache Tomcat 新しいプロジェクトを作る [New]-[Project...…

海外挙式を支える技術

2012年3月、グアムで結婚式を挙げました。良かったことや苦労したことを振り返ってみます。これから海外挙式を考えている方のお役に立てれば幸いです。 はじめに 結婚式は立派なプロジェクトです。共同作業をしながら期日までに成果を出さなければなりません…

文章比較ツール

新旧のテキストを比較したいときは、文章比較ツールが便利です。追加・削除された文字数も数えてくれます。Google検索したらキーワードが「文書比較ツール」に訂正されてしまいました。

IPMI経由でDell PowerEdgeのハードウェア情報を取得する

DellやHPのサーバは、IPMI経由で電源やシャーシ温度などのハードウェア情報を取得できます。IPMIを使うとOSに依存せずに情報を取得できます。今回は以下の環境を使って検証しました。 監視対象 Dell PowerEdge BMCのみ(iDRACは搭載していない) デュアルポ…

第5回TFSUGに参加しました

4月13日 第5回 TFSUG:ウォーターフォールからアジャイル、リーンへ #tfsug(東京都) に参加しました。Evernoteのメモを貼り付けておきますので、参考になれば幸いです。書いたらまずいとかおかしい部分がありましたら教えてください。 @SHIBAO800 さんの後…

GitLabで始めるプライベートリポジトリのある生活

どこでもいつでもGitと一緒。GitLabはオープンソースのGitHubクローンで、Amazon EC2やさくらVPSなどにプライベートリポジトリを立てて使えます。プライベートリポジトリのある生活はかなり快適です。非公開のコードや各サーバのetc-filesなどをプライベート…