Josh On Design

  • Blog
  • About Josh
  • Books & Writing
  • Apps & Projects
  • Hire Me
past future

    Amino + Swing = Crazy Delicious

    December 9th, 2010

    For the past few months I've been working on an open source UI toolkit called Amino. It has lots of cool features like a scenegraph, CSS control skinning, and dynamic translation editing. You just have write your app in Amino and you get the cool stuff for free. But what if you have an existing Swing application and don't want to rewrite it? Don't worry, Amino's got you covered.

    Read more...

    Tagged: java.net

    Leonardo needs a server side engineer

    December 7th, 2010

    We are making progress on the next release of Leonardo, an open source desktop Java drawing program. One of the key features scheduled for the next release is a webservice that lets users save and share reusable symbols they've created. For example, someone could create a set of GWT mockup widgets, then share this set with others.

    Read more...

    Tagged: java.net

    Ruby Red is Here!

    November 22nd, 2010

    Ruby Red, the first full release of Leonardo Sketch is ready for download. Leonardo is a desktop open source drawing program written entirely in Java. In this first version of Leonardo, features include:

    Read more...

    Tagged: java.net

    When Commented Out Code Attacks

    November 5th, 2010

    AKA: a Teachable Moment in Performance Tests, Profilers, and Debugging statements.

    Read more...

    Tagged: java.net

    Leonardo Beta 2 is Not a Witch

    November 3rd, 2010

    When you go to the polls today shouldn't you make sure you have the support of a drawing program that will fight for your interests in Washington?

    Read more...

    Tagged: java.net

    The Deprecation

    November 3rd, 2010

    The Deprecation

    If you're reading this blog then there's a good chance you've heard Apple has deprecated their implementation of Java on the Mac. Contrary to the resulting outrage over the last few days, I don't find change to be a shocking surprise.

    Read more...

    Tagged: java.net

    Announcing Amino, a new UI toolkit for Desktop Java

    October 9th, 2010

    A decade from now 90% of people will use phones, slates, or netbooks as their primary computing device. This is a very exciting development in the software world and promises to reshape the way we make software (check out the great stuff our lead developer is doing in his day job at Palm), but Amino isn't for that world. Amino about that 10%: the content creators who need killer desktop apps, the programmers who want great tools, and the knowledge workers who need to manage incredible amounts of information at lightning speed. Amino is the toolkit to build these apps.

    Read more...

    Tagged: java.net

    Announcing Amino, a new UI toolkit for Desktop Java

    October 9th, 2010

    A decade from now 90% of people will use phones, slates, or netbooks as their primary computing device. This is a very exciting development in the software world and promises to reshape the way we make software (check out the great stuff our lead developer is doing in his day job at Palm), but Amino isn't for that world. Amino about that 10%: the content creators who need killer desktop apps, the programmers who want great tools, and the knowledge workers who need to manage incredible amounts of information at lightning speed. Amino is the toolkit to build these apps.

    Read more...

    Tagged: java.net

    Anouncing Leonardo

    September 5th, 2010

    Today I am proud to announce a project I've been working on for the past few months called Leonardo. I've long believed there's a need for a good desktop drawing app that is completely cross platform, free, and open source. Leonardo is that app.

    Read more...

    Tagged: java.net

    XML Utility Library

    June 28th, 2010

    As part of some open source stuff I've been doing on the side I've had to generate and parse a lot of XML. I like working with the DOM because it's tree structure cleanly matches my needs, but the W3C API is *so* cumbersome. The DOM was designed to be implemented in any language, not just clean OO languages like Java, so any code using it will work but be ugly. After considering a few other XML libraries I decided to write a new one that would work with modern Java 5 language features like generics, enhanced for-each, and varargs. This library is super tiny because it simply wraps the standard javax.xml libraries in the JRE, but gives you a much nicer interface to work with. Here's how to use it (or download it here):

    Read more...

    Tagged: java.net

    Palm's webOS, the OS Built From the Web, Puts Users and Developers First

    April 15th, 2010

    There's been a ton of talk lately about several mobile operating systems and their problems, such as language restrictions, fragmentation, and anti-competitive practices. It's never a good idea to talk bad about your competition, so I'll take this opportunity to simply say a few things about the webOS (the OS that powers Palm's Pre and Pixi phones) that you might not know.

    Read more...

    Tagged: java.net

    Palm Developer Day and OSCON

    April 12th, 2010

    A big part of my new job at Palm is education, in the form of tutorials, blogs, and of course speaking at conferences. Two new speaking engagements have recently come up. Palm Developer Day and OSCON.

    Read more...

    Tagged: java.net

    Palm's Hot Apps Promotion, and the Zen of Servlets

    April 12th, 2010

    I'm excited to show you all one of the things I've been working on since I joined Palm.

    Read more...

    Tagged: java.net

    The iPhone, Open Systems, and Leaving Sun

    February 4th, 2010

    Lots of people have opined on Apple's iPad, many deriding it's closed nature and lack of features. The thing is, those problems don't matter to most people. The iPad isn't for you or me. It's for everyone else. I've spent the last 20 years hoping we would have the technology to build such a device, even though I knew it was a device I would not personally use. But that doesn't matter..

    Read more...

    Tagged: java.net

    2009: a year closes

    January 4th, 2010

    You might be wondering where I've been the past few months. JavaFX and Java Store work has definitely heated up, which has taken up the bulk of my time. I've also been working on Project Maitai, a tool for reactive visual artwork, as well as traveling to Sweden to speak at OreDev.

    Read more...

    Tagged: java.net

    My new blog

    October 20th, 2009

    As many of you may know, user interface design is a passion of mine. I want software that both looks pretty and acts well. I've had lots of ideas on the topic, often bleeding over into art and traditional design, in addition to usability. After thinking about it for a couple of years I've finally decided to create a blog dedicated to the topic: www.joshondesign.com

    Read more...

    Tagged: java.net

    The Java Store, a Q&A

    June 17th, 2009

    One of the big announcements at JavaOne was the Java Store. I'm especially proud of it because I've been secretly working on the project for the past few months. Since the announcement I've gotten a lot of questions on the store and how it relates to the rest of the Java ecosystem. To supplement the excellent FAQ I thought I'd answer a few questions.

    Read more...

    Tagged: java.net

    Top 5 Most Important Features in JavaFX 1.2

    June 9th, 2009

    Technically I'm on vacation this week so don't mention this post to my boss. I simply couldn't wait to blog about cool stuff we put into JavaFX 1.2. Shhhhh!

    Read more...

    Tagged: java.net

    JavaOne: And so it begins

    May 31st, 2009

    I've just arrived in SF for my fourth JavaOne conference. Despite the usual chaos this year's prep has gone very well. We have a ton of new things to show you. Most importantly we have the new release of JavaFX. As previously noted it has REDACTED, and REDACTED as well as greater REDACTED to make your apps run. Which, as you can imagine, is totally awesome. And of course the big news is support for REDACTED and REDACTED, as you can see in the screen shot below:

    Read more...

    Tagged: java.net

    Want a Job Coding Extreme Swing?

    March 26th, 2009

    I don't normally post about job offers, but this one is simply too cool to pass up. The guys at Limewire are looking to hire a new Swing developer. For those of you who don't know, Limewire is the premier peer-to-peer file sharing client on the Interwebs. These guys have been doing killer Swing GUIs for a long time and even inspired some of the hacks the book Chris and I wrote. If hired, you'd get to work on their audio player and develop a new video player for the Limewire client. Sounds like a dream job.

    Read more...

    Tagged: java.net

    A Tale of Two Challenges

    March 22nd, 2009

    A lot has happened since I last blogged. The JFXStudio hit 33k hits with 50 posts, I've started working on a new secret project built with JavaFX, and we had a rockin' booth at SXSW last week. I'll cover SXSW and our new party app in another blog soon. First things first: Developer Challenges!

    Read more...

    Tagged: java.net

    Introducing the JFXStudio

    February 15th, 2009

    Today I'm pleased to announce a new experimental site a few of us have been working on called the JFXStudio (www.jfxstudio.org). It's a site specifically for sharing your JavaFX creations. The JFXStudio is not meant to be an app-of-the-day kind of site, or a showcase for polished apps. It's a place where you can show off your doodles and works in progress. And it's a place where you can get great feedback on your JavaFX creations. Think of it as a Flickr or DeviantArt for JavaFX instead of images. Go check it out at www.jfxstudio.org. We've pre-seeded the site with creations from 6 prominent JavaFX bloggers (like the one below) and we can't wait to have more submissions.

    Read more...

    Tagged: java.net

    There is no JavaFX Mobile. There is only JavaFX.

    February 5th, 2009

    I know I haven't been blogging, twittering, or doing the FaceBook very much lately. That's because I've been very, very busy working. As we promised last summer, the next release of JavaFX coming out soon. For desktop developers you won't notice too many changes, mostly bug fixes (and a feature or two). The big news is that this will be our first release with full mobile support. Of course this really isn't news either, since it's what we promised last summer. In fact, mobile support has been the driver for this release. Pay attention for news coming out soon with the details. So with no news for you, why am I writing this blog?...

    Read more...

    Tagged: java.net

    JavaFX at Devoxx

    December 13th, 2008

    I'm in the London airport awaiting my flight back home. After an exhausting week at Devoxx it will be good to be home and on vacation until the end of the year. And what a year it has been. At JavaOne we showed new JavaFX features and gave a roadmap for the JavaFX preview and final release. Now, six months later, we have hit every milestone and JavaFX 1.0 is out for the world to play with and build on. It feels immensely satisfying (and tiring) to have the bits out there.

    Read more...

    Tagged: java.net

    Goodbye Mr A

    December 4th, 2008

    First I'd like to thank The Hoosiers; a British band who, for reasons inscrutable to man, formed in the American midwest.

    Read more...

    Tagged: java.net

    The Final Countdown

    December 3rd, 2008

    Why do I have a bad 80s song in my head.

    Read more...

    Tagged: java.net

    JavaFX at OreDev

    November 26th, 2008

    Last week I gave two sessions on JavaFX at the OreDev conference in Malmo, Sweden (sorry guys, I don't know how to put the dots over the 'o' with my english keyboard). I had a wonderful time. This is one of the most organized and well designed conferences I've ever been to. The speakers were treated very well with shuttles to the conference, a tour of the city, and even a special dinner in the history city hall building with the deputy mayor.

    Read more...

    Tagged: java.net

    JavaFX in Sweden

    November 9th, 2008

    I have been extremely remiss in my blog posting. A quick glance at Java.net says that my last post was August 26th. Well, my only excuse is that I've been mad busy working on the JavaFX SDK. Launching a new platform is a big deal, with many tiny details to be taken care of. I'm heading up the samples and demos effort to make sure we have lots of great sample code for you to learn from. As you can imagine that's taken pretty much all of my time. It'll be over soon, though. The end of fall approaches. :) And once we release the SDK I'll have tons of things to post about (after a much desired vacation).

    Read more...

    Tagged: java.net

    A Better Applet Experience, Part 2: Poster Frames

    August 26th, 2008

    In part one of this series I showed you how to set up a loading image, including an animated spinner gif. In this part I'll show you how use a screenshot or poster frame to speed up page loading.

    Read more...

    Tagged: java.net

    A Better Applet Experience, Part 1: a custom loading screen

    August 14th, 2008

    You may have heard that JavaSE 6 update 10 is supposed to improve the experience of applets. You may have even seen the demos of dragging and dropping applets out of the webbrowser, but there's a lot more to it than that. In this series of blogs I'll show you how to get the most out of deploying your applets, even if you aren't using Update 10.

    Read more...

    Tagged: java.net

    JavaFX bleg

    August 5th, 2008

    The initial JavaFX Preview SDK release has gone pretty well. There were a few snafus and broken links, but overall it has gone pretty smoothly for a first preview release. As we plan our next steps I thought I'd ask you all a question. In fact, I'm going to abuse the great power of my blog (2-3 power, to be exact) by begging. So this is a blog beg, or bleg: what samples do you want to see?

    Read more...

    Tagged: java.net

    24 hours later

    July 31st, 2008

    Whew! Our launch of the JavaFX Preview SDK yesterday went pretty well. Only a few broken links which have since been fixed. After waking up at 5:30 am to turn on the new sites I spent most of the day monitoring weblogs and answering questions. It was a pretty good turnout, with most developers reacting positively to the SDK. Here's a quick rundown of things you might have missed.

    Read more...

    Tagged: java.net

    JavaFX Preview SDK released

    July 31st, 2008

    I'm happy to announce that we have released the first preview version of the JavaFX SDK. Head over to JavaFX.com to check it out. We've all been working very hard on it for the last few months, so it's quite a relief to have it out. You can see my first post on our new official JavaFX blog. In this post I'll show you the code to build this graphical goodie below. (sorry, no snails involved Coté)

    Read more...

    Tagged: java.net

    WidgetFX: Glossitope reinvented

    July 29th, 2008

    I always hate it when I get so busy that I can't finish an open source project I started. On the other hand, I absolutely love it when someone likes an idea I came up with but feels they can do it better, and then does. Case in point: AB5k aka Glossitope aka a new widget system for Java. I started this about two years ago, showing it off at JavaOne 2007. Alas, it ran into technical difficulties right at the time I started working on JavaFX, sucking away all of my time. Thus, the project is dead and the domain turned to dust. Or has it .... ?

    Read more...

    Tagged: java.net

    And now for something completely different

    July 25th, 2008

    I spent this week at OSCON having a great time. While I love JavaOne it's really not that fun for me. I'm usually involved in several sessions, a few demos, and getting a release ready. I don't get to actually attend JavaOne. I usually can't attend sessions and actually learn something new. It's an exciting experience, but not fun or relaxing.

    Read more...

    Tagged: java.net

    OSCON and the JavaFX SDK

    July 16th, 2008

    We are now in the final push to get the first Preview Release of the JavaFX SDK out the door for the end of the month. I'm excited by what we've put together but also exhausted. We've done an incredible amount of work during the last year. Now I know what it was like in the early days of Java. Since JavaOne 2007 we've built (from scratch), a compiler for a new language with many non-trivial features, a GUI runtime with a new graphics and animation stack, new netbeans plugins with code completion, utilities for graphic designers, a new kind of javadocs (rewritten from the ground up), plus docs, samples, and demos. And that's not even counting the many improvements that are going into JavaSE 6 update 10. Whew! It's been a long year.

    Read more...

    Tagged: java.net

    JavaFX Innovations: Inline Examples and Screenshots

    July 3rd, 2008

    One of the innovations in the JavaFX toolchain is our new javafxdoc tool. Rather than producing a set of html files like regular 'javadoc' does, we produce a single large XML file representing the entire codebase's API. This lets us easily add extra processing steps, such as producing semantic wellformed XHTML as you see today. It also lets us do a few other things. I think I've mentioned before the custom doclet tags for things like default value and read only attributes. Now we've added inline examples.

    Read more...

    Tagged: java.net

    Java Doodle: fading translucent windows, on PC & Mac

    June 6th, 2008

    This is the next in my series of Java Doodles. There is a link to my previous one in the references below. This time I'm going to show you how to make a translucent window by setting the opacity value using new apis in JavaSE 6 update 10. However, I'm also going to show you how to make it fade in when you mouse over it, similar to some popular chat applications, as well as work properly on the Mac and degrade gracefully when running versions of Java.

    Read more...

    Tagged: java.net

    Java Doodle: crossdomain.xml Support

    May 28th, 2008

    While we wait for the full JavaFX SDK to be released later this summer I'd like to show you some cool desktop Java things that you can do right now. This is the first in a series I'm going to call Java Doodles, highlighting the new features in JavaSE 6 update 10, now in beta. Join me over the coming weeks when we will explore more cool things you can do with desktop Java.

    Read more...

    Tagged: java.net

    JavaOne Exhaustion (with links!)

    May 19th, 2008

    So another JavaOne has come to an end. This time I think I finally tried to simply do too much. I'm lucky I didn't get the Moscone flu. Still, all in all, I think we had a good showing. I'm disappointed that the JavaFX SDK had to wait until July, but I'm glad we made the decision to put quality above meeting a conference deadline. Plus, there's a whole lot more to JavaFX than what's in the forthcoming SDK, which I'll discuss later this week. I've also been collecting links and cool demos to feature on our new website. You'll see some of them go up in the following months.

    Read more...

    Tagged: java.net

    JavaOne video blogs with Rachel Hill

    May 6th, 2008

    My first two video blogs with Rachel Hill are up. The first is a sneak peek of what's coming during my demo prep. The second is some excerpts from this mornings keynote, including the t-shirt hurling and Neil Young's Blu-Ray disk.

    Read more...

    Tagged: java.net

    My keynote demo

    May 6th, 2008

    Well, the initial showing didn't go so well. The main parts worked but it crashed twice on stage when my boss demoed it. When we showed it again this afternoon and added Jabber support live, everything worked beautifully. I guess the demo gods were happy the second time around.

    Read more...

    Tagged: java.net

    JavaFX.com

    May 6th, 2008

    We launched JavaFX.com today. I'm very excited about this site since I was personally involved in putting it together. We have videos of the JavaFX demos from each keynote as well as explanations of what JavaFX is, where you can get more info, and a signup page to get the SDK when it's ready.

    Read more...

    Tagged: java.net

    Hear me on RIA Weekly

    April 30th, 2008

    I almost forgot in the rush up to JavaOne that I recently appeared (is that possible in an audio only podcast?) in lucky episode 13 of the RIA weekly. RIA Weekly is a podcast by Michael Cote of RedMonk and Ryan Stewart of Adobe. I talked about JavaOne, our general goals for JavaFX, how the pieces of JavaFX came together, and what it's like working on designer tools.

    Read more...

    Tagged: java.net

    JavaOne is like Christmas

    April 19th, 2008

    You may be wondering why I haven't blogged recently, or why some of the JavaFX lists have died down, or more generally just what the heck we are all doing these days. Well, there's something you need to understand:

    Read more...

    Tagged: java.net

    At the speed of JavaFX

    April 6th, 2008

    As we all rush headlong into JavaOne prep someone (okay it was James Gosling) sent me an email about performance of JavaFX. Speed is a crucial issue for anything dealing with user interfaces, so we care deeply about performance in our work with JavaFX. On the other hand we are focusing on bug fixes and correctness right now, not optimization, so it's not as fast as it could be.

    Read more...

    Tagged: java.net

    Back from Australia

    April 5th, 2008

    Okay, so I've actually been back for several weeks, but JavaOne stuff has kept me super busy.

    Read more...

    Tagged: java.net

    Bleg: do you know of any good forum software?

    March 29th, 2008

    Today I think I shall use the power of my blog for evil instead of good. Well, maybe not evil but at least for my own personal gain.

    Read more...

    Tagged: java.net

    You need at least 386 Power

    March 18th, 2008

    This is some old videos from the early days of the internet. And by videos I mean VHS. Videos from the mid 1990s that taught you about what the internet is and how to use it. Check out the screenshots of Yahoo circa 1995 and the mention of Gopher.

    Read more...

    Tagged: java.net

    JavaFX Doodle #3: A Paper Cutout Demo

    March 13th, 2008

    Read more...

    Tagged: java.net

    JavaFX Script Doodles, #2: a tabbed rectangle

    February 18th, 2008

    Before I dive into my second doodle I'd like to mention the following Groodle. Allow me to explain. Andres Almiray saw my first JavaFX Doodle and decided to recreate it using the GraphicsBuilder syntax of Groovy; hence a Groodle! :) His first version is verbose, but later he updated it using the new alias syntax to be more compact. JavaFX is still a more concise syntax (IMHO), but Groovy is getting close and certainly has it's own strengths. I hope in the future Groovy will be another great way to build graphically rich apps on the Java platform. After all, why have one awesome way to build apps when you can have two! Be sure to watch Andres' excellent blog for updates.

    Read more...

    Tagged: java.net

    Upcoming Java and JavaFX Events you should attend

    February 11th, 2008

    Travel, travel, and more travel.

    Read more...

    Tagged: java.net

    JavaFX Doodles: Doodle #1

    February 6th, 2008

    About four years ago when I started my blog I created a series of posts called Swing Hacks. This series eventually formed the basis of my similarly named book with Chris Adamson and led to my job at Sun. I think the series was successful. I still get an amazing number of hits to Swing Hacks 4, the Universal Right Click.

    Read more...

    Tagged: java.net

    How do I answer the question: What is Java?

    January 9th, 2008

    Things are going well on the designer tool, but we won't have anything to show publicly for a while. I will tease you with the news that I just implemented the first version of a drawing tool assistant that you have never, ever seen before. It's one of those clever things that seem obvious in retrospect, but no one (to my knowledge) has done it yet. But enough teasing: on to the question of the day.

    Read more...

    Tagged: java.net

    A JavaFX Christmas Demo

    December 22nd, 2007

    Another Christmas will be here soon and it promises to be a good one

    Read more...

    Tagged: java.net

    Competition and the Java Ecosystem: why Sun launched the PDF Renderer and Scene Graph projects

    December 20th, 2007

    I'd like to take a second out of my usual technical blogging to discuss something important. Sun recently launched two new open source projects: the Scene Graph and PDF Renderer projects. In both cases some readers wondered why Sun felt the need to start new projects rather than contribute to or recommend existing open source and commercial projects. Is Sun opposed to commercial Java software vendors? Do we insist on reinventing everything ourselves? The answer is an unequivocal no. Each new project inside Sun goes through a rigorous vetting process to determine what projects to start and how. Today I'd like to let you see inside our brains and find out why we launched these new projects.

    Read more...

    Tagged: java.net

    The big secret revealed! A PDF viewing library!

    December 13th, 2007

    Last week I told you we had a secret new open source project to release. Think of it as an early Christmas present. A project that you've never heard of and has nothing to do with JavaFX (which is partially untrue, but I'll get to that in a second). Well, it's almost the end of the week so here is the secret. You can listen to MP3 announcement (played on stage at the JavaPosse's JavaPolis session), or simply read on. We are releasing an

    Read more...

    Tagged: java.net

    Our new Java Scene Graph is open sourced

    December 11th, 2007

    Today Sun announced the open sourcing (GPL) of the new Java scene graph that underlies JavaFX script. And I'm very, very excited about it.

    Read more...

    Tagged: java.net

    LightsOut, a JavaFX Script game

    December 5th, 2007

    Since I joined the JavaFX team a few months ago I have spent some of my free time creating demos and learning the language. Most of my demos have been simple single class applications that highlight a particular language feature or graphical effect. After a while, though, I decided to write something bigger to prove it could be done and really stress test the language. As a result of feedback from me (and many other dedicated early adopters) we have some great improvements coming down the pipe.

    Read more...

    Tagged: java.net

    The Winds of Change

    December 3rd, 2007

    As we head into the holiday season I'm feel pretty upbeat about the state of client Java. There are many challenges ahead, but things are better for client developers than they have been in close to a decade. Before I dive into the future let me do a quick recap.

    Read more...

    Tagged: java.net

    How to remove Java 6 from your Mac

    November 16th, 2007

    The Java 6 developer preview (b88) for Mac OSX 10.4 (Tiger) does not run on 10.5 (Leopard). Having it still installed can cause a few problems with Leopard. In fact, using it on Tiger can cause issues because it's so different from Java 6 final that ships for Windows, Linux, and Solaris. Because of this I recommend you delete it and wait for the final Java 6 for Mac. (Apple no longer makes this older version available on their download site either).

    Read more...

    Tagged: java.net

    "Why don't you ship Swing Apps", two years later.

    November 11th, 2007

    As I write this I am speeding over the Atlantic at around 500 miles per hour towards a two week business trip. The goal is to work out further details of the JavaFX tools and plan our schedule for next year. (And no I'm not going to give you any details. That's not what this post is about :). As I'm finishing up emails and pondering my two weeks of meetings I'm struck by a question: How did we get here?

    Read more...

    Tagged: java.net

    Dinner in Prague?

    November 2nd, 2007

    Yep. I'm heading to Prague again, this time for two weeks. Since I'll have a bit more free time than my usual whirlwind trips so I'm making an offer.

    Read more...

    Tagged: java.net

    My First Screencast: Visually build an RSS reader using NetBeans 6

    November 2nd, 2007

    With NetBeans 6 beta 2 out (and the final version going into High Resistance-"thou shall not break things" mode) I thought it might take the opportunity to show you some of the cool things you can do with it. I am a client guy, of course, so I'm very excited by the new features we've built to let you create and deploy desktop applications easily and quickly. I also wanted to try experimenting with screencasts. Since development of client apps is so visual I think a visual way of explaining them is good. This is my first screencast so please provide feedback of what you like and don't like.

    Read more...

    Tagged: java.net

    NetBeans 6 beta 2 is out!

    October 23rd, 2007

    I just wanted to let you all know that NetBeans 6 Beta 2 is out. Over the next few weeks I'll have more posts about the cool new stuff in NB 6, but for now I just want you to know it's ready for download. A whole lot of work has gone into making sure it's quality work and I think it shows. In fact, Beta 2 is now my only IDE. I've deleted every other copy of NetBeans and Eclipse from my HD. I've gone in whole hog; and freed up a lot of disk space. :)

    Read more...

    Tagged: java.net

    It seems there is a downside to having unix in your pocket

    October 18th, 2007

    I'm in Chicago trying to restore my iPhone and here is the result.

    Read more...

    Tagged: java.net

    Hang out with me at the Midwest Tech Days in Minneapolis and Chicago

    October 11th, 2007

    I'm once again heading out to the MidWest Java Tech Days to talk about JavaFX. This time it will be Minneapolis (Tuesday the 16th) and Chicago (Thursday the 18th). I'll actually be in Chicago most of the day on Wednesday with nothing to do. Is there anything I absolutely must do or see when I'm in Chicago? Is there anyone with free time that day (or evening) who would like to hang out with a super Java geek like me? If so then let's plan to get together joshua.marinacci@sun.com.

    Read more...

    Tagged: java.net

    The complexity of large software: an AT&T example

    October 7th, 2007

    I purchased an iPhone yesterday and tried to activate it. Foolish, I know, but I'm crazy like that. Activating my iPhone today (starting last night, really) proved to be a multi-hour ordeal involving Googling, and spending over an hour on hold with AT&T representatives. The root cause was my Atlanta area code phone number not matching the zipcode of the town where I live in Oregon. The registration software didn't make this clear, instead giving me obscure errors and eventually sending me an email requesting I call a 1800 number. Adding to the confusion, Apple's own email program put the message into my junk folder. Had I not thought to search my junk folder a few hours later I might still be holding an iBrick. Now, after two hours with customer service and almost 24 hours after receiving my phone, I am finally syncing some music.

    Read more...

    Tagged: java.net

    The votes are in.

    September 26th, 2007

    I've got a free moment here at the MidWest Tech Days (and if you are in the MidWest you should be here too!) so I thought I would tally the votes generated by my previous blog:

    Read more...

    Tagged: java.net

    A question about SocketPermissions

    September 20th, 2007

    I'm going to abuse my celebrity and world renowned fame today (world renowned means the 5 mile radius around my house, right?). I have a technical question to ask my wonderful audience of readers (who are all beautiful, smart, and above average). I've looked through the Javadocs and some tutorials without understanding a few details, so here goes.

    Read more...

    Tagged: java.net

    You vote for your favorite article and I'll write it!

    September 20th, 2007

    I'm thinking of working on another article or two over the next few weeks, but I don't know what to write about. Oh sure, I have lots of ideas, but I don't know what's most interesting to you. Ultimately my writing competes with about 4.8 billion other things for your valuable attention, so I only want to write the things that you want to read. Rather than speculate endlessly about this I've decided to take it directly to the people and have you to vote for your favorite idea.

    Read more...

    Tagged: java.net

    See me speak about JavaFX at the Midwest Java Technology Days

    September 14th, 2007

    Every year lots of developers come to San Francisco for JavaOne. More than fifteen thousand I think. But even more don't come to JavaOne; which might be a good thing since there are over four million of us Java developers out there. That would be a big cafeteria! Think of the line for lunch! Fortunately there is an alternative.

    Read more...

    Tagged: java.net

    JavaFX != JavaFX Script

    September 10th, 2007

    I recently gave a presentation at the Portland Java Users Group about Java FX. After talking to some of the fine members of PJUG I realize that there is a lot of confusion about JavaFX and JavaFX script. JavaFX Script is just one part of the larger JavaFX umbrella. In fact, you don't even have to use JavaFX Script to gain many of the benefits of JavaFX! This weblog posting is my attempt to clear up a few things and get you excited about the future of client Java. After reading it I hope you will come away with a better understanding of what JavaFX is and why we created it.

    Read more...

    Tagged: java.net

    Nimbus Nears Completion

    September 8th, 2007

    My friends back at the Swing ranch have been working very hard on the new Nimbus look and feel for Swing. When I first saw it my only complaint was that I couldn't get my grubby little hands on it right away. Well, it sounds like we shouldn't have to wait too much longer. Jasper's weblog has all of the details.

    Read more...

    Tagged: java.net

    My new life in JavaFX

    August 31st, 2007

    I'm exhausted so I'll just make this a brief lead-in to more blogs coming next week. The short news is that I've switched teams (again :). I'm now on the JavaFX team working on new tools. In fact, I've been in Prague all week meeting my new coworkers, as we hail from around the globe.

    Read more...

    Tagged: java.net

    NetBeans to become GPL!

    August 17th, 2007

    I have been in the open source world for a long time. Pretty much since I first installed Slackware in my sophomore year of college (I'll leave calculating that year and my age as an exercise to the reader). I have always felt that open source and commercial interests, when managed properly, can have a wonderful balance that benefits both the consumer, developers, and companies. That's one of the reasons I came to work for Sun, in fact. At Sun I get paid to work on open source software, which was pretty much my dream since college.

    Read more...

    Tagged: java.net

    UltraSparc T2 launch: [keanu] Whoa! [/keanu]

    August 7th, 2007

    I know this isn't really Java related, but I just got an email that Sun's UltraSparc T2 launched today. Even though I'm not a hardware guy and I've forgotten most of my CompE classes from college, I'm still interested in the changing state of the art chip design.

    Read more...

    Tagged: java.net

    Want to get paid to work Flying Saucer?

    August 1st, 2007

    It's not often that I see offers to pay someone to do a contract job on an open source project, with all of the code contributed back to the project. I know lots of people who work on particular projects full time as part of their job (myself, for example), but rarely do I see a direct offer of payment to have someone implement a particular feature. Perhaps the fact that I've never seen it on my projects means that my projects are perfect! :)

    Read more...

    Tagged: java.net

    Java FX updated, and a visit to the future of client Java

    July 20th, 2007

    Open JFX updated

    OpenJFX, the open source version of Java FX, was just updated. It has lots of improvements and demos, but the biggest thing is the first compiler, which will compile Java FX Script directly into bytecode rather than interpreting it. This is huge, because it makes FX Script a first class Java language, as well as being several orders of magnitude faster than interpretation.

    Read more...

    Tagged: java.net

    Flying Saucer R7 is out

    July 14th, 2007

    The Flying Saucer team is proud to announce that we have just released version R7 Final.

    Read more...

    Tagged: java.net

    A Response to GUI Building: tool vs hand coded

    June 14th, 2007

    The debate of hand coding your GUI screens versus using a tool has come up again. I suspect that Stuart wasn't expecting quite the volume response that he got. For some of you this is old hat and I suspect we aren't going to come to any conclusions here. I would like to say one thing, however. We need to split issue into two separate items that are actually independent, though related.

    Read more...

    Tagged: java.net

    Problem and solution for compiling NetBeans on Mac

    May 17th, 2007

    What follows is a particular problem I had compiling NetBeans on my Mac and my solution to it. I'm putting this in my blog not so much for my readers but for the future generations of Google travelers who may stumble across this same issue.

    Read more...

    Tagged: java.net

    Glossitope BoF slides

    May 15th, 2007

    Due to a deluge of requests (both of them) here are the slides for our Awesome BoF 5000.

    Read more...

    Tagged: java.net

    JavaOne: Another One is Done

    May 11th, 2007

    It's Friday morning and I'm watching the James Gosling keynote from the bean bags in front of the big screen. I'd say this was the most exciting JavaOne I've ever been too. We really saw desktop Java in full force. Perhaps we shouldn't call it desktop anymore, since a form of Java SE is going to be available on phones and other non-desktop computers. So really this was the JavaOne for client Java. Since I've spent most of my professional career pushing the limits of desktop Java I'm very excited about the possibilities of doing cool things on phones and TVs.

    Read more...

    Tagged: java.net

    AB5k has a new name, and a JavaOne contest

    May 10th, 2007

    The AB5k team is proud to announce that we are changing names to Glossitope. We have a new website up at www.glossitope.org where you can download new builds, see our promotional video, and play with the new graphical effects we built for JavaOne.

    Read more...

    Tagged: java.net

    AB5k has a new name, and a JavaOne contest

    May 9th, 2007

    The AB5k team is proud to announce that we are changing names to Glossitope. We have a new website up at www.glossitope.org where you can download new builds, see our promotional video, and play with the new graphical effects we built for JavaOne.

    Read more...

    Tagged: java.net

    JSR 296 Session Success

    May 8th, 2007

    Another quick update. Hans and I did our session on JSR 296 today and it was a huge success. We were completely packed, over 500 people I think!

    Read more...

    Tagged: java.net

    NetBeans day success

    May 8th, 2007

    Hey guys. Real quick. I just thought you'd like that we (the NetBeans GUI Builder team) showed Open Street Maps on stage at CommunityOne in front of about >400 people. We did a demo where we built a database application live on stage that combines famous sites in London with photos from WikiPedia and the JXMapKit running Open Street Maps. And we did the whole thing with only a single line of actual code. Everything else was visually assembled in less that 5 minutes. I told the audience that we were using OSM which is "literally created by guys on bikes with GPS trackers. It's amazing". Everyone was very impressed. We'll have screencasts up once we finish JavaOne.

    Read more...

    Tagged: java.net

    Beans binding rocks!

    May 3rd, 2007

    I was working on one of our NetBeans demos for Monday's Matisse session and it occurred to me. I was actually having fun putting together a little program! I grabbed some of our cool little beans from SwingLabs then wired them up to some text fields using zero code. Just binding expressions created visually using NetBeans M9. It was really easy and kinda fun. Beans binding makes the beans we've assembled in SwingX-WS in particular a whole lot more useful.

    Read more...

    Tagged: java.net

    Too busy to blog

    April 25th, 2007

    I've been too busy to blog for the past couple of weeks. Sadly this will continue for two more weeks until JavaOne begins. Don't worry, though. It's all in a good cause as you will see some great things shortly. In the meantime I leave you with a quick comic that actually made me laugh out loud.

    Read more...

    Tagged: java.net

    Too busy to blog

    April 25th, 2007

    I've been too busy to blog for the past couple of weeks. Sadly this will continue for two more weeks until JavaOne begins. Don't worry, though. It's all in a good cause as you will see some great things shortly. In the meantime I leave you with a quick comic that actually made me laugh out loud.

    Read more...

    Tagged: java.net

    Back from the demo

    April 9th, 2007

    It was completely exhausting but it went quite well. Just to catch you up, last week I drove nine hours down to Santa Clara, CA to spend three days working on my demo then show it to the demo people. Here's how it works:

    Read more...

    Tagged: java.net

    Back to the Bay

    April 1st, 2007

    I'm heading back to the bay area this morning for a couple of days to take part in our annual Java One demo preview. This is when we each pitch our own Java One demos in a heated Java battle royale (tm) for one of the coveted few spots in the keynotes. I think you'll be happy with what I've put together. Wish me luck!

    Read more...

    Tagged: java.net

    Yahoo Widgets 4 is released

    March 22nd, 2007

    Yahoo Widgets 4 was just released today and I must say it looks pretty cool. They added a dock mode with mini-widgets and auto-widget updating. Part of me is frustrated because this is one of the things we have that they didn't until today.

    Read more...

    Tagged: java.net

    AB5k Widgets in Depth

    March 21st, 2007

    Well it's been two weeks since AB5k was released and the response has been, well, interesting. Some people really love it. Others have complained it's slow and buggy (which it is), and still others ask "why make another widget system, but this time in Java?". We got somewhat panned at JavaLobby in particular. So, two questions to answer: too early and why Java?

    Read more...

    Tagged: java.net

    Back from the Java Posse Roundup

    March 18th, 2007

    Now that I've had a week to recuperate, and heal from my poor attempts at snowboarding, I can tell you about where I was the week before last. From the 5th of March to the 9th I was in Crested Butte Colorado for the Java Posse Roundup.

    Read more...

    Tagged: java.net

    Posse Brain Dump: JavaDocs from the year 2020

    March 14th, 2007

    At the Java Posse Roundup last week we had some wonderful evening sessions called Lighting Talks. During these sessions each participant had 5 minutes to give their entire presentation. This necessitates, of course, brevity and clarity above all. And of course, since this was the evening, we were all sitting around munching on BBQ, drinking beer, and laughing away during the proceedings. So in short, it was a lot of fun. Some of the talks were Java related at all. Ido Green from Yahoo introduced us to the sport of orienteering and Joe Nuxoll from the Java Posse gave several presentations about the physics of race car driving. Fascinating stuff.

    Read more...

    Tagged: java.net

    Quick updates: Desktop Matters, Java Posse Roundup, AB5k, and more

    March 12th, 2007

    I got back from the Java Posse Roundup yesterday. Due to complications with my flights I was forced to spend an annoying Saturday night in a hotel in Denver. Still, the conference overall was worth it. I've got a bunch of things to share with you over the next few days so I'm just going to give you a few quick updates today.

    Read more...

    Tagged: java.net

    AB5k: our all Java widget system is released

    March 7th, 2007

    I'm attending the Java Posse Roundup right now and won't have a chance to post in detail about this until next week, but since the news is out I wanted to make sure I let you all know what's up.

    Read more...

    Tagged: java.net

    My Java One Talks

    March 3rd, 2007

    Just a quick post as I'm rushing to be ready for the Java Posse Roundup conference next week.

    Read more...

    Tagged: java.net

    Netbeans M7 and the amazing new Web Start plugin

    February 27th, 2007

    Milestone 7

    Milestone 7 of NetBeans 6.0 recently came out and I tried it out for the first time today. Now I know what you are thinking: "Don't you work on NetBeans? Don't you work for NetBeans?!" Well yes, I do. But I'm working on a branch that hasn't migrated to the 6.0 codebase yet. It will in the future (and I'll have blogs on it) but for now what I see every day looks pretty much like NetBeans 5.5. Trying M7 is my first taste of NetBeans of the future (other than my own highly excellent work, of course. but more on that later :) .

    Read more...

    Tagged: java.net

    Tricked out maps and a new tile provider.

    February 22nd, 2007

    In previous blogs I introduced the JXMapViewer and JXMapKit, all part of the SwingX-WS project. We're still working on improving these classes and have more good stuff coming. I recently added support for non-rectangular maps, which makes the 1:2 Blue Marble map tile properly. I also added variable size tiles which allows the JXMapKit zoom out further. These are all nice improvements, but don't really matter if mapping isn't important.

    Read more...

    Tagged: java.net

    First release of JSR 296

    January 30th, 2007

    Hans just announced the first prototype implementation of JSR 296, the Swing Application Framework. I'm very excited about this because it will make Swing applications a lot easier to build and more maintainable. I'm even more excited because we will have top notch support for JSR 296 in NetBeans 6.0. I know this because I'm one of the developers working on it.

    Read more...

    Tagged: java.net

    Free Projects Part 4: an LCD Controller

    January 19th, 2007

    My sincere apologies. I completely forgot to post the code from the last free project, sketch pad, so here it is. I also forgot that I have one more project to give away, one very different than anything else I've ever done. This one involves some hardware.

    Read more...

    Tagged: java.net

    Tag! I'm it

    January 4th, 2007

    Some of you may have seen the five things you don't know about me meme going around. The idea is that someone tags you, you post to your blog five interesting things that people don't know about you, and then you tag five more people who must do the same. Romain Guy got it a few days ago and linked to me, so now it's my turn.

    Read more...

    Tagged: java.net

    Rockin' 2007

    January 2nd, 2007

    Well, the new year has come and my vacation is over. I the last three weeks I gave a way a bunch of projects, released the JXMapViewerApplet, I had my entire family fly to Oregon from all over the country, and got married to the beautiful Jennifer Greenup. I even got to stop for some coffee (see photo below). Not bad for a supposed vacation.

    Read more...

    Tagged: java.net

    A Mapping Christmas Present

    December 22nd, 2006

    You may get several Christmas presents this year so I'd like to give you all mine first. Best to be early than late and forgotten. :) You can scroll down to the screenshot and link if you want, but if you prefer some delightful Christmas suspense begin reading here. You might want to grab some egg nog first. In fact, adding a splash of rum might help too. We've got a lot to go through.

    Read more...

    Tagged: java.net

    Subversion Support in NetBeans 5.5

    December 18th, 2006

    I've been so busy with NetBeans 6.0 work that I haven't commented at all on NetBeans 5.5. We just went final about a month ago and had a big party in Prague. 5.5 is a big release, though most of the work is under the hood or on the server side and being a client side developer it doesn't affect me much.. The new Visual Web Pack is pretty nice though. There is one feature, however, that I am really excited about and that I use every day. Subversion support. With NetBeans 5.5 you can download Subversion support through the Module Update center, and it will be built in to NetBeans 6.0. So let's dive in. What is Subversion anyway?

    Read more...

    Tagged: java.net

    Free Projects Part 3: SketchPad

    December 4th, 2006

    Last week's project

    So far the response to my free projects has been positive. There was a question about why I put the strange requirement of having to create a project to get the code. The simple reason is because I thought it was funny. I have no way to enforce that anyone does anything with the code. As with all of my open source work, I simply hope that something useful comes out of the effort I put in. So if you like the code just drop me an email saying so. That's really all. And with that, here is the code to the stacked editor.

    Read more...

    Tagged: java.net

    Free Projects Part 2: the Stacked Image Editor

    November 27th, 2006

    The Stacked Image Editor

    The Stacked Image Editor is a little program I wrote and posted on my blog a year and a half ago. It is used to draw a certain kind of diagram very easily. In this case, I had a need to show something composed of layers, with each layer broken out visually so you could see how they stacked. I was learning more about how the hardware accelerated affine transforms worked at the time so it seemed like a good example app. You just add images as layers. The app will draw them sheared on an angle with transparency so you can see each layer distinctly. Once you've tweaked all of the settings you can save the whole thing out to an image.

    Read more...

    Tagged: java.net

    Free Projects Part 1: a Screen Capture Uploader

    November 20th, 2006

    Screen Capture Uploader

    The Screen Capture Uploader, released under the ominous name of Big Brother, is a simple program that runs on your desktop taking screenshots every few seconds, then uploading them to a server. The server then allows you to embed the screenshot, or a thumbnail, in your homepage.

    Read more...

    Tagged: java.net

    Posting from 30k ft: Cool Projects, Free to a Good Home!

    November 17th, 2006

    Posting from 30k feet over north eastern Canada

    Yes, I'm flying back from Prague today and we have wifi here on the Lufthansa aircraft. It's both expensive and power draining but amazingly it actually works. I don't know if should call it the coolest thing ever or scream because they have now taken away the only completely network free time left to us. sigh The march of technology, I guess. At least until the battery runs out.

    Read more...

    Tagged: java.net

    Musings on the new opportunities that Open Source Java brings

    November 12th, 2006

    I have often said that I don't love Java because I'm at Sun. I'm at Sun because I love Java. I love Java so much that I wanted to work at a place where I can do the most good for the Java community, and Sun is definitely that place. Now that Java is open source I think it means only good things.

    Read more...

    Tagged: java.net

    A nice Java evening with sour cherry beer

    November 12th, 2006

    After a several hour trek through Prague Castle and the Cathedral I arrived back at my hotel with around 400 photographs. It's going to take a while to go through them but here are some highlights.

    Read more...

    Tagged: java.net

    My first two weeks at Netbeans

    November 9th, 2006

    Greetings from Prague. I've been at Netbeans for about two weeks now and it's been quite a busy time. I think I'm really going to like it here. Everyone is very friendly, the city is beautiful, and they have excellent and cheap beer (cheaper than soda!). I know you are all busy, so for the speed readers in the group I've bolded the important bits.

    Read more...

    Tagged: java.net

    A quick intro to HttpClient

    November 1st, 2006

    The following is a techtip I wrote which wasn't used. Since I turned out pretty well I thought I'd post it here. Let me know what you think. Would you like more of these small self-contained tips?

    Read more...

    Tagged: java.net

    Java people in Prague

    October 28th, 2006

    If there is any other Java people living in the Prague area who would like to go out for dinner, drinks, or do some general site seeing then just let me know. I'm going to be here for three more weeks and I don't know anyone yet. I'm reading through my Rough Guide book and it looks like there's lots of cool things to see here.

    Read more...

    Tagged: java.net

    I'm getting married, leaving the Swing Team, and flying to Prague

    October 26th, 2006

    It's true. I'm leaving the Swing team. But don't worry, I'm not leaving Sun. I'm joining the Netbeans team, flying to Prague, moving to Oregon; oh, and I'm getting married!

    Read more...

    Tagged: java.net

    Update on Bug 6477341,the '...' Windows Combobox bug.

    October 18th, 2006

    Thanks to the hard work of several teams inside Sun (the development, testing, integration, and approval teams) combined with the persistence of the outside Java community, I am happy to say that the bug 6477341 will be fixed. More importantly it will be fixed in Java 6 final, not in an update release. The fix was just integrated into b103, which should be going up soon.

    Read more...

    Tagged: java.net

    NASA Maps in your Swing App

    October 12th, 2006

    Short short version:

    map_not_awesome.png Not Awesome

    Read more...

    Tagged: java.net

    GIF will finally be free!

    September 29th, 2006

    I just read this. The last patent on the GIF format will expire on Sunday (October 1st, 2006). At long last the GIF format will be free. Of course we should all be using PNGs for everything, but thanks to lackluster IE support that's not always possible.

    Read more...

    Tagged: java.net

    Introducing Painters II: filters, shapes, and the builder

    September 26th, 2006

    Introduction

    Welcome back. Last week I introduced a cool new technology we've been working on in SwingLabs, Painters, and described how they work. If you missed the first blog you should go read it now. Don't worry. We'll wait.

    Read more...

    Tagged: java.net

    Vista getting better

    September 25th, 2006

    I don't usually blog on non-Java topics here, but I thought I'd make a mention of how Windows Vista is improving.

    Read more...

    Tagged: java.net

    Introducing Painters

    September 20th, 2006

    One of the temptations of design is to not show your work until it's ready. Not until every edge is smoothed and every bolt is tightened should anyone be allowed to see it. While this might be okay for paintings or sculpture, in the world of software it often leads to bad APIs. An API is the user interface for other programmers. I'm a firm believer that user interfaces must be tested with real users, and as early as possible.

    Read more...

    Tagged: java.net

    LA-stravaganza

    September 17th, 2006

    One of the great things about my job is that I get to go speak to customers and other groups of Java developers. Even more amazing than the fact that Sun pays me to do this is that people actually show up to listen to me. I'm sure you've all had those times where you feel like you are still the dumb kid who just graduated and somehow you have to make everyone around you think you actually know what you are talking about. While I know that I'm a Java expert and have interesting things to say, a little part of me is still scared. What if I say the wrong thing? What if someone asks me a question that I can't answer. What if I walk into a room full of SWT lovers?! The agony!

    Read more...

    Tagged: java.net

    Source to the Magnifying Glass Hack

    September 11th, 2006

    In response to my Meet the Engineer interview on Sun.com a reader asked for the source to my magnifying glass component (originally detailed in this blog). I haven't given it out because it was meant to be part of a larger framework for managing the glasspane and implementing other cool hacks. Alas I have simply not had the time. Java 6 and Java 5 updates combined with my SwingLabs and community work simply have taken up all of my available resources.

    Read more...

    Tagged: java.net

    The best is yet to come

    September 9th, 2006

    Yes the best is yet to come, and won't it be fine...

    Read more...

    Tagged: java.net

    Windows L&F Bugs: Part 2

    August 31st, 2006

    Welcome back to the Windows Look and Feel Show!

    In this segment we'll dive right into some of the bugs directly. In this series I won't cover all of the bugs because some of them involve structural changes that didn't directly fix visible bugs. For example, the XPStyle class was significantly changed by adding enum support. Enums let us more closely model Microsoft's UXTheme API and it's list of part constants. Also, I'm only covering bugs that were fixed. There are quite a few bugs which were closed as not reproducible or no longer a bug because they were fixed by another fix or simply can't happen any more because of other code changes under the hood. With that in mind, let's take a look at a few.

    Read more...

    Tagged: java.net

    Painter Trailer

    August 24th, 2006

    Coming soon! Hard hitting, action packed, and full of effects you probably never asked for.

    Read more...

    Tagged: java.net

    The Big One

    August 17th, 2006

    So you have probably wondered where I've been. It has been quite some time since my last post and I have been very lax in talking about what's going on. Well, the big news is that we are almost done with Java 6. Not really, of course, since there still emergency fixes that could go in, but we've hit our final build of main development. This means that my work is mostly complete for Java 6 and I can start working on the update releases and Java 7. However, scheduling and builds is not what I'm here to talk to you about.

    Read more...

    Tagged: java.net

    I need help tracking down a bug with the WindowsTableHeaderUI

    July 18th, 2006

    Chances are no one reading my blog will be able to answer this question but hopefully in the future someone will run across this post in Google and respond with the answer.

    Read more...

    Tagged: java.net

    Do We Need Databases on the Desktop?

    July 17th, 2006

    Recently Simon Morris posted a blog called In defence of the desktop where he asks :"If SE is truly the edition of Java aimed at the desktop, and most real desktop applications (browsers, players, word processors, video editors) are not database heavy, why is Java DB being included in the SE JDK?". I'd like to challenge the idea that real desktop applications don't need databases. They may not be database heavy (in that storing data is not their primary function) but I do think that there are a lot of desktop apps which use databases, or could be improved by doing so.

    Read more...

    Tagged: java.net

    Getting started with the Aerith Mapping Component

    July 11th, 2006

    A few days ago we released the code to Aerith, our JavaOne demo that combines photos, mapdata, and 3d effects. We worked very hard to get the code out to you and let you see how everything works. However, if you've downloaded the code you may have noticed that the code for the map parts is missing. Only the binaries are provided in the JXMapViewer.jar file. That's because the map component has a brighter future than just a JavaOne demo. It is now the first component in our new SwingLabs project: The Swing Web Services components, or SwingX-WS.

    Read more...

    Tagged: java.net

    Aerith Code is Go!

    June 28th, 2006

    It look more work than expected (doesn't everything?) but at long last we have released the source code to Aerith, our killer 2d/3d/webservices mashup demo that we showed at the JavaOne 2006 keynote, and later in the SwingLabs booth and at the Apple BoF. The response to the demo was very positive so we made a commitment to release the code ASAP. Finally that day has arrived and it's today. Go download the code at the new Aerith homepage.

    Read more...

    Tagged: java.net

    Java One, Future Projects, and Back to Work

    June 22nd, 2006

    So you have probably wondered where I've been. Possibly even missed me. Or maybe you haven't and are glad I haven't wasted any of your precious packets during the last month. In either case: I'm back with lots of interesting things on the way. I've been on vacation, traveling, spending time with family, and then back on the job working on Aerith and getting Mustang ready for Vista. So let's dive in to the good stuff:

    Read more...

    Tagged: java.net

    Aerith Updates and the End of Java One 2006

    May 19th, 2006

    I just arrived home after a both grueling and exciting week of JavaOne. I'm taking the next two weeks off, though I will be blogging a bit and answering the occasional emails. Don't be surprised if I'm a bit slow to respond though as I'll be in Oregon most of the time sipping coffee and enjoying the beautiful outdoors.

    Read more...

    Tagged: java.net

    Aerith: live from the floor

    May 16th, 2006

    I'm sitting in the audience watching Tuesday's keynote where Romain Guy and Richard Bair are on stage showing the new Swing demo we built called Aerith. It's a roadtrip slideshow builder that combines Google Maps, Flickr, and Yahoo Geocode to let you make your own slideshow of photos you took on your trip. Once you are doing setting up the slideshow you can share the trip with your friends as an applet.

    Read more...

    Tagged: java.net

    Pretty Pictures

    May 15th, 2006

    I'm doing lots of pre-JavaOne work right now and I could easily bore you with details of our Java.net Community Leaders meeting on Saturday, but instead I'll tease you with our demo.

    Read more...

    Tagged: java.net

    Freshly Squeezed Flash: a micro-company

    May 10th, 2006

    Read more...

    Tagged: java.net

    Why we are here

    May 4th, 2006

    We are getting closer to JavaOne and companies are preparing to announce their latest and greatest products. We will also have lots of discussions of Java vs AJAX vs Flash vs other hot tech of the day. Before we go down these and other rabbit hole discussions I'd like to take a moment to sit back and look at the big picture: Why are we here?

    Read more...

    Tagged: java.net

    Swing Hacks in Japanese Ships

    May 3rd, 2006

    I'm going to be a complete nerd for a second and expound upon how amazingly cool it is that something I wrote has been translated into Japanese. I mean, writing down words that someone else pays for is cool and all, but it's even cooler when someone else translates my words into another language. The book even looks cooler. It's a tad smaller and has a very nice book jacket. The paper has a very different feel from the english printing; manga-esque actually.

    Read more...

    Tagged: java.net

    How to get code completion with Javadocs in Netbeans on Mac OS X

    April 30th, 2006

    I'm sure I'm the last Mac Java developer here to figure this out so I'm posting it not so much for you but for future generations intrepid googlers to find.

    Read more...

    Tagged: java.net

    Swing Hacks goes East

    April 26th, 2006

    I'm always amazed by how big the Java ecosystem is. It really is a global community. When Chris and I wrote Swing Hacks we did it out of love for Swing, not to sell a lot of copies or make a lot of money. I'm always amazed when someone will pay for something I've written. When we hit an Amazon score of under 1000 (for a couple of hours anyway) I was bowled over.

    Read more...

    Tagged: java.net

    Rant: How to make whitebox PCs be less horrible.

    April 20th, 2006

    This is totally off topic for Java, but I need to rant about computers for a second.

    Read more...

    Tagged: java.net

    I finally fixed my first Mustang bug!

    April 18th, 2006

    So here it is, I finally fixed my first bug in Mustang. By this I do not mean that I have fixed only one bug during my year at Sun, but that I finally fixed the very first one I started on. The bug is JProgressBar (indeterm.) renders wrong on WindowsLookAndFeel, Windows2000 + XP, which basically means that indeterminate progress bars look horrible on XP.

    Read more...

    Tagged: java.net

    Stuff to Play With: the EnumComboBoxModel

    April 17th, 2006

    One of the great things about having a project like SwingLabs is that it gives me a place to put classes I've built that others might find useful. Today I'm going to describe my recent addition to SwingLabs, the EnumComboBoxModel, a cute little class that lets you stuff enums directly into your comboboxes with no extra work.

    Read more...

    Tagged: java.net

    The Summer of 1998

    April 10th, 2006

    Some time ago I wrote an article for Slashdot discussing Be, Apple, and the future of operating systems. The mention of Be should indicate just how far ago this was. The other day I decided to try to find the article both to find out if I was at all correct in my conclusions, and to see if my writing has improved at all. Well, I couldn't find the relevant article, as Slashdot's archives are not complete (and their search engine even less so) but as I was going backwards in time I ran across some articles that are quite interesting today. I suppose it's odd to think of something as recent as 6 years ago in an historical context, but in Internet years it must be centuries. So let's dive in:

    Read more...

    Tagged: java.net

    Once more Matisse Rocks

    March 9th, 2006

    I would just like to say that I'm more and more impressed with Matisse. It does it's absolute best to provide a realistic preview of running components at design time. Today I was building some component tests and was amazed to see that indeterminate progress bars are animated while in the designer! Have a look!

    Read more...

    Tagged: java.net

    Props to the Trig Teacher

    March 1st, 2006

    I'm working on a program that requires I convert degrees of longitude into miles. Since we are mapping radians on to the sphere (mostly) that is Earth, I needed to do some trigonometric calculations. Upon whipping out some paper and pencil and drawing the triangles I needed I realized had to remember which function to use. Is it Sine, Cosine, or Tangent? Hypotenuse over Adjacent? Adjacent over Opposite? All... blurring... together....

    Read more...

    Tagged: java.net

    All hail the PropertyChangeListener

    February 26th, 2006

    Often times when you are building an application you need to hook multiple components together in such a way that when one component changes others must do something. When you are building custom components there is often the temptation to build a custom set of listeners to go along with it. This seems like good component etiquette; after all this is how most of the javax.swing.* components are built. Still, that's a big pain to create new listener types that must be implemented, just for observing simple changes. Plus it tightly couples your classes which can make your code brittle when making changes later. There must be a better way. And there is!

    Read more...

    Tagged: java.net

    My Mustang Beta Thoughts

    February 21st, 2006

    By now you've probably all read

    Read more...

    Tagged: java.net

    SwiXml builds better guis

    February 21st, 2006

    Just a quick note to let you know that I've got a new article up about SwiXml. SwiXml is an open source library for building Swing GUI layout using XML instead of code (ie: the evilness that is GridBagLayout). In the article you'll learn what you need to get started using it and how it works. Check it out and let me know what you think. Also let me know what other articles you'd like to see. I'm looking for new ideas. Thanks Josh

    Read more...

    Tagged: java.net

    Easily Use Custom Swing Components with Matisse

    February 7th, 2006

    I know it's been quite a while since I've written anything. I've been busy with quite a few project and I'll have some cool stuff to share soon. In the meantime I thought I'd show you an interesting tidbit I discovered in Matisse and Netbeans.

    Read more...

    Tagged: java.net

    Netbeans on Mac Tip

    November 23rd, 2005

    As some of you may know I'm a big Mac person. I split my time equally between my iBook (now heading back to the shop, alas) and my WinXP desktop. Being a dyed in the wool plain jane text editor type of programmer I've used jEdit for the past five years and have only recently started using an IDE like Netbeans. I've found Netbeans to a great productivity booster but on my iBook it seems to generate garbage at a mad pace. This is okay, it's just garbage, not a memory leak; but it's a pain when the editor locks up for five seconds to do garbage collection. Fortunately there is a solution.

    Read more...

    Tagged: java.net

    I don't normally post about

    November 18th, 2005

    I don't normally post about non Java related tech stuff, but I thought I would mention this really cool new filesystem called ZFS. It's part of Open Solaris but will most likely be ported to other OSes soon enough. Even though it's made by my employer I hadn't ever heard of it until news started hitting the web a couple of days ago (Sun is a big company, after all).

    Read more...

    Tagged: java.net

    Why use Java for Web 2.0?

    November 14th, 2005

    There's been a lot of talk lately about Web 2.0, and which technologies are going to take us there. We can debate the exact definition of Web 2.0, but I'd say a rough approximation would be an application which blurs the distinction between desktop apps and web apps. Many feel that the future is ultra-thin browser based client platforms like XUL or Ajax but I think that Java has a place, and will continue to grow in the future.

    Read more...

    Tagged: java.net

    More on Day's 2 and 3 of Java One Japan.

    November 10th, 2005

    More of Tuesday

    Read more...

    Tagged: java.net

    My First Full Day of JavaOne Japan

    November 8th, 2005

    I woke up this morning painfully early, 4:00, which, as anyone who knows me can say, is the time that people should be going to bed, not waking up. Until recently I didn't even know there was a 4:00 in the morning. Oh well, such is the cost of jetlag. Considering I'm 14 (or 10) hours different I think I'm adjusting pretty well.

    Read more...

    Tagged: java.net

    My LA-JUG Peabody Presentation

    November 6th, 2005

    Last week I gave a presentation on Project Peabody for the Los Angeles Java Users Group, and I think it was well received. What's that? You've never heard of Project Peabody? That's okay. No one at the LA-JUG had heard of it either. We've only recently started using the name. Project Peabody is our community development project for new releases of Java; principally Mustang, aka: Java SE 6

    Read more...

    Tagged: java.net

    Preparing for Tokyo

    November 5th, 2005

    I'm spending today packing for my exciting trip to Japan this week. Yes, I managed to wrangle a trip to JavaOne Tokyo, where I will be speaking on Java 2D performance, Swing layout, and helping out with the Peabody booth.

    Read more...

    Tagged: java.net

    Design of a distributed disaster relief system

    September 2nd, 2005

    Katrina is big. Too big. By Katrina I don't mean the storm, but the overall situation. I feel like I did almost four years ago, unable to help or even understand much but realizing that our disaster services simply aren't up to the task. Sitting in California with sunny weather I wait, watch, and wonder what I can do.

    Read more...

    Tagged: java.net

    Swing Hacks Bonus Article

    August 12th, 2005

    Time stands still for no man. Technology even less so. The world moves on and we have to adapt.

    Read more...

    Tagged: java.net

    Get Swing Hacks for Five bucks

    August 6th, 2005

    I just got an email from my co-author and looked up the Fry's ads for the San Jose Mercury news. If you live in the Bay Area (or San Jose, at least) then you can get a copy of Swing Hacks for 20$ minus a 15 dollar rebate, for a final cost of 5 bucks. Supposedly it's even cheaper in Atlanta. I don't know what stores this applies to so be sure to check out the ads for the local Fry's in your area. So if you've been wanting to get the book it's on sale. Also be on the look out for a new article feature more Swing Hacks material that didn't make it into the book.

    Read more...

    Tagged: java.net

    Using Java2D to to build a Stacked Image Editor

    July 25th, 2005

    Brainstorm!

    Every now and then I get the idea to build a cool program that does something interesting. Sometimes I get an idea by seeing another program, or seeing an interesting API I've never noticed before. Sometimes both. A few weeks ago I was thinking about how close to 3D I could get while still using the Java2D APIs. There's no perspective transforms in Java2D but you can fake a lot of 3D with creative use of the standard affine transforms. Around the same time Romain complained about having to draw some 3d diagrams using Photoshop. It wasn't hard work, just tedious.

    Read more...

    Tagged: java.net

    Fold N' Drop

    July 19th, 2005

    This has to be one of the coolest frame hacks I've run across. I also think this is a great use of a gestural interface techniques. The idea is that you can fold windows down to access what is behind them. They have a small java application (54k) that does everything.

    Read more...

    Tagged: java.net

    Java One Lessons : The book

    July 15th, 2005

    Java One Lessons

    The highlights for me were our session for Swing Hacks and meeting with customers at the JDIC and JDNC booths (more on that in my next blog). It's great to interact with developers (my "customers" essentially) and get some real feedback.

    Read more...

    Tagged: java.net

    Delta Lessons

    July 14th, 2005

    Okay. So I realize this is about two weeks late. I've been on vacation back home in Atlanta and then catching up on about 4 weeks worth of email, blogs, java.net forums, and even some features I promised to the Flying Saucer and JDIC Misc projects. I actually wrote most of this over a week ago but just now got the time to finish it up. Enjoy!

    Read more...

    Tagged: java.net

    Exhausted

    June 30th, 2005

    It's been a long, fun, and exhausting week. I'm going to get some sleep and vainly try to take a flight home tomorrow. Since I'll be there for hours, most likely, this will give me time to write proper entries about the second half of the week and how the conference went overall. In the mean time, our book Swing Hacks is finally shipping on Amazon and we've hit almost #3000. (as of this evening) That puts us in the in 1st of all Swing books, 5th of all Java books, and 79th of all programming books. Combined with the great turnout for all desktop related sessions I think this bodes very well for Desktop Java and rich client development. Look out Flash!

    Read more...

    Tagged: java.net

    JavaOne: Day One

    June 28th, 2005

    Watching the keynote. Nice to see a reference to Morgan and Edison. We often forget our technology roots.

    Read more...

    Tagged: java.net

    We're #2

    June 28th, 2005

    I promise I won't shill too much, but Chris just told me that our book was the number 2 seller yesterday according to the list posted by the book store! To our readers we send a heartfelt thanks!

    Read more...

    Tagged: java.net

    JavaOne: Day 0

    June 26th, 2005

    Sunday is over and I need to get some sleep, as JavaOne starts for real tomorrow, but I wanted to blog down my thoughts (can blog be a verb now?) before I head off to the land of Nod.

    Read more...

    Tagged: java.net

    JavaOne: Day -1

    June 26th, 2005

    My JavaOne week has actually started two days early on Saturday. Why? Because I'm a co-community lead for Java.net's Mac community. What's that? You didn't know that there's a Java.net Mac community? Hmm. That's a problem. Well, that's why we have the Java.net community leaders weekend event two days before JavaOne. It's our time to get together face to face, discuss the issues we face, figure out how to solve them, and then make Java.net a better place for all of you.

    Read more...

    Tagged: java.net

    A picture is worth a thousand words.

    June 25th, 2005

    This is a random thought, but where are the pictures. Most java.net projects, even the ones that have some visual user interface (as opposed to a library like Rome), don't have screenshots or diagrams. When I come to a new project I want to quickly know what it's about and if it's quality. A picture really helps with that. I know it sounds bad, but if there's a picture then it can first tell me if these people are serious and active, or if the project dead. A picture can also convey a lot of information more quickly than a paragraph of text will. When it comes to visual projects, say a date picker component, then this is doubly important. Show me a picture! It just takes a bit of time and it really helps grab my interest.

    Read more...

    Tagged: java.net

    Getting ready for JavaOne: The Day of the Desktop

    June 24th, 2005

    Well. Here I am getting ready for my first real JavaOne. Actually, I attended back in 1999 and had the rare fortune to see Douglas Adams speak, but this is the first time I will be speaking as an author and attending as a Sun employee. It's going to be exciting. And since most Java developers can't attend JavaOne (where would they all sit?) I expect these Java.net blogs to light up like a Christmas tree during the next week. There's going to be all sorts of cool stuff going on, but don't just pay attention to the highlights. Some of the best things will be in the BoFs, smaller sessions, and especially the simple person to person talks over a good beer. (This is what we called P2P in the old days before they invented music, computers, and light.)

    Read more...

    Tagged: java.net

    technology has warped my brain

    June 17th, 2005

    Today I was moving a bunch of files around for a new project. I had to copy several directories worth of code and images from a mounted remote disk to my home directory. Here's what I typed:

    Read more...

    Tagged: java.net

    Why I haven't been posting

    June 14th, 2005

    Joshua talks about what he's been doing, what's coming up, and hands out some reading material.

    Read more...

    Tagged: java.net

    The Power of the Desktop Java Stack

    May 17th, 2005

    new document

    Read more...

    Tagged: java.net

    The Reponse to Why Don't you Ship Swing Apps

    May 9th, 2005

    It's been a while since I posted my original weblog on why some developers aren't shipping Swing apps, and it's gotten over a hundred responses! This makes me happy because it means there are a lot of you out there who really care about desktop Java and want to ship good apps. It's our goal to make Swing the best way to write a quality desktop application, so all of this feedback is great.

    Read more...

    Tagged: java.net

    Mac OS X 10.4 has arrived, with a Hi-Rez secret

    April 29th, 2005

    As everyone on this side of the galaxy must know by now, Tiger, version 10.4 of Mac OS X (will they ever hit Mac OS XI?), has finally arrived. If you're a Mac head like me you've been eagerly awaiting it at least since the previews last summer, if not from day 2 of 10.3's release.

    Read more...

    Tagged: java.net

    A Hi-Rez Future

    April 21st, 2005

    I've been working from home in Atlanta since I started at Sun. I have two homes under renovation and a lot of things to take care of before I can move out west, so working from home for a few months seemed like the best solution. The problem is I only own a laptop, my new iBook. Coding and writing for 10 hours a day on a 1024x768 screen really is no fun. I've got a USB hub, mouse, and keyboard to make it feel more like a desktop, but nothing can replace having a good screen. Today I bought a flatpanel.

    Read more...

    Tagged: java.net

    Sometimes you only need a little.

    April 11th, 2005

    The book is done and I'm up to my ears in Windows bugs so I thought I'd take a break and work on some Mac stuff. There are a few features I've always wanted from Java and needed anyway for another side project (I've got about 3 dozen, of course). The result is a few teeny, tiny classes I've added to the new JDIC Misc project. This project is meant as a catchall for small APIs, things that require only one class or perhaps even one method. The implementation may be complicated as all get-out, but to use it you need only call a function or two.

    Read more...

    Tagged: java.net

    The Portable MiniApp: Mortgage Calculator

    April 7th, 2005

    Hey guys. A while back I started talking about something called a MiniApp and presented several examples (Weather, Christmas, Storm, and RSI Buster). I wrote another installment some time ago but never got around to finishing it because other projects (namely the book) took precedence. Now that Chris and I have turned in our final draft (yay!) I have more time to finish up the next MiniApp.

    Read more...

    Tagged: java.net

    Quick Tip for OSX Users

    March 31st, 2005

    If you are like me you have broken finger bindings. Probably from years of bash use or maybe you just have to switch platforms all the time. Since finger bindings are difficult to change this little utility will change the key bindings instead.

    Read more...

    Tagged: java.net

    Why don't you ship Swing apps?

    March 31st, 2005

    Time and time again I hear that there are no Swing apps (or no good swing apps). We can come up with lots of excuses and explanations but that doesn't get us any closer to having more Swing apps. So I'd simply like to ask all of you. Starting with the assumption that all of you are Java developers in some fashion or another, but not necesarily Swing developers, I want to ask you:

    Read more...

    Tagged: java.net

    Subversion Rename Rocks!

    March 24th, 2005

    I don't like revision control systems

    I should start off by saying that I'm not a big fan of revision control systems. What I want out of an RCS is simple. Let me check files in and out so that my code is backed up and I can revert and merge as needed. I have found that branches rarely get used except in the biggest of projects. Though your RCS system can probably handle it, developers are still people and you can end up in a lot of trouble when you work on more than one branch at a time. Over the years I have used PVCS, RCS, Contiuum, Source Safe, Star Team (I think that was the name) and a few others. I keep coming back to CVS because it does exactly what I want (backup and store revisions of a tree of files) and does it with a few simple commands. It also has the advantage of being supported everywhere.

    Read more...

    Tagged: java.net

    No Session-y Goodness for Me.

    March 13th, 2005

    As many of you have discovered, your submissions to JavaOne were rejected. Don't feel bad. Only one of my 6 proposals were accepted, and I'm now a Sun employee myself. I the competition was fierce. The upside is we should have a really rocking JavaOne conference coming up.

    Read more...

    Tagged: java.net

    Big news. I'm going West.

    February 23rd, 2005

    Hello All. I know it's been a while since I've been posted, so I'd like to let you all know what I've been working on. Lots of good things have happened or are coming soon. First of all....

    Read more...

    Tagged: java.net

    Apple's latest efforts are the triumph of software over hardware.

    January 12th, 2005

    Normally I don't comment on new products, especially hotly anticipated ones that a million others will pontificate endlessly. However, I'm breaking my rule because I'm quite amazed by the new iPod Shuffle and iMac Mini. Not because of the products themselves but because of what they represent. They are both the triumph of software over hardware.

    Read more...

    Tagged: java.net

    XML to Swing and the Gradual API

    December 7th, 2004

    I know it's been a while since I've posted, and sadly it's going to be a while until I do again. Work, my opensource projects, and my book are keeping me slammed. I've lots of good stuff cooking, so stay tuned.

    Read more...

    Tagged: java.net

    Webstart Rant

    October 25th, 2004

    Send me your ideas of what you'd like to see out of webstart. What are the missing features. What are the most important bugs? I want to figure out what we can do through addons and what requires changes from Sun.

    Read more...

    Tagged: java.net

    Please: think of the users!

    October 18th, 2004

    Usability is the number one concern when designing software. And I don't mean "today with modern computing and the lack of new types of software usability is easier and growing in importance". I mean computers have no other purpose than to serve humans, and a better computer serves humans better. End of story. Software that doesn't conform to the way humans do things is bad software. (bad!) I don't care how cool and awesome your software is, if it's not understandable then it's useless.

    Read more...

    Tagged: java.net

    Countdown to Christmas: a Customizable MiniApp

    October 3rd, 2004

    Back when the Web was just emerging (you know, from the primordial soup of standards) many developers put effort into making it easy for lay people to create websites. While most focused on WYSIWYG development tools or content management systems, some developers tried to sell Applets and JavaScript libraries. These were small programs that could be embedded easily into a website and customized without the use of code. No need to write your own tree control: just set a few properties on this library and you're good to go.

    Read more...

    Tagged: java.net

    Weather Watcher: Release Deux

    September 29th, 2004

    One of the things I love about Java is that I can quickly change things. With an army of libraries and Java's renowned platform independence I can quickly hack on a new feature or move code from the client to the server. A couple of days ago I showed off a webstart app with, umm, a few issues. I now proudly present :

    Read more...

    Tagged: java.net

    A New Rich Client: WeatherWatcher

    September 27th, 2004

    I think this MiniApp idea is starting to have legs. Thinking about all that Java Web Start provides we can start to imagine an application category: the so called "Rich Client". The key to a successful rich client is that it must do something that neither webapps nor native programs can do well. It must exist outside of the webrowser (the rich part), use the network for something (the client part), and not require installation (or as minimal as possible). I think my new MiniApp does this quite well.

    Read more...

    Tagged: java.net

    New MiniApp: Storm Drain

    September 22nd, 2004

    While playing around some more with this miniapp idea, I came across geographer Tyler Mitchell's weblog post about hurricane tracking using Web Map Service urls. I thought this would make an interesting MiniApp and give me a good opportunity to play with a few webservices. Starting from his base (and with some greatly appreciated clarification emails from Tyler), I've created StormDrain, a simple program that loads WMS data and displays it graphically. Here's what it looks like:

    Read more...

    Tagged: java.net

    mouth.whereIs().put(new Money())

    September 10th, 2004

    Hmm. Perhaps it should have been mouth.getLocation() instead. That would present a more consistent BadJoke API. :)

    Read more...

    Tagged: java.net

    Visions of truly portable applications.

    September 5th, 2004

    I've been thinking about the miniapps idea some more. I still think it's a good idea, but I want to extend it a bit. Miniapps are great and all, 'cause they're, well, mini.. but I want more. Java is supposed to by write once run anywhere, but in practice any given program only runs on one computer. I'm not talking about whether it can be on Mac or Windows. I mean that I typically install the software on one computer and that's it. If we've got this great portable runtime then why aren't our applications truely portable?

    Read more...

    Tagged: java.net

    Unleash the MiniApp

    August 23rd, 2004

    It's gonna be a busy week so I'll keep this short. I've been thinking a lot about moveable applications and the idea of rich clients. This is mainly on my mind because the Flying Saucer team has been hard at work on the next version of XHTMLRenderer. (We're shooting for an August 31st release) An embedded rendering component has pretty much one core use: applications with both GUI and html interfaces. But what do they look like? What creatures live in that shadowy borderland between the desktop and the web?

    Read more...

    Tagged: java.net

    My 1 year anniversary at Java.net: the social side of software.

    August 20th, 2004

    It's been a little over a year since I've been here, and what a year it's been. Or something along those lines.

    Read more...

    Tagged: java.net

    Quick Radial Blurring w/ Java2D

    July 26th, 2004

    I have to say that Java2D is amazing simply for it's productivity. The other day I was watching the psychedelic display in iTunes when I thought, I wonder how hard it would be to do that? I know it's a blurred and stretched out from the center, but that was pretty much it. I found some demoz that did something similar but I didn't feel like pawing through badly documented C++ code to figure it out. Instead I went to Java2D and wrote this in about half an hour:

    Read more...

    Tagged: java.net

    Myth: There aren't any commercial apps written in Java.

    July 19th, 2004

    The last few months have been great for client side Java. With the release of JDIC, JDNC, Java 1.5 betas, and more support than ever from Sun, I think we are seeing a revival in interest for client side Java. Still, I hear the usual refrain: "If Java is so good on the desktop, then where are all of the commercial apps?" If I point to something like LimeWire I get: "No. I mean big applications, like Word." Well, I never have an answer for that one. I didn't seven years ago and I don't know. Speed and API support isn't an issue anymore, but there still aren't any well known commercial applications written in Java. That finally led me to the question "Is any big name application written in anything other than C/C++?"

    Read more...

    Tagged: java.net

    My new opensource project: Flying Saucer, an all Java XHTML renderer.

    June 18th, 2004

    I normally try to be even handed, un-biased, and bi-partisan; but today I'm going to shamelessly use my muchly vaunted position as a highly skilled blogologist in field of java.net to plug my new project: Flying Saucer, an all Java XHTML + CSS renderer.

    Read more...

    Tagged: java.net

    Swing Hack 8: An eyedropper tool

    May 18th, 2004

    On the plane back from California I decided I've had enough with politics for a while and I'm ready to get back to coding. One thing I've always thought was missing from Swing is a good color chooser. Swing provides a color chooser model and a default color chooser, but it's always felt unfinished. Another 3rd party opportunity I suppose.

    Read more...

    Tagged: java.net

    An Analysis of Open Sourcing Java

    May 3rd, 2004

    I'm going to try to really tackle the issue of opensourcing Java and state my opinion of why it's a bad idea. Then I'll propose a way would could do it without all of the problems. It's a long one but please read to the end and provide your feedback. This is an issue that many feel strongly about and has the potential to influence Java's long term future. And as a career Java developer, it's something that personally concerns me.

    Read more...

    Tagged: java.net philosophy

    Java's got a Bad Rep: The Rebuttal

    May 3rd, 2004

    So it's been a week and I've seen a lot of response to my last entry. One commentor in particular asked for a point by point rebuttal; which struck me as a spectacularly good idea. Here are the bulk of the arguments and my responses.

    Read more...

    Tagged: java.net

    Does Java have a bad reputation?

    April 26th, 2004

    I recently read on Slashdot (something I promised myself I was going to do less) about Miguel de Icaza's comments on Longhorn. It was a pretty interesting read and makes me think I should read up on XAML and Avalon, Microsoft's new technologies for making advanced rich web applications. What struck me as particularly jarring, however, was this thread where someone asked about Java as a webapplication stack to compete with Microsoft or an as yet unwritten opensource toolkit. Most of the readers jumped on this and attacked Java from all sides. What particularly worries me was not that so many of these readers are opposed to Java, but that their arguments are almost completely wrong. Take a look at some of these comments:

    Read more...

    Tagged: java.net

    From Scarcity to Excess: The economics of commodity software.

    April 5th, 2004

    I don't want to talk about how Open Source technology changes the rules by breaking up monopolies or giving you the freedom to reconfigure. I want to talk about actual economic effects as the cost of software approaches zero. It doesn't just save money, it produces new features by the way it's used.

    Read more...

    Tagged: java.net

    The future is Vectorized

    March 30th, 2004

    I know it's been a while since I've posted. But I've been busy. With, um, you know, stuff! Writing stuff. Coding stuff. Drawing stuff.

    Read more...

    Tagged: java.net

    Any HTML Renderers for Java?

    February 3rd, 2004

    I haven't written anything in a while because it was a busy Christmas season, Kimi is going back to school along with work, Lizi has to be fixed, and I started an exciting new job in the field of document management. But more on all of these later. Back to technology.

    Read more...

    Tagged: java java.net

    2004: the year of the Net-App

    January 5th, 2004

    A lot of people have put out lists of what they expect to see for the new year. Instead of going across the industry I'm going to focus on one topic in particular: networked applications. I really think that 2004 is the year of the netapp. Now sure, I know what you're thinking: "I thought 1994 was the birth of the most popular networked application ever: the webbrowser. You're about ten years too late". I'm not talking about the webbrowser. It's a general purpose application that isn't very good at anything, but good enough for almost everything. I really think the last few years have shown a desire for specific networked applications that, in the long run, will blow the pants off ye old browser.

    Read more...

    Tagged: java.net

    Swing Hack 7: Let it Snow!

    December 22nd, 2003

    I've always wanted to make some sort of display that draws outside of a window with images scattered all across the screen. Though previously impossible in Java, I found a way to do it. And since Christmas is coming up I thought I'd use it to make a snowflake display. Here's a cropped screenshot of what it looks like:

    Read more...

    Tagged: java swing-hacks java.net

    How do you develop?

    December 17th, 2003

    We hear a lot about development processes these days, but I'd like to know what techniques people actually use? Do you create UML diagrams? Do you map out the states? And when it comes down to the actual code, how do you break it up into classes and packages? Does your methodology vary depending on the type of program you are creating?

    Read more...

    Tagged: philosophy java.net

    Spanish Java

    December 12th, 2003

    I was looking at the referers to my Swing has failed article and I noticed a site called Java Hispano.org. I think it's really cool that there is a spanish language java site. This is one of the things I love about the Java community. It brings together people from many different backgrounds, unified by the goal of making high quality reusable software.

    Read more...

    Tagged: java swing java.net

    Swing Hack 6: Ghost Mouse

    December 9th, 2003

    I've been playing with Swing a lot lately for my new series of articles. In my research I came across another interesting class java.awt.Robot. It's a class that can automate the UI, mainly for testing. One particularly cool feature is the mouseMove function. Once I saw this I got evil ideas. :) Imagine rogue java programs that move the mouse cursor to mystify and befuddle the user. Spelling out hideous horrible messages. Redrum! Redrum!. :)

    Read more...

    Tagged: java swing-hacks java.net

    Point, Click, and Drool!

    December 1st, 2003

    When reading discussions about Unix versus Windows versus Mac, I often hear people complain about the Point, Click, and Drool user interface. This is usually directed at the Mac, but I've heard it refer to Windows and even KDE before. These people imply (or sometimes simply state) that powerful computers are hard to use and that these easy to use computers are for mindnumbingly stupid people who can't be trusted with pencils, much less normal computers.

    Read more...

    Tagged: philosophy ux java.net

    Microwaves Are Evil (at least mine)

    November 24th, 2003

    Yes, that's right microwaves are evil. More specifically, the microwave in my office. Or, to get right down to it, the interface on this microwave. You see, it's awful. Just plain awful. And yet, I've seen worse.

    Read more...

    Tagged: rant ux java.net

    Swing Hack 5: a magic lens

    November 5th, 2003

    It's been a while since I've written something, so I thought I'd start out with another Swing Hack. This time I've expanded on the overlay idea of SwingHack 3 by adding sort of a magic lens. In this hack the overlaid information can only be seen when the special lens cursor is over it. To pull this off I've created a custom cursor using a buffer image and set it on the glasspane. The buffer contains a crude set of boxes to define the view area, but you could just as easily use an image of a magnifying lens. Next I've restricted the drawing of the glass pane to only be under the cursor by getting the cursor coordinates from a mouse motion listener and setting a clipping rectangle centered around the cursor. Finally I've added code to print the mouse coordinates as part of the cursor. Run, compile, and you get this: (pretend that you can see the cursor which Windows printscreen thoughtfully removes for you)

    Read more...

    Tagged: java swing-hacks java.net

    How about a jApp for my car?

    October 21st, 2003

    Chris recently wrote about the jApps One in particular intriqued me: the Dukester a little java box that plays MP3s and can download other things. This fits very nicely with an idea I had a few years ago and always wondered why no one ever did it: good MP3 car stereos.

    Read more...

    Tagged: java java.net

    How do kids program today?

    October 14th, 2003

    I have often wondered how people learn to program today. In the old days we had Basic and Logo, but what do kids use today? The old standbys are powerful enough to make something for the web (assuming they even exist) and nothing else has a simple development environment for children. Perhaps we need something new.

    Read more...

    Tagged: programming kids java.net

    We should be software *designers*

    October 9th, 2003

    I stumbled across an older online magazine recently. A List Apart has a wide variety of topics, ranging from CSS and typography to what a designer truly does for their client. While the discussions range from the technical to the philosophical they always target their stories at designers. They've built a truly useful site and I look forward to their return (it's on hiatus now but should be back soon with new content).

    Read more...

    Tagged: design philosophy java.net

    Swing Hack 4: The universal right click

    October 3rd, 2003

    I received an email today asking about my use of the glass pane. It seems this fellow wants to handle right clicks on any component in each screen. A logical request. In most cases your right clicks are not limited to a single component, yet to receive the events required to show popups you have to add a listener to each component! Not enjoyable.

    Read more...

    Tagged: java swing-hacks java.net

    I have seen the light.

    October 2nd, 2003

    As part of a new project for work I have finally broken down and learned Struts and JSPs. Struts is tremendously useful. I wish it had been around five years ago when I was up to my ears in webbased applications. But JSPs I've never been impressed with. They are good for templating but the combination of java code and html always seemed crufty. I've been minimizing the amount of code I put in them and certainly prefer to use something like XSL to keep the UI and code separate.

    Read more...

    Tagged: java philosophy java.net

    Swing Hack 3: Overlay Graphics

    September 26th, 2003

    It's Friday so I thought I'd do another Swing hack:

    Read more...

    Tagged: java.net java swing-hacks

    Too many ways.

    September 24th, 2003

    There's been an uproar about Phillip Greenspun calling Java the SUV of computer languages lately. I don't agree with the general theme of the entry that a project done in Java will cost 5 times as much, take twice as long, and be harder to maintain than a scripting language.

    Read more...

    Tagged: philosophy java.net

    Truly reliable software?

    September 21st, 2003

    I've been thinking. We have lots of software crashing these days. Some due to bugs. Some due to viruses and worms. Some due to hardware failure. And yet software is becoming more common and important than ever before. So what can we do to make software more reliable? Can it be 100% reliable when it is written by failable humans.

    Read more...

    Tagged: philosophy java.net

    The two opposing forces of software: why career programmers will always have a job.

    September 15th, 2003

    A lot of people have been complaining about the loss of jobs in the programming field, and it's only going to get worse they say. I don't think it's true. There will always be work for the career programmer. We just have to make sure we move up the abstraction ladder. Even in a world where basic coding is done overseas and many components are opensourced, there's still plenty of work to be done, and paid for.

    Read more...

    Tagged: philosophy java.net

    Passive Tech on the Ocean

    September 9th, 2003

    Last week I spent a much needed vacation in The Outer Banks. If you ever see a sticker with OBX in a circle on it, that's the Outer Banks. Beautiful and isolated barrier islands off of the coast of North Carolina, they provide great rest and relaxation. And also the opportunity to think about how technology fits in our lives. I've got lots of new ideas to discuss in my coming entries, but one in particular struck me: Passive technology.

    Read more...

    Tagged: design java.net

    SwingHack: keyboard spinner

    August 28th, 2003

    While crusing through the AWT/Swing documentation for another project I ran across a method I never knew existed: Toolkit.setLockingKeyState(int keyCode, boolean on). It's been there since 1.3 (which is what, 3 years old now) but I never noticed it before. Hmm, I thought. What could I use that for?

    Read more...

    Tagged: java swing-hacks java.net

    Swing Hack: Window Snapping

    August 22nd, 2003

    While working on another project I came up with a silly idea. How could I force windows to remain completely on screen and to snap to the screen edges? A simple form of window snapping. Since you can receive an event every time the window is moved it's easy to create a Component Listener to do it.

    Read more...

    Tagged: java swing-hacks java.net

    Strong vs Weak Typing: Can't we have the best of both worlds?

    August 15th, 2003

    I've seen lots of arguments on the merits of weak typing. It encourages flexiblity. It lets me write code faster. I don't worry about the details until later. I can do cool runtime tricks.

    Read more...

    Tagged: pl-design java.net

    Where are my free JavaBeans?!

    August 11th, 2003

    I have a webserver. It's a small box sharing a friend's static DSL line with a few other boxes. It does the job pretty well, hosting the websites for my family members. When the blogging revolution hit I wrote some journaling software for myself. It was written in Perl originally, later switching to a servlet with XSLTs. This was great for me but not so great for my sister when she wanted a weblog. She can write HTML and copy links. That's about it. No javascript and certainly no knowledge of XSL templating. My solution was to switch to JSPs. I told her as long as you don't edit these magic tags everything will be fine. All is good until she says she wants a counter.

    Read more...

    Tagged: java java.net

    CVS or Else?

    August 6th, 2003

    In my years as a professional programmer I have used many Revision Control Systems (RCSes). It's that software that manages and protects the software you use. One of the tools of the toolmaker. Many companies pay tens of thousands of dollars for this software, often licensing it per-seat, and yet a perfectly good free alternative exists: CVS. In fact I will argue that there almost no reasons not to use CVS. While there are some other RCSes which beat CVS on technical grounds like parallel development I think that CVS has the edge in everything that counts.

    Read more...

    Tagged: programming java.net

past future
Like this? Hire Me!