2008-01-01から1年間の記事一覧

ANTLRをeclipse上で使う。

まぁ、eclipseのプラグインはすでにあるのだけどさ。 Eclipse Eclipse 3.3+ for Antlr 3.xAntlrDT is a standard Eclipse plugin implementing an Antlr 3.x specific editor, outline, and builder. See http://www.certiv.net/projects/plugins/antlrdt.ht…

gUnitに挑戦。

まぁ、何かテキトーに動きそうなツリーが出来たトコロで、 エラー処理辺りを作りこもうかな…と言う気分なのだけど、 そもそも良く分かってない部分があるので、細かい単位で動かせないと駄目だよね…と言う訳。 で、ANTLRには、gUnitと言うテスティングツール…

IF文をパース出来る様になったり。

コメントとテキストを分割出来る様になったので、 次は、条件分岐をパース出来る様にしてみる。

メモ。

スーパークラスを変えるとデバッグできなくなるので注意 (デバッグ用のスーパークラスを使ってブレークとかトレースしてる模様)

ANTLRWorksが余りに凄いので、今日はANTLRWorks記念日。

ANTLRWorksの使い方がようやく分ったので、結局、ANTLRを使う事に。 コンパイラの知識らしい知識を全く持たずに、どこまでいけるか頑張ってみる。

継承とかmixinとか。

Scalaには、traitというキーワードがあって、mixin専用のクラスというか、objectを作る事が出来たりするですな。 こいつは、中々に面白い。

Structural Subtyping の実装。

何日か前に痺れたStructural Subtypingが.scalaから.classにコンパイルされると、 どういう実装になっているのか気になったので、jadってみますた。

::の件、続き。

scala.Listの中に、 sealed abstract class List[+A] extends Seq[A]こんなクラスがありましたよ。 このクラスは、こんなメソッドを持っているます。 def ::[B >: A] (x: B): List[B] = new scala.::(x, this)昨日、抜粋したcase class の::が何故、いきなり…

car とか cdr の件。

カーとかクダーとか、聞いて、::が何故case classなのか分かりましたよ。 ちなみに、scala.Listには、 こんなcase classもありましたよ、やりましたね。 @SerialVersionUID(0 - 8256821097970055419L) case object Nil extends List[Nothing] { override def…

昨日のDuck Typingモドキなアレ。

structural subtyping と言うらしい。 関数型言語とは、どうやら直線的に関係がある訳でも無いみたい。 まぁ、何か色々議論がある様だけども、良く分からんので、後回し…とす。

関数型言語の初学者はこれをヨメと。Twitされますた。

数理科学的バグ撲滅方法論のすすめ---目次 http://twitter.com/ashigeru/statuses/773216887 なるほど、読み易い感じ。ありがとうござます。

::とか:::の件。

ソースコードをダウンロードしたら、疑問は氷解した。Listに、::ってcase classが定義されていた。 @SerialVersionUID(0L - 8476791151983527571L) final case class ::[B](private var hd: B, private[scala] var tl: List[B]) extends List[B] { def head …

記号をメソッド名に使えるとこういう事になるから困る。

def main(args: Array[String]) { class Stack[A <:AnyVal](val elem:A) { def >>[B <: A](newone: B): Stack[B] = new Stack[B](newone) { override def toString() = newone.toString() + " " + Stack.this.toString() } override def toString() = elem toString } var s = new Stack(10) >> 4 >> 11 >> 6 >> 1 println(…</:></:anyval](val>

で、一体何が起きてるん?

println(List(1,2) :: List(3,4)) println(List(1,2) ::: List(3,4)) コンソールには、 List(List(1, 2), 3, 4) List(1, 2, 3, 4) と言う風に出力さりる。 一体どうなったら、こういう結果になるのだろうか。ワカラン…

恐るべし・・・

何かと出遅れた感タプシなのだけど、ちょっと触ってみてる。 package aaa object Flyers { class Bird(val name: String) { def fly(height : int) { Console.println("I'm Fly") } } class Plane(val callsign: String) { def fly(height : int) = { printl…

Mercurialが軽く祭りになっているようだ。

SCM

と言う訳で、僕にとっての期待の星であるMercurialEclipseのサイトを久しぶりに見てみる。 Implemented mercurial commands * hg init * hg clone * hg push * hg pull (no update/merge yet) * hg commit * hg add <file> * hg remove <file> * hg diff <file> * hg log <file> (Out</file></file></file></file>…

何だろうこの開き直りきった感のあるテクノロジは。

TSSのフィードで拾ったデスヨ。 JSSP (JavaScript Server Pages) is a runtime library to generate web pages using JavaScript on a Java web server. It requires a web server that can run Java Servlets (such as Tomcat, JBoss or others). サンプル…

Taskをアドインするとか、そういう話。

重要なのは、 ThoughtWorks.CruiseControl.Core.ITask タスクである為に実装するインターフェース。Runメソッドが定義されている。 ThoughtWorks.CruiseControl.Core.IIntegrationResult Runメソッドの引数となるオブジェクト。現在の処理プロセスに紐付くコ…

MS Project Server 2007 SDKと戯れる。

QueuePublishを忘れると、何か色んなトコロから、例えばProject Web Accessから、作成したProjectを確認する事が出来ないので注意。 ちなみに、パラメータのwssUrlは、nullや空文字食わせても、project名をテキトーに使ってくれる。

Office系のSDKのありか。

SharePoint Server 2007 SDK: Software Development Kit Project 2007 SDK: Software Development Kit いつも見つけられない。見つからない。一体どうなっているのか。と言う訳。

何か気持ち悪いアレ。

Language Oriented Programming (LOP) is concerned with giving users the mechanism to define DSLs or to extend existing ones. XMF is an open source programming language which supports the LOP paradigm. All aspects of XMF can be easily extend…

MS Project Server 2007 と仲良くするには。

ドキュメントが激しく発見し辛いトコロにあるので、ショートカット的なアレをメモ。 Project.CheckOutProject Method (WebSvcProject) PDS and PSI Code Examples Project 2007 SDK: Software Development Kit JobIdというGuildをサーバにリクエストを投げる…

構成管理ツール的なアレの話。

MSのテクノロジと言うかツールがスゲーと言う話。 まず最初に、 Visual Studio Team System 2008 Visual Studio Team System 2008 Team Foundation Server の組み合わせは、非常に良い構成管理を行う事が出来ると思います。 僕が、これらの製品が非常に良い…

java.util.concurrent.ScheduledExecutorService

何かそれなりに重い処理が色々あったとする。バッチ的なアレとか。 で、処理は大体がアトミックで、スレッドプールを使って、それぞれを処理する事で、処理効率を稼ぎたい時に使うAPI。 Javadocを見てても良く分からんくて、ハマったので、実装例をばメモ。

eclipseに設定されているSystemPropertyを使う。

eclipseで、JUnitとか、アプリケーションを起動する時に、 既にeclipseで設定している内容を、引き渡したい事があったりなかったり。 まぁ、具体的には、Proxyの設定なんだけども。 「Run Dialog」や「Debug Dialog」で、「Arguments」タブがあるやつは、 「…

RE:[Eclipse]ResourceSynchronizer

“not found source code” → これは source code not found だと思います。 「アコーデオンオープン時、Eclipse上でエディタが開く→それを閉じる→アコーデを閉じるなどする→もう一度同じアコーデを開く」という手順を行ったときに、Eclipse上でエディタが開き…

JavaによるWebFrameworkに実装されているエラー画面を集めてみた。

自分が、作った画面がどれだけ派手なのか確認する為に、 エラー画面がリッチっぽいフレームワークを集めてスクリーンショットを撮ってみたり。

ResourceSynchronizerは、普通のIEやFireFoxでも動きますですよ。

こんな感じ。 IE6 sp2 Firefox 2.0.0.12

ResourceSynchronizer 0.0.3 リリース

Ext.jsのコンポーネント群が余りに素晴しいので、 自分でも使ってみたくなって作り込んでみましてん。 去年辺り、どこかで、エラー画面は贅沢な方がイイヨネ。 とかそんな話があったのを思い出して、無駄にリッチなエラー画面を作り込んで見ました。 ちなみ…

Ext.jsのAPIドキュメント

激しくかっこいい。見た事無い人は、是非見るべき。 Ext 2.0 - API Documentation パッケージのツリー階層がイイ。見易い。 左上の検索ボックスは、インクリメンタルサーチ、うひー、カッコイイゾ! クラス名をクリックするたんびに、タブが増えたりしている…