|
|
David Jensen |
|
Great overview from Metro.co.uk, also mentioned in:
Google Currents is now available for download on Google Play and from the Apple App Store.
It looks like a human was involved in choosing what went where,” Marissa told them. “It looks too editorialized. Google products are machine-driven. They’re created by machines. And that is what makes us powerful. That’s what makes our products great.
Recently was given some figures from Apple about how dominant their App Store and iOS devices have been.
· 200 Million iOS devices sold
· 200k Developers registered
· 25 million iPads sold
· 225 millions iTunes customers with credit card information input
· US$2.5 billion paid out to developers
· 500k + applications
· 15 billion apps downloaded
Pitch
The Metro Dev team are proud of their site. Traffic has tripled over the past year and we look to achieve something similar in the coming year . To achieve that we have some really exciting projects in progress and the time has come for us to get a new (and extremely talented) Senior Java Developer.
Confident you could build a social and scalable web app viewed by millions? You should currently live, eat and breathe Java, but might want more out of life whilst remaining comfortable working in an agile way. To be honest, you should probably reckon yourself to be a pretty good all round web developer as well and if continuous deployment sounds interesting then we want to hear from you.
We aren’t just looking for a production line developer we want someone who can contribute ideas and help keep Metro ahead of the pack. We want someone who genuinely wants to improve the quality of the software we release and become an integral part of how we do development.
You’ll have the wit and personality to pull it off (and be able to put up with geek humour). If you like a fast paced environment with strong direction and the backing to make it happen then this job might be for you.
Background
Metro is a publishing phenomenon. The paper was launched in March 1999 as a free, colour newspaper for morning commuters. It is now a multi platform brand distributing 1.3 million copies 16 urban areas across the UK every weekday morning. Our readership has grown to a massive 3.4 million daily readers making Metro the third biggest newspaper in the UK and the largest free newspaper in the world. Metro.co.uk has had 300% year on year traffic growth and we now have 4.5 million unique UK visitors to the site every month.
Benefits
Based at High Street Kensington this role comes with a competitive salary plus attractive benefits, on site gym and subsidised restaurant. Metro is a great place to work! We do loads here to make our people the best and happiest in the business through training, development and creating a great office culture. We even give you a day off for your birthday!
Contact
Please send a CV and covering letter to opportunities@ukmetro.co.uk with Java in the subject. You can also hit us up on twitter @Metro_Dev
Don’t take our word for it however. If you would like to ask any of the current team anything then you can find us on Twitter here:
Just finished reading this slide deck and it has some great points about how to do gamification properly. Understanding the users and why they would want to engage is a very important part of the process. You also don’t want to gamify something just for the sake of it. We are currently working on a new approach to TV Reviews and have stripped the gamification back to be the key driver of how people view and interact with the data. I think that by making the game inherent of the product rather than an addition it should be more compelling and therefore drive more interaction.
Only time will tell.
Don’t Play Games With Me! Promises and Pitfalls of Gameful Design View more presentations from Sebastian Deterding
Working closely with the server support guys at Metro has opened my eyes to what Solaris is capable of…
Basically, Solaris is rock solid.
Thursday 9th June 2011, Metro’s development team finally released the culmination of months of work and planning in Metro Online Version 1.9.0. The two main new features are a completely redesigned masthead and a big step forwards in our community features.
Masthead
The two main issues we wanted to resolve with the masthead was the number of menu items and its depth. With these considerations in mind we had a conumdrum as it was not possible to fit a leaderboard advertisement and the current logo in the same horizontal space. Out of this restriction the new M logo was born and once it was on the page it started to make a lot of sense and provide consistency with Metro’s presence on mobile and social media platforms.
Community
Our goal with our new community features was to increase engagement. Our main engagement on the site currently is comments and the existing implementation was one out of the box from our service provider. Here are some of the new features:
Here are some quotes from about the release in the press:
Jamie Walters, executive director of digital at Metro, said:
“Today represents a major change to the look and feel of metro, one which represents the direction we are taking with our digital products. The new masthead demonstrates the importance we place on social media as a way to communicate with our users, and we expect the improved on-site user generated content tools to lead to greater sharing of our content and much greater social discussion around it.”
Overall apart from a few QA teething problems this is a great step in the right direction for Metro and watch this space for upcoming releases.
Our secret scalability weapon is Akamai.
OK, so it’s not that secret, but not many of us on Metro had heard of it when we joined the dev team.
If you don’t know already, Akamai is a Content Delivery Network. It has a global cloud of servers which cache, serve and accelerate content. They have servers located in major ISPs so most people are only a few hops away from www.metro.co.uk. (You can check it with traceroute).
We use the “cache-control” response header to tell Akamai how long to cache a URL for. This is pretty standard. More advanced is using ESI to cache different page fragments for different times. For example, our global footer doesn’t change much so we can cache it for a long time.
ESI is most useful for including page fragments from third parties. Akamai includes the HTML fragments directly from the third party. If third party servers respond slowly it’s Akamai servers that do the waiting, not ours. (Prior to ESI this was probably the biggest bottleneck on our servers).
We also do some cache invalidation when content is saved in our CMS. In practice though, the added complexity isn’t really worth it. Keep it simple stupid!
Akamai is no silver bullet though. Caching bulletproofs our “hot” pages but not our long tail. For this we have application caching using Ehcache. Actually, we distribute it using Terracotta but, again, the added complexity (big heap/GC, non-atomic deployments) aren’t really worth it. Some refactoring required there.
Caching also doesn’t play well with personalisation, so we mainly render personalised content client-side. But that doesn’t play well with search engines. Currently we find a balance between the two but at some point we may end up executing some logic edge-side on Akamai.
If Akamai is too high-end for you, you might want to try Varnish, Squid or NGINX. Maybe one of them can come up with a killer feature… SPDY support anyone?
Categories vs Tags is one of the biggest decisions around how you setup a good taxonomy using WordPress. Utilising both categories and tags can make your site easier to navigate which will help both people and search engines. It has taken me a while to get my head around this so thought I would run through my thoughts in the hope that it might help shape your decision making.
Categories in my opinion are best used for the main structure of your site and can be thought about a bit like a menu. Each post should only be present in one category. Categories can also have sub categories, this can be handy to split your content down into more specific areas when you have enough posts. A good example of this would be sport, for example for on a news based site you are quite like to have sport as a top level category, then under that individual sports such as football and cricket.
Tags in my opinion are best used to cut across categories and a post should have many tags but only one category. Tags have the advantage of being able to be combined to bring back more specific data when required. I think a good example of this would be a tag for “David Beckham”, as he is both a footballer and a celebrity he could appear under either a sport or celebrity category and if you wanted to get more specific you could search for both “David Beckham” + “Victoria Beckham” if you are interested in their goings on or “David Beckham” + “LA Galaxy” if you wanted to know about his latest sport endeavours.
Ensuring that your taxonomy is clean and consistent can really help both people and robots navigate your site. Starting out in the right way with the right structure will lead to better results for everyone as changing later can be quite detrimental to any search juice that you have built up especially if you have the category name in your URL.
My mate @josephshell going deep on the house tip for his night Milkface
WordPress Categories vs Tags - Music To Write Code To - Writing code and listening to music go together like food and wine. I am sure I will also ramble about all sorts of other things.
We have been recruiting a Business Analyst for a big project that we have coming up at work. They have all been interested in how our current process works. It has got me thinking why our process is the way that it is and my conclusion is the main reason is that it has been shaped in a true agile fashion to fit the environment that we operate in.
It is easy to get some experts in, go on a course or read how SCRUM should be done and implement it exactly as they have described. I have however found that the most important part of the Agile process is the retrospective and subsequent changes to your process. This self learning and feedback needs to happen not just within the development team but also with the business environment that they operate in.
A lot of processes assume certain resource requirements and business buy-in. However this is rarely the case when you start out. There are a lot of companies that say they do agile but aren’t really agile more like Waterfall using SCRUM. Another major part of Agile is self organisation so someone managing the process too tightly stops this happening. Though at the beginning it is obviously good to start from a template and iterate from that.
It has taken me over 18 months to get both my team and the business in a place that they don’t just get Agile but they are Agile in their approach. Quite a bit of this was born out of making mistakes along the way and the specific learning that we were able to distill from those. We can still improve but that is part of the appeal to me.
Speed of adaptability is essential in the modern business world to stay competitive. It is also immensely rewarding to see a team come together and improve over time. Two weeks ago we released early for the first time in our history. I am sure it won’t be the last.
R.I.P. Mehdi, nuff said.
An Agile Process Should Be Shaped To Fit Your Environment - Music To Write Code To - Writing code and listening to music go together like food and wine. I am sure I will also ramble about all sorts of other things.
It started with a conversation regarding Node.js as one of my developers has been using it to write a RESTful API. We had spun up an Amazon EC2 server and RDS backend for the service, which is the beginnings of a content shaping algorithm. This rapid prototype has shown real promise and now we are looking at using it as the core to our Facebook Application Homepage. With this in mind I started to think about how this would work in a production environment. This is when I thought back to some recent experiences and quickly decided that Node.js as great as it is, really isn’t the best option for the team or company at this point in time. Here are my reasons why:
Only one developer has any idea of how Node.js works and when there is a problem as there will be one when you are using cloud based hosting. This could be slightly mitigated by having a Wiki. However usually it is out of office hours during weekend support when you find out the Wiki is not quite 100% up to date.
Teams change and as we move forward we need to ensure that our code is written and approached in a consistent way. This will ensure that if a developer wants to get involved with different projects they can easily jump between them. It also ensures that if the person who wrote the code isn’t around supporting it is much easier. Yet another barrier to entry will also only reduce the ability to quickly up-size should the project or team need extra resources.
We are an Agile team and working in short iterations delighting our customers is what we do best. By being consistent we become more agile, it aids self forming teams and enables continuous learning. A common approach make it easier for the knowledge to be passed around which amplifies its effect. Working on similar projects allows my team to take those learnings and get faster at doing what they do. The libraries and helpers that are developed can be used in as many places as possible to reduce code duplication and increase testability.
My team inherited a custom written CMS solution that we have been supporting for the past 18 months. It was written using Apache Cocoon and GWT as a front end with an Adobe CRX NoSQL solution as the data store. Due to none of these technologies being widely known development was up to ten times slower than it should have been because of the learning curve and lack of consistency. We also chose to use MooTools as a JavaScript framework for our front end and this has restricted the interoperability of our site and it doesn’t get along with jQuery which is what the rest of the web uses.
Node.js is a great solution if you have requirements for massive concurrency. However that requirement for our current problem as it will be cached behind Akamai. In this case there is not enough of a business reason to do something different.
As you can see I thought long and hard about this and I hope my conclusions make sense. I am really glad that we now have the knowledge of how Node.js works and when a project comes us that does have a clear benefit I will reconsider. However until then we are going to go with the obvious choice and rewrite this API in Spring MVC to be slightly less bleeding edge.
Lifelike has taken a load of classic French house tracks and turns them into this beauty.
In Development the most obvious choice is quite often the best one - Music To Write Code To - Writing code and listening to music go together like food and wine. I am sure I will also ramble about all sorts of other things.
As we were working on a Windows Phone 7 (WP7) application for work we had to buy some handsets for testing. I decided that I would give the HTC Titan a go as I was interested to see what it is like to use a phone with a 4.7″ screen.
It was also my first time using WP7 as an OS with my primary device being a iPhone 4. I was very pleasantly surprised when I got the phone out of the box that it wasn’t too heavy. Once I turned it on I was immediately drawn into the screen.
The setup process for WP7 is very straight forward and I really enjoy the simplicity of live tiles. The fact that they can update and show interesting bits of information without being complicated to setup is a real bonus to WP7.
I have spent a lot of time using Android recently and it always takes me a long time to get the widgets setup and the home screens working in a way that makes sense to me. There was none of this with WP7.
The great thing about having a really strong design is that a lot of the apps use this as their template so if you enjoy the way that this works it is easy to pick up and you automatically know how to use them.
I was also very impressed with the camera and software which seems to predict the best time to take the photo once you have the button pressed. Some really good results and always capturing the right shot was nice. I used SkyDrive to get the photos off the phone and into the cloud which is a nice touch.
Zune software is similar to iTunes and a necessary evil, much better than the random software that ships with Android but still overblown for what it is really. My friend has a Zune pass and says that it works out really well, got enough music myself without needing to stream.
This brings me to my major gripe with WP7 music playback, I listen to a lot of mixed music like the Fabric series, if you have ripped these as separate tracks then their is a skip in-between tracks. To me this is a golden sin and one of the reasons that I couldn’t use this phone as my main device.
The other main issue is the cost of Apps, due to the lack of numbers developers have to charge more. What would most likely be free on Android and £.99 on iPhone is upward of £3.99 on the WP7 marketplace. Makes it a lot harder to make those impulse purchases.
A final issue is that currently there is no Skype at all on the WP7 marketplace or integrated on the phone. This is crazy considering Microsoft owns Skype and a major oversight. I know they are probably waiting to do a deep integration but with family around the world no access to Skype is a real oversight.
Overall I really enjoyed using the HTC Titan for a couple of months and really think that WP7 Mango and the Metro interface should be a major competitor to Apple and Android if it can gain traction. Once Microsoft bakes Skype into it and allows you to stream to your Xbox as well as use it as a keyboard I think there will be more reasons to buy.
HTC have done a good job to give people a reason to buy something different from the lovely Nokia sporting WP7 and the screen with live tiles is just amazing. Good battery life and easy input on a big screen is a winner. Not going to replace my iPhone 4 but I have been missing WP7 since we moved on to building an Android App.
If you do get a HTC Titan or any Windows Phone 7 phone then you should download the Metro App for it here (shameless plug).
Specifications
Software : Windows Phone 7.5 Mango
Processor : 1.5GHz
Memory slot : No
Display : 4.7in 480 x 800 pixels multitouch
Connectivity : GSM/GPRS/EDGE/HSDPA, Wi-Fi 802.11b/g/n, Bluetooth,A-GPS
Ports : Micro USB, 3.5mm headphones
Camera : 8 megapixel, F2.2 lens, dual LED flash, and BSI sensorVideo
Video playback : 3gp, .3g2, .mp4, .m4v, .mbr, .wmv
Audio playback : m4a, .m4b, .mp3, .wma
Radio : No
Battery : Li-ion 1600 mAh
Size : 132x71x10mm
Weight : 119g
Girl Unit – Wut was one of the tunes of last year. Claude Vonstroke gives it a re-rub just making it slightly deeper.
HTC Titan Review (WP7) - Music To Write Code To - Writing code and listening to music go together like food and wine. I am sure I will also ramble about all sorts of other things.
I have been working in software development for ten years and the one constant throughout my whole career is change. Change in technology, change in working practices and changing business requirements. During this period I have constantly battled against the best way to deal with change so it has the least impact on the day to day activities of myself and my team and to ensure that our output is an actual business requirement.
The main way that we have achieved this is by becoming Lean which is based on a method of manufacturing invented by Toyota in the 1990’s. We have shortened our iterations to less than two weeks and limited the number of things that can be worked on at any time. This means that we can get feedback from our customers as early as possible and build what they want and not what we think they want.
Eric Ries has taken this methodology and applied it to starting a business, whether that business is new or part of a larger organisation. This approach which is customer centric focuses on building what the customer wants in as short a time as possible and then releasing it to learn from how customers actually use it.
It is a big change from the build it and they will come large product based development approach and takes a while to get right. However if each time you release something it is to test a theory and you get feedback that you can use to shape your future strategy and vision. It requires a direction but not a detailed project plan but multiple iterations or ability to change tact should reality not meet your expectations.
The Two Bears are absolutely smashing it at the moment. Not surprising when you know their musical heritage. This is one of their many top tunes.
Thinking Lean to Combat Change - Music To Write Code To - Writing code and listening to music go together like food and wine. I am sure I will also ramble about all sorts of other things.
If you would like the ability to do advanced image editing in WordPress when running on Amazon EC2 Linux you will need to make sure that you have installed the PHP GD libraries or none of the image editing capabilities will show up.
sudo yum install php-gd
After a lot of searching I found this great answer on Stack Overflow which pointed me in the right direction. Have added this step to my previous post for setting up WordPress as well.
Pinch – Qawwali – Call it what you will this is a bad tune.
WordPress Edit Image Functionality Not Working on Amazon EC2 - Music To Write Code To - Writing code and listening to music go together like food and wine. I am sure I will also ramble about all sorts of other things.
I have been doing my best to figure out what are the correct set of permissions to enable WordPress to be able to manage all of the files on my Amazon EC2 instance without WordPress asking for FTP permissions when I try to upload a plugin or theme via the Admin site. I ended up having to give file and group ownership of the files in my html folder to apache user for WordPress to run correctly. This article and its comments helped me reach this conclusion.
sudo su chown -R apache:apache /vol/html
I then set permissions to what the hardening WordPress guide recommends for my html root as all my WordPress files are there as I am running MultiSite with multiple domains.
find /vol/html/ -type d -exec chmod 755 {} \;
find /vol/html/ -type f -exec chmod 644 {} \;
As apache doesn’t have a login I feel this is worth the risk though there is probably a better way to do this. I then added ec2-user to the apache group and changed the permissions of the wp-content folder to have group write permission 775.
useradd -G apache ec2-user sudo chmod -R 775 /vol/html/wp-content
Amazon EC2 Apache Permissions for WordPress - Music To Write Code To - Writing code and listening to music go together like food and wine. I am sure I will also ramble about all sorts of other things.
Here is how to SFTP into your AWS EC2 instance using FileZilla (this was done on a Mac). Open Site Manager
Open Preferences
You will need to make sure that the ec2-user has the correct permissions to do the actions you require, I am still trying to work out the best thing to do with regards to permissions with WordPress but here are my initial thoughts.
Julio Bashmore – Battle for Middle You: This was a massive tune in 2011, I first heard it on the Ramadanman FabricLive mix and it has been popping everywhere since. Nothing too hectic here for your first SFTP session with FileZilla.
sFTP using FileZilla into an Amazon EC2 instance - Music To Write Code To - Writing code and listening to music go together like food and wine. I am sure I will also ramble about all sorts of other things.
I figured that it was finally time for me to roll up my sleeves and get my hands dirty with WordPress running on an Amazon Web Services (AWS) EC2 Linux Micro instance. I know you can use a preinstalled image but I wanted to understand what was going on under the hood so decided to start from scratch. I also wanted to ensure that all data would be persisted to Elastic Block Storage should there be an issue with the EC2 instance. My main coding background is in ASP.NET though I have been managing a team in a Java environment for the last 18 months so this was a reasonably steep learning curve. So I figured that in the spirit of open source and since I was creating a blog that I would share my experiences. My goals were the following:
Amazon very kindly give you an initial free 12 months on one of their micro instances so thought this would be a good place to start. Here are a couple of things to note:
I am using a Mac so I just fired up the Terminal and the steps I took are below though if you are using Windows you can follow a tutorial for PuTTY here.
chmod 400 [keyname].pem
ssh -i [keyname].pem ec2-user@[elasticip]
Being a newbie to Linux I had to have a quick look around for the basics of navigation and here are a couple of very basic commands.
ls -l
cd /var/www/html/
rm -f -r [file-name]
sudo su
Login then change your account to root, then run the server updates.
sudo su yum upgrade
Install MySQL.
yum install mysql mysql-server
Create a filesystem on the attached EBS volume as it currently doesn’t have one (I used XFS as the demo I was following did the same) . My EBS volume was called xvdf rather than sdf which the management consoles said so use what you noted down when setting this up. XFS isn’t installed out of the box you need to install and register before you can create the filesystem.
yum install xfsprogs modprobe xfs mkfs.xfs /dev/xvdf
We now need to make sure that this volume is mounted every time we boot the machine by running the following. We then create and mount the drive in this case I have called it vol.
echo "/dev/xvdf /vol xfs noatime 0 0" | tee -a /etc/fstab mkdir -m 000 /vol mount /vol
We now want to create data directories on /vol so MySQL can use these for data storage as they sit on EBS they will be persisted should the instance have an issue.
mkdir /vol/etc /vol/lib /vol/log
We now need to move the required MySQL files and folders from their default locations to the new one that we have created on /vol.
mv /etc/my.cnf /vol/etc/ mv /var/lib/mysql /vol/lib/ mv /var/log/mysqld.log /vol/log/
Now that the files have move we can create symbolic links (shortcuts) from where the default files were installed to their new locations on /vol.
ln -s /vol/lib/mysql /var/lib/mysql ln -s /vol/etc/my.cnf /etc/my.cnf ln -s /vol/log/mysqld.log /var/log/mysqld.log
Hopefully everything should be in the right place and we can now start MySQL.
service mysqld start
If anything goes wrong then check the logs. I would also check the data directories that you created to make sure that you can navigate to them.
tail -f /var/log/mysqld.log
We now need to change the MySQL root password to be something nice and secure and then run the secure installation as this will be a production environment.
/usr/bin/mysqladmin -u root password '[newpassword]' /usr/bin/mysql_secure_installation
Now we need to log into WordPress and create the required tables
mysql -p mysql> CREATE DATABASE wpdb; mysql> GRANT ALL PRIVILEGES ON wpdb.* TO wpuser@localhost -> IDENTIFIED BY "another-new-password"; mysql> FLUSH PRIVILEGES; mysql> exit
Now it is time to get HTTP and PHP installed by running the following.
yum install httpd yum install php php-mysql yum install php-gd
We need to enable the Apache mod_rewrite module for WordPress to run correctly. I used the command line text editor vim and you can find the cheat sheet here. You need to change AllowOveride None to AllowOveride All inside the DocumentRoot Directory Directive, normally <Directory “/var/www/html”>
vim /etc/httpd/conf/httpd.conf
We now want to create the html folder on /vol so all of our web files will also be on an EBS volume. We can then do the same as we did for MySQL and remove the folder before creating a symlink from EBS to our EC2.
mkdir /vol/html rm -f - r /var/www/html ln -s /vol/html /var/www/
Now we have a web folder we can download WordPress
cd /vol/html wget http://wordpress.org/latest.zip unzip latest.zip
As I wanted to run a MultiSite Multiple Domain site I needed to have the WordPress files in the root of the web server so the following moves them from html/wordpress to /html and then deleted the /wordpress folder to keep things nice and clean. I also renamed wp-config-sample.php to wp-config.php for ease of editing.
cp -rpf ./wordpress/* . rm -rf latest.zip rm -rf wordpress cp wp-config-sample.php wp-config.php
WordPress is a pretty damn easy thing to setup however you do need to edit quite a few files in this step so I thought it would be a good thing to connect via SFTP to allow easy manipulation. Here is a quick guide to how to connect to FileZilla, once you have done that go to in FileZilla.
/vol/html
At this stage you will be able to connect and view files within FileZilla but most likely unable to write or create them. This is due to the fact you created all of the files whilst using the root account and the ec2-user doesn’t have any permissions to change them. You will need to change permissions of each of the files and folders, you need to use Terminal to all users to write and update them.
cd /vol/ chown ec2-user -R html chmod 755 -R html
You will need to change this back at the end anyways but here is the WordPress documentation on file permissions to understand what is going on and the risks that you pose should you not.
You can now download wp-config.php and make the below changes
define('DB_NAME', 'wpdb');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'new-password');
define('AUTH_KEY', 'xxx');
define('SECURE_AUTH_KEY', 'xxx');
define('LOGGED_IN_KEY', 'xxx');
define('NONCE_KEY', 'xxx')
define('AUTH_SALT', 'xxx');
define('SECURE_AUTH_SALT', 'xxx');
define('LOGGED_IN_SALT', 'xxx');
define('NONCE_SALT', 'xxx');
$table_prefix = 'wp_';
WordPress provide a very nice helper for the Salts here.
Now we need to allow the apache user access to html so WordPress can update plugins and files and change our file and folder permissions to what WordPress recommends here.
cd /vol/
chown -R apache:apache html
find /vol/html/ -type d -exec chmod 755 {} \;
find /vol/html/ -type f -exec chmod 644 {} \;
Now lets fire up httpd.
service httpd start
It is also worth using the below to ensure that httpd and MySQL run on startup.
ntsysv
Finally you will also need to add a Custom TCP rule to your security groups using the AWS console for port 80 to allow traffic.
Now for the moment of truth, browse to your Elastic IP, should you have any issues you can look at the logs by using the following.
tail 100 /var/log/httpd/error_log
There is no way I could have achieved the above with out some similar great guides and here they are.
There are a couple of great guides for Multisite and Multi Domain Mapping below which worked fine for me with WordPress 3.3.
So finally we need some music to code this to. As this was done just before New Years Eve 2011 I have gone with a few of the best mixes of 2011 and a couple of end of year compilations.
Post Dubstep moody tunes but with a decent beat is the perfect type of music to be navigating command lines.
This is perfect for once you are in the groove and need a little something to step up the pace as everything is starting to make sense.
This is a feel good best of 2011 mix from a couple of guys from Ghent, Belgium.
Install WordPress on an Amazon AWS EC2 Linux instance with persistence to Amazon EBS - Music To Write Code To - Writing code and listening to music go together like food and wine. I am sure I will also ramble about all sorts of other things.