タグ

2013年11月27日のブックマーク (9件)

  • Redis::DistMutex – 時限付き分散ロックで効率良くサイトクロールをしよう | VASILY DEVELOPERS BLOG

    はじめまして。バックエンドエンジニアの吉田です。 2013年5月末の入社以降、大量のEC2インスタンスのVPC移行を担当した後、今はiQONの商品DBを支えるクローラーの改善に取り組んでいます。今回はその改善の1つとして開発したRedis::DistMutexという分散ロック機構のruby実装を紹介をしようと思います。 Redis::DistMutex 開発の経緯や細かい設計の話は後述するとして、まずはつくったgemの紹介をします。 Redis::DistMutex Redisベースの分散ロック機構 rubyのライブラリにあるMutex互換 スレッド間だけでなく、プロセス間・ホスト間でも共有できるMutex 時限つきロックの作成が可能(redisのsetnxとexpireを活用) namespaceを指定できるので、特定の処理ごとにロックの作成が可能 redis2.6以上のみサポート(1秒

    Redis::DistMutex – 時限付き分散ロックで効率良くサイトクロールをしよう | VASILY DEVELOPERS BLOG
  • 「メールアドレスのルール」なんて使ってはいけない3つの理由 - めもおきば

    定期的に繰り返される話題ですがまた盛り上がっているのできちんと書いておきます。 「通るべきメールアドレスが弾かれると激おこ」という前提で話を進めます。 問題点1. メールアドレスに関して、RFCなんてそもそも守られていない 2009年以前に登録されたDoCoMo携帯のメールアドレスなど、quoted-stringじゃないのにピリオド連続するものが実在している以上、彼らを許容するべきです。 今そこにある実装 >>(越えられない壁)>> RFC です。 問題点2. メールアドレスの国際化 @の左側(addr-spec)でUTF-8を利用できるようにするRFC5335が発行されています。これにより、通すべき文字が一気に増えます。 RFC5335 Internationalized Email Headers JPRSが国際化電子メールアドレスの標準化活動に貢献 / 株式会社日レジストリサービス

    「メールアドレスのルール」なんて使ってはいけない3つの理由 - めもおきば
  • GitHubの2段階認証とhttpsアクセス

    GitHub2段階認証を有効にしたところ、httpsなURLのリモート・リポジトリへのpushが弾かれるようになった。ちゃんと記事読んだらトークンで認証させろと書いてあった……。指示に従ってアカウント設定のApplicationsからPersonal Access Tokenを発行し、パスワードの代わりにそれを使うようにしたところ、httpsでも元通り自動認証でpushできるようになったようだ。 "GitHub 2段階認証 https"で検索して見つかるGithub2段階認証を有効にしてgitからの認証が弾かれる時の話には「毎回トークンを入力する必要があります」と書いてあるが、credential.helperを設定しているならそんなことはない。単純に今までのパスワードの代わりに発行したトークンを入力して、ヘルパー・アプリケーションに覚えさせれば二度と聞かれなくなる。 credenti

    GitHubの2段階認証とhttpsアクセス
  • Go でベンチマーク - Block Rockin’ Codes

    Intro Go にはベンチマークを取る仕組みが標準で備わっています。 テストを書く仕組みも標準で備わっており、 testing モジュールと go test コマンドで行いますが、 ベンチも同じような形で実行することができます。 今回は簡単なベンチ取り方を紹介します。 テストについては、そのうちちゃんと触れます。 参考ソースとして、こちらを使います。 https://github.com/Jxck/swrap 対象のコード 例えば以下のようなコードがあって、そのベンチを取るとします。 // swrap.go type SWrap []byte func (sw *SWrap) Add(a byte) { *sw = append(*sw, a) } func (sw *SWrap) Len() int { return len(*sw) } Slice にメソッドを生やしただけです。 ベ

    Go でベンチマーク - Block Rockin’ Codes
  • 今さら聞けない Immutable Infrastructure - 昼メシ物語

    Immutable (不変な) Infrastructure は、サーバを一度セットアップしたら二度と変更を加えないという運用スタイルのことを指します。 クラウド環境では、必要に応じてすぐにサーバを用意し、不要になったら簡単に破棄することができます。Immutable Infrastructure は、このようなクラウドの特性を活かす運用スタイルとして、注目されつつあります。 背景 Immutable Infrastructure が提唱された背景にある技術として、 Auto Scaling や Blue-Green Deployment*1 などがあります。 Auto Scaling Auto Scaling は、負荷に応じて自動的にサーバ台数を増減させる技術で、 AWS では標準で提供されています。常に必要な台数だけ起動していればいいので、コスト削減になるというものです。 Auto S

    今さら聞けない Immutable Infrastructure - 昼メシ物語
  • 監視ソフトをNagiosからSensuに切り替えて2ヶ月経ったのでまとめた - Glide Note

    新規サービス用の監視をNagiosからsensuに切り替えて2ヶ月経ったので、 導入時の調査で社内で公開してたissueと、投入して2ヶ月間運用した記録を公開しておこうと思う。 というか以前Sensuの事を書くと公言していたのに、すっかりサボっていて 昨日@ma0eさんのブログを見て下記のやり取りを思い出して急いで書いた… @ma0e We started using it. @glidenote will report the detail soon, I think. — kentaro (@kentaro) 2013, 10月 30 @kentaro @glidenote that would be nice — Mitsutoshi Aoe/maoe (@ma0e) 2013, 10月 30 導入環境はCentOS 6.4で、利用しているsensuのバージョンは0.12.1-1にな

    mapk0y
    mapk0y 2013/11/27
  • ネットワーク通信用ライブラリVolleyを使いこなす | TechBooster

    Androidネットワークプログラミング用ライブラリ「Volley」を解説します。 モバイルアプリを開発するにあたってネットワーク通信の知識は欠かせないものとなっている一方、ネットワークプログラミングの世界にはキャッシュや高速化、データ取得やキャンセル処理などプログラミングテクニックが多数存在してます。これらの課題を効率的に解決する方法がVolleyライブラリです。 Volley公式ページ https://android.googlesource.com/platform/frameworks/volley/ Volleyの機能紹介とともにキャッシングやキャンセル処理などネットワークプログラミングに欠かせない処理をVolleyの実装をつかって順番に解説していきます。 非常に長い記事ですので始めに理解を深めるための内部処理を紹介します。APIなど詳細は記事の途中で随時解説します。 ネットワー

    ネットワーク通信用ライブラリVolleyを使いこなす | TechBooster
  • Volleyを使うときに気をつけることメモ - Qiita

    開発中のアプリに「ネット上からの画像の取得とキャッシュをする」処理があったので、不安定なオレオレ実装からGoogle謹製のVolleyに乗り換えてみました。 Volleyの導入やスタートアップはこちらなんかを参考にするといいと思います。 今回はVolleyを使う上での実用的なメモを備忘録代わりに書いておきます(@mhidakaさんに助けてもらいました) 1. 一度にRequestを投げすぎるな! Volleyがレスポンスを返すおおまかな流れは Requestを生成 RequestQueueに投げる ディスクキャッシュを探して見つかれば返す インターネットから拾ってきて返す という感じです。RequestQueueに投げてからレスポンスを返すまでは別スレッドで動いてくれるので、UIスレッドを停止させることはありません。 ところで、このDispatcherがVolleyでは1つしかなくて並列化

    Volleyを使うときに気をつけることメモ - Qiita
    mapk0y
    mapk0y 2013/11/27
    “Volley”
  • マルチコア時代のLock-free入門

    Please select the category that most closely reflects your concern about the presentation, so that we can review it and determine whether it violates our Terms of Use or isn't appropriate for all viewers.