Wednesday, September 10, 2008

AOL Radio for Mac 2.0 beta - good, annoying song change popups - bad.

I've been using AOL Radio for Mac 1.2.1 for a while, and was somewhat disappointed when I found out it was being discontinued. I decided to take the plunge and get the AOL Radio for Mac 2.0 beta version, even though it was a beta. It didn't pick up my presets from 1.2.1, but since I only had two saved, it wasn't that hard to redo them. The sound was just as good (as streaming music goes), but there was one very annoying feature that bugged me.

At every song change, it showed a little 'popup' of the new song and title. It was cool at first, but soon got very annoying. A quick check and I found out there was no preferences for the app. Zero, zilch, nada. There has to be some way to turn this off.

Dropping to a command shell, I ran 'default domains', and saw 'com.aol.radio.desktop'.

Running 'default read com.aol.radio.desktop' dumped my presets and a bunch of other info, but nothing that indicated what would change this annoying popup behavior.

Looking in '/Applications/AOL Radio.app/Contents/Resources' turned up a plist file that contained:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/
PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>show_nowplaying_overlay</key>
<true/>
<key>update_notice_current</key>
<true/>
<key>update_notice_all</key>
<false/>
<key>log_verbosity</key>
<integer>0</integer>
</dict>
</plist>

I changed both the <true/> values to false (although I probably only needed to change the 'show_nowplaying_overlay' one), and then restarted the app. Vioila, no more annoying song change popups.

Wednesday, August 27, 2008

So that is what nameservers are for

So after by BBS snafu, I called up the local ISP the BBS was using to get my own account. The nice sales woman that I spoke to told me they had two different account plans. The first one was what she called a "term" account, which included 50 hours per month for $25. The also had a "slip" account, which was $30 per month.

Not knowing the difference, I asked about them. She explained that the term account was command line based, where you would get access to a text based menu and shell access. The slip account was graphical, and required Windows. Being the geek that I was, and not knowing why I would need a "graphical" internet, and also because the term account was $5 cheaper, I opted for the term account.

After setting up my account, she gave me the information I needed to login over the phone. It was pretty simple really. I had a local access number that I would dialup with my favorite terminal software. Once connected, I would be presented with a username and password prompt, and once that was confirmed, I would be presented with a "Command:" prompt. At this, I would type "term", and it happily landed me with a connection to "larry", which was their shell host. Later I learned they also had machines named "moe" and "curly" (I smell a theme here).

So there I was with a nice text menu that would launch unix programs for me, like 'elm' and 'pine' and 'rn' and 'tin'. All the email and newsgroups I had before, were right there. I also had access to things like 'gopher' and this new thing called the world wide web, through some program called 'lynx'. It was amazing, and even more so, there was 'ftp'. After my experience with the ftp email gateways, I just had to jump in and try it out. So I launched it, and it asked me for a hostname. I told it, "sunsite.unc.edu". A few lines of output, and I was staring at an "ftp>" prompt.

Could it happen this quickly? I thought not, so I tried "cd pub" followed by "ls", just like in my very first email from before. Almost instantly, a directory listing scrolled down my screen. Not 24 hours later, but now. Wow! This was exactly what I wanted. With this, I could grab files, and using zmodem, download them directly as binary. No more uuencoding/decoding. I was in heaven.

I played around for a bit, and noticed a menu item called "Exit to shell". I'd pretty much tried all the other commands, so I figured I'd give this a whirl. It dropped me to what looked liked a dos prompt. It also printed a few lines about some common commands to use, and how to get back into the menu if you get stuck or lost. They also had aliased many of the dos commands to their unix equivalents, so DOS geeks like me would feel right at home until we got our unix feet wet.

While experimenting, I learned about a wonderful unix command called "man". The "man" command would give you a "manual" for any command you needed help with, and being the newbie that I was, I needed help with everything. I was reading the man page for every command I knew, and learning about even new commands. Day after day, I would login and spend my time reading more and more man pages. My first month's 50 hours were almost entirely spent reading man pages. I was slowly becoming a unix expert, or so I thought.

Every once in a while, I'd learn something in a man page about the filesystem layout. I learned about /etc, and unix configuration, and would explore the filesystem learning where things lived. I found out that this same box also hosted an ftp site that contained the software used by the "slip" customers.

One day, when I logged in, I was staring at the "Command:" prompt, and about to type "term" when I thought to myself, "I wonder what the slip users type here, or if maybe they use something else?" I thought, just for grins, "What if I type 'slip' here instead of term?" I figured, worse case, I would get something like 'invalid command', and would be asked to try again. I was amazed when instead, I was greeted with something like:

Your IP address is x.x.x.x.
Gateway IP adress is y.y.y.y.

Hmm, could it be this easy? I disconnected, and reconnect as a term user. Using nslookup, I found out the ip address for larry. I used zmodem to download the slip software package, and installed it under windows. When I dialed back in using it, I was connected. They had a "term" program called "telnet", and using the ip address of larry, I was able to get to my shell. Even better, I could open multiple "telnet" windows at the same time.

Then I discovered they had this thing called 'cello' a world wide web browser. I fired it up, and went to a site (can't recall the name, so ill just use sunsite.unc.edu as an example), but was somewhat disappointed when all I got back was some error saying it "couldn't resolve the hostname sunsite.unc.edu". Figuring something wasn't configure correctly, I looked at the slip software settings, and found there were some empty fields called "nameservers" and also found there was a file called "hosts". I seem to remember reading about them in the man pages, but wasn't exactly sure what they were. And of course, since I was a "term" customer, I couldn't really call tech support asking for "slip" help, now could I?

Determined to get this working, I did an 'nslookup sunsite.unc.edu' in my term window on larry, and it came back with an ip address. I cut-n-pasted the host/ip combination into my local hosts file. I did a reload in cello, and viola. A page started loading. This was amazing. There was text and IMAGES. I was awestruck, I would click on the links and browse around the site, and eventually, it would take me to some other host name I didn't have. I would then repeat my process of nslookup, cut-n-paste, and reload and continue browsing.

This was my normal process for a few weeks, until I realized the magic of nameservers. Instead of the host file, I could put  the ip address of the ISP nameservers in and all the lookups happened for me, and was near instantaneous. Personally, I was more then happy to have to do the trick I was doing, but was ecstatic about having it happen automatically. Starting to feel bad about taking advantage of using "slip" as a term user, I emailed their support and told them about it. They said they would look into, and on my next bill, I noticed I was made a "slip" customer at the "term" price, so I couldn't be happier.

Tuesday, August 26, 2008

Latency issues

A few weeks ago, I was talking to a friend about how I got started with computers and it reminded me of a few interesting stories I thought I'd share.

They both take place sometime in 1994, although I can't recall exactly when. The first of the two I'm posting below, and the second one I'll follow up later (soon), but it's a bit too late tonight.

I had an account on a local BBS that provided internet email and Usenet newsgroups via UUCP from a local ISP. Keep in mind, back then I didn't really know what UUCP or an ISP was, but I did vaguely know what email was since we could send "mail" to other members of the BBS, and even to a loose group of other BBS's ( I think it was FidoNet).

I dove head first into reading the newsgroups, and found a wealth of information and discussions that just wasn't possible on a local BBS. Back then, I was really into the demo scene, and dabbled in programming in C and Intel 80x86 assembler, trying to eek out what I could from a slow VGA card. One day, while browsing the newsgroups, I found out some demo was released, and I wanted to "get" it, but alas, it wasn't on the "files" section of the BBS. No worries, one of the newsgroups mentioned I could download it via ftp from something called "sunsite". I had no clue what ftp was, but I knew the only "internet" i had was newsgroups and email, and hoping to find it on alt.binaries wasn't an option, since the BBS didn't carry them.

To my rescue, I had learned about something called "ftp email" gateways. Since I did have access to email, I thought I'd give it a try. I read up on ftp, and learned the magical mysteries of the 'open', 'cd', and 'ls' commands. I created a new email to be sent to the gateway. In the body, I put

open sunsite.unc.edu
cd pub
ls

and hit send. And then I waited, dialing back in couple hours to see if I had a reply. When it finally came (some 24 hours later or there abouts), I had a nice directory listing of, yet again, more directories. A new email was crafted, this time with

open sunsite.unc.edu
cd pub/somesubdir
ls

and it was sent off, taking yet again, another 24 hours or so to get a response. Later I found out that the UUCP link only happened twice a day, and by the time my outbound mail made it across the link, and into the ftp email gateway server, the response would have to wait for the next UUCP session before I would see it, making it a guaranteed 12 hour latency, but since I didn't know when the window was, it was pretty much always the next day for me.

Now lets fast forward a few more days, and a couple more subdirectory traversals, and I finally get to the file I want to download. So I type the magical

open sunsite.unc.edu
cd pub/somesubdir/anotherdir/andanother/demos/
bin
get cooldemo.zip

and hit send. The next day, I anxiously awaited for my email. When I logged in, sure enough, there it was. I was all too excited, but the tears of joy after almost a week to back and forth emails quickly became tears of sadness. The file was sent UUEncoded, and I was without a UUDecoder. Had I not been so distraught over all the time I had spent, I probably could have written one myself, but for the time, I simply saved the file, hoping that soon I would figure out how to decode it.

Later that same day, my phone rang. To my surprise, it was the sysop from the BBS. Somehow, my huge download (it was about 1M  back then, after being uuencoded) caused his UUCP usage for that day to skyrocket. Normally, he would only have a few 100K (I seem to recall it being less than 1M), so my one little email caused his traffic to double. Of course, this alarmed him, and after he poked around, it was pretty easy to figure out I was the cause. In any case, he was really nice about it, and we chatted a bit about the internet, and he explained to me about UUCP and who his ISP was, and how I might really want a real account. So later that day, I called up the ISP, and got my first internet account. But that will be another story.

Monday, August 18, 2008

Happy anniversary to me

Today marks my 11th year working for AOL, and this Saturday, August 23rd, will be my 36th birthday. This means I've spent roughly 30% of my entire life working for one company. Since I've been working a full time job since I was 20, this translates to almost 69% of my full time work experience has come from here.

The last 5 years (since the summer of 2003) I've been a full-time remote employee, working from my home in south-eastern Virginia, which means I have a home office filled with computers, books, and more junk then most people should have in an office. It also means I don't have a custodial service like most office buildings have, so I get to play custodian from time to time, and clean up the mess I make. Today is one of those days.

While cleaning, I noticed a plaque I have hanging on my wall that I received way back in 1999 for my work on the Internet Operations team for helping scale out our web infrastructure for our members. This plaque is dated Aug 29th, 1999 23:44:30 EDT (yes, it has a timestamp) and marks the first time our web complex served up 3,000,000,000 (yes, that is correct, 3 billion) urls in a single DAY!

One thing I didn't realize when I came to AOL, and something a lot of people take for granted, is the level of scale we have to deal with on a day to day basis. To put those above numbers in perspective, according to comScore Americans conducted 11.5 billion searches for the MONTH of June 2008. Last time I checked, June had 30 days, so that works out to approximately 384M searches per day, or roughly 1/8th of the number of web requests we handled 9 YEARS AGO. Now granted, handling a web request isn't the same as doing a web search, but it (at least in my opinion) is a pretty good comparison of real world large numbers.

Granted, I'm sure those numbers aren't quite as impressive now. Since we've switched to an ad supported revenue stream, and our dialup membership numbers have declined, but I'm still in awe to look back and think of what we accomplished.

Friday, August 15, 2008

And for you my good man, a shiney nickel

I was looking over my bank statement online, and noticed something I thought was quite peculiar. My wife had taken out $100 from an ATM not run by our bank, and I noticed the amount of the withdraw was $102.05. This, in and of itself, wasn't too strange, since most ATMs charge a fee for withdraws of non-customers, but what was strange was the $0.05.

This got me to thinking. Why the extra nickel? Did someone mean to put in $2.50 and fat-fingered it as $2.05, and no one ever noticed? Maybe as the US economy goes down the toilet, someone figured charging an extra nickel would make a difference to their bottom line. No, I had to think it more nefarious then either of those.

My brain decided (since Im a programmer by trade) that whoever wrote the software for this ATM must have done it. Imagine you get the software contract for a major ATM vendor. When each withdraw happens where a convenience fee is collected, you add $0.05 to it. You could display the normal fee, but charge the slightly increased one. Most customers would probably just ignore the fact that they were charged an extra nickel (I know I did, my wife couldn't even remember what the fee was). You create some account offshore, depositing the extra nickel into, while the real fee goes back to the bank for the ATM. If you process 10K transactions per day, across all the ATMs running this software, you'll net $500.00 per day, or  just over $180K per year. Not bad change for doing nothing, and I'd bet that the number of transactions would be closer to 100K per day (if not even higher).

No one would probably ever catch on, since who's going to take the time to chase down some lost nickel? I know I wouldn't (blogging about it is a different story).

Tuesday, June 3, 2008

And a shiny new laptop, FTW!

Since I telecommute full time, I've always kept a laptop for my trips up to the office, and also because its nice to have something to curl up with on the couch (besides my wife) during TV time so I can both veg out and try and be productive/creative at the same time. My current aging laptop is an eMachines (don't laugh) M6805. It's original specs aren't too shabby:
  • AMD 64 3000+ Processor
  • 512 Mb Ram
  • 60 Gb HD (4200 RPM)
  • ATI Radeon 9600 /64Mb
But it's a far cry from a decent laptop by today's standards. Since purchased, I've bumped the ram to 768M and the HD has been replaced with a 120G 5400 RPM drive when the old HD bit the dust. The biggest drawback is that it's screen is a paltry 1280x800. It's just TOO SMALL and while I've lived with it all this time, it's always been a thorn in my side.

Today, no more. I've made the plunge to replace my laptop with something to (hopefully) last me for the next few years. I've made the plunge to replace my old eMachines windows XP clunker, with a nice new, shiny, fast MacBook Pro. I still own an old G3 iBook, but its long past its prime, and it used to be my means of testing webpages on OS X until work upgraded my older linux box to a Mac Pro. I've spec'd out the following:
  • 17" MacBookPro
  • 2.5Ghz Intel Core 2 Duo
  • 4GB 667Mhz DDR2
  • NVIDIA GeForce 8600M GT / 512MB
  • 250 GB 5400 RPM HD
  • And the best of all, an upgrade to the 1920x1200 Hi-res display.
My current desktop (with the 19" clunker CRT it still has) runs at 1600 x 1200, so this will beat out even that for screen real estate.

If you can't tell, I'm a bit impatient and trying to stave it off. Maybe Ill even blog more once I have it since it wont feel like such a chore on this laptop.

Wednesday, March 19, 2008

Ads, ads, everywhere and not a one to click

It seems every time I turn around, I keep seeing another article about some company that depends on online ad revenue to "adjust" (thats corp-speak for lower) its outlook, or advertisers complaining that ads on the web just don't cut it and have little value for what they cost.

As a web consumer, I'm not a big fan of ads (as the big red ABP stop sign in Firefox so diligently reminds me). I've gotten used to ignoring them for the most part, just like most everyone else on the web. For me, I've mainly blocked them for one reason: When I go to a site, its for the site's content. When I'm sitting there waiting and glance down at the status bar and see "Waiting for ads.someslowadnetwork.com", and the page doesn't load because of it... I'll either move on or block the ad. I recall an old adage that the "fastest bits are the ones that never make it to the wire" and I enact that.

So, what do we do about this? Ads aren't going to go away, but its obvious with things in a decline on both sides, that something isn't working. Here is my thought:

  • A user visits "somecoolsite.com" and gets a page with no ads. They require you to login, but instead of you having to register, you submit your OpenID, and you are in. As a new user you get to browse the site, and it might have ads on it, or it might not. It might have some features disabled, or some other limiting factor, but you get in.
  • The site talks about some "cooladnetwork.com" site, and how you can "subscribe" to their site and view their ads and in turn, earn "credits" to "somecoolsite.com" to unlock features, or get no ads.
  • The "cooladnetwork.com" site also takes your OpenID, and lets you build a profile. You can tell them as much or as little about yourself as you want. Your age, sex, income bracket, likes, dislikes, all the nice shiny things that advertisers want to know about you to better target you with ads.
  • Now here's the trick, the more you tell them, the more valuable you are, and the fewer ads you need to see to earn credits to "somecoolsite.com". The other thing is that since you can tell them what you want, you are more likely to get ads that you might be interested in, and that is a win-win for both consumers and advertisers.
  • When you run out of credits, its a quick jump to "cooladnetwork.com" to view your account, do a nice transfer of funds to "somecoolsite.com" and your back in business.
  • How many credits to charge and what "value" (money wise), is all up to the site and ad network.
The nice thing is, I get to view ads on my schedule, they don't interrupt my content (either by making it slow, or by bloating the layout), and both the site and advertisers get more value for the ads.

Now there is one big caveat to all this... Privacy. Now obviously advertisers already do tricks with cookies and other things to try and know as much about you as they can. At least this way, its up front, and YOU control how much info is known. When the advertiser wants to pony up an ad, they specify the demographic: males, 18 - 25, 25K+ who like cars. When you see this ad, they don't know that YOU saw it, just that someone in their demographic saw it. There could even be a weighted formula for just how good a fit that I am in based on how far outside the curve I am for their statistics if they want to have people that are "close" to the demographic, but just outside.

The site could even show the ad along side a captcha to make sure the ads are being seen. Imagine something like: Who is the advertiser in the above ad? or some other question that has to be answered, and could easily be done so by looking at the ad.

Maybe one day this will be a reality instead of only words on a web page. Or maybe someone will stumble across this entry and say... "Wow, thats a great idea, here's some mega-bucks, now go build it." Or maybe they'll say, "What a novel approach, maybe you should patent it."

Or maybe they already have.

EDIT: Bah, don't forget the title.