タグ

ブックマーク / blog.monochromegane.com (5)

  • Go言語でTCPやソケット通信を多重化,高速化するsmux(ソケットマルチプレクサ)をつくった · THINKING MEGANE

    サーバ間で分散処理を行う際の相互通信におけるボトルネックを解消するため,smux(Socket multiplexer)を開発している. サーバ間の相互通信におけるボトルネックとその解決策 一対のサーバ間で多数のリクエストとレスポンスが送受信され,信頼性の高い通信としてTCPを利用する場合,コネクション確立のオーバーヘッドを排除するために接続の再利用が行われる.しかしながら,クライアントは送信に対する受信を待つ必要があるため,レスポンスまでに幾許かの処理時間を要する状況では送信のキューがたまってしまう.そこで複数の接続を利用することでこれを解消する方法が取られるが,追加の接続はリソース使用に関するオーバーヘッドを発生させてしまう.なにより各接続におけるレスポンス待ち時間は依然として解決しておらず,接続の利用面から見て非効率である.そこで,単一の接続において,仮想的に並行送受信を行う方法が提

    Go言語でTCPやソケット通信を多重化,高速化するsmux(ソケットマルチプレクサ)をつくった · THINKING MEGANE
    InoHiro
    InoHiro 2018/05/04
  • Go言語でActiveRecordライクなORMをつくった

    Goで DataMapperじゃなく、ActiveRecordライクにDB操作したいと思ってつくってみました。 go/parserとgo/astでソースを解析、個々の構造体ごとにARなコードを生成します。 argen ActiveRecord** Gen**eratorでargenです。 クイックスタート テーブルを表す構造体に+ARアノテーションをマークします。

    Go言語でActiveRecordライクなORMをつくった
    InoHiro
    InoHiro 2015/03/04
  • Rails4でGemの資産がAssets Precomplieに含まれないときは

    Rails4プロジェクトでGem内の画像ファイルやフォントファイルといった資産がprecompile対象に含まれない原因と対策をまとめておきます。 原因は、assets precompileのデフォルトの対象変更です。対策としては以下の方法をとる必要があります。 assets precompile に含まれるよう資産を移動する assets precompile に含めたい資産を明示する 原因 precompile対象ディレクトリの変更 Rails4では、パスにapp/assetsを含む資産のみをデフォルトのprecompile対象とするように変更されました。 rails/rails - Only compile non-js/css under app/assets by default precompileのパスに置かれているREADME.mdのような"loose"なファイルを対象から

    Rails4でGemの資産がAssets Precomplieに含まれないときは
  • Go言語でつくったツールをHomebrewで配布する

    先日、Go言語でつくった高速検索ツール(the_platinum_searcher)をHomebrewで配布できるようにしました。 意外とGo言語製ツールをHomebrew対応させる情報がなかったので、配布までの手順をまとめておきます。 Homebrewに対応させる HomebrewはMacで利用できるパッケージマネージャーです。 Homebrewでツールやパッケージを配布するにはそれらに関する情報やインストール方法を定義したFormula(製法)ファイルが必要です。 また、Formulaを登録するリポジトリも必要です。Homebrewには公式リポジトリがありますが、tapコマンドを使うことで独自リポジトリをFormula取得先として追加することができます。 今回は、独自リポジトリでFormulaを公開します。 Formulaファイルの作成 Formulaファイルを格納するディレクトリは独

    Go言語でつくったツールをHomebrewで配布する
    InoHiro
    InoHiro 2014/08/16
  • Go言語でag(The Silver Searcher)ライクな高速検索ツールをつくった。EUC-JP/Shift-JISも検索できマス。

    いまや高速パターン検索といえばag(The Silver Searcher)ですが、検索対象がUTF-8のテキストを前提としているため、EUC-JPやShift-JISといったファイルを検索するのに課題があります。 これまで、それらの日語文字セットを検索できるようにするため、色々とagの改造、公開を行っていました。 ag(The Silver Searcher)でEUC-JP/Shift-JISのファイルも検索できるようにしてみた 日語圏特化型ag -白金- の配備が完了しました しかし、特定の国の文字コードだけに特化した修正というのをmasterに取り込んでもらうわけにもいかず、派生ブランチとして追随するのも、やはり面倒… そこで年始にGo言語を触ったのをきっかけに、Go言語でパターン検索ツールをつくってみました。 せっかくなのでポストagを目指して、プラチナサーチャー(The Pl

    Go言語でag(The Silver Searcher)ライクな高速検索ツールをつくった。EUC-JP/Shift-JISも検索できマス。
    InoHiro
    InoHiro 2014/01/16
  • 1