How not to be a blowhard – do the exact opposite of Kanye…

Posted by linusl Tue, 22 Apr 2008 17:48:00 GMT

This weekend I went to the Kanye West concert down in San Jose. I already had my reservations about him from his outburst at the MTV music awards and his comments during Katrina. However I had free tickets and I love the song ‘Hey Mama’ so why not…

The concert was amazing: good food, good drinks, and good people. My only problem was with Kanye’s one man act. The whole 90 minutes or so, he was the only person on stage. He didn’t even ask Lupe to come out for their song ‘Touch the Sky’. To top it off, after the concert, I met his drummer and apparently Kanye moved the band’s stage three feet lower, JUST to make absolutely sure they weren’t seen by the audience.

This got me thinking, I hope that when I am met with incredible success, I never become like that. Don’t get me wrong, Kanye has incredible talent and has gotten to where he is through hard work, dedication and commitment. However I am positive he did not get there alone….

The day I take center stage, I am going to make absolutely sure that it is shared with the people who have helped me get there, regardless if it was directly or indirectly. I owe everything I have: my personality, my wants, and my goals to my friends, my family, and especially my business partners. I hope that you never see me like that person below because it must be a very lonely, lonely, world….

1 comment

The NEW Web 2.1 - The Viral Web

Posted by Jeff Tue, 22 Apr 2008 17:18:00 GMT

So what the heck is web 2.1??? First, the meaning of web 2.0 isn’t even clear, so how can you increment versioning on something that no one really knows the meaning of?

Well - here is a little history of the web that should qualitatively give you an understanding of what I see Web 2.0 is and what is now Web 2.1, which I will call The Viral Web.

The web as we know it today came a long way. First, you had Yahoo listing pages on one website like the yellowpages, then more data grew and Google started to make searching easier and more accurate. As for the content of webpages up to around 2000 were generally made by one person and then consumed by the masses. Examples of this are like personal home pages, online newspapers, and corporate websites.

Then the web started to evolve, things like Wikis (collaboration of many people for consumption by many people), YouTube (many people uploading videos to be viewed by even more people), and Facebook (many people customizing profile pages and uploading pictures to be consumed by even more people). In one sense, Web 2.0 involves giving users power to create content and using people’s social network to distribute information.

For a majority of websites, the discrimination is less clear - what do we make of websites such as eBay, where users put up items to be sold to other people. Even though eBay has been around for a while, it shares the characteristic of empowering users. There are many more examples in this area, and you can feel free to dub them whatever you want.

Recently, ‘Viral Marketing’ and ‘Viral’ growth have become the Fad of the Valley. Everyone wants their application, website, or plain old company to ‘Go Viral’. What is this really about?

Well this is really about harnessing the users ability to create content (such as in Web 2.0) in a different manner. In fact, the content that users create are actually messages sent to other users. For example, within the Facebook platform, we see this happening on many applications that attain millions of installations after just a few weeks! This is already happening outside of social network environments Ning has accomplished this by letting users create their own social networks.

The Viral Web involves startups taking the learnings from Social Networks and companies like Ning and applying the concepts broadly across other traditional internet companies. Having users participate in Viral Loops that the website uses is going to give the traditional internet companies a run for their money.

1) Essentially Nil marketing costs 2) Brand Names develop quickly 3) Further leveling the playing field between large and small companies (small companies can get big very quickly) 4) Lower overall cost structure of startups will make things cheaper in general for consumers (yay for us!)

The next few years are going to be quite exciting - get ready for the ride!

Posted in ,  | 1 comment

Talking to Chuck

Posted by James Thu, 17 Apr 2008 20:26:00 GMT

Today I went to open an investment account at Charles Schwab. Instead of opening an account online, I actually went down to their offices and talked to a real person. Since I live in San Francisco, I went down to their headquarters at 101 Montgomery Street at 8:30 am.

After I finished everything and on my way out, I took the elevator. Waiting with me, was an older man, with white hair, in a very elegant blue pin-stripped suit. We got in the elevator together.

We were the only ones in the elevator and the old man asks me, “so, how did Schwab treat you today?”

I looked at him and answer, “good, good. I just opened my first account.”

He looks at me and asks, “how old are you?” (For some reason, I get asked that question all the time)

I reply, “25.”

He goes, “ha… that’s a good time to start.”

Then we arrived at our floor (we took it for only 1 floor). We then went our separate ways. And I was thinking to myself: who was that guy? Could it be… nah… really? Did I just talk to Chuck?

So I went home and googled Charles Schwab (the man). And this is what I found. Sure enough… that was the old man I saw in the elevator.

So, I went to Charles Schwab and talked to Chuck.

Posted in ,  | no comments

Meeting Buzz Aldrin!

Posted by Jeff Tue, 15 Apr 2008 16:51:00 GMT

For those of you who don’t know Buzz Aldrin - he’s the 2nd man on the moon!

I became a space fanatic when I was 12 years old - okay, I admit, the coolness wore off when I realized that my bad vision would prevent me from being an astronaut. (tear) But nevertheless, I pretended to be an astronaut by looking at a bunch of pictures and watching NASA WebCast (this was ‘98 mind you and webcasts were ‘rare’ and ‘difficult’ to get working).

Oh - and the most important part of the entire space excursion was playing Buzz Aldrin’s Race into Space. This was by far the most difficult game I have ever played. The goal is to do a moon landing and make it back alive while racing against the USSR. There were a great many quirks about the game - if your rocket blew up, you to start R&D on rockets from the beginning. You train your crew, and then have to keep them motivated by putting them on missions. I’m not a gamer at all, and this was one of the only games I really liked.

So - Saturday we went to Yuri’s night Celebration at Nasa where we actually got to meet Buzz Aldrin. That was awesome. I asked him what he thought of the space program - interestingly, he said “We should stop putting out the fires of today, and instead take a longer term look into the future” Wow - digging a little deeper, I found that from Buzz’s point of view, NASA can do a lot better than it has in the last 2 decades.

Delivering on visions such as going to Mars - I asked Buzz what he thought. His response was “We have to think about today - not how to get to Mars, but once we get there, what we are going to do and plan R&D accordingly” One example is rapid deployment of teams - it takes 6 months to get to Mars with a crew of 6. We are definitely going to need to think about how we can do ANYTHING with 6 people. That’s so little!

All the best to NASA - it was an awesome event!

Posted in ,  | no comments

Scaling write intensive MySQL DBs

Posted by James Mon, 14 Apr 2008 01:40:00 GMT

Recently I’ve been doing work on scaling some of our medium sized web applications. In our case, the bottleneck is in the data layer, which is often the case for most web applications. And of course, scaling the data layer is always the most challenging.

Most people, instinctively think memcached when you tell them to scale the data layer. While memcache is great, it’s not the big hammer that everyone think it is. In most cases, memcache can speedup reads significantly, especially for data that is accessed repeatedly, however, it does very little to speed up writes, with few exceptions (as I will illustrate shortly).

The MySQL database in question, handles approximately 97% writes and only 3% reads. There are a few commonly known techniques for scaling this type of database.

  • Group the writes in batches, thus doing fewer writes.
  • Use insert delayed or update low_priority
  • Insert into memory table and later batch insert it into the persistent table.
  • Use master-slave setup and write to master and read from slave.
  • Write a customized data layer to handle the writes asynchronously.

Obviously, these increases in difficulty as you go down the list. For our application, most of the writes can’t be batched. So we had to start with technique #2.

We really don’t worry too much about data consistency and transactions, because of the nature of the application, so insert delayed works just fine. The problem is that insert delayed and update low_priority queries only work with myisam and memory tables in MySQL. Rails by default uses innodb tables, so the tables in question must be converted. Depending on the size of the database, this could mean some downtime for the app. Additionally, myisam uses table-level locking, so we have to be really careful in how we use the database. This is where memcache comes in handly. I was able to cache the results of some commonly executed queries so they no longer hit the database, and the performance improved significantly. Using technique #2 along with memcache sped up our application 2 to 3 times.

The actual implementation was pretty simple. I wrote a Rails plugin to add a method save_delayed to ActiveRecord::Base. The are two problems with this. First the timestamp fields (created_at and updated_at) no longer auto populate. So, I added methods in the plugin to fill them out if they exist. The second problem is more serious. The records no longer automatically get assigned a primary key id when they’re saved. Because the save happens asynchronously, the id will always be 0. There’s no way around this except to not use the record after it’s saved. And if you need to access it in anyway, you should do a find and construct a new record object instead. This is okay for us, because we do a fire-and-forget save operation anyways.

The drawback to using myisam is that at some point, the table locking just won’t scale anymore. Innodb is a much better storage engine for larger datasets and we’ll have to move to technique #3. We can use insert delayed into a memory table, then have a process that moves data from the memory table to a persistent innodb table. This reinsertion process will have to be very well implemented because you don’t want to do deletes and inserts and start inserting multiple times or losing rows. I haven’t tried this, but will soon.

Scaling data layer is one of the most challenging part of my job. I love to see the application fly after making a few changes. This is partly why my job rocks!

Posted in  | 1 comment

Olympic Torch

Posted by linusl Thu, 10 Apr 2008 00:13:00 GMT

Today the team took a trip to go see the Olympic torch! We really wanted to take advantage of the benefits of living in the city.

We arrived at the planned route at the right time but unfortunately no one was there. The only people to be found were pro-China demonstrators on one side and China protestors on the other. Though it was quite an event, after 20 minutes or so we realized there was no way the torch would ever come through where we were. In addition the live blog feed we received from our phones said the torch had gone “missing” in a warehouse near the ballpark. Deject we headed back to the office.

To make matters worse, we took a wrong turn on the way back, which landed us in traffic gridlock. Curious as to why a usually free flowing street was suddenly at a standstill we looked around and saw the street in front of us had been closed. Well, we all put two and two together, parked the car in a random lot, and immediately ran towards the street closure.

It was a fortunate coincidence that we just happened to bump into the new path of the torch! Here are some pictures:

Posted in  | no comments

We are going to blog more!

Posted by Jeff Mon, 07 Apr 2008 16:45:00 GMT

I know - we haven’t been very good at keeping this blog updated…

Well - in case you didn’t know, we work on applications for social networks such as Facebook - and in case you didn’t know, these networks have been changing a whole lot. Facebook changed its invite system and started to limit the growth of applications. As announced earlier see announcement - this is going to be yet another battle for us!

Keeping in tune with the changing dynamics - what is going on with Open Social? We’d love to have a bunch of apps for you guys but your platform is so developer-UNfriendly!

Anyways - expect to see more blogs from us!

Posted in  | no comments

The beginning of Social Applications

Posted by Jeff Sun, 24 Feb 2008 03:57:00 GMT

First - I guess I should introduce myself. I work with James and Linus at CLZ (I’m the ‘C’) We have a lot of thoughts about social applications, networks, the internet, and the world at large. This will be the place where we write them down and share with you. We love to bounce ideas off of people, so if you don’t agree - feel free to write a comment!

Well, I should really rename the title of this article because social applications have been ‘started’ since mid last year. But really the fight for ‘which is the best social network’ to be on is far from over. So far Facebook being first to the social web plugin architecture has been great - they enabled application developers like us to get hundreds of thousands of users with in a very short amount of time.

But - MySpace recently announced that they are launching their API. This battle is getting exciting. And what? Did I also hear that google is looking to buy Bebo? Talk about a strategic blockade to getting Facebook’s platform adopted. (story) NewsFlash: if you are a social network and looking to cash out, you can go get the FB platform and then ask google to buy you.

Posted in  | no comments

Welcome to the CLZ blog

Posted by James Sat, 23 Feb 2008 01:28:00 GMT

After three months of operations, we finally got around to putting up a blog for ourselves. So, let me introduce CLZ for the very first time.

My name is James, and along with my roommates Jeff and Linus, we comprise of the 3 man team of CLZ Concepts (CLZ is a concatenation of our last initials). We are an elite team of technologists with an acute eye for making good businesses. Small teams of entrepreneurs hoping to hit it big is a dime a dozen in Silicon Valley, but what makes us unique is that we are a perfectly balanced team.

While we all have engineering degrees, our skill sets aligns to an extraordinary degree. Jeff is our resident business development and deal making guru. Linus is an all-arounder with special emphasis on UI design. Lastly, I am the expert in scalable software architecture. Our team live together, work together, party together and go on vacation together. We’re almost at the point of being able to finish each other’s thoughts. We believe that this team is our greatest asset, and so far, we haven’t been disappointed.

So, follow us on our journey, where we get to change the world, one startup at a time.

Posted in  | 2 comments

Older posts: 1 2 3 4