February 2010 Archives

Ciphers, Keys & Encryption Algorithms

Few things in the world of bits-n-bytes seem more alluring & intriguing than encryption algorithms .. with colorful names such as Blowfish (named after a deadly delicacy), Serpent (which took down mankind) & Rijndael (pronounced 'rain-dahl') .. conjuring up images of clandestine transactions being conducted by rogue spies and covert agents.

There I was, minding my own business, learning computer programming by watching the CS-50 course (at Harvard), when Malan mentioned ROT13. Say what? So I asked the Google.

Julius CaesarA slippery slope it was. First I learned about the Caesar cipher, which Julius used in ancient Rome to communicate with his generals waging campaigns out in the field. (Cool, yet hardly seems secure.)

But what about us? What ciphers should we be using today to protect our valuable data & sensitive files?

The best program (most seem to agree) for encrypting your own files & drives is » TrueCrypt. (Now at v6.3a.) TrueCrypt is both free & open source, and it's list of features is (truly) impressive.

If you feel compelled to pay either $60 or $100 for a similar program, the best option(s) seem to be » BestCrypt and/or Volume Encryptor.

I downloaded a copy of both programs and took each for a test-drive around the digital block. Most surprising was how little CPU resources these programs use .. to encrypt (and decrypt) files on-the-fly. We're talking negligible .. even with my battered 5-year old laptop ( .. that's missing an i-key).

These programs work by creating a file on your hard drive (however big you want) that looks (and is used) like a typical/standard logical drive, which you can use to both store and retrieve files as needed. [ I made each of mine 2-gigs. ]

They can also encrypt an entire logical drive, including your system/boot drive (where Windows resides).

An algorithm is simply a sophisticated mathematical formula for scrambling the bits associated with the files on your hard drive (.. so nobody can read them). The hard part, it would seem, would be the subsequent reassembly.

The next question you might have is » What's considered the 'best' encryption algorithm? .. seeing the program will ask which one you want to use. The word 'best,' as you know, can mean different things to different people (who have different priorities).

People intimately familiar with encryption algorithms have declared (drum roll, please) » Rijndael = 'best.' It's the current Advanced Encryption Standard (AES). Note that AES is NOT an algorithm, per se, tho the term is often used that way (.. as a synonym for the Rijndael algorithm). Rather it's a standard. Rijndael is the actual algorithm used in/by/with the AES standard.

Harvard's Fun Intro to Computer Science


Here's a find. You can eavesdrop on Harvard's 'Introduction to Computer Science' .. without ever leaving your living room. Very cool. Both video & audio-only streams available. Videos available in both Quicktime & Flash formats.

Harvard University Wrought IronI'm using their Flash steam. No stuttering. Perfectly smooth video. Both the audio and video are decent quality. A quote from the Harvard OLI website:

This course is part of Harvard Extension School's Open Learning Initiative, which brings a selection of noncredit online courses featuring Harvard faculty to the public for free.

While the extension website refers to this course as » CSCI E-52 (an 'Intensive'), both the instructor (David Malan) & video call it » CS-50. The course is for people with "little to no" programming experience. They appear to be having fun.

CS-50 used to be taught by Brian Kernighan, the guy who co-authored the definitive K&R book. He now teaches CompSci at Princeton.

I like this instructor's delivery. He talks fast. Prevents my mind from wandering. My brain syncs nicely with his presentation.

The course is comprised of 24 separate lectures, each ~ an hour long. They use a combination of C, PHP & Javascript. The first video is 73 mins.

In continuing my foray into the wonderful world of Programming, I've been demo'ing IDE's (Integrated Development Environments). Wasn't crazy, for example, about Komodo Edit (free).

My fave so far has been » Aptana Studio (also free / open source). Based on Eclipse. Their PHP plug-in uses PDT (.. which Zend also uses). Works for me. I like the idea of becoming familiar with Eclipse, since it's so popular (and free).

Programming (I'm learning) is an unforgiving discipline. Leave out a measly comma or a single semicolon and your whole dang program crumbles to gobbledygook. Does not compute.

Mostly (it seems) I'm learning how to make mistakes .. something I'm becoming very good at. Gradually tho, I'm learning how to correct and even avoid these mistakes. Currently learning about arrays.

Beginning of the End?

For the first time ever, the Bug can do something better than me. I wouldn't characterize this as an official 'developmental milestone,' but it does represent a demarcation of sorts.

HelicopterIt's a weird feeling, I admit .. when a 5-year old bests you at something. (Anything.) It has left me feeling .. uh, I'm not sure. Weird.

I'm relatively new at this parenting stuff. Maybe some of you more experienced dads know what I'm talking about.

Certainly, as time progresses, the list will only grow longer .. until .. well, you know. So it's sorta like the beginning of the end. Or is it merely the end of the beginning? Or both?

What can he do? you ask. He can fly that little remote control helicopter I got him for Christmas.

We're talking bank-turns along the upper corners of the room .. where the walls meet the ceiling. Then dropping down to buzz the poor cat (Simon), before buzzing me. Look out, dad. Almost gave you a haircut.

I mean, I'm nowhere even close to being in his league. I tried. It's not easy. I keep crashing. Don't wanna break it. I sometimes watch his face while he flies. The focus, concentration. Makes him look older. More mature.

This is actually the second heli I bought. The first he took back to his mom's the day he got it. It was broke before the sun set.

I try to avoid having things he can only use here. It's your helicopter, I told him. If you wanna take it to mom's, you can. The new one he decided to leave here. (But that was his decision.) We've had it a few weeks now. Runs great.

Don't get me wrong. I'm glad when he excels at anything. I've long endeavored to encourage him at whatever activities he might attempt. I try to focus on what he CAN do (.. rather than what he can't). So these feelings confuse me. Maybe mortality is the issue here.

Reblog this post [with Zemanta]

Learning PHP Programming


Finished learning how to use Fireworks to edit graphics. The graphic that accompanies today's entry was converted (with Fireworks) from a much larger Illustrator (*.ai) vector source file. Looks sharp, no? Fireworks is a hybrid graphics editor that supports both vector & bitmap objects in the same document.

PHPNow that that's done, I started learning PHP. Kinda excited. I've long known *about* PHP, and how it works (» server-side scripting), but never took the time to sit down and actually study the nuts-n-bolts of the language.

Currently using a video series titled » Essential Training, taught by Kevin Skoglund. He's good. (Very good.) In fact, Deke is the only instructor I found who's better. (Deke is head-n-shoulders above everybody. Mr. Entertainment.)

Amazing how much of a difference a good instructor can make. I've demo'ed other PHP courses, but couldn't get into them.

Skoglund also has another series (released last March) titled » 'Beyond the Basics,' which would provide seamless continuity, should my quest for the PHP grail continue.

I'd like to get to the point where I 'see into,' (or 'grok') the inner-workings of the language .. on an intuitive level.

So I installed the latest version of WAMP Server, and have begun learning how to program with PHP.

One nice thing about WAMP is that it allows me to DUPLICATE locally (via add-ons) the same server config currently residing on the Rad VPS (in Chicago). This approach to development would help identify and minimize any incompatibilities between different versions of Apache, PHP or MySQL.

Progress has been slower than I'd like but moving along nonetheless. Doesn't the tortoise (who never stops) always win in the end? I'm enjoying it. It feels 'right' .. if you know what I mean. In other words, it's working for me. The programming shoe fits.

Several factors influenced my decision:

About this Archive

This page is an archive of entries from February 2010 listed from newest to oldest.

January 2010 is the previous archive.

March 2010 is the next archive.

Find recent content on the main index or look in the archives to find all content.