Doug Hull

Doug Hull is the author of official MathWorks blog Doug’s Pick of the Week. Doug is a MATLAB user since 1994. He gets paid to live, eat, and breathe MATLAB! His blog is dedicated to promoting the File Exchange by highlighting files and original video content. We are extremely fortunate to have him answer a few questions.

These postings are the author’s and don’t necessarily represent the opinions of The MathWorks.

1. When did you first start using MATLAB? Can you give us a brief
history about how you ended up with MathWorks?

I first started using MATLAB in 1994. I was trying to solve a problem that inspired this MATLAB Puzzler:

Puzzler-Coin-Game

After ten minutes of staring at a blank screen with only:

>>

I learned my first MATLAB command:

>>quit

It was a year later I was taking two classes: a grad class that expected you to know MATLAB and the undergrad class that taught you MATLAB. That is when I entered my “larval” stage. I would be up coding all night, really loving MATLAB. Soon, I was tutoring people in the lab, then my professors in MATLAB.

Through dumb luck, and ignorance of how much work it would take, I ended up writing a book about MATLAB 5 as an undergraduate:

Mastering Mechanics Using MATLAB Materials

I then co-authored a second book, and wrote the MATLAB CD for a third. This made the technical phone screen interview for The MathWorks much easier to pass!

2. If you look around the web, there aren’t very many prominent
MATLAB blogs around. Why do you think that is? What are your
thoughts on this?

There are not a lot of MATLAB blogs out there beyond you guys, and the “pros” here at the MathWorks. I think there are a couple of reasons. MATLAB Central gives a good outlet for our more vocal Gurus. Second, I think that we end up hiring our more vocal Gurus and they end up writing the blogs from the inside (See Brett, Jiro for prominent MATLAB Central folks that we recruited)

3. What are your three favorite things about MATLAB? What are three
things you think MATLAB needs to improve?

I loved MATLAB from the beginning because it was easy to program. I learned to program in BASIC as a kid, moving to MATLAB was easy. Trying to learn C had too high of a barrier to entry.

I was out in front of the curve at my university learning MATLAB, so I got to feel very smart tutoring students and professors in it. That was really nice. Knowing MATLAB got me access to a lot of jobs on campus and beyond. So there were real, immediate financial benefits to knowing MATLAB well, even as an undergrad. Many of my class projects were a lot easier because of this program.

MATLAB lets me get those “ah-ha” moments more frequently. That is what we are all looking for as scientists: that elusive “eureka” moment. When you can test a little theory about data in minutes instead of hours or days, you are more likely to try things and stumble upon the right answer.

It is funny to answer “what I don’t like about MATLAB”. After seven years of having direct access to the great people that make MATLAB, I have actually been able to put in over 530 change requests. Of these, 160 have been implemented, 101 of them are “Under consideration” or marked “to do”. (The rest were completely unreasonable ideas…) So, there is not so much I want to change anymore! Some of the things I do want to change are considered “Confidential” so I can not talk about them.

4. What does a Mathworks engineer like yourself do on a typical
day? How many hours a day do you spend browsing the web and not doing
work?

My main job is being the last line of defense between technical support requests and the developers. I am here to make sure that the really difficult problems are solved quickly without interrupting the workflow of the guys that are writing MATLAB.

The day usually begins with me answering questions and comments that come in on the blog. Depending on the day this can take a while. Often these will inspire movies that I want to create.

I can get a question coming in from tech support at any time. These always take top priority. It is like being a professor holding office hours. My Language of Technical Computing team (aka MATLAB) is getting pretty senior, so they need me less lately. Monday-Thursday I got one escalation. However, today I got four questions in the course of an hour!

The questions are all interesting by the time they get to me. The most recent ones were like this:

* How do we get rid of undocumented features that we know people have figured out how to use? (You MATLAB hackers can be pretty clever finding things that we try to keep hidden)
* Is the behavior we are seeing with a function a bug or a feature? Sometimes behavior is surprising but actually correct, so I have to simplify user code to the point that the behavior is isolated then determine if it is correct, and deal with it accordingly.
* Setting expectations and re-architecting user code. Sometimes cases come in where a user has really painted themselves into a corner. They might do something one way not knowing that if they did it in a different way it would be a lot easier and better!

In the down time between cases, I spend a lot of time making movies about MATLAB. As of right now, I have ten blog posts ready to go and a really long list of movies to make. I work with our doc writers improving our examples, I work with people teaching them to make better oral presentations, and teaching people to make videos. I most recently play-tested the next MATLAB Contest.

As for surfing the web? I am a big fan of

* www.PresentationZen.com - best presentation blog ever
* Seth Godin - marketing guru
* TED - Ideas worth sharing
* icanhascheezburger.com - Not particularly work related

I spend the rest of my time trying to find errors in BlinkDagger tutorials, but have yet to find one… :)

5. What other computer langauges do you know? How do they compare
to MATLAB?

As far as other languages go, I would say at this point I can read a lot of languages, but can not write them. It takes a lot less to comprehend code than to generate it. At various times, I have been known to write:

* C/C++
* (Turbo) Pascal
* (Visual) Basic
* SQL
* Logo

I never really got very far with any of them. To me, being a native MATLAB speaker is a lot like being a native English speaker: It is useful to know other languages in certain situations, but everything I really want to do can be done in my preferred language anyways…

6. How do you feel about MATLAB’s free open-source alternative,
Freemat and Scilab?

I have not actually used either one of them, so I can not comment on them technically.

7. At your blog, video tutorials are plentiful. At blinkdagger, we
don’t even have any! What are your thoughts on the differences
between traditional and video tutorials? Do you think we are heading
towards an age of video tutorials? Are traditional tutorials becoming
obsolete?

I knew that video tutorials were the way to go when I was trying to learn the tools I needed to make my video tutorials: GIMP, SnagIt, and Camtasia. I ended up learning those software packages by watching video tutorials, not by reading their documentation!

I think that watching videos is the way to learn new software. Seriously, I thought I knew MATLAB before I came here, but I learned so much by watching other people do things that I did not know could be done in MATLAB. After seven years of having access to the documentation, I did not know about these features. I can’t fit the million plus MATLAB users in my office, but I can give them access to my videos and hope that has a similar effect.

People are much more willing to casually watch a five minute video than they are to browse the documentation to “see what they might learn”.

The big problems with video are:

Search: For someone to find my video when they need it, they have to stumble upon it by the short descriptions and keywords I attach. I hope that with the blog format people just watch them all and then know these techniques when they happen to need them

Maintain: If there are small changes in functionality that I use in my videos, if I want to update them I pretty much will have to reshoot the entire thing instead of changing a few words of text.

I think that hybrid examples that have both the traditional text and a supplemental video are where we are heading. I have rewritten one section of documentation in my style and filmed four videos to go with it. I hope to do a usability test on this soon to see if it is the right thing to do.

8. Which new MATLAB products/features are most excited about? Is
there something revolutionary in the works?

There is some really great stuff coming down the line, and it is company policy not to say a word about it until it is burned to the shipping DVD or you are under a non-disclosure agreement. Sorry!

9. Where do you find inspiration and ideas for new blog posts,
tutorials, and puzzles?

Like I said, my mornings start with reading the e-mail that comes in every night from blog readers. Between this and user questions that are escalated to me from technical support, I have an unending supply of topics. Sometimes I will just poke through the documentation looking for unloved functions that need more attention.

10. Can you tell us a little bit about the little Easter egg prank
you pulled? I heard you almost got fired!

That was an interesting little prank with a faked up video. I ‘got’ more of the internal Tech Support people than expected with that. I need to clarify that no one person is going to be able to ’sneak’ anything into the source code. We have actually taken out a lot of the classic Easter Eggs that were once in there…

11. Bonus questions for the ladies: Are you single? What is your
favorite food?

Homemade butterscotch cookies, Trappist Rochforte 10 beer from Belgium, and Sausage and Pepperoni from Mineo’s in Pittsburgh are my favorites. Yes, I am avoiding the first part of the question!

12. Bonus question: Given a Sudoku puzzle, who would finish it
first: yourself, Loren, Steve, Ken, Mike, Seth (other employees)?

No doubt, Loren would win. When we were working in the same building, I often saw her printing up the blank grids so she could copy them from the paper each day. That was of course a MATLAB program:

http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=8558&objectType=FILE

Not sure if she still does them, but she is one of the most clever people I know. I think she does the New York Times crossword with a pen.

I hope the MATLAB users that are subscribed to this blog have found this useful. Let us know what was interesting or surprising in his answers. If got any questions for Doug, we will try our best to make sure he field your questions.