I’m Famous!

Again. I gave three presentations on Thursday morning for our District Technology Integration Day.

I was really proud of the first talk I gave called “Effective Presentations”. I tried to channel Presentation Zen and Guy Kawasaki and share it with an audience who had never heard of either. Once I get all of my photos attributed, I’ll post a PDF of the presentation online.

My second talk was a lot more mundane. It dealt with file management and backups. A few people seemed interested, but several had their eyes closed. I actually ended up going a little long on this one, although I had fewer slides than the first talk.

My third talk was called “Teaching Today’s Students”. I started off by showing the beautifully redone Shift Happens. This was originally created by Karl Fisch and later stylized by Jeff Brenman. I knew that a reporter from the local paper was there, but I didn’t realize she recorded my entire talk. Much of the talk is quoted in today’s paper, including my quips.

This is not the first time I’ve been featured in the paper, but this is the most quoting by far. Most of the article is just me speaking. It’s kind of strange to read your own words in the paper.

I do think she misquoted me in one place. When talking about the slide that says the average page on MySpace is visited 30 times per day, what I thought I said was “So if you’re still having trouble finding a date, maybe it’s you.”

I thought I said that quiet enough that know one heard me, but I guess her recorder picked it up. I’m not upset if she reworded it. Her way is a little nicer.

E-Mail Therapy

It seems like everyday I receive an e-mail that (to me at least) deserves a flaming response. Almost daily I find myself wanting to unleash all of my pent up rage at someone or something via e-mail.

When I receive one of these e-mails, I used to spend quit a bit of time thinking about it. Trying to decide whether I should really let the person have it or just let it go. This was a source of stress that I just don’t need anymore.

So here’s my solution to this problem:

  1. Click Reply To All. (These messages are almost always addressed to a group. My boss and his boss are in the group 99% of the time.)
  2. Type a scathing reply. Leave no stone unturned. I try to make it clear that I am so far beyond the level of intelligence held by the sender that they can’t even comprehend the magnitude of what I am saying.
  3. Carefully move the mouse to the close button at the top of the window.
  4. As I click the close button, I say the word “send”.

This gives me all of the pleasure of expressing my true feelings on the subject, without the pain of getting fired and having to find another job.

I’ve done this twice so far today. Tomorrow will probably be worse. But, I have a smile on my face and happiness in my heart…

The End is Near…

The end of summer that is.

Summer is bliss at a school district. The office is quiet. The phone rarely rings. I can devote plenty of time and attention to big projects. What would take days during the school year can be accomplished in a morning during the summer.

Unfortunately, those quiet days will be just a memory on Monday morning. Last week was the calm before the storm.

This is the time of year when chaos reigns at my job. All of my free time is soaked up by a swirling mass of work orders, e-mails, and phone calls. All of my planning, prioritizing, and delegating will soon be for nothing.

Lucky for me, the chaos will end almost as soon as it began. The students return in two weeks, whether we’re ready for them or not. And once they return, the chaos subsides and what’s left is a steady rhythm of work.

Amid the chaos is where the excitement hides. The start of the school year is a time of change. Even more so this year. We’ve made some big changes this summer and there are more to come…

The Video Database

My YouTube clone is coming along nicely so far.

The next step is to set up a database to store information about each video such as a title and description. I’m using MySQL for my application. Here’s a command to create a new database called video:

mysqladmin -u root create video

Note that since this is my development machine, I log in to MySQL as root with no password. Don’t do this in the real world.

Next, we’ll need to add a table to this database. Here’s a bit of SQL to take care of that:

create table videos (
    id int not null auto_increment primary key,
    upload_date timestamp default now(),
    title varchar(255),
    description text,
    filename varchar(255)
);

This is all pretty standard stuff. I created a primary key called id that auto increments, and a date field that automatically adds the current date. In a real application, I would probably use a few more fields for things like categories or tags, but this should suffice for now.

The last thing to do is insert some sample data. Here’s another piece of SQL to take care of that:

insert into videos (title, description, filename) values
    ("Sample Movie", "This is a sample movie", "sample.flv");

Now that the database is ready to go, I can start writing some code. I think I’ll write it first in Perl just to see how it goes.

Adventures In Video

The first step in building my YouTube clone is making sure all the programs on the server work. If you remember from yesterday, I’m using FFmpeg and JW FLV Player.

Here are some great instructions for installing FFmpeg on a Linux server. Unfortunately my Google-foo was not so strong this morning and I ended up playing around for a while before I found that page. The real trick is making sure you have LAME installed before you compile FFmpeg.

After that, converting a video from QuickTime to FLV is a simple command like this:

ffmpeg -i movie.mov -ar 22050 movie.flv

The -ar option sets the audio rate on the FLV file. Flash movies are very particular about audio bit rate. It must be either 44,100, 22,050, or 11,025. FFmpeg is smart enough to resample the audio track. Depending on the format of your original file, you might also need to specify the audio codec with -acodec mp3.

The JW FLV Player comes with a sample HTML file. It was a simple matter to replace their Flash movie with mine in the HTML and adjust the parameters so it would be the right size on the page.

So far everything has been pretty painless. Tomorrow things will get more interesting when I start trying to fully automate this process.

Evaluating Web Frameworks

Yesterday I talked about choosing one framework to use to build web applications. I decided that the best way to evaluate them was to build a simple application. Not long after I wrote that post, the perfect application basically fell in my lap. (Maybe it’s true that the universe delivers what you need when you need it…)

We have several people at the school district that create videos of everything from daily announcements to sporting events. Currently there’s no easy way for parents to see the videos unless they come to the school or someone burns them a DVD. What we need is an easy way to put them on the web.

In other words, something almost exactly like YouTube. Except it needs to run on our server so we can control what gets uploaded and who gets to see it. I did a little research and found some free programs to make building this a little easier.

First, I’ll need to convert the uploaded files to Flash video format. FFmpeg is a command line program to convert videos. I even found a few examples of other people running it on a web server. The other piece I need is a Flash video player. A nice guy named Jeroen Wijering makes a free for noncommercial use FLV player called JW FLV Player.

So that’s my plan, a simple two or three page web application where people can upload videos (in a variety of formats). The server will convert the video to FLV and update a searchable list. Finally, I’ll use JW FLV Player to make them viewable on the web. The whole thing will also need to be password protected.

Over the next few days I’ll be building this application in Perl, PHP, Ruby, and Python. After that, I should have a really good idea about which framework works best for me. And then I can finally move on to bigger and better applications.