The Green Geek

Blog Action DayToday is the first ever Blog Action Day. Thousands of bloggers from all over the world are helping out by writing about their choice of environmental issues.

It’s so easy these days to lower your energy consumption, and your electric bill, I can’t imagine why anyone wouldn’t do it. We’ve only changed a few things over the last few years, but these changes have had a dramatic affect on our electric bill.

First, we replaced an old AC unit with a new, energy efficient one. We also replaced almost all of our regular light bulbs with CFL bulbs and we installing a programmable thermostat. These changes cut our bill by almost 50%.

Here are a few more things every computer user can do:

  1. Ditch your screen saver. How much time does your computer spend displaying some crazy graphics on the monitor with no one even looking at it? Instead of displaying a screen saver, set your computer to turn the monitor off when it’s not being used.
  2. Enable sleep or hibernation. Most computers take just a few seconds to wake from sleep. A computer in sleep mode uses a lot less energy. It’s worth a few seconds of your time.
  3. Turn off your computer. This is an endless debate and I’ve personally argued on both sides of it. Some people say turning your computer off and on every day wears out the power supply faster. I used to say the same thing. Even if it does wear out the power supply faster, the energy savings will more than make up for it.

I hope you’ll take this opportunity to do your part to help the environment. Make a few small changes in your life to ensure the future well being of our planet. Don’t forget to check out the Blog Action Day website to learn more.

I Just Lost The Game

And since you’re reading this, so did you.

One of my favorite things about working for the school district is interacting with the students. I think it keeps me young.

Last weekend we took a trip to Denison for BEST Robotics. On the way over there, one of the students said he had just “lost the game”.

Here’s how the game was explained to me:

  1. You’re always playing the game.
  2. As long as you aren’t thinking about the game, you’re winning.
  3. As soon as the think about the game, you lose.

When you lose, you should announce to everyone around you that you just lost the game. This causes them to lose as well.

It’s sort of a zen thing. Only by forgetting that you’re playing can you truly win.

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 -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.

It’s Not About the Tools

I’ve focused on tools for way too long. Back when I played guitar, I thought that if I bought a better guitar it would make me a better player. After that, I thought a faster computer would make me a more efficient programmer. Even more recently, I thought I needed a Mac to be a great web designer.

Now I have an expensive guitar, a fast PC, even a MacBook Pro, but my skills haven’t changed at all. I’m a decent guitar player. I can program anything I want, given enough time. I still couldn’t design a beautiful web page to save my life. But, I do feel like I’ve learned a valuable lesson.

I’ve been saying for years now that I was going to start a software business, but so far I’ve gotten no where. My problem is, again, focusing on the tools. My first big web application was written in Perl. Then I heard about PHP and started working with it. Then I moved on to the latest craze – Ruby on Rails. Now I’m looking at Python and Django.

Thankfully, I’ve finally seen the error of my ways. I’m ready now to stop worrying about the tools and just build something. I know enough about each one to make an educated decision and that’s all I need to know.

One last example – the old me would’ve never written this post. It’s late at night and I would’ve had to go into the office and either sit at the PC or get out my laptop. Instead I just grabbed a pen and some paper and I’m scribbling this down while I sit on the bed. How’s that for getting things done.

Using the right tool for the job is important, but it’s more important to focus on getting the job done.