Category Archives: tech

Make Your Code Better: Delete It

Across my twitter stream recently came the following casual missive:

Facebook almost seem to make a point of making their app worse & worse with each “update”. – curlydena

Just a regular user of Facebook (I assume) making a very relevant observation.  I don’t follow curlydena (but i think i’d like to drink with her); it was retweeted by Damian, an iOS developer I met over beers and pool at WWDC 2009.  I’m sure it resonated deeply with him as it does with me.

It’s a truism in software that the more time and incremental development goes into a project the more fragile and ill-designed it becomes.  There comes a point that it’s worth it to dump the entire code base (or the majority of it, if you have well defined, implemented, and maintained abstractions).  Use the current project as a functional prototype and redesign/implement the product from scratch.

It’s hard to get middle and upper management to understand this.  The further away they are from being computer scientists the worse the problem is.

Apple is the only major software vendor that seems to appreciate this truism.  Time and time again they’ve reimplemented stuff from scratch and we are the beneficiaries of that.

It’s a lesson we can all benefit by remembering.  And perhaps Facebook should find a few good iOS developers (within or without) and reimplement their app from scratch.  (And ritually burn Three20 while they’re at it.)

The Eyes Have It

Box Jellyfish

art by fisher

I was listing to one of my regular podcasts on Saturday: 60-Second Science from Scientific American. [iTunes]  This particular snippet of science in the news was titled Box Jellyfish Eyes Aim at the Trees.  It seems that box jellyfish have 24 eyes, and four of them point above the water’s surface.  They use those four exclusively to navigate.  They live in mangrove swamps and use the tree limbs as navigation markers.

Box jellyfish, and most jellyfish, have minimal brains.  The multiple visual sensors allows less central processing by a brain able to pull out the variety of signals, redirect sensors to different targets when desired, and perhaps screen peripheral information to change task of a particular sensing organ.

 

For years, human language recognition tried to model language the way linguists understand it.  There were large breakthroughs in the area when massive computation became more available and we started treating it more like an engineering problem.  Solving the problem the way we thought we solved it seemed a good direction.  Early AI research has many similarities to this.

There have been a lot of robotic devices that have had one or two cameras for “eyes”, and we have done some work on image recognition from these.  Feeding this information (perhaps with other information from infrared or pressure sensors) to a central programming location.  Maybe an attempt to decentralize robot computation, and increase the number of sensors might lead to some interesting uses and solutions.

Just a thought.

Street Viewed

I was working outside at 3622 Main this week, on a ladder, painting the trim on the windows I’ve been putting in.  I caught something out of the corner of my eye, a stalk on top of a car.  I initially suspected it was an art car, so glanced that way to see which one.  Instead, it was a Google Street View car.

Of course I couldn’t have been heroically lifting the glass into the window frames as I had been the previous day.  I was just painting them.  So, keep an eye on Street View and let me know when my back side shows up.

iPad and NYT

The New York Times was a bullet point in the iPad introduction.  The application they had already developed looked quite nice from a cursory glance, particularly with its lack of advertising.  The Apple Gazette recently discussed the pricing conundrum they are having at NYT.

There have also been rumors that most of the Times’ content is going to go back behind the pay wall.  Assuming that is the case, I think there’s an obvious strategy for moving forward with their iPad pricing.

Initial price: $10, and that covers 3 months of content.  Get everyone hooked!  After that start charging $10/month.  Also, strategize how you might include minor and strategic advertising content into the app.  Possibly set up a new pricing scheme for advert-less versions.

Also, make sure you build in a “you can’t buy next month’s content until you upgrade the app to the newest version available – it’s free”.  This would enable you to enforce any new restrictions you add to the app and keep the majority of your customers on the same version.

Of course, I would prefer if it were free.  But that’s not how businesses work.  If they keep the entry cost low enough, it might be enough to get me back into the daily habit of reading the newspaper again.

Inconceivable: I Can’t ‘ls -l’ My iPhone

Vizzini (played by PC World): Inconceivable.
Inigo Montoya (played by Apple Insider): You keep using that word. I do not think it means, what you think it means.

When some people (like PC World) come up with lists of “What iPhone OS 4.0 Needs” they often lists items that are not thought about from a design direction at all.  They think of a task they want to perform, look at a previous solution for that task, and proclaim that the same solution is needed here. (To be fair, PC World does not invoke as much Fire & Brimstone as others who deliver this opinion.)

We don’t need a floppy drive on the iPhone.  No one is suggesting we do, but it was only a few years ago that people were wailing for their loss on a computer (How do we manage to install new software without them?).  Now people often state they need access to the underlying file system of their iPhone.  Their phone.  They need to get to the filesystem.  And browse it.  Why? why? why?

With the announcement of the new iPad running a newer version of the iPhone OS, no doubt these statements will grow louder.  Access to the filesystem oddly makes a lot of people’s lists.

OS X provides the Finder to me, and it provides Terminal to me. I’m sure my mother doesn’t know what Terminal is, and I know she’s not overly familiar with Finder.  She uses apps.  That’s what most people do.

Apple has dared to ask “can we remove file access entirely” from the user experience.  There are some cooler heads on the Internet that notice these are interesting ideas, and they may be fruitful.  Perhaps we should give them a chance.  The answer will likely be “not entirely”, but it can be different, better for 99% of users.

Kudos, AppleInsider for exploring these concepts in a non-mellowdramatic way.

iPhone 4.0 – What Will The New OS Bring?

Dwight Silverman recently provided a large number of “improvements” he feels are necessary for the next version of the iPhone. Here are my opinions on his thoughts:

A better camera: A 3 megapixel to 5 upgraded seems a minimal upgrade that should be expected. If it does include a better camera, it should also provide better programatic access to it. Allowing apps that use it to throttle the quality, especially those that use video, particularly streaming video. If you could stream low-res and save high-res at the same time, that would be ideal. It’s likely that cameras will appear in future iPod Touches as well, perhaps lower end versions.

Bigger and/or Better screen: The two aren’t the same thing obviously. Apple has been resisting the resolution “upgrade” because the one-size-fits-all has served their developers, and therefore their app breadth, well. Other platforms are already stratifying, and it’s not ideal. They will definitely need to provide the simulator support months in advance of hardwired availability, so that developers can confirm their products. They should also provide a way to run lower/original resolution applications, or risk minimizing available applications.

More customization: With each major release of the iPhone OS there are minor customization increases. There will be minor changes on this version and Dashboard-style widgets, custom backgrounds, or any other “skinning”-type functionality is unlikely. And in my opinion, unneeded.

A faster processor: Each hardware upgrade has included a processor improvement. Apple has no need or desire to be the fastest possible processor.  More speed = more battery use.   Apple will continue to err on the batter life improvement side.

Voice recognition throughout: Apple aims at the larger, non-technical market, and I think voice recognition and in particular voice dictation is a bleeding edge technology. This is still not available broadly on computers and mobile CPUs can’t handle it. The Nexus One offloads, necessarily, processing onto servers.  This bandwidth increase would be undesirable, particularly to an AT&T already straining from the needs of the iPhone.

Multi-tasking: This is most yearned for feature that is the most unneeded. Apps can currently remember their states if they care about their users. Having Apple “sleep” an app also leaves an ambiguity of when the user really wants to quit the app. There are definitely some functionalities Apple should open up to developers that happen to be background ones. (Audio Streaming a la NPR app – The stream should be on par with the Apple Music app.)

Greater Durability: I disagree with Dwight, iPhones are strong enough. Their screens are considerably larger than most which naturally makes them more vulnerable. And insurance is usually available for those unable to handle the iPhone safely.

Thinner and lighter: a competing design variable to Greater Durability.

Relaxed App Approvals: Apple did recently “stream line” its app approval process and items are getting through the pipeline much faster this month than two months ago.  A few more months are needed to see if this change is everything is needed.  This general heading in Dwight’s list is there only for a specific argument: Google Voice.   I would love to have that app, but any arguments are hard to make for lack of real information on why it hasn’t been green lighted.  Lots of rumors and speculation.

End Its AT&T Exclusivity: Apple chose AT&T on technological reasons. There are two (different, and not quite equal) 3G technologies. Apple chose the one that can provide more technically and the one that blankets Europe and Japan. There were also technical modifications made to AT&Ts infrastructure to allow the “audio voice mail” that would need to be made by other carriers. Cingular has the same type of network; Verizon would require the manufacture of a different type of phone. I don’t think the growth spurred by non-exclusivity would be large enough to bother production.