タグ

ブックマーク / takezoe.hatenablog.com (13)

  • AWS上で動作するアプリケーションをいかにローカルで開発するか? - たけぞう瀕死ブログ

    AWSでは様々な便利なサービスが提供されています。中にはRDSやElasticCacheのように既存のミドルウェアに対するマネージドサービスを提供するものもあり、これらについては既存のミドルウェアを使って開発することができますが、AWS固有のサービスについてはアプリケーションを動作させるには実際にサービスに接続する必要があり、開発環境が制限されてしまいます。 もちろんソフトウェア側で抽象化しておき、DIなどの手法を用いてモックに差し替えるという方法も考えられますが、特にストレージとして利用するサービスなどの場合はインタラクションが必要になるのでモックでは再現しづらいですし、やはり実際に動作するサービスに接続して開発やテストを行うほうが効率的です。 そこで、AWSのサービスを擬似的にローカルで再現することのできるプロダクトを集めてみました。 S3 node.jsで動作するs3-proxyが使

    AWS上で動作するアプリケーションをいかにローカルで開発するか? - たけぞう瀕死ブログ
    dann
    dann 2017/07/04
  • pac4jでGitHubのOAuth認証を使ってみる - たけぞう瀕死ブログ

    GitHubアカウントでログインできるWebアプリケーションを作りたいなーと思っていたのですが、Javaだとpac4jというライブラリを使うとGitHubを始め、TwitterやFacebookなど様々なサービスのOAuth認証を扱うことができるようです。 github.com SpringMVCやJAX-RSなどのフレームワークとの連携機能も提供されているようですが、今回は基的な使い方を把握するためにpac4j-oauthというモジュールを使ってサーブレットベースで試してみました。 まずはGitHub上でアプリケーションの登録を行う必要があります。 続いてプログラムの実装に移ります。pom.xmlに以下の依存関係を追加します。 <dependency> <groupId>org.pac4j</groupId> <artifactId>pac4j-oauth</artifactId> <

    pac4jでGitHubのOAuth認証を使ってみる - たけぞう瀕死ブログ
    dann
    dann 2017/01/29
  • マイクロサービスにレジリエンスをもたらすHystrixを試してみる - たけぞう瀕死ブログ

    github.com HystrixはNetflixが開発しているオープンソースのJavaライブラリで、主として分散システムにおけるサービス間のやり取りをラップして以下のような機能を提供します。 スレッドプールの分離 フォールバック、サーキットブレーカー タイムアウト キャッシュ モニタリング 例えば外部サービスに障害があり呼び出しがエラーになる場合や、処理に時間がかかった場合にフォールバック値を返すことで呼び出し元の処理を継続できたり、外部サービスの呼び出しでエラーが多発する場合は一時的に呼び出しをショートカットして呼び出し先の回復を待ったりといった制御を行うことができます。 マイクロサービスではあるサービスの障害や遅延が他のサービスに波及する危険性がありますが。このような仕組みをサービス間の通信に導入することでサービス全体のレジリエンスの向上が期待できます。 今回はHystrixの基

    マイクロサービスにレジリエンスをもたらすHystrixを試してみる - たけぞう瀕死ブログ
  • Netflixのオープンソースソフトウェア - たけぞう瀕死ブログ

    ここのところHystrixについて調べていたのですが、Netflixは他にもGitHub上で様々なOSSを公開しています。 github.com Javaのものが中心ですがPythonGo、Cで書かれているものもあります。ライブラリ的なものからミドルウェアや運用ツールまで多岐に渡っており、NetflixAWSを利用しているということもありAWS上での利用に特化したものもあります。また各プロダクトのドキュメントもしっかりしており、以下のような専用のサイトも立ち上げられており、社内で開発したものを積極的にOSS化するという方針が伺えます。 netflix.github.io HystrixやEurekaなどを筆頭に有名なものも多いのですが、なにぶん数が多くどのようなものがあるのかを把握するのも割と一苦労な感じなのですが、Netflixでは自社のOSSを紹介するMeetupが継続的に開催され

    Netflixのオープンソースソフトウェア - たけぞう瀕死ブログ
    dann
    dann 2016/06/27
  • gotty + tmux = 最強のWeb開発環境 - たけぞう瀕死ブログ

    gottyはターミナルで実行したコマンドの出力をWebブラウザで参照できるようにするツールで、オプションを付けるとブラウザからのキー入力も可能になります。つまりgottyでtmuxを起動することで、Webブラウザから複数セッションや画面分割可能なターミナルを利用でき、さらにvimEmacsなども利用することが可能になります。 特にWebアプリケーションを開発している場合、ターミナルでvimEmacsでコーディングしていると、動作を確認するたびにブラウザに切り替える必要があり、非常に面倒です。gotty + tmuxを使えばブラウザの1つのタブでターミナルを使うことができるので、ブラウザのタブを切り替えるだけでアプリケーションの動作を確認したり、調べ物をしたりすることができるのです。これを最強のWeb開発環境と呼ばずしてなんと呼ぶのでしょうか。Atomなんかいらなかったんや!! gott

    gotty + tmux = 最強のWeb開発環境 - たけぞう瀕死ブログ
    dann
    dann 2015/09/05
  • [Java]Apache MINA sshdでオレオレsshサーバを作ろう - 2014-03-30 - 新・たけぞう瀕死の日記

    GitBucket 1.12ではssh経由でのリポジトリアクセスをサポートしていますが、これに使用しているのがApache MINAのsshdです。 https://mina.apache.org/sshd-project/index.html Apache MINAはNIOを使用したTCP/IP、UDP/IPベースのネットワークサーバアプリケーションのためのフレームワークで、sshdはMINAを使用して実装されたsshサーバということになります。MINAのsshdは比較的簡単に再利用できるようになっており、Javaアプリケーションでsshを使用した暗号化通信を行いたい場合に使用することができます。 Javaを使用したOSSのsshdの実装を提供しているのは僕の知る限りMINAだけであり(クライアントはいくつか実装がありますが)、JenkinsやGerritなどもこれを使ってsshサーバの

    [Java]Apache MINA sshdでオレオレsshサーバを作ろう - 2014-03-30 - 新・たけぞう瀕死の日記
    dann
    dann 2014/03/31
  • Mavenでdeployするときのパーミッション - たけぞう瀕死ブログ

    ssh(scp)でdeployする際、リポジトリ上のディレクトリやファイルはデフォルトではdeployしたユーザのみ書き込み可能なパーミッションになります。今まで特に困っていなかったのですが、複数人で作業していてローカルからdeployを行うと、別の人がdeployできなくなってしまったり…という問題が発生してしまいます。 こんな場合は.m2/settingsに以下のような設定を入れておくことでdeploy時のパーミッションを指定することができるようです。 <settings> ... <servers> <server> <id>ssh-repository</id> ... <filePermissions>664</filePermissions> <directoryPermissions>775</directoryPermissions> </server> </servers

    Mavenでdeployするときのパーミッション - たけぞう瀕死ブログ
  • Mavenプロジェクトをオフラインでビルドする - 新・たけぞう瀕死の日記

    ライブラリの依存関係やスコープを管理できたり、様々なレポートを出力できたりと、なんだかんだいってもMavenは便利です。少しでも道から外れるとpom地獄が待っていますが、幸いにしてトラウマになるような事態に出会ったことはいまのところありませんw ただ、仕事では納品後にユーザがどんな環境でビルドするからわからないからオンライン前提じゃないとビルドできないMavenは使いにくいケースが多く、場合によっては開発時はMavenを使うけどAntでもビルドできるようにしておく、みたいな不毛なことをしたりしていました。もちろんMavenのローカルリポジトリをコピーしてプロジェクトと一緒に配ればオフラインでもビルド可能な環境を作ることはできるのですが、もっとポータビリティの高い方法はないかなぁ…と思っていたところ、@shimashima35さんに簡単な方法を教えていただきました。 ポイントは-Dmaven

    Mavenプロジェクトをオフラインでビルドする - 新・たけぞう瀕死の日記
  • MockRunnerのJDBC Mockの便利機能 - たけぞう瀕死ブログ

    先日紹介したMockRunnerのJDBC Mockですが、実戦投入を前提にチームのメンバーに見てもらっているのですが、いろいろと機能があるようです。たとえば以下のような感じでSQLの期待値の比較方法を制御することができます。 // 大文字・小文字を無視 jdbcTestModule.setCaseSensitive(false); // 期待値のSQLに正規表現を利用可能にする jdbcTestModule.setUseRegularExpressions(true); 正規表現を使えるので、 jdbcTestModule.verifySQLStatementExecuted( "SELECT .* FROM TABLE WHERE ID=\\?"); なんて書いておくとテーブルのカラム追加・削除くらいではテストケースを直す必要がなくなります。便利ですね。欲を言えばSQLの改行や空白の差

    MockRunnerのJDBC Mockの便利機能 - たけぞう瀕死ブログ
  • 2010-11-03

    jmemcachedはJavaベースのmemcachedサーバです。実用というよりも、Javaでmemcachdを使うようなアプリケーションを開発する際にローカル開発環境やCIなどテスト用途に使うのがよいと思います。 http://code.google.com/p/jmemcache-daemon/ Mavenを使う場合はこんな感じ。 <repositories> <repository> <id>thimbleware.repo</id> <url>http://thimbleware.com/maven</url> </repository> </repositories> ... <dependency> <groupId>com.thimbleware.jmemcached</groupId> <artifactId>jmemcached-core</artifactId> <v

    2010-11-03
    dann
    dann 2010/11/03
  • 2010-03-28

    EclipseベースのJMXクライアント。最後のアップデートが2007年とだいぶ経ってますが、Galileoでも動きました。 http://code.google.com/p/eclipse-jmx/ 機能的には普通のJMXクライアントです。もともとJMXでできることは限られてますし、JBossなどについてるWebベースのJMXコンソールと機能的には変わりません。ただ、ツリービューでインクリメンタルサーチができるのは便利ですね。 まあ、アプリケーションサーバにはたいていJMXコンソールついてますし、JDKにもjconsoleがついてるのでわざわざEclipseからJMXを使いたいというケースはなかなかないかもしれませんが…。 ヒープダンプの解析をjhatとか使ってやってたのですが、Eclipse Memory Analyzerが便利だよーという話を聞いて試してみました。 http://ww

    2010-03-28
    dann
    dann 2010/09/30
  • [Java]Javadocを印刷したい - 新・たけぞう瀕死の日記

    まあ正直Javadocは印刷してどうこうするものではないと思いますが、やんごとなき事情により印刷したいケースというのもあるわけで、そんなときのためのツールとしてPDFDocletというものを教えてもらいました。 http://pdfdoclet.sourceforge.net/ その名の通り、JavadocをPDFとして出力するDocletです。すべてのJavadocが1つのPDFファイルに出力されるので、できたPDFを印刷するだけで済むというシロモノです。 Antで使う場合はこんな感じで。 <javadoc doclet="com.tarsec.javadoc.pdfdoclet.PDFDoclet" docletpath="pdfdoclet-1.0.2-all.jar" classpathref="classpath" additionalparam="-pdf javadoc.pd

    [Java]Javadocを印刷したい - 新・たけぞう瀕死の日記
    dann
    dann 2010/03/18
  • 2010-01-31

    GoogleGo言語がGCCでサポートされることになるそうな。 http://sourceforge.jp/magazine/10/01/29/0250228 うーん、まあ別にいいんですけど…。なんというか、こう…。ねぇ…。 なんと、表向きには3年半ぶりのリリースです。 http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi?page=StepCounter 正式にリリースしていない1.15の分の差分も含めると変更点は以下の通りです。 .htmをHTMLファイルとしてカウントするようにしました .diconをXMLファイルとしてカウントするようにしました Python用のカウンタでdocstringをコメントとみなすようにしました VB.NET, C#に対応しました 使ってる人はいないと思いますが、念のためNetBeans用のモジュー

    2010-01-31
  • 1