タグ

2008年6月15日のブックマーク (24件)

  • それすぐ実行!JavaScript! - IT戦記

    思った JavaScript はすぐに実行してみましょう! ブラウザの URL 入力欄に javascript:(function() { /*実行したいコードを書く*/ })()FireBug を使ってる人は、コンソール開いて実行したいコードを書く。 たとえばこんなことができます。 これらの例は僕が日頃使っているものです。 グローバルで使える関数を列挙する(Firefox Only) FireBug用 for(var n in window) if(typeof window[n]=='function')console.log(n); URL用 javascript:(function(){var b='';for(var n in window)if(typeof window[n]=='function')b+=n+"\n";alert(b)})() Object.prototyp

    それすぐ実行!JavaScript! - IT戦記
  • JavaScript OOP におけるクラス定義方法 - IT戦記

    クラスを定義する方法です。考え付くだけでも、これだけたくさんの方法があります。やっぱり、 JavaScript って柔軟であり複雑な言語ですね。 ちなみに、以下のすべての例はこのクラスを定義しています。 ちなみに、僕は一番下の書き方ですね。 皆さんはどのようにプログラミングしていますか? プロトタイプを使わない。クロージャを使う。 // プロトタイプを使わない。 // クロージャを使う。 function Item(price) { this.showPrice = function() { alert(price); }; } プロトタイプを使わない。クロージャを使わない。 // プロトタイプを使わない。 // クロージャを使わない。 function Item(price) { this.price = price; this.showPrice = function() { aler

  • IT戦記 - JavaScript を学ぶ際に一番重要なのに、誤解されがちな setTimeout 系の概念

    おそらく、JavaScript を使いこなす肝は setInterval、setTimeout、イベントによる関数の実行を理解することだと思う 例えば 次のコードの結果を考えたとき document.write("hoge\n"); setTimeout(function(){ document.write("fuga\n") }, 1000); document.write("piyo\n");普通に JavaScript を使いこなしてる人なら、hoge → piyo と表示して、 1 秒後に fuga が表示されるな。って思うはずなんです。 でも、 JavaScript を始めたばっかりの人の中には、 hoge と表示したあと 1 秒後に fuga → piyo と表示するな。って思ってる人が非常に多い。(経験的に) 何故か? たぶん、どのサイトの setTimeout の説明を見て

    IT戦記 - JavaScript を学ぶ際に一番重要なのに、誤解されがちな setTimeout 系の概念
  • はてなブログ | 無料ブログを作成しよう

    2024夏休み旅行 神戸・2日目【前編】 zfinchyan.hatenablog.com ↑1日目はこちら 6:50 わたしと夫だけ先に起床 前日に買っておいたお芋のパンで朝ごはん 昨日の疲れからか、なかなか息子たちが起きてこなかったので、ゆっくり寝かせてから10:00にホテルの下にあるプレイゾーンに行って、パターゴルフやバス…

    はてなブログ | 無料ブログを作成しよう
  • IT戦記 - JavaScript の this について

    WEB+DB PRESS 編集の R たんから、僕の連載記事に読者様から質問が来ていると教えていただいたので、その内容を教えていただきました。 以下、内容を転載 「JavaScriptわくわく開発道」の記事に関して質問です。 今回の内容で特に興味を持ったのはthisキーワードの振る舞いでした。 thisキーワードの説明には、オブジェクト型の変数を別の変数にコピーしてから初期化すると、コピーした変数からメソッドを実行できなくなるという例が紹介されていました。 そこには「(1)の時点でobj0には{}が入っているため、hogeは未定義となってしまう」という説明があるのですが、誌面の都合上省略があるためか、thisキーワードを用いることで問題を回避できるという理由がなかなか理解できないでいます。 自分なりに考えてみたところ、内部的には以下のようなことが起きているのではないかと思いました。 (1)

    IT戦記 - JavaScript の this について
  • Prototype.js を使った JavaScript OOP 講座 #01

    社内の精鋭エンジニアを中心に定期的に勉強会をすることになった。んで、 JavaScript の講義は僕がやることになった。 資料を社内だけでとどめておくのはもったいないので、ここに公開していきます。社内の人も社外の人も読んでください。 講義の内容は基的にソース嫁。ソースレビュー形式。 ※ターゲットは JavaScript は書いたことない、オブジェクト指向言語プログラマ。 Section 00 Prototype.js の前に JavaScript のオブジェクトの概要・・・ オブジェクトを作ってみる。 var object = {};オブジェクトにメソッドとかプロパティを追加してみる。 var object = { field: 'IT戦士', method: function() { alert('hello ' + this.field); } }; object.method()

    Prototype.js を使った JavaScript OOP 講座 #01
  • 技術日記@kiwanami - JavaScriptでの継承について調べてみた

    JavaScriptはプロトタイプOO言語ということで、インスタンスコピーによる継承とカスタマイズを用いるのが素直な方法なのだと思う。JavaScriptでは、単純にインスタンスを丸々コピーする方法では効率が悪いということで、 prototype による非対称スコープチェーンを用いる方法と、prototypeへのプロパティのコピーを用いる方法がよく用いられている。 しかしながら、サイトによって良い悪いがばらばらで、結局これらの方法のどれを使うのが良いのかよく分からなかったので、どういう違いがあるのか調べてみた。 prototypeスコープチェーンを操作 参考文書: http://faces.bascule.co.jp/inheritance.html プログラマのためのJavaScript (11):継承についてもう少し - 檜山正幸のキマイラ飼育記 (はてなBlog) [鏡] C/C++

    技術日記@kiwanami - JavaScriptでの継承について調べてみた
  • Collection & Copy - JSON入門

    翻訳(thanks to JavaScript++かも日記) 原文:Introducing JSON JSON(JavaScript Object Notation)は、軽量のデータ交換フォーマットです。人間にとって読み書きが容易で、マシンにとっても簡単にパースや生成を行なえる形式です。JavaScriptプログラミング言語(ECMA-262標準第3版 1999年12月)の一部をベースに作られています。JSONは完全に言語から独立したテキスト形式ですが、C、C++、C#、JavaJavaScriptPerlPython、その他多くのCファミリーの言語を使用するプログラマにとっては、馴染み深い規約が使われています。これらの性質が、JSONを理想的なデータ交換言語にしています。 JSONは2つの構造を基にしています。 名前/値のペアの集まり。様々な言語で、これはオブジェクト、レコード、構

  • prototype.jsのbindを理解する - cloned.log

    prototype.js使っていてうれしいことの一つにbindが使えるというのがある。$()とかAjaxのクロスブラウザ対策とかもいいけれど、thisをbindできるのは大きなメリットだと思う。bindがないとどういう時に苦労するかというと、以下のような場面。 var Foo = function(name) { this.name = name; } Foo.prototype.talk = function(message) { alert(this.name + ": " + message); } function inScope() { var foo = new Foo("foo"); setTimeout('foo.talk("Hello World!")', 0); } inScope(); これは実行できない。なぜかというとsetTimeoutに渡しているfooという変数

    prototype.jsのbindを理解する - cloned.log
  • Official Apple Support

    If your Apple device needs repairs, you can go to an Apple Store, visit an Authorized Service Provider, or mail in your device. Whatever you choose, we’ll make sure your device works the way it should. Beware of counterfeit parts Some counterfeit and third party power adapters and batteries may not be designed properly and could result in safety issues. To ensure you receive a genuine Apple batter

  • 開発環境としてのMac OS X Leopard - Blog by Sadayuki Furuhashi

    なかなかrootにならせてくれない、ハードウェアを選ばせてくれない、設定ファイルをviでいじらせてくれないなど、不自由なUNIX : Mac OS Xですが、それ故の自由が何物にも代え難い今日この頃。Leopardになってcron+pdumpfsの仕事まで持って行かれてしまいました。 前回のTiger版カスタマイズメモに引き続いて、Mac OS Xのカスタマイズを書いておこうと思います。 Terminal.app タブ機能が実装されたりssh-agentがKeychainと統合されたりと、Leopardで驚異的なアップデートが行われたターミナル周りですが、まだまだ改善できる余地があります。問題は以下の3点。 HomeキーとEndキーが使えない 色が見にくい ショートカットキーが使いにくい まずHomeキーやEndキーですが、これは環境設定で変更できます。Terminal.appの環境設定の

    開発環境としてのMac OS X Leopard - Blog by Sadayuki Furuhashi
  • Firebugの便利な組み込み関数 - 技術メモ帳

    id:brazil さんのブックマークで知ったのだが、 Firebugには、便利な組み込み関数が定義されているようだ。 一通りさわってみたのだが、 $x() で 任意のXPath要素が取得できるのとかに感動した。 そして、やっぱりちゃんとドキュメント読むべきだなぁと思った。 XPathから要素を取得する。 $x("/html/body/h1"); -> 要素の配列が返ってくる。 selector名から要素を取得する。(getElementsByTagName) $$("h1") -> 要素の配列 所要時間測定 console#time, console#timeEnd time ~ timeEnd で囲んだ部分の所要時間を 計測することが出来るみたいで、 以下のような関数にまとめると良さそうだ。 function bench( callback ) { var uniq_id = Date

  • pythonのソースコードを読むコツのようなもの - maeda.na@はてな

    2007/09/20 追記。以下で色々頑張ってるようなこと全部IPythonで出来るみたい...orz まだまだ駆け出しなりに連日試行錯誤してわかってきたことがあるので書いておく。 これからpythonはじめる人とかの参考になればうれしい。 それは違うだろ?っていうpythonistaの方の突込みがあるとさらにうれしい。 道具重要!! pythonインタプリタ これがないと始まらない。 どうでもいいけどrubyのirbみたいに固有名詞は定義されてないのかな。 pydoc Javaでいうとjavadoc。perlでいうとperldoc。 inspect これの存在しってから劇的にコードの読み方が変わった。 pdb まだあんまり使ってないけど一応。 pythonインタプリタ rlcompleterとreadlineが使えるようにしておくのがお勧め。 import rlcompleter, re

    pythonのソースコードを読むコツのようなもの - maeda.na@はてな
  • クロージャによるOOP - Tociyuki::Diary

    ふと思いついて試してみたのですが、Perlでもクロージャを使ったOOPを扱えるみたいです。たぶん既出なのだろうと思いますが、見つけきれなかったのでエントリーを打ってみます。 例1. UP/DOWNカウンタ sub Counter::new { my $this = {}; $this->{class} = shift; my( $value, $step ) = ( 0, 1 ); $this->{step} = sub { $step = shift if @_ > 0; $step }; $this->{value} = sub { $value = shift if @_ > 0; $value }; $this->{up} = sub { $value += $step }; $this; } my $c1 = Counter->new(); $c1->{value}->(10);

    クロージャによるOOP - Tociyuki::Diary
  • 世界のナベアツに Ruby で挑戦する - Tociyuki::Diary

    squeak には構文上かないませんが、なるべく似た感じになるように ruby で書いてみました:-p ⇒ id:sumim:20080417:p1 「世界のナベアツに Squeak Smalltalk で挑戦する(改訂)」 このスクリプトはメソッド名に日語を使っているので、UTF-8 でセーブしておいてから実行します。 オリジナルとの違いは、squeak 版のようにコンテキストからローカル変数の値を参照できないものかと試行錯誤してやりかたがわからなかったので、クラス変数アクセスでごまかしています。また、〜になっての処理を関数合成しておいて、メソッド「なります」で値を適用する方式に変更しました。 (2008-04-18修正) FalseClass#のときだけ() メソッドが nil を返すように変更しました。 #!/usr/bin/ruby -Ku #Content-type: appl

    世界のナベアツに Ruby で挑戦する - Tociyuki::Diary
  • SSH の接続を共有する - odz buffer

    ref:http://www.revsys.com/writings/quicktips/ssh-faster-connections.html via:http://www.cuspy.org/blog/2007/09/21/ $HOME/.ssh/config に Host * ControlMaster auto ControlPath /tmp/%r@%h:%p とかくと、既存の SSH コネクションがあれば利用してパスワード/パスフレーズ入力なしで接続できるとのこと。おぉ、すげえ。 どうしても公開鍵認証をさせてくれないところなんかで役に立つかも。 そういえば、$HOME/.ssh/config を設定するという話はあまり知られていない気がするなぁ。知らない人は新山さんのでも読むといいよ。 入門OpenSSH 作者: 新山祐介出版社/メーカー: 秀和システム発売日: 2006/0

    SSH の接続を共有する - odz buffer
    agw
    agw 2008/06/15
  • HatenarMaps - はてな村勢力地図

  • 花見川の日記 - SONYは最初から”PS3”を売る気が全く無かった

    書いてるうちに朝になったので今日の日付でアップすることにしよう。 今回は再びPS3の話。 FIFTH EDITION - SCEと任天堂の「いつか来た道」 SCEは、かつて、PSでゲーム業界を発展させました。 サードに広く門戸を開き、冒険的なソフトが出せる下地を作り、小売を任天堂の支配から解き放ち、市場に競争をもたらしました。 ですが、市場を支配すると同時に腐って、どうしようもないほど腐って、PS3という問題児を作ってしまいました。上記のように、あちらこちらで批判されてるPS3なのだけども、何だかどうも引っかかる部分があった。 なので、前のエントリで、PS3は新しいテレビを目指そうとしたのではないかという推論を立てたのだが……どうもこれは違うらしい。 前エントリのコメント欄にて、 # rainbowjp 『ソニーはPS3をゲーム機とは考えてないよ。あれは今後のソニー製AV製品の雛形。 今後

    花見川の日記 - SONYは最初から”PS3”を売る気が全く無かった
    agw
    agw 2008/06/15
  • IT戦記 - 一行で IE の JavaScript を高速化する方法

    以下の一行をすべての 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 -

    IT戦記 - 一行で IE の JavaScript を高速化する方法
  • はてな村の地図『HatenarMaps』を公開しました - kaisehのブログ

    はてな村』のアナロジーを当に地図にできたら面白いだろうなと思って、週末を潰して作ってみました。TopHatenarが蓄積しているDBを一部活用したサービスになっています。 Blogopolis このサービスを簡単に説明すると、はてなダイアリーのユーザに、獲得ブクマ数に応じた領土面積を割り当て、さらに似た者同士の領土を隣接させるという試みです。 地図の全体を見渡すことで、はてダの大まかなトレンドを掴むこともできるし、スケールを拡大していけば個別記事に到達することもできます。さらに、Google Mapsで検索するような感覚ではてなidやキーワードを入力して地図を探索したり、「去年と今年で勢力図がどう変わったか」を調べることもできます。 HatenarMapsはTopHatenarと同様、Javaで開発しました。フレームワーク構成もTopHatenarと一緒で、Cubby+Mayaa+S2

  • Catmull-Rom 補間 - blog.seyself.com

    スプライン補間があんまり混雑な計算になってしまうので いろいろ探してたら「Catmull-Rom 補間」なるものを知りました。 function CatmullRom(p0:Number, p1:Number, p2:Number, p3:Number, t:Number):Number { var v0:Number = (p2 - p0) / 2; var v1:Number = (p3 - p1) / 2; var t2:Number = t * t; var t3:Number = t2 * t; return (2 * p1 - 2 * p2 + v0 + v1) * t3 + ( -3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1; } t には 0.0 から 1.0 の係数が入ります。 p0 から p3 間にある点、p

  • ペンローズタイルを並べる

    ご注意。やや古い記事になりつつあります。 最新の Gimp ではスクリプトが正常に動きませんでした。ご了承ください。 概要ペンローズタイルペンローズタイルについてタイル張りペンローズタイルの性質黄金比膨張と収縮局所同型定理ペンローズタイルの作成周辺部への継ぎ足しによる作成強制されるパターンを見出す収縮を用いた作成プログラミングLispMe による処理の流れの作成Gimp による PC 上での図形の作成フィボナッチ数列とペンローズタイル実際のペンローズタイルの作成考察と反省参考文献 概要 ペンローズタイルを作成し、実際に任意の平面に破綻の無いように並べる。また、その模様が正確な意味でペンローズタイルの一部であることを保証する。 ペンローズタイル ペンローズタイルについて 英国の数理物理学者ロジャー・ペンローズ(Roger Penrose)が 1974 年に発見した、非周期的にのみタイル張りが

  • 【β時代】幻の10分間【閉鎖直前の奇跡】‐ニコニコ動画(秋)

    幻の10分間の「あいつこそがテニスの王子様(Ameba版)」のキャプチャ。画質悪くて申し訳ない。幻の10分間とは?(ニコニコ大百科)http://dic.nicovideo.jp/a/%E5%B9%BB%E3%81%AE10%E5%88%86%E9%96%93未だにこれを見ると泣けてくる。そしてγへ→sm3526766

  • [帰ってきた]あいつこそがテニスの(ry [ニコ動復活]‐ニコニコ動画(秋)

    sm27の過去ログから、γ開始の最初の1000コメをとってきて、当時の様子を再現してみた。時間でいうと、2007/03/06 07:00:00の過去ログの1000米。閉鎖直前の奇跡→sm3315790 βのような濃い弾幕→sm3505675 マイリスト→mylist/6633594