Preparing to Telecommute

On Monday I start my new job and I’ll be mostly working from home which will be nice, but quite a change. I have a lot of online friends that I have yet to meet in real life but to have a whole set of colleagues, some of them in another country (IBuildings is a Dutch company) is all new to me. It’ll be nice to avoid the annoyances of sharing an office, with other people’s music and cleaning up after others too. I know I am organised and self-motivated enough to manage the working patterns as well, which is one less thing to worry about. If I had needed to be in the office every day, I simply couldn’t have managed it as they are based in London. In preparation for next week, I thought I’d share some photos of my home office. To the left are my flower pictures that I found in a box when we moved, they came from another house we previously rented.

I also have some essential accessories for any office: A map of the world and a nabaztag. This one is called Tag and is our second one of these rabbits.

Finally, check out my lovely big office chair, modelled here by my Christmas bear, now named Busibear as he lives in the office and oversees business. The chair was a birthday present from my parents, thanks mum and dad :)

I have a nice new notebook and a futon for any visitors that pop in, I think I’m all set…

LornaJane Moo Cards

Whenever I attend a conference or other geeky gathering (GeekUp for example) I’m often asked for my card … but I don’t have one. I don’t have work business cards, because only sales people need those, and I don’t have personal ones because I don’t freelance (or not usually). I finally cracked though and ordered cards from moo.com as recommended by many many people. Here they are:

On the other side I put the angel motif made for me by Gretchen from www.girlscantwhat.com, which I love and use as my online persona in a lot of places. She didn’t quite fit and I didn’t want to shrink her so instead she peeps out at you:

So if you see me around, and you’d like my card, try asking me again if I have one :)

The Pitter-Patter of Tiny Paws

We are cat parents. Orbit is a gorgeous glossy and slightly ditsy boy cat belonging to Cally who has gone abroad for a while, so Orbit has come to live with us. I’m not sure exactly how he feels about this so far, its much noiser here than he’s been used to, but he’s a cute guy and very welcome.

Here he is:

I’ve also started a flickr set of Orbit.

SVN Deployment and a New Site

I recently got an email from a BarCamp friend, Mark Sailes, telling me about his new site http://www.svn-checkout.co.uk. I am a big fan of subversion and always looking for more tips and tricks for using it better so I popped over to have a look. Its a nice site with some very useful short articles on various subjects related to subverison. In particular the article on releasing new versions of sites caught my eye. Mark suggests use of a checked out version of code rather than an exported one, and using the switch command to upgrade to the next tagged version as needed. He completes the setup with an apache configuration trick to avoid any of the subversion information being served to the outside world. I’ve usually just exported new versions as needed but this trick is a definite alternative and the article itself guides the reader through each step of the way. Nice one Mark :)

TV Aerial Arrives

I’m proud to announce that as of last week (Tuesday, to be precise) we are now the proud owners of a TV aerial and now have TV signal to the house. You can tell how much we enjoy the telly by the swiftness with which we had this done … only 8 month and 4 days after buying the house!

I should point out that the TV signal doesn’t actually reach the TV because we’re deccorating and the TV is in the other room, but its progress. We had a second TV point put in to the office so the webserver can record stuff for us, so we can now watch things over the network. I can’t see when we’re going to have time to watch any of it but the recordings are there, just in case. I know a lot of people have thought it strange we didn’t miss the TV, surely we can’t be the only people who don’t watch the thing?

Wall Worries

I opened a metaphorical can of worms the other night. While fillering the last few holes in the last wall in the living room, almost ready to paint, I saw a break in the plaster and some black furry mould growing there. Now the wall had been a bit mouldy in other places but we just took some panelling off the walls and the room was a kitchen at one time so we didn’t think a lot of it. So I chipped away at the crack, just to make sure there wasn’t anything bad going on.

It was kinda black and furry underneath the plaster too, and I started to find layers of stuff under the plaster …

At this point the smell of damp and the slightly wet wallpaper layers coming off the wall started to ring alarm bells and we started scraping to see how big the area affected was.

By the time we had got everything off the wall that we could, beyond the edges of the apparent damp and back to the original plaster covered with five distinct layers of (amazing, retro) wallpaper, then artex, then more plaster, then painted, we ended up with this:

We think this is all due to there having been a broken downspout exactly on the other side of that wall, it was broken when we moved in and we don’t know how long it was like that. Its now fixed and the wall seems to be drying out OK on the inside.

However that leaves us with several large holes in the walls in that room, from rewiring, boiler removal, panelling removal and half a wall that wasn’t plastered in the first place for reasons that aren’t clear. There is also a weird bit in the ceiling after the shower leaked through it and we had to replace a whole section. It turns out that it is going to cost less than 400 pounds to have the whole thing, walls and ceilings, completely skimmed to flat walls and proper corners … so they are coming on Wednesday to do it. We weren’t planning on it but at least then we’ll be able to paint and the walls will be much more beautiful than anything we’d manage ourselves.

PHP Women at PHP London

On Feburary 29th the PHP London 2008 conference will take place in London. Things have been very busy for the guys organising, there have been a few tweaks to the schedule but its looking like things are coming together nicely. I’m all set and have booked tickets and a hotel already – for Thursday *and* Friday nights so I can go both the pre-conference and post-conference socials, which is essential. If you haven’t booked your tickets yet, or you have to get your employer to do it, I suggest that’s something you might want to sort out fairly soon as I imagine it’ll be oversubscribed – in fact if everyone who has told me they are thinking of going does try to book tickets, I think they’ll sell out!!

At this event I will be busy with phpwomen, wearing my t-shirt and generally making a noise and raising the profile of the group. If you are attending the conference then you are morally obliged to pop over to us and say hello, we like to meet new people. If you are extra nice to us we may give you a t-shirt! There will be women from the UK and also elsewhere in Europe and it’ll be great to meet those I haven’t met yet and also see some old friends from other conferences. An excellent way to spend Leap Year Day in my opinion :)

New Job Announcement

Following on from my post about needing a new job, the observant among you may have noticed that I have yet to post the promised sequel about myself and my skills. That’s because I don’t need to – I have a job! I will soon start a job with IBuildings, an amazing and energetic set of people, and I’m wildly excited. They are based in London but I’ll be telecommuting most of the time.

Its been a funny few months, I’ve been very active in the PHP community, mostly because I’ve needed some professional support and they are a wonderful set of people. They have been graceful to accept my attempts to contribute to the community and have supported and encouraged me every step of the way. Through this I came to do a PHP|Abstract podcast, a talk at a BarCamp, quickly followed by being stalked and offered a job by a very good local-ish employer. I ended up passing on the opportunity because it was the kind of local that is too far and awkward to do in the rush hour for every day, however the experience was amazing and I met some great people in the process. I studied for and managed to pass my ZCE exam, and in the same week parted company with my employers of almost a year. In the last five days I have communicated with some superstars from my industry, looked over my shoulder to find the other lornajane that surely they are actually looking for, received two excellent job offers from two uber cool companies, and accepted one of those offers. I owe thanks to many, many people for the moral support, listening and general egging-on they supplied – guys, you know who you are.

After all that – I need a nice cup of tea and a sit down … :)

PHP5 Soap Server

Recently I wrapped a class up and provided it as a SOAP service. Getting it working was a bit of a struggle and its clearly not something that people are doing a lot of, so here’s a quick roundup of the main issues and how I tackled each one.

Start Small – Build and Check A Class

I firstly built some unit tests using PHPUnit (more about that another day perhaps, but let me say it is excellent and I tumbled to it really easily once I’d started), then wrote my class and verified the tests were passing. This was to avoid trying to debug the PHP functionality through the added layer of the SOAP.

Simple SOAP Starting Point

My next step was to get a working SOAP service. This isn’t remotely tricky except that PHP can’t generate its own WSDL file (for extremely valid reasons but that doesn’t help me), so you either need to write it by hand or you need to generate it somehow.

As my starting point I took the whole working code from this fantastic example and checked that it worked for me.

SOAP setClass() and WSDL Fiddling

Having got this far I changed my SOAP server code to use the setClass() method and pointed it at my own original class. I then hand-edited the WSDL (one function at a time) to reflect the data types and arguments that would be moving through the service.

The actual service code looks like this:

require_once('lib/myClass.php');
ini_set("soap.wsdl_cache_enabled", "0");

$server = new SoapServer("service.wsdl");
$server->setClass("MyClass");
$server->handle();

The example WSDL supplied by the JimmyZ tutorial has a single function in it at the early stages, and I started with that, then adapted it for one single function from the class. This is perfectly valid providing you don’t try calling anything else! The PHP function declaration took this form:

function getAccountStatus($accountID)

The function returns two variables – it passes back the account ID and also returns information about the number of credits on the account. The accountID is a string of up to 8 characters, the other variable is a number. Here is the WSDL adapted for this purpose:


   
   
     
   
   
     
     
   
   
     
       
       
     
   
   
     
     
       
       
         
       
       
         
       
     
   
   
     
       
     
   
   

Once I discovered that WSDLs are best read from end to beginning, I was able to expand the example above for all the other various functions I needed.

Hopefully this helps someone get started. There are various tools available for generating the WSDL, in particular try either George’s suggestion, the offering from phpclasses.org, or check out the automatic generator in ZDE. Certainly there are tools available, but I didn’t manage to find one that did the trick for me.

If you are writing, or have written, a SOAP service in PHP5 then drop a comment and let me know – I certainly felt like I was in a minority on this project. Similarly if I’ve missed anything then I’d appreciate comments so I know for next time.

So Begins a New Chapter

I’d like to announce that today I parted company with my employers Coolpink to the satisfaction (and probably benefit) of both sides.

To answer the first three questions: Yes, I am fine. Yes, they are paying me my notice period so I won’t starve. And yes, I need a new job! I’ll put up a coherent post on me and my skills soon.