Blog
Spoofing User-Agent in Chrome
A recent project at Bocoup had me searching for ways to programatically modify the user-agent string in Chrome. Searching the web yielded little evidence that this was possible, but luckily, I have a friend who works on Chrome. He clued me in to the WebRequest API, and I got to work creating my extension.
If you want to try it out, you can download it here. If you’re interested in the technology, you can read about the code in an article I wrote for the Bocoup website.
Blog
The Strategy Pattern in JavaScript
I’ve been working with Rick and learning a bunch about what makes JavaScript so great. While refactoring some of my work in a code review, I recognized the Strategy pattern emerging.
I wrote my first article for bocoup.com about employing this pattern in JavaScript. You can read it here.
I have to say, though, that writing this article gave me a lot to think about in regards to classical design patterns and their implementations in JavaScript.
Blog
Working at Bocoup!
I am excited to announce that I have accepted a full-time position at the web development house Bocoup! I’ll be commuting to “the Loft” in South Boston beginning in June, and I can’t wait to get started!
Watch this space for links to articles I write based on my work there.
Blog
GrooveGrabber: My First Chrome Extension
A while back, after playing around with Firebug, I developed a method for saving streaming media delivered by Grooveshark.com. Since then, I have been thinking about ways to share this method with other people. I had some spare time this weekend, so I implemented the approach in a Google Chrome extension. You can download it here.
Boris’s work with Chrome fueled my initial interest. As it turns out, programming extensions for Chrome is extremely easy!
Blog
Using Prototype (and ensuing difficulties)
Now that classes are over and my website is (mostly) done, I have the time to go back and review the code I wrote for the shared workspace. It was well-commented, but the code itself could use some legibility improvements. Plus, there are some interesting patterns I would like to try and apply, the simplest of which is the Constructor Pattern.
While writing the code, I was wondering about the performance cost incurred when many instances of the same type define the same functions.
Blog
Do I Really Need RAID?
I’ve been thinking about running a RAID setup for a long time. Each time I upgrade my hard drive, disk failure becomes more scary. While building my new PC, I finally came to my senses.
Ever since my media collection grew past a few gigs, the thought of losing it has worried me. It’s taken a lot of time to accumulate this stuff, after all! A RAID-1 (or even better, RAID-5) setup would eliminate all my worries, wouldn’t it?
Blog
A PHP Helper for HTML5 Video
Video for Everybody! inspired me to include video content in this site. I wrote a simple PHP script to output valid HTML. I then generalized the script, hoping someone else out there might find it useful.
To make things more interesting, I’ve decided to try out GitHub. The code can be found at: https://github.com/jugglinmike/PHP-Video-for-Everybody. See the README file for use instructions, and please fork!
Blog
Building a Briefcase Server
When beginning my sophomore year at RPI, I thought it was about time I built my own computer. My trusty Thinkpad was still serving all my personal computing needs, but I was starting to envision fun uses for a dedicated server. My jet-setting college lifestyle necessitated that the computer be built into an aluminum briefcase for easy transport.
Buying Even though it was my first computer build, I knew the assembly of the computer would be simple.
Blog
Search Query Haikus
Introduction In the fall of 2009, I studied Applied Machine Learning at CMU under Carolyn Rose. As a final project, I analyzed a leaked AOL search query dataset. After that class, I continued working with the data to identify unintentional haikus in users’ search histories.
Machine Learning My Machine Learning project concerned identifying patterns in search behaviour. While the data set does not contain personally-identifiable information (at least not directly), it does group queries by user.