12
Jan
2009
My Favorite iPhone Apps
6:54 PM | Comments (0)

Deliveries ($1.99): You know when you order something, you want it now. At least I do. I stalk the UPS/FedEx/DHL tracking pages constantly, and this makes it ten times more easier and convenient. I also use it to track things I've shipped to other people to make sure they get there alright. You can track packages from all sorts of places. The ones above happen to all be from UPS, hence the brown color scheme.

eBay (FREE): eBay gets a bad rap nowadays, but I still love it. I get things for cheap, and sell things for more than I could anywhere else. Anyway, this app allows me, at a glance, to check auctions I'm selling, watching, and bidding on. You can even bid from the app and search listings. I used to have to find a computer to bid on an auction I knew was ending at a certain time, now I can do it from anywhere.

Summizer ($2.99): Twitter trends come to your iPhone. Trends are a great way to see what's in the news. Summizer not only shows you the current topics that are trending, but you can search Twitter as well, and save certain searches. It lets me know whenever someone mentions "Virginia Tech," "Blacksburg," and others I have set.

Twitterrific (FREE): My Twitter client of choice on the Mac and the iPhone. There are many others out there that people seem to prefer, but 2.0 is coming out soon for the iPhone and it sounds awesome. I like how you can easily reply to tweets and DMs, and TwitPic and web browser integration is very convenient. Plus it can load up to 200 tweets at once for when you need to catch up.

iSSH ($4.99): Imagine being able to SSH from your iPhone! iSSH saves connections, so at a tap, you can connect to your home computer or even your web server. So much can be accomplished via the terminal, like checking cron jobs, editing a website, starting a video encode, and I love being able to do it when I am out and about.

Yes, some of these aren't free and people seem to be against that for some reason. But these cost less than a lunch, and will last much longer and be more useful than a single lunch. You won't miss the few dollars, and you'll feel good about supporting these talented developers.

What are some of your favorite iPhone apps?

11
Jan
2009
Screen Scraping and Forms with Perl
3:27 PM | Comments (0)

As with any other college, trying to get the classes you want at Virginia Tech can be difficult when they're full. Most people are left to waste time refreshing the class timetable. Well I decided to make the computer work for me and tell me the minute a class opens up.

I really wanted a class at 11am on Tuesdays and Thursdays, and I saw "Music Theory and Fundamentals" was at that time. I play piano and want to learn more about making music, so I thought it'd be an interesting class to take, but it was full and chances looked slim at catching it open. So I wrote a Perl script to check the timetable every minute (because that's the fastest a cron job will let me) and then send me a text message when there is an opening in the class. Here is the final masterpiece:

#!/usr/bin/perl -w
use strict;

use WWW::Mechanize;
use HTML::TokeParser;

my $crn = "14484";

my $agent = WWW::Mechanize->new();
$agent->get("https://banweb.banner.vt.edu/ssb/prod/HZSKVTSC.P_ProcRequest");
$agent->form_number(1);

$agent->field("crn", $crn);
$agent->click();

my $stream = HTML::TokeParser->new(\$agent->{content});

$stream->get_tag("table");
$stream->get_tag("table");
$stream->get_tag("table");
$stream->get_tag("table");
$stream->get_tag("table");
$stream->get_tag("tr");
$stream->get_tag("tr");
$stream->get_tag("td");
$stream->get_tag("td");
$stream->get_tag("td");
my $classname = $stream->get_trimmed_text("td");
$stream->get_tag("td");
$stream->get_tag("td");
$stream->get_tag("td");
$stream->get_tag("p");
my $status = $stream->get_trimmed_text("/b");

my $now = localtime time;

open(httpd_log, ">>/Users/kevin/cronlog.txt");
print httpd_log "[$now] [$crn] $classname: $status\n";
close httpd_log;

if ($tag ne "Full") {
	open (MAIL, "|/usr/sbin/sendmail -t ");
		print MAIL "From: k\@vt.edu\n";
		print MAIL "To: phonenumber\@txt.att.net\n";
		print MAIL "Content-Type: text/plain\n";
		print MAIL "Subject: $classname ($crn)\n\n";
		print MAIL "$status";
	close (MAIL);
} else {
	# else...
}

Actually, it's not that great of a script. There are some bugs, but the basic features are in there that I want to show you. (WARNING, GEEK CONTENT) It requires the latest versions of WWW::Mechanize and WWW::TokeParser. Mechanize will let you submit forms, which I needed because the timetable doesn't pass variables through the URL. TokeParser is then used to grab text from the site. All those $stream->get_tag() functions tell TokeParser where to go on the page, and assign variables to certain text on the way down.

Why a cron job? Why not a loop with a sleep function? The script would crash after a few hours, mainly because the timetable isn't very reliable. I didn't feel like building in error handling, so I set up a cron job so I know the script would run every minute no matter what happens. I had it output the results into a log so I would know the script was still working, and I would embed it on my desktop with GeekTool. It would look like this:

[Thu Jan  8 09:18:02 2009] [15312] Introduction to Acting: Full
[Thu Jan  8 09:18:02 2009] [14484] Theory/Fundamentals: 1 / 60
[Thu Jan  8 09:19:02 2009] [15312] Introduction to Acting: Full
[Thu Jan  8 09:19:02 2009] [14484] Theory/Fundamentals: 1 / 60

I was also watching Intro to Acting as a backup, which also had the same timeslot. This is the point in the log in which there was an opening in the class and it sent me a text message. It was awesome to know that I actually pulled it off and that it all worked. I could have even had the script log into the class drop/add system and add the class for me, but I thought I'd just do it myself once I got the text message.

So there it is kids, this is my last semester so I won't be needing it anymore. I hope you've learned something, and leave a comment if you have any questions.

09
Jan
2009
Still Alive!
10:24 PM | Comments (2)

Just got back from the Orange Bowl recently and took some decent photos. Check out the Flickr for more.

I'm awesome at neglecting blogs. I just wanted to post and say I'm still alive. I usually have great ideas for blog posts, but then I'm like, "Well no one is going to read it," so then I don't blog. But I guess you have to blog good content to get an audience, I suppose I'll try.

04
Dec
2008
Sixth Photo Meme
3:03 PM | Comments (1)

Go to Flickr and post the 6th image on the 6th page of your photostream. Andrew Mager called me out to participate, so here it is! Luckily it's a decent shot.

This is from my trip to San Francisco over the summer which I actually never blogged about. But in a nutshell, I got to hang with Mager, go to CNET, met Tom Merritt and Brian Cooley, sat in on a CNET Live broadcast, went to Revision3 and saw a live Diggnaton in Marty's shed, met Jay Adelson who was really cool, saw all the sights of course as you see above, and a did bunch of other way cool stuff. I'm looking forward to going back.

I may need to blog about the trip after all, as I forgot how cool it was.

I guess now I'm supposed to tag other people? Who do I know that regularly keeps up with their personal blog? I'll tell you what; if you haven't posted in over a month like me, do this meme, and get blogging again.

08
Oct
2008
New Job!
9:40 PM | Comments (3)

I recently made a tough decision to leave my job of 4 years (a long time when you're only 21) and venture on to something new. In a nut shell, I'm glad I made that decision. Well, I guess you can stop reading this now, that was pretty much the whole point of the blog post. I suppose I'll elaborate...

I worked as a system administrator for a department at Virginia Tech. My supervisor was the systems analyst for the whole department we both shared responsibility of making sure all the machines are in good condition and coming to people's aide when trouble arises. That was pretty much the whole job. We handled problems ranging from major catastrophes to pressing the "Num Lock" key for people when the keypad wasn't working. I am grateful for the experience because I got plenty of practice diagnosing computer problems daily, and I even got to do code the online conference room and equipment reservation system.

But I was starting to feel I had gotten everything I could from the job, and I am at a point in life where I am supposed to be gaining knowledge and experience for "the real world." So my friend Wes told me about an opportunity at BEV Web Support Services working as a web developer. I thought this would be great since I have the most fun when I am creating websites, whether for work or for pleasure. When I would have to create websites at my other jobs (in the IT office and video office), I'd often work on them off the clock because I had so much fun working on them. So, seems like it should be my job, right?

Well so far it's going great. I'm still going through the orientation process to learn how they operate, learning a ton along the way and I actually look forward to coming into work. I'm having a blast figuring out little PHP problems and learning jQuery. I'm interested to see how this feeling progresses throughout my time there, because I still don't know what I want to do after school is over, which is quickly approaching. I was thinking of applying for grad school to get my MBA, just to have it under my belt, plus my tuition would be paid for thanks to the athletics department. But, I'm a bad student, so that likely won't happen. It's not like I'm on academic probation or anything, but probably not Pamplin MBA worthy.

Anyway, that was kind of a life-changing event, so I thought I should update my poor, neglected blog. I'm gonna try to update it more because studies have shown that people actually read this thing for some reason, and while I've blabbered on about myself this time, I'll try to update soon about my favorite iPhone apps or something else more useful.

02
Sep
2008
30 Boxes: My To-Do List Manager
9:48 PM | Comments (5)

Now that class has started back up and I'm taking 19 credits and working 2 jobs, I'm always looking for the best way to keep track of things I need to do. 30 Boxes has become my favorite to-do list manager. But that's not actually it's purpose, it's a calendar web app, but that's what makes it so great.

The most important part of a to-do list item is when the item needs to be completed. Enter 30 Boxes. Its easy, one-line calender entry and tagging lets you enter an item in seconds, then it displays it on the day it needs to be done by with color-coded tagging for a great visualization of what's ahead.

I tried using iCal with MobileMe after using 30 Boxes for a long time, but it wasn't that helpful. I realized it was because of how I used 30 Boxes. I used it to keep track of when things needed to get done by. I know my class schedule, I know when I go to work, I don't need to see it on a calendar everyday. What I needed was to put special events that aren't part of my daily schedule, which isn't worth using iCal or Google Calendar.

30 Boxes allows me to see in a glance when out of ordinary events are coming up, when homework is due, and when exams are coming up so I can get mentally prepared. It shows me weeks at a time and gives me the time of the event right there, making a week-view option unnecessary and less efficient. I know iCal and gCal have month views, but it's not quite the same.

Color coding helps you visually comprehend what kind of events are coming up. I make exams red because they're the most important. When I see red coming up, I know I need to pay attention to it and prepare. Green is for homework, so I can see how much homework I have due soon. And I usually use blue for my job at the athletics video office because we do things at weird times and it's good to expect it. And if you have something that doesn't fit on a calendar, like a "someday" to-do item, just use 30 Boxes's actual to-do list feature!

Plus 30 Boxes has an iPhone version of it's site, proving the same fast typing interface to add an item. No fooling with Calendar's scroll wheels just to enter a date and time, just type it in.

It's the little things that make all the difference.

29
Aug
2008
Second Gen Drobo: In Real Life
10:18 AM | Comments (3)

The dream that was the second generation Drobo was too good to be true. As you may have read, shortly after I got my Drobo, then they came out with the second generation Drobo that offered faster speeds and a quieter fan, two of the biggest complaints among Drobo users.

When Kevin Rose offered up 100 more coupons for $100 off the new Drobo, I couldn't pass it up again. I wanted to get rid of the noise and slowness my current Drobo offered me.

Now that it has come in and I've had some time to use it, did I get what I wanted? Nope. Here's a small breakdown:

  • Speed: I was expecting a far greater jump in speeds going from USB 2.0 to Firewire 800. Instead, I only see about a 30% increase in speeds. Shouldn't I be getting close to 80MB a second of transfer speeds? I'm getting more like 25-30MB. The increase in speed is barely noticable.
  • Noise: It's still noisy as crap. In fact, it may be worse. Instead of a soothing fan sound, I get that sound, plus a low-level hum, kind of like florescent lights. Very unpleasant.

Now the question is, do I put up with the new sounds and disappointing speeds? Or should I send it back for a refund? It seems it just was not worth the upgrade.

14
Aug
2008
And We're Back!!
11:01 AM | Comments (1)

Sorry I made everyone's feed readers freak out. Since I am a delinquent, I let my Dreamhost package expire and the entire Kevin Cupp online empire was taken offline for a few days. It was sad. I was mostly sad that I couldn't work on my new project, my moblog.

What ever happened to moblogging anyway? It used to be the thing to do when cell phone cameras came out. It's not like people stopped caring about what people have to share. Look at Twitter, Flickr, Facebook...heck, look at the internet. The only thing missing is moblogging. We need another moblogging site like TextAmerica (now offline) which was a social network, much like Twitter, where you could post an image from your phone, people could follow each other and comment on photos. I know there's sites like TwitPic, but it's just not the same, and I don't want to clutter Twitter with that stuff. I think photos would be just as interesting, if not more interesting, as Twitter.

Since I'm not up for tackling the project of creating such a large site, I'm just going to create my own moblog the way I want it set up. So far, it's going well, I just need to put the time into it to make it awesome. I'm uploading by email to Flickr to a pro account I use strictly for API purposes for other sites. Then I use PHP to grab the photos I upload and display them how I want and incorporate Disqus comments for them.

Why not just use Flickr to manage everything? I tend to think of Flickr photography and moblog photography as two different types, and I don't want to clutter my Flickr account with crappy iPhone images when I have nice images from my DSLR on there. Also, only Flickr users can comment. Plus this way, I can make my moblog do whatever I want and look however I want.

This might just be a silly idea and I'll start neglecting it because I was too delusional to see it wouldn't work, but once I get an RSS feed working, maybe put it in your feed reader and I promise I'll try to make it somewhat interesting. And if you're interested in my code, I'll probably give that out as well. Let's bring back moblogging.

08
Aug
2008
iPhone'd!
12:38 PM | Comments (3)

I got an iPhone! That's pretty much all there is to say. Now, I'm working on writing some moblogging software for the web. For those of you who remember TextAmerica, it's going to be pretty much like that, where you can take a photo, email it in, and have it show up on your site and people can comment on it. There's a few services out there kind of like that but it's not exactly how I want it, so I'm going to build something out of Flickr's API since they support email uploading, and going to try to use Disqus for comments. I hope to have it up in the next few days. It'll be pretty sweet, at least I'll think so.

04
Aug
2008
My 2.0.1 Install Progress
10:45 PM | Comments (3)

Yep, that's how my 2.0.1 install is going. How is yours going?

This is looking like a rare problem. I posted the issue on Apple's discussion boards. I've relaunched, rebooted, re-logged in, tried another computer, nothing works. If I find a solution, I'll post it here for posterity.

UPDATE: Still wasn't able to upgrade through iTunes a day later, so luckily, Taylor just got her iPod Touch in today and was able to download the update just fine, so I just took the 2.0.1 firmware off of her computer and restored it to mine. Janky and not really a fix, but if you're one in the small percentage who's having this problem, find a friend who has the firmware. I'd post it here, but you know, legal issues.