貧乏なので同居して義父に子育てをしてもらってる。義兄嫁「うちも預けたい」義父「お金出すからシッター探して」義兄嫁「は?」→怒り出し…
貧乏なので同居して義父に子育てをしてもらってる。義兄嫁「うちも預けたい」義父「お金出すからシッター探して」義兄嫁「は?」→怒り出し…
#ff0000">2008年12月29日追記:逆再生する新バージョン「HTML崩壊Reverse! meltdown2.js」をアップ #ff0000">2009年4月21日追記:さらに進化したバージョン「HTMLの暴走(meltdown3)」をアップ まずは軽いページでお試しください。例えば Google とか。*1 javascript:(function(){var s=document.createElement("script");s.charset="UTF-8";var da=new Date();s.src="http://www.rr.iij4u.or.jp/~kazumix/d/javascript/meltdown/meltdown.js?"+da.getTime(); document.body.appendChild(s)})(); これを適当なページのアドレスバ
2007年11月02日09:00 カテゴリLightweight Languages javascript - 545バイトテトリス もう少し短く張りやすくしてみた。 わずか565バイトテトリスのプログラミング解説 「往年の名作「スーパーマリオブラザーズ」、あの濃い内容でわずか40キロバイト」に載っていたわずか565バイトのテトリス。文字数にして551文字。79文字*7行のプログラミングで、テトリスが動きます。 それがこちら。 545バイトテトリス window.onkeydown=function(e){K=e.keyCode};X=[Z=[B=A=12]];h=e=K=t=P=0;function Y(){C=[d=K-38];c=0;for(i=4;i--*K;K-13?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/A)*145)])p=B[
「往年の名作「スーパーマリオブラザーズ」、あの濃い内容でわずか40キロバイト」に載っていたわずか565バイトのテトリス。文字数にして551文字。79文字*7行のプログラミングで、テトリスが動きます。 以下のソースコードをメモ帳に貼り付けて、htmlで保存すればテトリスが動きます。 <body onKeyDown=K=event.keyCode><script>X=[Z=[B=A=12]];h=e=K=t=P=0;function Y() {C=[d=K-38];c=0;for(i=4;i--*K;K-13?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/ A)*145)])p=B[i];!t|c+4?c-4?0:h+=d:B=C;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+B[i++]]=1 if(e=!e){if(f|B){fo
以下の一行をすべての JavaScript の前に読み込む /*@cc_on _d=document;eval('var document=_d')@*/ この一行を読み込むことによって IE での document へのアクセスが 5 倍速くなります。 たとえば 以下のように、読み込む前と読み込んだ後を比較してみます。 // Before var date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date - date); // 643 /*@cc_on _d=document;eval('var document=_d')@*/ // After date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date -
未だに半年前のエントリにブクマされるみたいなので、もう少しjavascriptについて書いてみる。 今回は大規模化開発におけるJavascriptの注意点とかそういうの。当てはまらない環境の方もいます。(しかも基本的な事だらけで大したことは書いてないです) ほぼリッチクライアントを主目的としたjavascripterとコードを対象とします。 どちらかというと、ライブラリを提供する側の視点から 1.ログを出力せよ あなたが書いたコードは遅い、と必ず言われます。なので言われる前から、自分の書いたコードの処理時間をログするようにしましょう。 次のような処理時間を計測するロガーを作ります。 var TraceLog = function (){ this.startTime = -1; var outer = document.getElementById('_outer'); if(oute
はてなダイアリー日記 - 自分のはてなダイアリーにブログパーツを設置できるようになりました これはいいね! さっそく googleガジェットを使って、(対応外の)すきなブログパーツとかを色々貼ってみよう! まずは下のようなテキストファイルをつくって、文字コードをutf-8で保存…! <?xml version="1.0" encoding="UTF-8" ?> <Module> <ModulePrefs title="ここにパーツ名かこうね!"> </ModulePrefs> <Content type="html"> <![CDATA[ (ここにブログパーツ貼り付けコード) ]]> </Content> </Module> たとえばtwitterのブログパーツ(badge)を貼るのなら、ファイル名を「twitter.xml」とかにしておいて、 このファイルをどこかのサーバーにアップロード
僕は はてなスター大好き! でも、メッセージの送信機能が Mac OSX + Firefox の環境を考慮してない>< 問題は Enter キーのイベントハンドリング。 Windows の IME は変換して決定するときの Enter キーのイベントを Firefox に渡さないんだけど、 Mac OSX の IME は変換して決定するときの Enter キーのイベントを Firefox にわたしちゃうんだよね>< だから、一回変換するごとに投稿されちゃって変な感じのメッセージになっちゃうんです。 これは、かなり難しい問題なんですけど、やっぱり form にして submit イベントに引っ掛けるのがいいと思います。 keydown ではどうしてもこの問題の解決は難しいと思うのです>< 追記: via:http://b.hatena.ne.jp/kazuhooku/20070719#boo
先日紹介した Tam-calendar.js の話のなかで、クラスを追加指定する例として祝日の日付に holiday クラスをセットするというのを取り上げましたが、肝心な祝日の日付をどうやって取得すればよいのか、詳しい説明を省いていました。今回はその話をしたいと思います。 Google Calendar Data API Google は Google Calendar のデータを操作できる Google Calendar Data API を公開しています。この API を使うことで Google Calendar 上に保存されたイベントデータを XML フィードとして取得することができます。 各国の休日はイベントの一種として扱われているので、同様に API 経由で取得することが可能です。Google Calendar Data API から祝日のデータを得るメリットとしては、 Goog
※ 画面は公式サイトのサンプルより Webサービスでは色々な情報を入力する。会員登録の類は良くあるものだろう。丹念に入力し、送信ボタンを押してしばらく待つと、入力エラーの文字列。これではやる気がなくなってしまう。 JavaScriptでチェックできれば、その場ですぐにエラー判定ができ、分かりやすい。しかし、入力するパターンは様々にある。必須チェック以外、たとえば入力パターン等に対応しようと思うと開発は大変だ。そこでこれの出番だ。 今回紹介するオープンソース・ソフトウェアはfValidator、入力チェックを行うJavaScriptライブラリだ。 fValidatorは必須チェックに加え、パターン入力にも対応させることができる。たとえば、YYYY/MM/DD等の入力のみを可能にする事で、Microsoft Accessの入力フォームのように入力形式を強制できる。メールアドレスやURLのような
今回はShibuya.jsなどJavaScript界で活躍中のamachangこと天野仁史さんと、mixi、はてなや最近ではIPAなどさまざまなWebサイト・サービスのセキュリティ脆弱性を指摘(?)していることで知られるHamachiya2さん(はまちちゃん)のお2人がゲストです。まずは2人の馴れ初めから…。 編集部注) 本対談は2007年3月に行われたものです。 出会い 弾:で、お2人の馴れ初めは? 天野(以下、天):mixiで俺が「マイミクなってください」ってところから始まった。 Hamachiya2(以下、は):はい。ナンパされちゃいました。 弾:はまち釣り(笑)。 天:マイミクなってくださいってとこから始まって、そしたら(はまちちゃんが)JavaScriptを高速化してる人だ!っていうことで、デブサミのときに見に来てくれたんです。 JavaScriptのライブラリ 天:
2007年05月13日06:30 カテゴリLightweight Languages λ萌え - たらいを後回し Gauche Nightではしゃぎすぎたところにもってきて、昨日はEncodeをメンテしながらホームパーティーなんぞをしていたらどうやら風邪を引いてしまったみたい。 風邪で頭が痛いときには、λと戯れるに限る、ということでこの話題。 前回までのあらすじ 404 Blog Not Found:たらいを回すならHaskell 404 Blog Not Found:javascriptでもたらいを回してみた 404 Blog Not Found:gaucheでもたらいを回してみた 404 Blog Not Found:C - Judyでたらい回し ここまでのあらすじでわかった事は、遅延評価(lazy evaluation)するHaskellがむちゃくちゃ優秀なこと、遅延評価がない言語で
この記事を読んで http://blog.livedoor.jp/dankogai/archives/50824976.html うんうん!そのとおり!と思った! でも ちょっと変なコードをクリックしてしまって問題になるかもしれない。 「こんにちはこんにちは!!」みたいな。 だから、ちょっと弾さんの executable をこうしたらどうかな? >|javascript| alert(Math.atan2(1,1)*4); |executable|<<pre class="syntax-highlight"><span class="synStatement">alert</span>(Math.atan2(1,1)*4) </pre> <textarea style="display:none"> (function(){ alert(Math.atan2(1,1)*4); })() <
2007年05月06日18:45 カテゴリLightweight LanguagesBlogosphere Hatena::Diary - スーパpre記法で実行可能なJavaScriptを そのはてなダイアリーで、こうすれば比較的安全に実行可能なJavaScriptを記述できるのではないかという提案。 404 Blog Not Found:javascript - はてダでは書けないはてなブックマーク技25個 こういう技の紹介って、JSがあればもっとわかりやすいんだけどはてダはJS禁なので。 はてなアイデア - スーパpre記法で実行可能なJavaScriptを投稿できるようにしてほしい cf. http://blog.livedoor.jp/dankogai/archives/50824976.html レシピ まずは、スーパーpre記法を以下のように拡張。 はてなダイアリーのヘルプ
http://d.hatena.ne.jp/amachang/20070413/1176421425 勉強会のあと、そしてこの記事の後、 もう一度自分の中でprototypeについてまとめてみた。 下の実行結果を見て、首をかしげた人は是非とも読んでいただければと思う。 (って、首をかしげるのは僕だけか?!) var Box = function(size){ this.size = size; }; Box.prototype = { color: "red" }; var box = new Box(10); alert(box.color); // red Box.prototype = { color: "blue" }; alert(box.color); // red var box2 = new Box(11); alert(box2.color); // blue Box.p
このエントリーは以下のエントリーへの解答です 404 Blog Not Found:javascript - 勝手に添削 - JavaScript入門 はじめに 僕はあまりブログを一生懸命書くのは嫌いです。で、いつも適当に言葉は少なめにソースだけで解説しているが。今回は、それだけでは伝わらないところまで突っ込まれてしまったので、僕が伝えたかった意図をこと細かく説明していこうと思います。 文章が苦手なので、変な言い回しで読み辛かったりすると思いますがよろしくお願いします。 一応、弾さんには断っておきますが、別に弾さんに噛みついている訳ではないです。ただ、弾さんのような有名人に突っ込まれたら、僕の講義を聞いてくれたエンジニアが嘘を教えられたと不安になってしまうのではないかと思ったのです。僕の講義を聞きにくれた人には、虚像でもいいから 100 % の自信と勇気を付けて欲しい(プログラムを書く上で
2007年04月12日23:30 カテゴリLightweight Languages javascript - 勝手に添削 - JavaScript入門 釈迦に説法を承知で。 IT戦記 - 社内勉強会資料 amachang - JavaScript 入門Object.prototype = { /* ... */ }は避けるべし みにくいのでオブジェクトを入れ替える方式に Box.prototype = { speed: 4, move: function() { this.left += this.speed; this.element.style.left = this.left + 'px'; if (this.left > 400) clearInterval(this.id); }, start: function() { var self = this; this.id = s
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く