Friday, July 11, 2008

The iPhone, DS, and personal social networks

I love my iPhone, even if I got it a few months before the announcement that the new ones were going to have new features and cost less. The 2.0 update and its ability to allow downloads of both useful applications and spam is an amazing step forward, and something that finally allows my iPhone to replace my Palm.

What's even more interesting to me, something that I and some friends of mine have been talking about for a while, is the local personal social network capabilities... Back when I was in Pirate Software LLC (a games startup that some friends and I started) we talked about the possibilities of a personal-area social wireless sharing network... Basically wearables meets social networking (but back then social networking sites didn't exist as they do now). We envisioned a small wearable computer that shared information via wifi to others around you, starting with a small exchange of information like a business card... Extending to having a way of exchanging relevant data at a touch.

This was back in 1996, and things have progressed interestingly since then. For example, I would have never guessed that social networking sites would be so popular, and actually sometimes useful. Things like PictoChat on the DS that allowed anyone with a DS in range of each other to exchange random pictures was the first step towards this direction. It was amazing sitting in line at PAX and seeing everyone with a DS (or a PSP) and half of the gamers there were texting each other or sharing games. Now as I browse the Application Store on iTunes, I see a lot of social networking apps, built specifically for the iPhone's capabilities...

I'm not saying any of the specialized ones are going to catch on, but look at Twitter. Applications that allow you as an iPhone user to locate me as an iPhone user in the same coffee shop, find out information that we allow as shareable... And perhaps figure out if the person on the other end might be someone interesting to talk to/share information with. It makes me feel like I'm actually in the future. ;) Especially in an age that we spend so much time online, making that information useful in meatspace is something I feel to be a needed next step. Especially for geeks like me who want to find more interesting minds to interface with. ^_^

Sunday, March 2, 2008

Essays

Something to share, on the "cool website findings" front:
Essays, by Paul Graham

I've been slowly working through them and I love his writing style and sense of optimism and positivity. Its something that is missing in today's world and tech industry in general. A sense of hope that things are always getting better, and there are ways that every individual can contribute to the making of the better. ^_^ Maybe I'm a bit on the innocent side, but this kind of perspective helps further innovation if shown to the right people. Inspiration matters, and the spark can come from almost anything.

What inspires you?

Thursday, February 7, 2008

Starting up anew

While this isn't the first blog I've had, I aim to have this be the first professional one. The things I'm going to be talking about here are mostly development practices, bits of code I like, and my pet peeves in company structure and the IT industry in general. Hopefully also suggestions on what I think could be done better and how to fix a few of these things. There are plenty of books out there about these subjects of course, but this is my personal take on all of the above.

This first post is mostly introduction and a statement of where I am now. My current company focuses on Agile methodologies and development practices such as Scrum, TDD, and pair programming. I prefer working in Agile environments for the primary fact that most dev companies create a lot of chaos, and implementing Scrum (and other agile methodologies) is a good way of managing that chaos (as long as its implemented well). I've seem these practices implemented badly and I would say in those cases they actually cause more pain than help. Mainly because forcing practices on developers who don't understand or believe in them is a great way to fragment your team and halve its productivity. Telling your developers to follow TDD without explaining its benefits and drawbacks is counterproductive. I believe that agile works best when you take the best pieces that work for you and your team and implement those, and try out ("spike") the others to see if you might change your initial impression.

For example, you might have your team try out TDD (Test Driven Design/Development) for a sprint and see if they can see the benefits of it. To do this you need to first have someone either trained in it or be willing to be the "shepard" (or owner) of that item, to be able to answer questions from the rest of the team and help them when they have issues. Even if a few developers like it, they can follow it and perhaps the usage will spread. It often takes a while for some of the ideas in any development methodology to spread and be adopted. One of my previous teams hated unit testing starting out on the project, but over time grew to love them so they would always have a way of knowing whether their external interfaces worked as planned.

Anyway, that's the post for today, I need to get back to work. Here's hoping that I can keep up with all my blogs.