Below is a listing articles that are from the blog that you selected. To get a quick summary of the post
click on the title of the article that you want to know more about. If you want to go to the blog's homepage click on the
arrow which is next each article.
Seopher.com RSS Feed
Seopher.com RSS Feed
Rejecting paid reviews - the ethical dilemma. Tonight I did, and here's why...»»
It's always an honour when a software developer wishes to pay you to review their creation on your website. It represents a financial investment on their part; a leap of faith even. They might end up paying $100 for an honest but damning review of their product, condemning its very existence.
As such, tonight, I've declined my first ever review.
I have a good history of reviewing things
I'm always honest and almost never 100% positive. Whatever I do I aim to be constructive and this allows the creator a return on their investment. Aside from the SEO boost of the keyword-rich back-links they also get a brutally honest opinion from someone experienced in this field.
Tonight I was requested to review a piece of software, a key-logger to be precise. I won't link the exact one in question because that would be entirely unfair on the developer, but ethically I can't review something I don't agree with in principal.
Key loggers are legitimate pieces of software and technically have good reason for existing; it allows parents to keep a passive view of what their kids are doing on the Internet. However, even overlooking all the potential mis-use of such software, I personally think that key-loggers are too invasive - even for family security.
Aside from the wonders of denial, you really don't want to know what your kids are searching for or saying on the Internet.
You really don't. I'm not a parent but I was once a teenage boy with Internet and I know first hand that it's better for all involved if the life lessons learned were done so privately.
I simply don't trust software that has to work so hard to convince you that it has legitimate purposes.
As such, this brings me to my point.
As a blogger with aspirations of making money online, you need to make decisions like these. Do you accept whatever offers come your way because they help you achieve your goals, or do you stick to your ethical guns?
In this instance I stuck to my guns and have no second thoughts about doing so. I always review honestly and I wouldn't be giving the software developer value for money if I object to the fundamental nature of the application; then they're just paying for me to announce why I don't like key-loggers.
So ask yourself the same question - if you're blogging in the pursuit of making money, are there things you're not prepared to do?
Concrete5: The best open source CMS you aren't using yet»»
One of the biggest challenges as a web developer is finding a content management system that you're happy with. Or indeed, a suite of them suitable for the wider range of clients and projects you encounter. I've recently become a fan of Concrete5, but it isn't without its flaws.
Let's take a step back and address what I need.
For small, simple content managed sites there's Wordpress. Easy for clients to use, relatively easy to template and pretty scalable. Well documented and open-source means that clients aren't tied to some proprietary system and that's how I like it. If either of us aren't happy with how the relationship is going then their site can be managed by any respectable PHP developer.
However, once you start getting more involved requirements Wordpress can seem a bit cosy very quickly. You either need to make bespoke extensions (plugins) or become tangled in a web of increasingly rich taxonomies (managing everything as posts), Wordpress has its limitations. It's this next non-enterprise tier that is such a desirable territory for a CMS to reside.
Concrete5 is the prettiest, most intuitive CMS I've used
By default, C5 has a really rich feature-set and class-leading editing. Things like Drupal and Silverstripe are technically more powerful but are both hampered by interfaces which would confuse and annoy clients. Granted, this comment normally unleashes the hatred of the Drupal developers but I'm still waiting for a demonstration that is client-facing and intuitive. Powerful it is, but the admin area is not for the digitally shy.
Concrete5 has two really wonderful features which tend to win favour with clients:
1/ Put any kind of block wherever you like Clients love the notion that they can put any kind of content in any kind of content region. As a developer this makes me happy too. It means if I'm sensible in how the template is created, the primary content region negates the need for 4-5 other templates (as other CMS's may need). Clients can then put rich text, youtube videos, dynamically generated forms, etc. straight into the page using simple interfaces - no pasting of HTML here.
2/ Edit in-page Contextual editing always sits better with clients than when they edit content away from the page. It means they can quickly see how their content maps into the page region, rather than dumping content into a WYSIWYG editor in the administration area somewhere and trusting it'll appear fine in page. C5 launches an overlay for you to enter content into, submit that and it shows you that content in situ. Clients like this. Clients get this. Therefore I like this.
It's not all roses though, some bits need improvement
While C5 is the best I've used (by some measure), there are a few frustrating elements. The documentation is light and you tend to rely on the community to have posed and solved your exact problem - which isn't always the way. This can make working with C5 for the first time quite a frustrating experience - so there can be a bit of a learning curve when you break out of conventional requirements.
Structured data-sets would make this unstoppable The single biggest gripe I have with C5 is that it is frighteningly close to "the answer" but isn't quite there. Every content-managed website I've ever built for a client needs some form of "extra-bit". An interactive Google Map with office addresses, news, events, etc. Some of these can be achieved conventionally, but invariably you need to create some form of data structure which you can then use PHP to query. C5 doesn't natively give you this. Yet it's close.
To create a content-managed list of offices (say, name, address, latitude, longitude) you need to create a "package" to do this. Which means creating a new database table, then code the edit interface for this in the admin area (adhering to a loose MVC setup), then retrieve this through PHP for whatever front-end use you need.
However, C5 has this notion of "blocks", which are lumps of content. You can create new block-types, so you can define a block for "office" consisting of four text-fields. C5 handles the storage of this (negating any bespoke DB changes). C5 handles the editing and validation of this (through the native interface). Hell, using the Scrapbook or Stacks you can even group these things together. You just can't query them.
For C5 to achieve greatness, it needs to add this one piece of functionality We can already design new block types, we just need some kind of wrapper to simplify the querying and output of them. It seems pointless to continually write new packages to store content that the CMS is already able to. Writing new models to retrieve these when this could all be centralised.
If a wrapper was written to allow you to create "collections" of single-type blocks, which you could query for given attributes with the normal helpers available (pagination being a key one) the amount of bespoke extensions needed to make the CMS full-featured would decrease dramatically per instance.
Concrete5 conclusion
I love lots of things about C5. Creating custom views for blocks, default-blocks for pages and the big lumps of native functionality make it a really easy system to work with. Clients love the simple, intuitive interface. It handles basic workflow and permissions gracefully. It's really easy to theme and, assuming you're decent at PHP, it's not difficult to create new packages for. It's let down by light documentation and being perilously close to victory - add collections and it'll be there.
It's unquestionably the CMS against which all competitors are evaluated for me now, and it has won every comparison thus far.
Review: Online Logo Maker (and the online icon maker)»»
I'm always excited to undertake sponsored reviews because it forces me to look objectively at a website, piece of software or service that I may not have encountered otherwise. This time I've been approached by the creator of the Online Logo Maker.
One of the most important things to announce when looking at this application is that it's a free web-app. It's not even monetized so that always helps me calibrate how I review. If someone is charging $100 for a license then you expect it to be brilliant, whereas free things you are willing to accept flaws. It's simple.
So what is the Online Logo Maker? It is what it says on the tin. It's a basic online application with allows you to drag together uploaded images, stock clip-art and text into a downloadable logo.
How much control do you get? You can adjust the size, layout, colour and rotation of any element you add to the stage. You can add basic geometric shapes (although while you can increase their size, the rounded corners don't adjust to these changes, so it is very basic vector based work). You can upload images to, which would help you break out of the fairly basic clip-art on offer.
Is it useful? This is the important question here. It's a fantastic tool, easy to use and fairly customisable and yes, I would say it's useful, but only for a certain tier of work. Ultimately an online application is never going to have the level of quality and control that you'll need to create a fully accomplished logo for a proper business. Let me explain in greater detail;hellip;
Fonts It's hard to understate the importance of fonts and typography in logo design. The impressive functionality of the tool not withstanding, it needs more professional fonts. The ones on offer are more suitable for low-end local business logos than they are polished organisations or websites. Whether it's a licensing issue (fonts can be tricky), introducing the same set that Google offer as part of their web fonts would be a great addition. The selection on offer are too restrictive to be useful - aside from Arial there are no fonts I'd consider suitable for a professional organisation. So my constructive criticism here would be to improve the offering in line with the ones Google offer.
Clip-art While a great addition - allowing you to draft a logo together quite rapidly, the selection covers a wide range of topics but unfortunately, they are absolutely representative of the clip-art stereotype. Imagine the ones you're offered inside Microsoft Office and you're somewhere in the right ballpark. If the set could be increased with a new/wider set, even if some fairly generic shapes were added (such as cubes, orbs; the kind of things you see in generic logos) then it would be more useful.
What is it useful for? Well, it is a good product and whilst not perfectly suited to professional logo creation, it's a great platform for drafting together quick logos (for concepts, wireframes, etc). You can very quickly start pulling ideas together using this tool and the level of customisation means you really can create multiple concepts rapidly. Until the font situation improves I think you'd struggle to use it as part of a legitimate design strategy.
Online Icon Maker In parallel to the online logo maker there is the online icon maker, which is a beautifully simple free tool which takes a strict set of icons and modifies them with your required text and colours - which is actually probably more useful than the tool I was asked to review. There are six icons on offer and the customisation is perfect. You can adjust the text (and text colour) and the two gradient colours used on the icons. Simple! As with the logo maker, this tool is also free.
In summary, two excellent tools but the first flawed by a predictable clip-art set and restrictive fonts. Definitely useful, both of them and definitely items to keep an eye on. Visit the Online Logo Maker. Visit the Online Icon Maker.
Goodbye Steve Jobs - inventor, innovator and icon»»
Today the world lost one of the most celebrated innovators; someone who catalysed technological advance, polarised opinion and helped architect the modern world. Today, I'm mourning the (somewhat inevitable, but no less upsetting) loss of Steve Jobs, Apple CEO at the young age of 56.
The iPod completely changed the music industry (albeit not the first mp3 player, the marketing and product made it an instant hit). The iPhone brought revolution to the mobile phone market and painfully dragged competitors into creating better devices, platforms and frameworks. The iPad utilised the huge success of the iPhone and leveraged the growing tablet market. The "post PC" world as Steve called it was entirely dominated by products created during his tenure.
I have huge respect for the man. A man whose passion for technology transcended his visably deteriorating health. A man who - as CEO - was more convincing than some of the best PR and sales people I've seen. A man who deserves his place alongside celebrated inventors such as Edison.
Five years ago I wrote an article explaining why you should respect Steve Jobs and while I won't repeat the obvious business credentials he harboured, the fact that post pre-dates the announcement of the iPhone shows how much he's influenced the modern world before his crowning achievement. The iPhone has sold more than 100 million units worldwide - completely changing the market.
I'm not even accounting for the might of the myriad of Apple products available today, but his legacy goes beyond these consumer goods. The way items created during his tenure changed the way people interacted with technology and changed their expectations of competitors has opened the door to a bright computing future.
Five years ago I wrote an article stating that "as a Windows/Linux user I find it hard to accept that Mr. Jobs has done marvelous things to Apple and I think that there are more people in my position who maybe don't appreciate how successful he has been". I sit here as someone who uses an iPhone, iPad and Macbook Pro, completely enamoured with the quality of Apple products.
I think president Obama said it best in his wonderful, heartfelt statement:
"Steve was among the greatest of American innovators ;ndash; brave enough to think differently, bold enough to believe he could change the world, and talented enough to do it."
"The world has lost a visionary. And there may be no greater tribute to Steve;rsquo;s success than the fact that much of the world learned of his passing on a device he invented."
If the world was filled with more people who shared his passion for a given topic and wished to challenge the boundaries of what is possible.
RIP Steve Jobs 1955-2011.
I leave this as one of my favourite presentations Steve made. Thanks for everything, today is a sad day.
It has always amazed me quite how many incredible, varied and useful applications are available for free on the Internet. Be it free, open source, web-based or merely passive trials - the number of top quality items on offer is huge.
The purpose of this list is to help people realise that the free and open source software communities are expansive and generous. In these tense economic times, raising awareness of such projects is something I'm more than happy to do. If you feel that I've missed something good off the list, please leave a comment at the bottom - I read absolutely every one.
GIMP ;ndash; http://www.gimp.org The GNU Image Manipulation Program is a Photoshop replacement that doesn;rsquo;t have "quite" as much functionality but it;rsquo;s excellent for free. It comes installed by default on many Linux distros and is also available in Windows. Worth a look.
Inkscape - http://www.inkscape.org/ Inkscape is an Open Source vector graphics editor, with capabilities similar to Illustrator, Freehand, CorelDraw, or Xara X using the W3C standard Scalable Vector Graphics (SVG) file format.
Paint.net - http://www.getpaint.net A really good, lightweight alternative to Photoshop. It offers layers, unlimited undo, special effects and a wide variety of useful tools. The download is around 2mb too so absolutely worth a look ;ndash; I use this when Photoshop is playing up.
ImageMagick - http://www.imagemagick.org/script/index.php A lesser known application but it offers the ability to "create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (about 100)". Use it to "translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and B?zier curves."
Irfanview - http://www.irfanview.com/ IrfanView is a very fast, small, compact and innovative freeware graphic viewer for Windows. IrfanView was the first Windows graphic viewer worldwide with Multiple (animated) GIF support. One of the first graphic viewers worldwide with Multipage TIF support. The first graphic viewer worldwide with Multiple ICO support.
Google Sketchup - http://sketchup.google.com/ SketchUp is a 3D modeling program designed for professional architects, civil engineers, filmmakers, game developers, and related professions. Sketchup may also be used to design buildings to be displayed on Google Earth. It was designed to be more intuitive, flexible, and easier to use than other 3D modeling programs, which often have steep learning curves.
Artweaver - http://www.artweaver.de/index.php?en_version Artweaver is a simple Freeware program for creative painting, i.e. Artweaver offers you all artistic effects which you need for your work. You can create sketches from photos and experiment with a wide range of brushes. The brush simulation is thereby so realistic as possible.
Office
OpenOffice ;ndash; http://www.openoffice.org It;rsquo;s basically Microsoft Office so you need little else with this installed. It has MS Office support (in both reading and writing) so this fantastic suite is fully compatible.
Wink - http://www.debugmode.com/wink/ Wink is a freeware screen-capture and tutorial-creation program written by Satish Kumar. It supports many features such as input-based capture and text annotations. Navigation buttons can be added to any presentation and the bitmaps for all presentation controls can be edited. Wink also has multilingual support and can be used in English, French, German, Italian, Danish, Spanish, Serbian, Japanese, Brazilian Portuguese and Simplified/Traditional Chinese.
Scribus - http://www.scribus.net/ Scribus is an open-source program that brings award-winning professional page layout to Linux/Unix, MacOS X, OS/2 and Windows desktops with a combination of "press-ready" output and new approaches to page layout. Underneath the modern and user friendly interface, Scribus supports professional publishing features, such as CMYK color, separations, ICC color management and versatile PDF creation.
Google Documents - http://docs.google.com/ Google documents is a free service that simply requires registration in order to use it. You create Microsoft-Office-esq documents in an online environment and they store them on their servers. You can export them and save the files to your hard drive too. In addition, Google allows multiple user collaboration which means numerous people can all be working on the same document at the same time and it will update in real time. Very cool stuff.
Foxit - http://www.foxitsoftware.com/pdf/rd_intro.php Foxit Reader is a free PDF document viewer and printer, with incredible small size (only 2.1 M download size), breezing-fast launch speed and amazingly rich feature set. Foxit Reader supports Windows 98/Me/2000/XP/2003/Vista. Its core function is compatible with PDF Standard 1.7.
Web and web development
Firefox - http://www.mozilla-europe.org/en/products/firefox/ Firefox is arguably the second most popular browser available (sitting behind the various Internet Explorers). It's extendable, customisable, secure and massively popular. You can develop plugins for it, other people develop plugins for it - it's just worth having. You almost certainly already have it.
Opera - http://www.opera.com This is my personal browser of choice, sexy tabbed browsing, customisable, standards complient and fast. As they put it themselves: "The award-winning Opera Web browser The coolest, fastest, and most secure free Web browser available."
Opera web developer toolbar - http://operawiki.info/WebDevToolbar The web developer toolbar is a menu and toolbar setup for Opera which brings together functions related to web development, validation services and links to standards and other documentation.
Amaya - http://www.w3.org/Amaya/ Amaya is a Web editor to create and update documents directly on the Web. Browsing features are seamlessly integrated with the editing and remote access features in a uniform environment. This follows the original vision of the Web as a space for collaboration and not just a one-way publishing medium. Amaya started as an HTML + CSS style sheets editor. Since that time it was extended to support XML and an increasing number of XML applications such as the XHTML family, MathML, and SVG. It allows all those vocabularies to be edited simultaneously in compound documents.
Notepad++ - http://notepad-plus.sourceforge.net/uk/site.htm Notepad++ is a free source code editor (and Notepad replacement), which supports several programming languages, running under the MS Windows environment.
Kuler - http://kuler.adobe.com/ A very powerful colour-picking tool, allowing for the easy creation of colour schemes.
Aptana - http://www.aptana.com/ The Aptana IDE is a free, open-source, cross-platform, JavaScript-focused development environment for building Ajax applications. It features code assist on JavaScript, HTML, and CSS languages, FTP/SFTP support and a JavaScript debugger to troubleshoot your code.
Color Cop - http://colorcop.net A very handy tool for capturing colours anywhere on your screen. Color Cop makes it quick and easy in those situations where you need to know what colour is being used.
Firefox web developer toolbar - https://addons.mozilla.org/en-US/firefox/addon/60 The Web Developer extension adds a menu and a toolbar to the browser with various web developer tools. It is designed for Firefox, Flock, Mozilla and Seamonkey, and will run on any platform that these browsers support including Windows, Mac OS X and Linux.
Internet Explorer Toolbar - [another long url] The Microsoft Internet Explorer Developer Toolbar provides a variety of tools for quickly creating, understanding, and troubleshooting Web pages. This version is a preview release and behavior may change in the final release.
Firebug - http://www.getfirebug.com/ Firebug integrates with Firefox to put a wealth of web development tools at your fingertips while you browse. You can edit, debug, and monitor CSS, HTML, and JavaScript live in any web page.
Wave - http://wave.webaim.org/ With the demise of Watchfire Bobby and WebXact, WAVE has become a great automated online accessibility tool. Either link to a site, paste in the code or upload a file and it will give you a detailed breakdown of how accessible your work is.
JsUnit - http://www.jsunit.net/ JsUnit is a Unit Testing framework for client-side (in-browser) JavaScript. It is essentially a port of JUnit to JavaScript. Also included is a platform for automating the execution of tests on multiple browsers and mutiple machines running different OSs.
Xenu - http://home.snafu.de/tilman/xenulink.html Xenu;rsquo;s Link Sleuth (TM) checks Web sites for broken links. Link verification is done on "normal" links, images, frames, plug-ins, backgrounds, local image maps, style sheets, scripts and java applets. It displays a continously updated list of URLs which you can sort by different criteria. A report can be produced at any time.
Vischeck - http://www.vischeck.com/vischeck/vischeckURL.php Vischeck is a way of showing you what things look like to someone who is color blind. You can try Vischeck online- either run Vischeck on your own image files or run Vischeck on a web page. You can also download programs to let you run it on your own computer.
Feng GUI - http://www.feng-gui.com/ Find out how people View your website or image and which areas are getting most of the attention. The ViewFinder Heatmap service, is an artificial intelligence service which simulates human visual attention and creates an attention heatmap.
Fiddler - http://www.fiddlertool.com/fiddler/ Fiddler is a HTTP Debugging Proxy which logs all HTTP traffic between your computer and the Internet. Fiddler allows you to inspect all HTTP Traffic, set breakpoints, and "fiddle" with incoming or outgoing data. Fiddler includes a powerful event-based scripting subsystem, and can be extended using any .NET language.
browsershots.org - http://browsershots.org/ Browsershots.org is a free open-source online service providing screenshots of your web site in a multitude of different browsers. It is not as advanced as BrowserCam but a fantastic tool none the less.
Expresso 2.1 - http://www.ultrapico.com/Expresso.htm Expresso is useful tool for learning how to use regular expressions and for developing and debugging regular expressions prior to incorporating them into your code. It provides a very cut down version of RegexBuddy but most importantly it is simple to use and free.
ColorJack - [very long url] ColorJack is an amazing online application providing users with the ability to match colours that work well together. Perfect for those developers who struggle to get a good colour scheme together.
Development Applications (IDE's)
Eclipse - http://www.eclipse.org/ Eclipse is an open source community whose projects are focused on building an open development platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across the lifecycle. It;rsquo;s quite hardcore in my personal opinion so certainly not one for beginners.
NetBeans - http://www.netbeans.org/ All the tools software developers need to create cross-platform Java desktop, enterprise and web applications. Runs on Windows, Linux, MacOS, as well as Solaris. I never got on well with NetBeans but it is a good application, just not one I choose.
Geany - http://geany.uvena.de/ Geany is a text editor using the GTK2 toolkit with basic features of an integrated development environment. It was developed to provide a small and fast IDE, which has only a few dependencies from other packages. It supports many filetypes and has some nice features
Code::Blocks - http://www.codeblocks.org/ A free c++ IDE built to meet the ;ldquo;most demanding needs of its users;rdquo;.
Zend Studio - http://www.zend.com/products/studio While not strictly free, once your trial period expires only a subset of the functionality gets turned off. The really useful bits such as code compete, syntax suggestion and its own SVN client remain fully operational. In reality the only stuff I've found frustrating is that the rename functionality is removed unless you buy the license. Alternatively you could obtain Zend certification and in turn receive a free license - your call.
Operating Systems
Ubuntu - http://www.ubuntu.com The most popular Linux distro at the moment - offering astonishing performance, usability and support (from a massive online community) all for free.
PCLinuxOS - http://www.pclinuxos.com/ One of my favourite Linux releases; PCLinuxOS is very different to Ubuntu but powerful and usable in equal measures. I find it a lot more intuitive but purely though personal preference. It too is supported by a healthy community.
Fedora - http://fedoraproject.org/ I'm not a Fedora user but there are an awful lot of them. Fedora was the daddy long before Ubuntu appeared on the scene and therefore it inherits a lot of excellent features from how long these guys have been doing it. Excellent software, strong communities and worth a look. This is Linux too incase you didn't know.
openSUSE - http://www.opensuse.org/ Quoted as being one of the more fully featured, usable editions of Linux - openSUSE has a lot of users and is one of the major players in the scene today.
Lots more Linux! - Distrowatch has info on lots more Linux is free and it is becoming a viable alternative to Windows these days; here is Distrowatch - a site that links to reviews on each release as well as offering a brief description, background and links.
Video Playback and Editing
Media Player Classic - [long url] Amazingly lightweight and incredibly durable - MPC succeeds where most others fail. It really will play anything and doesn;rsquo;t even need installing.
Apple Quicktime - http://www.apple.com/quicktime/download/ If you've managed to get this far through life without experiencing Quicktime, then you're probably suffering from Alzheimer's. Quicktime is a commonly used media playback application (you probably already have it installed).
VLC Media Player - http://www.videolan.org/vlc/ A very popular application; a highly portable multimedia player for various audio and video formats. It will play just about anything too.
VirtualDub - http://www.virtualdub.org/ It's a bit like a really cut down, free version of Adobe Premier... VirtualDub is mainly geared toward processing AVI files, although it can read (not write) MPEG-1 and also handle sets of BMP images. Worth a look.
Youtube - http://www.youtube.com Youtube is maybe an odd choice to put into the video playback area but there's a good reason for it. You can upload your videos to Youtube quite happily for free and there are hundreds upon thousands of hours of footage on there. From the illegal to the completely random Youtube has more video playback options than your wildest dreams.
CamStudio - http://camstudio.org/ This is actually a screencasting utility so it doesn't really fit into this category very well... CamStudio is able to record all screen and audio activity on your computer and create industry-standard AVI video files and using its built-in SWF Producer can turn those AVIs into lean, mean, bandwidth-friendly Streaming Flash videos (SWFs).
Audio
Audacity - http://audacity.sourceforge.net/ Audacity is free, open source software for recording and editing sounds. It is available for Mac OS X, Microsoft Windows, GNU/Linux, and other operating systems.
Songbird - http://www.songbirdnest.com/ Songbird is a desktop media player mashed-up with the Web. Songbird is committed to playing the music you want, from the sites you want, on the devices you want, challenging the conventions of discovery, purchase, consumption and organization of music on the Internet. Songbird is a popular alternative to Apple's iTunes.
iTunes - http://www.apple.com/itunes/download/ iTunes is one of the world's most popular audio applications, although it breaks through that label by allowing users to purchase media online, schedule podcasts, view artist information etc. Very popular.
Winamp ;ndash; http://www.winamp.com While not open source, it is free and very good indeed. Far better than iTunes in my personal opinion.
MusikCube - http://www.musikcube.com/ Another iTunes alternative - very good, just really a matter of personal taste in the end.
Amarok - http://amarok.kde.org/ This is one of the best media players I have ever encountered, unfortunately it's purely limited to Linux (KDE environments only) so it's beyond the reach of Windows users and the "Ubuntu mainstream". It's amazing though and I highly recommend it.
Foobar2k - http://www.foobar2000.org Foobar2000 is an advanced audio player for the Windows platform. Some of the basic features include full unicode support, ReplayGain support and native support for several popular audio formats.
Antivir - http://www.free-av.com/ A free antivirus application (although it doesn't detect spyware). It apparently has one of the best detection rates out of the free antiviruses on offer.
Clamwin - http://www.clamwin.com/ A free antivirus with a high detection rate for infected files. It's not very invasive because it doesn't do on-access virus scanning - you specifically need to say which folders to scan. This is both good and bad - good if you're IT savvy because you don't need on access scanning because you're not stupid enough to do "dodgy" things unprotected. It's bad if you're not because it won't tell you that there's a problem until you tell it to look.
Comodo Firewall - http://www.comodo.com/products/free_products.html Comodo Firewall, rated by PC Magazine Online as an Editor's Choice, constantly monitors and defends your PC from internet attacks. It's easy to install and use and passes the industry's most stringent firewall "leak" tests.
Windows Defender - http://www.microsoft.com/athome/security/spyware/software/default.mspx Windows Defender is a free program that helps protect your computer against pop-ups, slow performance, and security threats caused by spyware and other unwanted software. It features Real-Time Protection, a monitoring system that recommends actions against spyware when it's detected and minimizes interruptions and helps you stay productive. It's Microsoft though, but good enough I suppose. Not my sort of thing but a lot of people use it.
Orbit - http://www.orbitdownloader.com/ Orbit Downloader, leader of download manager revolution, is devoted to new generation web (web2.0) downloading, such as video/music/files from Myspace, YouTube, Imeem, Pandora, Rapidshare. And to make general downloading easier and faster.
Utorrent - http://www.utorrent.com/ The single best torrent application available. I've used many many alternatives and this is the single greatest one around. It has a tiny footprint (only a few Kb of RAM) and doesn't need installing. Excellent.
SmartFTP - http://www.smartftp.com/ SmartFTP is an FTP (File Transfer Protocol) client which allows you to transfer files between your local computer and a server on the Internet. With its many basic and advanced features SmartFTP also offers secure, reliable and efficient transfers that make it a powerful tool.
eMule - http://www.emule-project.net/home/perl/general.cgi?l=1 eMule is one of the biggest and most reliable peer-to-peer file sharing clients around the world. Thanks to it's open source policy many developers are able to contribute to the project, making the network more efficient with each release.
Azureus - http://azureus.sourceforge.net/ One of the most popular torrent clients available, this Java built monster does the job very well. My gripe with it is that it munches it's way through your RAM at an alarming rate (being a Java application). Good though, just a bit hungry for machines are left online 24/7/365 like mine is.
Flashget - http://www.flashget.com/en/download.htm FlashGet is a leading download manager and has the highest amount of users on the internet. It uses MHT(Multi-server Hyper-threading Transportation) technique, supports various protocols and has excellent document management features. FlashGet is a freeware without any adware or spyware.
Freedownloadmanager - http://www.freedownloadmanager.org/ FDM is a powerful, easy-to-use and absolutely free download accelerator and manager. Moreover, FDM is 100% safe, open-source software distributed under GPL license.
Remote Access
rDesktop - http://www.rdesktop.org/ rdesktop is an open source client for Windows NT Terminal Server and Windows 2000/2003 Terminal Services, capable of natively speaking Remote Desktop Protocol (RDP) in order to present the user's NT desktop. Unlike Citrix ICA, no server extensions are required.
TightVNC - http://www.tightvnc.com/ TightVNC is a free remote control software package derived from the popular VNC software. With TightVNC, you can see the desktop of a remote machine and control it with your local mouse and keyboard, just like you would do it sitting in the front of that computer.
UltraVNC - http://www.uvnc.com/ UltraVNC is a powerful, easy to use and free software that can display the screen of another computer (via internet or network) on your own screen. The program allows you to use your mouse and keyboard to control the other PC remotely. It means that you can work on a remote computer, as if you were sitting in front of it, right from your current location.
LogMeIn - https://secure.logmein.com/home.asp?lang=en Their website states "20 million users trust LogMeIn solutions for remote support, access ;amp; backup" so that probably says enough.
Putty - http://www.chiark.greenend.org.uk/~sgtatham/putty/ I wasn't quite sure where to put Putty but I was certain that it needed to be in this list - I use it on a daily basis for remoting into servers, connecting to MySQL databases etc... It's simple and a vital application.
Useful Applications that don't get their own category
CDBurnerXP - http://cdburnerxp.se/ This is an amazingly useful, free burner application. Although I don't believe it works on Vista yet...
AutoHotKey - http://www.autohotkey.com/ AutoHotkey is a free, open-source utility for Windows. With it, you can automate almost anything by sending keystrokes and mouse clicks. You can write a mouse or keyboard macro by hand or use the macro recorder. It's a very useful application and worth a look - especially good for those with limited finger dexterity - because it can automate short-hand typing into long-hand (if set up correctly).
Visuwords - http://www.visuwords.com/ This isn't an installable application but rather a very cool online dictionary/thesaurus. You enter a word and it graphically models that word, with various uses and synonyms mapped around it like a mind-map. A very cool free "service" for writers.
Notepad2 - http://www.flos-freeware.ch/notepad2.html It's basically notepad but more helpful for doing code and stuff in. It's just notepad with more functionality; which makes life a bit easier. Code highlighting is handy and it doesn't need installing and it doesn't touch your registry. It's safe, simple and very useful.
VIM - http://www.vim.org/ Vim is an advanced text editor that seeks to provide the power of the de-facto Unix editor 'Vi', with a more complete feature set. It's useful whether you're already using vi or using a different editor.
Synergy - http://synergy2.sourceforge.net/ Synergy lets you easily share a single mouse and keyboard between multiple computers with different operating systems, each with its own display, without special hardware. It's intended for users with multiple computers on their desk since each system uses its own monitor(s).
Quicksilver - http://qsapp.com/ When opened, it will create a catalog of applications and some frequently used folders and documents. Activate it, and you can search for and open anything in its catalog instantly. The search is adaptive, so Quicksilver will recognize which items you are searching for based on previous experience. It also supports abbreviations, so you can type entire words, or just fragments of each. When not in use, Quicksilver vanishes, waiting for the next time you summon it. OSX only though...
7Zip - http://www.7-zip.org/ WinRAR and Winzip need paying for (eventually), 7zip is free and does the same thing. That's it really.
JZip - http://www.jzip.com/ Create, open and extract Zip, TAR, GZip and 7-Zip. Open and extract from RAR and ISO. No surprises then.
Google Desktop - http://desktop.google.com/ This is a surprisingly useful application to have. It has desktop search (it searches through all your files and folders for what you've searched for, including your email - which is VERY useful). It will also do RSS updates straight to your desktop, news updates, weather information, to-do lists, notepads, you name it. It does it all.
GNU Cash - http://www.gnucash.org/ GnuCash is personal and small-business financial-accounting software, freely licensed under the GNU GPL and available for GNU/Linux, BSD, Solaris, Mac OS X and Microsoft Windows. This powerful little app manages scheduled calculations, graphing and any number of things that those too lazy to master a spreadsheet will find useful.
Communications
Skype - http://www.skype.com/intl/en-gb/ Make calls from your computer ;mdash; free to other people on Skype and cheap to phones and mobiles around the world. Enough said really.
Pidgin - http://www.pidgin.im/ Pidgin is a multi-protocol Instant Messaging client that allows you to use all of your IM accounts at once. Pidgin can work with: AIM, Bonjour, Gadu-Gadu, Google Talk, Groupwise, ICQ, IRC, MSN, MySpaceIM, QQ, SILC, SIMPLE, Sametime, XMPP, Yahoo! and Zephyr.
mIRC - http://www.mirc.com/ A little old school now but IRC is still going strong and this is the most popular client in the world.
Trillion - http://www.ceruleanstudios.com/ Trillian is a proprietary multiprotocol instant messaging application for Windows created by Cerulean Studios that can connect to multiple IM services, such as AIM, ICQ, Windows Live Messenger, Yahoo! Messenger, IRC, Novell GroupWise Messenger, Bonjour, Jabber, and Skype networks (the latter four with Trillian Pro which allows for additional plugins).
Servers, techie stuff
Apache - http://www.apache.org/ Apache really doesn't need any explanation as it is the god of the Internet. I'll just include this and no further deriviatives such as Tomcat/JBOSS/whatever.
XAMPP - http://www.apachefriends.org/en/xampp.html XAMPP is an easy to install Apache distribution containing MySQL, PHP and Perl. XAMPP is really very easy to install and to use - just download, extract and start. It comes for Windows, OSX, Solaris and Linux.
PostgreSQL - http://www.postgresql.org/ PostgreSQL is a powerful, open source relational database system. It has more than 15 years of active development and a proven architecture that has earned it a strong reputation for reliability, data integrity, and correctness. It runs on all major operating systems. I used this for the majority of University - it's excellent.
Nagios - http://www.nagios.org/ Nagios is a host and service monitor designed to inform you of network problems before your clients, end-users or managers do. It has been designed to run under the Linux operating system, but works fine under most *NIX variants as well. The monitoring daemon runs intermittent checks on hosts and services you specify using external "plugins" which return status information to Nagios. When problems are encountered, the daemon can send notifications out to administrative contacts in a variety of different ways (email, instant message, SMS, etc.). Current status information, historical logs, and reports can all be accessed via a web browser.
EasyPHP - http://www.easyphp.org/?lang=en EasyPHP is a complete software package allowing to use all the power and the flexibility that offers the dynamic language PHP and the effecient use of databases under Windows. Package includes an Apache server, a MySQL database, full PHP as well as easy development tools for your web site or your applications. This is comparable to XAMPP (see above).
WINE - http://winehq.org/ Again, one I wasn't quite sure what to classify it as (it's definitely NOT an emulator though, heh). Wine is a software application which aims to allow Unix-like computer operating systems on the x86 architecture to execute programs that were originally written for Microsoft Windows. Wine also provides a software library known as Winelib which developers can compile Windows applications against in order to port them to Unix-like systems.
This list of 100+ applications barely scratches the surface of what is out there; but it's a start. If you think I've missed something awesome off this list, let me know via email or in a comment below and I'll add it to the next iteration of this list. I hope this was useful to at least one person.
30 things you need to do to be a great web developer»»
I'm forever being asked what it takes to be a web developer; and it's not as complicated as it might seem. Learning a subset of the overall skills will get you hired, while a good attitude will keep you employed. But is that really all it takes?
Clearly not. I seem to be in a perpetual cycle of interviewing candidates to join the team, vetting contractors, rejecting freelancers and fixing other peoples problems. So while the core skills aren't that demanding, if you're serious about becoming a great developer - this is my interpretation of a desirable list of characterisms, skills, attitudes and experience.
Core skills
I'm not even going to discuss the concept of core skills. If you're even a web developer then you'll be abundantly clear what skillset is required to do your work. This list is to offer insight into what extra bits I think you should have and how to impress your employers.
Accessibility and SEO
I maintain that good SEO is a bi-product of strong accessibility adherence. As such I continually try to educate every single developer I work with that they need to understand this potentially boring topic.
1. Understand basic accessibility standards To be serious in this industry you need to lead from the front - therefore you NEED to know this stuff. Government funded sites for example have minimum standards that must be reached, which can leave your agency in a rather compromised position should it be neglected. Remember the 2001 Sydney Olympics were sued for failing to provide an accessible website. So irrespective of best practice, SEO or any items senior management might try to write off as "nice to have" if timescales are tight - neglect basic accessibility and you might find yourself in a legal struggle.
2. Understand how spiders and bots work Once you have an understanding of how spiders/bots would negotiate a modern website, you'll have a more clear understanding of how to architect the entire solution. Understand how they interpret markup and follow links and you'll probably realise that you're essentially hiding crucial content from them, or making important items completely inaccessible. Remember, spiders and bots don't tend to use JavaScript, so if there's important content in those widgets you're building - make sure it degrades.
3. Use a screen reader once or twice Using an application such as JAWS on websites you've built will help you realise how much of a challenge blind users face on certain sites. Realise how difficult it is to differentiate between links when contextual titles aren't used, or how unhelpful vague alt-attributes can be on images.
4. Familiarise yourself with automated testing tools Automated tools such as WAVE are excellent at flagging obvious problems with websites. Using these for a while will help refine your nose for sniffing out problems. It's not a silver bullet, but it's a handy sanity check. Manually checking huge content-driven websites is probably unrealistic, but if you have set standards to meet, an automated tool can just help mitigate your concerns of major issues sneaking their way into previously verified work.
5. Degrade, degrade, degrade. Or provide an alternate. Understand Hijax. Any developer worth his salt can create a cool bit of functionality; especially with the rise of JavaScript frameworks such as jQuery. The use of animation and AJAX has become commonplace, but remember these should be considered progressive enhancements rather than primary functionality. Understanding Hijax is a good start. Basically, if you're doing something interactive you need to ensure that all the content contained within is accessible without assistive technology, otherwise you need to provide an alternative version. There is zero shame in providing an alternative - sometimes it is favourable to do this than compromise on creativity. Accessibility doesn't win awards, but it'll lose you legal battles.
Security
Every single developer needs to know a basic amount of security stuff; otherwise every site you build will get hacked. But you need to go beyond basic prevention, you need to understand more...
6. Embrace the dark side, learn some hacking skills Either spend some time with a hacker or learn some basic hacking skills. In the same way most home security experts are ex-criminals, the best security-savvy developers know the ways of the dark-side. Apologies for the Star Wars reference, but it exemplifies my point well. When Sidious explains to Anakin that to understand the entire picture one must embrace both the light and dark sides of the force, this is loosely parallel to the point I'm making here. If you know the common points of exploitation then you'll know how to close the gap.
7. Validate in both directions Best practice dictates that you clean your data in both directions; on the way in AND out of the database. It's easy to see this as overkill, rationalising that everything that reaches the database would be clean anyway, so why filter on the way out? That time honoured adage of "what if" comes into play here.
8. Validate against known possibilities I'm not going to tell you to validate your inputs, because you already are. To reach that next level is to demonstrate a more cynical view of the world. So while you'll be using regex to match email addresses, you'll probably be doing quite little with select/radio/checkboxes. Given you know what the expected values are, validate against these. It's just that extra level of protection. 9. Understand how bots abuse forms You might know that adding a captcha to a form helps reduce the abuse, but do you know why? What if someone told you that you couldn't use a captcha - would you know what to do? Having alternative solutions such as token based authentication or using secret form fields to detect suspicious submissions. What about timing how long it takes the user to complete the form? To set yourself above the run-of-the-mill developers you need to have a varied arsenal.
10. Don't take security failings personally A weird point to add, I'm sure you're thinking, but trust me on this one. No matter how long you've been doing this job, no matter how accomplished you are, the enemy continues to evolve. Hackers are clever, bots are innovative and ultimately the goalposts keep moving. The only way the industry catches up is by being caught out and this absolutely happens from time to time. Times when you'll scratch your head and ponder "how the hell did that get through?". Account managers may be questioning your skills and clients may be frustrated, but for a developer it's just another excuse to learn - and one you have to take.
User experience, wireframes and basic interaction
This is one of those areas that developers either don't have an aptitude for, or simply don't enjoy. However, understanding how users interact with sites goes a long way to improving your entire game.
11. Do some background reading Catch up on some good usability material (I find UXBooth to be one of the more enjoyable reads). Anything you pick up will not only improve the way you approach development, but you'll be able to contribute more into the entire process. Visiting such sites once every couple of months will keep you informed of the latest studies which can shape the entire output of the agency. Being able to discuss the merits of certain approaches will definitely earn you points in an interview.
12. Either conduct or watch some user-testing One of the most humbling experiences you can have as a developer is watching a user testing session. Given we're tech-savvy users, we often take for granted how proficient a client's typical customer is likely to be. Sitting in on a user testing session will make you appreciate the significance of consistent messaging. It might even make you re-evaluate how intuitive certain solutions are. It's too easy for us (I'm including everyone inside an agency in the collective 'us') to forget that not everyone uses the Internet all day, every day. What might be a wonderfully signposted e-commerce solution to us might be a daunting, unhelpful, confusing labyrinth for someone else. Seeing this first hand not only gives you career-broadening anecdotes but also a more broad grasp of user interaction. 13. Learn how to wireframe A developer who is happy and confident to produce wireframes is a lovely addition to a digital team. Using wonderful tools such as Axure makes the process more enjoyable too - it isn't just weeks of Microsoft Visio anymore! But understanding how to architect different types of page is an important skill to progress as a developer. Whether or not this skill is within your remit at the agency is moot; being able to flag UX concerns and get your hands dirty at devising a wireframed solution makes the agency better. Collaboration is key. One person doing wireframes isn't as good as two people - extra imagination, extra insight... Challenging ideas, innovating; these are things an exceptional developer does. Building whatever you're given without any input all day, every day is not the way to progress. Learning how to create wireframes is a big step in the right direction.
14. Clickstreams, analytics, reporting One of the most entertaining things you can do as a developer is evaluate how real people are using your websites. Whether that's through generating a clickstream or sifting through your Google Analytics reports - seeing the path users are taking through the site is a rewarding experience. However, go deeper than this. Start looking at where they're dropping off - is there something daunting about the drop-off points? Is the messaging clear? So much of user experience can be done prior to launch, but evaluating performance using real people is far less theoretical. Start taking an active interest in how the sites are performing and whether the pages are working hard enough - these are definitely desirable traits.
15. Heat mapping Whether you're conducting actual user tests or using automated intelligent tools such as those found at Feng-Gui can improve your understanding of page design and user interaction. It's as simple as that really. It'll help you start to spot bad ideas quite rapidly - a handy skill if you're being set KPI's by a client; certain pages need to convert.
Testing and risk management
Unquestionably, testing is a crucial element to being a good developer. It's really important to know a few common failures, yet time-and-time again test your work. Here are some of my key points:
16. Understand that you're not good at testing your own work This is one of the most significant revelations you can have as a developer - and one that you will eventually have. You're not good at testing your own work. The sooner you realise this the better your work will be. Keep in mind that whenever you think "this is finished, 100% tested", rationalise whether you've actually been through every eventuality. Even then, working as a developer invariably means working as part of a team - so ask others to check the site, and in turn expect to test the work of others. You win as a team, you lose as a team.
17. Have a bug tracking system It's never a good position to be in, when you're asked in an interview "what bug tracking method do you use?" and have no answer to give. You don't need to have experience of things like Trac, but an answer that shows insight into your thought process is key. I personally use Google Document Spreadsheets for a lot of smaller projects because it's mobile, collaborative and clear. Having zero strategy shows no enthusiasm to improve the way you work or the quality of your output.
18. Risk analysis A difficult question to answer, but having a grasp of how to mitigate risk on projects - and being able to vocalise it - is a really important part of doing this job to a high level. It's often a case of common sense; do you really want to deploy a new site live at 5.30pm on a Friday? Do you really want to deploy wholesale changes without an easy strategy to revert back in case it all falls down?
19. Bulldoze your way through a broken process A process is only as good as its weakest point, as I keep saying "we win as a team, we lose as a team", it doesn't matter if the process shortfall is in your department or not, if there's viable risk to your work you must bulldoze your way to fixing it. Specifically with roles like project management. A failure in this can result in you deploying a new live site at 5pm on Christmas Eve for a multinational retailer and high-street brand (true story). Explain in great detail the risks associated with what you need to do - I'll guarantee that no-one in the agency wants to make illogical risks. If they ask you to do them, it's likely they don't understand the risks associated. It is your job to ensure this doesn't happen.
20. There is no such thing as "over testing" A website, tool or application cannot be over-tested. I'd be surprised if there has ever been a project completed without a single unknown fault, bug or oversight. Acknowledge that excessive testing is not pointless. The dilemma of "deliver on time but 75% tested vs. late but 98% tested" almost always favours the latter. If it doesn't, you'll wish it had. Clients get upset about late deliveries, but they hate incomplete deliveries more.
Working with other departments
Being a good developer means avoiding the stereotypical insular attitude. Agencies are teams. Teams only play well when every player is contributing and working in the same direction.
21. Love and educate your client services team Account management is a difficult job - they need to be mindful of the financials of the business, meet internal targets and receive the brunt of any client annoyance. If you help the client services team with the awkward nature of their role, the entire agency benefits. Writing technical (yet client-friendly) emails affords them the option to forward it in - saving time they might not have. Explain to them what's going on and work with them on finding comfortable client-friendly ways of rationalising decisions to clients. This keeps you in the loop from a client-satisfaction perspective, but it helps the client services team do their jobs by seeing the full picture.
22. Don't ever, ever lie internally I've seen it countless times. Developers lying about the severity of a situation or how unrealistic their deadlines are is not uncommon. It doesn't matter whether the truth is uncomfortable or not, it needs to be known internally. It doesn't matter if you've personally made a huge error and wish to avoid embarrassment - you need to pick yourself up and take it on the chin. Your feelings mean nothing once a lie has been passed to a client and the entire agency looks foolish. I whole-heartedly subscribe to the "win as a team, lose as a team" mentality - individuals shouldn't be blamed, processes should. If a huge error leaks onto the live server, it doesn't matter who uploaded it or whose code it was, but how it got there unfound is the problem.
23. Project managers are your friend I know it's a common sentiment that PM's are slave-drivers, but they're your friend. They sit between you and the client services team so that any uncomfortable deadline conversations are not your remit. But the relationship goes two ways. If you're running late, let them know - be proactive! If you're not on target, why aren't you? Again, this isn't an exercise in blame but a means of ensuring that they have all the information. Explain why you're behind, how far behind and what you expect the impact to be is. Offer them constructive ways of dragging it back on target.
24. Work closely with the creatives It works both ways - if there's stuff you can't physically do, tell them. If you think they're under-selling how much can be achieved, tell them too. Share innovative links and show them the kind of thing you'd like to build. This sharing of experience and innovation can only benefit the department.
25. Understand that being a web developer isn't always a 9-5 Controversial but part of the lifestyle. When deadlines come knocking it's unrealistic to expect that your involvement will always end at hometime. Granted, this isn't a post about being a developer, but about being a good developer. A good dev is a diligent dev, one who stays late when others are snowed under and doesn't shy away from big deadlines.
Blogging, open source and extra curricular
One of the more interesting things you can have on your CV/application is a blog/website. Why? It can show me that you're looking to do more than clock-in and clock-out.
26. Author a blog about a specific subject Especially if it is within world of web-development. It shows you have passion for the subject and an ambition to be heard. It can indicate how good your written English is, which bits of technology you specialise in and how assured your marketing knowledge is.
27. Build a product to give away or sell As per the blogging point, building something for yourself is a real measure of a different breed of developer. There's so much more to being good at this job than being competent at coding - having an aptitude to innovate, create and market is priceless.
28. Contribute to the open source community This really shows a confidence in your coding and an ambition to improve the development world. Something as simple as this can set you apart from everyone else.
29. Have a successful blog I really must stop bleating about this one point, but I find it so indicative of your understanding of the digital world. Developers who have authored a blog AND had an element of success with it tend to have a more practical and rounded understanding of basic marketing concepts. SEO, copywriting, social media, caching, optimisation and analytics - all of these things are common, transferable skills/knowledge that you obtain chasing success with a blog. Developers who build the site they're told to, test it, deliver it and end their involvement there tend to lack the spark that the bloggers do. Contraversial viewpoint, but a demonstrateable experience of a full website life-cycle is definitely a bonus.
30. Freelance A slightly awkward issue with a lot of agencies; many include in their contracts that you are prohibited from doing freelance while employed by them. I find this a beaurocratic means of telling you to avoid a conflict of interest - i.e. don't do work for clients outside of the agency that are of a size/budget to actually work with the agency. Whereas in reality most developers will do freelance during their career and engineering a solution without the safety net of other developers (or their guidance) shows confidence in your abilities.
30 unconventional points that set a great developer apart from the others. I spend a reasonable amount of time interviewing candidates and while it's common to find a solid developer (good skills in the desired language, good experience) it's rare to find one well-rounded enough that they can make the agency directly more profitable. This list is my individual interpretation of the 'extra' bits that impress me if you have them.