For the past five years of my life, I’ve been a web developer. I’ve written probably a million lines of code and have developed at least 5 distinct medium to large-scale web applications or sites. Despite my accomplishments, whenever I get around other web professionals I feel like I don’t belong. Couple this with the quality of both the attendees and speakers at An Event Apart in Seattle, and I felt downright stupid. Everywhere I went, I saw lanyards containing some of the biggest names in the industry: Facebook, Microsoft, PageRank, and THQ. In this sea of giants, of people who have changed the face of the web, who was I? What had I accomplished? Did I really deserve to be here, or was my attendance simply a matter of paying for a ticket? Am I a fraud? That last question was the one I had to answer if I was going to truly gain anything from this conference. Read more
Archive for Programming / Web Development
Adding Shift+Click Multi-Select Capability to the SuperBoxSelect Plugin
When I began using the SuperBoxSelect plugin at work, things went from good to awesome pretty damn quick. SuperBoxSelect offers a lot of great features that standard combo boxes don’t as well as directly integrating with the rest of ExtJS so you can do cool things like tie them to a JsonStore and write custom event handlers. Unfortunately, this plugin does support a commonly used feature among standard combo boxes: Shift+Click Selection. Read more
Simplifying the Google Charts API with a Wrapper Class (0.1 Alpha Release)
Google has a habit of making really cool API’s to do really cool things. They also have a habit of making those API’s complicated and hard to memorize due to the overwhelming amount of parameters and commands that you can use to perform a given task. My programming goal for this week was to begin work on a library that would allow me to quickly and easily generate Google Image Charts as well as switch a chart from one type to another with minimal recoding. While I wasn’t able to complete the task by the time I needed to start writing about it, I was able to get a solid enough start to feel comfortable sharing what I have so far.
Prototype: Reading Metadata from a Shoutcast Stream (First Attempts)
As a programmer, I listen to a lot of techno music. Recently, I began wondering if it’d be possible to parse the data from the Shoutcast streams using PHP just like Winamp or Rythmbox. So far, I haven’t been very successful. For now, I’m going to dump what code I have in attempt to chronicle where I’m at with this project as well as put the word out to there and see if anyone can help me out. Read more
Add Event Listeners to ‘Play’ and Other Media Events Using Sencha Touch
Recently, I was working on a side-project that involved allowing the user to press play and listen to a sample track from a list of tracks on their iPhone. While this functionality works great when the user is on WiFi, the delay between pressing ‘Play’ and hearing the song on a 3G connection makes the application feel sluggish and non-responsive. My first idea was to add an event listener to the ‘play’ event (or something similar) and show / hide some sort of loading message when the user selects ‘play’. Unfortunately, the Sencha Touch API doesn’t support any such event. However, there is a way around this. Read more
TorrentFiend: A Lesson in File Manipulation Using RSS, SQLite3 and Ruby
Back when I was in college, I didn’t have cable or even a TV. In order to stay entertained, I relied heavily on bittorrent to keep up with my favorite free and totally legal to download shows like, *ahem* Found and How I Lost Your Father. Unfortunately, with my busy work/class schedule I didn’t have time to surf my favorite torrent site and download the latest episodes of all the shows I watched each week. To combat this problem, I wrote a small perl script that ran during the week, checking an RSS feed for new episodes of each show. Now, as part of my goal to learn Ruby, I’v converted the script into Ruby and have decided to release the code publicly for those who would like a better understanding of how Ruby reads and manipulates RSS data. Read more
Finishing what you started: Completing (and Releasing) Those Weekend Projects
Weekend projects are a common occurrence amongst corporate programmers. These (often) nocturnal endeavors give us a chance to learn new languages as well as develop thingFinishing what you started: Completing (and Releasing) Those Weekend Projectss that aren’t otherwise “work approved.” Unfortunately, despite a copious amount of caffeine and plenty of good intentions, many of these projects remain unfinished often weeks or months after we started them. So what, exactly, are the underlying causes of this code procrastination?
Problem: We Are Our Own Worst Client
We’re demanding, stubborn, and believe we’re always right. We change our mind every 10 minutes, altering the code and its purpose with every new idea that floats into our head. Developing for an ever-changing list of requirements, our application becomes a jumbled mess of half-baked ideas and half-finished features. We are our own worst client.
Read more
How to Read and Improve the C.R.A.P Index of your code
When I first started using PHPUnit to test my code, I ran across a statistic I had never seen before: the C.R.A.P index. After doing a little research and asking the right questions, I was able to get a firm grasp on what the C.R.A.P index is and what it means for my code. Read more
Format Time “Twitter-Style”
When you post a Tweet, it get’s timestamped with something like “posted 20 minutes ago”. If you’d like to replicate this behavior in PHP, here’s a function you can use: Read more
Using RMagick and The Envato API to Make Dynamic Images
Not too long ago, I began my first solid attempt at learning Ruby and decided that my first project would be to combine data from the Envato API with RMagick to create a collage of thumbnails from some of the more popular images on GraphicRiver*. I figured it would be fun to take the time to walk you through some of the code I used as well as share my thoughts on my first major Ruby experience.
Assumptions
I’m going to assume that you already have a development environment set up that allows you to run Ruby from the command-line and have successfully installed RMagick. If you need instructions on how to do this, you can visit the Downloads page of the Ruby website and the RMagick website. I’m also going to assume that you have a firm grasp of the Ruby-language syntax. Don’t worry, I’ll offer clarification on any parts of the code I considered to be unorthodox. At the end of the blog post, I’ll be posting links to the complete code including the API wrapper I wrote, documentation, unit tests, and the code samples written directly in this blog post. Read more









Recent Comments