<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6867131997769711242</id><updated>2012-02-10T20:32:26.384+08:00</updated><category term='android'/><category term='nokia'/><title type='text'>Developer Tidbits</title><subtitle type='html'>A blog for collecting tips and tricks on useful tools for your business or personal use. Covers websites, apps and gadgets.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://devbits.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://devbits.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jason Jan Ngo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-sl7vpXS05Qc/AAAAAAAAAAI/AAAAAAAAD3s/2WmY1FT_SE4/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6867131997769711242.post-7961582775569932444</id><published>2011-12-22T15:03:00.001+08:00</published><updated>2011-12-22T15:08:42.037+08:00</updated><title type='text'>Publishing your Blog on Google Currents</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.google.com/producer/static/images/currents/logo.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://www.google.com/producer/static/images/currents/logo.png" /&gt;&lt;/a&gt;&lt;/div&gt;The articles on iReport / Jasper get the most views from developers who stumble on this blog. I've setup a Google Currents edition which may search on your app or click here on your mobile device: &lt;a href="http://www.google.com/producer/editions/CAowzuQY/devbits"&gt;http://www.google.com/producer/editions/CAowzuQY/devbits&lt;/a&gt; Hopefully, this will force me to write more interesting stuff that I can read on Currents.&lt;br /&gt;&lt;br /&gt;Anyway, for those who want to publish their blog on Google Currents, here are some tips:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Edition settings: Make sure you have a logo ready. (Square between 64px and 128px, I know my logo looks amateur. I'll update it when I have time to play with Gimp.) &lt;/li&gt;&lt;li&gt;All other sections are self explanatory. &lt;/li&gt;&lt;li&gt;Distribute: This is the last step before your edition is ready. In Verify content ownership, you will be given several options. If your blog is hosted on Blogger, you will want to use verify using Google Analytics code. I had trouble with verifying mine even though I already had Google Analytics on my blog. It turned out I was using an old layout and the Google Analytics code snippet was an old version. All you need to do get a new snippet and paste it into your blog. If you are using the new Dynamic layouts, you should be good to go.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6867131997769711242-7961582775569932444?l=devbits.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devbits.blogspot.com/feeds/7961582775569932444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6867131997769711242&amp;postID=7961582775569932444' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/7961582775569932444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/7961582775569932444'/><link rel='alternate' type='text/html' href='http://devbits.blogspot.com/2011/12/putting-your-blog-on-google-currents.html' title='Publishing your Blog on Google Currents'/><author><name>Jason Jan Ngo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-sl7vpXS05Qc/AAAAAAAAAAI/AAAAAAAAD3s/2WmY1FT_SE4/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6867131997769711242.post-6294829588020355587</id><published>2011-12-22T14:42:00.000+08:00</published><updated>2011-12-22T14:42:10.370+08:00</updated><title type='text'>Don't wait for OTA, upgrade your Nexus S now</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-3WR7s4A7ObI/TuwOGma6HCI/AAAAAAAAEDc/ay6cQ_vs7OE/s1600/11+-+1" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-3WR7s4A7ObI/TuwOGma6HCI/AAAAAAAAEDc/ay6cQ_vs7OE/s320/11+-+1" width="192" /&gt;&lt;/a&gt;&lt;/div&gt;When @googlenexus tweeted that Nexus S GSM phones will be given the ICS upgrade, I immediately went to Settings -&amp;gt; About Phone -&amp;gt; System Updates and found the dreaded: "Your system is currently up to date." message.&lt;br /&gt;&lt;br /&gt;Fortunately, Android Central posted a timely article on &lt;a href="http://www.androidcentral.com/how-manually-update-your-gsm-nexus-s-ice-cream-sandwich"&gt;how to upgrade manually&lt;/a&gt;. The update file appeared to be coming from google's server and the comments didn't mention anybody bricking their phone so I proceeded to download the 130MB file and followed the instructions. So 10 minutes later, my Nexus S was running ICS. If you got your Nexus S from Globe Telecom Philippines (Nexus S i9023 GSM), then the manual upgrade procedure from Android Central should work seamlessly. All your apps and data will remain intact.&lt;br /&gt;&lt;br /&gt;So, is the upgrade worth it? DEFINITELY! If you have a Nexus S, by all means, do the upgrade right now. With the new fonts and default apps, you'll feel like you have a new phone. The SMS and email apps really make composing and replying a pleasant experience.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;POST INSTALL TIPS&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;One thing I noticed after the upgrade was that the battery was draining faster than usual. It turned out that the upgrade switched the mobile network settings to 3G (mine had been set to 2G to conserve battery). The email settings defaulted to sync the last 30 days. In Gingerbread, the email default sync was 4 days. After doing all the changes, battery life went back to normal (maybe a little bit worse).&lt;br /&gt;&lt;br /&gt;In the People (Contacts) app, you may notice that new contacts are appearing there. Those are probably from your Google+ circles. To switch back to the Gingerbread default which shows only people from "My Contacts," go to Menu -&amp;gt; Contacts to Display -&amp;gt; Customize and check only the My Contacts option. Other tips: To take a screenshot from the phone, hold power and volume down button.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6867131997769711242-6294829588020355587?l=devbits.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devbits.blogspot.com/feeds/6294829588020355587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6867131997769711242&amp;postID=6294829588020355587' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/6294829588020355587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/6294829588020355587'/><link rel='alternate' type='text/html' href='http://devbits.blogspot.com/2011/12/dont-wait-for-ota-upgrade-your-nexus-s.html' title='Don&apos;t wait for OTA, upgrade your Nexus S now'/><author><name>Jason Jan Ngo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-sl7vpXS05Qc/AAAAAAAAAAI/AAAAAAAAD3s/2WmY1FT_SE4/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-3WR7s4A7ObI/TuwOGma6HCI/AAAAAAAAEDc/ay6cQ_vs7OE/s72-c/11+-+1' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6867131997769711242.post-8625027221243971437</id><published>2011-07-20T12:10:00.000+08:00</published><updated>2011-12-15T18:39:01.495+08:00</updated><title type='text'>Unlocking Blackberry 8900</title><content type='html'>&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://www.xomobo.com/images/blackberry-8900.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="320" src="http://www.xomobo.com/images/blackberry-8900.jpg" width="192" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Blackberry 8900&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;I was about to go to Greenhills to have my Blackberry 8900 (which was locked to Globe Telecom) unlocked. I figured that I'll search for sites&amp;nbsp;that provided codes&amp;nbsp;online first and found www.blackberryfreedom.com to be one of the cheapest ($7.49 CAD) and available instantly without waiting. I paid using PayPal and got an email containing the MEP code. I followed the instructions and was able to successfully unlock the phone. It cost about P329 at the current exchange rate. When I inquired from one of the phone technicians at St. Francis Square, they quoted me P300. I guess that was the market rate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6867131997769711242-8625027221243971437?l=devbits.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devbits.blogspot.com/feeds/8625027221243971437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6867131997769711242&amp;postID=8625027221243971437' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/8625027221243971437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/8625027221243971437'/><link rel='alternate' type='text/html' href='http://devbits.blogspot.com/2011/07/unlocking-blackberry-8900.html' title='Unlocking Blackberry 8900'/><author><name>Jason Jan Ngo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-sl7vpXS05Qc/AAAAAAAAAAI/AAAAAAAAD3s/2WmY1FT_SE4/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6867131997769711242.post-1803636969607643932</id><published>2011-07-20T11:47:00.002+08:00</published><updated>2011-07-20T11:47:59.497+08:00</updated><title type='text'>Excel Formula to get Day of Week</title><content type='html'>Here's a handy Excel formula to get the day of week for a specific date.&lt;br /&gt;&lt;br /&gt;=TEXT(WEEKDAY(F12),"ddd")&lt;br /&gt;&lt;br /&gt;If cell F12 contains 7/15/2011, the formula will return "Fri"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6867131997769711242-1803636969607643932?l=devbits.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devbits.blogspot.com/feeds/1803636969607643932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6867131997769711242&amp;postID=1803636969607643932' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/1803636969607643932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/1803636969607643932'/><link rel='alternate' type='text/html' href='http://devbits.blogspot.com/2011/07/excel-formula-to-get-day-of-week.html' title='Excel Formula to get Day of Week'/><author><name>Jason Jan Ngo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-sl7vpXS05Qc/AAAAAAAAAAI/AAAAAAAAD3s/2WmY1FT_SE4/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6867131997769711242.post-540966887444893468</id><published>2010-12-08T09:46:00.000+08:00</published><updated>2010-12-08T09:46:46.737+08:00</updated><title type='text'>New Google Groups</title><content type='html'>If you regularly use Google Reader like I do, the new Google Groups should look familiar. The Favorites feature allow you to drag and drop the groups that you most frequently use. This keeps the list clean unlike the previous version where all the groups are laid out like icons on a desktop.&lt;br /&gt;&lt;br /&gt;The settings page remain the same as the previous version. If you need to moderate messages, go to the settings of the group and select management tasks. This redesign didn't get to the news like the Google eBooks, chrome web store, Nexus S and gingerbread. The look and feel of Google products are really starting to come together. If only they could do something with the only thing that sticks out like a sore thumb -- Orkut.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_q8kv6oJtAeY/TP7h9APt1kI/AAAAAAAADmY/hugcWip6PF0/s1600/20101208-groups.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="186" src="http://4.bp.blogspot.com/_q8kv6oJtAeY/TP7h9APt1kI/AAAAAAAADmY/hugcWip6PF0/s320/20101208-groups.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6867131997769711242-540966887444893468?l=devbits.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devbits.blogspot.com/feeds/540966887444893468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6867131997769711242&amp;postID=540966887444893468' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/540966887444893468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/540966887444893468'/><link rel='alternate' type='text/html' href='http://devbits.blogspot.com/2010/12/new-google-groups.html' title='New Google Groups'/><author><name>Jason Jan Ngo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-sl7vpXS05Qc/AAAAAAAAAAI/AAAAAAAAD3s/2WmY1FT_SE4/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_q8kv6oJtAeY/TP7h9APt1kI/AAAAAAAADmY/hugcWip6PF0/s72-c/20101208-groups.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6867131997769711242.post-5354341329403319100</id><published>2010-07-22T14:14:00.000+08:00</published><updated>2010-07-22T14:14:41.763+08:00</updated><title type='text'>Getting the phone number of your SIM card</title><content type='html'>If you need to know the phone number of a Sun Cellular SIM card, dial *99# from your phone and it will respond with the phone number. Thanks to &lt;a href="http://www.twitter.com/suncelltweets"&gt;suncelltweets&lt;/a&gt; for replying. The phone number can be stored in the SIM card and some phones are able to display that. For Globe on a Blackberry, it displayed Unknown number when you press the green phone key. I also tried this on Smart but it did not work. This seems like an operator specific feature and Sun has been able to provide that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6867131997769711242-5354341329403319100?l=devbits.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devbits.blogspot.com/feeds/5354341329403319100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6867131997769711242&amp;postID=5354341329403319100' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/5354341329403319100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/5354341329403319100'/><link rel='alternate' type='text/html' href='http://devbits.blogspot.com/2010/07/getting-phone-number-of-your-sim-card.html' title='Getting the phone number of your SIM card'/><author><name>Jason Jan Ngo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-sl7vpXS05Qc/AAAAAAAAAAI/AAAAAAAAD3s/2WmY1FT_SE4/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6867131997769711242.post-7580093591570297800</id><published>2010-06-25T23:16:00.000+08:00</published><updated>2010-06-25T23:16:58.997+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Android 2.1 Eclair on HTC Magic</title><content type='html'>Finally. I made the leap from official Android 1.5 with HTC Sense to a rooted 2.1 Eclair. The rumors said HTC was going to release an update in March, then May, then June and now September. I had enough of the waiting. Apps (Twitter, NY Times)&amp;nbsp;that run only in 2.0+ were being released and I felt left out. Now, which ROM should I choose? The net pointed to Cyanogen as the most respected Android developer.&lt;br /&gt;&lt;br /&gt;I then started to read and reread the instructions on Cyanogen's &lt;a href="http://wiki.cyanogenmod.com/index.php/Full_Update_Guide_-_G1/Dream/Magic32A_Firmware_to_CyanogenMod"&gt;wiki&lt;/a&gt;. You'll be asked to download a total of 9 files. I had done the Gold Card method before so I didn't need to do it again. The rooting and upgrade to 5.0.7 took a lot less time than expected. Everything went smoothly and I was able to boot into Eclair after about an hour of work.&lt;br /&gt;&lt;br /&gt;Everything was faster and more responsive than before. The look and feel was actually very nice. There were some things I missed like the Sense Gallery, the built-in Facebook-Contacts integration, the Sense calendar widget, the Sense bookmarks widget and the Teeter game. The upgrade, on the other hand, gave me Gesture Search, multiple Gmail account integration, Twitter, a faster browser and Google Maps with buzz support.&lt;br /&gt;&lt;br /&gt;A day later, Cyanogen released 5.0.8. The upgrade was a simple case of downloading 2 files, copying it to the SD card, rebooting into recovery mode and applying the zip updates. After the update, I rebooted to a 5.0.8 and the ADW.launcher was waiting for me. The upgrade was well worth it and would recommend it to anyone in the Philippines with an HTC Magic. A few weeks from now, Cyanogen would probably have Froyo ready for use.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6867131997769711242-7580093591570297800?l=devbits.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devbits.blogspot.com/feeds/7580093591570297800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6867131997769711242&amp;postID=7580093591570297800' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/7580093591570297800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/7580093591570297800'/><link rel='alternate' type='text/html' href='http://devbits.blogspot.com/2010/06/android-21-eclair-on-htc-magic.html' title='Android 2.1 Eclair on HTC Magic'/><author><name>Jason Jan Ngo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-sl7vpXS05Qc/AAAAAAAAAAI/AAAAAAAAD3s/2WmY1FT_SE4/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6867131997769711242.post-5582434004119865251</id><published>2010-03-11T14:00:00.000+08:00</published><updated>2010-03-11T14:00:50.515+08:00</updated><title type='text'>My Android Apps</title><content type='html'>After more than a month of installing and uninstalling apps in my HTC Magic, I have the following recommendations. This doesn't include the native apps (People, Browser, Camera, etc.)&lt;br /&gt;&lt;br /&gt;Most Used&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;NewsRob - syncs to Google Reader, for my daily news&lt;/li&gt;&lt;li&gt;Aldiko - reading ebooks, in ePub format, used together with Calibre (desktop application)&lt;/li&gt;&lt;li&gt;Seesmic - twitter client, better than Peep because it shows more tweets on the screen&lt;/li&gt;&lt;li&gt;Facebook - you know this&lt;/li&gt;&lt;li&gt;3banana - used for storing notes that syncs with a web client&lt;/li&gt;&lt;li&gt;Astrid&lt;/li&gt;&lt;li&gt;gStrings&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Sometimes Used&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Google Maps&lt;/li&gt;&lt;li&gt;Barcode Scanner - for checking barcode quality&lt;/li&gt;&lt;li&gt;KeePassDroid - password keeper&lt;/li&gt;&lt;li&gt;Evernote - this would have been most used if it had offline capability&lt;/li&gt;&lt;li&gt;Foursquare - still testing this out, also on my blackberry&lt;/li&gt;&lt;li&gt;GPS Status&lt;/li&gt;&lt;li&gt;Abduction&lt;/li&gt;&lt;li&gt;ActionPotato&lt;/li&gt;&lt;li&gt;Robo Defense&lt;/li&gt;&lt;li&gt;Advanced Task Killer Free&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Rarely Used&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Astro&lt;/li&gt;&lt;li&gt;Google Translate&lt;/li&gt;&lt;li&gt;Google Sky Map&lt;/li&gt;&lt;li&gt;Gem Miner&lt;/li&gt;&lt;li&gt;Frozen Bubble&lt;/li&gt;&lt;li&gt;Fring&lt;/li&gt;&lt;li&gt;CadreBible&lt;/li&gt;&lt;li&gt;Graviturn&lt;/li&gt;&lt;li&gt;Handcent SMS&lt;/li&gt;&lt;li&gt;handyCalc&lt;/li&gt;&lt;li&gt;Jewels&lt;/li&gt;&lt;li&gt;Loops Lite&lt;/li&gt;&lt;li&gt;My Tracks&lt;/li&gt;&lt;li&gt;PapiJump&lt;/li&gt;&lt;li&gt;PapiMissile&lt;/li&gt;&lt;li&gt;PicSay&lt;/li&gt;&lt;li&gt;PhotoPuzzle&lt;/li&gt;&lt;li&gt;Photoshop.com Mobile&lt;/li&gt;&lt;li&gt;Puzzle Blox Arcade&lt;/li&gt;&lt;li&gt;Ringdroid&lt;/li&gt;&lt;li&gt;RipChord&lt;/li&gt;&lt;li&gt;Shopper&lt;/li&gt;&lt;li&gt;SMS Backup&lt;/li&gt;&lt;li&gt;Solo Lite&lt;/li&gt;&lt;li&gt;Zebra Paint&lt;/li&gt;&lt;li&gt;WorkItOut&lt;/li&gt;&lt;li&gt;CardioTrainer&lt;/li&gt;&lt;li&gt;Compass&lt;/li&gt;&lt;li&gt;Currency Converter&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6867131997769711242-5582434004119865251?l=devbits.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devbits.blogspot.com/feeds/5582434004119865251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6867131997769711242&amp;postID=5582434004119865251' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/5582434004119865251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/5582434004119865251'/><link rel='alternate' type='text/html' href='http://devbits.blogspot.com/2010/03/my-android-apps.html' title='My Android Apps'/><author><name>Jason Jan Ngo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-sl7vpXS05Qc/AAAAAAAAAAI/AAAAAAAAD3s/2WmY1FT_SE4/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6867131997769711242.post-4093218459571921096</id><published>2010-01-14T17:49:00.008+08:00</published><updated>2011-12-26T11:29:51.334+08:00</updated><title type='text'>HTC Magic ROM Upgrade</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_q8kv6oJtAeY/S1B90ceBNRI/AAAAAAAAC7c/rzmdlwUeNAI/s1600-h/htc-magic-upgrade.jpg"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5426975890930218258" src="http://1.bp.blogspot.com/_q8kv6oJtAeY/S1B90ceBNRI/AAAAAAAAC7c/rzmdlwUeNAI/s320/htc-magic-upgrade.jpg" style="cursor: hand; cursor: pointer; float: right; height: 320px; margin: 0 0 10px 10px; width: 310px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;I got the black HTC Magic from Smart last December. It came with the stock android 1.5 OS when it came out of the box with no Google integration and Android Market. I am pretty sure the average phone user will be turned off from what they see. There are absolutely no interesting applications included. I wouldn't be surprised why this was one of the slowest selling models in Smart. They started offering this unit for P3500 in Plan 3500. I believe it is now free under Plan 1800.&lt;/div&gt;&lt;br /&gt;Fortunately, an HTC Sense ROM upgrade was available at that time. The &lt;a href="http://www.htc.com/sea/SupportDownload.aspx?p_id=267&amp;amp;cat=2&amp;amp;dl_id=757"&gt;ROM&lt;/a&gt; was posted in the HTC website on November 10. Make sure you apply the Singapore/Philippines ROM and not the Malaysia/Indonesia/Vietnam one as that one does not have Market. My unit was apparently registered as a Malaysia model and I couldn’t download the Singapore/Philippines ROM. Communicating with HTC and Smart was not at all helpful and gave me canned responses. I couldn't download the Singapore/Philippines ROM (&lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;update Dec 26, 2011): you may now download the ROM without entering a serial number at&amp;nbsp;&lt;a href="http://www.htc.com/sea/help/htc-magic/#download"&gt;http://www.htc.com/sea/help/htc-magic/#download&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;)&amp;nbsp;when I entered my serial number, so I contacted HTC support and they replied:&lt;br /&gt;&lt;blockquote&gt;Thanks for contacting &lt;span class="il"&gt;HTC&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;With regards of your query, we have checked the SN you provided, it is shipped to Malaysia, you might want to use the below link to download it&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.htc.com/sea/SupportDownload.aspx?p_id=267&amp;amp;cat=2&amp;amp;dl_id=759" target="_blank"&gt;http://www.&lt;span class="il"&gt;htc&lt;/span&gt;.com/sea/&lt;wbr&gt;&lt;/wbr&gt;SupportDownload.aspx?p_id=267&amp;amp;&lt;wbr&gt;&lt;/wbr&gt;cat=2&amp;amp;dl_id=759&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please be informed that the phone will not come with Android Market application after upgrading.&lt;br /&gt;&lt;br /&gt;Thanks&lt;br /&gt;&lt;br /&gt;&lt;span class="il"&gt;HTC&lt;/span&gt;  &lt;/blockquote&gt;I was able to download and apply the Malaysia ROM and it did not include Android Market. I settled for SlideME to install apps but it was too limiting. The forums said that the Singapore ROM had Market so I contacted HTC again to help me get the Singapore/Philippines ROM. They replied:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Thanks for contacting &lt;span class="il"&gt;HTC&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;With regards of your query, you need to talk to the store that you bought the phone from to see if they can arrange with replacing a new phone.&lt;br /&gt;&lt;br /&gt;Thanks&lt;br /&gt;&lt;br /&gt;&lt;span class="il"&gt;HTC&lt;/span&gt;  &lt;/blockquote&gt;Now I wrote to Smart Customer Care who replied 2 days later: "Kindly visit any Smart Wireless Center for this to be checked over the counter." Based on prior experience, I doubt they even know what the phone is. I am sure they will just tell me that they will have to refer this to someone else.&lt;br /&gt;&lt;br /&gt;I decided to take things into my own hands. I was able to download the Singapore/Philippines ROM upgrade using a serial number I got from the net. When I ran the RUU upgrade, it aborted with a CID check error. I followed the instructions for the &lt;a href="http://forum.xda-developers.com/showthread.php?t=572683"&gt;gold card method&lt;/a&gt; to override the carrier id check and the ROM upgraded proceeded smoothly. It even configured Smart APNs correctly. I presume this should work with HTC Magics of other countries as long as the hardware is identical.&lt;br /&gt;&lt;br /&gt;After the upgrade, it will prompt you for your google username and password and that’s when everything becomes interesting. Market is now available and you get HTC Sense. It is now a thing of beauty. With the &lt;a href="http://www.knowyourmobile.com/blog/393815/htc_magic_to_get_android_21_update.html"&gt;upcoming Android 2.1 upgrade&lt;/a&gt; in the horizon, things should get even better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6867131997769711242-4093218459571921096?l=devbits.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devbits.blogspot.com/feeds/4093218459571921096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6867131997769711242&amp;postID=4093218459571921096' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/4093218459571921096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/4093218459571921096'/><link rel='alternate' type='text/html' href='http://devbits.blogspot.com/2010/01/htc-magic-rom-upgrade.html' title='HTC Magic ROM Upgrade'/><author><name>Jason Jan Ngo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-sl7vpXS05Qc/AAAAAAAAAAI/AAAAAAAAD3s/2WmY1FT_SE4/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_q8kv6oJtAeY/S1B90ceBNRI/AAAAAAAAC7c/rzmdlwUeNAI/s72-c/htc-magic-upgrade.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6867131997769711242.post-5930273952326601689</id><published>2008-11-27T13:00:00.002+08:00</published><updated>2008-11-27T13:02:43.926+08:00</updated><title type='text'>MySQL 5.1 goes GA</title><content type='html'>I was quite surprised when I browsed dev.mysql.com and found that 5.1 was already on GA. There was no mention of this in the mysql.com site. It seems that they're holding off on the announcement until all the mirrors have it because some of the Asian mirrors still do not have it. Most of the US mirrors though have it. We'll be transitioning to this release to take advantage of partitioning.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6867131997769711242-5930273952326601689?l=devbits.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devbits.blogspot.com/feeds/5930273952326601689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6867131997769711242&amp;postID=5930273952326601689' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/5930273952326601689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/5930273952326601689'/><link rel='alternate' type='text/html' href='http://devbits.blogspot.com/2008/11/mysql-51-goes-ga.html' title='MySQL 5.1 goes GA'/><author><name>Jason Jan Ngo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-sl7vpXS05Qc/AAAAAAAAAAI/AAAAAAAAD3s/2WmY1FT_SE4/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6867131997769711242.post-7565346764726650166</id><published>2008-09-12T22:13:00.004+08:00</published><updated>2008-09-12T22:44:51.885+08:00</updated><title type='text'>iReport Default Date Parameter</title><content type='html'>If you want to set a default date for a jasperreports parameter, you can enter the following in the default value expression of the parameter.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;new Date()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;However, if you wanted the default to be relative from today, for example, 3 days ago, you will need to do go outside of the standard java date libraries (Date, Calendar) because JR parameter does not allow you to have multiple statements. You can write your own utility package or you can use &lt;a href="http://joda-time.sourceforge.net/"&gt;Joda&lt;/a&gt;, a replacement library for the JDK date and time library.&lt;br /&gt;&lt;br /&gt;To use Joda in iReports, you need to extract the jar file and add it to  Options -&gt; Classpath. You may also drop the jar file in iReports' lib directory. You will also need to add this library to your application or report server.&lt;br /&gt;&lt;br /&gt;For setting a default date 5 days prior from today, use this:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;new org.joda.time.DateTime().minusDays(5).toDate()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;or this if you want the time part set to the beginning of the day:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;new org.joda.time.LocalDate().toDateTimeAtStartOfDay().minusDays(5).toDate()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;or if you want the parameter to be relative to another parameter:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;new org.joda.time.LocalDate($P{DateParam}).toDateTimeAtStartOfDay().minusDays(5).toDate()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Joda has other methods to get a relative date: minusWeeks, minusMonths, minusYears, plusDays, plusWeeks, plusMonths, plusYears. I think you can also use Groovy to write an expression to get a relative date but that's for another time. It would probably be as simple as new Date() - 5. Post a comment if you came up with a better way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6867131997769711242-7565346764726650166?l=devbits.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devbits.blogspot.com/feeds/7565346764726650166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6867131997769711242&amp;postID=7565346764726650166' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/7565346764726650166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/7565346764726650166'/><link rel='alternate' type='text/html' href='http://devbits.blogspot.com/2008/09/ireport-default-date-parameter.html' title='iReport Default Date Parameter'/><author><name>Jason Jan Ngo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-sl7vpXS05Qc/AAAAAAAAAAI/AAAAAAAAD3s/2WmY1FT_SE4/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6867131997769711242.post-1764773662570844424</id><published>2008-08-30T16:24:00.005+08:00</published><updated>2008-08-30T16:53:08.596+08:00</updated><title type='text'>selective table restore from mysqldump</title><content type='html'>I recently had to restore a corrupted table that had resulted from a full disk. I had been using &lt;a href="http://sourceforge.net/projects/automysqlbackup/"&gt;automysqlbackup&lt;/a&gt; as my backup script. Each database had a corresponding backup file. It would have been easy to use a text editor to edit out the tables that you didn't want to restore but this database had grown to 1G.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;STEP 1: Restore table structure&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If the table structure is corrupted, you need to retrieve the CREATE TABLE statements from the backup. To do this you can use grep:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;zcat backup.sql.gz | grep -A 20 'CREATE TABLE `tablename1`' &gt; tablestructure.sql&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This command will create tablestructure.sql containing the CREATE TABLE statement and 20 lines after that. You may have to change the parameter from 20 to whatever to get the entire statement.&lt;br /&gt;&lt;br /&gt;Once tablestructure.sql had been edited to only contain the proper CREATE TABLE statement, you may now restore the table structure.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mysql -u user -p dbname &lt; tablestructure.sql&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;" &gt;STEP 2: Extract and restore the table data&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This command will create a sql file for the table.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;" &gt;zcat backup.sql.gz | grep 'INSERT INTO `tablename1`' &gt; tabledata.sql&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If the resulting sql file is small enough, you may load the table straight back into the database.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;" &gt;mysql -u user -p dbname &lt; tabledata.sql&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;OPTIONAL: If you have a huge table and want to partially restore or batch things, you may want to split the table data into multiple lines.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;" &gt;split -l 100 tabledata.sql&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This will create multiple files of 100 lines each named xaa, xab, xac, etc. You may then load each file separately.&lt;br /&gt;&lt;br /&gt;If some rows are already on the table and you just don't want the INSERT to fail on a duplicate primary key, you can use sed to add the IGNORE option to the INSERT statement. The command below simply does a search and replace on the source file and writes it to a new file.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;" &gt;sed 's/INSERT/INSERT IGNORE/' &lt; tabledata.sql &gt; newtabledata.sql&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That should do the trick.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6867131997769711242-1764773662570844424?l=devbits.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devbits.blogspot.com/feeds/1764773662570844424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6867131997769711242&amp;postID=1764773662570844424' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/1764773662570844424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/1764773662570844424'/><link rel='alternate' type='text/html' href='http://devbits.blogspot.com/2008/08/selective-table-restore-from-mysqldump.html' title='selective table restore from mysqldump'/><author><name>Jason Jan Ngo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-sl7vpXS05Qc/AAAAAAAAAAI/AAAAAAAAD3s/2WmY1FT_SE4/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6867131997769711242.post-7211692158576334054</id><published>2008-08-13T14:26:00.003+08:00</published><updated>2008-08-13T14:37:39.118+08:00</updated><title type='text'>Setting up Corporate Ubuntu Desktops</title><content type='html'>&lt;p&gt;&lt;span style="font-size:100%;"&gt;This guide has been updated for Ubuntu Hardy 8.04.1. The following is the official installation guide: &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="https://help.ubuntu.com/8.04/installation-guide/i386/index.html"&gt;&lt;img src="http://intranet/wiki/rightsidebarsmaller/img/moin-www.png" alt="[WWW]" width="11" height="11" /&gt; https://help.ubuntu.com/8.04/installation-guide/i386/index.html&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;&lt;span style="font-size:100%;"&gt;The preseed method will enable a more automated install. You will want to enter the proxy a local apt-cacher server if you have one to speed up the updates and installs of new packages. &lt;/span&gt;&lt;/p&gt;  &lt;h3 id="head-80e611c934d7ce2c3aa9ae4256a3db0ad8b5f900"&gt;Post Installation Tasks&lt;/h3&gt;   &lt;h4 id="head-e01edf201df57a280c0ecf25b1d6282afd08cc56"&gt;Updating and Installing Packages&lt;/h4&gt;  &lt;ul&gt;&lt;li&gt;&lt;p&gt; In Synaptic, configure proxy as needed. If you have an apt-cacher service running on the proxy server, it will make your updates much faster if the packages have already been downloaded by a prior machine. &lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt; Click on Reload &lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt; Click on Upgrade &lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt; Install ubuntu-restricted-extras &lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt; Install ttf-liberation &lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt; Apply &lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;h4 id="head-847c09b269dc2c1ab3b16bf7cd4752c1c8707048"&gt;Configure Desktop to Remove Annoying Stuff&lt;br /&gt;&lt;/h4&gt;  &lt;ul&gt;&lt;li&gt;&lt;p&gt; In System -&gt; Administration -&gt; Login Window -&gt; Accessibility, uncheck the sounds &lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt; In System -&gt; Preferences -&gt; Sounds -&gt; Sounds, uncheck Play System Sound to remove annoying sounds &lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;If you want to change the desktop wallpaper for everyone:&lt;br /&gt;&lt;/p&gt; &lt;ol type="1"&gt;&lt;li&gt;&lt;p&gt;In the desktop, type Alt-F2  &lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt;gksudo gconf-editor  &lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt;Enter your password if prompted  &lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt;Choose /desktop/gnome/background from the tree on the left  &lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt;Change the picture_filename key to (e.g.) usr/share/backgrounds/ubuntu-calendar.png  &lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt;Right click and Set As Mandatory or Set As Default. Mandatory means users cannot change the wallpaper. &lt;/p&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;You will also want to change the default fonts to the liberation fonts. It makes the menus and fonts in your applications more compact.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The scripts below will set the default fonts and settings without going through the GUI. Just change the mandatory to defaults if you want to allow users to change it. &lt;/p&gt;  &lt;pre&gt;&lt;span style="font-size:78%;"&gt;sudo gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --set /apps/nautilus/preferences/desktop_font --type string "Liberation Sans 9"&lt;br /&gt;sudo gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory--set /desktop/gnome/interface/document_font_name --type string "Liberation Sans 9"&lt;br /&gt;sudo gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory--set /desktop/gnome/interface/font_name --type string "Liberation Sans 9"&lt;br /&gt;sudo gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory--set /desktop/gnome/interface/monospace_font_name --type string "Monospace 9"&lt;br /&gt;sudo gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --set /desktop/gnome/sound/event_sounds --type bool "false"&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;  &lt;h4 id="head-c71ccd14b8cb5a8b12a6e97ff8a28883be80db5f"&gt;Adding a New User&lt;/h4&gt;  &lt;ol type="1"&gt;&lt;li&gt;&lt;p&gt;System -&gt; Administration -&gt; Users and Groups, Unlock (You will asked for your password.) &lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt;Add User as Desktop User Profile. This user will not be able to install new packages. &lt;/p&gt; &lt;/li&gt;&lt;/ol&gt;  &lt;h4 id="head-ee2c1619ec7ca79620608cb2a30c31abfb65c4f5"&gt;Adding a Printer&lt;/h4&gt;  &lt;ol type="1"&gt;&lt;li&gt;&lt;p&gt;System -&gt; Administration -&gt; Printing &lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt;New Printer -&gt; HP &lt;a class="nonexistent" href="http://intranet/7wiki/JetDirect"&gt;JetDirect&lt;/a&gt; &lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt;Enter the IP of the network printer&lt;br /&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt;Change Printer Options to a default media size of Letter instead of A4 if you are in the Philippines. &lt;/p&gt; &lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6867131997769711242-7211692158576334054?l=devbits.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devbits.blogspot.com/feeds/7211692158576334054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6867131997769711242&amp;postID=7211692158576334054' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/7211692158576334054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/7211692158576334054'/><link rel='alternate' type='text/html' href='http://devbits.blogspot.com/2008/08/setting-up-corporate-ubuntu-desktops.html' title='Setting up Corporate Ubuntu Desktops'/><author><name>Jason Jan Ngo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-sl7vpXS05Qc/AAAAAAAAAAI/AAAAAAAAD3s/2WmY1FT_SE4/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6867131997769711242.post-5078081066158596157</id><published>2008-02-04T12:54:00.000+08:00</published><updated>2008-02-04T13:07:18.607+08:00</updated><title type='text'>Pentaho Quick Install</title><content type='html'>Pentaho has a preconfigured install package that can be used to evaluate the platform. The default install will only work if it is run on your own machine. There are two things that you'd want to do if you want others to test the platform.&lt;br /&gt;&lt;br /&gt;1. Allow access from other machines on the LAN.&lt;br /&gt;&lt;br /&gt;You need to edit web.xml file located at&lt;br /&gt;&lt;br /&gt;%PCI%/jboss/server/default/deploy/pentaho.war/WEB-INF/web.xml&lt;br /&gt;&lt;br /&gt;where %PCI% is the folder where you uncompressed the Pentaho preconfigured install.&lt;br /&gt;&lt;br /&gt;Look for the string base-url. &lt;param-value&gt;http://localhost:8080/pentaho/&lt;/param-value&gt; Change the value into an IP address or the computer name that will resolve to it.&lt;br /&gt;&lt;br /&gt;2. Change the default port 8080.&lt;br /&gt;&lt;br /&gt;Sometimes port 8080 is already being used by another application, possibly Tomcat. Pentaho has a web container using port 8080 that may conflict with the existing application.&lt;br /&gt;&lt;br /&gt;You need to edit server.xml located at:&lt;br /&gt;&lt;br /&gt;%PCI%/jboss/server/default/deploy/jboss-web.deployer/server.xml&lt;br /&gt;&lt;br /&gt;Look for the string 8080.&lt;br /&gt;&lt;br /&gt;&lt;Connector port="8080" address="${jboss.bind.address}"&gt;&lt;br /&gt;&lt;br /&gt;Change the port number to your desired number. You may now restart the Pentaho BI platform.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6867131997769711242-5078081066158596157?l=devbits.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devbits.blogspot.com/feeds/5078081066158596157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6867131997769711242&amp;postID=5078081066158596157' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/5078081066158596157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/5078081066158596157'/><link rel='alternate' type='text/html' href='http://devbits.blogspot.com/2008/02/pentaho-quick-install.html' title='Pentaho Quick Install'/><author><name>Jason Jan Ngo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-sl7vpXS05Qc/AAAAAAAAAAI/AAAAAAAAD3s/2WmY1FT_SE4/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6867131997769711242.post-2547033944212583880</id><published>2007-08-15T18:44:00.000+08:00</published><updated>2007-08-15T18:57:10.020+08:00</updated><title type='text'>OpenOffice 2.2 Defaults</title><content type='html'>I created an Windows installer for people who do not like to spend time doing the following after installing OpenOffice 2.2. &lt;br /&gt;&lt;br /&gt;1. Filling in the first time "License/User" wizard.&lt;br /&gt;2. Configuring Calc, Writer and Impress to save in MS formats.&lt;br /&gt;&lt;br /&gt;If you are recommending OpenOffice to your friends and do not wish to explain how to change the settings. Then this is the installer for you.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://files.openomy.com/public/jgngo/openoffice-2.2-defaults.exe"&gt;http://files.openomy.com/public/jgngo/openoffice-2.2-defaults.exe&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;All the installer does is copy 4 files (Setup.xcu, Setup-calc.xcu, Setup-writer.xcu, Setup-impress.xcu) to C:\Program Files\OpenOffice.org 2.2\share\registry\modules\org\openoffice\Setup. The xcu files have been configured to set the default file format to MS Office formats. The Setup.xcu serves to disable the first time user wizard. WARNING: It also deletes the Quickstarter from the Startup folder because I cannot justify it remaining in memory.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6867131997769711242-2547033944212583880?l=devbits.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devbits.blogspot.com/feeds/2547033944212583880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6867131997769711242&amp;postID=2547033944212583880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/2547033944212583880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/2547033944212583880'/><link rel='alternate' type='text/html' href='http://devbits.blogspot.com/2007/08/openoffice-22-defaults.html' title='OpenOffice 2.2 Defaults'/><author><name>Jason Jan Ngo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-sl7vpXS05Qc/AAAAAAAAAAI/AAAAAAAAD3s/2WmY1FT_SE4/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6867131997769711242.post-6040334962382063435</id><published>2007-03-23T10:05:00.000+08:00</published><updated>2007-03-23T10:25:01.200+08:00</updated><title type='text'>Migrating Moniwiki to MoinMoin</title><content type='html'>I had been using Moniwiki for our company for a while because the installation was quite easy as it was PHP based. However, I found out that document versioning didn't really work. It may have been a configuration issue but I took this opportunity to take a look at MoinMoin, as it was being used by Ubuntu and looked well supported.&lt;br /&gt;&lt;br /&gt;The server was running Debian stable and MoinMoin was in the repositories. Installing was simple using aptitude. Configuration was a bit more involved as it required copying and editing files.&lt;br /&gt;&lt;br /&gt;The new wiki site was pleasantly more responsive. The next task was to move the data in Moniwiki to MoinMoin. Upon inspecting the data repositories, I realized that Moniwiki stored the data in individual files with the WikiWord as the filename while MoinMoin organized that data with the WikiWord as a directory with the actual content under the revisions directory. I cooked up a quick script to migrate the data. I also ran the previous file through a 'tr' to filter out non ascii characters, which was present in Moniwiki and showed up as errors in MoinMoin.&lt;br /&gt;&lt;br /&gt;The next problem was the way non WikiWord links were defined. In Moniwiki these are written as [Link to Text] while MoinMoin used ["Link to Text"]. I had a couple of those so I simply edited them to the MoinMoin syntax. It turned out to have another problem as Moniwiki saved it as a file named LinkToText while MoinMoin stored is as Link_to_Text. I simply renamed those links and MoinMoin powers the wiki now.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;SRC=/usr/share/moniwiki/data/text&lt;br /&gt;DEST=/var/www/moinwiki&lt;br /&gt;&lt;br /&gt;PAGES=`ls $SRC`&lt;br /&gt;cd $DEST&lt;br /&gt;&lt;br /&gt;for i in $PAGES; do&lt;br /&gt;        mkdir -p $i/revisions&lt;br /&gt;        echo "00000001" &gt; $i/current&lt;br /&gt;        #cp $SRC/$i $i/revisions/00000001&lt;br /&gt;        tr -cd '\11\12\13\40-\176' &lt; $SRC/$i &gt; $i/revisions/00000001&lt;br /&gt;done&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6867131997769711242-6040334962382063435?l=devbits.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devbits.blogspot.com/feeds/6040334962382063435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6867131997769711242&amp;postID=6040334962382063435' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/6040334962382063435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/6040334962382063435'/><link rel='alternate' type='text/html' href='http://devbits.blogspot.com/2007/03/migrating-moniwiki-to-moinmoin.html' title='Migrating Moniwiki to MoinMoin'/><author><name>Jason Jan Ngo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-sl7vpXS05Qc/AAAAAAAAAAI/AAAAAAAAD3s/2WmY1FT_SE4/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6867131997769711242.post-7917473496012508753</id><published>2007-03-03T10:12:00.000+08:00</published><updated>2007-03-03T10:17:59.880+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nokia'/><title type='text'>N80 Software Update</title><content type='html'>I just did the &lt;a href="http://www.nokia.com/A4176110"&gt;Nokia Software Update&lt;/a&gt; for my Nokia N80 last night. It took 3 hours to download the 78MB update. It's now running the N80 Internet Edition. However, when I restored my previous backup, the new Internet Folder disappeared. Gizmovoip also responds with a "Unable to configure GizmoVoip" when I tried to run that. I'm reinstalling the firmware again and will synchronize instead of restore. I'll lose my SMS messages and will have to reinstall applications but I guess that's the price of having a nice VOIP phone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6867131997769711242-7917473496012508753?l=devbits.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devbits.blogspot.com/feeds/7917473496012508753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6867131997769711242&amp;postID=7917473496012508753' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/7917473496012508753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/7917473496012508753'/><link rel='alternate' type='text/html' href='http://devbits.blogspot.com/2007/03/n80-software-update.html' title='N80 Software Update'/><author><name>Jason Jan Ngo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-sl7vpXS05Qc/AAAAAAAAAAI/AAAAAAAAD3s/2WmY1FT_SE4/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6867131997769711242.post-5859687910856497022</id><published>2007-02-05T14:50:00.000+08:00</published><updated>2007-02-05T14:59:27.454+08:00</updated><title type='text'>Compact Calendar (Printable CEO)</title><content type='html'>A tool I use to visualize what to do for the year is David Seah's &lt;a href="http://davidseah.com/archives/2006/12/14/compact-calendar-for-2007/"&gt;Compact Calendar.&lt;/a&gt; He provides an Excel worksheet which you can customize for your own use. Discussing project schedules with other people is also breeze when using this tool. You'll probably throw away your desk calendar once you start using this.&lt;br /&gt;&lt;br /&gt;Download the &lt;a href="http://www.openomy.com/download/jgngo/CompactCalendar2007-ph.xls"&gt;2007 Philippine Version&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6867131997769711242-5859687910856497022?l=devbits.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devbits.blogspot.com/feeds/5859687910856497022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6867131997769711242&amp;postID=5859687910856497022' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/5859687910856497022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/5859687910856497022'/><link rel='alternate' type='text/html' href='http://devbits.blogspot.com/2007/02/compact-calendar-printable-ceo.html' title='Compact Calendar (Printable CEO)'/><author><name>Jason Jan Ngo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-sl7vpXS05Qc/AAAAAAAAAAI/AAAAAAAAD3s/2WmY1FT_SE4/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6867131997769711242.post-5421096677651046745</id><published>2006-12-27T16:10:00.000+08:00</published><updated>2007-02-07T07:02:01.565+08:00</updated><title type='text'>Oracle Apps on Mozilla Firefox</title><content type='html'>You actually don't need to install JInitiator (jinit 1.3.1.21) to run Oracle Applications on Firefox if you already installed the Sun JRE 1.4.2 and above. You will need to edit pluginreg.dat&lt;br /&gt;&lt;br /&gt;On Windows, that file is located at %APPDATA%\Mozilla\Firefox. Make a copy of the existing one first in case something goes wrong.&lt;br /&gt;&lt;br /&gt;Search for NPJava14.dll because Oracle runs on Java 1.4. This will appear whether you have installed Java 5 or 6.&lt;br /&gt;&lt;br /&gt;You will need to add the following line to at the end of the plugins.&lt;br /&gt;&lt;br /&gt;6|application/x-jinit-applet;version=1.3.1.21|Java||$&lt;br /&gt;&lt;br /&gt;Then update the count at the top of the section. Your modified pluginreg.dat will look like:&lt;br /&gt;&lt;br /&gt;C:\Program Files\Java\jre1.5.0_09\bin\NPJava14.dll|$&lt;br /&gt;|$&lt;br /&gt;1160594743000|1|5|$&lt;br /&gt;Java Plug-in 1.5.0_09 for Netscape Navigator (DLL Helper)|$&lt;br /&gt;Java(TM) 2 Platform Standard Edition 5.0 Update 9|$&lt;br /&gt;7&lt;br /&gt;0|application/x-java-applet;version=1.4.2|Java Applet||$&lt;br /&gt;1|application/x-java-bean;version=1.4.2|JavaBeans||$&lt;br /&gt;2|application/x-java-applet;version=1.4.1|Java Applet||$&lt;br /&gt;3|application/x-java-bean;version=1.4.1|JavaBeans||$&lt;br /&gt;4|application/x-java-applet;version=1.5|Java Applet||$&lt;br /&gt;5|application/x-java-bean;version=1.5|JavaBeans||$&lt;br /&gt;6|application/x-jinit-applet;version=1.3.1.21|Java||$&lt;br /&gt;&lt;br /&gt;Just replace the | with : if you're in Linux. Run Firefox and you're good to go.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6867131997769711242-5421096677651046745?l=devbits.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devbits.blogspot.com/feeds/5421096677651046745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6867131997769711242&amp;postID=5421096677651046745' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/5421096677651046745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/5421096677651046745'/><link rel='alternate' type='text/html' href='http://devbits.blogspot.com/2006/12/oracle-apps-on-mozilla-firefox.html' title='Oracle Apps on Mozilla Firefox'/><author><name>Jason Jan Ngo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-sl7vpXS05Qc/AAAAAAAAAAI/AAAAAAAAD3s/2WmY1FT_SE4/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6867131997769711242.post-4269062318692548697</id><published>2006-11-06T18:42:00.000+08:00</published><updated>2006-11-06T18:48:08.526+08:00</updated><title type='text'>iReport Tips</title><content type='html'>The following are useful tips for non-Java people like me. Adding Groovy support to iReport should do the trick but it requires an additional library. The tricky part with iReport variables is getting the data types to match.&lt;br /&gt;&lt;br /&gt;The highlighting feature of Eclipse BIRT is much better than how it is being done in iReport/Jasperreports. I usually use an arrow character than changing the background color as it looks cleaner in the report design.&lt;br /&gt;&lt;br /&gt;Accessing variables, parameters and fields&lt;br /&gt;&lt;br /&gt;$P{fieldName} - is for parameter&lt;br /&gt;$F{fieldName} - is for fields&lt;br /&gt;$V{variableName} - is for variables&lt;br /&gt;&lt;br /&gt;To highlight a row when it reaches a certain condition:&lt;br /&gt;&lt;br /&gt;   1. Add a text field&lt;br /&gt;   2. In the properties under PrintWhenExpression:&lt;br /&gt;&lt;br /&gt;new Boolean($F{owner}.equals("username"))&lt;br /&gt;&lt;br /&gt;The key thing here is that if the field owner is true, &lt;br /&gt;it will print the text field.&lt;br /&gt;&lt;br /&gt;To set a default date:&lt;br /&gt;&lt;br /&gt;new SimpleDateFormat("yyyyMMdd").parse("20050101")&lt;br /&gt;&lt;br /&gt;To show overall statistics on the first page of the report: Usually these are variables that should be computed at the end of the report. The reset type on the variable does not affect the actual output. You will need to change the evaluation time property on the textfield object.&lt;br /&gt;&lt;br /&gt;To make a computed variable (usually percentage):&lt;br /&gt;&lt;br /&gt;new Double($V{VAR1}.doubleValue() / $V{REPORT_COUNT}.doubleValue())&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6867131997769711242-4269062318692548697?l=devbits.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devbits.blogspot.com/feeds/4269062318692548697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6867131997769711242&amp;postID=4269062318692548697' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/4269062318692548697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/4269062318692548697'/><link rel='alternate' type='text/html' href='http://devbits.blogspot.com/2006/11/ireport-tips.html' title='iReport Tips'/><author><name>Jason Jan Ngo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-sl7vpXS05Qc/AAAAAAAAAAI/AAAAAAAAD3s/2WmY1FT_SE4/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6867131997769711242.post-8251717130846731642</id><published>2006-11-05T21:43:00.000+08:00</published><updated>2006-11-08T10:22:21.153+08:00</updated><title type='text'>Eclipse BIRT 2.1.1 SQL Bug</title><content type='html'>If your Eclipse BIRT report suddenly runs with errors after upgrading to BIRT 2.1.1, check if your SQL statement contains any division expression (i.e. SELECT month, sales / 12 FROM table1). This is a bug in 2.1.1 which was corrected in 2.2. Unfortunately, 2.2 is still a milestone release (not stable).&lt;br /&gt;&lt;br /&gt;As discussed in this &lt;a href="http://dev.eclipse.org/newslists/news.eclipse.birt/msg13823.html"&gt;newsgroup thread&lt;/a&gt;, the solution (until 2.2 is released), is to download rcp-report-designer-2.2.0 and copy the oda-jdbc.jar found in: birt-rcp-report-designer-2_2_0\plugins\org.eclipse.birt.report.data.oda.jdbc_2.2.0.v20061009-0630&lt;br /&gt;&lt;br /&gt;and replace the oda-jdbc.jar found at: eclipse\plugins\org.eclipse.birt.report.data.oda.jdbc_2.1.1.v20060922-1058&lt;br /&gt;&lt;br /&gt;You will need to replace the oda-jdbc.jar in the webviewer if you are using it. I would have upgraded to 2.2M1 if the webviewer was working right.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6867131997769711242-8251717130846731642?l=devbits.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devbits.blogspot.com/feeds/8251717130846731642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6867131997769711242&amp;postID=8251717130846731642' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/8251717130846731642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6867131997769711242/posts/default/8251717130846731642'/><link rel='alternate' type='text/html' href='http://devbits.blogspot.com/2006/11/eclipse-birt-221-sql-bug.html' title='Eclipse BIRT 2.1.1 SQL Bug'/><author><name>Jason Jan Ngo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-sl7vpXS05Qc/AAAAAAAAAAI/AAAAAAAAD3s/2WmY1FT_SE4/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
