Today's Question:  What does your personal desk look like?        GIVE A SHOUT

SEARCH KEYWORD -- Good designer



  The Story of W&L: China’s Great Internet Divide

Here’s an introductory quote from The Story of W&L, a tale of China’s great internet divide: China does not have one so-called “national internet,” instead there’s a great divide. It encompasses the elite with ThinkPad laptops and also the grassroots with MTK Shanzhai mobile phones. Our elites are on par with America, while our grassroots are on par with Vietnam. This is the story of W&L, two representatives of China’s great internet divide. T...

   China,Internet divide,Elite,Grassroot,Laptop,Mobile phone     2011-12-05 12:23:56

  Handling Plugins In PHP

A common problem that developers face when building applications is how to allow the application to be "plug-able" at runtime.  Meaning, to allow non-core code to modify the way an application is processed at runtime.  There are a lot of different ways that this can be done, and lots of examples of it in real life.  Over a year ago, I wrote a StackOverflow Answer on this topic.  However, I think it deserves another look.  So let's look at some patterns and common im...

   PHP,Plugin,Handling     2012-03-11 13:18:39

  Programming Languages for Machine Learning Implementations

Machine learning algorithms have a much better chance of being widely adopted if they are implemented in some easy-to-use code. There are several important concerns associated with machine learning which stress programming languages on the ease-of-use vs. speed frontier.Speed The rate at which data sources are growing seems to be outstripping the rate at which computational power is growing, so it is important that we be able to eak out every bit of computational power. Garbage collected la...

   Programming language,Machine learning,Development     2011-11-16 08:22:17

  Redesigning the Technical Hiring Process

Since my last post on technical interviews, I’ve been fairly involved in hiring at Pulse as we grew our team from 6 people when I joined last November to 14 full-timers. In my previous post, I suggested that technical interviews, in the conventional sense, are not especially effective (by technical interviews, I mean the traditional 45 minute coding-at-a-whiteboard and algorithm puzzlers interviews). Those do a great job of telling you how well a candidate is at acing those types o...

   Career,Recruitment,Process,Developer,Ski     2011-09-14 12:01:37

  Taking C Seriously

Dennis Ritchie, a co-creator of Unix and C, passed away a few weeks ago, and was honored with many online tributes this weekend for a Dennis Ritchie Day advocated by Tim O’Reilly.It should hardly be necessary to state the importance of Ritchie’s work. C is the #2 language in use today according to the TIOBE rankings (which, while criticized in some quarters, are at least the best system we currently have for gauging such things). In fact, TIOBE’s pre...

   C,Efficiency,Memorization,Dennis Ritchie     2011-11-03 13:42:14

  Can Your Programming Language Do This?

One day, you're browsing through your code, and you notice two big blocks that look almost exactly the same. In fact, they're exactly the same, except that one block refers to "Spaghetti" and one block refers to "Chocolate Moose." // A trivial example: alert("I'd like some Spaghetti!"); alert("I'd like some Chocolate Moose!"); These examples happen to be in JavaScript, but even if you don't know JavaScript, you should be able to follow along. The repeated code looks wrong, ...

   Programming,Maintainability,Reusable     2011-05-31 07:42:41

  Automate Everything

Performing manual, repetitive tasks enrages me. I used to think this was a corollary of being a programmer, but I’ve come to suspect (or hope) that this behaviour is inherent in being human. But being able to hack together scripts simply makes it much easier to go from a state of rage to a basic solution in a very small amount of time. As a side point, this is one of the reasons that teaching the basics of programming in schools is so important. It’s hard to think of any j...

   Automate,Email,Repeative     2012-02-07 06:21:19

  When to use STDERR instead of STDOUT

Every process is initialized with three open file descriptors, stdin, stdout, and stderr. stdin is an abstraction for accepting input (from the keyboard or from pipes) and stdout is an abstraction for giving output (to a file, to a pipe, to a console). That's a very simplified explanation but true nonetheless. Those three file descriptors are collectively called 'The Standard Streams'. Where does stderr come from? It's fairly straightforward to understand why stdin and stdout exist, however ...

   UNIX,STDERR,STDOUT,Difference     2012-01-14 12:07:43

  Why, oh WHY, do those #?@! nutheads use vi?

Yes, even if you can't believe it, there are a lot fans of the 30-years-old vi editor (or its more recent, just-15-years-old, best clone & great improvement, vim). No, they are not dinosaurs who don't want to catch up with the times - the community of vi users just keeps growing: myself, I only got started 2 years ago (after over 10 years of being a professional programmer). Friends of mine are converting today. Heck, most vi users were not even born when...

   Linux,Vi,Vim,Advantage,History     2012-02-05 07:21:17

  SOME LESSONS LEARNED

Note: Google was kind enough to invite me to give a short talk at their Zeitgeist conference earlier this week. It was a really interesting conference and I got a chance to meet a lot of people I admire. For my talk, I decided to use material from some of my blog posts over the years that I thought might appeal to a broader audience. Unfortunately, I was still recovering from a nastly cold/flu so I didn’t deliver the talk as well as I’d like.  Below is the text.Today, I wanted...

   Investor,Startup,Lesson,Experience,Investment     2011-10-12 11:47:02