- Avoiding Vista?
- How badly do you want a MacBook Air?
- TopCoder: developer productivity and code quality through competition
- Stupid filter tricks
- Which clan are you?
- Going over to the dark side
- Can Google Apps crack large enterprises? Today's IMAP outage casts doubt
- Wait-listed for Google App Engine
- Tracking an old school chum...
- Developer fungibility: discussion
May 15, 2008 | Comments: (0)
InfoWorld recently ran an article by Eric Lai of our sister publication ComputerWorld called Developers explain why they're avoiding Vista. I'm afraid that for me, and probably for most of you, this falls in the "D'oh" department.
The subhead of the article is "Fewer than 1 in 12 programmers is currently writing applications targeting Microsoft's Vista operating system." Again, "D'oh."
If I'm going to develop a product, I want someone to pay for it. That can be the company that wants it, or end users, or both. (OK, I've occasionally been suckered into developing for equity, but the equity never materializes, and I'd better stop here before I say something that would upset IDG's lawyers.)
Here's the current overall Windows market share picture, as tracked by PC Pitstop:

That's not yet a compelling case for writing software that requires Windows Vista: 80% of the total market wouldn't or couldn't run it. I would expect the situation to be worse for business, and it is:

So over 90% of the business market couldn't or wouldn't run a Vista application.
The new technology introduced with Windows Vista is seriously cool, and I'm learning about it all the time. But there has to be a market before I'll devote large chunks of my time to developing for it, unless the technology makes something possible that was previously impossible, or makes something easy that was previously prohibitively time-consuming.
What do you think? Are you developing with Vista technologies?
Posted by Martin Heller on May 15, 2008 11:07 AM
May 14, 2008 | Comments: (0)
How badly do you want a MacBook Air?
At least partially in response to my coverage of TopCoder last week, I have been getting a spate of programming contest and community announcements. ZocDoc is an API for doctor appointments. Appistry Enterprise Application Fabric (EAF) is a grid-based application platform for the development and deployment of scalable applications in Java, Spring, .NET or C++.
Notice what these two have in common:
Tuesday, May 13, 2008
ZocDoc Announces Developer Contest - Win a MacBook Air!
Today, ZocDoc kicked off a contest for software developers to create new applications that help patients book doctor appointments anywhere on the web. ZocDoc users have frequently requested integrations into popular applications and devices such as Facebook and iPhones, among others.
The contest, which runs from now until August 1, 2008, challenges developers to build the application that will most benefit patients looking for a doctor. A new API allows developers to pull data from ZocDoc such as doctor and dentist information, practice locations, pictures, URLs and available appointment times, which can be integrated into custom mashups and applications. The developer of the application that benefits the most users (as measured by appointments made) wins a brand new MacBook Air!
If you are a developer, visit the ZocDoc Developer Center to register for the API.
Join Appistry's Peer2Peer Developer Community and you could win a MacBook Air
Appistry Enterprise Application Fabric (EAF) dramatically simplifies the process of developing, deploying, and managing highly scalable and reliable Java and Spring applications.
Now, with Appistry EAF Community Edition, anyone can experience the benefits of Appistry EAF for FREE. Your Peer2Peer membership allows you to:
- Download Appistry EAF Community Edition at no cost
- Utilize it on up to 5 servers or 10 CPU cores for an unlimited amount of time (no expiration)
- Use it for development, testing, even production deployment of applications
It's easy to get started - join the Peer2Peer Developer Community today to download the free software and access developer resources such as tutorials, on-line documentation and support forums.
You could win a MacBook Air when you join Peer2Peer
Hmm. This is the computer that my high-school classmate Steve Levy (or possibly his wife) accidentally threw out with the newspapers.
Posted by Martin Heller on May 14, 2008 11:11 AM
May 09, 2008 | Comments: (0)
TopCoder: developer productivity and code quality through competition
Wednesday I had lunch with Mike Morris, Senior Vice President of Software Development at TopCoder. That's his picture at the left. He had an interesting story to tell.
I was vaguely familiar with TopCoder through their programming contests. I was never interested enough to sign up for their site, and had no idea what kind of business model they had.
Mike filled me in. He and the other founders of TopCoder had been at Tallán, a custom software development and consulting company. Tallán grew to something over 600 developers, was acquired by CMGI in CMGI's brief heyday, and then spun off again.
"At Tallán, the quality started to deteriorate as we grew," said Morris. "When we founded TopCoder, we want to figure out a way to build a software factory that would scale."
What they came up with was a community of coders built around programming competitions. Initially, TopCoder supplied the prizes: eventually, sponsors and patrons supported that part of the endeavor.
That's only half the model, though. The other half is that they use the competitions to build components and applications for clients, and to screen developers for employers. What clients and employers? Morris mentioned a few, and the site lists many more: Caliper, Direct Energy, ABB, the Salk Institute, Stage Stores, AOL, Borders, Burlington Coat Factory, IMS, VeriSign, BT, Lilly, and the NSA.
That's right, No Such Agency. I could imagine why the signal intelligence arm of the NSA would be interested in TopCoder, and I was right. "They do a great job of recruiting," said Morris. "They're restricted to U.S. citizens, but they recruit many of our best coders."
The methodology used for development at TopCoder is quite rigorous, but too complicated to cover here. Morris explains it in a series of movies online.
The TopCoder business model isn't outsourcing: it's built on global competition, and controlled by metrics and peer review. It's also market-driven. "I can tell from the metrics we have on each coder what the probability is that a component will be completed successfully by the entrants," said Morris. "If the probability is too low, we up the ante to attract better developers. There can be a factor of 20 difference in productivity between a mediocre coder and a top coder, but you don't have to pay the top coders twenty times as much."
TopCoder will be hosting an in-person competition among 120 finalists at the Mirage in Las Vegas next week, the TopCoder Open. There's $260,000 in prize money at stake.
Posted by Martin Heller on May 9, 2008 08:36 AM
May 07, 2008 | Comments: (0)
As I discussed yesterday, I signed up for a Morph Application Platform developer account, but ran into a snag subscribing to the DevCenter service. The snag was simple: my name is Heller. The second reply to my trouble ticket explained and fixed the problem:
Hi Martin,
After looking at your reported support ticket, we found out that the subscription name you entered contains the word "hell". Our system explicitly filters all words that contain "hell". Sorry for the inconvenience.
We have have made the necessary changes for you to register the "mheller_dev" subscription name.
Thank you.
If you have any problem please contact us again.
As the army training films used to say, "Men, don't let this happen to you."
Posted by Martin Heller on May 7, 2008 07:08 AM
April 28, 2008 | Comments: (0)
No, this isn't another dumb questionnaire. Bear with me.
Recently I saw an article in which the author attributed the development of computers to people with Asperger's Syndrome. I can't seem to find it again, but no matter: I can find lots of other articles linking Asperger's to hacking and "The Geek Syndrome".
In his 1964 science fiction novel Clans of the Alphane Moon, based on a 1954 short story, Philip K. Dick writes about a society that has evolved from a psychiatric institution. The various diagnostic groups have formed seven clans and taken appropriate roles in the society: the paranoids are the statesmen; the manics are the warriors. The obsessive-compulsives are the conservative, unoriginal clerks; the polymorphic schizophrenics are the radical, creative members of society. And so on.
Asperger's wasn't really well-known in 1964; neither was hacking. Phil Dick himself spent time in psychiatric institutions, and wrote often about altered states: see, for example, VALIS. If Phil were rewriting Clans today, he might well add clans for autism and Asperger's: who knows?
I think a lot of the really good programmers I know have characteristics that could be described in terms of one or more of these clans. I know some who act like they might have mild Asperger's, exhibiting difficulty relating to people rather than machines. I know others who have a hard time getting up for lunch if there's an unfixed compiler error on their screen, and a hard time going home at the end of the day with an unfixed bug in their queue: their bosses might think they're just conscientious, but they might tell you themselves that they're a little compulsive. That doesn't mean that they're not creative, however.
For a C++ programmer writing libraries, a little paranoia about input variables is probably warranted, and a little bit of OCD probably makes for better testing. I can admit to some of that in myself.
What about you? Which clan do you belong to?
Posted by Martin Heller on April 28, 2008 02:22 PM
April 24, 2008 | Comments: (0)
A note from daughter #2, who had a choice of a Mac or PC laptop for her Ph.D. program next fall. "SK" is Gerstner Sloan-Kettering Graduate School of Biomedical Sciences, and SK largely uses Macs:
I just confirmed with SK that I want a Mac for next year. It's weird, I feel like I am switching over to the dark side or something.
I feel like they should put "Switching from PC to Mac" as one of those huge life changes that you go through that may cause you undue stress when combined with other life changing events.
It's an odd feeling.
I offered to lend her my copy of David Pogue's Switching to the Mac over the summer. Maybe I should also introduce her to Tom Yager. :)
Her decision was influenced by some recent negative experiences with Windows Vista and Word 2007 on her current laptop as well as the institution's obvious preference for Macs.
Posted by Martin Heller on April 24, 2008 02:50 PM
April 16, 2008 | Comments: (0)
Can Google Apps crack large enterprises? Today's IMAP outage casts doubt
InfoWorld just ran an article questioning the idea of Google Apps in large enterprises:
Can Google Apps crack large enterprises? | InfoWorld | News | 2008-04-16 | By C.G. Lynch, CIO.com
One of my small enterprises uses Google Apps (and pays for the privilege), and this afternoon IMAP was out for about an hour. I'd say about half of us read our mail with IMAP, since it's a convenient way to get the messages into the local mail client while allowing for synchronization.
Having the IMAP go down for an hour was unacceptable. Sure, we could fire up a browser to read mail, but try explaining that to people scattered all over the Western Hemisphere whose primary communications channel is their email.
Posted by Martin Heller on April 16, 2008 01:46 PM
April 09, 2008 | Comments: (0)
Wait-listed for Google App Engine
I made a teensy-weensy mistake when I started to look at Google App Engine: I downloaded and installed the SDK and read through the Getting Started Guide fairly thoroughly before signing up for an account. As a result, I've been wait-listed. I think that means that more than 10,000 others have already signed up for the free App Engine beta. Oh well, I can still develop locally until my invitation comes through.
As about a million other bloggers have already discussed, Google App Engine feels like a direct competitor to Amazon's three Web services (EC2, SimpleDB and S3) all rolled into one Python framework.
I think it would be really nice to be able to target the Google infrastructure "cloud" for a Web application at need, just as it's really nice to be able to target the Amazon infrastructure and the SalesForce.com infrastructure at need. I can see different uses for the various platforms as currently constituted; I can also see why the choice might confuse people.
I like the choice of Python as the first implementation language, unlike many other bloggers who seem to be whining about the lack of Ruby and PHP support. I also like the way Google has given us a local server for development, and given us access to most of Django (a Web-development framework), WebOb (which provides objects for HTTP requests and responses), and PyYAML (a parser) as well as most of the standard Python runtime libraries. I think I can learn GQL without a problem: it's basically a subset of SQL.
I'll pass over the way the HuddleChat demo ripped off the 37Signals Campfire real-time chat application, for two reasons. First, about half a million other bloggers have already complained about it; second, Google has already bowed to the pressure and pulled the app.
I wonder what the 10,000 others who have already signed up for the free App Engine beta are going to do with it. In fact, I wonder what I'll do with it when I eventually get access.
What's a potentially profitable Web server application that needs great scalability, doesn't need table joins, and hasn't already been done to death?
Posted by Martin Heller on April 9, 2008 12:02 PM
March 31, 2008 | Comments: (0)
Tracking an old school chum...
First, the connection: Dave Barry was a senior at Haverford College when I was a freshman. I'm tickled to say that he hasn't changed much, although from this video it looks like his guitar playing might have gotten a little better than it was when he played with Federal Duck in 1969.
What we have here is a video of Roger McGuinn of The Byrds singing the 1967 Dylan classic You Ain't Goin' Nowhere with the Rock Bottom Remainders.
Dave is at the left playing guitar and singing choruses. Steve Martin is next to him on banjo. Roger is at the mike. Ridley Pearson is on his right singing and playing the guitar. Matt Groening is at the far right. Mitch Albom is at the far left watching.
Enjoy!
Posted by Martin Heller on March 31, 2008 09:31 AM
March 26, 2008 | Comments: (0)
Developer fungibility: discussion
Two weeks ago, I posted an entry based on a visit by Richard Rabins, in which he said:
Software developers are not fungible commodities to be bought and sold. You can't grow or train great developers: they just happen.
The emphasis on great is mine: it's something that several readers who contributed to the discussion seemed to miss. It was a good discussion, however, and one which bears a recap shorn of the infighting and personal invective.
I asked two questions:
- Does it make sense to replace a productive but expensive experienced developer with an inexpensive developer fresh out of school?
- Does it make sense to replace your in-house developers with less expensive outsourced developers?
Reader Bob Grommes answered:
If anyone has improved their time to market or their quality with offshore development talent, I've never heard of it. And I've heard plenty of stories that are just the opposite. So in terms of real dollars and true costs I see no simple monetary savings either.
Reader CharlieL added:
We had an off-shore relationship for a while (that was managed by the vendor through a local PM) and it was great when around 4 p.m. (pacific time) I could send an email to the developer about a problem and leave at 5 p.m. and the next morning at 8 a.m. there would be new code that solved the problem. Basically, it was as if elves had done the work in the night, while I slept.
Chip Overclock provided a link to an interesting essay of his own, "People Are Our Most Important Fungible Commodity".
Wilson Zorn took issue with Richard's statement "You can't grow or train great developers: they just happen." He basically argued that training can create great developers. He also rather persuasively cited experiences where "so long as you pass discrete and well-managed tasks, you can get work done just as efficiently offshore as onshore."
C. Doyle argued:
The key point is that macro-economics will eventually win out; regardless of where they are located, superior software developers can and eventually will get a comparable remuneration, as this InfoWorld article attests to:
http://www.infoworld.com/article/07/05/29/riya-wage-inflation-sinks_1.html
Dr. R. Bartel distinguished Technicians from Artists, and said:
Schools can only teach the "Technician" aspect of programming. The "Artist" as in all art, is unique to an individual and can't really be taught. In the "technician" aspect, nations such as India have done a good job in giving their graduates a foundation to work on.
Finally, Chris Gerrard made the point:
The idea that developers are fungible is rooted in the industrial model of efficient mass production of physical goods that underlies traditional business management.... Unlike industrial mass production, software development has no production component.... Developing software is design...
Great developers are statistical anomalies, just as are great bakers, musicians, mathematicians, or anyone else who excels in a field that requires a very highly developed combination of specific talents, abilities, and skills. It's certainly possible to educate and train someone, or a great mass of people, in the first order technical skills of programming. Some fraction of them can even be trained in second order skills. But no amount of training can create great developers from the large majority of any population.
Garrard went on to address outsourcing:
Fundamentally, developing software at a distance is difficult and expensive. Every unit of distance between the concept and the realization of the software imposes costs in terms of cost, quality, and time to delivery. The increase in cost is more than linear in relationship to the distance. And there are multiple dimensions of distance: geographic, time, language, cultural, experience, and so on.
Outsourcing in the "classic" mode of hiring legions of low-cost foreign workers to work in place of local skilled developers is fundamentally flawed, and is beginning to lose its luster. And good riddance to it.
I personally think that Bartel and Garrard are essentially correct. I also think that when Richard Rabins talked about a "great" developer, he was talking about what Bartel calls an "Artist".
The discussion is still open, however. Feel free to add your own opinions if you feel there's another aspect of these issues that needs to be raised.
Posted by Martin Heller on March 26, 2008 10:49 AM
March 13, 2008 | Comments: (0)
Developers are not fungible commodities
I had a long visit from Richard Rabins of Alpha Software on Wednesday. It was supposed to be a short software demo and a brief lunch, but time got away from both of us.
I'll write about the demo another time. One of the topics we touched on in a wide-ranging conversation hit a nerve. As Richard's story goes, when Alpha sold the AlphaWorks package to Lotus, at the last minute Lotus mentioned that they wanted one of the key AlphaWorks developers to work for Lotus.
"I let them know that they could have mentioned that a bit earlier. The answer was nevertheless a resounding NO! Software developers are not fungible commodities to be bought and sold. You can't grow or train great developers: they just happen. We eventually compromised, and he went on loan to Lotus for six months."
"Software developers are not fungible commodities" struck a chord with me. As you probably know, "fungible" means interchangeable, and a fungible commodity like wheat or oil can be traded in a futures market.
I've never met two software developers who had exactly the same talents, skills, and training. Even if such a pair of twins existed, they'd know different things, because they'd have different experiences.
This leads me to consider the personnel policies of many large companies. If you lay off an expensive but productive ten-year veteran who knows every detail of your architecture and every line of your code intimately, and then replace him with an inexpensive kid with a gleaming new CS degree, what are you going to get?
Then consider outsourcing. If you lay off your expensive US-based internal development staff and outsource to India at a third the hourly cost, will you ultimately save any money? Will you be able to maintain the quality of your products? Will you improve your time to market, or will you discover that your product is now well on its way to perdition?
What's your take?
Posted by Martin Heller on March 13, 2008 11:43 AM
February 29, 2008 | Comments: (0)
Your friendly local computer support person
Like many people who write about or work with computers for a living, I often get computer support requests from relatives, friends, and people I happen to meet. I'm starting to have some sympathy for doctors. ("You're a doctor? I have this pain...")
At Comdex (1995?)
A memorable instance of this happened at Comdex in Las Vegas, around 1995. I was completely stressed out and in a lot of pain, so I scheduled a massage at the Las Vegas Hilton spa before my daily round of vendor meetings and booth visits. I sat in the steam room for 15 minutes to loosen up a little, and then lay down on the massage table.
"So," asked the masseur as he worked my knotted traps. "What do you do?"
"I'm an editor for Windows Magazine."
"You're a computer guy? I have this problem with my computer..."
As it turned out, he'd bought a large hard disk that his computer wasn't recognizing. It was a common problem at the time: the usual fix was either to update the BIOS or install a disk driver. I told him that, and eventually got to relax.
The other evening...
I've mentioned my oldest daughter several times, for example here. Her husband called me the other evening with a problem. He had been attempting to look up an Optometry journal article from his Windows XP laptop, and mistyped the URL. As a result, he got a junk page. As soon as the page opened, a drive-by download started:
"Warning! Your computer is infected with spyware! We are now downloading a fix!"
His first reaction was a good one: his gut told him that something was wrong, and he said "Oh no you're not!" and killed the download. Then, naturally, he started to panic.
He ran a full test at PC Pitstop, and also downloaded and ran Exterminate to check for spyware. Then he called me for support. Yes indeed, I told him, that warning you saw is from some nasty malware trying to get you to let it install itself while masquerading as a cure.
The full test didn't find any malware running, and Exterminate only found a few moderate threats on his disk. Did he have the "Install AntiSpyware" tip from the full scan? Yes, he did.
As it happens, I wrote that tip, so I pointed him at the bottom of the page where I'd given links to the free antispyware programs that I recommend: Windows Defender, Ad-Aware, Spybot Search and Destroy, and Spyware Blaster. I left him to download one or all of them and disinfect his computer.
Then it was back to NCIS for me.
Posted by Martin Heller on February 29, 2008 07:37 AM
February 22, 2008 | Comments: (0)
Open Microsoft APIs and Formats a Mixed Blessing
Be careful what you ask for: you might get it.
That goes double when you ask Microsoft to release its internal APIs, protocols, and file formats. It has happened, as reported here. The E.U.'s reaction was guarded. Analysts speculated that this move might help Microsoft repair its reputation. Savio wonders whether Microsoft is borrowing the "anti-lock-in" argument from the open-source software movement's playbook. Zach says he's "optimistic."
After reading some of the material about Office file formats on the Microsoft interoperability site and a little of the open protocol material on MSDN, I wonder whether releasing 30K pages of such material is actually such a good thing.
I agree that it's good in principle for Microsoft to be more open. It's certainly a good thing for people who build open-source alternatives to Microsoft's products, and products that interoperate with Microsoft's.
I'm not so sure it's a good thing for me. Frankly, I was already overwhelmed trying to keep up with the explosion of APIs and classes coming out of Microsoft. And those were the ones that were designed to be used by mere mortals.
Isn't someone going to provide me with a telephone booth and a SuperProgrammer costume?
Posted by Martin Heller on February 22, 2008 07:59 AM
February 13, 2008 | Comments: (0)
Last Friday I mentioned that I was singing the Update Blues. My version was too scatological to print, so I challenged you readers to write your own.
What did I get? Limericks. Feh!
The horrible weather we're having on the East Coast reminds me of a classic 12-bar Delta blues number. Was it Blind Lemon who sang it?
It rained five days and the sky was dark as night
Oh, it rained five days and the sky was dark as night
But my mama's in the kitchen so's I know everythin's alright.
By the way, this month's Tuesday Windows and Office updates were even more annoying than I expected. Not as annoying as the iTunes update du jour, but still not the seamless automatic process one might hope would happen in the wee hours, with the exception of just one of my Windows Vista machines.
Rained five days.
Posted by Martin Heller on February 13, 2008 02:16 PM
February 08, 2008 | Comments: (0)
Today it was Firefox. Yesterday it was QuickTime. Next Tuesday it'll be Windows, Office, and Internet Exporer.
I'm talking about critical bug fixes. It's worse for me than for a lot of people because I personally have 6 Windows computers and a bunch of Windows Virtual PCs that I have to keep up-to-date for software testing.
Now, I used to think this was just a Windows issue. Then I started reviewing Linux systems: Red Hat, Fedora, Debian, Mandriva, SuSE, Xandros, and so on. Every one of those systems needs frequent critical bug fixes, and most of them need more of them than Windows XP. Fedora may well be the worst distro I have for the number of critical bug fixes that need to be installed, but maybe that makes it the most secure day-to-day: I don't know.
Meanwhile, it's hard to get any real work done if you spend all your time updating your computers.
I'm singing the blues about this, but the words aren't suitable for publication. Do you have a verse to offer on the subject that could be printed in a family magazine?
Posted by Martin Heller on February 8, 2008 08:08 AM
February 05, 2008 | Comments: (0)
Food for thought: What would a Microsoft-Yahoo deal mean for developers?
IDG News Service posted this yesterday:
Do you consider yourself a Microsoft developer? a LAMP developer?
Do you consider yourself a Yahoo! developer? Does anyone?
Posted by Martin Heller on February 5, 2008 08:25 AM
February 01, 2008 | Comments: (0)
Microsoft Bids $44.6 Billion for Yahoo
Breaking news from the NY Times:
Microsoft Bids $44.6 Billion for Yahoo
By MIGUEL HELFT
Published: February 1, 2008
SAN FRANCISCO — In a bold move to counter Google’s online pre-eminence, Microsoft said Friday that it had made an unsolicited offer to buy Yahoo for about $44.6 billion in a mix of cash and stock.
If consummated, the deal would redraw the competitive landscape in Internet consumer services, where both Microsoft and Yahoo have both struggled to compete with Google.
The offer of $31 a share represents a 62 percent premium over Yahoo’s closing stock price of $19.18 on Thursday. It would be Microsoft’s largest acquisition ever.
...
Our IDG News Service coverage of this is here.
Posted by Martin Heller on February 1, 2008 07:12 AM
January 21, 2008 | Comments: (0)
I posted this link last year, but it bears repeating:
Martin Luther King, Jr.: "I Have a Dream"

Posted by Martin Heller on January 21, 2008 05:42 AM
January 17, 2008 | Comments: (0)
Merger Madness or Shrewd Acquisitions?
Let me see if I have this straight. Oracle is buying BEA for $8.5 billion, and Sun is buying MySQL for $1 billion.
How does this make any sense at all? Have we learned nothing from the dot-com boom and bust of the late 1990s?
Is either acquisition going to help customers or create value in any way, shape, manner, or form?
Will there really be a synergy between Sun and MySQL, or is this just a pipe dream? Will the acquisition of BEA boost Fusion, or is this yet another pipe dream?
I lean towards the pipe dream side myself in both cases. What do you think?
Posted by Martin Heller on January 17, 2008 07:36 AM
December 27, 2007 | Comments: (0)
My parents had an auto parts store in Philadelphia for something like 40 years. Their motto was "Defects Our Specialty."
Funny, right? Actually, it was a good slogan, since there was a high incidence of defective replacement auto parts, and my Dad in particular knew how to get the warehouses and manufacturers to honor their warranties and exchange the defective parts.
Fast forward to 2007. My 14-year-old daughter (#3) has been hinting, whining, and nagging about wanting a digital camera for years, almost as persistently as she has been hinting, whining, and nagging about wanting a cell phone. When the Kodak EasyShare model at left went on sale at Quill for $89 just before Thanksgiving, I ordered one, and a 2 GB SD card to go with it.
It never occurred to me that the camera might be defective, in this day and age. I left it sealed in its box, smuggled it into the house when my daughter was at school, and got my wife to wrap and hide it.
We open presents on Christmas Eve, in the German tradition. (My wife is German-born, and Catholic.) When daughter #3 opened her camera, she was visibly excited, and went tearing around taking pictures.
Unfortunately, the pictures all came out dark and red. Not once did we see the flash go off, even when the camera was set to flash always.
Quill generally accepts returns within 90 days, so I went to Quill.com and requested a return and exchange for the same item because of the defect. On Boxing Day, I got the following email:
Thank you for writing Quill.com.
We apologize, since the camera mentioned in your email is over our 30 day return policy, we are unable to authorize your return.
The fine print on the back of the packing slip confirmed that Quill's return policy for electronics is 30 days. I gave daughter #3 the number for Kodak service, and she entered the nightmare world of voice response menus, Muzak on hold, and technicians with thick Bangalore accents. With the help of her older sisters, she eventually got a return authorization from Kodak, although she would have to pay shipping both ways, which would come out to about a third of the cost of the camera.
I was not happy. I fired off a return email to Quill:
It's not very friendly of Quill to enforce the 30-day return rule for a gift bought in a pre-Thanksgiving sale, kept sealed, and opened on Christmas.
Later that evening, I got another reply:
Martin, I have issued a pickup request with UPS for your defective camera as this item was purchased on November 19th which is only a few days over our 30 day return policy....
Customer Service lives. I'm not quite sure about Quality Control, however.
Posted by Martin Heller on December 27, 2007 08:13 AM
December 18, 2007 | Comments: (0)
Ephraim wonders about the necessity of having BI applications on your cellphone, and offers an alternative: One window.
"a single mobile environment, a single mobile window, if you will, lower case W please, in which information can be sent to or accessed from.
One window, one view, all critical information goes into that pot."
We already have One Window: it's called a Web browser. We also have ways to overcome the limitations of Web browsers, known collectively as RIAs, in which I include Ajax.
The whole idea struck me as funny, though, and brought to mind the inscription on Isildur's Bane (in The Lord of the Rings):
One Ring to rule them all,
One Ring to find them,
One Ring to bring them all and in the darkness bind them
or, in Elvish:
Posted by Martin Heller on December 18, 2007 09:07 AM
December 14, 2007 | Comments: (0)
I've learned a lot of languages, both human and computer. When I learned Latin in High School, it mostly helped my English. When I learned German, I had both help and interference from my knowledge of Yiddish; ditto for when I learned Dutch. Similar things happened with Russian (college) and Chinese (grad school), although that wasn't quite the same mechanism: my brain would sometimes serve up a word from a different language than the one I was trying to speak.
As I mentioned Wednesday, there are some common constructions that have different meanings in the different languages that were inspired by C. The new object constructor isn't the only place where subtle errors can occur if you get confused.
On the other hand, learning Pascal back in the day mostly helped my Fortran. Learning many different assembly languages didn't seem to cause any interference: writing assembly language was such a painstaking process that I could usually remember what processor I was writing for at the time.
I hear from people who would rather write Java or C# than mess with JavaScript. They're the kind of people who like tools like GWT and Script# and Volta. I also hear from people who would much rather write JavaScript than Java or C#.
Do you program in more than one language? On balance, does already knowing one programming language help you to learn another, or do the languages interfere with each other and cause you to make errors? Do you find yourself preferring one language over another?
Discuss.
Posted by Martin Heller on December 14, 2007 08:18 AM
December 12, 2007 | Comments: (0)
Analysis: Why I'll Miss CompUSA
CompUSA will be closing its doors after the holiday season. Ephraim thinks that this is a sign of the times. Many commentators have described the chain's evolving financial troubles, and its often inscrutable management moves. For example, when they laid off their senior sales staff as a cost-cutting measure, more than one commentator pointed out how bone-headed it was to give up their differentiation from the big-box stores.
I'll actually miss my local CompUSA. They usually had a better selection of equipment that I wanted to try than my local Best Buy or Circuit City, or my local mom-and-pop computer shops, although clearly not as good a selection as I could find online. They often had decent deals, although recently my local Staples could often match them. And they sometimes offered knowledgeable sales and service, which is more than I can say for my local Best Buy, although my local mom-and-pop computer shops have been much more consistent about knowing what they're doing.
One of the items I bought at CompUSA more than anywhere else was laptops. It's not easy to buy a laptop online, because the feel of the unit matters so much. You can't really tell from an advertisement whether the screen of a laptop is going to be readable, or whether the keyboard will feel right under your fingers, or whether the laptop will make your shoulder hurt when you carry it around.
Sic transit gloria mundi. Maybe my local store will continue under new ownership...
Posted by Martin Heller on December 12, 2007 06:52 AM
December 07, 2007 | Comments: (0)
Yesterday, PC Magazine broke the news that Symantec/Norton had "released a virus definition update that incorrectly identified Solid Oak's CyberSitter filtering program as a virus." Naturally, that wreaked havoc on Solid Oak's customer base.
To Solid Oak: I sympathize. Years ago, a wrote a simple Web-based performance test for PC Pitstop that Symantec misidentified as a virus. Getting Norton to fix their detection was a long and frustrating process, although it was eventually corrected, more or less. They certainly never apologized, admitted they were wrong, or offered any help to us, our tech support department, or our customers.
Today, there's still a warning on that particular test page to reassure people who may still have old antiviruses:
Note: Some versions of Norton Antivirus erroneously report the "Sockets de Trois" trojan during the Internet upload test.
I thought I was alone in thinking that, in some ways, Norton Antivirus was worse than the viruses it was intended to combat. Apparently not. The PC Magazine article goes on to say:
This is the third time in less than a year that Symantec's Norton products have caused severe damage to computers running CYBERsitter software offerings, said Brian Milburn, president of Solid Oak Software, in a statement. "In my opinion, Norton products are worse than any virus I can think of," he said.
Amen, Brother.
Posted by Martin Heller on December 7, 2007 09:10 AM
December 03, 2007 | Comments: (0)
Lies, Damned Lies and Benchmarks, Yet Again
I've noticed (well, who wouldn't?) that Randall Kennedy (RCK) is in a kerfuffle about Nick White, a Microsoft Vista Product Manager, who blogged a relatively mild discussion of "The right time to assess Windows Vista's performance." So, at the risk of antagonizing everyone involved for no benefit whatsoever, let me offer another perspective.
RCK wrote the benchmarks used by www.xpnet.com. Recently that organization compared release candidates of Windows XP SP3 and Windows Vista SP1, and found Vista lacking. That shouldn't really come as a surprise to anyone, but I'm not sure that it's the issue here.
Nick White's blog post points out that Microsoft only publicly benchmarks products once they have been released to manufacturing; that has been true to my knowledge for at least 20 years. When beta testers had to sign a non-disclosure agreement to work with pre-release Microsoft products, one of the key terms of the agreement was always a ban on publishing performance numbers prior to product release.
I can remember lots of products that had performance issues right up to the final release candidate that testers got to see, but were fine when released to manufacturing. So Nick has a point: a release candidate is not the right build to benchmark if you want to understand the performance of an OS. You need to wait for the RTM bits.
RCK commented to Nick's blog in high dudgeon, about being attacked. But was he attacked? Nick never mentioned xpnet or OfficeBench or RCK in his post, so I'd say no.
RCK certainly interpreted the post as an attack. I read the posting more as being a little defensive, but hardly an attack.
Nick talked a lot about Principled Technologies, which did some Vista benchmarks for Microsoft last year, and Nick suggested that their benchmarks had been done properly. I'm not so sure about that: when you know the results your client wants to get, it's easy to pick tests that will produce those results, whether you consciously mean to or not. Given the variance in results between the two sets of benchmarks, I'm not surprised that RCK feels defensive.
As a benchmark writer myself (I'm responsible for the WinTune and PC Pitstop benchmarks), I'm here to tell you that no single set of benchmarks can ever tell the whole story. My benchmarks sure can't, and I've really worked at them over the years; I rather suspect that neither OfficeBench nor the Principled Technologies benchmarks can either.
So can everybody please chill?
Posted by Martin Heller on December 3, 2007 02:40 PM
November 23, 2007 | Comments: (0)
You may have noticed that I didn't write about the history of Thanksgiving yesterday. I meant to; I just couldn't.
About 5 PM Wednesday as I was frantically trying to finish up a few things at work, my son called from home that he'd gotten a "network cable is unplugged" message while browsing the Internet from the shared Windows XP Home computer in our second-floor hallway. That computer is connected to an ActionTec router by a Cat5 Ethernet cable; the router gets its connectivity from Verizon FiOS and also serves as a Wireless Access Point for all the laptops in the house.
Of course, being 12, he had already tried to "reconnect the cables." He didn't know what cables were involved, so he did random things to the power supplies and power strips. He also wanted me to fix the problem over the phone. Right.
When I got home, I took one look at the router lights and decided that the router had probably fried. I wasn't 100% sure, so I went through the drill: I unplugged the router, cleaned up the way the plugs went into the power strip so that the ActionTec power supply plug couldn't move the strip's power switch to the off position, swept up the dust bunnies, unplugged and reconnected all the Cat5 cables, reconnected the power, and reset the router.
None of that helped, so I called FiOS support after dinner. I got a voice-response system that couldn't really accept much of the information I had, but it eventually got to the point of trying to ping the router and seeing no response. At that point, it put the ticket into a service queue for a live person to deal with.
I got a call from Verizon service as I was sitting down to Thanksgiving dinner on Thursday evening with my extended family. I decided to take the call despite the inconvenient time. The service agent walked me through several of the things I had already tried, and decided to drop-ship me a new router. I then returned to the dinner table.
A few hours later, as we were working on pie, the agent called back: his system wouldn't accept the drop-ship order. I went back upstairs, and tried bypassing the router under his direction; the computer saw a connection, but couldn't acquire a valid IP address. A laptop exhibited the same behavior. He mused about the possibility of a bad network port at their end and/or bad network cards in my computers in addition to a bad router, and decided to schedule a service visit; the earliest slot he had open was Saturday morning.
This morning, Verizon called and said that they had a free tech: would we be home all day? We arranged it so that somebody would be; the tech arrived a bit after 11. It didn't take him long to swap out the router for a new one, and declare the old one "completely fried." "It happens a lot," he said. All was well once I edited the new router's wireless access settings to use WPA and my normal SSID and pass phrase.
I asked the tech why I couldn't get an IP address when bypassing the old router the day before. "I dunno," he said. "It works now."
Posted by Martin Heller on November 23, 2007 11:44 AM
November 17, 2007 | Comments: (0)
Improvising a Chinese-style meal
I've been doing Chinese-style cooking at home since I was a graduate student in the 1970s; I do the best I can with my western-style gas stove and traditional Chinese cookware.
Today my wife asked me to cook tonight's dinner for the four of us, only mentioning it as we went to the market, so I improvised. I have quite a few Chinese cookbooks, mostly in English, but I rarely use them any more, and in this situation consulting a recipe was not a possibility.
I felt like cooking chicken (ji in Mandarin using pinyin romanization), so I picked out a package of boneless chicken breast, about a pound and half, and checked the expiration date. Chicken for stir-frying (chao) really needs to be fresh.
Then I went to the vegetable section, looked around at what was available and looked nice, and picked out a medium-sized bok choy (bai cai, pronounced "buy tsai"), a couple of nice-looking green peppers, some shiitake mushrooms (xiang gu), a bunch of scallions, a can of peanuts, and a small package of fresh ginger root. I knew that I had plenty of long-grained rice, peanut oil, chicken broth, corn starch, soy sauce, rice wine, sesame oil, red oil, coarse salt, and San-J Sichuan sauce at home. I also knew that I was out of most of the other prepared Chinese sauces that I sometimes use, but I didn't feel the need to buy more.
Cooking a meal like this takes me an hour start to finish. I started at 5:30 by putting two cups of rice and four cups of water into a large saucepan that has a tight-fitting cover. I put that on the stove to soak.
I got out my stainless-steel mixing bowls, a Teflon cutting board, my Chinese cleaver (dao), and my fresh ingredients, and set them on the kitchen table. I lined up the oils and sauces and spices on the counter in the order I'd use them. I put my heavy, well-seasoned carbon-steel wok (guo) on its ring on the largest burner on the stove, and laid out my extra-long cooking chopsticks and the wok turner and ladle nearby. The wok ring is what lets me use a traditional round-bottomed guo (essential for getting enough heat to the ingredients) on a western-style gas burner.
I set to work slicing and chopping the meat and vegetables into roughly the same size pieces. I felt like doing slices (pien) today; other times I might dice (ding) the ingredients into small cubes, or reslice the slices into shreds (si).
At about 5:50 I lit a high flame under the white rice (bai fan), and went back to my slicing. When I heard the water boiling, I covered the pot and turned down the flame to low, and again went back to my slicing.
At about 6:15 I lit a high flame under the guo and lined up my bowls of ingredients. When the guo started to smoke I added some cold peanut oil, enough to puddle at the bottom of the guo. When the oil looked like it was heating up, I checked it with my cooking chopsticks: no bubbles yet. Half a minute later there were bubbles around the chopsticks when I checked the oil, so I added the ginger slices and scallion pieces and stirred that sizzling mix with my chopsticks. When they were brown, I added the chicken and switched from the chopsticks to the turner and ladle to keep the fry stirred. Sometimes I take the cooked ginger and scallion out before adding the meat, leaving only their flavor and aroma in the oil, but this time I felt like leaving them in.
When the chicken pieces were all white outside with a little brown, and had no pink showing, I added the bai cai and peppers. I stirred this up with the meat. Sometimes I push the meat to the side while I cook the vegetables, but this time I tossed them all together. When the bai cai greens started to shrink, I added the mushrooms, a ladle full of rice wine, and some soy sauce. After tossing that a bit, I added some broth and put the cover on the guo, since I wanted to have lots of sauce. If I wanted a drier dish, I'd skip the broth and not cover the guo.
As soon as I heard the broth boil, I took the covers off the guo and the rice, and turned off the flame under the rice. I added the rest of my sauce ingredients and a handful of peanuts to the guo, tasted a piece of meat, added a bit more salt and red oil, and stirred until the sauce thickened. Then I turned off the flame, set a container of chopsticks and a pile of napkins on the table, called my family, and served out four bowls of white rice covered with stir-fried chicken, vegetables, and peanuts in a savory sauce.
We all had seconds.
Posted by Martin Heller on November 17, 2007 06:17 PM
November 17, 2007 | Comments: (0)
Danny Sabbah on Business Users as Programmers
In an interview with Chris Kanaracus of IDG News Service, Danny Sabbah of IBM Rational (whom I interviewed earlier this year) said he has little use for a recent trend: Tools and platforms that supposedly make it easy for business users to do some development.
"I don't believe any of that stuff," he said. "I've never met a business user that can use any type of professional development tool. Period." Business users are better off working within more familiar environments, such as spreadsheets and word processing programs, he said.
I wonder what the Microsoft Popfly people and other groups working on end-user and non-professional programming tools have to say about that.
Posted by Martin Heller on November 17, 2007 08:04 AM
November 11, 2007 | Comments: (0)
Originally, what is now called Veteran's Day was Armistice Day, commemorating the end of “the war to end all wars” on the eleventh hour of the eleventh day of the eleventh month of 1918. It has become just another three-day weekend, alas.
Photo above: Soldiers of the 353rd Infantry near a church at Stenay, Meuse in France, wait for the end of hostilities. This photo was taken at 10:58 a.m., on Nov. 11, 1918, two minutes before the armistice ending World War I went into effect.
Posted by Martin Heller on November 11, 2007 01:02 PM
November 07, 2007 | Comments: (0)
I just tried out a new listen-only (no downloads) music site, Songza.com. Very cool; very easy to use. Here's a sample song I found in about 5 seconds, embedded in my blog entry:
Posted by Martin Heller on November 7, 2007 11:36 AM
November 07, 2007 | Comments: (0)
- Update the rest of my Windows computers to the released version of Windows Live. (The upgrade went fine on this computer; I'm blogging with the released version of Windows Live Writer.)
- Look at the Infragistics Aikido CTP. This is a new Web User Interface Framework built using the Microsoft ASP.NET AJAX Framework and new controls, that makes the Web look a lot like the desktop, if the screen shots are to be believed.
- Compare the OpenSocial API with the Facebook API.
- Figure out whether there's a business model in OpenSocial and/or Facebook applications that makes sense for me or any of my clients.
- Try out the TI ez430-rf wireless embedded device SDK.
- Monday, November 12th: Look at the Android SDK release at http://www.openhandsetalliance.com/developers.html. How hard is it going to be to develop for the "Google Phone"?
- Early December: Build or buy a new desktop system for Visual Studio 2008 development.
Any suggestions from the peanut gallery?
Posted by Martin Heller on November 7, 2007 11:11 AM
October 23, 2007 | Comments: (0)
One of the prototypical speculative bubbles of all time was the 17th Century tulip mania in the Netherlands. In fact, tulip mania is now used metaphorically to refer to any economic bubble. Did the Europeans learn from tulip mania? Not really: the South Sea Bubble expanded and popped in early 18th Century England; no less brilliant a personage than Sir Isaac Newton lost his shirt in that one.
As a battle-scarred veteran of the dot-com boom of the late 1990's and the dot-com bust of the early 2000's, I've got to say that I'm starting to smell tulips again. My 1999 startup, PC Pitstop, is still going, but it was touch and go there for about a year, especially in the fall of 2001 after the World Trade Center attacks.
It's not just that Silicon Valley is once again awash in venture capital and startups. It's that there's so much money floating around for silly things.
I'm not talking about Google buying YouTube: that actually made some sense to me. I'm talking more about this story from the Boston Globe, about "Ever-younger entrepreneurs".
Does it make sense to you that a 9th-grader would start a Web design company by outsourcing to India? OK, that one's still barely credible. What about another 9th-grader who sold a Facebook program to a Silicon Valley venture capitalist? Hmmm.
I'll have more to say about Facebook and Facebook applications in another post. Meanwhile, sniff the air yourself: Are those tulips?
Posted by Martin Heller on October 23, 2007 09:17 AM
October 22, 2007 | Comments: (0)
Red Sox Win ALCS Game 7 Against Indians
Not that I'm obsessed or anything, but last night I was not only glued to the TV in the living room, I had my laptop on the coffee table with the game day display (which is apparently a Flash or Flex RIA application) open for quick reference, since the Fox announcers in TV always seemed to be jabbering about something irrelevant to the actual play. You wouldn't know it from the final score (11-2), but it felt like a close game until Papelbon pitched out of the potentially disastrous situation in the 8th inning.
I have choir rehearsal Wednesday night during the first game of the World Series. I'm sure there will be an alto in the back row reporting the game score every 10 or 15 minutes.
Posted by Martin Heller on October 22, 2007 07:26 AM
October 07, 2007 | Comments: (0)
From the Library of Congress American Memory series: Today in History
Posted by Martin Heller on October 7, 2007 11:58 AM
October 05, 2007 | Comments: (0)
.NET Library source welcome, but not earth-shattering
With all due respect to the esteemed Senator from MuleSource, I wonder what Dave Rosenberg has been smoking. In this blog posting, Dave says that Microsoft's release of the source code to the .NET Libraries is "a patent trolling dream."
I've dealt with my share of patent trolls (I was an expert witness defending against a big one), but I'm also an experienced developer who is familiar with Microsoft development tools.
Microsoft has shipped the source code to its C/C++ runtime libraries with Visual Studio for many years. The practice of publishing copyrighted source code is hardly new: it goes back at least to DEC and IBM. For example, I used to read Dave Cutler's source code for RSX-11M in the 1980s, and I read IBM VM-370 system routines in the 1970s.
If I look in my C:\Program Files\Microsoft Visual Studio 8\VC\crt\src directory or my C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\src directory, I can view the source code for any of the C/C++ runtime library, MFC, and ATL routines. Sure, the source code starts with a Microsoft copyright claim, but frankly I don't care:
/***
*abs.c - find absolute value
*
* Copyright (c) Microsoft Corporation. All rights reserved.
*
*Purpose:
* defines abs() - find the absolute value of an int.
*
*******************************************************************************/#include <cruntime.h>
#include <stdlib.h>#pragma function(abs, _abs64)
...
What's important to me is that I can debug into the library routines if and when they are implicated in programming problems. abs() is a bad example, because it's not something I'd misuse, but there have been plenty of times when being able to debug down into the library has shown me where I've gone astray.
What about the .NET Framework libraries? Well, for one thing, for the basic libraries I can refer to the .NET Framework Standard Library Annotated Reference (Addison-Wesley, 2004 and 2005), of which I was an editor, and find out not only how whole classes and specific members work, but what the designers were thinking. For another, I can use Lutz Roeder's .NET Reflector and see the source code reconstructed from the compiled code, along with the documentation.
Why does that work? Mostly, because the .NET Framework compiles to an intermediate language (IL), not native code. The IL gets JIT-compiled at runtime (or at installation time for the libraries), but that doesn't interfere with the IL and metacode information in the assembly.
In addition, Microsoft chose not to scramble or obfuscate the .NET library code. They have always wanted developers to understand how the library works.
So what's new? Three things: more libraries are being released as source than are covered by the ECMA/ISO standards; we'll be able to debug directly into the library source; and we'll be able to see the internal comments. If history is any guide, the internal comments will be rife with misspellings:
*Exit:
* returns the aboslute value of number
Brad Abrams has a posting about the source release here. He in turn links to a posting by Scott Guthrie and a podcast by Scott Hanselman and Shawn Burke.
Posted by Martin Heller on October 5, 2007 08:18 AM
September 30, 2007 | Comments: (0)
My second daughter's off-campus apartment in Rochester was burgled during the day last week, at a time when she and her roommates were all at school. The burglar or burglars broke a window and stole their laptops and other visible electronics. Their animals weren't harmed.
Of course, my daughter hadn't gotten around to getting renter's insurance: she was too busy at school. I have a call in to my own insurance agent, to see if my homeowner's insurance will cover some of the loss. I don't have much hope: even if they do cover it, they'll probably depreciate the value of what was stolen from my daughter to something below the claim deductible.
Meanwhile, my daughter had papers and presentations due, and needed another laptop pronto. I picked one possibility out of a CompUSA sale flyer for her, a Compaq Presario, but it wasn't exactly what she wanted, so once she and her roommates got things under control at the apartment she went shopping for a laptop, as she really couldn't wait for shipment.
The laptops on offer at Circuit City and Best Buy didn't impress her; she wound up at a CompUSA near campus. She eventually decided on a Toshiba Satellite U205-S5058, an ultra-portable full-featured notebook that comes with Windows Vista Business installed. At my insistence, she also bought a security cable that fits into the lock slot on her new notebook. There's no sense putting a new horse in the barn after the old one bolts unless you're going to start closing the barn doors.
I haven't asked what her backup situation was when the laptop was stolen, because I don't want to make things worse. I've been nagging her for years to make regular backups; she may well have decided I was right last year when her old laptop started to have intermittent problems booting. In any case, what's gone is most likely gone.
Sic transit gloria mundi.
Posted by Martin Heller on September 30, 2007 10:58 AM
September 14, 2007 | Comments: (0)
We Now Rise to Prepare to Return the Torah to the Ark
I just finished two days of singing and choral conducting at Rosh Hashanah services. I feel uplifted, and also exhausted.
As I expected, my physical mailbox was full when I dropped by my office to check on things, but only one book had been left outside the box because it didn't fit inside. What I was really worried about, though, was the backlog of email.
I just spent three hours going through my accumulated email from the two days I was out. About 1,200 emails were automatically filtered as spam by my client Bayesian filter and the mheller.com mail server, and another 5,000 by GMail. I had to manually remove about another 100 spams from my GMail inbox. Then I had about 300 real emails to read and answer.
Maybe I'll be able to pay my bills and taxes over the weekend, and get back to real work on Monday.
Posted by Martin Heller on September 14, 2007 02:25 PM
September 10, 2007 | Comments: (0)
Stupid Verizon Cellphone Tricks
Ed Foster mentions a number of frustrating problems with Verizon Wireless (VZW) in his August 20th blog entry. I have to agree with Ed and his readers about the clumsiness of and lack of coordination between VZW's sales and support organizations, but I have a cure for one small complaint.
As I mentioned July 5th (No iSoup for You), I gave up on getting an iPhone after it was announced for a variety of reasons, and upgraded my VZW phone to an LG-VX8300. This isn't the most attractive phone in the world, but it does what I want and works where I am.
I bought a USB cable and ear buds for the phone from VZW, and I bought a 2 GB microSD card for the phone from an Internet site that had them on sale for $21. The USB cable lets you connect the phone to your computer, but only gives you access to the music directory for purposes of downloading music to the phone from Windows Media Player or VCAST Music Manager.
You don't, however, need to spend 25 cents a picture to transfer your photographs, no matter what VZW tech support says. It's just that the USB cable is no help.
If you want access to the picture, video, and sound directories, the solution is simple. Power down your phone and remove the microSD card. Put the microSD card into its SD adapter sleeve, and put that into your computer. Then, assuming that you use Windows and want your pictures, either use the photo manager or Windows Explorer to copy or move your photos from the memory card onto your PC. You can also move video, music, and sounds around, but be prepared for issues if you try to copy DRM-protected music to your phone via the memory card.
Posted by Martin Heller on September 10, 2007 02:33 PM
September 09, 2007 | Comments: (0)
I get a lot of email that matters to me: often a hundred messages a day. I get even more spam sent to me: thousands of messages a day. I manage this successfully with multiple filters, multiple servers, and multiple email addresses. You might not be able to apply all of my techniques, but some of them might help you.
Bayesian Filters at the Email Client
I used to funnel all my email to a single POP3 client, and filter that on my computer. I quickly gave up on the spam filters built into Outlook and the other email clients I tried, but I found a free Bayesian filter that worked well for me: K9. Once I trained K9, it reached better than 99% accuracy, and I only needed to correct the classification of emails a few times a week.
Unfortunately, the sheer volume of spam kept increasing, and it took longer and longer to download the first batch of emails in the morning, especially on Monday. That led me to do more filtering at the server.
Server Filters
My email servers each have their own filters. At mheller.com, my ISP (Verio) runs SpamAssassin and ClamAV. I have SpamAssassin set to high sensitivity, and only rarely find false positives in the Junk and Quarantine folders on the server. At this point, I wish that I had the option to automatically delete the filtered emails; as it is, I have to log on to the server periodically and clear out the folders.
I do find that a small percentage of the spam makes it into my inbox folder. During the week, this is handled easily by my client filters. Over the weekend, however, it builds up, so I usually log onto the server on Sunday night and clear out the obvious spam from my inbox. It's often a matter of flagging everything as spam, and then unchecking the dozen messages that look legitimate.
At pcpitstop.com, I have a rule set up on the server to delete the email that is flagged by IMail's spam filters. I still have to clean out the obvious spam from my inbox on Sunday night to keep the Monday morning download manageable.
At infoworld.com, we use a subscription email filter from Postini. I get a daily summary of the filtered email, and every few days I log in and delete the questionable emails that have been retained. Once in a great while I find a legitimate email from a PR agency caught with the spam, and I usually release it and white-list the PR agency.
Multiple Email Addresses
Every Web site that asks me for a registration wants an email address. I have learned through bitter experience that many of them will send me unwanted information, and that some of them will even sell my email address. (I wanted to say "sell me down the river," but it isn't quite that bad.)
Since I control my domain, I give each of these sites a unique email address. As long as they use it responsibly, their mail will go through my normal filtering. If I notice a high percentage of spam to an address I've assigned to a site, I forward that address to devnull and never let them darken my doorstep again. One of the sites that have required this treatment is Oracle: the size of a company is no guarantee that they'll honor your privacy rights.
GMail, Yahoo!, and Hotmail
A final technique is to take advantage of free email accounts. I have free accounts at GMail, Yahoo, and Hotmail, and I use them all. I take advantage of their spam filters to handle email accounts that have been public for long enough to attract large amounts of spam, but still get legitimate mail.
For example, the email address I used for my Byte column mail now redirects to GMail, where it is both flagged as Byte and filtered. Every day or two I get a legitimate email from a PR agency that wants coverage for a client but still has my Byte address.
Every minute or two, and sometimes even more often than that, I get a spam at my GMail account. Once in awhile a string of spams gets through GMail's filters, and I have to flag them by hand, but overall GMail does a good job of filtering them automatically.
The Sad Statistics
How bad is it? The Spam folder of my GMail account, which automatically deletes messages after 30 days, currently holds 46 thousand messages. Add in the spam filtered at my other servers and at my POP3 client, and I've filtered out over 100 thousand spam messages a month.
Ouch.
Posted by Martin Heller on September 9, 2007 11:29 AM
September 03, 2007 | Comments: (0)

Nothing happens in Andover on Labor Day: it tends to resemble a ghost town. In neighboring Lawrence, MA, however, three festivals are celebrated on Labor Day: Mahrajan, a Lebanese festival; the Feast of the Three Saints, an Italian festival; and Bread and Roses, a traditional Labor festival.
The Bread and Roses Festival commemorates the "Bread and Roses" Strike of 1912, discussed here. It's also the subject of a book, Bread and Roses, Too, by Katherine Paterson. Paterson is better known as the author of Bridge to Terebithia, both because it won a Newbery medal, and because it was made into a marvelous movie. I met Paterson and her husband at last year's festival, and bought an autographed copy of Bread and Roses, Too from them.
The Bread and Roses Festival has fallen on hard times. It was once an event that attracted national talent and huge crowds; I've seen Pete Seegar there, and Jay Unger, and many other prominent folk musicians, especially ones with old Labor connections. This year there isn't a single group playing that I recognize. Sic transit gloria mundi.
Posted by Martin Heller on September 3, 2007 03:00 AM
August 28, 2007 | Comments: (0)
Over the years, I have dealt with about a dozen music playing and CD-ripping programs for Windows. When portable music (MP3 and otherwise) players became prevalent, most of the music management software worked on the paradigm that the computer would act as a master repository, and the device would hold copies of some of the tracks.
That made sense when the device had much less capacity than the computer disk. But what if you've got a 30 GB player and a 20 GB drive on your computer?




