タグ

2014年12月15日のブックマーク (8件)

  • PHPでID生成器を実装してみました | チャットワーククリエーターズブログ

    こんにちは!Web開発チームの安達です。 この記事は、ChatWork Advent Calendar2014 15日目の記事です。 みなさん、Scala使ってますか? 今日は「PHPでID生成器を実装してみた」というお話をしたいと思います。 IDの生成ウェブサービスのグローバル展開やスケーラビリティについて考えだすと、IDの生成に関わる課題が浮かび上がってくると思います。 例.「東京とシドニーのデータセンターにサーバを配備したとき、IDが衝突しないように生成できるのかな?」 またサービスの可用性について考えだすと、こちらでもID生成が絡む課題が。 例.「RDBMSのAUTO INCREMENTでIDを生成しているんだけど、この1台が落ちたらサービス止まっちゃう…。」(単一障害点) 理想としては、スケールアウト出来て、複数のサーバで並列にID生成が可能で、単一障害点にならないような形でID

    PHPでID生成器を実装してみました | チャットワーククリエーターズブログ
    okinaka
    okinaka 2014/12/15
  • RDS のリードレプリカへのアクセスを HAProxy で分散しつつ consul と consul-template で冗長化するメモ | iret.media

    構成図 実装(という程ではないけど) Read Replica の分散 HAProxy の設定は以下のように。 global log 127.0.0.1 local0 log 127.0.0.1 local1 notice maxconn 4096 daemon defaults log global option dontlognull retries 3 maxconn 2000 timeout connect 5000ms timeout client 50000ms timeout server 50000ms listen mysql bind 0.0.0.0:3306 mode tcp option mysql-check user monitor balance leastconn server read01 hogehoge-replica.xxxxxxxxxxxxx.ap

    RDS のリードレプリカへのアクセスを HAProxy で分散しつつ consul と consul-template で冗長化するメモ | iret.media
  • HubotとJenkins、GitBucketを連携してCIをチャット上で効率化するには

    連載目次 連載第1回の「GitHub製フレームワークHubotの概要とインストール、チャットアプリと連携する基的な使い方」では、GitHub社が開発しているBotフレームワーク「Hubot」の概要、Hubotとチャットとの連携方法、Hubotの基的な使い方を紹介しました。 前回の「Redmine連携でチケットをチャットに通知&開発を楽しくするHubotスクリプト6選」と同じく、今回も、サンプルアプリケーションに対して修正を行うシーンを例に、Hubotと各ツールがどう連携するかを解説します。 ソースコードはGitHubそっくりなUIと機能を提供している「GitBucket」(Scala製)で管理し、ビルドやデプロイはCI(継続的インテグレーション)ツール「Jenkins」で行います。 利用したソフトウェアとバージョンは以下の通りです。 Hubot 2.4.7 Kandan 1.2 Git

    HubotとJenkins、GitBucketを連携してCIをチャット上で効率化するには
  • SeleniumでChromeのデベロッパーツール相当の機能を使ってみよう - Qiita

    この記事はSelenium/Appium Advent Calendar 2014の12日目の記事です。誰も書かなさそうなので小ネタを引っ張りだしてきました。 chromedriverのアーキテクチャ chromedriverはJSON Wire Protocolを受けるSelenium ServerとChromeの間の通信をRemote debugging protocolで行っています。これは、Chromeに標準で内蔵されているDeveloper Toolsでも利用しているものです。 chromedriverを使ったプログラムを途中で止めて、Developer Toolsでデバッグしてみて、そのDeveloper Toolsを閉じずに、プログラムを再開したら、Seleniumのセッションが使えずに死ぬといった経験はわかる人にはわかるでしょう。これは、両者が同じAPIを利用していて、かつ

    SeleniumでChromeのデベロッパーツール相当の機能を使ってみよう - Qiita
    okinaka
    okinaka 2014/12/15
    UA 書き換えられていいかも!
  • Vagrant 1.7の新機能、vagrant pushでVCCWのコンテンツをデプロイ | Firegoby

    昨日のお母さんのための_sコントリビューター講座に引き続きオレオレアドベントカレンダー13日目。 先日Vagrant 1.7がリリースされまして、それとともにAtlasというサービスがローンチされましたね。 Hashicorp AtlasでVagrant, Packer, Terraformを連携させる あと、Vagrantにもvagrant pushという新しいコマンドも追加されたようです。 VAGRANT PUSH ドキュメントを読んだ感じでは、リモートのサーバーにデプロイするためのコマンドのようで、デプロイ方法は以下の4つの方法が用意されているようです。 Atlas FTP / SFTP Heroku Local Exec というわけでVCCWにちょちょっと細工をしてvagrant pushを試してみました。 Local Exec それぞれのドキュメントをサッと呼んでみたところWor

  • CasperJSでWeb GUIテスト - Qiita

    CasperJSは、ヘッドレスブラウザのPhantomJSを使ってブラウザ操作やテストができるライブラリ。 WebテストのデファクトであるSeleniumやそのGroovyラッパーのGeb(これが一番おすすめ)に比べて、インストールが簡単で、動作の軽量なのが特徴。 以下のデメリットもありますが、軽いWebシステムには相性がよい。 クロスブラウザができない(PhantomJSベースなので当たり前) Gebと比べると気が利かない 入れ子が多くなって気持ち悪い(Coffee Scriptを使えばいい?) CasperJSのドキュメント インストール Macならコマンド一発。win用に簡単に説明。 参考:http://qiita.com/ledsun@github/items/d55e83d41a4435755fcd chocolateyのインストール コマンドプロンプトで以下を実行 参考:htt

    CasperJSでWeb GUIテスト - Qiita
  • CasperJSで動的ページをスクレイピング、あるいは毎月100円ゲットする方法について - そんな今日この頃でして、、、

    厳密にはクローリングが任意のサイト上からHTML等のデータを取得する方法、スクレイピングが取得されたデータから必要な情報を抽出する方法らしいので言葉の用法としては怪しいけど、まあそこは気にせず。 CasperJSとは、JavaScript APIにより操作できるヘッドレスなWebKitブラウザであるところのPhantomJSをより簡潔な記述により操作可能にしたユーティリティである。 スクレイピングといえば古くは各言語のウェブアクセスライブラリ(PerlでいうLWPとかMechanize系とか)を用いていたが、これらはリクエストされたページのHTMLを静的な文字列として取得するだけであり、Ajax全盛な昨今のJavascriptを用いた動的に生成される要素を解析することはできなかった。 (↓そういや前にLWP使ったスクレイピングしてたこっちでも、それと思しき問題にぶつかった) そんなわけで各

    CasperJSで動的ページをスクレイピング、あるいは毎月100円ゲットする方法について - そんな今日この頃でして、、、
  • vagrant share の実装を読もうと思ったら暗号化されていた - @kyanny's blog

    Vagrant に再入門している。 Getting Started を読んで vagrant share という機能があることを知った。手元の仮想マシンがコマンド一つでインターネットに公開されてすごい。どうやっているのか気になったのでソースコードを読んでみようと思ったら RubyEncoder という商用製品で暗号化されていた。 vagrant はオープンソースソフトウェアなので Share 機能のコードもリポジトリにあるのだろうと思って探し始めたがそれっぽいものが見つからなかった。公式サイトで配布しているインストーラを使ってインストールしたので、オープンソース版に含まれていないプログラムが同梱されているのかな?と思い、 /usr/bin/vagrant というシェルスクリプトを読んでもろもろの実態がどこにあるのかを調べ、たどっていった。 $ tree /Applications/Vagr

    vagrant share の実装を読もうと思ったら暗号化されていた - @kyanny's blog