Journal Sections:
• embedded • hardware • java • life • mac-osx • opinion • photography • software •
• embedded
-
Arduino, an open-source platform, Pt.3:
ATmega 8 / 168 internal clock and fuse settings
Considering the already low price of the Arduino board, building an Arduino-like board yourself probably doesn't save you any money but is certainly a fun and education project to do.
I tried to make the simple board even simpler, by using a Serial instead of an USB Port, the ATmega's internal clock instead of an external crystal, and requiring 5 VDC instead of providing any kind of power regulation. However, my board does expose the 6 header ICSP, equivalent to the one available on the original Arduino NG Board.
RadioShack's Multipurpose 417 Holes $1.79 PC Board (Model: 276-150 Catalog: 276-150) built a great starting point for this electronics project, which was obviously inspired by Tom Igoe's 'Arduino Breadboard'.

After soldering the components onto the board and checking all joints, it was time to put the Arduino bootloader into the Flash Ram, which raised a couple system / software related questions I hadn't thought much about before:- To be able to use either the ATmega8, which is used on the original Arduino, or the pin compatible ATmega168 microcontroller, which offers twice the amount of internal RAM, I had put a 28-Pin DIP Socket on the board. While the original Arduino board uses an 16.0MHz external crystal, my board relies on the internal clock, which for the ATmega8 means a 1.0MHz Internal RC Oscillator (slowly rising power) and for the ATmega168 an 8.0MHz internal RC oscillator, which by default however gets divided by 8, resulting in 1.0MHz system clock. How could I address the speed difference, to keep software changes to a minimum?
- Since this obviously involved messing with the ATmega's confusing fuse settings, what fuse bits do I have to adjust?
- Arduino, an open-source platform, Pt.2I have been playing with Arduino for one week now and really enjoyed the simplicity with which Wiring allows access to I/O ports. The comprehensible but mandatory structure of a program works really well as long as things are kept simple, while somewhat more advanced programs could certainly benefit from access to interrupts.
However, before making things more complicated on the Software side, I wanted to replace Arduino's microcontroller chip (ATmega8) with the Atmega168-20PU ($4.11 at DigiKey), which most of all, doubles the amount of Flash Memory, the memory space, where binary versions of compiled programs end up.
Burn Baby Burn
The Arduino Mini board is already based on the ATmega168 and the development environment supports the ATmega168 as well. But how to burn the boot loader on to the bigger chip was still a bit of a mystery, at least to me.
Obviously, the microcontroller chips isn't any bigger and comes in the same 28-lead PDIP packaging, and since it is not soldered on to the board but sits in a socket, replacing the chip is very straight forward and took only a couple of seconds.
Burning the boot loader on the other hand took a little longer. The Arduino board has the AVR typical 6 headers ICSP, an in system programming port, which allows burning a boot loader without removing the microcontroller chip from the board. Most ISPs (In-System-Programmers) still require an serial or parallel port but don't work too well through USB-to-Serial adapters, not even with devices like the Keyspan HS19, and Mac users have to rely on AVR's AVRISP mkII (ATAVRIPS2-ND), available for $34 at DigiKey.
The AVRIPS can program newer 8-bit RISC microcontrollers (with ICSP Interface) through the USB port. The target board still needs to be powered and its regular ports should be disconnected from other devices. Only after following Dr. T.C.P.'s advice, disconnecting the HD44780 LCD, I was able to have the Mac communicate with the Arduino board through the ICSP.
- Arduino, an open-source platform, Pt.1Taking advantage of strong disagreements inside Germany, the Italian feudatories rebelled and, in 1002, elected Arduino, Marquess of Ivrea, king of Italy. He distinguished himself particularly because of his fights against the Bishop of Ivrea.
Today, Arduino distinguishes itself in price, capability, openness, and ease of use - but first things first.
Arduino is an open-source computing platform based on a simple board, and a development environment for writing software. The Arduino board hosts an Atmel MicroController chip, the AVR-ATMega8, which has 8-KByte self-programming Flash Program Memory, 1-KByte SRAM, 512 Byte EEPROM, 23 I/O pins, 6 or 8 Channel 10-bit A/D-converter, and 16 MIPS throughput at 16 MHz.
The other IC on the board is an FTDI FT232RL, a single chip USB/Asynchronous serial data transfer solution, with 256 Byte receive and 128 Byte transmit buffer.

Considering that these two chips alone would cost you about $10, the $32 that Spark Fun charges for the fully assembled, RoHS compliant, and tested Arduino board looks like a real bargin.
Moreover, like Tod points out, the Arduino looks even more attractive, when compared to the $119 Basic Stamp, which is another embedded computing platform, mainly for hobbyists and education.
However, Arduino is actually two things, ... - Tweak, Hack, and Bend Technology @ UCILater this week, I'll be at the OCEJUG, Orange County Embedded Java Users' Group, to give a presentation titled: Innovate - Tweak, Hack, and Bend Technology, showing how a small device, about the size of an iPod Shuffle, but capable of executing Java-Byte-Code, is turned into a Web server. After taking a very close look inside the workings of a digital toy camera, we will connect it to the embedded device, creating a full featured web-cam.
Along the way we may add some more hardware and learn a few things about how CMOS sensors capture image data and how a Bayer-Pattern can be used to decode the sensor data.
The free OCEJUG event takes place on October 19th at the University of California, Irvine (Engineering Tower, Room 331 / ET331), starting at 6:30 PM.

- SD Code Camp Pt.1 - Innovate - Tweak, Hack, and Bend TechnologyWhile San Diego Code Camp, which is taking place this weekend in the UCSD Extension facilities, looks more than just a little Microsoft .net heavy, there are some really good speakers lined-up, with very interesting topics.
To give attendees a chance to see some cool Microsoft .net-free technology and to reflect on how to inject innovation into their projects, I will give my favorite talk: "Innovate - Tweak, Hack, and Bend Technology".
Attendees will see how a small device (available for about $100 at Dallas Semiconductor), about the size of an iPod Shuffle, but capable of executing Java-Byte-Code, is turned into a Web server. After taking a very close look inside the workings of a digital toy camera, (available for about $10 on eBay), we are connecting it to the embedded device, creating a full featured web-cam.
Then we are going to write some Java code, load it into the device, and execute it remotely. But be warned, we are targeting an 8-bit processor running at only 40 MHz and its 1MB SRAM serves as file-system, program memory, and runtime heap.
Along the way we may add some more hardware and learn a few things about how CMOS sensors capture image data and how a Bayer-Pattern can be used to decode the sensor data.
San Diego Code Camp is taking place this weekend in the UCSD Extension buildings.
See you in Room 143, 1:15 PM to 2:30 PM: Innovate - Tweek, Hack, and Bend Technology

- DivX, H.264, Video Codecs, etc.While the big guys fight over the next DVD standard, (Blu-ray optical discs and HD DVD discs, two different and new DVD formats offering higher capacity than current DVDs, which aren't capable of storing an entire high-definition movie on a single disc), what are you and I do when capturing a movie from a DVD or TV Capture board or (USB device)?
Years back, when I was recording every episode of Millennium (a Chris Carter creation), I was using DivX, but since I wanted to be able to watch it on TV, I ended up encoding in MPEG-2 and writing in onto a CD in VCD format.
Today, one can find quite a few DVD-Players supporting DivX (http://www.divx.com and http://www.divxnetworks.com)out of the box and most of you probably have some kind of PC or Mac mini sitting right next to the TV, able to feet it with all kind of video stuff, no matter the format.
However, imagine for a moment, you still had the goal to burn your captured video onto a CD or DVD, what codec would fit the bill? Apple seems to be pushing H.264, a next-generation MPEG-4 video compression technolog, quite heavily and beside Quicktime, Vsoft for instance has codecs available. DivX, which has arrived at Version 5.2.1 for the Mac is also still an option.
A couple Russians have put together an amazing 66 pages long comparison (don't worry - it's written in English) of some of the most popular CODECs (DivX, H.264, Fraunhofer, AVC, etc.)
Looks like current H264 codecs are approximately on a level of DivX 2.0 but are catching up quickly and the next versions should be similar DivX5.
Any thoughts?
-wolf
- Specialized Certificate In Embedded Computer SoftwareOver the last year or two I have blogged a couple times about the late-night classes I was taking at UCSD Extension here in San Diego. Some of related work I did is documented in the Embedded Systems Projects area of my site.
Most classes were tought by Ken Arnold, president of HiTech Equipment Corporation and author of Embedded Controller Hardware Design and like I have said before, the speed he is going through the 1st three or four chapters is always mind boggling ..
After working quite a few nightshifts and weekends, doing homework, even some soldering, project reports, preparing for presentations, mid-term and final exams, it finally happened:
UCSD's "Specialized Certificate In Embedded Computer Software" came is the mail.
Now, the only question remaining .. what do I do with all that spare time ;-)
- When I needed it mostJust when I needed it most, Germany's CadSoft Computer GmbH made their awesome PCB design, Schematic and Board Layout, and Autorouter Software available for the Mac.
CadSoft's German site: http://www.cadsoft.de/
CadSoft's US site: http://www.cadsoftusa.com/
Their EAGLE Layout Editor is an easy to use, powerful tool for designing printed circuit boards (PCBs). Best of all, the EAGLE Light Edition can be used for free!

- MIDP 2.0 on a Mac - so close - so far awayDid you ever ask yourself why there aren't any really cool MIDP2 applications for your PDA or cell phone?
If you are reading this blog, chances are you have switched to a Mac soon after OS X was released or maybe more recently - if not - you probably wish you had and still look for the right moment. Anyway, our developer friends on Window PCs enjoy developing MIDP 2.0 applications, using Sun's J2ME Wireless Toolkit, which has become the de facto standard toolkit for developing applications for Java 2, Micro Edition (J2ME).
J2ME Wireless Toolkit 2.2 supports:
- MIDP 1.0 and 2.0
- CLDC 1.0 and 1.1
- Java APIs for Bluetooth
- Mobile 3D Graphics API for J2ME
- Wireless Messaging API (WMA)
- Mobile Media API (MMAPI)
- J2ME Web Services
- etc.
Developers, working on a Mac have been left behind - way behind. MIDP 1.0.3 is the most recent reference implementation available on OS X.
- Java, C, J2ME, and BREW
Embedded Devices
When working on embedded devices, I occasionally do some C programming. Writing a driver allowing downloading images from a digital camera into an 8-bit Microcontroller required even some assembler coding. Anyway, besides those adventurous expeditions I'm pretty much a hardcore Java coder - if you hadn't heard.
Mobile Devices
Sun Micro's Java Micro Edition (J2ME, Java subset for small consumer and embedded devices with limited capabilities) and Qualcomm's Binary Runtime Environment for Wireless (BREW, runtime environment running at the firmware level (CDMA chipset) and available only to CDMA-based wireless devices sporting Qualcomm processors) are the two technologies at hand when developing an application targeting a mobile device. J2ME and BREW compete on the execution platform (phone, PDA, etc.) but also through different distribution and billing systems as well as through their respective developer communities.
But there is a lot going on currently in the mobile devices space:
• hardware
- What's really in those containers full of boxes?Since the iPhone 3G launch is now confirmed for July 11, is it really iPhones, what is those 188 mysterious ocean containers? The following observations could also point to new a 16:9 17.3" MacBook Pro.
- External Harddrives File Transfer Speeds Compared: USB 2 vs. Firewire 400After reviewing the Acomdata Samba USB Enclosure, which houses a Seagate SATA 3.5" 7200 RPM drive with 8MByte buffer, and also the LaCie 160 GB Portable Firewire-400 2.5" 5400 RPM drive a couple weeks ago, I finally took the time to run some simple file transfer speed tests on both drives.
External Harddrives : File Copy Speeds Compared
USB 2: SATA 3.5" 7200 RPM vs. FireWire-400: 2.5" 5400 RPMSingle file [200 MB]
Source \ Target Internal Drive External USB Drive External FW400 Drive Internal Drive - 11.104s 7.167s External USB Drive 5.533s - - External FW400 Drive 5.187s - -
- Sh!t We Like - Mini Disk Adapters
Even before writable mini disks, the 8-centimeter in diameter small CDs and DVDs (a.k.a Pocket-CD), became available/affordable, I really liked that small form-factor. Today you find mini disks included with some computer accessories, used as a cheap way to include drivers and other software. Some video cameras use writable mini DVDs for content recording. However, I don't think those small silver optical disk became very popular ever and the rise of the slot loading drives surely didn't help.
It used to be that only on Apple computers one would predominately find slot loading optical drives (CD and DVD drives) while on PCs the less expansive but often faster tray loading drives were used. Generally, slot loading drives seem to be more convenient and offer a very clean look but are also more prone to jamming; most importantly however, slot loading drives don't accept 3" mini DVDs or Pocket CDs and Apple warns about using those.Warning: The optical drive in your Mac mini supports standard circular 12 cm discs. Irregularly shaped discs or discs smaller than 12 cm are not supported. Noncircular or small discs may become lodged in the drive.
- Sh!t We Like - External Harddrives Pt2Putting the spare 3.5" SATA hard drive we had laying around, into a nice external enclosure, was easy and economically the right thing to do. In External Harddrives Pt1, we pointed out the importance of looking at the drive's power requirements and comparing that with the enclosure's power supply parameters. One week back in service again, the now nicely enclosed Seagate ST3250823AS SATA drive has been working great so far and is used by Mac OS X Leopard's new integrated backup program a.k.a Time Machine.
I really like the looks of the black Acomdata Samba USB Enclosure but it's kind of big, considering that sits right next to a Mac Mini. Also, the required 12V AC wall-adapter makes this a pretty much stationary device, not suited for moving around a lot.

LaCie Portable Hard Drive
Instead, a really cool and portable external hard drive is the LaCie 160 GB USB 2.0 Portable Hard Drive. The compact (3 x .65 x 5 in / 76 x 17 x 129 mm ) and very lightweight (6.35 oz / 180 g ) device houses a 2.5" 5400 rpm hard drive. This is arguably the best looking external drive but what's even better is that there is also a FireWire 400 (up to 35-40MB/s) version available.
- Sh!t We Like - External Harddrives Pt1Replacing the PowerMac G5 with a Mac Mini (Core-2-Duo) has worked out great so far; I really do enjoy this small, fast, and quiet computer. However, to put Mac OS X Leopard's new integrated backup program a.k.a Time Machine to work, requires a 2nd harddrive. Luckily, I had removed the secondary harddrive, which we had added just a couple months ago, from the PowerMac, before selling it and finding a nice external enclosure for the 3.5" SATA drive shouldn't be all that hard.

Acomdata Samba USB Enclosure Kit Black
- Mac Mini the 3rd.A couple weeks ago we had bid fare well to the Power Mac G5 and while I was considering replacing it with a MacBook Pro, I eventually went with a Mac Mini, making it the 3rd one in the house (there were already Tom's G4 based mini, and the Media Center Core Solo based mini).
The newest addition is a 2 GHz Core-2-Duo based mini, upgraded to 2 GB RAM; and having all the other minis around, makes it easy to compare things like speed, runtime temperature, etc. and since I did the memory upgrade myself, we also looked inside, comparing the internals.

- A fond farewell to my good old G5
It wasn't really an emotional goodbye but with some sadness, I sold my almost to the day four year old PowerMac G5. It was one of the first ones built, a 1.8 GHz single processor machine. The beautiful enclosure with slowly and quietly running fans inside still looked like new but the heavy weight limited the selling options.
There are a couple place on the Web (MacOfAllTrades being one of those) that buy or trade used Macs. The purchasing prices they offer are not great but I wouldn't call them completely unfair either. However, the seller is responsible for paying the shipping fees to their location, which, considering the dimensions and weight of a G5, can be a significant.
MacOfAllTrades is certainly one option to sell a Mac and also a good way to find out what the absolutely lowest offering price is, one might have to accept. However, like many other Mac buyers and sellers, I prefer Craigslist .
Asking for a fair price will definitely get some Mac fans interested and in my case, it took only two days and the G5 was gone. No shipping fees - the new owner of my good old friend came by and picked it up.
Farewell PowerMac G5, farewell ...
- Brain Surgery Pt.6 - The different TwinsDDR and especially DDR2 SODIMM memory became recently somewhat affordable, allowing for another episode of the Brain-Surgery series.
This time it was the different twins that were due for a significant RAM increase. The different twins are our two Mac minis; there is Tom's 1.25GHz PowerPC G4 based Mac mini and 1.5GHz Intel Core Solo based Mac mini that's mostly used as a TV-Internet Connector, which setup and purpose I had described back in October 2006 in Subscription TV.
Usually, I get memory upgrades for Macs from either Crucial or Ramjet directly. However, this time I got a way better deal at Mwave.com for the same Crucial Memory.
Upgrading the Intel-based Mac Mini to 2GB RAM
- Upgrading here means replacing 200 PIN SODIMMs:
Two Micron 256MB DDR2 667 CL5 (PC2-5300S-555-12-C0) modules were replaced by two Micron 1GB DDR2 667 CL5 modules: CT12864AC667 - There are a couple really useful sites that explain in much detail how to open the Mini, OWC even posted a video, showing how to disassemble the Intel-based Mac mini.
However, I had some trouble removing the WIFI-antenna, which didn't work as explained elsewhere. The antenna is spring-loaded and kept in place by two black plastic posts. Squeezing the posts towards each other only slightly, releases the antenna-board immediately.
The whole procedure took about 15 minutes, which already included using about half a can compressed air to clean the device. Upgrading the memory certainly is the easiest upgrade one can perform and I imaging that replacing harddrive or CPU may be a little more challenging.
Upgrading Tom's PowerPC G4 based Mac mini to 1GB
- Here again, upgrading means replacing - this time a single 184 PIN DDR SDRAM:
A single 512MB PC3200 CL3 module was replaced by a Micron 1GB DDR PC3200 CL=3 UNBUFFERED NON-ECC module: CT12864Z40B - Opening the older Mini seemed a little harder but once the case was opened, replacing the memory module was very easy, no other components needed to be removed or disconnected.
Again, with cleaning, the whole procedure took less than 15 minutes.
Here are the previous episodes of this never ending brain surgery series ...
- Upgrading here means replacing 200 PIN SODIMMs:
- Formatting a USB Flash-Drive for OS XSince a while back, I'm using a tool to store all my passwords, website logins, program serial numbers etc. all RC4-encrypted and password-protected. Currently, the password tool (Pastor) and the data file are located on my Power Mac G5, which of course is a problem when I need to lookup a password when away from the G5, like at work for instance. Putting everything on a USB Flash Drives may be a good solution but I'm just exploring the possibility while I'm writing this, so let's see how it goes. When formatting a USB Flash Drive (or any drive for that matter) OS X offers the following 7 choices:
- UNIX File System
- MS-DOS File System
- MAC OS Standard
- MAC OS Extended (Case-sensitive)
- MAC OS Extended (Case-sensitive, Journaled)
- MAC OS Extended
- MAC OS Extended (Journaled)
MS-DOS FAT32 File Systemis the one and only option available. The same is true for UNIX, which makesUNIX-FSthe obvious, best choice.
But how do all these formats compare and which one should be used, if Macs running OS X are the only computers the Flash-Drive will ever be used with?
Mac OS Extended a.k.a.HFS Plusa.k.a.HFS+seems to have a lot of advantages over MAC OS Standard a.k.aHFS.
- Mac OS Extended format is a hard disk format that increases the number of allocation blocks on the disk and also allows more than 65,000 files on the hard disk. However, Mac OS Extended format optimizes the storage capacity of large hard disks by decreasing the minimum size of a single file.
- MAC OS Standard a.k.a HFS on the other hand does not support file names > 31 chars, it does not support additional meta-information used by Mac OS X, has as limit of 65k allocation blocks, and is more error-prone than HFS+.
- Since the storage efficiency of Mac OS Extended format typically applies to 1 GB or larger volumes, Flash Drives with a capacity below 1 GB may still benefit from the MAC OS Standard format.
What about Journaling?
If journaling is turned on for a disk, Mac OS X maintains a continuous record of changes to files on the disk. If your computer stops because of a power failure or some other issue, Mac OS X uses the journal to recover the hard disk to the last acceptable state before it stopped.
However, flash memory has a limit when it comes to how often a memory location can be changed and therefore, Journaling doesn't seem to be the first choice when it comes to Flash-Drives.
Storage Efficiency and Write Speed.
We used a Kingston 1 GB Data-Traveler Flash Drive and performed the following tests with every available format:
- Check available storage capacity after formating
- Copy 5 large files (total 580.4 MB) and 203 small files (total 812 KB) to the flash drive
- Measure transfer speed while coping the large files
- Check used storage after all files were transfered
- Brain Surgery Pt.5
Just like the first four parts of this never ending brain surgery series, this is about another memory upgrade.
- G5's memory upgrade
- iBook 1.2GHz memory upgrade
- 1.67 GHz 15" PowerBook 1GB DDR-2 memory upgrade
- 2nd Harddrive for the G5 • Seagate Barracuda 250 GB SATA drive
- Data Transfer Speeds Compared
When it comes to file transfer over your local area network, Wifi and Bluetooth win hands down, when only "coolness" is considered. Obviously, the laptops at my house share files using their built-in Airport Extreme cards, but all other computers are connected through a "legacy" 100 Mbit Ethernet Switch (DLink DSS5+) and that is also the case for Tom's Mac Mini.
It would take some serious work to convince him that a plain old CAT5 Ethernet cable really has its advantages, even if it meant not being one of the 802.11 cool kids.
We started looking into all the different ways in which we can share (or at least transfer) files between computers.- Ethernet
- Firewire
- Wifi
- Bluetooth
- Cable Modem Signal LevelsIf you have a router to connect multiple computers to your high-speed Broadband Internet connection, your certainly have configured the router's DHCP and NAT settings, using a networked computer's Web Browser. On a LinkSys router for instance, this is done by browsing to http://192.168.1.1. You can also use your Web browser to find out how good your cable connection is. The magic address for most cable modems is http://192.168.100.1, some models may require http://root:root@192.168.100.1.
Now, you may immediately have recognize that this address as a non-routeable IP address, which means that we either have to connect a computer directly to the cable modem or hack the NAT-router's routing table. Never, ever, should you connect a Windows box directly to the Internet. Personally, I don't even want to do it with my Macs or Linux systems.
- Brain Surgery Pt.4The first three parts of the brain surgery series dealt with memory upgrades. This time however, the aging G5 is getting an additional hard drive, the Seagate Barracuda 250 GB SATA drive: ST3250823AS. Picking the right drive is not really that easy and most SATA drives you find at Fry's or your local PC Club probably won't work in a PowerMac G5. Fortunately, there are sites like Accelerate Your Mac, with a helpful Drive Compatibility Database.
I was looking for an inexpensive 250GB hard drive that I wanted to use as a secondary drive in the PowerMac G5 (late 2003 model, single processor 1.8 GHz) and ended up buying the ST3250823AS Seagate Barracuda at NewEgg. NewEgg is located in Whittier, CA, which means I had to pay sales tax but even with the cheapest shipping options, the drive arrived the next day. - Brain Surgery Pt.3After the G5's memory upgrade and the iBook 1.2GHz memory upgrade, this time, the all new 1.67 GHz 15" PowerBook received an additional 1GB DDR-2 memory upgrade.
Like shown in Apple's Memory Card Replacement Instructions, adding an additional memory module to the PowerBook is neither difficult nor scary. Even the latest incarnation of the now faster PowerBook comes with only 512 MB Ram. However, this is the first time Apple uses the faster and also cheaper DDR-2 Ram, to be precise, 512MB PC2-4200 DDR2 SDRAM (running at 333MHz).
All new PowerBook G4 models come standard with 512MB of memory running at 333MHz. The 12-inch PowerBook G4 uses PC2700 DDR SDRAM, while the 15-inch and 17-inch models use PC2-4200 DDR2 SDRAM. For a considerable performance improvement when working with large files, the memory in the 12-inch model can be expanded to 1.25GB, and the 15-inch and 17-inch models can accommodate up to 2GB. Both the 15-inch and 17-inch models come with 512MB of memory in a single SO-DIMM, leaving a slot open for future memory upgrades. - A quieter drive
- IOGEAR's Bluetooth to USB Adapter for MacintoshMy G5 doesn't have BlueTooth built-in, which really didn't bother me all that much for the last one-and-a-half years or so. However, things have changed and now I needed it badly. Apple's Web-Site doesn't make a secret about which USB Adapter you are suppose to get, http://www.apple.com/bluetooth/ heavily promotes the D-Link DBT-120 USB Bluetooth Adapter, to be had for $39.95 from the Apple Store or DLink's Web site.
I was looking around for a while and when including shipping and tax, I counldn't find it for less then about $40.
- Wetsuit for the GsCurrent weather conditions here in Southern California made me buy a wetsuit for the PowerBook.
We had more than enough of rain during the last couple of weeks and carrying an unprotected PowerBook outside, even for just the short distance between the office building and the car, was sometimes not an option.
Finding a suitable bag for the huge 17" model is not that easy but once I saw the Tucano Second Skin folder; there was no way back. I got a black one for the PowerBook and a red one for the iBook.
- Brain Surgery Pt.2After the G5's memory upgrade went well, the 12" iBook 1.2GHz was next on the list to receive an 256MB memory upgrade, which would bump its total RAM to 512MB.
Just like expected, the iBook's memory upgrade was a bit more challenging but thanks to Apple's helpful document: Memory Card Replacement Instructions not really scary.
Before:

Inside:
Unlocking the keyboard and flipping it over towards the palm rest exposes the iBook's Airport Extreme Card

The Airport Extreme Card can be easily pulled out of the slot and the antenna cable doesn't need to be disconnected during the memory upgrade procedure. Putting the Airport card temporarily into a piece of the anti-static bag the memory chip shipped in, seemed to be a good idea.

Installation:
Inserting the DIMM is not difficult after the Ram shield (four screws) has ben removed. Again, I needed to push the DIMM down into the slot a little harder than I had expected, to allow the ejectors to snap into place.

After:
After re-inserting the metal RAM shield and the Airport card, closing the case, and putting the battery back, the iBook booted and the "About This Mac" dialog showed 512 MB DDR SDRAM.

- Brain Surgery Pt.1Two days after ordering the memory upgrade for the Apple Computers UPS delivered and tonight the single processor 1.8 GHz G5 got his memory bumped up form the original 512MG to 1.5 GB.
Now, I assume bumping the iBook's memory is going to be a little more challenging - so let's start with the easy stuff.

Before:

Inside:
Having done my Apple G5 housekeeping a couple times now, opening the G5 is not all that exciting anymore and following Apple's Memory (DIMMs) Replacement Instructions make the whole memory installation an easy to perform task.

Installation:
Inserting the two DIMMs is not difficult and after removing the fan there is enough room to do this. The origional modules are a little taller than the new crucial ones and I needed to push the DIMMs down a lot harder than I had expected, to allow the ejectors to snap into place.

After:
After re-inserting the fan, closing the case, and connecting all cables, the Power-Mac booted and "About This Mac" dialog showed 1.5 GB DDR SDRAM.

- Housecleaning - Apple Mac G5Every once in a while it is time to clean that beautiful Apple PowerMac G5. For me this means two things, cleaning the Computer's inside as well as Mac OS X cashes etc.
So here a short list describing the housecleaning I just performed on my Mac:
Cleaning a G5's inside- Removed plastic shield.
- Pull front CPU fan assembly, this one has no wires.
- Remove the screw from the video card and pull it out.
- Partially remove rear CPU fan assembly
- Partially slide out front speaker/fan assembly.
- Clean the interior including the CPU heat-sink and everything reachable by blowing one to two cans of compressed air through the whole thing.
- Use Windex on a paper towels on the plastic shield.
- Reassembled.
- Clean Disk Cashes (Library/Cashes and User/Library Cashes)
- Remove preferences from deleted programs (Library/Preferences)
- Repair Disk Permissions (First Aid in Disk Utilities)
- Zap the PRAM (Restart the Mac and hold Command-Option-P-R keys down until hearing the 3rd chime)

- Mac OS X is riding the BuffaloSome USB printers actually ship with Mac OS X drivers. However, most of those drivers only work with the printer being connected directly to one of the Mac's USB ports. Once you made the USB printer available on your local network, through an USB print server for instance, a Mac is not capable of using that printer anymore.
Since I still have two Windows PCs at my house, which I wanted to be able to print from without the need to have the Mac running all the time, I added the small but sufficient Buffalo Print Server (Buffalo LPV2-USB-TX1) into my LAN.
Setting up the Windows PC to use the printer, a Samsung ML-1750, was a snap but Samsung's print driver for the Mac would work with neither Rendezvous nor IP-Printing. - Gone Printing... I am not in the publishing biz nor do I write books and have no need for a really good printer. However, my old laser's (HP LaserJet 2P) DRAM would fail ever so often and now it was running out of toner. The decisions to either buy a new printer or a new cartridge for the old one wasn't that hard.
A couple of year's ago I had a bad feeling about Samsung products but that all changed when I got my cool Yepp MP-3 player two years ago and ever since I follow the company and their product releases more closely. Now last month Fry's had this really good deal on a Samsung Laser Printer ML-1750, which had about the configuration, I was looking for:
- Parallel Port to connect it to my Router/PrintServer
- USB Port to connect it to my PowerBook G4
- Printing speed is up to 17ppm
- Resolution: 1200x600 dpi
- Processor: 166 MHz RISC
- Memory: 8MB
- Compatibility: Windows 95/98/Me/NT4/2000/XP, Linux, Mac OS
- …and it is really small: 13.9"x14.6"x7.7" (WxDxH)
So far it has been a great experience using this printer. It's fast, the printed documents look sharp, and I can finally print 2 pages on a letter size page.
• java
- Turning the Web on its head - let's have the server call the clientCode Camp is not just for geeks, hackers, and code monkeys; and while you may find some of them at UC San Diego on June 28 and 29, Code Camp is first and foremost a place for software developers to come together, share ideas and experiences, and learn from their peers.
This will be my 2nd San Diego Code Camp, which compared to the Code Camp up North at Cal State Fullerton, is much more focused on Microsoft and .net related technologies. However, I'm still hopeful that this topic will fill a room: Turning the Web on its head - let's have the server call the client.
We will take the accepted view that a Web-Client calls (via HTTP GET or POST) a server and turn it on its head. Let's have the server call the client. It is really not that far fetched, to imaging a scenario where the server, when it has determined that something exciting just happened (e.g., the Dow Jones Industrial Avg. Index jumped 100 points) calls the Web Client, instead of clients constantly polling the server (even when the DOW barely moves). - Java 6 on the MacIt had to happen eventually, Apple finally released Java SE 6 for the Mac - well not for all of Macs, only for Macs running Mac OS X 10.5 [Leopard] - and not for all those Macs either, only for Macs with Intel processors - and not for all those Macs either, only for Macs with a 64-bit Intel processor.
- Turning the Web on its head - let's have the server call the clientCode Camp is not just for geeks, hackers, and code monkeys; and while you may find some of them at Cal State Fullerton on January 26 and 27, Code Camp is first and foremost a place for software developers to come together, share ideas and experiences, and learn from their peers.
This will be the 3rd time for me, driving up to Cal State Fullerton, and for the 3rd time, I have been given the early morning spot for my talk. Now, like probably most participants, I would not consider myself a morning person - still, I'm confident that this topic will fill a room: Turning the Web on its head - let's have the server call the client.
We will take the accepted view that a Web-Client calls (via HTTP GET or POST) a server and turn it on its head. Let's have the server call the client. It is really not that far fetched, to imaging a scenario where the server, when it has determined that something exciting just happened (e.g., the Dow Jones Industrial Avg. Index jumped 100 points) calls the Web Client, instead of clients constantly polling the server (even when the DOW barely moves).
Sounds interesting and a couple of implementation ideas may come to mind. After looking briefly into some xml and binary web service protocols, we will take a closer look at the notification mechanism, provided by Java's management extensions and eventually take a really close look at a full featured implementation of the above mentioned problem.
Interestingly, even when looking at both, the client and the server part of this solution, there isn't really all that much code to write, which means that even in the little time we have, all the concept and patterns used, can be looked at and discussed. Honestly, all the code, (client and server) that makes this 'Stock Quote Client' an event-consumer, instead of a stupid poller, will be shown.- CodeCamp - Fullerton 2008
- Wolf Paulus: Turning the Web on its head - let's have the server call the client
- Saturday, January 2008
- Cal State Fullerton, Room UH335, 8:45 AM
- Conference Presentation Slides: [PDF Slides, 1.7MB]
- Java 6 still missing on Mac OS XLike so many other Java developers enjoying a Macintosh as their primary computer, I installed the new Mac OS X v10.5 a.k.a Leopard this morning. No matter if you got it at the store last night, delivered by FedEx, or via download as part of your ADC subscription, the official Gold Master release (9A581) does not contain the long awaited Java 6 Runtime.
Apple updated the Java version in OS X v10.5 from 1.5.0_07 to 1.5.0_13 but Java 6 is nowhere to be found in Leopard nor anywhere on Apple's website. Previously available Java 1.6 developer preview releases also have been removed and don't seem to be available at this time.
The hypothetical question 'What would you do, if Java 6 on Mac OS X would never be ?' that I had asked just a couple days ago, seems to have turned into a much more actual one today.
Given that Apple has not released any time frame for when to expect Java 6 on OS X, as a Java developer, I have to ask myself at what point developing on Mac becomes disadvantages. While the flawlessly working beautiful machines with their secure Unix underpinning provide an obvious upper-hand over Java Developers on Windows boxes, having to work with a Java Development Kit and Runtime that is now years behind of what's available on Windows, Linux, and Solaris becomes a real burden.
Honestly, the unavailability of Java 6 in OS X Leopard has put all of us Java Developers on a Mac, into a position that becomes a little harder to explain and to defend every day.
--
Wolf
- What would you do, if Java 6 on Mac OS X would never be ?

Only four days, until Mac OS X 10.5 Leopard launches and it still has not been confirmed that Java 6 will be part of the latest Mac OS distribution. In fact, chances are, it won't.
Take for instance James Gosling's recent blog entry, where he proudly tells us that he no longer uses a Mac laptop and that the Solaris folks have made 'huge' strides in Solaris's usability on a laptop. However, his reason for dismissing his Mac is manly that the Mac hasn't been keeping up as a developer's machine.
OK, you may think that the timing of his blog post is just a coincidence, anyway, James is right. Java JDK 6 is available for Windows and Linux for many, many months now but it still isn't on the Mac; and while someone responded that a beta of JDK 6 is available at http://developer.apple.com/, it is rumored that this isn't the case anymore and that the Java 6 developer preview has been removed.
I'm a purposely vague here, since the last time I wrote something related, an almost immediate phone call from a company in Cupertino, had me edit (cripple) my article severely...
It is also 'rumored' that the latest beta of OS X 10.5 Leopard, which was made available to developers about four weeks ago, did not include Java 6 but shipped with Java 5 installed instead.
Mac OS X is arguably predominately used on client computers, which is not the place where Java has a great success story to tell and besides selling MacBooks and MacBook Pros to Java Developers, there may not be a reason for Apple to further invest in maintaining a Java VM and JDK.
So there is some indication that Java Developers on the Mac (which includes yours truly) may be up for a big surprise on Friday, when the next big cat purrs; and while there is still hope, why not hypothetically try to answer that question, 'What would you as a Java Developer on the Mac do, if Java 6 never arrived?'
- SwiXml 1.6 (Beta 1)
The first distribution of what will eventually become Swixml 1.6 has just been made available on the
Swixml.org Website and also put into the SubVersion repository on Java.net.
Thanks to Karl Tauber of JFormDesigner, Swixml now supports the JGoodie FormLayout.
Of course, a few small bugs have been fixed along the way as well and a couple improvements have found its way into the codebase.
Please share your experience with the new release over in the Swixml user and developer forums. Moreover, if you develop layouts, using the new FormLayout support, please send me your java-code, xml-descriptor and also a screenshot. I would love to include them into the sample code section and also put them on the Swixml page to make more samples available for users who just start with Swixml. - Swixml is used in GlassFish's openInstaller Framework
GlassFish is the open source community based implementation of Java EE 5. GlassFish has a few tools projects, one of which is openInstaller.
openInstaller is an open source community project building a free and comprehensive next generation installer framework. While the initial development of openInstaller was done by Sun Microsystems, it is now available under the open source Common Development and Distribution License (CDDL).
The openInstaller project provides the framework for developers to create cross platform installations; it is a part of the GlassFish community of projects, and now includes and uses the Swixml, which I had created a couple years back. Swixml is a GUI generating engine that uses Declarative Programming to define Graphical User Interfaces.
- JavaOne 2007 Wrap-up, Final Thoughts, and Open Questions
After four exhausting but inspiring days at JavaOne 2007 it's good to be back in San Diego. I flew out of SFO Friday evening, still thinking about the final general session, hosted by James Gosling early Friday morning. Gosling had the pleasure to show all kinds of cool projects, gadgets, and devices, like small and also not so small robots, all featuring Java of course.
However, I couldn't shake the feeling that he either hadn't seen some of the projects before, or had already forgotten about them; you be the judge what would be worse.
Thor Norbye, Sr. Engineer at Sun and member of the Java Posse, once again was part of the show. This time he demonstrated the Ruby on Rails support in the upcoming NetBeans 6.0. Looking at the topics Thor covered in previous years (2005, Thor demonstrated Java Studio Creator 2, in 2006, he showed the Visual Basic language support in Java Studio Creator) however, it remains at least questionable how relevant NetBeans will become in the Rails community.
- Tough Crowd at JavaOne?While I thought that there were some important announcements made during today's keynote at Sun's JavaOne conference, the crowd really didn't seem to find any of the things mentioned exciting at all.
When it comes to excite a crowd, keynote speaker Rich Green certainly is no Steve Jobs and attendees didn't line up hours before the keynote, in fact lots of people were still eating their breakfast while the keynote was well on it's way. Well, blame it on the Moscone Center's huge underground Hall, which makes you feel like sitting in a huge underground parking structure and don't provide much of an atmosphere. However, neither James Gosling nor Jonathan Schwartz, who all were on stage during the keynote, could really move the audience.
So what else happened today?
Sun announced to have completed the open-sourcing of Java, to have made the JavaOne conference carbon neutral, to have printed the conference material on 40% post consumer waste recycled paper, printed on with environmentally friendly soy ink, another scripting language dubbed JavaFX (an AJAX-Killer that will Radically Simplifies Content Authoring (TM), to work hard on Java Servlet's 3.0....
Servlets 3.0. Hm, now I'm sure we all have some ideas how to improve or add to the servlet spec. However, getting rid of the web.xml deployment descriptor and doing everything in code through annotations instead, wouldn't be on my list. Actually, I like to have the DD around, which gives the guys how actually have to deploy and run the web applications we write, the means to enable or disable certain servlets or add or remove some filters etc.
After a rough start, which saw almost every demo crash, (why Richard Blair trys to demo Java 6 stuff on a Mac is beyond me), there was plenty of beer and good food in the JavaOne Pavilion, spreading hope that everything will be good from here on out. - Is enthusiasm, energy, and creativity enough to catch up to competitors who may not have the same level of compassion but instead have a strong commercial interest?
Spending two days at the Desktop Matters conference, sharing ideas and experiencing a newly re-energized group of hardcore Java Desktop developers first hand was truly outstanding. Java luminary Ben Galbraith had organized this small but very intense 2-day conference under the umbrella of Jay Zimmerman's No-Fluff-Just-Stuff Symposium Tour.
Personally, I felt much honored to be given the opportunity to give a talk about Swixml, the DSL (domain specific language) and GUI generating engine for Swing applications. And just looking at the agenda gives a pretty good idea about what I mean with intense; all talks were short and speakers didn't waste any time with the usual partially introductionary stuff and instead focused on their core message.
The whole event seemed like a strong, colorful firework of concepts and ideas, all pointing to the same direction: despite the entire buzz around AJAX, desktop applications still matter, especially when it comes to high quality, visually oriented applications. The visual impression a user gets from an application, projects directly on to the company making or providing the app. Reason enough for Apple for instance, to spend time, money, and effort, to create iTunes as a native desktop application for Windows and OS X.
It was encouraging to see that the group of top quality people that Sun has assembled around Hans Muller and Chet Haase seems the strongest (in quantity and quality) it has ever been. Also Apple's continued commitment to porting Java Swing to the Mac OS X platform was appreciated much; no surprise, considering that at least 70% of the participants brought an Apple Laptop to the conference.
A good summary of most of the topics discussed at the conference can be found at InfoWorld.
The newly found confidence in the Java Desktop manifests itself in the announced Nimbus look-and-feel, a cross platform look-and-feel that Swing developers could be proud of. Applications deployed with this look-and-feel will look distinctively different from native applications but will look the same on Windows, Linux, and OS X.
- XML Schema for Swixml
Writing a Swixml declaration file is not that hard, if you know your javax.swing components.
However, getting a little support from your XML-Editor or IDE certainly doesn't hurt.
Getting IntelliSense help sometimes doesn't require much more than pointing your editor to a DTD or XML Schema to pop-up element and attribute names as needed; or simply adding an xsi:schemaLocation attribute to the root element might do the trick.
Anyway, I've generated the XML-Schema for all built-in Swixml elements and attributes and made it available here: http://www.swixml.org/2007/swixml.xsd
It is complete, concerning elements and their attributes, and while the schema already has more than 2700 lines (which tells a story about the complexity of Swing), it does not include containment-rules, e.g. that you shouldn't add a button into a label, nor does it validate the attribute values other than booleans.
- Java on OS X, slowly fading awayMost of the great and compelling desktop applications for the Mac are written in Objective-C, a somewhat strange language but still very similar to C and C++. Objective-C was branched from the GCC GNU compiler and therefore is free and open software, with the code of the GCC Apple branch made available here: http://gcc.gnu.org/viewcvs/branches/apple/trunk/gcc/ Most of the code in this branch is between 8 and 13 months old, which may only suggest that the repository does not get update very often, still Objective-C gets a major overhaul for the first time in a very long time. The Objective-C language is being changed and not in a small way, like David shows in his recent article at informit.com:
- Objective-C is now be able to create managed code, meaning like C# and Java, Objective-C object falling out of scope will be garbage collected by a Runtime Engine and not being released by developer written code. Objective-C adds __strong and __weak type qualifiers for pointers, notifying the runtime garbage collector of how to deal with it.
- Like David also mentions, the dot notation to access properties (just like one would do in C++) has been added too.
- And there is another example of Objective-C borrowing a feature from a different programming language: automatic generation of property accessors.
A property just needs to be annotated in the Interface (yes, Objective-C like C and C++, separates definition and implementation) like@property int aProperty;
as readable or read-write, and accessor methods (setters and /or getters) will be generated automatically using this implementation:@property (ivar = anInstanceVariable, copies, setter = aSetMethod:) int aProperty;
- Swixml
What was planned for many months, finally became reality this weekend; a new Swixml distribution was uploaded and is now available at Swixml.org. And while this is mainly a maintenance release, there are many long planned features in the queue that will be integrated in the next couple of weeks. The API and TAG documentation has been updated on the site and miscellaneous content has been added, e.g. check the developer/user opinions, to read some newly added quotes from your peers.
Version control
With the help of the java.net admin team, the old source code repository was replaced and we moved from CVS to SubVersion, and is available again here: https://swixml.dev.java.net/source/browse/swixml/
E.g., to check out source code now, you'd use:
svn checkout https://swixml.dev.java.net/svn/swixml/trunk swixml --username guestLunarPages, one of the best there is
LunarPages is a web hosting service, located in La Habra, California. It may not be the cheapest but it's simply one of the best and most reliable hosting services out there. Even their most affordable plan already provides 35 GB Storage and 800 GB Data Transfer.
Thanks to the great people at LunarPages' customer support, for the first time ever, I have all domains (swixml.org, tiffanyscreens.com, carlsbadcubes.com, and wolfpaulus.com) easily manageable in a single account.
Moving all domains into a single account also meant moving the Swixml user and developer forums, which are based on Simple Machines Forum, to the new server. Luckily, Simple Machines released SMF 1.1.1 on December 16 and we were able to use there latest release together with TreetopClimber's cool looking BlueLine theme.
Something I was looking forward to for quite a while now: the forums are now also available in an RSS feed: orDesktop Matters
Ben Galbraith, Dion Almaer, and the No Fluff Just Stuff Java Symposium (NFJS) team have announced the Desktop Matters Conference, a one-day conference focusing exclusively on the needs of Java Desktop development.
SwiXml, among many other related topics will be discussed at the Desktop Matters Conference, March 9 in San Jose, CA.
"This will be a fantastic opportunity for the Java Desktop community to come together to learn about the latest in Java 6 and the various community and third-party frameworks supporting Swing development and discuss the future of the platform. If you're doing anything with Java Swing, or your considering Swing for an upcoming project, don't miss this unique opportunity to learn from the experts in the field." -
Swixml available at ibiblio
With more project using Swixml now, it was time to get it uploaded into ibiblio, or to be more precise, into the java-repository located here: http://www.ibiblio.org/maven/.
We are proud to see Swixml being used in JXTA and Dreamcatcher
A couple of days ago some developers from the JXTA and the Dreamcatcher project contacted me and asked to have Swixml uploaded into ibiblio. Since these guys are building with Maven, having a library in the standard repository really helps.
Fortunately, there isn't too much work involved and it's also well explained here. The swixml.pom file is in CVS and the Swixml ANT built file has been updated to generate a Maven-friendly bundle.
Swixml, now available at http://www.ibiblio.org/maven/org.swixml/, ready to be used for all the developers who like to built with Maven. - Declarative Programming, emphasizing UI Generation at RuntimeOn Saturday, I was given the chance to talk at the 2006 Southern California CodeCamp.
My talk was all about Declarative Programming in Java with an emphasize on GUI generation at runtime using XUL motors like Thinlet and Swixml, where Graphical User Interfaces are described in XML documents that are parsed and rendered at runtime.
This late binding of the GUI has many advantages. E.g., enabling features, which are based on a license code or a user's role, does not have to be hard coded anymore. Instead an XML document describing the application's GUI could be dynamically loaded.
While open-source projects like Thinlet and Swixml focus mainly on the GUI, they are also good examples for how declarative programming can be done in Java.
Presentation slides are available here: Declarative Programming, emphasizing UI Generation at Runtime - IntelliJ 5.0.2 has been released.Like I have mentioned here before, a few years back I was given the opportunity to work with an incredibly talented group of engineers in St. Petersburg, Russia. While this was at the end of the dot-com bubble and long after Mr. Gorbachev had torn down that wall, Russia still felt so strangely different than any place else I had lived or visited. Looking back however, it's always the people you met that keep the memory alive, even more so if one manages to stay in touch, may it be just via email or Y!-Messenger.
After Artificial-Life, the Boston, MA headquartered company had imploded, I returned from my adventure working in Russia and re-joined Cardiff Software (what became later Verity, Inc.). Two really smart guys (Kirill Kalishev, Sergey Zhulin) of the Russian team I had led, joined JetBrains, the Prague, Czech Republic based software company, which had just opened an office in St. Petersburg.
- JavaOne SwiXML presentation onlineFinally, Sun posted PDF formatted session documentation of all JavaOne 2005 sessions here:
http://developers.sun.com/learning/javaoneonline/2005/
Even if you went to JavaOne, you probably missed Hans Muller's Defining Swing GUIs Declaratively session and his take on Swixml. The PDF version of his slides is now available here:
http://www.swixml.org/TS-7122.pdf

- How private are private fields after all?Last week, I sent the following brain teaser:
Can you write a void hack(Object obj) method that would change foo's private member variable, so that the output looked like this?
- Apache Tomcat - The Shine is GoneAfter using Tomcat as the preferred Java-Servlet-Container for the last couple of years, I have been using Version 5.0.x built-in clustering support for only a few months now.
Single server servlet programming and deploying was almost always Tomcat independent; one hardly needed to look at Tomcat's source-code and while Tomcat's documentation always sucked, any Servlet.jar file's java-doc was good enough to write programs that would work well inside the container.
If I needed to find out about certain tags in one of the descriptors like server.xml, web.xml, context.xml, etc. there was always BEA's Web site to look for a helping hand.
With clustering all that changed
Documentation about Tomcat-Clustering is almost none-existent on the Apache site. This "how-to" is as detailed as it gets there. But no problem, we are talking about open-source, right? All we have to do is to look at the code and we know what's going on, right?
Well, not exactly. The code in the clustering package is a mess. No documentation in the source files, not a single javadoc tag to be found.
Now, there are open-source projects out there, containing well-written code and documentation; Jason Hunter's JDOM or Marc De Scheemaecker Nano-XML come to mind. I had expected so much more when it comes to an established project like Tomcat, hosted on the prestigious Apache site.
- Better, Faster, Lighter JavaThere is a good presentation (audio and slides) titled "Better, Faster, Lighter Java" available at JavaLobby.com. It's by Bruce Tate, who specializes in persistence frameworks and lightweight development processes and technologies.
If you have ever been to one of the No-Fluff-Just-Stuff conferences, you may already know him. He's a great guy - check him out.
BTW, the presentation was created with Articulate Presenter, which converts Power-Points into Flash and adds his voice - cool stuff.
On the other hand it seems to be very easy to add voice with PowerPoint (using its Record Narration feature) and exporting the whole presentation into QuickTime .mov format.
Presentation: "Better, Faster, Lighter Java" by Bruce Tate
Presenter: Bruce Tate - President, J2Life, LLC
URL Link: http://www.javalobby.com/eps/bflj/ - Generation vs ReflectionThe country seems to be sharply divided more than ever. There is the current leadership, favoring preemptive wars, to pro-actively generate and compile before the fact - on the other side there are the two almost equally named challengers preferring to reflect over what has happened in recent history and trying to respond dynamically with never seen before flexibility.
No, this is not about the upcoming election of the 44th President of the United States. I am taking about two different sides chosen by Software Developers, trying to find solution for some of today's most interesting problems.
The big gorillas a.k.a. Microsoft and IBM are still trying to promote code generation, demoting software engineers to "assistant to the generator": the pure slaves that need to work with generated code know all too well the generated ToDo comments and the infamous comments that read like this: /* .. automatically generated. Do not edit! .. */
Microsoft was even granted a patent (US Patent No. 6,748,582), covering the technology that integrates certain comments left in the source code of an application under development.
- XSLT the Good the Bad and the UglyXSLT (eXtensible Stylesheet Language) is a powerful tool, which I have used several times over the last 4 years. Still, even after all those years, XSLT doesn't come easy to me and I'm only considering it when the output format is XML, XHTML, or TEXT and the target document can be generated in single transformation.
More complex XSLT scripts may be hard to write but I found them even harder to document, localize, and maintain.
JSP, JDOM and JAXEN
As an alternative to XSLT, I have used JSP. JSP is a scripting language and comes with many of the advantages that XSLT gives you, i.e. JSP can make use of XPath by using JDOM and JAXEN. JSP also comes with many of the advantages that JAVA gives you, i.e. extensive Java class libraries, powerful tools and most of all, JSP are debug-able. However, more complex JSPs seem to have almost the same aforementioned problems when it comes to maintainability and documentation.
Tag-Libraries to the Rescue
Lets imagine a server providing XML documents, which contain the data that needs to be displayed in a highly dynamic and customizable WebUI. Even with STUTS and JSF around, my preferred approach for creating that user interface would still go something like this:
- Code InspectionI recently got the chance to participate in another code inspection, in which among other things, the following line of code was heavily criticized for using String concatenation on constants and not using a StringBuffer object for the string operation in general.
FindFile.FindFileInClasspath( kPropFilePrefix + "*"+ kPropFileSuffix + kKeyProperties, vPropFiles );
This is from a J2EE project and the code is used in a background thread and executes every couple of seconds.
• life
- Apple Store, Carlsbad - Grand Opening
Like I had predicted back in January, Apple is coming to Carlsbad, to one of the most prestigious retail locations in the City, The Forum at Carlsbad.
The 1st Apple retail store in San Diego's North County opens tomorrow, Saturday, August 16 at 10:00 a.m. Be one of the first 1000 visitors and you'll get a free Apple T-shirt.
As with every Apple store opening, the apple user/fan community will meet in front of the store, before it opens. So we'll see on Saturday morning, bright and early.
Update
Photos taken during the Grand Opening of Apple's newest retail store in Carlsbad, CA can be found here.
- Roadtrip 2008
During last year's trip to the East Coast, visiting NYC, Philadelphia, and DC, we were at Apple's flagship store in New York City, on June 29, 2007, the day Apple launched the iPhone.
This years trip will be different, we will stay mostly inside California, getting acquainted with the Sierra's eastern slope, driving Highway 395, a onetime American Indian trading route that travels for hundreds of miles near the California-Nevada border.
If you like, follow me via twitter feed: http://twitter.com/wolfpaulus or on flickr.
- Happy New YearNo matter if you come here regularly or just happen to stumble upon this website or RSS feed, please accept my best wishes for the New Year.
Since there isn't much else to blog about, I've added a short PHP function, to the ever growing library that powers this site and feed. It will simply generate all blog entries of the past year on a single page: http://wolfpaulus.com/2007/
Thanks to flickr, photos that I have uploaded during the past year can be accessed through this link:
Wolf
http://www.flickr.com/photos/wolfpaulus/archives/date-taken/2007/
Enjoy this short throwback, while I'm wishing you and yours all the best for a happy 2008.
- The air quality has improved to poor.At 5:23 PM today, the evacuation order has been lifted for Carlsbad residents and currently Carlsbad is facing no immediate threat from the fires raging around the county.
Like you may have heard, several fires have been burning in San Diego County since Sunday and many of my friends and colleagues had to leave their homes. Fortunately, the voluntary evacuation order for the area I live had been lifted late this afternoon and while the air quality is still very poor and the picture and stories you see and hear on TV and local Web sites are really devastating, there is still some kind of relieve, especially since the forecasted weather seems to support fire fighting measures.
Now, this is far from over and while evacuation order are lifted in some areas, new fires start in others, forcing more people out of there homes. E.g., as I'm writing this, a mandatory evacuation for Julian is issued. Julian residents were ordered to leave by the Sheriff's Department. There is no power or phone service in Julian and the evacuations are in effect at least until Thursday. Also, Palomar Mountain, with the famous Palomar Observatory is up in flames tonight.
Flickr for 'witch fire' to see some impressions, captured by local residents. - iDay in NYCHard to believe - I know. However, it really was not planned and merely a coincidence, but on June 29, 2007, the day Apple launched the iPhone we were there, at Apple's flagship store in New York City.
The media was all over the place, interested only in interviewing people who stood in line to eventually sell their spot. I guess that makes a better story than taking about the new phone or why not only geeks would be waiting in long lines to get their hands on one.
On June 29th, the store was closed between 2 P.M. and 6 P.M. However, we spent a little while in the store a couple days earlier and the all glass stair case really is impressive!
- Why I think newegg sucks
Arguably, we are buying not all that much hardware components and gadgets, still considering all the memory modules, hard-drives, USB-Flash drives, SD-Cards, Arduino Boards, routers, etc. it surely adds up.
Frys is still a place I really enjoy going to but most of the above-mentioned things are purchased from online e-commerce companies such as buy.com, newegg.com, mwave.com etc., among which I had always favored newegg - until yesterday that is.
I had ordered a memory upgrade for a Laptop, a standard 1GB • 200 PIN • PC5300 667MHz • DDR2 SO-DIMM and while the price was not the lowest, I considered newegg a trusted source, worth the few extra bucks.

Unfortunately, the memory did not work. After plugging it in, the notebook beeped twice but refused to boot. After a couple more equally unsuccessful attempts, including reseeding the memory, switching modules etc., I gave up and notified newegg of the broken part. What I hadn't realized until then was that at newegg even broken parts are subject to a 15% restocking fee.

$62.89 - $49.80 refund + $1.30 shipping cost for the return = $14.39
Having paid 14 bucks for a brocken SO DIMM plus a trip to the local post office makes it highly unlikely that I will be purchasing from newegg again any time soon.
Now let's just hope they don't mean the restocking fee literally or somebody else will (due to the very same memory module) go through the same process. Thinking of it, could circulating broken chips and charging restocking fees be a valid business model? Hm..
- Out of Balance
Most programmers, coders, hackers, Software Engineers, call them like you see them, don't eat healthy. There is just no time to leave the keyboard for having a healthy meal and instead we prefer a quick snack or a beer, depending of the location and time of the day maybe.
Despite the popularity of the well-marketed low-carbohydrate diets, a.k.a. Atkins Diet, the Carpentaria, CA based Balance Bar Food Company (bought by Kraft Foods in 2000 for approximately $268 million) stuck to their concept of making nutrition/energy bars that have balanced proportions of 40% carbohydrates, 30% protein, and 30% dietary fat, and are fortified with vitamins and minerals.
The Balance Bar's 40/30/30 principle, aimed at achieving stable blood sugar levels, is based on a nutritional philosophy popularized by biochemist and nutrition scientist Dr. Barry Sears and has been proven to provide sustained energy and hunger management. A box containing 15 bars costs about US$ 16 and can be bought by retailers nationwide or directly at http://www.balance.com/.
Being a proud member of the above-mentioned group of unhealthy eaters, I have too few meals during the day, don't spend much time thinking about calories and fat, and don't like fruits. I drink plenty of fluids - in the form of coffee and beer that is. However, for the last seven or eight years, I have made the Balance Bar part of my daily diet and while there are plenty of flavors to choose form, I enjoy the Balance Bar Gold triple-chocolat-chaos the most.
Since the Balance Bar is really tasty and has been a consistent and healthy part of my everyday selection of food, I immediately noticed the new designed box and wrapper. Comparing the nutrition facts revealed that not only the packaging had changed but also content and not for better, if you ask me.
- Subscription TVTIVO and ReplayTV introduced us to a new way of watching television, conveniently time-shifted watching. A disposable recording of previously selected content allowed us to consume the TV broadcast whenever we wanted; maybe just 15 minutes delayed, to skip over commercials, the next day, or whenever we felt was a good time to watch it. Anyway, time-shifted watching has changed the way we watch TV today and with the exception of sporting events, long gone seems the time of appointment TV, were millions would tune in to the same channel at the same time to consume the same broadcast.
An even greater change is just beginning to unfold, what TIVO did to the time of TV consumption, devices like the announced Apple iTV will do the the content that we are going to watch. While TIVO and ReplayTV were put between the cable-box and the TV-set, iTV connects your TV-set to the Internet and thereby enabling your TV to display content not governed by TV Networks or cable providers.
Watching TV may soon involve subscribing to a show (not available on any broadcast or cable channel, like a video Podcast for instance), which is then downloaded regularly to a computer at your home and available for you to watch whenever you like.
A couple of days ago, I had the chance to pick up one of the first Intel-based Apple MacMini, which come with an Intel Core Solo processor, 512 MByte of RAM and a 60 GByte Hard-drive; the perfect machine to be converted into an TV-Internet Connector and to try out, how Subscription-TV would work for me.

- Diggnation Comic-ComSan Diego's Diggnation fans were in for a treat this Friday, when Diggnation Episode 55 was taped in front of a live audience at the La Jolla Brew House.
Thanks to the Comic-Con Convention, which is also happening his weekend at the San Diego Convention Center, the whole crew, including Kevin Rose, Alex Albrecht, Keith Harrison, David Prager, and Jay Adelson showed up.
Taping took place in a back room at the brew-house, in front of what must have been the biggest diggnation live audience yet. Spotted in the audience were some very special guests, including Alex's grandparents and Posh from the suicide girls. As always, the guys were really funny and the crowd almost exploded when Johnny Johnny from the TikiBar podcast made a brief appearance, serving some hight voltage beverages.
- Two iDogs rock on stageWe got two new tech pets over the holidays, two iDogs. These cool little toys look very Apple-style but were originally made by SEGA and are now distributed by Hasbro and others. You could use an iDog simply as a speaker for you iPod (or any other MP3-player - in case there are still other players out there) but it is so much more.
-
Blogs, Podcasts, and Video Podcasts for December 2005
Here are some of my favorite blogs, podcasts, and video podcasts:
Blogs
- TipMonkies
TipMonkies covers various aspects of technology, from software, hardware, services, hacks, etc. and attempts to bring these topics to the reader in a way that anyone can understand covering tools which you may not know even existed! - Garr Reynold's blog on issues related to professional presentation design
- TipMonkies
Subscribe