タグ

2011年6月2日のブックマーク (10件)

  • GNU Parallelがすごすぎて生きるのがつらい

    皆さん今日もたくさんのサーバを相手にされていることかと思いますが、いくつかのサーバにアクセスして 1 秒間の統計情報(例えばvmstat 1 2)を集めてパッと表示したい時ってどうやってますかね?shell script を学びはじめたばっかりの僕はこんな感じで書いてました。 $ for i in host1 host2 host3; do ssh $i "vmstat 1 2 | tail -1"; done 0 0 0 329004 210836 14275360 0 0 0 2424 1410 1828 0 0 100 0 0 0 0 0 3716112 587704 25921684 0 0 0 488 1643 2026 0 0 100 0 0 1 0 0 555440 265560 14015548 0 0 0 4204 1534 2392 1 0 99 0 0 vmstatと

    GNU Parallelがすごすぎて生きるのがつらい
  • dom based xss の発見と駆除と予防について - 'ashula.info

    概要 JavaScript を介した XSS である DOM based XSS の Opera の UserJS による発見と対策について. 前提 ある程度の個人情報を登録しているユーザを抱えているサービスの開発者などが対象です. DOM based XSS がなにかについては,OWASP DOM Based XSSを参照して下さい. 脅威 同一ドメインでユーザ情報の変更フォームがあると,第三者にその情報を奪取されます. 別ドメインでも,CORS が設定されてると抜かれる可能性があります. その他,ユーザの秘密情報に対する攻撃が行われます. 場合によっては,他のサービスに対するDDoS の踏み台としてユーザのリソースが消費されます. 発見 とりあえず,xss.js を UserJS として飼います. 見事 alert(2) が出れば任意の要素が突っ込まれる穴があるのは確定. alert(

    hamaco
    hamaco 2011/06/02
  • Pinoco0.4はクロージャですごくなる - なんたらノート第三期ベータ

    Pinoco0.4.0をリリースしました。 Downloads · tanakahisateru/pinoco · GitHub 変更点はこちらで簡単に。 Changelog · tanakahisateru/pinoco Wiki · GitHub 重要な点は、データベースをサポートしたところ。もちろん単にPDO用のライブラリあります、ってだけではなく、Pinocoのコレクションでうまく動くようにあれこれしています。その基礎になるのが、Pinoco_Varsに追加されたregisterAsLazyメソッド。簡単にいうと、これで設定したプロパティは遅延評価で値を決めるというもの。実際にアクセスされるまで値の決定を遅らせます。いちど決まれば再決定のためにコストのかかる処理をしません。 また、Xdebugがない環境でも、通常のPHPエラーにスタックトレースが付いたり、捕捉しそこねた例外がすごく

    Pinoco0.4はクロージャですごくなる - なんたらノート第三期ベータ
    hamaco
    hamaco 2011/06/02
  • memcached(プロトコル)のデータレプリケーション - (ひ)メモ

    国内だけでなく国外(なぜか主に中国語)でもまだrepcachedについて言及してるのをちらほら見かけるのですが、repcachedはmemcached 1.2.8ベースですし(memcached 1.4.5に対応してる人もいるようですが)いまならKyoto Tycoon使えばいいんじゃないかと思うのです。 Kyoto Tycoonなら: memcachedプロトコルプラグインを使えば、Kyoto Tycoonがそのままmemcachedの代替になる(memcachedプロトコルを喋るクライアントコードはそのままでよい) Tokyo Tyrantと違ってexpireもOK memcachedの代替が目的なら、速いオンメモリDB(StashDBとか)でOK 非同期レプリケーションもできる ホットスタンバイ側のサーバリソースが無駄に思うなら、keyに応じてmodとかでリクエストするサーバを2台の

    memcached(プロトコル)のデータレプリケーション - (ひ)メモ
    hamaco
    hamaco 2011/06/02
  • Kyoto Tycoonの運用TIPSなどなど - (ひ)メモ

    チャオ!みんな、Kyoto Tycoonライフをエンジョイしてるかい!? 今日はKTライフを満喫してるミーからの運用TIPSアンドソーオンをお届けするYO! kchashmgrとktremotemgrコマンドの補完 人間の脳活動のピークは22歳の今日このごろ、みなさんいかがおすごし? もうね、ミーは全然コマンドオプションとか覚えられないからシェル(bash)で補完しまくってるYO! kchashmgrとktremotemgrだけだしオプション網羅してないし補完ルールもアレだけどオープン&シェアなマインドとガッツで気になる人はfork & push! Nagiosで死活監視 ナギオス!みんな使ってるよね? ミーはcheck_httpでKTのHTTP RPCのechoにアクセスしてデッドオアアライブの監視してる! define command { command_name check_kyot

    Kyoto Tycoonの運用TIPSなどなど - (ひ)メモ
  • Evernoteのアーキテクチャ概要 - nokunoの日記

    みなさん、Evernoteは使っていますか? Evernoteは「全てを記憶する」が合言葉のメモアプリで、クラウド上にデータを保存してWin/Mac/iPhone/Webから共通のデータにアクセスしたり同期したりできるのが特徴の便利なサービスです。開発元はシリコンバレーの会社ですが、日人のユーザも非常に多いそうで、Evernoteの使い方についての記事は日語でも星の数ほどありますのでここでは触れません。 今回は、そのEvernoteの裏側のシステム概要を解説する記事が今月開設されたばかりの技術ブログに公開されていましたので、翻訳してみました。Architectural Digest | Evernote Tech Blog はじめにこのブログの手始めとして、Evernoteの構築について大雑把な概要を述べる。ここではそれぞれのコンポーネントの詳細に踏み込むことはしない。それらについての

  • 第19回 パフォーマンスチューニングとは | gihyo.jp

    今回は、パフォーマンスチューニングについて考えてみます。 ハードウェアは進化しているのに、なぜパフォーマンスチューニングを続けるのか インフラエンジニアは10年前に比べて、格段にパフォーマンスチューニングのスキルを要求されるようになっています。CPUが高速になりストレージも高速になり、メモリの単価も安くなっているにもかかわらず、です。これはひとえに、ネットの、というかWebのサービスの傾向によるものに他なりません。 いまやWebはネットのかなりの部分のトラフィックを締めており、そのWebがどんどん双方向化しています。ここでいう双方向化というのは、大多数のユーザも情報を発信するようになっている、ということとほぼ同義です。 インターネットは双方向(通信)というのはかなり以前から言われていますが、そうは言ってもたとえば2000年のころWebは双方向だったか? というとそんなことはないと思います。

    第19回 パフォーマンスチューニングとは | gihyo.jp
    hamaco
    hamaco 2011/06/02
  • ごりゅご.com

    ごりゅご.com

    hamaco
    hamaco 2011/06/02
  • 実は厄介、ケータイWebのセッション管理

    実は厄介、ケータイWebのセッション管理:再考・ケータイWebのセキュリティ(3)(1/3 ページ) “特殊だ”と形容されることの多い日の携帯電話向けWebサイト。そこには、さまざまな思い込みや性善説の上しか成り立たないセキュリティが横行しています。連載は、ケータイWebの特殊性をていねいに解説し、正しいケータイWebセキュリティのあるべき姿を考えます(編集部) 「Cookieを使えない端末」でセッションを管理する方法は? 第2回「間違いだらけの『かんたんログイン』実装法」ですが、多くの方に読んでいただきありがとうございました。 今回は、前回に引き続き架空のSNSサイト「グダグダSNS」のケータイ対応を題材として、ケータイWebのセッション管理の問題点について説明します。携帯電話向けWebアプリケーション(ケータイWeb)のセッション管理は、かんたんログインよりも対策が難しく、厄介な問

    実は厄介、ケータイWebのセッション管理
  • nodeunitを使ったテストコード - hagino3000's blog

    サーバーにnodeを使いつつTDDをするためにnodeunitを使ってみた。試しにmongoDBの操作を直列で記述できるラッパーを作って、それのテストケースを3つ書いた。 テストコード var mongodb = require('mongodb'); var Transaction = require('./mongotransaction').MongoTransaction; var db, case1 = {}; case1.setUp = function(next) { var server = new mongodb.Server("127.0.0.1", 27017, {}); db = new mongodb.Db('test', server, {}); next(); } case1["Open and close DB"] = function(test) { ne

    nodeunitを使ったテストコード - hagino3000's blog