<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2596112609612706640</id><updated>2026-02-17T00:59:50.948-08:00</updated><category term="Web Dev"/><category term="Google"/><category term="Browsers"/><category term="Chrome"/><category term="Web Design"/><category term="Extensions"/><category term="Free"/><category term="Javascript"/><category term="World of Warcraft"/><category term="魔兽世界"/><category term="General"/><category term="Chrome Armory"/><category term="PHP"/><category term="Regex Checker"/><category term="3D"/><category term="Memcache"/><category term="Regex Search"/><category term="Twitter"/><category term="hacked"/><category term="hacker"/><category term="search engine"/><category term="Ajax"/><category term="Anime"/><category term="IMAX"/><category term="Icons"/><category term="Microsoft"/><category term="NASA"/><category term="Realtime"/><category term="SVG"/><category term="W3C"/><category term="android"/><category term="apple"/><category term="avatar"/><category term="baidu"/><category term="blizzard"/><category term="china"/><category term="chinese"/><category term="cygwin"/><category term="docs"/><category term="files"/><category term="gdrive"/><category term="iPhone"/><category term="internet"/><category term="mintty"/><category term="mistake"/><category term="mobile"/><category term="movie"/><category term="open source"/><category term="programming"/><category term="putty"/><category term="secureCRT"/><category term="space"/><category term="ssh"/><category term="upload"/><category term="windows"/><title type='text'>Programming in the State of 70% Drunkeness</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.simon20.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://www.simon20.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-8637392721621269365</id><published>2010-12-06T12:37:00.000-08:00</published><updated>2010-12-06T12:38:07.387-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><title type='text'>PHP - Managing Memory When Processing Large Files</title><content type='html'>Something interesting I found out about PHP when processing huge files. The memory garbage collector doesn&#39;t always work the way it is intended and common tricks don&#39;t always work either.&lt;br /&gt;
&lt;br /&gt;
What&#39;s even more frustrating is the common method of reading a file line by line causes huge memory leaks.&lt;br /&gt;
Here&#39;s my findings and solutions: (feel free to correct me if I&#39;m wrong, even though it worked for me)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Common method fopen+fgets fails:&lt;/b&gt;&lt;br /&gt;
fopen() with fgets() to read line by line on files that contains almost a million lines will cause crazy memory leak. It takes only 10 seconds before it consumes pretty much 100% of the system memory and go into swap.&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp; My solution:&lt;/i&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; use &quot;head -1000 {file} | tail -1000&quot; is much less memory intensive. The exact number of lines to process varies depending on the system speed. I had it set to 2000 and was running very smoothly.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Garbage Collector fails:&lt;/b&gt;&lt;br /&gt;
PHP&#39;s garbage collector fails to clean up memory after each loop iteration even if unset() is used (or set variables to null). The memory just keep on piling up. Unfortunately &quot;&lt;a href=&quot;http://us2.php.net/manual/en/function.gc-collect-cycles.php&quot;&gt;gc_collect_cycles&lt;/a&gt;&quot; which forces the garbage collector cycle to run, is only available in PHP 5.3 branch.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Example Code:&lt;/i&gt;&lt;br /&gt;
&lt;div style=&quot;background: #000; color: white; padding: 8px;&quot;&gt;for ($i=2000; $i&amp;lt;=1000000; $i+=2000) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;$data = explode(&quot;\n&quot;, shell_exec(&quot;head -$i blah.xml | tail -2000&quot;));&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;//parse using simplexml&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;unset($data);&lt;br /&gt;
}&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;i&gt;My Solution&lt;/i&gt;&lt;br /&gt;
You can FORCE the garbage collector to run by wrapping a process in a function. PHP does clean up memory after each function call. So for the above code example, if re-written, memory will happily hover over 0.5% constantly.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Example Code:&lt;/i&gt;&lt;br /&gt;
&lt;div style=&quot;background: #000; color: white; padding: 8px;&quot;&gt;for ($i=2000; $i&amp;lt;=1000000; $i+=2000) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;$data = shell_exec(&quot;head -$i blah.xml | tail -2000&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;process($data);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;unset($data);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function process($data) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;$data = explode(&quot;\n&quot;, $data);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;//parse using simplexml&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;unset($data);&lt;br /&gt;
}&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/8637392721621269365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2010/12/php-managing-memory-when-processing.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/8637392721621269365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/8637392721621269365'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2010/12/php-managing-memory-when-processing.html' title='PHP - Managing Memory When Processing Large Files'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-2606790301073645225</id><published>2010-03-19T10:36:00.000-07:00</published><updated>2010-03-19T10:36:04.291-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="search engine"/><title type='text'>New Google Search on Chrome</title><content type='html'>Google certainly love their own browser more than any other browsers. Who doesn&#39;t love their own child?&lt;br /&gt;
&lt;br /&gt;
Today, Google has changed the entire search experiences just for the Chrome. If you navigate to http://www.google.com, you&#39;ll get to see a slightly re-styled layout. But as you proceed on your search, you&#39;ll soon find out the search results are completely re-arranged, re-styled, and re-worked.&lt;br /&gt;
&lt;br /&gt;
It looks like Google is taking a step up against Bing&#39;s decision driven search engine and also they took a step up in terms of user friendliness.&lt;br /&gt;
The left rail is now filled with search filters and options. The most used &quot;Everything&quot;, &quot;News&quot;, and &quot;Maps&quot; is very useful.&lt;br /&gt;
&lt;br /&gt;
Here&#39;s a couple screenshots:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://i42.tinypic.com/sgmx61.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;245&quot; src=&quot;http://i42.tinypic.com/sgmx61.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://i43.tinypic.com/21j68g8.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;262&quot; src=&quot;http://i43.tinypic.com/21j68g8.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/2606790301073645225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2010/03/new-google-search-on-chrome.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/2606790301073645225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/2606790301073645225'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2010/03/new-google-search-on-chrome.html' title='New Google Search on Chrome'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://i42.tinypic.com/sgmx61_th.png" height="72" width="72"/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-3268438347846491678</id><published>2010-03-04T22:07:00.000-08:00</published><updated>2010-03-04T22:07:49.234-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="blizzard"/><category scheme="http://www.blogger.com/atom/ns#" term="hacked"/><category scheme="http://www.blogger.com/atom/ns#" term="World of Warcraft"/><title type='text'>WoW Account Restored</title><content type='html'>I have finally gotten my hacked WoW account restored by Blizzard. After lengthy investigation and restoration, Blizzard&#39;s &quot;specialists&quot; were kind of enough to restore most of my items. They tried the best they can to restore all my lost gears and for other items, they simply gave me 2500g per level 80 characters plus 14 emblems of frost and 70 emblems of triumph to cover the loss.&lt;br /&gt;
&lt;br /&gt;
I am very pleased by Blizzard&#39;s customer service quality, except the fact that their hotline was nearly impossible to call in. Everything got restored just in time for ICC.&lt;br /&gt;
&lt;br /&gt;
Now the biggest challenge I&#39;m facing is squeezing time out for playing WoW and I&#39;m slowly getting cornered by other priorities in my life. Time has become extremely precious for me. With LA&#39;s traffic, by the time I get back home, it is already 7:30PM or 8:00PM. After dinner and playing with my son, there&#39;s pretty much no time left for anything other than going to bed. It has been a few days since I have even touched my game machine. Strangely, I don&#39;t feel sad at all. I do miss WoW, but I value activities with my family far greater than quality WoW time. Yah, there it is, I&#39;ve said it and maybe one day I will quit WoW as well (that will probably be a while :p)</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/3268438347846491678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2010/03/wow-account-restored.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/3268438347846491678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/3268438347846491678'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2010/03/wow-account-restored.html' title='WoW Account Restored'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-5506557645198645288</id><published>2010-03-03T21:19:00.000-08:00</published><updated>2010-03-03T21:19:13.217-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cygwin"/><category scheme="http://www.blogger.com/atom/ns#" term="mintty"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="putty"/><category scheme="http://www.blogger.com/atom/ns#" term="secureCRT"/><category scheme="http://www.blogger.com/atom/ns#" term="ssh"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>SSH Clients on Windows</title><content type='html'>One of the thing I really love Mac and Linux over Windows is the built in Terminal. Unfortunately, majorities of computer users are using Windows. For programmers who work for larger corporations are pretty much stuck with Windows.&lt;br /&gt;
&lt;br /&gt;
When it comes to using SSH on Windows, there aren&#39;t that many great choices out there. The built in Command-Prompt just doesn&#39;t cut it even if Microsoft somehow manages to have ssh support directly built in.&lt;br /&gt;
&lt;br /&gt;
Currently, I&#39;m switching between PuTTY and mintty. Maybe once I have figured out how to overcome windows 7&#39;s permission restrictions, I would drop PuTTY completely for mintty.&lt;br /&gt;
&lt;br /&gt;
Here is a list of popular SSH clients on Windows:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href=&quot;http://www.chiark.greenend.org.uk/~sgtatham/putty/&quot;&gt;PuTTY&lt;/a&gt;&lt;br /&gt;
This is probably the most popular SSH client on Windows. It&#39;s extremely light weight and straight forward to use. After almost 20 years in development, it is still in beta. There is a long &lt;a href=&quot;http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/&quot;&gt;wishlist&lt;/a&gt;&amp;nbsp;and most of them have been on pending status for a long time, like the popular wish for having tabs.&amp;nbsp;&lt;br /&gt;
However, tabbed PuTTY isn&#39;t a dream. Currently, there is an alternative solution. It&#39;s called &lt;a href=&quot;http://puttycm.free.fr/cms/&quot;&gt;PuTTY Connection Manager&lt;/a&gt;.&lt;br /&gt;
&lt;b&gt;A little Trick: &lt;/b&gt;Once you&#39;ve downloaded putty.exe, move it to /windows/ directory. This way you can launch putty by simply type &quot;putty&quot; in the Start-&amp;gt;Run prompt.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.vandyke.com/products/securecrt/index.html&quot;&gt;SecureCRT&lt;/a&gt;&lt;br /&gt;
Although not free, but it does come with pretty much every feature you&#39;ll probably ever need from a ssh terminal. For larger corporation with enough budget, offering SecureCRT to programmers will definitely put some smiles on their face.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/mintty/&quot;&gt;mintty&lt;/a&gt;&lt;br /&gt;
mintty is a small but excellent terminal emulator for &lt;a href=&quot;http://www.cygwin.com/&quot;&gt;Cygwin&lt;/a&gt;. I&#39;m particularly not a huge fan of Cygwin, but mintty does offer some of the natural features that you&#39;ll find on Terminals available on Mac and Linux. Believe or not, mintty is based on code from PuTTY, so do expect that it doesn&#39;t have tabs.&lt;/li&gt;
&lt;/ol&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/5506557645198645288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2010/03/ssh-clients-on-windows.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/5506557645198645288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/5506557645198645288'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2010/03/ssh-clients-on-windows.html' title='SSH Clients on Windows'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-6958842672849706578</id><published>2010-02-03T10:49:00.000-08:00</published><updated>2010-02-03T10:49:20.562-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Memcache"/><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Dev"/><title type='text'>PHP Session Storage</title><content type='html'>This is a continuation of my older article&amp;nbsp;&lt;a href=&quot;http://www.simon20.com/2009/12/php-memcache-extension-less-known.html&quot;&gt;PHP Memcache Extension - Lesser Known Pitfalls&lt;/a&gt;. Reader Tony pointed out a very strong statement I made regarding not to use memcache as PHP session storage.&lt;br /&gt;
I have to admit that was some strong statements I made when I was writing that post. Thank you Tony for pointing that out. :) I have since changed the wording a bit to not deny the all usages of memcache in replacement of session.&lt;br /&gt;
&lt;br /&gt;
Here&#39;s a couple situations I think are not good ideas when using memcache as the primary session storage:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;putting shopping cart data in memcache on a high volume e-commerce site. if the memory on the memcache server runs out or it crashes, your customers will instantly loose everything in the cart.&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;putting user session data in memcache. this one is arguable. again, in a high volume situation, if memcache server goes away, just imagine how many queries will be triggered on your database.&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
I&#39;m sure it&#39;s very arguable that none of those will be problems when using clustered memcache servers and have memcache servers installed with 64GB of memories (God forbid if all 64GB of data all got lost because of a power outage)&lt;br /&gt;
&lt;br /&gt;
However, if the size of each session is controllable, growth of session data is&amp;nbsp;foreseeable, and in case of failure, data is recoverable without triggering major&amp;nbsp;disaster, I&#39;m definitely pro on using memcache as the session storage. There are many ways to achieve this. Here&#39;s a couple ideas of mine:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Controlling the size of each session can be easily achieved by optimizing your code. A lot of times I see people toss everything into a session (like user data) just in case a piece a data might be needed somewhere, sometime in the future. This leads to a lot of&amp;nbsp;unnecessary&amp;nbsp;data being stored in session.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Optimize the query that gets the data before it is set into session. In case of failure, you need to ensure that your database can handle the amount of traffic for recovering the data. If each lost session requires a major join query, you can well guess how long the database will last.&lt;/li&gt;
&lt;li&gt;Have a backup plan for the session data. If you have the luxury of using data storage mounts backed by NAS, utilize it. Put your session data in memcache for fast access, leave a copy on the NAS for faster and safer recovery. (remember, I don&#39;t mean leave a copy&amp;nbsp;permanently)&lt;/li&gt;
&lt;li&gt;Again, if you have the luxury of using storage mounts backed by NAS, try use SQLLite for your user data. Each user will have his/her own SQLLite file. Whenever data needs to be retrieved, SQLLite file gets hit first. Imagine the load gets spread&amp;nbsp;across&amp;nbsp;thousands of disks.&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;All in all, I&#39;m not opposed to any form of session storages as long as all sides of it are well thought out and planned out.&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/6958842672849706578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2010/02/php-session-storage.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/6958842672849706578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/6958842672849706578'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2010/02/php-session-storage.html' title='PHP Session Storage'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-8575813817589559653</id><published>2010-01-31T12:55:00.000-08:00</published><updated>2010-01-31T12:55:16.075-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="General"/><title type='text'>Fried Video Card</title><content type='html'>Things are just not heading towards North as I wished. Ever since I had my WoW account hacked, it seems like every little thing can turn South at the most unexpected time.&lt;br /&gt;
&lt;br /&gt;
Just as I was trying to finish up the dev work on the three Chrome Extensions, my video card gave up on me. Sadly, I&#39;m on a Dell XPS400 that was built 4 years ago and the video card is only a GeForce 6 series. I know, it&#39;s really a joke to most of &amp;nbsp;you guys. It&#39;s definitely a legacy video card now consider that it&#39;s only PCI-Express x16 without the buzzy word &quot;2.0&quot;. I guess I should&#39;ve replaced it when the fans started making noises.... &amp;nbsp;Everything is too late now. It finally frozen up my screen and gave up on itself.&lt;br /&gt;
&lt;br /&gt;
I&#39;m actually writting this post from my wife&#39;s laptop which I&#39;m not allowed to use for programming. It&#39;s a netbook&amp;nbsp;strictly&amp;nbsp;bought for her for reading online novels (those chinese love novels.... are they really that good?)&lt;br /&gt;
&lt;br /&gt;
I have placed an order for a new video card, a GeForce 9800 GT, from &lt;a href=&quot;http://newegg.com/&quot;&gt;newegg.com&lt;/a&gt;. It should arrive by tomorrow. For those of you who came from the support link on my extensions, please be patient. I&#39;ll be back on track in a couple days, promised.</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/8575813817589559653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2010/01/fried-video-card.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/8575813817589559653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/8575813817589559653'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2010/01/fried-video-card.html' title='Fried Video Card'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-4836956294781472995</id><published>2010-01-22T10:10:00.000-08:00</published><updated>2010-01-22T10:10:31.090-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="internet"/><category scheme="http://www.blogger.com/atom/ns#" term="NASA"/><category scheme="http://www.blogger.com/atom/ns#" term="space"/><category scheme="http://www.blogger.com/atom/ns#" term="Twitter"/><title type='text'>First Tweet from Space</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAupNCyVDkWvmIao3G6KMQYl2J9dV4VNMvy8k6bTqYSuO_Ki28scQQ40TnBoNI-hpbsAQ9n2FHSSm4oK6P1cinAZgEI1STFkGXkE1R-QH5z2D75svwhuVkQkholdXR4NLa1qeaWWd0nc8/s1600-h/astro_tj&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;231&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAupNCyVDkWvmIao3G6KMQYl2J9dV4VNMvy8k6bTqYSuO_Ki28scQQ40TnBoNI-hpbsAQ9n2FHSSm4oK6P1cinAZgEI1STFkGXkE1R-QH5z2D75svwhuVkQkholdXR4NLa1qeaWWd0nc8/s400/astro_tj&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;Just about 10 hours ago, Timothy J.(TJ) Creamer, a NASA Astronaut tweeted from the International Space Station. &lt;a href=&quot;http://twitter.com/Astro_TJ&quot;&gt;This marks as the 1st tweet from space&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
According to the &lt;a href=&quot;http://www.prnewswire.com/news-releases/nasa-extends-the-world-wide-web-out-into-space-82371467.html&quot;&gt;statement release today by NASA&lt;/a&gt;, &quot;&lt;i&gt;Astronauts aboard the International Space Station received a special software upgrade this week – personal access to the Internet and the World Wide Web via the ultimate wireless connection.&lt;/i&gt;&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;This personal Web access, called the Crew Support LAN, takes advantage of existing communication links to and from the station and gives astronauts the ability to browse and use the Web. The system will provide astronauts with direct private communications to enhance their quality of life during long-duration missions by helping to ease the isolation associated with life in a closed environment.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;During periods when the station is actively communicating with the ground using high-speed Ku-band communications, the crew will have remote access to the Internet via a ground computer. The crew will view the desktop of the ground computer using an onboard laptop and interact remotely with their keyboard touchpad.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
Ok, they don&#39;t have full access to internet all the time, but probably a few hours per day as the station orbits around the earth. Also, the access isn&#39;t directly through a dell/mac they brought with them, but rather through a computer on the ground which the astronaut will access using remote desktop. Still though, this is really cool. This gotta be the most interesting place to use twitter and marks the first step toward full internet access in space.&lt;br /&gt;
&lt;br /&gt;
Now, here comes some fun facts from the statment:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Astronauts will be subject to the same computer use guidelines as government employees on Earth&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
This translates to as: &amp;nbsp;no porn, no WoW, and the other 100,000 noes from the government computer use guidelines handbook.</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/4836956294781472995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2010/01/first-tweet-from-space.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/4836956294781472995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/4836956294781472995'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2010/01/first-tweet-from-space.html' title='First Tweet from Space'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAupNCyVDkWvmIao3G6KMQYl2J9dV4VNMvy8k6bTqYSuO_Ki28scQQ40TnBoNI-hpbsAQ9n2FHSSm4oK6P1cinAZgEI1STFkGXkE1R-QH5z2D75svwhuVkQkholdXR4NLa1qeaWWd0nc8/s72-c/astro_tj" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-8397088424823054387</id><published>2010-01-22T09:45:00.000-08:00</published><updated>2010-01-22T09:46:00.469-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Browsers"/><category scheme="http://www.blogger.com/atom/ns#" term="Chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="Extensions"/><category scheme="http://www.blogger.com/atom/ns#" term="Free"/><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="Regex Checker"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Design"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Dev"/><title type='text'>Regular Expression Checker v1.1.2 Released</title><content type='html'>This is a very &lt;a href=&quot;https://chrome.google.com/extensions/detail/pgnkpcgniljiolidjmodgfljeomjjiha/publish-accepted&quot;&gt;minor release&lt;/a&gt;, but it did include a significant update.&lt;br /&gt;
The tool now accepts html or any other markup language format. Previously, since the results are directly outputted into a div, any thing wrapped within &amp;lt; and &amp;gt; would been parsed by the browser. These tags are now properly parsed and regular expression matching mechanism has been updated to support this change.&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
&lt;i&gt;v1.1.2&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;- support for html is added&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;- some code optimization&lt;/i&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/8397088424823054387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2010/01/regular-expression-checker-v112.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/8397088424823054387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/8397088424823054387'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2010/01/regular-expression-checker-v112.html' title='Regular Expression Checker v1.1.2 Released'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-7546840398245002704</id><published>2010-01-18T11:37:00.000-08:00</published><updated>2010-01-18T11:37:00.778-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hacker"/><category scheme="http://www.blogger.com/atom/ns#" term="World of Warcraft"/><category scheme="http://www.blogger.com/atom/ns#" term="魔兽世界"/><title type='text'>WoW Account Hacked</title><content type='html'>Sigh.... The unthinkable has happened. My WoW account was compromised last night. Some punk ass somehow got my logon info and went through all of my characters across realms. Everything that could be sold was gone and all my gold is gone as well. My characters are&amp;nbsp;practically&amp;nbsp;naked now.&lt;br /&gt;
&lt;br /&gt;
There have been lots of phishing emails lately. So far, I&#39;ve been able to identify them all. This time, I&#39;m really suspecting it&#39;s the UI Addons I&#39;ve been playing around with lately. There were probably key loggers in those freaking UIs. To up the security, I&#39;ve just ordered an &lt;a href=&quot;http://us.blizzard.com/store/details.xml?id=1100000822&quot;&gt;Authenticator&lt;/a&gt;&amp;nbsp;and I will reinstall all my computers at home tonight.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://us.blizzard.com/store/_images/product?productId=1100000822&amp;amp;type=3&amp;amp;loc=en-US&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;http://us.blizzard.com/store/_images/product?productId=1100000822&amp;amp;type=3&amp;amp;loc=en-US&quot; width=&quot;237&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
I have contacted Blizzard via email and webform. So far their phone line has not worked. According to their &lt;a href=&quot;http://us.blizzard.com/support/article.xml?locale=en_US&amp;amp;articleId=20460&amp;amp;parentCategoryId&amp;amp;pageNumber=1&amp;amp;categoryId=2693&quot;&gt;support page&lt;/a&gt;, there&#39;s a chance to restore all my items/gold if I report the compromise within 2 weeks (which I did,&amp;nbsp;obviously). &amp;nbsp;But, this restore can only happen once per account. If the account is compromised again, only lost characters would be restored, but no gold/item would be reimbursed.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;When an account is reported or its security appears to have been compromised, the World of Warcraft Customer Support Staff will disable access to the account while we conduct an investigation. Once we are confident that account access privileges have been restored to the registered user (and only the registered user), we will enable access to the account. While we will attempt to restore any items/gold missing from the account, we cannot guarantee that lost items/gold will be reimbursed. Reimbursement is only a possibility if the situation is reported within 2 weeks (14 days) from the date the account was first compromised. Additionally, restoration due to an account compromise is offered only once. Should the account become compromised in the future, we may restore deleted characters, but no reimbursement of items/gold lost will be offered.&amp;nbsp;&lt;/i&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/7546840398245002704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2010/01/wow-account-hacked.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/7546840398245002704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/7546840398245002704'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2010/01/wow-account-hacked.html' title='WoW Account Hacked'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-2888939218627592592</id><published>2010-01-14T21:52:00.000-08:00</published><updated>2010-01-14T21:52:51.789-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="3D"/><category scheme="http://www.blogger.com/atom/ns#" term="Browsers"/><category scheme="http://www.blogger.com/atom/ns#" term="Chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="Chrome Armory"/><category scheme="http://www.blogger.com/atom/ns#" term="Extensions"/><category scheme="http://www.blogger.com/atom/ns#" term="Free"/><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Design"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Dev"/><category scheme="http://www.blogger.com/atom/ns#" term="World of Warcraft"/><category scheme="http://www.blogger.com/atom/ns#" term="魔兽世界"/><title type='text'>Chrome Armory v1.3.2 Released</title><content type='html'>After staying up very late last night to push out v1.3.0, I was very happy with the new code optimizations. Now that the whole code base is based on a much stronger structure/framework, I started doing some reality checks on the list of features on my notebook (btw, it was updated early this morning after seeing the new wowarmory). Surprisingly, most the features can be done much sooner since the implementation part has gotten much easier and cleaner.&lt;br /&gt;
&lt;br /&gt;
I had a long 3 hour drive home from work today (LA traffic SUCKS). Usually it&#39;s a long ass boring drive, but not today. My brain was going through each planned/unplanned features to figure out how they can be done and in which order they can be released. Don&#39;t under estimate the power of 3 hour traffic jam. I&#39;ve not only reordered the release milestones on my &lt;a href=&quot;http://www.basecamphq.com/&quot;&gt;basecamp&lt;/a&gt;, but also added a few more features onto my notebook after I got home.&lt;br /&gt;
&lt;br /&gt;
So here it is, v1.3.2. I quickly finished off some of the features that were interrupted by yesterday&#39;s emergency release and also added a simple but very very neat feature - 3D Model Viewer.&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
&lt;i&gt;v1.3.2&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;- added new character 3D model viewer&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;- added base/ranged/melee/spell/defense stats of the character&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;- lots of code optimization and speed optimization&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/2888939218627592592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2010/01/chrome-armory-v132-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/2888939218627592592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/2888939218627592592'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2010/01/chrome-armory-v132-released.html' title='Chrome Armory v1.3.2 Released'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-6764264960061278509</id><published>2010-01-13T23:27:00.000-08:00</published><updated>2010-01-13T23:27:07.505-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Browsers"/><category scheme="http://www.blogger.com/atom/ns#" term="Chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="Chrome Armory"/><category scheme="http://www.blogger.com/atom/ns#" term="Extensions"/><category scheme="http://www.blogger.com/atom/ns#" term="Free"/><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Design"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Dev"/><category scheme="http://www.blogger.com/atom/ns#" term="World of Warcraft"/><category scheme="http://www.blogger.com/atom/ns#" term="魔兽世界"/><title type='text'>Chrome Armory v1.3.0 Released</title><content type='html'>v1.3.0 is supposed be a big release, but since Blizzard decided to update &lt;a href=&quot;http://wowarmory.com/&quot;&gt;wowarmory.com&lt;/a&gt;, this version has been taken over by code updates to support Blizzard&#39;s updates.&lt;br /&gt;
&lt;br /&gt;
However, this release isn&#39;t a minor patch release. It did contain quite a bit of changes and including a new feature. I went through major refactoring over the quick and dirty codes (remember, this extension was my first extension and took me only half a day to finish v1.0). The end result is a more organized, more secure, and much faster code base. You&#39;ll probably notice the load time on a character&#39;s profile has increased. This round of refactoring is only the first step of many that I have planned.&lt;br /&gt;
&lt;br /&gt;
My goal is to have a release at least once a week (every Sunday). There are many ideas on my notebook (on Evernote), so stay tunned in for more. :)&lt;br /&gt;
&lt;br /&gt;
Here are the release notes:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;v1.3.0&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;- major release to support new wowarmory.com UI&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;- added character specs&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;- detects the active and inactive specs&lt;/i&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/6764264960061278509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2010/01/chrome-armory-v130-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/6764264960061278509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/6764264960061278509'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2010/01/chrome-armory-v130-released.html' title='Chrome Armory v1.3.0 Released'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-7332650642401521569</id><published>2010-01-12T15:22:00.000-08:00</published><updated>2010-01-12T15:22:48.536-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="baidu"/><category scheme="http://www.blogger.com/atom/ns#" term="chinese"/><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="hacked"/><category scheme="http://www.blogger.com/atom/ns#" term="hacker"/><category scheme="http://www.blogger.com/atom/ns#" term="mistake"/><category scheme="http://www.blogger.com/atom/ns#" term="search engine"/><title type='text'>China&#39;s Top Search Engine Baidu Got Hacked</title><content type='html'>China&#39;s top search engine &lt;a href=&quot;http://www.baidu.com/&quot;&gt;Baidu (百度)&lt;/a&gt; was hacked this morning.&lt;br /&gt;
It appears that the hacker, who call themselves &quot;Iranian Cyber Army&quot;, changed Baidu&#39;s DNS record to point to another site.&lt;br /&gt;
A Baidu insider told Chinanews.com.cn that the problem is solved and the site should be back in half an hour.&lt;br /&gt;
&lt;br /&gt;
Ok, this is definitely&amp;nbsp;embarrassing. It is ok to make mistakes, even&amp;nbsp;&lt;a href=&quot;http://googleblog.blogspot.com/2009/12/five-years-of-google-blogging.html&quot;&gt;Google makes mistakes too&lt;/a&gt; as listed being one of their top five viewed blog posts of 2009. But getting your DNS record changed, that&#39;s like having your backyard light on fire by someone else.</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/7332650642401521569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2010/01/chinas-top-search-engine-baidu-got.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/7332650642401521569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/7332650642401521569'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2010/01/chinas-top-search-engine-baidu-got.html' title='China&#39;s Top Search Engine Baidu Got Hacked'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-6775599589400134076</id><published>2010-01-12T15:12:00.000-08:00</published><updated>2010-01-12T15:13:30.988-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="docs"/><category scheme="http://www.blogger.com/atom/ns#" term="files"/><category scheme="http://www.blogger.com/atom/ns#" term="gdrive"/><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="upload"/><title type='text'>Google opens up file uploads through Google Docs</title><content type='html'>I really feel like I should rename my blog to something Google related. It seems like almost every blog I post is about Google.&lt;br /&gt;
&lt;br /&gt;
Google has announced on its &lt;a href=&quot;http://googleblog.blogspot.com/2010/01/upload-your-files-and-access-them.html&quot;&gt;official blog&lt;/a&gt; that &lt;a href=&quot;http://docs.google.com/&quot;&gt;Google Docs&lt;/a&gt; will be opened up in the next few weeks for all kinds of file uploads and supports file size up to 250MB per file. Files uploaded can also be shared with other people just like the docs right now.&lt;br /&gt;
&lt;br /&gt;
This is certainly some great news for all of us. For the past couple years, GDrive has been on my and probably on many of your wishlist. I know this is not officially the GDrive, but it certainly is just as exciting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Over the next few weeks, we’re rolling out the ability to upload all file types to the cloud through Google Docs, giving you one place where you can upload and access your key files online. Because Google Docs now supports files up to 250 MB in size, which is larger than the attachment limit on most email applications, you’ll be able to backup large graphics files, RAW photos, ZIP archives and much more to the cloud. More importantly, instead of carrying a USB drive, you can now use Google Docs as a more convenient option for accessing your files on different computers.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;This feature can also help you work with teams to organize and collaborate on information online.&lt;/i&gt;&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/6775599589400134076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2010/01/google-opens-up-file-uploads-through.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/6775599589400134076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/6775599589400134076'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2010/01/google-opens-up-file-uploads-through.html' title='Google opens up file uploads through Google Docs'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-6515864536602550455</id><published>2010-01-12T11:49:00.000-08:00</published><updated>2010-01-12T11:49:16.954-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ajax"/><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="Realtime"/><category scheme="http://www.blogger.com/atom/ns#" term="Regex Search"/><category scheme="http://www.blogger.com/atom/ns#" term="Twitter"/><title type='text'>Google twitter search results</title><content type='html'>Just came across something really interesting on Google&#39;s search result.&lt;br /&gt;
&lt;br /&gt;
I was searching for &quot;chrome extensions&quot; and noticed the twitter search results were listed very differently. The results are updated in real time. If you wait and see, you&#39;ll see more results gets added to the top.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghs7TkIj1JxBigybij7aFPWPBiQW6SbMrvsM_bZGHODf-IJ8q6P06ifeTg2u4ji7340TiWClzCFIn_Xfijb_PUVP2pihCk71t56wwF6J3ttpaYD8-aGCE15KEm6r0TzmNTFgyZetiYZ0E/s1600-h/blog_01.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghs7TkIj1JxBigybij7aFPWPBiQW6SbMrvsM_bZGHODf-IJ8q6P06ifeTg2u4ji7340TiWClzCFIn_Xfijb_PUVP2pihCk71t56wwF6J3ttpaYD8-aGCE15KEm6r0TzmNTFgyZetiYZ0E/s320/blog_01.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/6515864536602550455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2010/01/google-twitter-search-results.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/6515864536602550455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/6515864536602550455'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2010/01/google-twitter-search-results.html' title='Google twitter search results'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghs7TkIj1JxBigybij7aFPWPBiQW6SbMrvsM_bZGHODf-IJ8q6P06ifeTg2u4ji7340TiWClzCFIn_Xfijb_PUVP2pihCk71t56wwF6J3ttpaYD8-aGCE15KEm6r0TzmNTFgyZetiYZ0E/s72-c/blog_01.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-2311052036122881585</id><published>2010-01-10T00:17:00.000-08:00</published><updated>2010-01-10T00:17:26.654-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="3D"/><category scheme="http://www.blogger.com/atom/ns#" term="avatar"/><category scheme="http://www.blogger.com/atom/ns#" term="IMAX"/><category scheme="http://www.blogger.com/atom/ns#" term="movie"/><title type='text'>5 AVATAR&#39;s Nicest Touches</title><content type='html'>I just came back from the theater after the 3 hour long &lt;a href=&quot;http://www.avatarmovie.com/&quot;&gt;AVATAR&lt;/a&gt; movie in &lt;a href=&quot;http://www.imax.com/&quot;&gt;IMAX 3D&lt;/a&gt;. It was just beyond awesomeness. The picture quality was by far the best I&#39;ve ever seen and the sound effects literally shook the floor. If you haven&#39;t seen it, go watch it. And if you have seen it and didn&#39;t see it on IMAX 3D, go see it on IMAX 3D. Wait, did I mention IMAX 3D. GO SEE IT ON IMAX 3D&lt;br /&gt;
&lt;br /&gt;
This marks my first experience of IMAX. Yes, as a &quot;nerd&quot;, this is kinda weird, but late is always better than never right? :) I&#39;m so glad that I saved my IMAX experience for AVATAR. I don&#39;t want to spoil for people who has not seen the movie, so I&#39;m not going to share any in-depth details of the movie, however, as I&#39;m so excited, I will share some of the nicest touches from the movie (don&#39;t worry, they won&#39;t spoil the story).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;&lt;iframe align=&quot;center&quot; frameborder=&quot;0&quot; height=&quot;500&quot; scrolling=&quot;no&quot; src=&quot;http://www.flickr.com/slideShow/index.gne?group_id=&amp;amp;user_id=40641850@N05&amp;amp;set_id=&amp;amp;text=&quot; width=&quot;500&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;small&gt;Created with &lt;a href=&quot;http://www.admarket.se/&quot; title=&quot;Admarket.se&quot;&gt;Admarket&#39;s&lt;/a&gt; &lt;a href=&quot;http://flickrslidr.com/&quot; title=&quot;flickrSLiDR&quot;&gt;flickrSLiDR&lt;/a&gt;.&lt;/small&gt;&lt;/center&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Nicest Touch #1&lt;/b&gt;&lt;br /&gt;
The bugs in the forest of Pandora. The little insects were really nice touches on the 3D screen. As characters moved by them, they were flying in all directions just like the real ones. It was so real that I lifted up my hand started to &quot;shuuuu&quot; them off.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Nicest Touch #2&lt;/b&gt;&lt;br /&gt;
The ashes and burning ambers. This is potentially a story spoiler, so I&#39;m not going to share which scene it was. However, you can try to put together a disaster movie image where ashes and ambers are being blown by the wind, flying across the screen. I&#39;m sure this is not going to be as fun for a lot of the Californians who lived through the wild fires because the scene was that&amp;nbsp;surreal.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Nicest Touch #3&lt;/b&gt;&lt;br /&gt;
The movement of the AVATARS. You think the movie is a huge CG&#39;ed project? Then you&#39;re wrong. Every character in the movie, this includes the AVATARS, is real. Even though you know the AVATAR has to be CG&#39;ed, but you just can&#39;t feel the&amp;nbsp;stiffness&amp;nbsp;movements generated by computer at all. Why? Because no movements were emulated by computers. They were all recorded using motion censors. That&#39;s right, every single movement, including the mouth. When the AVATARS talk, their facial muscles move just the same way as a human, there were no differences at all.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Nicest Touch #4&lt;/b&gt;&lt;br /&gt;
The&amp;nbsp;scorpion&amp;nbsp;helicopters. This again can potentially spoil your experience, so I&#39;m just going to hint it. The mechanics of the helicopters literally followed the laws of the physics. I won&#39;t be surprised that taking the same mechanics into real life and we can build a scorpion&amp;nbsp;helicopter&amp;nbsp;that flies in the same way.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Nicest Touch #5&lt;/b&gt;&lt;br /&gt;
The computer screens. This whole story is based on 150 years from now. The&amp;nbsp;fictional&amp;nbsp;technology presented were absolutely amazing. The screens were like sheets of glasses and they can be bended and wrapped around you. I&#39;m working on a nice 24&quot; here and 2 23&quot; at work, but i still find myself always run out of space and I hate dual or triple monitors because of the disconnect between them. The fiber glass like screens in the movie was just like a dream come true. I wish I can have that tomorrow. :D&lt;br /&gt;
&lt;br /&gt;
This is as far as I&#39;m going to share as it is already mid-night here. As of today, every show was still sold out. We had to watch the 8:30 show because the 4:40 show were completely sold out at 3:30. When we left the the theater, there were still lines of people ready to watch the 1:00 show.&lt;br /&gt;
&lt;br /&gt;
Go see the movie, and definitely go watch it on IMAX 3D. You&#39;ll not regret the $15, it is definitely money well spent. As for the movie itself, the&amp;nbsp;controversial&amp;nbsp;$500 million cost in my opinion is also money well spent. This movie carries so many achievements that no others could compete and will be able to compete with for a long time.</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/2311052036122881585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2010/01/5-avatars-nicest-touches.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/2311052036122881585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/2311052036122881585'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2010/01/5-avatars-nicest-touches.html' title='5 AVATAR&#39;s Nicest Touches'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-4806646712576951977</id><published>2010-01-07T09:27:00.000-08:00</published><updated>2010-01-07T09:27:55.325-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Browsers"/><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="SVG"/><category scheme="http://www.blogger.com/atom/ns#" term="W3C"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Dev"/><title type='text'>Microsoft Joins W3C SVG Working Group</title><content type='html'>On Jan. 4th, &lt;a href=&quot;http://blogs.msdn.com/ie/archive/2010/01/05/microsoft-joins-w3c-svg-working-group.aspx&quot;&gt;Microsoft&amp;nbsp;submitted their request&lt;/a&gt; to join the &lt;a href=&quot;http://www.w3.org/Graphics/SVG/&quot;&gt;Scalable Vector Graphics (SVG) Working Group&lt;/a&gt; of the &lt;a href=&quot;http://www.w3.org/&quot;&gt;World Wide Web Consortium (W3C)&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
For the first time, instead of bashing Microsoft, I&#39;m going to cheer for them. SVG has been a huge hype around cut-edge web developers. Browsers like Firefox, Chrome and Webkit has all tried to implement it in some way. With now Microsoft on board to help&amp;nbsp;standardize&amp;nbsp;the SVG format and platform, I think we have a pretty bright future ahead of us. We might just get it this year and just as standardized as the &quot;&amp;lt;body&amp;gt;&quot; tag across all the browsers. (my fingers are crossed)</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/4806646712576951977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2010/01/microsoft-joins-w3c-svg-working-group.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/4806646712576951977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/4806646712576951977'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2010/01/microsoft-joins-w3c-svg-working-group.html' title='Microsoft Joins W3C SVG Working Group'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-6141684427097052254</id><published>2010-01-06T22:12:00.000-08:00</published><updated>2010-01-06T22:12:52.741-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><category scheme="http://www.blogger.com/atom/ns#" term="apple"/><category scheme="http://www.blogger.com/atom/ns#" term="china"/><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="iPhone"/><category scheme="http://www.blogger.com/atom/ns#" term="mobile"/><category scheme="http://www.blogger.com/atom/ns#" term="open source"/><title type='text'>Google + Mobile = Total Freedom</title><content type='html'>Yes, Freedom, don&#39;t we all love freedom, especially after being slaved by our mobile carriers for so long? Maybe people outside of United States won&#39;t have such a strong feeling, but for anyone who lives in US, you know the pain.&lt;br /&gt;
&lt;br /&gt;
Yesterday, &lt;a href=&quot;http://googleblog.blogspot.com/2010/01/our-new-approach-to-buying-mobile-phone.html&quot;&gt;Google has just announced its new mobile strategy&lt;/a&gt; based on the already popular (some people call it &quot;iPhone killer&quot;) Android platform. The idea of the strategy literally smashed open the shackles that we were forced to put on with all the mobile carriers. We now can choose an &lt;b&gt;&quot;unlocked&quot;&lt;/b&gt; phone first before choosing a carrier.&lt;br /&gt;
&lt;br /&gt;
Just to clear things up a bit, I&#39;m going to explain why this is so significant.&lt;br /&gt;
&lt;br /&gt;
The idea of buying &lt;b&gt;an &quot;unlocked&quot; phone &lt;/b&gt;to some of us, it is almost unheard of. Of course to people that are a bit more tech&amp;nbsp;savvy, this isn&#39;t that special. However, buying an unlocked phone directly from the manufacture instead of through eBay or some shady cellphone dealers in LA is definitely new. But in many other parts of the world, this isn&#39;t new at all. Their mobile industry models are built to serve as the networks, not the cellphone dealers.&lt;br /&gt;
&lt;br /&gt;
A quick example would be China even though China has only two government owned mobile networks. In China, people would save up their money to buy a phone first, and then decide which network they want to use. If you go to a computer/gadgets mall in Shanghai, you&#39;ll find hundreds of different cell phones sold by pretty much every store. There is no concept of &quot;locked&quot; or &quot;unlocked&quot; phones. All phones sold their by natures are &quot;unlocked&quot; and they have to be. You&#39;ll see exactly why shortly here.&lt;br /&gt;
&lt;br /&gt;
I remember I had to call T-Mobile while I was in China to unlock my MDA so that I could use it there. T-Mobile actually charged me $30 just for giving me the damn unlocking code.&lt;br /&gt;
&lt;br /&gt;
The &lt;b&gt;freedom of choosing which carrier&lt;/b&gt; you want to use with your phone is&amp;nbsp;truly&amp;nbsp;turning the US mobile industry upside down. For the first time, you don&#39;t have to deal with a carrier that you don&#39;t like or a plan you can&#39;t effort just because you want the phone from that carrier or plan. You know buy your preferred phone than take it to the carrier you like and choose the plan you wish. I don&#39;t know about anyone else&#39;s feeling on this, at least this sounds naturally right to me. Why would I settle for a two year contract for an insane monthly cost just for a phone that potentially can be out dated within a year?&lt;br /&gt;
&lt;br /&gt;
Again, I&#39;m going to use China&#39;s mobile industry as an example to compare to the US mobile industry.&lt;br /&gt;
Have you seen the messiness of the prepaid mobile market in US? There are quite a few of small to large carriers who specifically provide prepaid mobile service. They all charge an insane amount of money for every service provided (even &lt;a href=&quot;http://www.metropcs.com/&quot;&gt;MetroPCS&lt;/a&gt;. oh yes, don&#39;t be fooled, it cost you $2 everytime to just pay the bill online ) What&#39;s even worse is they all make you to buy your phone from them and most phones are really really crappy. When my Mom visited me last year, she brought with her a really nice Samsung phone from China thinking that she could just buy a prepaid SIM card and start making phone calls. But no, that did not happen and quite frankly could not happen with any carriers. (we ended up buying a $60 crappy phone from MetroPCS and put her on a MetroPCS plan)&lt;br /&gt;
Now comparing to China&#39;s mobile industry, it is just completely the other way around. You can buy prepaid SIM cards or Prepaid Minutes Card from any convenient store (including 7-Eleven). You have the freedom of choosing which network you want to use, which phone number you want to use (this part is depended on what the store has on hand), and which prepaid plan you want to use (plans are different by minutes and services provided). If you happen to have your phone with you, you can put in the SIM card right at the spot and start using the service.&lt;br /&gt;
Of course, there are also long term service contracts you can sign with the networks just like the way it is in US, but buying a phone from the network is completely optional.&lt;br /&gt;
&lt;br /&gt;
Ever since Google surfaced up in the Tech mainstream, being public or not, it has kept its promise for being open. Most of the softwares and platforms developed by Google are open sourced. Google believes in &quot;openess&quot; when it comes to software development (I have a post coming up soon that talks specifically about this &quot;openess&quot;). This promise was also well kept on the Android, an open source smart mobile platform.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.techcrunch.com/2010/01/05/apple-google-carriers/&quot;&gt;The article on Techcrunch&lt;/a&gt; covering this story summarized the relationship between Google and Carriers quite well. All the carriers and manufactures except AT&amp;amp;T &amp;amp; Apple had their balls held by iPhone when it comes to the smartphone war. Everyone of them wants something to compete with iPhone. Now here comes Android. It&#39;s not a phone, but a base platform that can be implemented on different hardwares. It makes the manufacture and the carrier&#39;s life easier and it gives them a magic wand that can compete with iPhone.&lt;br /&gt;
&lt;br /&gt;
From my personal view, it&#39;s a simple market share war between Google and Apple. If all the carriers sign up to the Google&#39;s new strategy, how many Android phones will there be on the market? I&#39;m guessing it would be a lot more than what AT&amp;amp;T+Apple can handle by themselves.</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/6141684427097052254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2010/01/google-mobile-total-freedom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/6141684427097052254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/6141684427097052254'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2010/01/google-mobile-total-freedom.html' title='Google + Mobile = Total Freedom'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-4178316542459470</id><published>2010-01-04T21:19:00.000-08:00</published><updated>2010-01-04T21:20:28.265-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Browsers"/><category scheme="http://www.blogger.com/atom/ns#" term="Chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="Extensions"/><category scheme="http://www.blogger.com/atom/ns#" term="Free"/><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="Regex Checker"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Design"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Dev"/><title type='text'>Regular Expression Checker v1.1.1 Released</title><content type='html'>I&#39;ve just updated the &lt;a href=&quot;https://chrome.google.com/extensions/detail/pgnkpcgniljiolidjmodgfljeomjjiha&quot;&gt;Regular Expression Checker&lt;/a&gt; extension on&amp;nbsp;&lt;a href=&quot;https://chrome.google.com/extensions/&quot;&gt;https://chrome.google.com/extensions/&lt;/a&gt;&lt;br /&gt;
I didn&#39;t have the time to finish implementing all the features. However, I did fix a few critical usability issues and added a few useful tools.&lt;br /&gt;
&lt;br /&gt;
Here are the release notes:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;v1.1.1&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;- added support for regex replacement&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;- added support for changing highlight color&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;- updated option checkboxes to instantly apply affects&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;- fixed styling issues on the results box&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;- minor code optimizations&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://chrome.google.com/extensions/img/pgnkpcgniljiolidjmodgfljeomjjiha/1262668744.14/screenshot_big/2001&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://chrome.google.com/extensions/img/pgnkpcgniljiolidjmodgfljeomjjiha/1262668744.14/screenshot_big/2001&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
Again, if you have any suggestions, bugs to report, or ideas, please feel free to write in the comments. Trust me, I do read them and valuable feed backs (good or bad) are all extremely welcomed.</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/4178316542459470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2010/01/regular-expression-checker-v111.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/4178316542459470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/4178316542459470'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2010/01/regular-expression-checker-v111.html' title='Regular Expression Checker v1.1.1 Released'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-8627873188576043539</id><published>2010-01-04T21:15:00.000-08:00</published><updated>2010-01-04T21:15:36.110-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Browsers"/><category scheme="http://www.blogger.com/atom/ns#" term="Chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="Chrome Armory"/><category scheme="http://www.blogger.com/atom/ns#" term="Extensions"/><category scheme="http://www.blogger.com/atom/ns#" term="Free"/><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Design"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Dev"/><category scheme="http://www.blogger.com/atom/ns#" term="World of Warcraft"/><category scheme="http://www.blogger.com/atom/ns#" term="魔兽世界"/><title type='text'>Chrome Armory 1.2.1 Released</title><content type='html'>I have just released v1.2.1 of &lt;a href=&quot;https://chrome.google.com/extensions/detail/ecedfkkllmokelhcpnljjgadblkmkhdn&quot;&gt;Chrome Armory&lt;/a&gt; on&amp;nbsp;&lt;a href=&quot;https://chrome.google.com/extensions/&quot;&gt;https://chrome.google.com/extensions/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Here are the release notes:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;v1.2.1&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;- fixed an image displaying issue which was caused by failed packaging&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;v1.2.0&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;- added support for all other regions (except for china since all realms are offline there)&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;- added international characters support&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;- code optimizations&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://chrome.google.com/extensions/img/ecedfkkllmokelhcpnljjgadblkmkhdn/1262661422.98/screenshot_big/2001&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://chrome.google.com/extensions/img/ecedfkkllmokelhcpnljjgadblkmkhdn/1262661422.98/screenshot_big/2001&quot; width=&quot;192&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://chrome.google.com/extensions/img/ecedfkkllmokelhcpnljjgadblkmkhdn/1262661422.98/screenshot_big/3001&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://chrome.google.com/extensions/img/ecedfkkllmokelhcpnljjgadblkmkhdn/1262661422.98/screenshot_big/3001&quot; width=&quot;192&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
Again, if you have any suggestions, bugs to report, or ideas, please feel free to write in the comments. Trust me, I do read them and valuable feed backs (good or bad) are all extremely welcomed.</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/8627873188576043539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2010/01/chrome-armory-121-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/8627873188576043539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/8627873188576043539'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2010/01/chrome-armory-121-released.html' title='Chrome Armory 1.2.1 Released'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-8670627519029844747</id><published>2009-12-29T22:00:00.000-08:00</published><updated>2010-01-07T14:10:28.238-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="General"/><title type='text'>simon20.com back to business</title><content type='html'>After a long frozen season, the domain &quot;simon20.com&quot; has finally been revived. I have updated its settings to point to this blog. From this point on, you can access this blog using &lt;a href=&quot;http://epicgear.blogspot.com/&quot;&gt;http://epicgear.blogspot.com&lt;/a&gt; or &lt;a href=&quot;http://www.simon20.com/&quot;&gt;http://www.simon20.com&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I&#39;m actually thinking about getting a cheap hosting through &lt;a href=&quot;http://www.slicehost.com/&quot;&gt;http://www.slicehost.com&lt;/a&gt;. Let&#39;s see if I can get this budget approved by &quot;the wife&quot;. (maybe I should put up a paypal donation button for all the chrome extensions i&#39;m writting *hint*)</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/8670627519029844747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2009/12/simon20com-back-to-business.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/8670627519029844747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/8670627519029844747'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2009/12/simon20com-back-to-business.html' title='simon20.com back to business'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-9135481272986444272</id><published>2009-12-29T13:20:00.000-08:00</published><updated>2010-01-04T21:07:17.415-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Browsers"/><category scheme="http://www.blogger.com/atom/ns#" term="Chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="Extensions"/><category scheme="http://www.blogger.com/atom/ns#" term="Free"/><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="Regex Search"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Design"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Dev"/><title type='text'>Chrome Extension - Regular Expression Search</title><content type='html'>&lt;div style=&quot;text-align: left;&quot;&gt;I&#39;m now on my third extension now.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Here it is, Regular Expression Search 1.0&lt;br /&gt;
&lt;br /&gt;
A simple search utility that allows you to search a web page using regular expression.&lt;br /&gt;
&lt;br /&gt;
==== Features under development ====&lt;br /&gt;
&amp;nbsp;1. toggle through found results&lt;br /&gt;
&amp;nbsp;2. improved UI&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6EGQorBgfcuSTcvU_9uWS8zcNSkBTbj1epnuynU-Y5Eu1XJibRj7u9SW54aM3dzHfn8rdnyV5phsNW9-1VROTE5WRUd4XfKFh-Kh3qeCqNhNrTzpdfzWA8y_BW4cDL3RdQFAteJBuYTM/s1600-h/regexsearch_01.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6EGQorBgfcuSTcvU_9uWS8zcNSkBTbj1epnuynU-Y5Eu1XJibRj7u9SW54aM3dzHfn8rdnyV5phsNW9-1VROTE5WRUd4XfKFh-Kh3qeCqNhNrTzpdfzWA8y_BW4cDL3RdQFAteJBuYTM/s400/regexsearch_01.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/9135481272986444272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2009/12/chrome-extension-regular-expression_29.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/9135481272986444272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/9135481272986444272'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2009/12/chrome-extension-regular-expression_29.html' title='Chrome Extension - Regular Expression Search'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6EGQorBgfcuSTcvU_9uWS8zcNSkBTbj1epnuynU-Y5Eu1XJibRj7u9SW54aM3dzHfn8rdnyV5phsNW9-1VROTE5WRUd4XfKFh-Kh3qeCqNhNrTzpdfzWA8y_BW4cDL3RdQFAteJBuYTM/s72-c/regexsearch_01.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-7253997768350605832</id><published>2009-12-29T09:47:00.000-08:00</published><updated>2010-01-04T21:06:59.819-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Browsers"/><category scheme="http://www.blogger.com/atom/ns#" term="Chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="Extensions"/><category scheme="http://www.blogger.com/atom/ns#" term="Free"/><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="Regex Checker"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Design"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Dev"/><title type='text'>Chrome Extension - Regular Expression Checker</title><content type='html'>On firefox, there are quite a few regular expression tester add-ons. Unfortunately, there has not been any for Chrome yet. So I decided to make a simple one.&lt;br /&gt;
&lt;br /&gt;
Here it is, &lt;a href=&quot;https://chrome.google.com/extensions/detail/pgnkpcgniljiolidjmodgfljeomjjiha&quot;&gt;Regular Expression Checker 1.0&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simple regular expression checker/tester.&lt;br /&gt;
&lt;br /&gt;
==== Features under development ====&lt;br /&gt;
&amp;nbsp;1. save regular expressions&lt;br /&gt;
&amp;nbsp;2. provide a library of pre-built regular expressions&lt;br /&gt;
&amp;nbsp;3. replace feature&lt;br /&gt;
&amp;nbsp;4. regex match status (how many matches, how many subpatterns, etc)&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1iar5zKkWaR5NQWy_cCmCBqmGrNXV9UFlwDBCEtm-9f427nr3OXOLPljzAUDKTn2EKZ4h1Ilnt3ezpkm6W1l7zreca1dbl-a2S3ZWWjVK5OoQ6WgLDjvuPj_o7Wji7czbd0vVf1RsDZw/s1600-h/regexchecker_01.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1iar5zKkWaR5NQWy_cCmCBqmGrNXV9UFlwDBCEtm-9f427nr3OXOLPljzAUDKTn2EKZ4h1Ilnt3ezpkm6W1l7zreca1dbl-a2S3ZWWjVK5OoQ6WgLDjvuPj_o7Wji7czbd0vVf1RsDZw/s320/regexchecker_01.jpg&quot; width=&quot;297&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv7Hzot-blG4l7lUMLxGDYZIVK0CdXwCaLgXP2g58xZMcL_vr246B5iSjmuhP6D7H7fpKgIW6ax0T2wiHyYW_dOmBILu4QGfGEJfJfKlbvCquHDEd0WfKz2ag0rxslaCkiJcGY-pZOIL0/s1600-h/regexchecker_02.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv7Hzot-blG4l7lUMLxGDYZIVK0CdXwCaLgXP2g58xZMcL_vr246B5iSjmuhP6D7H7fpKgIW6ax0T2wiHyYW_dOmBILu4QGfGEJfJfKlbvCquHDEd0WfKz2ag0rxslaCkiJcGY-pZOIL0/s320/regexchecker_02.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/7253997768350605832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2009/12/chrome-extension-regular-expression.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/7253997768350605832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/7253997768350605832'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2009/12/chrome-extension-regular-expression.html' title='Chrome Extension - Regular Expression Checker'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1iar5zKkWaR5NQWy_cCmCBqmGrNXV9UFlwDBCEtm-9f427nr3OXOLPljzAUDKTn2EKZ4h1Ilnt3ezpkm6W1l7zreca1dbl-a2S3ZWWjVK5OoQ6WgLDjvuPj_o7Wji7czbd0vVf1RsDZw/s72-c/regexchecker_01.jpg" height="72" width="72"/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-1249037508658072565</id><published>2009-12-28T20:15:00.000-08:00</published><updated>2010-01-04T21:07:30.314-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Browsers"/><category scheme="http://www.blogger.com/atom/ns#" term="Chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="Chrome Armory"/><category scheme="http://www.blogger.com/atom/ns#" term="Extensions"/><category scheme="http://www.blogger.com/atom/ns#" term="Free"/><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Design"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Dev"/><category scheme="http://www.blogger.com/atom/ns#" term="World of Warcraft"/><category scheme="http://www.blogger.com/atom/ns#" term="魔兽世界"/><title type='text'>ChromeArmory 1.0</title><content type='html'>Over this holiday season, I figured instead of running endless of instances in WoW, I better work on something fun and useful.&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;In my previous posts, I promised a tutorial post on how to write chrome extensions. This promise is not broken yet, it&#39;s still in the queue of all the posts I try to write and release everyday. Before I get to the actual tutorial post, I decided to write an extension of my own first.&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;So here it is, &lt;a href=&quot;https://chrome.google.com/extensions/detail/ecedfkkllmokelhcpnljjgadblkmkhdn&quot;&gt;Chrome Armory 1.0&lt;/a&gt;.&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Feel free to leave me any comments and suggestions. Bugs are also welcomed.&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;This extension provides a quick access to your world of warcraft&#39;s character profile. Items displayed on the profile page also provides tooltip powered by Wowhead.com.&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;==== Features under development ====&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&amp;nbsp;1. base/ranged/melee/spell/defense stats of the character&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&amp;nbsp;2. dual spec detection&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&amp;nbsp;3. achievement stats&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&amp;nbsp;4. additional tools to determine the status of the character (whether character is def capped, have enough spell power, etc.)&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAlaf9SUX6j1f_JLk549QvrUDPVMvcvpLYRqgTNuLAL6hPZXgPfl-g8fDylvNZPxnv4PrMwXNbeh2_tiYr-Y8O9A_jtCax27usr20yFRZBR_Mfyu302LQ6NioAxQben9qadsRGquxqsdA/s1600-h/chromearmory_1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAlaf9SUX6j1f_JLk549QvrUDPVMvcvpLYRqgTNuLAL6hPZXgPfl-g8fDylvNZPxnv4PrMwXNbeh2_tiYr-Y8O9A_jtCax27usr20yFRZBR_Mfyu302LQ6NioAxQben9qadsRGquxqsdA/s320/chromearmory_1.jpg&quot; width=&quot;197&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0n3-bfXXC0f2UwUd3E91pls5aMsoDaKt5ty0voWKgbp3a-QUBIu0J18bO5hrJThlEhyphenhyphenpDmSJLE8mTrYqd8zWyMu2WrERqYS0k7hEDxIy6wd0XGmy0q1YnIAulZJLLhLLpBm76snXFus8/s1600-h/chromearmory_2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0n3-bfXXC0f2UwUd3E91pls5aMsoDaKt5ty0voWKgbp3a-QUBIu0J18bO5hrJThlEhyphenhyphenpDmSJLE8mTrYqd8zWyMu2WrERqYS0k7hEDxIy6wd0XGmy0q1YnIAulZJLLhLLpBm76snXFus8/s320/chromearmory_2.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/1249037508658072565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2009/12/chromearmory-10.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/1249037508658072565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/1249037508658072565'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2009/12/chromearmory-10.html' title='ChromeArmory 1.0'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAlaf9SUX6j1f_JLk549QvrUDPVMvcvpLYRqgTNuLAL6hPZXgPfl-g8fDylvNZPxnv4PrMwXNbeh2_tiYr-Y8O9A_jtCax27usr20yFRZBR_Mfyu302LQ6NioAxQben9qadsRGquxqsdA/s72-c/chromearmory_1.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-6959975200173519278</id><published>2009-12-24T10:16:00.000-08:00</published><updated>2009-12-24T10:38:09.780-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Browsers"/><category scheme="http://www.blogger.com/atom/ns#" term="Chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="Extensions"/><category scheme="http://www.blogger.com/atom/ns#" term="Free"/><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Design"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Dev"/><title type='text'>Google Chrome Extensions - For the developers</title><content type='html'>In the previous article, I reviewed some &lt;a href=&quot;http://epicgear.blogspot.com/2009/12/fun-and-useful-google-chrome-extensions.html&quot;&gt;fun and useful Chrome Extensions&lt;/a&gt;. Today, I&#39;m going to review a few Chrome extensions for developers. It&#39;s a perfect holiday present for all the nerdy devs out there (including myself).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. &lt;a href=&quot;https://chrome.google.com/extensions/detail/idhfcdbheobinplaamokffboaccidbal&quot;&gt;Resolution Test&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;Resolution Test changes the size of the browser window for developers to preview their websites in different screen resolutions. It includes a list of commonly used resolutions as well as a custom option for you to input your own.&lt;/i&gt;&lt;br /&gt;
This one is a must have for anyone who wants to develop pages for different screen sizes. I still don&#39;t get why the hell people are still on 800x600.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. &lt;a href=&quot;https://chrome.google.com/extensions/detail/fbmlldeibipeppiabbdjajcneipfbocm&quot;&gt;Web Developer Tools&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
This extension is trying to duplicate the functionalities of &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/60&quot;&gt;Web Developer for Firefox&lt;/a&gt;. So far, i&#39;m pretty impressed by the functionalities, although I don&#39;t really like the UI of the tool.&lt;br /&gt;
&lt;br /&gt;
&lt;object height=&quot;344&quot; width=&quot;425&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/7nQ8fP7quIQ&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/7nQ8fP7quIQ&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowScriptAccess=&quot;always&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3. &lt;a href=&quot;https://chrome.google.com/extensions/detail/hehijbfgiekmjfkfjpbkbammjbdenadd&quot;&gt;IE Tab&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
I reviewed this in my last post. This IE Tab is great for running IE only sites, it is also a great tool for developer who wants to see the evil outcome of IE quickly within Chrome itself.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4. &lt;a href=&quot;https://chrome.google.com/extensions/detail/ognampngfcbddbfemdapefohjiobgbdl&quot;&gt;Speed Tracer (by Google)&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
This is purely awesome. It can profile the speed of your web application in real time and helps to identify the slowness. It can identify how busy the UI calls are, and a separated graph for tracing how the resources perform from a network perspective. This is perfect for developer who&#39;s developing rich web (Ajax) applications.&lt;br /&gt;
&lt;br /&gt;
&lt;object height=&quot;344&quot; width=&quot;425&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/Sn_3rJaexKc&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/Sn_3rJaexKc&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowScriptAccess=&quot;always&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;5. &lt;a href=&quot;https://chrome.google.com/extensions/detail/oangcciaeihlfmhppegpdceadpfaoclj&quot;&gt;Chrome SEO&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
Ever wonder what you can do to improve your site&#39;s search engine ranking? It often takes a lot of research and always stay on top of the latest SEO tips (literally tips) to be good at SEO. And quite frankly, SEO is also a day to day task if you want the ultimate most result.&lt;br /&gt;
This extension doesn&#39;t show you all the areas where you should improve for SEO. However, this nifty tool does show you the outcome of your SEO efforts by showing you the results pulled from major search engines and analytics tools.&lt;br /&gt;
This extension is still under heavy development and a new version is said to be released this week.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://chrome.google.com/extensions/img/oangcciaeihlfmhppegpdceadpfaoclj/1261377124.06/screenshot/1001&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;267&quot; src=&quot;https://chrome.google.com/extensions/img/oangcciaeihlfmhppegpdceadpfaoclj/1261377124.06/screenshot/1001&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;------------------------------&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;-- Current Features --&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;------------------------------&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Pages Indexed on:&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Bing&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Google&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Yahoo&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Backlinks as reported by :&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Alexa&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Bing&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Google&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- MajesticSeo&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Yahoo&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Current Traffic and Rankings as reported by :&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Alexa&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Compete&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Google PageRank&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Quantcast&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- SEMRush&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Technorati&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Social Bookmark counts on :&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Delicious&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Digg&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Dmoz&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- StumbleUpon&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Cached Versions of the website from :&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Archive.org&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- CoralCDN&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Google&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- WebCite&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Domain Details such as :&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- DNS&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- IP Address&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Server Location&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Whois details&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;-----------------------------&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;-- Future Features --&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;-----------------------------&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Integration with Google Search Results. Similar to SeoQuake or the SEOBook Firefox extension.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Keyword Ranking Checker to quickly and easily check your rankings for multiple sites and keywords across the major search engines.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- On page keyword analysis&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- NoFollow checker to highlight links on the current page that are no followed.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Keyword Research to easily generate and analyze keyword lists and view how much traffic each keyword receives.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- PPC Integration (Adwords, Adsense, Microsoft Adcenter, Yahoo Search Marketing)&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;- Google Analytics Integration&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
So far, I have reviewed 5 useful dev extensions. There are still a few I really want to review, but they are either still under development or still buggy. I will save them for the future when they are finished and&amp;nbsp;stabilized.&lt;br /&gt;
In the next article, I&#39;m going to write a short tutorial on how to write Chrome extensions. Hopefully it will also mark as the&amp;nbsp;beginning&amp;nbsp;of a new Chrome Extension project from me. Stay tuned.</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/6959975200173519278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2009/12/google-chrome-extensions-for-developers.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/6959975200173519278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/6959975200173519278'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2009/12/google-chrome-extensions-for-developers.html' title='Google Chrome Extensions - For the developers'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2596112609612706640.post-2784802229154558823</id><published>2009-12-20T21:33:00.000-08:00</published><updated>2009-12-20T21:33:29.793-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Free"/><category scheme="http://www.blogger.com/atom/ns#" term="Icons"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Design"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Dev"/><title type='text'>1000+ freebie icons</title><content type='html'>You all will love this. As i was on the quest of bringing my blog back, i found this site which offers 1000+ icons for free download.&lt;br /&gt;
&lt;br /&gt;
Mark James is a very talented web developer and designer. I so appreciate him for making all these “Silk Icons” and best of all “FREE”.&lt;br /&gt;
&lt;br /&gt;
Here are the links:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.famfamfam.com/&quot;&gt;http://www.famfamfam.com/&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.famfamfam.com/lab/icons/silk/&quot;&gt;http://www.famfamfam.com/lab/icons/silk/&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.simon20.com/feeds/2784802229154558823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.simon20.com/2009/12/1000-freebie-icons.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/2784802229154558823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2596112609612706640/posts/default/2784802229154558823'/><link rel='alternate' type='text/html' href='http://www.simon20.com/2009/12/1000-freebie-icons.html' title='1000+ freebie icons'/><author><name>EpicGear</name><uri>http://www.blogger.com/profile/13691229341761922173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhWBlDDUHSE8EM6Zet8Y7EHsJIMsR2AmJY8kwKInxLwXL1C-krafJHO-ob40IT-BE5iyomrNmT3pBd4-TeoVihDtALP3VedyiPxHcuHeBYdaYx9VACQ9zP8oqfnCCf5A/s1600-r/43366092157.jpg'/></author><thr:total>0</thr:total></entry></feed>