タグ

2014年12月4日のブックマーク (17件)

  • Facebook's iOS Infrastructure - @Scale 2014 - Mobile

    Facebook has been iterating its mobile products, continuing to increase the richness of the content and speed at which it is delivered. In transitioning to become a mobile-first company, Facebook has faced complex issues and opportunities to make its products more innovative, while building abstractions to do so that are powerful, yet simple—all fit for a very large scale. Adam Ernst, an iOS Engi

    Facebook's iOS Infrastructure - @Scale 2014 - Mobile
  • 日本語:Mongo dbに於けるシャーディングについて

    MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜Takahiro Inoue

    日本語:Mongo dbに於けるシャーディングについて
  • OpenStack Swiftによる画像ストレージの運用 | GREE Engineering

    こんにちは。インフラストラクチャ部の竹辺です。このエントリはGREE Advent Calendar 2014 4日目の記事です。 GREESNSでは、ユーザのみなさまが投稿した画像を保存するためのストレージを運用しています。2年ほど前から、この画像のストレージにOpenStack Swift(以下Swift)を使い始めました。その後、既存のストレージからのデータ移行やユーザのみなさまからの投稿などにより、現在では9億ファイルを超える画像が格納されています。 日最大のメッセージングサービスでは一日の130億件のメッセージがやりとりされているという時代に9億などというとププッと笑われてしまうかもしれませんが、Swiftに大量の画像ファイルを格納するにはいくつかの性能上の問題を解決する必要があり、9億ファイルを格納するのもそれほど簡単ではありませんでした。この記事では、弊社の画像ストレー

    OpenStack Swiftによる画像ストレージの運用 | GREE Engineering
  • Creation of pure Swift module | Railsware Blog

    If you have already started playing with swift, you probably thought about how to include third party libraries into your project or how to distribute yours. Apple provides a mechanism to distribute code via frameworks (eventually, for iOS too), so making a custom framework, which will include both ObjC and Swift code is very easy. But let’s dig deeper and create a pure Swift module, like apple do

    Creation of pure Swift module | Railsware Blog
  • Kubernetesのカレンダー | Advent Calendar 2014 - Qiita

    About reserved postingIf you register a secret article by the day before the same day, it will be automatically published around 7:00 on the same day. About posting periodOnly articles submitted after November 1 of the year can be registered. (Secret articles can be registered anytime articles are posted.)

    Kubernetesのカレンダー | Advent Calendar 2014 - Qiita
  • pelletkachels | blog over bedrijven en feitjes en de pelletkachel

    Welkom bij Pelletkachels.nl, jouw ultieme bron voor alles wat met pelletkachels te maken heeft! Maar we zijn meer dan alleen een platform voor het bespreken van warmtebronnen. Bij Pelletkachels.nl geloven we dat het delen van kennis en ervaringen over bedrijven en gebeurtenissen ook essentieel is voor het creëren van een betrokken en geïnformeerde gemeenschap. In dit blog duiken we dieper in de we

    pelletkachels | blog over bedrijven en feitjes en de pelletkachel
  • git subtreeの練習

    Gitのサブモジュールでは面倒そうな、頻繁に更新される別のリポジトリを取り込む方法としてサブツリーマージを行うラッパーであるgit subtreeコマンドを使う練習を始めた。どちらかというと「参照する」要素の強いサブモジュールに対して、サブツリーは「切り分ける」や「取り込む」という感じなんじゃないかと理解している。全般的に間違ってそうで怖い。 「切り分ける」、つまりリポジトリのサブディレクトリを別のリポジトリにしたい場合は、単純なケースだと親にあたる方で.gitignoreや.git/info/excludeを使ってサブディレクトリを除外してやれば良い。でもこの場合、両方のリポジトリで関連した変更がある時にそれぞれのリポジトリでコミットしてやらないとならないので面倒くさい。 「取り込む」場合はサブモジュールが基なわけだけど、他で作業して戻ってきてたりする必要があるし、サブモジュールの更新

    git subtreeの練習
    clavier
    clavier 2014/12/04
  • 最近書いたChefのCookbook(all-in-one_haproxy, redis)を公開します - 元RX-7乗りの適当な日々

    公開します、というかGitHubに置いていただけですがー。 all-in-one_haproxy 2台セットでのHA構成を想定したHAProxyサーバを作るためのChef Cookbookです。2台セット冗長化済のHAProxyサーバをさくっと作るために書きました。 https://github.com/namikawa/all-in-one_haproxy 基的には、2台で以下機能が連携しあう形で稼動します。 rsync + lsyncdの稼働 (各種設定ファイルの同期) keepalivedの稼働 (HAクラスタ構成の実現) HAProxyの稼働 (LB/ReverseProxyソフトウェア・SSL対応) iptables/ip6tablesの稼働 (接続元の限定) Quaggaの稼働 (エッジルータ等との動的経路広報の実現) snmpdの稼働 (各種メトリクスの取得) swap領域

    最近書いたChefのCookbook(all-in-one_haproxy, redis)を公開します - 元RX-7乗りの適当な日々
  • RubyMineを使っているならReformatでもっと幸せになろう | mah365

    こんにちは! RubyMine Advent Calendar 20143日目の記事です。さて、皆さんはRubyMineのReformatという機能は活用していますでしょうか? ん? 未だに手でインデントを揃えているって? 今すぐReformatを使いましょう! Reformatとは コード中のインデントやスペースなどを、言語別の設定にあわせて整形し直してくれる機能です。 下の画像のように、Preference > Editor > Code Style以下に言語別の設定を行う場所があります。 Code Styleの設定を元に、常に一定の見た目を保持できる点が、Reformatの優れているポイントです。 手動でReformatをかける まずは手動でReformatをかける方法から。例えば以下のようなインデントの崩れているHTMLソースがあったとしますね。このインデントを直してみましょう。

    RubyMineを使っているならReformatでもっと幸せになろう | mah365
  • Mackerelで採用している技術一覧とその紹介 - Hatena Developer Blog

    こんにちは。Songmuです。 この記事ははてなエンジニアアドベントカレンダーの3日目です。 昨日、Hatena Engineer Seminar #3を開催いたしました。何より参加率が高かったことに感激したのですが、その分少し窮屈な思いをさせてしまったかもしれないのは申し訳なかったです。多数のご参加当にありがとうございました。 セミナーではMackerel overviewという話をさせてもらったのですが、そこでお話したMackerelで採用している技術について説明します。 Mackerelとは? 今年の9月17日にリリースしたはてな謹製のサーバー管理・監視ツールです。 数多くのサーバーを運用しているはてなは、これまでサーバー管理ツールを内製してきたのですが、そのノウハウを活かし、サービス用に新たに一から作ったサービスになります。 また、はてなの既存サービスとは性質が異なるため、技術

    Mackerelで採用している技術一覧とその紹介 - Hatena Developer Blog
  • Moving from PhantomJS to node-webkit - Todd Wolfson

    My website has a test suite with visual regression tests; screenshot different webpages and compare against a set of expected images: https://github.com/twolfson/twolfson.com/tree/3.40.0/test/perceptual-tests/expected_screenshots This weekend, I switched it from PhantomJS to node-webkit and am happy with the results: Benefits node_modules/ always work (e.g. no process is undefined issues) node_mod

  • 契約による設計から見た例外 - Qiita

    正しさは相対的な概念である。 Bertrand Meyer [1] Bertrand Meyer氏は「契約による設計」という概念から例外を導出し、例外の必要性をエレガントに説明しています。また、彼の説明に則れば今までの議論と比べて例外をいくぶんか形式的に扱えるようになります。契約による設計を学ぶ前に、プログラムの正しさについてもう一度考えてみましょう。 プログラムの正しさ あるプログラムが正しいかどうかを判定するにはどのようにすれば良いでしょうか。最も簡単な方法は、あるプログラムの正しさを形式的に定義する事です。より直接的に言えば、あるプログラムの正しさを簡単な論理式で表現します。その論理式が真ならばそのプログラムは正しい。偽ならばそのプログラムは正しくありません。 これだけだと関数の戻り値を検査すれば良いだけのようにも聞こえます。しかし、そう簡単な話ではありません。純粋でない言語の場合、

    契約による設計から見た例外 - Qiita
  • Apple製開発ツール「Bluetooth Explorer」でBLEデバイスのGATT仕様を確認する - Qiita

    Bluetooth Explorerとは? Appleが提供する開発用ツールに、「Bluetooth Explorer」というものがあります。 Bluetoothにまつわる諸々の解析や設定を行うためのツールで、非常に多くの機能を持っています。 上記のスクリーンショット、全部Bluetooth Explorerのウィンドウです。MBP 15 Retina の最高解像度設定で画面が埋まる程度にツールを立ち上げてみましたが、他にもまだまだ多くの機能があります。。 BLE と Bluetooth Explorer 機能がありすぎて今日まで気付かなかったのですが、BLE向けの機能も持っています。 Bluetooth Low Energy のデバイスをスキャン、接続し、提供するサービス/キャラクタリスティックを確認 することができます。 何が嬉しいのか? ・・・とここまで書いたところで、これの何が嬉し

    Apple製開発ツール「Bluetooth Explorer」でBLEデバイスのGATT仕様を確認する - Qiita
  • Swift + AppExtension + MagicalRecord - ほげほげ(仮)

    SwiftでコンテナアプリとAppExtensionのデータをMagicalRecordで共有する方法です。 (少しObjective-Cは必要になります) 注意 現状だとちょっと試した動いた状態なので何か問題があとからあるかもしれません。 あと、MagicalRecordはbeta版を使用するのでここも問題があるかもしれません。 環境 OS X Yosemite Xcode 6.1 CocoaPods 0.34.4 プロジェクト作成 サンプルでSingle View Applicationで作ります。下のような感じで設定します。 AppExtensionのTarget作成 今回はToday Extensionでやります。他のAppExtensionでもやり方はほぼ同じかと思います。 Podfile作成 Podfileを作成します。 $ pod init 次のように追記して、インストールし

    Swift + AppExtension + MagicalRecord - ほげほげ(仮)
  • [Swift] 関数における引数/戻り値とタプルの関係 | DevelopersIO

    Swift においてタプルはパターンマッチが手厚くサポートされているなど、Optional 同様に特別な扱いを受けています。 関数とタプルについて調べてみましたが、いまいち結論が曖昧な部分が多かったです。 しかし、関数とタプルがどういう関係であるのか見えてくる部分もありましたので、記事として残しておきます。 戻り値 戻り値と空タプル Swift では、戻り値を返さない関数の型は T -> Void 型で表現されます。 func test(str: String) { println(str) } let f: String -> Void = test ここで出てくる Void 型は () 型の型エイリアスで、Swift のモジュール内で定義されています。 typealias Void = () () 型というのは空のタプルを表す型です。 つまり、戻り値を返さないと定義された関数も、実際に

    [Swift] 関数における引数/戻り値とタプルの関係 | DevelopersIO
  • [Swift]自分自身のインスタンスを返すときは"Self" を使うと便利。 - Qiita

    戻り値でインスタンスを返すクラスメソッドを作る機会って、結構多いと思うんですが、Swiftでやるときの方法です。 参考サイト: objective c - How can I return instancetype in Swift - Stack Overflow インスタンスを返すメソッドの戻り値に “Self" を使う サンプルコードは下記です。クラスAがあり、 Aを継承してBとCを定義しています。Aに、インスタンスを取得するクラスメソッド instance() を定義し、戻り値をSelfとしています。 で、クラスBとCで instance()を呼ぶと、それぞれBのインスタンスとCのインスタンスを返してくれます。 class A { required init() {} func nameOfClass() -> String { return "Class A" } class f

    [Swift]自分自身のインスタンスを返すときは"Self" を使うと便利。 - Qiita
  • ルビを振る - Qiita

    やっはろー。iOS 8から文字列にルビを振ることができるようになりました。Core Text の CTRubyAnnotation (CTRubyAnnotationRef) を使います。 let ruby = "ルビ" let string = "文字列" let annotation = CTRubyAnnotationCreateWithAttributes(.auto, .auto, .before, ruby as CFString, [ kCTRubyAnnotationSizeFactorAttributeName: 0.5, ] as CFDictionary) let annotatedString = NSAttributedString(string: string, attributes: [ kCTRubyAnnotationAttributeName as NS

    ルビを振る - Qiita