タグ

ブックマーク / blog.xole.net (5)

  • ハタさんのブログ(復刻版) : やったーjavascriptでScala風のActorできたよー\(^o^)/

    まだ、loopとかreactとか、その辺りが動くかなーって感じで中途ハンパだけど。 元scalaのコード(http://www.scala-lang.org/node/54から転載) abstract class PingMessage case object Start extends PingMessage case object SendPing extends PingMessage case object Pong extends PingMessage abstract class PongMessage case object Ping extends PongMessage case object Stop extends PongMessage object pingpong extends Application { val pong = new Pong val pi

    twainy
    twainy 2011/04/08
  • ハタさんのブログ(復刻版) : Scala の trait って便利だよね。って話

    Scala Advent Calendar jp 2010の 12/20 を担当しました。Day 14です。 よろしくお願いします。 色々何か書こうか迷ったけど、traitについて書こうと思います。 scalaのtraitって、インタフェースのようでありながら実装を持てるので、色々便利ですよね。 javaからscalaと移行してきた人にとってtraitとはなんぞや?と思ってしまうので、そのあたりを書いてみようかと思います。 Slateによるtrait まず、traitだけを見ると、scalaのtraitは他の言語のソレと違っています。 例えが悪い(?)ですが、traitを持つSlateという言語(SELF系の言語で、small talkによく似ている言語です) の場合、traitはどちらかというと、メソッドの集合であって、そのtraitを使うことで多重継承等を行うようにできるヤツです

    twainy
    twainy 2010/12/20
    「scalaのtraitは他の言語と違い、継承による差分実装(java の interface は実装の継承だった)を行える機構だ!」stackable modificationのこと
  • ハタさんのブログ : 第2回設計勉強会に参加してきた

    第2回設計勉強会に参加してきました。 まず、こういった機会を提供してくれた id:shimookaさん、ありがとうございます。株式会社ディノさんも会場の提供ありがとうございます。LINDさんも毎度ありがとうです。 とりあえず、資料を置いておきます。 Event Php Study Design 2 View SlideShare presentation or Upload your own. (tags: php design) ちなみに、Teedaのレイヤーは Teeda Extension featuring Goya 〜アーキテクチャ【レイヤー構成】〜 - たかのり日記 さんのを、チョーそのまま使ってます Hermit は http://svn.coderepos.org/share/lang/php/misc/Hermit/ 今回の発表は、すいません。あまりまとめきれていなく

    twainy
    twainy 2008/11/07
  • ハタさんのブログ : setTimeoutの実行は、functionの評価が終わってから

    たぶん、IT戦記な人とかが書いてるんだろうけど、少し書く。 setTimeoutが実行されるのは、functionの評価が終わってから。ということ。 もっというと、setTimeoutが宣言されたスコープ(コンテキスト? 関数?)の評価が終わってから、setTimeoutで登録された関数がスタックで登録される(実行待ち) その後、登録された関数を順次実行していく とりあえず、サンプル たとえば、次のコードに書かれているsetTimeoutが実行されるのは、0ms後ではなく、functionの評価が終わってから Event.observe(window, 'load', function (){ var start = new Date; console.log("start: " + (new Date - start)); setTimeout(function (){ console

  • ハタさんのブログ : Javascriptによる大規模開発の覚え書き

    未だに半年前のエントリにブクマされるみたいなので、もう少しjavascriptについて書いてみる。 今回は大規模化開発におけるJavascriptの注意点とかそういうの。当てはまらない環境の方もいます。(しかも基的な事だらけで大したことは書いてないです) ほぼリッチクライアントを主目的としたjavascripterとコードを対象とします。 どちらかというと、ライブラリを提供する側の視点から 1.ログを出力せよ あなたが書いたコードは遅い、と必ず言われます。なので言われる前から、自分の書いたコードの処理時間をログするようにしましょう。 次のような処理時間を計測するロガーを作ります。 var TraceLog = function (){ this.startTime = -1; var outer = document.getElementById('_outer'); if(oute

  • 1