Archive for the ‘personal’ Category
Tuesday, June 10th, 2008
After 4 Years and 179 days WheresGeorge.com has finally come through and notified me of my wondering bills status. I always thought it would be funny to distribute some dollar bills at a strip club all marked with wheresgeorge.com and a nice description of where I dropped them off at.

Posted in personal | No Comments »
Sunday, May 4th, 2008
I swear the machines are just fucking with me sometimes:
Breakpoint 3, _zend_bailout (filename=0x4089c8
"/Users/shire/data/php/git/php/Zend/zend_alloc.c", lineno=1693) at
/Users/shire/data/php/git/php/Zend/zend.c:787
787 longjmp(*EG(bailout), FAILURE);
(gdb) n
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!!!!!!!!!!!!!!!!!!!!;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;!!!!!!!!!!!!!!!!!!!/////////!!!!!!!!!!!;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;!!!!!!!!!!!!!!!!!!//////>)!*)>>/////!!!!!!!!!!;;;;;;;;;;
;;;;;;;;;;;;;;;!!!!!!!!!!!!!!!!!!////////>>))&H.I%)>>/////!!!!!!!!!!;;;;;;;
;;;;;;;;;;;!!!!!!!!!!!!!!!!!!/////////>>>))|&I,..H&))>>//////!!!!!!!!;;;;;;
;;;;;;;;!!!!!!!!!!!!!!!!/////////>>>>>)))|&H;))))>;I|))>>>>////!!!!!!!!;;;;
;;;;;!!!!!!!!!!!!!!///////////>>>)|&&%&&IIH%.)))),#HII&|))|.)>///!!!!!!!;;;
;;;!!!!!!!!!!!!//////////>>>>>>))|&*!!/:H))))))))))))):**H.%.)>///!!!!!!!;;
!!!!!!!!!!!!/////>>>>>>>>>>))))|&I,*;))))))))))))))))))))):*|)>>///!!!!!!!;
!!!!!!!!!//////>>)IH||||&||||||&H#,))))))))))))))))))))))))#HH)>///!!!!!!!!
!!!!!!//////>>>>)|&%:;>* /#:HHH%|)))))))))))
Posted in personal | No Comments »
Thursday, April 17th, 2008
I just got back from the OpenWeb conference in Vancouver, and I thought it was well run and enjoyable. As with most conferences it’s difficult to make the wireless internet support so many users, not to mention with the restrictions and prices I hear some locations charge coferences. (I also think electric outlets should be in much wider abundance). But it’s really all auxillary anyways, and there where plenty of good talks to listen to.
All the talks where video recorded so I’m looking forward to looking over anything I missed as soon as they are up on the site (like the Google Gears talk). It was refreshing to attend some other talks of interest such as mobile technologies and open source project research
As always you can find my talks in PDF format on my “talks” page.
Posted in personal | 2 Comments »
Monday, April 7th, 2008
Occasionally a PHP engineer reports this prolem:
Example Code:
————-
$my_arr = array(1,2,3);
foreach ($my_arr as &$val) {
var_dump($val);
}
foreach ($my_arr as $val) {
var_dump($val);
}
Expected Output:
———
int(1)
int(2)
int(3)
int(1)
int(2)
int(3)
Actual Output:
——-
int(1)
int(2)
int(3)
int(1)
int(2)
int(2)
The confusion comes from the expectation that the second loop will print the last element of the array as int(3) rather than int(2). The initial reaction is usally “this is a PHP bug”, but it really isn’t. There are two key aspects to this code to watch out for; 1) The scope of foreach variables is not limited to the foreach block. 2) Foreach loops do not unset foreach variables at the start of the block.
With this in mind we can see that at the end of the first loop, $val is a reference to the last element of $my_arr. Each iteration over the foreach loop can be thought of as an assignment operation, in this case by reference:
$val = &$my_arr[0]
$val = &$my_arr[1]
$val = &$my_arr[2]
// last iteration $val is a reference to $my_arr[2]
As we step through each iteration of the second foreach loop we see the assignments of $val to each element of the $my_arr (assigned by value this time).
$val = $my_arr[0]
$val = $my_arr[1]
$val = $my_arr[2]
But if we you recall $val is really a reference to the last element of $my_arr because it carries over from the first foreach loop, so the actual assignment looks more like:
$my_arr[2] = $my_arr[0]
$my_arr[2] = $my_arr[1]
$my_arr[2] = $my_arr[2]
Thus we end up with $my_array being set as such on each iteration:
// (array(1,2,1)) first element is set to value of last
$my_arr[2] = $my_arr[0]
// (array(1,2,2)) second element is set to value of last
$my_arr[2] = $my_arr[1]
// (array(1,2,2)) last element is set to value of itself
$my_arr[2] = $my_arr[2]
Note that the last assignment is really assigning the last element to itself!
Because PHP5 handles variables with a copy on write algorithm, it’s typically not necessary to do any assignmnents by reference with performance gains in mind (as was the case with a lot of PHP4 code). The above code can be made to function as the expected case by placing an unset($var) between the foreach loops, or not iterating over references and instead assigning the values of $my_arr explicitly by index or key values. References should be used by care and only when necessary. When code like this is present in global scope or large functions it may affect future code in seemingly unpredictable ways.
Tags: PHP, reference, assignment, foreach
Posted in personal | No Comments »
Wednesday, March 19th, 2008
I love UPS tracking, but I’ve never really seen anything go wrong either…. until now….. my package has been marked as rescheduled for two days later than expected. Not too bad considering:

Posted in personal | No Comments »
Monday, November 26th, 2007
I had an excellent time at the Forum PHP conference, many thanks to the conference organizers and attendees at the Forum PHP Paris conference. This year I had the honor of getting to speak to this group of people and share how Facebook uses APC to improve site stability and performance over the last couple years, you can check out the slides here.
Posted in personal | No Comments »
Thursday, September 20th, 2007
My first really long vacation in two years since working at facebook will be hapening this October as I spend the time exploring Japan. I will be doing some work, which hopefully means I’ll get to get some ground on the things I’ve been wanting to do. This also marks my graduation from my beginning Japanese course into intermediate classes!
Posted in personal, 日本 | No Comments »
Tuesday, July 3rd, 2007
A friend invited me to Giordano Bros in North Beach the other nigth for some food and drinks. The sandwiches consist of cole slaw, you’re choice of meet or cheese, and FRENCH FRIES!! This is definitely my kind of sandwich.

Posted in personal | No Comments »
Thursday, June 21st, 2007
Yay! pre-orders for the Pleo has begun, I ordered twins!
http://store.ugobe.com/store/
Orders should ship early to mid October, and it sounds like the specifications should be pretty open from what I’ve heard so I can’t wait to hack in all kinds of stuff. I hope this really takes off, I think this is really a great robotics company. I had a chance to play with one at RoboGames in SF this past weekend, and while I can see some room for inprovement it’s definitely a great looking product and really responds well to human interaction.
Posted in personal | 2 Comments »
Friday, June 8th, 2007
The “pearl” on my blackberry pearl hasn’t been working so great lately. Because it’s such a core part of the phone this is really disabling, and I really only want my phone to last until the iPhone comes out. I decided to take it apart and do some cleaning, to my dismay it’s a very good lint (and who knows what else) magnet. After some cleaning (and breaking a couple plastic parts that aren’t really necessary), the pearl works like new!




Posted in personal, tech | No Comments »