タグ

2017年12月5日のブックマーク (16件)

  • 分散システムの一貫性に関する動向について

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog システム統括部アーキテクト室 今野です。 昨年は、Twitter,Facebookを始めとするクラウド各社で新規の分散システム開発のプロジェクトが相次いで発表された年でした。これらの新しい分散システムを開発する理由や、その背景にあるものは何なのでしょうか? 今回は、昨年末に開催された高信頼性分散システム系の国際学会であるSRDS 2014[1]の発表内容に関連する論文の話題も踏まえて、昨今のクラウド各社の分散システムの動向について整理してみます。 分散システムにおけるクラウド各社の動向 近年の分散データベースの世界では、AmazonのDynamo[2]やFacebookのCassandra[3]などを代表とする結果整合性(Eve

    分散システムの一貫性に関する動向について
  • Eventual Consistencyまでの一貫性図解大全 - Qiita

    TL;DR; Eventual Consistencyとか言いながらどうせもっとまともな一貫性実装してることはよくあるんだからみんな適切な名前を使おうぜ。 なぜこの記事を書くのか NoSQLの文脈においてスケーラビリティとのトレードオフでEventual Consistencyという用語は結構な頻度で出てくる。 ACIDに対抗してBASE(Basicaly Avalilable, Soft state, Eventual consistency)なんて言葉が出てきたり、CAP定理の中のAとPだと言ってみたり、分散システムのスケーラビリティを高めるために人類は一貫性を諦めることに余念がない。 その一方で、諦められた一貫性に関しては雑な分類論で語られる事が多く実はもっと適切な言葉があるのに「Eventual Consistencyです」なんて言われる事が良くある。そこで、この記事では過去に並行

    Eventual Consistencyまでの一貫性図解大全 - Qiita
  • Ruby 2.5 - tmtms のメモ

    この記事は Ruby 2.5.0 preview1 時点のものです。Ruby 2.5 リリース版については http://tmtms.hatenablog.com/entry/2017/12/30/ruby25 を見てください。 Rubyは毎年クリスマスにバージョンアップされます。 今年も問題なければ12/25にRuby 2.5が出ると思います。 https://docs.ruby-lang.org/en/trunk/NEWS.html を元に変更内容を調べてみました。 言語仕様 トップレベル定数参照 rescue/else/ensure 節 文字列内式のRefinement Unicode バージョン 10.0.0 組み込みライブラリ Array#append, #prepend 追加 Dir.children, Dir.each_child 追加 Dir.glob :base オプショ

    Ruby 2.5 - tmtms のメモ
    bopperjp
    bopperjp 2017/12/05
    rescue, yield_self 便利。=== はキモい。
  • Ruby 2.5 - tmtms のメモ

    この記事は Ruby 2.5.0 preview1 時点のものです。Ruby 2.5 リリース版については http://tmtms.hatenablog.com/entry/2017/12/30/ruby25 を見てください。 Rubyは毎年クリスマスにバージョンアップされます。 今年も問題なければ12/25にRuby 2.5が出ると思います。 https://docs.ruby-lang.org/en/trunk/NEWS.html を元に変更内容を調べてみました。 言語仕様 トップレベル定数参照 rescue/else/ensure 節 文字列内式のRefinement Unicode バージョン 10.0.0 組み込みライブラリ Array#append, #prepend 追加 Dir.children, Dir.each_child 追加 Dir.glob :base オプショ

    Ruby 2.5 - tmtms のメモ
    bopperjp
    bopperjp 2017/12/05
    rescue便利。=== はキモい。
  • render partialで部分テンプレートに変数を渡す方法 - Qiita

    # accounts/show.html.slim = render partial: "contents/index", locals: {contents: @user.contents}

    render partialで部分テンプレートに変数を渡す方法 - Qiita
    bopperjp
    bopperjp 2017/12/05
    なるほど。トップのviewはインスタンス変数を明示した render partial で構成するべきなんだな。
  • GoのInterfaceとは何者なのか #golang #go - niconegoto Blog

    はじめに これはGo Advent Calendar 2017 - Qiitaの3日目の記事です。 当初はコンパイラの最適化を話すつもりだったのですが… GoConでParallel Compilationの話をしたからコンパイラ最適化のところをアドベントカレンダーで出そうと思ってたんだけど結構内容が濃すぎてなんか間に合わなさそうな雰囲気を感じていているのでどうしようか考えている— 井手康貴/Koki Ide (@niconegoto) 2017年12月2日 こんな感じでつらいなということになり、アンケートを行いました。 というわけで何が読みたいのかアンケート— 井手康貴/Koki Ide (@niconegoto) 2017年12月2日 その結果、上記の通りInterfaceとは何なのかの記事を書くことになりました。(異論は認めません) コンパイラ最適化に関しては30%くらい書き進めてい

    GoのInterfaceとは何者なのか #golang #go - niconegoto Blog
    bopperjp
    bopperjp 2017/12/05
  • DDD の Java EE 実装サンプル - Cargo Tracker を読み解く - Qiita

    Cargo Tracker とは エリック・エヴァンスのドメイン駆動設計 で紹介されている様々なパターンを実際に使用して、有志が作成したサンプル Web アプリのこと。 DDD Sample Application - Introduction オリジナルは Spring Framework を使用している。 一方、この実装を Java EE 7 で置き換えたサンプルが公開されている。 Cargo Tracker この実装を読みながら、 DDD で紹介されている以下のパターンがどのように実装されているのかを確かめてみる。 レイヤ化アーキテクチャ エンティティ 値オブジェクト 集約 リポジトリ サンプルアプリを動かす ソースのダウンロード このページ の一番下に zip のリンクがあるので、そこからダウンロードする。 環境準備 以下のソフトウェアをインストールする。 JDK 7 以上 Mav

    DDD の Java EE 実装サンプル - Cargo Tracker を読み解く - Qiita
  • Goのパッケージ構成の失敗遍歴と現状確認

    この記事は Gunosy Advent Calendar 2017の5日目の記事です。前回の記事はGunosyのパーソナライズを支える技術 -ワークフロー編-でした。 GoAPIを書くときの問題僕の在籍するGunosyはGoを昔(?)から番採用しておりまして、ノウハウも潤沢に溜まっている企業だと言えます。 しかし、contextの扱いやベストなパッケージ構成、テスト、net/httpでAPIを書くノウハウなどなど、迷うことは多々あります。 これは弊社特有の事情ではなく、Goのサーバーサイドエンジニア全員にとっての問題です。中でも、パッケージ構成をどうすればいいのか(相互参照せずに快適に開発を進められるパッケージ構成とは)を見つけるのは結構難しく、各々のチームにお任せ、という状況です。 今回は上記の問題のうち、パッケージ構成に踏みこんで見たいとおもいます。会社でもよくパッケージ構成をどう

    Goのパッケージ構成の失敗遍歴と現状確認
  • リファクタリング対象を選ぶ戦略を決めよう - コネヒト開発者ブログ

    この記事はConnehito Advent Calendar 2017の5日目の記事です。 こんにちは、ゲスの極み乙女。のライブに最近行きまくってる @fortkle です!楽曲”だけ”なら絵音は天才ですね! さて、今日はリファクタリングについて書いていこうと思います。 フェーズによる目的の違い スタートアップ初期の開発では、「コードが綺麗なこと」よりも「とにかく早く出してユーザーに受け入れられること」の方が重要です。 一方、サービスがある程度立ち上がった後の開発では、継続的に開発/運用するためにコードの品質を高めていく必要があります。なぜなら、コードの品質が低いと「予期せぬバグ」が発生したり、「生産性」が落ちたりするからです。 よくある問題:リファクタリング疲れ コードの品質を高めていくために継続的なリファクタリングをしていく必要がありますが、こんな経験はないでしょうか。 どこからリファ

    リファクタリング対象を選ぶ戦略を決めよう - コネヒト開発者ブログ
  • Node.js Performance 改善ガイド - from scratch

    Node.js Performance 改善ガイド Memory の場合 メモリリークかどうかを特定する メモリリークではない場合 CPU の場合 どこの処理に時間がかかっているのかを確認する v8 simple profiler flame graph を取得する File の場合 大きなサイズのファイルをどうしても扱う時 Network の場合 keepalive を on にする その他: 全体的にパフォーマンスを改善するためにやること JIT が効いているかを確認する clusterが使えないか検討する C++ addons vs JavaScript libraries まとめ 参考資料 Node.js Performance 改善ガイド この記事は Node.js 2 Advent Calender の 5日目の記事です。 qiita.com Node.js のパフォーマンスに

    Node.js Performance 改善ガイド - from scratch
  • 入門Kotlin coroutines - Qiita

    前書き coroutineはKotlin 1.1から搭載された新機能ですが、まだexperimentalなこともあってバリバリ使っている人は多くないと思われます。しかしながら、experimentalとはいえproduction readyなことは宣言されており、Kotlin 1.3ではexperimentalが外れる(予定の)ため、そろそろ学んでおいても悪くない時期になってきています。 そこで、この記事ではcoroutineを実践するにあたって抑えておくと役立つ知見を共有します。ご参考になれば幸いです! 注: この記事はKotlin 1.2.21, kotlinx.coroutines 0.22.5に基づいて書かれています。 coroutineとは何であって何でないのか coroutineとは何か coroutineとは何かを一言で表現すると、「中断可能な計算インスタンス」になります。こ

    入門Kotlin coroutines - Qiita
    bopperjp
    bopperjp 2017/12/05
    コルーチン
  • データベース技術の羅針盤

    [C33] 24時間365日「当に」止まらないデータベースシステムの導入 ~AlwaysOn+Qシステムで完全無停止運用~ by Nobuyuki Sa...Insight Technology, Inc.

    データベース技術の羅針盤
    bopperjp
    bopperjp 2017/12/05
  • Google Home Miniの壁付けホルダー rev 2.0 - DMM.make クリエイターズマーケット - 849407

    選べる素材・種類について 即納サービスに関する注意事項 注文時は必ず即納サービス対象の素材のみで注文をお願いします。 通常納期素材と即納サービス素材を混同しての注文はキャンセルとさせていただきます。 受付対象曜日及び時刻:毎週月・火・水・木曜日の15時までの注文については、当日を注文日とします。 3Dデータが造形可能なデータであることが受付条件となります。 月〜水曜日15時以降の注文については、翌日を注文日とします。 木曜日15時以降の注文は、翌週月曜日を注文日とします。 造形不良が発生した場合、即納できない可能性があります。その際は、当社よりご連絡させていただきます。 なにかご不明な点や質問がございましたら、お気軽にお問い合わせください。

    Google Home Miniの壁付けホルダー rev 2.0 - DMM.make クリエイターズマーケット - 849407
    bopperjp
    bopperjp 2017/12/05
  • 車輪は何度でも再発明されるべきだろう

    この記事が人気になっている。 京大ナンバーワン教官が教える「勉強することのホントの意味」 これがミライの授業だ http://news.livedoor.com/article/detail/13971240/ いろいろ異論があるのだけど、その中でも些細かもしれないがけっこう「ちがうだろ!」と強く思ったところ、ここ。 「昔、中国田舎に、数学がすごくできる中学生がいました。ある数学の研究者がその子の才能を見抜いて、『君は都会の学校に行って、数学の勉強をするべきだ』とアドバイスしました。しかし、その子の親は『うちで農業を手伝わせます』と進学を止めたのです。 何年かして研究者がその子に再会すると、彼はこう言いました。『先生、僕はすごい発見をしました。この公式を使うと、あらゆる2次方程式が解けるんです』。彼が見せたのは、皆さんが中3で必ず習う『解の公式』でした」 生徒たちがどっと笑う。「ゼロから

    車輪は何度でも再発明されるべきだろう
    bopperjp
    bopperjp 2017/12/05
    興味深い。人は文章を自分の意見が強化される側面でしか見ない。あらためて国語教育の重要性と、文章での意見伝達の難しさがわかる。
  • Macに別れを告げて、クラウド中心の開発生活を始めるまで - Qiita

    昨年あたりから、Macやめたい病を患っていたのですが、2度の故障を経て、重たい腰を上げました。別にWindows使いたいわけもなく「ローカルが煩わしい」だけなので、Windowsアプリは一切インストールしていません。で、どうやって暮らしてるの? というお話です。 TL;DR このあたり↓を組み合わせていけば、クラウド生活可能: GCP (or AWS) Codeanywhere (or Koding or Cloud9) VPCネットワーク + VPN (IPsec+L2TP) + DNS Figmaほか、Webサービス各種 追記・この記事を書いていたら、AWS Cloud9が発表されました。選択肢が増えて何よりです。 はじめに 稿は、筆者が「Mac断ち」あるいは「ローカルマシンから解脱(げだつ)」する過程で見えてきた、ベスト(かも)プラクティス集に近いものです。 よく使うテキストエディ

    Macに別れを告げて、クラウド中心の開発生活を始めるまで - Qiita
    bopperjp
    bopperjp 2017/12/05
  • Redash Meetup #0 - Redash 初心者向けハンズオン (2017/12/19 19:00〜)

    内容 オープンソースのデータ可視化ツール Redash をハンズオン形式で学べる勉強会を開催します。 ハンズオンでは、環境構築からクエリやダッシュボード作成、活用の Tips などを体験できます。 当日は、GitHub にて公開されている「Redash ハンズオン資料」 https://github.com/kakakakakku/redash-hands-on を活用します。 想定参加者像 Redash がどのようなツールか調べたことはあるが、まだ触ったことがない Redash の導入を検討しているが、どんなことができるか知りたい Redash のデモを触ったことがあるが、自分でも検証環境を作ってみたい ハンズオンでは Docker を使用して環境を構築します。 また、ハンズオン資料にしたがってコマンドラインの操作が必要になりますので、Windows/Mac/Linux などのコマンドラ

    Redash Meetup #0 - Redash 初心者向けハンズオン (2017/12/19 19:00〜)
    bopperjp
    bopperjp 2017/12/05