第7回Node.jsアプリケーションをWindow Azureで動かす 高橋俊光 2012-11-27
JavaScript でアニメーションを作る アニメーションとは何? ビューを少しずつ回転、拡大縮小、移動、変色などを行い、連続的な動きを作る こんな感じ <div id="view">hoge</div> <script> var el = document.getElementById('view'); el.style.opacity = 1; setInterval(function() { el.style.opacity -= 0.01; }, 10); </script> なんで、あんな感じの書き方になるの? setInterval の意味が分からない こんな感じで書けないの? <div id="view">hoge</div> <script> var el = document.getElementById('view'); el.style.opacity = 1; w
Home Subscribe var obj = { name : 'pikachu', say : function(){ alert('I am ' + this.name); } } setTimeout(obj.say, 1000); // => 'I am'とだけ表示される。 これは期待通りに動いてくれません。 コールバックとしてメソッドを渡した場合、それはオブジェクトと切り離された単なる関数(メソッドではない)となってしまうのです。 つまり下記と等価なのです。 setTimeout( function(){alert('I am ' + this.name);} , 1000); 関数がオブジェクトと切り離されているため、このthisはグローバルオブジェクト(windowオブジェクト)を指してしまっており、'I am'とだけ表示されます。 ではどうすればよいでしょうか? bin
screenfull.js demo コンテンツをフルスクリーン表示にする際に便利なJSライブラリ「screenfull.js」 FullScreen API のクロスブラウザで動作するラッパーライブラリです。 例えば、ページ内に画像や動画があったとしてクリックするとフルスクリーンで楽しめる、的な使い方ができます。 screenfull.request( $('#container')[0] ); のように、screenfull.requrest( element ) でフルスクリーンが開始されます。 フルスクリーン化 フルスクリーンした後のイベントハンドラなんかも設定できるみたい。 関連エントリ フルスクリーン背景がスライドショーになるCSS3サンプル フルスクリーンでぼかしがカッコいいHTML5ギャラリーを作るサンプル 1見の価値あり!なフルスクリーンWEBサイトのまとめ
Twitterのタイムラインを取得するJavascriptを書いてみました。 先人が飽きるほど通ってきた道ですが、書き方には様々な方法が有るとは思うので、共有します。 http://yohawing.com/exp/TwitterApiTest.html フォームに見たい人のTwitterIDを入れると、その人のTLが読み込まれます。 <!DOCTYPE html> <html> <head> <title></title> <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″> <script src=”jquery.js”></script> <script> //グローバル変数の指定 account = “Gniwahoy”; //アカウント名 twapi = “https://ap
UIWebViewを使ってHTMLを表示するだけの簡単なアプリで、jQueryを使おうとしたらなぜか動かなかった。結論から言うと、プロジェクトにJavaScriptのファイルを追加した際に、XCodeにコンパイルの対象として認識されていて、アプリ内へのコピーが行われていないせい。下のCopy Bundle Resourceへ移動する必要がある。
増井さんの作りたいものリストを作ろうというスライドを見て「確かに『いつかやる』リストに入れてるだけじゃ発展しないから、公開しても問題ないものは公開したらいいなぁ」と思ったので早速やってみました。3つ目。 JavaScriptのコードの質を保つためのガードレール JavaScriptは柔らかい言語で、typoとか変数名の変え忘れが実行時までエラーにならない。しかもしれっとundefinedとかになって、そのままHTMLやSVGのpath文字列に埋め込まれてたりしてデバッグにコストが掛かってしまう。人間は間違える生き物だから、間違いをなくすことはできない。だから間違えた時になるべく早く気づけるようにする仕組みが必要だ。 Google Closure CompilerはJavaScriptのソースコードを静的に検証してエラーを報告してくれる。であれば自分がソースコードを編集している時にバックグラ
↓動作サンプルを作りました 文字コード変換 動作サンプル Unicode の変換が可能になりました。 文字コード配列から URLエンコード/デコード が可能になりました。 あと説明とサンプルも少し載せました。。(説明不足でごめんなさい) こないだの 「JavaScriptだけでzipファイルの解凍 - Unzipper.js」が SJIS ファイルとかだと表示で文字化けするので、ついつい。。 動作確認は、zip ファイル解凍のデモページでわかると思います。 zip の中に SJIS や EUC-JP のファイル (ファイル名) がある場合でも UTF-8 表示で化けなければ問題なしです。 zip 解凍デモページ ↑のデモページを開いて、デスクトップなどから zip ファイルをドロップすると 解凍して結果のテキストを表示します。 ※ JavaScript だけで動いていて、どっかのサーバなど
JavaScript圧縮・難読化の定番ツール「/packer/」を紹介します。直感的で動作も軽量です。 /packer/ 「定番」と書いた理由は、はてなブックマークでブレイクこそしていないものの、コンスタントにブクマされているためです(2012年4月22日現在で310ブックマーク)。 使い方は、圧縮・難読化したいソースコードを上のテキストエリアにペーストして、「Pack」をクリックするだけです。 圧縮・難読化されました。 圧縮率は下のテキストエリアの右下に表示されます。 オプションは「Base62 encode(英数字のみのエンコード)」と「Shrink variables(変数名の圧縮)」の2つが用意されています。このオプションを利用しないと空白・改行を除去するだけの動作になるので、圧縮率を上げたい場合はオプションを利用しましょう。 jQuery1.7.2.js(262285バイト)で2
問題 これ、なんですか。この、にょろにょろ。 var y = ~~(x/2); 答え ビット否定演算子(Bitwise NOT Operator)を2つ~~使うと、小数の切り捨てができる。 >>> ~~(0.8) 0 >>> ~~(1) 1 >>> ~~(1.2) 1 >>> ~~(1.5) 1 >>> ~~(1.9) 1 >>> ~~(123.456) 123 便利なのが、0へ向かって切り捨ててくれるところ(絶対値で切り捨て)。 >>> ~~(-123.456) -123 >>> ~~(-456.789) -456 素直に正負を見て関数を使い分けるとこうなるところ。長くて嫌になりますね。 //xが数値の前提で x = (x > 0) ? Math.floor(x) : Math.ceil(x); それが、~~なら、ほら!このとおり。 //xは何でもいいですよ♪ x = ~~x; 括弧をつ
http://www.meteor.com/ で公開された Meteor.js を少し触ってみました。TechCrunch なんかでも話題になっていましたね。 Meteor.js は JavaScript によるウェブアプリケーションフレームワークですが、クライアントサイドでもサーバーサイドでもない、"Isomorphic" なフレームワークです。 コンセプトとしていくつか特徴があるのですが、その最たるものは "Reactive Programming" で、モデルやセッションなどのストレージを更新するとその更新内容がリアルタイムに、そのアプリケーションを開いている全クライアントに伝わるようなアプリケーションを簡単に作ることができます。 この辺は実例を見るのが早いです。 http://www.meteor.com/examples/leaderboard ここにある動画では、あるブラウザで
はじめに 本連載では、注目を集めるNode.jsを使って、Webアプリケーションを様々なクラウド環境で動かすことを最終目的にしています。Node.jsに触れたことがないJavaやPHPなど普段サーバサイドで開発されている方を主な対象として、まずNode.jsの概要から紹介していきます。 Node.jsとは Node.jsとは、ブラウザGoogle Chrome用に開発されたJavaScriptエンジンV8がサーバ上でプログラムを実行できるように、ファイルやネットワークI/Oなど多くの機能を追加したものです。軽量で効率よく多くのリクエストを処理するネットワークアプリケーションの構築ができるプラットフォームになっています。いわゆるサーバサイドJavaScriptの代名詞として注目を集めています。 Node.jsでは“軽量で効率良く”というのを実現するために次の2つのモデルを採用しています。
「Meteor」は、JavaScript/HTMLで開発するリアルタイムWebアプリケーション基盤。何が起きているのかすぐに分からないほどすごい 「Meteor」は、Webアプリケーションを開発するためのフレームワークと実行環境を提供しています。アプリケーションはすべてJavaScript、HTML、CSSで記述できるため、サーバ側でRubyやPerlやJavaなどのプログラミングをする必要はありません。 TechCrunchの記事では、JavaScript/HTML/CSSだけでWebアプリケーションが開発できる点にフォーカスが当たり話題になりましたが、公開されたデモンストレーションのスクリーンキャストを見たところ、Meteorにはそれ以上に新しい仕掛けが盛り込まれていました(スクリーンキャストはこの記事の末尾に埋め込んであります)。 それは「リアルタイムなWebアプリケーションを構築す
envisionはHTML5/JavaScriptによるグラフライブラリです。ファイナンス系グラフ、フラクタルグラフを描けます。 HTML5/JavaScriptを使った高度なグラフライブラリとしてenvisionを紹介します。一般的なグラフというよりも、ファイナンス系のグラフ描画が得意なようです。 リアルタイムグラフ。刻々とグラフが追記されていきます。 タイムシリーズ。指定範囲だけを拡大できます。 こんな感じでマウスで幅を広げたりできます。 ファイナンス。株価、出来高といった指標を表示するのに使えます。 こちらも幅を変更できます。 中央をドラッグすれば左右への移動も可能です。 マウスでポイントにおける数値を表示できます。Ajaxによるデータ変更もサポートしています。 幅の変更ももちろん可能です。 フラクタル画像です。 マウスで範囲を指定して拡大できます。 envisionはHTML5のラ
指摘事項A中の(a)は、他を見なくても「セキュア」属性だと分かりますね。徳丸本(体系的に学ぶ 安全なWebアプリケーションの作り方)では、4.8.2クッキーのセキュア属性不備(P209)に説明があります。 指摘事項Bは、ここだけ読むと、XSSのようでもあり、サーバーサイドのスクリプトインジェクションのようでもありますが、検査ログからXSSであることがわかります(下図はIPAからの引用)。XSSは、徳丸本4.3.1クロスサイトスクリプティング(基本編)と4.3.2クロスサイトスクリプティング(発展編)にて説明しています。 ここまでは、ごく基本的な問題ですが、問題文P6に出てくる以下の部分は、少しだけひねってますね。 このプログラムは、利用者が入力した文字列をダイアログに表示するために、受け取ったパラメタの値をスクリプトに埋め込み、動的にスクリプトを生成する。図4の( c )行目では
もうJavaもRubyも要らない?–JavaScriptオンリーの未来派WebアプリフレームワークMeteorがデビューという記事で知った、新しいフレームワークMeteor。 ちょっと気になったので、軽く触ってみました。すごすぎるフレームワークの登場です!! 正確に言うと、実行環境&フレームワーク&クラウドPaaS&パッケージマネージャーといったところでしょうか。Node.jsとHerokuとnpmが一緒になったようなもんだと思えば、イメージがわくと思いますが、実態はそれらを上回っています(パッケージ数はnpmの比じゃありませんが・・・使い勝手という意味で)。 インストール ターミナルをたちあげて、以下のコマンドを実行するだけ。 (行頭の$はターミナルであることを表してるだけで、コマンドの一部じゃありません) $ curl install.meteor.com | sh これで /usr/
またまた前回に引き続き CoffeeScript についてのエントリーです. 今回は以前書いた『JavaScript 入門 基礎編』で作ったサンプル 10 個を CoffeeScript で作り直してみました. CoffeeScript 版も JavaScript 版も, 全て jsdo.it にアップしているので コードを見比べてみると面白いかもしれません. { } } }{ { { }{ } } _____ __ __ }{ }{ { ) / ____| / _|/ _| .- { { } { }} -. | | ___ | |_| |_ ___ ___ ( ( } { } { } } ) | | / _ \| _| _/ _ \/ _ \ |`-..________ ..-'| | |___| (_) | | | || __/ __/ | | \_____\___/|_| |_| \
Vimが他のエディタに比べて劣ると思われている一つに、ノーマルモードとインサートモードの行き来にオーバーヘッドがあるのでは無いかという主張。カーソルキー使ってる人は、ぜひこれでjkjkの練習でもして下さい。 まぁ確かに、移動する為にはノーマルモードに戻らなければならないし、例えば <script>_</script> で _ にカーソルが合った場合、改行すると <script> _</script> こうなってしまう。本来ここにjavascriptのコードを書こうと思ったら <script> _ </script> こうなるのが正しい訳で、この形にしようと思うと 改行 もう一度改行 ノーマルモードに戻ってkで上に行ってiでインサートモード というまどろっこしい操作が必要になったりする。運よく僕は <c-e> に何も割り当ててなかったのでこんなのを追加してみた。 inoremap <c-e>
偶然見つけたmeteorというjsフレームワークがなんだかすごい。 ※昔からあるCometのmeteorとは違います デモビデオを見て驚いたのが、DBを更新すると(直接MongoDBコマンドでInsertすると)全てのユーザ画面に自動的に反映できること。 ホットコードプッシュと呼ばれる機能もあり、ソースコードを更新すると、自動的にユーザの画面を最新の状態に再表示する。 (ホットコードプッシュは驚いたけど、ユーザ入力画面などで途中で表示更新されるとどうなんだろうという気もする) もっと知りたい方は、ここにあるビデオを参照ください。リアルタイム同期がよく分かります。 http://meteor.com/screencast UbuntuかRedhat系のLinuxであればインストールコマンド一発で入ります。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く