Put your message here! Contact me for more information
 
 







 

Archive for November, 2006


 

I was trying to setup a MySQL cluster with CentOS 4.4 and VMWare and I was initially successful at getting the NDB storage engine to work. However, I could not start the MySQL API (or MySQL client, whatever you call it) because I ran into the infamous MySQL error of “ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)“. Googling didn’t help much either because people were just asking and very few got the answer.

After a while, I was desparate. My cluster was up and I had no way to connect to it and test out the exciting cluster’s replicate feature. I went to bed at 4:00am last night and kept thinking what could go wrong? Setting up the ndb engine for the nodes was pretty straightforward but why just getting mysql client to run is so problematic? Well, here’s my solution to the puzzle:

My Setup

  • CentOS 4.4 installed from DVD with most packages unchecked, especially MySQL
  • The newest MySQL 5.0.27-max was used. See, I’m on the bleeding-side of technology.
  • MySQL is locaed in the default location at /usr/local/mysql/
  • When I installed MySQL, the mysql.server script was cp from /usr/local/mysql/support-files/mysql.server to /etc/init.d/
  • The my.cnf file is very simple like this

#file: /etc/my.cnf
ndbcluster
ndb-connectstring=’host=192.168.2.100′
[mysql_cluster]
ndb-connectring=’host=192.168.2.100′

Cause:

When the MySQL server (mysqld) starts, it created a sock file. Since I overwrote the original /etc/my.cnf without the socket parameter under [mysqld], the MySQL server (mysqld) created the socket file under /tmp/mysql.sock instead. Furthermore, I was also missing the socket parameter under [client] section in the my.cnf - I didn’t even have the [client] section.

What happens when I tried to start the mysql client (#mysql -u root) was that the mysql client was looking for the mysql.sock file but coudln’t find the path to the file. It then looked into the default path /usr/lib/mysql/ to find the mysql.sock file. Of course this doesn’t work because when mysqld was started, the socket file was created in /tmp instead. The client gave up, spit out the connect error prompt.

In brief, the cause of the infamous error is because the mysql client cannot find the socket file at run time.

Solutions

First of all, you should verify that mysqld is running by typing #ps aux | grep [m]ysqld. Then there are 2 ways to solve this: one is to fix the socket path in the /etc/my.cnf under [mysqld] and [client] like this

# file: /etc/my.cnf
[mysqld]
… # someother settings
socket=/var/lib/mysql/mysql.sock
[client]
… # some other settings
socket=/var/lib/mysql/mysql.sock

then restart the mysqld server so that the mysql.sock file is generated. The next time you start the client with #mysql -u root, you will magically get it. This fix is permanently but the catch is you will have to shutdown mysqld, the MySQL server itself.
The other way when you want to just login really fast to the mysql server, try this (actually I used this method to obtain the overall solution to the infamous error)

  • #find / | grep mysql.sock
    this will do a look up on the entire disk and look for the mysql.sock file. You will get back something like /tmp/mysql.sock. This is the socket file we will need to use.
  • #mysql -u root –socket=/tmp/mysql.sock
    this will tell the mysql client to login as root user and use the socket file located in /tmp/mysql.sock

Boom, you should get into the suddenly-loved mysql> prompt. I was so excited when I was able to fix the client and was able to access to the mysql prompt.

I hope this help you all. With this success in installing the MySQL 5.0.27 cluster, I am planning to do a screencast of setting the whole thing up (VMWare is just awesome. It allows me to have 3 CentOS 4.4 servers at the same time, making this installation a breeze)

view comments
 

Coincidentally with the HP scandal, I’m working on an email project, where thousands of emails are sent out every morning to important people. The sender’d like to know the open rate of the emails. The technique used is pretty standard using “web bug”. They implemented a 1×1 transparent gif image whose source url is something like mydomain.com?userID=1234&otherParam=asd. The problem is: the collected open rate is not at all accurate because many of the recipients are using Outlook 2003. To avoid cross-site scripting (XSS) and other possible vulnerabilities, by default, Outlook 2003 (also Thunderbird 1.5) blocks all external images and display them with great skeptical even when the user chooses to unblock the images. As the web bug image is not requested, the collected open rate is way low as most users don’t bother unblock the images (Outlook’s warning text about external images is too blended in so I guess most users don’t even see that feature)

After messing with our own code to keep track of the open rate for the emails, my work buddy and I were set out to use Readnotify.com. We found out about ReadNotify.com mostly through Google. Some sites (wikipdia, for example), said that Readnotify.com was used during the HP’s scandal. I thought that Readnotify.com must be doing some neat tricks to by-pass the strict restriction of Outlook 2003. I was wrong. **Readnotify.com could neither detect if the email has been opened in Outlook 2003 (or Thunderbird 1.5) with the images blocked.** Don’t waste your money on the subscription if your audience are mostly Outlook 2003 users, which happens to be the case of 99% of US corporates. I’m not sure if HP’s Patty had known about this when she probed the emails.

===== Here’s how Readnotify.com do it: =====
When you send an email to your-receipient@somedomain.com.readnotify.com, Readnotify.com will automatically appended some HTML code to the email. This works only for HTML-based emails. For text-only emails, Readnotify.com employs the traditional “read-receipt” mail header which the reciever has to agree to send back a “read receipt” to the sender, which is Readnotify.com, not the actual sender.

With that’s said, below is a copy-paste code segment that Readnotify.com appended to an email


 
The sender of this message requests confirmation when you read it. Click here to confirm.
background
=http://0320.185.64275/nocache/3589j7gxbgtw6P/rspr47.gif>

‏‏‌‍‍‏‌‏‌‌‎</p> <p>‎‍‍‌‎‎‍‍‏‏‌‌‏<br /> ‍‍‎‌‌‎‏‍‌‌‏‏‌</p> <p>… lots of junk character in here …</p> <p>‏‍‍‌‌‏‏‎‏‏‍‏‎<br /> ‏‏‎‎‍‎‎‏‏‎‌‎‎</p> <p>‍‍‌‌‎‎‍‌‌‍‌‌</p> </div alt="3589j7gxbgtw61."></body><br /> </html><br /> </code><br /> Because I chose to display the “confirmation banner”, this code will actually display a colorful banner asking user to click and confirm that s/he has opened the email. I can chose to hide by confirmation banner by selecting “none” in the Readnotify.com admin page and the image will be replaced by a transparent image. So here’s our first Readnotify.com web-bug.</p> <p>I can’t help but notice that the appended HTML has strange line-breaks, I guess it’s meant to trick the internal brower of the email cient to interpret the HTML code. Readnotify.com goes even further, they embedded a wav sound-background. Oh man, I miss those happy-birthday emails with midi files on the backgrounds, back when I was still popular among teenage girls. Then Readnotify.com put a table in next with various external links to the tracking scripts, like a background for the <td>. Too bad, none of these actually do the trick. Outlook 2003 and Thunderbird 1.5 effectively block all external request. </p> <p>I’m not quite sure about the usage of those encoded characters towards the end of the email. Another HTML trap for the rendering engine? By the way, I named my test email “A friendly email-bomb” because I kept on email-bombing myself while testing out the email scripts.</p> <p>===== Final remarks =====<br /> It would be great (or really bad-news) if Readnotify.com can work. It may works with older email clients, as my work buddy were using Outlook 2002, which doesn’t have the automatical image-block, Readnotify.com’s script works fine. However, when it comes to newer email clients such as Outlook 2003 or Thunderbird 1.5, I would say the programmers have done a good job at preventing any potentical XSS, thus making Readnotify.com useless.</p> <p>I tested the Readnotify-generated email on Gmail, well, since Gmail runs inside a browser which have a much more liberal security settings, Gmail fails to filter out the embedded HTML code, so Readnotify.com was working just fine. My take on this: **Readnotify does work with regular web-mail clients** since it’s the browser that actually makes the request for the web bug files. However, in this case, do I need to spend money on Readnotify.com? Probably not - I can write my own tracker (I did, in 5 minutes using coldfusion)</p> <p>I’m not entirely sure how effective the chairman of HP was able to use Readnotify.com to track her board members’ communications, but I guess it did not go very well. Another issue with Readnotify.com is that the appended code is very visible to the tech-savvy receipient: just view the headers or the source of the email. It’s just not avery elegant way to track people. But since some spammers/ phishers abuse the use of web bug images, we, legitimate developers, all now have to suffer from the restriction of email clients.<br /> </wiki></p> <div class="post_action"> <a href="http://alexle.net/archives/147#comments" title="Comment on Web bug & ReadNotify.com: Don’t bother to notify me">view comments</a> </div> </div> </div> <div class="grid_2 alpha"> </div> <div class="grid_8 omega"> <h2 class="post_title"> <a href="http://alexle.net/archives/148" rel="bookmark" title="Permanent Link to Jeff Bezos of Amazon vs the Financial Analysts. All financial analysts are technologically-dumb. Period"> Jeff Bezos of Amazon vs the Financial Analysts. All financial analysts are technologically-dumb. Period </a> </h2> </div> <!-- Post Info --> <div class="post_info grid_2 alpha"> <div class="post_time"> November<br/>03<br/>2006 <br/><br/> </div> <div class='post_categories'> <a href="http://alexle.net/archives/category/uncategorized/observations" title="View all posts in Observations" rel="category tag">Observations</a><br/> <a href="http://alexle.net/archives/category/uncategorized" title="View all posts in Random Walk" rel="category tag">Random Walk</a> <br/><br/> </div> <div class='post_meta'> <a href="http://alexle.net/archives/148#comments" title="Comment on Jeff Bezos of Amazon vs the Financial Analysts. All financial analysts are technologically-dumb. Period">1 comment</a><br/> <a href="http://alexle.net/archives/148" rel="permalink" title="Permalink to Jeff Bezos of Amazon vs the Financial Analysts. All financial analysts are technologically-dumb. Period">permalink</a><br/> </div> </div><!-- .post_info --> <!-- Post Body --> <div class="grid_8 omega" id="post-148"> <div class="post_content"> <p>I was reading the VentureBeat’s post on Amazon on its vision and was taken to the original BusinessWeek.com article. I have to say that I have great admirations for Amazon and its amazing technology to support the $10 billion dollars annual revenue. However, reading the article, it seems to me that even the interviewer did not quite appreciate the R&D efforts of Amazon. His questions were based on a simple perspective: why are you [amazon] doing all of this stuff just to let your profit halved this year? The interviewer, the public analysts, and the investors do not understand the complexity nowadays of e-commerce, especially at the scale of Amazon.</p> <p>Amazon is a technological company, just like Google. Without its infrastructure, Amazon would not work. Period. The company has been around for a while, hence the brand is strong enough to have people’s trust. What Amazon has to do is everything it can to keep up its reputation. And it is doing an AMAZING job at that. I am a proud Amazon’s PRIME subscriber because I trust in amazon, its delivery speed, and its wide selection of books and other items. Amazon’s recommendation system is really good because I have bought quite a few books that I saw in the recommendation section. All of this is happening because the supporting technology.</p> <p>I am a web designer/ coder. I know how hard it is just to simply build a Content Management System, and it’s even harder to design the CMS application to scale up when it gets more traffics. I bet most financial analysts don’t know or even hear about things like “load balancing”, “caching”, “query-optimization”, or even “fail-over”. Let’s take Slashdot.org. Slashdot.org is 100 times less complicated than Amazon, yet if you ask any sysadmin of the site about how they run it, you will have quite a story. To actually see how hard it is to run a large-scale website, try this link and read for yourself. <a href="http://ask.slashdot.org/article.pl?sid=05/12/18/178231">http://ask.slashdot.org/article.pl?sid=05/12/18/178231</a>. Now imagine how hard it is to run Amazon.com. I bet $100 very few financial analysts would understand that. It’s like the two economics classes you’ve taken in college: micro and macro. Building a website is micro, but building it up to the scale of amazon, it’s like all macroeconomics now. You need Ph.Ds and engineers for that stuff.</p> <p>It seems to me that people don’t get the big picture of what Amazon is trying to do. Amazon is building the infrastructure of future e-commerce. That’s what’s they are doing. Just like eBay a few years ago. eBay got big not because it sold stuff. eBay got big because people used the platform provided by eBay to sell their stuff. eBay created a sub-economy, an entirely new marketplace for online auctions. And similar to Amazon, we cannot separate eBay out of its technology. If you haven’t yet seen the big picture, here’s mine: </p> <p>Imagine mom & pop shops now can offer their goods through amazon and through amazon’s network. Amazon has already had that capability, but what we see right not is still a tip of the iceberg. Through its highly distributed computing network, amazon can offer that very mom & pop online shop the same capabilities of high-end, expensively built, dedicated shops. Amazon is building up the very infrastructure for future e-commerce. And I am glad that they decided to share their success with other people, and first of all, to the developers community. </p> <p>The game is still of an early stage and since Amazon want to be misunderstood, “No, we’re very comfortable being misunderstood.” — quoted from the BusinessWeek article, a lot of people, especially the financial analysts and general investors don’t see what actually is going behind those reported numbers of dividends, annual revenues and profit. Most people can see the chart of Amazon’s stock value. The stock’s price is declining, true, but it does not mean that Amazon is in trouble. If I were Borders or Barnes and Noble, I would be very worry because soon, Amazon will be the dominate player on online retails business and both Borders’ and BN’s marketshare for books will shrink like Yahoo’s search vs Google’s search (FYI, 60% of the traffic to my blog is from Google. I see very few searches from Yahoo) And until the general public see the final outcome, Amazon’s stock will then be up 200%, 300%. If I have money now, I would seriously try to get into Amazon’s stock now. What a bargain. I don’t know why people are complaining it.</p> <p>Every dollars that Amazon are spending on R&D will probably give them back 2, or 3 times the original value in a few years. The internet now has over 100 million sites (<a href="http://news.netcraft.com/archives/2006/11/01/november_2006_web_server_survey.html">netcraft novemver 2006</a>), and probably a lot more users than that when we on this earth get our own broadband connections. And again, to support e-commerce activities for such a large population of net uers, we need serious R&D money. I guess my message to the public investors is: it’s okay for Amazon to “waste” money on R&D, they know what they are doing. So keep your stocks. Don’t short AMZN yet. I’d like to take Toyota as an example on how important R&D is. Toyota was the one company that started to do R&D for hybrid cars while Ford, GM, and other automakers were busy churning out SUVs. Guess what, now Toyota is busy licensing its technology to Ford and GM to make hybrid Escapes. Both Ford and GM’s cars wouldn’t sell when oil price shot up. GM, the American’s pride, was going through serious troubles and had to lay off so many employees. The moral of the story is: R&D money is good and wise money. It’s okay if the company seems to spend a little more than it “should”. In this cut-throat global economy, if you don’t stay innovated, you’ll loose.</p> <p>Another question that Jeff Bezos was asked is</p> <blockquote><p>aren’t you enabling many more potential competitors by giving them these services to get a company up and running much faster?</p></blockquote> <p>Even though Jeff did not answer the question frankly, what Bezos’s strategy for Amazon is to provide the infrastructure for future e-commerce and e-retails. The more people rely on Amazon’s services, the better. Amazon can just maintain, expand the system, while other people, those mom & pop shop owners are paying Amazon a cut on every transactions, just like ebay. Remember, Amazon is building the new web economy and they are collecting tax already.</p> <p>Moreover, Amazon has attained what people would call “critical mass”. Can you imagine a company with a solid $10 billion dollars annual revenue going out of business within a year or two? Amazon is way too smart and too technologically ahead of the rest for that to happen. It’s still the leading online retails company online, and it will still remain so. I can safely back that statement because Bezos mentioned about Amazon’s Prime adoption rate, which he said had been extremely well. People trust Amazon.com. It’s the brand, it’s the image, it’s the vast selection, it’s the low pricing, it’s the recommendation technology, it’s the prompt shipment, it’s the excellent return policy. It’s Amazon. What can you ask more out of Amazon’s current retail business? I don’t see any one can seriously compete with Amazon on online-retails business.</p> <p>I found it quite amusing that Jeff Bezos maintains his “wish-list” for his family and kids. What exactly he’s wishing to have? I bet he has an “uber-prime” subscription to get the stuff from amazon in like 30 seconds. And that’s what I’d define being successful in life: running a successful company and still be able to spend time and enjoy life with your family. Life is not full without family and love.</p> <p>Finally, Jeff Bezos is smart, don’t underestimate him.</p> <div class="post_action"> <a href="http://alexle.net/archives/148#comments" title="Comment on Jeff Bezos of Amazon vs the Financial Analysts. All financial analysts are technologically-dumb. Period">view comments</a> </div> </div> </div> <div class="navigation"> <div class="alignleft"></div> <div class="alignright"><a href="http://alexle.net/archives/date/2006/11/">Newer Entries »</a></div> </div> <br style="clear:both;"/> <div class="grid_2 alpha">   </div> <div class="grid_8 omega"> <hr class="thick"/> <div id="footer"> <br/> <p> (C) 2010. Alex Le’s Blog runs on <a href="http://wordpress.org/">WordPress</a> <br /><a href="http://alexle.net/feed">Entries (RSS)</a> and <a href="http://alexle.net/comments/feed">Comments (RSS)</a>. <!-- 17 queries. 0.494 seconds. --> <!-- LW Debug: Saved Links:Array ( [webhostingrating.com/] => Web Hosting Directory ) --> <!-- LW Debug: Unmatched links:Array ( ) New Links:Array ( [webhostingrating.com/] => Web Hosting Directory ) --> <!-- LW Debug: LinkinTxts:Array ( ) --> </p> </div> </div> <!-- Google Tracking --> <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> </script> <script type="text/javascript"> _uacct = "UA-193384-4"; urchinTracker(); </script> </body> </html> </div> <br class="clear"/> <div class="grid_6 omega"> <div class="grid_3 alpha"> <div id="sidebar" style="border-left: 1px solid #DFDFDF;"> <br/> <div id='categories'> <div class="title_container"> <span>categories</span> </div> <ul class="list"> <li><a href="http://alexle.net/">home</a></li> <li class="cat-item cat-item-11"><a href="http://alexle.net/archives/category/tid-bits" title="Quotes from Slashdot, THE best site for science-minded people :)">/. Tid Bits</a> <span class="posts_count">8</span> </li> <li class="cat-item cat-item-24"><a href="http://alexle.net/archives/category/money" title="View all posts filed under money">money</a> <span class="posts_count">3</span> </li> <li class="cat-item cat-item-5"><a href="http://alexle.net/archives/category/my-projects" title="News about my Personal Projects">My Projects</a> <span class="posts_count">12</span> <ul class='children'> <li class="cat-item cat-item-63"><a href="http://alexle.net/archives/category/my-projects/tubecaptioncom" title="View all posts filed under TubeCaption.com">TubeCaption.com</a> <span class="posts_count">4</span> </li> <li class="cat-item cat-item-7"><a href="http://alexle.net/archives/category/my-projects/wars-of-earth" title="View all posts filed under Wars of Earth">Wars of Earth</a> <span class="posts_count">4</span> </li> </ul> </li> <li class="cat-item cat-item-17"><a href="http://alexle.net/archives/category/oops" title="View all posts filed under oops">oops</a> <span class="posts_count">2</span> </li> <li class="cat-item cat-item-18"><a href="http://alexle.net/archives/category/personal-confess" title="View all posts filed under personal confess">personal confess</a> <span class="posts_count">2</span> </li> <li class="cat-item cat-item-1"><a href="http://alexle.net/archives/category/uncategorized" title="View all posts filed under Random Walk">Random Walk</a> <span class="posts_count">96</span> <ul class='children'> <li class="cat-item cat-item-14"><a href="http://alexle.net/archives/category/uncategorized/funny" title="View all posts filed under funny">funny</a> <span class="posts_count">7</span> </li> <li class="cat-item cat-item-12"><a href="http://alexle.net/archives/category/uncategorized/music" title="View all posts filed under Music">Music</a> <span class="posts_count">5</span> </li> <li class="cat-item cat-item-10"><a href="http://alexle.net/archives/category/uncategorized/observations" title="View all posts filed under Observations">Observations</a> <span class="posts_count">21</span> </li> </ul> </li> <li class="cat-item cat-item-20"><a href="http://alexle.net/archives/category/ruby-on-rails" title="It's all about the brilliant Ruby on Rails framework">Ruby on Rails</a> <span class="posts_count">15</span> </li> <li class="cat-item cat-item-15"><a href="http://alexle.net/archives/category/tutorials" title="View all posts filed under Tutorials">Tutorials</a> <span class="posts_count">18</span> </li> <li class="cat-item cat-item-2"><a href="http://alexle.net/archives/category/web-technolgy" title="View all posts filed under Web Technolgy">Web Technolgy</a> <span class="posts_count">71</span> <ul class='children'> <li class="cat-item cat-item-9"><a href="http://alexle.net/archives/category/web-technolgy/ajax-web-20" title="Ajax!">Ajax & Web 2.0</a> <span class="posts_count">23</span> </li> <li class="cat-item cat-item-19"><a href="http://alexle.net/archives/category/web-technolgy/clustering" title="View all posts filed under Clustering">Clustering</a> <span class="posts_count">2</span> </li> <li class="cat-item cat-item-13"><a href="http://alexle.net/archives/category/web-technolgy/css" title="View all posts filed under CSS">CSS</a> <span class="posts_count">6</span> </li> <li class="cat-item cat-item-8"><a href="http://alexle.net/archives/category/web-technolgy/joomla-mambo" title="View all posts filed under Joomla & Mambo">Joomla & Mambo</a> <span class="posts_count">8</span> </li> <li class="cat-item cat-item-4"><a href="http://alexle.net/archives/category/web-technolgy/server" title="Articles about configuring or installing apps">Server</a> <span class="posts_count">24</span> </li> <li class="cat-item cat-item-3"><a href="http://alexle.net/archives/category/web-technolgy/web-scripting" title="PHP, Ajax, and such">Web Scripting</a> <span class="posts_count">44</span> </li> </ul> </li> </ul> </div> <br/> <div id="archives"> <div class='title_container'> <span>archives</span> </div> <ul class="list"> <li><a href='http://alexle.net/archives/date/2010/09' title='September 2010'>September 2010</a></li> <li><a href='http://alexle.net/archives/date/2010/08' title='August 2010'>August 2010</a></li> <li><a href='http://alexle.net/archives/date/2010/07' title='July 2010'>July 2010</a></li> <li><a href='http://alexle.net/archives/date/2010/04' title='April 2010'>April 2010</a></li> <li><a href='http://alexle.net/archives/date/2009/08' title='August 2009'>August 2009</a></li> <li><a href='http://alexle.net/archives/date/2009/07' title='July 2009'>July 2009</a></li> <li><a href='http://alexle.net/archives/date/2009/02' title='February 2009'>February 2009</a></li> <li><a href='http://alexle.net/archives/date/2008/09' title='September 2008'>September 2008</a></li> <li><a href='http://alexle.net/archives/date/2008/08' title='August 2008'>August 2008</a></li> <li><a href='http://alexle.net/archives/date/2008/06' title='June 2008'>June 2008</a></li> <li><a href='http://alexle.net/archives/date/2008/05' title='May 2008'>May 2008</a></li> <li><a href='http://alexle.net/archives/date/2008/04' title='April 2008'>April 2008</a></li> <li><a href='http://alexle.net/archives/date/2008/03' title='March 2008'>March 2008</a></li> <li><a href='http://alexle.net/archives/date/2008/01' title='January 2008'>January 2008</a></li> <li><a href='http://alexle.net/archives/date/2007/11' title='November 2007'>November 2007</a></li> <li><a href='http://alexle.net/archives/date/2007/10' title='October 2007'>October 2007</a></li> <li><a href='http://alexle.net/archives/date/2007/09' title='September 2007'>September 2007</a></li> <li><a href='http://alexle.net/archives/date/2007/07' title='July 2007'>July 2007</a></li> <li><a href='http://alexle.net/archives/date/2007/06' title='June 2007'>June 2007</a></li> <li><a href='http://alexle.net/archives/date/2007/05' title='May 2007'>May 2007</a></li> <li><a href='http://alexle.net/archives/date/2007/03' title='March 2007'>March 2007</a></li> <li><a href='http://alexle.net/archives/date/2007/02' title='February 2007'>February 2007</a></li> <li><a href='http://alexle.net/archives/date/2006/12' title='December 2006'>December 2006</a></li> <li><a href='http://alexle.net/archives/date/2006/11' title='November 2006'>November 2006</a></li> <li><a href='http://alexle.net/archives/date/2006/10' title='October 2006'>October 2006</a></li> <li><a href='http://alexle.net/archives/date/2006/09' title='September 2006'>September 2006</a></li> <li><a href='http://alexle.net/archives/date/2006/08' title='August 2006'>August 2006</a></li> <li><a href='http://alexle.net/archives/date/2006/07' title='July 2006'>July 2006</a></li> <li><a href='http://alexle.net/archives/date/2006/06' title='June 2006'>June 2006</a></li> <li><a href='http://alexle.net/archives/date/2006/05' title='May 2006'>May 2006</a></li> <li><a href='http://alexle.net/archives/date/2006/04' title='April 2006'>April 2006</a></li> </ul> </div><!-- #archive --> <br/> <ul class="list lead"> <li> <p>You are currently browsing the <a href="http://alexle.net/">Alex Le’s Blog</a> blog archives for November, 2006.</p> </li> </ul> <!-- PubMatic ad tag: Sidebar 1 Wide Skyscraper | http://alexle.net | 160 x 600 wide skyscraper --> <script type="text/javascript"> var pubId=7523; var siteId=7524; var kadId=4658; var kadwidth=160; var kadheight=600; var kadtype=1; </script> <script type="text/javascript" src="http://ads.pubmatic.com/AdServer/js/showad.js"> </script> </div> </div><!-- sidebar1 .grid_3--> <div class="grid_3 omega"> <form method="get" id="searchform" action="http://alexle.net/"> <div> <input type="text" value="" name="s" id="s" /> <input type="submit" id="searchsubmit" value="Go" /> </div> </form> <div > <!-- FeedBurner Counter --> <br/> <p><a href="http://feeds.feedburner.com/AlexLe"><img src="http://feeds.feedburner.com/~fc/AlexLe?bg=FF9933&fg=FFFFFF&anim=0" height="26" width="88" style="border:0" alt="" /></a></p> <!-- yahoo Wide Skyscaper --> <script language="JavaScript" type="text/javascript"> <!-- ctxt_ad_partner = "1680444954"; ctxt_ad_section = ""; ctxt_ad_bg = ""; ctxt_ad_width = 160; ctxt_ad_height = 600; ctxt_ad_bc = "3E62B3"; ctxt_ad_cc = "FFFFFF"; ctxt_ad_lc = "0000DE"; ctxt_ad_tc = "333333"; ctxt_ad_uc = "339933"; // --> </script> <script language="JavaScript" src="http://ypn-js.overture.com/partner/js/ypn.js"> </script> </div> </div> </div> <!-- Dynamic Page Served (once) in 0.535 seconds -->