Recently in Software & Web-tech Category

the app manager program

In the summer of 2009, I got excited about an idea. I pestered everyone around me to talk about it. I wrote a product proposal document and tried to pitch the idea at my employer. It seemed like such a simple yet beneficial idea that no one was doing, it drove me a little nuts. It has been over a year but this month that idea will come to the MacOS and we will see what Apple can do with it.

in the beginning

I am a long time Windows PC video gamer. For years I would hit the local big box store on a Friday and take home the latest PC game for the weekend. Over time the store selection got worse and worse until it finally became a wasteland. While that was happening, I gradually started purchasing all my games from Amazon and then digitally.

By 2009, I was buying all my games digitally from Steam. If Steam did not sell it, I bought from Amazon - and always regretted it. It was at this point that I realized how insanely great Steam was and how beneficial it would be if the software industry as a whole adopted the same model.

software lifecycle

Desktop software has a lifecycle. You have to find what you want, pay for it, receive it, install it, register it, use it, update or maintain it, remove it and possibly re-install it.

With retail software or Amazon, the lifecycle translates into this experience:

  • You drive and shop to purchase it or you order it online and wait 2 or 3 days for the mail.
  • You open the box, basically through everything away except the CD. Then you put the CD in your computer to copy the data onto your hard drive.
  • Then you have to enter a cryptic and annoyingly long key (the DRM) which allows you to run the program.
  • Typically you also have to register the software online with your name to activate it.
  • Over time you have to find, download and apply updates and patches to keep the software current.
  • If you ever have to re-install the program, you have to find the original CD and the key and repeat the process - or call tech support.

This multi-step process is what we have been doing for years. Sometimes it goes smoothly; sometimes it is a nightmare.

It was not until I really started to compare that physical CD experience with the Steam experience that I realized how amazingly great Steam is.

the app store

Like the "one ring", Steam is a program that manages programs. iTunes provides the same experience for media and for iPhone apps. Steam is an app manager program. An AMP is a client program that runs on a users PC. The AMP client talks to an AMP server and manages the entire software experience for users. This model provides some huge benefits.

The app manager program [AMP] provides a simple place for users to shop, find and purchase new software. It also downloads and installs that software immediately over the Internet. The AMP has your library of software which makes it easier to find your stuff and run it. The AMP also handles updates and patches seemlessly in the background.

The AMP also handles DRM and does so without those annoying CD keys. The new software is encrypted so that only the person with the rights to run it can. (This is a big win against software piracy.) Your rights are managed by your account in the central system. Another boon for piracy because the system knows who you are and what you own.

The beauty of this kind of account based system is how much easier it is for users. Since your rights are stored in the cloud by your personal account, you can move your account anywhere and your software follows.

Did your hard drive crash? Did you get a virus? Did you buy a new PC? No problem! Just install the AMP and re-download all of your software. Compare that with trying to find those old CDs, the keys and then updating and patching everything...

seeing is believing

Like I said, I wrote a wrote paper extolling the virtues of this idea but seeing is believing. Millions of people have used iTunes but Steam is an even better experience. The difference is that Steam is only for video games. Steam was built by a small company called Valve to deliver Windows PC games. They have since expanded to the MacOS and there are rumors they will add the Playstation 3. Steam has been wildly successful but they have limited their reach to a niche market.

The AMP idea deserves to manage ALL software. It works great for the cell phone. It works great for video games. It would also work great for all desktop software.

Apple

Apple is a logical candidate to build such a system for the MacOS. This month they will start doing so and I am curious to see how it goes. The Apple software market is dominated by small developers so the AMP is a big win for them. It makes it easier for users to find their software and it makes it easier for the developers to find and support users. Apple makes a nice penny to provide the entire system. Win-win-win.

Microsoft

Microsoft is an even more logical candidate and so far they have nothing in this area to show. Given the difficulties of using a Windows PC, an application manager would be a huge win for customers. With so many competitive AMP products out there leading the way, I hope Microsoft eventually does something themselves.

But Microsoft has an even better application: the enterprise.

Getting software at a large company is a bigger pain than it is as a consumer. The AMP model extends beautifully to the enterprise. In this case, the system would have two servers. The desktop user would run the client; the client would talk to an enterprise-specific store server and that store server would talk with software providers like Microsoft and others. Microsoft would sell the platform as well as software in the platform.

For users, it would mean less time with tech support. They get a new PC, launch the AMP, and starting installing the software that they want. Users solving their own needs quickly. Win.

For IT, it would be easier to support. They provision their central AMP server with the software they want to provide as well as the patches they want to control. They can even manage what specific user accounts can access/purchase. Win.

For the enterprise and software suppliers, the AMP model provides very detailed data on what software specific users are using and how much they use it. Since the DRM model is tied to user accounts which are managed by the AMP server, the system provides terrific data to use for managing costs and paying enterprise license agreements. Win!

The AMP model for the enterprise is another win-win-win scenario that would introduce an entirely new business to Microsoft. And one that no one else is doing. The product leaders are all focused on consumers not businesses.

Valve

The third candidate is Valve. Steam is for games today but they could easily expand their model to include other software. They could even create a new store if they wanted to keep their branding clean. And they could do this on multiple platforms, something neither Apple or Microsoft would want to do.

The app store design is a brilliant idea with serious benefits to users, software developers and platform holders. It may take five years but eventually we will all be using one and I think we will all agree on its greatness.

the truth about software bugs

All software has bugs. If you think you are going to write a complicated program without any bugs, you are fooling yourself (or maybe you are lying to yourself). Space ships, medical devices, car accelerators, office applications. Some programs are worse than others but all software has bugs.

After a few releases, there are things that never worked right, things that broke recently and things that just dont make sense anymore. By the time you get to version five or six of your product, you only have one decision to make: Do you aim for perfection or stick with what you know? Given that you already have a list of known problems, do you try to do things the right way now or do you leave things well enough alone?

If you leave it alone, it will stay broken but at least you understand how it is broken and you have already lived with it that way.

If you try to do it the right way, you do so knowing it still wont be perfect (all software has bugs). If you forge ahead with changes, you dont know what those future problems will be so you are taking a risk but at least you tried to make things better. If you are going to have bugs anyway, why not at least try to do the right thing?

How you answer this question says a lot about you as a developer. How your team answers this question says a lot about your company culture.

One set of people want to manage risk. For them, the devil we know is clearly the safer decision because the other path is unknown. What if there are bugs? What if something goes wrong? How bad will it be? Much better to stick with what we know. Someday we can come back and do it right, but not now.

The other set of people want to pursue their vision. For them it is better to die trying than to live with the mediocrity they know. These people are motivated by a vision and the risks always seem small in comparison.

Most companies have both types of people and they are always at odds with each other because of how they feel about risks. Both types of people are intelligent and rational and both paths make sense. Part of the tension is that there is no right answer and once you choose one path you never know what could have happened if you had chosen the other path.

The only constant in this debate is that when it is all said and done, all software has bugs.

Facebook

One of my resolutions for 2010 was to (force myself to) give Facebook another try.

I am not really a FB person but I am starting with 1 post every day or two and after a month now, it seems ok.

I realized that I have moved a lot and in the process I have lost touch with a lot of friends. Michigan (twice), Texas, Kentucky, Pennsylvania, California and now Washington. I have had 12 addresses since college.

When I look at friends that have lived in the same place their whole lives (or even more than 4 years) I can see the difference and I miss my old friends. FB seems like a way that I can casually reconnect with those folks. It has worked for Angela, not so much for me yet, but I will see how it goes after 6 months or so.

So see you on FB. I will be doing brief posts there and focusing on real writing here.

the evolution of communication tools

Over the years there has been a steady progression of new technology designed to improve communications.

  • Postal mail, now called snail mail
  • Telephone
  • Email
  • Facsimile, aka fax
  • Text IM
  • P2P file transfer
  • Audio calls, aka VOIP
  • Video calls
  • web pages or sharepoint
  • SMS messages
  • video conferencing

By improving communications, we increase cooperation, coordination and productivity in the work place. Each tool is used in work and social situations but these days I focus on business applications of communications technology.

This is a fascinating space that continues to evolve because the basic problem, sharing information, is so difficult.

Each technology addresses three basic problems:

  • the type of information being transfered, such as ideas or images;
  • the different physical limitations of the parties, in the same office or across the planet, 1-on-1 or 1-to-many;
  • and different information contexts, a recommendation, a problem, a task, a promotion, a reprimand or firing.

For instance, you want to explain a problem to someone. That is the basic information which could go in a letter, or a phone call or an email. But there is also a lot of contextual information, such as body language or attitude which are best transfered face to face, a phone call or a video call.

These days people are in love (and overwhelmed) with email but a lot of momentum is moving to faster mediums like text IM and SMS messages. This brings up another issue in this space: adoption.

Each tool lends itself to one type of communication over another but people tend to learn one tool and then lean on it for every task. A prime example is email. People send 1-line emails with <eom> in the subject; most of these emails are better handled as a text IM. People attach files and documents in emails; the attachments should be send as p2p file transfers or stored on a central website.

Adoption rates for each technology generally revolve around age. The oldest workers rely on telephone calls and fax. the next oldest rely on email for all tasks. Then there is a group that uses p2p file transfer and websites instead of email attachments. the youngest workers rely on telephone SMS messages and text IM because it is so much more immediate than email. There are also technologies that everyone seems to struggle with using like video conferencing.

The reason for this adoption behavior is that learning a tool and incorporating it into your personal work habits is easier than learning a tool, unlearning it, and learning a new tool. Younger people dont have to unlearn anything so they gravitate towards the newest technology.

With all these tools available, business and employees seem to be right in the middle of adopting work behaviors that use them efficiently. The present state is kind of a mess as each technology develops independently and workers use a mixed up combination of tools at different contexts.

At the same time, we are seeing newer technologies particularly around the web. Social networking sites are adopting and adapting pre-existing technology models like text IM and video to be used in a web context and applied in new ways.

One factor that used to be significant is quickly going away: connectivity. For a long time this was an overriding fact. Can I phone them? Do you have a fax? Are you online? Broadband access through a desktop or cell phone is quickly becoming a non-issue which means solutions will coalesce around a standard of immediate connectivity.

It will be interesting to see if any company can rethink the basic idea of communications and refactor the plethora of existing technologies into something seemless, usable, and clearly superior.

the $150 PC

In the USA, we are well on the way to a personal computer in every household. At first that meant a desktop, now it often means a laptop.

But it seems pretty clear that the "PC" for the other 6 billion people on Earth is going to be a cellphone. Or perhaps a netbook.

Take the netbook form-factor -- portable like a phone but much larger screen and keyboard.
Add always-on Internet access through a cell phone carrier.
Add a very low-power CPU like VIA's EDEN line for super-long battery life (as in days not hours).
Add a Linux OS in firmware with a decent window manager and support for a web browser.
Add web-applications for common tasks from Yahoo, Google, and startups.
Add an offline-web technology like Google Gears.

The result?

Email, instant messaging, voice and video calls, watch photos and videos, shop, create basic documents and spreadsheets... You get a system that does almost everything people want to do without buying a single piece of software.

The result could be a system that satisfies basic computing needs at a really low price. Sell 300 million of them in the BRIC countries.

A win for hardware companies who make hardware cheaper every year and need volume.

A win for web companies that need users (eye-balls) and continue to add power to browser-based software.

A loss for OS and desktop application companies like Microsoft.

It goes without saying that this is not a new idea. The threat has been quashed by Intel and Microsoft for years but it keeps... coming... back...

Eventually it might actually take off. Or the same thing might just happen on cell phones.

CONTINUE  

WASLreport updated 6-19-08

Today I released my first major update to WASLreport. This update adds new user functionality as well as a lot of non-visible code cleanup.

For this release I had three goals:

  1. Manage my code and releases with Subversion. (Another great Pragmatic book, "Deploying Rails Applications: A Step-by-Step Guide (Facets of Ruby)", was a big help here.)
  2. Add the District search.
  3. Clean up the rails and javascript code so that I DRY.

Overall the code looks much better now and the site should reflect that. Unfortunately there are still two major code problems and one in the data.

  • I have not been able to get google maps to work with Internet Explorer.
  • I have not been able to get the javascript for sorting the tables to work with gmaps.
  • A lot of the school locations are just plain wrong. Improvements to the map will make these errors much more obvious now.