Garage Clearance

When we bought this house, three years ago, we also bought the contents of it, which did bring us some nice furniture but also brought a staggering amount of junk. While the house has slowly emerged from the chaos, the garage has remained basically full, including a jacuzzi bath, more furniture, filing cabinets, and who knows what else. Repeated trips to the tip seemed to be making little impact and we had some of the old bits of wood out of the house which are too big for the car. This problem has been bothering us for ages, but last week we solved it! Kevin rang up wetakeanywaste.com who are local and will sort through the contents and recycle whatever they can before disposing of the rest in a responsible way. They were friendly, efficient, and not at all expensive – within a few hours we had a totally empty garage, very impressive!

They do house clearances and were even able to take the old gas bottles out of the garage, I was happy to know they would recycle stuff, and they just brought a truck and loaded it all up themselves, I only stopped working long enough to sign the paperwork and write the cheque :)

Keynoting at PHPNW10

I’m slightly surprised but mostly wildly excited to announce that I’ll be the keynote speaker at the PHP North West Conference in October. It is held in Manchester in the UK, which is about an hour from where I live in Leeds, so it is definitely my “home” conference, and this makes me even more excited since I know I’ll be in such great company!

The talk is Teach A Man To Fish: Coaching Development Teams and really it’s about how a little investment of time or effort can build your existing team into something better – and how that team can then sustain its improvements and continue to raise its performance and the game of the individual team members. All in all I am pretty excited about this talk – as with most of my conference talks, it started life as a rant in a bar, and I’m now excited to be preparing it for a more formal setting!

The event itself is a must-see for anyone doing PHP or allied technologies that can get there (Manchester is pretty central and pretty cheap – if you’re in the UK, you have no excuses!). It’s a Saturday event, 9th October 2010 and tickets are on sale – the Early Bird prices are still available and we’ve held the prices as low as possible again, we don’t need frills, we just want lots of people to be able to join in! I hope to see quite a few of you there, let me know if you’re coming :)

WordCamp

Last weekend I was at WorkCampUK in Manchester – it’s taken me this long to writ the blog post because I needed time to download my photos, however I’ve now done that and I didn’t get anything at all worth publishing, d’oh!

I am a wordpress user and even wrote a plugin once, but I’m an outsider in terms of community so I was looking forward to finding out more about the people involved with wordpress. I expected to meet some friendly folk and I was not disappointed at all – there was a wonderful range of people there, right from people wanting to start a blog to people making a living from wordpress development, and everyone in between. I attended talks on testing the internals of wordpress through to some case studies of sites built using it (thanks @simonwheatley) as well as sessions on plugins, business, and web technologies.

My biggest thankyou of the weekend goes to the Genius @pgibbs who took the time to reply to my tweet-appeal for someone to review my wordpress plugin and spent a good chunk of his afternoon wading through my newbie code – I got loads of great pointers, thanks Paul!

The event ended on a slightly contraversial note with some input from the Automattic people who had come over to attend the event – they’re putting a lot of work into improving the support for the communities running the WordCamps, which should have been good news, but one of the things that will change is that there’s a move away from having WordCamp naming to WordCamp to make space for more events. Suddenly the crowd I thought were so friendly turned a bit hostile, which I found odd. I hope they know that their frankly awesome event will be frankly awesome wherever it is and whatever it is called, I shall be looking out for the details for next year and hoping to see some of the crowd at events between now and then!

edit: I forgot to say I made a particular new friend, @apeei – you can see us here

SugarCRM 6 Installation Error

I noticed that SugarCRM have just released their new version 6.0.0, and since my sugarcrm installation is madly out of date and I’m about to start using it again, I thought I’d just throw the old one away and install from scratch. I had no problems until I reached the final installation stage, when clicking the “install” button would return a 404. This is tedious because then you have to follow the instructions and change config.php so that “installer_locked” is false (but the installer does remember all the information you give it, which makes this less annoying)

After a couple of times around the loop I looked properly at the warnings on that final page before the “install” button, and made some php.ini changes in line with what it requested – increasing the memory_limit and the upload_file_size. I also installed php5-curl (I’m an ubuntu user so this is just an aptitude package for me) and the install ran like a dream at that point. I’m disappointed that SugarCRM couldn’t give me better feedback than just a 404, but it seems like it needed some settings that I didn’t have – so if you see the same behaviour, don’t give up but heed the warnings and it should be able to install itself absolutely fine. Hope this helps!

Giving Up The Day Job

The In-A-Nutshell Version I have resigned from Ibuildings. I will complete my notice period here in a couple of weeks and then move on to a wide and interesting variety of well-paying freelance assignments covering development, consultancy, writing and speaking. Hopefully.

The slightly longer version really is this. Two and a half years ago, I left a job at a type of company I usually describe as a yet-another-website company, where literally every new project was another CMS website. Which was fun for about the first 4 months and got old pretty quickly. Two and a half years at Ibuildings and I haven’t done yet-another-anything, the projects have been technical, challenging and my colleagues are the best qualified set of people I’ll probably ever work with.

Along the way I’ve also done a wide variety of other things, most of which are achievements beyond my wildest dreams, some within the scope of this job and some on my own time but of course influenced by all that I’ve learned. I’ve delivered training, led projects, been published, become a regular conference speaker and travelled internationally doing so, collaborated on an open source project, edited a developer portal and hosted a major international PHP conference. I’ve even learned to say those things about myself in public without feeling too much of a fraud!

At this point, there are so many things I want to be doing, writing, speaking and so on, as well as some interesting development projects, that holding down my 9-5 as well has become untenable; that’s the main motivation for this change. I don’t intend to take another full time job, although I don’t have a lot of paying work lined up so please bear in mind that I am looking for some ;)

Things I would like to be doing:

  • Working with development teams on skills, tools and process (think teach a man to fish, rather than sell him a fish)
  • API development
  • Technical writing
  • Meeting cool and interesting people and embarking on cool and interesting projects together

Advice on achieving any or all of the above is appreciated – if any of you can also think of me when discussing business, write me a linked in recommendation, or retweet my announcement of my news, that would be fabulous!!

If you’re still reading, then I’ll share a little something with you. I decided that with a career move, I needed a little rebrand, so here is my new angel avatar. I hope you like her :)

Wish me luck in my new (ad)venture, I’ll be keeping everyone up to date as always!

Retrieving Product Attributes from Magento’s V2 API

I’ve been working with the API for Magento in recent weeks and I had a bit of a struggle explaining to the V2 API which attributes of a product I wanted to retrieve. Actually I had issues talking to the V2 API at all, but that’s a different post so I’ll skate over those for now. Instead I thought I’d share (or rather, record for the next time I have the same problem!) how to specify which attributes about a product to retrieve.

It actually wasn’t complicated but without V2 API documentation, it wasn’t at all clear what to feed in to get the result I was looking for. It turns out you can just pass an array of desired attributes, shown here with the info method from the product_catalog:

    // connect to soap server
    $client = new SoapClient('http://magentoinstall.local/api/v2_soap?wsdl=1');

    // log in
    $session = $client->login('user', 'pass');

    // product info
    $attributes = new stdclass();
    $attributes->attributes = array('product_title', 'description', 'short_description', 'price');
    $list = $client->catalogProductInfo($session, , NULL, $attributes);

There were two tricks – one was realising that I could pass that final (undocumented) argument, and the other was understanding how to format that. Hopefully anyone doing battle with the same thing will find this post and get over this little challenge much faster than I did :)

Speaking at FrOSCon

In August I’ll be attending FrOSCon in Germany for the first time, and speaking there. It’s a mixed technology conference, with rooms set aside for separate scheduling for various projects and technologies. I’ll be speaking in the PHP room, delivering “Working With Web Services”, a talk which covers how to consume all sorts of types of web service from PHP. I’m excited about that and even more excited to hear that I’ll also be speaking in the main track, where I’ll deliver “Open Source Your Career” – stories and advice about how involvement in open source can positively influence the career path for each of us.

I haven’t visited this part of Europe before so I’m also including a couple of days to see the area, and really looking forward to the trip. Since there are technologies other than PHP, and since I’m rarely in Germany, I know I’m going to meet a lot of new people … and I can’t wait :)

Something Special from PHPWomen

Last month, while in Amsterdam to host the Dutch PHP Conference 2010, I was absolutely stunned (as in, completely speechless – that’s pretty rare for me) to have my PHPWomen friends pull me aside and present me with something:

dscf1843.jpg

The inscription reads:

Lorna Mitchell
In recognition of your extraordinary efforts
PHPWomen

Although I took the photos of this outside, this item now has pride of place on my mantlepiece, where I can look at it and reflect on what a huge influence the PHPWomen have been, and continue to be, for me and so many others.

PHPNW10: Call for Papers

It’s official, PHP North West 2010 is definitely happening … and for that we’ll need some people to pop along and give a talk! As in previous years, we’ll first of all deal with selecting the papers for our main conference day, 9th October. Talks can be 60 minutes or 30 minutes, can be on any subject if you can persuade us it’s relevant to PHP developers, and speakers anywhere on the spectrum from expert to newbie are welcome.

So what are you waiting for? Go submit your talk at our call for papers page. If you need more assistance then you should check out these resources (and yes, some of them are mine but I feel strongly about this topic and want all you interesting and hesitant people to start speaking!)

Are you submitting? What tips would you offer to those thinking of doing so? Already we’re at over 50 submissions, more than last year, so competition is tough but oh my goodness, I’m so excited :)

Working with Branches in Git

Recently I’ve been doing more git than I ever intended to, working with the Joind.in codebase, contributing and managing contributions to that. I quickly realised that I needed to make changes on branches, and since I’m new to git, it took a while to figure some of this out. I’m pretty confident now* so I thought I’d share how I work with branches in git.

Available Branches and The Current Branch

This is the easy bit:

$ git branch
* api
  master
$

The entry with the star next to it is the current branch, so here you can see that I have branches “master” and “api” and I’m currently working on the “api” branch. If you only have one branch it will usually be called “master”.

Creating and Changing Branches

My experience is with Subversion until now, and branching is really different in git (because it actually has branches rather than just copies, this is definitely a feature, but it is a different approach from how I had used them before). So you can switch your working copy around to look at different branches, which threw me a bit to begin with. To change branches, just checkout the one you want:

$ git checkout master
Switched to branch 'master'
$

If you actually wanted a new branch simply name it and ask checkout to create it if it doesn’t exist, by using the -b switch:

$ git checkout -b demo
Switched to a new branch 'demo'
$

So now my branch command shows me this:

$ git branch
  api
* demo
  master
$

Pushing Branches

This is very much an optional step. Many of my branches are private branches – meaning that I branch on the development server, finish the feature at hand, and then merge the changes into my master branch without pushing the branch to anywhere else. To share changes with others though, I sometimes like to push my changes up to github – which is my “origin” remote on my repo. So to push the demo branch we just made, I would simply do:

$git push origin demo
Total 0 (delta 0), reused 0 (delta 0)
To [email protected]:lornajane/joind.in.git
 * [new branch]      demo -> demo
$

If you use “git push” on its own, it will push all branches which exist on both the local repo and the origin – but will not push any private branches unless you specify that it should.

Resources

The http://help.github.com site, Github’s own documentation, is actually brilliant and has really helped me to get up to speed with working with my own code and contributions from others.

* The only problem I’ve had with code on github recently is that I merged totally the wrong changeset into the main project root. Which really isn’t the fault of the source control system :)