Skip to main content

Ethan Nicholas

Ethan Nicholas is the lead engineer for the Yahoo! Publishing Tools team, and was the original author of the Swing-based Yahoo! SiteBuilder web design application. In his spare time he is developing JAXX, an XML-based user interface language for creating Java desktop applications.

 

Articles

Swing's great, except for the thousands of lines of manual layout, event wiring, data binding, etc. JAXX offers an alternative: an XML markup that offers faster and more intuitive ways to lay out and wire up your GUI, while still offering tremendous flexibility. Ethan Nicholas shows what's inside...

Weblogs

How people configure Swing today

If you've ever written a non-trivial Swing program, you've probably written
code that looks...

I know, I know, it's been far too long since I've made an entry. My younger son is ten months old now, so I suppose I should probably stop using "new baby" as an excuse for my laziness...

...

In my last entry, I briefly introduced the major features of the upcoming Consumer JRE.

When Steve Jobs announced the iPhone at MacWorld, Mac fans were understandably upset that no other announcements were made.

Dieter Krachtus just sent me a link to a project he's working on, a shell extension which allows you to treat JAR files as executable...

My sixteen-month-old son is just at the point where he's beginning to play tag, so it's a part of my day-to-day life now. It's fitting that I find myself tagged by...

Ok, this isn't strictly Java-related, but it's geeky enough that I hope you find it interesting regardless.

I've been writing Java code for more than a decade now, and there are a handful of methods I've ended up copying & pasting (or, sadly, reimplementing) in virtually every program I've ever...

"Java Browser Edition" History

Some time ago I proposed the idea of a Java Browser Edition. The...

I mentioned in my last entry that I have left Yahoo! and am now officially a Sun employee.

When you work at a major Internet company like Yahoo!, deployment is a Big Deal. You have millions of customers running every version of every OS imaginable, some with marginally working...

Strings are a fundamental part of any modern programming language, every bit as important as numbers.

I'm on vacation with my family right now. Vacation time is pretty hard for me to come by -- one of the dangers of being "essential" is that nobody wants to let you leave -- so this is a...

(For an introduction to JAXX, start here.)

First things first: JAXX 1.0.1 is finally out. This version...

Swing's mnemonic system is based around two properties: mnemonic (or displayedMnemonic) and displayedMnemonicIndex. They're powerful enough to do everything you need,...

Scott Delap (of ClientJava.com fame) just sent me a gem of an article: a Washington Post blogger...

(If you have no idea what JAXX is, take a look at Introducing JAXX)

I'm usually pretty good about hitting...

If you're not familiar with JAXX, it is an open-source XML language for creating Swing GUIs that I'm working on.

Some time ago I was interviewing candidates for a Senior Java Engineer position. Among the many questions I asked was "What can you tell me about weak references?" I wasn't expecting a detailed...

Memory leaks in Java are fortunately pretty rare, and when they do exist, off-the-shelf tools like JProfiler and OptimizeIt normally make short work of them. So when I discovered that an...

Java suffers from a layout crisis. It ships with a bunch of poorly-thought-out layout managers, a few (like GridLayout and BorderLayout) that are decent within their limited niche, and......

While working on my XML user interface language, JAXX, I wanted to provide a mechanism for users to add support for additional tags and data types.

The problem

In my day job at Yahoo!, I face a frustrating problem: Java is the most powerful browser-based technology available, easily besting...

Swing does a great job of separating data (the models) and controls (the components themselves), but it really doesn't do a good job of separating controls from presentation...