SaaS Go-to-market Framework

August 19, 2009 – 7:28 pm by coachwei

OK, you are building a great SaaS company that will change the world. How do you actually get there? Ok, so we have to think really hard about how to go to market. What is the framework that one should follow? Here is a list of things that I have been thinking about  as a guiding framework - really look forward to comments and appreciate feedback (I admit that I'm an idiot and are still learning the basic grammars): Market Visibility - you want your firm to be heard and to be known in its target marketplace.  Traditional marketing would aim for visibility as well, though the means to get there may be different. So what are the means that you are going to take to make your SaaS service visible? Positive Branding - you want your firm to be associated with a positive reputation, thought leadership, and credibility. ...more »

Build High Performance Web Apps

July 2, 2009 – 7:37 pm by coachwei

Below are the slides for a recent techstars session: It covers some basic stuff for web performance, scalability and availability, such as: Common architecture pattern for horizontal scalability; How to do load balancing; Cost effective load balancing options; Cloud computing does not solve scalability issue; how to optimize web performance; A list of free tools available are also mentioned, such as YSlow, RockStar Web Profiler and RockStar Optimizer. more »

Cloud Providers and Locations

June 6, 2009 – 12:01 am by coachwei

Below is my list of cloud infrastructure providers and their data center locations (as of May 2009): Cloud Infrasturcture Providers US: Amazon EC2, RackSpace, GoGrid, SoftLayer, NewServers, ATT, Verizon, Sun Cloud; EU: FlexiScale, ElasticHosts, Amazon EC2, ATT, Verizon; Asia: ATT, Verizon(?), RackSpace(?), 21ViaNet' CloudEx(?); Further: RackSpace has data centers in US, Europe (London) and Asia(Hongkong), but does not tell you which data center(s) offer cloud computing capability. I suspect it is only within 1-2 US data centers now(update: RackSpace supports cloud computing at its Dallas and San Antonio data centers at this moment, according to RackSpace twitter response); Savvis claims support for cloud computing, but one can not find anything meaningful from their website (the site is almost designed for anti-communications); Sun Microsystem made a big deal announcing Sun Cloud, in particular, saying that they will provide a storage service(similar to S3) and a compute service (similar to EC2). Is this real? Is it still ...more »

Web Profiler Got Acquired

April 1, 2009 – 12:28 am by coachwei

Some of the folks may know that I wrote some code last year (when I was really bored). One of them is called "Web Profiler", a 3-D web profiling tool that produces deep information about web performance. Part of the inspiration of Web Profiler is due to my years of work related to Ajax and web 2.0. Starting from many years ago when I wrote an Ajax-based world processor to my Rich Internet Application tenure, I always loved what Ajax can do for my web apps, but I was also always intrigued by its performance implications. Further, every time when I look at web performance, I got puzzled and mad. The tools, technology and offering people use today to gauge web performance are essentially what they were 10 years ago, despite that the web has changed so much. From big vendors to small shops, most web performance tools and ...more »

Starting a company during a down economy

March 16, 2009 – 11:24 am by coachwei

Not sure whether this is lucky or unlucky, I am probably wedded to the pattern of "starting a company during a down economy". For comrades who are starting a company during the current couple of years, you are probably wedded to the same pattern too. To me, the root trigger of "falling" into this pattern is that I started Nexaweb right after the dot com burst and raised Series A in 2003, the year of the lowest venture capital investment over the last 15 years. After a few more years of growing Nexaweb and finally getting ready to start something new, the economy also went through its own cycle. So here I am, trying to start a company during a down economy again. What's next? It is highly likely that the time when I start yet another company in the future will coincide with a similar moment ...more »

Please, Economic Stimulus Plan - 10,000 Startups with $1B

March 7, 2009 – 2:23 pm by coachwei

This is a post echoing what a variety of people have been talking about for the last few weeks - I don't have a lot  to contribute, but am compelled and felt worthwhile to echo other people's voice here. On Februrary 21 2009, Thomas Friedman of the New York Times wrote “Startup the Risk Takers” where he said: “Reading the news that General Motors and Chrysler are now lining up for another $20 billion or so in government aid — on top of the billions they’ve already received or requested — leaves me with the sick feeling that we are subsidizing the losers and for only one reason: because they claim that their funerals would cost more than keeping them on life support. Sorry, friends, but this is not the American way. Bailing out the losers is not how we got rich as a country, and it is not how we’ll get ...more »

HTTPS/SSL Tunneling and Proxy Server

November 14, 2008 – 10:29 pm by coachwei

HTTPS Tunneling, also called HTTPS Proxy, SSL proxy, or SSL tunneling, refers to sending HTTPS content via a proxy server. This is a very common usage scenario over the web. Unfortunately, I have not found any Java server that supports this yet. Tomcat chokes up quickly if you tunnel HTTPS messages (tried both Tomcat 5.x and 6.x). Other Java servers don't even come close. Jetty is the furthest and closest to supporting it. Greg Wilkins even wrote two examples showing Jetty's proxy support (ProxyServlet and AsyncProxyServlet, though both of them only partially work when I tried to run them on on Jetty 6.x and Jetty 7.x). The main problem for all these servers is that they do not support HTTP Connect. We all know HTTP GET, and HTTP POST, and all servers support these common HTTP methods beautifully, except for HTTP Connect. The ...more »

Who Should Be USA’s CTO in the Obama Administration?

November 7, 2008 – 12:23 pm by coachwei

Jeremy Geelan is speculating who should be America's CTO in the Obama administration. He says: As former IAC executive Julius Genachowski was appointed yesterday to President Elect Obama's transition team, speculation is growing as to the possibility that Genachowski or someone like him may one day soon become the country's first Chief Technology Officer. Barack Obama's transition team also includes Sonal Shah of Google.org and Donald Gips, VP of corporate strategy and development for Level 3 Communications. Other candidates for the nation's CTO position being mooted in the press are: Google's CEO Eric Schmidt, Sun co-founder Bill Joy, etc. First of all, the notion of having a CTO for USA is very exciting. It's a job that I'd really want to have - I'm working on my resume right now!!! More importantly than who will be the CTO is which industry this person should be coming from. I'd really really recommend the following ...more »

Razor Optimizer, a New Approach for Ajax Optimization

November 5, 2008 – 8:21 pm by coachwei

I am excited to announce the early beta release of Razor Optimizer, a JavaScript optimization tool for reducing code footprint and increasing runtime performnace. As a cross-browser web application itself, Razor Optimizer can be access either online as a service, or to be downloaded to run locally. Razor Optimizer is based on a new approach for JavaScript optimization called "razor". While other optimization techniques such as JS minimization and concatenttion are based on static lexical analysis, Razor uses dynamic runtime profile information to achieve breakthrough results of 60% to 90% savings. Why Razor Optimizer? It is safe to say that Ajax is the technology foundation for Web 2.0. There are several hundred Ajax toolkits in the marketplace and new ones are still emerging. While Ajax is getting real popular over the web, what people may not know is that Ajax(JavaScript) code is becoming the top 1 or 2 ...more »

JavaScript Optimization Techniques Today

October 27, 2008 – 3:18 am by coachwei

The wild popularity of Ajax fueled widespread usage of JavaScript. Almost every web 2.0 application relies on JavaScript to deliver front end interactivity. A growing list of JavaScript libraries (over 200+) are being created by various Ajax developers, some of which have gathered significant community adoption. Though the usage of JavaScript code can lead to significant better overall user experience, it can also bring problems if not used properly. Some of the common performance related problems are: Sluggish network and runtime performance. It is common to see web pages that load several hundred kilobytes of JavaScript. The size of JavaScript libraries ranges from kilobytes to several hundred kilobytes, or even megabytes. Big footprint introduces not only longer download/parsing time, but also bigger client side memory/CPU footprint. For some browsers, parsing/processing large script can take an excessive amount of time (Firefox bug #313967); The browser freezes from time to time. There are ...more »

Yahoo’s Performance Rules

October 27, 2008 – 3:04 am by coachwei

Yahoo’s Performance team summarized their experience in web performance optimization into 14 rules in general (Reference 4, http://stevesouders.com/examples/rules.php): 1. Make Fewer HTTP Requests 2. Use a Content Delivery Network 3. Add an Expires Header 4. Gzip Components 5. Put Stylesheets at the Top 6. Put Scripts at the Bottom 7. Avoid CSS Expressions 8. Make JavaScript and CSS External 9. Reduce DNS Lookups 10. Minify JavaScript 11. Avoid Redirects 12. Remove Duplicate Scripts 13. Configure ETags 14. Make AJAX Cacheable more »

Front End Performance and Today’s Typical Web Sites

October 27, 2008 – 2:49 am by coachwei

In order to understand how the front end, especially JavaScript, is impacting web performance today, some typical web pages were studied. The following table shows content composition of the front pages of two representative web sites, American Airline (www.aa.com) and FaceBook (www.facebook.com): Table 1: Content Composition of Selected Web Sites aa.com front page Size (%) Facebook.com front page Size (%) Total footprint: 810KB (100%) 687KB (100%) JavaScript: 334KB (42%) 532KB (77%) HTML 182KB (23%) 23KB (3%) Images (.gif, .jpg, .png) 201KB (29%) 78KB (11%) CSS files 69KB (9%) 45KB (7%) Figure 2: Front Page of aa.com and facebook.com In both cases, the initial HTML text is only a small percentage of the page footprint (23% and 3% respectively). This is generally true for web pages today. Secondly, the biggest portion of both pages is JavaScript, at 42% and 77% respectively. ...more »

Web Peformance Factors

October 27, 2008 – 2:28 am by coachwei

Every web application requires satisfactory performance in order to be functional. Every web application has its own context that different factors influence performance differently. Since the beginning of the web, there have been many performance tuning endeavors responding to what the context calls for. A good metric to gauge web performance is page loading time. Page loading time refers to the time from when browser issues the page URL request to the moment when the page is loaded, rendered and ready for user interaction. Page loading time is determined by three factors: Server processing time: the amount of time that the server takes to process a page request and deliver the response to the client; Network transfer time: The amount of time that it takes to transfer the content from one end point to the ...more »

Running Toronto Marathon - 9/28/2008

September 30, 2008 – 9:28 pm by coachwei

A couple of years ago my friend Kaushal Vyas blogged about his first marathon experience. His blog entry started with some quotes from Lance Armstrong on his first marathon: “the hardest physical thing I have ever done. Even the worst days in the tours, nothing was as hard as that and nothing left me feeling the way I feel now in terms of sheer fatigue and soreness. I think I bit off more than I could chew, I thought the marathon would be easier...”. It didn't resonate with me at the time. In fact, I didn't feel anything besides saying "wah, cool". What I didn't know (I'm sure Kaushal didn't know either) is that he planted some seeds in me at the time that would only grow two years later. In Boston where I live(Kaushal lives in LA), my friend Ying actually has been running marathon many times. I always admired her for ...more »

JavaScript Execution Context, Closure, Eval and “this” Keyword

September 13, 2008 – 8:36 pm by coachwei

These are a few key concepts of JavaScript language that developers should know: execution context, activation object, variable instantiation, scoping, closure, eval and "this" keyword. Knowing these would help one tremendously in Ajax development. For example, when you write an inner function, you know that you can access the local variables defined in the outer function as if they were defined locally. You can also access the global variables. -Why? How does the host environment resolve such variables? Another example: When you pass arguments to a function, you can access these arguments as if they were locally defined variables. How does this work? A slightly more involved example that developers must have seem similar code a lot but may not know the "why": function outerFunc(outerArg){ var localVar = 100; function innerFunc(innerArg){ localVar+=100; return (outerArg +innerArg + localVar); ...more »