<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2enclosuresfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>]-[3ny0 ONLINE</title><link>http://blog.henyo.com/</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/HenyoOnline" /><description>Technology Blog: SEO, Earn with AdSense, Grails, Groovy, Java, Ubuntu, Windows 7, osx86, Social Gaming</description><language>en</language><managingEditor>noreply@blogger.com (]-[3n40)</managingEditor><lastBuildDate>Sat, 06 Mar 2010 06:25:16 PST</lastBuildDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">48</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">25</openSearch:itemsPerPage><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="henyoonline" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><itunes:explicit>no</itunes:explicit><itunes:subtitle>Technology Blog: SEO, Earn with AdSense, Grails, Groovy, Java, Ubuntu, Windows 7, osx86, Social Gaming</itunes:subtitle><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">HenyoOnline</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item><title>Warstorm on Facebook</title><link>http://blog.henyo.com/2010/03/warstorm-on-facebook.html</link><category>Social Gaming</category><author>noreply@blogger.com (]-[3n40)</author><pubDate>Thu, 04 Mar 2010 10:15:30 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-6508587328309177497</guid><description>Warstorm is a fantasy fighting game where you pit your armies against hordes of enemies, friends, or anyone in the world. In this fantasy card game, you build an army of wizards, warriors and beasts. You then attack the armies of other players as well as go on missions. When you win battles, you earn silver and experience which you can use to get more cards and give your army new abilities.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;i&gt;Game Mechanics&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The game revolves around duels between squads composed of collectible cards. The cards come from different factions (Humans, Elves, Orcs, Undead and Demons) and &amp;nbsp;types (Heroes, Units, Artifacts and Spells).&lt;br /&gt;
&lt;br /&gt;
Your army is made out of squads and each squad is led by a hero card. The user interface has enough slots for you to build up to 12 squads. Each squad is composed of 1 Hero, some units and zero or more artifacts and spells. Your first hero is Lord General Pozak, a Human leader.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_UGKKDn3ntj8/S4_pQZIYwRI/AAAAAAAAAbY/y1q0fctWJ6A/s1600-h/hero.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_UGKKDn3ntj8/S4_pQZIYwRI/AAAAAAAAAbY/y1q0fctWJ6A/s320/hero.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
The hero chosen for the squad determines the other elements needed to form it.&lt;br /&gt;
For  Lord General Pozak, he has a ready value of 8. The ready value is found at the lower left corner of the card. It indicates how long it takes a card to enter battle after it is drawn. His unit count is 6 which is the number of combat units this heros squad must contain. His artifact count is 0 which indicates the number of artifacts this heros squad must contain and lastly his spell count which indicates the number of spells that this heros squad should contain is 0.&lt;br /&gt;
&lt;br /&gt;
Once you have assembled a complete squad, you can proceed to completing the missions. Missions involve an equal number of squads from your side fighting the same number of squads from the enemys side. Combat is done in a series of turns where the cards are drawn in random andstay at the bottom of the combat area for a number of turns equal to the cards ready value. When the card enters battle, it attacks the unit opposite it and does damage equal to its attack value. This value is subtracted from the defense value of the attacked card. If the defense value is zero, the card is destroyed and it leaves play. If there is no card in front of a combat unit when it attacks, it deals damage to the opposing armies morale. When your enemys morale reaches zero, you win the duel. When the enemy runs out of cards, you win the duel.&lt;br /&gt;
&lt;br /&gt;
The game has a lot of tutorial missions to help you get the hang of the different cards. Some cards are built for speed with minimal life and maximum attack while other are build to defend with minimal attack and maximum life. Other units have special abilities like archecrt, heal, zap and others. All these abilities are explained during the tutorial.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&lt;b&gt;Tips and Strategies&lt;/b&gt;&lt;/i&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;In the early part, save your silver, do not buy the novice pack when instructed to do so. Just continue on to the next mission until you earn enough to buy a pre-made deck. You will need 3 squads to finish the coming missions.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Once you get to 3 squads, you need to save up to get to 4 squads as the next missions requires at least 4 squads.&lt;/li&gt;
&lt;li&gt;It is advisable to get to 4 squads before you purchase the expert packs&lt;/li&gt;
&lt;/ul&gt;You are also welcome to &lt;a href="http://feedburner.google.com/fb/a/mailverify?uri=HenyoOnline&amp;amp;loc=en_US"&gt;subscribe via email&lt;/a&gt; or &lt;a href="http://feeds.feedburner.com/HenyoOnline"&gt;subscribe via reader&lt;/a&gt; to get updates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-6508587328309177497?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-05T02:15:30.586+08:00</app:edited><media:thumbnail url="http://3.bp.blogspot.com/_UGKKDn3ntj8/S4_pQZIYwRI/AAAAAAAAAbY/y1q0fctWJ6A/s72-c/hero.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Election 2010 is on the news</title><link>http://blog.henyo.com/2009/12/election-2010-is-on-news.html</link><author>noreply@blogger.com (]-[3n40)</author><pubDate>Wed, 02 Dec 2009 06:48:42 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-8722266152526252603</guid><description>This is a nice surprise. Being covered by mainstream media may have contributed to the increase in application sign up and usage. &lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.philstar.com/Article.aspx?articleId=528607&amp;amp;publicationSubCategoryId=67"&gt;philstar.com article&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.manilatimes.net/index.php/top-stories/6902-teodoro-leads-in-facebooks-election-poll"&gt;manilatimes.net article&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.manilastandardtoday.com/insideNation.htm?f=2009/november/27/nation1.isx&amp;amp;d=/2009/november/27"&gt;manilastandardtoday.com article &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.businessmirror.com.ph/home/nation/19049-gma-urged-to-run-for-congress.html"&gt;businessmirror.com.ph article&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.journal.com.ph/index.php?issue=2009-12-01&amp;amp;sec=4&amp;amp;aid=108428"&gt;journal.com.ph article&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You are also welcome to &lt;a href="http://feedburner.google.com/fb/a/mailverify?uri=HenyoOnline&amp;amp;loc=en_US"&gt;subscribe via email&lt;/a&gt; or &lt;a href="http://feeds.feedburner.com/HenyoOnline"&gt;subscribe via reader&lt;/a&gt; to get updates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-8722266152526252603?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T22:48:42.589+08:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Earn $100 easy with Facebook and Paypal</title><link>http://blog.henyo.com/2009/11/earn-100-easy-with-facebook-and-paypal.html</link><category>Earn money online</category><author>noreply@blogger.com (]-[3n40)</author><pubDate>Sun, 22 Nov 2009 16:42:37 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-6199020023153803621</guid><description>Do you have a PayPal account? &lt;br /&gt;
&lt;br /&gt;
Do you have a Facebook account?&lt;br /&gt;
&lt;br /&gt;
If you answered yes to both of the questions above then you too can earn up to $100.00.&lt;br /&gt;
&lt;br /&gt;
You don't have a PayPal account? &lt;a href="https://www.paypal.com/ph/mrb/pal=V2HHEHZ43MPZQ" target="_ppsignup"&gt;Click here to sign-up for a PayPal account&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
You don't have a Facebook account? &lt;a href="http://www.facebook.com/" target="_fbwin"&gt;Click here to sign-up for a Facebook Account&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The first step is to first login to &lt;a href="http://www.facebook.com/" target="_fbwin"&gt;Facebook&lt;/a&gt;. No need to do this if you've just signed-up for a Facebook Account.&lt;br /&gt;
&lt;br /&gt;
To earn your first dollar, simply open the &lt;a href="http://apps.facebook.com/paypalwishlist/?ppref=1353176514" target="_fbwin"&gt;PayPal WishList Application&lt;/a&gt; and allow it access to your Facebook profile. Click on the link below if you missed the link above:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://apps.facebook.com/paypalwishlist/?ppref=1353176514" target="_fbwin"&gt;Open Paypal WishList Application&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
You should then create your wishlist by following the instructions on the application page.&lt;br /&gt;
&lt;br /&gt;
Then use Facebook to tell your friends and invite them to use the &lt;a href="http://apps.facebook.com/paypalwishlist/?ppref=1353176514" target="_fbwin"&gt;PayPal WishList Application&lt;/a&gt;&lt;br /&gt;
You will earn an additional $1.00 (one dollar!) for every friend that accepts your invitation to use the PayPal WishList Application.&lt;br /&gt;
&lt;br /&gt;
This offer started started on Nov 15, 2009 and will end on Dec 31, 2009.&lt;br /&gt;
&lt;br /&gt;
If you have any questions or you need any help, please feel free to ask me or post them as comments.&lt;br /&gt;
You should also checkout the other posts on this blog which might help you earn some more money online.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to &lt;a href="http://feedburner.google.com/fb/a/mailverify?uri=HenyoOnline&amp;amp;loc=en_US"&gt;subscribe via email&lt;/a&gt; or &lt;a href="http://feeds.feedburner.com/HenyoOnline"&gt;subscribe via reader&lt;/a&gt; to get updates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-6199020023153803621?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-23T08:42:37.970+08:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>Rise of Social Gaming</title><link>http://blog.henyo.com/2009/11/rise-of-social-gaming.html</link><category>Social Gaming</category><author>noreply@blogger.com (]-[3n40)</author><pubDate>Sun, 22 Nov 2009 17:38:09 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-5391001534108869857</guid><description>With my latest personal development project being a Facebook app, I couldn't help but notice that Facebook has become the largest social gaming platform on the internet.&lt;br /&gt;
&lt;br /&gt;
So what is Social Gaming? Social Gaming is currently a huge phenomenon on the large online social networks like Facebook, MySpace and Twitter. These social networks offer their members/users FREE games. Most of these free games are casual games. They are targeted at or used by a mass audience and are typically distinguished by their simple rules and lack of commitment required. They usually require no long term time commitment or special skills to play.&lt;br /&gt;
&lt;br /&gt;
What makes social gaming different from just plain old casual gaming is the network element. It adds a very addictive dimension by allowing their users to play with and against their friends, friends and acquaintances. It makes simple casual games much more enjoyable.&lt;br /&gt;
&lt;br /&gt;
The games are written by Social game developers like Zynga and Playfish. Most of them monetize these games by selling virtual goods to their players as well as giving them offers.&lt;br /&gt;
&lt;br /&gt;
Virtual goods allow players to have a better overall experience either by better customization of avatars or allowing them to level-up faster. For users unwilling or unable to pay for the virtual goods, a wide variety of offers are available which when completed will allow players to earn in-game currency. This in itself poses no outright danger but when you examine the offers, it will seem like a scam.&lt;br /&gt;
&lt;br /&gt;
Some offers will ask you to take a quiz or a survey and ask for your mobile number. A code is then send to your phone via sms and the user is asked to enter the code on the site. This act will subscribe your mobile number to a monthly subscription for a pretty much useless service.&lt;br /&gt;
&lt;br /&gt;
Another type of offer asks users to sign-up to receive a free CD or other product to try. The product is free except that the user needs to pay for shipping. What the fine print says though is that the user will be charged full price unless the user returns the product.&lt;br /&gt;
&lt;br /&gt;
I have yet to hear about users here in the Philippines getting scammed by similar offers described above.&lt;br /&gt;
&lt;br /&gt;
Please post what sort of offers you've done and did they have any detrimental effect?&lt;br /&gt;
&lt;br /&gt;
You are also welcome to &lt;a href="http://feedburner.google.com/fb/a/mailverify?uri=HenyoOnline&amp;amp;loc=en_US"&gt;subscribe via email&lt;/a&gt; or &lt;a href="http://feeds.feedburner.com/HenyoOnline"&gt;subscribe via reader&lt;/a&gt; to get updates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-5391001534108869857?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-23T09:38:09.508+08:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Revisiting Rails: Setting up on Windows</title><link>http://blog.henyo.com/2009/11/revisiting-rails-setting-up-on-windows.html</link><author>noreply@blogger.com (]-[3n40)</author><pubDate>Sat, 14 Nov 2009 09:35:52 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-287583722243877718</guid><description>I've built my first Facebook application and now I'd like to take it a step further. Not being a fan of PHP, I took a look at what other people are using to build their Facebook&amp;nbsp; applications and I was delighted to find that some use Ruby on Rails.&lt;br /&gt;
&lt;br /&gt;
I studied Ruby on Rails when it was first made public and the hype was at its peek. I just never got around to actually using it in a serious project. I'm just glad I can come back to Rails now.&lt;br /&gt;
&lt;br /&gt;
Here is how I was able to set it up on my old Windows XP laptop:&lt;br /&gt;
&lt;br /&gt;
I downloaded and installed the &lt;a href="http://rubyinstaller.org/"&gt;Ruby One-Click Installer&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Using the command line, I updated the ruby gems using:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;gem update --system&lt;/pre&gt;I had a feeling it will take some time so I proceeded to install a database for development. I went to &lt;a href="http://www.sqlite.org/download.html"&gt;http://www.sqlite.org/download.html&lt;/a&gt;&amp;nbsp;and downloaded the command line program and the dll: sqlite-XXX.zip and sqlitedll-XXX.zip where XXX is the latest version which at this point in time is 3.6.20. I extracted the files to the ruby bin directory which by default is located at C:\ruby\bin&lt;br /&gt;
&lt;br /&gt;
I'm also going to need a source code management tool and now seemed like a good time to learn about git. I went to &lt;a href="http://code.google.com/p/msysgit/downloads/list"&gt;http://code.google.com/p/msysgit/downloads/list&lt;/a&gt; to download the latest version of the windows git installer. Afterwards, I ran the full installer to install git.&lt;br /&gt;
&lt;br /&gt;
By this time, the gem update process has finished and I proceeded to install &lt;br /&gt;
rails and the sqlite3 ruby bindings using:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;gem install rails sqlite3-ruby&lt;/pre&gt;&lt;br /&gt;
For a lightweight text editor, I found &lt;a href="http://intype.info/%20"&gt;Intype&lt;/a&gt; which is still in early alpha. It seems&lt;br /&gt;
like a small, fast, and flexible code editor for Microsoft Windows with an intuitive and easy to use interface.&lt;br /&gt;
&lt;br /&gt;
With the setup finished, I'm going to proceed to study using the following free resources and non-free books:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://pine.fm/LearnToProgram/"&gt;Learn to Program&lt;/a&gt;&amp;nbsp;&lt;/li&gt;

&lt;ul&gt;&lt;li&gt;Free online tutorial for people just learning to program&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;a href="http://mislav.uniqpath.com/poignant-guide/book/"&gt;Why's (Poignant) Guide to Ruby&lt;/a&gt;&amp;nbsp;&lt;/li&gt;

&lt;ul&gt;&lt;li&gt;Free introductory book to the Ruby Programming Language &lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;a href="http://www.rubyist.net/~slagell/ruby/"&gt;Ruby Users Guide&lt;/a&gt;&lt;/li&gt;

&lt;ul&gt;&lt;li&gt;Free English translation of&amp;nbsp; the guide to learning Ruby written by the language creator&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;a href="http://book.git-scm.com/index.html"&gt;Git Community Book&lt;/a&gt;&amp;nbsp;&lt;/li&gt;

&lt;ul&gt;&lt;li&gt;Free book for learning about Git&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;a href="http://gettingreal.37signals.com/toc.php%20"&gt;Getting Real&lt;/a&gt;&lt;/li&gt;

&lt;ul&gt;&lt;li&gt;Free primer on the agile approach&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;a href="http://guides.rubyonrails.org/"&gt;Ruby on Rails Guides&lt;/a&gt;&lt;/li&gt;

&lt;ul&gt;&lt;li&gt;Free online collection of guides for Ruby on Rails&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;a href="http://apidock.com/rails/browse"&gt;Ruby on Rails API&lt;/a&gt;&lt;/li&gt;

&lt;ul&gt;&lt;li&gt;Free online Reference for the&amp;nbsp; Ruby on Rails API&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;a href="http://apidock.com/rspec/browse"&gt;RSpec API&lt;/a&gt;&lt;/li&gt;

&lt;ul&gt;&lt;li&gt;Free online Reference for RSpec &lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;&lt;br /&gt;
&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=FFFFFF&amp;amp;IS2=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=coliph-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=1430210397" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;/td&gt;&lt;td&gt;&lt;br /&gt;
&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=FFFFFF&amp;amp;IS2=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=coliph-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=1934356166" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;/td&gt;&lt;td&gt;&lt;br /&gt;
&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=FFFFFF&amp;amp;IS2=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=coliph-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=0321445619" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;br /&gt;
&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=FFFFFF&amp;amp;IS2=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=coliph-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=047022388X" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;/td&gt;&lt;td&gt;&lt;br /&gt;
&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=FFFFFF&amp;amp;IS2=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=coliph-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=0470189487" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;/td&gt;&lt;td&gt;&lt;br /&gt;
&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=FFFFFF&amp;amp;IS2=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=coliph-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=0596515200" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=FFFFFF&amp;amp;IS2=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=coliph-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=1934356123" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
You are also welcome to &lt;a href="http://feedburner.google.com/fb/a/mailverify?uri=HenyoOnline&amp;amp;loc=en_US"&gt;subscribe via email&lt;/a&gt; or &lt;a href="http://feeds.feedburner.com/HenyoOnline"&gt;subscribe via reader&lt;/a&gt; to get updates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-287583722243877718?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-15T01:35:52.152+08:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Facebook App#1: Election 2010 simulation</title><link>http://blog.henyo.com/2009/11/facebook-app1-election-2010-simulation.html</link><author>noreply@blogger.com (]-[3n40)</author><pubDate>Sat, 31 Oct 2009 20:07:46 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-3314773285241622900</guid><description>After 2 days of studying and coding, I came up with a fairly simple Facebook Application that simulates the Philippine 2010 Presidential Election.&lt;br /&gt;
&lt;br /&gt;
I am a beginner at PHP and Facebook Application development so comments and suggestions are welcome.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://apps.facebook.com/election_twenty_ten/"&gt;Election 2010 Simulation&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
You are also welcome to &lt;a href="http://feedburner.google.com/fb/a/mailverify?uri=HenyoOnline&amp;amp;loc=en_US"&gt;subscribe via email&lt;/a&gt; or &lt;a href="http://feeds.feedburner.com/HenyoOnline"&gt;subscribe via reader&lt;/a&gt; to get updates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-3314773285241622900?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-01T11:07:46.873+08:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Planning a Windows 7 reinstall</title><link>http://blog.henyo.com/2009/10/planning-windows-7-reinstall.html</link><author>noreply@blogger.com (]-[3n40)</author><pubDate>Tue, 27 Oct 2009 06:10:27 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-2531530462243447491</guid><description>One of these days, I will re-install the Windows 7 OS&amp;nbsp;on my laptop and downgrade it from a 64-bit version &amp;nbsp;to the 32-bit version.&lt;br /&gt;
&lt;br /&gt;
I think it would turn out much better if I had some sort of plan before I start doing anything. Off the top of my head, here is a list of the stuff I need to install after the drivers and windows patches.&lt;br /&gt;
&lt;br /&gt;
General:&lt;br /&gt;
Archiver:&amp;nbsp;&lt;a href="http://www.7-zip.org/"&gt;7zip&lt;/a&gt;&lt;br /&gt;
Virtual CD:&amp;nbsp;&lt;a href="http://www.slysoft.com/en/virtual-clonedrive.html"&gt;Virtual Clone Drive&lt;/a&gt;&lt;br /&gt;
Text Editor(not free):&amp;nbsp;&lt;a href="http://www.e-texteditor.com/"&gt;e-texteditor&lt;/a&gt;&lt;br /&gt;
PDF: &lt;a href="http://www.foxitsoftware.com/pdf/reader/"&gt;foxit pdf reader&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Internet:&lt;br /&gt;
Torrent Client: &lt;a href="http://www.utorrent.com/"&gt;uTorrent&lt;/a&gt;&lt;br /&gt;
Download Manager: &lt;a href="http://www.freedownloadmanager.org/"&gt;Free Download Manager&lt;/a&gt;&lt;br /&gt;
Browser:&amp;nbsp;&lt;a href="http://www.google.com/chrome"&gt;Chrome&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www.mozilla.com/firefox/"&gt;Firefox&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.e-texteditor.com/"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Multimedia:&lt;br /&gt;
Media Player:&amp;nbsp;&lt;a href="http://www.videolan.org/vlc/"&gt;VLC&lt;/a&gt;&lt;br /&gt;
Flash Player: &lt;a href="http://get.adobe.com/flashplayer/"&gt;Adobe Flash Player&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Security&lt;br /&gt;
Anti-spyware: &lt;a href="http://www.safer-networking.org/"&gt;Spybot S&amp;amp;D&lt;/a&gt;&lt;br /&gt;
Anti-virus: &lt;a href="http://www.free-av.com/"&gt;Avira&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You are also welcome to &lt;a href="http://feedburner.google.com/fb/a/mailverify?uri=HenyoOnline&amp;amp;loc=en_US"&gt;subscribe via email&lt;/a&gt; or &lt;a href="http://feeds.feedburner.com/HenyoOnline"&gt;subscribe via reader&lt;/a&gt; to get updates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-2531530462243447491?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-27T21:10:27.325+08:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Grails on Windows 7</title><link>http://blog.henyo.com/2009/10/grails-on-windows-7.html</link><author>noreply@blogger.com (]-[3n40)</author><pubDate>Sun, 25 Oct 2009 04:18:31 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-4695007611390234108</guid><description>Java Runtime:&amp;nbsp;Java(TM) SE Runtime Environment (build 1.6.0_16-b01)&lt;br /&gt;
Grails: 1.1.1&lt;br /&gt;
Editor: e-texteditor 1.0.39&lt;br /&gt;
Bundles for groovy and grails:&amp;nbsp;&lt;a href="http://github.com/gtcaz/tmbundles4win"&gt;http://github.com/gtcaz/tmbundles4win&lt;/a&gt;&lt;br /&gt;
Database: mysql 5.1 works fine on 64 bit windows 7&lt;br /&gt;
&lt;br /&gt;
grails would not start with the following error:&lt;br /&gt;
Error starting Grails: org/codehaus/gant/GantBinding&amp;nbsp;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; border-collapse: collapse; font-family: verdana, geneva, helvetica, arial, sans-serif; font-size: 13px;"&gt;java.lang.NoClassDefFoundError: org/codehaus/gant/GantBinding&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
to actually make it work, I had to modify startGrails.bat:30 to:&lt;br /&gt;
set JAVA_OPTS=%JAVA_OPTS% -Dgrails.version="1.1.1"&lt;br /&gt;
&lt;br /&gt;
Someone must have forgotten to adjust the batch file when the stable version was released&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You are also welcome to &lt;a href="http://feedburner.google.com/fb/a/mailverify?uri=HenyoOnline&amp;amp;loc=en_US"&gt;subscribe via email&lt;/a&gt; or &lt;a href="http://feeds.feedburner.com/HenyoOnline"&gt;subscribe via reader&lt;/a&gt; to get updates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-4695007611390234108?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-25T19:18:31.661+08:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Earn with AdSense: Keyword Research</title><link>http://blog.henyo.com/2009/10/earn-with-adsense-keyword-research.html</link><category>Earn with AdSense</category><author>noreply@blogger.com (]-[3n40)</author><pubDate>Sun, 11 Oct 2009 05:43:38 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-1500434939889635803</guid><description>&lt;i&gt;Earn with AdSense&lt;/i&gt; is a series of posts that chronicles my attempt to earn with Google's AdSense. This is the 2nd post of the series and describes how I do my keyword research using freely available tools.&lt;br /&gt;
If you missed the first post, you can check it out here: &lt;a href="http://blog.henyo.com/2009/10/earn-with-adsense-beginning.html"&gt;Earn with AdSense: The Beginning&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;What is a keyword?&lt;/h2&gt;The term keyword refers to a word or a phrase used by Internet users to find information on-line. For example, if Juan de la Cruz wants to find information about condos in the Philippines, he will probably go to Google, Yahoo or Bing and type in:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;condo Philippines&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
and the search engine would readily display the result page containing links to hopefully relevant pages.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;So what is keyword research?&lt;/h2&gt;Keyword research is the process of finding out what people search for, how much AdWord advertisers are willing to pay and the relative difficulty of getting to the first page of the search results. The search process may be seen as a Demand vs Supply model. Demand is the keyword search popularity or how many times the keyword has been search for a month while Supply is the number of pages that seem relevant to the keyword in question. With the millions of automated junk pages with random text on the web, it is wise to use your own judgment while determining what is a good niche and what is not.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;How will this help me Earn with AdSense?&lt;/h2&gt;Keywords are very important because it allows us to know what people want. We can benefit from knowing what people search on the internet because it provides an insight into consumer desires and wants. This in turn gives us very valuable information on what to optimize our sites for and bring us traffic.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;How do I do Keyword Research&lt;/h2&gt;The primary tool I use to do keyword research is Google's free &lt;a href="https://adwords.google.com/select/KeywordToolExternal"&gt;AdWords Keyword Tool&lt;/a&gt;. To use it, you just have to open the link in another tab or browser window.&lt;br /&gt;
I then type in the keyword I want to check and click on the Get Keyword Ideas button.&lt;br /&gt;
This will generate the desired results. To go with our example, I typed in&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;condo Philippines&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
and clicked on the Get Keyword Ideas button. I then proceed to change the way the results are presented so as to make analysis easier.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;set the currency to USD and click Recalculate&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;hide the Local Search Volume and Advertiser Competition column&lt;/li&gt;
&lt;li&gt;show the Estimated Avg. CPC column&lt;/li&gt;
&lt;li&gt;change the match type to Exact&lt;/li&gt;
&lt;li&gt;click on the Global Monthly Search Volume to sort the results in descending order &lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;I then export the result of the keywords related to the terms entered to a csv file for importing into a spread sheet. I then create a column that multiplies the Global Monthly Search volume to the Estimated Avg. CPC. I then create another column that takes 10% of the resulting product. I then sort the spreadsheet based on this column and I take note of the rows that produce a result greater than 20, these are the keywords which I will check for competition.&lt;br /&gt;
&lt;br /&gt;
&lt;table border="1" cellpadding="1" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;[condo philippines]&lt;br /&gt;
&lt;/td&gt;&lt;td&gt;USD 0.69&lt;br /&gt;
&lt;/td&gt; &lt;td&gt;720&lt;br /&gt;
&lt;/td&gt; &lt;td&gt;496.8&lt;br /&gt;
&lt;/td&gt; &lt;td&gt;49.68&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;[philippine condominium]&lt;br /&gt;
&lt;/td&gt;&lt;td&gt;USD 0.82&lt;br /&gt;
&lt;/td&gt;&lt;td&gt;590&lt;br /&gt;
&lt;/td&gt;&lt;td&gt;483.8&lt;br /&gt;
&lt;/td&gt;&lt;td&gt;48.38&lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;[philippine condo]&lt;br /&gt;
&lt;/td&gt;&lt;td&gt;USD 0.60&lt;br /&gt;
&lt;/td&gt;&lt;td&gt;590&lt;br /&gt;
&lt;/td&gt;&lt;td&gt;354&lt;br /&gt;
&lt;/td&gt;&lt;td&gt;35.4&lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;[condominium philippines]&lt;br /&gt;
&lt;/td&gt;&lt;td&gt;USD 0.61&lt;br /&gt;
&lt;/td&gt;&lt;td&gt;480&lt;br /&gt;
&lt;/td&gt;&lt;td&gt;292.8&lt;br /&gt;
&lt;/td&gt;&lt;td&gt;29.28&lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
I then open a separate tab in my Firefox browser and do a search in Google for the first keyword in my list: condo philippines. The result page tells me that there are 1.89 million pages which are relevant to my search. What is more important is the top 3 search results. I use SEOQuake which is a Firefox plugin that will make finding certain information about sites easier more specifically the Page Rank.&lt;br /&gt;
&lt;br /&gt;
I determine the relative difficulty by taking the Page Rank, add 1 point if the URL contains the keyword exactly, add 1 point if the title contains the keyword exactly. Pages with a higher difficulty rate are harder to beat which might mean that I should try for easier keywords instead. As an example, here is the top 3 results for a google search on condo philippines:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;http://www.condosphilippines.com/&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Page Rank: 2&lt;/li&gt;
&lt;li&gt;Exact Keyword in URL: yes&lt;/li&gt;
&lt;li&gt;Exact Keyword in Title: yes&lt;/li&gt;
&lt;li&gt;Difficulty score: 4&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;http://www.condominiumsph.com/&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Page Rank: 2&lt;/li&gt;
&lt;li&gt;Exact Keyword in URL: no&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Exact Keyword in Title: no&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Difficulty score: 2&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;http://www.viviun.com/Real_Estate/Philippines/Condos/&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Page Rank: 2&lt;/li&gt;
&lt;li&gt;Exact Keyword in URL: no&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Exact Keyword in Title: yes&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Difficulty score: 3&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;TOTAL Difficulty Score: 9 &lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;To me, a score of 10 or below is doable so I will target the keyword "condo philippines"&lt;br /&gt;
&lt;br /&gt;
Please check back in a few days to see how I am fairing in my effort to &lt;b&gt;earn with AdSense&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
If you found this post useful and you wish to thank me or help me, please blog about it and link to this post using the link below:&lt;br /&gt;
&lt;pre&gt;&amp;lt;a href="http://blog.henyo.com/"&amp;gt;Earn with AdSense&amp;lt;/a&amp;gt; 
&lt;/pre&gt;You are also welcome to &lt;a href="http://feedburner.google.com/fb/a/mailverify?uri=HenyoOnline&amp;amp;loc=en_US"&gt;subscribe via email&lt;/a&gt; or &lt;a href="http://feeds.feedburner.com/HenyoOnline"&gt;subscribe via reader&lt;/a&gt; to get updates.&lt;br /&gt;
&lt;div id="seolinx-tooltip" style="border: 1px solid rgb(0, 0, 0); display: none; margin: 0pt; opacity: 0.9; padding: 0pt; position: absolute; width: auto; z-index: 99999;"&gt;&lt;table style="border-collapse: separate; border: 0pt none; margin: 0pt; padding: 0pt; width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td id="seolinx-table" style="border: 0pt none; font-family: Tahoma; font-size: 11px; font-weight: bold; margin: 1px; padding: 0pt;"&gt;&lt;div style="margin: 0pt; overflow: auto; padding: 0pt; width: auto;"&gt;&lt;table id="seolinx-paramtable" style="border-collapse: separate; border: 1px solid gray; margin: 0pt;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="-moz-background-clip: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-background-origin: -moz-initial; background: rgb(240, 240, 240) none repeat scroll 0% 0%; border: 1px solid gray; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; padding: 2px; white-space: nowrap;"&gt;&lt;img height="12" src="http://toolbarqueries.google.com/favicon.ico" style="vertical-align: middle;" width="12" /&gt;&amp;nbsp;PR: &lt;a href="javascript:{}" seolinx-param-index="0" seolinx-type="param" style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" title="Google pagerank"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="-moz-background-clip: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-background-origin: -moz-initial; background: rgb(240, 240, 240) none repeat scroll 0% 0%; border: 1px solid gray; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; padding: 2px; white-space: nowrap;"&gt;&lt;img height="12" src="http://www.google.com/favicon.ico" style="vertical-align: middle;" width="12" /&gt;&amp;nbsp;I: &lt;a href="javascript:{}" seolinx-param-index="1" seolinx-type="param" style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" title="Google index"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="-moz-background-clip: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-background-origin: -moz-initial; background: rgb(240, 240, 240) none repeat scroll 0% 0%; border: 1px solid gray; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; padding: 2px; white-space: nowrap;"&gt;&lt;img height="12" src="http://www.google.com/favicon.ico" style="vertical-align: middle;" width="12" /&gt;&amp;nbsp;L: &lt;a href="javascript:{}" seolinx-param-index="2" seolinx-type="param" style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" title="Google links"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="-moz-background-clip: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-background-origin: -moz-initial; background: rgb(240, 240, 240) none repeat scroll 0% 0%; border: 1px solid gray; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; padding: 2px; white-space: nowrap;"&gt;&lt;img height="12" src="http://siteexplorer.search.yahoo.com/favicon.ico" style="vertical-align: middle;" width="12" /&gt;&amp;nbsp;LD: &lt;a href="javascript:{}" seolinx-param-index="12" seolinx-type="param" style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" title="Yahoo linkdomain"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="-moz-background-clip: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-background-origin: -moz-initial; background: rgb(240, 240, 240) none repeat scroll 0% 0%; border: 1px solid gray; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; padding: 2px; white-space: nowrap;"&gt;&lt;img height="12" src="http://www.bing.com/favicon.ico" style="vertical-align: middle;" width="12" /&gt;&amp;nbsp;I: &lt;a href="javascript:{}" seolinx-param-index="20" seolinx-type="param" style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" title="Bing index"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="-moz-background-clip: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-background-origin: -moz-initial; background: rgb(240, 240, 240) none repeat scroll 0% 0%; border: 1px solid gray; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; padding: 2px; white-space: nowrap;"&gt;&lt;a href="javascript:{}" seolinx-param-index="40" seolinx-type="param" style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" title="Sitemap.xml"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="-moz-background-clip: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-background-origin: -moz-initial; background: rgb(240, 240, 240) none repeat scroll 0% 0%; border: 1px solid gray; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; padding: 2px; white-space: nowrap;"&gt;&lt;img height="12" src="http://www.semrush.com/favicon.ico" style="vertical-align: middle;" width="12" /&gt;&amp;nbsp;Rank: &lt;a href="javascript:{}" seolinx-param-index="41" seolinx-type="param" style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" title="SEMRush Rank"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="-moz-background-clip: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-background-origin: -moz-initial; background: rgb(240, 240, 240) none repeat scroll 0% 0%; border: 1px solid gray; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; padding: 2px; white-space: nowrap;"&gt;&lt;img height="12" src="http://www.semrush.com/favicon.ico" style="vertical-align: middle;" width="12" /&gt;&amp;nbsp;Traffic: &lt;a href="javascript:{}" seolinx-param-index="42" seolinx-type="param" style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" title="SEMRush SE Traffic"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="-moz-background-clip: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-background-origin: -moz-initial; background: rgb(240, 240, 240) none repeat scroll 0% 0%; border: 1px solid gray; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; padding: 2px; white-space: nowrap;"&gt;&lt;img height="12" src="http://www.semrush.com/favicon.ico" style="vertical-align: middle;" width="12" /&gt;&amp;nbsp;Price: &lt;a href="javascript:{}" seolinx-param-index="43" seolinx-type="param" style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" title="SEMRush SE Traffic price"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="-moz-background-clip: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-background-origin: -moz-initial; background: rgb(240, 240, 240) none repeat scroll 0% 0%; border: 1px solid gray; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; padding: 2px; white-space: nowrap;"&gt;&lt;img height="12" src="http://siteanalytics.compete.com/favicon.ico" style="vertical-align: middle;" width="12" /&gt;&amp;nbsp;C: &lt;a href="javascript:{}" seolinx-param-index="108" seolinx-type="param" style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" title="Compete Rank"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/td&gt;&lt;td id="seolinx-tooltip-close" style="border: 0pt none; cursor: pointer; margin: 0pt; padding: 1px; vertical-align: middle; width: auto;" title="close"&gt;&lt;img src="chrome://seoquake/content/skin/close.gif" /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-1500434939889635803?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-11T20:43:38.999+08:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Meralco brownout schedule October 2009</title><link>http://blog.henyo.com/2009/10/meralco-brownout-schedule.html</link><author>noreply@blogger.com (]-[3n40)</author><pubDate>Sat, 10 Oct 2009 19:46:52 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-8388374153645905198</guid><description>UPDATE Oct 11 2009: It seems that Meralco was able to fix their broken equipment so as a result NO BROWNOUT today: Sunday, Oct 11 2009. YAY!!!&lt;br /&gt;
&lt;br /&gt;
Here is the latest &lt;b&gt;Meralco brownout schedule&lt;/b&gt;. &lt;br /&gt;
&lt;br /&gt;
Meralco brownout schedule #1: 9 a.m.-11 a.m. and 3 p.m.- 5 p.m.&lt;br /&gt;
Areas Affected:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;412VZ — Pasig—Ugong, Bagong Ilog, Oranbo&lt;/li&gt;
&lt;li&gt;42VR — Ortigas Commercial Center, portion of Wack-Wack Greenhills&lt;/li&gt;
&lt;li&gt; 44VR — Wack-Wack&lt;/li&gt;
&lt;li&gt;45VR — Ugong. Ortigas Commercial Center &lt;/li&gt;
&lt;li&gt;46VR — Corinthian, Arcadia Subd., Ortigas Avenue&lt;/li&gt;
&lt;li&gt;51VR — Pasig-San Antonio Village, portion of Ortigas Commercial Center Complex, Kapitolyo&lt;/li&gt;
&lt;li&gt;413VR — Ortigas Commercial Complex, San Antonio, Meralco Ave, Kapitolyo &lt;/li&gt;
&lt;li&gt;414VR — Ortigas Commercial Complex&lt;/li&gt;
&lt;li&gt;415VR — Ortigas Commercial Complex, portion of Wack-Wack, Highway Hills, Mandaluyong, portion of Kapitolyo &lt;/li&gt;
&lt;li&gt;416VR — Ortigas Commercial Center&lt;/li&gt;
&lt;li&gt;41VD — West Greenhills, Little Baguio San Juan, Barangay Valencia, North Greenhills, Pasadena San Juan, Sta. Lucia San Juan, Barangay Corazon de Jesus &lt;/li&gt;
&lt;li&gt;44VD — Wack-Wack Greenhills&lt;/li&gt;
&lt;li&gt;45VD — portion of Edsa, Wack-Wack, Greenhills Mandaluyong &lt;/li&gt;
&lt;li&gt;53VD — portion of Pleasant Hills, Mandaluyong, Addition Hills, Highway Hills, Greenhills East, 9 de Pebrero&lt;/li&gt;
&lt;li&gt;54VD — Highway Hills, Mandaluyong, portion of Greehills East &lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;hr /&gt;Meralco brownout schedule #2: 12 p.m.–2 p.m. and 6 p.m.–8 p.m.&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
Areas Affected:&lt;br /&gt;
* Hillcrest 413VZ-Pasig, Bagong Ilog, Pineda, Kawilihan Vill,&lt;br /&gt;
* 415VZ—Bagong Ilog, Green Valley, Valle Verde 1, Julia Vargas,&lt;br /&gt;
* 416VZ—Brixton, Kapitolyo, Oranbo, Pineda, portion of Shaw Boulevard, portion of Highway Hills, Mandaluyong,&lt;br /&gt;
* Rockwell 433VV – Mandaluyong, Barangka, Ilaya, portion of Highway Hills, Barangay Mauway, Riverfront (Pasig) Barangay Malamig (Mand)&lt;br /&gt;
* 436VV—Makati—Barangays Poblacion, Bel-Air, La Paz, Kasilawan, Tejeros, Valenzuela, Singkamas, Olimpia,&lt;br /&gt;
* 441VV—Rockwell Center,&lt;br /&gt;
* 442VV—Makati-portion of Guadalupe Viejo, Guadalupe Nueva, portion of Highway Hills,&lt;br /&gt;
* 444VV—Makati City—Salcedo Village, Dela Costa, portion of Gil Puyat,&lt;br /&gt;
* 445VV—Mandaluyong City–Highway Hills, Barangka Ilaya,  &lt;br /&gt;
&lt;hr /&gt;Meralco brownout schedule #3: 7 a.m. – 9 a.m. and 1 p.m. – 3 p.m.&lt;br /&gt;
Areas affected: &lt;br /&gt;
* Cubao 48VQ – Cubao, Boni Serrano, Northwest Greenhills, portion of West Greenhills, Murphy, portion of Edsa,&lt;br /&gt;
* 51VQ—Murphy, St. Ignatius, White Plains, Blue Ridge A&lt;br /&gt;
* 52VQ—Quezon City—Barangay Kaunlaran, portion of Araneta Center, New Manila, Balete, Tuazon, Murphy, Aurora Avenue, portion of Valencia,&lt;br /&gt;
* 41VQ—QC—barangays, Milagrosa, Blue Ridge, Murphy, Katipunan, Bayanihan, Project 3, 4, portion of Loyola Heights Duyan-Duyan&lt;br /&gt;
* Marikina 42VG—QC—portion of Katipunan, Loyola Heights, E. Rodriguez,&lt;br /&gt;
* 50VG – Loyola Heights,&lt;br /&gt;
* 53VG— portion of Sto. Niño, Nangka, Concepcion, Marikina City&lt;br /&gt;
* potion of Guinayang, Maly, Malanday, San Mateo Rizal&lt;br /&gt;
* portion of San Jose, Rodriguez, Rizal&lt;br /&gt;
* 54VG—QC---Central, Loyola Heights, Malaya, Pinahan, Teachers Village, UP Village, Sikatuna Village,&lt;br /&gt;
* 44VG—portion of Kamias, Pinyahan, Barangay Central, Loyola Heights, E. Rodriguez, Xavierville&lt;br /&gt;
* 45VG—Marikina—portion of Sta. Elena, Barangka, Maj. Dizon, Jesus Dela Peña, Tanong, Barangka, Industrial Valley,&lt;br /&gt;
* 46VG –Quezon City—Barangays Marilag, Bagumbuhay, Tagumpay, Milagrosa, Project 4 – portion of Loyola Heights&lt;br /&gt;
* 48VG – Loyola Heights, Katipunan, UP Campus, MWSS CPD, Barangay Pansol,&lt;br /&gt;
* Santolan 413RE – portion of Santolan, Dela Paz, Pasig City, Mayamot, Marcos Highway, Antipolo, Midtown, Marikina City, portion of San Isidro, Cainta&lt;br /&gt;
* 414RE—portion of Eastwood, Libis Katipunan, Quezon City Santolan Pasig City,&lt;br /&gt;
* 415RE—portion of Marikina –Barangays Calumpang, Sta. Elena, San Roque, Tayog, Barangka and portion of Santolan, Pasig City&lt;br /&gt;
* Cainta 42XG–Pasig City City—Sta. Lucia, Mayunga, Rosario, Floodway, Jennys&lt;br /&gt;
* 44XG -Barangays San Andres, Sto. Domingo, Marick Subd., Midtown Subd., Buenmar, Greenland Subd., San Juan, Cainta Rizal,&lt;br /&gt;
* 46XG — Barangays San Isidro, Taytay Rizal, St. Anthony Subd, Marick Subd., Cainta, Gregoria Heights, Sto. Domingo, San Juan Cainta,&lt;br /&gt;
* 47XG — portion of Rosario and Caniogan, Pasig City&lt;br /&gt;
* 48XG — portion of Sta. Lucia, Rosario, Pasig City, Sto. Domingo, Cainta,&lt;br /&gt;
* 421XG — Pasig City–portion of Sta. Lucia, Ugong, Riverside, Rosario, Valle Verde 4, Fontera Verde&lt;br /&gt;
* 422XG—Taytay–Mapandan Cainta—Brookeside, San Juan, Valley Golf, Antipolo–Victoria Valle&lt;br /&gt;
&lt;hr /&gt;Meralco brownout schedule #4:10 a.m.-12 p.m. and 4 p.m.-6 p.m. &lt;br /&gt;
Areas Affected: &lt;br /&gt;
* Cainta 423XG – portion of Greenpark Village, Mayfield, Dela Paz, Octagon Estate, Pasig, San Isidro, Sto. Domingo, Karangalan, Vista Verde, Cainta, San Isidro, Taytay Rizal&lt;br /&gt;
* 424XG – portion of San Isidro and Sto. Domingo Cainta Rizal&lt;br /&gt;
* Masinag 43WN – Mayamot, Antipolo&lt;br /&gt;
* 45WN— portion of Sto. Niño, Sta. Elena, New Marikina Subd, Marikina along Sumulong, Mayamot, Antipolo City&lt;br /&gt;
* 46WN – Antipolo City – Bagong Nayon, Inarawan, Mambugan, Sitio Kamias, Sitio Puting Bato, Forest Hills, Sitio Kapatagan, Sitio Rizza, Sitio Abuyod, Town and Country Hills, portion of Barras, Rizal Parang 412YL – portion of Marikina and San Mateo Rizal&lt;br /&gt;
Marikina – La Colina Subd., Parang,&lt;br /&gt;
San Mateo – Guitnang Bayan Carrieland, Ampid 1, Sta. Ana, Banaba, Malanday, San Mateo-Batasan Rd.&lt;br /&gt;
* 413YL – Parang, Malanday, Bayan Bayanan, Concepcion, Marikina,&lt;br /&gt;
* 414YL – Parang Marikina&lt;br /&gt;
* 415YL — Concepcion, Bayan Bayanan, SSS Vill, Marikina Heights, Ordonez&lt;br /&gt;
Manggahan 41ZM –QC- Barangay Bagumbayan, Libis, Katipunan, Valle Verde 6&lt;br /&gt;
Pasig–Ugong,&lt;br /&gt;
* 43ZM – Pasig—Caniogan, Maybunga, Rosario Riverfront, San Miguel, Lumang Ilog, Taytay, Rizal&lt;br /&gt;
* 45ZM – Pasig – Manggahan, Santolan, Dela Paz,&lt;br /&gt;
* 46ZM — Green Meadows, Acropolis,&lt;br /&gt;
* Dolores 42XM—San Roque, Dalig, Assumption Subd., Sitio Malanim, Dela Paz, Bankers Vill, Mambugan, San Jose, Filinvest East, Antipolo, Philec, Dolores, Taytay, Rizal&lt;br /&gt;
* 43XM – San Isidro, Baltao CPD, Palmera Hills 1, Dolores&lt;br /&gt;
Taytay, Rizal&lt;br /&gt;
* 44XM – San Juan Resettlement, Kapalaran Subd., Manila-East, Sitio Bato-Bato, San Juan, Sitio Burol, Taytay&lt;br /&gt;
* 45XM – San Jose, Dalig, Circumferential, Sitio Parugan, Sitio Hinapao. Sitio Maguey, San Isidro, Antipolo Kaytikling, Dolores, Taytay&lt;br /&gt;
* 47XM – Sitio Bangiad, Sitio San Roque, Muzon, Meralco Housing, Sitio Burol, Taytay Binangonan-Calumpang, Libis, Sitio San Juan Pagasa, Tayuman, Libid, Angono–San Isidro, Sto. Rosario, Sto Niño, San Pedro&lt;br /&gt;
* 48XM – San Juan, Cainta, Taytay–Dolores, San Isidro Kamuning 42VP-Quezon City&lt;br /&gt;
* 43VA Barangays Kaunlaran, South Triangle, West Triangle, Sacred Heart, Laging Handa, Nayong Kanluran,&lt;br /&gt;
* 43VP – Quezon City – South Triangle, Scouter’s Area, Barangay Central, Elliptical Rd.,Vasra, Agham Rd., Mother Ignacia, Panay Ave.&lt;br /&gt;
&lt;br /&gt;
Please note that the &lt;i&gt;Meralco brownout schedule&lt;/i&gt; is NOT written in stone. The schedule indicates a 2-hour duration but the actual duration may vary. It is tentative and Meralco claime they cannot determine until when rotating brownouts being implemented in wide part of Metro Manila will end. &lt;br /&gt;
&lt;br /&gt;
This round of Meralco rotating brownout was caused by a fire which affected one of the four 300 MVA transformers in the sub-station in Taytay, Rizal triggering the tripping off of the other transformers and the 115-kiloVolt lines of the Meralco sub-sector areas.&lt;br /&gt;
&lt;br /&gt;
If you have friends or relatives affected please tell them about this post or you can blog about it and use this link:&lt;br /&gt;
&lt;pre class="code"&gt;&amp;lt;a href="http://blog.henyo.com/2009/10/meralco-brownout-schedule.html"&amp;gt;
Meralco brownout schedule
&amp;lt;/a&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
You are also welcome to &lt;a href="http://feedburner.google.com/fb/a/mailverify?uri=HenyoOnline&amp;amp;loc=en_US"&gt;subscribe via email&lt;/a&gt; or &lt;a href="http://feeds.feedburner.com/HenyoOnline"&gt;subscribe via reader&lt;/a&gt; to get updates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-8388374153645905198?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-11T10:46:52.943+08:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Earn with AdSense: The Beginning</title><link>http://blog.henyo.com/2009/10/earn-with-adsense-beginning.html</link><category>Earn with AdSense</category><category>SEO</category><author>noreply@blogger.com (]-[3n40)</author><pubDate>Fri, 09 Oct 2009 23:20:23 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-1968554053899128463</guid><description>Earn with AdSense is a series of posts that chronicles my attempt to earn with Google's AdSense. Part 01 introduces Google Adsense and mainly documents what materials and resources I am using to study and learn how to earn with AdSense.&lt;br /&gt;
&lt;br /&gt;
What is &lt;a href="https://www.google.com/adsense/home"&gt;Google AdSense&lt;/a&gt;?&lt;br /&gt;
&lt;br /&gt;
Google AdSense is a fast and easy way for website publishers of all sizes to earn money by displaying targeted, unobtrusive Google ads on their websites. AdSense also allows you to provide Google search to your site users, while earning money by displaying Google ads on the search results pages.&lt;br /&gt;
&lt;br /&gt;
How to &lt;b&gt;earn with AdSense&lt;/b&gt;?&lt;br /&gt;
&lt;br /&gt;
The main way of earning revenue with AdSense is by displaying Google ads on your site.&lt;br /&gt;
&lt;br /&gt;
With AdSense for content, these ads you display on your site can be either cost-per-click (CPC) or cost-per-thousand-impression (CPM) ads. For CPC ads, you'll generate earnings when your users click on the ads. For CPM ads, you'll generate earnings every time the ad appears to a user viewing your site.&lt;br /&gt;
&lt;br /&gt;
You can also generate earnings while enabling your users to search your site and the web.&lt;br /&gt;
&lt;br /&gt;
AdSense for search lets you offer your users Google web search directly from your pages. By placing an AdSense for search box on your site, you'll generate earnings from ad clicks made by users on the search results pages.&lt;br /&gt;
You won't, however, receive revenue from user searches through your AdSense for search box. When users perform searches on your site, but choose not to click on the ads on the search results pages, you will not receive any earnings.&lt;br /&gt;
&lt;br /&gt;
What am I doing now to &lt;i&gt;earn with AdSense?&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
I am currently studying several web sites and a couple of e-books:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;google.com/adsense&lt;/li&gt;

&lt;ul&gt;&lt;li&gt;the source of official information on adsense&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;makemoneyforbeginners.blogspot.com/&lt;/li&gt;

&lt;ul&gt;&lt;li&gt;&amp;nbsp;some of the info on this blog may not be up to date&lt;/li&gt;
&lt;li&gt;after reading the lessons, I can't help but feel that the site is written to sell keyword academy and the other SEO tools&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;macuha.com and zdiaz.com with their guerilla blogging e-book&lt;/li&gt;

&lt;ul&gt;&lt;li&gt;home grown book by Filipinos &lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;pinoymoneytalk.com&lt;/li&gt;

&lt;ul&gt;&lt;li&gt;this site holds the number 1 spot on google SERP for earn online &lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;johnchow.com and his make money online e-book&lt;/li&gt;

&lt;ul&gt;&lt;li&gt;a popular internet marketer &lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;brad callen and his seo made easy e-book&lt;/li&gt;

&lt;ul&gt;&lt;li&gt;another popular internet marketer &lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;&lt;i&gt;UPDATE: additional resources&lt;/i&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;thekeywordacademy.com&lt;/li&gt;

&lt;ul&gt;&lt;li&gt;forked over USD 1.00 for the first month subscription to their members area, now I just have to figure out how to opt-out of the USD 33.00 per month that they charge their members&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;selaplana.com&amp;nbsp;&lt;/li&gt;

&lt;ul&gt;&lt;li&gt;this is one of the top philippine blogs which also has information on how to earn with AdSense&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;I have long dreamed and planned to get some passive income from AdSense but I've never really gotten around to actually implementing all the things I've learned ... until now.&lt;br /&gt;
&lt;br /&gt;
Here is my initial plan of action&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Research on how to find a keyword or niche to target&lt;/li&gt;
&lt;li&gt;I will create a blog on blogger.com and make 7 posts that are relevant to my keyword of choice&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;I will learn to optimize blogger templates for AdSense&lt;/li&gt;
&lt;li&gt;I will create an account on technorati,&amp;nbsp;feedburner, alexa and add them to my blogger template&lt;/li&gt;
&lt;li&gt;I will create an accounts on twitter, facebook, myspace, friendster, multiply and add them to my blogger template&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;Please check back in a few days to see how I am fairing in my effort to earn with AdSense.&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;If you found this post useful and you wish to thank me or help me, please blog about it and link to this post using the link below:&lt;br /&gt;
&lt;/div&gt;&lt;pre&gt;&amp;lt;a href="http://blog.henyo.com/"&amp;gt;Earn with AdSense&amp;lt;/a&amp;gt;&amp;nbsp;
&lt;/pre&gt;You are also welcome to &lt;a href="http://feedburner.google.com/fb/a/mailverify?uri=HenyoOnline&amp;amp;loc=en_US"&gt;subscribe via email&lt;/a&gt; or &lt;a href="http://feedburner.google.com/HenyoOnline"&gt;subscribe via reader&lt;/a&gt; to get updates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-1968554053899128463?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-10T14:20:23.481+08:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Change the mysql root password on Ubuntu</title><link>http://blog.henyo.com/2009/10/change-mysql-root-password-on-ubuntu.html</link><category>System Administration</category><category>Ubuntu</category><author>noreply@blogger.com (]-[3n40)</author><pubDate>Sat, 03 Oct 2009 16:56:17 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-3141235408756109642</guid><description>If you guys/gals are maintaining a site and find yourself needing to change the mysql root password on Ubuntu then this post should help you. &lt;br /&gt;
&lt;br /&gt;
Last night, I forgot the root password for mysql on a VPS that I rent. It took a while to find a really simple way to change it but eventually, I found that all I needed to do to change the mysql root password on Ubuntu was to issue the following command:&lt;br /&gt;
&lt;pre class="code"&gt;dpkg-reconfigure mysql-server-5.0
&lt;/pre&gt;&lt;br /&gt;
You can then proceed to type in a new mysql root password and type it in again to confirm it.&lt;br /&gt;
&lt;br /&gt;
Did it work for you? You are welcome to post your comments/questions or better yet, link to this post, blog about it and tell all your friends who might find this post useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-3141235408756109642?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-04T07:56:17.920+08:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Windows 7: Virtual Clone Drive and Microsoft Office 2007</title><link>http://blog.henyo.com/2009/09/windows-7-virtual-clone-drive-and.html</link><category>System Administration</category><category>Windows 7</category><author>noreply@blogger.com (]-[3n40)</author><pubDate>Fri, 25 Sep 2009 15:00:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-5448431103974139893</guid><description>The Microsoft Office 2007 installer that I had access to was in an ISO file format. It meant that either I burn it on to a DVD or find an application that will allow me to mount the file as a virtual DVD. Microsoft used to have a virtual CD application for Windows XP. Sadly, said application doesn't work for Windows Vista or Windows 7. After looking at several options, I decided on Virtual Clone Drive. It installed fine and it seems to work well. I was able to mount the Microsoft Office 2007 installer and I was able to successfully install it on my Windows 7 system so in summary:&lt;br /&gt;
Virtual Clone Drive 5.4.3.2 works&lt;br /&gt;
Microsoft Office 2007 works&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-5448431103974139893?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-26T06:00:00.647+08:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>Enable mail notification on Ubuntu 9.0.4 Jaunty Jackalope</title><link>http://blog.henyo.com/2009/09/enable-mail-notification-on-ubuntu-904.html</link><category>System Administration</category><category>Ubuntu</category><author>noreply@blogger.com (]-[3n40)</author><pubDate>Fri, 09 Oct 2009 19:19:47 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-2344542003672561162</guid><description>Go to System -&amp;gt; Administration -&amp;gt; Synaptic Package Manager&lt;br /&gt;
&lt;br /&gt;
Search for mail-notification and mark it for installation&lt;br /&gt;
&lt;br /&gt;
Click on Apply to install it&lt;br /&gt;
&lt;br /&gt;
Go to Applications -&amp;gt; Internet then open Mail Notification&lt;br /&gt;
&lt;br /&gt;
You should see something similar to the images below. Configure the application by replacing company with the appropriate name of the company and the username and password&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_UGKKDn3ntj8/SrsOcBF9y_I/AAAAAAAAAZY/8dYTvowmSRM/s1600-h/Mail+Notification+Properties.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_UGKKDn3ntj8/SrsOcBF9y_I/AAAAAAAAAZY/8dYTvowmSRM/s320/Mail+Notification+Properties.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_UGKKDn3ntj8/SrsOXwK94KI/AAAAAAAAAZQ/8MJNVi2dL_A/s1600-h/Add+a+Mailbox+-+General.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_UGKKDn3ntj8/SrsOXwK94KI/AAAAAAAAAZQ/8MJNVi2dL_A/s320/Add+a+Mailbox+-+General.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_UGKKDn3ntj8/SrsOWPHAMNI/AAAAAAAAAZI/f4PuKqiUkec/s1600-h/Add+a+Mailbox+-+Connection.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_UGKKDn3ntj8/SrsOWPHAMNI/AAAAAAAAAZI/f4PuKqiUkec/s320/Add+a+Mailbox+-+Connection.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&amp;nbsp;&lt;a href="http://3.bp.blogspot.com/_UGKKDn3ntj8/SrsOO5D6tiI/AAAAAAAAAZA/JyNMXSbYrS4/s1600-h/Add+a+Mailbox+-+Details.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_UGKKDn3ntj8/SrsOO5D6tiI/AAAAAAAAAZA/JyNMXSbYrS4/s320/Add+a+Mailbox+-+Details.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
To launch this program during startup&lt;br /&gt;
Go to System -&amp;gt; Preferences -&amp;gt; Startup Applications&lt;br /&gt;
Click on Add&lt;br /&gt;
Fill up the form:&lt;br /&gt;
Name: Mail Notification&lt;br /&gt;
Command: /usr/bin/mail-notification --sm-disable&lt;br /&gt;
Comment: Mail Notification&lt;br /&gt;
Then click on Save&lt;br /&gt;
&lt;br /&gt;
Did it work for you? You are welcome to post your comments/questions or better yet, link to this post, blog about it and tell all your friends who might find this post useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-2344542003672561162?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-10T10:19:47.248+08:00</app:edited><media:thumbnail url="http://3.bp.blogspot.com/_UGKKDn3ntj8/SrsOcBF9y_I/AAAAAAAAAZY/8dYTvowmSRM/s72-c/Mail+Notification+Properties.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>Windows 7: Synergys, Virtual CloneDrive, Office 2007</title><link>http://blog.henyo.com/2009/09/windows-7-synergys-virtual-clonedrive.html</link><category>System Administration</category><category>Windows 7</category><author>noreply@blogger.com (]-[3n40)</author><pubDate>Wed, 23 Sep 2009 20:25:59 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-1365091728262370732</guid><description>Here is a couple of more programs I installed on my Windows 7 RTM laptop&lt;br /&gt;
&lt;br /&gt;
Synergys works except that it has to be run as Administrator&lt;br /&gt;
Virtual CloneDrive works&lt;br /&gt;
Office 2007 works&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-1365091728262370732?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-24T11:25:59.560+08:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Windows 7: Java and  VMWare vSphere Client</title><link>http://blog.henyo.com/2009/09/windows-7-java-and-vmware-vsphere.html</link><category>System Administration</category><category>Windows 7</category><author>noreply@blogger.com (]-[3n40)</author><pubDate>Tue, 22 Sep 2009 22:23:51 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-1229156645878943988</guid><description>As promised, I tried to run some more apps on Windows 7.&lt;br /&gt;
&lt;br /&gt;
The Java Development Kit 64-bit from Sun Microsystems works fine with Windows 7.&lt;br /&gt;
&lt;br /&gt;
VMware vSphere Client 4.0.0 does not work out of the box but eventually, after a few tweaks, I was able to make it run fine. To make it work, I copied a System.dll file from a windows xp .Net installation into a Lib folder which I created in the Launcher directory inside the VMware vSphere Client installation folder. Next I modified the VpxClient.exe.config file:&lt;br /&gt;
&lt;pre class="code"&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;
&amp;lt;configuration&amp;gt;
  &amp;lt;system.net&amp;gt;
        &amp;lt;connectionManagement&amp;gt;
            &amp;lt;clear/&amp;gt;
            &amp;lt;add address="*" maxconnection="8" /&amp;gt;
        &amp;lt;/connectionManagement&amp;gt;
    &amp;lt;/system.net&amp;gt;
  &amp;lt;appSettings&amp;gt;
    &amp;lt;add key = "protocolports" value = "https:443"/&amp;gt;
  &amp;lt;/appSettings&amp;gt;
&amp;lt;runtime&amp;gt;
&amp;lt;developmentMode developerInstallation="true"/&amp;gt;
&amp;lt;/runtime&amp;gt;
&amp;lt;/configuration&amp;gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;
Lastly, I created an new environment variable: Devpath and set it to C:\Program Files (x86)\VMware\Infrastructure\Virtual Infrastructure Client\Launcher\Lib&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-1229156645878943988?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-23T13:23:51.560+08:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Asus K40IN &amp; Windows 7 Ultimate Test Drive</title><link>http://blog.henyo.com/2009/09/asus-k40in-windows-7-ultimate-test.html</link><category>Windows 7</category><author>noreply@blogger.com (]-[3n40)</author><pubDate>Sun, 20 Sep 2009 00:08:02 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-3424423505914571005</guid><description>Someone hooked me up with a copy of Windows 7 Ultimate and since I had a spare partition on my hard drive, I decided there was no harm in taking it for a spin just to see what all the fuss was about.&lt;br/&gt;&lt;br/&gt;
&lt;iframe src="http://rcm.amazon.com/e/cm?t=coliph-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=B002GWF7G2&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;
&lt;br/&gt;&lt;br/&gt;
Installation was a breeze. Below, you can see the desktop and system information:
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_UGKKDn3ntj8/SrXUSunUINI/AAAAAAAAAYk/8rJcwaeS6Cg/s1600-h/Asus+K40IN+Desktop+screenshot.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 180px;" src="http://2.bp.blogspot.com/_UGKKDn3ntj8/SrXUSunUINI/AAAAAAAAAYk/8rJcwaeS6Cg/s320/Asus+K40IN+Desktop+screenshot.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5383442347806957778" /&gt;&lt;/a&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_UGKKDn3ntj8/SrXN47Rp41I/AAAAAAAAAYc/vLpSSWTflfI/s1600-h/Asus+K40IN+System+Information+screenshot.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 189px;" src="http://4.bp.blogspot.com/_UGKKDn3ntj8/SrXN47Rp41I/AAAAAAAAAYc/vLpSSWTflfI/s320/Asus+K40IN+System+Information+screenshot.png" alt="" id="BLOGGER_PHOTO_ID_5383435307459404626" border="0" /&gt;&lt;/a&gt;

Windows 7 was able to detect and enable most of the devices on the Asus K40IN laptop as seen in the screen shot below:

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_UGKKDn3ntj8/SrWgUlVqoyI/AAAAAAAAAYU/OF0hDQMK6CA/s1600-h/Asus+K40IN+win7+device+manager+screenshot.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 234px;" src="http://4.bp.blogspot.com/_UGKKDn3ntj8/SrWgUlVqoyI/AAAAAAAAAYU/OF0hDQMK6CA/s320/Asus+K40IN+win7+device+manager+screenshot.png" alt="" id="BLOGGER_PHOTO_ID_5383385205072110370" border="0" /&gt;&lt;/a&gt;

With the exception of the co-processor which I have no idea how to fix, everything worked out of the box, the wireless card, the webcam, the touch pad, audio. The desktop resolution of the default driver only allowed for 1280x720 so I had to download the driver from the &lt;a href="http://www.asus.com/product.aspx?P_ID=VB4TfUFszKKyzdR1&amp;amp;content=overview"&gt;Asus K40IN product page&lt;/a&gt;. Other utilities for the laptop are also available for download there.



Here  is an initial list of programs I tried:&lt;ul&gt;&lt;li&gt;Firefox 3.5.3 works&lt;/li&gt;&lt;li&gt;mTorrent 1.8.4 works&lt;/li&gt;&lt;li&gt;Adobe Reader 9.1.0 works&lt;/li&gt;&lt;li&gt;yahoo messenger 9.0.0.2162 works&lt;/li&gt;&lt;li&gt;mplayer svn r29355 works except that aero switches off when you run it&lt;/li&gt;&lt;li&gt;vlc 1.0.1 works&lt;/li&gt;&lt;li&gt;spybot s&amp;amp;d 1.6.2.46 works&lt;/li&gt;&lt;/ul&gt;

I'll keep posting if I'm able to try other programs. If you have a program in mind that you want me to try, drop me a comment and I'll see what I can do.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-3424423505914571005?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-20T15:08:02.145+08:00</app:edited><media:thumbnail url="http://2.bp.blogspot.com/_UGKKDn3ntj8/SrXUSunUINI/AAAAAAAAAYk/8rJcwaeS6Cg/s72-c/Asus+K40IN+Desktop+screenshot.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total></item><item><title>Using ID tables with Grails</title><link>http://blog.henyo.com/2009/08/using-id-tables-with-grails.html</link><category>Software Development</category><category>Grails</category><author>noreply@blogger.com (]-[3n40)</author><pubDate>Thu, 06 Aug 2009 23:48:56 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-6773548562378877243</guid><description>Background and Use Case:
We had to migrate one of our web applications to Grails. The old one used JPA and table-based scheme of generating primary key IDs. I scoured the internet with the help of google and found no one with the same problem. I of course had to do it on my own and after going thru the Grails docs, JPA docs and Hibernate docs, I arrived at the solution:

&lt;pre&gt;
    static mapping = {
        id generator:'org.hibernate.id.enhanced.TableGenerator',
            params:[table_name:'id_table',value_column_name:'gen_id',segment_column_name:'gen_key',segment_value:'fooID']
    }
&lt;/pre&gt;

If you stick the above code in a domain class named Foo, you will end up with a table named id_table and it will have two columns, gen_key and gen_id. If you try saving an instance of Foo, you will end up with:

&lt;table border=1&gt;
&lt;thead&gt;
  &lt;tr&gt;
    &lt;td&gt;gen_key&lt;/td&gt;&lt;td&gt;gen_id&lt;/td&gt;
  &lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
  &lt;tr&gt;
    &lt;td&gt;fooID&lt;/td&gt;
    &lt;td&gt;1&lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;br/&gt;
If you do something similar to the domain Bar, you will end up with:
&lt;br/&gt;
&lt;table border=1&gt;
&lt;thead&gt;
  &lt;tr&gt;
    &lt;td&gt;gen_key&lt;/td&gt;&lt;td&gt;gen_id&lt;/td&gt;
  &lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
  &lt;tr&gt;
    &lt;td&gt;fooID&lt;/td&gt;
    &lt;td&gt;1&lt;/td&gt;
  &lt;/tr&gt;
    &lt;tr&gt;
    &lt;td&gt;barID&lt;/td&gt;
    &lt;td&gt;1&lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;br/&gt;
Did it work for you? You are welcome to post your comments/questions or better yet, link to this post, blog about it and tell all your friends who might find this post useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-6773548562378877243?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-07T14:48:56.700+08:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Easy Use Case Diagrams with YUML</title><link>http://blog.henyo.com/2009/07/easy-use-case-diagrams-with-yuml.html</link><category>Software Development</category><author>noreply@blogger.com (]-[3n40)</author><pubDate>Sun, 25 Oct 2009 05:55:51 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-4894369874404989530</guid><description>&lt;pre class="diagram"&gt;[Site Admin]-(Manage content),
(Manage content)&amp;gt;(Delete content),
(Manage content)&amp;gt;(Modify content),
(Manage content)&amp;gt;(Create content),
[Site Admin]-(Manage pages),
(Manage pages)&amp;gt;(Delete a page),
(Manage pages)&amp;gt;(Modify a page),
(Modify a page)&amp;gt;(Add Content to a page),
(Modify a page)&amp;gt;(Remove Content from a page),
(Manage pages)&amp;gt;(Create a page)
&lt;/pre&gt;&lt;script charset="utf-8" type="text/javascript"&gt;
$('document').ready(
    function(){
        text = $('.diagram').html().replace('\t','').replace('\n','').replace(/&gt;/g,'&gt;');
        $('.diagram').html('');
        $('.diagram').append('&lt;img width="450" height="236" src="http://yuml.me/diagram/scruffy/usecase/' + text + '" /&gt;');
    }
);
&lt;/script&gt; &lt;br /&gt;
I can't remember how I stumbled upon this site but I'm glad I did. &lt;a href="http://yuml.me/"&gt;YUML&lt;/a&gt; allows you to create class and use case diagrams online using a simple text syntax. This &lt;a href="http://www.tobinharris.com/past/2009/5/2/yuml-and-jquery-for-large-diagrams/"&gt;blog post&lt;/a&gt; from the author of the site demonstrates how to use jquery to render a fairly complicated class diagram. Below is the code I used to generate the use case diagram above. &lt;br /&gt;
&lt;pre class="code"&gt;&amp;lt;pre class="diagram"&amp;gt;
[Site Admin]-(Manage content),
(Manage content)&amp;gt;(Delete content),
(Manage content)&amp;gt;(Modify content),
(Manage content)&amp;gt;(Create content),
[Site Admin]-(Manage pages),
(Manage pages)&amp;gt;(Delete a page),
(Manage pages)&amp;gt;(Modify a page),
(Modify a page)&amp;gt;(Add Content to a page),
(Modify a page)&amp;gt;(Remove Content from a page),
(Manage pages)&amp;gt;(Create a page)
&amp;lt;/pre&amp;gt;

&amp;lt;script type="text/javascript" charset="utf-8"&amp;gt;
$('document').ready(
    function(){
        text = $('.diagram').html().replace('\t','').replace('\n','').replace(/&amp;amp;gt;/g,'&amp;gt;');
        $('.diagram').html('');
        $('.diagram').append('&amp;lt;img width="320" height="240" src="http://yuml.me/diagram/scruffy/usecase/' + text + '" /&amp;gt;');
    }
);
&amp;lt;/script&amp;gt;
&lt;/pre&gt;Did it work for you? You are welcome to post your comments/questions or better yet, link to this post, blog about it and tell all your friends who might find this post useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-4894369874404989530?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-25T20:55:51.804+08:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>Fix: Ubuntu not able to use installed memory</title><link>http://blog.henyo.com/2009/06/fix-ubuntu-not-able-to-use-installed.html</link><author>noreply@blogger.com (]-[3n40)</author><pubDate>Wed, 24 Jun 2009 21:03:05 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-264736201025565872</guid><description>To check how much memory ubuntu is able to use on your system, run the following command in a terminal:
&lt;pre class="code"&gt;free -m&lt;/pre&gt;
For reference, I know that my PC has 4GB of physical memory installed and the result of the command above shows:
&lt;pre class="code"&gt;             total       used       free     shared    buffers     cached
Mem:          4012       1837       2175          0        451        722
-/+ buffers/cache:        662       3349
Swap:         9538          0       9538&lt;/pre&gt;
If you have more than 3GB of physical memory installed and if you haven't specifically enabled PAE for your ubuntu desktop installation then I'm betting that the total Mem you'll be seeing is LESS than the actual physical memory installed in your machine. To fix this, you simply have to install a PAE enabled kernel. Run the following commands in a terminal:
&lt;pre class="code"&gt;sudo apt-get update

sudo apt-get install linux-server linux-headers-server linux-image-server&lt;/pre&gt;
Reboot your system. 

To check if you have the correct kernel running and all your mem enabled:
&lt;pre class="code"&gt;uname -a

free -m&lt;/pre&gt;
You should see an ubuntu server kernel running and the correct amount of memory is available for use.

Did it work for you? You are welcome to post your comments/questions or better yet, link to this post, blog about it and tell all your friends who might find this post useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-264736201025565872?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-25T12:03:05.022+08:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>Run grails-app on the root context</title><link>http://blog.henyo.com/2009/06/run-grails-app-on-root-context.html</link><category>Software Development</category><category>Groovy</category><category>Grails</category><author>noreply@blogger.com (]-[3n40)</author><pubDate>Tue, 07 Jul 2009 15:59:50 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-2404383064706995365</guid><description>&lt;span style="font-weight:bold;"&gt;USECASE:&lt;/span&gt;
You want to run your shiny grails killer-app using the jetty server on port 80 and using the root context. 

Running it on port 80 is covered by providing the grails run-app command with the desired port but your app will still run on http://localhost:80/killer-app. 

To run it on the root context, you can do:
&lt;pre class="code"&gt;grails -Dserver.port=80 -Duse.root.context.path=true run-app&lt;/pre&gt;

but first, you have to modify _GrailsRun.groovy and change an existing method to this:
&lt;pre class="code"&gt;private runInline(scheme, host, httpPort, httpsPort) {
    EmbeddableServerFactory serverFactory = loadServerFactory()    
    def useRootContextPath = System.getProperty("use.root.context.path")
    if(useRootContextPath)
        serverContextPath = '/'
    grailsServer = serverFactory.createInline("${basedir}/web-app", webXmlFile.absolutePath, serverContextPath, classLoader)
    runServer server: grailsServer, host:host, httpPort: httpPort, httpsPort: httpsPort, scheme:scheme
    startPluginScanner()
}&lt;/pre&gt;

You can find _GrailsRun.groovy in $GRAILS_HOME/scripts
&lt;br/&gt;&lt;br/&gt;
&lt;span style="font-weight:bold;"&gt;WARNING: THERE ARE SERIOUS PENALTIES FOR ROLLING OUT YOUR APP THIS WAY&lt;/span&gt;
&lt;br/&gt;&lt;br/&gt;
The code seems trivial but I'll submit it anyway to the grails dev team for inclusion.

Did it work for you? You are welcome to post your comments/questions or better yet, link to this post, blog about it and tell all your friends who might find this post useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-2404383064706995365?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-08T06:59:50.368+08:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>Fixing Pidgin error on Yahoo login</title><link>http://blog.henyo.com/2009/06/fixing-pidgin-error-on-yahoo-login.html</link><category>System Administration</category><category>Ubuntu</category><author>noreply@blogger.com (]-[3n40)</author><pubDate>Sat, 19 Sep 2009 23:47:55 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-5400024302127059146</guid><description>Applicable to: Ubuntu 9.04 Jaunty Jackalope

&lt;span style="font-weight:bold;"&gt;UPDATE:&lt;/span&gt;
The cause of the problem seems to be a new login protocol. The guys responsible for pidgin has released a version with the fix. The only problem is that the guys responsible for ubuntu don't normally update pidgin. You can visit the official download page &lt;a href="http://pidgin.im/download/ubuntu/"&gt;here&lt;/a&gt; or see the instructions below:

Open a terminal window and run each line below:
&lt;pre class="code"&gt;sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com \
67265eb522bdd6b1c69e66ed7fb8bee0a1f196a8

echo deb http://ppa.launchpad.net/pidgin-developers/ppa/ubuntu \
`lsb_release --short --codename` main | \
sudo tee /etc/apt/sources.list.d/pidgin-ppa.list

sudo apt-get upgrade pidgin&lt;/pre&gt;
Did it work for you? You are welcome to post your comments/questions or better yet, link to this post, blog about it and tell all your friends who might find this post useful.

Hope this helps!
&lt;br/&gt;&lt;br/&gt;
&lt;span style="font-weight:bold;"&gt;OLD ENTRY:&lt;/span&gt;
It's been a week already since I was able to use pidgin to login to the Yahoo network on my Ubuntu  installation. There seems to be a problem with the scs.msg.yahoo.com. To fix this problem, go to Accounts -&gt; Manage Accounts then select the Yahoo account then click on Modify. Go to the Advanced tab and set Pager server to cn.scs.msg.yahoo.com. Click on Save and restart Pidgin.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-5400024302127059146?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-20T14:47:55.721+08:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total></item><item><title>Fight Viruses/Trojans: Disable Autorun in Windows XP</title><link>http://blog.henyo.com/2009/06/fight-virusestrojans-disable-autorun-in.html</link><category>System Administration</category><author>noreply@blogger.com (]-[3n40)</author><pubDate>Tue, 14 Jul 2009 00:15:50 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-5413095564057341739</guid><description>With the proliferation of trojans and viruses that takes advantage of the autorun feature of Windows, it seems only logical to disable the said feature.
&lt;br/&gt;&lt;br/&gt;
&lt;span style="font-weight: bold;"&gt;Step#1&lt;/span&gt;
Open a text editor like Notepad
&lt;br/&gt;&lt;br/&gt;
&lt;span style="font-weight: bold;"&gt;Step#2&lt;/span&gt;
Copy and paste the code below into the empty notepad document
&lt;pre class="code"&gt;Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDriveTypeAutoRun"=dword:000000ff
"NoDriveAutoRun"=hex:ff,ff,ff,ff&lt;/pre&gt;
Or you can download the file I made: &lt;a href="http://jessie.evangelista.googlepages.com/disableAutorun.reg"&gt;disableAutorun.reg&lt;/a&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;span style="font-weight: bold;"&gt;Step#3&lt;/span&gt;
Save the file to your Desktop naming it "disableAutoRun.reg" without the double quotes
&lt;br/&gt;&lt;br/&gt;
&lt;span style="font-weight: bold;"&gt;Step#4&lt;/span&gt;
Go to your desktop and double click on disableAutoRun.reg
&lt;br/&gt;&lt;br/&gt;
&lt;span style="font-weight: bold;"&gt;Step#5&lt;/span&gt;
A confirmation dialog will appear, click on Yes
&lt;br/&gt;&lt;br/&gt;
&lt;span style="font-weight: bold;"&gt;Step#6&lt;/span&gt;
Reboot your computer
&lt;br/&gt;&lt;br/&gt;
&lt;h3&gt;Please tell your friends about this blog entry. It will be a big help in our quest for safer computing&lt;/h3&gt;
&lt;br/&gt;&lt;br/&gt;
Did it work for you? You are welcome to post your comments/questions or better yet, link to this post, blog about it and tell all your friends who might find this post useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-5413095564057341739?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-14T15:15:50.643+08:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><enclosure url="http://jessie.evangelista.googlepages.com/disableAutorun.reg" length="462" type="application/octet-stream; charset=UTF-8" /><media:content url="http://jessie.evangelista.googlepages.com/disableAutorun.reg" fileSize="462" type="application/octet-stream; charset=UTF-8" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>With the proliferation of trojans and viruses that takes advantage of the autorun feature of Windows, it seems only logical to disable the said feature. Step#1 Open a text editor like Notepad Step#2 Copy and paste the code below into the empty notepad doc</itunes:subtitle><itunes:author>noreply@blogger.com (]-[3n40)</itunes:author><itunes:summary>With the proliferation of trojans and viruses that takes advantage of the autorun feature of Windows, it seems only logical to disable the said feature. Step#1 Open a text editor like Notepad Step#2 Copy and paste the code below into the empty notepad document Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer] "NoDriveTypeAutoRun"=dword:000000ff "NoDriveAutoRun"=hex:ff,ff,ff,ff Or you can download the file I made: disableAutorun.reg Step#3 Save the file to your Desktop naming it "disableAutoRun.reg" without the double quotes Step#4 Go to your desktop and double click on disableAutoRun.reg Step#5 A confirmation dialog will appear, click on Yes Step#6 Reboot your computer Please tell your friends about this blog entry. It will be a big help in our quest for safer computing Did it work for you? You are welcome to post your comments/questions or better yet, link to this post, blog about it and tell all your friends who might find this post useful.</itunes:summary><itunes:keywords>System Administration</itunes:keywords></item><item><title>Fix: Missing tmp directories in .svn</title><link>http://blog.henyo.com/2009/05/fix-missing-tmp-directories-in-svn.html</link><category>Software Development</category><category>Groovy</category><author>noreply@blogger.com (]-[3n40)</author><pubDate>Wed, 24 Jun 2009 20:48:59 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-3340966769475615793</guid><description>Last last Friday, I took some code home to work at over the weekend. When I came back to work on the following Monday, I couldn't commit the changes to the Subversion repository. Further investigation led me to discover that most of the tmp directories inside the hidden .svn folders were missing. It seems that the archive tool I used ignored empty directories. To fix this, I cooked up a quick script in groovy as shown below:
&lt;pre class="code"&gt;File currentDir = new File(".")
processDirectory(currentDir)

void processDirectory(File dir){
    println "Processing "+dir.getAbsolutePath()
    //check if .svn dir exists
    String path = dir.getAbsolutePath()
    File svnDir = new File(path+"/.svn")
    if(svnDir.exists()){
        if(svnDir.isDirectory()){
            //check if tmp dir exists
            File tmpDir = new File(svnDir.getAbsolutePath()+"/tmp")
            if(tmpDir.exists()){
                println "tmp folder already exists "+tmpDir.getAbsolutePath()
            }else{
                tmpDir.mkdir()
            }            
        }else{
            println ".svn is NOT a directory"
        }
    }else{
        println "no .svn dir"
    }
    
    dir.listFiles().each{ file -&gt;    
        println "Processing "+file.getAbsolutePath()
        if(file.isDirectory()){
            if(file.name == ".svn")
                return
            println "Processing "+file.getAbsolutePath()
            processDirectory(file)
        }
    }
}
&lt;/pre&gt;

To use this fix, open a text editor and copy paste the code above into an empty file and save it as fixSvn.groovy to the folder of the workspace you want to fix
Make sure you have &lt;a href="http://groovy.codehaus.org/"&gt;groovy&lt;/a&gt; installed then do
&lt;pre class="code"&gt;groovy fixSvn.groovy
&lt;/pre&gt;
Did it work for you? You are welcome to post your comments/questions or better yet, link to this post, blog about it and tell all your friends who might find this post useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-3340966769475615793?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-25T11:48:59.397+08:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>Mocking Transactions for unit testing a Grails Service</title><link>http://blog.henyo.com/2009/04/mocking-transactions-for-unit-testing.html</link><category>Software Development</category><category>Groovy</category><category>Grails</category><author>noreply@blogger.com (]-[3n40)</author><pubDate>Wed, 24 Jun 2009 20:49:12 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-29593944.post-2994943523927915197</guid><description>Use Case:&lt;div&gt;As a good developer&lt;/div&gt;&lt;div&gt;I should be able to unit test services that programmatically use transactions&lt;/div&gt;&lt;div&gt;So that I can minimize defects  and have high unit test coverage
&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;The Example Specs:
&lt;/div&gt;&lt;div&gt;A persistent Foo object has a bar field which is of type String. Write a service with a doSomethingTransactional method that accepts a Foo object as a parameter. The method should change the value of bar to 'did something transactional' if the value of bar is NOT 'oops'&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;The Domain:&lt;/div&gt;&lt;pre class="code"&gt;class Foo{
    String bar
}
&lt;/pre&gt;
&lt;div&gt;The Unit Test:&lt;/div&gt;&lt;pre class="code"&gt;class FooServiceTests extends BaseUnitTestCase{
    void testShouldCommit(){
        def foo = new Foo(bar:'not oops')
        mockForTransaction(FooService)
        def service = new FooService()
        service.doSomething(foo)
    }

    void testShouldRollBack(){
        def foo = new Foo(bar:'oops')
        mockForTransaction(FooService,true)
        def service = new FooService()
        service.doSomething(foo)
    }
}
&lt;/pre&gt;&lt;div&gt;
The unit test above takes into account 2 scenarios. One where we expect that the transaction will be committed and the other one will signal a rollback. The mockForTransaction actually returns a TransactionStatus object which can be used to check if the transaction is indeed committed or if it is for roll back. There is no need though to test for this as BaseUnitTestCase handles this for you automatically.
&lt;/div&gt;&lt;div&gt;The Service:&lt;/div&gt;&lt;pre class="code"&gt;class FooService{
    boolean transactional = false

    def doSomethingTransactional = { foo -&gt;
        Foo.withTransaction{ status -&gt;
            foo.bar = 'did something transactional'
            if(foo.bar == 'oops'){
                status.setRollBackOnly()
            }
        }
    }
}
&lt;/pre&gt;

&lt;div&gt;My BaseUnitTestCase:&lt;/div&gt;&lt;div&gt;&lt;pre class="code"&gt;import grails.test.GrailsUnitTestCase
import org.springframework.transaction.TransactionStatus

class BaseUnitTestCase extends GrailsUnitTestCase {

    def statusControls

    protected void setUp() {
        super.setUp()
        statusControls = []
    }

    protected void tearDown(){
        statusControls.each{
            it.verify()
        }
        statusControls.clear()
        super.tearDown()
    }

    def mockForTransaction(Class clazz,boolean expectRollback = false){
        registerMetaClass(clazz)
        def statusControl = mockFor(TransactionStatus)
        statusControls &lt;&lt; statusControl
        if(expectRollback)
            statusControl.demand.setRollbackOnly(1..1) {}
        def status = statusControl.createMock()
        clazz.metaClass.'static'.withTransaction = {
            Closure callable -&gt;  callable.call(status)
        }
        return statusControl
    }
}
&lt;/pre&gt;&lt;/div&gt;
Did it work for you? You are welcome to post your comments/questions or better yet, link to this post, blog about it and tell all your friends who might find this post useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29593944-2994943523927915197?l=blog.henyo.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-25T11:49:12.631+08:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><media:rating>nonadult</media:rating></channel></rss>
