タグ

ブックマーク / blog.uu59.org (7)

  • http://blog.uu59.org/2013-10-20-grunt-endless-task.html

    yuiseki
    yuiseki 2014/02/13
  • uu59のメモ | Angular JSをSinatraと使ってJasmineでテストするまで

    Backbone.jsは触ったことがあったので、次は違うのに手を出してみようと思ってたらタイミングよくAngular JS 1.0リリースのニュースを見つけたのでちょいちょい触っていました。 主観的かつ大雑把な感想をいうと、Backbone.jsはプレーンなHTMLに対してイベントやコントローラをがしがしくっつけてずっとJavaScriptワールドで作業するのに対し、Angular JSはHTMLに独自属性を付与してDOMをそれぞれ独立したコンポーネントとみなしていろいろする感じです。 サンプルで必ず出てくる<div ng-app="hoge"></div>のng-appについてですが、ngというのがAngularのnamespaceでappが具体的なモジュール(ディレクティブ)です。以下のようにして自由に定義できます。 angular.module('hoge.directives').

  • uu59のメモ | 安全なウェブサーフィンのしかた

    一度ガチな人が「安全なウェブサーフィンの仕方」みたいな文章を書いて誰も真似できないような感じの内容になってブラウザベースの攻撃だけで可能な程度のことで逮捕されるのは理不尽だという世論が確立すると良いと思う— malaさん (@bulkneets) 11月 20, 2012 安全なウェブブラウジングとはどのようなものでしょうか。ここでいう「安全」には2つの意味があります。 ウェブブラウジングによって、自分が所有するリソース(顔や声なども含む)が意図しない破壊・窃盗・改竄・漏洩に遭わないこと 警察に誤認逮捕されることで社会的な立場などを毀損されないこと このうち1については一般にセキュリティと呼ばれ、様々な対抗策が世に広まっています。しかし過日、CSRFトラップを踏んだだけで警察に身柄を拘束され自白を強要させられる事案が神奈川県にて発生し、1の意味での安全だけではもはや不十分だという認識が広ま

    yuiseki
    yuiseki 2012/11/23
  • uu59のメモ | vimのマクロ機能を使ってCSVを数秒でHTMLにする

    めんどうな作業がわずか数秒に!新人デザイナーが 知らないと一生後悔するExcelを使ったHTML生成 | Webロケッツマガジン Big Sky :: めんどうな作業がわずか数十秒に!新人プログラマが知らないと一生後悔するVimを使ったHTML生成 マクロを多用する派なのでマクロを使った編集を紹介します。 名前 値 Foo foo Bar bar Baz baz まずこの元データをvimにペーストしたあと、ノーマルモードでgg0と入力し1行1列に移動します。 次にqaを押下します。qでマクロの記録開始、aで保存先にaレジスタを指定しています。 そこからは普通に編集していきます。具体的にはI<tr><td><C-[>f<Tab>s</td><td><C-[>A</td></tr><C-[>です。trやtdの後に改行やインデントを入れてもいいです。 そうするとテキストが <tr><td>名前<

    yuiseki
    yuiseki 2011/12/24
  • 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

  • uu59のメモ | Node.jsの癌騒動まとめ

    承前 まずNode.js is CancerでTedさんは以下の3点を問題視しました。 ブロックしないから速いとかプログラマは未熟でもいけるとかスケーラビリティとか全部大嘘だろう システム管理者にやさしくないアーキテクチャ JavaScript製 あまりに感情的で論点が曖昧なこの記事に、多くの人がtrollingだと指摘しつつも色々と論を展開しました。 2日後に出たTed人によるフォロー記事では主に1点目について掘り下げています。 まず数学を使ってイベントモデルとスレッドモデルのそれぞれのスループットについて考察していきます。数式や変数展開の説明をしていくと長いので要点だけまとめると以下のようになります。 スレッドの実行数を増やせばCPU-boundなときはもちろんI/O-boundなときでもスループットを伸ばせる 理論的にはイベントモデルでもスレッドモデルでもスループットの最大値(=限

    yuiseki
    yuiseki 2011/10/11
  • uu59のメモ | Sinatra 1.3で追加されたstreamのHTTP解剖学

    注:rack 1.3.3以前だと落ちます。rack 1.3.4以上にアップデートしましょう。 Sinatra 1.3でstreamヘルパーが追加された。 require "rubygems" require "sinatra" get '/' do stream do |out| out << "It's gonna be legen -\n" sleep 0.5 out << " (wait for it) \n" sleep 1 out << "- dary!\n" end end get '/normal' do sleep 1.2 "normally response" end 全部の処理が終わるまで待って一気にレスポンスを返すのではなく、out << "string"のように逐次レスポンスを返す。なお、これの実装はRails 3.1で追加されたものやPHPのデフォルトの挙動、Tw

  • 1