Scott's Blog

Photo Albums

  • 30th December 2004
  • Dscf0022
    August 2004
  • Dscf0072
    Edinburgh
  • Uber_lounge_frankensteins_30th_july_2005_2
    Friends July 2005
  • Imgp0733
    Gran Canaria 2005
  • Imgp1153
    Hogmanay 2005
  • Img_0469_edited1
    March Snow
  • Tablet
    Miscellaneous.
  • Pm_v2
    Projects
  • Image020
    Random Phone Photos
  • Dsc00239
    ScotLUG
  • Imgp0255md
    Susan's 21st
  • Imgp1222
    Susan's 22nd
  • Imgp1043
    Susan's Christmas Ball
  • Susansleavingparty033
    Susan's Leaving Night

Recent Posts

  • Funemployment Part 3: Back to work
  • Funemployment Part 2: What to do with your time.
  • Funemployment Part 1: Becoming Unemployed
  • Running the Reading Half Marathon
  • Speaking at PHP UK 2009
  • Why Apple is a bad open source citizen
  • PHP's Relationship with Commercial Entities
  • Stupid Bug Reports
  • Accessing pseudo random data with PHP
  • Critical Bug in PHP 5.2.7

December 2009

Mon Tue Wed Thu Fri Sat Sun
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Other Blogs

  • Evalyn
  • Scott
  • Susan
  • Kenny
  • Sandy
  • Neil
  • Kyle
Subscribe to this blog's feed

Archives

  • December 2009
  • March 2009
  • February 2009
  • December 2008
  • November 2008
  • September 2008
  • July 2008
  • June 2008
  • October 2007
  • August 2007

More...

Funemployment Part 3: Back to work

This is probably the final post in my adventure since leaving Jelsoft in June, I'm pleased to announce to those who aren't in my inner circle that I'll be joining Facebook as an Open Source Developer Advocate (a position which combines engineering and evangelism).

Now for those wondering what exactly that means, I'll continue contributing to the PHP internals along with this I'll also be working on some Facebook developed PHP infrastructure technologies and tools and generally representing Facebook within the PHP community.

It's no secret that Facebook use PHP to power their site, they're probably one of it's biggest users and I'm really excited to work there. With all the smart people there one should expect some pretty amazing things for PHP in the coming year.

On a personal note it means that I'm moving from England to America, specifically San Francisco. I've already put this into motion and hope to have it completed at some point in January.

2009 has been a popular year for members of the PHP community to become funemployed, some of my current "colleagues" include Andrei Zmievski, Brandon Savage, Cal Evans, Chris Shiflett, Derick Rethans, Eli White, Nick Sloan and Sean Coates.

December 09, 2009 in PHP | Permalink | Comments (26)

Funemployment Part 2: What to do with your time.

After leaving Jelsoft I was in no real hurry to find a job, I was fortunate enough to have some savings from when the company was sold. The end result was me gallivanting around Europe and North America, leaning some new skills and cooking lots. I also did a bit of work towards PHP 6 but that's not too interesting. I might as well blog about what a funemployed person does.

I'll first take a moment to give a nod to dopplr which I use to keep track of all my trips. I'd probably have missed some without it. Photos are included where appropriate and safe for work.

Glasgow, June 30th - July 6th

 Graduation

The first stop was back home for my sister's graduation, she's now a qualified dentist and spends her days inflicting pain on poor children in exchange for money. The rest of the time was spent catching up with friends and family.

NYC / Providence, July 9th - July 15th

Nyc-july

My first foreign funemployment trip. I took the time to do some touristy stuff that I failed to when I was in NYC the previous year. The usual suspects were the Statue of Liberty and Ellis Island. I also frequented a few bars and played a game of football with Chris. The last leg was a visit to Providence where I hung out with my high school friend James and generally drank at his favourite bar.

Madrid, August 7th - August 9th

 Madrid

Some consulting work took me to Madrid for the day, but since Amanda (weinermobile girl) was there studying Spanish I decided to stay around for the weekend and explore. The picture is of the best calamari ever from a little tapas place that I've since forgotten the name of!

Sankt Augustin, August 21st - August 23rd

   Froscon

I attended FrOSCon for the first time and gave the initial draft of Getting Involved with the PHP Project. The photo here was from the party later on where it was decided that we should see how large of a glass pyramid we should have. We should have stopped here, the next glass toppled the lot and every glass broke :)

Valencia, August 25th - August 30th

 Tomatina

This is the part where I run off with the cute girl and throw tomatoes, Amanda's words not mine. La Tomatina is basically a giant food fight held in Buñol each year. For a whole hour the town centre turns into pandemonium as trucks drop off loads of tomatoes for everyone to throw, one can expect to be knee deep in water and tomatoes, and shirtless by the end. The photo is fuzzy because the waterproof camera got a little steamed up.

After the tomato fight it was back to Valencia for some sight seeing and exploring, unfortunately every August the entirety of Spain essentially shuts down and the locals go on holiday. The end result was a very lazy week, we might as well have been in a cave.

San Francisco, LA, Dallas, Atlanta, Miami, DC, NYC September 19th - October 7th

 Codeworks-sf Codeworks-sf2
 

Codeworks was an epic conference that encompassed 7 cities in the space of 2 weeks, rather than the attendees coming to the speakers, the speakers were coming to the delegates. Due to a mixup in my flights I ended up getting to San Francisco a few days early so Amanda and I had time to do some sightseeing. The most obvious being Alcatraz, the elePHPant and I were imprisoned for misbehaving. San Francisco also has some great places to have brunch, these include unlimited mimosas. Places for dinner include Houstons and La Trappe, both have great food and the latter has a vast beer selection.

The rest of Codeworks was a long two weeks of drinking, sleeping and travelling. Flying every two days made me appreciate that sometimes staying at home is a good thing. Highlights were the cigar shop and sugar cane mojitos in Miami and the Beer Table in NYC.

Manchester, October 9th - October 11th

 Phpnw

On the back of Codeworks I spoke at PHPNW with my now finished version of the Getting Involved talk, it was nice to catch up with everyone and the open bar sponsored by the Sun on the Saturday got a little out of hand. This is based on people filling me in on what exactly happened the night before.

San Jose, October 19th - October 25th

 Zendcon

I wasn't speaking at ZendCon this year but went along to San Jose as my alter ego Helgi. The best thing to happen here was the Bing party hosted at Ruby Skye by Microsoft, the attendees of ZendCon were able to crash this thanks to our good friend Josh Holmes from Microsoft. John and I hatched an idea to hire a party bus to take us all there, Josh then stepped up and paid for it.

One piece of advice when getting on a party bus filled with alcohol is don't wear a kilt, I apologise to anyone there who required therapy or at least some mind bleach after that night.

Glasgow, October 30th - November 1st

 Halloweenie

For halloween(ie) I took Helgi and Johanna to Glasgow, Helgi and I are dressed as Iceman and Goose from TopGun. We purchased our costumes from a Navy surplus store in the US. I even shaved off my beard for the event, I take the holiday that seriously. The porn-tache was removed immediately after that night.

Glasgow, November 6th - November 13th

Another visit home requested by my mum since she hadn't seem my since July, I used the time to catch up with friends and travel north to Stonehaven to get an eyetest and pick out new glasses. Not a very thrilling funemployment activity but something that needed to be done.

Karlsruhe, November 15th - November 18th

 Ipc

A bar with a slide going from the top floor to the basement? All I can say is Awesome! IPC was an opportunity to catch up with some European PHP speakers and friends who don't always make it over to some of the American conferences.

NYC, November 19th - November 21st

 Ny-november

I flew to NYC for the third time this year to meet a cool new startup. Social activities were dinner and drinks with Nate and Chris, and another game of football with Chris. A lot was fit into such a small amount of time in the city, I'm really starting to like the place.

San Francisco, November 22nd - November 25th

No pictures for this one since it was such a fleeting visit, I met with two more Bay Area based companies about a position. Nothing much more to say here without giving too much away. I'd recommend not falling asleep on the last Caltrain of the night and missing your stop, my body was clearly starting to reject the timezone abuse.

Providence, November 26th - November 27th

 IMG_1136

My first US based Thanksgiving was with James and his girlfriend Steph in Providence, you can tell that it was a student event by the plastic plates and cups. I took the time to visit Boston and have a wander, it's pretty damn cold compared to the west coast.

San Francisco, November 28th - November 29th

With such a short time back here it was a case of catching up with a few friends in the city and doing laundry, not very interesting but I do need to have some downtime.

Seattle, November 30th - December 4th

 Mswds

The last part of this trip was to Seattle to attend the Microsoft hosted Web Developer Summit. Each year Microsoft invite a cross section of the PHP community and solicit feedback for the initiatives within the company as well as asking for any criticisms. Presentations were varied and covered a fair amount of teams within Microsoft, the more interesting part for me was the SQL Server stuff.

My only main criticism is where is the SQL Server driver for Linux / Mac? We don't need a PHP specific one, if there is a generic one written in C then people will step up to write language bindings for PHP, Perl, Python and Ruby. The response is that they've heard this and are working to address it.

Conclusion

I had a great time visiting 14 cities, some of them multiple times. In total during my funemployment I traveled around 55,000 miles by plane. The other things I did was learn to play the guitar (I still suck) and started a food blog which I'm currently trying to catch up with.

Funemployment has been great for me, I'm recharged and motivated to get back into working on PHP and some more fun stuff. One more post tomorrow on ending my funemployment.

December 08, 2009 in PHP | Permalink | Comments (7) | TrackBack (0)

Funemployment Part 1: Becoming Unemployed

This post is part one of a few to be published over the next coming days about my current funemployment, the best place to start is the leaving from my previous employer.

I've a small script that I run locally to show me how many days it's been since I left Jelsoft Enterprises (171 at posting), the reason for which I've more or less kept very quiet about. A tweet did recently appear in an article on The Register, oops!

A significant amount of time has passed and I'm now comfortable commenting on this without sounding terribly bitter about the whole thing.

In the summer of 2007, Internet Brands (carsdirect.com) purchased Jelsoft the company behind vBulletin. Nothing changed internally and the engineering team had very little direct contact with our now parent company, this remained for around a year. Jump forward to summer 2008 and a few members of the team were summoned to LA to give a presentation about the future of vBulletin 4.0 and the big re-write that was planned. Most of the progress since finishing 3.8 had been design plans and research. We had looked over the old product for current features and design issues, analysed customer feedback on missing features and checked the bug tracker for common issues. The end result was that the 4.0 re-write was cancelled.

A new project / general manager was installed based out of LA (development was in England) and scrum was the shiny new model that would allow us to refactor the current release of vBulletin (3.8) and have a new version chock full of features in a meager six months. I'm not going to comment too much on why there were problems, but lets just say that it didn't quite work out that way and we're now at 14 months and the beta process is just underway.

With creative control of the project moved to LA and out of the hands of the team that had been overseeing it for the past six years it was hard not to feel like a simple code monkey. I was no longer passionate about the product and had been that way for months. This accompanied by the change in direction of the product and priorities of the company resulted in my resignation in May just before php|tek. My final day at Jelsoft was June 19th 2009.

Since the other UK-based senior developers and I left the code quality has dropped somewhat, there are over 1000 open bugs filed, on a normal day this time last year it would be around 10. Internet Brands have also increased prices, changed the licensing model and shelved the project tools product. A lot has changed in a short period of time and I'm not sure if it was for the best.

More tomorrow!

December 07, 2009 in PHP | Permalink | Comments (13) | TrackBack (0)

Speaking at PHP UK 2009

I should probably have mentioned this sooner than 3 days before the conference, but I've been swamped with things as of recent.

I'll be giving a talk on the new cool things in PHP 5.3.0. I gave a similar version last year at PHP London, this was before we switched to using the ever popular backslash for the namespace separator. In preparation for the reaction I got at that session and PHPNW panel I created a special slide which will be revealed on the day.

Tickets are still available and includes lunch on the day, there is also an open bar courtesy of Sun / MySQL immediately after the last session. For those who are traveling down the night before there will be a pre-conference social at the bar in the Brook Green Hotel.

February 24, 2009 in PHP | Permalink | Comments (0)

Why Apple is a bad open source citizen

In contrast to the other companies that contribute to PHP, there is one bad apple, Apple. (drumroll)

To clarify a few things, I work on the PHP internals, that is the underlying C code that is PHP. My primary development environment for this is a Mac and you could say that I'm a long standing Apple fan boy.

So if you've ever tried to compile PHP on OS X, you'll most likely have problems using the default system libraries and in the end you'll use macports to install libxml and iconv. If you're not trying to compile your own versions of PHP and want to use a PECL extension then you'll find that the binary has had all the symbols stripped. Mid last year I tried to get some of these resolved, and filed a bug report with Apple but was informed these weren't bugs.

Since these weren't bugs and were more a support issue I dropped an email to the Apple Developer Connection address enquiring about getting some help from Apple. The speedy response from a helldesk operator was that for an all time low fee of $499.00 I could get some help from their support technicians.

Assuming I hadn't made it clear that this wasn't a commercial venture I did my best to explain that PHP is an Open Source project and that there was no magical bag of cash in which to give to Apple. If the PHP group had any sort of funds I'd be more than happy to pay. I even went on to explain that the software is already bundled with OS X and we wanted to make it better. I wasn't able to convince them it would be worthwhile and simple got ignored.

Skip forward a few months to December and I decided to give this another go, but this time I start out explaining that the software is already bundled, that we have no money pot to which to dive into and that we just needed some help with the abomination that is the bundled OS X libraries. This time I get a promise of a response soon as they forward it between departments, I let things slide until January and poked them again with the promise of a response soon.

Now its February, and the fact that I'm writing this blog post should suggest that Apple have yet to get back to me with any sort of response.

What was essentially asked for was help to improve PHP on OS X, but this has fallen on deaf ears. Apple are happy to take PHP but don't seem as keen to contribute anything back to the project. Yes they are perfectly entitled to do this, PHP is open source after all. But is waiving a $499 charge too much to ask?

It should be noted that I did manage to partially resolve one of the issues I was originally trying to contact Apple about, so with PHP 5.3+ you'll see support for a few of the missing DNS functions. However there is no guarantee this will work on newer versions of OS X since the PHP project has no access to the future OS X betas.

So if someone reading this knows someone at Apple who can help then leave a comment or drop me an email.

February 19, 2009 in PHP | Permalink | Comments (14) | TrackBack (0)

PHP's Relationship with Commercial Entities

I started this blog post as a rant about Apple, so I’m saving that for later on and I thought I’d start with a quick thank you to all those groups and entities involved indirectly with PHP.

The PHP project relies on donations to provide our service infrastructure, this is in the form of hardware and hosting from both individual companies and hosting companies to provide collocation.

We can also thank various hosting companies for providing local country mirrors for documentation and downloads. You can find a list of the mirrors here, the general rule is two per country so if you want to be a mirror then you’re more than welcome.

Along with hardware and hosting we also get some donations from companies in the way of software and employee time and there are a few notable mentions here.

The first huge contribution we have is IBM, they’ve provide a vast quantity of tests that have helped increase our code coverage significantly. Along with these tests they also provide some developers to work on their database extensions and most recently they donated a PPC server for performing tests.

Next up is Microsoft who provide developers in the way of Pierre to work with PHP on Windows along with other developers to work on the new mssql extension. For those working on the PHP Project they will also provide MSDN accounts to obtain the latest software for testing on Windows.

Microsoft also host meetups, the most recent one was in London hosted by Will Coleman who got together some members of the PHP Community and asked for feedback on how Microsoft could improved their relationship with PHP. This was a great opportunity to ask for Microsoft’s help with certain extensions. Prior to that the Microsoft Web Development Summit in Redmond was another great time to talk with the various entities within Microsoft about the way they interact with PHP.

From Sun we have staff working on improving PHP running on Solaris and using suncc along with all the maintenance we have for the MySQL stuff. Sun even contributed mysqlnd which is a native MySQL driver written just for PHP rather than relying on libmysql.

Yahoo! allows their employees to work on PHP, we’ve had plenty of contributions to APC and some of the core stuff from Sara and Rasmus.

Not forgetting Zend who allow Dmitry to work on the engine and Stas to contribute, while they use to do a lot more in the past, it can be said that without Zend, PHP wouldn't be where it is today.

Oracle, Facebook and Digg sponsor developers to work on PHP, their contribution help improves the PHP core and the extensions they work on.

And last but not least the smaller companies who allow their staff to work on PHP, these are companies you've probably never heard but we thank them none the less.

So overall a big thanks to all those companies and more importantly the volunteers who give back to PHP.

February 18, 2009 in PHP | Permalink | Comments (6)

Stupid Bug Reports

Recently the PHP project has been receiving an increasing number of rather silly reports, these vary from simply not reading the manual, searching the internet or a fundamental lack of understanding how the internet works.

In December there were several reports but two that jumped out were simply leagues of stupidity above the rest:

Firstly we received a feature request to "Make PHP use less CPU". The proposal was that we should take out our magical wands tap the PHP source code and make it so that a single server could handle millions of visitors of a day. The use case was that we could make Wikipedia run from a single machine....

Unfortunately other users decided to feed the troll here and start giving him suggestions to improve PHP performance.

The second was yet another feature request to make PHP censorship free, the reporter proposed an option to make PHP be unblockable by ISPs. I didn't even know where to start with this request...

Skip forward to January and we got another one of these requests, this time titled "Make PHP more secure". Seemed like a reasonable request until you read the report, the suggestion was to remove the ability to set permanent cookies because this was a security hole.

For those paying attention and went off to read the reports you'll notice that the same person reported these and I'm not particularly picking on this one reporter, it just so happens that they're the most clueless in the past two months.

When you make a bug report or feature request to any sort of project please check you have all of the relevant information and if you can get someone else to check it through. Try searching Google first or ask in a mailing list.

For a performance issue check against an older version of PHP to see if you can work out when it was introduced, if you're not currently testing the CVS version then check that as well. It may have been fixed already. Reports that language X is faster than PHP will also most likely be ignored, these really aren't constructive and unless you can identify the issue within PHP it's pointless to create a report.

Finally, don't get aggressive or be an asshole when your bug reports get closed. PHP is an open source project and most contributors are volunteers. If you don't like something then you are more than welcome to submit a patch.

February 01, 2009 in PHP | Permalink | Comments (10)

Accessing pseudo random data with PHP

PHP has two random number implementations at the moment rand() and mt_rand(), the former being a wrapper around the libc rand function and the latter being a implementation of the Mersenne Twister algorithm. Both of these are reasonable for generating random numbers but due to the fact that they're only seeded with a 32-bit number they are not suitable for cryptographic purposes.

Stefan Esser has a good article about the common pitfalls that most application developers fall into it when attempting to generate random values.

Most operating systems provide some sort of random number functionality, on Windows we have the CryptoAPI which samples various bits of information about the system creating a system wide seed. This includes monitoring the system counter, free disk clusters, memory status and other process information. With most varieties of Linux we have /dev/random which collects noise from device drivers and on some of the BSD based systems there is arc4random.

With all these potential different ways to get some pseudo random data it would be hard to do this in native PHP. Now we could do this in C and implement all the code ourselves but why risk implementing our own random functions and potentially making a mistake?

The answer is OpenSSL, we already have an OpenSSL module and obviously they have some random functionality built in for when you go to generate SSL certificates. So from PHP 5.3 access to the OpenSSL random number generator.

string openssl_random_pseudo_bytes(integer length [, &bool strong_result])

The return value and first parameter of this function should be pretty straight forward, you pass in a length and the random number generator returns a string of this length.

$random = openssl_random_pseudo_bytes(512);

On error this function will return false, the second parameter is a reference to a variable that will be set to true if the result is cryptographically strong.

$random = openssl_random_pseudo_bytes(512, $strong);

If $strong is true then the value of $random is considered cryptographically secure, if you don't care then just ignore the second parameter.

December 13, 2008 in PHP | Permalink | Comments (0)

Critical Bug in PHP 5.2.7

PHP 5.2.7 was released on Thursday but unfortunately a critical bug was introduced during the release candidate process that essentially full disables magic_quotes_gpc even when it’s marked as enabled. The end result being that if you relied on magic_quotes_gpc being enabled it’s now not, potentially a security issue.

The other problem is that even if you don’t rely on it being enabled but have an application which attempts to undo the work of magic_quotes_gpc you may end up with some data loss. Such code is present within most applications that want to work with it disabled

This has been fixed in CVS so you can grab a snapshot if you've already upgraded to PHP 5.2.7, if not then hold out for PHP 5.2.8 which should appear next week.

If magic_quotes_gpc doesn’t matter to you and you normally run with it disabled then this doesn’t really matter.

December 06, 2008 in PHP | Permalink | Comments (3)

Property List Parser

Property Lists (plist) is a format used on OS X as a way to store settings and other configuration data, as part of my SQLite talk I show how to extract SQLite databases from the backups generated for the iPhone when it syncs to your computer.

Simply, its an XML format that stores a data structure consisting of boolean, integer, real, string and blob values. I've provided the parser I use to extract data from the PList file, it doesn't work with binary plists at the moment. But may do so in the future, you can convert a binary PList to an XML PList using the plutil binary on OS X.

Instantiate the PlistParser class and then call the parse method with the filename as a parameter. This will then return an array of the PList elements.

If you have any problems add a comment and I'll look into it.

November 17, 2008 in PHP | Permalink | Comments (5)

»