Posts tagged web development

Linux in the workplace

At the start of September I left my customer services role and started a new position as a web developer. I won’t give the name of either my old or new employer, but I will say that the new role is with a much smaller company, and the part I work for now is an e-commerce store that enjoys a significant degree of independence from the parent company. There are only two developers including myself, and we are solely responsible for the company’s IT infrastructure, and we don’t have the hassle of dealing with legacy applications or infrastructure. We therefore have considerable freedom in terms of what we choose to use to get our work done.

When I first started, I used Windows XP Professional since that was what my work laptop came with, but it soon became obvious that there wasn’t actually anything I specifically needed to be using Windows for. I mostly work on the company’s intranet, which doesn’t really need to be tested in Internet Explorer as we use Firefox internally. For email and calendar, we use Google Apps, which works fine with virtually any email client that supports IMAP, so I was using Thunderbird with the Lightning plugin. When coding I used Netbeans with the jVi plugin for most of my work, with occasional usage of Vim for writing shorter scripts. I used AppServ to provide local versions of Apache, MySQL and PHP, and I used PHPMyAdmin to interact with the database. For version control, I used Subversion. From time to time I need to remote into another machine using VNC, SSH or RDP, for which I used mRemote, but I was confident I could find an equivalent application. Also, we use Ubuntu on most of our servers, so it made a lot of sense from a compatibility point of view to also use it on my own desktop. From time to time, I also found myself writing bash or Perl scripts for systems administration purposes, and since it wasn’t really very practical to do that in Windows when it was going to be running in Ubuntu, I’d used an Ubuntu Server install in Virtualbox to write it, but it was obvious that running Ubuntu as my desktop OS would make more sense.

As Ubuntu 11.10 was due a little over a month after I first started, I decided to hold off making the switch until then so I could start with the most recent version and not have the hassle of upgrading an existing install. I had already downloaded the 64-bit version of Ubuntu 11.10 for my home machines and burned them to a CD, so I brought the CD into work and set up a dual boot so I could revert back to XP if anything went wrong, and also so I could easily copy across any files I needed from the Windows partition.

It took a fair while to get everything I wanted installed, but a lot less time than it would have taken if I’d set up Windows XP from scratch. The hardware all worked fine out of the box, and most of the software I needed was in the repositories. The only thing that I really needed that wasn’t there was Netbeans (which has apparently now been removed from the repositories), but the version in the Ubuntu repositories has never been very up-to-date anyway. Instead I installed the version of Netbeans available on the website, and that has worked fine for me. While there wasn’t a version of mRemote available, I did discover Remmina, which has proven to be an excellent client for SSH, RDP and VNC, to the point that I’ve now stopped using the terminal to connect via SSH in favour of using Remmina instead. Thunderbird does just as good a job with my email and calendar as it does on Windows, and I also have Mutt available. Naturally, it couldn’t be simpler to install a full LAMP stack and PHPMyAdmin either. In fact, the only application that I use much that I couldn’t get a decent version of was MySQL Workbench, and that was only because Oracle haven’t yet released a version for Ubuntu 11.10 (tried the version for 11.04, but it doesn’t seem to work), but I can live without that.

What’s interesting is that despite all the scaremongering I’ve heard over the years about how Linux isn’t ready for the workplace, I’ve as yet had no problems whatsoever. For everything I used in Windows, it was either available on Ubuntu, or there was a viable equivalent, or I could get by fine without it. Granted, the nature of my work means I have little need for the small amount of functionality that Microsoft Office has and LibreOffice doesn’t, and I don’t need to use the kind of ghastly legacy apps written in Visual Basic that most large enterprises commonly use, but I haven’t noticed any significant barriers to my productivity.

In fact, if anything I’m considerably more productive. I know people like to rag on Unity, and I wasn’t happy with it in the netbook edition of Ubuntu 10.10 myself, but in 11.10 it’s really starting to show its promise, and I haven’t had any problems with it. The fact that I know Ubuntu a lot more thoroughly than I do Windows, purely from my own experience at home, means that I can get things done a lot quicker, but also the whole package management system means I’m largely free from the annoyances of opening an application in the morning to be confronted with an update dialogue, quite apart from the fact that very few updates require a restart. I’d go so far as to say that I’ve been more productive using Ubuntu at work than I would have been with either Windows 7 or OS X (and over the last few years I’ve used Windows Vista, Windows 7 and OS X fairly extensively).

I really don’t want this to turn into Yet Another Year of the Linux Desktop blog post, because that’s rather a tired old cliche, but I have absolutely no problems whatsoever getting my work done on Ubuntu. I’ll concede that as a developer I have significant freedom that isn’t often afforded to other people, and running some flavour of Unix makes a lot of sense if you’re a developer working with one of the open-source server-side languages such as PHP or Python (if I were a .NET developer, it would make rather less sense). I’m also lucky to be in a position where I don’t have to worry about legacy apps or IE compatibility too much. Nonetheless, it’s still remarkable how smoothly my migration across to Ubuntu on my work desktop has gone, and the extent to which I find it’s improved my workflow.

Five things you should consider including on your website

If you’re creating your first website, it’s tempting to think that once you’ve got the site looking the way you want it, and added some content, then that’s all you need to do. In reality, it’s extremely unlikely that this is the case. It’s fairly obvious with something like a blog that it needs regular care and attention, but even a static brochure site may need some additional resources to get the best out of it. Nowadays, there are loads of great resources around that you can use to enhance your websites, either for yourself or your readers (or both!) and knowing how to make the most of them can really make a difference in how well your site fulfills its intended role.

So here’s a list of five things you should consider including when you set up your first website that are easy to overlook, but can offer real benefits to both you and your users. Note that there’s more than a few Google tools here – this isn’t deliberate, it’s just that Google are so omnipresent in this area that it’s hard to get away from them.

  1. A way to record visitor’s details – With most web hosts you can just look at the log files, but that doesn’t provide very much information at all, nor does it present it in a way that makes it easy to see the information you need. A much better idea is to use a dedicated web analytics service. I’ve used StatCounter in the past, but my favourite has to be Google Analytics. Both give you access to a great deal of useful information about your website. For instance, you can see how many people view the site in Internet Explorer 6, so you can figure out for yourself whether it’s worth bothering to adjust for IE6 when you redesign the site next. Or you could see how many people view the site in a mobile browser. You can also see what pages are popular, how long people remain on your site, and how they got there in the first place. All this is extremely useful information that can give you good ideas as to how to improve your site.
  2. A comment system - OK, this is blog-specific, but comments mean you can gauge reader interest levels, and encourage more reader participation, so having a good comment system is essential. Most blogging engines have an OK comment system, but there are a few dedicated comment systems you can install on your blog that offer a lot more features than the default system. For instance, my blog uses Disqus in preference to the default WordPress comment system, because I find it’s far more flexible and powerful. It offers threaded comments, as well as support for readers logging in via Twitter, Facebook, Yahoo!, OpenID or Disqus, which means they can use an existing account to submit their comment rather than having to go through the rigmarole of signing up, which can dissuade people from commenting. Also, it offers fine-grained control of moderation and spam, such as allowing you to blacklist or whitelist commenters, automatically accept comments unless they include a link (very handy for tackling spam comments), and many other useful tools. I’ve also heard good things about IntenseDebate.
  3. RSS feed management – If your site has an RSS feed, you should seriously consider using Feedburner. It’s a great tool that allows you to present your site’s RSS feed in an extremely pleasant way that makes it extremely easy for readers to subscribe using whatever feed reader they like, or by email (always worth having because it’s ideal for people who don’t know what an RSS feed is). It also allows you to add easy ways for users to share your content from within the feed, or for you to add Google AdSense to the feed itself if you wish.
  4. A way to share content – Again, this is more blog-specific than something suitable for a static site, but you should make it easy for people to share posts they like with friends or submit them to social bookmarking sites. It’s probably to your benefit to do so since this will not only send more traffic to your site, but will mean you gain additional links to your site, improving its ranking in Google searches. Some WordPress themes include a way to share content, but other themes, or different blogging engines, may not offer this so an alternative way to share is helpful. In particular, I can recommend AddThis as a good choice.
  5. AdWords - If your site is something you’re hoping to make money from (such as an e-commerce site, or you’re hoping to attract people there to hire your services), then it makes sense to advertise. While I don’t wish to sound like one of those self-appointed “social media experts” who haunt Twitter, you do need to make an effort to get your name out there, and Google AdWords is a really great way to do that cheaply and easily. You only need to pay when someone clicks on an ad, and they only show up in relevant places.

What other services would you recommend using with a new website?

Exam tomorrow

Just a short note to say that tomorrow morning I have my CIW JavaScript Fundamentals exam. Hopefully I should be able to pass first time (although I’m not impressed by how inaccurate the practice exams are, and how out of date the training materials are), and should then be able to get on with learning Perl next. I’m looking forward to learning Perl, as it’s more the kind of thing I’m interested in than JavaScript is.

Why is Chrome so popular all of a sudden?

I don’t know how or when it happened, but suddenly I’ve noticed that a hell of a lot of people I wouldn’t normally expect to pay much attention when someone nags them to update their web browser are using Google Chrome. Non computer-savvy work colleagues are using it, and even my father has dumped Internet Explorer 8 in favour of Chrome – yet he wouldn’t consider Firefox despite my years of virtually begging him to switch!

In May 2010, the statistics on W3Schools.com are quite telling. Google Chrome makes up 14.5% of the hits on the site, which is higher than either IE6 or IE7 – IE8 is the only version of Internet Explorer that’s still ahead. Chrome is still behind Firefox, which takes up a huge 46.9% of the hits, but it’s not bad for a browser that’s been out for less than two years. More notably, Chrome has increased its market share by around 5% in the last six months, while IE6 has declined by a little over 3%. Granted, W3Schools is likely to be frequented mostly by web professionals who use more modern browsers, but in terms of the decline of IE6 at least, they’re backed up by Statcounter, who have reported that IE6 usage has fallen below 5% for the first time.

This can’t be a bad thing – Chrome’s one of the fastest and most standards-compliant browsers around and has some of the best support for HTML5 and CSS3, as well as fast and efficient execution of JavaScript. It also has one of the best security records of any modern web browser – it’s consistently been the only desktop web browser to survive the Pwn2Own contest unscathed.

But why is this happening? Accepted wisdom for some time has been that non-technical users just use whatever browser comes with their computer, thus giving IE a huge advantage, but the increasing popularity of Chrome runs counter to this, so it’s clearly more complex than that. So much of its growth has been very recent that I don’t think it’s likely to be technically adept users, many of whom are already attached to Firefox or Safari (I still use Firefox sometimes myself, although for most things I’ve switched to Chrome).

I think part of the reason is the fact that Google are dropping IE6 support on their sites, particularly YouTube, which is a hugely popular site, thus forcing people to ditch IE6 for something else. Naturally, Google provide links to download Chrome on the site, so maybe people are just going for the first alternative they see that will work.

Have you noticed this? Why do you think some non-technical users are switching to Chrome when they wouldn’t switch to Firefox?

Is Dreamweaver the best choice for developing your first website?

If someone asks you to name an application for creating web pages, the chances are that one of the first things you’ll think of is Adobe Dreamweaver. While it may not have quite as much mindshare as its Creative Suite stablemate Photoshop, it’s still regarded as the premier application for creating web pages.

However, that status leads to many novice developers, or ordinary people who just want to set up one website, thinking that they need to use it, and that’s completely wrong. At work we have an intranet with a discussion forum, and someone with no experience of creating web pages was asking for advice on the best application to use to create a website, and of course someone suggested Dreamweaver, something I strongly disagree with.

So, if you’re wanting to build a basic website, and are thinking Dreamweaver might be the way forward, you might want to bear these points in mind:

  1. HTML was intended right from the start to be reasonably easy to use, so why not just write HTML? I learned the basics in a weekend, and there’s plenty of good resources around, so rather than shell out for a copy of Dreamweaver, just get a book about it and work through that. It’s a useful skill to know and it costs a lot less, and the resulting web page will be easy to maintain. Granted it may not be that impressive to start with, but there’s nothing stopping you refining it over time.
  2. You probably don’t need to mark up web pages yourself at all. There are many excellent content management systems that make it easy to build a website yourself without having to write any HTML or CSS at all. WordPress is capable of static pages and blogs, is easy to theme, and can be extended with plugins. Drupal or Joomla are also possibilities, so the chances are it’s not necessary to hand-code the page at all.
  3. If you’re only after a basic site and you don’t have any interest in creating any other web pages, but you want something that looks professional, then forget Dreamweaver and hire a freelance web designer to create the page for you. For a small site they’ll probably cost less than buying a copy of Dreamweaver, they’ll be able to create a much more professional-looking result and they’ll be able to help you with other issues that arise.
  4. Is it the most cost-effective WYSIWYG editor for what you want? The world is full of WYSIWYG HTML editors, many of which are free, others of which are a lot cheaper than Dreamweaver. Okay, you could just use a trial version of Dreamweaver for free, but what about if you want to edit your site later on after your trial has expired? And yes, you probably could use a pirate copy, but is it really worth the bother when something else will probably do the trick? Some great alternative HTML editors include:

    There are many more cheap or free HTML editors around, which make great alternatives to Dreamweaver for inexperienced users.

  5. Dreamweaver is a powerful tool, but it’s not a magic bullet – it won’t make you able to create a great website, any more than a copy of Microsoft Word will make you a great writer. Dreamweaver’s a professional application, with a price tag to match, and it takes experience to use it properly. In the hands of an experienced web professional, Dreamweaver can create a great website, but in unskilled hands the results are going to be less than satisfactory.

What do you think? Is Dreamweaver a good choice for making your first (or indeed only) website, or not?

Go to Top