Monday, March 29, 2010

Episode 79

In this interview, Brian Genisio describes the Prism documentation and library and explains how he uses it to build applications.

Monday, March 29, 2010 6:00:16 AM (Eastern Standard Time, UTC-05:00)
 Saturday, March 27, 2010

I have removed the word "easy" from my business vocabulary. I've come to resent the overuse of this word.

What I do is not easy: If it were easy, anyone could do it.

Customers sometimes refer to a task as "easy" in order to drive down the price; Managers sometimes refer to part of your job as "easy" in order to lower expectations of high performance reviews (a dangerous strategy).

This mindset is generally an offshoot of the belief that the time spent coding is equivalent to the time spent typing. It isn't.  Understanding requirements, planning, designing, clarifying, testing, configuring, troubleshooting, communicating, error handling, logging, deploying, and validating assumptions go into nearly every software task I complete.

I cannot count the number of times I was told "The code is already written. You only need to copy it." In nearly every case, this was a gross misrepresentation of the complexity of the task assigned.

A task can be measured on a scale from Complex to Straightforward. Every task has unknowns that add risk and can make it more difficult than our original estimates.

Developers sometimes fall into this trap, telling customers that something is easy. Many of us overestimate our skill and minimize the risks inherent in every task. I caution against doing this because it creates unrealistic expectations and makes it nearly impossible to exceed those expectations.

When describing a task that isn't complex, I refer to it as "straightforward"; Or I give an estimate of how long I realistically think the task will take.

The only time the word "easy" might be justified in describing a task is after that task is 100% complete. In the past, all uncertainties are eliminated and risk reduces to 0.

Replace the word easy with "straightforward" when dealing with software developers (or any professionals) and your relationship with them will improve.

Saturday, March 27, 2010 9:15:17 AM (Eastern Standard Time, UTC-05:00)
 Monday, March 22, 2010

Episode 78

In this interview, Jim Holmes discusses the importance of unit testing in writing high-quality, maintainable code.

Monday, March 22, 2010 11:25:14 PM (Eastern Standard Time, UTC-05:00)
 Saturday, March 20, 2010

I have been recording and producing the online TV show Technology and Friends for over a year. After over 70 episodes, I have found things that work well for me. This series is a detailed account of how I put together each episode.

Part 1: Preparation

Part 2: The Interview

Part 3: Equipment

Part 4: Post-Production

Part 5: Sharing with the world

Saturday, March 20, 2010 1:57:11 PM (Eastern Standard Time, UTC-05:00)
 Wednesday, March 17, 2010

In the last article, I explained how to edit a video and export it to a single MPG file. In this article, I will discuss how I share this video with the world.

Export

After I finish editing the video in Adobe Premiere Elements, I export it to a single MPG file. This is done by selecting the "Share" tab in the top right section of the editor. On the Share tab, I use the following settings: Personal Computer |MPG | NTSC DVD Standard. I enter a file name and select a directory and click the [Save] button to create a single MPG file containing my complete show.

Once I have a single MPG file, I can easily share it with others.

Upload

I upload the exported WMA file to a video-sharing site. I use Viddler because it is free and provides reasonably high-quality playback.

Viddler provides the ability to upload a file directly from their web site. I add metadata, such as a name and a description to each video.

Share

I link these videos from both DavidGiard.com and TechnologyAndFriends.com.

Viddler provides a button ("Embed This") that generates the HTML necessary to embed a video into a web page. I copy this HTML and paste it into a post on my two sites. Above the embedded video, I add some text to describe the video and any relevant links, such as the guest’s blog. I release both posts on the same day.

After releasing a new episode, I promote it via Twitter. I also send an e-mail to my guest, telling him or her that the interview is now available. Often my guest will link to the show from a blog or tweet, driving more traffic. If we are discussing someone else in the video, I often will e-mail that person or organization. After interviewing Jamie Wright about 37 Signals last year, I e-mailed 37 Signals to tell them about it. They linked to the video, which drove over 10,000 viewers to watch it.

My goal is to release at least one video every week, so I usually have a backlog of videos recorded, produced and ready to release.

Final Thoughts

On average, it takes me approximately 2 hours to produce a 20-30 minute show. This is in addition to the hour or so it takes to set up, prepare and record a show. So far, I’ve done this almost 80 times.

Wednesday, March 17, 2010 5:42:47 AM (Eastern Standard Time, UTC-05:00)
 Tuesday, March 16, 2010

I always edit my interviews prior to posting them. The first step is to get the recorded video onto my computer. I record to Mini DV tapes and the easiest way to get this content from the tape to my computer is to insert the tape into my video camera, attach the camera to my PC via firewire, and import the video.  Windows 7 ships with a utility to import videos directly into my PC as an AVI file. When I connect the camera and turn it on in 'Play' mode, my PC prompts me to import the video.

Adobe Premiere Elements basics

After I import the video, I use Adobe Premiere Elements to edit the show. Here are a few of the basic skills you will need in order to edit a show like mine in Premiere Elements.

I start by creating a new project. To do this, select File | New | Project from the top menu and enter a name and folder location for the project. A blank editor appears with three main sections:

  • The Timeline at the bottom of the screen controls the content in your video and allows you to add or manipulate that content. You can add content at any point in the timeline, even overlapping multiple videos or slides, so they are superimposed on one another. You can modify a point in the video by selecting that point in the Timeline.
  • The top right area of the screen includes a tabbed interface so you can organize, edit or share your video. Functions in this area are organized under different tabs.
  • The top left area of the screen allows you to preview and edit the video. VCR buttons below this allow you to play, fast-forward and rewind the video, beginning at the point selected in the Timeline.

Premiere Elements has a number of ways to add content to a project. The two I use most often are adding an existing video or photo; and adding a slide. A slide can stand on its own, such as in the opening or closing credits, or it can be overlaid with the video, so it acts as a caption.

To add existing media to a project, select the "Organize" tab in the top-right section of the editor; then select Get Media | PC Files and Folders and navigate to the video or picture to import. An icon representing the imported media appears. Drag this icon to the desired area in the timeline.

To add a new slide, select Title | New Title | Default Still from the top menu. A slide appears at the currently selected position in the timeline. You can edit the text of the slide by clicking it with your mouse and deleting, replacing or adding to the existing text. With the text selected, tools appear under the “Edit” section in the top right of the screen, allowing you to select the font and alignment of the text. You can change the length of time a slide is displayed by dragging the right edge in the timeline.

To remove sections of the video, you need to first split a clip at the beginning and end of the area you want to remove. To split a clip, click the point at which you wish to apply the split and select Timeline | Split Clip from the top menu. To delete a section of video, select the section between the splits you added (the selection will highlight purple) and press the Delete key. To delete the beginning or end of a video, you only need to insert a single split and select / delete the video section before or after that split.

Editing "Technology and Friends"

Each show consists of the 5 sections in the following order

  1. Introduction
  2. Interview
  3. Ending Credits
  4. “Technology” and “Friends” quote
  5. Title page

Introduction

The Introduction plays at the very beginning of each episode and is broken into a Title Sequence, followed by a slide listing the episode number and a slide listing the speaker and topic.

Title Sequence

The title sequence is the same for every show. Last year, I created a short video and I use this same video for each show, so I import it from my computer. This video displays a montage of photos of past guests as the show title – “Technology and Friends” - appears on screen. This is  followed by some photos of me surrounded by the words “Hosted by David Giard”. I add this media to the beginning of the timeline.

Episode Number slide

The Episode Number slide displays immediately after the Title Sequence, I insert a slide listing the episode number. The text on the slide is centered vertically and horizontally.  This slide lasts for 5 seconds.

Guest/Topic slide

Immediately after the Episode Number slide, I insert a slide listing the guest and the topic ([Guest] on [Topic]). For example, when Jim Holmes was on the show to talk about CodeMash, this slide said “Jim Holmes on CodeMash”. The name, the word “on” and the topic each appears on a separate line. Longer topics may be split into multiple lines. The text on this slide is center-aligned and is centered vertically and horizontally on the slide. 

Interview

The interview is the most difficult thing to edit. I sometimes need to watch an interview 3-4 times to decide what to cut.

I always need to cut out the beginning where I am walking into the camera frame and setting up; and the ending where I walk out of the frame to turn off the camera. If I had someone to operate the camera, the recording would not have these sections.

Some interviews include time that doesn’t add any information and I cut out these parts as well. Examples include: Me clarifying a question that I asked poorly the first time; a guest misspeaking, then correcting himself; a joke or anecdote that falls flat; and redundant information. I want the interview to be concise and entertaining. Often a video can be improved by removing the less interesting parts.

If a guest mentions a specific URL, I add an overlay slide to display that URL. This reinforces the information and provides the proper spelling to the user. URL text is displayed in the bottom third of the screen and the text does not wrap. It is acceptable to eliminate "http://" from the URL as this is implied and tends to clutter the slide.

Ending Credits

At the end of each show, I display a series of slides, one after another. Each slide lasts 5 seconds. The text of each slide is

Guest on Topic

where Guest is the full name of the guest and Topic is the main topic we discussed

Recorded Mmmm DD YYYY, Location

where Mmmm DD YYYY is the date the interview was recorded and Location is the city in which it was recorded, such as “January 20 2010, Sandusky, OH”

XXX performed by YYY

where XXX is the name of the song selected to play during the Introduction and Ending Credits and YYY is the name of the artist who performed that song. (More on this later)

See more at TechnologyAndFriends.com and DavidGiard.com

The text on this slide is the same each episode.

Copyright David Giard, YYYY

where YYYY is the current year.

"Technology" and "Friends" quote

During each interview, I ask my guest to speak a sentence using the words “Technology” and “Friends”. During the editing process, I clip this section of the video and move it to the end, immediately following the final credits.

Title page

The very last thing that I drag to the end of the timeline is a graphic image – TechnologyAndFriends.gif. This is a logo I created for the show. It displays for 5 seconds and serves as a final reinforcement of the show name.

Music

After nearly four decades collecting, I have accumulated a substantial library of music. Technology and Friends does not have a theme song: Instead, I choose a different song for each episode. I try to choose a song in which the title, lyrics or artist relate in some way to the subject or guest of the current show. Sometimes, I’ll pick a song or artist that I know the guest enjoys. If I cannot find an appropriate song, I select an upbeat instrumental. I drag the song to the very beginning of the timeline on a separate track from the Introduction. This causes the music to play at the same time as the introduction and opening credits. I clip the audio track and end the music at the same time the introduction ends and the interview begins.  Then I drag the remaining music track to the end, so that it plays during the closing credits and ends when the guest speaks the “Technology” and “Friends” quotation.


In my next article, I'll describe how I share the video on the web and on TV.

Tuesday, March 16, 2010 6:19:15 AM (Eastern Standard Time, UTC-05:00)
 Monday, March 15, 2010

Episode 77

In this interview, Mike Amundsen explains the concept of REST and how a developer can use this pattern to build web applications.

Monday, March 15, 2010 10:21:38 AM (Eastern Standard Time, UTC-05:00)
 Sunday, March 14, 2010

I am an outsider here.

All around me are people who spend their professional lives working in SharePoint. Me - I'm a jack of all trades, dabbling in a variety of development technologies. But I never buried myself in SharePoint, learning its secrets and architecture. It's clear the others at this conference have.

I came to SQL Saturday because some of my co-workers are attending, because my employer (Sogeti) is a sponsor, and because it is close to my home.

But I also came precisely because I have such limited experience with SharePoint. Sometimes we need to stretch ourselves beyond our comfort zone: to explore technologies that are mysteries to us. We need to learn how people solve problems using other tools and other patterns.

SharePoint developers boast a strong community in Michigan. User group participation is very high and this conference attracted 163 attendees (not including sponsors and speakers). There is also a strong .Net community in Michigan and I don't see much communication between the two communities. It's a shame because there is a great deal we can learn from one another.

One of the most well-attended sessions at SharePoint Saturday was Karl Swedberg's jQuery talk, even though Karl admitted he knew nothing about SharePoint.

SharePoint is just one area where I can expand my knowledge. To be a better developer, I need to reach out beyond what I do every day and find out what others are doing. I won't become an expert by spending a day at a conference, but I will improve my perspective and I'll be better for that.

Sunday, March 14, 2010 10:07:10 AM (Eastern Standard Time, UTC-05:00)
 Saturday, March 13, 2010

I use the following to record an interview

  • My video camera
  • Tripod
  • Wireless microphone and base

Camera

I record with a Canon GL-2 video camera, which is a “Pro-Am” camera, meaning a camera that is higher quality than most cameras marketed at amateurs, but lower cost than cameras for professionals. This camera has served me for years. Luckily video cameras do not become obsolete nearly as quickly as other technologies (I’m thinking of you, 2005 Digital Camera). You can probably get by with a much cheaper camera than mine, especially if you are producing your show for the web. But I already owned this one when I decided to start recording my show, so it is the logical choice for me.

Tripod

Since I work alone, I need to affix the camera on a tripod. I use a Vanguard New Tourist 5 telescoping tripod. It’s strong, lightweight and collapses to fit easily into a backpack. Prior to the interview, I verify that the subject and I are both in frame and that we fill the frame. I am able to swivel the viewer on my camera, allowing me to see the LCD image, even when the camera is pointing at me.

Microphone

The GL-2 includes a built-in microphone, but the sound quality was not acceptable, so I purchased a wireless microphone. This microphone sits between me and my guest, and a receiving unit plugs into the camera. This setup provides much higher sound quality. I also purchased a steel to hold the microphone upright. I’m currently looking to upgrade to a better quality microphone than the Radio Shack brand I currently use. For this show, a wireless microphone is not necessary because we tend to remain stationary during the interview.

Saturday, March 13, 2010 7:37:14 AM (Eastern Standard Time, UTC-05:00)
 Thursday, March 11, 2010

In the last article, I talked about how I prepare to record an episode of Technology and Friends. In this article, I'll discuss the interview itself.

Framing the scene

I nearly always work alone on this show, which means I don't have a cameraman. So it's up to me to properly frame the shot. I affix the camera to a tripod and ask my guest to sit or stand in front of the camera. Then I frame my guest in the digital viewfinder (an LED screen that shows an image of what the camera will capture when recording). On most television talk shows, the  host sits on the right. However I prefer to sit on the left. The reason is that my digital viewfinder swivels, so I can see it even when the camera is facing me and the viewfinder is more visible to me if I sit on the left. My goal is to frame each shot so that it includes me and my guest or guests, but very little beyond that. The shot looks best if we are close together, almost touching.

Without an assistant, I am forced to start recording, then walk into the camera view and check the frame. Sometimes I need to walk back behind the camera to adjust the framing. Of course, I cut out all this walking in and out during post-production.

The conversation

The Interview itself is generally the most enjoyable part of the show.

In my show, I want the guest to do most of the talking, so I ask a lot of open-ended questions. Rather than: Is this technology easy to use, I'll ask "What are the advantages of this technology"? Ideally, I'll ask a 15-second question and the guest will talk for 3 minutes. I try not to interrupt him* unless I feel they need to clarify something. If they introduce an unfamiliar term or acronym, I'll ask them to define it.

I will ask follow-up questions, based on what the guest says on camera.

Sometimes, he mentions something that sparks my interest and I'll ask for more detail.

Sometimes, I'll feel his explanation is too vague and I'll ask for clarification or an example.

Sometimes, he'll make an unsupported assertion and I'll ask him to defend that assertion.

Sometimes, I'll volunteer a relevant story from my own experience.

After a long explanation by the guest, I'll often try to summarize what they said and ask if I have understood it correctly.

Generally, I want the guest to sound relaxed and I want the tone to be conversational. As much as possible, I try to set him at ease. If either of us makes a mistake, I say “Edit Point” and let him know we can cut out that part later.

Sometimes, we may elect to re-record an entire sequence if someone misspoke or was unclear.

Although the show doesn't have a set length, I try to keep the interview less than 30 minutes because I want it to be concise. If I feel it may go longer, I will usually edit it for length or split it into two shows.

At the end of each interview, I give my guest a chance to promote himself by mentioning a blog or other online presence.

I wrap up the show by thanking the viewer and saying goodbye to the audience. Of course, I also ask each guest to speak a sentence using the words "Technology" and "Friends" as this has become a trademark of the show.


* For simplicity, I will use the masculine pronoun when describing a generic guest. I have had many female guests and plan to have more in the future.

Thursday, March 11, 2010 11:17:37 PM (Eastern Standard Time, UTC-05:00)

If you are reading this blog, you probably know, I have been recording and producing the mildly popular online TV show Technology and Friends for over a year. I have recorded and released over 75 episodes and I plan to release a lot more in the future.

Recently, a number of people have asked me what goes into producing an online show.

There are four aspects to the show that I'll cover in this series: preparation, interview, equipment, and post-production. In this article, I'll cover preparing for the show

Finding a Guest

Everything starts with the interview and the interview starts with a good interviewee and a good topic.

I attend quite a few conferences and user groups, so I get to hear a lot of good speakers presenting technical material. I will often pick a guest because I have recently heard him or her deliver a good technical presentation and I want to record those thoughts for others to hear. I look for people who are knowledgeable and passionate about a topic and who can communicate well.

A conference is a good place to find guests because

  1. Conferences tend to attract a lot of smart people to a single location
  2. Speakers at a conference come prepared to talk in detail about a topic
  3. Most people cannot attend every session of every conference, so this gives a wider audience to the speaker
  4. I can sit in the session ahead of time and educate myself on a topic prior to speaking about it on camera.

A user group is also a good place to find a guest. Many of my interviews were recorded immediately after a speaker delivered a presentation at a user group. The challenge here is that user groups tend to end late at night and you must ask the host facility to stay open an extra half hour while you record.

I have also recorded interviews with co-workers that I know are knowledgeable on a topic. In most work environments, it’s possible to reserve a small conference room in which to record.

After I identify a good speaker, I approach him* and ask if he is willing to speak on camera for a half hour or so.

I nearly always give my guest the flexibility to schedule the time of the interview. People are busy and I recognize that they are doing me a favor by taking the time to record with me.

Selecting a Topic

I like to keep my show short and focused, so the guest and I need to agree on a topic. There are really only 3 criteria for a good topic.
1. The guest must be knowledgeable about the topic. Our goal is to share information with the viewers.
2. The guest must have some passion for this topic. Passionate speakers make for much better shows.
3. The topic must be of interest to my audience. Typically anything in the technology field meets these criteria, especially if it is new technology.

I try to avoid repeating topics, but I will cover the same subject twice if the second guest can add a new perspective.

If we are at a conference or user group, I often suggest that we talk about a topic on which they are presenting. This works well because the presenter has spent time preparing a presentation and knows the material really well. However, he may want to discuss something different. For example, a presenter may be researching and writing a book on a different topic and want to speak about that. As long as I feel the topic will be of interest to my audience, I'm happy to let my guest select it.

Location

As often as possible, I try to find a quiet place to record interviews. This should be a room with a door I can close and shut out external noise. Ideally, this room should be small and should have covered walls. Large rooms with bare walls echo much more. 

Unfortunately, this isn't always possible, so I try to find as isolated a place as I can.

Of course, the room must have available power for my camera and microphone. (My camera will run on batteries but I don't like to risk this)

Prepping the guest

Prior to the interview, I discuss with my guest what we will talk about. I nearly always write down an outline of the conversation. Depending on the situation, I have a couple approaches.

  • I may sit in on their presentation and take notes. Then, I can ask open questions and guide the guest through an abbreviated version of the presentation.
  • It may be a topic that I am already familiar with. In this case, I outline what I think are key points and I review these with the guest. They are free to add or modify my outline.
  • It may be a topic with which I am not familiar. In this case, I rely on the guest to create an outline. Generally, I ask them the key points they want to cover and I write them down in outline form.  I also spend a little extra time learning about the topic in advance, so I can understand it well enough to ask follow-up questions or spark an intelligent dialogue. I find these conversations are enjoyable but much harder.

I also try to chat with my guest for a few minutes before the camera rolls in order to help him relax and establish a rapport. In more than one case, I had just met the guest prior to the interview.

In the next article, I'll discuss the interview itself.


* For simplicity, I will use the masculine pronoun when describing a generic guest. I have had many female guests and plan to have more in the future.

Thursday, March 11, 2010 7:47:32 AM (Eastern Standard Time, UTC-05:00)
 Monday, March 08, 2010

Episode 76

In this interview, DevExpress evangelist Gary Short discusses technical debt and its effects on a software project.

Monday, March 08, 2010 6:43:37 AM (Eastern Standard Time, UTC-05:00)
 Monday, March 01, 2010

Episode 75

Sam Corder is the founder of the MongoDB-CSharp open source project In this interview, he describes the use of MongoDB and other document database

Monday, March 01, 2010 11:52:13 AM (Eastern Standard Time, UTC-05:00)

Tuesday March 23, I will be presenting "Extending your Application with the Managed Extensibility Framework" at the Cleveland .Net User Group in Cleveland, OH. More information is available at http://clevelanddotnet.blogspot.com.

Saturday April 17, I will be presenting "Building Your First ASP.Net MVC Application" at the Pittsburgh Code Camp at The University of Pittsburgh. More information is available at http://codecamppgh.com/codecamp.aspx

Monday, March 01, 2010 6:51:35 AM (Eastern Standard Time, UTC-05:00)