In object-oriented languages there’s a nifty feature called code inheritance. People tend to think that this is a really cool ™ thing, since it allows you to quickly slab some new features onto a class whenever the need arises. In fact, there still seems to be a lot of folks who think that the whole point of object-orientation is to subclass a lot.
I’ve previously worked with Microsoft MFC, which was designed that way (but remember, that was back 1992) – as was the class hierarchy that makes your Unreal Tournament tick. I’ve seen object hierarchies spreading over 15 levels, and more.
The only problem with code written that way is that it sucks. A lot.
I just went over to GitHub to comment on a ticket. I wanted to put an URL in the comment. No problem, usually all those comment boxes have a help function nearby, that explains you how the markup works.
GitHub has a link next to the comment box that says “Parsed with GitHub Flavored Markdown“. When you click it, you end up on a page that tells you how their flavour is different from the standard one and then…
While I don’t usually bother too much with television, I’ve used an open source software called “TV Browser” for a while. It’s a nice little piece of software, giving you a electronic program guide right on your desktop.
This week, we were checking out the Italian TV (which can be quite odd, but that’s another story). The point is that the TV Browser doesn’t contain any Italian channels. To my astonishment I also discovered that, by design, the software doesn’t support importing the quite common XMLTV format.
The reason (according to the developers) is that some of the “grabber” scripts included in XMLTV may not be legal to use in some jurisdictions. Thus the origin of some xmltv data files might be questionable. Thus the TV Browser people don’t provide any generic support for the XMLTV data format. Because, possibly, maybe, could it be used by some people to view “illegal” data.
It pisses me off to no end, and not only for selfish reasons.
It drives me crazy: Lot’s of those projects, especially in the Rails world think it’s a cool thing to have a “project” homepage that consists of a blog garnished with some video podcasts. But while this may look flashy, it’s not an excuse for a complete absence of structure and documentation.
I have to admit that what put me over the top today was the ruby-debug “home page”. It’s really a great tool that I use daily, but each time I visit this page I’m on the edge.
First thing, it’s a blog. I hate it. A blog is for news, but when I go to this page I want documentation. Yes, there is this little tutorial. If it’s not accidentally linked from a post on the front page I have to dig through all the “ruby-debug” posts to find it. At least it explains all the commands in the debugger, but it doesn’t go into the API to call the debugger from your code.
In the end, what would be so hard to put your documentation on a static page page that is linked from the front page? And maybe – behold – even add a link to the rdoc documentation that you can automatically generate from you code?
The software that I’m currently developing will use OpenId to provide a single login for multiple sites. If you haven’t heard of this yet, OpenId is the newest, coolest (at least in the eyes of the “Web 2.0″ crowd…) thing for “single-sign-on”. Meaning that you only have to remember one password for all your web sites.
The whole thing works like this: You go to a page where you log in. You provide your OpenId url (which is the same as your user name) You are sent to your OpenId provider. You log in to your OpenId provider. You go back to the original website, and now you’re logged in. The idea is that you only have to log in one time to get access to all your web services.
It got a bit of a hype now, since some of the big players announced “support” for it.
So I checked out this toy, and I found that there are already a lot of providers, and a lot of libraries to add support to your own web application. You can also have a plugin for WordPress, Trac, you name it…
So I got an OpenId account, installed a plugin on my blog And disabled it again.