Monday, March 27, 2006

Nifty idea #4279

A nifty idea came to me in the shower just a few moments ago, and I felt the need to blog it before going to work.

How would you sell the first telephone?

I mean, you could give a really kickass demo.. but when your first customer takes one home, how is she going to use it? Who is she going to call?

We face a similar problem with Ping. Actually, all software with social networking aspects to it faces this problem. People have come up with pretty crafty solutions.

What's special about social software that runs on the phone? It has direct access to a fully loaded PIM (personal information manager):

So, what I'm thinking, is that as soon as you create an account with Ping on your phone, we immediately cross-reference the phone numbers and email addresses already stored on your phone with those of other Ping users, then show you a list of people you already know that use Ping, and all you to quickly/easily add them to your list of friends (and you could subsequently revisit this functionality if so desired).

Jill probably won't let me actually build this until we've built everything else in the mockups (about halfway there, btw). But nonetheless, I was thinking it'd be cool to have a feature like this by launch time.


Saturday, March 04, 2006


Since we basically code when we want, and don't stick to any particular schedule, milestones are a cause for celebration on our little team of programmer hobbyists.

And today.. we hit a milestone!

The Ping client has finally successfully mated with the Mates server.

Okay, it's a baby step. But it's a special one. Our baby's first step, even.

In other recent news, Mates got a little bit of press in the Michigan Daily back at UofM ( is another project building on Mates).

I've gotta give major credit to Jeff. He's been a rockstar lately. The dude has spent his entire spring break staying in Ann Arbor spending significant time on getting the Mates server ready for prime time. Rockin'!

Anyhow, I had better get back to coding (15-20 hours is my weekend goal, much of which is being done at my favorite coffee shop in Capitol Hill).

Thursday, February 02, 2006

Windows Mobile 5 APIs

I'm sitting here in the Westin New York hotel, connected to the net via a terribly slow GPRS connection (Westin charges $15! no way!), getting ready for a Xanga interview tomorrow, and I ran across something that is going to be a huge timesaver for Ping!....

The State and Notification Broker API in Windows Mobile 5.0. I noticed it the other day when I was working on code to attach to and read from a Bluetooth GPS, but glossed over it because the name seemed pretty dull. But upon careful inspection, this API sounds like it'll give us access to cell towers, signal strength, and even WiFi strengths for phones that support it! And by us... I mean Adam and Jill. (I just play with the mates server and make more work for them.)

And by the way, the server isn't configured with and SOAP yet because, among other things, I haven't found time to install SQL Server.

Wednesday, February 01, 2006

We have a server

We have a backend server running, and it is currently accepting HTTP requests and pings! [Just not the kind of pings it needs to be accepting.]

With luck, the web service, in a primitive form, could be running by this weekend. Depends partly on how long it takes to get the SQL server requisites configured.

Monday, January 23, 2006

What's in the WSDL?

Here's the latest web service description file. (Not nearly as pretty as those screenshots.)

Sunday, January 22, 2006

First Screen Shots

Here is a peep to what Adam and I have been doing this weekend. I translated all of the mockups into code while Adam was working on more web services and some other basic functionality. We also deployed it to a real phone!

Ping home

Ping main menu

Friday, December 30, 2005

From over the wall

Allow me to introduce myself -- I'm Jeff Powers, currently a grad student at Michigan (Computer Science & Engineering : Intelligent Systems) Increasingly, I'll be involved in building the server backend that helps make Ping aware of nearby users.

First, a little background refresher: I'm actually a recent Electrical Engineering grad and I've been excited about the exponential adoption of wireless technology for a while now: just check out this article I wrote for the Michigan Daily. Adam and I worked together on a project called Mates during the early months of 2005. Mates was primarily focused on providing location-senstive information, and it also performed a few social networking tasks, e.g. computing shared interests. Along with Ayush Agarwal, the three of us built a prototype Windows-based client and PHP-based server. We didn't have quite enough time to make it live for testers, but we demonstrated a working prototype and got a lot of feedback (mostly positive!).

You might wonder, "So, how is Mates different from Ping!"? My answer to this would be "in the focus." Both projects are alive and well, and since we're integrating our efforts, we won't be duplicating much work. Adam and Jill are creating this amazing Smartphone client with a very intuitive interface, hence the strong focus on mockups and really getting the UI right. They also want to enforce good design principles deep into the code -- so their design will drive certain server requirements. Meanwhile, I'm rebuilding Mates for release to testers at Michigan, and the focus of Mates is to collect, learn from, and disseminate location-based information without requiring too much from end users (In other words, it'll work regardless of whether you have GPS, Wireless, a cell phone, or just an internet connection). This means I need to focus a lot on the server-side, and Ping will directly utilize these results.

And thus, the simple way to think of these endeavors is that "Jeff's building the web service while Jill and Adam put together the Smartphone client."

So in the coming days, you can expect posts from me regarding which features have been implemented in the Mates server, and periodic drafts of the web service description file (WSDL) that Ping will be using. I'm trying my best to line up with the WSDL outline already posted on the Ping site. I've already thrown a draft over the wall, and Jill and Adam are reviewing it.

Concurrently, I'm focusing a bunch of effort on developing a code base for querying Windows/Smartphone clients for details about Wireless LAN and WAN networks. That means identifying nearby 802.11 networks, and determining things like cell tower identifiers. We'll need this kind of information for mobile devices which won't provide GPS coordinates. (By the way, why do we call them GPS coordinates when Lat/Lon existed a long time before GPS!!?)

I'm really looking forward to getting feedback on this joint project and can't wait to see what Jill and Adam put together on the client! (I just bought a Smartphone so I'm ready to go guys...)

Sunday, December 18, 2005

Please No More Mockups!

There comes a time in the life of every new software project when mockups just don't cut it anymore.

I've observed that this time usually coincides with a period 1-2 presentations before people watching begin to wonder "these pretty mockups are all well and good, but when can I expect to see the real thing?"

For Ping, mockups have been an incredibly useful exercise. They've helped us to design, test, and rework major portions of our user experience (mainly UI + navigational paradigm), and to push additional requirements back into the web service that will power the project -- something much easier to do in Photoshop and Illustrator than Visual Studio!

But enough is enough, and it's time to move from mockups to code, and here's the plan for our next short-term milestone:

- I've begun to model our stack-based navigational paradigm in C# / .NET Compact Framework. When this is complete, we should have a completely navigable Windows Mobile application - though it won't be pretty, or functional.

- Jill is beginning to build .NET Compact Framework forms based on her amazing set of mockups.

- Jeff, from the mates project, is beginning to re-write the mates server proof of concept into production-quality C#/MS SQL code, taking into account a few changes/additions we've requested to the web service.

Ideally, once we've each finished our tasks, we'll have a pretty and functional barebones application, at which point we'll probably do another round of usability testing, and begin to bake in the necessary bells and whistles required to ship a beta.

Now back to living in Visual Studio for me...

Thursday, December 15, 2005

Updated Mockups

Okay I was eating for a long time - but here is the list of changes:

Global changes
- Navigation to next buttons
- Added contextual menus
- Blue for selected item in list
- Arrows on items in list
- If people are offline, pictures are grayed/more transparent and you cannot see their location, call, or text them.
- Instructions are across the top header

Set Location Form:
- What/Where changed to Venue/Area respectively.
- Drop downs will have New Venue and New Area in order to edit fields.

Ping Home
- Different color
- Expanded rows

People around
- Changed to list view
- Shows if friend of friend
- Shows if people are in same place by outline of picture

Person level
- Changed status to tagline (only shows a message, not online status)
- Displays pictures of friends of friend
- Displays if friend of friend
- Cleaned up visual treatment

- Added distance

- Added distance

Thursday, December 01, 2005

Usability Testing 1 - Mockups