Setting up a robust development environment for WordPress

For a while now I’ve been wanting to create a better development environment for myself for working on my WordPress blogs, and other php projects too. I thought that in itself, this would be a good project to blog about as I set it up, explain and justify what I’m doing, see what other people are doing in similar areas for comparison. Also it might be helpful to people wanting to set up such an environment for themselves, or who want to set up an element of it. I’m going to break it down into several posts, which I’ll gradually link to from this post.

I’ll be setting up a new blog at flotsky.com, which with the new WordPress 3.0 I’ll be able to make a multiple blog installation, able to run whole new blogs underneath this. I’m also hoping to use a plugin to help me set this up with different domains for some of these blogs, so for instance there will be a flotsky.org blog with a different look and feel, but only one install of WordPress and its plugins to upgrade and develop. Finally I’m hoping to then move this blog itself from WordPress to Drupal, as that’s a CMS I need to learn more about too.

So what am I looking for in this development environment?

Security

I want to be able to test changes to the site without affecting the live site.
If something breaks on the live site, I’d like to be able to revert back to the previous version easily, get the site back up and running, and fix it in the test environment.
So I need a test version of the site, and I need version control, allowing me to make releases of the site, and access previous version.

Mac-based

This is my own personal preference, I work on Macs for both my day job and my own stuff, so it makes sense. However all the tools I’ll use will either be available on Windows and Linux, or will have very close equivalents. Much of what I’m going to do will be within an IDE (Integrated Development Environment) available for all platforms, so my setup will be transferable should I need to (or should other wish to try it too).

Integrated

I like using only a few tools for developing. Where possible, I want to do all the work within the IDE, and then test in a browser. For instance I currently use Cyberduck for FTP, but I’d rather do this within the IDE (and I’ve got this figured out now).

So, in order that I can do all this, I’ve selected a few tools.

Netbeans

I’ve used Netbeans for a year or two now as my main IDE. It is at heart a Java IDE, but its support for other languages has improved quite a bit, and the bulk of what I’ll be working on, PHP, HTML and CSS are well supported, with code completion and syntax for all, and the promise of good testing support for PHP in particular (this is something I want to delve into more as I go along). As a downside it can be a bit memory hungry, but I’ve found it more stable than Eclipse which I used before.

Subversion

Subversion has been my version control system for a few years now at work, so this is a simple choice for me, as I know it best. I’ve not had much experience of CVS, and there are good guides and advice available for Subversion, so as something new to setting up their own versioning system for themselves, it makes sense to stick with what I know.

MAMP

MAMP is Mac Apache Mysql PHP server. This is what will allow me to run a whole site on my local machine and test it easily. It’s pretty easy to set up, and also allows me to configure a more complex testing environment later on. I could have chosen to have a “live” test site on my webhost, and this may be a more suitable option for some people, obviously where you might have more than one potential user of the site itself.

So this is the basic setup I want (and have set up already, but will explain it in more detail as I get it working better). I want to use this to have a process for development where I can:

  • Work and test on my local machine.
  • Make a release version.
  • Save this in my versioning system.
  • Send to my live server.

The next post will be about setting up Subversion on the Mac. I’d be interested to hear other people’s experiences of setting up similar environments, and suggestions for different approaches to what I’m planning.

Posted in Blogging, Mac | Tagged , , , , , , | View Comments

Oxford Geek Dates June and July 2010

A new list of geek-like meetups in Oxford for June and July 2010:

Oxford Game Net New meet up for Oxford Gamers: 29th June 2010, The Jam Factory
Social Media Day Oxford: 30th June 2010, The Jam Factory
TweetUp at the SWC: 1st July 2010, Summertown Wine Cafe
Oxford Drupal Users Group: 14th July 2010
Oxford Geek Nights: 21st July 2010, Jericho Tavern
Oxtuttle: 28th July 2010, The Honeypot
Oxford Flickr Group: July meeting tba
Voice Tweet Up: 1st Thursday of each month, next meeting 5th August 2010.
Oxford Internet Professionals: 14th July 2010, 11th August 2010
Barcamp Oxford: 25th-26th June 2010, University Club, Mansfield Road
Voice Social Media Breakfast: July Meetup 15th July 2010, online meetup.
Oxford Girl Geek Dinners tweetup: Details soon, likely to be before the end of June.
Oxford Geek Jam, every few months, next date tba.

If you know of any other Oxford events, or want me to make changes to the list, just let me know.

Posted in Social Networks | Tagged , , , | View Comments

WordPress 3.0 Custom Post Headers

WordPress 3.0 is out, and is rather nice. I’ve been using the release candidate for a little while on another blog with no hassles at all, and so I was happy to upgrade this site as soon as the full version was out. The easiest way to see what is in the new version is to watch this video:

For now, I’ve moved to the new default theme Twenty Ten. It is a nice clean them, and does have a couple of very handy features. You can add your own custom header for the blog as a whole, but the nice feature introduced is the ability to define a custom post header for each blog post you make. Within WordPress 3.0 this is referred to as Featured Image.

It’s nice and simple to do, it will try and convert any image to a header you choose, but for the most control over how it looks, you need an image that is 940 × 198 pixels. When you write a post, simply click on the Set featured image link at the bottom of the right hand column. After uploading the image, you get the option to insert it into the post. Instead of doing this, look to the bottom of the dialogue box:

featured image dialogue on a WordPress 3.0 post

Click on “Set as Featured Image”, save and you are done. You can see a custom image for this post’s header as an example.

Posted in Blogging | Tagged , , , , | View Comments

Models of Communication

I had an interesting conversation this week with socialistgamer at oxtuttle about voice comms within games. It reminded me of my old communication studies A-level course many years ago, and of the classic formal models for communication. I promised to try and track them down, as they were very hazy memories, so here they are. These examples are all drawn from SHKaminski.com, who has made some useful notes on them, so I’m just providing links rather than using their diagrams.

The Shannon-Weaver Mathematical model from 1949 portrays a linear model of a single object of communication, showing the factors involved along the way. It nicely incorporates the concept of noise along the path of the message from sender to receiver, the factors that surround the message but are not part of what is intended to be sent.

Schramm’s Model of Communication from 1954 shows a more circular model of communication, with messages being sent between two sources at the same time. This is perhaps a more accurate model of the process, as in a conversation between two people, there often isn’t a clear back and forth, sometimes they will talk over each other, and throughout they will be sending messages via non-verbal communication, showing interest with their eyes for instance.

Both are basic classic models of the process, and indeed there are many more recent and complex models to explore. However I think they are both useful to remember when considering the process of communicating in areas such as gaming and social networks as a starting point. We were discussing the difficulties in playing multiplayer games when this thought came up, how in some cases playing at a LAN party was easier than playing online from your own home, and in some cases more difficult. The noise factors at a LAN party might be for one obviously more noise, more distractions from being in a room with several other people, playing in an unfamiliar place compared to your normal location. However also being able to see and speak in person to people, rather than through microphones and text chat, can make communication easier, reduce noise.

Similarly, noise can affect how a message may be received on say Twitter. How many people are each of your audience following, are you one of a few, very likely to be read, or are you one of many hundreds or thousands, part of a vast stream of information. Is the network solid, will your audience receive all your tweets, or is the network prone to going down, meaning they may miss it entirely even if they want to read it. Have you annoyed people with a lot of silly or spam messages, are they likely to ignore even a good useful message because of other things you’ve said previously? These and a multitude of other factors all can act as noise surrounding every single tweet you send.

Although both these models are over 50 years old now, they are still nice simple models to apply to communication to see how it works, and where the potential pitfalls lie.

Posted in General, Social Networks | Tagged , , , , , , , | View Comments

Oxford Geek Dates for the diary

I thought I would do a little round-up of forthcoming geek events in Oxford, as we seem to have quite a few these days:

Oxtuttle (first in the list because I help organise it!): 17th June 2010, The Honeypot
Oxford Geek Nights: 21st July 2010, Jericho Tavern
Oxford Flickr Group: 17th June 2010 Three Goats Head
Voice Tweet Up: 1st Thursday of each month, next meeting 1st July 2010
Oxford Internet Professionals: 16th June 2010, 14th July 2010, 11th August 2010
Barcamp Oxford: 25th-26th June 2010, University Club, Mansfield Road
Voice Social Media Breakfast: 10th June 2010, 11AM, online meetup.
Oxford Girl Geek Dinners tweetup: Details soon, likely to be before the end of June.
Oxford Geek Jam, every few months, next date tba.

If you know of any other Oxford events, or want me to make changes to the list, just let me know.

[Update 9 June 2010] Added new details for Voice Tweet Up, Voice Social Media Breakfast and Oxford Girl Geek Dinners
[Update 2 9 June 2010] Details for Oxford Geek Jam added
[Update 3 15 June 2010] Date changed for Oxford Internet Professionals as per their web site

Posted in General, Social Networks | Tagged , , , , , , , , , , , , , , , , | View Comments

Oxford Twestival 2010

This year I’ve volunteered to help organise Oxford Twestival 2010. I went to the first event last year, which was a great evening bringing together Twitters from all over Oxfordshire to raise money for charity. This year’s event is being held at The Living Room on 25th March 2010 (doors open 7pm), and playing will be Will Phipps, Ben Walker (aka @ihatemornings ) and Invisible Vegas!

All money raised by the event will go towards the education programme of the global charity Concern Worldwide, who provide funding and support to 28 of the world’s poorest countries. As an example, they have an emergency team in Haiti at the moment, assisting in the support effort following the recent severe earthquake. As well as providing general survival supplies and assistance, they are presently providing education for 30,000 children.

So it would be great for people to show their support for Concern, and to do so by enjoying a top evening’s entertainment. Tickets are only £3, or £4 with a raffle ticket for the evening’s charity auction. Book a ticket now!

Posted in General, Social Networks | Tagged , , , , , , , , , | View Comments

Getting Google Buzz to post to Twitter

Google Buzz has been out for a couple of days now. It certainly seems to be getting a lot of attention, personally speaking it looks a lot more active than Twitter was when I first joined it. There is quite a bit of scope to link accounts to Buzz from the off, I’ve already got my blogs, Flickr, Twitter and Youtube posting to it. However at the moment it is all one way. What if you want your posts on Buzz to go back to Twitter?

Well for starters, looking at the API, it looks like that will come soon. However for now I have come up with a way of doing it to some extent. An existing service that has been pulled in to become part of Buzz was Google Profiles. This now has your Buzz posts on it. Usefully though, it also has an RSS feed (okay, an Atom feed), containing your Buzz posts. See my Google Profile for an example, once you’re there, in Firefox click on the blue RSS icon in the address bar, and you should get the option to subscribe to the page (depending on your settings). This will give you the URL for that page.

So, go to your own profile page, grab the RSS feed URL, and then go over to Twitterfeed.com. Create an account there, set it up to use your Google Profile feed, and after a delay of a few hours, it will start posting your Buzz posts onto Twitter.

Provisos are:
1) Obviously Twitter has a much shorter character limit, so your posts may potentially get cut short
2) If you set a post limit in Twitterfeed, it will only take the first x posts you’ve made.
3) It is only your posts, no comments
4) You’ll not get any of the other data such as location etc.
5) It does seem a little flaky thus far, there is potentially for tuning a bit how Twitterfeed changes the post to get it on Twitter, but not lots of options.

A proper integrated solution within Buzz will probably fix all of these, but it will do for now.

Posted in Google, Social Networks | Tagged , , , | View Comments

Crowdopensourcing

A quick chat on twitter today turned into a rather large comment on Ben Werdmuller’s blog. Ben had written about how game dynamics, such as the scoring mechanism used by Foursquare, gets involvement from its users in a competitive sense, and wondered if that could be applied to open source development. This got me thinking, and I suggested how it could drive a very general question and answers application. Go over there and have a look.

Posted in IPhone, Social Networks | Tagged , , | View Comments

The real-time web is sort of coming soon

A couple of interesting but not unexpected developments today, first Bing announced it was including real-time Twitter updates in its searches(this doesn’t look that live yet), then a few hours later Google announced the same.

Real-time updates have been coming from a few directions in the past few months. There has been a little buzz about PubSubHubBub and to a lesser extent RSSCloud, both of which look to extend RSS (or in RSSCloud’s case take advantage of what was in RSS 2.0 already), and these can be used to provide real-time updates from blogs to RSS readers and to search engines.

Then came the public beta of Google Wave. Wave is many different things, but one of the main parts is messaging and collaboration in real time. You can see collaborators typing letters in real time, and can also publish a wave on a site outside of the interface, so it can be see by others at the same time.

Another example in the real-time space is OneRiot, who are building a real-time search engine. Their index only goes back one day at present, they try to index only the current content about any topic, using a combination of tracking member behaviour and monitoring Facebook, Digg and Twitter.

The movement seems to be at the moment to speed up the flow of information from web sites and social networks into the tools we use, whether that is a search engine, a web site, a blog or a social network. Lots of small pieces are starting to come together to form a larger whole. It is a refinement of existing technologies rather than a revolution, perhaps nothing that would merit the annoyance of the tag Web 3.0, but it is interesting to see this movement starting to form into results over the past few months.

Posted in General | Tagged , , , , , , , | View Comments

iPhone 3.0 – First Impressions

Well, I’ve been running the new iPhone 3.0 software update for a whole 3 hours now. What have I learned thus far?

Firstly, it is that Apple can’t handle everyone updating their phones at once. The update is of course delivered via iTunes, and it’s pretty much acting as if it was a self-inflicted DOS attack on the iTunes store. It’s timing out constantly, letting you in occasionally. Which is a bit frustrating if you’re trying to use the store in general. It’s very worrying if your phone appears to be blank because it hasn’t yet been authorised by iTunes (it has already, but for some reason it needs it again for this update). Oh well. I guess Apple will learn their lesson from this one, as it has to shaft their sales on iTunes for the day quite nastily.

Okay, so having passed through that hurdle, I got it up and running, and tried sending my first iPhone MMS. I’ve been waiting for this feature for a while, seeing as I had it on every one previously for the past few years. The interface for doing this is really nice, just click the camera button, and if you’re happy with your shot, it will put it as a thumbnail into the flow of the conversation. However it then turned out you have to wait for O2 here in the UK to turn it on. It failed a couple of times, then a little while later I got a couple of texts from them to say “it won’t work until we turn it on for you”,”okay, we’ve turned it on” (Got a tip from @jturnbull that this would happen when I was moaning about it on Twitter, which was most appreciated). Sent it again after this, and it worked fine.

That’s the moaning part of the post over now. What else? Well, it’s a few little things thus far. I’m a big podcast listener, so I was impressed to find a new little feature they’ve added, which is for podcasts only (not ordinary music tracks). You can now play them at half or double speed. The double speed could be useful for talk podcasts, as it seems to still be a sensible understandable pace, so you could speed-listen if you want. As someone who occasionally gets massive backlogs of listening, this could be rather handy for me.

Spotlight, a search feature from Mac OS that has been added to the iPhone, works beautifully. Just scroll left from your home page, and start typing. It’s searching and finding words in my email very quickly, and it is something I see me using a lot. Cut and Paste works fine. And the new voice recording application is nice, saves files to the phone, lets you email them to people, and they also show up in your phone folders on iTunes. It is a bit quiet though, be prepared to talk fairly loudly. It just isn’t as powerful a mic as say the N95 has (which if you’re so inclined, and I’m not, is a boon for concert bootlegging).

Finally for now, you can sync Notes to iTunes. However what you don’t seem to be able to then do is to find them on your computer. Which is kind of the point of syncing them (okay I lied a little about the moaning ending). I seem to recall that they may add something proper to handle this in Mac OSX Snow Leopard, but they maybe could even have just added something in iTunes for now.

So it’s not a bad start, couple of frustrations, some nice little twizzly bits to keep me occupied. However I’m not really expecting too much to begin with, as the real meat of the 3.0 update is in what it offers developers. Lots of potential in that, and that potential will start to be realised over the following weeks and months as developers start to both update their existing applications and write new ones that take advantage of the expanded feature set on offer.

Posted in IPhone, Mac, Mobiles | Tagged , , , , | View Comments