Jamon Tutorial - 9. Template Inheritance: Composing Template Output
2008年06月30日(月) 08:48
「Jamon template inheritance allows a template to declare that it can include the output of a child template that extends it.」 !いまいちっぽい Javaの継承機能を持つテンプレートエンジン。 テンプレートエンジン自体は意外と歴史が古く、商用サイトからのスピンアウトプロジェクトっぽい。 MPL
Visit SITE: http://www.jamon.org/tutorial/TutorialSample9.html
Cocoa on the web: 280 North, Objective-J, and Cappuccino
2008年06月30日(月) 03:19
RIAがいまいち受け入れられない「クライアントのインストール」という障害がないんだよねぇ。 でもなんでObjective-Cなんだ。。。
Visit SITE: http://arstechnica.com/journals/apple.ars/2008/06/26/cocoa-on-the-web-280-north-objective-j-and-cappuccino
MacではじめるLinux 〜 はじめてのVMware Fusion (導入編) - Unix的なアレ
2008年06月30日(月) 02:31
続く模様。期待してみる
Visit SITE: http://d.hatena.ne.jp/wadap/20080629/1214703866
第三回Python温泉
2008年06月29日(日) 09:38
まとまった成果は無いけど、一応メモ
自分のリポジトリをmercurialに移行する。
分散リポジトリはbranchを切るのが容易だから、ぜひsvnから移行するといい。正確にはsvnよりmercurialの方がbranchを切るのが容易。svnはbranch切ったrevisionとか覚えておかなきゃいけない。
自分でbranch切ることはあんまりないけど、svnからhttpに切り替えたかったからちょうど良いので。webインターフェースのcssをpateoさんが書いているし。
Creating a design - CSSEZ- default - base design created by cssez
2008年06月28日(土) 07:09
Browserでデザインを変更できるツール? ローカル版はもっとものすごいことになっていた。
Visit SITE: http://www.cssez.com/design.php#
プラグイン開発入門: 第 1 回 開発の基本
2008年06月27日(金) 15:21
今からEclipse Pluginsの開発とかしたい場合には、@ITの記事とかよりこっちを見るべき。というか、とにかくこっちを見るべき。
Visit SITE: http://www.ibm.com/developerworks/jp/opensource/library/os-eclipse-plugindev1/
Eclipseプラグイン開発: 「Eclipseプラグイン開発」記事一覧
2008年06月27日(金) 13:26
よういちろうさんの昔の記事
Visit SITE: http://yoichiro.cocolog-nifty.com/eclipse/2004/05/eclipse.html
エスカレータをクリエイティブに使って回転し続ける女性の映像 | IDEA*IDEA
2008年06月27日(金) 05:56
ばかすぐる
Visit SITE: http://www.ideaxidea.com/archives/2008/06/post_562.html
growlでバッテリ残量を通知 - /halt/Snapshot
2008年06月26日(木) 05:55
Linuxでgrowl互換のアプリ
Visit SITE: http://project-p.jp/halt/anubis/blog_show/1005
【コラム】イマドキのIDE事情 (25) JBoss ToolsでSeam開発!(1) - 便利なオールインワンインストーラが登場 | エンタープライズ | マイコミジャーナル
2008年06月26日(木) 03:52
Visit SITE: http://journal.mycom.co.jp/column/ide/025/
日本 PHP ユーザ会 (Japan PHP Users Group) :: メイン :: PHPカンファレンス2008 - ライトニングトーク募集
2008年06月25日(水) 09:45
帰ったら申し込む
Visit SITE: http://www.php.gr.jp/seminar/20080721/lt_offer.php
Carsonified » Blog Archive » Why Objective-J, Cappuccino and SproutCore are completely changing the web app industry
2008年06月25日(水) 05:45
「Cappuccino is a port of Cocoa (the set of Mac OS X Objective-C application frameworks) to the web. It was created by the 280North team.」 激しく期待。まだオープンになってないのか?
シナモン ザ ムービーのDVD
2008年06月25日(水) 00:55
さるご縁で特典映像に我が娘が出ております。
いまやサンリオをしょっているシナモンの映画DVDです。
親が果たせなかった名前付きの出演を4歳にして果たしましたorz
俺だって軍服着てBSスペシャルドラマに映ったさ><
開発者とデザイナの協働
2008年06月24日(火) 23:34
「開発者は最初の段階からデザイナーと共同で作業する必要がある」
グーグル、「App Engine」でデザイナーと開発者の連携狙う
デザイナとプログラマの協調作業については、Djangoのコア開発者(含むデザイナ)たちが提唱してきたことです。Djangoが標準ライブラリとして含まれるApp Engineが「デザイナーと開発者の連携」をうたうのもおかしいことではありません。
PHP Framework Fight!
2008年06月24日(火) 14:57
「PHP Framework Fight! は、数多く存在するPHPのフレームワークに、 同じアプリケーションを実装させ、その性能や実装効率を比較しようという企画」負けずにDjango版作る
Visit SITE: http://labs.strk.jp/code-fight/
[OSS][ERP][Nexedi] オープンソースERPのNexediグループが日本法人「株式会社Nexedi」を設立 / Nexedi KK est fondé au Japon. - ふぇみにん日記 (2008-06-24)
2008年06月24日(火) 13:22
Pythonの仕事がありますよー。かずひこさんと同僚ってのもポイント高いんだろうな。語学も堪能じゃないし、経営学もほとんど授業出てないし、条件満たさないなぁ。
Visit SITE: http://kazuhiko.tdiary.net/20080624.html#p01
ギークと197xと学生によるIT討論会
2008年06月24日(火) 11:11
ひがさんのエントリで、非常に期待をしていたら、さらにやばい人たちのセッションもある模様。
アルファギークと学生の討論会がギークと学生の討論会、
さらに、自重しない197xリアル現場な人たちと学生の交流会、[197Xs]アルファギークと学生の討論会 featuring 197Xsが続きます。
shot6さんはギークなんじゃないかとも思ったりしますが、団塊ジュニアな197xの気持ちが強いんでしょうか。197xは自重していると埋もれてしまう世代なんですよ。ひと大杉。
200人のキャパじゃきっとたりないから、是非ともSeasarカンファレンスの400人はいるという会場でやってほしい。見に行く。
しかし、9/6って結婚記念日だな。また、母子家庭とか言われるなぁ。。。
MacThemes / [Growl] iPhonesque — ala the dialog box on iPhone
2008年06月24日(火) 02:03
growl用テーマ
Visit SITE: http://macthemes2.net/forum/viewtopic.php?id=16783761
λ Tony’s blog λ » Blog Archive » Tests as Documentation
2008年06月23日(月) 01:28
ScalaでDocTest?
Visit SITE: http://blog.tmorris.net/tests-as-documentation/
SourceForge.net: JCR Browser
2008年06月22日(日) 07:43
Java content repository in Eclipse
Visit SITE: http://sourceforge.net/projects/jcrbrowser/
Python: Writing a Compiler and Interpreter in 160 lines of code
2008年06月20日(金) 14:19
Python: Writing a Compiler and Interpreter in 160 lines of code
Visit SITE: http://www.jroller.com/languages/entry/python_writing_a_compiler_and
これはすごい、PDFの編集ができるOpenOffice.org 3.x用エクステンション - ブログ: 岡崎 - Okazaki's blog
2008年06月12日(木) 09:20
PDFをインポートして編集できるエクステンション
Visit SITE: http://blogs.sun.com/okazaki/entry/これはすごい_pdfの編集ができるopenoffice_org_3_x用エクステンション
解答が発表されているみたいだけど、いけしゃあしゃあと課題 7 と 8 をやってみる
2008年06月12日(木) 09:17
コンテキストを関数として扱うという話
Visit SITE: http://return0.dyndns.org/d/2007/01/30
Scala Language | ActiveState Community Site
2008年06月12日(木) 08:32
Syntax highlighting and templates for the Scala programming language.
Visit SITE: http://community.activestate.com/komodo-extension/scala-language
InfoQ: Distributed Version Control Systems: A Not-So-Quick Guide Through
2008年06月12日(木) 07:22
gitとmercurialとbzrの比較。 フリーホスティングへのリンクもある。
Visit SITE: http://www.infoq.com/articles/dvcs-guide
Visual jQuery 1.2.6
2008年06月12日(木) 03:13
JQueryのAPIを見やすく(たどりやすく)したもの
Visit SITE: http://remysharp.com/visual-jquery/
Mac OSX Expose Clone for Windows Vista :: the How-To Geek
2008年06月09日(月) 07:13
Expose is an application on Mac OSX that tiles all the open windows
Visit SITE: http://www.howtogeek.com/howto/windows-vista/mac-osx-expose-clone-for-windows-vista/
Fat Cat Software - iPhoto Library Manager
2008年06月08日(日) 13:13
「multiple iPhoto libraries」 ライブラリを複数扱えるようにする。
Visit SITE: http://www.fatcatsoftware.com/iplm/
Scalaのtraitを試す
2008年06月07日(土) 22:57
さて、Python温泉ではScalaで動作するLIFTを見てみようと思っていますが、その前にScalaについてもう少し。
このエントリは、OSX(10.5.3)上のScala version 2.7.1.final (Java HotSpot(TM) Client VM, Java 1.5.0_13)を前提としています。core2duoのマシンが欲しいなぁ…
Scala勉強会で気になった機能にtraitという機能があります。
traitはclassに対して機能を追加するような使い方をするもので、定義自体はclassに似ています。
trait BehaviorA{
def hello(name: String) : String = "BehaviorA::" + name
}
Javaは多重継承を禁じていますので、共通機能を複数持ったクラスを作ろうと思うとclassの継承とinterfaceの実装を組み合わせなければなりません。
interface自体は実装を持たないため、同じ名前のメソッドを実装していることを保証するに過ぎないもので、しかも何度も同じような実装を記述しなければなりませんでした。こんなことをしようとするとJavaは助長なコードを書かざるを得なかったのです。
traitを使えば、機能の追加はこんな感じに書けます。AnyRefという参照型のボスを継承していますが、ここに本来継承したいクラスがくると考えてください。バラバラの機能 BehaviorA と BehaviorB を trait として定義しています。
trait BehaviorA{
def hello(name: String) : String = "BehaviorA::hello(" + name + ")"
}
trait BehaviorB {
def gooby(name: String) : String = "BehaviorB::gooby(" + name + ")"
}
class MainClass extends AnyRef with BehaviorA with BehaviorB {
def test(): String = {
return hello(getClass().getName()) + " and " + gooby(getClass().getName())
}
}
object Test {
def main(args:Array[String]) : Unit = {
val mc = new MainClass()
println(mc.test())
}
}
このscalaコードをコンパイルし、scala Testと実行すると、以下のように出力します。
BehaviorA::hello(MainClass) and BehaviorB::gooby(MainClass)
実装を持った BehaviorA と BehaviorB の機能を使えるMyClassが出来上がりました。
でも、ちょっと待ってください。Scalaって実はJavaのバイトコードにコンパイルされるんですよ。Javaって多重継承できませんよね?
できあがったclassファイルをjadでデコンパイルしてみました。
デコンパイルされたコードを見て、まず、へぇー、と。なんというかいいですねw
ちなみに、traitは状態も持てます。また「同名のメソッド等を知らないうちに上書きしてしまうのでは?」という恐れに対しては、メソッド等の上書き時にはきちんとoverride宣言をしないとコンパイルエラーとなるといった細やかな気の使い方で、安全にtraitを使用できるようになっています。
以下、デコンパイルしたコード
BehaviorA.jad
import scala.ScalaObject;
public interface BehaviorA
extends ScalaObject
{
public abstract String hello(String s);
}
BehaviorA$class.jad
import scala.StringBuilder;
public abstract class BehaviorA$class
{
public static void $init$(BehaviorA behaviora)
{
}
public static String hello(BehaviorA $this, String name)
{
/* 2*/ return (new StringBuilder()).append("BehaviorA::hello(").append(name).append(")").toString();
}
}
BehaviorB.jad
import scala.ScalaObject;
public interface BehaviorB
extends ScalaObject
{
public abstract String gooby(String s);
}
BehaviorB$class.jad
import scala.StringBuilder;
public abstract class BehaviorB$class
{
public static void $init$(BehaviorB behaviorb)
{
}
public static String gooby(BehaviorB $this, String name)
{
/* 6*/ return (new StringBuilder()).append("BehaviorB::gooby(").append(name).append(")").toString();
}
}
MainClass.jad
import scala.ScalaObject;
import scala.StringBuilder;
public class MainClass
implements BehaviorA, BehaviorB, ScalaObject
{
public MainClass()
{
/* 9*/ BehaviorA.class.$init$(this);
/* 9*/ BehaviorB.class.$init$(this);
}
public String test()
{
/* 11*/ return (new StringBuilder()).append(hello(getClass().getName())).append(" and ").append(gooby(getClass().getName())).toString();
}
public int $tag()
{
/* 9*/ return scala.ScalaObject.class.$tag(this);
}
public String hello(String x$1)
{
/* 9*/ return BehaviorA.class.hello(this, x$1);
}
public String gooby(String x$1)
{
/* 9*/ return BehaviorB.class.gooby(this, x$1);
}
}
Test$.jad
import scala.Predef$;
import scala.ScalaObject;
public final class Test$
implements ScalaObject
{
public Test$()
{
}
public void main(String args[])
{
/* 17*/ MainClass mc = new MainClass();
/* 18*/ Predef$.MODULE$.println(mc.test());
}
public int $tag()
{
/* 15*/ return scala.ScalaObject.class.$tag(this);
}
public static final Test$ MODULE$ = this;
static
{
new Test$();
}
}
Test.jad
public final class Test
{
public static final int $tag()
{
return Test$.MODULE$.$tag();
}
public static final void main(String args[])
{
Test$.MODULE$.main(args);
}
}
ハイブリッド言語Scalaを使う
2008年06月07日(土) 14:23
「BPStudy #10 : ハイブリッド言語Scalaを使う」 為になる。が、やっぱり説明聞いた方がためになる。
Visit SITE: http://www.slideshare.net/bpstudy/scala-453237/
Scala勉強会に行ってきました
2008年06月07日(土) 03:19
株式会社ビープラウドさんが主催の Scala 勉強会に行ってきました。
実のところあまりJavaの技術は追っていなかったのでScalaに興味を持ったのはliftのせいだったりします。興味を持った後も分厚い仕様等のドキュメントをプリントアウトしてちらっと見ただけでした。
勉強会自体は講師(MC?)の小泉守義さんが様々な言語に明るいこともあって、非常にためになりました。内容についてはスライドが公開されるようですし、きっとどなたかがきちんとエントリをおこすでしょう。
ちょっといくつか Scala の動作を試してみたいと思ったりもしましたが、電車に乗っている間に何をしたかったのか忘れてしまったのでよくPythonでやることを Scala でもやってみることでお茶を濁します。
カレントディレクトリにあるファイルのファイル名をゴニョゴニョするだけのスクリプト。基本的に、インタラクティブシェルからやってます。
Python
>>> import os >>> for x in os.listdir(os.getcwd()): os.rename(x, '%s.jpg' % x)
Scala
scala> import java.io.{File}
scala> for(f <- new File(".").listFiles) {
| f.renameTo(new File(f.getName + ".jpg"))
| }
まぁ、あんまりかわんないw。拡張子を削りたい場合とかはスライスがあるのでPythonの方がいいかな。
Hello, OSGi, Part 1: Bundles for beginners - Java World
2008年06月05日(木) 08:21
Creating, executing, and managing bundles in an OSGi container
Visit SITE: http://www.javaworld.com/javaworld/jw-03-2008/jw-03-osgi1.html
アップル ヒューマンインタフェースガイドライン
2008年06月05日(木) 04:43
この書類は、第一にMac OS Xのためのインタフェース資料です。
Visit SITE: http://potting.syuriken.jp/potting_conv/XHIG_J/XHIGIntro/chapter_1.html
Versions - Mac Subversion Client
2008年06月05日(木) 02:56
Versions provides a pleasant way to work with Subversion on your Mac.
Visit SITE: http://versionsapp.com/
Vista/XP Virtual Desktop Manager - Home
2008年06月03日(火) 09:11
A virtual desktop manager made for Windows Vista using the new thumbnail APIs to create a live preview of all of your desktops. It also supports Windows XP. Organize all of your open windows with a full screen interactive virtual desktop preview.
Visit SITE: http://www.codeplex.com/vdm
ロープ: 理論と実践
2008年06月03日(火) 01:58
Java 言語のデフォルトの String クラスと StringBuilder クラスは、大量のストリング・データを処理するシステムとなると十分に対応しきれません。この場合、これらのデフォルト・クラスより優れた手段となるのがロープ (rope) というデータ構造です。この記事では Java プラットフォームのロープ実装、Ropes for Java について紹介し、パフォーマンス上の問題を探るとともに、このライブラリーの効果的な使い方をアドバイスします。
Visit SITE: http://www.ibm.com/developerworks/jp/java/library/j-ropes/
言語のGC機能と参照カウント (前編) - font-family: monospace
2008年06月03日(火) 01:43
「原始的な参照カウントベースのガーベジコレクションは、循環参照が発生すると、その参照に含まれるオブジェクトを回収できないという厄介な問題を抱えている」 あとで試す
Visit SITE: http://d.hatena.ne.jp/moriyoshi/20080528/1211955227
Cuzillion
2008年06月03日(火) 01:29
「Webページ構造によるパフォーマンス・テストツール」 後で試す
Visit SITE: http://stevesouders.com/cuzillion/
twigadge - Google Code
2008年06月02日(月) 05:59
Vistaガジェット用twitterクライアント
Visit SITE: http://code.google.com/p/twigadge/
