Bert's Blog

The Web Presence Scale

I think a lot about how organizations exist on the internet. I’m not thinking so much about web companies, but rather the organizations that exist regardless of the internet or computers. These groups and businesses almost always exist in some form on the internet, and are often concerned with having either “more” presence or a “better” presence on the internet. I think we have an understanding of the quality of a presence, but I’ve been thinking that I don’t really have a good way of expressing quantity of web presence. I think, as a starting point, the quantity scale can be divided into certain layers.

Level 0: Non-Existant

The group may be real, but the internet is unaware. This can be fairly hard to achieve for organizations tied to physical locations, but for those that are more transient, is more easily possible.

Level 1: Existant

The group has been noticed by Google, foursquare, Yelp, etc. It doesn’t really matter how the information got out there, but now it’s out and in use. Users are able to find out information about the organization, though the org doesn’t necessarily control it.

Level 2: Intentional

The group has created their own space on the internet. This can take many forms, like a web page, a facebook page, or anything else that lets them collect information and organize it. It also provides them something to point other people and services to. The key distinction here is that they are now in control of their own data.

Level 3: Integrated

This is probably the vaguest stage, but that’s because it’s different for every organization. At this point, some level of core operation has moved to the web. Whether it’s sales, customer support / interaction, marketing, or something else.

Obviously, this doesn’t apply to internet based organizations, or people, who generally exist in different ways. It’s interesting to note that individuals tend to move through the levels in the order of something like 0, 3, 2, 1. Starting off with interactive accounts, then creating some place to organize their digital existance before it gets picked up by other services.

This also, isn’t a checklist or plan for anyone. One level isn’t necessarily better than another. Many organizations exist well at Level 1, and shouldn’t move to Level 2, as doing that poorly can be quite damaging. Also, my local pizza place doesn’t need a website.

I think it means something to transition between these levels. Forcing yourself into Level 1 from non-existance is a big step, as is declaring your own space on the internet, or integrating your business with it. I think it’s important at each step to figure out what this means for the organization. What statement are they making by progressing?

I also wonder what we can do as an industry to not require organizations to have to push to higher levels. If every organization could get by as Level 1, without having to build a custom website, without having to build custom integration, wouldn’t that be better? Does going to a higher level mean that there’s some service that they are missing at the lower ones? If we can figure that out and provide it, wouldn’t that make their lives easier?

Lessons From the Postal Service

With the Post Office having financial troubles, they’re closing many locations. What this means for Hoboken is that we’re losing 3 out of 4 of ours.

What’s interesting about the closing of these offices is the process. Roughly, the process involves surveying the public, having a public hearing, and then a decision is made, and then there’s a waiting period before the office closes.

Having gotten 3 of these surveys, with identical explanitory letters attached, I’ve had time to ponder the inefficiencies of it. Hoboken has 4 post offices for 1.3 square miles. It’s clearly unnecessary. Several people I’ve talked to didn’t even know there was more than one, and these are people who’ve lived less than a block from one of the closing ones.

Reading the letter and survey, it’s clearly not designed for this sort of situation. It’s asking things like how often I visit, what I buy there, and what I use the office for, all of which could be answered by tracking at the office. It also asks if I’m able to make it to my next nearest post office should they close this one. My next nearest being half a mile away (closer than most of the ones being closed). After all this, it explains the process, how long it would be until the decision, and then that there’d be another 2 months or more until the actual closing.

This is all so wasteful. I realize there are good reasons for it, and that the surveys serve a good purpose especially in more rural areas, but there must be some allowance for flexability and reason.

My apologies to those who are truly inconvienienced by the closings because we in Hoboken are so wasteful as to have 4.

What’s the Point of HTML?

I’m a big fan of code separation and the MVC pattern. As we slowly move towards a world where everything is a web app, I think forcing the model of MVC on most frameworks has been the greatest move towards clean code that we’ll see for a while.

But lets look at the View portion of MVC. What is the View for a web app? Most people would say it’s the html file that gets sent back to the browser. This is close to the truth, but clearly breaks down once you start considering javascript. A View shouldn’t be self modifying, able to handle events, etc.

The truth is that web apps don’t run on servers, they run in the browser. The cases are few and far between of useful web apps that don’t require javascript. Once you consider javascript, our MVC paradigm breaks.

The truth is, in the browser, we have our own MVC. In an ideal world, the Model is HTML, the View is CSS, and the Controller is Javascript. In practice, HTML is so ingrained into browser rendering, that it’s impossible to separate from the View. As a Model, HTML documents are rather lacking. No one wants to store anything that’s not being rendered in the HTML structure, as it’s not easy to work with.

Perhaps it’s time to give up on HTML being a source of clean data, and to accept it’s role as part of the view. How then do we achieve proper code separation in our web pages? How do we enable the semantic web when our fundamental form of document is rendering information and not data? The answer is to pull your data from an API. Look at Twitter; Loading up their webpage gives an HTML page with no data. Javascript on the page consumes an API, and passes it into HTML for rendering. If you’re interested in a clean form of the data itself (the Model from which the page is built), you can grab it from the API(In my case: http://api.twitter.com/1/statuses/user_timeline.json?include_entities=1&include_available_features=1&contributor_details=true&pc=false&include_rts=true&user_id=243506131).

Looking at HTML this way allows us to not feel guilty about non-semantic divs, and not knowing the right microformat for calendar events.

What we do need to make sure of is that our new html pages don’t lock up data, that there is an API for everything, and that it is publically accessible. After all, people only are scraping your HTML for information if it’s not available in a better form.

In Defense of the Back Button

Christoffer Du Rietz recently took a jab at the Android hardware buttons. Much has been said on the topic, and I won’t try to contribute more on the subject of Android vs. iOS or whether or not hardware buttons are a good idea. Let’s just leave it at that I’m a nexus one user who likes his phone and I’m excited at what I’ve seen of Ice Cream Sandwich so far.

What I do want to address is a comment he made regarding the back button that “The problem is, that Android hasn’t decided what that it wants the back button to do.” . That statement seems ridiculous to me. I’ll try to explain my reasoning, but first we need to go down a little tangent.

Information Architecture is hard. This is not news to anyone who’s been responsible for laying out the content and navigation of a sizable website, or dealt with making sane and simple user workflows, or even struggled with finding the best outline for a paper they were writing.

Life used to be simpler. You struggled with your mass of information for a while, picked your favorite organizational structure and went with it, for better or worse. This is how we got the Dewey Decimal system, the standard layout for clothing stores (divided men’s / women’s / children, again in each of those sections by style of clothing, and so on). Of course, everything can only be in one place though, so your book that’s a mix of Computer Science and Literature? Someone’s going to have make a choice as to which section of the library it will be in.

Computers solved that problem, right? Now ebooks can exist in both classifications, since they’re digital. Being able to link around the web means we don’t have to follow anyone else’s established hierarchy. I mean, books still have to be on a certain shelf and a shirt on a particular rack, but we can search and shop unlike and find what we’re looking for.

Unfortunately, this is only partly true. We still have two forms of going through content as humans, searching and browsing. Linking and searching work for the searching behavior, but for browsing we still need to have a hierarchy and feel like we know where we are (even when “where we are” exists only as bits on the screen). You’ll notice all the clothing store websites haven’t abandoned their hierarchies. People still like to be able to go “up” from what they’re looking at to all Men’s clothing, or “down” to a particular shirt, or “over” to look at pants instead. What has changed though, is that we now have somethings that can function without hierarchy at all.

Twitter has no strict information hierarchy. It’s not unique in this, but it’s who I’m going to pick on right now. If we were to assign Twitter a hierarchy, it would probably be a very flat and wide one where the user would pick one of a million users, and they would have their tweets and their profile. Not great usability. Twitter works because they can break this model, throw it out the window, and have navigation based on aggregation of a hundred different things. This means there is no “up” or “down” in Twitter. There’s only “back” (and then sometimes “forward”), which are new directions based on the user’s flow instead of the information architecture.

This is what your browser does to allow you some affordance of navigation through the web. Each site (usually) has their hierarchy, but once you break that, it’s back to the browser back button.

So now let’s get back to the point.

Android, tasked with building an OS for a smartphone, has to figure out navigation among many other issues. Apps are much worse than websites when it comes to navigation. Between the myriad of chat programs, things like dropbox, tuners, and other utilities, and other programs on my phone, I’d be hard pressed to figure out a sane hierarchical navigation for half of them. To add to this, Android has a wonderful way to call into different parts of applications using intents, which act as the equivalent of linking to different webpages online.

So, we’re in a model where there’s no guaranteed hierarchy within apps, and a user is able and probable to wander through applications anyway. This means we have to throw out the browsing model (at least from an os perspective, inside apps it may still work) and stick with our navigational concession, the back button.

If understood this way, the back button is entirely consistent. Even in cases where hierarchical navigation still makes sense, I think you’ll find that most of them are similar to something like a mail program. Click one email to view, and then people tend to choose “back” over “up”. How often do you hit the inbox link in gmail?

At this point I feel compelled to call out Facebook on their recent app design, which is the only one I know that willfully breaks this model. Android allows you to override the back button behavior, but recommends against it for consistency reasons (and, hey, why write the code when the os gives it for free?). Facebook launches a user into the newsfeed when they open the app, and hitting the back button takes them to some sort of menu. Back again behaves as expected. I’m not sure what the thought process was here towards breaking the expecation. Unfortunately, there’s discussions as to how to treat the back button in ajax applications as there’s no browser reload between actions for them, so I imagine as that we’ll see more abuses of this type as the tools evolve to change browser behavior.

Thanks to @okayrene for helping me refine this.

Making a Useful Business

I saw a post on Hacker News recently about a recent batch of graduates from TechStars. There was a comment there lamenting the lack of businesses attacking new problems. Unfortunately, I can’t find the post or comment now, unfortunately, but it’s a thought I’ve heard and shared before, and it’s not unique to any program or group of people.

A lot is said in the startup world about “scratching your own itch”. That is, find a problem that affects you so you’ll be inspired to solve it. A lot of great ideas and businesses have come out of this, but it’s almost come to a point where people don’t know what to solve because a lot of the problems in the life of a typical startup founder have been solved.

A comparison to our lives 10 years ago shows that. We now have much better internet access, more blogging, email sending, hosting, and social media solutions than you can shake a fist at. We even have smartphones so we never need to be without a computer. I’m not arguing that there aren’t improvements to be made in these fields, but rather that a lot of them have been attacked and are 85% solved. Yes, you may be able to do better and make it 90%, but it’s going to be a hard sell.

When I expand my itch scratching to family and friends, I find problems that are screaming for good teams of people to provide any help at all. If you look at any small (or even large) business, you’ll find tons of processes that are annoyingly manual, time consuming, and generally wasteful.

When we started Mom n Pops, we were scratching our own itch. We found it hard to find things in our neighborhood. What we found was that not only was the consumer side lacking, but that there were no tools on the store side either. Store owners keeping track of things on post-it notes, distributors going store to store taking inventory by hand on paper, and what tools exist are expensive and bad. Theres definitely work to be done here.

My new rule of thumb when I hear ideas is “Who’s life is significantly better because of this?” and, if I’m uninspired with ideas for what I should do, I talk to other people about their jobs. They always know something that can be fixed.