Wednesday, August 25, 2010

Maybe social networking just isn't for you

Since its introduction a week ago, Facebook Places, the new location based service from social network Facebook, has generated a lot of talk. The people who use it (mostly iPhone users right now) love it while the people who don't think it's a tool of the antichrist for world domination. In fact, only a few minutes ago, I got an email from a normally rational, thinking, friend, encouraging me to close my Facebook account in a 'final stand' against the tyranny of the specter of Big Brother.

There's so much wrong with this logic that I don't even know where to begin.

No doubt that, if the government wanted to track us, Facebook would indeed be a good way to do it. While a large percentage of the U.S. population isn't on the network, the amount of data analyst could garner from data mining Facebook could be enormous. The problem is, using Facebook as a source of information is a bit of a waste of time.

First, you have to deal with sorting U.S. users from non-U.S. users. While this would be a fairly trivial task - especially if Facebook gave the government access to its back-end database, it still is a hurdle to design around.

Next, and this is an even bigger problem, there's really no accurate way to verify the information someone posts to their profile. Sure, you could use sophisticated cross referencing and statistical analysis based on known data about the person (as published on their profile), use profiling software to generate a likelihood of truth factor, and all sorts of other magic tricks but, at the end of it all, there's no way to move further than knowing any information on a profile is more than 'probably true'. There's no reliable way to vest a users information.

Add to that the fact that, if you're the government, there are many other more reliable tools at your disposal through which you can learn more about a person than Facebook. Everyone carries a cell phone these days. Bug it, track it, whatever. This will probably give you MUCH more accurate information about the person than analysis their social profile will. People are less guarded on the phone than on Facebook and you're much more likely to get unfiltered, unguarded, reliable information.

I think this brings us to an even wider issue: when social networking isn't appropriate for you. The entire idea of social networking is to connect with existing friends and expand your social network (read: meet new people - people you don' t already know). If your reasons for joining a social network is only to connect with a closed group of friends and share information, then there are probably better ways to do it than Facebook. You might consider a private listserv or a Yahoo group, or even a privately installed forum. You really don't need to use places like MySpace, Facebook, or Twitter, and be forced to deal with privacy management. Closed groups make privacy a lot easier.

But if you choose to join a social network, be social! Take some time to learn how the network shares private information and how you can control that flow of information then get out there and share. Expand your horizons, take a risk and open your social circle. Don't be paranoid and you'd be surprised what might happen.

Tech superstar Robert Scoble recently published a Cinchcast about transparency on social networks where he says his transparency has enriched his life. He's made new friends, gotten business deals, and met interesting people that he may never have met had he kept a closed social group. Scoble is so social, in fact, that he even publishes his cell phone number on his profiles and invites anyone who wants to ring him and talk. As far as I know, his identity has never been stolen, his house has never been broken into because someone saw on his profile that he wasn't home, and nothing really bad has happened to him.

The issues we hear with social networks usually boil down to user ignorance. If you join something that has the word 'social' in it and expect it to be totally private by default, you're being naive and short sighted. It's kind of like choosing not to read the user agreement when you join a new service then complaining that they 'tricked' you when they do something you don't like but was covered by the agreement. The only person responsible for your privacy is you. Not Facebook, not Twitter, not MySpace. They don't even really owe to provide you with privacy management tools. They could just say 'everything you post is public, if you don't like it, don't join' and the responsibility would still fall on you.

It's time people stop bitching and whining about how these social networks are invading our privacy. By choosing not to familiarize yourself with the privacy tools provided and posting stuff you'd rather keep secret, you are voluntarily relinquishing your privacy through your own ignorance. Quick complaining about it and learn how to protect yourself.

Lastly, before anyone starts screaming 'what about the children", well, that's your responsibility too. Social network should make reasonable efforts to keep children safe but, in the end, it's your job as a parent to monitor your child's online activities. Can't be with them all the time? Install software that can. Don't know how to do it? Hire someone to do it for you. It's really not hard to protect your child online at all. You just have to take the time to learn the tools and care enough to use them.

As with anything in life, personal responsibility is the key to safety online. Learn it, use it. Be safe.

Monday, August 23, 2010

Creating a self-reporting crime tracker?

Over the last few weeks, I've taken a keen interest in crowd sourcing and data visualization. Until the recent events in Chile, Haiti, and Pakistan (all examples of where these technologies are being used to better serve the population), I saw little value in mapping data in a visual way instead of the traditional approach of spreadsheets and graphs. Now, as I watch the use of the technology half a world away, I can think of several reasons why these systems far outpace anything a spreadsheet or other historical data presentation format could provide.

Let's take a fleet management system, for example. While a spreadsheet or statistical chart can show you where vehicles have been, you're always playing catch up, trying to calculate more efficient routes, eliminate redundancies, and coordinate pickups and deliveries to be as efficient as possible. If you use a real-time mapping system, that dynamic changes. With real-time mapping, you not only have access to historical route and location information, but you also have access to real-time data that tells you where each of your fleet is at this moment. That allows you to make on the fly changes, create tighter deadlines, and eliminated wasted time by knowing exactly what is happening when and where.

A few nights ago, while watching the news, I began thinking about crime and how real-time visualization coupled with historical data might help police in better allocating their already stretched to the breaking point resources. In many ways, police play the same catch up game the fleet companies I mentioned earlier do: they are always working from historical data and most have little to no access to real-time, citizen generated, data. Add to that the fact that many communities have a tenuous relationship with the police at best, so many crimes go unreported and, thus, don't make it to the end of month, quarter, or year data.

Over the last year, we've seen a massive rise in technology being used in crisis management. From the earthquake in Haiti to the floods in Pakistan, we're seeing real-time systems being used to better schedule resources and to track and plot vulnerable individuals in need of help. Using nothing more than a stack of open source software, mobile phones, and the Internet, volunteers using this technology are having an enormous impact in disaster situations and self-reported, real-time, statistical mapping information is right on the forefront.

Taking things a bit further, and out of the crisis management arena, this same technology is being used to monitor elections in Kenya, allocate healthcare resources to HIV positive mothers in Mozambique, and monitor human trafficking in the Congo. The uses for the technology are endless, limited only by the dedication and creativity of the project managers and developers.

So, while I was watching the news a few night ago, all of these projects all over the world began drifting through my head. How could the technology be used to reduce the burden on police and enhance their ability to meet citizen needs? As the idea began to take shape, I also realized that this could extend far beyond service delivery but could also provide valuable and detailed statistical information for crime researchers who could use the aggregate data to create better policing models and gain better insight into criminal activity and flash points.

With the goal of the system resolved, the next question I asked was what such a system should look like? Could the system (and should it) rely solely on internet connected citizens reporting crimes or will that run the risk of disconnecting a large subsection of the poor and elderly who might not have computers or internet access? What should be the options for reporting a crime and how would should the system go about validating incoming reports.

It seems obvious to me that the system would need to accept reports in the widest possible way. This should include SMS, MMS, internet, email, and Twitter. Call-in reports should also be integrated at some point but that doesn't have to be a priority right away.

Next, we come to the question of report verification. Is there an efficient way to verify the validity of each and every report? No. That means we're going to have to take most reports at face value. If it's reported, then we map it. If we later find that the event didn't actually happen (maybe through the use of crowd sourcing) then we remove it from the map. Not the best system out there, but one that requires the least human intervention.

The system should also have broad police support. It would be great if police would use it in real-time to augment their call-in reports. For example, if they see a sudden increase of breaking and entering reports in an area, they could proactively increase patrols, increasing the perception of police involvement in the community. This enables police to work smarter and citizens to be better protected. It's a win-win situation.

Now, for the tools. As a developer, my mouth begins watering when I start to think of the possibilities available for designing such a system. But the practical side of me says 'keep it simple and maintainable' so the system has to be kept to an absolute bare minimum that will allow expansion and functions according to expectations.

Thankfully, there are many open source tools available that just have to be cobbled together to make this system work. After reviewing a few of them, I believe this is all that is needed to create a fully functioning system:

Using the components above, a fully functioning crime reporting system could be created in less than a week. The system would allow seamless reporting regardless of user location or the method in which they choose to communicate. Since it's a web application, tying police agencies into the system is a simple matter of providing them an account on the system that gives them access to more detailed data while the public facing website provides only generalized aggregate data.

In the end, a functional system that serves an entire state could be built for under $1,000. Best of all, the system could be expanded easily and tied into other systems in other states or even a national system to provide a broad overview of criminal activity anywhere in the country, or even the world. The possibilities for such a system are endless and the costs are incredibly small.

Personally, while I'm looking at this system through local eyes, I could see the value of it to police in other countries, especially those where the government fights to keep control. Think for a moment of deploying this system in Mexico and allowing citizens to report drug activity and police to track it and respond to it in real time. Or perhaps in Iran where police are often the aggressors against the people and giving them the ability to report quickly and quietly would give humanitarian and amnesty groups a jump start on monitoring these oppressive regimes.

Giving citizens the power to self-report is an incredibly empowering thing. You don't have to wait for anyone to come to your door and ask questions, you don't have to fill out complicated forms. You just have to be able to send a text message or use the internet.

That is the true power of people in action.

Saturday, August 21, 2010

Why I'm in love with the Zend Framework

Zend is a company that has a long history with the PHP scripting language. From its earliest days, Zend has provided the IDE and debugging tools that brought PHP up to the level of other languages historically used in development (particularly, web development).

Zend also produces an MVC framework called, as you might have guessed, the Zend Framework. The Zend Framework allows PHP developers to work in a pure object oriented way and to cleanly separate business logic, presentation, and database code in a way that makes maintaining even the most complex web applications a piece of cake. The framework also comes with a ton of ad-hock componants that can be used at will even outside of the MVC pattern and that makes developing with Zend incredibly easy.

Until recently, I hadn't paid a lot of attention to the framework. It seems I'm a bit of a massochist and enjoy creating everything from the ground up. Sure, I'd used other frameworks like Symphony and Cake before, but I'd always avoided Zend because I saw it as too complex with not enough payout in saved development time.

But last week, when I began developing a large, complex, inventory control and reporting system, I thought it might be time to give Zend a first look. So far, I'm blown away. Not only is the Zend Framework easy to learn, it's incredibly easy to use. While it holds me to a standards and forces me to use best practices, it doesn't doesn't overly complicate things, making me jump through hoops I shouldn't have to just to get something simple done.

So far, the two things I've found the most useful, to this project at least, have been the splSubject and splObserver. These allow me to implement systems that notify me of changes to the various objects (for example, database tables) I register to track. From there, I can execute specific code each time something happens it makes the whole process of tracking object changes a piece of cake.

I'm just beginning my Zend Framework journey so I probably don't know even half of the magic the entire framework contains. I'm sure I'm in for a hell of a ride but am going to enjoy every single moment of it.

Thanks, Zend, for creating a framework that just makes sense!

Saturday, August 7, 2010

Note to the Pentagon: Killing innocent people is worse than leaking evidence of that murder

For the last two weeks, we've been hearing nearly every day about how Private Bradley Manning hacked 'secure' government computers and stole classified government documents which he then released to the popular leak site Wikileaks. We've heard the Pentagon ramble on endlessly about how he broke protocol and didn't follow a chain of command. We've heard them appeal to the emotions of the American people by telling us we have no idea how many lives may have been lost because of Manning's actions. You know what we didn't hear from them?

"Killing innocent people is bad. We won't do it anymore".

No, we've not heard a single Pentagon spokesperson condemn those actions as vehemently as they've condemned Private Manning. In fact, I've not heard the military even make a single comment on the outright murder of those innocent people at all. Oh, I'm sure it's all wrapped up in some classified 'internal investigation' that will, no doubt, lead to the military being exonerated, but I highly doubt anyone will ever face justice. Except, of course, Private Manning.

The Pentagon has screamed for the last few weeks about 'proper channels' and 'chain of command' and how Private Manning failed to go through them. But let's consider why he failed to do so? Could it be that this video, while classified, had been seen by probably dozens of people at the Pentagon who chose to do nothing about it? Could it be that Private Manning had little faith that his superiors would actually respond to his whistle blowing if indeed he had done it?

The government doesn't really have that great of a track record when dealing with whistle blowers. Recent leaks from several intelligence agencies to the media clearly show employee frustrations with the way federal agencies handle complaints of internal wrongdoing: they don't. The FBI alone has had several employees go to the press with information after begging their superiors for months to take action and being ignored. Why would Private Manning expect the military to be any more responsive?

Every day, I hear someone make the argument that "he didn't even give the military a chance to address his concerns". That's true, he didn't, and perhaps he is culpable for that. However, can we deny the fact that our military has engaged in wrongdoing in the past then covered it up or destroyed the evidence to hide those actions?. Had Private Manning gone to his superiors, chances are decent that he would have been arrested and tried for hacking the 'secure' system and the evidence of what he found destroyed before it ever reached the American public. Manning would be the only one punished when the greater crime was committed by the very people who would punish him.

Don't get me wrong: I support and appreciate the men and women who get up every day and put on our nations uniform. They put their lives at risk for what they believe is the right thing to do. They are brave and selfless individuals who we should all say a huge thank you to.

But that doesn't make them infallible.

It means that, when criminals and murderers are found within their ranks, we owe the good men and women of the United States military the dignity to drag it out into the light and make an example of them no matter who it embarrasses or exposes. We owe that to them because of the sacrifice they're making every single day.

Personally, I salute Private Bradley Manning for having the courage and dedication to bring the wholesale murder of innocents by the U.S. Military to light. The cowards who gunned down innocent people, including a reporter, should not be protected and the military should be much more concerned with bring those people to justice than persecuting Private Manning.

Unfortunately, at the end of the day, covering your tracks seems to be much more important to those at the Pentagon than truth or that elusive American ideal called justice.

Thursday, August 5, 2010

Why Google Wave Failed

Last May, Google premiered a new way for teams to collaborate with the introduction of Google Wave. Wave was really a walker between the worlds in that it was part instant messenger, part document sharing, and part a lot of other things. Maybe Wave is ahead of its time and users just didn't 'get it', but I think that the products 'let's bring everything together' attitude greatly contributed to its ultimate downfall.

When Wave first premiered a little over a year ago, I was excited to see what new hottness Google had planned for us. I quickly signed up for the beta and set up my account within minutes of getting the invitation, expecting to be wowed. Instead, I was left shaking my head with the looming question of "So?" running through my mind.

I didn't then, and I don't now, 'get' Wave. While I'm all for service unification, Wave just felt a little schizophrenic to use and migrating my entire team from the solutions we use now for IM, wiki, file sharing, etc, seemed a bit cludgy and useless. To me, there was little payoff from Wave and, with the exception of using it a few times, largely forgot about it.

Once Wave was available to a wider audience, I once again started hearing chatter about it. But I'm sure it wasn't the kind of chatter Google wanted to hear about the product. Everywhere I turned, my fellow Wave users were asking the same question I was and facing the same deficit in payoff I faced. In the end, Wave was a cool idea, but just didn't quite hit that sweet spot that could compel users to move from their current solutions. The idea of unification alone isn't enough to bring people on-board - you have to offer them additional value and, unfortunately, Wave just didn't do that.

All that said, I don't believe we've seen the end of Google Wave. I think the idea behind it is solid and, eventually, it will catch on. I hope that Google doesn't completely kill the product but, rather, put it into the community space where the users themselves can decide what they want Wave to be. Collaboration is good. Unification is good. Google Wave is good. It just really never figured out what it wanted to be when it grew up.

And, if Google doesn't wake up, Buzz is next...