Link for readers of RSS feed
Update: As pointed out by the comment below from the friendly FeedBurner staffer, the embedded youtube vide appears fine in the feedburner web rendering of my rss feed. If I view that post in Google Reader, however, the embedded youtube video doesn't appear. Strangely, I have seen other feeds in my Google Reader that successfully embed youtube videos.
I will have to investigate further.
Worst penalty ... ever
Well done to the Italians though. It looks like all their training paid off:
IE CSS - gah
I've played a bit with it, but I don't have time to drill all the way down to see if there is a way to work around this quirk.
So for now, sorry IE users. I hope it doesn't annoy you too much.
Oh, and here's a nickel - go buy yourself a real browser:
Adult supervision with Guy Kawasaki
The technical side of my brain has been getting a workout learning, and getting excited by, new languages and frameworks. Ruby on Rails. Smalltalk and Seaside.
Now Guy Kawasaki has whammo'd the business side of my brain with a presentation based on his book Art of the Start. You can watch a 39 minute Google video of the standup-ovation generating presentation at his blog blog.guykawasaki.com
I know I've been pumping you all out to watch and read lots of content lately, but this is great - and it's not technical at all!
Hear Guy talk about the kind of "adult supervision" that your business needs, and how to avoid the "bozo explosion".
Guy Kawasaki somehow dropped out of my RSS reader, so thanks to Lars for mentioning the video.
Memo to self : don't buy a Dell laptop
Simplicity is winning!
I remember when CORBA was just starting to get around and it seemed like the best thing since sliced bread. As with many things in life, time and experience teach us which things are important and which are distractions. Selecting the important concepts from CORBA and using them in a lighter framework feels like what I imagine wisdom feels like :)
Jifty the Jilted framework
I was reading about Jifty - an interesting new Perl based web framework. One author had this to say about the origins of Jifty:
Seaside is a somewhat heretical web framework. They generate their HTML. They don't embrace meaningful URLs. They use Smalltalk, of all things.
Of course, by making these crazy choices, they get insane amounts of power. When we were building Jifty, we stole liberally from everything that had good ideas. We dragged Rails down a dark alley and rifled through its pockets. We grabbed Catalyst's wallet.
But really, Seaside's killer features like Continuations and Halos...just stopped me in my tracks. Once we got them into our grubby little perlish hands, I realized: This is the way development is supposed to be.
Posts on other blogs confirm that I'm not the only impressed developer out there. I find it incredibly interesting though, since the approach is nearly identical to the one I took in the Optus internal framework I discussed a few entries ago. It's a real shame that I never spent the time to clean that up for public release since the employer had ok'd releasing it as open source in principle.
I love this quote from Alan Kay on the squeak web page:
"The real romance is out ahead and yet to come. The computer revolution hasn't started yet. Don't be misled by the enormous flow of money into bad defacto standards for unsophisticated buyers using poor adaptations of incomplete ideas."
- Alan Kay
Web development - an epiphany
OpenACS was the first serious toolkit that I learnt, and is still one of the most amazing in terms of ready to bolt together functionality, but it lacks in development language expressiveness and debugging ability, and it's certainly not DRY (Don't Repeat Yourself).
So a few years ago I co-developed an in-house telco business modelling & web developement framework at Optus in Perl which enabled great reuse and relatively clean OO implementation of web based processes with cutom objects. I've been subsequently told it is not dissimilar to WebObjects.
Since then I have been working more on backend code, but I've really been enjoying becomming comfortable with Ruby and Rails. It's nowhere near as feature full as OpenACS, and it's not as expressive as the in-house framework I co-developed, but the cleanness of it's design is truly refreshing. It really does get out of your way and provide you a well balanced canvass on which to paint your web2.0 masterpiece.
But now that's all out the window. I've just seen the Seaside (which I do love to be beside ;).
First of all I started playing with Smalltalk because I just felt like it was something I needed to learn. Much like when I switched to emacs, I figured that so many smart people couldn't be wrong. Not that I was convinced it would be better, but I knew that I was missing out on some good ideas by ignoring it totally.
So smalltalk. How can I summarise it for you. It has the object-ness of Ruby, the great named calling syntax of Objective-C, garbage collection and bytecode compilation like Perl or Java, and the grammar simplicity of Tcl. They're all my favourite languages, so of course it makes sense that I should love the one language that inspired them all.
Like Ruby gave birth to Rails, the simplicity and clarity of Smalltalk has inspired the most amazing web framework I have ever seen. Seaside. With it's object and method based pageflow, components and debugging assistance, Seaside is like the perfect logical extension of that OO Perl framework I co-wrote. And the implementation of transactional sequences is simply brilliant.
Am I too Utopian? I probably am - I havent written a line of Seaside code yet, so I don't know it's frustrations. I'm sure that it's near total reliance on CSS for layout will bite at some stage. I will definately start a project site based on Seaside (or possibly Pier - a framework superset of Seaside).
In the meantime, do yourself a favour and watch the 55 minute presentation on Seaside that Marcus Denker gave, titled:
Seriously, you will love it. Really.
And minutes later - despair
Nil all - Go Australia!
And if a computer programmer who's only competitive in sports like skiing and canoe polo (and motorsport in my dreams ;) has caught the fever, the average sports mad Aussie must have caught it hook line and sinker!!
Microsoft used to make real software
I also thought that it was interesting that Joel (an ex-microsofty) likened Steve Ballmer's leadership of Microsoft to John Sculley's famously bad leadership at Apple.
Now before you all die from a heart attack that I might have anything good to say about Microsoft, I can be often quoted as saying that one of the very few truly innovative products that Microsoft released was Excel (the focus of the story). It was the first ever GUI spreadsheet, released on the first mass market GUI computer (the Mac). No one else saw the power that a mouse driven UI would bring to the number crunching spreadsheet.
Very few companies make even one truly innovative move, so don't think I think that Microsoft is all bad. Just mostly ;)
I wonder what Bill is thinking now that he has announced he is winding down with Microsoft over the next two years. I wonder if he fears for the future of his company. He must know only too well what happened to Apple when Steve left (using the word "left" here in it's lesser known pro-active form ;)
notepad.exe considered harmful
This is totally incredible. I knew that Microsoft rarely practised defensive programming (I guess they're too busy being defensive in front of EU tribunals), but this is just so incredibly amusing!
Thanks to the tipoff from The Inquirer, here is the fun:
Under Windows (I used an up to date XP, may apply to other versions), open Notepad and create a one line document with the text "this app can break". It is presumably "specially crafted" to exploit a particular issue (apparently a weakness in some sort of encoding guessing algorithm). Eg:
Save the document and quit Notepad. Now open the document you saved by double-clicking it, and you will be rewarded with a message that possibly contains the secrets of an ancient Japanese martial art:
Just incredible. And there are nuclear warships powered by software from this vendor? I sure won't be following that ancient Japanese master who entrusted his secrets to Windows! I don't think this one can be stamped as this is by design ;)
Update: Before anyone says "but I bet they don't use notepad.exe on the battelships (heh - I bet they do), Aftermarket Pipes has found that the "limitation" is not in notepad.exe, but in a Microsoft Windows API call that is used to determine what encoding the file uses. It turns out that a lot of Unicode files don't start with the BOM (byte order mark) required by the Unicode standard. So you can do one of two things: encourage software developers to adhere to the standard and everyone wins except for a few (possibly vocal) firms that have a poorly designed piece of custom Windows software. Or MS can include a hack like this in their standard API and encourage most developers (including ones at MS it seems) to ignore the standard and create yet more backward compatibility issues for future MS developers to have to deal with (and then ship Vista even later).
Of course another option would be to have a filesystem and OS that (properly) supported metadata for each file. Unfortunately the only mainstream OS that did that well was classic MacOS. Current OSX "best" practise is to not use the resource fork.
Rails on Ruby on Java on AOLserver?
I got started with embedding the ruby interpreter in an aolserver module. It turned out to be quite easy, but the Ruby interpreter is not thread safe, so it's never going to work.
Think about it. JRuby maps Java method calls to Ruby calls and vice versa, nsjava maps all aolserver api calls to Java calls (native and tcl procs), and allows full introspection from Java. This should mean that with the thinnest of Java shims I can have fully threaded Ruby 1.8.2 hosted by AOLserver.
"You're all talk" I hear you say, "show us the money". Yeah, well it's ten o'clock at night and I have a cold, so it's going to have to wait my friends. If someone else feels like whipping up a configuration let me know!
PS: I know that there would be no point running all of the Rails framework, since AOLserver already has advanced "routing" functionality, but certainly all of the Active* classes would be great.
Excerpt of a mysql/php rant
What I think is more interesting though, is what he has to say about MySQL - the company as well as the product:
I learned databases on MySQL and used it for several years. Then I discovered PostgreSQL and realized that in fact, I'd learned nothing of databases. For years the MySQL developers were quite vocal that things like referential integrity, transactions, subselects, etc were little more than baggage that could be done better another way. They were after speed, pure and simple. Fair enough, in some respect, since the job MySQL was originally developed for didn't require any of those things. The problem is that a whole generation of database programmers believed them, despite the fact that their applications *did* require those things. Someone in authority told them they didn't and they bought it (and still buy it). Let me clue you in: you need these things or you need to let someone else handle your database work for you.
And that, I believe, is the biggest crime. MySQL has strengths and weaknesses. We all do! But the real crime is that MySQL AB and it's proponents try to cover up the weaknesses in MySQL by telling anyone who will listen that a quarter of a century of relational theory is irrelevant and that rdbms enforced data integrity is not needed. Because MySQL is such a popular poster child of the open source movement (although it's not "super open" ... see follow up post) that beginner (and not-so beginner) developers listen to them. They are using that position of respect to paper over the weakenesses in their product and harming the quality of a future generation of open source developers. Very similar things can be said about PHP although not nearly to the same extent.
Where the author says "(and still buy it)" he is referring to David Heinemeier Hansson of ruby on rails fame. ActiveRecord (the Object-RDBMS layer in rails) is most commonly used on MySQL and David is supposed to not care for referential integrity being implemented in the database. I have no idea if that is true being only barely on the edges of rails development. If it is true, then it's very sad that a programmer who so clearly "get's it" has succumbed to the MySQL cool-aid.
Diving in rails first
I've decided I want to get more into it now. The current trunk version of rails (or EdgeRails) is really very feature full. It's a lot different to when I started using it a year or so ago so skip edition one of the rails book and go buy the beta version of edition 2 (yes, even books come in beta now!).
As a public test bed I've started a new blog monorails. To find out more you'll have to head on over there!
Phantom phone ringing
What's interesting is that that hasn't happened to me. What *does* happen to me is phantom vibrating-ring. I couldn't count how many times in a week I think I can feel my phone is vibrating in my pocket but it's not. At first it freaked me out because I thought it was the radio bursts stimulating my nerves or muscles, but sometimes I find that my phone isn't even in that pocket. Wierd.
A phenomenon that I do think is to do with the radio emissions is predicting calls. I've been using a digital cellular phone every day since about 1995 and many times I have absent-mindedly picked my phone out of my pocket, looked at it, and a split second *after* looking at it, it begins to ring. I think I'm somehow attuned to the radio bursts that come in before the phone rings (you know the ones - you can sometimes hear them on your car radio or unsheilded pc speakers).
Does anyone else experience this?
I didn't want to go prising it apart without instructions since it's under warranty (and cost me a bomb by the time I had it shipped to Australia), so I emailed their tech support for advice. Here is the amazingly helpful email I recieved the following day:
Hello, Can you please provide the serial number on the back of the keyboard? You can try removing the individual keycap (tip: use two paper clips- bend them in the shape of a hook or "J" and pull the keycap straight up) and spray compressed air inside the keyswitch to remove any possible dirt/debris. If the problem continues, it is likely that the individual keyswitch is damaged and may require a repair. Rather than shipping the keyboard to us, there are two options: 1). I can send you a replacement LEFT Keywell (the entire left side "qwert", etc.). Once you have the new keywell you can take apart the keyboard (Phillips screwdriver), remove the old keywell and insert the new. Step-by-step instructions included. Because you're in Australia, we will need to split the shipping cost. 2). I can send you a couple replacement Key Switches and you can replace the individual "t" key switch. I ONLY recommend this if you're experienced with a soldering iron. This option will not require any shipping charge. Regards, ... Kinesis Corporation Technical SupportSo far so good after I blasted the keyswitch with a can of compressed air. But if the keyswitch is faulty I am totally blown away by a company that is willing to trust it's customers. This guy doesn't know that I have a soldering station and used to build discrete circuits for fun - I could be all thumbs with a soldering iron that I use for joining plumbing pipes which would cause him more support heartache. Even given the possibility for more work for Kinesis, they are willing to be flexible to save their overseas customer some money.
Now that's good customer relations :)
The new Tram Town?
So why not Sydney? Press articles about trams in Sydney have been escalating recently - the latest in today's SMH: Forget the tunnel - all hail the tram.
One issue the article brings up is that of the steep grades found in Sydney - a problem Melbourne just doesn't have. The other problem, that of quarantining streets (or even just right hand turns) is, to me, an opportunity. Imagine a Sydney criss-crossed with pedestrian malls with trams running down them. Do we really need cars and trucks driving through the center of Sydney? The cross city tunnel (like it or loathe it) removes much of the necessity for the through-city traffic.
Maybe it's because I grew up in Melbourne, but bring on the tram I say! Subsidise the cross-city tunnell toll, block off major inner city streets to regular traffic (and busses) and flood the city with trams. We may as well get rid of that stupid monorail while we're at it (yes, even great Sydney once stooped to the monorailsales pitch!).
Peking to Paris
In 1907, French newspaper Le Matin challenged drivers to prove that the era of the automobile had arrived by entering into a race from Peking to Paris. Remember this was in 1907. You can read more about the original in the Wikipedia article Peking to Paris.
It would have been a great time to be alive! I mean, in today's era, who would take the role of the Italian Prince who, being 14 days ahead of the rest of the racers, detoured 1,500 km to St Petersburg to attend a ball (and therefore dance with chicks) and still finished the race first!
The Future of Theoretical Computer Science
I'm not going to bore you all with the nine (9) pages of notes that I took, but he had a lot of incredibly interesting things to say.
His basic premise was that there is a fundamental revolution going on in the world of information, driven largely by advances in computer systems, and that those who recognise the changes early will benefit. But what do you do if you recognise the changes - how do you adapt (and therefore what should Universities be teaching their students in order to prepare them for the changes that will come).
He briefly discussed the problems that computer science has been dealing with for the past 30 years : programming languages, compilers, OSs, network protocols, algorithms, etc.
And also what he thinks will categorise the next 30 years : large network structures, large data sets, huge dimensional data sets, etc.; and then how to search and access these data sets.
Hopcroft then discussed how we need new theories to deal with these large, noisy, highly dimensional data sets with extreme outlying values.
He spoke briefly about the expressive way that a search engine of the future would need to operate, eg. Instead of searching for graph theory, we want to enter a query like construct an annotated bibliography on graph theory.
To collapse a few points that he made, he talked about both dimension reduction and dimension enlargement. In the context of searching, dimension enlargement could mean analysing your previous queries in order to qualify future queries. He gave an example of searching for shingles which for him would mean the new scientific theory, not roofing material (or worse!).
In the case of huge dimensions, that is an issue because we are now talking about data sets with billions of nodes and tens of thousands of dimensions - current (1950s) graph theory just doesn't work in that space. Instead we need techniques like spectral analysis, dimension reduction and collaborative analysis.
Then there is the issues surrounding human task augmentation - if we are going to deal with even the search results from such huge datasets, we are going to need intelligent methods to cluster documents such as by content (where we can use a simple vector summary of the document word count) or by genre (where we can't). Other solutions to this general problem include collaborative filtering eg. what Amazon use in order to detect changes in buying habits.
Phew! And Hopcroft discussed all these issues with examples, mathematical equations, etc. So, the computer science theories of the next 30 years need to be extended to cover the next 30 years.
In response to an audience question, he did concede that few people actually directly use many of the theories that they learn in University, but a theme throughout his lecture was that of adjusting our intuition. For instance, our intuition is naturally tuned to 2 and 3 dimensional problems - the next generation of computer scientists (and us, if we want to keep up) need to be able to intuitively see problems and solutions in massive dimensions and other non-intuitive spaces (although he doesn't believe that quantum computing will happen in his lifetime).
I might try and post some of his equations and examples later, but then again I may not be bothered!
Blog Categoriessoftware (41)
..heads up 'tunes (5)
..black and white (6)
..A day in Sydney (18)
..The Daily Shoot (6)
Book Review (2)