This was my first day!

A Year at The Working Group

Today is the big day: I celebrate one year of flying The Working Group banner!

(Pictured above: my first day. Seriously.)

It has been an incredible year for me at TWG. I’ve grown a lot as a person, learned a hell of a lot, and made many, many friends. I love The Working Group, I love the brilliant people I work with, and I love what I do.

Thanks for an awesome year guys (and gal!) Let’s keep kicking ass and taking names.

Goofy Pictures and Reddit

During lunch today, I stood up at my desk and looked across from me and I said “Hey Brian, you know what I want to do? Draw Ollie Williams on one of the windows and have him tell us the weather for the day.” Brian laughed.

Brian always laughs at me.

But he said I should do it, and I was on my way. About 10 minutes later, I had a decent drawing of Ollie Williams up on the window, telling us it was cloudy.

Not bad eh?

Well, I went on to post it on Reddit thinking a few people might chuckle and potentially giving me an upvote. Boy, was I ever wrong.

The image above starts with the final count of the Reddit post as of this writing, and it climbed as high as 20th on the front page of r/funny (that I observed). The imgur stats are staggering: 9 hours up, 141,110 views, and 57.6GB of bandwidth!

I’m glad to have you in our office, Ollie, you’ve certainly made my day a lot more interesting!

UPDATE (12/7/2011): Final stats are amazing. 729 upvotes on Reddit, 198,146 views and 81.12GB of bandwidth on imgur. Madness!

Definitely Worth Reading: Zero Sight + Zero Sum by B. Justin Shier

I discovered Zero Sight and Zero Sum by B. Justin Shier by accident: I needed a book to read on my commutes to and from work, and I looked on the Kindle recommended books. On the third page, I found Zero Sight and read the description and my interest was piqued:

Meet Dieter Resnick. Dieter is the sole child of an abusive single father, a perennial schoolyard brawler, and Ted Binion High’s number one academic prospect. Dieter is terrified of staying poor. He has few friends and is absolutely obsessed with earning a college scholarship. He’s also a latent mage–one of the few humans left that can bend the manaflows to their will.

Too bad no one told him. Now a boy is dead.

Meet Rei Acerba Bathory. Rei is a second year student at Elliot College, the premiere magical training academy in North America. She’s also on an all-liquid diet. Rei acquired her odd speech and mannerisms living among her centuries-old kin–strange vampiric creatures that have carved out the Midwest as their playground. She can kill a man without blinking, but has a serious weakness for puppies. Thanks to a childhood spent living cloistered from the public, Rei knows little of modern society. She’d do well to make some friends, but her fellow trainees despise her. Rei is the first of her kind to be admitted, and many hope to make her the last.

Dieter was raised in the grimy outskirts of Las Vegas. Rei was homeschooled in a Chicago mansion. Both are on their way to Elliot College. Both believe the other is a creature of idle fantasy. In ten hours, they’re going to be at the center of a war fought by shadow actors. In eleven hours, they’re going to become a weft-pair, bound together by the most sacred spell in the magic canon. And in twelve hours? Well, in twelve hours, they’ve got to get to class…

With a description like that, who wouldn’t buy this book, right?

Here is why I absolutely loved this book:

  • Strong cast of characters. They’re all young, they’ve got their own opinions (and powers!), and they’re distinctly different from one another.
  • It’s hilarious. I laughed out loud on the bus several times thanks to these books, and it was worth the funny looks from other passengers.
  • Fantasy mixed with realism. People are casting spells and slinging magic in the modern day. It’s as awesome as it sounds.
  • Couldn’t put it down. I missed my stop SEVERAL times while reading these two, and I blasted my way through the books in days. It made me really excited to read!

Both of these books were an amazing read, and I couldn’t help but throw some extra support behind an independent author who has done an excellent job with these books.

I can’t wait for the next one!

Bring Something to the Table

Last night, I watched dozens of people pitch an idea to the gigantic crowd of Startup Weekend. I had a front row seat and I was filming the whole time, so I was paying close attention.

Here’s what I was thinking the whole time: if you aren’t a coder or designer, you better bring something amazing to the table.

No offense to anyone who was pitching, but chances are that if you can’t build it or you can’t design it, you better bring some other extraordinary skill to the table. Hell, at least be able to sell me on the idea so I’d want to help you build it!

People have been saying this over and over again in the startup world, but it rings true: ideas are a dime a dozen.

If you can’t execute, your idea is worthless.

Soon-to-be Real Life

I attended an event today as a panelist at the University of Toronto Scarborough for soon-to-be graduates, separated by industry/stream.

I was lucky to have a very outgoing panel who had plenty of knowledge to drop all over the students. During the discussion, several points kept coming up that I feel I should share:

  • Work hard. Your entry level job isn’t going to be your dream job, but you’re going to have to be persistent and tough it out until you have the skills and knowledge necessary to get there.
  • Take small steps. You can’t go from student to super-star CEO of a company immediately, you have take a look at where you want to go and create a strategy on the steps you need to take.
  • Don’t be afraid to look dumb and take risks. You’re going to have a lot of naysayers if you’re not following a traditional path. Ignore the haters and carry on.
  • Have something to say. You need to have the knowledge to speak with your peers in your industry, and what better way to show that you have that knowledge by having opinions on important matters for that industry?
  • Network, network, network. It’s easier said than done, but you have to hustle hard and create meaningful relationships with people and create that repor that establishes credibility.

The session had many more gems from the super intelligent people I was sitting next to, and in my opinion, these are the important ones.

I would love to hear any tips they would give to soon-to-be graduates from university. Leave them in the comments and I’ll add them to my list!

Here are some of the additional tips I have received:

  • Know what you want? Chase it and be aggressive. If you have an idea of exactly what you want, you should actively chase it and aggressively ask for related responsibilities. (by Wendy Kwan)
  • Learn to think outside the box, and be proactive. It shows that a person is analytically inclined, and capable of solving problems in new and innovative ways. (by Slxia1215)

Creating an Image with Dynamic Text in PHP

As Christmas approaches, many of my friends have begun their countdowns to that wonderful holiday at the end of the year.

One of my friends started her countdown back in August, when she opened up her calendar and had to count the number of days until Christmas and continuously keep track of what day it was and where her count was. I told her that I could spend the 5 minutes to help her out using the power of the internets, and that’s how my Christmas page was born.

Today, I spent a bit more time spicing up the page. It now has a Calvin & Hobbes image that has a bunch of static text, but will update the number of days dynamically.



style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-9705548764325874"
data-ad-slot="6321796284">

To preface: I had no idea how to do this, and found out that PHP has a rather sizeable GD and Image Function library. I used this example to start:

1
2
3
4
5
6
7
8
9
10
11
12
<!--?php 
 
header("Content-type: image/png");
$string = $_GET['text'];
$im     = imagecreatefrompng("images/button1.png");
$orange = imagecolorallocate($im, 220, 210, 60);
$px     = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 9, $string, $orange);
imagepng($im);
imagedestroy($im);
 
?-->

Unfortunately, you can only use some LATIN2 font with imagestring(), and did it fit the style of the Calvin & Hobbes comic I was using, but it was a good start.

In order to load your own font and dictate its size, we can use imagettftext(). I had to include the Comic Sans (Don’t hurt me!) font file in the same folder as the PHP file.

Here is the complete code for my dynamic Christmas image:

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
32
33
34
<!--?php 
// Filename: christmas-image.php
 
header("Content-type: image/png");
$string = $_GET['days'];
$im     = imagecreatefrompng("calvin_resolutions.png");
$black = imagecolorallocate($im, 0, 0, 0);
$font = 'comicsans.ttf';
 
$initialX = '153';
$initialY = '35';
$increaseY = '23';
 
$fontSize = '16';
$fontRotation = '0';
 
$firstline = 'What do you mean';
$secondline = 'there are ' . $string . ' days until';
$thirdline = 'Christmas?! What am';
$fourthline = 'I supposed to do until';
$fifthline = 'then? WAIT?! I am';
$sixthline = 'not a patient man!';
 
//imagestring($im, $font, $px, 20, $string, $black);
imagettftext($im, $fontSize, $fontRotation, $initialX, $initialY, $black, $font, $firstline);
imagettftext($im, $fontSize, $fontRotation, $initialX, $initialY+$increaseY, $black, $font, $secondline);
imagettftext($im, $fontSize, $fontRotation, $initialX, $initialY+($increaseY*2), $black, $font, $thirdline);
imagettftext($im, $fontSize, $fontRotation, $initialX, $initialY+($increaseY*3), $black, $font, $fourthline);
imagettftext($im, $fontSize, $fontRotation, $initialX, $initialY+($increaseY*4), $black, $font, $fifthline);
imagettftext($im, $fontSize, $fontRotation, $initialX, $initialY+($increaseY*5), $black, $font, $sixthline);
imagepng($im);
imagedestroy($im);
 
?-->

The positioning of the text is specific to the Calvin & Hobbes image I used, and I made it easier on myself by creating a variable for the X and Y positions as well as the amount I wanted to push the next lines down.

All you have to do now is refer to the PHP file and pass the variables through the URL.

<img alt="" src="christmas-image.php?days=&lt;?php echo $remainingDays; ?&gt;" />

The PHP file will create a PNG that has the updated text. That was pretty simple, no?

Lessons from Filming a Wedding

Yesterday, I attended Belle and Kevin’s wedding at Hazelton Manor, and they also asked me to help them capture their day with video. I was a nervous train wreck for the entire week leading up to the event because of two reasons: I have never shot a video before, and I love Belle and Kevin to bits and didn’t want to screw up.


Photo: Tim Chong Photography

Well, I survived and I think I did alright. Here’s a list of things I learned about shooting weddings:

  • You will have to fight for position. Chances are that there will be a photographer there, in addition to everyone else who is holding a camera.
  • Get a vest and stabilizer. Weddings are very long, your arms are going to get tired very quickly.
  • Be familiar with your equipment. I have never used a Steadicam Merlin before, and I didn’t have enough time to get it balanced properly, so I couldn’t use it, which sucks!
  • Bring all the wires you could possibly need. I brought a Zoom H4N to record audio, and I got lucky that the DJ had a spare set of XLR wires. I have perfect audio of the reception thanks to him.
  • Scout the venues ahead of time. I didn’t get a chance to take a look at the venue beforehand, and I had to make some really quick choices at the very last minute on how I was going to shoot everything.

Lessons for next time. Working on getting the videos together, but thankfully I can start showing people the video I helped them make to kick off their reception!