タグ

javascriptに関するC_Lのブックマーク (61)

  • JavaScriptで、もう連想配列の最後のカンマに悩んでないので - すぎゃーんメモ

    JavaScriptで、もう連想配列の最後のカンマに悩まない!(※追記あり) · DQNEO起業日記 で言及いただいていたので今の自分の意見を。 その発想は無かったし、無いですね。 2012-05-02 09:55:29 via Twitter for iPhone です。 要素数が変わる、無駄なkeyが入る Node.jsなんかではECMA Script 5のObject.keys()が使えるので var len = Object.keys(obj).length; とか Object.keys(obj).forEach(function (e) { console.log(e) }); とかでオブジェクトのキーを走査したり、ということを普通にやります。そんなときに"dummy"なんてキーが入ってたら邪魔でしょうがないです。 メモリ領域の無駄、はたいして気にならないでしょうけど、とにかく

    C_L
    C_L 2012/05/04
    代入直後popしてた
  • 正しいJavaScriptの変数名の話をしよう

    「var π = Math.PI; が文法的に正しいJavaScriptだと知っていますか?」という書き出しで始まるJavaScriptの変数名についてのエントリが話題になっていました。エントリーを書いたのはベルギーのフリーランスWEB開発者のMathias Bynensさんです。彼はUnicodeのどんなグリフが識別子として利用できるのかECMAScriptの仕様を見てみることにしたそうです。 ECMAScript 5.1によれば: 識別子は予約語ではない識別できる名前 となっており、直接記号やグリフについての制約には言及していません。元記事ではさらに予約語や識別子に使用できる文字の例外などについて解説した後に、下記のようなコードが有効なJavaScriptの変数名であるとして紹介しています。 // How convenient! var π = Math.PI; // Sometime

    正しいJavaScriptの変数名の話をしよう
    C_L
    C_L 2012/02/24
    JAGATのDTP資格試験でJavaScriptの変数をPerl風に$付きで書いていてフルボッコされていた件を思い出した。でも動くんだよなあ。
  • wise9 › JavaとJavaScriptの20年戦争

    モバイルゲーム 物凄い勢いで勃興したモバイルゲーム業界は、いろいろな課題や問題に直面しながらも巨大化し、今日の時点でのスマートフォン向けゲームの市場へと継承されていきます。 モバイルゲーム歴史 2001 Javaアプリと3Dゲームの登場 Javaが利用できるようになったことにより、ダウンロード型のゲームが供給できるようになりました。 2002 携帯電話端末の大容量化・3D化競争 Java搭載携帯電話端末が登場してからごく僅か1年の間に、アプリのサイズに関しては10倍に広大化し、表現方法も2Dから3Dにシフトし始めました。J-PHONEは『ゼビウス』や『スペースハリアー』などといった昔のアーケードゲームを、ドコモはSIMCITYなどパソコンで世界的規模のヒットを飛ばしたゲームを主力商品としていました。 2003 モバイルゲームの一般化 メモリの制限が厳しいJava仮想マシン上ではなく、OS

  • requestAnimationFrame < よーしおまえらー、アニメーションにsetInterval使うなよー - くろまほうさいきょうでんせつ

    より適切なものが追加されたのでそっちを使いましょう。 setInterval/setTimeout → requestAnimationFrame; これまでは setInterval function render(){ // アニメーション 1フレーム分の処理 } setInterval(render, 1000 / 60); これはもう古い。 これからは requestAnimationFrame function animationLoop(){ render(); requestAnimationFrame(animationLoop); } animationLoop(); こうすべし。 requestAnimationFrameにすると何がいいの? 複数のアニメーション描写処理を一つにまとめて最適化してくれる 同じ用に動かしている物体A,Bの動きが次第にずれていくとかがなくな

    requestAnimationFrame < よーしおまえらー、アニメーションにsetInterval使うなよー - くろまほうさいきょうでんせつ
  • スマートフォンのWebブラウザのときだけURIスキームのtel URIを使ったa要素を出す(jQuery使用)

    スマートフォンのWebブラウザのときだけURIスキームのtel URIを使ったa要素を出す(jQuery使用) スポンサードリンク Tweet 以前、スマートフォンでアクセスしたときだけ、電話番号のところを、tel:03-xxxx-xxxx で表現されるtel URIのリンクを、SSIで付ける、というやつをやりました。 M.C.P.C.: スマートフォンのWebブラウザのときだけURIスキームのtel URIを使ったa要素を出す(SSI使用) んで、実際やってみるとソースが汚くなるんです。SSIの宿命ですが。 そんで、よく考えてみたらスマートフォンってJavaScriptが有効な状態でブラウズされているよね、ということに気付きまして、んであれば、SSIでやらずに、JavaScriptでリンクつければいいよね、と思って作ってみました。 <!DOCTYPE HTML PUBLIC "-//W3

    C_L
    C_L 2011/03/10
    応用きくと思うゆ!
  • Firefox 3.5の位置情報通知機能の仕組みとサンプル - F.Ko-Jiの「一秒後は未来」

    Firefox3.5から「位置情報通知機能」が使えるようになりました。これはIPアドレスや無線LANアクセスポイントの情報を利用して、GPSなしにクライアントの位置情報を取得するものです。 早速サンプルを作って試してみました。位置情報を取得してGoogle Maps APIで地図にその位置を表示します。ちなみにサンプルは iPhone の Safari でも動作します。 位置情報通知機能の仕組み この機能は Google Location Service を利用しているそうです。サイト側がユーザの位置情報を取得するには、JavaScriptで次のような処理を実装する必要があります。 navigator.geolocation.getCurrentPosition(function(position) { // コールバック処理 }); » Using geolocation – MDC ペ

  • 「9・25大阪の陣」顛末記 - 名もないテクノ手

    既報の如くであるが、過日第六回大阪DTPの勉強部屋のセッション2において、拙者せうぞーと、たけうちとおる氏が、あかね氏の初心者向けサンプルコードをグーでボコボコにした事件の顛末を記そうと思ふ。この事件は後に「大阪9・25」と呼ばれ、DTP正史にこびりついた一点の軌跡として長く語り継がれるであらう。ライブで目撃された方はまことに重畳という他はない。いま、すべてを語る時がきた。 陽が落ちたなら狼煙をあげよ、密者を入れて伝令を飛ばせ そもそもの話をしやう。DTPスクリプトに関してディスカッションを供しようと、4人のスクリプト書きが集められた。秋葉氏を司会に戴き、あることないことえへらえへら喋り散らかす態を見ていただこうってな趣向である。 MLが立ち上げられ、ネタだしをしていく白熱した議論の過程で、「初心者の人が書きそうなサンプルコードをでっちあげて、それを添削していく」プランがぶちあげられた。そ

    C_L
    C_L 2010/09/27
    ここは高名な方々に一か所でもリファクタリングという用語を使っていただければいろんなプログラミングの地平とつながっていいかと思う。
  • Big Sky :: javascriptで動くtwitter streamクライアントを作るならばmultipart/mixedを使うべき

    twitter stream APIとは、twitterのステータス更新に対してキーワードでtrackしたり、あるグループ内に属するステータス更新をフィルタしたり出来るAPIなのだけど、実際にはchunkedなストリームが流れて来ているのであって、これを使ったWebアプリを作る際にはlong pollを使うのが良い。ただしクライアントサイドでjavascriptを処理する際に サーバサイドでステータス更新をFIFOに溜め込む クライアントからリクエストをブロック(long poll)しFIFOからステータスを送出する クライアントサイドでlong pollを行い画面を更新する 再度サーバへリクエストを投げる を繰り返すのであれば、せっかくストリームなのにアプリサーバとの接続を切ってしまう事になる。出来ればクライアントからWebアプリもストリーミングとしたい。しかしながらサーバからのステータ

    Big Sky :: javascriptで動くtwitter streamクライアントを作るならばmultipart/mixedを使うべき
    C_L
    C_L 2010/03/26
    [multipart/mixed]
  • 二分探索っぽくオーバーフロー処理をしてみたサンプル - はいさい! InDesign JavaScript CS3

    #target "InDesign" myDoc = app.documents.add(); frame = myDoc.textFrames.add(); frame.geometricBounds = ["0","0","5","50"]; frame.parentStory.contents = "吾輩(わがはい)はである。名前はまだ無い。"; //関数呼び出し if(chotai(frame,60)) alert("オーバーフロー処理に失敗しました。"); //-------------------------------------------------// //長体処理する関数、引数三つですが、3つ目は再帰用 //なので気にしなくてOK //気になる方は3つ目の引数を持たせて使ってもOK //その時はstopより小さい数字にならない事 //第一引数:フレームオブジェクト、

    二分探索っぽくオーバーフロー処理をしてみたサンプル - はいさい! InDesign JavaScript CS3
    C_L
    C_L 2010/02/08
    まーふつう二分探索するわな
  • OpenSpace更新情報: 雑談:InDesign自動処理実例集のJavaScriptの書き方の補足

    C_L
    C_L 2009/07/09
    「連続してコピー&ペーストして使われると動作することは、まずありません(中途半端に動作する)。 ということで、コピー&ペーストしても動作するように(function(){ 〜〜〜〜 })()といった書き方にしてあります。」
  • JavaScriptで日本語プログラミング言語を作る - あと味

    オライリーの[asin:4873113296:title]を読んでて気づいたんだけど、JavaScriptってUnicodeで書けば予約語以外は全部日語にできるんですね!オブジェクトもメソッドもプロパティも全部。UnicodeはECMAScript 3rd Edition以降で対応したらしい。IE6でも動く。これ常識なのかな?あんまりそういう記事を見たことなくて普通に知らなかった。 「それ、○○でもできるよ!」というツッコミが来そうなところだけど、JavaScriptは気軽だからいい。 必要な環境 日語プログラミングをするために必要な環境は以下のとおり。 ブラウザがECMAScript 3rd Editionに対応していること HTMLutf-8で保存していること JavaScriptutf-8で保存していること というわけでこんなのができる こんなのが動いてちょっと感動した。以下

    JavaScriptで日本語プログラミング言語を作る - あと味
    C_L
    C_L 2009/06/08
    印刷積算系のプログラム作っているとき、印刷特有の用語が多すぎて(台とか折とか)つい使いたくなったがぴゅう太みたいになってきたのでやめた
  • Javascriptの正規表現置換で後方参照を使いたい - 名もないテクノ手

    Javascriptの正規表現置換(replaceメソッド)で後方参照(RegExp.$1とか)を使いたいと思った時、 str = "aaaaaa123aaaaa456aaaa7890" str1 = str.replace(/(\d+)/g, " (" + RegExp.$1 + ") "); //=> aaaaaa () aaaaa () aaaa () なんて書いてもうまくいきません。なぜなら、RegExp.$1は前回の検索時に最後にマッチした後方参照ですから。実際に試してみるとわかります。 str = "aaaaaa123aaaaa456aaaa7890" str1 = str.replace(/(\d+)/g, " (" + RegExp.$1 + ") "); str2 = str.replace(/(\d+)/g, " (" + RegExp.$1 + ") "); //=>

    C_L
    C_L 2009/02/18
    JavaScriptの正規表現の定番ミス。see also→http://memo.hirosiki.jp/article/27778598.html 僕はこっちで知った
  • 日付っぽい文字列をゆるい感じで日付オブジェクトにパースする - 名もないテクノ手

    お〜まちさんのブログでちょっと長いコメントをつけて恐縮してます。何度も書くと荒らしっぽいのでこちらに書きます。 正規表現を使うの何年振りだろ -- ディザInDesign JavaScriptで特定の日にちを指定するには var dateValue = new Date("Sun Nov 23 2008"); または、MM/DD/YYYYで var dateValue = new Date("11/23/2008"); とする必要があります。ちょっと日人にはなじみのない表記ですね。そしてちょっと困ったことにW3C-DTF風のフォーマット「2008-11-23」を指定すると、とんでもない日付が帰ってきます。これはこまりもの。 日付フォーマットは、文化的な事情でとても複雑なことになっているんですね。 日付の表記に関するノート 規格に準拠するのはたいへんなことですが、少なくともW3C-DTFを

    C_L
    C_L 2008/11/29
    結構便利。事の起こりのページでの使用では、年省略のパターンには対応できないけれども、Webのフォームの入力に組み込むとよさそう。
  • Planet Inddscript

    今日もまたサポート情報が出ました。 次々とアップデートしては問題が発覚し修正を繰り返すFolio Producer Toolsと格闘している人、当にご苦労様です。 わたしは1.1.1まではインストールしましたが、実際に使う機会がなさそうなのでアンインストールしてしまいましたが、まさかこんな状態になろうとは。 いくら無料とはいえ、まるで製品版とは思えない状況はいったいいつまで続くのやら。ちょっと調べてみると、 2011年5月2日 リリースノート - Folio Producer Tools 1.0 2011年6月2日 1.0.1 2011年6月27日 リリースノート - Folio Producer Tools 1.1.0 - 1.1.1 2011年8月24日 現在の最新バージョンは1.1.3です。 2011年8月28日 リリースノート - Folio Producer Tools 1.1

  • イラストレーターのドキュメントに直接スクリプトを書く - なにする?DTP+WEB

    イラストレーターのドキュメントに直接スクリプトを書いて実行させる方法。 使い捨てのスクリプトとか管理するのが面倒なので、 直接ドキュメントに書いておけばいいんじゃないのと。。 var contents = app.activeDocument.selection[0].contents; eval(contents); よしよし、と思っていたら"(ダブルクォート)と'(シングルクォート)が 入力できない。 ということで、スクリプト側で変換してお茶を濁しました。 var contents = app.activeDocument.selection[0].contents; contents = contents.replace(/”/gm,'"'); contents = contents.replace(/’/gm,"'"); eval(contents);

    イラストレーターのドキュメントに直接スクリプトを書く - なにする?DTP+WEB
    C_L
    C_L 2008/11/02
    ワンライナー的にドキュメントのテキストボックスにスクリプトを書いておき、それを実行するスクリプトを準備
  • XMLオブジェクトの取り扱い - 名もないテクノ手

    XMLオブジェクトはJavaScriptのコアクラスです。InDesign内の「XMLhoge」クラスではありません。また実装系によっては、使えない場合もあります。 IDML関連でいきおいXMLが大きな役割を果たすことになりましたが、現在のCS3でもXMLをオブジェクトとして扱えます。簡単にパースできるってことですね。rubyやXSLTなどの外部アプリケーションにお任せしてもいいかもしれませんが、JavaScriptの標準で扱えるなら好都合な場面もありそうです。 JavaScript Tool GuideのP219〜のとおりです。用意したXMLはこんな感じ。日語もまぜてみました。 <?xml version="1.0" encoding="utf-8" ?> <bookstore> <book category="COOKING"> <title lang="en">Everyday I

    C_L
    C_L 2008/11/01
    my_xml.book[0].title[0].toString();はmy_xml["book"][0]["title"][0].toString();と同じ意味だから後者の書き方するとわかりやすいかも
  • MacIE5でArray.pushを実装

    MacIE5でArray.pushを実装 スポンサードリンク Tweet MacIE5でArray.pushが必要になったんで、作りました。以下のコードをJavaScriptのコードに入れておくと、Arrayオブジェクトにpushメソッドが追加されます。pushメソッドが既にある場合は、上書きしません。 // Array.pushをMacIE5に実装 if (typeof Array.prototype.push != 'function') { Array.prototype.push = function (f){ this[this.length] = f; } } 使うときは普通に var x = ['hoge', 'fuga']; x.push('hage'); alert(x.length); // 3 var s = ''; for (var i = 0; i < x.len

    C_L
    C_L 2008/09/01
    MacIE5などArray.push()が定義されていないとき、それらを使えるように関数を定義します。それらが実装されているブラウザでは、上書きしません。
  • javascript - SBM数の合計を取得 : 404 Blog Not Found

    2008年06月14日15:30 カテゴリLightweight Languages javascript - SBM数の合計を取得 それってJavaScriptで(ry 実用! Perlで少しでもSBMのブックマーク数を多く見せる - perl-mongers.org デモ1:Classを指定して http://blog.livedoor.jp/dankogai/ は http://www.dan.co.jp/~dankogai/ は <script src="http://blog.livedoor.jp/dankogai/js/sbmtotalcount.js"></script> <div style="border:outset 1px; padding:0.5em"> http://blog.livedoor.jp/dankogai/ は <b class="sbmtotal"

    javascript - SBM数の合計を取得 : 404 Blog Not Found
    C_L
    C_L 2008/06/15
    これcache機構ないですよね(UserAgentのコンテンツキャッシュ、通信路のキャッシュにお任せ)。あと、MacIE5で動かすとなるとIFRAME通信に書き換えるような感じになるのかな。
  • MacIE5でdecodeURIを実装

    MacIE5でdecodeURIを実装 スポンサードリンク Tweet MacIE5でdecodeURI()が必要になったんで、作ったけど、これでいいのかな。 if (typeof decodeURI != 'function') { decodeURI = function (s) { // via http://homepage3.nifty.com/aokura/jscript/utf8.html var _from_utf8 = function(s) { var c, d = "", flag = 0, tmp; for (var i = 0; i < s.length; i++) { c = s.charCodeAt(i); if (flag == 0) { if ((c & 0xe0) == 0xe0) { flag = 2; tmp = (c & 0x0f) << 12;

    C_L
    C_L 2008/03/24
    MacIE5などdecodeURI(),decodeURIComponents()が定義されていないとき、それらを使えるように関数を定義します。それらが実装されているブラウザでは、上書きしません。
  • ローカルファイルのセキュリティ警告を出さないおまじない

    Libraのハッカソンやってるという話は先日「HackLibra、最初のオンラインハッカソン」で書きました。 …

    C_L
    C_L 2008/03/21
    JavaScript込みHTMLローカルテスト時警告でなくなるおまじない。