Mostly Random Technology Bytes

April 13, 2007

Computers - We ain’t quite there yet

Filed under: Software — Answers 2000 @ 2:05 pm

There’s an interesting thread on JoelOnSoftware.com about the kind of knots that computers allow newbies to get themselves into. Of course, as in the thread, an obvious response is RTFM, but is that fair?

I know how to use a PC, but in other aspects of my life, I increasingly find that life is too darn short to read the manual. Fortunately however, even quite complex devices with a ton of functions can now be used adequately without reading or learning. I’ve been able to use my PlayStation, TV, microwave, electric oven and new mobile phone without ever reading the manual, or learning how to use them. Admittedly, I don’t necessarily know how to use every last function - for example - my oven has a feature where you can set it to come on at a certain time of day, and go to a certain mode, and run for a certain time - and while I can’t think of a use of a for that function, if I did and I wanted to use, I think that I would probably have to follow the instruction manual to use this function. Likewise I have sometimes browsed the instructions for PlayStation games, mostly for hints of how to play better - but I know it’s unnecessary - my 6 year old nephew can operate my PlayStation and its games, better than I can, without ever having read any instructions - he does it by a combination of 6-year-old commonsense plus trial and error.

The thing is computers, at least as far as the user interface is concerned, simply don’t have anything like the ease-of-use of other consumer devices yet. Read the first post in the JoelOnSoftware thread. Things like short-cuts, directory structures and needing to know which application does what are abstraction-leaks, where you need to know stuff about the internal operation of the computer which isn’t strictly relevant to getting a particular task done - such as simply wanting to prepare a document and keep it safe. By contrast, when using a mobile phone - I don’t need to know anything about how it stores my address book, or how it connects to the phone system.

With computers, because those abstractions leaks are so gigantic, the tendency is to slap a bandaid over them by using some pretty graphics, explanatory text, icons and what not. But really, when you think about it, an ordinary user shouldn’t be required to know things like the difference between a short-cut and an actual file, simply to avoid losing their work. Maybe in a decade or two, we’ll figure out how to make more usable PCs?

When these types of discussions come up, I often think of an episode of Star Trek NG, called "Hollow Pursuits". In this episode, Lieutenant Reginald Barclay’s character has an alternate life on the holodeck where he lives in a fake Starship Enterprise and is cool, commanding and respected, rather than the nervous dork that he is on the "real" Enterprise. The story is basically that of him learning to abandon his fantasy life and concentrate on real- life. At the end of the episode, Barclay tells the computer to delete all his holodeck-programs, and then after a long pause, says "Except program nine" (or something like that).

First please note that in no point during the episode did Barclay need to know the difference between a short-cut to a saved file, and the actual saved file - and nor did he need to know whether he authored his holodeck programs using PowerDeck 2457 or HoloPerfect version 900. But that isn’t what surprised me… What surprised me? Well, it’s just at the end, I always half expect the computer to say “Too late sucker, program nine has already been deleted”. I guess that I have become too used to computers being unfriendly!

AddThis Social Bookmark Button

April 10, 2007

Competing with Microsoft is Dead to Paul Graham?

Filed under: Internet, Software — Answers 2000 @ 1:03 pm

Paul Graham writes in two recent articles, Microsoft is Dead, and the Cliff Notes explanation of why he thinks Microsoft is Dead. Of course, the articles have attracted a lot of attention - it’s a great headline - but is it true?

The first thing to understand is who Paul Graham is. He’s a venture capitalist. He invests in tech start-ups. Yes he has a tech/programming background, but today he’s basically about investing in small tech start-ups with the idea that one of them will grow huge and make him a big pile of money to add to the big pile of money that he’s already got. Nothing wrong with that - although you do have to realize that it colors his arguments throughout.

If you read Graham’s two articles, especially the Cliff Notes follow-up article, apparently he doesn’t mean “dead” in the sense of going out of business. Or in the sense not making huge profits. Or in the sense of not producing anything new. Or not making products that vast numbers of people use and pay for. What he really means, is dead as in the sense that the start-ups he’s involved with, won’t be competing with or scared of Microsoft. The specific words he used is "What I meant was not that Microsoft is suddenly going to stop making money, but that people at the leading edge of the software business no longer have to think about them" - "leading edge of the software business" of course being a euphemism for the sort of start-ups that Paul Graham is involved with.

I could remark that’s a darn funny definition of "dead" as far as anybody living outside of Paul Graham’s VC tech bubble are concerned. But I think more interesting question is why start-ups aren’t concerned about competing with Microsoft.

Think back to the 1990s for a moment. A common, and highly fashionable, tech business plan (I’m not talking about the Internet retailer boom of selling groceries or other stuff online) was to build something around the web/Internet that would somehow make some part of Microsoft irrelevant. This was typified by Marc Andreessen of Netscape remarking how the browser would reduce Windows to "a set of poorly debugged set of device drivers", and Larry Ellison of Oracle Corporation predicting that the Network Computer would pretty much displace all use of PCs.

But would anybody be excited about this type of plan today? Is it cool? Fashionable? Where the hype is?

Today’s cool is YouTube, MySpace and Google. The kids want to be the next Chad Hurley - and Bill Gates is just a dorky middle-aged guy that your dad might have admired.

And that’s my thesis: the real reason that Paul Graham thinks that Microsoft is "dead" is simply because the kind of start-ups that he is involved with, are no longer trying to compete with, nor displace, Microsoft. In other words, he’s saying that his start-ups aren’t going to try to take a chunk out of Microsoft’s $44.2 billion (and growing) annual revenue. Or to put in other words, competing with Microsoft as a business-plan, at least as far as Paul Graham is concerned, is what is really dead.

That’s a pity really, because even though he says eventually Microsoft may encounter problems (who would have thunk?), Paul Graham effectively concedes that Microsoft is going to make a lot more money in future. Some people are going to get rich competing with, and taking a chunk out of Microsoft’s revenues - although apparently not Graham’s start-ups because it’s unfashionable to even try.

AddThis Social Bookmark Button

March 2, 2007

Photoshop online - the questions that only programmers would ask

Filed under: Programming, Software — Answers 2000 @ 5:36 am

The tech press (example) is reporting that Adobe is developing some kind of cut-down version of Adobe Photoshop that will be delivered as a browser instead of desktop application. As you might expect, since these articles are generally aimed at people who are technically-aware but not necessarily programmers, most of these articles focus on what they see as the big picture. I might sum them up:-

  • Adobe’s new offering will be software-as-a-service
  • It will have reduced functionality compared to the desktop version of Photoshop
  • It will be free and supported by advertising

And some of the obvious big picture questions:

  • Will customers like the software-a-service model?
  • Will graphics professionals want to use the online version?

But as a programmer, while those types of questions are intriguing, they aren’t the real issue that is bugging me.

My question is this: How is it going to work?

Now if you were to ask the stereotypical non-programming IT manager (sort of the like the pointy-haired guy in the Dilbert Books), he would probably tell you that is just some tedious "implementation detail", that Adobe’s super-smart programmers are sure to solve. In other words, they wouldn’t think that it’s not the kind of thing that these big picture articles need to cover.

But here’s the thing: I’m not just asking this question out of idle curiosity. I’m also asking it because sometimes the answers to these "implementation details" have huge implications. They set the parameters of what is possible, and therefore can give you some very strong hint abouts what type of product will be emerging.

So let’s think about it for a moment. In the old days of the web, you had to press a submit button or click a link to send info back to server. Now, of course, we’ve moved forward, and most serious applications which run in a browser are generally Ajax (Asynchronous JavaScript and XML) based. In Ajax applications, there is usually a fair amount of intelligence running within the browser (for example to generate a sophisticated user interface), and data is sent back to the server (which of course includes its only logic too), as the name implies, asynchronously, i.e. without the user having to take some special action.

I would think it’s almost certain that the online version of Photoshop will be based on Ajax. It’s the current vogue technology for web applications. It’s probably the technology that will help produce the most interactive user interface, which is of course very important for a graphics program. And Adobe have already developed some experience with it.

So how might an Ajax-ed Photoshop work. I can see three main alternatives:

  1. The master copy of the image is always stored on the server. The user’s browser simply contains the code for displaying the current image, and the user interface for manipulating it. Whenever the user chooses a graphic operation that changes the image, the server makes the changes to its master copy, and user’s browser’s is updated.
  2. The master copy of the image is initially stored on the server. The user’s browser downloads the image. When the user chooses a graphic operation that changes the image, the changes are made within the browser copy, and at some point the server is updated with the new version of the image from the user’s browser.
  3. The master copy of the image is initially stored on the server. The user’s browser downloads the image. When the user chooses a graphic operation that changes the image, the changes are made on the client and its screen updated, and the server is told to do the same operations to its master copy of the image.

These options are not in fact mutually exclusive. For example, one option could be used for some graphic operations, and another option for other graphics operations. However, the program would be simpler to develop, if one method, ideally the first one (which is the simplest in terms of coding) were used throughout.

So Adobe could just use method 1, problem solved, right?

Sorry, wrong. One of the really cool things about Photoshop, is that it includes a highly interactive user interface. For example, if you want to brighten or sharpen an image, you can fiddle with a slider and see your image start changing immediately. If Adobe simply relied on method 1, the system would probably be too slow even for people with super-fast internet connections: every little nudge of the slider would result in a request to the server, and a new image being sent back.

Unfortunately methods 2 or 3, apart from the additional complexity they add, also have some problematic issues. The biggest issue here is whether JavaScript would be up to the job required for it to do image processing calculations on large images. For example, adjusting an entire image’s appearance may require several calculations per pixel, and therefore a 1000X1000 pixel would require millions of calculations. Could JavaScript do this (say) once per second in response to the user moving a slider in the GUI? While Adobe undoubtedly has some very clever programmers, and of course PC hardware is getting better and better all the time, I’m skeptical about whether this type of problem can be solved in the short-term.

So my predictions (okay guesses) are:

  1. The online version of Photoshop will be implemented as an Ajax application
  2. The interactivity of the user interface will be significantly reduced as compared to the desktop version (this is in addition to functionality that Adobe chooses to omit for whatever reason)

If you’re a programmer, you’ve probably read this far, and even if you don’t agree with every step in my chain of logic, you’re probably thinking to yourself: "Why is he pointing out the obvious?".

My answer: What’s obvious to you and me, doesn’t appear to be obvious to much of the tech press. Additionally, these "obvious" facts, also give an indication of the likely answers to some of the big picture questions raised in the press.

  1. Will graphics professionals want to use the online version? My prediction: No, because it will lose all sorts of interactivity (as well as probably whatever functionality Adobe omits) as compared to the desktop version.

Update:

I’ve got lots of comments here saying that Adobe will probably use Flash and Flex (Flex being a bunch of technologies that allow better Internet applications using Flash). Perhaps they will, although I still suspect there will be some Ajax involvement in the user interface.

People who know considerably more about the subject than I do, tell me that Flash can manipulate bitmaps rather better JavaScript. No doubt they are right. Is it good enough to quickly manipulate a large image taken with digital camera? I don’t know - it’s possible that it could be - or failing that, Adobe, which owns Flash, could improve it until it is.

But even if they use Flash and Flex, and even if Flash is able to manipulate large images quickly enough, it still leaves the question of how they are going to deal with sending bitmaps back and forth between server and client. Which leads us back to the methods 1, 2 and 3 which I talked about in the article. Of course with a more powerful browser application, methods 2 and 3 become more practical… potentially allowing a more interactive user interface… but will it be as interactive as the desktop Photoshop, given current Internet speeds and all the round-trips required?

AddThis Social Bookmark Button
Next Page »
 

Powered by WebRing.