DVD versus Download – Movie Rentals

January 27, 2009

Ok, someone needs to explain this to me. It makes no sense how expensive digital movie rentals are. It truly boggles my mind. I have a number of ways to rent them, and they are all expensive, a quick sampling of ‘recent releases’ gives:

iTunes: $2.99 – $3.99
Xbox Live: $4.00 – $5.00
Comcast onDemand: $4.99 – $5.99

Given that on all those you are just downloading and/or streaming it, there is no physical medium, etc. Why is it so expensive?

Especially when I can go to a Redbox machine at any number of stores near me locally, and pay $1 to get a physical DVD rental.

That’s right, all these other companies are charging $3 to $6 to rent a movie electronically, but Redbox someone manages to do it for $1, while handling physical disks, having to replace them as they wear out, sending people out to restock with new movies, pay for and maintain a rather complicated machine, and give kickbacks to the store they sit in.

Something is very wrong with this picture. By comparison alone, electronic rentals should be at MOST $0.99, and possibly a fair bit less.  Is there some part of the big picture I’m missing here?  I’d love to know.


PHPAdvent entry: Commenting on Commenting

December 8, 2008

Today’s blog post brought to you by PHPAdvent :)    I was asked to contribute, and so did, polishing off a post I had planned for my own blog and submitting it to PHPAdvent instead.

It’s all about commenting & documenting your code, and you should go read it at the PHPAdvent website.


Interviewing Programmers

December 4, 2008

As anyone who reads this blog knows, a few months ago I went through the process of finding a new job.  That of course included a number of interviews.  Which got ‘interviewing’ on my mind and encouraged me to write this article.  Now, months later, I finally got around to it.

I’ve interviewed my fair share of programmers over the years, and I find personally that how you interview a ‘junior’ versus ‘intermediate’ versus a ’senior’ programmer needs to change.  Specifically in regards to one topic.

What’s that topic?   It’s giving a coding test (as well as just whether you ask coding questions in the interview)

I personally find that asking a coding test of junior programmers is a GREAT tool for helping to evaluate them.  Typically just a very simple test, a basic CRUD application.   Looking at what they create not only gives you insight into how they think and code (did they do MVC?  a simple single .php file?  handle web security? etc).  It also gives you a great starting point to begin discussions with them in person, asking them about why they did (or didn’t) do certain things.

It’s also worthwhile to go into great depth with junior folks just to make sure that they understand some basics of programming.  Recursion?  Object Oriented? etc.

That starts changing somewhat when you start interviewing folks who are more at an intermediate level.  At the that level, asking for the coding test is fine, but I like to offer for them to instead just provide some code they’ve written before if they wish.  From looking at their code, you may come up with a few directions that you want to guide the discussion with them in an interview to understand certain parts of their knowledge.

This completely switches over in my mind when it comes to interviewing a senior person.  Someone who is ’senior enough’ (use your own definition) should have their experience speak for them enough that there is no reason to ask for a code sample, let alone giving them a coding test.  Typically looking at their experience and asking them a number of probing questions about their experience should rapidly inform you if they know what they are talking about.

Now that’s not to say, that if after doing an initial interview, if something seems fishy, or if you are concerned about their experience, then go ahead and ask for a sample/test after the fact to dig deeper.

But my point is this, when interviewing for senior candidates, you should be spending time researching their experience, their history, what they’ve publicly done, presentations/articles/etc they’ve done and more.   You should take the effort to learn enough about the candidate that it should make most questions about their ‘coding skills’ a moot point, and leave you instead asking more about bigger picture questions, and to see how well they fit within your team.

Also I highly suggest that any coding test you give be a ‘take home’ test.   Let them take their time to do the problem in their own environment.   Asking someone to do a live coding test in front of you is asking for failure.  Are you going to be standing over them watching their every keystroke when they are working for you?  no?  Then why would you test them in that environment?  It doesn’t give a good indication at all as to how well they code (and the style in which they code) when given the freedom to do so.


Programming Certifications

October 8, 2008

UPDATE: I have left the original blog post intact below, but I wanted to make a clarification on my position here, as many conversations that I have had with people about this blog post (my most controversial) have led me to believe that many people who read this misunderstand my point.  I’ll take the blame on not being clear enough.

To summarize as quickly as possible, let me say that certifications are certainly useful personal gauges to see if you can pass the test or not (especially when offered free, I hold a number of BrainBench certifications because of that – note that they are not listed on my resume), I also understand that many companies do require or desire them, especially in the government sector.  That’s fine.

My primary point was that I personally do not feel that a certification is a good indicator of “How skilled of a programmer is this person”, but that experience & having a conversation with the person dictates that.  So yes, if I have a pile of 200 resumes in front of me, and I need to quickly narrow it down to 10 to call first, those that prominently display their certifications instead of letting their experience stand out, tend to get sorted into the ’second rung’ category.  And that simply applies for the companies I’ve worked for, the job descriptions that we had, and the types of positions & work we were doing.  Everyone should always try to tailor their resumes to the specific job that they are applying for.

The original article follows in it’s entirety:


As it stands, I’ve shocked more than my share of people in the past when I’ve mentioned my stance on certifications for programmers.

Specifically, that when I have a pile of resumes in front of me, and I’m giving them an initial pass to sort them apart, I take any that mention their programming certifications, and sort them to the bottom.

Why?  Simply put, I find that programming certifications are essentially useless.  More to the point, I find that typically the people who list certifications on their resume as part of their qualification for the job, are obviously not qualified.  Afterall, had they been qualified in the first place, why would they need a certification to prove it to me?  Their experience should speak for itself, and the interview should weed out anyone with fake experience.

Some have argued that I shouldn’t hold certifications against people, and I have to point out, that I don’t.  I only hold it against the person, if it’s listed on their resume, specifically if listed as part of their qualifications.  IMO, that all comes down to tailoring your resume for the job you are applying to.  If you are applying to a ‘big corporate entity’/'government’/etc, then sure, perhaps you need to include it because you know they are looking for it.   But that’s not the types of places I have worked for.  If you are applying to a ‘cool place that understands technology & programming’, then you should leave those certs off of your resume entirely.

So what is it that’s so wrong with the certifications in the first place?   Simply put, they prove nothing to me.  They only prove that you could cram and pass a multiple choice test.  I understand and am all for certification programs in other fields than programming.  Especially fields where what is being done must follow certain guidelines (civil engineering), or in general is much more of an exact science than an art (electrical wiring).

But the problem is, that programming at it’s core, is an art.  It’s figuring out ways to work around issues.  It’s finding bugs when the website is down.  It’s understanding the ‘right or wrong’ ways to write a section of code, while also understanding that there are a dozen right ways, and 3 dozen wrong.  None of that, does a certification test.

There is also the fact that a certification doesn’t take place in a programmer’s environment.  When a programmer is at work they have their dev machine which is configured just how they like it.  They have reference materials handy.  They have a compiler/interpreter to tell them when they messed up.

Knowing in the blink of an eye what the order of parameters to explode() are, doesn’t measure your ability as a programmer, at all.

And worse, is the fact that quite often the fact you ‘passed’ a certification doesn’t even mean you did all that well on a test.  Passing can involve much failing.  See the graphic that I have posted with this story, it’s a screenshot from a practice test for the Zend Certification exam for PHP.  Note that the person who took the test failed Security, Database, Design, Arrays, and Basic Language skills.

Yet, they passed the overall test, and would be a ZCE (Zend Certified Engineer).  This goes to the point, just because someone passed just enough questions on a certification exam to pass it … doesn’t mean that they are a good programmer or even that they know some of the most basic skills needed to become a good programmer.

It just means they were able to pass a test (which they may have taken many times before they did)


I’ve accepted a job at TravelPod/Expedia

August 18, 2008

So after weeks upon weeks of gnashing of teeth, and talking with more than 30 different companies.  I made a decision and signed an acceptence offer today.

I’m becoming a member of the Expedia team, and specifically will be the Lead Engineer for the TravelPod Labs group.  A small group within TravelPod (a wholly owned subsidary of Expedia), that is going to be focusing on innovation and rapid development of new products.


I no longer work at digg.com

July 6, 2008

Well I originally announced this information on July 1st via twitter: http://twitter.com/EliW/statuses/847974862

However it seems right that I do so now here on my blog in more than 140 characters.

Though, the tweet mostly says it all.  As of July 1st I was no longer a Digg employee.  Digg and I mutually parted ways.   I really did have a blast at Digg (even if there were some very frustrating times there, but what job doesn’t have those?).  I feel very proud to have been an integral part of helping to build what has truly become a major brand on the Internet.

I have to say, it was in fact pretty cool having someone else be awestruck just because of the company that you work for.  In fact I’ll relate a little story.  My wife is a Project Manager for the Army.  One day she was over talking to her Tech Support team about some work issue.  Somehow the topic of Digg came up.  She mentioned that her husband worked for Digg.  She says that everything suddenly got quiet, and that the next words spoken were:  “Dude, he’s like a programming rock star!”

Those words, and similar situations, will be hung on my virtual mantle.  Right beside my 3″x3″ square piece of the Hubble Space Telescope Solar Array that I have, as fond memories from previous jobs.

I do wish to thank Digg for the great years, for the great friendships (which I hope will continue), and especially for the amazing opportunity to be part of something special.

Eli

PS.  Anyone hiring?


What’s up with the Web lately?

June 7, 2008

For whatever reason, it just seems that many websites keep having scaling/performance issues lately. Twitter of course is known for almost always having issues, but it seems to be spreading. Flickr has been having lots of issues recently, it’s taken me weeks to upload a particular set of images because every time I try, after a few, it would fail. And Amazon was down for a segment of time yesterday. I just hope that the ‘downtime virus’ doesn’t spread to Digg ;)

Update: June 8th: Myspace is down.


Computer Degrees: CS vs. CE vs. CIS vs. none

April 17, 2008

I’ve been asked a number of times in recent years by (usually) High School kids, as to what exactly they should do to end up being a programmer at a “Cool Web 2.0″ website (or something like that).

My response to them is almost always the same:  Go get a Computer Science Degree

I then perhaps go into a discussion about how when I’m hiring and looking at resumes, especially of people without 5-10 years of solid experience anyway, that they quickly get sorted into piles of “Computer Science Degree”, or not.

Most simply put.  Someone who has a Computer Science degree, has been taught the theory of programming, of algorithms.  They have been taught how to ‘think’ like the computer, heck they hopefully even had to write some assembly code.  They understand programming and they understand good program design (Even if they may have some ‘interesting ideas’ because of what their teachers specifically harped upon).  They also understand the theories of Software Engineering and how to work as a team.

To contrast this, the other degrees, or lack of a degree … People in those categories MAY understand all of this.  But it’s not guaranteed.   Typically Computer Engineering students have learned much more about hardware and their programming knowledge was to allow quick one-off projects that were meant to work on chips.  Computer Information Services students usually have a business degree, and were ‘also taught how to write code’.   Those people without any degrees at all, may be very good at hacking out lots of code, and code that works, but not code that they deeply understand, which leads to problems later.

Yes, people without Computer Science degrees can have these skills.  And as I said, if someone is giving me a resume and they have 10 years of deep coding experience, I’m not going to bother looking at the degree at all.

But in my opinion, having a true Computer Science degree under your belt is the best thing that someone without deep experience can have on their resume, and is an excellent use of 4 years of your life.


Dear Laid off Yahoo PHP Developers …

February 13, 2008

Digg wants you! Please apply at jobs@digg.com or go to http://digg.com/jobs/


Software ‘community’ … Mac vs. PC

February 11, 2008

For those that don’t know, I’ve used Mac, PC, and Linux interchangeably for a long time.  Having one of each at home for a while.  However; my main machine has been a windows box the whole time.   I recently moved to using a MacBook Pro as my main machine for work.

It’s made me get ‘deep’ into the system instead of just using it for specific things or testing.

I will post some other thoughts later, but one thing that just came up to me again this weekend has prompted this post.

I’m really amazed at the difference between software available.   On Windows, the open source community had really embraced the platform, and not only could you find any open source software that you wanted in a pre-compiled binary for Windows.   But there was also just a ton of free software just for Windows out there as well.

On the Mac, it seems that the open source community has abandoned it.  While the Mac is BSD at it’s core, the X-system is subpar, as it doesn’t fully integrate into the OS unless the application has been ‘aqua-fied’.  But very few projects have bothered to do this, like they have for Windows.   Which leaves you using fink or macports to compile the software natively, and having a very bad UI experience.

At the same time, there is a ton of Mac specific software out there to be had, but it feels to me like the Windows community 15 years ago, where everything is shareware, instead of freeware.

Shareware on the PC really died off in favor of open source, or straight freeware.  Yet on the Mac it reigns supreme, with any potential software I want to use costing me $10-15

It really boggles my mind, simply because the Mac ever since OS/X has really been embraced by the programming/technical community as ‘the desktop machine to have’ … yet it doesn’t have an according philosophy with the applications that run on it.