|
Is it just me, or has anybody else noticed that shortly after (within a minute or two) emptying their spam folder in Gmail there will be single new piece of spam? I first noticed this happening early this year, and it seems to happen pretty consistently. Given that I receive ~40 spam/week, the average interval between spam should be 252 minutes so it seems unlikely that this is a coincidence.
[ 10 Comments... ]
I've been thinking more about cloud computing recently. I still believe what I said about the ideal state of computing last year. I'm just more sure now about where specifically it's headed. And I think that most companies are going the wrong way.
The key thing, I think, is the separation between data and logic/computation/processing. Most companies that offer or are planning to offer cloud computing services are focusing on computational power. Amazon EC2, Google's App Engine, and whatever Microsoft Azure is going to turn into all offer cloud-based computation. I think that this is pretty pointless. On the other hand, things like Amazon S3 (i.e. cloud-based data storage) are incredibly useful.
There are very few advantages to using a web-based version of an office suite. The main advantages are: (1) real-time collaboration potential and (2) ability to access it from anywhere. The first is not inherent to cloud applications; any desktop-based application can do the same thing. The second is really a result of cloud storage, which is what I'm advocating. There are disadvantages to cloud computing as well: interacting through a web browser instead of a native app is much slower and more limiting; and there's heavier dependencies on reliable network connectivity. A well-written thick client, can, I think, always beat a well-written web app.
So as I described in my earlier post, a central repository for personal data with version control and transparent backup is important. This data must be accessible from any computing device, and can be manipulated by any number of different applications. Ideally the data storage would be completely independent of the data manipulation. You could sign up for any cloud storage service and access the data from any application. This requires a common data transfer protocol. If each cloud storage service provider uses a custom API, then no application will work with all service providers. If, however, they agree on a standard API, then any application will work with all of them. Imagine having your data accessible via a URI like "cloud://ec2.amazon.com/~username/file.ext#version". Want to switch providers? No problem - just migrate to "cloud://gfs.google.com/~username/file.ext#version". The protocol used to access the "cloud" scheme remains the same, so the app still works just fine.
I imagine that different storage providers will offer different features. Some will undoubtedly be free and advertising-supported. Others may charge you directly. Others may provide storage for free, but charge app developers who connect to their clouds (the app developers would make money by charging you for the app). Some may provide stronger encryption or more reliable backup facilities. There's plenty of differentiators for competitors in this space, and so it becomes important for the user to be able to switch between providers based on their needs.
Another thing is that no application is perfect - we've all run into some feature or another that one app does that we wished was present in some other app. Take the (fictional) example of two presentation editors. One of these makes it really easy to create and edit the presentation, and the other provides support for funky things like simultaneously playing the slideshow on 5 different screens over a network. Naturally you want to be able to use the first app to build your presentation and use the second one to actually present it. This is impossible if both apps use their own proprietary data formats; if they both operate on the same data standard, then it is possible.
Note that the last paragraph applies to desktop-based storage too, so it doesn't really matter if the data is in the cloud or not. But in order for the computing ecosystem to evolve in the way I hope it will, common data storage and transfer standards are immensely important. I think it'll take a while for the big companies to get their heads out of cloud computing and into cloud storage. Until that happens, there's a huge opportunity here for somebody to start developing this ecosystem. There's a lot of problems that need to be solved, particularly to do with efficiently syncing the data with devices that are using it, and allowing extremely fine-grained permissions for access to the data. However, these are not intractable problems; most have actually been solved for specific subcases already, it's just a matter of generalizing and packaging those solutions into a cohesive whole.
Then you just have to (1) provide a storage service that solves these problems (you can probably even piggyback the implementation on S3 or something), (2) publish an API that allows access to the service, and (3) support third-party apps in accessing that data. If you can do this fast enough, and there are enough useful apps using your protocol, then by virtue of being the first one in the space, your API will become the de-facto standard and everybody else will have to follow suit for backwards compatibility with those apps (this is where open data formats are important, since you want those apps to be useful with other data that isn't in cloud storage yet). Once there's a couple of other storage providers in the market, the ecosystem starts growing. This is probably one of those things where you'd end up owning a slice of the market. Your slice would decrease in relative size as the market grows, but the market growth would result in larger absolute value.
[ 4 Comments... ]
Lately I've been finding it harder and harder to read books. Or more specifically, I find it harder and harder to concentrate on reading books. I blame the Internet.
On the web, the vast majority of text is in itty-bitty chunks. Navbars, headlines, blurbs, RSS summaries; they're all bite-sized pieces of text that are designed to give you exactly what you need to know and nothing more. Take a look at the main page of just about any website - it's very rare to find more than a couple of paragraphs of continuous text. News and Wikipedia articles (and Steve Yegge's blog posts) are probably the longest pieces of text I read on the web, and those are fundamentally different from books (i.e. literature).
As a consequence of spending so much time on the web (and I guess around computers in general), my brain seems to be changing. My attention span is much shorter than it used to be. When I read books, I find myself racing through the pages, hunting for the plot thread and throwing the rest away. It's a shame, because a lot of good books have a negligible plot; it's the way they're written that makes them good. It's the small nuggets of character hidden in the language that make you think and imagine. The plot is just the frame on which the rest hangs.
I really need to force myself to slow down when reading and concentrate more. Fortunately, I don't think I'm so far gone that I can't recover. Although, thinking about it some more, I guess this is the kind of change that you can't really stop; it's an evolution of language that's perfectly natural. You just have to adapt as best you can.
It looks like this post runs into the whole spelling/grammar debate that comes up every so often. There was that article a while back about the prof that suggested we adopt degenerate spellings of words as legitimate. There were a lot of people who thought he was off his rocker, but it seems reasonable to me. Some of you are probably sticklers when it comes to spelling and grammar. I don't like seeing improper grammar or misspelt words either, but let's face it: our opinion doesn't matter (or will cease to matter soon). The value of language, much like the value of money, is defined by those that use it. If future generations feel they can communicate without using our outdated ideas of spelling and grammar, then so be it.
Besides, it seems pretty arbitrary to use what we think is "correct grammar." Language has evolved, and will continue to evolve. What is "correct" today wasn't correct a hundred years ago, so saying that everybody in the future should use 2008 grammar is pretty stupid. Why not 1908 grammar? It was just as correct in 1908 as 2008 grammar is today.
[ 9 Comments... ]
Opera seems to be (again) trying to drag the web, kicking and screaming, into the 21st century. According to their study a ridiculously large proportion of web pages aren't standards compliant. It's good to have a hard number to quote now, rather than just complaining vaguely. Hopefully this will prod web developers into putting a little more effort into validating their web pages. It's been a long-standing pet peeve of mine that websites stick on "W3C Validated" buttons on their pages even though the pages are no longer valid.
Anyway, in order to stay ahead of the curve, I've now moved this website along to the next step: switching to the XHTML content-type. This site has always been valid XHTML, but it was always being served under the text/html content-type. It is now served as application/xhtml+xml which is more accurate and strict, since it forces browsers to parse it using an XML parser rather than an HTML parser. Validity is now enforced; if I introduce any errors in the site it will simply fail to render rather than falling into browser-dependent error handling behavior.
This also means that this site will no longer render in IE, which doesn't support the XHTML content-type. I'm not even going to bother with server-side IE detection in order to display an error message; they've had long enough to get their act together. Anybody who's still using IE needs to move on.
As usual, post a comment or send me a message using the contact form (in the "About" section) if you run into any problems. But not if you're using IE.
[ 10 Comments... ]
Turns out that my feedreader hasn't been picking up Paul Graham's essays for quite some time now. I just finished reading all the ones I missed (the last 11 or so), and completely overloaded my brain. The ones I particularly recommend:
Lies We Tell Kids - This one is just pure gold. I think he actually reveals the meaning of life in here somewhere, or at least provides enough clues to figure it out.
[ Add comment here ] Cities and Ambition - This one is also really good. It's sad that after living in Waterloo for ~6 years, I'm still not sure what kind of message it's sending. Maybe I should start learning Chinese again. Or move somewhere else.
[ Add comment here ] You Weren't Meant to have a Boss - This one resonated with me, but may not appeal to a more general audience. In particular, the happiness he refers to is very similar to the one induced by doing parkour. I'll probably post more on that at some point in the future.
[ Add comment here ] Be Good - This one has one paragraph that really hit it home. It eloquently says something that I've been musing about for a while now:
Being good is a particularly useful strategy for making decisions in complex situations because it's stateless. It's like telling the truth. The trouble with lying is that you have to remember everything you've said in the past to make sure you don't contradict yourself. If you tell the truth you don't have to remember anything, and that's a really useful property in domains where things happen fast.
The only thing I want to add is that I think it applies to more than just decisions in complex, fast-moving situations; it really applies everywhere. Everything else I've been thinking about on this topic is already implied by the paragraph above.
[ Add comment here ] Disconnecting Distraction - And finally, this one is to tell you to stop wasting your time reading my blog and go do something useful instead.
[ 4 Comments... ]
So when I added that tag cloud for my news feeds, I complained that "chrome" appeared almost as many times as the word "and". Well, to be fair, I am now complaining that both "blackberry" and "storm" outnumber "and" by a nontrivial margin. My distribution of news sources is biased so as to encourage this, but it's still pretty ridiculous!
[ Add comment here ] Also, it appears that Facebook has modified some of their API so until I get around to fixing it, notifications of new posts/comments will not be appearing in my news feed.
[ 5 Comments... ]
So one of the exhibits that I saw on Saturday night (well, technically Sunday morning) was called Turbulence Sound Matrix: Signe. There were 64 speakers in a spherical arrangement (8 curved pillars, each with 8 speakers) that were all generating different sounds. When you walk in it just sounds like a lot of random noise, and really that's all it is. It's not quite white noise, because each speaker is generating the same noise in a loop so there are patterns. But if you just stand there listening to it it sounds pretty random and you get bored after a few seconds.
However, if you go around and put your ear next to some of the speakers, you can focus on the single sound that is coming out of that speaker. The sound by itself is identifiable (one sounded like typewriters, one like the wind, etc.*). After listening to a few of those speakers, if you go back to standing in the middle and listening to the combination of them all, it doesn't sound random any more. You can isolate the different parts of the noise and focus on them individually.
* Actually there were a few that sounded like typewriters and the wind, although they were different from each other. But that's beside the point.**
** Yes, there is a point.
[ 2 Comments... ]
Important life lesson* #3: if you put a small amount (say, a couple of fistfuls) of elbow macaroni into a pot of boiling water, they will arrange themselves into a donut shape at the bottom of the pot.
*Not really an important life lesson.
[ 2 Comments... ]
If you have a point, you probably won't even realize it's just a point. It just is, because that's all you have, and you have nothing to compare it to. But then, if you encounter a second point, you realize that what you had was a point too. If you think about it a bit, you can figure out the variable that distinguishes the two points, and from that extrapolate a line full of points.
But then you have a line, and probably won't even realize it's just a line. Sure, you could come across some other point or line and extrapolate a plane, but is it possible to extrapolate the plane from just those two initial points? What about 3-D space? And if it's possible, how much meta-thought does it take to do that?
Mmmm... going meta. Oh so confusing, and yet oh so fun.
[ 4 Comments... ]
I finally got around to writing the LiveJournal blog sync thingy that I've been meaning to write for a while. Entries from my blog will now automatically get cross-posted to my LiveJournal account ( stak). Older entries on my LJ account will remain as-is, and new entries (starting from this one) will be restricted to LJ users I've added as friends. For people who have an account on this website, permissions will get carried over, so if you can't see restricted posts on this website, you won't be able to see them on LJ either. If you are on my LJ friends list but don't have an account on this website, I arbitrarily put you in a group so you will be able to see some subset of my posts. In practice this matters much less now since I rarely ever post to the more restricted categories. Also, protect-o-vision won't work on LJ because the only way I could think of to implement it there was too complicated to bother with.
As usual, let me know if things don't work properly. Also, thanks to tridium, since my handling of comments on LJ posts was copied from him :)
[ 6 Comments... ]
|