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

  • Twitter製の大規模ソフトウェア向けビルドツール「Pants」を試してみる - たけぞう瀕死ブログ

    PantsはTwitter社が開発した大規模ソフトウェア向けのビルドツールです。今年の5月に1.0がリリースされました。 github.com 主にPythonで書かれているようですが、JavaScalaPythonGolangのビルドに対応しており、Thriftのコード生成やMarkdownからのドキュメント生成などもサポートしているようです。 同種の大規模向けビルドツールにはGoogle製のBazelやFacebook製のBuckがあります。 github.com github.com いずれも元は社内用に開発されたツールがOSS化されたものですが、GoogleのBazelは2009年頃からGoogle社内で使われておりかなり歴史のあるツールのようです。 BuckやPantsはBazelを参考にしているようですが*1、BuckはAndroidアプリのビルドが高速だったり、Pant

    Twitter製の大規模ソフトウェア向けビルドツール「Pants」を試してみる - たけぞう瀕死ブログ
    daiki_17
    daiki_17 2016/09/02
  • Netflixのオープンソースソフトウェア - たけぞう瀕死ブログ

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

    Netflixのオープンソースソフトウェア - たけぞう瀕死ブログ
    daiki_17
    daiki_17 2016/06/27
  • Elasticsearchへの接続方式 - たけぞう瀕死ブログ

    Elasticsearchへのアクセスにはいくつかの方式があり、それぞれにメリット・デメリットがあるようです。Elasticsearchのドキュメントを参考にJavaプログラムからの接続方法とそれぞれの特徴を調べてみました。 Transport Client いわゆる通常のクライアント方式で、同時接続数が多い場合、接続・切断を繰り返す場合はこちらが有利。Elasticsearchを使って検索を行うアプリケーションなど、一般的な用途であればNode Clientよりこちらのほうがよさそうです。 // on startup Client client = new TransportClient() .addTransportAddress(new InetSocketTransportAddress("host1", 9300)) .addTransportAddress(new InetSo

    Elasticsearchへの接続方式 - たけぞう瀕死ブログ
    daiki_17
    daiki_17 2016/04/21
  • プライベートリポジトリ無制限のGitLab.comを試してみた - たけぞう瀕死ブログ

    Hacker Newsでこんな記事が流れていました。Hacker Newsでのコメントはこちら。 agateau.com こういう記事でAlternativeとしてGitBucketがあげられるようにならないといけないなぁと思うもののそれはさておき、先日の障害のときのようにGitHubが落ちたら仕事にならなかったりとか、SourceForgeやGoogleCodeの件を見ても今後GitHubのサービスがずっと今の形で継続するという保証はどこにもありませんし*1、さらにGitLabのオンプレ版であるGitLab CEはGitBucketと直接競合するということもあり、機能面を把握しておくためにGitLab.comを試してみることにしました。 GitHubやBitBucketなどのアカウントでログインすることができ、これらのサービスからリポジトリをインポートすることもできます。試しにリポジトリ

    プライベートリポジトリ無制限のGitLab.comを試してみた - たけぞう瀕死ブログ
    daiki_17
    daiki_17 2016/02/21
  • AWS上で動作するアプリケーションをいかにローカルで開発するか? - たけぞう瀕死ブログ

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

    AWS上で動作するアプリケーションをいかにローカルで開発するか? - たけぞう瀕死ブログ
    daiki_17
    daiki_17 2016/02/12
  • ElectronなGitフロントエンド「GitKraken」を使ってみた - たけぞう瀕死ブログ

    AxosoftがGitKrakenという新しいGitフロントエンドを開発しているようです。 www.gitkraken.com 最近のプロダクトらしくElectronで開発されており、NodeGitを使用しているようです。ベータテストをやっているようなので早速申し込んでみました。 メイン画面はこんな感じ。コミットグラフの見た目や操作性は非常にいい感じです。 機能はまだ不足している感はありますが、日常作業であれば問題なくこなせる程度のクオリティには達していますし、動作もなかなか軽快です。また、1ウィンドウで複数リポジトリを切り替えて扱うことができ、切り替えもプルダウンで簡単に行うことができます。 ただ、やはりGUIのGitフロントエンドには対話式でリベースする機能が欲しいところです。MacのGitクライアントで対話型のリベース機能を持っているSourceTreeは動作の重さもさることながらリ

    ElectronなGitフロントエンド「GitKraken」を使ってみた - たけぞう瀕死ブログ
    daiki_17
    daiki_17 2016/01/21
  • gotty + tmux = 最強のWeb開発環境 - たけぞう瀕死ブログ

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

    gotty + tmux = 最強のWeb開発環境 - たけぞう瀕死ブログ
    daiki_17
    daiki_17 2015/09/05
  • 2015年のEmacs - たけぞう瀕死ブログ

    その昔、自宅PCLinuxをインストールして頑張っていた頃はEmacsを使っていたり、その延長で職場でもMeadowやxyzzyなどを活用していたものですが、Eclipseを使い始めてからめっきりEmacsから離れてしまっていました。 ところがここ最近、MacBookを使い始めたり、仕事柄サーバのメンテナンス等でターミナルを使う機会が圧倒的に増えたり、周囲の影響もあったりして久しぶりにEmacsに復帰してみることにしました。Emacsをちゃんと使うのは10年ぶりくらいですが、同僚のEmacserに教えてもらいながら環境を整備してみました。 パッケージをインストールするための準備 最近のEmacsはmeplaというリポジトリからパッケージをインストールできるようです。~/.emacs.d/init.elに以下を書いておきます。 (require 'package) (add-to-list

    2015年のEmacs - たけぞう瀕死ブログ
    daiki_17
    daiki_17 2015/08/04
  • Reactive Streamsとは? - たけぞう瀕死ブログ

    Reactive Streamsというのはノンブロッキングなback pressure可能な非同期ストリーム処理の標準的な仕様を提供しようというもので、実装としてはAkka Streams、RxJavaReactor Composable、Ratpackなどがあります。 Reactive StreamsについてはAkkaのコミッタであるKonrad Malawskiさんの以下のスライドがとてもわかりやすいです。 2014 akka-streams-tokyo-japanese from Konrad Malawski ストリーム処理(というか非同期メッセージング全般に言えることですが)では受信側の処理能力を超えるデータを送信し続けるといずれキャパシティを超えてオーバーフローが発生してしまうため、送信側に比べて受信側の処理能力が低い場合は送信側が手加減してデータを送信する必要があります。な

    Reactive Streamsとは? - たけぞう瀕死ブログ
    daiki_17
    daiki_17 2015/02/17
  • [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 - 新・たけぞう瀕死の日記
    daiki_17
    daiki_17 2014/03/31
  • 1