Hugh Buchanan My Ramblings

30Jun/090

Why Google Sorta Sucks

I was reading this article in Wired (http://www.wired.com/techbiz/it/magazine/17-07/ff_facebookwall?currentPage=all) about the Facebook vs Google rivalry and how Facebook is attempting to take over the world.

I do have several thoughts on the matter, particularly the fact that Facebook is too niche. It's a social network for personal data. I use it to keep in touch, and really rely on it for the infrequent communications. The truth is, I use it a lot more frequently than that... but when I am busy and drop off for a few days or weeks few people will do much more than comment to me when I return that they haven't heard from me in a while. The connections that are fostered on facebook are those that otherwise might not be, and that's great... but it's still not that personal.

I am not going to divulge my inner most secrets on Facebook. I don't mind sharing some personal information that matters little, like my thoughts on the weather or some boasting about how much fun I had doing X or Y. Much of that is acceptable information for the general public, which means it may as well be on Twitter or my blog. Everyone is different, but I find that few people are talking about their massive hangovers openly, even on Facebook on a Friday morning while you might find people at the office complaining over their morning coffee. A little venting amongst colleagues is acceptable. There is an unspoken understanding there that keeps the matter mostly private. That doesn't prevent someone from writing about others online, but usually names aren't provided so we're all pretty content with the level of gossip.

So for many topics like finding a doctor or planning a holiday destination, Facebook and Twitter are great tools. But there are some topics that people don't openly discuss. Some topics aren't discussed at all. If I am going to learn about coping with incontinence, I am not going to do that through a social network.

But what about other queries that aren't private but are too specific to a group of specialized people? If I am working on a programming problem, I can't rely on a social network to provide the answers. I need to go to many sources (articles, forums, etc etc) and especially don't want a record of it if it is for confidential projects at work. That's when we have to turn to a service like Google.

But Google sucks.

Google has too much out of date information. I run into the problem all the time when solving technological problems. I need the answer that works TODAY, not the answer that worked FIVE YEARS AGO.

Google has a lot of very old, out of date information in its database. I get by on using good queries, but expiring data in the index is such a challenge.

Facebook is a proprietary system that controls how data comes in. This allows them to do a lot of neat things to calculate the validity and usefulness of data.

Obviously I don't have a solution for this problem. Unless people start validating the usefulness of their results I am not sure we will have a solution (unless the google toolbar tracking our every move can deduce enough). Personally, I wont run toolbars and I'm just as lazy as everyone else in that if I need an answer in a hurry I am not going to spend my own time to rate the results. Maybe Google can give me a fraction of a cent every time I do it. Those that are dishonest will have all of their usefulness data expunged from the system... How 'bout it?

21Apr/090

NetBeans Fail

NetBeans Failes to Show Compile Errors

NetBeans Failes to Show Compile Errors

It only happens on my windows workstation, but NetBeans will randomly fail to indicate in the left navigation that there are problem classes that won’t compile. So annoying.

15Apr/090

Java 1.6 + NetBeans 6.5 + OSX

I hadn't actually had a real need to force use of Java 1.6 yet.  I did have a Java platform definition in NetBeans for 1.6 and would use that.  But recently, my project has become more 1.6 heavy and I've had to switch to a JDK 1.6 source and binary format.

I found a very useful blog post that explained the upgrade here:  http://point2blog.wordpress.com/2009/02/17/defaulting-to-jdk-16-in-netbeans-65-on-osx/

This is the relevant excerpt from the blog post by Damien Gabrielson:

  • Locate the NetBeans config file, typically located at “/Applications/NetBeans/NetBeans 6.5.app/Contents/Resources/NetBeans/etc/netbeans.conf” and open the file in your favourite editor
  • Set the “netbeans_jdkhome” parameter to the JDK 1.6 home directory (ie. netbeans_jdkhome=
    /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home)
  • But that wasn't good enough for my use.  I am developing a web application that runs on the Glassfish application server.  That too needs to be running Java 1.6.  The fix is easy:

    • Open the "asenv.conf" file.  In my case, it can be found at: /Applications/NetBeans/glassfish-v2ur2/config/asenv.conf
    • Set the "AS_JAVA" parameter to the Java 1.6 directory.  My entry reads:
        AS_JAVA="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"
    6Mar/090

    Contract Programming… Fun?

    I recently came across a blog post (http://www.antipode.ca/2009/the-california-guys/) that was unfortunately not news to me.  In summary, the author, one Allen Pike (who I don't know) writes about some bad experiences doing contract programming.

    When the Internet first got going, I was more than intrigued.  I remember getting a magazine in 1994 or so that stated that Gopher was dead and this thing called HTML was the wave of the future.  It was cool cuz it blinked a lot.

    So I got involved, and quickly found a circle of people that was involved in some of the lower level Internet services (DNS for one) and by 1996 I was doing contract CGI programming.  While in middle school and high school, being taken advantage of wasn't a problem (though should be really).  I bought in though and offered my services as a devloper (self taught and young).  During those times, the money earned could be very lucritive and no one knew what was possible yet.

    By the time I graduated high school several years later, things had changed.  It was much more commercial, and Yahoo was no longer updated by humans.  The search engine vultures appeared before I realised that real money was available on the World Wide Web, and I sort of got in before the bubble burst.  My custom programming services expanded to a level that included a large number of outsourced developers around the world.

    Anyway, enough back story.

    When folks see dollar signs, they stop thinking.  They demand a lot and don't expect to pay for it.  The hours spent go easily for a developer enjoying the project.  It's all so wrong.

    A doctor will attend many years of schooling for a mature science that no longer is changing rapidly.  They will generate huge incomes because they have learned this large scope of knowlege and can put it to practice, despite the fact that most must specialize because general medicine is too broad to maintain anymore.

    Software is not yet mature and requires a lot of energy to be spent on learning.  Software doesn't build itself, and you end up burning the midnight oil.  Yet at the end, you walk away with very little money or respect.

    Some might say to hang in there.  The value of the programmer will be seen down the road.  I personally don't think so, but that's another conversation.

    The bottom line is a simple suggestion that's hard to follow through on:  Write up a contract and include requirements.

    That's it.

    A doctor can go into an operating theatre to "look around", and you'll wind up in the hospital missing an organ or worse.  A $10k procedure will turn into $100k.

    Developers screw themselves by agreeing to do a lot more work than initially agreed upon.  This is pretty much 100% of the time too as pretty much 100% of clients don't know what they want.

    Perhaps developers should get more psych training.  Classes in mind reading would help.

    My advice, just know that the majority (upwards of 80% sometimes) of what a client demands is not going to meet their mental requirements.

    Passion helps.... a client that can make you believe in the product is both awesome and dangerous.  Getting caught up in that passion, and still failing ultimately because the idea was flawed can be a great experience... no better way to learn than from mistakes, right?

    The bitter cynic does not help.... that's why I stopped taking a lot of contract work.  The pool of outsourced developers I had became sour and lazy.

    My final thought:  There aren't many great projects out there.  I hope you get a great one, but if you don't be level headed about your approach and the expectations you set.  Passing on jobs can work out well... the most lucritive jobs I had were fixing the messes created by other developers.

    3Sep/080

    Java EE / JAAS Night Terrors

    Working with JavaEE 5 brings up a lot of new challenges when developing an enterprise level web app.  The first issue I noticed is the absolute lack of experience for those in the job market when it comes to EJB3 and JavaEE 5.

    But lately, I too am struggling to figure out the right way to put these "standardised" Java technologies into play.  So far it's like inviting the school bully and his cronies to your back yard 12th birthday party, as well as the lame/runt kids, and trying to get them all to play Pinochle and not fighting.

    The past few weeks it's been the JAAS struggle.  Open source frameworks like jGuard might be able to help me, but the end result is that my architecture is a bit too complicated.

    The real problem is with regards to web services, specifically trusted services.  The SOAP client takes on a JAAS role, but based on other session information will assume another user/role.  It's a headache and there's very little on Google.

    I'll follow up on this later.

       

    What I'm Doing...

    Posting tweet...

    Recent Posts

    Some Title

    Meta