just thinking out loud, Technology, Uncategorized 2 comments on Building a community by selling to communities

Building a community by selling to communities

I had a phenomenal discussion with Bartosz Solowiej, formerly of TokBox and currently of Gigs.ly, about many a thing, but specifically about the community problem that I am having. Not a problem in the sense that something is wrong, but rather a problem in bringing horses to water. It really helped me realize that the problem isn’t about convincing the horse, but about finding the water.

Just to give a quick overview of the previous post, the goal was to bring the TokBox Platform to more developers in the hopes that it will bring video chat as a service to more people. I’ve been working on this problem for two years now, and have always focused on building out a developer ecosystem which is strong enough to both want to build video chat into whatever services they build, and welcoming enough to make developers want to be a part of the ecosystem.

After having a really amazing talk with Bartosz about connections, communities and their natural growth, I realized that the best approach may be to flip the whole problem onto its head. Returning to the horse to water analogy, I need to find pools of water, and convince them that they need video chat as a service.

Let me back up a bit. My big ah-hah moment this weekend was realizing that I made a big mistake in thinking that one could manually grow a community. Communities don’t have foundations of hard work, or aren’t a set of people just brought together. This approach to building community is very water/oil in nature. When you shake it just right, you’ll convince yourself that the different parts have mixed, but in the end the two parts end up separate. Realizing that I was doing just that, I stopped to think about a different approach. Taking two giant steps back, I came to realize that communities grow organically. People find a common interest, and from that common interest they build a foundation of mutual understanding from a set of beliefs. This, and not the actual work to maintain and grow the community, is the foundation. On top of this foundation, and here is where the hard work and luck comes into play, is where communities are acted out.

My efforts, so far, have been focused on setting in motion the actions of the community. What I have not realized is the fact that there isn’t a foundation. I haven’t found the mutual interest. I’m trying to get people to build a community without understanding what the common thread is. I assumed that having developers building video chat into their applications was the common thread. It’s not.

What then is the common thread? I’m glad you asked. It’s communities who can grow stronger because video chat, or video messaging, is a fundamental part of their genome. Behind the scenes are those will see that a better community will grow because of the services we can provide, and they will find a way to make it happen. From there, video chat will become something that is part of the toolkit of community builders, who can then continue to spread the technology.

Find the water, and when the horses see something they like, they will continue to come back. The next step is figuring out how to make them come back.

Reblog this post [with Zemanta]
just thinking out loud, Technology, Uncategorized 1 comment on Building a community

Building a community

I was talking to someone today about the TokBox Platform that we’re building. It’s been something that I’ve been working on since I joined the Box, and something about which I’m very passionate. I was discussing with them my three goals for the Platform from a developer point of view over the next six months. The three goals are:

  1. Build out a second layer of abstraction into all of the SDKs as has been done for the PHP SDK, and continue to improve the widgets to make them as customizable and flexible as possible
  2. Write tutorials, blog posts and show off use cases on a weekly basis on the TokBox blog
  3. Have a large, involved community on the developer mailing list who answer questions for each other

I think the second task is really the easiest one to do. Why? It comes down to organization and discipline. I’m going to spend some time this weekend working through six weeks worth of blog posts (at one per week, that isn’t too hard), and start outlining the content. I want to start with what a user can do with the basic embed, both the call widget and the recorder/player combination, and then work my way into some use cases and sample applications. Hopefully there will be some readership at that point which will allow me to understand what new posts the readers want.

That’s a weekend’s worth of work, and then of course somewhere between one- to two-hours of writing per week. I think the big win there will be driving traffic to our blog, and getting more exposure for how simple the Platform really is to use. I also hope that personally it will help me improve how I communicate technical concepts to a broader audience.

The SDK work, in my opinion, is just a labor of love that is necessary to improve the Platform, and to march towards my goal of doing everything in ten lines of code or less. Even if those ten lines of code come from layers of abstraction, I think simplifying the underlying actions of the Platform will make it much more attractive to potential developers, and that leads me to my final goal…

Building a strong community around the TokBox Platform. I’ve been working in the developer list and with partners for two years now. It’s a very humbling experience. I’m totally convinced that adding video chat, or video messaging, capabilities really adds a lot of value to a whole laundry list of services that are already out there. The amazing bit is that most of the individuals with whom I’ve spoken in those industries agree. They just don’t have time, money or a compelling use case to make it happen.

And so, humbled, I’ve focused on the little things, and making the little things count. Respond on the developer list as quickly as possible. Listen to feedback. Maintain good documentation. Build sample applications. All with the hopes of building a community that then starts to do these things for the Platform because the community has also discovered the potential of video chat and messaging. We still need to better address some of these issues, especially documentation, but we’re slowly starting to get to a place where I think the foundation is really well developed.

What then needs to happen to reach the tipping point, and go over it? I don’t know. I want to spend some time thinking about this over the weekend. I think the obvious first step is patience. I’m not good at that, but I’m learning. I think step one-a is luck. Sometimes you just need the ball to bounce your way, and of course laying a good foundation makes it more likely that when the time comes that lady luck will favor the solution we’ve built.

I’ll do a follow up to all of this at the end of the weekend, but would love to hear about any opinions or thoughts about the building of a community or the goals I’ve laid out. At the very least, let me know where you think video chat should be, and maybe that will be the idea that makes it all happen.

Reblog this post [with Zemanta]
Melih gets married, Uncategorized 0 comments on It all starts with an earthquake… or something similar

It all starts with an earthquake… or something similar

I have not yet announced on this platform the biggest news of 2010 for me… which is that I got engaged to the one and only Micky O’Brien one month ago today (assuming the today that you read this is February 23rd). If you have not yet met Micky, then you’re in for a really great treat in my own, biased opinion. If you have, then I’m pretty confident that you’ve approved as I’ve yet to hear anyone say otherwise, though now would be a good time if you do feel that way.

Micky has pushed me to chronicle the next few months, and I think it’s a genius idea. I’ll be, in the sanest and least offensive way possible, be documenting all of the ups and downs of planning, families and everything else that comes with weddings. When it’s all said and done, it will be a great way to remember all the craziness which was M & M’s wedding.

I leave you with a slide show of the cheesiness which led to this point so far.

Beach at Camber
Melih and Micky take a pause during a beach hike in Camber, UK
Elementary my dear Watson
Melih and Micky show off their matching Halloween outfits
Micky hanging curtains
Micky hangs curtains which she sewed herself. I was responsible for the curtain rod, fabric and monetary portions of the project
New Year Resolutions, Uncategorized 5 comments on No Flour, No Sugar for Lent 2010

No Flour, No Sugar for Lent 2010

I started observing Lent two years ago because I’m fascinated by the idea of self-restraint and how it can help make one better. The goal isn’t to give something up forever, but to see if one can give it up at all. The reward, if it can be called as such, is knowing that one’s sacrifice is a mere 40 days away from being restored to them.

The rules of Lent have been redefined to me many times. Whether one eats meat or not on Fridays. What day one stops the Lenten fast. How to make up for a mistaken breaking of one’s fast. But I quickly learned that intent is much more important than technicality, and it’s all about what one feels in one’s heart when it comes to the right and wrong of it all.

Two years ago, I gave up red meat. My family wasn’t super supportive of the idea, but it was really good for me. I really started to understand how much red meat I eat, and it was a real change of pace to make myself eat chicken, turkey, sushi and a LOT of tuna sandwiches. Thank goodness for Subway’s $5 footlong! Just once, I went to Taco Bell and ordered a bean burrito, got a beef burrito, and said to myself, “Don’t worry about it.” Other than that, I was actually able to stick to it for the full 40 days. The best bit is that I think since then I’ve definitely changed my attitude towards looking at my daily menu to include the produce section, poultry, seafood and salad as opposed to focusing on the biggest, reddest option. That was definitely a huge win.

Last year, I gave up fast food. I started Lent with a 38″ waist size. I went to 6 proms, and never had a tux pants size greater than 30″. Talk about college 50! So I gave up fast food and decided that if I quit going to McDonald’s for all of my non-TokBox provided meals that I might start to slim down. Turns out I was right. Also turns out that fast food just does insane things to your whole system. I had a lot more energy. I didn’t constantly feel out of shape. I made myself start exercising again. And now I’m down to eating fast food only once per month. I don’t think I really realized how poorly I was treating my body until I gave up fast food. It’s really obvious when you shed 15 pounds that you’re not supposed to be that big. You have to really try hard. I’m not trying that anymore. The reward last year was confidence in that I could restore my physical health.

And on that theme, this year I am going on the No Flour, No Sugar™ diet. I’m also adding caffeine to the mix, as in No Caffeine. My main goal is to become more cognizant of all of the food I eat, and soda I drink. I think I average one soda per day, which isn’t a lot, but do I really need it? I eat a lot of bread with the food I eat, and is that really a good idea. When I drink tea, I add way too much sugar to it. So the big question in my mind was how could I change physically, emotionally and all else if I were to increase fruits, protein and simultaneously decrease empty calories from my diet.

The answer awaits in forty days time…

just thinking out loud, Uncategorized 2 comments on Building fences makes us better

Building fences makes us better

We had a really intense week this past week at the office. It was a really good week for me, but definitely one that we will all need to reflect on, and improve upon if things are going to get better.

One issue that really stands out to me, and I’ve been spending a few days thinking about it, and trying to make sense of, is the idea of being really good at one’s job. A lot of buzz was made about the CEO of Zynga giving ownership of one thing to each employee when the NYTimes article detailing his leadership approach came out. I found a lot of gems in the article such that I really do think I’ll come back to it one or two more times before all is said and done. I wanted to start by taking his notion of owning your own role, and taking it back one step to the notion of roles in a company to begin with.

In the fantasy that I arrived with when I came to the Valley, I imagined a start-up world where everyone was responsible for doing everything, and it was the organized chaos that somehow led to a successful company. Of course there are buckets within that chaos. There are those that have to ultimately make and be responsible for the decisions. There are those who are the flag bearers of the common goal to which the team is marching. Finally, there are those who are the foot soldiers of the charge who are, at the end of the day, responsible for execution. Here’s the amazing bit of those buckets though… at any given moment a person can be in all three buckets or any combination of them (of course being in none is a bad idea, as it means you’re about to get fired).

As it turns out, this is one of those thin lines between which organized and chaos must tread carefully. When the buckets overflow, there are lots of hurt feelings and bruised egos. On the flip side, empty buckets mean there are important roles that are going unfulfilled, and empty buckets lead to a chaos which hurts execution and drags on success.

This past week has shown that balancing the two is very difficult, and I think it starts with defining both buckets and what an individual’s role is in that given bucket.

That’s where I think building fences comes into play. Fences do prevent whatever is inside from getting out, but at the same time they can play the role of keeping out what isn’t supposed to get in as well. If fences aren’t defined, then people have a tendency to run into each other, and given that a start up is a herd of bulls running wild in a field, this can only lead to problems. So clearly, there can be a positive purpose for a fence. That said, I’ve never thought that fences were part of a conducive environment for progress or development, and so it’s an awkward bit of advice to tell people to build a fence to make things work better.

Why then do I think that we need the fences? Fences aren’t necessary when all three buckets are filled or where there’s a level of maturity and understanding to perform without boundaries. I’m worried that our middle bucket is either not filled, or isn’t filled properly. I think this is a historical issue, and stems from having too many chefs and, in general, lacking a kitchen. I think we’ve started resolving that issue, but I think building fences will make us better in the short term so that in the long term we won’t need the fences in place.

Reblog this post [with Zemanta]
just thinking out loud, Uncategorized 3 comments on Reflecting on a good week

Reflecting on a good week

I had a really good week this week.

That’s a very rare statement for me over the last two years. The general problem has been me. Sometimes the problem has just been the uncontrollable set of circumstances which life delivers on us. With all of that though, I had a really good week.

I think the critical element has been doing a better job of externalizing the factors that have been holding me back. This was unusually hard for me to do. I’ve always thought that I did a good job of letting people know what I think or how I feel. I was at one point the kind of person who bottles it all up, and then has a serious nervous breakdown when it all becomes too much. When I realized how unsustainable that was, I quit doing it. I think the major issue this time around was the topic itself. I’ve never really broached concerns about myself over the team or about what I want in regards to what others have. That just isn’t my style mainly because it feels too selfish, but I think my concern was more about understanding where I’m going, and I thought that was a question that I wasn’t “supposed” to ask. Turns out just being honest about things is really the best policy. It isn’t selfish to understand or to know. In fact, it’s probably more selfish to just try to figure it all out yourself because you deprive others of their ability to help you and grow the {relationship, person, situation} in a forward direction. As I’m writing this, all of that just seems so obvious now, but man that took me a lot to figure out.

With that 10,000 lbs rock off of my back, I was able to reconnect with the things that matter the most to me. I think number one on that list is being excellent at what I do. I don’t want to aim for a round of golf in the 100s, I want to aim for a round of golf in the 80s. I’ve hit enough balls at a driving range to finally realize that that’s insane. Doesn’t matter. I will, in 2010, hit a round of 18 holes of golf in 89 strokes or less because for me that stands as a marker of excellence.

To drive for excellence one needs an immense amount of focus and support, and I made sure to reinvest in both of these areas. I’m not good at focusing on getting tasks done unless I do so actively. I’m not sure why focus is difficult for me. What I have learned though is that a pad of graph paper, a list of tasks, and a set of headphones goes a long way in making sure I get things done. I think a big part of being successful around this focus issue will be being more organized in general. What I’ve found is that organization in design, thought, goals, etc. allows me to quickly weed out what isn’t important, and lets me as a result get to the end goal more efficiently. Organization and focus are both areas where I’m not strong, but I’m re-investing in them because in the near future I want to be.

I think the topic of support deserves its own post, and I’ll put a lot of effort this weekend into really trying to understand where the dividends and investments are in that area. Some of it is a personal set of requirements aimed at supporting my own goals, while most of it is making sure to invest in supporting others as the equal and opposite force of them investing in me. I’m really fascinated about the idea of building successful teams and cultures, and have been thinking on that topic for a few day snow, and I’ll be sharing more over the weekend.

Finally, I’ve made a commitment to myself to invest in my own confidence. To make really good weeks the norm, and in an effort to have a great week every now and then, I need to be confident that this should be the standard quo, and that in fact I do deserve to succeed because I do work hard, and I have, in this small window of time, earned it. My goal here is to expand that window. I have confidence that I will lose 25 pounds by June. I have confidence that I’m a better engineer today than I was one week ago. I also have confidence that I’m making better decisions about me, and that’s a really encouraging sign. I don’t quite know where this road goes, but I guess we’ll all find out.

I don’t name names on this blog, as that’s a bit too gossipy, but I do think it’s fair to say that this week was a good week because of the people who are in my life. This is a very PBS/Sesame Street moment. Instead of the letter A is presented to you by, it’s this good week was brought to you by {insert a litany of friends, co-workers, and random people on the street}. I think the icing on the cake was finding a fantastic Middle Eastern restaurant down the street from the office where the hummus is quality.

I’d like a lot more weeks like this one.

Technology, Uncategorized 0 comments on Another bug bites the dust

Another bug bites the dust

I’ve been working on an interesting project lately that I hope to share with everyone soon. I keep running into the oddest of problems trying to get things going. It’s almost as if just getting the whole thing started is the biggest challenge. After that… it’s going to be a lot easier!

I develop on a MacBook Pro. I’ve had this computer since junior year of college when my iBook died right as I had finished page 18 of a 20 page paper on using Bayesian supported neural networks to predict the NCAA tournament and beat my mom in the annual family competition (more on that in March). I therefore use MacPorts to maintain packages on my system. I just don’t think compiling by source, keeping up with all of the packages I need, version matching all sorts of dependencies is a good use of my time.

This new project is the product of a lot of thinking and learning. One big piece of learning on my end involves understanding the value of using frameworks to do a lot of the grunt work that comes with web applications. I’m using CakePHP for this project. Turns out that CakePHP 1.2 and less is not compatible with PHP 5.3. Okay. That’s easy to fix. I’ve moved on to CakePHP 1.3, and the next major release of CakePHP will be API compatible with 1.3 per this blog post.

Next step is getting the database connection working. This drove me crazy. So it turns out that PHP 5.3 comes with MySQL Native Driver. I thought this meant there was going to be a problem with CakePHP as a result. Turns out that wasn’t the case. I was getting all sorts of errors about the extensions not being supported for basic functions like mysql_connect. It just didn’t make any sense. I tried making sure that the sockets were correctly defined in the php.ini files. I tried re-compiling PHP.

The solution. Before I divulge the solution, I think it’s fair to say that the source of all knowledge when it comes to PHP comes from either the phpinfo() function or from doing basic command line actions with PHP. It really gives you a good idea of the health of the PHP universe. The solution turned out to be that the extensions weren’t being loaded because the extension directory in the php.ini file was ./ where it needed to be /opt/local/lib/php/extensions/no-debug-non-zts-20090626 because that’s where the extensions seem to be installed when built by MacPorts.

Now that things are finally setup, it’s on to building out the project. More on that by the first of March!

just thinking out loud, Uncategorized 0 comments on Ethics of Haitian Relief

Ethics of Haitian Relief

My old friend Ashley sent a blog post detailing how the US Congress has passed a resolution fast tracking giving to Haiti onto people’s 2009 taxes such that they can maximize their deductions against the past year even though the tragedy happened this year. Here is a link to the post, and an excerpt:

Less than two weeks after the earthquake, on January 22, 2010, Congress pushed through a provision to benefit those that donate to Haiti relief efforts. The provision would allow taxpayers who itemize deductions to deduct charitable donations to qualified Haiti relief organizations on their 2009 tax returns. The donations must be in cash or cash equivalent. This means cash, check, credit card or debit card contributions – as well as text message donations. In kind donations, such as donations of water or medical supplies, won’t count for purposes of the accelerated deduction; those deductions will have to be claimed as they normally would, on a taxpayer’s 2010 return. To qualify, contributions must be made after January 11, 2010, and before March 1, 2010.

My big question on this topic in general is a quandry as to whether it’s ethical to allow for donations that don’t support local communities to be used in tax deductions in the first place. From what I can tell, the deductions are meant to reward people for investing in their communities. Deductions come for houses, having children, giving to charity all of which allow a community to grow and thrive (which are not things government can do itself). When one donates in a way which is effectively foreign aid, what we’re saying is that $1 that should go to after-school programs now goes to Haiti, and the government still doesn’t have that $1 to put towards after-school programs. Seems like this skews both the intent of the law, and the government’s ability to provide a social safety net here in the United States.

What do you think?

Technology, Uncategorized 0 comments on Being RESTful ain’t that easy

Being RESTful ain’t that easy

This is a more technical post, and so if you aren’t interested in some nuances of browsers and Internet architecture, then you should pass on this one. It’s okay, you won’t hurt my feelings.

Man, we ran into a doozy today. We had one report from a user that people weren’t able to enter their moderated video chats. We weren’t sure that made any sense, and we couldn’t find any records of failure to enter the video chat in our error logs. It turns out we made two mistakes. First, we didn’t gather enough information. Second, we didn’t understand the errors we were getting back. Both, thankfully, are now fixed, but the journey was an interesting one.

First, let me give a little bit of background on our new architecture. We’ve just released our new call moderation stack at TokBox, and, to do so, we really sat down and thought through how to build this functionality in an Internet architecture appropriate approach. We came up with a really solid, RESTful API. The basic premise here is that all actions have a URI, and are a very specific contract between two endpoints (one being the user making the call, the second being our server). It was all very well tested on a Mac in both FireFox and Safari.

Here’s where the real journey begins. In RESTful fashion, we are defining the user’s role in a moderated chat by transitioning them from an “ASK” state where they are essentially knocking to get in, into a “PARTICIPANT” state where they have joined the call. The modify action uses the POST verb (though technically it should use the PUT verb, we weren’t confident in the Flex framework’s HTTPService class to handle this properly, and have instead limited ourselves to POST and GET), and then redirects to the user info action which returns the updated role, as well as any profile information about the user that might be pertinent to the video chat.

Now here is the gotcha. We use an HTTP 302 redirect to move between the actions. In all browsers not IE, it looks as if the 302 happens by first doing the verb of your choosing (in our case a POST), and then a GET to the redirected site. According to the spec as we read it, this is probably wrong. In fact, the redirect needs to ask the browser which verb to use in the HTTP/1.1 spec. Seems as if the HTTP/1.1 spec is either being misinterpreted, or the HTTP/1.0 spec is being maintained to enable backwards compatibility with how sites acted. Why did this cause us a problem? Because in IE7 & IE8, the 302 redirect does a POST (essentially repeats the original verb action). Our user info action was scoped as only accepting GET requests. The result… guest users couldn’t enter a moderated video chat from the IE family of browsers because the redirect fell into an error state, and didn’t return the proper response.

It took watching the TCPDump coming across the server across multiple browsers and API calls to figure this one out, but in the end we learned a very valuable lesson about how redirects work, making RESTful APIs work cross browser, and making sure we test across all combination of browsers and scenarios.

Extreme Blue Internship, just thinking out loud, New Year Resolutions, Uncategorized 1 comment on Good bye old friend

Good bye old friend

My best friend Matt D. and I have a tradition to which we’ve held since the summer of 2006. Whenever we go out to eat, to complain, to laugh, to cry, we always end up at Outback Steakhouse. There was one down the road from where we stayed during our IBM internship, and from there a tradition was born.

Since that summer the standard plate has been:

  • Outback Special ( size dependant on hunger )
  • Side of mashed potatoes
  • Bloomin’ Onion ( of which 90% is always finished )
  • Salad ( dressing is consumer dependant )
  • Coke to drink ( they never had sweet tea )

We went, and ordered the exact same thing, for the whole of the Summer of 2006. I came back out a few times for interviews or just to visit Matt, and we always went. I moved out to the Bay Area, and at our footsteps were all of the shops and restaurants of downtown Palo Alto and Mountain View, but we never broke. You can take a hick out of the country, but you can’t take the country out of a hick ( or so the saying goes ).

Alas, all good things must come to an end. And so it is for the Outback tradition. Tonight was the end of something truly special to us both. Yeah, it was just a restaurant, and not a great one at that, but we really grew up together in those oversized booths eating greasy fried onion strips, and mixing our mashed potatoes with steak. We escaped into our own world. Jobs, dreams, and heartbreaks were all up for discussion between courses. We genuinely fulfilled the Jimmy V legacy of laughing, crying, and spending time together thinking about how we were going to save the world.

So, what changed? It wasn’t the steak or the Bloomin’ Onion that’s for sure. It was us. In front of us is a brave new world filled with adventures and turns we’ve never imagined. And as we embark into this brave new world we bid our past good bye with the anticipation of building new, better and a bit healthier traditions. But at the same time we do so with a small tear in our eye.

I’m really optimistic about the future, having now looked back on where we came from. To this day, I’ve kept an e-mail I got from Matt in the Fall of 2006 after our paper was presented to a packed audience by our mentor, and friend, Eishay Smith. It’s a one liner:

Subject: Us
Body: Yeah, we kick ass!

And watch out because we’re going to do it again