I recently had a conversation with John about the work he’s doing in the mobile space. Here’s that conversation for your listening pleasure:
They say truth is stranger than fiction.
One afternoon at a now defunct payment processing company, while moving my coding fingers as quickly as possible, the programmers’ farm erupted in exclamations of “check your mail!” and gasps of terror.
An email had been sent to everyone in the department. It contained an attachment that clearly laid out our main (private) database schema in a much more clear manner than anyone had ever managed to document internally.
The mail’s body read like a ransom note. I don’t remember the exact words, but the gist was “Your web application is full of holes. I’ve exploited your code, and I’ve attached proof in the form of a schema diagram. If you don’t send me £50,000, I will start exploiting your customers.” It went on to give detailed instructions on how to pay our new extortionist friend.
We knew the problems were there. SQL injection as far back as CVS could remember. Most of us wanted to plug the holes, but we were never given the opportunity to do so. We attempted to take the opportunity a few times, but were unsuccessful in convincing management that a “trivial” problem like SQL injection could ever be more than an inconvenience.
As soon as this horrifying realization set in, we low-on-the-corporate-hierarchy-programmers gathered together and started forming a plan for how we’d crush these problems. We’d fix the low-hanging fruit first, and then we’d systematically go through the rest of the code to rid ourselves of this plague, once and for all. A back-of-napkin plan was in place within 15 minutes, and we dutifully started a commit storm of heroic measures to save the company.
By then, the news had trickled up to the CEO. We expected him to be livid, but we all knew there was no time to worry. We’d called our families and cleared our social calendars. It was time to pull an all-nighter; maybe two.
There was no yelling. No immediate firings. No faux-motivation speeches. Instead, the CEO (who normally had a short fuse) feigned tranquility and gathered the entire audience of the aforementioned email together for a short but simple talk.
“I understand you’ve all received a disconcerting email regarding the security of our systems. I want you to know that this situation is under control, and it requires no action on your part. Go back to your normal duties. None of you are to ever speak of this outside of this room. If you are caught doing so, you will be terminated immediately. The NDA you’ve all signed will see to easy termination, should it become necessary.”
No one ever asked for my help in wiring £50,000 to Russia, and that was the last any of us heard of this particular problem. If the company hadn’t flopped a year later (presumably due to unrelated circumstances), I’d expect those security holes to still be in play.
It snuck up on me. It may be sneaking up on you, as you read this.
I sat in front of a computer all day. And all night. It was what we web developers and designers did. We counted the number of hours we worked in a row like they were badges of honour. Only 6 hours sleep over the last 3 days? Awesome! Pulled an all-nighter to get that code out the door. I rule!!
Many of us in this profession got into this industry because we had experience and passion for the web. Our hobby became our job, our career, our calling.
There’s a problem when what you choose to do with your free time is also what you do with your work time. The two blend together seamlessly as though they are one. It leads to 12, 15 or even 20 hour days at the computer. We entertain ourselves with the exact same tools we use to make our living, and that does nothing but encourage inactivity, addiction, and an unhealthy lifestyle.
I know. I was there. Flickr doesn’t lie.
In 2005 I hit an all time high of 215 lbs. I’m only 5 foot 7 inches tall, and I’m pretty sure my ideal weight is somewhere in the 160 lb range. Eep.
Fast forward 5 years to 2010. In a few short weeks, I’ll be competing in my third IronMan triathlon in Lake Placid, USA. I do crazy stuff now that I’d never have thought possible, and certainly wasn’t when I weighed too much and didn’t take care of my health. For me, I started taking care of my body and mind by getting fit through triathlon. I found something significant to do, that was not in front of the computer.
I’m not saying that everyone should become a triathlete. What I’m saying is that if your leisure time and work time are spent doing the same thing, you’re in danger of becoming part of this sedentary life.
Choose to do something other than be in front of your computer. Take the stairs instead of the elevator. Go for a walk at lunch instead of staying at your desk and working or watching videos. Get out for a run, or a bike ride. Do situps and pushups every day, or regularly take a yoga class. Anything.
You owe it to yourself to start, before your body says stop.
Christian Heilmann covers the different stages of travelling for IT conferences in this six part series. Be sure to read part two.
“So what did I forget to bring?”
When I was asked to write for this publication the main request was not to write about something technical but about the things that surround the tech world and my experiences in it. Well, my current role as a developer evangelist puts me constantly on the road, travelling from conference to conference so I agreed to write down a few tricks of the trade that keep me sane (some people would argue describing me as sane but my 12 foot green hippo friend George agrees with me that they are wrong) despite my ridiculous agenda.
If you have seen the movie “Up in the air” with George Clooney you can get a feeling of how my life is – except that I travel internationally rather than only in the US. There are more inaccuracies in the movie which I will cover later – for now let’s just say that George did a good job trying to be like me but didn’t manage to be as sexy.
What I will write about now and in the future
This series of articles will cover the different stages of travelling for IT conferences:
- Part 1: “So what did I forget to bring?” (this part) tells you about how to pack, what to take with you and how to get to the airport
- Part 2: “Dealing with discomfort and public humiliation” covers your experiences at airports
- Part 3: “God I wished I had packed tranquilliser blow darts” covers the journey in the air
- Part 4: “Parlez-vous Anglais?” – travel from the airport to the hotel
- Part 5: “Checkout at 11” – going to the conference and back to the hotel
- Part 6: “Here’s my business card” – travel back and conference follow-up
Before we begin, I think I have to point out a few things that may skew the usefulness of these tips and tricks for you:
- I am a male geek which means that the breadth of my fashion sense and need to accessorise is rather limited. Sometimes I go wild and iron my t-shirts but it is not a very common happenstance.
- I live in London, England (North of the river) and this is normally my home port for my travels. It being very much an international air-travel hub makes it a bit easier for me than coming from rural areas to the next airport. This also means that my modes of transport might not apply to you.
So without further ado, let’s get into it.
As part of our Women in Technology (WIT) group at Yahoo!, we invited a group of sixth graders last winter to our Burbank campus to learn about technology and the different roles that women have here. Our goal was to expose them to technology and hope they would leave unafraid of entering a male-dominated field.
These girls, most of them with very little exposure to computers in their day-to-day lives, were daring, brave, and eager to try new things. Programming did not daunt them at all and confidence wasn’t an issue.
The WIT group holds leadership and career discussions among ourselves in order to provide support and networking opportunities. Self-doubt is a theme that frequently comes up in these discussions. I have heard so many women say, “I could never do what you do”, “I want to learn, but I am scared to try programming”. I, too, have similar feelings when trying new things.
What causes these insecurities? How did they come about? Are we really incapable of doing what I could teach eleven and twelve year olds to do in an hour? Is it a generational difference? I think most of us feel men and women are equally adept at executing their tasks at work. So if these doubts are truly only in our heads, what put them there? Passing comments by our mothers, fathers, and brothers? The tendency for computer games to be boy focused? Is it cultural, where we were inundated with a stereotype of what a cool girl is and not exposed to technology at an early age?
Do men have the same issues in significant numbers or are they shielded from this internal torment by social constructs?
I hope the sixth graders we taught that day remember the excitement they felt when writing a piece of code and visually seeing its effects on their browsers. I hope at least some of them decide to come into technology and that they don’t have to experience the self-doubts and fears that some of us face today.
Editor’s note: As an exclusive feature of Webstyle Magazine issues, Anton Peck, the talented digital artist, will be releasing unique wallpapers starting with this first one called Concrete. Enjoy!
So you’re the go-to-guy in the company when it comes to the web, the young hotshot who’s being sent all across the country, racking up as many air miles as Ryan Bingham in the process. The life of the jetset takes an inevitable toll on your luggage, and while you’re going to be needing something tough and rugged, the notion of actually looking good when you’re walking up to the check-in counter is extremely important.
Buying your luggage at a shopping mall is the first sign that something is irrevocably wrong. The following is a list of sure bets when it comes to traveling in style…
The Tanker lineup has been Japan-based Head Porter’s staple series since the 80’s and to this day shows no signs of letting up. Not only is the design brilliant, but they’re continuously innovating their products to include models that meet the modern man’s needs. The 100% Nylon Satin is exclusively made for Porter, and the bag features everything from double handles, shoulder straps and heavy duty zippers. The good folks at Head Porter even thought about durability by making it low-maintenance and abrasion resistant. The best feature by far (for me), is the bonus shoe bag, not only for the practicality of separating your white shirts and dirty soled shoes, but the well deserved credit for thinking of such a detail.
Filson’s Tin Cloth Luggage Collection features pieces fit for hauling shooting and field gear, they easily double as everyday bags. Made from sturdy, fast-drying Nylon, they are half the weight and roughly half the cost of their oil finish 2 ply by 3 ply, rugged cotton twill counterparts (tote aside), while keeping the same high quality U.S. manufacturing process. If this collection is a little too casual for you, check out their new Passage Luggage Collection.
The ultimate in backpacks, ask anyone who knows anything and they’ll tell you Visvim is miles ahead of everyone else. Their Ballistic backpacks are heralded not only for their audacious style, but for their extreme use of high quality materials and exclusiveness in the North American market.
So now you have no excuse for looking like a traveling train wreck. Invest in your travel gear and the next time you’re standing in that long line at customs, you’ll at least be comforted by the thought that you look sharp.
For more insight into how a seasoned pro travels, see Christian Heilmann’s series “Confessions of an IT conference traveller“
I am a person. I am interested in technology. I have a website at http://csarven.ca/. I know the person at http://tobyinkster.co.uk/#i.
We rely on a shared agreement of the vocabulary above i.e., what it means to be a type of thing, to have an interest, a website, and knowing some other thing that’s a person. It allows us to have an absolute frame of reference to things in order to make sense of our world.
This framework is pretty close to how we explain our world to machines.
Enter Resource Description Framework (RDF).
RDF is a general-purpose language for representing information in the Web. Uniform Resource Identifier (URI)s provide a generic way to identify the things we talk about, as well as for the relationship between them, at different sources. The relationships are conveyed using precise vocabularies. We can reuse, create, or mix any vocabulary to make statements about things. The Hypertext Transfer Protocol (HTTP) is used as the retrieval mechanism.
For example, “the thing at this URI is a type of person” can be stated like this in RDF, using the Friend of a Friend (FOAF) vocabulary:
<div about="http://csarven.ca/#i" typeof="foaf:Person"/>
Not only does this let any entity to make a statement about something else, all sorts of data can be discovered and used in various ways. By creating structured statements about our world and linking to global data, we essentially create a scalable Web of Data.
Hence, semantically Linked Data leads the Web to its full potential.
Temperature matters. Whether you’re grilling a steak or cooking rice, medical the chemical reactions in food occur in well-defined temperature ranges. One protein in steak, stuff myosin, begins to denature around 122°F, while another, actin, doesn’t do so until around 150°F. The starches in rice begin to gelatinize—absorb water and swell up—around 160-175°F.
Why is this important? Because it’s these reactions that we care about when cooking. The reason medium-rare steak is so, well, yummy, is because a large percentage of the myosin proteins are denatured (which changes its texture) while most of the actin proteins remain native. (There’s no general rule about denature protein having better texture; it just happens that we find the texture of meats with myosin denatured and actin native to be more pleasing.) With rice, the temperature has to get even hotter. This is why we don’t generally simmer lean meats in pots of rice: the meat would overcook before the rice has a chance to gelatinize.
Next time you step into the kitchen, take a minute to think about what effects you want to achieve. And keep in mind whether you’re roasting meat or grilling it, the proteins in the meat are going to undergo changes at the same temperature points, albeit a bit faster (and with a steeper doneness gradient) in the hotter environment of a grill. Instead of thinking about the temperature of the environment, think about the temperature of the food itself, and go from there.
If you’re the innovative type who asks why just as often as what, my book, “Cooking for Geeks: Real Science, Great Hacks, and Good Food” will show you a new way to approach the kitchen. See http://www.cookingforgeeks.com/ to learn more.
In matters of technology, and I’m pragmatic. I’m not about to jump on bandwagons. I’m not a fanboy. Yet, walk through my home and you’d think that I’d given my first born for the latest fix from a particular company: Apple.
It all started with the iPhone. I didn’t rush out for the original. I was patient. I waited. Then came the MacBook Pro. Then the Time Capsule. Oh, and let’s not forget the Apple keyboard and Mighty Mouse (later replaced with the Magic Mouse).
Nothing too crazy. Yet. Then came the Apple display and the AppleTV, the iPod Touch, and most recently, the iPad.
Suddenly, I’m immersed in Apple. I now listen to keynotes and drool over the latest hardware. I look forward to getting my hands on that beautiful, delicious iPhone 4. Rumours of a new AppleTV have me excited.
How did this happen?
I’m not sure I can sum it up in a single word. Easy. Seamless. Integration. Design. They all come to mind. Everything works well together. It works well because Apple owns the experience from software to hardware and across product lines. It shows.
I love you, Apple. Here is my first born.
One side-benefit of traveling for work is that I’ve been able to broaden my horizons in many areas, but a hobby that I’ve chosen to focus on is beer sampling. Visiting foreign cities has helped me escape the beer desert of my home in Montreal, and has allowed me to taste many delicious brews that I would otherwise never have had the pleasure of imbibing.
As web professionals, we’re often called upon to attend—or speak at—conferences. The events that surround the main schedule are as important as the conferences, themselves. This is where communities are formed, and where ideas are refined. These after-hours social sessions are often coincidentally held at establishments that serve beer.
If you have functioning taste buds, this coincidence is a huge opportunity for your mouth.
In the past couple years, I’ve been able to attend some of North America’s best beer bars, and sample some of the world’s best brews, all without incurring huge personal travel costs.
Uniting friends through deliciousness is an art, and one that I take seriously. We’ve shared bottles at the Map Room in Chicago, tasted the incredible menu at Russian River near San Francisco, put a dent in Taco Mac‘s bottle list in Atlanta, drank on Microsoft’s dime at the Taphouse Grill near Seattle, exhausted the Lost Abbey supply at The Brickskeller in Washington D.C., and completely took over Beer Table in Brooklyn for an evening (just to name a few).
Next time you’re gathering a group, post-conference, to hack on a project or hone your newest web ideas, leave the overpriced hotel bar behind, find an interesting tap list, and venture into the wonderful world of tasty malt and hops (or sour beers if you’re feeling particular adventurous).
It’s 12:34am. I notice the time every night because of the sequence. Hopefully I’ll be in bed before 1:23am, but in all likelihood I won’t. I’ll be back at the office in less than seven hours, and damn it would be nice to get that kind of sleep, but it’s a matter of priorities. I’m coding.
At some point (I’ve long since stopped paying attention to the time), I realize I’m spending more time with my eyes closed, not typing, than with them open. I admit defeat, hit `:w` in vim, and begin my evening ritual.
I get up and clear the kitchen table. I leave the laptop open so I’ll receive corp email and my twitter stream for tomorrow’s bus ride—I ride the bus because I can be productive during my commute, but it’s also good for the environment.
I move my backpack from the floor to the stool next to my laptop and make sure the backpack is open.
I place my shoes next to the table, facing toward it.
I fill the dog food bowl and place it in the cabinet.
I move my pocket items, except my phone, into the pair of shorts I pick out for tomorrow and stack shorts and the rest of the outfit above my shoes on the kitchen table in the reverse order I will apply each article in the morning.
I separate my socks and put them and the phone on my night stand. The phone is my alarm clock, and the socks are to make my departure quieter, less likely to wake my children.
I step outside and move my bike next to the patio door, facing outward, then head back inside and shower. My head is shaven, so I can shower in the evening and not worry about bed head. Ok, and I’m balding.
I purposely don’t notice the time when I go to bed, and drift off quickly, pondering the subtle nuances of prototypal versus pseudo-classical inheritance.
My phone alarm goes off. It’s 6:00am. I have to be at the bus stop about a mile away in seventeen minutes. This particular bus runs only once a day in the morning and once in the evening, so I can’t be late.
Normally I get out of bed at the first alarm, but this morning my sleepy mind notices a label on the phone next to one of the buttons on the outside screen.
The alarm goes off. It’s 6:05am after an unplanned snooze. Oh shit! I should be dressed and the dog should be eating by now. I hit snooze, put my socks on, hop out of bed, apply some deodorant in the bathroom, then sneak down the hall to the kitchen table with my phone, closing my laptop as I pass it. I put on my outfit, stepping through my shorts into my shoes. I put my phone in my pocket as I turn around to put my laptop in the bag. I sling it on a shoulder while I pull Daisy’s food from the cabinet. I take the bowl outside and place it on the patio with Daisy tight on my heels. I close the door behind us, put on my helmet and get on my bike.
After a minute or two, my phone alarm goes off again. It’s 6:10am. This is my reminder that I should be getting on my bike no later than now. I’m ahead of schedule. I’ll make the bus, and will be coding again in about nine minutes. I turn off the alarm.
On the road within four minutes of waking. Apparently I’ve given myself five more minutes than I need in the morning. And perhaps I should move my deodorant to the nightstand.
If you’re smart enough to build a web or mobile app, you’re smart enough to roll your own payment processing. I love companies like Fastspring, e-Junkie, and the like, but you should never leave margin on the table. It’s easier than ever to integrate with the credit card processors directly.
If you have an app that has one-time purchases, you should shop for the cheapest merchant account and use whatever gateway is included. The larger providers, such as Chase Paymentech, have their own gateways (in Paymentech’s case, it’s Orbital). The smaller guys generally resell something like Authorize.net‘s offering. The merchant account merely is permission to get credit card sales deposited in your existing merchant account. If you’re doing one-time billing, you have no need to know what credit card was used to buy your product.
If you’re doing a subscription app, you really want to use something like Recurly or Chargify. They handle all the weird exception cases (cancellations, upgrades/downgrades, partial terms, etc.) and both integrate with all the major gateways. Plus, they have their own integrations with the gateways. You just want to make sure that you can change providers without inconveniencing users. I’ve always recommended using TransFS to find a merchant account, and now you can screen by preferred gateway on their platform.
Not only do you need to make something people want, you need to make it easy for people to pay. If you spend the time to roll your own payment processing integration, you can clear thousands of extra dollars a month. It’s totally free money; it’s just up to you to do the work to make it happen.