<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;D0YGRHw5eip7ImA9WhRbGU4.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158</id><updated>2012-02-11T12:38:45.222+08:00</updated><category term="Development" /><category term="libgdx" /><category term="Nice Simple Clock" /><category term="Website" /><category term="Widget Development" /><category term="Creations" /><category term="Melody Squares" /><category term="OpenFeint" /><category term="Ninja Dodge" /><category term="App Development" /><category term="StyleNote" /><category term="Update" /><category term="Thoughts" /><category term="Android" /><category term="Nice Simple Battery" /><category term="Game Development" /><category term="OpenGL" /><title>nullium</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.nullium.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.nullium.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/nullium" /><feedburner:info uri="nullium" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>nullium</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry gd:etag="W/&quot;CUYERX48fyp7ImA9WhRbGUw.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-3435887637629525949</id><published>2012-02-11T06:31:00.001+08:00</published><updated>2012-02-11T06:31:44.077+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-11T06:31:44.077+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="App Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="Update" /><category scheme="http://www.blogger.com/atom/ns#" term="StyleNote" /><category scheme="http://www.blogger.com/atom/ns#" term="Creations" /><title>StyleNote 1.1.0</title><content type="html">Got some private notes? No problem! &lt;a href="https://market.android.com/details?id=com.nullium.stylenote"&gt;StyleNote &lt;/a&gt;has been updated with a new feature: password lock for notebooks.&lt;br /&gt;
&lt;br /&gt;
To use this feature, first you need to setup a master password in the preference screen. Then, you can make your notebooks private using the "lock a notebook" item under the notebook menu. After a notebook is locked, accessing it would require the password you created earlier. &lt;br /&gt;
&lt;br /&gt;
This feature has been requested by quite a number of users, so I got it implemented in this version. Hope you find it an useful addition. :D&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&amp;nbsp;Version 1.1.0:&lt;br /&gt;
&lt;br /&gt;
- New feature: notebook password-protected lock&lt;br /&gt;
- Fixed a potential error&amp;nbsp;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/905435896722413158-3435887637629525949?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/f4VB4h7SIu8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/3435887637629525949/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2012/02/stylenote-110.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/3435887637629525949?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/3435887637629525949?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/f4VB4h7SIu8/stylenote-110.html" title="StyleNote 1.1.0" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2012/02/stylenote-110.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYCR3Y7cSp7ImA9WhRbE08.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-6003510834533265891</id><published>2012-02-04T11:59:00.001+08:00</published><updated>2012-02-04T12:02:46.809+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-04T12:02:46.809+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Widget Development" /><category scheme="http://www.blogger.com/atom/ns#" term="App Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="Nice Simple Battery" /><category scheme="http://www.blogger.com/atom/ns#" term="Update" /><category scheme="http://www.blogger.com/atom/ns#" term="Creations" /><title>Nice Simple Battery 1.3.0</title><content type="html">&lt;a href="https://market.android.com/details?id=com.nullium.nicesimplebattery"&gt;Nice Simple Battery&lt;/a&gt; 1.3.0 is now available. I have redesigned the battery info page and added many new stuff to it. Now you can easily switch on/off the wi-fi power, open up the GPS setup or the Display setup, and show the battery usage statistics there. They should be handy when your battery is running low.&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/-WmKfQIAxoY0/Tyyt1Be09oI/AAAAAAAAAIo/731dRd2lrGk/s1600/ss2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-WmKfQIAxoY0/Tyyt1Be09oI/AAAAAAAAAIo/731dRd2lrGk/s320/ss2.png" width="192" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
On top of these, I have made some internal changes to reduce the use of memory and CPU in this version. &lt;br /&gt;
&lt;br /&gt;
Enjoy! :D&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
Version 1.3.0:&lt;br /&gt;
&lt;br /&gt;
- New feature: Battery Usage button is added to the battery info screen&lt;br /&gt;
- New feature: Wifi Switch button is added to the battery info screen (new permissions required)&lt;br /&gt;
- New feature: Display Setup button is added to the battery info screen&lt;br /&gt;
- New feature: GPS Setup button is added to the battery info screen&lt;br /&gt;
- Reduced the use of memory and CPU&lt;br /&gt;
- Fixed a potential error&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/905435896722413158-6003510834533265891?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/YEone2QcXlw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/6003510834533265891/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2012/02/nice-simple-battery-130.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/6003510834533265891?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/6003510834533265891?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/YEone2QcXlw/nice-simple-battery-130.html" title="Nice Simple Battery 1.3.0" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-WmKfQIAxoY0/Tyyt1Be09oI/AAAAAAAAAIo/731dRd2lrGk/s72-c/ss2.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2012/02/nice-simple-battery-130.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcAQn45cSp7ImA9WhRbEUw.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-6007514150343463682</id><published>2012-02-02T00:25:00.000+08:00</published><updated>2012-02-02T00:34:03.029+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-02T00:34:03.029+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="App Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Thoughts" /><category scheme="http://www.blogger.com/atom/ns#" term="Nice Simple Clock" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><title>Milestones 10000 and 100</title><content type="html">I am very excited to find that my &lt;a href="https://market.android.com/details?id=com.nullium.nicesimpleclock"&gt;Nice Simple Clock&lt;/a&gt; widget has reached 10000 downloads today on the official Android market. This is my first 10000. :D&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/-XHOStPEfFYw/TylkMHnVaRI/AAAAAAAAAIA/dMn0uyHEnVg/s1600/nicesimpleclock10000downloads.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-XHOStPEfFYw/TylkMHnVaRI/AAAAAAAAAIA/dMn0uyHEnVg/s1600/nicesimpleclock10000downloads.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
On the same day (just now), it also received its 100-th ratings! An average score of 4.7 looks good to me. :D&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-ztdPpWe2wJM/TylkSSEexNI/AAAAAAAAAII/VtpA-7DYJK0/s1600/nicesimpleclock100ratings.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="110" src="http://4.bp.blogspot.com/-ztdPpWe2wJM/TylkSSEexNI/AAAAAAAAAII/VtpA-7DYJK0/s320/nicesimpleclock100ratings.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Again, these are not big numbers to many developers but they mean a lot to me. Thanks so much for your support! :D&lt;br /&gt;
&lt;br /&gt;
This widget app was released at the end of last year's November. After numerous updates, It is now quite close to what I want it to be. Therefore, I will probably put more time on new app / game development and adding features to my other apps. Of course, if I got any new ideas for this clock widget I will definitely keep updating it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/905435896722413158-6007514150343463682?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/AGb37ZziqMQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/6007514150343463682/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2012/02/milestones-10000-and-100.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/6007514150343463682?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/6007514150343463682?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/AGb37ZziqMQ/milestones-10000-and-100.html" title="Milestones 10000 and 100" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-XHOStPEfFYw/TylkMHnVaRI/AAAAAAAAAIA/dMn0uyHEnVg/s72-c/nicesimpleclock10000downloads.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2012/02/milestones-10000-and-100.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cARXg8eSp7ImA9WhRUFE0.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-3790848509054196076</id><published>2012-01-24T18:21:00.000+08:00</published><updated>2012-01-24T18:30:44.671+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-24T18:30:44.671+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Melody Squares" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Game Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Thoughts" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="Creations" /><title>Melody Squares Reached 1000 Downloads</title><content type="html">Statistically, my apps are doing better than my games but yesterday Melody Squares has reached 1000 downloads on the Android Market. So to celebrate I have added 3 new instruments to it. Enjoy!&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
Version 1.0.2:&lt;br /&gt;
&lt;br /&gt;
- Added 3 new instruments: Harmonica, Trumpet, and Percussive Organ
&lt;/blockquote&gt;
On a side note, I am now working on my 3rd game - a math game.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/905435896722413158-3790848509054196076?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/IMnTk02mSfo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/3790848509054196076/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2012/01/melody-squares-reached-1000-downloads.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/3790848509054196076?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/3790848509054196076?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/IMnTk02mSfo/melody-squares-reached-1000-downloads.html" title="Melody Squares Reached 1000 Downloads" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2012/01/melody-squares-reached-1000-downloads.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYER3szeyp7ImA9WhRVGEQ.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-8502646048976265083</id><published>2012-01-18T18:40:00.000+08:00</published><updated>2012-01-18T21:25:06.583+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-18T21:25:06.583+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Widget Development" /><category scheme="http://www.blogger.com/atom/ns#" term="App Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Nice Simple Clock" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="Update" /><category scheme="http://www.blogger.com/atom/ns#" term="Creations" /><title>Nice Simple Clock 1.5.0</title><content type="html">Nice Simple Clock is also updated. Similar to the latest battery widget update, font styles (bold / italic) options are added. Also, you can now precisely adjust both the horizontal and vertical positions of the whole clock in this version.&lt;br /&gt;
&lt;br /&gt;
Hope you like the additional customization power. :D&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/-mMoIIozWWK4/TxakdUrw_0I/AAAAAAAAAH4/PQ8m4exYjsY/s1600/nice_simple_clock_150.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-mMoIIozWWK4/TxakdUrw_0I/AAAAAAAAAH4/PQ8m4exYjsY/s1600/nice_simple_clock_150.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;blockquote class="tr_bq"&gt;
&amp;nbsp;Version 1.5.0:&lt;br /&gt;
&lt;br /&gt;
- New feature: Font style option (bold / italic)&lt;br /&gt;
- New feature: Option for setting the vertical position of the whole clock (under \"Other Settings\")&lt;br /&gt;
- Added a link to StyleNote&lt;br /&gt;
- Improved the widget preview background resizing mechanism in the preference screen&lt;br /&gt;
- Improved the outlook of the sliders in the preference screen for Android tablets&lt;br /&gt;
- Adjusted widget margin space for Android 4.0&lt;br /&gt;
- Changed some of the setting descriptions &lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/905435896722413158-8502646048976265083?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/iaMiQ3Su4Vs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/8502646048976265083/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2012/01/nice-simple-clock-150.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/8502646048976265083?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/8502646048976265083?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/iaMiQ3Su4Vs/nice-simple-clock-150.html" title="Nice Simple Clock 1.5.0" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-mMoIIozWWK4/TxakdUrw_0I/AAAAAAAAAH4/PQ8m4exYjsY/s72-c/nice_simple_clock_150.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2012/01/nice-simple-clock-150.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQARHw5cCp7ImA9WhRVF0s.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-5168903000708817906</id><published>2012-01-17T02:09:00.000+08:00</published><updated>2012-01-17T10:12:25.228+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-17T10:12:25.228+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Widget Development" /><category scheme="http://www.blogger.com/atom/ns#" term="App Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="Nice Simple Battery" /><category scheme="http://www.blogger.com/atom/ns#" term="Update" /><category scheme="http://www.blogger.com/atom/ns#" term="Creations" /><title>Nice Simple Battery 1.2.0</title><content type="html">There are quite a number of changes in this update. In particular, two new options are added: a font style option (bold / italic) and a square background option. There is also a new size (1x2) for the widget which may be useful for those of you who would like to have a long horizontal bar for the battery-meter.&lt;br /&gt;
&lt;br /&gt;
Just to demonstrate some customization possibilities with the new options:&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/-XHQMzmlpRFA/TxRnF95JTpI/AAAAAAAAAHg/YdkuMp21NPc/s1600/nice_simple_battery_120.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-XHQMzmlpRFA/TxRnF95JTpI/AAAAAAAAAHg/YdkuMp21NPc/s1600/nice_simple_battery_120.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Enjoy! :D &lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
Version 1.2.0:&lt;br /&gt;&lt;br /&gt;- New feature: Font style option (bold / italic)&lt;br /&gt;- New feature: Square background option&lt;br /&gt;- Added a new size for the widget (1x2)&lt;br /&gt;- Added a link to StyleNote&lt;br /&gt;- Improved the widget preview background resizing mechanism in the preference screen&lt;br /&gt;- Improved the outlook of the sliders in the preference screen for Android tablets&lt;br /&gt;- Adjusted widget margin space for Android 4.0&lt;br /&gt;- Changed some of the setting descriptions&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/905435896722413158-5168903000708817906?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/Hvo8A-zTGek" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/5168903000708817906/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2012/01/nice-simple-battery-120.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/5168903000708817906?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/5168903000708817906?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/Hvo8A-zTGek/nice-simple-battery-120.html" title="Nice Simple Battery 1.2.0" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-XHQMzmlpRFA/TxRnF95JTpI/AAAAAAAAAHg/YdkuMp21NPc/s72-c/nice_simple_battery_120.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2012/01/nice-simple-battery-120.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUGSXw7fSp7ImA9WhRVFEQ.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-6389862496701255490</id><published>2012-01-14T05:25:00.000+08:00</published><updated>2012-01-14T05:30:28.205+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-14T05:30:28.205+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="App Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="StyleNote" /><category scheme="http://www.blogger.com/atom/ns#" term="Creations" /><title>StyleNote Released</title><content type="html">Finally my 5th Android software &lt;a href="https://market.android.com/details?id=com.nullium.stylenote"&gt;StyleNote&lt;/a&gt; is finished. Different from my previous 2 non-game apps, this one is more than just a widget. It is a "standalone" note editing and organization app with a handy memo widget included. Hope some of you find it useful. :D&lt;br /&gt;
&lt;br /&gt;
After this release, I would now have time to work on some updates of my other apps and games. But before that I shall sleep now - it is kind of late here.&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
Note with rich styles and colors; Organize with notebooks; Jot with memo widgets
&lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
&lt;br /&gt;
- Note editor with rich text styles (bold, italic, underline, and strikethrough)&lt;br /&gt;
- Highly customizable note text sizes and colors&lt;br /&gt;
- Flow view of all your notes: an overview of all notes in one place - more than just a list of note titles&lt;br /&gt;
- Note organization with notebooks / folders&lt;br /&gt;
- Custom note ordering (you can move any note up / down and have your own ordering of notes)&lt;br /&gt;
- Semi-transparent memo widgets for putting your notes on your homescreen&lt;/blockquote&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-sEVkLceo3QU/TxCf-hf5woI/AAAAAAAAAGU/asFH4wCqhzw/s1600/ss1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-sEVkLceo3QU/TxCf-hf5woI/AAAAAAAAAGU/asFH4wCqhzw/s320/ss1.png" width="192" /&gt;&lt;/a&gt;
&lt;a href="http://1.bp.blogspot.com/-dLhpSPAnBys/TxCf_X9yK5I/AAAAAAAAAGY/ErKzitxM6zo/s1600/ss2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-dLhpSPAnBys/TxCf_X9yK5I/AAAAAAAAAGY/ErKzitxM6zo/s320/ss2.png" width="192" /&gt;&lt;/a&gt;
&lt;a href="http://2.bp.blogspot.com/-suM-L6NQPZ0/TxCgAOMTWbI/AAAAAAAAAGk/bDh3yHf0tyI/s1600/ss3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-suM-L6NQPZ0/TxCgAOMTWbI/AAAAAAAAAGk/bDh3yHf0tyI/s320/ss3.png" width="192" /&gt;&lt;/a&gt;
&lt;a href="http://1.bp.blogspot.com/-ytelr3kJtNI/TxCgBc1Hh_I/AAAAAAAAAGo/v9qPk5lmkmI/s1600/ss4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-ytelr3kJtNI/TxCgBc1Hh_I/AAAAAAAAAGo/v9qPk5lmkmI/s320/ss4.png" width="192" /&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/905435896722413158-6389862496701255490?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/cwYVtnc-xmI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/6389862496701255490/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2012/01/stylenote-released.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/6389862496701255490?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/6389862496701255490?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/cwYVtnc-xmI/stylenote-released.html" title="StyleNote Released" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-sEVkLceo3QU/TxCf-hf5woI/AAAAAAAAAGU/asFH4wCqhzw/s72-c/ss1.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://www.nullium.com/2012/01/stylenote-released.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8MQH06fSp7ImA9WhRWEkg.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-6080687136357473095</id><published>2011-12-30T21:45:00.000+08:00</published><updated>2011-12-30T21:48:01.315+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-30T21:48:01.315+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Widget Development" /><category scheme="http://www.blogger.com/atom/ns#" term="App Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Nice Simple Clock" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="Update" /><category scheme="http://www.blogger.com/atom/ns#" term="Creations" /><title>Nice Simple Clock 1.4.0</title><content type="html">Now the users have the ability to move the whole clock horizontally. It is more than just basic left/right alignment - you can actually precisely specify the horizontal position with a slider.&lt;br /&gt;
&lt;br /&gt;
Actually the rounded-edge background option introduced in 1.3.0 and also this clock position adjustment feature are both proposed by the users. So, if you have any idea or request, please just me know via email, this blog, or the newly added &lt;a href="http://twitter.com/nullog"&gt;Twitter&lt;/a&gt; and &lt;a href="http://www.facebook.com/nullium"&gt;Facebook page&lt;/a&gt;. Of course I can't guarantee all requested features will be implemented but I do consider every user suggestion seriously. :D&lt;br /&gt;
&lt;br /&gt;
I received several thank-you emails these few days. Thanks again for you support!&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
Version 1.4.0:&lt;br /&gt;&lt;br /&gt;
- New feature: Option for setting the horizontal position of the whole clock (under "Other Settings")&lt;br /&gt;
- Grouped the time and the am/pm text so that they are centered together&lt;br /&gt;
- Fixed an error which happened when a link was opened directly from the readme&lt;br /&gt;
- Made some minor changes to some of the user interface items&lt;br /&gt;
- Updated the readme with links to the Twitter and Facebook page &lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/905435896722413158-6080687136357473095?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/YIRdWLtJ4D4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/6080687136357473095/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2011/12/nice-simple-clock-140.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/6080687136357473095?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/6080687136357473095?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/YIRdWLtJ4D4/nice-simple-clock-140.html" title="Nice Simple Clock 1.4.0" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2011/12/nice-simple-clock-140.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04CQng_eSp7ImA9WhRWEEo.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-8983372933442497843</id><published>2011-12-28T19:32:00.001+08:00</published><updated>2011-12-28T19:32:43.641+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-28T19:32:43.641+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Website" /><title>Facebook and Twitter</title><content type="html">I have created a &lt;a href="http://www.facebook.com/pages/nullium/197590257001712"&gt;Facebook page&lt;/a&gt; and a &lt;a href="http://twitter.com/#!/nullog"&gt;Twitter microblog&lt;/a&gt; for nullium. They are mainly meant to give users additional ways to receive app development updates and possibly give me feedback there.
&lt;br/&gt;&lt;br/&gt;
On another note, I am now working on my 5th Android project - a nice simple note / memo app. It is going to be a standalone note app which helps you organize notes and also a memo widget with which you can post memos on the homescreen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/905435896722413158-8983372933442497843?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/aWTpovktkGc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/8983372933442497843/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2011/12/facebook-and-twitter.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/8983372933442497843?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/8983372933442497843?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/aWTpovktkGc/facebook-and-twitter.html" title="Facebook and Twitter" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2011/12/facebook-and-twitter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YFQ30yeSp7ImA9WhRWEEg.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-1299260643973445137</id><published>2011-12-26T18:45:00.001+08:00</published><updated>2011-12-28T14:51:52.391+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-28T14:51:52.391+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Widget Development" /><category scheme="http://www.blogger.com/atom/ns#" term="App Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="Nice Simple Battery" /><category scheme="http://www.blogger.com/atom/ns#" term="Update" /><category scheme="http://www.blogger.com/atom/ns#" term="Creations" /><title>Nice Simple Battery 1.1.0</title><content type="html">Just like its clock widget sibling, this battery widget has been updated to have the option of having rounded edges / corners for the background. A circle shape is also possible when the roundness setting is set very high as shown on the screenshot.&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&amp;nbsp;Version 1.1.0:&lt;br /&gt;
- New feature: Background corner roundness setting for rounded edge background&lt;br /&gt;
- Added widget resize support for Android tablets (3.1+) and Android 4.0&lt;br /&gt;
- Fixed a problem that made the widget appeared larger than it was designed (i.e. 1x1) in some devices&lt;/blockquote&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-5oxOr0VVr18/TvhQOnsN9gI/AAAAAAAAAE4/VmO5lSQt60A/s1600/ss4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-5oxOr0VVr18/TvhQOnsN9gI/AAAAAAAAAE4/VmO5lSQt60A/s320/ss4.png" width="192" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/905435896722413158-1299260643973445137?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/Fz6bFSOnyOw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/1299260643973445137/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2011/12/nice-simple-battery-110.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/1299260643973445137?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/1299260643973445137?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/Fz6bFSOnyOw/nice-simple-battery-110.html" title="Nice Simple Battery 1.1.0" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-5oxOr0VVr18/TvhQOnsN9gI/AAAAAAAAAE4/VmO5lSQt60A/s72-c/ss4.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2011/12/nice-simple-battery-110.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YFQ3o7eyp7ImA9WhRWEEg.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-4386224141713988782</id><published>2011-12-26T18:39:00.000+08:00</published><updated>2011-12-28T14:51:52.403+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-28T14:51:52.403+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Widget Development" /><category scheme="http://www.blogger.com/atom/ns#" term="App Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Nice Simple Clock" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="Update" /><category scheme="http://www.blogger.com/atom/ns#" term="Creations" /><title>Nice Simple Clock 1.3.0</title><content type="html">The major addition of this version is the option of rounded edges / corners for the background. The degree of roundness is customizable. An oval shape is also possible when the roundness setting is set very high. (just like the top one on the screenshot.)&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
Version 1.3.0:&lt;br /&gt;
- New feature: Background corner roundness setting for rounded edge background&lt;br /&gt;
- Added widget resize support for Android tablets (3.1+) and Android 4.0&lt;br /&gt;
- Fixed a problem that made the widget appeared larger than it was designed in some devices&lt;/blockquote&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-hnx8ZbPUOeg/TvhNzS5TogI/AAAAAAAAAEs/xNx2YKixUVI/s1600/ss4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-hnx8ZbPUOeg/TvhNzS5TogI/AAAAAAAAAEs/xNx2YKixUVI/s320/ss4.png" width="192" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/905435896722413158-4386224141713988782?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/E00Phg_X7O0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/4386224141713988782/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2011/12/nice-simple-clock-130.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/4386224141713988782?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/4386224141713988782?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/E00Phg_X7O0/nice-simple-clock-130.html" title="Nice Simple Clock 1.3.0" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-hnx8ZbPUOeg/TvhNzS5TogI/AAAAAAAAAEs/xNx2YKixUVI/s72-c/ss4.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2011/12/nice-simple-clock-130.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08BQH86fip7ImA9WhRXFEU.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-9217457365460229141</id><published>2011-12-22T01:24:00.000+08:00</published><updated>2011-12-22T01:50:51.116+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-22T01:50:51.116+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Melody Squares" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Game Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="Creations" /><title>Melody Squares Released</title><content type="html">&lt;a href="https://market.android.com/details?id=com.nullium.melodysquares"&gt;Melody Squares&lt;/a&gt; is my 4th Android project as well as my second game.&lt;br /&gt;
&lt;br /&gt;
It is my belief that games can be more than just entertainment and can actually be quite beneficial - they can train the players a lot of skills. For example, this game trains your memory.&lt;br /&gt;
&lt;br /&gt;
I personally think it is kind of fun to create and play random melodies in the improvise mode too.&lt;br /&gt;
&lt;br /&gt;
Consider this as an early x'mas gift from me. Hope you like it. Enjoy! :D&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
Train your memory or just improvise freely with those colorful melody squares!&lt;br /&gt;
&lt;br /&gt;
It is a game that trains your melody memory, and also a colorful keyboard that can simulate a lot of instruments.&lt;br /&gt;
&lt;br /&gt;
The gameplay is simple: listen to the melody and then repeat it if you can.
 There is also a multiplayer mode where you can play with your friends. 
(Currently, up to 4 players is supported.)&lt;br /&gt;
&lt;br /&gt;
There are also online 
leaderboards so that you can see how good you are among your friends and
 other players in the world. (OpenFeint network)&lt;br /&gt;
&lt;br /&gt;
In the improvise mode, you can create and play your own melody / music simply by dancing your fingers on the Melody Squares.&lt;br /&gt;
&lt;br /&gt;
The Melody Squares can simulate a lot of instruments in different keys, octaves, and scales.&lt;br /&gt;
&lt;br /&gt;
Currently 10 instruments are supported:&lt;br /&gt;
&lt;br /&gt;
- Acoustic Grand Piano&lt;br /&gt;
- Acoustic Guitar (nylon)&lt;br /&gt;
- Overdriven Guitar&lt;br /&gt;
- Violin&lt;br /&gt;
- Church Organ&lt;br /&gt;
- Soprano Sax&lt;br /&gt;
- French Horn&lt;br /&gt;
- Music Box&lt;br /&gt;
- Taiko Drum&lt;br /&gt;
&lt;br /&gt;
More instruments and features will be added if many of you like the game. :)&lt;/blockquote&gt;
&lt;br /&gt;
Screenshots:
&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/-1vb-wG7J1eQ/TvIT2RmFayI/AAAAAAAAADQ/JUmR2Tro1Xs/s1600/ss1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-1vb-wG7J1eQ/TvIT2RmFayI/AAAAAAAAADQ/JUmR2Tro1Xs/s320/ss1.png" width="192" /&gt;&lt;/a&gt;
&lt;a href="http://3.bp.blogspot.com/-kkA91sP05tU/TvIT3M0j83I/AAAAAAAAADU/bvLJqqJYhfw/s1600/ss2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-kkA91sP05tU/TvIT3M0j83I/AAAAAAAAADU/bvLJqqJYhfw/s320/ss2.png" width="192" /&gt;&lt;/a&gt;
&lt;a href="http://2.bp.blogspot.com/-oMkjcZVlqx0/TvIT3S3w6MI/AAAAAAAAADc/hF_czrhvej0/s1600/ss3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-oMkjcZVlqx0/TvIT3S3w6MI/AAAAAAAAADc/hF_czrhvej0/s320/ss3.png" width="192" /&gt;&lt;/a&gt;
&lt;a href="http://4.bp.blogspot.com/-6zwcdT_OtoQ/TvIT4OhuU2I/AAAAAAAAADk/5f3vSNRariY/s1600/ss4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-6zwcdT_OtoQ/TvIT4OhuU2I/AAAAAAAAADk/5f3vSNRariY/s320/ss4.png" width="192" /&gt;&lt;/a&gt;
&lt;a href="http://2.bp.blogspot.com/-eTn0iqto3Ao/TvIT4k6TikI/AAAAAAAAADo/927CMBVKKHc/s1600/ss5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-eTn0iqto3Ao/TvIT4k6TikI/AAAAAAAAADo/927CMBVKKHc/s320/ss5.png" width="192" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Gameplay Video:&lt;br /&gt;&lt;br /&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="360" src="http://www.youtube.com/embed/J5fllkWRv80" width="640"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/905435896722413158-9217457365460229141?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/hameNRkSKgY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/9217457365460229141/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2011/12/melody-squares-released.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/9217457365460229141?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/9217457365460229141?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/hameNRkSKgY/melody-squares-released.html" title="Melody Squares Released" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-1vb-wG7J1eQ/TvIT2RmFayI/AAAAAAAAADQ/JUmR2Tro1Xs/s72-c/ss1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2011/12/melody-squares-released.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMESX4-eip7ImA9WhRQFko.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-3640989186152328320</id><published>2011-12-11T16:21:00.001+08:00</published><updated>2011-12-12T16:26:48.052+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-12T16:26:48.052+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="OpenFeint" /><category scheme="http://www.blogger.com/atom/ns#" term="Ninja Dodge" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Game Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="Update" /><category scheme="http://www.blogger.com/atom/ns#" term="Creations" /><title>Ninja Dodge 1.1.0</title><content type="html">No I didn't forget you, my first Android project - &lt;a href="https://market.android.com/details?id=com.nullium.ninjadodge"&gt;Ninja Dodge&lt;/a&gt;. This is now your turn to get an update. :D&lt;br /&gt;
&lt;br /&gt;
I reckon the &lt;a href="http://openfeint.com/"&gt;OpenFeint&lt;/a&gt; (the social gaming network used for Ninja Dodge's online leaderboards and achievements) login screen that shows when the game is first launched may not be very user-friendly and can be quite slow, so I removed it in this version. However, of course, it will still open when the players want to access the online leaderboards / achievements dashboard screen.&lt;br /&gt;
&lt;br /&gt;
Technically, instead of calling &lt;b&gt;OpenFeint.initialize(...)&lt;/b&gt; at the very beginning of your game, you can use &lt;b&gt;OpenFeint.initializeWithoutLoggingIn(...)&lt;/b&gt; instead and call &lt;b&gt;OpenFeint.login()&lt;/b&gt; only when needed later. That way the login screen will not show until you call &lt;b&gt;OpenFeint.login()&lt;/b&gt; but the OpenFeint library would still be initialized at the start of your game. Extra work has to be done for achievement unlocking and highscore recording in the "offline" mode tho.&lt;br /&gt;
&lt;br /&gt;
I will probably use the same strategy for my future games that use OpenFeint.&lt;br /&gt;
&lt;br /&gt;
OK. Here is the &lt;a href="https://market.android.com/details?id=com.nullium.ninjadodge"&gt;Ninja Dodge&lt;/a&gt; 1.1.0 update changelog:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
Version 1.1.0&lt;br /&gt;
&lt;br /&gt;
- Now the OpenFeint login screen will not show at the first launch of the game. Instead it will only show when the player accesses the online leaderboards and achievements dashboard.&lt;br /&gt;
- Now the achievements unlocked before logging in are recorded.&lt;/blockquote&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/905435896722413158-3640989186152328320?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/_1o0-FzoZwQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/3640989186152328320/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2011/12/ninja-dodge-110.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/3640989186152328320?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/3640989186152328320?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/_1o0-FzoZwQ/ninja-dodge-110.html" title="Ninja Dodge 1.1.0" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2011/12/ninja-dodge-110.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YFQ3o7cSp7ImA9WhRWEEg.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-6696817233925437431</id><published>2011-12-10T20:56:00.001+08:00</published><updated>2011-12-28T14:51:52.409+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-28T14:51:52.409+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Widget Development" /><category scheme="http://www.blogger.com/atom/ns#" term="App Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Nice Simple Clock" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="Update" /><category scheme="http://www.blogger.com/atom/ns#" term="Creations" /><title>Nice Simple Clock 1.2.0</title><content type="html">What a busy yet fruitful day. After releasing my new widget &lt;a href="https://market.android.com/details?id=com.nullium.nicesimplebattery"&gt;Nice Simple Battery&lt;/a&gt; and publishing the &lt;a href="http://chinese.nullium.com/"&gt;Chinese version&lt;/a&gt; of this website, I continued to work on the &lt;a href="https://market.android.com/details?id=com.nullium.nicesimpleclock"&gt;Nice Simple Clock&lt;/a&gt; 1.2.0 update.&lt;br /&gt;
&lt;br /&gt;
A user reported that the clock doesn't update properly. It is strange because it worked on many devices. After some research, I found that it could be caused by some "evil" task killer apps that kill the widget. So to avoid that, the users may try to put the widget to the "exclusion lists" of those task killer apps. On my side, I also did some trick in the widget clock to try to recover itself after being killed by the evil.&lt;br /&gt;
&lt;br /&gt;
If the problem persists, please do not report that in the Android market review / comment section, because as the author I cannot respond there and follow up the case properly. Instead, please email me or leave me a message here. Thanks.&lt;br /&gt;
&lt;br /&gt;
Anyway, here is the 1.2.0 update:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
Version 1.2.0:&lt;br /&gt;
&lt;br /&gt;
- Added a mechanism that tries to recover the widget after getting killed by some "evil" task killer app&lt;br /&gt;
- Added the simplified Chinese interface&lt;br /&gt;
- Added a link to author's Chinese website&lt;br /&gt;
- Added a link to Nice Simple Battery - a simple yet highly-customizable battery widget&lt;br /&gt;
- Fixed a preference screen layout issue on Android 1.5&lt;br /&gt;
- Changed some of the descriptions &lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/905435896722413158-6696817233925437431?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/n9euJ90nX9s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/6696817233925437431/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2011/12/nice-simple-clock-120.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/6696817233925437431?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/6696817233925437431?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/n9euJ90nX9s/nice-simple-clock-120.html" title="Nice Simple Clock 1.2.0" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2011/12/nice-simple-clock-120.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEFQHk7fip7ImA9WhRQFU8.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-5289330458874757117</id><published>2011-12-10T16:55:00.000+08:00</published><updated>2011-12-10T21:43:31.706+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-10T21:43:31.706+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Widget Development" /><category scheme="http://www.blogger.com/atom/ns#" term="App Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="Nice Simple Battery" /><category scheme="http://www.blogger.com/atom/ns#" term="Creations" /><title>Nice Simple Battery Released</title><content type="html">If you like my &lt;a href="https://market.android.com/details?id=com.nullium.nicesimpleclock"&gt;Nice Simple Clock&lt;/a&gt;, you would probably like this &lt;a href="https://market.android.com/details?id=com.nullium.nicesimplebattery"&gt;Nice Simple Battery&lt;/a&gt; widget too. Just like its sister, this is a simple yet highly-customizable widget for your homescreen. Enjoy. :D&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;A simple yet customizable battery widget with colorful icon, text &amp; background.
&lt;br /&gt;
&lt;br /&gt;
Features:
&lt;br /&gt;
&lt;br /&gt;
- Minimalistic style&lt;br /&gt;
- Highly-customizable battery icon shape, color, size, fatness, and outline thickness&lt;br /&gt;
- Colorful semi-transparent background (You have the complete control of the color and transparency)&lt;br /&gt;
- Customizable text size, fatness, and color&lt;br /&gt;
- Live preview of the customized battery widget in the setting screen&lt;br /&gt;
- Possibility to have more than one Nice Simple Battery widgets on the home screen, each with its own customization settings&lt;br /&gt;
- Battery info details screen that opens with a single tap&lt;br /&gt;
- Accurate reading of the battery level that updates once the power level is changed&lt;br /&gt;
- Battery-friendly design&lt;/blockquote&gt;
&lt;br /&gt;
Some screenshots:&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/-V44X5Hzw9eY/TuMffep-6DI/AAAAAAAAAB4/hGuH5nrwiyk/s1600/ss1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-V44X5Hzw9eY/TuMffep-6DI/AAAAAAAAAB4/hGuH5nrwiyk/s1600/ss1.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-JqG5FGstu_k/TuMfhuj5NoI/AAAAAAAAACA/NB-PAbnts7Q/s1600/ss2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-JqG5FGstu_k/TuMfhuj5NoI/AAAAAAAAACA/NB-PAbnts7Q/s1600/ss2.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-_LokxKgcbRg/TuMfiugiN2I/AAAAAAAAACI/UZrD6zDk4y4/s1600/ss3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-_LokxKgcbRg/TuMfiugiN2I/AAAAAAAAACI/UZrD6zDk4y4/s1600/ss3.png" /&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/905435896722413158-5289330458874757117?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/eoiHSpRFn4U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/5289330458874757117/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2011/12/nice-simple-battery-released.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/5289330458874757117?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/5289330458874757117?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/eoiHSpRFn4U/nice-simple-battery-released.html" title="Nice Simple Battery Released" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-V44X5Hzw9eY/TuMffep-6DI/AAAAAAAAAB4/hGuH5nrwiyk/s72-c/ss1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2011/12/nice-simple-battery-released.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YHSXY9cCp7ImA9WhRWEEo.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-4188843889093530805</id><published>2011-12-10T16:43:00.000+08:00</published><updated>2011-12-28T19:18:58.868+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-28T19:18:58.868+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Website" /><title>Website Chinese Version (中文版)</title><content type="html">As you might have noticed, I have added a &lt;a href="http://chinese.nullium.com/"&gt;Chinese Version (中文版)&lt;/a&gt; of this website as I found that a majority of my app users are from Taiwan, Hong Kong, and Mainland China. While I would post about my app releases and other creations to both websites at the same time, some of the technical articles may be posted here (i.e. the English version) only.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/905435896722413158-4188843889093530805?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/ifTes2C4vSA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/4188843889093530805/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2011/12/website-chinese-version.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/4188843889093530805?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/4188843889093530805?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/ifTes2C4vSA/website-chinese-version.html" title="Website Chinese Version (中文版)" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2011/12/website-chinese-version.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ENSX88eSp7ImA9WhRQFEo.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-5531082423036903710</id><published>2011-12-10T01:02:00.001+08:00</published><updated>2011-12-10T08:08:18.171+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-10T08:08:18.171+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="App Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Thoughts" /><category scheme="http://www.blogger.com/atom/ns#" term="Nice Simple Clock" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><title>Nice Simple Clock Hit 1000 Downloads</title><content type="html">&lt;a href="https://market.android.com/details?id=com.nullium.nicesimpleclock"&gt;Nice Simple Clock&lt;/a&gt; just reached 1000 downloads. Hurray! :D&lt;br /&gt;
&lt;br /&gt;
Actually Android Market developer console shows 1100 downloads right now, and Flurry shows 1000 new users. Either way, the 1000 milestone is achieved. Mission accomplished. Good work, solider!&lt;br /&gt;
&lt;br /&gt;
I know, 1000 is not a big number, but it means a lot to me as I started to seriously study and work on Android development not long time ago. This is my first 1000.&lt;br /&gt;
&lt;br /&gt;
Its rating, which is 4.5 with seven 5-stars currently, is also not too bad I think. Thank you for your support.&lt;br /&gt;
&lt;br /&gt;
I am actually quite busy right now as I am finishing my third Android project. Yes, a new member of the "Nice Simple" family will arrive tomorrow. :D&lt;br /&gt;
&lt;br /&gt;
I guess I need to take some rest now and shall publish my work tomorrow morning.&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/-yB24Uv3EZxM/TuJEcBemGEI/AAAAAAAAABk/GvtZYIYCeMs/s1600/nicesimpleclock1000downloads.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-yB24Uv3EZxM/TuJEcBemGEI/AAAAAAAAABk/GvtZYIYCeMs/s320/nicesimpleclock1000downloads.png" width="292" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;i&gt;Update:&lt;/i&gt; Great, the download chart is back on Android Market, let me also capture it. :D&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/-aa_w8WO51zs/TuKiRNkunYI/AAAAAAAAABs/xCMGbKC_lRw/s1600/nicesimpleclock1000downloads-chart.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-aa_w8WO51zs/TuKiRNkunYI/AAAAAAAAABs/xCMGbKC_lRw/s1600/nicesimpleclock1000downloads-chart.png" /&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/905435896722413158-5531082423036903710?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/v2FSOkI09zQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/5531082423036903710/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2011/12/nice-simple-clock-hit-1000-downloads.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/5531082423036903710?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/5531082423036903710?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/v2FSOkI09zQ/nice-simple-clock-hit-1000-downloads.html" title="Nice Simple Clock Hit 1000 Downloads" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-yB24Uv3EZxM/TuJEcBemGEI/AAAAAAAAABk/GvtZYIYCeMs/s72-c/nicesimpleclock1000downloads.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2011/12/nice-simple-clock-hit-1000-downloads.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YFQ3o6fyp7ImA9WhRWEEg.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-8529064323864583209</id><published>2011-11-29T00:50:00.001+08:00</published><updated>2011-12-28T14:51:52.417+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-28T14:51:52.417+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Widget Development" /><category scheme="http://www.blogger.com/atom/ns#" term="App Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Nice Simple Clock" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="Update" /><category scheme="http://www.blogger.com/atom/ns#" term="Creations" /><title>Nice Simple Clock 1.1.0</title><content type="html">I thought my clock widget would probably be buried in the seas of Android apps, but it seems that it is doing better than I expected. I even received a nice warm thank-you comment from Russia (the warmness is not lost in the Google translation), I am very happy with that. :D
&lt;br /&gt;
&lt;br /&gt;
Upon a request from a VIP, I added a new feature to this &lt;a href="https://market.android.com/details?id=com.nullium.nicesimpleclock"&gt;nice simple clock&lt;/a&gt;. And so here we have 1.1.0.
&lt;br /&gt;
&lt;blockquote&gt;
Version 1.1.0:&lt;br /&gt;
&lt;br /&gt;
- New feature: users can choose to launch an installed application (e.g. an alarm clock) when the time area is clicked.&lt;br /&gt;
- Added 2 more formats for the am/pm text&lt;br /&gt;
- Fixed some default option display issue in the Chinese version&lt;br /&gt;
- Fixed some color issue in the readme display&lt;br /&gt;
- Some minor tweaks&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/905435896722413158-8529064323864583209?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/RUcDv-DsuvI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/8529064323864583209/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2011/11/nice-simple-clock-110.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/8529064323864583209?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/8529064323864583209?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/RUcDv-DsuvI/nice-simple-clock-110.html" title="Nice Simple Clock 1.1.0" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2011/11/nice-simple-clock-110.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYERns7fip7ImA9WhRRFU0.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-5357845319893339736</id><published>2011-11-27T00:52:00.001+08:00</published><updated>2011-11-29T01:08:27.506+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-29T01:08:27.506+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Widget Development" /><category scheme="http://www.blogger.com/atom/ns#" term="App Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Nice Simple Clock" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="Creations" /><title>Nice Simple Clock Released</title><content type="html">After releasing my first Android game, &lt;a href="https://market.android.com/details?id=com.nullium.ninjadodge"&gt;Ninja Dodge!&lt;/a&gt;, I have been working on my second Android project - a clock widget.&lt;br /&gt;
&lt;br /&gt;
As my first project was a game, I worked with OpenGL mostly, so I haven't really learned much the "app development" side of Android. For example, I had almost zero practical knowledge about those Android layouts, views, preferences, etc.. To make things "worse" I picked a widget project. That means I needed to learn about the Android widget stuff as well. The whole journey was quite challenging yet fruitful.&lt;br /&gt;
&lt;br /&gt;
There are already millions of clock widgets out there, why do I still make one more? Well, I looked at some of the most popular ones, and I found each of them lacks some features that I would like to have. Of course, I haven't looked at all clock widgets in the market, but I figured that I should make my own so that I have total control of how it looks and works. Basically, I want it to be simple yet highly customizable. It would also definitely "feel right" to me because I make it myself. :D&lt;br /&gt;
&lt;br /&gt;
Anyway, I made it in about 10 days of spare time. I learned a lot indeed. I think I can tell others that I can develop Android programs now as I released a game and an app. :D&lt;br /&gt;
&lt;br /&gt;
So, here it is - a &lt;a href="https://market.android.com/details?id=com.nullium.nicesimpleclock"&gt;Nice Simple Clock&lt;/a&gt;.&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
Features:&lt;br /&gt;
&lt;br /&gt;
- Minimalistic style&lt;br /&gt;
- Colorful semi-transparent background (You have the complete control of the color and transparency)&lt;br /&gt;
- Customizable text size, fatness, and color&lt;br /&gt;
- Customizable time and date formats&lt;br /&gt;
- Live preview of the customized clock in the setting screen&lt;br /&gt;
- Possibility to have more than one Nice Simple Clock widgets on the home screen, each with its own customization settings&lt;br /&gt;
- Different widget sizes support&lt;br /&gt;
- Battery-friendly design&lt;/blockquote&gt;
And here are some screenshots:&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/-aKGhIrbJWIM/TtEemAqU_nI/AAAAAAAAABM/W8ma0ju8Ydo/s1600/ss1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-aKGhIrbJWIM/TtEemAqU_nI/AAAAAAAAABM/W8ma0ju8Ydo/s1600/ss1.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-Nok1rLacO4s/TtEenbHUz7I/AAAAAAAAABU/lr7jqs2crWU/s1600/ss2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-Nok1rLacO4s/TtEenbHUz7I/AAAAAAAAABU/lr7jqs2crWU/s1600/ss2.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-eD5hBjkFUxU/TtEeoIYTbWI/AAAAAAAAABY/6TQs6T2nFBE/s1600/ss3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-eD5hBjkFUxU/TtEeoIYTbWI/AAAAAAAAABY/6TQs6T2nFBE/s1600/ss3.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Yup, I like simplicity and colors. :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/905435896722413158-5357845319893339736?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/CD-Zkz1hdpw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/5357845319893339736/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2011/11/nice-simple-clock-released.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/5357845319893339736?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/5357845319893339736?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/CD-Zkz1hdpw/nice-simple-clock-released.html" title="Nice Simple Clock Released" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-aKGhIrbJWIM/TtEemAqU_nI/AAAAAAAAABM/W8ma0ju8Ydo/s72-c/ss1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2011/11/nice-simple-clock-released.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEBQH89fCp7ImA9WhRSFks.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-7476201741533428874</id><published>2011-11-16T03:54:00.004+08:00</published><updated>2011-11-19T09:04:11.164+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-19T09:04:11.164+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Ninja Dodge" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Game Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="Creations" /><title>Ninja Dodge! Released</title><content type="html">Yes. This is my first Android game. Finally!&lt;br /&gt;
&lt;br /&gt;
It has already been published on the Android market, &lt;strike&gt;but I can't find it except using this &lt;a href="https://market.android.com/details?id=com.nullium.ninjadodge"&gt;direct link&lt;/a&gt; yet.&lt;/strike&gt; &lt;i&gt;You can find it &lt;a href="https://market.android.com/details?id=com.nullium.ninjadodge"&gt;here&lt;/a&gt;.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
I am very excited and also very sleepy right now. I worked so hard to finish the last bits of it, I am so glad that it is finally done. I don't expect much from it tho as this is my first game and as I said it is more like a warm-up. I hope at least the game runs well on most android devices.&lt;br /&gt;
&lt;br /&gt;
Here is the game description followed by a youtube gameplay video I quickly made:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;Challenge and train your reflexes!&lt;br /&gt;
&lt;br /&gt;
The gameplay is simple - try  to dodge the balls and survive as long as you can. As the game  progresses, the balls will get bigger, faster, and more in number!&lt;br /&gt;
&lt;br /&gt;
Are you a failed ninja? a good ninja? or actually a GODLY ninja?&lt;br /&gt;
&lt;br /&gt;
Come take the challenge! Compete with your friends and other competent ninjas all over the world.&lt;br /&gt;
&lt;br /&gt;
Online leaderboards and achievements are supported. (OpenFeint network)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Game modes:&lt;br /&gt;
&lt;br /&gt;
- Normal: Survive as long as you can. Control is simple: tap to move the ninja. Reflexivity is all that matters.&lt;br /&gt;
&lt;br /&gt;
- Extreme: Ready for some extreme ninja challenges? Yes. EXTREME.&lt;br /&gt;
&lt;br /&gt;
- Time Race: Collect as many hearts as you can while dodging those evil balls in 60 seconds.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
More features and unlockable achievements will come. Tell me what you think. :)&lt;br /&gt;
&lt;br /&gt;
Have fun!&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/oU_mAP-5MEo/0.jpg" height="480" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/oU_mAP-5MEo?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;embed width="640" height="480"  src="http://www.youtube.com/v/oU_mAP-5MEo?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
OK I can sleep now. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/905435896722413158-7476201741533428874?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/Ey-TGWQ9UxY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/7476201741533428874/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2011/11/ninja-dodge-released.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/7476201741533428874?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/7476201741533428874?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/Ey-TGWQ9UxY/ninja-dodge-released.html" title="Ninja Dodge! Released" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2011/11/ninja-dodge-released.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8ERnw8cCp7ImA9WhRREUg.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-5129030407234115340</id><published>2011-11-14T09:02:00.006+08:00</published><updated>2011-11-25T00:56:47.278+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-25T00:56:47.278+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="libgdx" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Game Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="OpenGL" /><title>glScissor Fails on HTC Devices</title><content type="html">After I got my &lt;a href="http://www.nullium.com/2011/11/finally-got-real-android-device.html"&gt;first android device&lt;/a&gt;, I immediately downloaded and tested my game with it. The first thing I noticed was that the rendering was weird. In a &lt;a href="http://www.nullium.com/2011/11/game-scaling-and-rendering-inside.html"&gt;previous post&lt;/a&gt;, I talked about rendering within the viewport only with the use of glScissor. It worked well on my emulator and my borrowed android phones, but it didn't work on my own HTC Flyer. The regions outside my viewport were being rendered in a strange way.&lt;br /&gt;
&lt;br /&gt;
After some searching, I found this &lt;a href="http://code.google.com/p/android/issues/detail?id=3047"&gt;issue&lt;/a&gt; has been reported. I don't have swap() in my program but I got the idea. &lt;strike&gt;The following works for me:&lt;/strike&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;strike&gt;glScissor(0, 0, screenW, screenH);&lt;/strike&gt;&lt;br /&gt;
&lt;strike&gt;&lt;br /&gt;
&lt;/strike&gt;&lt;br /&gt;
&lt;strike&gt;//do the rendering here&lt;/strike&gt;&lt;br /&gt;
&lt;strike&gt;&lt;br /&gt;
&lt;/strike&gt;&lt;br /&gt;
&lt;strike&gt;glScissor(viewportX, viewportY, viewportW, viewportH);&lt;/strike&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Update (2011/11/14, noon):&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
It worked on my HTC Flyer but it didn't work on the emulator. When I think about the previous solution and how it worked somehow, I guess I now understand the problem. My guess is, we need to reset the scissor region to the whole screen, perform a complete screen cleaning by glClear, and then set the scissor to our viewport. The new solution, that appears to work for me on both my emulator and HTC Flyer, is:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java"&gt;
glScissor(0, 0, screenW, screenH); 

glClear(GL10.GL_COLOR_BUFFER_BIT);

glScissor(viewportX, viewportY, viewportW, viewportH);

//then do the rendering here
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/905435896722413158-5129030407234115340?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/q8Nyw-vUttI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/5129030407234115340/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2011/11/glscissor-fails-on-htc-devices.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/5129030407234115340?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/5129030407234115340?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/q8Nyw-vUttI/glscissor-fails-on-htc-devices.html" title="glScissor Fails on HTC Devices" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2011/11/glscissor-fails-on-htc-devices.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcDRXsyeCp7ImA9WhRSEkU.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-1607570485058472384</id><published>2011-11-14T08:47:00.001+08:00</published><updated>2011-11-14T22:47:54.590+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-14T22:47:54.590+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Thoughts" /><title>Finally Got a Real Android Device</title><content type="html">My first Android game is basically finished. :) Now I am just doing some testing and final changes, and preparing the materials for publishing to the Android Market.&lt;br /&gt;
&lt;br /&gt;
I didn't have a real Android device to work with, so I had been developing my game with the emulator. The android emulator is great that you can test your program with it in different resolutions easily. However, it is very slow. Therefore, most of the time when I just needed to test the gameplay of my game, I would run the desktop version of my game. It launched and ran much faster. I have to thank libgdx for its convenient cross-platform feature.&lt;br /&gt;
&lt;br /&gt;
Unfortunately when I had to test the android part and some rendering part of my game, I had no choice but to use the emulator. Launching and running my game there were very slow. It wasted me a lot of time. On top of that I had no idea how fast my game would run on real devices. Therefore, I borrowed android phones from my beloved one and a friend of mine from time to time for testing. At times I thought myself was too annoying. :P&lt;br /&gt;
&lt;br /&gt;
I planned to wait for the new Android tablet, like the Kindle Fire and ASUS Transformer Prime, to come out. However, I can't wait any longer - I want to release my first game already and I have to complete the final development steps and testing with a real device. HTC Flyer was very expensive when it first came out, but now it is priced like half of its original price. Sounds like a bargain to me. Its spec is of course a bit out-dated as it has been in the market for half an year. I don't mind as I probably use it for android app development mostly. The not-too-big-not-too-small 7-inch monitor size looks also great. After much comparing with other devices and struggling, I went for it at the end. So far I am quite happy with it. :)&lt;br /&gt;
&lt;br /&gt;
Testing on a real device is really different. In my emulator I used a mouse to play my game but on my HTC Flyer I had to use a touchscreen. It feels so different and controlling the character in my game is a little bit difficult with a touchscreen. I reckon I probably need to change the game control a bit to make it suit better on a touchscreen device.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/905435896722413158-1607570485058472384?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/Kn2llrLcIM0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/1607570485058472384/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2011/11/finally-got-real-android-device.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/1607570485058472384?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/1607570485058472384?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/Kn2llrLcIM0/finally-got-real-android-device.html" title="Finally Got a Real Android Device" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2011/11/finally-got-real-android-device.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4MRH49fip7ImA9WhRREUg.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-1442017263110402986</id><published>2011-11-03T22:42:00.011+08:00</published><updated>2011-11-25T00:59:45.066+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-25T00:59:45.066+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="libgdx" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Game Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="OpenGL" /><title>Game Scaling and Rendering Inside the Viewport Only</title><content type="html">Game graphics took me a lot of time but my first android game is about 70% finished now. As I could only work on it in my spare time, I am pretty happy with the progress. Hopefully I can release it to the world in 1 or 2 weeks of time. Things look a bit amateurish but I learned A LOT in the process. I am quite excited about it.&lt;br /&gt;
&lt;br /&gt;
One thing I don't like developing games for the Android platform is that there are too many different screen sizes. I mean, it is fine to have screens with different sizes / resolutions, but it would be great if they all are of the same aspect ratio. (In this post I calculate aspect ratios by &lt;i&gt;screen height / screen width&lt;/i&gt;.) So we have the common 480 x 800 / ratio 1.67 ones (Desire / Nexus One / Liquid). We have some slightly taller ones 480 x 854  / ratio 1.78 (Milestone / Defy). We also have some small ones: 240 x 320 / ratio 1.33 (Tattoo / Wildfire). And then some more... Well, don't forget the tablets too.&lt;br /&gt;
&lt;br /&gt;
It is good to the customers as they got more choices at different price levels but that is probably a burden to the developers.&lt;br /&gt;
&lt;br /&gt;
For application developers, it means they need to &lt;a href="http://developer.android.com/guide/practices/screens_support.html"&gt;design their GUI layouts carefully&lt;/a&gt; and possibly provide different sets of their GUI graphics for different screen classes. I haven't really looked into the application development side yet, so I am not sure how difficult / trouble that actually is. &lt;br /&gt;
&lt;br /&gt;
For game developers, they first need to make scalable game graphics and then they have to pay attention to the screen aspect ratio issue. &lt;br /&gt;
&lt;br /&gt;
Using OpenGL, what the player see on the screen is basically a portion of the game world through the viewport (think of it as a window). Usually we just fit the viewport to the whole screen. Viewport and screen can have different sizes / resolutions. For example, the viewport can be of size 1000x1000 and your screen size can be of size 1200x600. In that case, your game world objects will look fatter than they actually are because you have more screen pixels for the width than the height.&lt;br /&gt;
&lt;br /&gt;
So there are many different screen aspect ratios and they can be quite  different, for example, it could be 1.33 vs 1.78. If you designed your game graphics for the screens with aspect ratio 1.33, and then you simply scale  all your game graphics for other screens, that is, fitting the same viewport to different screens, then your game graphics may look just fine on the 1.33 screens but  look too tall and weird on those 1.78 screens.&lt;br /&gt;
&lt;br /&gt;
There are two ways of solving this.&lt;br /&gt;
&lt;br /&gt;
The first one is to change the size of the viewport according to the screen size. For example, if the screen size is 480 x 800, then you will set the viewport size to 480 x 800 or 240 x 400 so that their aspect ratios match each other. Therefore, instead of showing taller than usual game world objects in a big screen with an aspect ratio of 1.78, you may just vertically expand your viewport to avoid destroying the apparent aspect ratio of the game world objects. By changing the viewport size according to the screen size, the player will see different sizes of the game world portion with different screens. It might be fine for some. However, this approach doesn't work for those games that require some kind of "fairness". For example, if the players of your game can compete with each others through the internet, then players that can see a larger portion of the game world may have an unfair advantage over the ones that can only see a smaller portion of the game world.&lt;br /&gt;
&lt;br /&gt;
The second approach would be only using a part of the screen for the viewport. For example, if you want the viewport to be always showing a square portion of the game world, then in a 800x480 screen you will only use the 480x480 region in the middle as the viewport, and in a 320x240 screen you will only use the 240x240 region in the middle. You may not be able to use the whole screen for your game but all players will see the same size of the game world portion.&lt;br /&gt;
&lt;br /&gt;
The code of setting up the viewport using the second approach looks something like this with OpenGL or any game library that uses it (I used libgdx myself):&lt;br /&gt;

&lt;pre class="brush: java"&gt;
viewportWidth = screenWidth;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
viewportHeight = screenWidth * fixedViewportAspectRatio;&lt;br /&gt;
if( viewportHeight &amp;gt; screenHeight )&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; viewportHeight = screenHeight;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; viewportWidth = screenHeight * 1 / fixedViewportAspectRatio;&lt;br /&gt;
}&lt;br /&gt;
viewportX = ( screenWidth - viewportWidth ) / 2;&lt;br /&gt;
viewportY = ( screenHeight - viewportHeight ) / 2;&lt;br /&gt;
glViewport( viewportX, viewportY, viewportWidth, viewportHeight );&lt;br /&gt;
glScissor( viewportX, viewportY, viewportWidth, viewportHeight );&lt;br /&gt;
glEnable( GL_SCISSOR_TEST );
&lt;/pre&gt;
At first I didn't have the last two lines. When I ran the game I found that in the Android emulator the regions outside my viewport were being rendered. (interestingly, those regions were not rendered on my desktop) I did some searching with Google, and it turns out that believing that the viewport would clip or scissor is a &lt;a href="http://www.opengl.org/resources/features/KilgardTechniques/oglpitfall/"&gt;common OpenGL pitfall&lt;/a&gt;. It s necessary to use a &lt;a href="http://www.opengl.org/sdk/docs/man/xhtml/glScissor.xml"&gt;scissor box&lt;/a&gt; to make sure nothing got rendered outside the viewport. I added those 2 lines, and now I have a "proper viewport" that keeps my game graphics from getting destroyed by "bad scaling".&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Update 1 (2011/11/04): Fixed some typos - I was too sleepy when I wrote this post last night. :P&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Update 2 (2011/11/14): I found that &lt;/i&gt;&lt;i&gt;&lt;a href="http://www.nullium.com/2011/11/glscissor-fails-on-htc-devices.html"&gt;glScissor falis on HTC devices&lt;/a&gt;. A solution is posted there.&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/905435896722413158-1442017263110402986?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/haZBhxlFFyg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/1442017263110402986/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2011/11/game-scaling-and-rendering-inside.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/1442017263110402986?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/1442017263110402986?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/haZBhxlFFyg/game-scaling-and-rendering-inside.html" title="Game Scaling and Rendering Inside the Viewport Only" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2011/11/game-scaling-and-rendering-inside.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QCQng6fSp7ImA9WhRTE04.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-2712745789540088870</id><published>2011-10-26T10:02:00.003+08:00</published><updated>2011-11-03T22:42:43.615+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-03T22:42:43.615+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="libgdx" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Game Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><title>libgdx</title><content type="html">For my first Android game, I am going to use &lt;a href="http://libgdx.badlogicgames.com/"&gt;libgdx&lt;/a&gt; as the game development framework. I did some research on game development frameworks for Android, and libgdx turns out to be the best for me. It is free, open-source, and cross-platform. With just a few lines of   code addition, your libgdx game can be deployed and run as a desktop   java program, a java applet, or an Android app. The downside of it may be that it is not as "high-level" as other frameworks like the popular &lt;a href="http://www.andengine.org/"&gt;AndEngine&lt;/a&gt;, but I fine with that as I only need basic graphics / audio / physics functions - I actually prefer to do the "high-level" stuff myself. It also requires the developer to have some experience in OpenGL. I'm fine with that as well tho I have to review the OpenGL stuff a bit. :) This &lt;a href="http://www.dustypixels.com/2010/11/17/native-android-ogl-game-libraries-3-of-the-best/"&gt;blog post&lt;/a&gt; has a good summary comparing libgdx, AndEngine, and some others.&lt;br /&gt;
&lt;br /&gt;
I found that the best way (for me) to learn libgdx is to go thru the &lt;a href="http://code.google.com/p/libgdx/wiki/ProjectSetup"&gt;video tutorials&lt;/a&gt;, then the written tutorials (&lt;a href="http://code.google.com/p/libgdx/wiki/ProjectSetup"&gt;the official ones&lt;/a&gt; as well as &lt;a href="http://code.google.com/p/libgdx-users/wiki/TutorialList"&gt;the user-contributed ones&lt;/a&gt;), and finally just download all the &lt;a href="http://libgdx.badlogicgames.com/sourcecode.php"&gt;source code&lt;/a&gt; and study. The source code includes many illustrative examples and demos. Also, in your project, remember to attach the source to the library .jar file so that you can study the library source code to learn what's really going on when needed. It also enables the JavaDoc lookup feature in your IDE. The instructions for attaching source to a .jar file can be found &lt;a href="http://code.google.com/p/libgdx-users/wiki/EnvironmentSetup"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/905435896722413158-2712745789540088870?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/BAJ6qesWaUY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/2712745789540088870/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2011/10/libgdx.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/2712745789540088870?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/2712745789540088870?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/BAJ6qesWaUY/libgdx.html" title="libgdx" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2011/10/libgdx.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIDQX8yeCp7ImA9WhdaFUQ.&quot;"><id>tag:blogger.com,1999:blog-905435896722413158.post-3556593077199907301</id><published>2011-10-24T11:24:00.005+08:00</published><updated>2011-10-26T10:02:50.190+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-26T10:02:50.190+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Thoughts" /><title>Motivation</title><content type="html">I have been distracted by various stuff in the last few months (hmm.. maybe more), but recently I am getting more focused. I want to make a game.&lt;br /&gt;
&lt;br /&gt;
Making game was my inspiration of learning programing. I started to learn it myself from old programming books borrowed from the secondary school library. I was 12. Since then, I learned a lot. C/C++ (MFC / QT / WxWidgets / FLTK), Java, C#, Visual Basic 6, Visual Basic .net, Pascal, Assembly, PHP, Perl, Javascript, HTML, blah blah blah... More than 10 years have passed. I have created many programs: some for work, some for college assignments, some for academic research, some for pure hobby. But how many games did I make? Not many.&lt;br /&gt;
&lt;br /&gt;
Actually the only one that I am still happy with is the &lt;a href="http://en.wikipedia.org/wiki/Risk_%28game%29"&gt;Risk&lt;/a&gt;-like game I made in my first undergraduate year. It was written in C++ with QT in a few (long but exciting) days. It was not really polished but it supported internet mutliplayer. It was so much fun to play the game with my classmates that time. We even planned to keep working on that together. But of course, that plan, like many others of mine, was never executed. Anyway, it was a very satisfying experience to have your friends play the game you created. &lt;br /&gt;
&lt;br /&gt;
Thinking further back, I was a "game designer" before I even learned programming. In primary school, I designed paper board games and group games for all my classmates and myself to play during the recess and, well, sometimes during the lessons. Yes, they were just some silly games, but still they were so much fun back in the days.&lt;br /&gt;
&lt;br /&gt;
I got distracted too much, and wasted too much time. These days I found that I am not doing the things I love. It got me thinking. Maybe I should follow my initial inspiration and passion again?&lt;br /&gt;
&lt;br /&gt;
I know how to code but I am not an artist. Game graphics has always been my obstacle to making games. I blamed that. Now, screw it. Start making games already. Just use simple graphics!&lt;br /&gt;
&lt;br /&gt;
So yes, I am now working on my first game for the Android platform. It is just a small casual time-wasting game and not really original. So it is more like a game-making warm-up for me and I am sure I will learn a lot from it. But it will, hopefully, be the first of many games to come.&lt;br /&gt;
&lt;br /&gt;
Other than games, I shall also create more stuff to feed my "creation hunger". I will post them all here. Hopefully some of them would happen to be useful to someone.&lt;br /&gt;
&lt;br /&gt;
For the blog, while I am in the "focus mode", it will be updated more frequently. :) Showing my work progress to the public can serve as a motivation for myself to work harder.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/905435896722413158-3556593077199907301?l=www.nullium.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nullium/~4/PqeqKnqb1ss" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.nullium.com/feeds/3556593077199907301/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.nullium.com/2011/10/motivation.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/3556593077199907301?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/905435896722413158/posts/default/3556593077199907301?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nullium/~3/PqeqKnqb1ss/motivation.html" title="Motivation" /><author><name>null</name><uri>http://www.blogger.com/profile/12103570108952334715</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.nullium.com/2011/10/motivation.html</feedburner:origLink></entry></feed>

