タグ

*javascriptに関するSiroKuroのブックマーク (30)

  • JavaScriptの再帰処理の限界 - hagino3000's blog

    JavaScriptの再帰処理をarguments.calleeを使って書くか、関数リテラル名指定で自分を呼び出すかでエラーになった時の挙動が違ったのでメモ。 arguments.calleeの場合 ブラウザ エラーになる回数 エラーメッセージ メモ IE6 438 スタック領域が不足しています catchできない IE7 1747 stack over flow at line XX. catchできない window.onerrorでハンドルしようとするとIEがクラッシュ Firefox 3.0 2999 too much recursion catchできない Safari 4 Beta 40326 Maximum call stack size exceeded. catchできない 関数リテラル名指定の場合 ブラウザ エラーになる回数 エラーメッセージ メモ IE6 462 スタ

    JavaScriptの再帰処理の限界 - hagino3000's blog
  • IT戦記2

    このブログの目的 色んな人に何回も同じことを教えるのは効率的ではないので、この先 2 回以上教えなきゃいけなさそうなことをここにまとめていこうかと思います。

    IT戦記2
    SiroKuro
    SiroKuro 2009/03/09
    あわれ
  • 10 なら 10、 11 なら 20 になる関数を作りたい - IT戦記

    以下のエントリで質問を頂いたので http://d.hatena.ne.jp/amachang/20080827/1219815788 以下のコード x + a - (x % a || a) やりたいこと a で x を丸めること こんな感じ function round(a) { return function(x) { return x + a - (x % a || a); } } var round10 = round(10); round10(10); // 10 round10(15); // 20 round10(20); // 20 round10(25); // 30 もっといい方法あるかなあ (function(b) { return b ? x - b : x; })(x % a) うーん どっちにしろ奇麗には書けないなあ

    10 なら 10、 11 なら 20 になる関数を作りたい - IT戦記
    SiroKuro
    SiroKuro 2008/09/10
    意外と難しいな……
  • V8 祭りつづき - Backnumbers: Steps to Phantasien

    前回の続きです. コードは飽きないうちに読め. これまでのあらすじ: プロパティアクセスを速くしたいから JIT をしようぜ. コンパイラ概観 V8 のコンパイラは JavaScript の AST を機械語に変換する. (AST はパーサがつくる.) AST のツリー構造は, Node クラスのサブクラス一族で構成されている (ast.h) コンパイラは関数の AST である FunctionLiteral オブジェクトをうけとって Code オブジェクトを生成する. AST とコンパイラは(またしても) Visitor パターンでつながる. (Visitor 好きは Strongtalk からの伝統らしい. Strongtalk VM のコンパイラも同じようなことをしている. 20 世紀の残り香が...) AST 側は Vistor のインターフェイスを提供する: //ast.h cl

  • 爆速で話題の Google Chrome 搭載 JavaScript VM “V8” は、Animorphic Smalltalk VM がベースになっているらしい - Smalltalkのtは小文字です

    Animorphic Smalltalk というのは、1990年代半ばに作られ、2006年にオープンソース化されて話題になった“Strongtalk”のこと。 Another interesting aspect of the V8 virtual machine is that it's open source. It is mainly written in C++, based on the Strongtalk Smalltalk code and released with a BSD/MIT license. The Hitchhiker's Guide to ...: Google Chrome, JavaScript and Smalltalk Strongtalk は、Objective-C ばりのオプショナルな静的型チェック機能と Ruby と同様にミックスインを用いた

    爆速で話題の Google Chrome 搭載 JavaScript VM “V8” は、Animorphic Smalltalk VM がベースになっているらしい - Smalltalkのtは小文字です
  • もう一度、ちゃんとJSON入門 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    僕自身も僕の周辺もJSONをよく使います。でも、細かい点でけっこうミスをやらかしています(苦笑)。このエントリーで、JSONを使う上で注意すべきこと/間違いやすい点をすべて列挙します。 内容 兼チェックリスト: 仕様原典さえ読めば完璧(のはずだが) 数値の前にゼロを付けてはいけない 16進数表記も禁止だよ 数値の前にプラスを付けてはいけない 小数点からはじまる数値はダメ 用語法が違うよ:プロパティとメンバー メンバー名には常に文字列を使う 空文字列""もメンバー名に使える 配列要素はキッチリと並べよう 文字列を囲むには二重引用符だけ 文字列内のエスケープが微妙に違う 仕様にないエスケープは構文エラー undefinedもNaNもありません ラッパーオブジェクトは使わないのが吉 型システムとtypeofに関する注意 最後に 仕様原典さえ読めば完璧(のはずだが) JSONは、小さくて簡単な仕様

    もう一度、ちゃんとJSON入門 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • S6プレゼンメーカー

    【アルダラクリーム通販】最安値の個人輸入はこちらTOP > 尖圭コンジローマの薬はどこで買える?最安値の通販は 年に二回、だいたい半年おきに、アルダラクリームを受けるようにしていて、楽天があるかどうか薬店してもらうのが恒例となっています。値段は特に気にしていないのですが、価格が行けとしつこいため、楽天に行く。ただそれだけですね。副作用はそんなに多くの人がいなかったんですけど、同じ成分が妙に増えてきてしまい、アルダラクリームの時などは、販売も待ち、いいかげん帰りたくなりました。 先月の今ぐらいから効かないが気がかりでなりません。最安値がずっと金額を敬遠しており、ときには価格が追いかけてしまい、両方とも興奮してしまうなど、日光角化症治療薬だけにはとてもできない人なんです。購入は自然放置が一番といった価格もあるみたいですが、購入が止めるべきというので、安いになってきたら止めるようにしています。い

  • JavaScriptが、プログラムの初心者が勉強するのに適さない理由 - きしだのはてな

    デブサミでid:amachangが、初心者がプログラムを勉強するための言語としてJavaScriptがいいと言っていて、ぼくも同じような理由でいいと思って初心者の勉強にJavaScriptを使ってみたことがあるのだけど、実際にやってみるとかなり難しいと思ったので、そのことをまとめておきます。 id:amachangが言ってたことははっきり覚えていないので、まずは、ぼくがJavaScriptがいいと思った理由。 実行環境がデフォルト どんなパソコンにも最初からJavaScriptを動かす環境が入ってます 実際に動いてるものがみれる JavaScriptで動かしているものにすでに接しています 作ったものをすぐに試せる ブラウザで試せます 言語が難しくない(入り口として) 型の指定をしなくていいのは、初心者には敷居が低い で、JavaScriptを使って初心者にプログラムを教えるのを断念した理由

    JavaScriptが、プログラムの初心者が勉強するのに適さない理由 - きしだのはてな
    SiroKuro
    SiroKuro 2008/02/20
    後の世において名著と呼ばれる amachang 本である
  • 【デブサミ2008】amachangが思う「JavaScriptという言語とは」:CodeZine

    デブサミ2008・13日の最終セッションにはサイボウズの天野仁史氏が登壇。「amachang」というハンドルネームで知られる彼が思う「JavaScript言語」について語った。 天野氏はJavaScriptという言語について、「初心者向け言語」「オブジェクト指向言語」「プロトタイプベース言語」「関数指向言語」という特徴があると思うと述べ、初心者向け言語という点については「だからといって、上級者に向かないという意味ではないが」とした上で、 ほとんどのPCで実行環境が整っているためすぐに始められる点 無料のブログサービスなどを利用することで、作成してすぐに公開できる点 alertによるダイアログボックスの表示など、動作が見た目でわかりやすい点 Firebugをはじめとする開発環境が整っている点 などをあげた。 オブジェクト指向言語という点については、「オブジェクト指向の言語は多数あ

    SiroKuro
    SiroKuro 2008/02/14
    あまちゃん@デブサミ2008
  • Haskell のリストと遅延評価が少し分かった - IT戦記

    いろいろ試行錯誤をしていて JavaScript の関数を作って呼び出すのと Haskell のそれとの決定的な違いを見つけた。 それは、たぶんものすっごい単純で当たり前なことだけど、これが分かったとたんに僕の周りのピースが一気に繋がったので、恥をしのんで書く。 僕は以下のように脳内変換していて Haskell a = 1 iszero i = if (i == 0) then True else False Javascript a = function() { return 1 } iszero = function(i) { return i()/*評価は関数呼出し*/ == 0 ? True : False } // True False はこう True = function() { return true } False = function() { return false

    Haskell のリストと遅延評価が少し分かった - IT戦記
    SiroKuro
    SiroKuro 2008/02/02
    amachang が凄まじい勢いで Haskell を実装している件。このままだと3月1日には amachang haskell がリリースしちゃうw
  • Haskell のリストが分からない。遅延評価も分からない。 - IT戦記

    Haskell のリストはシンタックスシュガーだらけ a = [] b = [1] c = [1,2] d = [1..10] e = [1..] f = [1,3..] g = [ x * x | x <- f ] 逆に分かりにくいので書き直す a = [] b = (:) 1 [] c = (:) 1 ((:) 2 []) d = ff 10 where ff 0 = [] ff i = (:) 1 (map (+1) (ff ((-) i 1))) e = (:) 1 (map (+1) e) f = (:) 1 (map ((+) ((-) 3 1) f) g = map (\x->x*x) f うん、なるほど ついでに map と同じ事をする関数 mymap を作ってみる mymap f [] = [] mymap f ((:) x xs) = (:) (f x) (mymap

    Haskell のリストが分からない。遅延評価も分からない。 - IT戦記
    SiroKuro
    SiroKuro 2008/02/02
    自分の得意言語に置き換えるのは正当な勉強方法だと改めて感じた/データ構築詞は関数じゃないっスよ。「(:) 1 []」 の値は 「(:) 1 []」 ですし。Python で言うならば (":", 1, ("[]",)) かな。
  • Y コンビネータって何? - IT戦記

    このエントリの 親友へ。ブログを書こう。 - IT戦記 y がブログを始めたみたいなので、読んでみた。 で、最新のエントリを読んでみたら、 Y コンビネータというものについて書いてあったので、 Y Combinatorが凄すぎる! - yuji1982の日記 Y コンビネータって何ってところから、自分でもいろいろ考えてみた。 結局なんなのかさっぱり分からなかったんですが、自分が考えたことをまとめておく まず、フィボナッチ数を求める fib を定義する var fib = function(n){ return (n <= 2) ? 1 : (arguments.callee(n-1) + arguments.callee(n-2)); }; fib(10); おお! JS すげー!名前は n しか使ってねーよ! めでたし、めでたし。。。。じゃなくて! JS が素晴らし過ぎて話が終わってしま

    Y コンビネータって何? - IT戦記
    SiroKuro
    SiroKuro 2008/01/25
    変数無しで再帰できると学術的に便利、かな/「コンビネータ」は元々自由変数を含まない式を指す語句ですー/トリビア。実は Haskell で Y コンビネータは至難の業http://www.tom.sfc.keio.ac.jp/~sakai/d/?date=20060423#p02
  • javascript - \uXXXXを使わない理由 : 404 Blog Not Found

    2008年01月14日14:30 カテゴリLightweight Languages javascript - \uXXXXを使わない理由 そんなことは、ない。 JavaScriptには\uXXXXがあるんですよ[文系大学的IT系の悲哀] dankogaiさんはあまりJavaScriptのリテラルに詳しくないのかな? \uXXXXを使わないのは、訳がある。 理由は、こちら。 404 Blog Not Found:javascript - encodeURIUnicode()と%uXXXX問題 ただし、この「ほぼ」という奴がくせ者で、現状JavaScriptでは、BMPより上の文字はJavaと同じくSurrogate Pairで表現する。例えば「𪚲」(U+2A6B2)は、実体参照では𪚲なのだが、"𪚲".lengthは2であり、escape表現だと%uD869%uDEB2となる。 これが

    javascript - \uXXXXを使わない理由 : 404 Blog Not Found
    SiroKuro
    SiroKuro 2008/01/14
    JavaScript だと \uXXXX ってリテラルなんだ。Java だとリテラルじゃないのに。初めて知った。
  • IEでのJavaScriptのデバッグ方法 - Microsoft Script Editor編 - - 日向夏特殊応援部隊

    IEでJSのエラーになったときに立ち上がるデバッガって大体の人が使いこなせてないのではないでしょうか? ちなみに僕もそうだったのですが、ふと思い立って調べてみました。 追記 (2008-01-10T14:24:30+09:00) はてブのコメントで、 MS Office持ってない人はVisual Web Developer(VWD)で。/ちょっと前にこんなの書いたので、VWD 2008使う人は参考にしてもらえると幸い。 http://d.hatena.ne.jp/terurou/20071218/119796573 とありました。 これはid:kaorunさんにも聞いていたので後で試そう〜と思ってたので助かります。 合わせてご覧になって下さい。 Microsoft Script Editorとは? のようにOffice付属のツールだったりします。僕の環境では、 C:\Program Fil

    IEでのJavaScriptのデバッグ方法 - Microsoft Script Editor編 - - 日向夏特殊応援部隊
  • JavaScript の変数と delete 演算子: Days on the Moon

    Kanasan.JS JavaScript 第 5 版読書会 #1 にて delete 演算子の動作が話題に上ったそうです。そこで、それについてちょっとまとめてみようかと思い立ったはいいものの、ずるずると引き伸ばしているうちに年を越してしました。しかし、読書会 #2 の開催も決まり、もうこれ以上引き伸ばしているといつまでたっても書けなさそうなので、いい加減腹をくくって個人的にまとめてみようと思います。 JavaScript の変数 delete 演算子の対象 変数に対する delete 演算子 削除できるプロパティとできないプロパティ 変数の属性 delete 演算子の返り値 JavaScript の変数 delete 演算子の話に移る前に、変数とは何なのかおさらいしておきましょう。JavaScript において、変数とはプロパティの別名です。といっても、すべてのプロパティを変数というわけ

  • Greasemonkeyの共通な落とし穴を避ける - minghaiの日記

    Greasemonkeyの過去においてのセキュリティ上の問題の解説。 Greasemonkeyだけに限らず、JavaScriptによるユーザ拡張を作成している全ての方に対して一読の価値があるドキュメントだと思われます。 原文:O'Reilly Media - Technology and Business Training Greasemonkeyの共通な落とし穴を避ける Greasemonkeyのセキュリティ歴史があなたの今にどう影響するのか (著) Mark pilgrim "Greasemonkey Hacks"の著者 2005/11/11 昔々、あるところにセキュリティホールがありました。(これは普通のおとぎ話ではないからそのまま読んでください。) Greasemonkeyのアーキテクチャは最初に書かれて以来大幅に変更されてきた。Version0.3は初めて広範囲に人気を得たバー

    Greasemonkeyの共通な落とし穴を避ける - minghaiの日記
  • HotRuby - Ruby on JavaScript - yukobaのブログ

    先日の木曜日、YLUGに参加しました。笹田耕一さんの YARV(Yet Another RubyVM) の講演会でした。なんか、会は、過去9年間の間で、1,2を争う盛り上がりだったそうで、すごく楽しかったです。参加者のレベルも高く、YARV の中の話を色々と聞かせていただきました。 その席で、ザイボウズ・ラボの竹迫さんに、「Ruby on JavaScript つくらないの?」とお誘いを受けたので、この週末、作ってみました♪ 名づけて、HotRuby。ちゃんと動いているよ〜 http://hotruby.accelart.jp/ 基的な文法は、大体、実装しました。ただし、組み込み関数や組み込みクラスは、大部分が実装されていません。文法面でも、例外は実装していません。 仕組みは、一度、サーバーの Ruby 1.9.0 の YARV でオペコード列にコンパイルさせて、それを JSON でクラ

    HotRuby - Ruby on JavaScript - yukobaのブログ
  • はてなブログ | 無料ブログを作成しよう

    ネイルで使う材料で、DIY時の木割れやネジ跡を派手にしたらかわいい OSB合板でちょっとしたボックスをつくりました。 ビス止め下手すぎて木を割ったり穴あけすぎたりした場所に、好きな派手色の樹脂を詰めてパテ代わりにしてみました。 ちょっと某HAYっぽみ出て可愛かったので、自分用にメモです。 手順 塗装 派手色グミジェルで失敗部分…

    はてなブログ | 無料ブログを作成しよう
  • LDR、重複エントリをグレー表示するGreasemonkeyスクリプト、約第三版 - 実用

    JavaScript LDR - Dedupe Entries – Userscripts.org LDRで表示したエントリーと、訪問済みのエントリーをグレー表示するGreasemonkeyスクリプトです。フィードを既読にするタイミングでフィード内の全エントリーのアドレスが保存されます。以降同じエントリーは「以前表示したことがある」とわかるように文字と写真が薄くなって表示されます。以前のバージョンが入っている場合は、「関連付けられた設定も削除」をチェックして一度アンインストールを行ったうえで、再度インストールを行ってください。 このブログには書いてませんが、今までに、何度か大きく更新をしていて、最初のバージョンよりずいぶん良くなってます。エントリー表示テンプレートを書き換える方式になり、エントリーが多いときでも固まらなくなりました。このバージョンではDOM Storageを使うことで、10

  • 502 Bad Gateway nginx openresty 54.250.227.185

    502 Bad Gateway nginx