タグ

2015年11月11日のブックマーク (15件)

  • マイクロサービス時代のHAProxy | Yakst

    マイクロサービスのアーキテクチャでシステムを開発すると、サービス間の通信を効率的に管理する方法が必要になる。この問題を解決するためにHAProxyを使う一例を提示する。 「マイクロサービス」は、この10年でもっとも興味深いアーキテクチャーのスタイルを表す言葉として、使い散らされている最新のアーキテクチャーバズワードでしょう。 マイクロサービスとは? Martin Fowlerの定義によれば以下のようになります。 要するにマイクロサービスというアーキテクチャーのスタイルは、それぞれが独自のプロセスで動きHTTPリソースAPIなどの軽量なメカニズムでコミュニケーションを取り合う小さなサービスの形をとったひとつのアプリケーションを開発していくというアプローチです。これらのサービスは、ビジネス上の機能を中心に作られ、完全に自動化されたデプロイの仕組みによって、別々にデプロイできます。これらのサービ

    マイクロサービス時代のHAProxy | Yakst
    bunnyhop
    bunnyhop 2015/11/11
  • 研究生活最大のショック - 海の底には何がある

    朝、交尾の後にメスの交尾器を壊してしまうクモを発見という記事がナショナルジオグラフィックのサイトに出ているのに気がついてのけぞる。この日記でもたびたび書いてきていた事だが、私もギンメッキゴミグモで交尾後にメスの交尾器が破壊され、それによりメスの再交尾能力が失われる事を発見していたからだな。種は違えども、全く同じ内容の研究だ。これは世界で初めての発見なので、私的には興奮して1年半いろいろ実験してきていたところ、全く同じ研究が他所から出たという事は、発見者は私じゃない事になってしまうわけで、とても辛い。実際は独立に二つの研究が行われていたわけだが、科学の世界では論文の出版が全てなわけで、いくら「私も見つけていた」って言っても仕方ないわけ。いや、こういう事は生き馬の目を抜く最先端の生命科学分野で起こるもので、まさかのどかな動物行動学分野に暮らす私がこんな経験をするなんて思わなかった。。。いや、

    研究生活最大のショック - 海の底には何がある
    bunnyhop
    bunnyhop 2015/11/11
  • Unity本いっぱい出てるので、お勧め本を難易度別に並べてみる - izm_11's blog

    世の中にUnity情報が山ほどあって、素晴らしいです。 分からない事があっても、ググるだけでピンポイントなブログの記事やstack overflowが出てきたりします。素晴らしい。 ただ、技術に対する体系だった学習に技術書を読むのは、とても良いと思うので、読んだことあるを難しさ順に並べてみます。 ここに出ていないは読んでいないか、読んでオススメしかねるだったので、お勧めがあれば教えてください。 2016年版を書きました izm-11.hatenablog.com Unityって何?レベル まずはを買うより先にドットインストールのUnity講座を見ましょう。 お金を払ってを買うのはその後で良いのです。 http://dotinstall.com/lessons/basic_unity 個人的には、最初からを買って「お金払ったんだし、やるか…」と言う気持ちにするメソッドを良く使う

    Unity本いっぱい出てるので、お勧め本を難易度別に並べてみる - izm_11's blog
    bunnyhop
    bunnyhop 2015/11/11
  • コードを書く際の指針として見返すサイトまとめ - Qiita

    お勧めの記事がありましたらコメントなどで教えて頂けると幸いです。 Guidelines プログラマが知るべき97のこと 技術的負債 不慣れなコードベースで短期間に生産性を高めるための7つの方法 何も知らない人を育てるために(新人教育情報キュレーション) 保守開発に開発者として入って困ることのまとめ(実体験) 技術系の名言まとめ++ 真似をする前にバッドプラクティスかどうかを調べてみよう 読まれない名著「人月の神話」を気で読み込んでみた(まとめ) 技術的負債とどうやって戦うか 楽しいコーディングのための CUPID - SOLID 原則に対するアンチテーゼ エンジニア基礎(新人研修資料) Coding Style モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう 関数名や変数名に使えそうな動詞・名詞・形容詞のメモ Naming -名前付け- DRY原則をもう一度 -コンカレント

    コードを書く際の指針として見返すサイトまとめ - Qiita
    bunnyhop
    bunnyhop 2015/11/11
  • うまくメソッド名を付けるための参考情報 - Qiita

    クラス名編をつくりました あるメソッドを定義しようとするとき、そのメソッドを使う人達が名前からどんなことをするか理解できるようにするには、メソッドの内容に応じて適切な情報量の命名が求められます。 この記事では、メソッド名に用いることでどのような情報が提供できるかを見ていきたいと思います。 真偽値を返すメソッド 場所 単語 意味 例

    うまくメソッド名を付けるための参考情報 - Qiita
    bunnyhop
    bunnyhop 2015/11/11
  • うまくクラス名を付けるための参考情報 - Qiita

    クラス名には、多くの場合"名詞"を用います。メソッド名の場合は動詞や助動詞を用いて命名しましたが、クラス名は何かしらの責務を持つモノとして捉えるため、名詞を用いることになります。 一方、インタフェースの宣言をする場合、そのインタフェースの名前に"形容詞"を用いることがあります(例:Iterable、Closeable等)。形容詞を用いることで、クラスの持つ性質を説明的に見ることができるようになります(Iterableな配列のList実装 -> ArrayList等)。 この記事は、どのような名詞や形容詞がクラス名やインタフェース名として用いることが出来るかを一覧し、できるだけクラスやインタフェースの役目を端的に表せるようなリファレンスとして活用できるものを目指していきたいと思います。 自分自身がクライアントアプリケーションのバックグラウンドを持っている為、多分にそこで用いる命名方法が含まれ

    うまくクラス名を付けるための参考情報 - Qiita
    bunnyhop
    bunnyhop 2015/11/11
  • Web漫画家の僕が、自分の仕事をコワい父親に説明してきた話 - イーアイデム「ジモコロ」

    今回は地元・名古屋取材の流れでジモコロ編集長の柿次郎さんに「実家に行こうよ! 父と息子の対話に混ぜてよ!」と言われたときの話です。ちなみにWeb漫画家の仕事の実態はこちらを参考にしてください。

    Web漫画家の僕が、自分の仕事をコワい父親に説明してきた話 - イーアイデム「ジモコロ」
    bunnyhop
    bunnyhop 2015/11/11
  • Google、アプリ「Google Playゲーム」に録画・共有機能を追加

    Google、アプリ「Google Playゲーム」に録画・共有機能を追加
    bunnyhop
    bunnyhop 2015/11/11
    手軽さがすごい
  • mruby で同期呼出を非同期化する話(もしくは H2O の mruby ハンドラでネットワークアクセスする話)

    ■背景 H2Oではバージョン1.5より、mrubyを用い、Rackのインターフェイスに則った形でハンドラを書けるようになっています。 この機能を提供している目的は、正規表現による書き換え等を用いる複雑な設定ファイルではなくプログラミング言語を用いることで、ウェブサーバの設定をより簡潔に拡張しやすくするためです(Apacheのmod_rubyやmod_perlのようにウェブアプリケーションをウェブサーバ内で実行可能にすることではありません)。 とは言っても、現実のウェブサーバの設定においては、外部のデータベース等に問い合わせた結果に基づいたルーティングが必要になることがあります。 H2Oのようなイベントドリブンなウェブサーバ上で動作する、同期モデルを採用するRackインターフェイスを用いて記述されるハンドラ内において、データベースへの問い合わせをどのように実現すれば良いか。問い合わせが同期的

    bunnyhop
    bunnyhop 2015/11/11
  • https://qiita.com/kondei/items/2ee292d863ea874d7691

    bunnyhop
    bunnyhop 2015/11/11
  • 効率的なメモリブロックサイズ - espresso3389の日記

    とっても環境依存で実装依存な事なんですが、一方で、メモリ効率っていうのは非常に大事なファクターです。 特に小さな構造体をメモリにたくさん配置するような場合、メモリのアラインメント(データをCPUが効率的にアクセスできるきりの良いアドレスに配置すること、16バイトとか、32バイトといった単位になることが多い)のため、メモリが無駄になることが多いです。 例えば、現状のIntel x86系で32-bit OSだと、6バイトのメモリを確保するなんてことをすると、アラインメント単位がおそらく、16バイトなので、10バイト分が利用されることなく無駄な領域として残されることになります。ただし、一般的に、mallocやnewで確保されるメモリブロックには管理領域という領域が確保されるので、 char* p = new char[10]; っていう処理が果たして何バイトの領域を必要として、結果、どれだけの領

    効率的なメモリブロックサイズ - espresso3389の日記
    bunnyhop
    bunnyhop 2015/11/11
  • Rustのポインタ(所有権・参照)・可変性についての簡単なまとめ - Qiita

    Rustはトレイト(ScalaのトレイトやHaskellの型クラスのようなもの)に基づく安全で強力な型システム、並行計算、高速な実行などを売りにした新しい言語であるが、他のメジャーな言語にはない特徴として、メモリの管理を静的にチェックする機構を持っていて、デフォルトでデータをスタックに置くことでガベージコレクションを使わないプログラムを書ける。だがこの静的メモリ管理の仕組みがなかなか理解するのが難しい。(個人的な印象。以前に何回か挫折した。) 具体的には、所有権(ownership)、参照による借用(borrowing)、参照の寿命(lifetime)、可変性(mutability)といった概念で、Rustの鬼門だと思われる。 基的には公式ドキュメントに書いてあることであるが、自分が理解するためという目的もあり、所有権、借用、可変性について以下にまとめてみる。 所有権(ownership

    Rustのポインタ(所有権・参照)・可変性についての簡単なまとめ - Qiita
    bunnyhop
    bunnyhop 2015/11/11
    わかりやすい
  • Rustを学びシステムレベル言語を理解すること - ワザノバ | wazanova

    https://www.youtube.com/watch?v=ySW6Yk_DerY Rustについては「Rustのあれこれ」で少し触れましたが、Yehuda Katzが、Skylightの一連のブログとGoGaRuCo2014の講演で、「ハイレベル言語のプログラマーがシステムレベルの言語を学ぶチャンス」という観点で紹介しています。 主なポイントとしては、 プログラミング言語の特性は変わることがないとか、プログラミング言語のパフォーマンスと生産性は常にトレードオフであるという考え方は、JavaScriptにおいて、生産性が少し改善されつつ同時にパフォーマンスが大きく向上してきたという事実から、必ずしも正しくはない。 Rustは、セグメンテーション違反が起きないという意味での安全性と、どこにメモリを置くか直接コントロールできる仕様を両方兼ね備える。 Rustを学ぶということは、ハイレベル言

    bunnyhop
    bunnyhop 2015/11/11
  • 長文日記

    長文日記
    bunnyhop
    bunnyhop 2015/11/11
  • 強くなるためのプログラミング -様々なプログラミングコンテストとそのはじめ方- - ぴよぴよ.py

    みなさんは何のためにプログラミングをしていますか? 仕事のため、何かをつくるため。 それも良いけれど、「強くなる」ためにプログラミングしてみませんか。 様々なジャンルのプログラミングコンテストとまだ見ぬライバルたちがあなたを待っています。 今回はアルゴリズム/AI/機械学習/セキュリティ等の様々なジャンルのコンテストとその始め方について紹介したいと思います。 ※これはPyConJPでの発表を文字におこしたものです。が、Pythonの話は殆どないです。 プログラミングコンテストとは? すべてのコンテストに共通する、「コンテストに参加する利点」 1. 自分と同じ問題を解いた、他の人の解法を知ることができる 2. 同じコンテストに出ていた、たくさんのライバルと知り合える アルゴリズムのコンテスト 問題1 問題2 TopCoder Single Round Match CodeForces AtC

    強くなるためのプログラミング -様々なプログラミングコンテストとそのはじめ方- - ぴよぴよ.py
    bunnyhop
    bunnyhop 2015/11/11