tag:blogger.com,1999:blog-21804499997334374982024-03-13T08:06:01.267-04:00Infinite DiversionsDavid McCormickhttp://www.blogger.com/profile/12303194813623890214noreply@blogger.comBlogger13125tag:blogger.com,1999:blog-2180449999733437498.post-16697466385811646312009-06-22T21:51:00.004-04:002010-08-17T11:01:03.978-04:00Making Safari 4 go "BOOM!" -- javascript styleSo I've been busy working on a project for work, and totally missed the fact that Safari 4 was released. That was until I got a bug report that my application crashed Safari 4. It wasn't that hard to work around the crash, but javascript should <span style="font-weight:bold;">NEVER</span> cause the browser to crash. Hang? Maybe, and maybe even make it slow as hell, but crash? Never. Well, maybe it could cause it to run out of memory and crash, but I mean just straight up, kick the browser in the shins and make it fall over, crash.<br /><br />Sure, we all know programs have bugs, and web browsers <span style="font-style:italic;">are</span> programs, so bugs are bound to be there. I guess I'm lucky (or unlucky) to be the one that finds one.<br /><br />So basically, this bug stems from trying to select() a text input that was orginally inside a hidden div, that was later exposed. Below is a very simple html/css/js example that demonstrates the flaw. I've also included a link to the same example, just in case you want to see it for your self. It uses jquery, but it could probably just as easily have been written with vanilla javascript, but I don't have the time to try and convert it (read, I tried quickly, and it didn't cause the crash, so I left it using jquery).<br /><br />Without further ado, the code:<br /><br /><pre><br /><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"<br />"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><br /><html xmlns="http://www.w3.org/1999/xhtml"><br /><head><br /><title>Make safari go boom!</title><br /><style><br /> .hidden { display: none; }<br /></style> <br /><script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/<br />1.3.2/jquery.min.js"></script><br /><script type="text/javascript"><br /> $(document).ready( function() {<br /><br /> $('#input').bind('focus', function() {<br /> $(this).select();<br /> });<br /><br /> $('#boom').click( function() {<br /> $('#container').toggleClass('hidden');<br /> $('#input').focus();<br /> });<br /><br /> $('#container').removeClass('hidden');<br /> });<br /></script><br /></head><br /><body><br /> <div id="container" class="hidden" ><br /> <input type="text" value="Some default text" id="input" /><br /> </div><br /> <input type="submit" value="Go Boom" id="boom" /><br /></body><br /></html><br /></pre><br /><br />And the example to <a href="http://infinitediversions.com/code/safari/make-safari-go-boom.html">make Safari 4 go boom</a>!<br /><br /><span style="font-weight:bold;">UPDATE</span>: This appears to be fixed now in safari 5.David McCormickhttp://www.blogger.com/profile/12303194813623890214noreply@blogger.com2tag:blogger.com,1999:blog-2180449999733437498.post-21114672311305965162009-02-24T12:31:00.004-05:002009-02-24T12:56:15.831-05:00Aftermath: good thing than he needsWhile I'm not one for memes either, reading <a href="http://dossy.org/2009/02/fragile-vastness-biological-destiny-to-be-hopeful/">this post</a> from <a href="http://dossy.org/">Dossy</a> convinced me to at least see what mine would be. Also, its kind of like a <a href="http://en.wikipedia.org/wiki/Mad_Libs">mad lib</a>, and I enjoyed mad libs as a kid.<br /><ol><br /><li>Go to a random page on Wikipedia: <a href="http://en.wikipedia.org/wiki/Special:Random">http://en.wikipedia.org/wiki/Special:Random</a><br />The first random Wikipedia article you get is the name of your band.</li><br /><li>Go to “Random quotations”: <a href="http://www.quotationspage.com/random.php3">http://www.quotationspage.com/random.php3</a><br />The last four or five words of the very last quote of the page is the title of your album.</li><br /><li>Go to Flickr and explore the last seven days: <a href="http://www.flickr.com/explore/interesting/7days">http://www.flickr.com/explore/interesting/7days</a><br /> Third picture, no matter what it is, will be your album cover.</li><br /><li>Use Photoshop or similar to put it all together.</li><br /><li>Post it and invite your friends to join in.</li></ol>Mine became:<br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_pQGlJjuFtrI/SaQwclmBgPI/AAAAAAAACLQ/vuw1UukxHhQ/s1600-h/aftermath.jpg"><img style="cursor: pointer; width: 240px; height: 180px;" src="http://2.bp.blogspot.com/_pQGlJjuFtrI/SaQwclmBgPI/AAAAAAAACLQ/vuw1UukxHhQ/s320/aftermath.jpg" alt="" id="BLOGGER_PHOTO_ID_5306419528635351282" border="0" /></a><br /></div><br />The random wikipedia page was <a href="http://en.wikipedia.org/wiki/Aftermath">http://en.wikipedia.org/wiki/Aftermath</a>.<br />The random quotation was this one by Mark Twain, <a href="http://www.quotationspage.com/quote/32220.html">http://www.quotationspage.com/quote/32220.html</a>.<br />The flickr image was this one from <a href="http://www.flickr.com/photos/veryscarygary/">veryscary</a>, <a href="http://www.flickr.com/photos/veryscarygary/3293541414/">http://www.flickr.com/photos/veryscarygary/3293541414/</a>.<br /><br />My only complaint, is that the images are not <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">creative commons</a>, so making the derivative work <span style="font-style: italic;">probably</span> violates the photo owners copyright. Although this <span style="font-style: italic;">probably</span> constitutes fair use, it might not. IANAL, and will be happy to remove this if the owner requests it.David McCormickhttp://www.blogger.com/profile/12303194813623890214noreply@blogger.com0tag:blogger.com,1999:blog-2180449999733437498.post-15033101815460912432009-02-02T00:03:00.003-05:002009-02-03T21:27:31.361-05:00AIM Conversation MapQuite some time ago, I wrote a simple mashup that used the <a href="http://code.google.com/apis/maps/">Google Maps API</a> and the <a href="http://dev.aol.com/aim/web/">Open AIM API</a> to show real time AIM conversations around the world. Its a bit crude, but somewhat functional, but I never took the time to throw it out there. Here it is, for anyone who is interested.<br /><br /><a href="http://infinitediversions.com/aim_map/">http://infinitediversions.com/aim_map/</a><br /><br />Before you get <span style="font-style: italic;">too </span>excited, it doesn't show what is being talked about, only conversations happening between two map endpoints (ie, city to city).<br /><br />Enjoy.<br /><br /><span style="font-weight: bold;">Update: 2/3/09</span> - Redid the above in flash, since the older javascript version was a bit buggy, and would hang firefox.David McCormickhttp://www.blogger.com/profile/12303194813623890214noreply@blogger.com0tag:blogger.com,1999:blog-2180449999733437498.post-71527371945630805572009-01-17T11:00:00.005-05:002009-01-17T13:33:56.805-05:00Who knew 802.11b would be better than 802.11gFor the last few days, I've been struggling with wifi issues. Pages would load slow and sometimes never complete. Command-R has become my new best friend in <a href="http://www.mozilla.com/firefox/">Firefox</a>, as sometimes forcing a reload will fix the issue, but only for the moment.<br /><br />Being somewhat tech savvy, I decided to investigate.<br /><br />To begin my investigation, I installed <a href="http://www.wireshark.org/">Wireshark</a>, and started a packet capture session on my wireless interface on my Mac Book Pro. I then refreshed one of my web pages, and noticed several <a href="http://en.wikipedia.org/wiki/Transmission_Control_Protocol#Ordered_data_transfer.2C_retransmission_of_lost_packets_and_discarding_duplicate_packets">tcp retransmissions</a>. This basically means a packet was lost, and had to be resent. This results in more data being sent along with taking longer due to the time waited until the loss is detected.<br /><br />Since my wired boxes didn't show the same behavior, I was pretty sure that wifi was the culprit, and that there was some new interference causing the issue. My first step was to download <a href="http://www.koingosw.com/products/airradar.php">AirRadar</a> (an access point scanner for the Mac -- you can use things like <a href="http://www.netstumbler.com/">NetStumbler</a> for the PC) and see what access points are around me (which there were many, anywhere from 5 to 10), but most are very weak signals. Of the strongest signals, most were on channels 6 and 11, so I opted to switch my router to use channel 1 (since 1, 6 and 11 are the only non overlapping <a href="http://en.wikipedia.org/wiki/List_of_WLAN_channels">channels for 802.11b/g</a>).<br /><br />Even after changing the channel, I was still having issues. We do have cordless phones in the house so I thought they might be interfering. I tried a test where I was far from the access point while the cordless phone was in use, and monitored the signal strength in AirRadar, but the signal strength and noise levels didn't change more then they normally would. I tried the same test with my microwave oven running, but no change occurred from it either.<br /><br />At this point, I thought I was out of luck. I then noticed <a href="http://ask.slashdot.org/article.pl?sid=09/01/17/0431239">this article on Slashdot</a>, and noticed the submitter commented:<br /><blockquote>I found out by accident that setting my access point to '802.11b only' mode appeared to give me a vastly more reliable connection that leaving it in 'mixed 802.11b/g.' Is this a fluke? Or does transmitting at 10 Mbps when everyone else is using 54 Mbps (for their 3 Mbps DSL pipes!) give you a true advantage?"<br /></blockquote>Since it was one of the only things I hadn't tried yet (other then wrapping my house in aluminum foil, which might get me banned from my neighborhood), I promptly tried it.<br /><br />I re-ran Wireshark, fired up Firefox and loaded a web page. Viola, no tcp retransmissions detected. While I'd love to keep the faster connection, I mainly browse the web and do a few other low bandwidth (relatively) applications over wifi, so having a stable connection is more important then having it fast, at least for now. Worse case, I can easily toggle back to 'g' mode when I need the speed, and stick to 'b' when I don't.<br /><br />If you're finding yourself having similar issues, and can do without the speed of 802.11g, see if switching to 802.11b only mode in your router will do the trick. It might not work in all cases, but it worked for me.David McCormickhttp://www.blogger.com/profile/12303194813623890214noreply@blogger.com0tag:blogger.com,1999:blog-2180449999733437498.post-29908518797745851232008-09-10T14:01:00.002-04:002008-09-10T14:04:06.081-04:00AOL Radio for Mac 2.0 beta - good, annoying song change popups - bad.I've been using <a href="http://radio.aol.com/">AOL Radio</a> 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 <a href="http://beta.aol.com/projects.php?project=radioformac2">AOL Radio for Mac 2.0 beta</a> 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.<br /><br />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.<br /><br />Dropping to a command shell, I ran 'default domains', and saw 'com.aol.radio.desktop'.<br /><br />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.<br /><br />Looking in '/Applications/AOL Radio.app/Contents/Resources' turned up a plist file that contained:<br /><br /><div style="margin-left: 40px;"><?xml version="1.0" encoding="UTF-8"?><br /><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/<br />PropertyList-1.0.dtd"><br /><plist version="1.0"><br /><dict><br /> <key>show_nowplaying_overlay</key><br /> <true/><br /> <key>update_notice_current</key><br /> <true/><br /> <key>update_notice_all</key><br /> <false/><br /> <key>log_verbosity</key><br /> <integer>0</integer><br /></dict><br /></plist><br /></div><br />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.David McCormickhttp://www.blogger.com/profile/12303194813623890214noreply@blogger.com0tag:blogger.com,1999:blog-2180449999733437498.post-52496964664382241472008-08-27T12:51:00.001-04:002008-08-27T12:51:15.236-04:00So that is what nameservers are forSo <a href="http://infinitediversions.blogspot.com/2008/08/latency-issues.html">after by BBS snafu</a>, 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.<br /><br />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.<br /><br />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).<br /><br />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.<br /><br />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.<br /><br />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.<br /><br />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.<br /><br />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.<br /><br />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:<br /><br /><div style="margin-left: 40px;">Your IP address is x.x.x.x.<br />Gateway IP adress is y.y.y.y.<br /></div><br />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.<br /><br />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?<br /><br />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. <br /><br />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.David McCormickhttp://www.blogger.com/profile/12303194813623890214noreply@blogger.com0tag:blogger.com,1999:blog-2180449999733437498.post-60231214405647219342008-08-26T22:44:00.001-04:002008-08-26T22:44:00.403-04:00Latency issuesA 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.<br /><br />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.<br /><br />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).<br /><br />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.<br /><br />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<br /><br /><div style="margin-left: 40px;">open sunsite.unc.edu<br />cd pub<br />ls<br /></div><br />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<br /><br /><div style="margin-left: 40px;">open sunsite.unc.edu<br />cd pub/somesubdir<br />ls<br /></div><br />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.<br /><br />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<br /><br /><div style="margin-left: 40px;">open sunsite.unc.edu<br />cd pub/somesubdir/anotherdir/andanother/demos/<br />bin<br />get cooldemo.zip<br /></div><br />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.<br /><br />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.David McCormickhttp://www.blogger.com/profile/12303194813623890214noreply@blogger.com0tag:blogger.com,1999:blog-2180449999733437498.post-32213269175095555322008-08-18T20:06:00.001-04:002008-08-18T20:06:02.403-04:00Happy anniversary to meToday 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.<br /><br />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.<br /><br />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 (<span style="font-style: italic;">yes, it has a timestamp</span>) and marks the first time our web complex served up 3,000,000,000 (<span style="font-style: italic;">yes, that is correct, 3 billion</span>) urls in a single <span style="font-weight: bold;">DAY</span>!<br /><br />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, <a href="http://www.comscore.com/press/release.asp?press=2337">according to comScore</a> Americans conducted 11.5 billion searches for the <span style="font-weight: bold;">MONTH</span> 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 <span style="font-weight: bold;">9 YEARS AGO</span>. 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.<br /><br />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.David McCormickhttp://www.blogger.com/profile/12303194813623890214noreply@blogger.com0tag:blogger.com,1999:blog-2180449999733437498.post-34516441048129906732008-08-15T09:13:00.001-04:002008-08-15T09:13:06.784-04:00And for you my good man, a shiney nickelI 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.<br /><br />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.<br /><br />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).<br /><br />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).David McCormickhttp://www.blogger.com/profile/12303194813623890214noreply@blogger.com2tag:blogger.com,1999:blog-2180449999733437498.post-57707994214960326962008-06-03T12:50:00.001-04:002008-06-03T12:50:10.722-04:00And 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 <a href="http://www.emachines.com/support/product_support.html?cat=Notebooks&subcat=M-Series&model=M6805">eMachines (don't laugh) M6805</a>. It's original specs aren't too shabby:<br /><ul><li>AMD 64 3000+ Processor<br /></li><li>512 Mb Ram</li><li>60 Gb HD (4200 RPM)<br /></li><li>ATI Radeon 9600 /64Mb</li></ul>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 <span style="font-weight: bold;">TOO SMALL </span>and while I've lived with it all this time, it's always been a thorn in my side.<br /><br />Today, no more. I've made the plunge to replace my laptop with something to (<span style="font-style: italic;">hopefully</span>) 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 <a href="http://www.apple.com/macbookpro/">MacBook Pro</a>. I still own an old G3 iBook, but its long past its prime, and it <span style="font-style: italic;">used</span> 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:<br /><ul><li>17" MacBookPro</li><li>2.5Ghz Intel Core 2 Duo</li><li>4GB 667Mhz DDR2</li><li>NVIDIA GeForce 8600M GT / 512MB</li><li>250 GB 5400 RPM HD</li><li>And the best of all, an upgrade to the 1920x1200 Hi-res display.</li></ul>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.<br /><br />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.David McCormickhttp://www.blogger.com/profile/12303194813623890214noreply@blogger.com0tag:blogger.com,1999:blog-2180449999733437498.post-21074933890313270882008-03-19T18:48:00.003-04:002008-03-19T19:29:20.151-04:00Ads, ads, everywhere and not a one to click<div style="text-align: justify;">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.<br /><br />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.<br /><br />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:<br /><br /></div><ul style="text-align: justify;"><li>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.</li><li>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.</li><li>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.</li><li>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.</li><li>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.</li><li>How many credits to charge and what "value" (money wise), is all up to the site and ad network.</li></ul><div style="text-align: justify;">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.<br /><br />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.<br /><br />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.<br /><br />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."<br /><br />Or maybe they already have.<br /><br />EDIT: Bah, don't forget the title.<br /><br /></div>David McCormickhttp://www.blogger.com/profile/12303194813623890214noreply@blogger.com0tag:blogger.com,1999:blog-2180449999733437498.post-24376293019595531802008-03-03T17:24:00.008-05:002008-03-03T18:59:12.575-05:00The music revolution has begun<div style="text-align: justify;">The music industry has long lost me as a consumer. I haven't bought a cd in quite a while (<span style="font-style: italic;font-size:85%;" >although my wife has bought several over the years, so I guess they get my consumer dollars by proxy</span>), but with the release of Ghosts I-IV by Nine Inch Nails, I might start looking again.<br /><br />As an ex-consumer, I want DRM-free music. I don't want crippled CD's. I don't want lossy formats (<span style="font-size:85%;"><span style="font-style: italic;">well, maybe I do, but if so, I'll make them</span></span> <span style="font-style: italic;font-size:85%;" >lossy</span>). I don't want to pay for a CD full of crap just to get one or two good songs. I've purchased a few songs from iTunes, but even then, you get shoe-strung into having to deal with DRM'd music, and having to do the BURN-RIP dance to get some other format, and again you lose quality (<span style="font-size:85%;"><span style="font-style: italic;">albeit my bad ears can't detect it</span></span>), just to use the music you paid for.<br /><br />As an ex-consumer, I put the music industry on notice. I've paid NIN $5, not so much for their music, but for their support in standing up for themselves and their consumers. If I can get a chance to actually download what I paid for, I'll probably have a change in heart as to why I shelled out $5. For now, I'm just happy to support the revolution.<br /><br />As times and technologies change, so must the industries. As the horse and buggy was replaced with the automobile, so were the industries that supported it. Its time the music industry (<span style="font-size:85%;"><span style="font-style: italic;">and you too, movie industry, your time is coming, too!</span></span>) started to do more to embrace this change. Give people an affordable product that is <span style="font-weight: bold;">WORTH PURCHASING </span>and you will have happy consumers for life. It's time to move past the cd era of music, and embrace digital online distribution. I don't believe that moving to digital online distribution will kill the music industry. Quite frankly, I belive the opposite. The longer they wait, the more artists will realize that jumping ship will net them better gains and cut out the middleman. Also, I don't believe that offering DRM-free music will fuel the P2P crowds. I am a firm believer that a good majority of the P2P users fit into 2 categories:<br /></div><ol style="text-align: justify;"><li>They won't pay for music regardless of the price, and as such, no matter how much you charge will not affect them one bit. They will always get it for free no matter what, as long as its available.</li><li>The other group can't find what they deem as being affordable music (<span style="font-size:85%;"><span style="font-style: italic;">and affordable doesn't just mean price, but getting good value out of what they are paying for as well. 99c for a song from iTunes may be "affordable", but having DRM restricting usage quickly erodes that value</span></span>).<br /></li></ol><div style="text-align: justify;">So what does this mean for the music industry? Their attempts to <span style="font-weight: bold;">litigate</span> P2P users out of existence, just isn't going to happen. The more they do so, the more people will just hate them for it, and the more customers they will alienate. What they need to do, is move to a business that convinces P2P users to leave <span style="font-style: italic;">voluntarily</span>. They won't be able to convince them all to leave, but it's my belief that a good majority of those in the #2 category will, and without a large enough member base, the P2P users are less likely to find what they want, making the networks less useful for finding music.<br /><br />For those of you out there that want to join the revolution, help show the music industry that change is inevitable, and that change is now.<br /></div>David McCormickhttp://www.blogger.com/profile/12303194813623890214noreply@blogger.com0tag:blogger.com,1999:blog-2180449999733437498.post-75043631161410629062008-02-25T13:02:00.003-05:002008-03-03T18:42:29.712-05:00Kick things off<div style="text-align: justify;">First off, Im not really what you'd call a writer or a blogger. I'm a geek, and sometimes geeks have to write. For me, I mostly write code. You pick the language, I've probably written in it.<br /><br />So what will you find here, and why would you want to come back? Who knows. I have no clue where this will go. I'm very much into the web, technology, computers, gaming, so I'm sure those topics will come up from time to time. I also have an autistic son, so there will probably be a post or two about him as well, although typically my wife blogs more about the family stuff, so Ill probably stay technical when I have the time.<br /><br />I know I'm late to the blogging scene, but I guess "better late than never." I guess I've never really taken the time, so let's see how this plays out, and whether I'll find the time (and energy) to keep this thing going.</div>David McCormickhttp://www.blogger.com/profile/12303194813623890214noreply@blogger.com0