Things I wish I knew when I first started using SWT on a Mac

I’ve got a friend who I persuaded to try Eclipse and is just learning how to use it. So it got me thinking: what would I have wanted someone to tell me when I first started programming with Eclipse? Today, I’ll focus on running SWT apps on a Mac. Why pick that? Well, because creating “Hello World” in Eclipse on any platform is very simple.

SWT on the other hand, presents an interesting initial hurdle, but is straightforward after that first bump. The reason why is because, unlike Swing, SWT relies on native libraries to achieve a native, fast, and responsive look and feel on each platform.

Continue reading “Things I wish I knew when I first started using SWT on a Mac”

How to run Eclipse from the command line in OS X (and Windows and Linux)

EclipseosxiconThe Mac is very easy to use due to its innovative packaging system for applications, where it hides an entire tree of directories inside one file/icon. With Eclipse, this shows up as the Eclipse icon that we know and love.

However, if you’re a hardcore programmer, then you really should get your hands dirty with the command line via OS X’s Terminal. This lets you get down to the UNIX core. When you go into your Eclipse install directory, you’ll find a nice executable named appropriately enough: “eclipse”. Well, it’s actually just a symbolic link into the (the nicely packaged Eclipse application that I mentioned above.)

If you just type “eclipse”, you’re in for a rude awakening, as you won’t be able to interact with the UI and you’ll be forced to Control-C. The reason why is due to an obscure implementation of how threading works in the Apple Java Runtime and how it interacts badly with SWT’s (and thus Eclipse’s) expectation of how it should be running.

The solution, however is simple:

./eclipse -vm

Continue reading “How to run Eclipse from the command line in OS X (and Windows and Linux)”

Why your car stereo needs a joystick

I think that user experience is important for software, but also for hardware. Think about it: the more you interact with something, either it becomes more invisible to you (and thus becomes “easy to use”) or the more its poor design either bugs you (and you eventually learn to live with it or replace it with something better.)

Shown here is the best interface I’ve seen for selecting which speakers your car stereo should play through. Stereojoystick
Continue reading “Why your car stereo needs a joystick”

Whatever happened to Cloudscape? (or what is Derby?)

Have you ever used Cloudscape? It’s a relational database that is written in Java. It’s been in development since 1996. One of the nice features is that it can be embedded in Java programs. I’ll write more about the benefits of embedding in another post. Another nice goodie is that it has a relatively small footprint (2 MB). For a comparison, MySQL 4.0.18 on my PowerBook takes up 146MB.

Ideally, I’d like to have an embeddable, object database written in Java, so write me if you find one. I’ve tried Prevayler. For some reason, I think I’d like a bit more community and API to work with.

You don’t have that problem with Cloudscape, as it uses SQL as its API, and thus you get the nice built-in to J2SE JDBC APIs. Also it is likely to have a big community behind it, as you’ll read below. Another nice thing is that apparently it also has a “network server”, meaning that you can run it standalone and connect to it remotely with JDBC.

So why do we care about Cloudscape anyways?
Continue reading “Whatever happened to Cloudscape? (or what is Derby?)”

Unofficial Guide to Eclipse 3.1 (Part 3)

Tonight, I’ll wrap up my look into the plans for Eclipse 3.1.

I had planned at going sub-project by sub-project for all the sub-projects in the Eclipse Technology Project. However, I realized that this project is partly incubator for projects, much like the Apache Incubator. It is also partly Academic Research and Educational projects, most of which don’t have specific project plans. Complicating my mission further, most of the projects don’t have specific future plans in the Eclipse 3.1 timeframe. So I broadened out my search to all the other top-level projects. Here’s what I found out…
Continue reading “Unofficial Guide to Eclipse 3.1 (Part 3)”

Unofficial Guide to Eclipse 3.1 (Part 2)

Today I continue looking at the plans for Eclipse 3.1 by looking at the Eclipse Tools project. I consider most of these “things that should probably be in Eclipse when you download it, but aren’t yet.” Since these are essentially independent projects, just grouped under the Tools umbrella, I’ll comment a bit about what each does, where they are now, and where they’ll likely be when Eclipse 3.1 gets released.
Continue reading “Unofficial Guide to Eclipse 3.1 (Part 2)”

Unofficial Guide to Eclipse 3.1 (Part 1)

My Eclipse cap
I’m a big believer in looking and planning ahead. So, since I depend on Eclipse as an IDE and as an application development platform, I thought it would be wise to find out what is in Eclipse 3.1.
(At the time of this writing, the most current version is Eclipse 3.0.1.)

So, I googled “eclipse 3.1” and a few results down, I found the main Eclipse Project 3.1 Draft Plan. Read this first.
Continue reading “Unofficial Guide to Eclipse 3.1 (Part 1)”

Redskins win a close one in the windy city 13-10

Disclaimer: I am a diehard Redskins fan and sing “Hail to the Redskins” after every touchdown.

After a tough string of four straight losses, the Redskins finally won another one against the Chicago Bears 13-10. I’m much more hopeful for the Skins now, even though they are going to play against tougher teams after their bye week. Now they’re 2-4 and I’m hoping they get at least 8 wins this season under our returning hero, Coach Joe Gibbs.
Continue reading “Redskins win a close one in the windy city 13-10”

Hello World!

With every new language you learn, you really should learn how to write “Hello World” in it. That’s how I’ve done it ever since I learned how to write in BASIC on my dad’s Timex Sinclair. I think I inherited my love for technology from my dear old dad who always seemed to have cool gadgets arriving in the mail. I think my first program looked something like:

20 GO TO 10

Then it would go into a nice infinite loop printing “HELLO WORLD” on my TV over and over again and my programming career was born.

Now I’ve been posting stuff on BBSes and the Internet for quite a while, but I’m just starting out with TypePad. This Hello World post seemed like a good way to start it off. :)

I hope to be posting daily, so check back for more.

By the way, for those interested in how to program “Hello World” in 150+ different programming languages, check out: The Hello World Collection. Perusing the different examples gives you a taste of what it’s like to program in each one.