Archive for the ‘Web Development’ Category

tweetpoint.me

Sunday, March 8th, 2009 by Bobby Whitman

Have you ever been on Twitter and read something from a follower and thought, YES! that is awesome. Maybe they said something hilarious, maybe they did something cool, or perhaps they found a really good link. As a result of this, a natural reaction is to want to give them credit, award them in some way.

The other side of the coin is also true. When someone makes a bonehead mistake or a jackass comment, who doesn’t want to knock them down a peg?

Enter tweetpoint.me. I created tweetpoint to quantify these notions. By sending a twitter reply to both @tweetpoint and @someone you can award (or takeaway) a point to this person. The syntax is simple:

@tweetpoint @whitman +1 for creating tweetpoint.

@tweetpoint @whitman -1 because tweetpoint sucks.

You will notice that after the point value I have added context to the action. This will make watching the tweetpoint stream fun because we will see what cool things are earning points and, better yet, what dumbass happenings are losing points.

Visiting tweetpoint.me allows us to view the tweetpoint stream, see the leader board (aggregated by hour, day, week, or all time and optionally filtered by a location search), and see an individual Twitter user’s tweetpoint profile.

Essentially, tweetpoint is a subjective version of TwitterGrader. At tweetpoint.me your value as a Twitter user is evaluated based on the opinions of others rather than usage statistics.

building tweetpoint

Sunday, March 8th, 2009 by Bobby Whitman

When someone says or does something that I value, I feel compelled to give them credit. On the other hand, when one says or does something idiotic, I believe they need to be knocked back down.

This is how I came up with the idea for tweetpoint, my first Twitter application. I was really excited by my idea and when I ran it by the guys in the office Thursday afternoon, these feelings were reciprocated. So, this increased my excitement and when I am pumped up about something, I have this tendency to dive right in and attack.

So, here the rundown of how tweetpoint went from concept to completion in just about 20 hours.

Thursday after work I engineered the app. I decided on a function list and built a database schematic. The user flow diagram never left my head as I went right into wireframing the entire site.

Friday, I pretty much took the day off of work to build tweetpoint. I borrowed Phil for about an hour so that he could give tweetpoint a logo and a graphic framework. While he was designing away, I setup my database and wrote all the queries.

After a Chipotle break around noon, I wrote the markup for Phil’s design. He laid out the homepage and I extrapolated from there to create the other views. I hooked up the queries with PHP and so it was time to dive into the Twitter API and load data into my local database.

Although I am bothered by the fact that it doesn’t use oAuth, the Twitter API is pretty powerful. It’s super easy to use and it let’s you do anything you want with Twitter. So, creating a script to load in all replies to @tweetpoint and parse their content was really a piece of cake.

Friday evening was spent in the office with Nick doing some stealth testing to see that things were being loaded properly and points were being added up appropriately.

Saturday afternoon then was cleanup and minor improvements, I had to rewrite some CSS to make IE6 act right (but that’s nothing new) and I added some cool little bits of functionality like the ability to award points to multiple people with a single tweet (@tweetpoint @guy1 @guy2 … @guyN +1).

Then, Saturday night, before I went out, I launched it into the world of Twitter.

more IE6 float issues

Wednesday, March 4th, 2009 by Bobby Whitman

Often when using an unordered list for navigation, I desire the <li>’s inside to be floated left. This affords me the ability to style them in any which way possible (margins, width, backgrounds, etc), but also have them arrange horizontally.

It is also likely that inside these <li>’s I will have <a> tags that I have chosen to give display: block. Again, display: block gives me the full gamut of CSS styles.

Upon doing this, I always open up IE6 and see that it appears the float: left did not apply to my <li>’s.

Since this only occurs when the <a> has display block, here is what I believe is happening. The display block from the child forces the floated <li> to take the full width of its parent instead of only the width necessary as is customary with floats.

SOLUTION: It is simple. Just give the <a> tag a float: left as well and it will fall inline (pun most certainly intended).

I hate you Apple.

Saturday, February 28th, 2009 by Bobby Whitman

I own an iPhone. I love it. The things you can do with it are seemingly endless. Being a web developer, I naturally have a nagging urge to open up the iPhone SDK and go to town.

But, Apple has only released the SDK for Mac OS X with an Intel chip. Being one-part PC user and one-part Linux user, that will not fly. Ok, so I’ll load it up on the Intel-based Mac in the office.

Nope. Not happening. Our Mac runs OS X 10.4, the iPhone SDK requires 10.5.5. Duh? Why didn’t i know that? That makes sense, right?

Thanks Apple, I may have some really awesome app ideas that will greatly improve your device, but you’ll never know.

IE6 and disappearing backgrounds

Monday, December 1st, 2008 by Bobby Whitman

This post comes to you from my life as a web developer at dynamIt. There is this issue that I run into from time to time with CSS and IE6 and I keep forgetting how to fix it. I found a good post the other day and I applied one of its suggested methods. It worked, so now I need a place to save this nugget of information. Surely this issue will come up again in the future, only then I will know where to look for the solution.

The Problem
Background images and colors are not showing up in IE6 as they should be. Sometimes they are sort of there, but disappear in an inconsistent fashion when you scroll. Also, I have seen it when they are NOT there but magically show up when you use the Microsoft Developer Toolbar to inspect the element.

The Cause
These seem to happen to a <div> when it has position relative and nested inside is a <div> with position absolute. Other children ( and by “other” I mean position static elements inside) of the relative <div> do not show their background images/colors.

The Solution
Give these “other children” a position of relative (not static) as well and backgrounds should show up as desired.

So simple a solution if you know where to find it. And, now I do.

Web engineering versus agile development

Monday, October 6th, 2008 by Bobby Whitman

There are two distinct schools of thought in web application development.

First, you have a phased approach, which dynamIt has dubbed web engineering in which the system is carefully planned out and designed prior to any development taking place.

On the other hand, you have agile development in which you use a rapid application development framework, jump right into code. Then get a reaction and iterate the code.

There is no point in arguing which is better, many people have had success with both methods. Rather, I would like to reflect on why I stand firmly by my choice of web engineering.

Quite simply, it is what I know. I have spent years of my life studying pure mathematics. Math is, of course, rooted in logic. When you approach a difficult math problem you must think through it in the right way. There may be more than one correct path, but it is a connected path of deduction that leads you to your result. You may NOT just dive in anywhere in a proof, it does not work that way, each step you make MUST follow from that which came before.

Our web engineering method is no different. We start with a user flow and a wire frame, and from that we deduce a user experience design. Markup follows logically from UXD, and once we have markup we can program in the functionality.

To me this progression is so natural and fits well with my sense of logic.

I want to be your rockstar.

Saturday, September 20th, 2008 by Bobby Whitman

At dynamIt we partner with many marketing firms and ad agencies. Often these firms call upon us to hit insane deadlines. Such is the industry, or so it seems.

Many shy away from these projects, I imagine, turned off by the added stress of a near impossible task. But not me. I want…no, I crave these challenges. My mindset is simple: throw me your best curve ball, I’m going to knock it out the park.

I’ve spent all this week on such a charge: 2 sites, each with a unique design that needs markup, each with 30 pages of static HTML content to write, each with an e-commerce module to integrate, each with about 30 products to load into the store, due Sept 21.

Ok, two steps back, let’s rearrange my schedule, let’s create an action plan in my head, take a deep breath, dive in. All the while, I remain focused on my goal: write good, clean, functional code, rock it out a day early, hence save the day for this firm. This is what I want to do, I want to take what I am given and deliver, but not just slap something together, do it right.

So, imagine the frustration when the following goes down.

It’s Monday, I have the xhtml/css all written for both designs, I look at the provided sitemaps and realize there is no navigation to over half of these pages, 80% of the content is missing, and their dev server with the e-commerce module installed is down.

It’s Tuesday, e-mails and phone calls fly around, nothing gets actioned, still missing content, still no access to the dev server, a whole days is stolen from me.

It’s Wednesday, the firm and myself both starting pushing the client, more direction is given for a navigation, I design it, not what the client wants, I redesign it, it passes. We start to get more content and as end of day rolls around we finally have access to the dev server.

It’s Thursday, content is still being delivered at noon, finally I can start building templates for the e-commerce module. We discover that there are not a just 60 pages of HTML content to be written for these sites, rather the total is closer to 160.

It’s Friday, we begin to load products into the database only to discover we are missing half of the product descriptions. Yes, this is the last business day we have to work on it, and the client has still not provided all of the data on their products.

How do I deal with this? I am very good at what I do, I am incredibly efficient, I am well organized, and I pay a fair amount of attention to detail. Moreover, I am pushing, pushing hard, giving a sincere effort. I want to be your rockstar. I want to roll this out for you a day early needing little to no tweaking and stand back and act like it was a piece of cake. I want to, I really do, but how can I possibly make it happen in this situation? I feel like I’ve been asked to complete a jigsaw puzzle that is missing half of its pieces.

Still frustrated.