I’ve really been ignoring my site for a while now. Been so busy I just haven’t had time to write here.
So, a few things.
They are watching you. Don’t scratch your ass in public in Boston, or the gubment is gonna know about it. I would make some some witty comment about Big Brother and 1984 and all that, but I’m scheduled for my tracking chip insertion later this evening and I hear the nurses are nicer to you if you play by the rules.
My backup software is sorta kinda on hold. I’m using Retrospect for Mac, Linux and Windows now, which does the job adequatly so it’s not so much of a priority and I have a lot of other projects in the works. I still want to write it because I think I can do a better job at a lot of things than Retrospect does, but there are certain aspects of Java that have inherent limitations on good backup software. Things like my A: drive rant a while back, ability to do OS specific things like get file permissions and access to the registry, add a service or a startup item, use the system tray and so on. All things that are doable, but will require native code on each platform.
Which brings me to my next thing. I want Sun to wake the hell up. Java is a great language, and it’s fast these days. There’s no good reason people shouldn’t use it to write applications… except that you can’t do that. Java has no standard OS specific extensions so you are stuck with the lowest common denominator in what you can do with the OS and that just isn’t enough to be useful. Things like the list above, and hundreds of others that you can do in a platform’s native language are missing from Java.
.NET is taking off, and it’s going to be even more prevailent when the next version of Windows comes out. .NET is not inherently better than Java, but you can do almost everything in Windows that you can do with C++ in it. Microsoft took the time to make a layer for accessing all the cool stuff in Windows from .NET and immediatly had a success on their hands. Java still has Swing. Ugh.
SWT from the Eclipse project is a good start. With careful planning and design you can write a good application that performs well and acts like a native OS application and you can write it in Java, but there are limits. SWT is a windowing toolkit and that’s really all. If you want access to other little things, like the system tray in Windows, it’s to the native code!
What I would like to see is either an official try from Sun to implement the major pieces of operating system dependant code as a javax. extension, or something like what Apple has done in making most of their core APIs work with Java. I’ve actually given some thought to writing this stuff, but like I said, I’m pretty busy at the moment.
Speaking of busy, some of the silly stuff I am working on at the moment is:
A laser projection, analog clock and thermometer: This little project grew out of some zanyness at work that I won’t go into and a dream of some day building a full laser projection system. In any case, I am trying to make a budget 2D laser scanning system with a $13 laser diode from eBay, two $10 surplus galvos also from eBay and an AVR. Those fancy laser light shows you see sometimes basically consist of one or more lasers, two fast little motors with mirrors on them and a bunch of electronics. You mount the two motors at right angles to each other so the laser bounces off one mirror (making the X axis) then bounces off the other (making the Y) and then goes to a wall, or screen for projection. If you motors are fast and your electronics are good you can draw some pretty complicated scenes. I just want to draw a clock, so I am hoping I can get away with crappy hardware 🙂
The hardest part so far has been getting the galvos mounted along with the laser to something stable. I picked up some aluminum stock today and took a stab at it but no luck. The shafts on the galvos are so short that I can’t really get the mirrors in front of each other. I’m going to have to come up with some way to extend the shafts about 1/2″ each.
My TDS-210 oscilloscope has been so useful since I got it I can’t imagine how I lived without it. I can time things down to the nanosecond, which is really handy when trying to make a circuit that moves a mirror hundredths of a degree at a time. I used it yesterday to write a delay function for my AVR stuff that is accurate to the millisecond. You can do this kind of thing without a scope, but it consists of writing hand tuned ASM, counting instructions and so on. With the scope I just did a for loop, picked a number and adjusted it till it made exactly one millisecond. So sweet.
I also added a TDS-2MM module to my scope this weekend. It’s adds FFT measurements, serial, parallel and GBIP communication and a ton of new measurements. Thanks again eBay.
What else? I’ve got a few other software projects in the works that I can’t talk about.
I’m busy as hell at work. The project I have been working on for months launches next weekend, so that’s exciting. I can’t really say much about that either, but if it works properly, and it will, I will probably consider it my greatest software success to date.
That’s all for now, I think. I need to rest my poor retinas. That new laser is a beast.