Recent Posts

RSS Feeds

Another reason to love Source Beat - open source, delivered fresh...

Yes I should be writing but this struck me as very relevant so i thought I'd capture it...

I'm currently working on the cvs chapter of Eclipse Live and I was double checking some of the terms I was using in part of the discussion in the Eclipse online help. Well what do you know the help was way out of date. Still discernible but all different and hard to follow, esp if you were a newbie... Not that I fault the Eclipse people, I really want 3.0 to come out and I'd love to see JDK 1.5 implemented too. So please spend time building the app...

Now onto what is cool about SB. Given that the eclipse team has little time or incentive to get the docs updated for every round (M3, M4, M5...) the docs suffer for lack of attention. With the SB model there is financial incentive to get the docs updated in the book and the means to do it in the form of updates (about once a month).

I love it!

Permalink     1 Comment

Why I Love Word...

I'm working away on Eclipse Live and fighting bugs in Word.

This is one of my favorites. I am just starting on chapter 5 (about cvs) so I made a copy of chapter 4 - to get all the formatting stuff. Well anyway I selected the first paragraph and then started typing. I'm left with these little droppings at the bottom of the paragraph as well as the really cool effect with the words 'your projects'. It also deleted (whited out) a line in the following paragraph.

Perhaps one of those randomly freed pointers needs to be cleaned up :-)

Permalink     2 Comments

Sample Chapter of Eclipse Live Posted

A sample chapter of Eclipse Live has been posted on Source Beat.

I would love to get your feed back here or here!

Permalink     No Comments

M7 Ant Support - its the little things that count

I'm running through the M7 Ant support since I'm currently writing about Ant integration (chapter 4 of the Eclipse Live title). And it is really cool.
For example in the outline view of your build file now you can see not only the properties but the types. In addition the types now show their id attribute just like the properties show their names.

Other cool stuff...

  • Formatter - now you can have consistent formatting across all build files automatically...
  • Run - from the outline you can run targets

Very cool new features!

Permalink     2 Comments

Eclipse M7 Hits the Shelves

Here is the announcement from the eclipse-dev group

Eclipse 3.0 milestone 7 (M7) is now available for download. This drop is in the process of being propagated to the various Eclipse mirror sites, which usually takes a day or so.

For people who already downloaded the integration build with timestamp 200402122000, there's no need to download M7 - it's the same.

Click here for a summary of new and noteworthy features in the Eclipse 3.0 milestone M7 build.

Congrats Eclipse team. I've already started updating Eclipse Live! I love the sourcebeat model!

Permalink     No Comments

Colorado Software Summit!

The Summit pages are finally up. This is one of the best conferences you can imagine! It is always full of fantastic info and the atmosphere is just a blast. I hope to see you there!

If you want more info on what happens there check out the Software Summit category on my blog. I posted a wrap up from each session.

Permalink     1 Comment

Remote Debugging of Tomcat

OK I posted on this several days ago. And Matt R. had the great comment that I should be using the Sysdeo plugin. I promised that I'd repost after I had time to dig into it a bit. Here is that post...

I liked the Sysdeo plugin. It works like a champ, I didn't have any frustrations like I had the last time I tried (I think it was about a year ago or so). Debugging was a snap. The down side is that it launches Tomcat inside Eclipse. That is probably not that big of a deal most of the time though so if you are doing servlet development this is probably the way to go. One other nit that will be fixed RSN is compatibility with Eclipse 3.0M6. Interestingly enough though is that M7 is supposed to run 2.1 plugins. So we will see after M7 ships (just downloaded the candidate BTW but don't have time to try out Sysdeo now).

I'm still a glutton for punishment and want to run Tomcat in a separate process (I was debugging the last of the code for the JSF Book). So I also spent some quality time messing with remote debugging. My last post was overly optimistic. I did get it running but it was the JWSDP and it was very inconsistent. The Tomcat in that package is very different than 5.0.18. Once I figured that out I switched to 5.0.18 and it worked just as described in the docs (its on port 8000 on Unixes). I like remote debugging because I don't have to wait for tomcat to startup. I can use the ant tasks included with Tomcat to hot/re-deploy. Also I don't have to worry about my memory leaking hosing Eclipse (I can easily kill tomcat and restart it if it runs out of memory) but if my app consumes all the memory I'll cause Eclipse to go off into the weeds. Much more irritating.

So if you are like me and love pain :-) you can run tomcat 5.0.18 with ${tomcat.home}/bin/catalina.sh jpda start and then setup a Debug Launch profile in Eclipse on port 8000 and then you are remotely debugging your app. Even if you don't want to do it full time its lots fun to get it working.

Permalink     1 Comment

JSF Chapters Done!

Just finished the last of the chapters for the JSF book. Ah feel the tension drain from my head an neck ;-)

Next up is more work on the Eclipse Live title.

After I finish one more chapter there I will update the JSF presentation that I posted here many moons ago so that its up to date for the JSF beta release.

Permalink     No Comments

Amazon got it wrong...

Well Amazon is reporting that the JSF book will ship in 2 or 3 weeks. That is not true unless we enter a time warp... We should be finished with the edits for the beta release in 2 weeks then it will take Wiley some time to get the paper to Amazon...

Permalink     No Comments

Rick Hightower Rocks!

I was at EclipseCon last week which was at Disney Land. Anyway Rick was talking with some of the Disney folks that setup the space for the conference. They offered to let Rick and the rest of the Source Beat Team go to the park for the last two hours. Thanks Rick! We had a great time and the Matterhorn is still fun even if you are old like me :-)

Splash mountain was really cool too. However we were all supposed to make a stupid face, unfortunately I was the only one that got with the program :-) Well since a picture is worth a thousand words...

Permalink     1 Comment

EMF talk @ EclipseCon

Very very cool stuff. I've built a couple of models with it and I loved it. It was cool to see a call for us as a community do more though.

Here are my notes.

What is EMF?

emf allows you to do either code or modeling

 

Pragamitic unification of key technologies

1)    Java – model impl

2)    XML – model persistence

3)    UML & MOF – model definition

 

EMF has influenced and been influenced by OMG stuff

 

EMF History

MOF

1)    Efficient java implementation of a practical subset of the MOF API

2)    To avoid confusion the MOF-like core was called Ecore

 

What is MDD

1)    a model is – sql schema, uml, xml schemas etc

2)    Use the model to drive the rest of the process – development, architecture, support etc.

3)    Use patterns to transform models into pattern based code

 

Cool example…

Three ways to represent the stuff – java interfaces, uml diagram, xml schema.

Interesting statement that JDK 1.5 (metadata) will fix the lack of ‘getItems’ not specifying that the list that is returned has objects of type Item in it.

EMF can take any of the 3 forms and make a ‘canonical form’

Given one of the three representations you get

1)    full java impl

a.     model change notification

b.     persistence seralization of model data

c.     bi-directional reference handshaking (referntial integrity)

d.     proxy resolution and on demand-load

 

The canonical form is Ecore (really XMI) and from that all the other stuff can be generated (java interfaces, uml diagrams, xml schema).

 

The Ecore model fits on a page

 

Layers

1)    core runtime stuff EObject is the root of your modeled objects

2)    EObject is reflective

3)    Also the key to providing generic editing commands

a.     The EMF auto gens a simple plugin

4)    The .Edit stuff builds the editor that is platform independent (i.e. you could put a Swing UI on it easily)

5)    The next thing (.View I think) builds a simple plugin

Demo – starts with xsd and builds the app from it (the plugin)

Very cool mapping editor that I’ve not played with before

I want to write a book about this…

Generated code for the model, you see only the interfaces if that is all you want (it generates the implementation into another package).

You can modify the code that is generated and it won’t over write it.

Showed the edit project that made the ‘editable’ stuff on top of the model. The edit provides ItemProvider’s and an AdapterFactory for relationships and an EditPlugin thing.

Shows editor running as a plugin to eclipse… very cool. I wonder if they will support RCP plugins…

With the plugin you can edit the model

Rock’n

 

What can we do to use EMF?

Build models!

Visualize legacy code

A ton of other stuff that I could not type…

 

There is an RedBook on GEF

Permalink     No Comments

iPod the cool give away @ EclipseCon...

Two (maybe 3) vendors are giving away 20GB iPods here. I'm so wanting to win one, my 5GB is great but its just not as cool as a new 20GB one :-)

Permalink     No Comments

More EclipseCon Notes

I went to two other talks yesterday but had to leave in the middle of both. Why can't I just be at the conference... Ah well paying the bills is better than being hungry :-)

Plugin talk and the new OSGi talk was really good. The presenter (Nick Edgar) was great! He had a really funny set of questions to point out the way OSGi plugins know about their dependencies but don't have a nervous breakdown if they don't see them. It was full of great physco-bable very funny. Bottom line is that making the Eclipse runtime capable of doing dynamic loading and unloading of plugins is (relatively) easily. The hard thing is getting all the plugins to be aware of the dynamic nature. In other words the Foo plugin should not give up the ghost if it can't find the Bar plugin.

XP w/ Eclipse good talk but I was disappointed that I did not get to see Joshua Kerievsky. If you have not read the refactoring to patterns book you should. The part of the talk I got to see was all about JUnit integration which was really cool but I have the great fortune of already knowing most of what was covered. Cool Stuff;

  • You can run a test, a suite or even all the tests in a project, just select the project and use Run->Run As->JUnit Test
  • You can use QuickFix to drive your TDD process

I'll try to post more about this soon...

Permalink     No Comments

Subversion & Subclipse

Subversion and Subclipse look really cool! Can't wait to check it out. Here are my notes from the talk...

Easy use…

 

svn checkout http://svn.example.com/repos/project

cd project

jed brain.txt

svn commit –m “new plan to conquer the world”

 

subversion vs CVS

most cvs features

directory versioning

metadata on files – name value pairs can be attached to any thing

atomic commits (db on the background)

Branching and tagging are cheap

Designed for the network

Better binary file handling

Layered library design

 

0.37 is a release candidate should release on 2/23 will be 0.37 renamed as 1.0

 

revert allows you to go back to the old version (delete the changes you’ve made)

switch moves you between branches (cool)

 

Global version number for your project  - unique ‘name’ for a snapshot of your project

 

Branches are ‘copy on demand’

Tags are essentially a branch that is not changed.

 

Suggested layout

 

trunk

  source

  docs

  buildtools

branches

  issue-1003

  gstein

tags

  alpha-1

  etc

 

authentication is very cool – it uses http auth so it can even do certificates

 

modules – very cool too, the dependencies are specified via svn:externals property attached to a directory and is versioned like any other property

 

keyword expansion must be explicitly enabled on a file (via properties attached to the file).

 

Subclipse – subversion plugin to eclipse

  A team provider (repository)

  JNI stuff on the client – runs on mac?

 

cvs2svn converts CVS repo to svn

ViewCVS does subversion too

Hook scripts – commit emails, simple ACLs, reserved checkouts, repository backup

Libraries, scripting and svnlook

 

 

Permalink     No Comments

More: From JSF EA4 to JSF 1.0 Beat

This is a small one but a pain in the neck...

When converting to the beta you have to change *-tree-id to *-view-id in the faces config file. Sort of duh, but instead of telling you that the navigation rule was invalid JSF just throws a NullPointerException. Here is the stack trace I was getting in my browser.

java.lang.NullPointerException
        com.sun.faces.context.ExternalContextImpl.dispatchMessage(ExternalContextImpl.java:287)
        com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:144)
        com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:89)
        com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:209)
        javax.faces.webapp.FacesServlet.service(FacesServlet.java:196)

So just be aware that if you are getting errors like this its probably your faces config.

Permalink     No Comments