タグ

2012年6月12日のブックマーク (24件)

  • dancer.js

    dancer.js JavaScript Audio Library toggle FFT spectrum view API/source by jordan santell Now playing... Zircon - Devil's Spirit Loading . . .

  • munin-node → Fluentd → GrowthForecast でオレオレモニタリングツールへの道? - 酒日記 はてな支店

    できるかなと思って、とりあえず繋げてみたのでメモ。中途半端。 munin-node → Fluentd munin-ruby で取得した値をまるごと fluentd に送信するスクリプトをcronで1分ごとに実行。 #!/usr/bin/env ruby require "munin-ruby" require "fluent-logger" host = "localhost" node = Munin::Node.new(host) logger = Fluent::Logger::FluentLogger.new("munin") node.list.each do |key| values = node.fetch(key) logger.post("#{key}.#{host}", values[key]) end このようなメッセージが飛びます。 2012-06-12T08:4

    munin-node → Fluentd → GrowthForecast でオレオレモニタリングツールへの道? - 酒日記 はてな支店
  • カジュアルに Nginx で Lua したい -- openresty(ngx_openresty) 使う - hibomaの日記

    openresty(ngx_openresty) として配布されてる tarボールを使うと 手っ取り早く Nginx で Lua +α する環境が作れます。超便利。 一例: OSXの場合 事前に homebrew も入れておいてね brew install prce wget http://agentzh.org/misc/nginx/ngx_openresty-1.0.11.28.tar.gz tar xvfz ngx_openresty-1.0.11.28.tar.gz cd ngx_openresty-1.0.11.28 ./configure --with-luajit \ --prefix=~/ngx_openresty-1.0.11.28 \ --with-cc-opt="-I/usr/local/Cellar/pcre/8.21/include" \ --with-ld-op

    カジュアルに Nginx で Lua したい -- openresty(ngx_openresty) 使う - hibomaの日記
  • ruby1.9.* で lxc-attach のバインディング書いてみたら動かなかったので カーネルまで追って調べたログ - hibomaの日記

    LXC(Linux Container) で lxc-attach というコマンドが提供されています。シェルを介すると扱いにくい場面があるので rubyから直接扱えるようにC拡張を書いてみました。 ....のですが 1.8系だと動作し 1.9系だと動かなかったので原因を追ってみました。rubyの処理系の仕様とLXC, カーネルの実装を調べる事で原因を掴めました。 LXCの実装は 新しめのカーネルでのみ使用できるシステムコールや機能が種々含まれており、調査した際に得る物が大きかったです。のでログを整形して公開します。お勉強におつきあいください。 おことわり LXCうんぬんについての前置きははしょって書きます。ご了承ください。 メインラインに取り込まれてないパッチを当てたLinuxカーネルでの検証です lxc-attach もそのパッチあてることで動く 今後のカーネルのリリースで挙動が変わる可

    ruby1.9.* で lxc-attach のバインディング書いてみたら動かなかったので カーネルまで追って調べたログ - hibomaの日記
    kamipo
    kamipo 2012/06/12
  • mac の zsh で、表示されてるコマンドラインを手早くクリップボードにコピーしたい - hibomaの日記

    # 名前はなんでもいい pbcopy-buffer(){ print -rn $BUFFER | pbcopy zle -M "pbcopy: ${BUFFER}" } zle -N pbcopy-buffer bindkey '^x^p' pbcopy-buffer ↑ を読み込んで、 Ctrl + X Crtl + P を押す。 するとコマンドラインを実行せず、表示したまんまでクリップボードに登録できる 素朴だけど、とりあえず役立ってる。 こういうことやる方法が長らく分からなくて放置してたんだけど、zaw https://github.com/zsh-users/zaw のソースを追いかけてようやくやり方を知りました (zaw最高ですね) iTermの機能とか screen/tmux とかでもできるのかな。 more better な書き方あったら教えてね 寿司ブロガーが似たようなの書

  • lua-nginx-module tips - luaで動的にNginxのドキュメントルートを変更 - hibomaの日記

    Nginxのlua-nginx-moduleでドキュメントルート(root)は変更できるのかと、同僚 id:lamanotramaさんに質問もらってたので検証です。 ちょっと前に書いた lua-nginx-module の紹介 ならびに Nginx+Lua+Redisによる動的なリバースプロキシの実装案 と比べて小粒なエントリです。こちらは proxy_passを動的に変更する例でした。 結果から言うとできる ホスト名を見て 適当に ドキュメントルート $root を振り分けるサンプル設定です worker_processes 1; error_log /dev/stderr debug; events { worker_connections 256; } http { server { listen 8080; server_name localhost; location / { s

    lua-nginx-module tips - luaで動的にNginxのドキュメントルートを変更 - hibomaの日記
  • lua-nginx-module の紹介 ならびに Nginx+Lua+Redisによる動的なリバースプロキシの実装案 - hibomaの日記

    Nginxは非常に強力なhttpdですが、独自のモジュールを実装しようとするとこれまた非常に敷居が高い印象です。 追記 この記事よりも前に http://openresty.org/#DynamicRoutingBasedOnRedis でほとんど同じ内容のエントリが書かれていました。こちらも参照ください モジュールの開発はむずかしい まず開発用のドキュメントはほとんどありません。必然 既存のモジュールをお手としますが、コメントも少ないのでソースだけが頼りです。 {ファイル,ネットワーク} I/O を伴う処理では、Nginxのノンブロッキング/イベントドリブンのアーキテクチャにのっとってコールバックを駆使したCで実装する必要があり、LLで育ったゆとり脳では太刀打ちできませんでした lua-nginx-module が代わりになるかも なんらかのNginxモジュールを開発しなければならない

    lua-nginx-module の紹介 ならびに Nginx+Lua+Redisによる動的なリバースプロキシの実装案 - hibomaの日記
  • uu59のメモ | MongoDBでもSQLインジェクションできる

    タイトルはわかりやすさ重視でつけたのでそれSQLじゃないよというのは承知の上です。 Attacking NoSQL and Node.js: Server-Side JavaScript Injection (SSJS) SSJS whitepaper(PDF) JSONをevalで作るようなのは論外として、NoSQL Injectionって項目が面白かったのでメモ。 まずMongoDBにはfind()っていうのがあるんですが、一般的にはdb.find({x: 42})のようにオブジェクトを渡してxプロパティが42のレコードを取得する、といった用途に使います。が、db.find("this.x == 42")のように文字列を渡しても同じ結果が返ってきます。これはMongoが受け取った文字列をevalしてるせいです。試しにmongoコンソールでdb.find("while(1){};retu

    kamipo
    kamipo 2012/06/12
  • Mina

    Mina lets you build and run scripts to manage your app deployments on servers via SSH. $ gem install mina $ mina Really bloody fast Mina works really fast because it’s a deploy Bash script generator. It generates an entire procedure as a Bash script and runs it remotely in the server. $ mina deploy --verbose -----> Creating the build path $ mkdir tmp/build-128293482394 -----> Cloning the Git repos

  • リーダブルコードの解説 - 2012-06-11 - ククログ

    注: 記事中の「解説」の部分のライセンスは「Creative Commons 表示 - 非営利 - 継承」です。「解説」は「クリアコード」(「ClearCode Inc.」)によって変更されています。変更前の原著作者は「オライリー・ジャパン」です。「Creative Commons 表示 - 非営利 - 継承」なので再配布や変更や翻訳などはライセンスに従って自由に行えますが、営利目的で利用することはできません。 https://amazon.co.jp/dp/B0064CZ1XEの翻訳である「リーダブルコード」が今月(2012年6月23日)発売されます。すでに予約できるようです。 https://amazon.co.jp/dp/4873115655 書の内容は原書の紹介記事を参照してください。 日語版の訳者は角さんです。これまでの訳書と同様にとても読みやすく訳されています。翻訳なので読

    リーダブルコードの解説 - 2012-06-11 - ククログ
    kamipo
    kamipo 2012/06/12
  • JSX で Array#forEach が5倍以上速くなった話 - kazuhoのメモ置き場

    JSX の進化速度が半端ない - ぐるぐる~ で紹介していただいているとおり、最新の JSX では function expression の型宣言を省略できるようになっています。これを利用して、たとえば配列の合計を求める場合、 var sum = 0; [ 1, 2, 3, 4, 5, 6, 7, 8 ].forEach(function (n) { sum += n; }); のように、JavaScript と 100% 同様に書くことができるようになりました。省略形を利用して [ ... ].forEach((n) -> { sum + n; }); でもいいです。 ところでこのコード、見た目は同じなんですが、実は JSX だと JavaScript よりも5倍以上速く動くんです。まだ最適化があまいところがあるのに。 なぜか。JavaScript の Array#forEach は配

    JSX で Array#forEach が5倍以上速くなった話 - kazuhoのメモ置き場
    kamipo
    kamipo 2012/06/12
  • 「俺のこと好きでしょ?」と勘違いされがちな7つの言動

    勘違い男子ほどイタいものはありませんよね。見ていて泣きそうになります。特に何とも思っていない相手から「俺のこと好きでしょ?」「ごめん、××とはできないわ」などと意味の分からないことを言われると、何かを思いっきりぶつけたくなります。しかしそんな勘違い男子に、何かしら誤解を与えてしまったのはこちらの責任。勘違いされやすい言動をまとめました。 1、腕を引っ張るこちらとしては「こっちの店にしようよー」「ねぇ、早く来てー」という意味で、「ちょっとちょっと!」などと言葉を発しつつ、相手の腕を引っ張っているのですが、相当勘違いされます。10秒以上その状態をキープしているからでしょうか。3秒程度にとどめておけば大丈夫なのかも。 2、手をつなぐこちらとしては「最近男子と手をつないでないなー」と思ったとき、相手が手をつないできたから受け入れてみたというだけなのですが、これも勘違いを招きます。「お、これはイケる

    「俺のこと好きでしょ?」と勘違いされがちな7つの言動
    kamipo
    kamipo 2012/06/12
    どれもない
  • CVE-2012-2122: A Tragically Comedic Security Flaw in MySQL | Rapid7 Blog

    Last updated at Sat, 16 Dec 2023 17:27:00 GMT Introduction On Saturday afternoon Sergei Golubchik posted to the oss-sec mailing list about a recently patched security flaw CVE-2012-2122in the MySQL and MariaDB database servers. This flaw was rooted in an assumption that the memcmp() function would always return a value within the range -128 to 127 (signed character). On some platforms and with cer

    CVE-2012-2122: A Tragically Comedic Security Flaw in MySQL | Rapid7 Blog
    kamipo
    kamipo 2012/06/12
    "there is a 1 in 256 chance that ANY password would be accepted for authentication."
  • リージョンを固定する方法 at technote

    以前にも記載していたが、新たに切り出して 1 Tips としておく。 ec2-api-tools の各コマンドは特に設定をしていない場合では、アメリカ東海岸の Virginia リージョンがデフォルトで使用されてしまう。これを変更するには(知りえる範囲では)3つの方法がある。 すべてのコマンド実行時に General Option の -U (–url) で URL を指定 すべてのコマンド実行時に General Option の –region で REGION を指定 環境変数 EC2_URL に URL を指定 ちなみに現時点(2011/05/12)で使用できるリージョンと、上記で指定する URL/REGION は下記の通り。表記は AWS のページのまま。

    kamipo
    kamipo 2012/06/12
  • Macchiato - QDD test framwork for JavaScript

    CAUTION This project is under development now. Sorry to keep you waiting. Please see GitHub Milestones What's "Macchiato.js" ? Inspired by QuickCheck Macchiato is a testing framework for JavaScript, inspired by QuickCheck, a similar library for Haskell programs. QuickCheck is a library for random testing of program properties. The programmer provides a specification of the program, in the form of

    Macchiato - QDD test framwork for JavaScript
  • Amazon EC2 を使った無限IPアドレスの作り方 - ぼくはまちちゃん!

    こんにちはこんにちは!! たまにIPアドレスがたくさん必要な時ってありますよね。 ぼくも先日そういう機会があって、ちょっと困りました。 で、「AmazonさんならIPいっぱいもってるのでは?」ってことで、 ちまたで話題のクラウドサービス Amazon Web Servise を試してみました! あ、もちろんタイトルは煽りぎみで実際にはIPアドレスは有限なんですが>< 正直、クラウドとかサーバーとかよくわかってなかったんですが、 とりあえず試してみたら意外と簡単にできたので、忘れないようにメモしておきます! そうそう、Amazonのクラウドって高そうなイメージがあるけど、いまだと制限つきで無料らしいので、お得ですね! もし無料枠こえても、無茶な使い方をしない限りはそれほど高くない。と思います。たぶん。 制限を見る限り、とりあえず一ヶ月がっつり試すだけならタダです! 必要なもの: ・クレジット

    Amazon EC2 を使った無限IPアドレスの作り方 - ぼくはまちちゃん!
    kamipo
    kamipo 2012/06/12
  • 最速の疎ベクトルはどれだ - Preferred Networks Research & Development

    海野です。 自然言語処理などで機械学習を行おうとすると、非常に疎なベクトル表現を使いたくなります。疎、というのはほとんどの要素が0である、という意味です。前々から疎ベクトルライブラリのパフォーマンスに関して気になっていたので、幾つか調べてみました。 Jubatus Workshopでも話したとおり、機械学習を適用しようとすると、普通は対象のデータをベクトル表現に落とします。特に言語データの場合は、それぞれの単語や文字などを特徴次元とするため、非常に疎なベクトルとなってしまいます。純粋な配列(C++で言えばstd::vector)を使ってしまうと、大量にメモリをってしまうため疎ベクトル専用の表現を使うのが普通です。 今日は様々な疎ベクトルライブラリのパフォーマンス比較を行おうと思います。比較したライブラリは以下のとおり。真の意味で、疎ベクトルのライブラリは、Eigenとublasだけで、残

    最速の疎ベクトルはどれだ - Preferred Networks Research & Development
    kamipo
    kamipo 2012/06/12
  • モダン並列・並行プログラミング ~ Concurrent Revisions による実装と現実 ~ - Preferred Networks Research & Development

    日社内向けのTechTalkにて、並列・並行プログラミングに関する話を行いました。 昨今、プログラムの並列化はなくてはならないものとなっています。しかし、そのプログラミング環境は依然としてロックを用いたものが主流です。今回の発表の主張を端的に申し上げますと、 “Locks must go!” ということになります。並列プログラミングに銀の弾丸はありません。しかし、ロックは別の何らかの安全性を確保したプログラミングモデルで置き換えられなければいけません。そうでなければ、再現しにくいバグに苦しめられ、終電を逃す日々と決別することはできないでしょう。また、ロックによるプログラミングの抱える質的問題にも言及しています。 この界隈の最新の動向として、去年OOPSLA’10にて発表されたConcurrent Revisionsについての解説も行なっております。また、弊社研究開発において、先日Con

    モダン並列・並行プログラミング ~ Concurrent Revisions による実装と現実 ~ - Preferred Networks Research & Development
    kamipo
    kamipo 2012/06/12
  • STL風に使えるマップ型コンテナの紹介と性能比較 - Preferred Networks Research & Development

    最近スマートフォンに乗り換えました。徳永です。 C++は世に数あるプログラミング言語の中では比較的メモリをわない方ですが、それでもメモリ使用量が問題となる場合はあります。そのような場合の対処方法はいくつか有りますが、手軽に選択できる方法として、今日はSTLのmapやunordered_mapと同じ感じで使えるデータ構造をいくつか紹介したい思います。 以下、計算量の表記をする際には、要素数をnとします。 Loki::AssocVector LokiはModern C++ Designというの作者であるAndrei Alexandrescuが開発したライブラリです。AssocVectorはその中の一つとして提供されているクラスで、vector<pair<key, value> >という型のベクターをkeyでソートした状態で持つ事により、二分探索による要素の探索を可能にしたデータ構造です。こ

    kamipo
    kamipo 2012/06/12
  • dag_vector: ランダムアクセス可能な圧縮配列 - Preferred Networks Research & Development

    こんにちは、この夏はシルキードライで乗り切りたい岡野原です。 今日は最近公開したC++のオープンソースであるdag vectorについて紹介します。 github: dag_vector ライセンスは修正BSDライセンスです。 dag vector (direct accessible gamma code vector) は値を圧縮して格納したまま任意の場所の値を高速に参照可能な配列ライブラリです。しかもデータ末尾への追記が可能です。 dag vectorはstd::vectorのように利用できます。下にいくつか例を見ていきましょう。 dag_vectorの例 #include "dag_vector.hpp" // dag_vectorは0以上の正整数の配列を扱う配列。 dag_vector dv; // 値はいつでも追加可能。追加された値は圧縮して格納される // 正整数xは2lg(

    dag_vector: ランダムアクセス可能な圧縮配列 - Preferred Networks Research & Development
    kamipo
    kamipo 2012/06/12
  • イノベーションの方法としてのデザイン思考

    6月9日に開催したワークショップ「未来のユーザー要求を創出する方法としてのデザイン思考」の講義資料。 イノベーションの方法としてデザイン思考を捉える上で、キーとなるメンタルモデルの創出とそのために必要な観察(オブザベーション)を中心に話をしました。この講義のあと、実際に行動観察を体験するセッションを行ないました。 詳しくは、以下のブログ記事を参照ください。 メンタルモデルと観察:http://www.coprosystem.co.jp/marketingblog/2012/06/11.htmlRead less

    イノベーションの方法としてのデザイン思考
    kamipo
    kamipo 2012/06/12
  • JSX の進化速度が半端ない - ぐるぐる~

    気に入らない所を直して pull request 投げたら、取り入れられたので、8 日前に書いたエントリが過去のものとなっちゃいました。 関数型 以前の JSX では、関数型は function(: int): string のように書く必要がありました。 これはこれでそのまま使えるのですが、新たに (int) -> string という形式にも対応しました。 ちなみに、複数引数はカンマ区切りで (int, boolean) -> string のようになります。 カリー化された関数は、 function(: int): function(: number): string の代わりに (int) -> (number) -> string と書けます。 引数を囲むカッコは、(今のところ) 省略不可能です。 これには 2 つの理由があります。 この機能を追加したとき、JSX のパーサの能力

    JSX の進化速度が半端ない - ぐるぐる~
    kamipo
    kamipo 2012/06/12
  • 目からビーム画像ジェネレーター

    説明 顔ラボ 顔検出WebAPI を使って画像から顔、目を検出し、自動でビームを合成した画像を生成します。 顔を検出できなかったら何もしません。あとAPIの利用回数制限により顔認識が成功しないことがあるようです。ご了承ください。 作る ・画像URLを指定して作る

    kamipo
    kamipo 2012/06/12
  • VarnishでPOST・COOKIE・GETを扱うためのVMODを作ってみた(vmod-parsereq) – cat /dev/random > /dev/null &

    この前のエントリでPOSTを扱うVMODを作ってみたというのを上げたのですが あの後、使ってくれた人とかからインタフェース変えるとイイヨーイイヨーと言われたので req.http.*に格納するのではなくvmod_curlのように良い感じに使いやすくしてみました。 それだけじゃつまらないということで、おまけでGETとCOOKIEに対応してみました。 今回の特徴は以下です。 ・application/x-www-form-urlencodedとmultipart/form-data両方に対応 ・GET・POST・COOKIEに対応 ・格納されているキーの一覧を取得することができます。 インラインCと併用することですべてのGET・POST・COOKIEのキーに対して特定の値 (攻撃っぽいコードなど)が含まれているかなどのチェックが容易です 使い方はこんな感じです。 たとえばPOSTでhogeとい