Open BlueDragon, JBoss and Eclipse timeout problem (solved!)

I've spent the past couple of evenings setting up a development environment using OpenBD, JBoss and Eclipse following the instructions by Adam Haskell found here.

All went well until I tried to start the JBoss app server from within Eclipse. Eclipse would timeout with an error message after 50 seconds claiming JBoss hadn't started. I found a couple of solutions that were dead ends (increase the timeout or change server from "localhost" to "127.0.0.1"). Finally I found a solution that worked - install JBoss Tools (specifically JBossAS Tools). This provides a JBoss 4.2 runtime option that successfully starts the server, rather than the option from WTP which doesn't!

It took a while to track down the info so I hope this helps somebody out...

Best book for learning Java?

I've been meaning to learn Java for a while now (actually more like 10 years), but never got past the first chapter of any book I picked up. It's not helped by the fact that Java has so many different applications - I realise I need to learn the basics, and although "Hello World" is a necessary intro I'd like to know that I'm learning stuff that's applicable to my work (developing web apps).

I know there's quite a few of you out there who have also started the journey along the path to learning Java (and quite a few who are proficient). Given that I only have limited time I can devote to studying can anybody recommend a book that will get me up to speed with Java without spending half the book describing what a variable is (or assuming I have a decades experience writing C++)?

I've heard good things about Head First Java, but I'm afraid this might be a little too simplistic (maybe even annoying). Any suggestions will be gratefully received.

Still alive (and kicking)

Apologies for the long hiatus between posts - I've been pretty busy with a couple of projects, but I'm now back with a vengeance (look out for several posts over the next couple of weeks).

Save our ColdFusion installations!

Okay, I'll keep this brief:

Our in-house websites run on CFMX 6.1 and were built using Fusebox 4. Our backoffice system is a COBOL legacy application, and over the years the system has grown cumbersome. We have performance issues that we need to address, but we largely know what needs to change and bit of server optimisation would probably also provide benefits.

A new backoffice system (coded in .NET) is being rolled out and upper management think that the solution is to outsource development of a .NET web solution to tie into it. The development team just want CF8 licence upgrades and a few months of scheduled development time and believe we could save our company huge amounts of money.

The current websites are already being refactored, but are only slated to have a further 12-18 months lifespan and the management are due to green light the outsourced development shortly (before our new systems and optimisations have time to prove their worth).

So I ask you:

Is this a lost cause, or is there an argument we can present to delay a decision long enough for management to see the benefit of our improved applications?

Have any of you successfully challenged a proposal to move to .NET (or Java) and convinced your company that CF is up to the job? If so, how did you do it? Any information or links to comparisons would be greatly appreciated...

Reclaiming an expired domain name

Well, I've got to say I feel pretty stupid! In my last post I was lamenting my loss of the domain name webtex.co.uk. Yesterday I figured out that when the automated renewal process failed and the domain expired it went into "registrar-lock" mode. I have read about this before but in my state of panic and disbelief I forgot how expired domains work.

Basically the domain is locked for 30 days during which time it can be renewed directly using the existing registrar. After that there is a further period of 45 days when I could contact Nominet themselves and pay an higher fee to reclaim the domain. These periods may differ for each domain registry, but it should always be possible if you're on the ball.

My confusion came because the page that was showing on my expired domain didn't carry the branding of my registrar, but instead was pointed at sedoparking.com. This is a free domain parking service where pay-per-click ads are displayed to visitors and the domain owner gets a percentage of any revenue. It looks like my registration company (UK Reg, a division of FastHosts in the UK) use this service on client domains that expire during the "registrar-lock" period.

So despite the inconvenience a few of good things have come out of this:

  • I've regained control of my expired domain
  • I moved my blog to a more appropriate domain
  • I have several domain names that I don't use that I might park at sedoparking.com

Ever had a domain hijacked?

For nearly nine years I was the registrant of the domain name webtex.co.uk. The name was registered for free by my ISP and never really held any special meaning. It was only during the last year or so that I hosted my blog there that it became important to me.

Renewal was due on the 5th January, and although my registrar has an automatic renewal system I knew that the payment details they had on record needed updating. Due to a security breach the registrar company had changed all user passwords and it took me a while to regain access to my control panels and it wasn't until the morning of the 5th that I managed to change my payment details. At that point there wasn't an option to manually renew the domain, so I had to put my trust in the automated renewal process.

On the 17th January I left the country for a week long vacation, and at that time there were no problems - the domain was resolving to my hosting account. After having a few days break from work I thought I'd check my email and maybe write a blog post but when I typed in my URL I was surprised to see a domain parking screen where my blog should be! It seems that the automatic renewal process didn't work and a domainer snatched up my domain!

Now I know this isn't strictly speaking hijacking, but I don't know what else to call it! What I do know is that I'll probably never regain control of webtex.co.uk.

Although the domain name wasn't commercially important in the traditional sense there are pages listed by Google, and although these should eventually drop out of the index there is a possibility that this blog, now hosted under a new domain, will be seen as duplicate content (and penalized as such).

I guess there was also some sentimental value, but what was particularly annoying was that Ray Camden had just added my RSS feed to coldfusionbloggers.org on the 16th! (Thanks Ray, for updating my feed details so quickly.)

Luckily I had already registered this domain (jamesmarshall.org), and in many ways it makes more sense to host my blog here. I've spent quite a bit of time migrating stuff over during the past few days, and this post marks the end of that work so hopefully it's now back to business as usual.

I can't really blame anybody other than myself for this, but I've learned a few lessons from the experience:

  • Make sure your payment details are always up to date with any service that you use
  • Never assume that an automated job has completed successfully (remember "assume" makes "ass" out of "u" and "me")
  • If you've got a blog that has subscribers or is aggregated use a service like Feedburner to provide a consistent feed URL in the event that you need to migrate to a new domain

Have any of you ever had a similar experience? If so did you ever get the domain back?

Maybe enterprise will finally take MySQL seriously

It looks like this is breaking news, but Sun is planning to acquire MySQL. I'm sure that until the details are made public speculation will be rife, with arguments for both the positive and negative coming from all sides. My opinion is that it's great news. As the article points out Sun have a good track record with OSS and their ability to raise the visibility of MySQL to enterprise customers will be welcomed by developers who already appreciate the benefits of this fantastic RDBMS.

Read the full article at: http://blogs.mysql.com/kaj/sun-acquires-mysql.html/

A response to "Common ColdFusion Arguments"

This entry is a response to a post by Sean Corfield entitled Common ColdFusion Arguments. Whilst I largely agree with his views there are a couple of points that I'd like to respond to.

I wholly agree that:

ColdFusion shouldn't be free or open source. I know it would be nice, but we have to be realistic. There are always going to be people who think that software should be free - that's the nature of the internet. However, I'd expect developers to appreciate the need to pay for some software. If all the software we produced was free then how would we get paid? By providing support? No thanks - I hate doing support! I know it's a necessary evil, but if I had to work on the basis that I got paid for each support case I dealt with then perhaps I'd be inclined to write shoddy code (not me personally, but you know what I'm saying). Being paid for what I produce ensures that it's in my best interest to create a superior product that customers are willing to pay a premium for - one that will require as little support as possible! Don't get me wrong - I love OSS, but ColdFusion is a product (an excellent one at that), and if we all love it so much we shouldn't bitch about paying for it.

I also think the community does a pretty good job of evangelising ColdFusion without the need for more paid evangelists. Speaking as a relative newcomer to ColdFusion I've got to say I was impressed by the fervour and zeal of the CF bloggers and online community, and to be honest I'm less inclined to believe the words of a paid evangelist (a more cynical individual may say a shill) than those of satisfied paying customers.

And finally the one point that I disagree with:

Although it's true that the languages/skills you learn at University aren't necessarily those you use during your career I still think that ColdFusion is an ideal "gateway" technology, and a greater proliferation within educational establishments could have a significant impact on uptake and mindshare. There's a great deal of people who aren't CS majors, who are nevertheless studying subjects that may touch on web design and development (marketing, graphics, multimedia, even music technology students). I studied Fine Art, but learned HTML from an enthusiastic tutor during an extracurricular class, and I only wish that I'd also benefited from an introduction to ColdFusion at the same time. The tag-based syntax would have really helped me to pick up server-side programming at the same time as HTML (two birds, one stone), and I would have had a significant head start in my (eventual) career...

EDIT: By coincidence 37signals just posted an interesting entry about how to charge money for software: http://www.37signals.com/svn/posts/725-the-easiest-way-to-charge-money-for-software

The point they make is simple - make your software useful enough to save customers time or make money. I think ColdFusion does both of these, and if you're a CF developer then you probably do too!

Sounding the death knell for MySpace

I just read this post over at SEOmoz slating MySpace.

Although the issues raised aren't related to CF I think that the time has well and truly gone when we could point to MySpace when asked for an example of a leading edge website using CF. =(

It's a shame, because for a while MySpace was the killer app... Damn those fickle kids and their new-fangled Facebook!

My top 5 development practices and tools of 2007

The last year has seen me grow considerably as a developer, with changes in my working environment and my attitude to work being major contributing factors. Working in a team and joining a company with established methodologies and technology preferences has changed my working practice more than I had expected.

As the year draws to a close I thought I might share a few of the things that have had an impact on me and helped me to grow over the last twelve months...
 

1.) Firefox & Firebug

I've been doing web development for long enough to remember when the differences between IE4 and NN4 were enough to make you want to throw in the towel. This year has seen things finally begin to change for the better, with IE7 now supporting a more standardised DOM. It's perhaps ironic then that this is the year I chose to change to Firefox as my primary browser. It's actually the progress made in IE7 that has allowed me to finally switch. Now that IE and Firefox render pages more consistently I can do the majority of my development using Firefox and just do a little tweaking for IE.

The add-on capability of Firefox is one of its greatest strengths, and although there are several add-ons that I swear by the one that has revolutionised the way I work is Firebug. Although I've been using it for over six months I'm sure I've barely scratched the surface of what it can do. The ability to see (and track) live CSS and JavaScript output directly in the browser has made my life easier beyond belief. My only frustration is that my co-workers refuse to be converted!

As an aside, the maturity of Firefox also encouraged me to spend a couple of months using Ubuntu Linux as my home OS. Although I've since switched back to Vista, Firefox made for a much smoother transition between the two (and I've not ruled out Ubuntu as an option for the future).
 

2.) Fusebox/Frameworks

The majority of the applications that I maintain were built using Fusebox 4.1. The common structure allows team members to understand and maintain a complex application, and even junior developers can pick it up pretty easily. The Fusebox skills I've acquired also complement my PHP experience, so is doubly valuable.

As part of my efforts to learn OOP I've also started to take a look at Model-Glue, although workload and personal commitments (I got married this year) have prevented me from fully getting to grips with it yet.
 

3.) Source Control

Although we use VSS (Visual SourceSafe), which is generally considered to be the worst of the source control systems available, it has greatly helped in my day-to-day development and maintenance efforts. Due to the nature of our business we often have to make temporary changes to accommodate time specific offers. Using the history functionality of VSS I can roll back a file to a previous state, and it allows me to see not only when source files were changed, but also who by and what changes were made. In an environment where we don't write as much documentation as we should (who does?) this can be invaluable.
 

4.) Maintaining other peoples code

Until the past year I was fortunate in my freedom to design and code applications from scratch. The reality of working on a large scale application coded by somebody else turned out to be somewhat different from my expectations. I was hoping for robust and modular code maintained to an in-house style, but instead found an application that had grown as needs arose, with many hacks and quick fixes implemented by developers of all skill levels, many of who are no longer with the company.

Looking back I realise that I was incredibly naive in my expectations and I've since learned that while best practices are always desirable it's not always possible to refactor to a more elegant solution when working to tight deadlines.

I'd like to think that I've learned from both the good and the bad code that I've worked on, as well as learning to be less judgemental about other peoples code in the process (yes - I know that somewhat contradicts what I said above).
 

5.) Books, blogs and podcasts

I've always enjoyed reading, but for the past few years I've done very little non-recreational reading. That changed for 2007 with me tackling non-fiction titles covering a variety of programming related topics. I've already got my Amazon wishlist on the go for next year, headed by The Pragmatic Programmer!

2007 was the year that I fully embraced blogs. I'd never subscribed to or consistently read a blog before earlier this year, but while first learning ColdFusion I found the blogs of people like Ray Camden and Sean Corfield to be invaluable. I'm actually putting together a separate post about the blogs I've been reading this year, so check back for that tomorrow.

This is also the first year that I've fully appreciated podcasts. Recorded presentations from industry conferences and more regular podcasts like Out Loud and ColdFusion Weekly have all helped to broaden my mind and get me thinking about issues that I might not have otherwise.

Naturally, as with all things it's important to find a balance. There's a danger that you can become too tied up in the academics and don't get down and dirty with some practical experience. I think that I've been somewhat guilty of this during the past year, but one of my New Years resolutions is to put into practice all that I've learned in 2007!

More Entries

BlogCFC was created by Raymond Camden. This blog is running version 5.9.