2014年11月28日のブックマーク (17件)

  • 2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 - Qiita

    はじめに もうすっかり年末なので、これから2015年にかけてアプリケーションアーキテクチャがどのようになっていくのかという個人的な考え/妄想や背景について、「リアクティブ」というキーワードをもとににまとめてみたいと思います。 Google Trendsを見ると"reactive programming"という言葉は2010年前後から、ゆっくりとバズをし始め、現在も上昇を続けています。 また、仕事としては、2010年ごろから大規模なWebサービス開発において、フロントエンド、バックエンド、アルゴリズム改善といった様々な箇所で、リアクティブプログラミングの要素を取り入れながら、アーキテクチャの改善を進めてきました。そのため、こういったアーキテクチャがコード品質の維持や安定性の向上、実際的で複雑な問題の解決にも適応可能であるということを実感として持っています。 近年、そういった要素が様々なツール

    2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 - Qiita
    rrreeeyyy
    rrreeeyyy 2014/11/28
  • AuroraのストレージのQuorum原理 - yoshidashingo

    cloudpackエバンジェリストの吉田真吾(@yoshidashingo)です。 今回発表になった Amazon RDS for Aurora。最大の特徴はストレージが従来のRDS(Multi-AZ)における「完全同期なミラーディスク型のレプリケーション」方式でなく、「Quorumベースの非同期レプリケーション」方式が採用された点です。 Quorumの概念 Quorum自体の概念の説明はWikiなどを参照してください。ノード間で投票を行い、定足数が揃った処理を実行/破棄するという考え方です。 Quorum - Wikipedia 同期型のミラーディスク型から非同期のQuorum型へ Aurora以外のRDSのMulti-AZ配備は、マスターノードのディスクへの書き込みをブロックレベルでスタンバイ側に適用する完全同期なフィジカルレプリケーションを行っています。これにはいくつかの課題が考えら

    AuroraのストレージのQuorum原理 - yoshidashingo
    rrreeeyyy
    rrreeeyyy 2014/11/28
  • WebプロキシサーバにおけるTCP受信バッファの動的割り当て方式 | CiNii Research

    rrreeeyyy
    rrreeeyyy 2014/11/28
  • 「グラフ理論」と「組み合わせ最適化アルゴリズム」の教科書PDF。離散数学の入門用の教科書 - 主に言語とシステム開発に関して

    講義ノートの目次へ グラフ理論・組み合わせ最適化の講義ノート。 ネットワーク(経路系)のアルゴリズムも含む。 大学の情報科学では,「離散数学」という分野だ。 以下に,「グラフ理論」と「組み合わせ最適化」の入門段階の要点を並べてみる。 最大フロー問題,最短経路問題,ダイクストラ法 オイラーグラフ,ハミルトングラフ 巡回セールスマン問題,郵便配達人問題 幅優先探索,深さ優先探索 グラフの連結性 有向グラフと無向グラフ,グラフの隣接行列,双対グラフ 辺彩色と面彩色,四色問題 マトロイド,離散マルコフ連鎖 これらの要点を独学で勉強しよう。 グラフがわかれば,グラフ上の最適化もわかる。 資料は,下記の分類にしたがって掲載した。 (1)日語の教科書 (2)英語の教科書 (3)グラフ理論の応用に関する話題(組み合わせ最適化など離散数学) ※P/NPなどの計算量理論のノートはこちら。 (1)日語の教科

    「グラフ理論」と「組み合わせ最適化アルゴリズム」の教科書PDF。離散数学の入門用の教科書 - 主に言語とシステム開発に関して
    rrreeeyyy
    rrreeeyyy 2014/11/28
  • Linuxカーネルの脆弱性により、権限昇格が行える脆弱性(CVE-2014-3153)に関する検証レポート – (n)

    Linuxカーネルの脆弱性により、権限昇格が行える脆弱性(CVE-2014-3153)に関する検証レポート 【概要】 Linuxカーネルに、システムにログイン可能な一般ユーザーが権限昇格を行える脆弱性(CVE-2014-3153)の攻撃方法が発見されました。この脆弱性は過去にAndroidのroot化を行う目的で利用されていた実績のある脆弱性です。 この脆弱性はkernelのfutexサブシステムの処理に不備が存在しており、悪意のあるローカルユーザーが細工したfutexシステムコールを送信することでリング0の制御を奪取することが可能です。 【※上記説明文章の参考ページ】 Linux kernel futex local privilege escalation Debian セキュリティ勧告 レポート作成(2014年11月27日)時点において、The Linux Kernel Archi

    Linuxカーネルの脆弱性により、権限昇格が行える脆弱性(CVE-2014-3153)に関する検証レポート – (n)
    rrreeeyyy
    rrreeeyyy 2014/11/28
  • 社員がフリーランスになる前に教えておきたいこと | fladdict

    秘密結社THE GUILDも仲間が15人近くになり、僕の直轄チームも3人に増えた今日この頃。直轄チームのみんなには、できれば幹部になって欲しい。でも、翼を折って囲い込むのではなく、いつ独立しても恥ずかしくないように育てていきたい。っていうか、ここに書いたのできるまで、独立なんぞ許さんよ的メモ。新入社員は各自マスターしておくこと。 1: 収入の一定パーセントを貯蓄しなさい 収入の10%〜20%を、お給料日に自動振り込みで貯蓄しなさい。お金持ちになる唯一の方程式は「消費<収入」。この方程式が強制的に維持される仕組みを作る。これが人生を安定させるために一番重要なことです。 2: 生活資金を半年分ためなさい まず無収入状態でも3〜6ヶ月生存できる貯金を作りなさい。生活費の安全バッファは大型案件や、お金にならないチャンス案件を手に入れる最低条件です。安全バッファがなければ、常に生活費のために自分を切

    社員がフリーランスになる前に教えておきたいこと | fladdict
    rrreeeyyy
    rrreeeyyy 2014/11/28
  • Railsでコンフリクトをvalidate - Qiita

    Railsで同じデータを2人のユーザがほぼ同時に編集したとき、何も対処しないと片方のユーザがもう片方のユーザの変更を確認しないまま上書きしてしまうことになるので、更新時刻を元に一方が競合していることを判定する方法について説明します。 要点 サーバ側でHTMLに最終更新日時を埋め込む クライアント側で更新リクエスト時に最終更新日時も同時に送る サーバ側で送られてきた最終更新日時とDB上の最終更新日時を比較して検証する これらの実装に validate_confirmation の機能を使う Viewに最終更新日時を埋め込む 日時をUnixtimeで表現して埋め込むならこんな感じになります。 <%= form_for @model do |f| %> <%= f.hidden_field :updated_at_confirmation_in_unixtime, value: @model.u

    Railsでコンフリクトをvalidate - Qiita
    rrreeeyyy
    rrreeeyyy 2014/11/28
  • Technical differences to NW.js (formerly node-webkit)

    Technical Differences Between Electron and NW.js (formerly node-webkit) Note: Electron was previously named Atom Shell. Like NW.js, Electron provides a platform to write desktop applications with JavaScript and HTML and has Node integration to grant access to the low level system from web pages. But there are also fundamental differences between the two projects that make Electron a completely sep

    Technical differences to NW.js (formerly node-webkit)
    rrreeeyyy
    rrreeeyyy 2014/11/28
  • 日本の祝日データセット "holiday_jp" はじめました - Copy/Cut/Paste/Hatena

    の祝日はいろいろ判定が難しいらしいですが、皆さんどうしていますか? @k1LoW @shin1x1 日の祝日は世界でも珍しい部類の天文ベース(春分の日、秋分の日)になっていて厳密には前年度の4月?とかに国が発表するのでGoogleも1年以上先はわからないんですよね。天文ベースプラス人の微調整で決まるそうで。— Masaki Komagata (@komagata) 2014, 11月 12 「国民の祝日」について Rubyでは komagata/holiday_jp がメンテナンスされているそうで羨ましいかぎりです。 PHPでもJavaScriptでも、こういう「メンテされている祝日判定ライブラリが欲しい!」と思ったので、この際なので d:id:tagomoris さんがはじめた woothee プロジェクト を見習って、まずは祝日を共有するためのデータセットを作ってみました。 k1

    日本の祝日データセット "holiday_jp" はじめました - Copy/Cut/Paste/Hatena
    rrreeeyyy
    rrreeeyyy 2014/11/28
  • evac - Node.js based simple aggregator - テノニッキ (@hideack 's diary)

    evacというシンプルなアグリゲーターを作りました。個人用途で作っていたのですが、そこそこ形になったのでnpmで公開しています。 よくあるアグリゲータの実装と同様に入力、加工、出力をJSONファイルで定義することでアグリゲーションすることができます。 例えば自分の場合は以下の様な使い方をしています。 ブログの記事に更新があれば、gmail通知 社内SNSのスケジュール機能で用意されているiCalファイルを読んで、一時間以内に予定があれば仕事で利用しているMac上にgrowl通知 DBに接続して数値を取り、dashingのAPIに向けてPOSTする あるサービスのwebページをスクレイピングしてKPIにしているパラメータを抽出してIRCに通知 RSSを走査し特定の文字列があればIRCに通知 などなど、いままでであれば小物スクリプト書いて動かしたりしていたものを置き換えすることができました。

    evac - Node.js based simple aggregator - テノニッキ (@hideack 's diary)
    rrreeeyyy
    rrreeeyyy 2014/11/28
  • Web API: The Good Partsを読んだ - AnyType

    Web API: The Good Parts 作者: 水野貴明出版社/メーカー: オライリージャパン発売日: 2014/11/21メディア: 大型この商品を含むブログ (1件) を見る 業務ではiOSアプリとバックエンドの開発を両方担当しているので、APIの設計を何回かやってきた。しかし、自分なりのやり方でやってきた部分が多かったので、最近発売されたWeb API: The Good Partsを読んでちゃんとした設計について学ぶことにした。 得られた学びをメモとして残す。 HATEOAS HATEOAS(Hypermedia As The Engine Of Application State)という設計方法を初めて知った。HATEOASではまず、サーバー側はレスポンスに関連するエンドポイントを含め次にアクセスするAPIを簡単に辿れるようにする。クライアント側は最初のエンドポイント以

    Web API: The Good Partsを読んだ - AnyType
    rrreeeyyy
    rrreeeyyy 2014/11/28
  • とあるサイトの高速化についてフロントエンドでやったことまとめ。 - Toro_Unit

    業務で携わっている案件なのですが、アクセス数の急増が見込まれるイベントがありまして。準備期間も少なく、バックエンド側でできることがほぼないという状況でサイトを落とさないようにがんばる!というお仕事でした。レガシーソースてんこ盛り。CSSプリプロセッサとか何それ状態。 そこで実施した対策のまとめです。サーバー・アプリケーション・サイトの構成によって、効果の大小はありますが、比較的効果があったと思われるものをつらつらと。 リクエストの削減とファイルサイズの最適化 まず一番最初に考えなければいけないのがリクエスト数です。すごいおおざっぱに言うと、WEBサーバー(ApacheとかNginxとか)への負荷は、PV数×リクエスト数です。PVがそんなに無くてもそのページのリクエストがめちゃくちゃ多いとそれだけでかなりの負荷になります。リクエストを半分にできれば2倍の人数がさばけるってことに、すげーおおざ

    とあるサイトの高速化についてフロントエンドでやったことまとめ。 - Toro_Unit
    rrreeeyyy
    rrreeeyyy 2014/11/28
  • Building a Binary Tree with Enumerable | Mike Perham

    2014-11-26 I believe that the Enumerable module is the most important thing to understand if you want to go from a beginner to intermediate Rubyist. It requires you to understand two fundamental parts of Ruby: modules and blocks. Ruby’s standard library includes hashes, arrays, sets and thread-safe queues. One structure missing is a generic binary tree. Binary trees are great general purpose data

    Building a Binary Tree with Enumerable | Mike Perham
    rrreeeyyy
    rrreeeyyy 2014/11/28
  • Amazon CloudFront の障害に備えてフェイルオーバーを設定する - Qiita

    時間 2014/11/27 の AM9時〜AM11時頃まで、全世界的に Amazon CloudFront に障害がありました。 CDNとして CloudFront を利用しつつ、障害時にはフェイルオーバーする方法をまとめました。 S3 CloudFrontのOriginがS3でない場合は、この項の設定は関係ありません。 CloudFrontのOriginとしてS3を使う場合、以下のようにします。 file.example.jp のような、使いたいドメイン名で S3バケット を作る Static Website Hosting を有効にしておく ドメイン名のバケットで Static Website Hosting が有効になっていないと、後述の Route53 の Alias Target に設定できません。 Health Check Route53 の Health Checks を

    Amazon CloudFront の障害に備えてフェイルオーバーを設定する - Qiita
    rrreeeyyy
    rrreeeyyy 2014/11/28
  • GitHub - Nedomas/zapata: An Automatic Automated Test Writer

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - Nedomas/zapata: An Automatic Automated Test Writer
    rrreeeyyy
    rrreeeyyy 2014/11/28
    おーこれは面白そう
  • マジックビーンズ

    4. アクティブレコードとは データベーステーブルあるいはビューの1行が1つのクラスにラップさ れ、オブジェクトのインスタンスがそのデータベースの1つの行に結合 される。このクラスはデータベースアクセスのカプセル化も行う。オブ ジェクトの生成後は、保存メソッドで新しい行がデータベースに追加 される。 オブジェクトが更新されると、データベースの対応する行も また更新される。 出典: http://ja.wikipedia.org/wiki/Active_Record 5. アクティブレコードとは # 1 件取得 bug = Bug.find(1234) # SELECT * FROM bugs ! # 新規作成 bug = new Bug.new bug.summary = ‘保存時にクラッシュが発生’ bug.save # INSERT INTO bugs (summary) VALUES

    マジックビーンズ
    rrreeeyyy
    rrreeeyyy 2014/11/28
  • Riemann - A network monitoring system

    Riemann aggregates events from your servers and applications with a powerful stream processing language. Send an email for every exception in your app. Track the latency distribution of your web app. See the top processes on any host, by memory and CPU. Combine statistics from every Riak node in your cluster and forward to Graphite. Track user activity from second to second. Riemann provides low-l

    rrreeeyyy
    rrreeeyyy 2014/11/28