JS1k 2012 demo — "Speech Synthesizer" by Mathieu 'p01' Henri 1K JavaScript Speech Synthesizer
JS1k 2012 demo — "Speech Synthesizer" by Mathieu 'p01' Henri 1K JavaScript Speech Synthesizer
面白そうなのでつくった http://mohayonao.herokuapp.com/mimi 詳細 目grep入門 +解説 http://www.slideshare.net/murachue/grep-8132856 目grep、舌grep、耳grep - Togetter http://togetter.com/li/266103 やったこと ドラッグ&ドロップしたファイルを File API で読む File.slice を使えば分割読み込みができる(ただし、webkit, moz プレフィックスが必要) 128バイトずつ読み込んで波形テーブルに変換したのを再生 途中で疲れた やってないこと grep
JavaScript Performance MythBusters™ (via jsPerf) SXSW 2012
Particles morph - WebGL(html5) Played around with the data from the pixel particles with WebGL. Should be 85000 of them here. Done using three.js. Note. You need a modern browser that supports WebGL for this to run the way it is intended. For example. Google Chrome 9+ or Firefox 4+. (If you are already using one of those browsers and it's still not running, it's possible that you have old blacklis
http://wiki.ecmascript.org/doku.php?id=conventions:safe_meta_programming にて大変有用な書き方を身に着けた。 Function.prototype.bindとFunction.prototype.callの黒魔術的なもの。 obj.hasOwnProperty("prop"); と書くところをcallで書くと var func = Object.prototype.hasOwnProperty; func.call(obj, "prop"); と書ける。さらにcallをbindしてみると var func2 = func.call.bind(func); func2(obj, "prop"); となる。さらに、bindをbindすると var func3 = func.bind.bind(func.call)(func
digraph testgraph{ {node[shape=none, fontsize=23] "Welcome to Liviz.js!" } {node[shape=none] "Interactive GraphViz on your browser" } {edge[color=transparent] "Welcome to Liviz.js!" -> "Interactive GraphViz on your browser" } A -> B -> C -> D -> E; B -> D; {node[shape=box]; 1 -> 2 -> 3; } E -> 1;2 -> C; {rank=same; 1; A;} {rank=same; 3; D;} } Test
JavaScript Advent Calendar 2011 (オレ標準コース)4日目の id:oogatta です。どうもどうも、いやどうも。 最近丁度 ES Wiki を眺めていて、面白いことになってるなあ。変態的なことになってるなあ。と楽しく見ていた OOP パラダイム周りのいくつかの手法(定義、継承、 mixin 、 trait )について、 ES.next または Harmony で議論されているものをご一緒に調べながらご紹介したいと思います。 ECMAScript3 さて、復習としてまずは ES3 での OOP パラダイムの実装についてですが、これはもう Dmitry 先生の ECMA-262-3 in detail. Chapter 7.1. OOP: The general theory. を読んでくださいというか、気持ちよく丸投げしたいところですが、翻訳すると言ってまだ
Contracts.coffee is a dialect of CoffeeScript with built-in support for contracts. It is inspired by the contract system found in Racket. Contracts let you clearly—even beautifully—express how your code behaves, and free you from writing tons of boilerplate, defensive code. You can think of contracts as assert on steroids. Basics Here’s a simple example of a contract on a function: This says that
Audiolet is a JavaScript library for real-time audio synthesis and composition. Audiolet is awesome. It uses graph based routing and has lots of generators and effects and a sample-accurate scheduler and it supports sub-patches and pattern based composition and feedback routing and microtonal tunings and lots of other cool stuff. Audiolet is simple. This is all you need to start making noise: var
WebWorkersで別タブ選択中もきっちり動く無敵タイマーをつくる - つまみ食う http://d.hatena.ne.jp/mohayonao/20111108/1320756534 先日書いたこのエントリーで、別タブを選択したときも精度が落ちないタイマーを作った。 でも、外部ファイルが必要だったのでライブラリ的なものに組み込むときにパスを自己解決できないという問題があった。 // 問題点:muteki-timer.js の設置場所が制限される // もしくはライブラリの外から muteki-timer.js の場所を教えてあげる必要がある var url = "muteki-timer.js"; var timer = new Worker(url); 今回は外部ファイルを使わない無敵タイマー。以下手順 BlobBuilderっていうのを使ってコードを組み立てる。 すごいと評判*1
入力「×」のブラウザでは、「𠮷」が2文字とみなされるため、2文字目まで、つまり「𠮷野」までしか入力できません。 Mozillaの文書には、Unicode code pointsで数えると書いてあるので、そのうち改善されるのかもしれませんが、現時点ではTwitterのために「maxlength="140"」を使うことはできません。 pattern属性 Firefox 21とChrome 27、IE 10、Opera 12.15は、「pattern=".{0,3}"」(任意の文字からなる0から3文字)のような正規表現を使った検証にも対応していますが、やはり「𠮷野家」は4文字とみなされてしまいます。 JavaScript 追記:javascript – でBMP以外のUnicode文字をきちんと扱う(404 Blog Not Found) JavaScriptでは、文字列strの長さをst
本文 先日 JavaScript を高速化するには、 VM を知る必要があるんだろうと思い、 以下のような発言をしてみました。 とにかく今は 「V8の最適化の恩恵を受けるための JS の書き方」や「ホットスポットを温めて C よりも速い JS を書こう」という釣りっぽいけど釣りじゃない記事を @Constellation さんや @bad_at_math さんに書いていただく必要があるということでした! 2011-10-23 21:53:44 via Echofon しかし、釣り針が小さかったためか、誰も釣れず。。 自分で調べろってことですよね、すいません。。 と思っていたら、先日下記のエントリが話題になりました。 そのものずばり、JavaScript を最適化する話。 mraleph-The trap of the performance sweet spot 先に感想を言うと、これはい
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
http://tily.no.de/telephone トップページ、部屋とニックネームを決めて開始する http://tily.no.de/telephone/sandbox 手軽に試す用 電話というか音声チャットなんだけど、Flash のマイクでとった音声を WebSocket 経由で送信して、受け取った側では Web Audio API とか Audio Data API とかで再生するというのを作った。Firefox と Chrome で動く。 はずなんだけど、no.de の SmartMachine のスペックが低いせいか、遅延のあるせいか相手側の音声がブツブツ切れて聴こえてしまう…。ローカルではちゃんと音声チャットっぽいことができているんだけど。 なんか色々他の人のコードを使ったり参考にしたりしたので書いておきます。 socket.io サンプルのチャットプログラム デザインと
Hubot (note: it's prounounced hew-bot) A Customizable, Life Embetterment Robot Commissioned by GitHub View Hubot's Documentation (Learn about getting started, etc.) View Hubot's Source Code(via http://github.com/github/hubot/.) What is Hubot? Hubot is your friendly robot sidekick. Install him in your company to dramatically improve employee efficiency. No seriously, what is Hubot? GitHub, Inc., wr
High Performance JavaScript - jQuery Conference SF Bay Area 2010Nicholas Zakas
jQueryのイベント記述方法はいくつかあり、大雑把におさらいしたのが以下の3パターンです。 まず一番基本的なのが $("a").click(fn) や $("a").bind('click', fn) です。click(fn)はbind('click', fn)の省略形です。 次にjQuery1.3で $("a").live("click", fn) という機能が出来ました。liveの良いところはDOM操作で出たり消えたりするエレメントに対して再バインド無しでイベント定義ができる利便性と、内部的にはbind個所がdocumentの1か所になり複数個所へのbindが無くなることによるメモリ効率と実効速度の向上です。 更にjQuery1.4.2で $("#foo").delegate("a", "click", fn) という書き方が出来るようになりました。これは特定要素以下に限定するliv
ES.nextとして入っていて, ECMAScript 6にも入りそうな気配がするWeakMap. という訳で. WeakMapとは WeakMapとは, harmony:weak_maps [ES Wiki] keyへの参照が弱参照 keyが任意のObject valueはなんでもあり というものです. 弱参照であるため, WeakMapのkeyに指定されたObjectが, weakなreferenceからしか参照されていなかった場合, GCに回収されます. また, WeakMapという名前が隠しがちですが, どちらかと言うと主機能は任意のObjectがkeyとして取れるということでしょう. var map = new WeakMap(); var obj = {}; map[obj] = "OK"; // このとき, toString()されたりしない. Objectをとれる 従来のO
Windows 8 開発者プレビューでの開発を試していたところ、非同期プログラミングを簡単に書ける await キーワードが面白かったので紹介します。Windows 8 用に Metro アプリを開発する場合、WinRT(Windows Runtime)というフレームワークを使ってプログラミングします。WinRT では、UI 応答速度を上げるための工夫として、少しでも時間がかかる可能性のある処理は、非同期の API のみが提供されています。なんかめんどくさそうですよね。いえいえ、そんなことはありません。.NET 5 から導入される async/await キーワードでとても簡単に書けてしまいます。HelloWorld アプリケーションのサンプルたとえば、HelloWorld アプリケーションでは次のようなサンプルが紹介されています。 // UI を表示するページのコンストラクタ // UI
http://dl.dropbox.com/u/511116/noime/noime.html そもそも「変換候補が表示されてそこから選ぶ」というのがめんどくさいから、ぜんぶ Google 日本語入力 API に任せたらどうなるかを試してみた。最後の入力から 0.5 秒経ったら自動で変換処理を開始する。IME を OFF にして "toukyoutokkyokyokakyoku" とかをキーボードから入力するとどういうことか分かる。JavaScript でテキストエリアの文字列を管理するのがむずかしくていろいろちゃんと動いてないけど、だいたい感じは掴めた。違うものを作ってたつもりなのに結局これ (変換操作を省いて自動的に変換・確定する:IME即効テクニック) の劣化版みたいな感じになったような…。 あと副産物として GlitchIME の JavaScript 版とかも作った。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く