Josh On Design

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

    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 has failed. What can we do?

    November 10th, 2003

    I've been writing Swing apps for a long time and despite the speed and API improvements I don't think it's gotten better. After reading

    Read more...

    Tagged: java swing

    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!