<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Kostya Vasilyev&#039;s software blog</title>
	<atom:link href="http://kmansoft.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://kmansoft.com</link>
	<description>Android Tidbits</description>
	<lastBuildDate>Sat, 26 May 2012 07:37:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='kmansoft.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Kostya Vasilyev&#039;s software blog</title>
		<link>http://kmansoft.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://kmansoft.com/osd.xml" title="Kostya Vasilyev&#039;s software blog" />
	<atom:link rel='hub' href='http://kmansoft.com/?pushpress=hub'/>
		<item>
		<title>Scale Android drawables with a script</title>
		<link>http://kmansoft.com/2012/05/23/scale-android-drawables-with-a-script/</link>
		<comments>http://kmansoft.com/2012/05/23/scale-android-drawables-with-a-script/#comments</comments>
		<pubDate>Tue, 22 May 2012 21:46:30 +0000</pubDate>
		<dc:creator>Kostya Vasilyev</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://kmansoft.com/?p=1408</guid>
		<description><![CDATA[Here is a simple script to create lower-resolution Android drawables from higher-resolution ones. For example, given a batch of -xhdpi images, it can generate -hdpi and -mdpi images. With this script, it&#8217;s possible to export only highest-resolution artwork from authoring tools and then create the lower-resolution versions with a few batch commands. Before, I would [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kmansoft.com&#038;blog=12974358&#038;post=1408&#038;subd=kmansoft&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Here is a simple script to create lower-resolution Android drawables from higher-resolution ones.</p>
<p>For example, given a batch of -xhdpi images, it can generate -hdpi and -mdpi images.</p>
<p>With this script, it&#8217;s possible to export only highest-resolution artwork from authoring tools and then create the lower-resolution versions with a few batch commands.</p>
<p>Before, I would have to export all artwork versions one by one, adjusting the size, navigating to the right directory, double-checking to make sure I haven&#8217;t accidentally exported an -mdpi sized image into -hdpi, etc.</p>
<p>Script usage:</p>
<p>   <code>drawable_convert.py -d res/drawable-mdpi -d res/drawable-hdpi res/drawable-xhdpi-v14/select*.png</code></p>
<p>This will take select*.png from xhdpi and place lower-resolution versions into mdpi and hdpi folders.</p>
<p>Resize ratios are computed based on resource directory names.</p>
<p>The actual scaling is done by ImageMagick&#8217;s convert command.</p>
<p><a href="https://gist.github.com/2771791">https://gist.github.com/2771791</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kmansoft.wordpress.com/1408/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kmansoft.wordpress.com/1408/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kmansoft.wordpress.com/1408/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kmansoft.wordpress.com/1408/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kmansoft.wordpress.com/1408/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kmansoft.wordpress.com/1408/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kmansoft.wordpress.com/1408/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kmansoft.wordpress.com/1408/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kmansoft.wordpress.com/1408/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kmansoft.wordpress.com/1408/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kmansoft.wordpress.com/1408/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kmansoft.wordpress.com/1408/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kmansoft.wordpress.com/1408/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kmansoft.wordpress.com/1408/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kmansoft.com&#038;blog=12974358&#038;post=1408&#038;subd=kmansoft&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kmansoft.com/2012/05/23/scale-android-drawables-with-a-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/be9174e6d563a6899acc703ad69e4eb7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kmansoft</media:title>
		</media:content>
	</item>
		<item>
		<title>Google Chrome slow on Linux?</title>
		<link>http://kmansoft.com/2012/05/14/google-chrome-slow-on-linux/</link>
		<comments>http://kmansoft.com/2012/05/14/google-chrome-slow-on-linux/#comments</comments>
		<pubDate>Mon, 14 May 2012 18:59:28 +0000</pubDate>
		<dc:creator>Kostya Vasilyev</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://kmansoft.com/?p=1406</guid>
		<description><![CDATA[I&#8217;m running Google Chrome on Debian Wheezy (testing) 64 bit. For the last couple of months it often had issues rendering the home page after the initial launch, getting stuck for a few seconds, then snapping back. The last few days, it also started running slow as molasses. Solution? Simple: Went into chrome://plugins/ Disabled &#8220;Remoting [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kmansoft.com&#038;blog=12974358&#038;post=1406&#038;subd=kmansoft&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m running Google Chrome on Debian Wheezy (testing) 64 bit.</p>
<p>For the last couple of months it often had issues rendering the home page after the initial launch, getting stuck for a few seconds, then snapping back.</p>
<p>The last few days, it also started running slow as molasses.</p>
<p>Solution? Simple:</p>
<p>Went into chrome://plugins/</p>
<p>Disabled &#8220;Remoting Viewer&#8221;</p>
<p>( don&#8217;t need this anyway, and didn&#8217;t enjoy finding out it was enabled by default )</p>
<p>Was I hacked? My Linux system is behind a home router with a firewall, so it seems unlikely. Probably just a Chrome plugin bug.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kmansoft.wordpress.com/1406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kmansoft.wordpress.com/1406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kmansoft.wordpress.com/1406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kmansoft.wordpress.com/1406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kmansoft.wordpress.com/1406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kmansoft.wordpress.com/1406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kmansoft.wordpress.com/1406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kmansoft.wordpress.com/1406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kmansoft.wordpress.com/1406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kmansoft.wordpress.com/1406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kmansoft.wordpress.com/1406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kmansoft.wordpress.com/1406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kmansoft.wordpress.com/1406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kmansoft.wordpress.com/1406/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kmansoft.com&#038;blog=12974358&#038;post=1406&#038;subd=kmansoft&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kmansoft.com/2012/05/14/google-chrome-slow-on-linux/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/be9174e6d563a6899acc703ad69e4eb7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kmansoft</media:title>
		</media:content>
	</item>
		<item>
		<title>SQLite, IFNULL, weird&#8230;</title>
		<link>http://kmansoft.com/2012/05/13/sqlite-ifnull-weird/</link>
		<comments>http://kmansoft.com/2012/05/13/sqlite-ifnull-weird/#comments</comments>
		<pubDate>Sat, 12 May 2012 21:56:42 +0000</pubDate>
		<dc:creator>Kostya Vasilyev</dc:creator>
				<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://kmansoft.com/?p=1402</guid>
		<description><![CDATA[I have some SQLite queries in my project where I use things like: ... "... IFNULL(table1.col1, table1.col2) = table2.col3 ... " Did this in some new code: db.update(TABLE_NAME, contentValues, "... IFNULL(table1.col1, table1.col2) = ?...", new String[] { val1, val2, ...} ); &#8230; and the update never actually updated any messages. Expanding IFNULL &#8220;by hand&#8221; started [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kmansoft.com&#038;blog=12974358&#038;post=1402&#038;subd=kmansoft&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have some SQLite queries in my project where I use things like:</p>
<p><code>... "... IFNULL(table1.col1, table1.col2) = table2.col3 ... "<br />
</code></p>
<p>Did this in some new code:</p>
<p><code>db.update(TABLE_NAME, contentValues, "... IFNULL(table1.col1, table1.col2) = ?...", new String[] { val1, val2, ...} );</code></p>
<p>&#8230; and the update never actually updated any messages.</p>
<p>Expanding IFNULL &#8220;by hand&#8221; started producing expected results:</p>
<p><code>db.update(TABLE_NAME, contentValues, "... table1.col1 IS NULL AND table1.col2 = ? OR table1.col1 = ? ...", new String[] { val1, val1, val2, ...} );</code></p>
<p>Probably has something to do with how Android&#8217;s SQLiteDatabase methods always bind query arguments as strings.</p>
<p>( an hour or so lost&#8230; sigh )</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kmansoft.wordpress.com/1402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kmansoft.wordpress.com/1402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kmansoft.wordpress.com/1402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kmansoft.wordpress.com/1402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kmansoft.wordpress.com/1402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kmansoft.wordpress.com/1402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kmansoft.wordpress.com/1402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kmansoft.wordpress.com/1402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kmansoft.wordpress.com/1402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kmansoft.wordpress.com/1402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kmansoft.wordpress.com/1402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kmansoft.wordpress.com/1402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kmansoft.wordpress.com/1402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kmansoft.wordpress.com/1402/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kmansoft.com&#038;blog=12974358&#038;post=1402&#038;subd=kmansoft&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kmansoft.com/2012/05/13/sqlite-ifnull-weird/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/be9174e6d563a6899acc703ad69e4eb7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kmansoft</media:title>
		</media:content>
	</item>
		<item>
		<title>WiFi Manager 2.5.1, Bluetooth Widget 1.8.1</title>
		<link>http://kmansoft.com/2012/05/02/wifi-manager-2-5-1-bluetooth-widget-1-8-1/</link>
		<comments>http://kmansoft.com/2012/05/02/wifi-manager-2-5-1-bluetooth-widget-1-8-1/#comments</comments>
		<pubDate>Wed, 02 May 2012 17:00:49 +0000</pubDate>
		<dc:creator>Kostya Vasilyev</dc:creator>
				<category><![CDATA[releases]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://kmansoft.com/?p=1392</guid>
		<description><![CDATA[I know it&#8217;s taken me a long time, but the new version is finally here: Full changelog: Two new widget themes, styled after Android 4.0 (part of premium package). Support for IP address and proxy server configuration for Android 3.0 and 4.0 (free functions). Added widget to toggle WiFi Tethering Adjusted widget sizes for a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kmansoft.com&#038;blog=12974358&#038;post=1392&#038;subd=kmansoft&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I know it&#8217;s taken me a long time, but the new version is finally here:</p>
<p>Full changelog:</p>
<ul>
<li>Two new widget themes, styled after Android 4.0 (part of premium package).</li>
<li>Support for IP address and proxy server configuration for Android 3.0 and 4.0 (free functions).</li>
<li>Added widget to toggle WiFi Tethering</li>
<li>Adjusted widget sizes for a wider range of screens.</li>
<li>Support for EAP (802.11x) networks, Android 2.2 and higher.</li>
<li>A new way of connecting to networks, see app settings. Keeps all networks active, if you move out/in range (home/work etc.) your device should connect.</li>
<li>Easier IP address configuration for Andorid 2.* (when connecting for the first time). </li>
<li>Connection speed info in the main window (tap on the currently connected network; actual value is reported by the firmware).</li>
<li>Fixed Android 1.6 compatibility broken in 2.1.8 (sorry!)</li>
</ul>
<p>Note: IP address and proxy configuration for Android 3.*/4.*, as well as EAP network support, use undocumented functions. May not work on some devices, depending on how extensive the manufacturer&#8217;s firmware changes are.</p>
<p>Version 2.5.0 had wrong widget widths on Android 1.6-2.1. Fixed in 2.5.1.</p>
<table>
<tr>
<td>
<a href="http://kmansoft.files.wordpress.com/2012/05/device-widgets-new-en.png"><img src="http://kmansoft.files.wordpress.com/2012/05/device-widgets-new-en.png?w=180&h=300" alt="" title="New widget themes: WiFi Manager" width="180" height="300" class="alignnone size-medium wp-image-1395" /></a>
</td>
<td>
<a href="http://kmansoft.files.wordpress.com/2012/05/device-widgets-new-ru.png"><img src="http://kmansoft.files.wordpress.com/2012/05/device-widgets-new-ru.png?w=180&h=300" alt="" title="New widget themes: Bluetooth widget" width="180" height="300" class="alignnone size-medium wp-image-1396" /></a>
</td>
</tr>
</table>
<p>And now the same thing again, but this time in Russian:</p>
<ul>
<li>Две новые визуальные темы для виджетов в стиле Андроида 4.0 (входят в платный пакет).</li>
<li>Поддержка конфигурации IP адреса и прокси сервера для Андроида 3.0 и 4.0 (бесплатные функции).</li>
<li>Добавил виджет для управления точкой доступа WiFi.</li>
<li>Коррекция размеров виджетов для более широкого набора экранов.</li>
<li>Поддержка сетей EAP (802.11x), на Андроиде 2.2 и выше.</li>
<li>Новый алгоритм подключения к сетям, включается в настройках. Все сети остаются активными, при выходе/входе в зону действия (дом/работа, etc.) должно быть подключение.</li>
<li>Более простая конфигурация IP адреса в Андроиде 2.* (сразу при подключении). </li>
<li>Отображение скорости соединения в основной программе (нажмите на сеть; зависит от прошивки).</li>
<li>Исправил совместимость с Андроидом 1.6, сломанную в 2.1.8 (извините!)</li>
</ul>
<p>Учтите: для настроек IP адреса и прокси сервера на Андроиде 3.*/4.*, равно как и для работы с сетями EAP, используются недокументированные функции. Может не работать на некоторых устройствах, в зависимости от степени изменений прошивки, внесенных производителем.</p>
<p>Версия 2.5.0 неверно отображала виджеты, по ширине. Исправлено в 2.5.1.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kmansoft.wordpress.com/1392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kmansoft.wordpress.com/1392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kmansoft.wordpress.com/1392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kmansoft.wordpress.com/1392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kmansoft.wordpress.com/1392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kmansoft.wordpress.com/1392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kmansoft.wordpress.com/1392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kmansoft.wordpress.com/1392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kmansoft.wordpress.com/1392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kmansoft.wordpress.com/1392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kmansoft.wordpress.com/1392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kmansoft.wordpress.com/1392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kmansoft.wordpress.com/1392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kmansoft.wordpress.com/1392/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kmansoft.com&#038;blog=12974358&#038;post=1392&#038;subd=kmansoft&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kmansoft.com/2012/05/02/wifi-manager-2-5-1-bluetooth-widget-1-8-1/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/be9174e6d563a6899acc703ad69e4eb7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kmansoft</media:title>
		</media:content>

		<media:content url="http://kmansoft.files.wordpress.com/2012/05/device-widgets-new-en.png?w=180" medium="image">
			<media:title type="html">New widget themes: WiFi Manager</media:title>
		</media:content>

		<media:content url="http://kmansoft.files.wordpress.com/2012/05/device-widgets-new-ru.png?w=180" medium="image">
			<media:title type="html">New widget themes: Bluetooth widget</media:title>
		</media:content>
	</item>
		<item>
		<title>Finding missing translations in an Android application</title>
		<link>http://kmansoft.com/2012/04/27/finding-missing-translations-in-an-android-application/</link>
		<comments>http://kmansoft.com/2012/04/27/finding-missing-translations-in-an-android-application/#comments</comments>
		<pubDate>Fri, 27 Apr 2012 19:34:23 +0000</pubDate>
		<dc:creator>Kostya Vasilyev</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://kmansoft.com/?p=1367</guid>
		<description><![CDATA[An app that is developed primarily in one or two languages, and supports more, needs to be updated from time to time. To do this, missing string translations need to be identified. The Lint tool from the Android SDK can do this, but I&#8217;ve found its output format to be difficult to work with. Lint [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kmansoft.com&#038;blog=12974358&#038;post=1367&#038;subd=kmansoft&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>An app that is developed primarily in one or two languages, and supports more, needs to be updated from time to time.</p>
<p>To do this, missing string translations need to be identified.</p>
<p>The Lint tool from the Android SDK can do this, but I&#8217;ve found its output format to be difficult to work with.</p>
<p>Lint groups missing translations by string identifier, like this:<br />
<pre class="brush: xml;">
res/values/strings_widget.xml:7: Error: &quot;widget_loading&quot; is not translated in cs, es, fr, it, ja, ko, nb, nl, pt-rBR, sv, vi [MissingTranslation]
    &lt;string name=&quot;widget_loading&quot;&gt;Loading…&lt;/string&gt;
    ^
res/values/strings_widget.xml:8: Error: &quot;label_account_and_folder&quot; is not translated in cs, es, fr, it, ja, ko, nb, nl, pt-rBR, sv, vi [MissingTranslation]
    &lt;string name=&quot;label_account_and_folder&quot;&gt;Account and folder:&lt;/string&gt;
    ^
</pre></p>
<p>I believe it&#8217;s more useful to group missing translations by language code, so that they can be collected and sent to the translator for a particular language all at once.</p>
<p>With this in mind, I&#8217;ve written a simple script that does this. Its output look like this:<br />
<pre class="brush: xml;">
	Checking language 2, de
	***** Found 44 missing translations for language de

	&lt;!-- res/values/strings_account_list.xml --&gt;

	&lt;string name=account_list_menu_uilock_now&gt;Lock now&lt;/string&gt;

	&lt;!-- res/values/strings_account_options.xml --&gt;

	&lt;string name=account_options_folder_sync_type_spam&gt;Sync as spam&lt;/string&gt;
	&lt;string name=account_options_prefs_preload_inlines_mobile&gt;Embedded images, mobile&lt;/string&gt;
	&lt;string name=account_options_prefs_preload_inlines_wifi&gt;Embedded images, WiFi&lt;/string&gt;
	&lt;string name=account_options_prefs_signature_auto&gt;Add signature automatically&lt;/string&gt;
	... more strings here

	Checking language 1, uk

	***** Found 47 missing translations for language uk
	... all missing translations for Ukrainian are printed here
</pre></p>
<p>The script is written in Python, and is available here: <a href="https://gist.github.com/2512076">https://gist.github.com/2512076</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kmansoft.wordpress.com/1367/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kmansoft.wordpress.com/1367/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kmansoft.wordpress.com/1367/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kmansoft.wordpress.com/1367/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kmansoft.wordpress.com/1367/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kmansoft.wordpress.com/1367/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kmansoft.wordpress.com/1367/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kmansoft.wordpress.com/1367/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kmansoft.wordpress.com/1367/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kmansoft.wordpress.com/1367/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kmansoft.wordpress.com/1367/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kmansoft.wordpress.com/1367/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kmansoft.wordpress.com/1367/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kmansoft.wordpress.com/1367/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kmansoft.com&#038;blog=12974358&#038;post=1367&#038;subd=kmansoft&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kmansoft.com/2012/04/27/finding-missing-translations-in-an-android-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/be9174e6d563a6899acc703ad69e4eb7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kmansoft</media:title>
		</media:content>
	</item>
		<item>
		<title>The sorry state of SQLite full text search on Android</title>
		<link>http://kmansoft.com/2012/03/17/the-sorry-state-of-sqlite-full-text-search-on-android/</link>
		<comments>http://kmansoft.com/2012/03/17/the-sorry-state-of-sqlite-full-text-search-on-android/#comments</comments>
		<pubDate>Fri, 16 Mar 2012 21:45:29 +0000</pubDate>
		<dc:creator>Kostya Vasilyev</dc:creator>
				<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://kmansoft.com/?p=1360</guid>
		<description><![CDATA[Just spent a few hours prototyping full text search using SQLite&#8217;s FTS functionality. As far as I&#8217;m concerned, it&#8217;s a dead end for my app, for three reasons: 1. The lack of international-character tokenizer. The first step when building a full text search index is to break down the textual content into words, aka tokens. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kmansoft.com&#038;blog=12974358&#038;post=1360&#038;subd=kmansoft&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Just spent a few hours prototyping full text search using SQLite&#8217;s FTS functionality.</p>
<p>As far as I&#8217;m concerned, it&#8217;s a dead end for my app, for three reasons:</p>
<p>1. The lack of international-character tokenizer.</p>
<p>The first step when building a full text search index is to break down the textual content into words, aka tokens. Those tokens are then entered into a special index which lets SQLite perform very fast searches based on a token (or a set of tokens).</p>
<p>SQLite has two built-in <a href="http://www.sqlite.org/fts3.html#tokenizer">tokenizers</a>, and they both only consider tokens consisting of US ASCII characters. All other, non-US ASCII characters are considered whitespace.</p>
<p>There is an &#8220;icu&#8221; (Unicode) tokenizer, but it has to be enabled at compile time. A standard Android build <a href="http://stackoverflow.com/questions/7070193/is-sqlite-on-android-built-with-the-icu-tokenizer-enabled-for-fts">does not have the &#8220;icu&#8221; tokenizer enabled</a>.</p>
<p>I actually ran some tests, just to make sure, and the results are:</p>
<p>- Samsung Galaxy Ace, S5830, Android 2.3.6<br />
- Sony Ericsson Arc, Android 2.3.4<br />
- Samsung Galaxy Nexus, Android 4.0.2</p>
<p>The above devices do not have the &#8220;icu&#8221; tokenizer.</p>
<p>- HTC Incredible S, Android 2.3.5</p>
<p>The Incredible S has the &#8220;icu&#8221; tokenizer.</p>
<p>I hardly think HTC wanted to do a favor to third-party app developers &#8211; the &#8220;icu&#8221; tokenizer is probably used by their Sense UI system.</p>
<p>2. Crashes in the &#8220;icu&#8221; tokenizer.</p>
<p>This is moot, but I&#8217;ve stumbled upon <a href="http://stackoverflow.com/questions/6320855/sqlite-and-fts-tables-with-icu-tokenizer-bug-or-not">this post on stack overflow</a>. A crash in native code when using the &#8220;icu&#8221; tokenizer is not something I&#8217;m willing to risk.</p>
<p>3. The large size of FTS indexes.</p>
<p>In my tests, ab FTS index table takes about as much space as the original, structured, non-FTS table it was built for.</p>
<p>This is probably to be expected, because it&#8217;s possible to query an FTS table for the original text that was used to build the index.</p>
<p>This may be a useful feature (although one could always do a join between FTS and structured data tables), but I&#8217;d rather do without it.</p>
<p>Android users are very sensitive to the amount of internal storage used by applications, and putting a SQLite database in external storage on a memory card is something I&#8217;m very hesitant to do.</p>
<p>Bottom line &#8211; it&#8217;s going to be the good old &#8220;LIKE &#8216;%blah%&#8217;&#8221; queries for me, which have more or less acceptable performance even considering the full table scan they perform, and do not use any extra storage space.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kmansoft.wordpress.com/1360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kmansoft.wordpress.com/1360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kmansoft.wordpress.com/1360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kmansoft.wordpress.com/1360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kmansoft.wordpress.com/1360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kmansoft.wordpress.com/1360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kmansoft.wordpress.com/1360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kmansoft.wordpress.com/1360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kmansoft.wordpress.com/1360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kmansoft.wordpress.com/1360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kmansoft.wordpress.com/1360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kmansoft.wordpress.com/1360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kmansoft.wordpress.com/1360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kmansoft.wordpress.com/1360/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kmansoft.com&#038;blog=12974358&#038;post=1360&#038;subd=kmansoft&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kmansoft.com/2012/03/17/the-sorry-state-of-sqlite-full-text-search-on-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/be9174e6d563a6899acc703ad69e4eb7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kmansoft</media:title>
		</media:content>
	</item>
		<item>
		<title>Setting up WiFi EAP authorization with Freeradius</title>
		<link>http://kmansoft.com/2012/03/06/setting-up-wifi-eap-authorization-with-freeradius/</link>
		<comments>http://kmansoft.com/2012/03/06/setting-up-wifi-eap-authorization-with-freeradius/#comments</comments>
		<pubDate>Tue, 06 Mar 2012 13:32:41 +0000</pubDate>
		<dc:creator>Kostya Vasilyev</dc:creator>
				<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://kmansoft.com/?p=1355</guid>
		<description><![CDATA[I&#8217;m working on adding support for EAP networks to WiFi Manager. My test environment uses dd-wrt running on an old Linksys WRT54GL and freeradius running on my main development system. It actually turned out to be fairly easy to configure. Some useful links: http://www.smallnetbuilder.com/wireless/wireless-howto/30213-how-to-setting-up-freeradius-for-wpa-a-wpa2-enterprise-part-2 http://www.dslreports.com/forum/remark,9286052~mode=flat http://habrahabr.ru/blogs/wireless/128405/ http://www.ixbt.com/comm/prac-wpa-eap_3.shtml<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kmansoft.com&#038;blog=12974358&#038;post=1355&#038;subd=kmansoft&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working on adding support for EAP networks to WiFi Manager.</p>
<p>My test environment uses dd-wrt running on an old Linksys WRT54GL and freeradius running on my main development system. It actually turned out to be fairly easy to configure.</p>
<p>Some useful links:</p>
<p><a href="http://www.smallnetbuilder.com/wireless/wireless-howto/30213-how-to-setting-up-freeradius-for-wpa-a-wpa2-enterprise-part-2">http://www.smallnetbuilder.com/wireless/wireless-howto/30213-how-to-setting-up-freeradius-for-wpa-a-wpa2-enterprise-part-2</a></p>
<p><a href="http://www.dslreports.com/forum/remark,9286052~mode=flat">http://www.dslreports.com/forum/remark,9286052~mode=flat</a></p>
<p><a href="http://habrahabr.ru/blogs/wireless/128405/">http://habrahabr.ru/blogs/wireless/128405/</a></p>
<p><a href="http://www.ixbt.com/comm/prac-wpa-eap_3.shtml">http://www.ixbt.com/comm/prac-wpa-eap_3.shtml</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kmansoft.wordpress.com/1355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kmansoft.wordpress.com/1355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kmansoft.wordpress.com/1355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kmansoft.wordpress.com/1355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kmansoft.wordpress.com/1355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kmansoft.wordpress.com/1355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kmansoft.wordpress.com/1355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kmansoft.wordpress.com/1355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kmansoft.wordpress.com/1355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kmansoft.wordpress.com/1355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kmansoft.wordpress.com/1355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kmansoft.wordpress.com/1355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kmansoft.wordpress.com/1355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kmansoft.wordpress.com/1355/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kmansoft.com&#038;blog=12974358&#038;post=1355&#038;subd=kmansoft&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kmansoft.com/2012/03/06/setting-up-wifi-eap-authorization-with-freeradius/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/be9174e6d563a6899acc703ad69e4eb7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kmansoft</media:title>
		</media:content>
	</item>
		<item>
		<title>WiFi Manager 2.1.8, Bluetooth Widget 1.7.3</title>
		<link>http://kmansoft.com/2012/02/08/wifi-manager-2-1-8-bluetooth-widget-1-7-3/</link>
		<comments>http://kmansoft.com/2012/02/08/wifi-manager-2-1-8-bluetooth-widget-1-7-3/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 16:03:43 +0000</pubDate>
		<dc:creator>Kostya Vasilyev</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[releases]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://kmansoft.com/?p=1348</guid>
		<description><![CDATA[Added Polish and Czech translations. The 3&#215;1 wiget on 10&#8243; tablets now shows connection speed info, like the 4&#215;1 widget on smaller screens. Sharper graphics for the Galaxy Nexus. Some screenshots:<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kmansoft.com&#038;blog=12974358&#038;post=1348&#038;subd=kmansoft&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<ul>
<li>Added Polish and Czech translations.</li>
<li>The 3&#215;1 wiget on 10&#8243; tablets now shows connection speed info, like the 4&#215;1 widget on smaller screens.</li>
<li>Sharper graphics for the Galaxy Nexus.</li>
</ul>
<p>Some screenshots:</p>
<table>
<tr>
<td>
<a href="http://kmansoft.files.wordpress.com/2012/02/device-ics-dark.png"><img src="http://kmansoft.files.wordpress.com/2012/02/device-ics-dark.png?w=168&h=300" alt="" title="Galaxy Nexus: Dark color scheme" width="168" height="300" class="alignnone size-medium wp-image-1349" /></a>
</td>
<td>
<a href="http://kmansoft.files.wordpress.com/2012/02/device-ics-light.png"><img src="http://kmansoft.files.wordpress.com/2012/02/device-ics-light.png?w=168&h=300" alt="" title="Galaxy Nexus: Light color scheme" width="168" height="300" class="alignnone size-medium wp-image-1350" /></a>
</td>
<td>
<a href="http://kmansoft.files.wordpress.com/2012/02/device-ics-home.png"><img src="http://kmansoft.files.wordpress.com/2012/02/device-ics-home.png?w=168&h=300" alt="" title="Galaxy Nexus: the home screen" width="168" height="300" class="alignnone size-medium wp-image-1351" /></a>
</td>
</tr>
</table>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kmansoft.wordpress.com/1348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kmansoft.wordpress.com/1348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kmansoft.wordpress.com/1348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kmansoft.wordpress.com/1348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kmansoft.wordpress.com/1348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kmansoft.wordpress.com/1348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kmansoft.wordpress.com/1348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kmansoft.wordpress.com/1348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kmansoft.wordpress.com/1348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kmansoft.wordpress.com/1348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kmansoft.wordpress.com/1348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kmansoft.wordpress.com/1348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kmansoft.wordpress.com/1348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kmansoft.wordpress.com/1348/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kmansoft.com&#038;blog=12974358&#038;post=1348&#038;subd=kmansoft&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kmansoft.com/2012/02/08/wifi-manager-2-1-8-bluetooth-widget-1-7-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/be9174e6d563a6899acc703ad69e4eb7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kmansoft</media:title>
		</media:content>

		<media:content url="http://kmansoft.files.wordpress.com/2012/02/device-ics-dark.png?w=168" medium="image">
			<media:title type="html">Galaxy Nexus: Dark color scheme</media:title>
		</media:content>

		<media:content url="http://kmansoft.files.wordpress.com/2012/02/device-ics-light.png?w=168" medium="image">
			<media:title type="html">Galaxy Nexus: Light color scheme</media:title>
		</media:content>

		<media:content url="http://kmansoft.files.wordpress.com/2012/02/device-ics-home.png?w=168" medium="image">
			<media:title type="html">Galaxy Nexus: the home screen</media:title>
		</media:content>
	</item>
		<item>
		<title>WiFi Manager 2.1.7</title>
		<link>http://kmansoft.com/2012/01/23/wifi-manager-2-1-7/</link>
		<comments>http://kmansoft.com/2012/01/23/wifi-manager-2-1-7/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 12:22:02 +0000</pubDate>
		<dc:creator>Kostya Vasilyev</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[releases]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://kmansoft.com/?p=1333</guid>
		<description><![CDATA[Added Slovak translation. Added a workaround for an Android Market / Checkout issue. More on the Market / Checkout issue: Starting with about three weeks ago, I&#8217;m seeing those dreaded &#8220;Order canceled / took too long to deliver&#8221; errors again. Maybe it&#8217;s the latest Market app version, maybe it&#8217;s the Wallet / Checkout merge, there [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kmansoft.com&#038;blog=12974358&#038;post=1333&#038;subd=kmansoft&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<ul>
<li>Added Slovak translation.
<li>Added a workaround for an Android Market / Checkout issue.
</ul>
<p>More on the Market / Checkout issue:</p>
<p>Starting with about three weeks ago, I&#8217;m seeing those dreaded &#8220;Order canceled / took too long to deliver&#8221; errors again. Maybe it&#8217;s the latest Market app version, maybe it&#8217;s the Wallet / Checkout merge, there is no way for me to know.</p>
<p>These errors are not new, but what is new is that now when this happens, there is no &#8220;order canceled&#8221; notification from Google&#8217;s servers to the application.</p>
<p><a href="https://groups.google.com/forum/#!topic/android-developers/oPhaMMItAWM">Google Groups discussion</a></p>
<p><a href="http://code.google.com/p/marketbilling/issues/detail?id=45">Bug tracker discussion #1</a></p>
<p><a href="http://code.google.com/p/marketbilling/issues/detail?id=50">Bug tracker discussion #2</a></p>
<p><a href="https://groups.google.com/a/googleproductforums.com/forum/#!searchin/android-market/took$20too$20long$20to$20deliver">Android Market Forum discussions</a></p>
<p>As a result, the app would get stuck waiting for the order to complete or fail, and the user could not retry his purchase.</p>
<p>Version 2.1.7 adds code to automatically reset from &#8220;order in progress&#8221; state after four hours.</p>
<p>Now if one of these Market errors happens again, there is a way to retry the purchase.</p>
<p>Unfortunately, it does not mean that the repeat order will succeed &#8211; that&#8217;s up for Google to fix, and they&#8217;ve not done that for a few months now.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kmansoft.wordpress.com/1333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kmansoft.wordpress.com/1333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kmansoft.wordpress.com/1333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kmansoft.wordpress.com/1333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kmansoft.wordpress.com/1333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kmansoft.wordpress.com/1333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kmansoft.wordpress.com/1333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kmansoft.wordpress.com/1333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kmansoft.wordpress.com/1333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kmansoft.wordpress.com/1333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kmansoft.wordpress.com/1333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kmansoft.wordpress.com/1333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kmansoft.wordpress.com/1333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kmansoft.wordpress.com/1333/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kmansoft.com&#038;blog=12974358&#038;post=1333&#038;subd=kmansoft&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kmansoft.com/2012/01/23/wifi-manager-2-1-7/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/be9174e6d563a6899acc703ad69e4eb7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kmansoft</media:title>
		</media:content>
	</item>
		<item>
		<title>WiFi Manager 2.1.6</title>
		<link>http://kmansoft.com/2011/12/05/wifi-manager-2-1-6/</link>
		<comments>http://kmansoft.com/2011/12/05/wifi-manager-2-1-6/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 16:39:02 +0000</pubDate>
		<dc:creator>Kostya Vasilyev</dc:creator>
				<category><![CDATA[releases]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://kmansoft.com/?p=1318</guid>
		<description><![CDATA[Subtitled: why I never buy any Andorid devices made by Samsung. This update has a workaround for a firmware bug on the Samsung Galaxy Tab 10.1. About a month or so ago, someone left a Market comment saying that the app crashes on his Galaxy Tab 10.1. With no way to contact the user via [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kmansoft.com&#038;blog=12974358&#038;post=1318&#038;subd=kmansoft&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Subtitled: why I never buy any Andorid devices made by Samsung.</p>
<p>This update has a workaround for a firmware bug on the Samsung Galaxy Tab 10.1.</p>
<p>About a month or so ago, someone left a Market comment saying that the app crashes on his Galaxy Tab 10.1. With no way to contact the user via Market (thank you, Google, one way &#8220;communication&#8221; is so effective!), I had no way to verify and resolve the issue. In fact, I have two Honeycomb based tablets, and the app works just fine on both of them.</p>
<p>Now, two days ago, a very nice user contacted me via email, reporting that WiFi Manager crashed when trying to disable the device&#8217;s WiFi. He provided screenshots, one of them had an error message displayed by the firmware: &#8220;<code>the application does not have the android.permission.CHANGE_NETWORK_STATE permission</code>&#8220;.</p>
<p>I added the permission, emailed the apk to the user, the issue went away.</p>
<p>And here is why I &#8220;looove&#8221; Samsung.</p>
<p>Working with WiFi does not require <code>android.permission.CHANGE_NETWORK_STATE</code>. It requires <code>android.permission.CHANGE_WIFI_STATE</code>, which is a different permission.</p>
<p>The firmware on the Galaxy Tab 10.1 <strong>thinks</strong> that <code>CHANGE_NETWORK_STATE</code> is required for disabling WiFi &#8211; probably because the device also has a 3G modem, and disabling WiFi kind of, sort of, like, maybe implies enabling 3G (which might be done a bit later by the firmware and not by the application that disabled WiFi).</p>
<p>This is wrong and is clearly a bug in the firmware.</p>
<p>All my users will now need to update the app manually due to the added permission, which is an inconvenience.</p>
<p>I wonder how this one slipped past Google&#8217;s certification testing. Perhaps this is not tested by the CCD, or perhaps firmware updates are not required to be submitted for testing, only the initial releases are.</p>
<p>The latter seems likely &#8211; seeing how the 3.2.1 firmware for the Motorola Xoom also has a serious issue with WiFi APIs (a thread deadlock, it seems).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kmansoft.wordpress.com/1318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kmansoft.wordpress.com/1318/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kmansoft.wordpress.com/1318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kmansoft.wordpress.com/1318/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kmansoft.wordpress.com/1318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kmansoft.wordpress.com/1318/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kmansoft.wordpress.com/1318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kmansoft.wordpress.com/1318/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kmansoft.wordpress.com/1318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kmansoft.wordpress.com/1318/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kmansoft.wordpress.com/1318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kmansoft.wordpress.com/1318/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kmansoft.wordpress.com/1318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kmansoft.wordpress.com/1318/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kmansoft.com&#038;blog=12974358&#038;post=1318&#038;subd=kmansoft&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kmansoft.com/2011/12/05/wifi-manager-2-1-6/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/be9174e6d563a6899acc703ad69e4eb7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kmansoft</media:title>
		</media:content>
	</item>
	</channel>
</rss>
