Below you will find pages that utilize the taxonomy term “Rants”
The Business of Standards
Recently I’ve been getting spam from the “standards organisation” OASIS inviting a company that I don’t work for1{#footlink1:1327526703777.footnote} to join a new standards initiative. There’s no pretense that I’m being invited because of my clearly superior knowledge of the area involved, merely that the company could get great advertising exposure by participating – including being listed on a press release! Naturally we’d need to become OASIS members and pay the appropriate fee, and to be in the press release you’d have to be at minimum a “sponsor level member”.
Don’t Blame The User, Blame The Editor
I swear, some days you just want to reach into the screen and strangle the blogger on the other end. Jeff Atwood complains that his users commonly fail to read all the helpful hints on how to use their overly complicated, what you see isn’t what you get editor on Stack Overflow:
The ask question page is already dangerously close to cluttered with helpful tips, but apparently these helpful buttons, links, and text are all but invisible to a large segment of the user population. Sure, you could argue that Super User tends to attract less sophisticated users, but I see the exact same problem with programmers on Stack Overflow. As new users, a significant percentage of them can’t figure out how to format code, even though there’s not only a toolbar button that does it for you, but help text on the right explicitly describing how to do it manually. (Just indent 4 spaces. Spoiler alert!) So essentially, users don’t find the editor intuitive and the solution they’ve gone with up until now is to add more and more help text to try and teach the user how to use the unintuitive editor. It’s not working. The obvious solution is to escalate the arms race:
Google Really Gets Enterprise Software
I really don’t understand why companies don’t think Google has made their apps enterprise ready. I’ve been playing with the premium version of Google Apps the last few days and it shows all the important characteristics of enterprise software:
Innocent Looking Settings That Break Everything
Google has this in spades. My favorite is the fact that if you happen to disable a service such as e-mail, all the settings continue to apply, but disappear from the admin dashboard. The net result for me was that all the Google Apps suddenly failed to send any e-mail (but e-mail from every other source worked perfectly).
Stupidity
I think this photo more than any other symbolizes stupidity. It was taken quickly on a first generation iPhone so if you can’t see clearly what’s wrong, it’s a photo of our new screw driver set. The packaging includes a clear plastic overlay which, you guessed it, is screwed down.
That would be just normal stupidity except for the fact that the package is advertised as a DIY getting started pack, containing the essentials to get you started. Except of course, now you need the DIY getting started pack, opener pack. It’s beginning to sound like an enterprise software sale…
PHP Libraries Hate Ram
I’ve come to the conclusion that PHP libraries are simply designed to eat up RAM and do their very best to never spit it back out. There seems to be an assumption that everything will be done in RAM and then at the last possible moment dump everything out to the browser.
Sadly, this doesn’t work if what you’re building in RAM happens to be a zip file containing a whole heap of images. There are a few zip libraries around for PHP but none of them can directly stream the created zip file back out to the browser. Most of them create the entire zip file in RAM and then tell you to just ‘echo zip->file();’ which is just plain crazy. Others can “stream” but only to disk where they have random access.
Migrate Feedburner to Google Without Adding Ads
A while back a migrated my personal FeedBurner account over to using a Google account as a test run before migrating the Ephox feeds. Unfortunately, I then forgot about it and in the mean time Google added a self-serve migration tool that now requires you to set up an Adsense account to migrate to.
They have huge reams of documentation talking about how much better the monitization of your feed will be now that it’s with Google and they even suggest a few times that it’s possible to migrate to Google without adding advertising into your feed. Sadly, I’ve been unable to find a document that describes how to migrate feeds and make sure that ads don’t get inserted.
Clients Decide Worth, Not You
As part of a very good series on sustainable software, Gianugo Rabellino writes:
The market couldn’t care less about your developers’ kids in need of new sneakers or your VC craving about his next Lambo: the argument that someone has to pay for software development is one of the biggest straw man of Open Source – the market pays for value, and if you build very little, guess what, you won’t get more than peanuts. This isn’t just limited to Open Source software or even software in general. Far too often people make the mistake of thinking that company expenses justify the price of goods and it’s simply not the case. Value to the consumer decides what something is worth and if that happens to be below the cost of manufacture that’s the company’s problem, not the consumer’s. If that means the company stops making the product, consumer’s won’t care because they’ve already decided to go without.
The Problem With NewsGator Syncing
I love the fact that I can read my feeds in NetNewsWire and on my iPhone seamlessly, but there’s one really annoying aspect that’s almost driving me to turn off syncing for a large number of feeds: NewsGator is days or weeks out of date for many feeds.
When syncing is enabled in NetNewsWire it no longer downloads feeds directly, but instead gets them from NewsGator which is how all the syncing magic works. This leads to much faster sync times but also means that you can’t actually refresh your feeds to find what’s new. All the refresh button does now is check NewsGator and there’s no way to check directly with the site itself.
Is It Me Or Is Google Less Useful?
Going through the process of setting up a new apartment in the UK, I’ve found myself Googling a whole bunch of things that normally I wouldn’t need to. For instance, where can I find a desk and chair to set up a home office? Back in Australia I know of a bunch of different stores that would have that kind of thing so I wouldn’t bother searching for it. Here though, I wind up searching for “home office furniture” and get a whole bunch of online only retailers of widely varying reliability. Even if they’re all completely legit – why doesn’t something like IKEA turn up when that’s what all the locals recommended (somewhat grudgingly admittedly)?
Missing The Point
The realization that there is valuable information in users attention data is a wonderful thing – it leads to so many really useful features like Amazon’s recommendation system. I’ve seen a lot of really good uses of this kind of data where systems use fuzzy logic to improve a users experience or make recommendations of things they’d like. It appears that Microsoft has noticed this trend as well, but somehow I think they missed the point:
Auto Update And Privacy
Here’s a really simple golden rule for anyone thinking of adding auto update to their products – never ever include any user identifiable information_._ There’s simply no reason you need to know who is checking for updates, you only need to know what version they have. Given the infrastructure of the internet you will wind up getting their IP address, your policy should be that these aren’t stored.
It comes as no surprise to me that the WordPress mob broke this rule with their new auto update – they always seemed shifty to me. Tell me why exactly you need the URL of the blog to determine if a new version is available? Exactly what use to you is blog.ephox.intra going to be? Oh well, I’m already removing all the pointless blog entries they spam the dashboard with and those weird technorati partner parameters so I guess I’ll be asking for updates from wordpress.com or something too….
Bloggers And Pictures
Apparently someone told bloggers that adding pictures to your posts helps make things easier to read. Unfortunately, what they forgot to mention is that the pictures should actually be part of the message or at least tangentially related. Take for instance this post by Joel Spolsky about UI design and alarm clocks. Scattered through the article are pictures of random buildings, including for some unknown reason one with a sign reading “Cemetery for Soldiers’ Dogs”. Wouldn’t pictures of alarm clocks make more sense? What about a frustrated old woman? A sleep deprived man? All these things would actually relate to the content and perhaps enhance the message the post is trying to make. Buildings however only distract from the actual message – particularly quizzical things like a cemetery for soldiers’ dogs.
Struts2 Documentation
Where is it? Clearly I’m missing something here. There’s a wiki with some good getting started overview stuff and some other chicken scratching but I’m yet to find an actual reference telling me what’s actually allowed in struts.xml. Shouldn’t that be pointed to in a big neon sign? The struts.xml page on the wiki isn’t exactly comprehensive and while the DTD is listed on the examples page it’s not exactly commented..
Oh and did I mention that wiki’s are a horrible way to write documentation?
Improving The Applet Startup Experience
We’ve been looking at ways to improve the experience for end users when applets first start up. It’s unfortunate that the worst experience with applets is always the first one since that’s when the JVM has to start up and the applet has to download. Once all that happens subsequent usage of applets tends to be lightning fast – particularly with the latest JVMs.
Sadly, that awful Java coffee cup graphic just doesn’t make users happy while they wait for the applet to download. Equally sadly, there’s no good option to get rid of it. You can specify an image of your own to load, but then it replaces the progress bar and it can’t be dynamically resized to fit the applet. Heck you can’t even center it. Worse yet, by the time the graphic downloads and displays the applet is just about ready so the user winds up seeing an empty box for a while then a brief flash of the image and then the applet’s ready.
If It’s Not Documented, It’s Not Done
I was quite interested in a few of the new features listed for WordPress 2.1, since they look like they could be quite useful to build into the plugin I have to use EditLive! as the editor for posts. In particular
- Image and thumbnail API allows for richer media plugins
sounds very interesting, since I’ve not gotten around to doing anything much with images and EditLive! has a lot of support for media that is currently going to waste. Sadly, browsing through the WordPress documentation lists nothing about how to actually go about using these wonderful new APIs. In fact, it doesn’t mention them at all – it seems the documentation is still for the 2.0 release.
Return Of The Atom 1.0 Feed
Stupid wordpress still not supporting Atom 1.0. Stupid upgrade that overwrote my changes to make it support Atom 1.0. Yay for the cool plugin that will avoid this problem in the future. Also yay for the fact that it works out of the box with PHP 4 instead of using PHP 5 only functions for the date. Here’s hoping it gets the time zones correct.
Yahoo Lists Are Painful
Whoever thought that supporting free mailing lists by putting ads in each email was ever going to be a good idea? My spam filter consistently picks up emails from Yahoo lists as spam and because the ads keep changing it never seems to learn that their not.
It probably doesn’t help that Yahoo also includes a screenful of mailing list information at the end of each and every single post to the list.
Another Thing To Dislike About Obnoxious Referrer Links
I complained before about Obnoxious Referrer Links and now Andy has stumbled across problems they cause in the real world.
It turns out that having a meme tracker for the feeds you subscribe to can produce some interesting results. The big issue is that some feeds either rewrite URLs to include a redirect through their server, or strip all HTML and just give you a snippet of the article. This makes it basically impossible to determine if two items link to the same article.
I Thought Rails Was Meant To Be Productive…
Why is it that a hugely database dependent framework, that’s meant to be extremely quick to get up and running with is so infuriating when it comes to get it actually talking to the database? I know cross-language interfaces are always difficult, particularly when you try to make them work cross platform but if I can get Java, PHP and perl all talking to MySQL easily, why does it have to be so damn hard for ruby?
Obnoxious Referrer Links
There seems to be a trend these days that whenever you link to some external site, you do so via a redirect script on your own site so that you can track who’s following the link and steal some google-juice in case anyone happens to blog about something you pointed them to. I’m not quite sure why, but I just find this obnoxious – maybe it’s because I’ve been frustrated a couple of times when the referrer script was down, thus breaking the link – even though the actual site was up. Maybe it’s because I resent the couple of extra seconds it takes to follow the link due to having to make two separate HTTP requests. Either way, is it really gaining you anything to put your users through this?
Why Are People So Bad At Applying For Jobs?
We’re looking for some new hires and I just can’t believe how many people don’t know how to write even a half decent job application. How difficult is it to realize that you have to:
- Include a cover letter.
- Customize the cover letter so it is specific to the job you're applying for.
- Explain how you meet some of the key requirements in your cover letter and
- Customize your resume at least a little to highlight the most relevant things for the job you're applying to.
Applying to a million different jobs with a crappy application is far less likely to get you a job than applying to two or three with a really good application. Take the time to get it right and you’ll find a job so much quicker and easier.
How To Pick Someone Who Doesn’t Know XML
Here’s a tip for you, anytime you hear someone say, “The XML specs aren’t really that complicated”, you know they haven’t tried to work with XML in any detail. For a start, as soon as you start using the term “specs” instead of “spec”, you’ve got something that’s going to difficult to piece together. When you get to the vast number of specs involved when working with XML, you’ve got a weeks reading just to get through them all.
My Complaint About Apple
Following a Jobs keynote there’s always a ton of complaining about Apple, along with a lot of lusting over the new goodies. For my part my complaint with Apple is one that has been growing since the release of OS X – I’m sick and tired of Apple trying to make me buy stuff through them.
In fact, this started with the introduction of QuickTime Pro and the nagging to upgrade. In OS X we started seeing the addition of things like Buy Printer Supplies (which I’m sure used to be in Print Center but isn’t anymore – score 1 Apple), requesting a .Mac subscription during initial configuration, print photo books from iPhoto and since the advent of the music store, a ton of different links to it scattered through iTunes.
Jacob Nielson Rapidly Losing Credibility
There was a time when the word of Jacob Nielson was undoubtable right and everyone must bow down before it. Fortunately it appears that time is well and truly over. His latest article on blog usability completely misses the point of blogs, the target audience of most blogs and often passes a simple reality check.
- No Author Biographies
- Let’s face it, no one really cares about you. Unless your an A or B list blogger the vast majority of your traffic comes from search engines. Most of the time your readers are just looking for the solution to their problem. They don’t need to know whether or not your reliable or intelligent, they just check to see if your proposed solution works.
- No Author Photo
-
You’re a geek – no one wants to see your photo. Also, see item 1.
-
Crikey! Scoble’s Almost Right!
Robert Scoble takes James Robertson to task for criticizing OPML in response to Scoble’s feature request. Mostly I agree with Scoble, when a user asks for a feature you shouldn’t give them a rant about why the specific technology they’re talking about is crap, you should give them your considered, professional opinion and recommendation. Hopefully that means identifying their problems and providing a solution but it might mean just telling them that their proposed solution won’t work and you don’t have an alternative.
I Hate Bookstores
I’ve really come to hate bookstores. I don’t want to buy books online because I like to peruse them a little before I fork out a hundred bucks to make sure it’s really want I want. The back cover blurb is only accurate on the good books so you’ve got no idea whether you should trust it or not. When I walk into a brick and mortar book store though they never have what I want. I was in Borders this afternoon and their computer section seems to have dramatically shrunk and now has “feature shelves” where instead of being full of books they feature just two books on the shelf, most likely to cover up the fact that they don’t have enough stock to actually fill the shelves.
Why Microsoft Gets A Hard Time
Brian McCallister gives a brief synopsis of Microsoft’s 2005 financial statement. I think it pretty clearly shows why people dislike Microsoft:
Regarding Windows sales and profits:
Well, we see a pretty nice top line revenue of $12.2 billion. The fun part of that is that the operating income (profit before taxes and interest) is a tidy $9.4 billion. It is awfully nice to pull a 77% operating margin (profit before taxes, hereafter referred to as “profit”). Regarding Office sales and profits:
Hint To Advocates
Scoble pointed to a random blog posting of someone saying they prefer Windows over Mac OS as he’s paid to do. Usually I skip them but for some reason I read this one. It really struck me as odd that in a post that’s meant to be pro-Windows, it’s really more about how to get by with Windows:
There are a few things to remember about windows. Turn on automatic updates and put everything on a broadband connection behind a router. They can be picked up for about $40 bucks. Don’t install every crappy shareware program or file sharing software that comes along .
Merkey vs Everyone
Dori Smith brought the case of Merkey vs Everyone to my attention and for some reason, despite the fact that I have 4 days worth of reading to catch up on I thought I’d read it. I don’t see this as a case that should be dismissed entirely without thought as Dori’s quotes from the complaint would make out. Certainly there’s a lot of rhetoric that should just be dismissed and the complaint is biased in favor of Merkey (isn’t a complaint supposed to be?) but it does point out quite accurately that there is a very distasteful undercurrent within open source communities that does cause harm to people and should be actively discouraged. Often we’re too caught up in the belief that every forum must allow anyone to say anything they want and don’t focus on building positive communities, encouraging professional behavior and generally behaving like adults.
This Is Why I Hate Marketing
Hey I stopped short of saying this is why I hate marketers…
How many more Microsoft sites will open without RSS? Sigh.
Sigh, Microsoft opens another cool but lame site. Cool cause it’s for digital photographers. Lame cause it doesn’t have an RSS feed. After Gnomedex these kinds of lame sites will look even lamer! When will Microsoft’s marketing departments get the memo? EVERY site MUST have RSS from now on. Got it? No? Pay attention to Dean Hachamovitch’s keynote at Gnomedex, OK? He runs the IE team.
Idiot Drivers
Yesterday morning as I arrived at work about 6:30am, a taxi was dropping off an elderly gentleman and parked halfway across our driveway in the process. This is not particularly uncommon for idiot drivers to park across our driveway being that we’re next door to a couple of ATMs that people like to “just quickly run to”. As such, I shook my head, squeezed past and went into work.
About an hour later the secretary from the lawyers upstairs comes into our office and asks if we could assist an elderly gentleman up to their office since he’s apparently early for his 8:30am dentist appointment (the dentist is also upstairs). This is the same guy who was being dropped off at 6:30am and has now been out in the cold for an hour wondering how he was going to manage to get up the stairs and into the building.
Scoble Proves My Point
Not so long ago, I said that people tend to use Windows because of Microsoft’s monopoly more than because they actually like Microsoft. Apparently, when Scoble asks them why they run Windows, these are the common responses:
Have you ever gone up to people and asked them why? I have. And the reasons people give are quite varied. Yes, “my boss gave me this” +is+ a common answer, but it’s only one I hear maybe one out of four times.
Coolaid for Table 3!
Scoble just doesn’t get it sometimes. Here’s a tip – there’s a difference between using Windows and liking Windows. Most people hate computers in general – they don’t like Microsoft, they don’t give two hoots about Apple (though they love iPods). Most people these days are forced to use computers. Most people aren’t qualified to evaluate which computing platform is better for them and can’t be bothered learning how to do so (when was the last time you met an average Joe who could accurately identify even a couple of key differences between OS’s).
Low Ceilings Are Evil
Particularly when the ceiling drops from being about 20ft high to about 6ft high. Even worse if it happens to be in a narrow passageway… in the dark… and the ceiling is painted black. It would probably have still been okay except that I’m about 6'4″.
Theatre’s are dangerous places I tell you. Particularly when the stage manager thinks that the dark, narrow passageway with the dangerous roof (and the power switch for the sound system at the end of it) is the ideal place to stuff all the props. I now have a rather large lump on my head.
Security Companies Are Getting Ridiculous
There used to be a time when if a security advisory came out you should pay attention and take immediate action – it seems more and more these days most security advisories should be ignored because it’s just some brain-dead, wanna-be security company desperate for attention. The most recent example of this is the so called “infection” is this piece of trash from Vital Security.
People, when a security dialog comes up with 3 exclamation marks you probably shouldn’t say yes. I mean seriously, if you’re stupid enough to run untrusted code with full permissions, I just have to link to a .exe to own your machine. Users should be allowed to use their computers, they just have to be taught not to trust unknown sources of software and not say yes to random dialogs that popup. This is not a technological issue, it’s a problem of education. Previously you used to have to teach people not to delete the Windows or System Folder because if they did the computer wouldn’t boot. Now you have to teach them to not trust things by default.
PHP Is Evil
Okay maybe not evil, just braindead in this particular area but I’ve got a theme going this afternoon.
If you have multiple form elements with the same name in a HTML form, PHP discards all but the last of them unless the element’s names end with []. How’s idea was that? Didn’t anyone consider the fact that you might not have control over the form element’s names? Or that dealing with form elements with special characters in their names might just be difficult (the PHP manual has a number of useful tips on how to handle it).
IIS Is Evil
Here’s a tip, if you configure IIS to use a custom 404 error page (or any type of error I imagine) and use the “URL” type, IIS will return 200 OK by default instead of the appropriate error code. This breaks things in very unexpected and often difficult to track down ways.
You can work around it by making sure that the URL you use for the error page is a script of some kind that sets the return code to the appropriate error code again. The default however should really have been to preserve the error code. Sigh. Using “File” or “Default” for the error page works correctly.
When The Going Gets Tough The Press Get All Whiney
Robert Scoble points to an open letter from Jason McCabe Calacanis to Steve Jobs about Apple suing Think Secret. It comes across to me as the epitome of childishness. The key to it all comes down to this point:
If you want to sue someone sue your employees who send us the leaks, or your partners who tip us off. They are the ones who sign agreements with you not to talk—not us!
Anti-Anti-Anti-Smokers
(I’m upping the anti)
The next person that whinges about restriction of smoking to private homes will receive a free gift. Yes ladies and gentlemen I shall stand next to them, and share with them the gaseous byproduct of my digestive process. It�s my RIGHT isn�t it? Isn�t it? — David Jericho No it is not. Quite the opposite in fact. As part of your right to life, you have the responsibility to not interfere with the right to life of others. Since smoking reduces the expected life span of the people around you via passive smoking, you are interfering with their right to l’#8217;m sure you could also word that around having the right to not have people reduce your health’#8217;m not sure how to word it clearly and the right to life is a far better established right. As for the threat to share the “gaseous byproduct of my digestive process”, were it enacted, I would be forced to remove the fire hazard with extreme prejudice (and the closest bucket of water). UPDATE: er, clea’#8217;m an idio’#8217;m agree with David entirely. I guess I got confused with the anti-antiness of it all.
I’m NOT Part Of The Opensource Community
I’ve had it. I officially declare that I am not part of the open source community. I am in no way associated with it at all. I may just happen to use open source projects, I may just happen to contribute stuff back from time to time and I may even have an apache.org email address but please don’t associate me with the open source community. So to Marc Fleury, Michael Tiemann and Jonathan Schwartz you can have open source – I don’t want it anymore. However I would still be proud to be considered part of the Apache Community (even though they just happen to create open source software) and probably a bunch of other organizations that just happen to create open source software that I’m yet to get involved with – I just don’t want to be associated with the pathetic one-up-manship and ego trips that has come to dominate the “open source community”. I don’t just mean from corporate blogs either (though that’s what set this rant off), there’s far too much emphasis on who’s better or who’s “more” open source or whether or not things are “open source enough” rather than concentrating on building a strong community which is directed towards a specific goal (which may just happen to involve creating open source software). The need to focus on community applies to pretty much anything where people have to work together, proprietary software teams need to work well together as a community of developers just as much as open source developers (having someone walk away from a project generally hurts a lot more in the commercial world). Oh and don’t even get me started on these people who try to insist that open source software isn’t the opposite of commercial software – the intent of the author is clear, get over it. If you want to be picky, Jonathan Schwartz is right on one thing – open source is not the opposite of proprietary. Just because you have the code doesn’t make it any less proprietary – it just makes it easier to develop interoperability solutions. Oh and for the record – yes this is just an incoherent rant that is most likely contradictory and only partially thought through. Heaven forbid it might also contain a misplaced apostrophe…
Wanted: 1 Family
That’s right, I need an instant family – give me the wife and 3 kids special thanks. Why you ask? I’m sick of paying crap loads of taxes so that the government can provide handouts to families. Having a baby? Here have $3000 as well. That’s in addition to the tax cuts. And the extra medicare cover. Now you might argue that families are an expensive proposition and battling families need all the help they can get. I’d agree. However, I’d disagree that the really rich families need a helping hand too – but they get one all the same. Besides, whatever happened to living within your means? I’m all for helping people who wind up in hard times because of things they couldn’t control or at least couldn’t be reasonably expected to control. I really hate being expected to feel sorry for the teenage Mum with a kid and how tough her life is trying to bring up the child alone. Yes it’s tough, yes I know a lot of single teenage mothers, yes they deserve a lot of respect and admiration and yes they deserve and get my help where I can. Yes it is also their fault that they’re in that situation. Unbelievably thousands of men and women, young and old manage to avoid starting a family before they can afford it – why should they be forced to support those people who failed to consider the implications of their actions? For all those people out there who have wound up in a tough situation because the plans you’d made didn’t work out or for those who are in a tough situation and aren’t winging for a government handout or are working to get out of the tough situation themselves: my hats off to you. I have a great deal of respect for that and wish you the best of luck in the future.
Just What Iraq Needs
With all the crisis and the shooting and the killing in Iraq, it’s good to see that the American military has found a solution: an upgrade to Active Directory. I mean, once the Iraqis see how much better their life is with Active Directory instead of Windows NT 4 based networking, they won’t care if their home has been blown to smithereens, if their children have been shot and if they’re starving to death. Cue music What the world, needs now. Is Active Directory. It’s the only thing, That there’s just, Too little of….
Going Too Far
Okay, Microsoft have officially gone too far now. That’s my C drive, it’s where I put my stuff. It’s mine. It is not, has never been and should never be a Windows system folder. Not to mention the fact that hiding files like this does not make the interface easier to use, it just introduces another mode that confuses users and makes users panic because they’re in some cryptic part of the OS that they shouldn’t be in. Fix the damn OS so it’s not so easy to inadvertantly break – don’t just hide the entire hard drive from the user.
Number portability fees
I received my final bill from Optus the other day and in amongst all the crap they send is a notice that from the 15th April 2004 an $8 fee will apply “to any customer who switches their mobile phone number from Optus to another carrier or service provider”. That’s pretty low. The number portability legislation came in to encourage competition between mobile phone providers – effectively breaking down some of the barriers to switching. Now admittedly an $8 fee probably isn’t going to stop someone from switching but it’s still pretty low I think. Fortunately, I changed providers before that fee came in.
GPL vs The World
With the recent debacle over whether or not the ASF license is compatible with the GPL license, Leo Simmons discusses the arrogance of the FSF and concludes with: So I might as well stick to the MIT license. But the arrogance of the FSF makes me feel very much like giving them the finger and just going with the ASL. Personally I agree. I’ve never liked the GPL as a license, it’s just way too restrictive to be considered “free software”. It’s open software, but not truly free. The Free Software Foundation has redefined the term “free” to suit their purposes, but it’s hard to argue that truly free software is in the public domain. You can literally do anything you want with it without every having to worry about copyright law. The GPL however, uses copyright law specifically to restrict what you can do with the software. Yes, it’s less restrictive the what copyright law allows by default, but that doesn’t mean it’s not restrictive. It particularly annoys me that the FSF feel the need to try and force everyone to use the GPL instead of picking the license that provides the terms they provide. Many people may want to see commercial software using their code – it helps to spread good ideas and opens up job opportunities for them. Personally I think it’s great when companies use code I’ve released, it’s not like I had plans to use the code to make a profit or I wouldn’t have open sourced it in the first place. The other thing that gets me (as Leo pointed out) is that the GPL isn’t compatible with anything yet the FSF expects every other license to be compatible with it. The day I can use GPL code in my ASL licensed projects is the day I give a damn whether or not people can use my ASL code in GPL projects. In the mean time, everyone except those silly enough to use the GPL can quite happily use my code – in open source or commercial work.
Static Imports are Evil
Michael Santos explores a few features of Java 1.5. As part of it he uses the new static import feature and asks what people think of it. I think it’s the most evil invention in coding I’ve seen since while (++i < 5) type statements. If you saw the line of code: long time = nanoTime();
where is the nanoTime() function? In 1.4 and below it is obviously in the current class – in 1.5 it could be anywhere and the only way to find out is to scroll all the way back up to the top of the file and read through every import statement. Then consider something like: err.println("Hello world.");
Where’s the print statement? Everyone knows about System.err.println so that must be it, unless err was a debug statement declared at the top of the file… Is it really that difficult to type System.nanoTime() instead of just nanoTime()? Programmers seriously need to learn some more discipline instead of always taking the easy way out and forgetting about the guy who has to read the code after them. In about 3 years time when I actually get to use Java 1.5’s features (backwards compatibility being as important as it is), the first thing that will be added to my coding guidelines will be no static imports – right next to no ++i or i++ embedded in other statements.
Examples
Well I’ve got latex installed – not at all easily I might add, but it’s up and running now. So I learn a tiny bit about the basics of Latex and start trying to focus my learning on the area I’m most interested in – writing play scripts. So I head off to CTAN (thanks to David Starkoff for pointing that one out) and find the “dramatist” package which appears to do everything I want. Download, install and everything looks good. Then I try to read the documentation…. Sigh. Apart from the use of narrative style which just makes everything exceptionally wordy, it doesn’t include a single example. No, here’s a pathetically simple script just so you can get your head around how to use this package, not even a ridiculously complex script to show off what the package can really do. Nothing, nada, zip. So now I have to learn the intricate details of Latex before I can do anything at all useful instead of just learning as I go along. So if anyone happens to have an example of a play script in latex (using any package) I’d love to get my hands on it…
Optimizing Java Code
Rick Jelliffe proffers his advice on how to write fast Java desktop applications. It’s poor advice. He calls his approach “defensive programming”, though I really don’t see much that’s defensive about it. Defensive programming is about adding in code to handle unexpected cases and recover from errors. Rick’s advice is an attempt at optimizing code before you’ve even written it and determined that it’s not fast enough. It’s worth noting that I write Java desktop applications, I don’t do much server side work and I certainly don’t write small applets, so Rick’s complaint that everyone assumes your a server side developer doesn’t apply here. It also doesn’t apply too much in real life – fast code is fast code. In desktop development you get more “time off” or more code that’s not on the critical path because you only need to go as fast as the user. On the server side you need to process pretty much everything as fast as you can because there’s always more requests to get started on if there’s a hold up with this request.
Moderation 101
chromatic talks about the overuse of patterns and design in software development. This highlights a problem the software industry seems to have – it just doesn’t understand moderation. It’s not only design that suffers from excessiveness, it’s processes too. Some people get so caught up in explicitly defining and then following a process that they spend more time on the process than actually getting things done. Worse still are the people who get so caught up in the process that they forget to check that it actually achieves the right thing. Of course, none of that should be taken to mean that all processes are bad, but in needs to be taken in moderation. This attitude that extreme programming takes of “if doing a bit of this is good, lets turn the dial all the way up to 11” is really crazy. Too much of anything is bad for you. You need unit tests and they need to cover your code well, but you don’t need 100% test coverage or you’ll just spend way too much time writing tests (not that extreme programming actually advocates 100% test coverage). Pair programming is another great idea that can be taken too far. There is a lot of code where it really helps to bounce ideas off of other people for, but there’s a lot of fairly mundane code that you should be able to write without help and still get it right first time. In those cases it’s a waste to have two people doing mundane work, you should just split up and work individually until you hit a problem that benefits from pair programming. Again, moderation. Anyway, with a thunderstorm coming I think I’ll blog in moderation and sign off now.
Orkut, IM and You
This is a fantastic suggestion from Warren Ellis. Friend of a friend systems should be integrated with instant messaging to become the central hub of your internet community experience. It needs to go a step further than that though – it should integrate with iSync, Outlook, your PDA etc, so that it really becomes the central hub of all your communications devices. It should include the functionality that Address Book now has (on OS X) with it’s bluetooth phone integration. I’d also put the focus on business networking and customer relations more than dating as well. A system that integrates with all your communications mediums, tracks the communication with customers or business partners and allows you to easily view and search that information. That’s a pretty nice tech support/help desk setup. Ignoring some of it’s tracking capabilities scales it back to be a nice business contact tool, and with the friend of a friend thing coming through it still serves as a dating tool for those who really want that. Mostly though, I think I just want another cool toy to play with – the bluetooth phone I recently acquired is just so much fun to play with.
Product Enhancement 101
As Iain points out, MS have a new toolbar, and it’s not particularly original. I’m not so concerned about it being similar though, it has the same function so it makes sense that it would have the same kind of look. What really concerns me is the fact that a browser vendor has to release a toolbar plugin for their own browser to add new features instead of just adding it to the browser directly. Guess it provides another prominent link to various MS websites…
Java on Linux
“jbob” comments about how Java and Linux are a good fit for each other, and that better access to the internals of linux would make it even better. I definitely agree that Java and Linux are a good fit, but they are a good fit only because Java provides a platform independant abstraction. Providing access to the internals of linux from Java would remove the biggest advantage Java has over C/C++ because the code would no longer be portable. Ways to make Java programs look and act like either GNOME or KDE apps would be great (particularly if it’s done through the Swing L&F mechanism so it looks right on which ever desktop system you choose), but getting into the internals of Linux – just write it in C and get access to anything you want. One last thing:
iSync vs the world
Over at O’Reilly Chuck Toporek complains that iSync didn’t support the bluetooth phone he purchased. I think he’s pointing the blame in the wrong place. iSync supports the standard syncing protocol SyncML so it will work with any phone or device that also supports that standard which apparently Chuck’s phone doesn’t. So while I sympathize with Chuck for having bought what is for him a dud phone, I think it’s a bit much to expect Apple to do all the leg work to support every device under the Sun. Afterall, isn’t that exactly what open standards are meant to be for?
Bah!
I really don’t like perl at this point in time. If anyone can explain why attempting to use the Google search webservice from within MT would return an error saying the file protocol is not understood, I’d love to hear about it. All the required modules for MT are properly installed as per their instructions and it’s still a no-go, despite the fact that it’s up and running fine on my internal server. Sigh, hopefully using CPAN to reinstall the modules in the default locations might help instead of having to install them in MT’s extlib directory by hand.
In The Beginning
In the beginning there was chaos…. Nothing changes really. I’ve finally gotten around to putting a blog online, I’m not sure how long it will last but hopefully I’ll be doing enough interesting stuff this year that there’ll be something to blog about. I guess in the worst case I can just pester Iain from here instead of in his comments.