経緯 id:kazuhooku さんが一年前にやってたことですが Kazuho@Cybozu Labs: JavaScript/1.7 で協調的マルチスレッド 今日やっと挙動が理解できたのと、 Weave のソースを読んでいたらこのテクニックをバリバリ使っていて「ちょwwおまwww」ってなったので、自分でも作ってみようと思いました。 ほとんど id:kazuhooku さんのと同じものなので、既出です><本当にありがとうございました>< まず、 yield とは何か yield とは、 JavaScript 1.7 から導入された機能です。 以下に yield の細かい挙動を示しておきます。 function f() { // なんかの処理 yield; // ... (1) // なんかの処理 yield; // ... (2) // なんかの処理 } var g = f(); // こ
Firefox 3とFirebugで始めるJavaScript開発 第2回Firebugによるデバッグの基本、Console APIとその活用 さて、前回はインストールからFirebugのタブの基本的な部分について紹介をしてきました。今回は、Firebugに実装されているConsole APIの紹介と、Console APIを利用したデバッグ手法について解説していきます。 Firebugで利用できるAPI Firebugには、デバッグに活用できる2つのAPIが実装されています。今回は、その2つあるAPIのうちConsole APIについて解説していきます。 Console API Console APIはFirebugのタブだけでなく、コンテンツ側のJavaScriptから呼び出すことのできるAPIです。デバッグのために便利な関数があらかじめたくさん用意されています。これらの関数を以下
未だに半年前のエントリにブクマされるみたいなので、もう少しjavascriptについて書いてみる。 今回は大規模化開発におけるJavascriptの注意点とかそういうの。当てはまらない環境の方もいます。(しかも基本的な事だらけで大したことは書いてないです) ほぼリッチクライアントを主目的としたjavascripterとコードを対象とします。 どちらかというと、ライブラリを提供する側の視点から 1.ログを出力せよ あなたが書いたコードは遅い、と必ず言われます。なので言われる前から、自分の書いたコードの処理時間をログするようにしましょう。 次のような処理時間を計測するロガーを作ります。 var TraceLog = function (){ this.startTime = -1; var outer = document.getElementById('_outer'); if(oute
わりといい加減だった型判定について、確認の意味も込めてここに。 今後のためにも、頭の中を整理してみる。 型の判定に良く使用するもの === typeof instanceof constructor それぞれに利点があり、状況によって使い分けることになるが、処理速度は上記の順の通り、『===』が最も速い。 つまり、『===』<『typeof』<『instanceof』<『constructor』 下図はFirebugで計測した結果です。環境によって数値は変わると思われ、参考値としてご覧下さい。 100万回 for loopで回した処理に掛った時間 ※『*constructor』は後に説明します。 一部、扱う型によって処理速度に差が見られた。 その二つの例外を以下に説明します。 存在しない変数を参照した場合の『undefined』についてvar a; alert(typeof a); 通常は
Functional is a library for functional programming in JavaScript. It defines the standard higher-order functions such as map, reduce (aka foldl), and select (aka filter). It also defines functions such as curry, rcurry, and partial for partial function application; and compose, guard, and until for function-level programming. And all these functions accept strings, such as 'x -> x+1', 'x+1', or '+
ついぞ最近node.jsなんてのがでて、繁華街のあちこちでチヤホヤされてる。そんなときに、モヒカン族Erlang村(erlang-questions)に「node.jsってどうなの?」的燃料が投下されたわけですよ。これは炎上しそうだ…と追いかけてたら、ネタどころか案外真面目なハナシばっかりだったのですが。まずは真面目に問いかけをする純朴な成年(想像)。 「Erlang好きだし使ってるんだけど、Erlangとnode.jsてそれぞれどういうジャンルがすごいの?RabbitMQとかejabberdみたいなのつくろうとしたらどうなるの?簡単なチャットサーバーつくるくらうならnode.jsのが断然簡単だよね?分散システムで使うなら断然違うとか? Ulf Wigerによると、ブロックする関数の問題を簡単に解決してくれるとか書いてあるみたいだけど (link)」 おっお。素直な質問。これはみんな釣られ
数値文字参照変換スクリプト Javascriptの使える環境で、変換したい文字をテキストエリア(入力)に記述し、10進数のhtml数値文字参照に変換したいのであれば10進数のhtml数値文字参照とかかれたボタンを、16進数のhtml数値文字参照に変換したいのであれば16進数のhtml数値文字参照と書かれたボタンを押下して下さい。例えば"文字参照"を変換したとすると10進数の場合で"文字参照"という文字列が下のテキストエリア(結果)に出力されます。 数値文字参照変換 変換したい文字列を入れて下さい入力 改行も変換 このエリアに結果が出ます結果 変換したい文字が見つからない場合は65535文字コード表(ファイルサイズ600k)で探してみてください。 JavaScriptを利用できない環境では変換は出来ません。 出力されたコード片は中身を#PCDATA、RPCDATAをとして扱う要素、属性値内に
The jsbn library is a fast, portable implementation of large-number math in pure JavaScript, enabling public-key crypto and other applications on desktop and mobile browsers. Demos RSA Encryption Demo - simple RSA encryption of a string with a public key RSA Cryptography Demo - more complete demo of RSA encryption, decryption, and key generation ECDH Key Agreement Demo - Diffie-Hellman key agreeme
m'' uses secret p and q to be faster. P=c^d mod p Q=c^d mod q m''=((Q-P)*(p^-1) mod q)*p+P The library allows addition, subtraction, multiplication, division, exponentiation, and inverses modulo an arbitrary number. It has the extended Euclid algorithm, and can convert between bases up to base 95. It generates true prime numbers rather than probable primes. For Internet Explorer on a 1.8 GHz WinXP
標題について、あいまいだったけど、最近さらに混乱してきたので、人力検索にでも聞くべきか、とおもって調べたら、こんなのがあった。 http://q.hatena.ne.jp/1210679294 GPLライセンスについて質問です。 あるGPLライセンスの"JavaScriptライブラリ"を使ってASPサービスを作成しようと考えています。 この場合、「組み込んだシステム」としてサーバサイドのシステムのソースの公開義務は発生するのでしょうか? それともJavaScriptライブラリはソースの公開を実現しているのでサーバサイドのシステムのソースは関係ないのでしょうか? だが、今回疑問に思ったのはこれとは違う。サーバサイドが公開義務がないのはまあいいとして、クライアントでライブラリとして利用するJavaScriptはどうするの、という話を聞きたい。なので投げるとしたらこう。 オープンソースライセンス
GitHub - ofk/xcssjs デモ(オリジナルはCSSでアイコンをデザイン - Hail2uのDesign icon with CSS) デモの結果はオリジナルと同じでよく分からないかもしれませんが、CSSが違います。xcss.jsを読み込むとベンダープリフィックスは記述不要です。 つまり、どういうことかというと .rotate10 { transform: rotate(-10deg); } とCSSで書いておき、xcss.jsを読み込むと、 .rotate10 { -moz-transform: rotate(-10deg); -webkit-transform: rotate(-10deg); -o-transform: rotate(-10deg); -ms-transform: rotate(-10deg); } というCSSを動的に追加するライブラリです(実際はブラウ
JavaScriptでの数値はIEEE754で規定されている倍精度型doubleです。符号部が1ビット、仮数部が52ビット、指数部が11ビットの64ビットで表現される浮動小数です。この辺りは、計算機の初歩の初歩で、当たり前すぎて普段は気にすることはないと思いますが、その境界値や特殊系について調べるといろいろ面白いことがわかります。ここでは、JavaScriptを例にしていますが、内容は一般的なもので、IEEE754の浮動小数入門的な話です。 では問題です。 整数として正確に表現できる最大の値はいくつか? 正確に表現できるというのは、n + 1 が確かに n + 1になることとします。n が非常に大きいときには、n + 1 は桁落ちが発生するので n のままです。考える前に実際にやってみましょう。探す n は 0 から 1e+100 の間にあるのは明らかなので、2分法で探索してみます。 fu
最近CoffeeScript界隈のブロゴスフィア(死語)を賑わせていた「CoffeeScriptを使うべきか、使わざるべきか?」という話題についてまとめてみた。 以下の記事紹介は超訳かつ要約なので詳しく知りたい人は元記事を参照のこと。 ことの発端はこの記事。 SnackJSの作者がCoffeeScriptをディスる。 A Case Against Using CoffeeScript by Ryan Florence デバッグの問題 CoffeeScriptが生成するJavaScriptはきちんとしているけど、結局は自分が書いたコードじゃないため読みにくい。自分で直接書いたほうが見やすい。 それにCoffeeScriptをデバッグするワークフローは大変だ。 まず問題がJavaScript内のどこで発生したのかを突き止める(CoffeeScriptのコードと行単位で対応してないから大変だ)
2012年08月13日06:00 カテゴリLightweight LanguagesTips javascript - hanzenkaku.js で半角全角処理 まあ車輪の再発明もいいところなのですが、車軸に合う車輪が見つからなかったということで。 dankogai/js-hanzenkaku DEMO まずは実際にお試しを。 全角: 半角: 全methodは以下のとおり。textarea内でいろいろと書き換えてみてください。 /* Functinal */ p( HanZenKaku.h2z('コガイダン') ); p( HanZenKaku.z2h('コガイダン') ); p( HanZenKaku.hw2fw('dankogai') ); p( HanZenKaku.fw2hw('dankogai') ); p( HanZenKaku.fs2hs('a space') ); p
JSDuckを利用してみる。 FaceBookで@martini3ozさんがシェアしてて ググったら@kotsutsumiさんがTwitterで 質問に答えてて、 結果、こちらにお世話になりました。 さて何からすればいいのか。という取っ掛かりの部分、 とても助かりました。ありがとうございました。 チュートリアルを実施してみたので ちょっと残しておきます。 目指すゴール 左にメニューがあって 内容が切り替わる。と、 で、内容は都度MarkDownで作成できて任意に増やせればOK。 インストール $ sudo gem install jsduck ヘルプを見てみる。–helpで引いたら=fullつければ全て見れるってから全て見てみた。 $ jsduck --help=full 12-06-18 Usage: jsduck [options] files/dirs... -o, --output
Web において使われる URI(URL)には様々な情報が埋め込まれるが、その埋め込みの際にはエスケープ(パーセントエンコード)が行われる。埋め込まれた情報は取り出されるときにアンエスケープ(パーセントデコード)される。 たとえば、四則演算を行う電卓の Web アプリケーションを考える。この電卓は HTML の form でユーザに式の入力を求め、式が入力されてサーバに送られたらその結果を表示する。ここで、式は "http://calc.example.org?q=式" というような URI にブラウザがアクセスすることによって、サーバに送られるものとする。この形式は HTML の form で用いられる application/x-www-form-urlencoded という形式であり、HTML の規格で定義される。この場合、"1+1" という式を URI に埋め込むには "+" とい
google-cajaプロジェクトは、Ajaxを多用するようなクロスドメインなサイトのセキュリティの問題を解決するためのライブラリを開発しているプロジェクトです。 OpenSocialエンジンであるApache-Shindigにも含まれて居ます。どちらかというと派生プロジェクト? サニタイズの処理を整理するにあたって、自分でコーディングするのはバグの元なので、cajaプロジェクトのhtml-sanitizer.jsを利用を検討してみることにします。 cajaプロジェクトはソースコードのみ配布されていますので、SVNリポジトリからチェックアウトします。 $ svn checkout http://google-caja.googlecode.com/svn/trunk/ html-sanitizer-minified.jsを生成するためにantを実行します。 $ ant MinifiedJs
モバイルゲーム 物凄い勢いで勃興したモバイルゲーム業界は、いろいろな課題や問題に直面しながらも巨大化し、今日の時点でのスマートフォン向けゲームの市場へと継承されていきます。 モバイルゲームの歴史 2001 Javaアプリと3Dゲームの登場 Javaが利用できるようになったことにより、ダウンロード型のゲームが供給できるようになりました。 2002 携帯電話端末の大容量化・3D化競争 Java搭載携帯電話端末が登場してからごく僅か1年の間に、アプリのサイズに関しては10倍に広大化し、表現方法も2Dから3Dにシフトし始めました。J-PHONEは『ゼビウス』や『スペースハリアー』などといった昔のアーケードゲームを、ドコモはSIMCITYなどパソコンで世界的規模のヒットを飛ばしたゲームを主力商品としていました。 2003 モバイルゲームの一般化 メモリの制限が厳しいJava仮想マシン上ではなく、OS
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く