Stupid Website Content “DRM”

August 1st, 2008

Today somebody sent me a link to MIS Australia’s article about some ridiculous filters the ever-paternalistic Australian government is trying to foist on the Australian public for our own protection. Like, thanks you guys.

Anyway I got feisty when I realised that you can’t cut and paste from the Australian Financial Review’s MISAustralia website. As soon as you highlight text on the site, it becomes all garbled. My first, knee-jerk reaction when somebody does something on their website to make it less useful for users (like disabling right-click) is along the lines of “Errr you MORONS! WHY would you BOTHER DOING THIS?” Which is not exactly constructive criticism, but I really can’t see how doing this kind of dumb stuff on your website is a good idea.

If you don’t want your content on the web, don’t publish it there!

I can somewhat understand the mindset of fear at work here. Site owners feel that their content is sitting out there on the web ready to be copied and exploited by anyone. But here are a bunch of reasons why it’s dumb to use lame “DRM” or “copy protection” methods on your website:

You’re making it HARDER for people to share your stuff with their friends
In my case with this article, a guy at work tried to send me the link and a relevant quote from the article — but couldn’t! He could only send me the link. If a busy person can’t just quickly cut and paste the written equivalent of a soundbite to somebody else, they might not bother at all — it’s annoying and confusing. Not only that, but I might not visit your site because it’s just a boring link - there’s no snippet to pique my interest. This means less traffic for your website.
Your site will be LESS POPULAR because it’s HARDER TO FIND
Having garbled content is bad for search engine rankings. Don’t believe me? Try this search — it’s searching for the phrase “opponents of isp-level filtering” on Google — but restricted to ONLY on the MIS Australia website. Whaddya know, it returns ZERO results! That’s because the “protected” content makes NO SENSE to search engines. Not being searchable means missing out on A LOT of potential search traffic.
Your site will be LESS POPULAR because it’s not SHARING INFORMATION - what the web is built on
The most successful websites actively share their content to attract more users/readers using something called RSS. What RSS does is lets you share your content so freely that computers can find new stuff on your site and do the job of spreading it around for you! The only way people are going to know that your site has great content is by showing it to them. Hiding your content away is going to help nobody — not readers, because they can’t find you, and not you, because you’ll have no readers.

I can appreciate that people may be fearful about their content being stolen by web scraping. But this is actually not that big of a problem. Google knows how to deal with web scraping and has methods of determining who should be rewarded as the original publisher of content. Some kid stealing your articles and posting them on his own site isn’t going to take away all of your traffic!

You’re making your website WORSE TO USE.
So many sites that prevent me from right-clicking an image make me angry, because usually I’m just trying to see a higher-resolution version of the picture that they’ve scaled down to fit their page using HTML, but the pic is really a big, colourful picture with lots of detail that I’m missing out on. That sucks. Or maybe I want to send the picture to a friend, saying “Hey, look at this great site, they have heaps more cool pics like this one!” — just saying “hey check out this site they have cool pics” is way less powerful.

And that’s just disabling right-click. MIS Australia’s effort actually makes the site look TERRIBLE -- they have to use a fixed width font because their lame content “DRM” just uses two layers of content, one beneath the other! If you used a variable-width font the text on the two layers would never line up, and you would just get a jumble of letters. So that’s why MIS Australia’s articles look like they were typed out in the 1940s, even on a beautiful screen with font smoothing.

Speaking of a jumble of letters, that’s also what any visually-impaired person’s screen reader is going to see when it tries to read out the page. Way to discriminate against the disabled, yeah!

Your lame system can be easily circumvented ANYWAY - so why bother?
Especially the sites that deny the ability to right-click. There’s so many ways around this that it’s just pointless and makes your site annoying. If you really don’t want people to steal your images, use low-resolution pics with a watermark, because your right-click prevention just won’t work. If you really don’t want people to steal your website code, the best you can do is to obfuscate it — or don’t publish it at all! Web programmers are crafty — and often still in high-school, so they have lots of time to work around your tricks! :P
In the case of the MIS Australia website, to get the text of any of their articles is as easy as using /g,’\n\n’).replace(/< [^>]*>/g,”));})();”>this link and choose “Bookmark this link” or “Add to Favorites” and save the link to your bookmarks/favorites.
  • Now read an article on MISAustralia.com and if you like it, click your bookmark/favorite you have just added.
  • Presto! The article contents will be pasted into the comments box at the bottom of the page for you to cut and paste at your leisure.
  • I’ll say it again. If you’re going to go to the trouble of putting your content on the web, why hamstring your efforts? Put it out there and SHARE IT, and more importantly, LET OTHER PEOPLE SHARE IT — that’s what your website is for, and that’s how you get popular!

    Innernet ‘Splorer

    June 23rd, 2008

    Gosh this blog looks terrible in Internet Explorer (at least in version 6), not that I’d advocate using IE unless you have to; especially now that Firefox 3 is out!

    Speaking of which, so is Opera 9, and IE8 is in beta. New browsers galore!

    Anyway, will fix, gentle reader(s).

    The Last Web Appplication You Will Ever Need?

    June 23rd, 2008

    OK I admit that the title of this post is slightly hyperbolic, but I’ve just installed and started using PmWiki to replace my well-worn, dog-eared copy of ASPWiki that I have loved so well since about 2003, I think. And, I’ve gotta say that I love it! Out of the box it’s simple and easy to use, easy to setup, doesn’t require a database (PmWiki uses flat files for storage, which I think makes sense for big slabs of text content), but it’s flexible and extensible and there’s a great ecosystem around it with a metric assload of cutely named “Cookbook Recipes” instead of the over-used “extensions”, “add-ons” or “plug-ins”.

    PmWiki screenshot

    I chose PmWiki because I was looking for a PHP-based (for web-hosting reasons) wiki that’s small and simple, and then found out that it’s also really extensible and easy to customise to your liking, which of course I’ve done as part of my usual procrastination routine — see my snazzy theme in the attached screenshot. I also very much like and agree with its philosophy:

    1. Favor writers over readers
    2. Don’t try to replace HTML
    3. Avoid gratuitous features (or “creeping featurism”)
    4. Support collaborative maintenance of public web pages
    5. Be easy to install, configure, and maintain

    And just have a look at what PmWiki can do! With the help of the many cookbook recipes you can do all this and more:

    Plus there are a bunch of skins you can use to make your wiki more amenable to your tastes. I also liked the security features, because I use mine like a personal notepad so I don’t want other people being able to scribble all over it, or even to be able to read it, really. So my security needs are pretty simple, but you can go paranoid/berserk if you need to.

    Oh, and you can try out PmWiki on your own machine without a full-on web server if you want to by downloading the Standalone recipe which you just need to unzip a directory into your PmWiki directory tree, double-click a .BAT file and type http://localhost/! Easy peasy. You can run on other operating systems with just a PHP script, also provided on the Standalone recipe page. Running locally makes it super easy and quick to customise your PmWiki because you don’t have to upload your changes to a server, or wait for page refreshes to download. Also, you don’t have to worry about messing up your main “production” installation if you have one, you can mess around locally as much as you want to.

    Which brings me to my next point, which was that I wanted to do two things:

    1. Import my data from ye olde ASPWiki
    2. Experiment with a custom skin that would look decent if you used PmWiki as a way to manage a “normal” website, i.e. use it as a content management system.

    I’m mainly a C# developer, so I logically decided that I’d write a tool to import my old data in Python. I’ve written the odd Python script before and this didn’t seem like such a big job — some file I/O and some search/replace stuff. It didn’t turn out to be too difficult but it did take a bit longer than I expected as I learned more about the language; or more specifically, how the expat XML parser works. I’m pretty happy with how it works, I ended up getting my 300+ pages imported just fine.

    import xml.parsers.expat
    
    import re
    
    class elhandler:
    	def __init__(self, filename, wikiGroup):
    		self.buf = 
    
    		self.wikiGroup = wikiGroup
    		self._parser = p = xml.parsers.expat.ParserCreate()
    
    		p.StartElementHandler = self.start_element
    		p.EndElementHandler = self.end_element
    
    		p.CharacterDataHandler = self.char_data
    		p.ParseFile(open(filename))
    
    		
    	def start_element(self, name, attrs):
    		self.name = name
    
    	def end_element(self, name):
    
    		if self.name == ‘Title’:
    			self.title = re.search(‘\w+’,self.buf).group(0)			
    
    		elif self.name == ‘PageData’:
    			self.buf = self.wikifix(self.buf)
    
    			of = open(‘import/’ + self.wikiGroup + ‘.’ + self.title, ‘w’)
    
    			of.write(self.buf)
    			of.close
    		self.buf = 
    
    		
    	def char_data(self, data):
    		self.buf += data
    
    	def wikifix(self, contents):
    
    		contents = contents.replace(‘    * ‘, ‘* ‘)
    		contents = contents.replace(‘\t* ‘, ‘* ‘)
    
    		contents = contents.replace(‘    1.’, ‘# ‘)
    		contents = contents.replace(‘\t1.’, ‘# ‘)
    
    		contents = re.sub(r‘(^|\n)+====’,‘\g<1>!!!!’, contents)
    
    		contents = re.sub(r‘(^|\n)+===’,‘\g<1>!!!’, contents)
    
    		contents = re.sub(r‘(^|\n)+==’,‘\g<1>!!’, contents)
    
    		contents = re.sub(r‘(^|\n)+=’,‘\g<1>!’, contents)
    
    		contents = re.sub(r‘\b([A-Z][a-z]+[A-Z]+\w+)’,‘[[\g<1>]]’, contents)
    
    		contents =  re.sub(r‘(\n\ .*)+’, ‘\n[@\g<0>\n@]‘, contents)
    
    		return contents
    
    eh = elhandler(‘aspWiki-export.xml’, ‘Main’)

    My second mission, to create a skin that would work if using PmWiki for a normal content-based website, is at least a partial success because I’m happy enough with my skin to use it on my wiki — at least for now. My skin is named PmGk, not too imaginatively. :)

    So if you’re looking for a Wiki that can do everything, or even just something, check out PmWiki, it could save your life!

    What’s The Worst That Could Happen?

    June 9th, 2008

    Creator of PHP Language Hates Programming!

    May 22nd, 2008

    I’m listening to an IT Conversations podcast of Rasmus Lerdorf (the guy who created PHP) speaking about PHP, and I have to say I’m pretty surprised to hear him say “I hate programming with a passion — I created PHP to avoid programming.”

    Rasmus Lerdorf

    Rasmus says that he wrote PHP while building a web-based system for Toronto University. The university didn’t care how he built the system, they just wanted their system, so Rasmus built PHP to make his job easier.

    Rasmus’s decision to open source PHP was made when he was getting lots of questions about how he was doing his work, and they had the same needs. Rasmus and the University of Toronto were delighted at the speed of development they were now getting — and that he was fixing bugs in his sleep!

    To run a successful open-source project, Rasmus says that you need to cater to four types of people:

    • those with simple self interest - they have a need that the project solves
    • those looking to express themselves through their code
    • to interact with others to get their oxytocin fix
    • those who want to make the world a better place

    The same motivations that motivate people to join an open source project also motivate people to join an interactive website.

    You have to think about how the people think about themselves when they involve themselves in your project. You have to give them some ownership and control…which was hard for me…then again I’m a really lazy guy

    In order to build a decent modern web application, you really need to think about what the users think of themselves when they interact with your site. Every single action a user performs with your website improves your site.

    Later Rasmus delves into performance profiling and optimising a PHP website using Callgrind/valgrind, as well as some stuff about the ubiquity of cross-site scripting vulnerabilities and other topics.

    It’s a great podcast, do yourself a favour and have a listen.

    Guam is Really Far Away…Or Is It?

    April 30th, 2008

    Guam

    Part of being an Australian means you need to accept that sometimes, an expression or offhand turn of phrase you hear a lot won’t make much sense if you think about it logically. That’s mostly OK because in my experience, people use phrases and clichés they don’t understand without thinking twice; the phrase takes on almost the status of a single word and has a generally understood meaning — and sometimes that’s just…enough, you know?

    Here would be a good place to give my statement some solid reinforcement with a few concrete examples of such, but it’s late at night and this blog is hardly a showpiece of academia so I’ll leave the filling of the aforementioned gaps as an exercise for the reader. As you are a constituent of my readership I am certain that it is just to bestow upon you the qualities of resourcefulness, zeal for truth and thirst for knowledge so this burden will be of little imposition to you. And you could start here.

    Guam, Papua New Guinea and Australia

    But, to carry on, the point of this post is to say that Guam (see #5) is quite close to me really, being only a few thousand kilometres away and not tens of thousands, like, say, Greece or England.

    So what? Well it gets crazy when a conversation goes something like the following:

    Me: Hey, what’s up? [obviously imagine me looking way cool at this point]
    Other Person: Oh man I just went to a sporting event, it was neato.
    Me: Oh yeah? Like, where was it?
    Other Person: Dude it was in like, Guam! Took us an hour to get there.
    Me: Gee I sure am suitably impressed. Way to go, casual acquaintance! See ya round hey.
    Other Person: Ace! See ya.

    You can see where the possible confusion could arise where this conversation takes place between two residents of Australia. Guam is being used here as a token to exemplify an exaggeratedly far away location to place special emphasis on the sporting event’s location being very distant. In a place such as the U.S.A. or the Isle of Mann this is fine and congruent with the speaker’s meaning, especially since Guam has indeed been a far-flung outpost of the United States since World War II with its U.S. military base bristling with weapons I imagine to be poised to cause the mass destruction of South East Asia.

    N.B. All of the above text is to justify the images contained within this post.

    What Web 2.0 Is

    March 28th, 2008

    The Buzzword

    Like any good buzzword (say…agile — or is that AGILE? No, it isn’t.), Web 2.0 is overused and bastardised to mean a thousand different things by some groups of people, and at the same time it’s mocked and dismissed as just another buzzword by others.

    OK so it’s March 2008 and Web 2.0 is so not cool these days because it’s so old, but I feel like it’s important that I share two insightful resources that really do describe Web 2.0, if not succinctly then at least fairly comprehensively :)

    The Resources

    The first thing I want to share, and probably the canonical Web 2.0 description, is Tim O’Reilly’s essay “What Is Web 2.0 - Design Patterns and Business Models for the Next Generation of Software.”

    The other thing is this Youtube video that really had an impact on me when I first watched it. I think it does a good job of demonstrating the ideas behind web 2.0, especially for only 4 minutes and 31 seconds. It’s a good, quick conceptual overview of the whole concept.

    The “I Kinda Reckon” Bit

    So now that we’re talking about the whole web 2.0 concept thing, I’d just like to point out that it is really a lot different to the ideas people had back in the dotcom boom/bust days. Business ideas were much more aligned to the big dollar outlay, build-it-and-they-will-come, broadcast mentality of more traditional media and businesses (although some apparently got it right anyway.)

    So everyone threw all that stuff out in favour of lightweight, bootstrapped startups that rely on users contributing, and APIs and interoperability and simplicity and figuring out what the web is and not imposing some model from before.

    If you look at it like a giant agile development project, the original dotcom web bubble was our first iteration. We got some features, some stuff worked, some stuff was missing, and we threw some stuff away in the dotcom bust. Maybe Web 2.0 is iteration two — Fred Brooks did say, “build one to throw away.”

    The Wrap Up

    So as insanely belated as this post is, I really wanted to get these two resources off my chest and out of my private wiki (feel the two-point-ohness) so that y’all can enjoy them. Please do so.

    omg Krispy Kreme is coming to Brisbane!

    March 13th, 2008

    Wow.

    Krispy Kreme launch in Brisbane

    It looks like my dreams are finally coming true; Krispy Kreme is opening in Brisbane! They were going gangbusters in Queen Street Mall today at lunchtime, giving away 500 dozen doughnuts and they had a giant Krispy Kreme sandcastle — I don’t know why they had that but it was awesome.

    And they had a van and promo chicks and ex footy players (Paul Sironen) and balloons and what not.

    I snapped some pics on my phone (see em on Facebook):
    krispy kreme launch

    krispy kreme launch

    krispy kreme launch

    How to Become a Man In One Easy Step

    November 17th, 2007

    There are a few things you need to be able to do before you can be considered a Real Man(tm). Change a flat tyre, scull a pint of beer (if not a yardy), read a map and, most importantly, tie a truckie’s knot.

    Until today I was the girliest tier of knots ever. Whenever I tried to tie something to a truck or a ute it looked like I’d gently laid the rope over the load then just rubbed the end of the rope around in my palms until it became knotted like a 5-year old schoolgirl’s hair, and driving to the destination would involve several stops to allow me to repeat the tying process. You can imagine my shame!

    Everyone in my family is moving at the moment for one reason or another (including me) and that means shifting stuff around in utes, trucks and trailers. Today one of my jobs was to move a particle board computer desk on a ute from one end of Brisbane to the other (well actually from Pine Rivers to Redlands through Brisbane, but whatever…), with a chair as well and a tarp over the whole lot that we specially bought for this journey in case it rained. It didn’t rain.

    I had to stop twice at the side of the freeway to redo my granny knots, they weren’t working at all and I thought the desk and chair were going to end up inside somebody else’s car - via their windscreen. The amount of times I’ve been standing on the side of the freeway being blown off my feet by semi trailer draught winds is ridiculous so it’s really for my own safety that I’ve finally learned how to tie a decent knot.

    Finally I pulled off the freeway at the Nudgee exit and parked out the front of the Nudgee Golf Course. I knew the time to dither and hesitate was through and that I just had to bite the bullet and learn this thing. With weary, frustrated fingers I brought up Opera Mini on my phone and Googled for “truckie’s knot”. Before long I’d found the Queensland Mitsubishi 4WD Owners’ Club’s page Get Knotted - Part II which has great pics and instructions for the truckie’s knot, and I diligently followed with newfound enthusiasm for the land of ropes and knots and load-carrying.

    I struggled for a little while with the loops and the bights and the cloves and the hitches but it wasn’t long before I had myself a real, live truckie’s knot! I was elated! I felt so manly, I wanted to have beers in a pub while eating pies and fighting big hairy blokes, bleeding and vomiting and drinking more beer and swearing and talking about footy.

    Yeah, I’m a real man today.

    Camp Quality esCarpade 2007

    November 4th, 2007

    My Dad and I went with some friends on the 2007 Camp Quality esCarpade rally. We’re still in Tasmania as I write this but we’re heading back on the plane tonight — thank the Lord we don’t have to drive all the way back to Queensland.

    2007 Camp Quality esCarpade cars

    The 2007 esCarpade started in Canberra and Dad drove down from Brisbane with Ray and Tracie (they’re from Gympie and supplied the car) in our HZ Holden Kingswood rally car “The Red Baron” with its 202 Holden motor (3.3 litre), Commodore 4-speed gearbox with sticky linkages, flashing orange lights for dirt roads, knobbly dirt tyres and big steel boxes on top for luggage which you need because the boot fills with dust when you’re bashing down gravel roads.

    The Red Baron - our HZ Holden esCarpade car

    Everything was going great until before the rally had started when on Thursday arvo, 150km out of Canberra the old six cylinder started spewing oil all over the place and making some unhappy noises. They limped into sunny Canberra as gently as they could, where the esCarpade organisers gave them the number of a top bloke named Charlie of Hughes Mechanical, who were also the support team for the “Ours” esCarpade team. This guy was awesome and the lads worked their asses off until late in the night to get a new motor into the old beast and have it running again for scrutineering the next morning!

    So the team managed to enter the rally with a new motor and I was airlifted in Friday night so that I could be there for the start of the rally on Saturday morning.

    myself, Ray and Tracie with our esCarpade car

    We headed off with Tracie at the wheel and the old Kingy seemed to be running sweet as a nut until we noticed some banging noises underneath the back end, and it started wagging its tail like a dog over any kind of corrugations. Tracie held on through some hairy moments as the car waggled around on the gravel and we started to think something could have been wrong. We stopped for lunch and had a quick look but everything seemed fine, and then it was my turn to drive.

    We were pretty convinced something was pretty messed up under the back of the car as it tried to swap ends any time the road got bumpy and it was scaring the crap out of all of us, and embarassing us too as pretty much every other car in the rally flew past us and we were eating their dust. So we stopped and jacked up the car and we didn’t even have to take of a wheel to notice that the passenger side shock absorber was just hanging around and had snapped at the top where it mounts to the chassis. That explained a few things…

    our broken shock absorber!

    So once again the car was limping to Canberra after every car parts shop in Yass was closed. Repco in Canberra weren’t keen to sell us a pair of shocks over the phone by credit card and they were going to close before we got there, but some desperation, harassment and cajoling eventually convinced Brian to take our credit card over the phone and leave our package of salvation out the back behind a rubbish bin. Then it was Charlie to the rescue again, he put the car on his hoist and had the shocks changed in literally ten minutes and we were driving on with smiles on our dials.

    Heaps and heaps more stuff happened on the trip with plenty of cars having mechanical dramas, navigational problems and driving indiscretions, but it was heaps and heaps of fun and in total all the cars raised over $917,000, which was nearly two hundred thousand more than 2006. A top effort.

    So now the plan is to build up a car of our own, get some sponsorship and go again next year. Should be awesome.