Webapp

Developing the Developer’s Mind

As many of you know, I have been spending much more time developing than consulting. I have been working more on my PHP skills, while also learning Ruby on Rails and Python.
This is partly because much of my work has been both working on developing @SMCpros social media tool and with developing Facebook apps and contests.
When I first started developing, I was a freshman in high school. I wrote PASCAL, and was instantly hooked. These programs were basically long scripts, and used long control loops. This is the class that I learned how to scan things for exploits, write self-replicating programs, and generally be a geek.
Fast forward to 2 years ago, when I started with PHP. I was still writing long scripts, with big ass control loops, and they worked. However, they were slow, and bucked all major conventions.
Now, I write OO PHP. I am learning Ruby and Python, both of which use OO and the MVC ideas extensively. I am going from a script writer to an app writer. I am having to develop the developer’s mind.
This also means that I am taking debugging to a new level, writing tests, focusing on my tools and coding process, and actually acting like a developer, rather than just someone who writes code.
  • Share/Bookmark

Super simple screen scraping in PHP

I recently put together V2 of the “Who’se Here” section for the CoCoMSP site. The first one, which I wrote several months ago, relied on Twitter posts from the location. However, this happened to coincide with the fad of posting Foursquare updates to Twitter ending. So, I just put together a new version, which does this via scraping the most recent avatars from the Foursquare venue page.

Here is the class to handle the scraping:
And the actual file:

What these do is go to the venue page, grab the table with the pictures, add in the link to foursquare because Foursquare uses relative URL’s, and output it.

  • Share/Bookmark

Playing with @Anywhere

I will be testing, playing with, and quite possiably breaking @anywhere on this site tonight. So, hover over things with the @ symbol and we shall see how it works.

For testing, @mitchellhislop @smcpros @anywhere

  • Share/Bookmark

Lacking Context

The other day, while writing code to work with Viralheat (for an SMCpros client), it hit me. The flaw, the thing that I dislike about ANY social media monitoring tool (although, I do love ViralHeat, because their RESTful API kicks some serious tail).

Its a lack of context.

No tool out there (and I have demoed most of them) can give context to a tweet. They assign sentiment based on a database of wordlists of what is positive and what is negative. They have no way of telling if someone is just being snarky, if they are in a foul mood, or even if they use pronouns. If I tweet “Man, @twitter is the best company to work for” followed by “They really know their stuff, great job”, all tools will only grab the first one. Same goes if I am tweeting bad things. This issue is joined with the issue that there is not a ton of follow up-when a rep from a company responds to someone tweeting, not much is done to see how it changes the sentiment regarding that company. Mentions of a brand are treated like islands-concise, self-contained bubbles of information, not a chain of data.

Now, being someone who sits right at the intersection of Social street and Developer drive, I am going to fix this. I cant tell you too much about it (believe me, I will when I can), but know that we are making a solution. We want to provide context, and more layers and views of data, to the social sphere. More abilities for people to view data, more ways to use all the data that is being generated by everyone.

  • Share/Bookmark

Location based apps and privacy

Over the few months, I have been putting two of the top location-based mobile applications through their paces in our fair cities. The contestants were Foursquare, the location-based game from the creators of Dodgeball, and Gowalla, a startup that is new to the scene, but shows promise.

Before I get to the reviews of each, and how well they work in our cities, I want to write a quick word on the privacy issues that are coming up. Last week, people found out about PleaseRobMe.com, which aggregates all of the checkins from these location-based apps. The idea is that, if you are checked in somewhere else, you must not be at home, therefore making it a target. This also fits in with a story that I heard eariler on Twitter, about someone who was out to eat and received phone calls from “randoms” because they saw she was checked-in there.

As someone who has been using location-based games for longer than many, I can tell you that it can be dangerous, and it can be safe. Sure, boradcasting where you are can lead to your home being a target for theft, but so can having your answering machiene answer calls-its another signal you are not home. Same goes for putting wedding notices in the paper-it is a gaurentee that you will not be home. When it comes to getting phone calls, I would simply like to point out that no one can see your number unless 1) you are a friend of them or 2) you post it on Twitter/Facebook etc. If you use common sense when adding friends, you will have no privacy worries.

On the surface, Foursquare and Gowalla share many characteristics, namely the idea behind them-it is a good way to figure out where you friends are, what they are up to, and to join them in what they are doing. However, the similarities are only skin deep.

Foursquare is just under a year old, yet has gained a worldwide audiance, and plenty of media coverage. Despite not being the most-used location based network out there (that crown goes to MyTown), it is the one that has been getting the coverage. Foursquare is one of the few Web 2.0 companies that have a business plan, revenue, and are making money. They do this by making everyhing in the service into one big game-user compete to become mayor, get awarded badges for their work, and are ranked on a leaderboard. Sure, this leads to some gaming of the system, but it also paves the way for social media to get integrated offline into marketing plans: One of Foursquare’s best ideas is that of a “mayor special”, which rewards the user that has the most check-ins in the last 60 days with anything from a free drink to a free meal. This is a big shift for a few reasons:

  • It moves loyalty programs from a punch card in your wallet to and online experience
  • It turns a simple “Your 10th coffee is free” campaign into a game, which drives users to go to a location more often, in hope of either protecting or stealing the mayorship.
  • It encourages more interaction, rather than just a one-to-one transaction: I know of several places that I frequent that I have gotten to know others based on their check-ins, and am trying to go there more often to hold on to my mayorship.

Gowalla, on the other hand, is all about the social aspect. There is no real business model yet, and their application focuses on dropping/picking up items at different location, and going on “trips” with your friends. These trips consist of a set of locations to visit and check-in at. The founders see Gowalla as a way to find and share locations in your city. Not as game-changing as Foursquare, but still a really good idea.

The startups also differ on their technology, and this is where Foursquare really begins to shine locally. Foursquare relies on users and Google Maps to provide their location information, and Skyhook for figuring out location. This leads to having most of the places you vist show up in the database, ready for you to check-in at without missing a stride. I have only needed to add 3 locations since I joined nearly a year ago, and have checked-in about 500 times. Foursquare also uses its users to maintain the location database-if you earn “super user” status, you can remove closed venues, or merge 2 listings into one. This allows them to operate with a staff in the single digits, while maintaining a robust POI database.

Foursquare also has applications for Android OS, iPhone OS, and Blackberry OS, a mobile website for non-smartphones, and also a check-in syntax for text messages. If you have a mobile phone, you can play Foursquare.

Gowalla currently has an app for the iPhone (none for the iPod touch), an early beta app for the Android platform, and a mobile website that only works on Webkit-based browsers (currently the iPhone and Android, although rumors out of the Mobile World Congress suggest that Blackberry is getting one in 2010). Using it on my new Motorola Droid was a decent experiance, but you can tell that it is an early version-it is buggy, and missing several key features. Using the mobile app was ok, but the location feature was off-Google Maps would have me at my exact location, and Gowalla would put me several blocks away.

I was also not able to check-in anywhere that I went without creating the spot. I am not sure if this is because of the location issue, or if their database is that much smaller. Adding a spot is not hard, it is just rather annoying considering the simplicity that Foursquare’s large database provides.

If someone asked me to recomend one, it is Foursquare, hands down. Better experience, more users, and a bigger database all give it the win. This goes doubly so if you are a business-the integration of businesses into Foursquare’s model is top-notch. I was recently at CES, and the minds at Intel and Foursquare created a bunch of badges specific to the event, which is a really fun way to get people to both use their service and get them to brag about their trip to their other geeks, thus creating buzz.

  • Share/Bookmark

Goal update: Failure is an option

Last night, I tried my hand at installing and hacking a webapp.

I failed.

In addition to that, my hosting company had some gremlins in the wires, and I could not put up the update post until now.

So, I posted them on my personal blog, and you can read them here and here

I was trying to install Gina Trapani’s ThinkTank, and ran into some issues. They were mostly around sysadmin, and the fact that it was my first SSH session, rather than coding. However, I am going to stop getting ahead of my self, and go back to my plan of deciding, designing, learning, and coding.

  • Share/Bookmark

Goals:

Here are the goals that I will be working on in the next year:

  • 1500 subscribers
  • Pay off my credit card debt
  • Follow my budgets in Mint
  • Coding a webapp

Look for a new tab in the next day or so that will be for tracking all these goals. I will be updating them regularly.

  • Share/Bookmark