SAAS: A great guide for developers

Software As A Service has become a common concept to day but yet the effort and approaches required to successfully achieve this are complex, various and challenging.

Thankfully Adam Wiggins has written a great article which is also available as a epub for your Kindle called The Twelve Factor App. It walks you through the steps and approaches involved and is well worth a read.

Internet Explorer to Start Automatic Upgrade

Fantastic decision by Microsoft (at last) to start automatic upgrades of Internet Explorer for everyone. As a developer we have all spent time griping about IE 6, its not good for users and its not good for developers. The web is a potentially dangerous place and IE 6 is no longer good enough to keep the user safe. The browser has been criticised repeatedly for its security flaws and the pace of patches being made available to address these. Similarly the advantages of moving to IE 9 are gladly welcomed by all developers I’m sure. IE 6 is now over 10 years old (first released in August 2001) and offers little of the features and capabilities of modern browsers.

Microsoft’s decision to change direction on this will entitle everyone to upgrade to the latest browser remaining safer than ever before and improving how 600 million people experience the web.

Official news from MS on the upgrade and roll out plan can be found on the Windows Team Blog

 

 

Are you agile or just plain lazy?

Agile development has become a buzz word intended to remove much of the problems of traditional software development. However its not easy to actually achieve (in practice). And it is with this thought that I recently realised I’d hired a person who talked up agile but in fact used it as a means to be lazy. If you’d like to avoid this mistake, read on.
Continue reading

My Setup

I was speaking with a good friend the other day who pointed me to http://usesthis.com/. A simple idea: talk to the big players in the now & future space of the software industry and get some insight on who, how they do what they do.

I good ideas deserves copying … And so here is my background on the hardware, software and future desires:

The Hardware:

I recently upgraded to a 15″ MacBook Pro - it works great and doesn’t overheat unlike the baby mac I previously had. I used to use a Lenovo T61 – ugly beast but its served me well and worked hard. When I’m near my desk I connected to a 500GB segate drive, 24″ IIyama display and a overpriced but good mighty mouse.

Also at home I like to listen to music from my old Project Debut II turntable and Mission 701 speakers. I love my vinyl even if I have to constantly get up to flip it over. And for pictures I’ve a second hand Canon 40D. Its not that fancy but very robust – I’ve broken far too many digital cameras so I appreciate its metal chasis. Speaking of which I had to succumb to a marware condom for my iPhone for the same reason.

The Software:

Most of the day to day grind involves Chrome, TextMate and the terminal. Our office has moved very successfully to Google Apps for domains so this frees me from Outlook. I use Aptana for some development work, Tweetdeck to keep up with the world and then theres XCode, Skype, Picasa, Axure, Excel & iTunes. On the server side I’m a big fan of Ubuntu but also resort to Redhat on production environments. In these places its vi, bash, mysql, apache, rails, php & subversion.

What would be the dream setup?

I actually think I’m pretty lucky already. Not to much to add, a QNAP media server and playstation 3 would ease the burden of course and a SSD hard drive would make things move faster – always a necessity. Oh and a Fonera_2.0 router, currently on a bogo cheap thing that needs to be regularly rebooted.

Ideally I’d have a moogle device which would be some kind of google for the mind – it would index the stuff I can’t and do forget every day, oh and can it do the research and the work too please.

Apache – Name Virtual Host errors

For some time now apache has been bugging me that there is a configuration issue with my virtual hosts, so I decided to find out what the issue was and try to resolve it. As it happens the fix was easy but not well documented.
Issue:
[warn] NameVirtualHost *:80 has no VirtualHosts
Resolution:
You can resolve this by ensuring that you virtual hosts are configured correctly. To do this you should have a NameVirtualHost for each of your ports and then be using ServerName within each virtualhost. By configuring apache this way you allow it to correctly interpret requests for different virtual hosts on the same IP Address.
Example:
In my apache2.conf file I have the following declaration
NameVirtualHost *:80
And then each of the virtual hosts is configured:
<VirtualHost *:80>
RailsEnv beta
ServerName my-app.redjamjar.net
DocumentRoot /home/rails/beta/my-app/current/public
<Directory “/home/rails/beta/my-app/current/public”>
allow from all
AllowOverride All
</Directory>
</VirtualHost>

Compiling Mysql Gem on Mac OS X 10.6

Is not that easy to get hooked up and working (well it wasn’t for me)…

So in an effort to save you a hunt around google follow these steps:

  1. Download the 64 bit version of Mysql and install
  2. You may need to update your PATH variable with the location of mysql, on my machine its /usr/local/mysql-5.1.40-osx10.5-x86_64/
  3. And then follow this command to compile the mysql gem: export ARCHFLAGS=”-arch i386 -arch x86_64″ ; sudo gem install –no-rdoc –no-ri mysql — –with-mysql-dir=/usr/local/mysql/lib –with-mysql-config=/usr/local/mysql/bin/mysql_config

You’ve hopefully arrived at a working mysql gem.

Good Luck!

Responsive Design

Just been reading an interesting article by Kent Beck in this months Pragprog over at Pragmatic Programmers

http://pragprog.com/magazines/download/3.pdf

The temptation is to put these design ideas in the system now because you just know you’ll need them eventually. Over-designing early leads to delaying feedback from real usage of the system, makes adding features more complicated, and makes adapting the design more difficult. By the same token, under-designing makes adding features more complicated, increases defects, and makes adapting the design more difficult.

Secure Copy How to

Heres a rough and ready introduction to using the power of SSH to perform a secure copy of a file or directory between computers.

> scp 

usage: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[user@]host1:]file1 [...] [[user@]host2:]file2

So how does this matter for me well if you wanted to move a file from a server called Mojo.com to a server called Louis.com you’d enter

> scp file.txt my_login_name@louis.com:remote_directory

or if I want to copy a folder:

> scp -r my_login_name@louis.com:remote_directory my_files

Hope this helps.

By the way for those on Windows Penguinet has scp built in with a nice looking file browser/selection UI.