tag:blogger.com,1999:blog-40428187013957166612024-03-14T03:21:45.234+05:30The Tech EdgeTips on latest technology, software and other ramblings.Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.comBlogger98125tag:blogger.com,1999:blog-4042818701395716661.post-79481230135398365352016-05-31T01:02:00.001+05:302016-05-31T01:02:35.196+05:30Moving OnIf you have noticed less number of posts in this blog, it is mainly because life, travel and work are impacting my time for blogging. In between I devote my free time to keep my Android apps updated. And partly because I now post my blogs at <a href="http://midhunhk.github.io/">http://midhunhk.github.io/</a>, which is where you can find my open source projects.<br />
<br />
I shall try to make some posts here from time to time, but after discovering an easier way to blog. This is described in my first blog post from github.io - <a href="http://midhunhk.github.io/2015/12/30/bye-bye-2015/">http://midhunhk.github.io/2015/12/30/bye-bye-2015/</a>.Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-16805125572841127162015-09-27T22:10:00.000+05:302015-09-27T22:10:02.458+05:30Next Arsenal Match ChallengesNextArsenalMatch was an Android app project that I had done a year back. Dedicated to all Arsenal fans to get the basic information on what and when the next Arsenal match is?<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcynKXTiVrZODAznRrb4xebqcXsPZUbPhNOMm074EFlENAqLkpGH7A1FkfpUt0pFkvC5_wZsuC6ZcMmqp7V7BVR53tp_3raWL6alghdRHXWv1d-P-JTpCseICDqx6drqW2tM4YKy-Ot5U/s1600/feature_graphic_2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="156" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcynKXTiVrZODAznRrb4xebqcXsPZUbPhNOMm074EFlENAqLkpGH7A1FkfpUt0pFkvC5_wZsuC6ZcMmqp7V7BVR53tp_3raWL6alghdRHXWv1d-P-JTpCseICDqx6drqW2tM4YKy-Ot5U/s1600/feature_graphic_2.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">NextArsenalMatch</td></tr>
</tbody></table>
This project was a test attempt into making a live app for Arsenal fans to keep track of the next match. The idea was to use an offline database to store the match details. So for each schedule change, cup exit or cup progress, I had to manually update the database and upload the new build almost every other week as the season progressed.<br />
<br />
It seems that an easier alternative to this app can be found on Google Now itself. One can easily track the upcoming match details by adding your favorite sports team. There is as well the official Arsenal Android app which gives more information on Arsenal.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKj5xYQT1LIjKWGC3LtYgdhyhxW9rzzsE1PZKadZM2a9J5X4c_saB8pcurmYo-5Ovs6WkTAC2TCGBjLWM3K6x1_mrU4D8117DxMXVD1ChTO8brm-luvqN8onBIjt4tx_oRMTDQUtgJXl8/s1600/Screenshot_2015-02-15-20-30-47.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKj5xYQT1LIjKWGC3LtYgdhyhxW9rzzsE1PZKadZM2a9J5X4c_saB8pcurmYo-5Ovs6WkTAC2TCGBjLWM3K6x1_mrU4D8117DxMXVD1ChTO8brm-luvqN8onBIjt4tx_oRMTDQUtgJXl8/s1600/Screenshot_2015-02-15-20-30-47.png" width="180" /></a></div>
<br />
<br />
The benefit of developing this app was the contribution of a CopiedDataBaseHelper file for android projects that can use a db file from assets. This file is part of the AeAppsLib.<br />
<br />
<a href="https://github.com/midhunhk/ae-apps-library/blob/master/library/AeAppsLibrary/src/com/ae/apps/common/db/CopiedDataBaseHelper.java" target="_blank">CopiedDataBaseHelper.java</a><br />
<br />
The canon artwork used for the icon was also created for this project. This is free to use under the Creative Commons Licence.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL4hsEC6wtcLIbEC91dnUt7QiyBlNvthLyEFj1bz2V-mSLBBduTL_6EBdjGzM4mXs073A1gXZAEZz7HwsBA-Xzyl96zipyKkdIUM9k3_071R-r6I1i5x_jwDKbJ-eaL9vMlaiMDbUqxt4/s1600/arsenal_app-icon_512.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL4hsEC6wtcLIbEC91dnUt7QiyBlNvthLyEFj1bz2V-mSLBBduTL_6EBdjGzM4mXs073A1gXZAEZz7HwsBA-Xzyl96zipyKkdIUM9k3_071R-r6I1i5x_jwDKbJ-eaL9vMlaiMDbUqxt4/s320/arsenal_app-icon_512.png" width="320" /></a></div>
<br />
<br />
<br />Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-28216864026338103392015-03-01T12:19:00.002+05:302015-03-01T12:19:53.079+05:30Message Counter 3 - Material Design UpdatesMore design updates come to Message Counter 3. We have implemented the navigation drawer with the sweet animation on the hamburger menu. On popular demand, the Chart is back. The latest update is on a staged rollout.<br />
<br />
<table border="0" style="width: 100%px;"><tbody>
<tr> <td width="50%"><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFn1WndsRj3sClop3gwYOJXGKmedOt7D0ENSoBKlKMAM7c974UzvFfzljmH2URumLNDNydZ74LLwkQHb9w9IcRerqOoio5O88wEiF5Ve-QfTh_G5vRgjbE66782YZ4U_rMmMmUbqD-uDs/s1600/device-2015-02-27-234733_framed.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFn1WndsRj3sClop3gwYOJXGKmedOt7D0ENSoBKlKMAM7c974UzvFfzljmH2URumLNDNydZ74LLwkQHb9w9IcRerqOoio5O88wEiF5Ve-QfTh_G5vRgjbE66782YZ4U_rMmMmUbqD-uDs/s1600/device-2015-02-27-234733_framed.png" height="320" width="189" /></a></div>
<br /></td> <td width="50%"><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGKcNxtdjtirD1fGVFdG_kZlH1WYRLVUovKDtiswB3OFQ6kZ9Qt6etaB3TdY4P9qhtwpv343KOg-few_vOJ3HeN_JKSCRrur-4G4ztNjfKYzOTQMZCN8WgxZPo9WpOwxtw7_lra-PE7w0/s1600/device-2015-02-27-235640_framed.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGKcNxtdjtirD1fGVFdG_kZlH1WYRLVUovKDtiswB3OFQ6kZ9Qt6etaB3TdY4P9qhtwpv343KOg-few_vOJ3HeN_JKSCRrur-4G4ztNjfKYzOTQMZCN8WgxZPo9WpOwxtw7_lra-PE7w0/s1600/device-2015-02-27-235640_framed.png" height="320" width="189" /></a></div>
<br /></td> </tr>
</tbody></table>
<br />
<span style="background-color: white; color: #323232; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.2000007629395px;">You can find the current Message Counter app here: </span><a href="https://play.google.com/store/apps/details?id=com.ae.apps.messagecounter" style="background-color: white; color: #17507c; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.2000007629395px; text-decoration: none;">https://play.google.com/store/apps/details?id=com.ae.apps.messagecounter</a>Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-13111460653098403402015-02-15T19:59:00.001+05:302015-02-15T19:59:47.193+05:30Andorid Error : java.lang.NoSuchMethodError: android.View.getMinimumHeightSo I got reports of the error from my Play Store for my app Message Counter.<br />
<br />
<i><span style="background-color: #f3f3f3; font-family: Courier New, Courier, monospace;">java.lang.NoSuchMethodError: android.View.getMinimumHeight</span></i><br />
<br />
In the new build, I had implemented a custom view that reads the min width and height from the xml declaration. The app was working on all the devices that I test. However I did notice that the reports were made from Android devices Version 4.0 or below. Further digging and I found the below solution.<br />
<br />
<i><span style="background-color: #f3f3f3; font-family: Courier New, Courier, monospace;">getMinimumHeight() is available in API 16+. </span></i><br />
<i><span style="background-color: #f3f3f3; font-family: Courier New, Courier, monospace;">Use android.View.getSuggestedMinimumHeight() instead</span></i><br />
<br />
It appears that <span style="font-family: Courier New, Courier, monospace;"><i style="background-color: #f3f3f3;">ImageView.getMaxHeight()</i></span> is also API 16+. Sadly I could not find any alternatives for this one.<br />
<br />
<a href="https://play.google.com/store/apps/details?id=com.ae.apps.messagecounter">Message Counter</a> on Google PlayMidhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-71691198166910168892014-12-03T00:23:00.001+05:302014-12-03T00:23:32.350+05:30Message Counter 3.0 Beta<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFAsaFJ9pRGdH-M-jX3pKK79i-hjYJaOZ2Z1-Xv8SUx6ZO_ZfVzEAHho9sryAITWCd6EUNg0f6LyATtNFwERngrSpneTAaCW8NkMCOF17StSjXaX0gN9sxozqsCujAAvys03mu6t34Zec/s1600/ic_launcher.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFAsaFJ9pRGdH-M-jX3pKK79i-hjYJaOZ2Z1-Xv8SUx6ZO_ZfVzEAHho9sryAITWCd6EUNg0f6LyATtNFwERngrSpneTAaCW8NkMCOF17StSjXaX0gN9sxozqsCujAAvys03mu6t34Zec/s1600/ic_launcher.png" /></a></div>
<br />
Material Love gets extended to Message Counter, after <a href="http://midhunhk.blogspot.in/2014/11/random-contact-with-material-design-love.html">Random Contact</a>. A fresh coat of paint, a new icon and use of some Material Design Principles is a start for the Beta version. This version is code named "Talisman" which follows "Silversun" and "Silvermoon". The updated code is available in GitHub as well.<br />
<br />
As per Google Play regulations, only members of a test community are able to test these apps. So the community link is <a href="https://plus.google.com/communities/110966372903178356479">https://plus.google.com/communities/110966372903178356479</a>.<br />
<br />
From a technical standpoint, support has been added for AppCompat libraries, replaced ActionBar with a Toolbar. Using Toolbar should extend the experience to users with API less than 11 (Honeycomb). Use of padding, vibrant colors and card view are highlights of this build.<br />
<br />
The first thing you will notice from the screenshot below is the use of Cards and a redesigned Counter screen. This will be the "hero screen" for the app.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvkVbhVm3-MHVDtJG2BL5O0wQb3Ckn6zKx93M7a7pqNtVtWz00l0o0hj4eQbcSojjLwUPNogPDRGhX2uACcCan17FnepuP5Zz_gwzHa3i854IhUDmNCi-QI9yVyOMcymjb6HF6keZ-K0k/s1600/device-2014-11-29-220425.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvkVbhVm3-MHVDtJG2BL5O0wQb3Ckn6zKx93M7a7pqNtVtWz00l0o0hj4eQbcSojjLwUPNogPDRGhX2uACcCan17FnepuP5Zz_gwzHa3i854IhUDmNCi-QI9yVyOMcymjb6HF6keZ-K0k/s1600/device-2014-11-29-220425.png" height="320" width="180" /></a></div>
<br />
Note that this is a work in progress and there may be some bugs or issues and do send them in. You can post them in the community or raise issues in the GitHub page for the project.<br />
<br />
<a href="https://github.com/midhunhk/message-counter">https://github.com/midhunhk/message-counter</a><br />
<br />Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-61852964377365876182014-11-26T21:51:00.001+05:302014-11-26T21:51:41.183+05:30Random Contact with Material Design LoveIt's been a while since my last blog post, I was obviously busy with my job, life and other important things. In between Android released the latest SDK and support libraries for taking material design to lower versions.<br />
<br />
I have been slowly looking at the latest APIs and how to use them in my spare time. Once I was able to get hold of the latest SDK as well as Android Studio, I started to see how I could redesign some apps based on material design principles.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhidg_ONFspTqjdUJIghAPQD8CQI33kgfGvaeDTnuPfxNnH7FbDARu21hlIwQoXUzmPkVrhKJqRmtFHWMlgPueedcppwmj1sdYLt5RavP11fM69GRatqwUckJYHLeQ94dlCwqmfXW35R64/s1600/device-2014-11-26-121514_framed.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhidg_ONFspTqjdUJIghAPQD8CQI33kgfGvaeDTnuPfxNnH7FbDARu21hlIwQoXUzmPkVrhKJqRmtFHWMlgPueedcppwmj1sdYLt5RavP11fM69GRatqwUckJYHLeQ94dlCwqmfXW35R64/s1600/device-2014-11-26-121514_framed.png" height="190" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Random Contact 2.2</td></tr>
</tbody></table>
After doing a sample project that made use of all the new features, I started working on redesigning Random Contact app. Firstly this is a simple app, not too complicated in terms of features as well as low volume of users. Second of all, this app has not been updated in a long while. So a little love was on the cards.<br />
<br />
Take a look at the new design below.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6KnTtTjpNew13TdZt8o58o7-scbw0jMmg5leQxWZS0ADv4qCT7tJl_CiuAb9eCukfr3Drg0h-vVjXfx13zZ4s_rZVfn3dTrq0Tu5KnXuQwZU4HDU-dMuVt5UQRyqERFTWwfiPjM2A86M/s1600/device-2014-11-26-121608_framed.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6KnTtTjpNew13TdZt8o58o7-scbw0jMmg5leQxWZS0ADv4qCT7tJl_CiuAb9eCukfr3Drg0h-vVjXfx13zZ4s_rZVfn3dTrq0Tu5KnXuQwZU4HDU-dMuVt5UQRyqERFTWwfiPjM2A86M/s1600/device-2014-11-26-121608_framed.png" height="320" width="189" /></a></div>
It will be interesting to note that the action bar and some text color change dynamically based on your contact's profile image. This is made possible due to a library called Palette which is part of Android. On a technical side, this app uses the following new features from Android.<br />
<br />
<ul>
<li>Recycler View</li>
<li>Toolbar</li>
<li>Card View</li>
<li>Palette</li>
</ul>
This app represents a fresh UI design with material design principles in mind. You can find the app at the link below. Try it and let me know your feedback.<br />
<br />
<a href="https://play.google.com/store/apps/details?id=com.ae.apps.randomcontact">https://play.google.com/store/apps/details?id=com.ae.apps.randomcontact</a><br />
<br />
The source code for the app is available at github - <a href="https://github.com/midhunhk/random-contact">https://github.com/midhunhk/random-contact</a>Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-90915555705308300382014-07-20T09:37:00.001+05:302014-07-20T09:37:20.093+05:30Redesigning the Message Counter AppWith the developer release of Android L in June and the introduction of Material design, I've been thinking of redesigning the Message Counter app. Taking into account various principles mentioned and how they can be applied to this app, a few initial design thoughts are shared here.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGtHfCGFLeCgsf8AWv_taXF4CjpijUhjcraxM6sW_FbHZdjGP05-q5PlgVsgH3Zrw-Gt1FUIXsep8DWCf6_kMDHpYqRLK617YVGrZyulBnSHUtXgaG1IPt5jRfKiHop6wlZbk3Gc-AkVw/s1600/material-redesign-concepts-02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGtHfCGFLeCgsf8AWv_taXF4CjpijUhjcraxM6sW_FbHZdjGP05-q5PlgVsgH3Zrw-Gt1FUIXsep8DWCf6_kMDHpYqRLK617YVGrZyulBnSHUtXgaG1IPt5jRfKiHop6wlZbk3Gc-AkVw/s1600/material-redesign-concepts-02.png" height="320" width="192" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Variations on the color scheme are given below.</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwVm7XfEGj1LNAtDKtg1yVXqYUGddn2eo5RnOwCU8aCnVIWWqhT6unL24hUuL_fNIQsTrRy_9OLPHmdueDFlrtEtfSeTg6p_7zmpDC8m9LqUINl_8Jq06OrIkIaE4kn6iZRupChryxmKw/s1600/material-redesign-concepts-03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwVm7XfEGj1LNAtDKtg1yVXqYUGddn2eo5RnOwCU8aCnVIWWqhT6unL24hUuL_fNIQsTrRy_9OLPHmdueDFlrtEtfSeTg6p_7zmpDC8m9LqUINl_8Jq06OrIkIaE4kn6iZRupChryxmKw/s1600/material-redesign-concepts-03.png" height="320" width="192" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoFqYt7Klw_Q8nJ_Xgccnld0xTSg6gL33h_WFgrSlvvIke0daoUC_fSI7TXVfHE2uwYatifnWJeXFe0qCgbniCojID46rwYMH5tOsBcXHdBI2_P7Hl0nPrOcVTAHZNyoLZrAR6yvFV8h4/s1600/material-redesign-concepts-04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoFqYt7Klw_Q8nJ_Xgccnld0xTSg6gL33h_WFgrSlvvIke0daoUC_fSI7TXVfHE2uwYatifnWJeXFe0qCgbniCojID46rwYMH5tOsBcXHdBI2_P7Hl0nPrOcVTAHZNyoLZrAR6yvFV8h4/s1600/material-redesign-concepts-04.png" height="320" width="192" /></a></div>
So first impressions and suggestions will be very much helpful.<br />
<br />
You can find the current Message Counter app here: <a href="https://play.google.com/store/apps/details?id=com.ae.apps.messagecounter">https://play.google.com/store/apps/details?id=com.ae.apps.messagecounter</a>Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-11721841207823098112014-07-02T08:36:00.000+05:302015-03-01T12:08:52.924+05:30Material Design WallpapersSo Google made the Android L developer preview last week. In a couple of screenshots, they had shown images based on material design and I thought they would look cool as wallpapers. So I created a couple of artworks based on them. You are free to use them as wallpapers or in other creative ways.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoE8nq1LV_o-on0-OuRaOLpE2CXSr7d-OCJyOywcQW91a2HLq933m4aWUjsvboIXGUt-aRJ-wrhH7_hl-gNzWENrL6YUqmcPLEy_c138uf5V1o2KZZnIsbimJrwFER3KIozsKGdEL7kYU/s1600/Screenshot_2014-06-30-00-12-48.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoE8nq1LV_o-on0-OuRaOLpE2CXSr7d-OCJyOywcQW91a2HLq933m4aWUjsvboIXGUt-aRJ-wrhH7_hl-gNzWENrL6YUqmcPLEy_c138uf5V1o2KZZnIsbimJrwFER3KIozsKGdEL7kYU/s1600/Screenshot_2014-06-30-00-12-48.png" height="320" width="180" /></a></div>
Up above you can see my current home screen, you may be able to spot a widget for <a href="https://play.google.com/store/apps/details?id=com.ae.apps.messagecounter&hl=en" target="_blank">MessageCounter </a>which is in development as well. So without any wait, here are 2 images. Click on them for a full screen version and download to use them as you like.<br />
<br />
The following images are licensed under Creative Commons license. <a href="http://creativecommons.org/licenses/by-sa/3.0/">http://creativecommons.org/licenses/by-sa/3.0/</a>. You are free to use these images subject to the terms of this license.<br />
<br />
<a href="http://creativecommons.org/licenses/by/4.0/" rel="license"><img alt="Creative Commons License" src="https://i.creativecommons.org/l/by/4.0/88x31.png" style="border-width: 0;" /></a><br />
<span href="http://purl.org/dc/dcmitype/StillImage" property="dct:title" rel="dct:type" xmlns:dct="http://purl.org/dc/terms/">Material design Wallpapers</span> by <span property="cc:attributionName" xmlns:cc="http://creativecommons.org/ns#">midhunhk</span> is licensed under a <a href="http://creativecommons.org/licenses/by/4.0/" rel="license">Creative Commons Attribution 4.0 International License</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPNOVgNeYmbpXoYlLGzR3l5dOhRcFlt6jSYmmG8ysWw7VYdAkFscmopfqIhh_0G2jTgoFlknHoXOK6qsmWB-e553108Q6uQr9UqYZA6HBPA_0fyOnoQqQuyQGtHNJTrMknnczSu-kFPKU/s1600/background_01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPNOVgNeYmbpXoYlLGzR3l5dOhRcFlt6jSYmmG8ysWw7VYdAkFscmopfqIhh_0G2jTgoFlknHoXOK6qsmWB-e553108Q6uQr9UqYZA6HBPA_0fyOnoQqQuyQGtHNJTrMknnczSu-kFPKU/s1600/background_01.png" height="200" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqnAupxXSWZgc0m2wTcLW_s2evYuOCR66q6ZdoFjFI_paI_WOVVqJ8W36uhvPsaCgFxN9ntYN5o4bHgvsBhQHWCcuniXudUn2JEoU5Qw9riZCUm2DQ8ryvHzk5T3KCgbzrj7d5CkFeD6g/s1600/background_02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqnAupxXSWZgc0m2wTcLW_s2evYuOCR66q6ZdoFjFI_paI_WOVVqJ8W36uhvPsaCgFxN9ntYN5o4bHgvsBhQHWCcuniXudUn2JEoU5Qw9riZCUm2DQ8ryvHzk5T3KCgbzrj7d5CkFeD6g/s1600/background_02.png" height="200" width="320" /></a></div>
<br />
<b>Update</b>: One more artwork is here. This one is my current wallpaper.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEOzEadeyLiWNgz-YMhClCAwNP6P0cXQINIR4RxlZSSdadRTw5hPoqUGIkyb5WuuJw3nKd4pDO9aDGz5DqfRY9AmAADtQ6RvBxTN2yUmVsuDqsNyD4btoyUH1h7h3lbW_LvQyQZR_FpFI/s1600/background_03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEOzEadeyLiWNgz-YMhClCAwNP6P0cXQINIR4RxlZSSdadRTw5hPoqUGIkyb5WuuJw3nKd4pDO9aDGz5DqfRY9AmAADtQ6RvBxTN2yUmVsuDqsNyD4btoyUH1h7h3lbW_LvQyQZR_FpFI/s1600/background_03.png" height="200" width="320" /></a></div>
<div style="text-align: center;">
<br /></div>
Watch out for more updates.<br />
<br />
<b>Update 2</b>: The complete wallpapers and as well as future updates can be found at : https://plus.google.com/photos/114665288998361746888/albums/6121148941176472961Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-62299793280062297172014-06-08T09:55:00.002+05:302014-06-08T09:55:51.849+05:30RoundedImageView in Android<br />
The contact picture as it appears in Google+ inside a circle was part of the redesigned <a href="https://play.google.com/store/apps/details?id=com.ae.apps.randomcontact" target="_blank">Random Contact app</a> at the play store.<br />
<br />
The solution was to create a custom View "RoundedImageView". Developed with help from stackoverlow.com, the custom view is released as an open source component that anyone can reuse.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFNXuSwgAezdLXJnkDNbVNIKhWMKo7xv2xlgvdJSq10cJYy4xPW1Py09GgaRSjRt4gXoqrLaidqWbj9yzlphDveFtIZkDqW5cGvddb08QAFVy-DKT-usfv8xQTT3gwQUY91ep7BUk2o_I/s1600/rounded_image_view.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFNXuSwgAezdLXJnkDNbVNIKhWMKo7xv2xlgvdJSq10cJYy4xPW1Py09GgaRSjRt4gXoqrLaidqWbj9yzlphDveFtIZkDqW5cGvddb08QAFVy-DKT-usfv8xQTT3gwQUY91ep7BUk2o_I/s1600/rounded_image_view.png" height="153" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">RoundedImageView usd in Random Contact app</td></tr>
</tbody></table>
The RoundedImageView extends android.widget.ImageView and basically applies a circular mask over the image by overriding the onDraw() method.<br />
<br />
This file is a part of the <a href="https://github.com/midhunhk/ae-apps-library" target="_blank">ae-apps-library</a> project.<br />
<br />
Source for RoundedImageView at <a href="https://github.com/midhunhk/ae-apps-library/blob/master/library/AeAppsLibrary/src/com/ae/apps/common/views/RoundedImageView.java" style="background-color: white; color: #1155cc; font-family: arial; font-size: small;" target="_blank">https://github.com/midhunhk/<wbr></wbr>ae-apps-library/blob/master/<wbr></wbr>library/AeAppsLibrary/src/com/<wbr></wbr>ae/apps/common/views/<wbr></wbr>RoundedImageView.java</a>Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-54630096120466585592014-05-24T09:41:00.002+05:302014-05-24T09:41:58.987+05:30PNR Status AppFinally the PNR Status App for Android was released on the <a href="https://play.google.com/store/apps/details?id=com.ae.apps.pnrstatus.v3" target="_blank">Google Play Store</a> a few weeks back. The latest version is 3.2 codenamed Marvin.<br />
<br />
Don't worry about keeping track of your PNR Number or enter it each time you want to check the status. Use this app to store your PNR Number and check the status easily.<br />
You can see a sorted list of ticket message details sent as confirmation for easily accessing your booking information.<br />
<br />
<b>Features</b>:<br />
- Follows Android Design principles<br />
- High quality graphics and icon<br />
- Multiple services to choose from<br />
- Detailed PNR information<br />
- Shows ticket information from IRCTC's SMS<br />
- No Advertisments<br />
- Free<br />
- Open Source<br />
<br />
<b>Screenshots</b><br />
<table border="0" style="width: 100%px;"><tbody>
<tr> <td width="33%"><a href="http://2.bp.blogspot.com/iVJybkCROlRIMLa5W8sK4u8-zPgQuKnCxPI852DxtrFjjPXSvN-LFthQZSInHmqNh-Y=h310-rw" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" src="http://2.bp.blogspot.com/iVJybkCROlRIMLa5W8sK4u8-zPgQuKnCxPI852DxtrFjjPXSvN-LFthQZSInHmqNh-Y=h310-rw" /></a></td> <td width="33%"><a href="http://4.bp.blogspot.com/1icKYz8jNmxylOm3aiA3WIa6cKTn4cJ7ZmvH2F2zptnzZ2CVrFWr6VCvh9JP9R-KCqyY=h900-rw" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="http://4.bp.blogspot.com/1icKYz8jNmxylOm3aiA3WIa6cKTn4cJ7ZmvH2F2zptnzZ2CVrFWr6VCvh9JP9R-KCqyY=h900-rw" height="320" width="192" /></a></td> <td width="33%"><div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/1liB2fxvdAekg26aIwxLhE7aNnfGsxoirivnoT3UhDKgh6IqZew0oR3h9_FqdpEdjtmG=h900-rw" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/1liB2fxvdAekg26aIwxLhE7aNnfGsxoirivnoT3UhDKgh6IqZew0oR3h9_FqdpEdjtmG=h900-rw" height="320" width="192" /></a></div>
</td> </tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/iVJybkCROlRIMLa5W8sK4u8-zPgQuKnCxPI852DxtrFjjPXSvN-LFthQZSInHmqNh-Y=h310-rw" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br />
</a> </div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Did I mention that this app is designed for tablets as well?<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/K5ZUU-6LVwOTCxYWLWXjHIvKvOI9c_VNoQHO0_18Jq9M49bzJB2-2LL-PUQi3NlSXDQ=h900-rw" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/K5ZUU-6LVwOTCxYWLWXjHIvKvOI9c_VNoQHO0_18Jq9M49bzJB2-2LL-PUQi3NlSXDQ=h900-rw" height="250" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">On a 7 Inch Tablet</td></tr>
</tbody></table>
<br />
<br />
This application is open source and free to use. The source code can be found at the following GitHub location. <a href="https://github.com/midhunhk/pnrstatusapp">https://github.com/midhunhk/pnrstatusapp</a> . Feel free to browse and<br />
<br />
Find out more app details from <a href="https://www.facebook.com/AeAppLabs">https://www.facebook.com/AeAppLabs</a><br />
Play Store Link: <a href="https://play.google.com/store/apps/details?id=com.ae.apps.pnrstatus.v3">https://play.google.com/store/apps/details?id=com.ae.apps.pnrstatus.v3</a>Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com1tag:blogger.com,1999:blog-4042818701395716661.post-91052379459966582002014-01-17T21:04:00.001+05:302014-01-17T21:04:20.922+05:30Retracing the travel in Dan Brown's Inferno - Part 1<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzWwKJAiFg3ukiEGrPVV7aO7rOQwby57yFkH2L8POFvsYs_bCWcMOgM0D_C0sXFEFB2ghIerS_pBZ0t0xA-E3eCxZNtA1nVo1mRL88BLIxnqNwuoXDAoCYsrtLlaLBSLj0CIFsx7swLyc/s1600/inferno_cover.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzWwKJAiFg3ukiEGrPVV7aO7rOQwby57yFkH2L8POFvsYs_bCWcMOgM0D_C0sXFEFB2ghIerS_pBZ0t0xA-E3eCxZNtA1nVo1mRL88BLIxnqNwuoXDAoCYsrtLlaLBSLj0CIFsx7swLyc/s1600/inferno_cover.jpg" /></a></div>
While reading Dan Brown's novel <a href="http://www.amazon.in/Inferno-Dan-Brown/dp/0593072499?tag=googinhydr1673-21" target="_blank">Inferno</a>, I had the habit of checking the places and locations mentioned in the novel as the characters traveled around the beautiful city of Florence.<br />
<br />
Having played Assassins Creed 2, which is also set in Florence reminded me of places that I had seen and ran (albeit, set centuries ago).<br />
<br />
After completing the book, I learned about the <a href="https://mapsengine.google.com/map/" target="_blank">Google Map Engine</a>. An app where we can create custom maps. So I began this project of marking the places in the order that the characters took.<br />
<br />
Because of time constraints and other commitments, I couldn't complete and share the Part 1 soon enough. Anyways, better late than never.<br />
<br />
Part 1 of this project is completed and shared below. Have a look at it if you intend to read it. I will continue to work on Part 2.<br />
<br />
<br />
<a href="https://mapsengine.google.com/map/edit?authuser=0&hl=en&mid=zqsMFuWb0NmE.koenj4cBUSA4">https://mapsengine.google.com/map/edit?authuser=0&hl=en&mid=zqsMFuWb0NmE.koenj4cBUSA4</a><br />
<div>
<br /></div>
Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-50506700506759600762013-12-12T18:38:00.000+05:302013-12-12T18:38:31.427+05:30Disable Dashboard on Start Up in Spring Tool Suite<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik-nGZQyYbbK6AnfMwjWmpq9lqEA3LuR5wJvjjUMVM2LNJDPxuxaLL1u2ICQ0dUXEtl71Q0z9h17a0aL7KSEYpcLEDCufuTm8RumhCzj_BDa3c6D_MQLz0BMZrrCPVfwbq7oblfKVBYYM/s1600/sts_splash.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik-nGZQyYbbK6AnfMwjWmpq9lqEA3LuR5wJvjjUMVM2LNJDPxuxaLL1u2ICQ0dUXEtl71Q0z9h17a0aL7KSEYpcLEDCufuTm8RumhCzj_BDa3c6D_MQLz0BMZrrCPVfwbq7oblfKVBYYM/s1600/sts_splash.png" /></a></div>
<br />
If you are a new user to the Eclipse based IDE Spring Tool Suite (<a href="http://spring.io/tools" target="_blank">STS</a>). If like me, you are getting annoyed when the Dashboard opens up every time the application is started, this is how you can disable it.<br />
<br />
After some research and some searching through the preferences, I finally found out how to get it done on the latest version of STS (3.4.0 the one I am using now). Apparently they moved this around from previous versions.<br />
<br />
In the STS application, navigate to "Window -> Preferences", and start typing "Dash" inside the text box located at the top left. Click on the "Dashboard" item and uncheck the "Show DashBoard On Startup" item on the right. Click "Apply" and "OK".<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvADBoZfEmZ2MQyCIB3ut79KC_pzaxs3Whz7ufFYnZKZfrZAhFOBPdmGZuF5OsIkwjZTrze7-dlfhqY-aEPgB27Mf2_tAihAKgDkuQ5TCJnX-MZnHf7tFEj7T6kIoudvpu-I8838icdrc/s1600/sts_dashboard.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvADBoZfEmZ2MQyCIB3ut79KC_pzaxs3Whz7ufFYnZKZfrZAhFOBPdmGZuF5OsIkwjZTrze7-dlfhqY-aEPgB27Mf2_tAihAKgDkuQ5TCJnX-MZnHf7tFEj7T6kIoudvpu-I8838icdrc/s1600/sts_dashboard.png" /></a></div>
<br />
You can look at the above image to see how the preference screen for this will look like. Once done, the DashBoard should be gone for ever, unless you want it back in which case you can bring it back by checking the same option in the Preference.<br />
<br />
<br />
<br />Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-87108984450806959022013-11-21T18:06:00.000+05:302013-11-22T08:42:10.717+05:30Design evolution of Random Contact app<b>Background</b><br />
Just this week I published an app on Google Play Store called Random Contact. It all started when I was learning the Android Contacts API. I wanted to make an app myself that made use of the Contacts API so that I could learn and see it working in a real environment. Especially as I had a <a href="http://en.wikipedia.org/wiki/Nexus_S" target="_blank">Google Nexus S</a>, it was even more an incentive to develop and experiment my own apps and see them running on my phone.<br />
<br />
<b>Random Contact</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/sk1dQSj4Xx7jXIW55ux394fnm1k4r9ecZtUANUEHiDjxL1UlsLvsy66BSUVPCozGym5b=w300-rw" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="http://3.bp.blogspot.com/sk1dQSj4Xx7jXIW55ux394fnm1k4r9ecZtUANUEHiDjxL1UlsLvsy66BSUVPCozGym5b=w300-rw" width="180" /></a></div>
So that was the reason for developing this app. There seemed no point in making another contacts app as the stock(default) one was very good and many third party apps available. So I thought of making an app that shows a random contact details. It has a surprise element to it.<br />
<br />
Warning: <i>This app is not meant to be a replacement for your Contacts / Dialer app. This is a fun app with no real use. The main reason this app is considered as part of "Useless Apps" internally</i>.<br />
<br />
The development started with an old version of Android API (2.2 to be precise), so I wasn't keeping in mind the latest design guidelines and the result was an ugly looking app with very little user experience<br />
<br />
<b>Redesign and Rewrite</b><br />
After the Holo design came out solid Android Design guidelines became the De-facto standard, I went about researching on how to create a better User experience (UX) keeping in mind that this app has no special value to a user.<br />
<br />
After going through brainstorming and multiple drawings on paper, came up with the new design. And in keeping with the time, rewrote most of the code against Android 4.3 APIs and is now available on the Play Store. Along the way some optimizations and new features were added.<br />
<br />
Few people might have seen the original app, so below you can find a screen shot of initial screen, design on paper and the present day app.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-L2rHpmf_if8/Uo2CoGYtzFI/AAAAAAAABg0/4tOVsy6vWLA/s1600/random_contact_design_evolution.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="339" src="http://4.bp.blogspot.com/-L2rHpmf_if8/Uo2CoGYtzFI/AAAAAAAABg0/4tOVsy6vWLA/s640/random_contact_design_evolution.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Left : First version, Middle : redesign on paper, Right : Completely redesigned UI</td></tr>
</tbody></table>
<br />
<br />
<b>Apps Library</b><br />
I will touch on this in a future post, but one of the side effects of development this app was an Android library app that I created which makes use of mostly my research and studies. This will be an ever growing library which is open sourced and publicly available on <a href="https://github.com/midhunhk/ae-apps-library" target="_blank">GitHub</a>. Any new Android projects can make use of this library to achieve similar functionality.<br />
<br />
<b>Try out the app</b><br />
So if you are still interested in checking out this app, follow the link below to get it from the Play Store.<a href="https://play.google.com/store/apps/details?id=com.ae.apps.randomcontact"><span style="color: black;"><br /></span>
<img alt="Get it on Google Play" src="https://developer.android.com/images/brand/en_generic_rgb_wo_45.png" /><br />
</a>Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-83080666954570261142013-11-06T17:41:00.002+05:302013-11-06T17:41:49.880+05:30RandomContact - New App Announcement<br />
After being in an internal Proof of Concept project, one more Android app will soon be seen by the external world. I was learning to work with the <a href="http://developer.android.com/reference/android/provider/ContactsContract.html" target="_blank">ContactsContacts API</a>. This API is a contract between the Contacts provider and applications.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj6RrHR7iuKOFpqAEixfCqrTCtr5bOTvbVVRDUyhZzOwN51vtmD50dNLeselnmkbVhoIaUk4DBpV_NoanYC0xAIQYWsmVFXq_lmGht3kinSH2UXjfEn9-PXQhaCkuF8-372jBXtNudia8/s1600/ae-apps-library_on_github.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj6RrHR7iuKOFpqAEixfCqrTCtr5bOTvbVVRDUyhZzOwN51vtmD50dNLeselnmkbVhoIaUk4DBpV_NoanYC0xAIQYWsmVFXq_lmGht3kinSH2UXjfEn9-PXQhaCkuF8-372jBXtNudia8/s1600/ae-apps-library_on_github.png" /></a></div>
<br />
Most of the code related to accessing the API is done as part of a library project called <a href="https://github.com/midhunhk/ae-apps-library" target="_blank">aeappslibrary</a>, the code for which is open source and already available in GitHub. This library can be reused by other projects to work with the API. There have been hours spent on studying the API while developing this library. <a href="http://midhunhk.blogspot.com/2013/05/message-counter-for-android.html" target="_blank">MessageCounter</a> is an application that already utilizes this library.<br />
<br />
It was near the end of 2012 that I started learning about the Android's ContactContract API. In order to learn the various parts of the API, I decided to create an Android App. That turned out to be a simple app called Random Contact. The UI was very basic and not very attractive - the sole reason it has lived its life as an internal app.<br />
<br />
The Random Contact application shows you a Contact randomly picked from your contacts list. It will list all the contact numbers and easily allow you to call or text them. Other details that we can get using the API are the times that person has been contacted and the last date of contact. While you may think these features as boring, we think there could be fun uses.<br />
<br />
When can you see the app live? Work on version 2, a completely redesigned version, is on steroids for the past few days. As much as the challenges are exciting, I shall provide here, for the first time, an internal road map for any app's development. A Beta release on Google Play is not too distant as of now.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ_Eljkk_6osuibtybJQgWLpLcanVqaKY6l3GC7Qr-f1RF1rW6WTnkj9YCu5twvlIDipOOhxs-lerijMKFw2W_TBVnZN7MiDc6iQ7VPWLrNIizMHC4tk7meAAM6YU3VK1MCP513t1EpJo/s1600/random_contact_v2_roadmap.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ_Eljkk_6osuibtybJQgWLpLcanVqaKY6l3GC7Qr-f1RF1rW6WTnkj9YCu5twvlIDipOOhxs-lerijMKFw2W_TBVnZN7MiDc6iQ7VPWLrNIizMHC4tk7meAAM6YU3VK1MCP513t1EpJo/s1600/random_contact_v2_roadmap.png" /></a></div>
<br />
<br />
The source code for this app is expected to be released under Apache Licence Version 2.0 on <a href="https://github.com/midhunhk" target="_blank">GitHub</a>.<br />
<br />
With the supported features as explained earlier, I would appreciate to see some rough drawings on how you expect the UX for the app.<br />
Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-64343429247588343122013-10-23T14:42:00.000+05:302013-10-23T14:42:19.510+05:30Age of Logo RedesignThe past few months have seen some slight to major redesigns of some major websites. The fact that these have come months apart maybe a coincidence.<br />
<br />
<b>Google Logo</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSAiM95cty9Z9U2ZEU_P1HTFOC4rnL-LGsT0vf7lmfdWhIbv-K_iQGv1VIDzhWuXrKpRH6-raRAklkxCYsdBgTAZ-tB3YQIxrg0DJvE2claN396LIcvakzmUksAAgsf6K5N6T1I3k18Gc/s1600/google_logos.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSAiM95cty9Z9U2ZEU_P1HTFOC4rnL-LGsT0vf7lmfdWhIbv-K_iQGv1VIDzhWuXrKpRH6-raRAklkxCYsdBgTAZ-tB3YQIxrg0DJvE2claN396LIcvakzmUksAAgsf6K5N6T1I3k18Gc/s1600/google_logos.png" /></a></div>
<br />
The new <a href="http://www.google.com/" target="_blank">Google</a> design including logo was mentioned in this post <a href="http://midhunhk.blogspot.com/2013/09/new-google-logo-and-navigation-bar.html">earlier</a>. Above you can see the old logo on the left with the updated flat style logo to its right. The change was from a logo with 3D look with shadow to plain and flat look.<br />
<br />
<b>Yahoo Logo</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9rfkrYn7OUUUAcpcPYgeA0_OdHEPE1qt3G8VSQMJVU4Kh02_-7eW2SCIdMyjlkXoAk90X35X-mZQ-3asZCVPIkQBcS9998pJACjLJp-AWXY7iGUys8enlgGlntNSM_WFPXaf6yGjcQEM/s1600/yahoo_logos.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9rfkrYn7OUUUAcpcPYgeA0_OdHEPE1qt3G8VSQMJVU4Kh02_-7eW2SCIdMyjlkXoAk90X35X-mZQ-3asZCVPIkQBcS9998pJACjLJp-AWXY7iGUys8enlgGlntNSM_WFPXaf6yGjcQEM/s1600/yahoo_logos.png" /></a></div>
<br />
It all started when <a href="http://www.yahoo.com/" target="_blank">Yahoo!</a> CEO Marissa Mayer announced a "<a href="http://www.yahoo.com/dailylogo" target="_blank">30 days of Change</a>", with a new logo for 30 days. At the end of which Yahoo! released their new logo - the same Yahoo and an exclamation mark as shown above. It can easily be noted that the logo has slimmed down and they have used a <i>sans serif</i> font instead. The old logo looked funky, but the new one sporting a darker purple has an elegant look. You can also see it has a slight 3D look and feel to it.<br />
<br />
<b>Bing Logo</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtJcyq4n4RaFP014Okkuppp7kX5fb5WfgOse48VRHimCv4rMZfNpYeoyp2lupRrkPiYUvsjQ4xjiP2_N3BsEltPEJvRHZ8QgmOn-ADnGUqh3EcBdxRoQnB8cKulr1clYXPibMlZAoOXvk/s1600/bing_logos.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtJcyq4n4RaFP014Okkuppp7kX5fb5WfgOse48VRHimCv4rMZfNpYeoyp2lupRrkPiYUvsjQ4xjiP2_N3BsEltPEJvRHZ8QgmOn-ADnGUqh3EcBdxRoQnB8cKulr1clYXPibMlZAoOXvk/s1600/bing_logos.png" /></a></div>
<br />
<a href="http://www.bing.com/" target="_blank">Bing </a>- Microsoft's answer to Google was the last to do the overhaul. But the change to Bing is more vivid. They have a new logo, which looks like Google Drive's. Then the font has been simplified to follow the new Microsoft logo. And at last it is all golden color now from a blue shade.<br />
<br />
In a space of few months, some major websites have tinkered with their logos. What do you think of these changes?Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-53058055532246507702013-10-16T08:38:00.001+05:302013-10-16T08:38:07.428+05:30Tips on Improving Productivity with Eclipse<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAb5FoAqGTvtbIo33WaW8vd78m_KA2kauRekn56lf8CxdRkxbJEFXpCs-eW95fnwHGE-ZqosN3YExHrruckOfe68qiWaiHj-hOHki_pLMY-4fUyirQEjW2VvHMGGXJQESPpj4AnXVXPMeS/s473/eclipse_kepler.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAb5FoAqGTvtbIo33WaW8vd78m_KA2kauRekn56lf8CxdRkxbJEFXpCs-eW95fnwHGE-ZqosN3YExHrruckOfe68qiWaiHj-hOHki_pLMY-4fUyirQEjW2VvHMGGXJQESPpj4AnXVXPMeS/s400/eclipse_kepler.jpg" width="400" /></a></div>
<br />
For many tasks Eclipse IDE provides a key board shortcut of some type. When working with medium to large projects, I find using keyboard shortcuts to be a significant time saver. They let me find or get things done very fast. Compared to using a menu option or using the mouse, key board shortcuts can improve one's productivity.<br />
<br />
<table border="0" cellpadding="5"><tbody>
<tr style="font-weight: bold;"><td>ShortCut</td><td>What it Does</td> </tr>
<tr><td>F3</td><td>Open Declaration</td></tr>
<tr><td>CTRL + SPACE</td><td>Auto Complete</td></tr>
<tr><td>CTRL + D</td><td>Delete current Line</td></tr>
<tr><td>CTRL + G</td><td>Search for declaration in Workspace (after highligting a word)</td></tr>
<tr><td>CTRL + L</td><td>Jump to Line Number</td></tr>
<tr><td>CTRL + O</td><td>Quick Code Outline/ Structure</td></tr>
<tr><td>CTRL + T</td><td>Open Heirarchy</td></tr>
<tr><td>CTRL + E</td><td>Swicth Editor</td></tr>
<tr><td>CTRL + Q</td><td>Last Edit Location</td></tr>
<tr><td>CTRL + SHIFT + R</td><td>Open Resource</td></tr>
<tr><td>CTRL + SHIFT + I</td><td>Inspect (Evaluate an expression while in debug mode)</td></tr>
<tr><td>CTRL + SHIFT + P</td><td>Find matching brace</td></tr>
<tr><td>CTRL + SHIFT + L</td><td>Key Assist</td></tr>
</tbody></table>
<br />
<b>Bonus Tip</b><br />
Double clicking to the immediate right of an opening brace selects all the code between two braces.<br />
<br />
Feel free to add any more shortcuts in the comments.Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-49954107203637605902013-10-12T16:56:00.001+05:302013-10-12T16:56:39.078+05:30Aim of Google redesignThis post is my speculation on the aim for the latest Google navigation redesign.<br />
<br />
The ugly black navigation bar at the top of the Google Home Page was pretty difficult to use with touch devices like smart phones or tablets. So this could be a reason for coming up with the App Launcher.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGpEkwYt06h3Nymg66wwzSpOj09oYv4kW0_GvGGhuNursj7XJYGqYONtGw1jfaruVkJqDAWDqMoCyisIH2xtUvbzL3O_l1QM8jm0fV7z0-w72fDt0nHzy4rCb7jdbmcRFtmdJppZXN2Jo/s1600/google_home.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="308" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGpEkwYt06h3Nymg66wwzSpOj09oYv4kW0_GvGGhuNursj7XJYGqYONtGw1jfaruVkJqDAWDqMoCyisIH2xtUvbzL3O_l1QM8jm0fV7z0-w72fDt0nHzy4rCb7jdbmcRFtmdJppZXN2Jo/s640/google_home.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
With the App Launcher, it becomes easy with a touch based interface to go to that application faster.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Its true that most of the buttons in Google applications are bigger and space around them so as to be easy to touch without having to worry about clicking on something else.</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha8gVrvOwPwPW86QgRSMuky_Ef2YDqC0LT17gveu5o1XOzdLZAUUcivhi6pfT22a2_mTzv-QvvNl_ovTmbgelxzLxypFly41D-_r5hQKBYnXH2VeW7jt1m5-tyb_Tom53d5Z8jikSe0HI/s1600/blogger_buttons.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha8gVrvOwPwPW86QgRSMuky_Ef2YDqC0LT17gveu5o1XOzdLZAUUcivhi6pfT22a2_mTzv-QvvNl_ovTmbgelxzLxypFly41D-_r5hQKBYnXH2VeW7jt1m5-tyb_Tom53d5Z8jikSe0HI/s1600/blogger_buttons.PNG" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Buttons in Blogger</td></tr>
</tbody></table>
One more thing that I would like to add is the tabs in Google Image search, although they are just text the extra spacing between lets the user choose what they really want.<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfTRsQvwsoA_Q-6jv1CTUaoDQ2KBPxZMQgXSF0U4lWfuf2C4Al8EC8-b5d4wE_4e0XnxyTK2Yf5PEk_iB9GdcuXYZc9D_kD-BifS4WrlrWnwicF-YFvv2lnSDZg_VIz4rAgJhaAR55bCY/s1600/google_images_tab.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="46" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfTRsQvwsoA_Q-6jv1CTUaoDQ2KBPxZMQgXSF0U4lWfuf2C4Al8EC8-b5d4wE_4e0XnxyTK2Yf5PEk_iB9GdcuXYZc9D_kD-BifS4WrlrWnwicF-YFvv2lnSDZg_VIz4rAgJhaAR55bCY/s320/google_images_tab.png" width="320" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
If you have any other views, feel free to add in the comments.<br /><div class="separator" style="clear: both; text-align: left;">
<br /></div>
</div>
Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-54274029160155457462013-09-22T09:02:00.001+05:302013-09-22T09:02:16.932+05:30New Google Logo and Navigation barGoogle is starting to rollout a new logo and navigation bar.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7lxxsfSH1qnxcCkdt3yHHE18in3WYdPPVpgLwYk0fAKpV_WfAxs-QIqAq_zKgflqGUG_BSwKjSKbO-3tCyLcrSkKc-QycwOqDzQKtk3yGdeRdICz3OuXSKrFgv2U6pG_18ufhTvrY6Kc/s1600/new_logo.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="133" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7lxxsfSH1qnxcCkdt3yHHE18in3WYdPPVpgLwYk0fAKpV_WfAxs-QIqAq_zKgflqGUG_BSwKjSKbO-3tCyLcrSkKc-QycwOqDzQKtk3yGdeRdICz3OuXSKrFgv2U6pG_18ufhTvrY6Kc/s320/new_logo.PNG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">New Flat Google Logo</td></tr>
</tbody></table>
<br />
<br />
Ironically the new logo looks flat and simple - following the iOS7 paradigm.The previous logo is shown below. For now some people might see the old logo, but I guess they are rolling the changes slowly, probably looking for early feedback from the users.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIk-nOplhcViHIX246Bla6numm39FN6AEwhpt_jir9siA635UmFxrCWCBJapABeK3OomSiWNDDcE5gZpEB781JO-D3mVMG6YCawi6lHJPqzhuASdWbsM0BIqM5SLwyKvcOmYqE4V4_fRc/s1600/old_logo.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="121" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIk-nOplhcViHIX246Bla6numm39FN6AEwhpt_jir9siA635UmFxrCWCBJapABeK3OomSiWNDDcE5gZpEB781JO-D3mVMG6YCawi6lHJPqzhuASdWbsM0BIqM5SLwyKvcOmYqE4V4_fRc/s320/old_logo.PNG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The old logo</td></tr>
</tbody></table>
And the much disliked black band across the top with links to all Google services is gone. It is now replaced with an App drawer button.Next to the Sign in button below, you can see what looks similar to the Android app drawer button from which you can launch google apps.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLUTWNCT2obnhLbJLp07vn-DIhQ3BgXNbqTTS-Q7I0pKhQfEGlXZutkKNyodIz4LB2fbaKdENSwBOWk-1DYwXbUz538u1lSzi3XRVB4TiFturkRRkxNRhQyQnjm7pcGSpUcqLR77itnwM/s1600/Google_Home.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="162" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLUTWNCT2obnhLbJLp07vn-DIhQ3BgXNbqTTS-Q7I0pKhQfEGlXZutkKNyodIz4LB2fbaKdENSwBOWk-1DYwXbUz538u1lSzi3XRVB4TiFturkRRkxNRhQyQnjm7pcGSpUcqLR77itnwM/s400/Google_Home.PNG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">New home page with app drawer.</td></tr>
</tbody></table>
Check if you are able to see the new design..Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-21179633290566042862013-08-04T10:51:00.001+05:302013-10-12T13:32:50.199+05:30Opera<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjRstA2ITFk-8OLCThFjifpadnT_DqRVvwiSsL7_J8oTNs1B6sKZG9HDC41qzO_YERR-mPu9NFuspWweswqmkjb8HpUyGBNex9ACCnLRnH-ntnvoezza4DI9vj4xXLJR0dZ7OdVcVOMic/s1600/big+o.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjRstA2ITFk-8OLCThFjifpadnT_DqRVvwiSsL7_J8oTNs1B6sKZG9HDC41qzO_YERR-mPu9NFuspWweswqmkjb8HpUyGBNex9ACCnLRnH-ntnvoezza4DI9vj4xXLJR0dZ7OdVcVOMic/s1600/big+o.png" /></a></div>
<div dir="ltr">
Long time followers if this blog might know the fact that I have a particular soft corner towards the web browser Opera. (One among a few percent of opera fans in three world, I guess).</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
Opera has always been the innovation maker in the field of web browsers. I started using opera (version 7 or 7.5) at a time when internet explorer had killed off Netscape and a budding Firefox was in the market. It will be difficult to convince me that Firefox is a superior browser but I will choose it any day over Internet Explorer. IE is in my case gives the worst user experience. IE has successfully made a bad name for itself that even when sone reviews say version 10 and 11 are good and stable, I no longer bother.</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
So taking about Opera's innovations, I think it was the first browser to offer multiple tabs. That was very ingenious and useful. Other browsers followed and IE in particular took a long time to implement.</div>
<div dir="ltr">
Mouse gestures, voice control (you can ask Opera to item a new tab etc.) Themes, plugins / extensions (not sure if opera or Firefox was first for these).</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
For a long time I never saw Google's home page thanks to Opera, as I could do all my searches from the </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXQz4v8wTTAw8u7r4wGS5TcMsR9mHD97Sj0I2bZdoUyskHyi4LKCHELFWhex51bvgZn0IjU0_kfxsghXJdcdkbS9mGsQ3NxbP_Svt49eVmy6lt0MB8KS2zd-a4uGUI5VEINFPL2JoMMc4/s1600/search.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="159" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXQz4v8wTTAw8u7r4wGS5TcMsR9mHD97Sj0I2bZdoUyskHyi4LKCHELFWhex51bvgZn0IjU0_kfxsghXJdcdkbS9mGsQ3NxbP_Svt49eVmy6lt0MB8KS2zd-a4uGUI5VEINFPL2JoMMc4/s320/search.png" width="320" /></a></div>
address bar using "g <search_term>", you will bypass the home page and go directly to the search list.This can be extended to any search engine as well as create our own custom search terms and everything.</search_term><br />
<div dir="ltr">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZXvMObbfipK6FgYcTjIv0iy1FDKkaY0cIDVxRjSEelrmstf2RT-PWFQxl4PZE7PnDHTq50eU0UXyHbXPy3Xg9i9QvdnZZV2N8rFDfC7tSUoQ1j-k0qEUFh4ZL6jLEbkwYEhEYytL543o/s1600/opera+menu.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZXvMObbfipK6FgYcTjIv0iy1FDKkaY0cIDVxRjSEelrmstf2RT-PWFQxl4PZE7PnDHTq50eU0UXyHbXPy3Xg9i9QvdnZZV2N8rFDfC7tSUoQ1j-k0qEUFh4ZL6jLEbkwYEhEYytL543o/s1600/opera+menu.png" /></a></div>
<div dir="ltr">
Opera introduced a new menu system, which was straightaway copied by Firefox. This dispensed with the normal menu system on old windows and added an Opera button at the top left which opened down the main menu.</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
Opera included a mail client (removed in version 15), a torrent down loader, integrated notes, password manager (which is encrypted, I learnt that Firefox used to store them encrypted).</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
A couple of features exclusive to Opera are Turbo which speeds up browsing on slow networks.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf3HeMlhnFG5hLKLg6MY1TtRt8hyphenhyphensyuaJ0zYSdjo8gfuZMlh_62zCvDviyI8B-ysz4M8pGIs6srT_IOGunh1zwcbnDWaSQbFUp6YzEeoYEmGtbFJtqfTf4sS7ToI2-MS7qd7qnujNqHUU/s1600/turbo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="195" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf3HeMlhnFG5hLKLg6MY1TtRt8hyphenhyphensyuaJ0zYSdjo8gfuZMlh_62zCvDviyI8B-ysz4M8pGIs6srT_IOGunh1zwcbnDWaSQbFUp6YzEeoYEmGtbFJtqfTf4sS7ToI2-MS7qd7qnujNqHUU/s320/turbo.png" width="320" /></a></div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
Later came Speed Dial, Tab Stacking, Private browsing and private tabs (I haven't seen private tab in any other browser yet), ability to pin tabs etc.</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
The most striking innovation that I felt useful as a Web Developer was "Opera Dragonfly". It was the first time that such a tool was available to see how web pages are handled by browsers. </div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
The list is almost endless with the features given by Opera, that it would easily over whelm a novice user. Still I recommend using Opera as your secondary browser, if you prefer using Chrome or FireFox as your primary one.</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
Check out <a href="https://www.facebook.com/Infewbytes" target="_blank">InFewBytes</a> on Facebook or Opera : <a href="http://www.infewbytes.com/" target="_blank">InFewBytes</a> for more tips on using Opera. Opera offers a lot of stuff under the hood which might baffle a new user, so look out for tips and tricks from the e-book mentioned in the above link.<br />
<br />
<b>Additional Read</b><br />
Check out the <a href="http://midhunhk.blogspot.com/2008/02/best-desktop-browser.html">Best Desktop Browser</a> and <a href="http://midhunhk.blogspot.com/2008/12/opera-10-alpha.html">Opera 10 Alpha</a> for other posts on Opera in this blog.</div>
Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-83966476479320611992013-08-04T09:32:00.003+05:302013-08-04T09:34:56.077+05:30Message Counter 2: Open source android app<div dir="ltr">
Message counter 2 is an open source android app which displays the count of sms received from each contact. The development on this app is basically for educational purposes</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
<table border="0" style="width: 100%px;"><tbody>
<tr> <td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGMjQPezMDzCV_ihZ0K582csuJWauJ38JrDxHLE-2XgFY8M8Kla7RnKdOQ_nisqTau_87swBHijZbucSRutKLv3haakdZahCxkp4fnJgSgUKNjGnx2Q3bBfrymwkNy_YQ_IA-tKDFYbkY/s1600/list.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGMjQPezMDzCV_ihZ0K582csuJWauJ38JrDxHLE-2XgFY8M8Kla7RnKdOQ_nisqTau_87swBHijZbucSRutKLv3haakdZahCxkp4fnJgSgUKNjGnx2Q3bBfrymwkNy_YQ_IA-tKDFYbkY/s320/list.png" width="192" /></a></td><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmFV-LMiZjymqzfFfacgyQRrBqEZCEcmye2pZLOlJIeZJxS2p-koO-nhGOse87qPp_W44e7PCjsDjYzSJq2YAWQg1zdqK6tT8sMCctEmSz8EDSiBO5LOfGkgZlBAE-aJUI-KdaHcsgSg8/s1600/chart.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmFV-LMiZjymqzfFfacgyQRrBqEZCEcmye2pZLOlJIeZJxS2p-koO-nhGOse87qPp_W44e7PCjsDjYzSJq2YAWQg1zdqK6tT8sMCctEmSz8EDSiBO5LOfGkgZlBAE-aJUI-KdaHcsgSg8/s320/chart.png" width="192" /></a></td> </tr>
</tbody></table>
</div>
<div dir="ltr">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
The app is developed by a single developer during his free time, among other projects. So there is not much dedicated support but all efforts will be made to add new features and fix any issues.<br />
<br />
The latest update includes features, improvements and optimizations. As well as experimental support for French language.<br />
<br />
<div dir="ltr">
Download the Android app from the <a href="https://play.google.com/store/apps/details?id=com.ae.apps.messagecounter&hl=en" target="_blank">Play Store</a>.</div>
<div dir="ltr">
Get the Source code from <a href="https://github.com/midhunhk/message-counter" target="_blank">GitHub</a>.<br />
<a href="https://www.facebook.com/AeAppLabs" target="_blank">Facebook Page</a></div>
Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-47869631589556749492013-07-29T12:53:00.001+05:302013-07-29T12:53:01.900+05:30Message counter privacy policy<p dir=ltr>Message counter (the "app") does not collect offer share any personal information. </p>
<p dir=ltr>For displaying the data, the app accesses your contacts and message databases stored in the phone. However these information is not stored or shared.</p>
<p dir=ltr>The privacy policy for the app has been updated on 29 July 2013.</p>
<p dir=ltr>If you have any questions or concerns, please submit a comment or send an email to aeapplabs-support at live.in</p>
Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-27568914360881983822013-06-28T23:30:00.004+05:302013-06-28T23:30:54.057+05:30Bing Image ParserHow many people have noticed the different images that are displayed on the home page of the search engine <a href="http://www.bing.com/" target="_blank">Bing</a>? I used to visit the Bing homepage just to check the image each day. As an aside you can get some trivia on the US version of the site.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt5kkqtM17ReD0FneIauZUBWm3u-JeU4o61CzewAIX-p2153-X1QMxQcJMowsLqj6PNQuwv0NeBVhwGpOEF4C1xCd7GVQc8Do6h6jhX0tCf2ho3pSAIL-X2BfZXz1NlA4iyqnJqXt6GwU/s814/bing-home.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="146" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt5kkqtM17ReD0FneIauZUBWm3u-JeU4o61CzewAIX-p2153-X1QMxQcJMowsLqj6PNQuwv0NeBVhwGpOEF4C1xCd7GVQc8Do6h6jhX0tCf2ho3pSAIL-X2BfZXz1NlA4iyqnJqXt6GwU/s400/bing-home.PNG" width="400" /></a></div>
<br />
<br />
It was then that I had an idea to see if there was a way to automate the way to see different images that are provided by Bing. After a search, done ironically, on well "Google" (Searching on Google is like second nature for me), I was able to get an RSS feed URL for the Bing images, and able to parse it using a small Java application.<br />
<br />
<blockquote class="tr_bq">
<i>The reason behind choosing a source which gives data as RSS is that it is a standard. What the core of this application does is parse an RSS Feed. The other functionality like console, ability to save image and other settings are built around this core. So essentially this can be reused to parse other RSS Feeds.</i></blockquote>
The UI is not very fancy, it is a invoked via command line and there is a windows shell script that can be used to run it easily. (Make sure you have Java runtime installed). If you don't want the source code, you can grab a build file (zip file with the application and shell script file) from GitHub.<br />
<br />
After getting the build file, extract it to a folder, edit the "settings.properties" file and run the "run-biotd.cmd" file. If you are opting to save the images to disk, make sure that the folder specified exists.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-NTBlPeUY-RwQVuTZ5Tqp9tGO9qVJ4u42a3YM0CnYmOpQPHbsDzdz9PObYLYVHLtj-EpIncINuMaMdLV5mtQpyg9H9c5T8htXmCtcOSCfe2wJWT7uE7219x_xvbRhiCPSOvL73043xao/s668/biotd-screen.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-NTBlPeUY-RwQVuTZ5Tqp9tGO9qVJ4u42a3YM0CnYmOpQPHbsDzdz9PObYLYVHLtj-EpIncINuMaMdLV5mtQpyg9H9c5T8htXmCtcOSCfe2wJWT7uE7219x_xvbRhiCPSOvL73043xao/s320/biotd-screen.PNG" width="320" /></a></div>
<br />
<br />
The entire eclipse project is now available at GitHub and licensed under the "Apache License Version 2.0" at the link below.<br />
<a href="https://github.com/midhunhk/the-bing-image-of-the-day-parser">https://github.com/midhunhk/the-bing-image-of-the-day-parser</a><br />
<br />
Build no 0.4.5 is available at<br />
<a href="https://github.com/midhunhk/the-bing-image-of-the-day-parser/blob/master/BIotD/builds/BIotD_0.4.5.zip">https://github.com/midhunhk/the-bing-image-of-the-day-parser/blob/master/BIotD/builds/BIotD_0.4.5.zip</a><br />
<br />
Make sure to check these out and watch out for future updates. You can use this source code to parse any other RSS feed response and make an awesome app, so don't wait up.Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-83128425079543990122013-06-22T09:40:00.001+05:302013-06-22T09:40:45.152+05:30Mobile App vs Desktop application Development<div class="MsoNormal">
The app development and release cycle for mobile (or tablet)
and desktop applications differ vastly. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
A desktop application is expected to be feature complete at
the time of launch and may have undergone years of development (in the case of
large applications like an Office Suite) before a major version is released.
Only minor fixes for bug and security are expected till the next major release.Unless
it is a major security related update, most of the time I ignore application
updates for my desktop applications. This is because if there is no change in
user experience or performance, it doesn’t seem work to go over the procedure
of doing an update (A system restart for some applications if on Windows adds to
this misery). I keep my graphics driver software up to date without seeing any
significant performance improvements. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
On the other hand, most users expect their mobile apps to
get regular updates. It has sort of become a norm. This could be an addition of
a new feature, improvement in user experience or a bug fix. Updating an app is
seamless and there is little or no data loss and you can start using the
updated app as soon as it is updated.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
So while developing a mobile app, in my view, it is
important to launch the first version with the most important and basic features
that an app is concentrating. And add additional features upon each updates in
short cycles. This would keep give the users a feeling that the app developer
is constantly developing the app on improving the user experience. Most
importantly this would keep the app fresh. If it stops evolving, users might get
bored and may try out another app.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The advantages of this kind of release cycle are that the
developers can get feedback from the users early and take into account feature
suggestions or changes.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
It should, however be noted that these views may not apply
to all scenarios, there are exceptions. For e.g.: there is no scope or need for
a short release cycles in the case of an app like Calculator.Desktop browsers like
Google Chrome and Firefox have short release cycles, although there may be some
minor change in a version.</div>
<br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
To conclude, the approach for mobile app development is different
from that followed for conventional software releases. This should be
researched from a marketing as well as technical stand point before being
finalized.</div>
Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-18617529599409016622013-05-10T10:02:00.000+05:302013-05-10T10:02:01.784+05:30Google Play Store updated to Version 4After glimpses of screen shots on the web, I finally received the update for Google Play Store and it is a major version jump this time, to 4! When you launch the updated Play Store, a redesigned Page greets you.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-6mBTMBypD6Q/UYxrLXQzG3I/AAAAAAAABFA/9tmVX0oDEvM/s1600/Screenshot_2013-05-09-19-40-26.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://1.bp.blogspot.com/-6mBTMBypD6Q/UYxrLXQzG3I/AAAAAAAABFA/9tmVX0oDEvM/s320/Screenshot_2013-05-09-19-40-26.png" width="320" /></a></div>
<br />
There is a lot of white space and padding between icons and doesn't feel cluttered a bit. You can Purchase or install an app directly from this screen by clicking on the vertical 3 dots next to the app name without having to go into the app description page.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-Q67-BPT4XwM/UYx3Y8XM55I/AAAAAAAABFQ/9CI9ssD3Qk8/s1600/Screenshot_2013-05-09-19-43-21.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://3.bp.blogspot.com/-Q67-BPT4XwM/UYx3Y8XM55I/AAAAAAAABFQ/9CI9ssD3Qk8/s320/Screenshot_2013-05-09-19-43-21.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
A set of movies from Play Movies also appears on the main page of the store in a similar style.</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-PV0IURza9ic/UYx3utPTNGI/AAAAAAAABFg/0YD4mUzAhn8/s1600/Screenshot_2013-05-09-19-44-48.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://3.bp.blogspot.com/-PV0IURza9ic/UYx3utPTNGI/AAAAAAAABFg/0YD4mUzAhn8/s320/Screenshot_2013-05-09-19-44-48.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The list of installed apps page is also tweaked slightly.</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-O2YpMp12MY4/UYx3s3bgt0I/AAAAAAAABFY/es_nlk6cJKw/s1600/Screenshot_2013-05-09-19-46-25.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://4.bp.blogspot.com/-O2YpMp12MY4/UYx3s3bgt0I/AAAAAAAABFY/es_nlk6cJKw/s320/Screenshot_2013-05-09-19-46-25.png" width="320" /></a></div>
<br />Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com0tag:blogger.com,1999:blog-4042818701395716661.post-9873452577332057912013-05-03T09:18:00.002+05:302013-05-04T09:05:29.681+05:30Message Counter for AndroidDevelopment has been going on a simple Android application called "Message Counter".<br />
<br />
How the Message application works on an Android phone will vary greatly based on the OS Version as well as any modification done by the manufacturer like HTC, Samsung etc.<br />
<br />
So as the message details are stored on a device using SQLite and whose contents can be accessed programmatically, I decided to write up an app called MessageCounter. The first version was completed quite fast, but in order to support Android 2.3 and up, some sacrifices were made regarding the UI and performance.<br />
<br />
Taking advantage of Fragments, ActionBar etc introduced in later versions of Android (3.0, Honeycomb), a new version was created re using code from the first version.<br />
<br />
The V2 of Message Counter was completed in a matter of hours and improves on performance and UI. Below are the screenshots of the app. You can find an update to this post if and when the app is made available on Google Play Store.<br />
<br />
<strike>There are plans of making the source code open source and will be hosted at GitHub. An update to this post will include the details.</strike><br />
<br />
Update 1 : The project is now available on GitHub at this address : <a href="https://github.com/midhunhk/message-counter">https://github.com/midhunhk/message-counter</a>. The source code is licensed under the Apache License Version 2.0<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgObCgmpzVGB8Ex-duhgO3Q3No6jDbcHOPKVcccLtnHTmT56hKxlQWg8yxSVgbmE6rKq6_rDOhBY12zVrC2X6aeY5iZaDfu3kYSJW2mJ9AQxgyzTBtI9wz-D8EHgAQTfTWkr6gnfMCqk4Y/s1600/device-2013-05-01-144522.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgObCgmpzVGB8Ex-duhgO3Q3No6jDbcHOPKVcccLtnHTmT56hKxlQWg8yxSVgbmE6rKq6_rDOhBY12zVrC2X6aeY5iZaDfu3kYSJW2mJ9AQxgyzTBtI9wz-D8EHgAQTfTWkr6gnfMCqk4Y/s320/device-2013-05-01-144522.png" width="192" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBzGA-crf2kQJguANYCZsyTwJEdYzgte_rDuehR6hyphenhyphenJACccx0a6KsAhrURNbGvsJyipqvusYLOGOD37ofLIRDwL4VZVB_MuypBx7QOuD5rwIRPzqGwsliynkucp42lZgZjka8BtPuiPXI/s1600/device-2013-05-01-144543.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBzGA-crf2kQJguANYCZsyTwJEdYzgte_rDuehR6hyphenhyphenJACccx0a6KsAhrURNbGvsJyipqvusYLOGOD37ofLIRDwL4VZVB_MuypBx7QOuD5rwIRPzqGwsliynkucp42lZgZjka8BtPuiPXI/s320/device-2013-05-01-144543.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqHlEAdA_zmRklZ3NpeFCtwAtvJJonU425bpvXBtTEbFyzJVry6tZ_59wx45PObwerzAu7K554VH76F28k48Jfi6izc4x0NCxvYa29op__gSWKT5yDJU5P2ybzKZR4xGXpc7CGjafH5dw/s1600/device-2013-05-01-144551.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqHlEAdA_zmRklZ3NpeFCtwAtvJJonU425bpvXBtTEbFyzJVry6tZ_59wx45PObwerzAu7K554VH76F28k48Jfi6izc4x0NCxvYa29op__gSWKT5yDJU5P2ybzKZR4xGXpc7CGjafH5dw/s320/device-2013-05-01-144551.png" width="320" /></a></div>
<br />Midhun Harikumarhttp://www.blogger.com/profile/02553508618272121578noreply@blogger.com1