El Tigre and Recoleta Cemetery Photos

no comments

Just posted pics from last weekends excursions to El Tigre and the Recoleta Cemetery.

El Tigre is a small fishing village about 30km north of Buenos Aires, along the Parana River Delta at the mouth of the Rio de la Plata river. We made a day trip up there and it was well worth it. The 1h long train ride cost us 2.20ARS round trip (~80c CAD !!). Probably the cheapest trip I've ever had :).

El Tigre's main highlights include river boat excursions, an amusement park, a huge market (Puerto de Frutos), and a casino. Though it's a pretty small town, it took us a little while to find our way around...

What's for breakfast? How about 175 thousand calories?


Out of habit I look at the label of pretty much everything at the grocery store before purchasing it. Not for any health reasons, just habit really. Sometimes the labels are in foreign languages that I don't speak, but that rarely stops me.

Yesterday at the grocery store I found this gem:

Creating Custom Triggers in Drupal


So after playing around for several hours tonight trying to build my own custom trigger I think I've finally figured it out. I thought I'd post it here for reference.

Though triggers are included in core in Drupal 6 it seems they're very poorly documented. The extent of the documentation I could find was on this trigger page in the handbook. Pro Drupal Development also has a chapter on it but unfortunately isn't really explicit enough for me with some parts.

Disclaimer: I don't really know what I'm doing, so please let me know if I've done anything wrong.


  • Drupal 6
  • The triggers module should be enabled.
  • A commenter also pointed out that the triggerunlock module is also necessary. If you have your own custom actions this isn't needed though.
  • If you're following this example, you'll also need to CCK type called 'script'.

What I want to do is create a custom trigger in my module. Let's say I want to execute a custom action on my server whenever a node of a type script (as defined in the 'script' module) is created. The first step is to define hook_hook_info.

 * Implementation of hook_menu_alter().
function script_hook_info() {
  return array(
    'script' => array(
      'script' => array(
        'insert' => array(
          'runs when' => t('After script is created'),

This will create a new tab in my triggers page that will be named after the name of my module as set in my .info file.

Two things I still need to do to make sure this trigger actually does anything... define hook_script and call it from a module_invoke or module_invoke_all whenever the triggering event happens and call the actions using actions_do(). Since these hooks should be executed on node insert I'll need to use hook_nodeapi().

 * Implementation of hook_nodeapi().
function script_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
  switch ($op) {
    case 'insert':
      module_invoke_all('script', 'insert', $node);

The second aspect (calling the associated actions) requires an implementation of hook_script() (the alternative being to just replace the module_invoke line with this functions body.

 * Implementation of hook_script().
function script_script($op, $node) {
  $aids = _trigger_get_hook_aids('script', $op);
  $context = array(
    'hook' => 'script',
    'op' => $op,
    'node' => $node,
  actions_do(array_keys($aids), $node, $context);

The first line in the function is a call to _trigger_get_hook_aids which returns the list of action ID's that have been assigned to this trigger. This is a private function, but seems to be the only way to get the list of actions. The last line in the function calls actions_do(), which processes all the actions assigned to this trigger.

In this particular example you'll need a custom content type called 'script'.

And that's all there is to creating your own custom triggers.

Alternatively, I don't need to create a hook for the trigger, instead I could just piggyback off of the nodeapi hook, since this is a node operation.

The hook_hook_info looks a little different with:

function script_hook_info() {
  $info['script'] = array(
    'nodeapi' => array(
      'script' => array(
        'runs when' => t('After script is created'),
  return $info;

And then just a slight change to hook_script() to change the hook from 'script' to 'nodeapi'.

 * Implementation of hook_script().
function script_script($op, $node) {
  $aids = _trigger_get_hook_aids('nodeapi', $op);
  $context = array(
    'hook' => 'nodeapi',
    'op' => $op,
    'node' => $node,
  actions_do(array_keys($aids), $node, $context);

One other thing that was bugging me with triggers was the inability to only use them on specific cck types. There's no way to setup a trigger to only get called when an event happens to a single content type (without using the workflow module, which I found has some problems using variables in actions). Put an "if ($node->type == 'script')" somewhere appropriate, in my code I'd wrap that around the call to module_invoke_all(), for example:

function script_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
  switch ($op) {
    case 'insert':
      if ($node->type == 'script') {
        module_invoke_all('script', 'insert', $node);


After writing this I found this blog post which also looks quite useful.

I've made some updates to this example, so hopefully it will work for everyone now.

You can download the example module here.

Short Changed in Buenos Aires

1 comment

I've been in Buenos Aires for roughly one month now, and something that keeps surprising me is a lack of change all over the city. No one has enough, and everyone needs it. Imagine going to your local corner store, trying to purchase some things that cost around $4, and the clerk not being able to give you change from a $5 bill... ever.

If you are buying something at a kiosk, using a computer, making a phone call, at the subway, or buying something in a bakery, you will definitely need to use change. For example, if something costs $2.20, paying with a $5 peso bill will not likely be accepted. This becomes very difficult. Everywhere you go, people expect you to use your change; however, you need as much change as possible, because you will need to use it on the buses, and in these stores.

This happens daily here. Vendors don't have enough change to last them a day, banks are only required to change a 20 peso bill per person (roughly 6 USD), the subways often let you on for free simply because they can't even change 10c from a peso (subway rides are 90c).

Normal shopping etiquette has completely broken down in Latin America's most elegant city. Sales staff have no compunction about peering into clients' purses and demanding the exact amount. Big supermarkets regularly round off the difference in their own favor, even though there is a law against it. Small mom-and pop stores, meanwhile, routinely offer candy as change in lieu of coins. And if you refuse to add more bon-bons to the swelling collection in your purse, many store owners prefer to lose the sale than to part with their precious cents.

If you want to take the bus you need change (fortunately not exact), the bus driver isn't allowed to accept money and if you don't have enough change (even 5c short) you'll be stuck walking as they often won't let you on. Any nearby shops will laugh at you if you ask them to change a bill.

Tres guitas
(photo by: 'J')

Apparently the government has been making coins in record numbers this year, but regardless the problem has gotten worse.

"There's a black market involving the bus companies and the money transporters who collect their coin earnings each day," says Central Bank spokesman Fernando Meanos. "Instead of depositing the coins in the bank, these transporters are reselling the coins."

I've actually found the problem quite interesting since I've been here, and really can't do anything but laugh about it. It probably doesn't help that I've also started hoarding what little change I get ;-).

Shortly before I arrived in the city the entire subway system had to let people ride for free because they simply didn't have enough change and didn't want the situation to turn violent.

The only silver lining in the coin crisis for the long-suffering consumers in Buenos Aires, is that the city's perennially cheerful taxi drivers seem only too happy to round off fares in passengers' favor.

Not to mention the occasional free subway ride. About every 2nd or 3rd time I ride I get on for free since they simply have no change.

"Since I couldn't get coins at the bank I started buying them from a bus company paying a 5% commission," says taxi driver Antonio Corral. "I had a friend there who sold them to me on a side street close to the bus terminal. But now I just slice the cents off the fare instead, I lose about the same amount of money, but I don't lose as much time."

Also posted on Read this article on NowPublic NowPublic.com

my first massage (now with happy ending)


For my birthday yesterday, Sam got me for a present (among other things), a massage at a spa just a few doors away from our apartment. Before this I'd never had a massage, always a bit too awkward and not really sure how it works (or if I'd just laugh the whole time due to ticklishness).

This place was pretty classy and the guy at the front desk even spoke English, making me slightly less nervous about the whole situation. Sam jokingly said something like "yeah, don't worry, it's a men's spa but they have women masseuse, they massage your ass and stuff, but that costs extra and I didn't pay for it :-p".

At this point, one of the girls fetched me and showed me around the facility and to the shower area, signaling for me to shower first. They had a steam room, sauna, jacuzzi, and some kind of a funky shower that didn't work properly. I wasn't really sure if I was suppose to go naked or bathing suited... so I made a compromise and wore boxer briefs.

While waiting for the masseuse (there were actually two, I was getting the "four hands" treatment) I chilled in the jacuzzi and the steam room. The main masseuse fetched me, introduced me to the other one and took me to a private massage room. Both were quite fine looking Argentine ladies, though in the "fake" sort of way (bleach blonde, fake n' bake, enhanced breast types), but I'm not about to judge.

The massage was 1h long, and all I really knew was that the first 30mins was suppose to be a harder massage and the second softer. The two masseuses didn't speak much english, and when asking me what I would like, I could only really understand "aromatic" and "tantric" (<-- this got my ears perked up a bit). I got them to clarify a little bit, and in the end explained to them that I'd like a harder massage to start followed by a softer one. They seemed cool with that.

** This is where it starts getting interesting **

One of the girls signaled to me that I could remove my shorts. So I did. Lay face down and the massage commenced. They began with one massaging my upper back / shoulders, and the other... my ass. At this point I was like "hmm... I guess Sam /did/ pay the extra ;-)". As the massage progressed it was clear that one of the girls was a lot more... forward? then the other. The massage got a little bit interesting at points, but nothing I decided to say anything about, for all I knew it was still a normal massage ;). The one girl then started moving in such a way as to rub her breasts up against my hands (and yes, she was equal with both hand).

** And this was the first time I touched fake breasts (or fake breasts touched me? I know, I'm inexperienced, but I'm not afraid to admit it) **

Shortly after they asked me to roll onto my back, and covered my eyes with like a little eye covery thingy. They then massaged that side of my body for about 10 minutes or so... they were getting a little bit close for comfort, but I declined to say anything again as nothing /that/ inappropriate had happened yet, and if anything, a little less "personal" then when I was on my back... and then... one of the girls leaned up to my ear and whispered... and I swear to god I am /NOT/ lying about this, and please keep in mind and believe me when I tell you that while the massage was very nice and relaxing, in no way was I aroused in a sexual fashion... so she leans in and whispers ... "scott, you want happy ending?"

** The End **

3 things that always trip me up in foreign countries

1 comment

This is somewhat related to my Culture Shock blog post. But somehow there's a re-occurring theme with 3 basic things that always surprise me and get to me a bit (a lot?) when I'm traveling in a foreign country. This doesn't include the US which is may as well be the same as traveling in Canada (well, the more urban areas anyway).

Disclaimer: Parts of this blog post contain graphic details.

1. Toilets. When I first arrived in Italy with Scott, we met a guy who had just arrived in Europe from the US for the first time. His girlfriend warned him about the toilets, so he brought a massive pack of toilet seat covers to show those toilets who's boss. However, in a lot of Italy the toilets have the seats removed! Needless to say, he got owned. I'm not sure why the seats are removed, but they're standard north american style of toilets, just with no seat, so you kind of need to do a half squat above the toilet, or seriously mummify the thing with a ton of toilet paper.

In a lot of western Europe you need to pay to use the toilets, this was a bit annoying as we always had to carry change with us just in case, though after using a free toilet in Spain, we were more than happy to drop a bit of change for clean crapping.

In Hungary, for whatever reason, many of the toilets had a nice little ledge for your, well... to "rest" on prior to being flushed. Not really my thing, but I guess some people like to examine their "stool" prior to flushing.

The apartment I'm living in now has a nice little add-on bidet for the toilet (you can probably get one for /your/ toilet too! (let me know and I'll try and hook you up)). Thus far I've been too afraid to use it. But I did turn it on once to see what would happen. Fortunately my face wasn't anywhere near it when it took a good shot up towards the ceiling. A minor wipe down of the nearby surfaces was necessary.

2. Tissue paper. Nowhere I've been have I been able to find as soft as toilet paper and kleenex as is in North America. Hungary was the worst I've been for both (and I won't go into any more details there, but I'd have been in about as good a shape with a fine sandpaper)... but honestly, soft toilet paper and kleenex are the exception, not the rule. We have spoiled bums in North America.

3. Recycling. I've had to come to grips with throwing out plastic and glass bottles when I'm traveling. Especially when I can't speak the language. South Africa may as well have had no recycling at all. Now in Buenos Aires, there's clearly recycling, but I just haven't been able to crack the system yet. This might seem a silly thing to be bothered by (in my top 3), but really, I cringe every time I have to throw out something that I know can be recycled, a small part of me dies inside. (Maybe a spanish speaker can provide me with a script en espanol with how to get more info about it :) ).

Trip to La Boca (Caminito)

1 comment

Decided to venture to El Caminito yesterday. Took us only 4 hours to make the 30 minute trip (probably 1.5h if we'd walked). Caminito is located in La Boca, which is considered one of Buenos Aires' poorest and dangerous Neighbourhoods. The guide book had phrases such as "if you must walk... whatever you do don't turn left on ... and don't even think about walking back along the water ..."

Anyway, we decided to take the subway to plaza de mayo and then hop on a bus the rest of the way. The bus however, seemed to be going in the opposite direction of where we wanted to go... by the time the bus passed the original subway station we started at, we figured we might be on the right bus going in the wrong direction. Having nowhere to be really, we stayed on the bus to get a nice little tour of Buenos Aires... 1h later when the bus was in the middle of nowhere... we got kicked off and had to find another bus back (we were hoping maybe he'd just turn around and start the route from that end, but no luck.

In Buenos Aires you have to have change to ride the bus, you can't buy a pack of tickets, always change. We /thought/ we had enough change for the day... but turns out busses in the suburbs cost significantly more. We bought one ticket, got yelled at by the bus driver a little bit and then took our seats. Hopped off at a subway station and decided to try our luck again. At this point we were out of change, and apparently so were the subway people... so they let us board for free (subway costs 90c/ride, we gave them 2 pesos and they couldn't even change 20c worth).

We knew we'd need more change to catch another bus at this point, so we stopped at a small "kiosko" (a little corner store type thing) and tried to find some unevenly priced items (if you ask for change they'll laugh at you). We managed to get 50c which was enough to add to our existing change collection to get us into Caminito. Hopped on the right bus going the /right/ way this time and arrived about 10 minutes later.

El Caminito used to be right next to the BA docks and supposedly the poor people living there would beg docked ships for extra paint they had. The area now is primarily for tourists and even overwhelmed me a little bit with just how touristy it was (easily the most touristy place I've been in years). It's located on the edge of the La Boca neighbourhood, which apparently has the highest crime rate in Buenos Aires. Though supposedly the area is a lot safer now than it use to be even a few years ago.

On our way out, I tried to buy a hot dog but almost failed due to the vendor not having even a peso of change (!!). And then boarding the bus... well, no one had change so the bus driver just let us all on for free.

Change in Buenos Aires is a serious issue. I'll be writing more about that in my next post.

You can see all my El Caminito photos here. Or my whole Argentina set.

New York photos uploaded

no comments

Two and a half months later, but I've finally remembered to post my photos from my one week in New York. After DrupalCon Hungary I timed my trips back to have a one week layover in New York. Sam also joined me there for the week.

I think this is the only blog post I've written about that trip besides the one night stop over I had on the way there (due to a mistake in my ticket purchasing :) ). Anyway, the trip was really good, we stayed the week in a nice apartment in Brooklyn that had fairly central access to a few different subway lines.

It definitely had a few areas that reminded me of parts of Vancouver... but everything was at least x50. I really liked the city and wouldn't mind spending a bit more time there.

Making phone calls to Buenos Aires, Argentina - AND 3G!

no comments

Calling a friend generally consists of picking up your phone and dialing the phone number your friend has given you. Giving your phone number to a friend generally consists of telling them the same number that was assigned to you by your phone company. This doesn't necessarily apply in Argentina.

Diagram of phone system

This is a picture of a back of a sheet of paper our spanish teacher used to explain the phone system here.

1. The base phone number in Argentina is 8 digits, i.e. 1234 5678
2. The area code for Buenos Aires is 11, so 11 1234 5678
3. Unless you're using a cellphone in which case it's 15, so 15 1234 5678
4. To call a cellphone from a landline (which, btw your landline will need to have a special plan to do) you use 15.
5. To call or SMS a cellphone from another cellphone you use 11, not 15.
6. To call a landline from a cellphone you also use 11.
7. When receiving calls from a cellphone the caller ID will appear as a 11 number.
8. When receiving SMS's from a cellphone the caller ID will appear as the full international +54 number.

And for international (incoming) calls...

1. The country code for Argentina is +54
2. You never use the 15 area code when dialing into Buenos Aires, cellphone or landline, you always use 11
3. You might think.. "ok this is easy enough, so the phone number would be +54 11 1234 5678" and you'd be right... UNLESS you're trying to call a cellphone.
4. When calling a cellphone, the telecom company here has decided to also insert a '9' directly before the area code into international incoming calls. So the number would actually be +54 9 11 1234 5678

So to sum up. My phone number here is 15 3346 9192. If you want to call or sms from a cellphone here it will actually be 11 3346 9192. If you want to call me internationally you'll dial +54 9 11 3346 9192. And hopefully you don't need to call me from a landline in Buenos Aires, cause it probably won't work.

Here's a useful reference I found on the topic: Calling Argentina

== 3G with Claro in Argentina ==

My phone company here is called Claro. A couple quick searches on The Google for an APN username and password and password for Claro were helpful :) . There's no username/password as usual, and the address is internet.ctimovil.com.ar - set that up on your phone and presto! 3G. Much easier than actually figuring out how to call someone. Claro data rates aren't cheap though. I think I'm probably paying close to 10ARS/MB, or roughly $4CAD.

For future reference this looks like a useful list of the APNs for most carriers world wide.

Culture Shock


Whenever you go to a completely new place you get a bit of culture shock. I think even coming home from a long trip you can often experience it as well. When me and Scott Mac went traveling in Europe we started our trip in Amsterdam. I think I remember the most "shocking" things right on arrival to be the language (all hundred of them spoken there), the european style of streets, getting almost killed by cyclists, and the alcohol prices :). We didn't find the red light district until we'd already been in town for a day and a half... we couldn't figure out for the life of us what this so called "red light district" was, or why it was called that ;-).

I've traveled a lot more since then and I still enjoy the "culture shock" when arriving to a new place. In New York I talked to a couple people who were just so totally rude to me I could do nothing but laugh... I don't think that helped the situations either though :).

I think maybe formally culture shock is defined differently... but I mostly just use it to describe anything that's different that catches me off guard.

headless doll

The phone system is always one of them, everywhere phones work differently, they have different tones and different rules when calling (for example, unless you have a special plan, land lines can't call cell phones in argentina). Sometimes even the pay phones them self are quite different.

Pay phone

In my opinion, North Americans eating habits and food are quite tame. Liver is probably the grossest looking thing you'll get in a supermarket.

mmmm brains

I cooked up the bottom left one for Sam and myself, goes great with some garlic butter.

Buenos Aires is a very European city, the streets and buildings all have that feel. I still always feel like I'm going to get hit by cars when walking across the street... need to fight your way through the crosswalks even. Probably doesn't help that our apt is on the corner of one of the major intersections here.

It's a really great city, weather has been awesome too... these people just need to learn to speak English!


Contacting me in Argentina

no comments

Finally sorted out my phone situation. So, if you want to contact me while in Argentina...

  1. skype - shadfield
  2. Phone - +1 604 248 4875 (VoIP forwarded to my Cell)
  3. SMS/Phone - +54 9 11 3346 9192 (15 3346 9192 if you're in Argentina)

I won't be using my 778 number at all while in Argentina.

Update: the timezone here is UTC-2 - 6h ahead of PST. If you call after 6pm PST, I'll happily return the phone call when I get up at around 9am my time the next day :).

First week in Buenos Aires, Argentina

no comments

I've been in Buenos Aires for just under a week now and so far things have been amazing. The apartment is really nice and in a fairly central location. Biggest complaint so far is the noise, but I guess that's to be expected when you're at the corner of a major intersection.

View from our Apt

Very few people here speak any English, it's actually a bit surprising. It seems to be spoken by significantly fewer people than any other country I've been to.

Figuring out the phone systems has been quite interesting. This will be a whole blog post to explain it ;-). Anyway, I finally got everything figured out today and my phone is now working for sending/receiving SMS's and 3G. I still haven't figured out how to forward my VOIP number here, but until the number you should call/sms is: +5491133469192

Today Sam and I mostly just walked across part of town and back... about 7h worth of it. Will hopefully be posting photos shortly I guess I'll find out if our internet is capped at about the same time.

P.S. Google translator... thank you!

I'm outta here


After a few months of planning and nearly missing my ride to the airport, I sit here in the awaiting my flight. In just under 24h from now I'll be in Buenos Aires, Argentina. I moved out of my apartment this past Sunday and I'll be in Argentina for the next 3 months. The whole trip seems a little surreal, to be honest, even after checking out of my apt and sitting here in the international departures area of YVR, it /still/ doesn't seem like anything is really changing. The past week has been a bit of a rollercoaster ride in terms of being both excited for the trip and sad to be leaving Vancouver... of course, leaving Vancouver on Nov 1 to head into summer in Argentina isn't something I'll be complaining about ;-)

empty apartment

As a quick side note... starbucks hot chocolate still totally sucks.

For anyone that wants to get ahold of me while I'm out of the country, you can call - 604-248-4875. I won't be answering my regular cell number, this is an VOIP number that I'll be forwarding to wherever my cell is. Don't send text messages there :).

While I'm in Argentina I'll still be working full time for NowPublic. I've really been enjoying the work I'm doing there and I'm pretty gratefull that they've let me continue my position while I'll be remote. Since the majority of people that I'm managing work remotely from Europe anyway, and my boss is in New York, I'm confident that things will continue to work smoothly.

I'll be living with Sam while I'm down there and hopefully learn some Spanish too.

A quick tip before I head out... drinking all of what remains of your "good" booze the night before a 4:30am trip to the airport is not recommended. Both me and Scott slept through an alarm for 20 minutes and a phone call :).

I'll try to keep my blog updated while I'm down there, but realistically you'll probably have better luck following my flickr feed.

I'll see y'all in February.

mystery SMS's


Starting Thursday, I began receiving a series of SMS's... most in different languages, all of them in different country codes, and all of them appear to be romantic. I realize (as I'm sure my readers do as well) that I'm really not much more than a casanova in an ultra sexy body, so it really shouldn't surprise anyone that I've started receiving love SMS's from all over the globe.

Nonetheless, I find it a bit odd that I've just all of a sudden started to get these SMS's and I decided to put them out here to see if anyone can guess what might be happening (or perhaps help translate):

Some notes:

  • the timestamps aren't entirely accurate
  • some appear to have been poorly translated
  • they seem to have some typical SMS typos, making them appear more genuine

Number: +34609645605
Date/time: 2008/10/02 12:05

io pero Yo siempre sere tuya y eres y siempre seras el unico hombre en mi vida por q t amo y no boy a renunciar a ti aunq quisas ya tu m olvidat yo t am

Roughly translated this is something along the lines of:

I will always love you and you're the only man for me, I will never say no to you and will never forget you

Lanuage: Spanish
Phone number: +34 - Spain

Number: +2223084657
Date/time: 2008/10/03 15:25

Shina hamoton tinj mi

Language: ?? Possibly arabic translated phonetically to latin characters
Phone number: +222 - Mauritania

Number: +9779842030876
Date/time: 2008/10/03 21:29

sabai thick6 dasaema kasailai luga naheleko buwale matra luga silaunu bhayo mero pani dherai dherai maya tapailai 2 sms but pending k bhaAko dasae khi ramaelo..

I think this is a poorly translated message because of the words "but pending". But it's tough to say... it can't be easy to translate from nepali to english.

Language: Nepali ?
Phone number: +977 - Nepal

Number: +18099172488
Date/time: 2008/10/03 21:51

rke le haz dado a mi corazon una razon para latir, siento ganas de ti de nadie mas solo podrias calmar mis ansias. Cuidate mucho y recuerda siempre ke te

I think that 'ke' is a typo of 'me' or 'le' and that 'rke' is possibly the same.
Google translator:

I do it because my heart beating for a reason, you feel the mood of everybody else alone could soothe my cravings. Take care a lot and I always remember you

Language: Spanish
Phone number: +1809 - Dominican Republic

Number: +66873897361
Date/time: 2008/10/03 22:58

hi my darling me too have freuen and happy see u. 1 october i win lotterie bisschen love miss u genitalien mak milk

Language: english + german - looks like they may have used a crappy translator
Location: +66 - Thailand

DrupalCon Hungary

no comments

As per usual, prior to leaving in August I had all these great hopes that I'd actually update my blog while I was traveling. However, and for some reason this always happens, it turns out there's other things I'd rather do in a foreign country than update my blog and post photos to flickr.

Overall the trip was great, I enjoyed this DrupalCon a lot more than Boston's, but I'd say I had a better time in Barcelona last year.

Anyway, I've posted a bunch of photos from the trip and of the NowPublic dev team here.

I also did a couple short photo walks around Szeged and Budapest, will be posting those shortly.

DrupalCon Lanyard