Archive for the ‘Technology’ Category
Excel is Stupid!
Posted by david | Filed under Give me a break!, Microsoft, Technology
Did you know that Excel could give you different calculated values based on what the default language for your PC is?
I’m working on a translation project … and the translation company gave us a excel spread sheet with a list of screen fields that need to be expanded.
This spread sheet uses the LENB function to calculate the length of the text that needs fit on the screen … and uses that calculated length to indicate how much the field needs to be expanded.
LENB is (supposed to be) aware of double byte & single byte character sets … unfortunately, it’s only aware of double byte characters when Japanese is the default language on your PC.
So, if Japanese IS the default language on your PC, and a character is double byte … it will return 2 as the length of the character. However, if Japanese is NOT the default language on your PC … it will return 1 as the length of a character.
There’s no warning about this potential discrepancy when you load the spread sheet … the only way I was able to find this out was to dig through the documentation.
As a result of this, I just spent a week and a half working on expanding fields … and it turns out that the size I expanded the fields to was incorrect … so those have to be redone … and the entries in the spread sheet that were less than 1 actually DO need to be expanded.
LENB is a totally brain dead and stupid function … there is NO situation where a calculation such as that should be effected by what the default language of the PC is. It should return the same value regardless of what machine it’s run on.
Turns out there are a bunch of functions that behave this way … FINDB, MIDB, LEFTB, MIDB, REPLACEB, RIGHTB, and SEARCHB.
A friend suggested that OpenOffice might be better … but, at least as far as I can see, OO doesn’t have functionality that’s aware of double byte characters.
iPhone for Wordpress
Posted by david | Filed under iPhone
This post is being written with the Wordpress app for iPhone.
As expected, it’s pretty awkward to use, but functional.
- Documentation is non-existent … but that’s coming, according to the announcement post.
- Decent integration with the camera & photo roll, although there doesn’t appear to be a way to position the pictures.
- Can’t see a way to do trackbacks or even enter URL’s.
- It’s not clear if the text is entered in HTML or just plain text.
It’s going to take some getting used to … but I’m pretty sure this isn’t the next ‘killer app’.
FWIW: This post was originally entered on the iPhone, but edited in regular Wordpress.
2.0 iPhones Upgraded to 2.0
Posted by david | Filed under iPhone
Ok, I got both iPhones upgraded to the 2.0 version of the iPhone OS.
Initially, I had some trepidation about upgrading a day early … and my feeling seemed to be valid when a co-worker tried to upgrade his phone and had a bunch of problems. He kept getting an “Unknown error (6)” message. I don’t know if he actually got his upgraded.
Regardless, I decided to throw caution to the wind and upgrade my phone anyways. Luckily, it worked without a single hitch.
When I got home from work, I proceeded to upgrade Ginny’s phone. This, of course, is where I ran into problems.
I started the upgrade process by first upgrading her iTunes to 7.7. That worked without any problems. Then I proceeded to upgrade her phone.
Initially it was going OK … then I got an “Unknown error (10)” message. Figuring that I would just restore the phone to it’s previous OS version, I tried the restore option … but when I did this I got an “Unknow error (20)” message. Tried a few more times and got the same message. This is not good.
I Googled around a bit and found a thread in the Apple support forum that said that, if I pressed Option (shift in Windows context) and clicked the restore button, I could ‘Recover’ to the 2.0 firmware. Luckily this worked.
About 20 minutes later I had Ginny’s iPhone working fine.
Five minutes after that, I we were both playing with the “Phone Saber” application.
iPhone 2.0
Posted by david | Filed under Technology
Well, I jumped the gun a bit and installed the iPhone 2.0 update.
Overall, I’m not super impressed … the incremental functionality improvements are rather limited.
Some of the applications look cool, but I’ve only played with a few of them.
What I’m really disappointed in is the lack of base functionality enhancements … things like ..
- No voice dial
- No stereo bluetooth
- No Google Calendar integration
- No Jabber / XMPP chat application (there were rumors about this)
- No cut & paste in the editor
Annoying Software
Posted by david | Filed under Software
ZDNet UK has a great summary of some of the most annoying software products around.
I pretty much agree with them on all counts … although my personal annoyance with anything that tries to install the Yahoo tool bar goes way beyond what they indicate.
I also really dislike Java’s insistence on a background task that’s constantly checking for updates. Personally, I think that any stand alone product that requires Java should install it’s own copy. Updating Java without considering the requirements of the software that is dependent on it is asking for trouble.
iPhone
Posted by david | Filed under Life, Technology
We bit the bullet … we got iPhones. Our Verizon cell phone contract has been up for quite a while and they’ve been bugging us to re-up for a new two year contract … but I haven’t been super happy with the service and phones, so we started thinking about what other provider and phone’s would be a suitable substitute.
My co-worker Jerome has the iPhone and is very happy to show it off. Even on the first release I have to admit, it was pretty cool. The interface was nice, the features were nice, and the sound quality wasn’t bad at all.
The only things I really didn’t like at the get go was the fact that you were tied to AT&T and the battery wasn’t replaceable.
After mulling our alternatives, we decided to go for it. Both Ginny and I got the 8gb model. We were originally thinking about the 16gb model, but the Apple store didn’t have any in stock and we figured, since we only used a fraction of our 4gb iPods, it wasn’t that big a deal.
A few observations …
- It doesn’t like the fact that I use self signed certs on my mail server. I’ll probably have to bite the bullet and get a proper cert.
- I haven’t found any ability to select which folders I show in my IMAP mail account. Wish I could, as I really only care about a handful on an ongoing basis.
- One feature that’s missing, and was almost a deal breaker, was the lack of voice command dialing. On my old moto phone I could just tell it “Call James Rich Mobile” and it would call James Rich’s cell phone (in my address book). Nice for talking while driving.
- As one would expect from an Apple product, the user interface is slick. The screen is a bit over sensitive though. I suspect it’s just something to get used to.
- The pseudo GPS functionality is very cool … I really want to figure out how they do it, because it was able to figure out where was I better than my GPS can.
- Porting of both the phone numbers on my Verizon account was smooth and fast. It only took 30 minutes to complete. I’m going to verify that Verizon cancels my account just in case.
One annoyance, unrelated to the iPhone itself, was the fact that it seems kind of hard to find accessories at stores that don’t actually sell the iPhone. Woodfield mall, and the Apple store, were both very crowded … and both Ginny and I were in a hurry to escape (yeah, so we could play with the new toys) … so we skipped getting protective skins for the new phones. We stopped at Best Buy on the way home, but they only had 2 or 3 skins & cases for the iPhone. I’ll probably stop at Frys on my way home tomorrow to pick something up.
I’m kind of interested to see what the SDK is all about … I’ve got some ideas for apps that could be fun.
Finding the name of a Java object
Posted by david | Filed under Java, Technical Tidbits
I just discovered a technique that’s quite handy … at work I’m writing some java code that uses a lot of generic methods. The problem is, it’s quite difficult to figure out what actual field name in the java code is being referenced by the code (it’s being triggered by one or more events).
After digging around a bit, I created a little routine that will return the NAME of the field that a particular object represents.
private String getFieldName(Object o) { String name = "unknown"; Field[] fields = getClass().getDeclaredFields(); try { for (int i=0;i<fields.length;i++) { Field f = fields[i]; Object v = f.get(this); if (o == v) { name = f.getName(); break; } } } catch (Exception e) { name = e.getMessage(); } return name; }
Obviously I’m not sure this will work in 100% of the time, but it seems to work for me now.
One thing to note, however, the routine MUST be in the consuming class … it can’t be in a super class, as the f.get(this) call will result in a IllegalAccessException.
My Geeky Good Deed
Posted by david | Filed under Life, Technology, Transportation
The Grey Ghost was slightly overdue for it’s 40K mile scheduled maintenance. So I took advantage of the downtime at work (yes, it’s Saturday … but I’m on a high profile, under-resourced, project with a tight deadline. I’ll be in tomorrow) to take my car in to the Food dealership and get the work done.
All that had to be done was an oil & filter change and tire rotation… so I had an hour to kill.
Obviously I took my laptop so I could kill the time (mostly playing solitaire, but checking some email using my phone’s network access).
There was another guy with a very similar Dell Latitude laptop … I casually asked him if there was any WiFi access. He indicated that he didn’t know … but he couldn’t use it anyways, because his wireless card wasn’t working.
I indicated that I was pretty handy with computers (especially the Dell Latitudes, since it was a similar model to mine) and offered to take a look. Turns out someone had disabled the wireless card in the device manager. I enabled the device and verified it was working by plugging in my portable access point just to see if the card could find a signal. I also showed him how to use the ‘WiFi Catcher‘ switch (when you push the switch, the a light will indicate if there is a Wireless signal in the area, without even having to turn on the computer).
Sadly, there was no WiFi access in the waiting area. I’m going to send an email to the Ford dealership to suggest they provide it. Sure would make waiting for your car a lot less boring.
Laptops
Posted by david | Filed under Computers
I was just looking at my laptop (Dell Latitude D620) and wondered about a few things …
- Why do they bother putting RS-232 ports on laptops anymore? I haven’t seen a device that connects via RS-232 in years. The only devices I can actually think of that used a RS-232 port was an external modem … and most laptops have modems built in (not that they’re used much anyways).
- Ditto with a parallel printer port. Most printers that I’ve seen in the last few years have been connected by USB (’course my laptop doesn’t have a parallel port, but Ginny’s does).
- Why bother with a DB15 video connector? Wouldn’t it be better to just go with DVI? If you need a DB15 video connector, you can use an adapter.
- The hard drive on my laptop uses SATA … I really wish there was an eSATA connector. I tried putting an eSATA card in the PCI slot of the D/DOCK port replicator, but the BIOS wouldn’t recognize it (which is fairly logical, considering there’s no guarantee that the card would be there all the time).
On a somewhat different, although related, topic … I really wish someone would make an inexpensive tablet computer. I have an idea for a nice little appliance application that would be perfectly suited to a tablet computer. All it would need is a 12″ display, 512mb of ram, 4gb to 8gb of flash disk, wifi, and Linux.
SpamAssassin problem on Fedora 6
Posted by david | Filed under Linux
Yesterday I found that the RPM database on my Fedora Core 6 linux system’s were corrupted and that the regularly running update process was failing (without telling me, unfortunately).
After fixing the RPM database problem (rm -f /var/lib/rpm/__db.* && rpm -vv —rebuilddb) and running the update (yum update), I found that SpamAssassin’s update process wasn’t working anymore.
root@rivendell ~]# sa-update
Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/Scalar/Util.pm line 30.
Apparently one of the updates that were applied in the mass update caused SpamAssassin to break.
The same problem occurred when I tried to test the SpamAssassin rules.
root@rivendell ~]# spamassassin —lint
Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/Scalar/Util.pm line 30.
A bit of research turned up this link.
Luckily the fix was fairly easy … just update the Scalar-List-Utils CPAN package …
perl -MCPAN -e 'install "G/GB/GBARR/Scalar-List-Utils-1.18.tar.gz"
… and everything worked fine again.
