Articles

Dial Tone Nostalgia (Published Tue, 18 Nov 2008 20:53:00 GMT)

Luke and I were having an in-depth conversation about the UI for our Zeep Media product. We’re doing some really cool work with geographic targeting and report visualization on top of Google Maps. I’m sure that there will be subsequent blog posts about the technical challenges here.

I was trying to explain the NANP (North American Numbering Plan) and exactly what the NXX in NPA-NXX meant. NPA is a set of three numbers ([2-9][0-8][0-9]) that you will probably know as “Area Code” and NXX is just the next three digits.

So if we pick apart my number:

+1 (778) 227-3859

  • + means we’re using E164
  • 1 means we’re dialing in NANP
  • 778 is the NPA or area code
  • 227 is the NXX or exchange
  • 3859 is the station code

Unimportant as they may seem, the NXX digits used to prominently have a real, practical use.

Before cell phones, before digital-electronic switching, in fact before digital-mechanical switching there was the operator. The operator’s job was to manually connect wires running to people’s phones.

A telephone operator manually connecting calls with patch cables at a telephone switchboard.

As everyone knows, the best of systems can be ruined when you introduce human error, greed or incompetence. That brings us to an undertaker, Almon Brown Strowger. Almon was convinced that the local manual telephone exchange operators were sending calls to a competing undertaker business and thus set out to invent the automatic telephone exchange.

The exchange existed of a collection of Strowger Switches that would allow a phone connected to a wire pair on one side to dial using a set of pulses to connect a wire pair at the end, making another phone ring. Each switch would move the the corresponding index based on the number of pulses it received.

Dialing 3-8-5-9 a switch would take the first three pulses and place the initiating pair on the “3” circuit, the switch connected on that circuit there would then select the “8” circuit. As you can imagine, when you add a lot of numbers, say 10,000 of them, you need a lot of these switches. A lot of these switches would take up a lot of space. So, for every 10,000 numbers (0000-9999) there would be one building that housed all of these switches, the exchange. This is why old phones pulsed, they were actually moving a mechanical piece every time a pulse went over the wire.

Posted in

Eventmachine HTTP Client (Published Wed, 22 Oct 2008 19:38:00 GMT)

For some reason, this simple example has eluded me for some time. “EventMachine is a library for Ruby, C++, and Java programs. It provides event-driven I/O using the Reactor pattern.” When using Eventmachine, as I often do, asynchronous network calls are key. And often in the word of web services, crawling and scraping most useful clients I write these days deal with HTTP. So here is the most basic example of an HTTP client written using eventmachine:

require 'rubygems'
require 'eventmachine'

EM.run do
  include EM::Protocols
  conn = HttpClient2.connect('simonwex.com', 80)

  req = conn.get('/')
  req.callback do
    p(req.content)
    EM.stop
  end
end

Posted in  | Tags , ,

Nested Hashes Fuck Me Up (Published Wed, 22 Oct 2008 19:35:00 GMT)

Mr. Anonymous
12:29
had to play dumb

Simon Wex
12:29
hehe
bettter than playing smart
You know…

Mr. Anonymous
12:31
...

Simon Wex
12:31
I can’t get over it, I think people to speak to themselves are stupid.
Maybe an unfair bias…
but if you actually have to vocalize something to understand it, what sorts of limitations does that put on your understandings?

Mr. Anonymous
12:32
probably none
fuck you

Simon Wex
12:32
hehe
You you talk to yourself?

Mr. Anonymous
12:32
I’ve caught myself doing it

Simon Wex
12:32
is that part of your “playing dumb”?

Mr. Anonymous
12:32
and yes, I have trouble with certain levels of abstraction

12:33
Mr. Anonymous has left the conversation.

Mr. Anonymous
12:33
nested hashes fuck me up

Simon Wex
12:34
Easy killer.

Posted in

Something funny I just noticed... (Published Tue, 15 Jul 2008 06:29:00 GMT)

So here’s something sort of funny that I just noticed. When on my mac clicking on “Get Info” for my friend’s desktop (‘doze), you get this appropriate little preview…

Windows Blue Sceen

Good old windows blue screen. It has been a while and I don’t miss you.

Posted in  | Tags , ,

The Email Inquisition (Published Sun, 17 Feb 2008 02:47:00 GMT)

I am, and have for some time been, a Thunderbird user. And while it has met most of my needs for an email client, I have been relying less and less on it for communicating. Instead, IM clients and things like Facebook messaging have been taking over for me. I thought it was a problem with the set of standards and protocols that make up email itself, but after a few conversations with David Ascher and spending some time thinking of messaging in general, I think I’ve changed my mind.

In the past decade and a half of using email, I can’t think of any feature other than spam filtering that has made a significant impact on my experience. This is probably why web-based email clients continue to grow in popularity as they close the functionality gap with the rich-client variety. Some people might think that rich clients such as Microsoft Outlook and Mozilla Thunderbird should see the writing on the wall. I don’t—I think that Thunderbird should fight back and do some of the things that a server-side solution just can’t reasonably scale to.

I was out for lunch with David the other day. Succinctly, David is the man who has been tasked with “fixing email”. I often like to ask David questions about what he’s got in mind for Thunderbird. He always has some very interesting and insightful things to say, which is probably how he found himself in his current position at Mozilla. One thing that came up was a sort of question parser for messages. If done correctly, when replying to an email it could find all of the questions asked. This could serve as a to-do list when replying. You could also be presented with things like “all unanswered questions from your boss”.

I took a little crack at it as sort of a proof of concept. The code written in ruby isn’t worth examining too closely, but it is available here. My approach is very crude, especially when you consider that Thunderbird is localized to 34 different locales, but I still find the results interesting. My girlfriend and I had our first exchanges through email, so I pointed it at an IMAP folder with the first eleven emails she sent me and here are the results:

Do you do lots of fun writing?
What do you do at work?
Where in Ontario are you from?
What brought you to Van?
Are you home watching movies today?
Are you a downtown kid too?
And you skate in from kits?
I'm off at 4:30 most days, so how about Monday?
Do you have a plan?
You're somewhere near Hastings & Granville, aren't you?

Posted in  | Tags , ,

I'm Going to Work for ActiveState (Published Wed, 26 Sep 2007 17:29:00 GMT)

After almost two years, I will be leaving Teligence to go work for ActiveState. I have really enjoyed working for Teligence. I have especially over the past few months working on some great projects such as our new Facebook application Call Me Now. I am especially going to miss my boss Rob and the IVR boys. I’m leaving on a good note and leaving Teligence in good shape with some solid underpinnings to their mobile and social networking efforts.

That being said. I am incredibly excited to be working for ActiveState. All of the people there are incredibly sharp and the energy and atmosphere is a perfect fit for me. Look for some cool work in the coming months from us.

I thought it would be appropriate to leave on a note that would be expected of me. I also wanted to get a laugh out of Rob. And wanted our ape overlords to have a laugh when they open the time capsule that will be my HR file years from now.

It just so happens that today I got a new HR representative. And they (who will remain nameless) needs to receive a letter of resignation from me.

Does you haves the crayons?

So I went up to blank’s office and spent some time doodling while we discussed my leaving. She has no idea what she’s about to receive in inter-office mail. I think it is a work of art.

My Official Letter of Resignation

Need I say more?

Posted in ,  | no comments

A little on the flickr photos above (Published Wed, 31 Jan 2007 18:28:00 GMT)

This is simple really, but it just makes me happy.

Any of my photos or my contact’s photos tagged “simonwex.com” will show up above. Randomly.

This is simply done in a batch whenever I feel like updating it. Doing it in a batch ensures that I’m not adding a run-time dependency on Flickr. It also lets me do a bit of moderation – not that it’s required.

I wrote it using ruby and this site is written in Ruby on Rails. For anyone that knows me professionally you know that’s a redundant statement.

Pastie is a wonderful thing, here are links to the batch script and the FlickrPhoto model definition.

Enjoy.

Posted in  | no comments

Time for some "Soul Work" (Published Wed, 31 Jan 2007 18:25:00 GMT)

I used to find so much more time for doing what I like to call “soul work”. For the past year, I have been overly consumed by corporate bureaucracy at work. The last thing that excites me when I get home is spending more time thinking about work-like things.

This used to be my favorite hobby.

I think I need a job that excites me again.

Posted in  | no comments