<?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/"
	>

<channel>
	<title>mFabrik - mobile sites, apps, HTML5 and CMS software development &#187; android</title>
	<atom:link href="http://blog.mfabrik.com/tag/android/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mfabrik.com</link>
	<description>Freedom delivered.</description>
	<lastBuildDate>Wed, 03 Aug 2011 09:47:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Testing mobile websites with Firefox Mobile for PC (Fennec desktop)</title>
		<link>http://blog.mfabrik.com/2011/07/08/testing-mobile-websites-with-firefox-mobile-for-pc-fennec-desktop/</link>
		<comments>http://blog.mfabrik.com/2011/07/08/testing-mobile-websites-with-firefox-mobile-for-pc-fennec-desktop/#comments</comments>
		<pubDate>Fri, 08 Jul 2011 19:42:01 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[plone]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[emulator]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[simulator]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.mfabrik.com/?p=1317</guid>
		<description><![CDATA[Firefox Mobile (Fennec) has also desktop builds. They are very useful for mobile web site testing as the browser is fast, has real keyboard and is only one mouse click away. Here are instructions how to run Firefox Mobile on Ubuntu Linux (tested on 32-bit Ubuntu 10.10) wget http://releases.mozilla.org/pub/mozilla.org/mobile/releases/latest/linux-i686/fennec-5.0.en-US.linux-i686.tar.bz2 tar -xjf fennec-5.0.en-US.linux-i686.tar.bz2 cd fennec ./fennec [...]]]></description>
			<content:encoded><![CDATA[<p>Firefox Mobile (Fennec) has also desktop builds. They are very useful for mobile web site testing as the browser is fast, has real keyboard and is only one mouse click away.</p>
<p>Here are instructions how to run Firefox Mobile on Ubuntu Linux (tested on 32-bit Ubuntu 10.10)</p>
<pre>wget http://releases.mozilla.org/pub/mozilla.org/mobile/releases/latest/linux-i686/fennec-5.0.en-US.linux-i686.tar.bz2
tar -xjf fennec-5.0.en-US.linux-i686.tar.bz2
cd fennec
./fennec</pre>
<p>.. and thats all you need. It works out of the box! 400x times faster than using Android emulator browser.</p>
<p>There are also <a href=" http://releases.mozilla.org/pub/mozilla.org/mobile/releases/latest/">OSX and Windows builds available</a>.</p>
<p><a href="http://blog.mfabrik.com/wp-content/uploads/2011/07/fennec.png"><img class="alignnone size-full wp-image-1318" title="fennec" src="http://blog.mfabrik.com/wp-content/uploads/2011/07/fennec.png" alt="" width="482" height="830" /></a>
<p class="signature">
<a href="http://mfabrik.com/@@zoho-contact-form"><img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/mfabrik-24.png"></a> <a href="http://mfabrik.com/@@zoho-contact-form">Get developers</a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml"><img valign="middle" src="http://www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt="" style="vertical-align:middle;border:0"/></a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml">Subscribe mFabrik blog in a reader</a> <a href="http://twitter.com/mfabrik"> <img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/twitter-24.png"></a> <a href="http://twitter.com/moo9000">Follow me on Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2011/07/08/testing-mobile-websites-with-firefox-mobile-for-pc-fennec-desktop/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>QuasselDroid: Quassel for Android  &#8211; cross-platform mobile IRC client</title>
		<link>http://blog.mfabrik.com/2011/03/28/quasseldroid-quassel-for-android-cross-platform-mobile-irc-client/</link>
		<comments>http://blog.mfabrik.com/2011/03/28/quasseldroid-quassel-for-android-cross-platform-mobile-irc-client/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 18:42:28 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[plone]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[irc]]></category>
		<category><![CDATA[irssi]]></category>
		<category><![CDATA[logcat]]></category>
		<category><![CDATA[quassel]]></category>
		<category><![CDATA[quasseldroid]]></category>
		<category><![CDATA[sdk]]></category>

		<guid isPermaLink="false">http://blog.mfabrik.com/?p=1112</guid>
		<description><![CDATA[IRC (Internet Relay Chat, the description of IRC) is a chat protocol used by many open source and hacktivism projects for real-time discussion and support chat. I myself participate to Python and Plone discussion and now recently to Android chat on Freenode and IRCNet networks. Quassel is a distributed IRC client. Distributed in the sense [...]]]></description>
			<content:encoded><![CDATA[<p>IRC (Internet Relay Chat, <a href="http://www.youtube.com/watch?v=O2rGTXHvPCQ">the description of IRC</a>) is a chat protocol used by many open source and hacktivism projects for real-time discussion and support chat. I myself participate to Python and Plone discussion and now recently to Android chat on Freenode and IRCNet networks.</p>
<p>Quassel is a distributed IRC client. Distributed in the sense that it keeps your chat sessions on the server side: even if you get disconnected you won&#8217;t lose any chat messages. This is a nice feature for people who need to be constantly in touch with the communities.  For IRC veterans, Quassel is like the good ol&#8217; screen + irssi combo, but with an user interface which does not require a degree in Perl scripting. This is a short tutorial for getting or building  the mobile version of Quassel,  Quasseldroid for Android.</p>
<p><a href="http://blog.mfabrik.com/wp-content/uploads/2011/03/SC20110328-2053501.png"><img class="alignnone size-medium wp-image-1167" title="SC20110328-205350" src="http://blog.mfabrik.com/wp-content/uploads/2011/03/SC20110328-2053501-180x300.png" alt="" width="180" height="300" /></a></p>
<p>Everyone how has tried it knows that irssi or any terminal software suits very badly for mobile screens. QuasselDroid fixes this: it provides an user interface which is suitable even for touch screens. Also, with Quassel core on the server side, you do not need to worry about disconnections which often happen with mobile networks, With desktop Quassel and mobile QuasselDroid you should be able to  seamlessly leave your desktop, go traveling whilst continuing the  on-going dispute of the next most important internet thing with your  on-line friends and foes.</p>
<p>This tutorial show how to get binary or source from  Github and compile the project for your phone. Note that <em>QuasselDroid is still in very early developing phase</em> and the main purpose of this is to drive more development into QuasselDroid. Do not expect it to be ready for your specific use cases yet! Also, these instructions are tested only on Samsung Galaxy S with Android 2.2.</p>
<p><a href="http://blog.mfabrik.com/wp-content/uploads/2011/03/SC20110328-205252.png"><img class="alignnone size-medium wp-image-1169" title="SC20110328-205252" src="http://blog.mfabrik.com/wp-content/uploads/2011/03/SC20110328-205252-180x300.png" alt="" width="180" height="300" /></a></p>
<p>Quassel is originally based on Qt C++ libraries and uses Qt based serialization protocol to communicate between the server (your IRC session) and client (your phone). QuasselDroid implements Qt protocol from scratch in Java and does not use any Qt libraries on Android. There also existed a prior version which required a proxy server, but this has been fixed for now.</p>
<h2>Getting and building QuasselDroid</h2>
<p>Before proceeding you need</p>
<ul>
<li>A server which allows you to run a background process with more than hundred megabytes of memory usage</li>
<li><a href="http://quassel-irc.org/downloads">Quassel core</a> installed on the server side (this maintains your IRC session). Core  itself comes with decent command-line help. If you get stuck ask help on  #quassel channel @ freenode IRC network.</li>
<li>Preferable <a href="http://quassel-irc.org/downloads">Quassal desktop client</a> (Windows, OSX, Linux) for ircing from the desktop</li>
</ul>
<h3>Downloading pre-built binary</h3>
<p>Note: there exists a pre-built Android binaries for non-Android hackers. <a href="https://github.com/sandsmark/QuasselDroid/wiki/QuasselDroid-Wiki ">Download QuasselDroid Android binary from here</a>. You still need to set-up the server side core yourself.</p>
<h3>Prerequisites for building and running QuasselDroid</h3>
<p>This is the recommend method of installing QuasselDroid if you are looking for helping in QuasselDroid development. It is not that difficult, as Android tools are quite friendly for newcomers.</p>
<ul>
<li>OSX or Linux (your mileage on Windows may vary)</li>
<li>Android Phone (Android 2.1 or newer)</li>
<li><a href="http://developer.android.com/sdk/index.html">Android SDK</a></li>
<li><a href="http://www.eclipse.org/downloads/">Eclipse IDE for Java Developers</a></li>
<li>Android Eclipse plug-in (<a href="http://developer.android.com/sdk/installing.html">you need to install it through Find and Install updates inside Eclipse</a>)</li>
<li>Git (for OSX use <a href="http://www.macports.org/">Macports</a> to install it)</li>
<li>Minimal understanding of terminal and UNIX style command line</li>
</ul>
<h3>Compiling and running</h3>
<p>Install Android SDK, Eclipse  Android plug-ins for Eclipse. Note this is several hundreds of megabytes worth of software, so be patient and entertain yourself with some cool music whilst downloading.</p>
<p>Install Quassel client, Quassel core and get yourself familiar with the noveau IRC experience.</p>
<p>Get code from Github:</p>
<pre>git clone https://github.com/sandsmark/QuasselDroid</pre>
<p>Open project in Eclipse. Start Eclipse, choose or create any empty directory as workspace of just choose the default one. Then choose <em>File -&gt; Import -&gt; General -&gt; Existing projects into Workspace</em>. In Select Root Directory you need to choose a directory <strong>above</strong> Github checkout directory. Select QuasselDroid in Projects list (which is now refreshed after selecting root directory).</p>
<p>In this point I had to select the project, choose <em>Project -&gt; Clean</em> from Eclipse menu (there were some errors popping up in Eclipse internal console).</p>
<p>Right click <em>Project -&gt; choose Run as -&gt; Android application</em>.</p>
<ul>
<li>If your phone is connected via USB Eclipse will automatically build and install APK directly to your phone</li>
<li>If you do not have phone connected QuasselDroid will start in the emulator</li>
</ul>
<h2>Installing QuasselDroid</h2>
<h3><a href="http://blog.mfabrik.com/wp-content/uploads/2011/03/SC20110328-205210.png"><img class="alignnone size-medium wp-image-1168" title="SC20110328-205210" src="http://blog.mfabrik.com/wp-content/uploads/2011/03/SC20110328-205210-180x300.png" alt="" width="180" height="300" /></a></h3>
<h3>Creating a core entry</h3>
<p>When QuasselDroid is run for the first time. press Android <em>Menu</em> key on the start-up screen(this was little hard to discover) and choose Manage cores. Now you need to configure quassel core for the server &#8211; for this process you should already have experience with Quassel desktop client.</p>
<h3>SSL</h3>
<p>Also, you might need to disable SSL support if you are running a core without SSL compiled in. Again, press Android Menu key, choose <em>Preferences</em> and uncheck <em>SSL</em>.</p>
<h2>Debugging issues</h2>
<p>When you run an issue and you can repeat it reliably with necessary log traces available, file a bug report <a href="https://github.com/sandsmark/QuasselDroid/issues">on Github project page</a>.</p>
<p>Android has a logging tool called LogCat, showing log output from emulator or device. You will see Android log output in Eclipse in LogCat view when</p>
<ul>
<li>Emulator is running</li>
<li>A device is connected via USB, debug mode enabled (from system <em>Settings</em> menu)</li>
</ul>
<p>Use Eclipse <em>Window -&gt; Show -&gt; Debug perspective</em> to see LogCat window if it&#8217;s hidden.</p>
<p>If you launch the application in Eclipse using Debug run (the bug icon) Eclipse will stop on the line where an uncaught Java exception is thrown. This is very useful for debugging crashing bugs (Android pops up force close dialog).</p>
<p>On the server side, you can see quasselcore output in stdout and see how the core reacts to client connection attempts.
<p class="signature">
<a href="http://mfabrik.com/@@zoho-contact-form"><img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/mfabrik-24.png"></a> <a href="http://mfabrik.com/@@zoho-contact-form">Get developers</a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml"><img valign="middle" src="http://www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt="" style="vertical-align:middle;border:0"/></a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml">Subscribe mFabrik blog in a reader</a> <a href="http://twitter.com/mfabrik"> <img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/twitter-24.png"></a> <a href="http://twitter.com/moo9000">Follow me on Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2011/03/28/quasseldroid-quassel-for-android-cross-platform-mobile-irc-client/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Taking a screenshot on Samsung Galaxy S and other Samsung Android devices</title>
		<link>http://blog.mfabrik.com/2011/02/27/taking-a-screenshot-on-samsung-galaxy-s-and-other-samsung-android-devices/</link>
		<comments>http://blog.mfabrik.com/2011/02/27/taking-a-screenshot-on-samsung-galaxy-s-and-other-samsung-android-devices/#comments</comments>
		<pubDate>Sun, 27 Feb 2011 18:44:03 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[back key]]></category>
		<category><![CDATA[galaxy s]]></category>
		<category><![CDATA[home key]]></category>
		<category><![CDATA[samsung]]></category>
		<category><![CDATA[screen capture]]></category>
		<category><![CDATA[screenshot]]></category>
		<category><![CDATA[wildfire]]></category>

		<guid isPermaLink="false">http://blog.mfabrik.com/?p=1029</guid>
		<description><![CDATA[Samsung Galaxy S comes with a internal screenshot capturing feature similar to iPhone. This is not the same as the infamous stock Android screenshot facility which forces you to turn on USB debugging, downloading Android SDK, etc. Captured screenshots can be found from Gallery in their own category ScreenCapture. To take a screenshot Hold Back [...]]]></description>
			<content:encoded><![CDATA[<p>Samsung Galaxy S comes with a internal screenshot capturing feature similar to iPhone.<span style="text-decoration: line-through;"> This is not the same as the infamous stock Android screenshot facility which forces you to turn on USB debugging, downloading Android SDK, etc.</span> Captured screenshots can be found from Gallery in their own category <em>ScreenCapture</em>.</p>
<p>To take a screenshot</p>
<ul>
<li>Hold Back touch key</li>
<li>Double press Home key</li>
</ul>
<p>This feature is probably available on other Samsung Android devices, like Samsung Wildfire and Samsung Galaxy Tab.
<p class="signature">
<a href="http://mfabrik.com/@@zoho-contact-form"><img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/mfabrik-24.png"></a> <a href="http://mfabrik.com/@@zoho-contact-form">Get developers</a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml"><img valign="middle" src="http://www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt="" style="vertical-align:middle;border:0"/></a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml">Subscribe mFabrik blog in a reader</a> <a href="http://twitter.com/mfabrik"> <img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/twitter-24.png"></a> <a href="http://twitter.com/moo9000">Follow me on Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2011/02/27/taking-a-screenshot-on-samsung-galaxy-s-and-other-samsung-android-devices/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>WebGL on Android WebKit browser demoed by Sony</title>
		<link>http://blog.mfabrik.com/2011/02/25/webgl-on-android-webkit-browser-demoed-by-sony/</link>
		<comments>http://blog.mfabrik.com/2011/02/25/webgl-on-android-webkit-browser-demoed-by-sony/#comments</comments>
		<pubDate>Fri, 25 Feb 2011 00:29:50 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[html5]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[sony]]></category>
		<category><![CDATA[webgl]]></category>
		<category><![CDATA[webkit]]></category>
		<category><![CDATA[xperia]]></category>

		<guid isPermaLink="false">http://blog.mfabrik.com/?p=1018</guid>
		<description><![CDATA[This definitely looks promising. 3D accelerated effects are no longer the monopoly of desktop beta browsers (Firefox 4, Google Chrome 9&#8230; I am looking at you). Sony demoes Javascript WebGL on its Xperia handset. WebGL would be major turning point for mobile gaming, as it would lower the barrier of enty for building cross-platform mobile [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.sonyericsson.com/developerworld/2011/02/24/webgl-support-in-the-android-web-browser/">This definitely looks promising</a>.</p>
<p>3D accelerated effects are no longer the monopoly of desktop beta browsers (Firefox 4, Google Chrome 9&#8230; I am looking at you). Sony demoes Javascript WebGL on its Xperia handset. WebGL would be major turning point for mobile gaming, as it would lower the barrier of enty for building cross-platform mobile games.</p>
<p>Not just games, but the whole web user experience will be redefined when you can finally push impressive visuals to the site visitors.</p>
<p>I can so see the demo scene of 90s coming back soon&#8230;
<p class="signature">
<a href="http://mfabrik.com/@@zoho-contact-form"><img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/mfabrik-24.png"></a> <a href="http://mfabrik.com/@@zoho-contact-form">Get developers</a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml"><img valign="middle" src="http://www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt="" style="vertical-align:middle;border:0"/></a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml">Subscribe mFabrik blog in a reader</a> <a href="http://twitter.com/mfabrik"> <img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/twitter-24.png"></a> <a href="http://twitter.com/moo9000">Follow me on Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2011/02/25/webgl-on-android-webkit-browser-demoed-by-sony/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Firefox 4 is awesome &#8211; switching back to it</title>
		<link>http://blog.mfabrik.com/2011/02/13/firefox-4-is-awesome-switching-back-to-it/</link>
		<comments>http://blog.mfabrik.com/2011/02/13/firefox-4-is-awesome-switching-back-to-it/#comments</comments>
		<pubDate>Sun, 13 Feb 2011 16:46:10 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[web browser]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[fennec]]></category>
		<category><![CDATA[firefox 4]]></category>
		<category><![CDATA[firegestures]]></category>
		<category><![CDATA[gecko]]></category>
		<category><![CDATA[google apps]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mouse gestures]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[panorama]]></category>
		<category><![CDATA[plone]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[speed dial]]></category>
		<category><![CDATA[tab groups]]></category>
		<category><![CDATA[uaswitcher]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://blog.mfabrik.com/?p=970</guid>
		<description><![CDATA[Firefox 4 is awesome.  After being a Google Chrome user for one year, I tried Firefox 4 beta 11. I am switching back to Firefox as my primary browser. As a web power user, I found Firefox 4 gives me more efficient tools to get my work done. It is faster, especially it launches and [...]]]></description>
			<content:encoded><![CDATA[<p>Firefox 4 is awesome.  After being a Google Chrome user for one year, I tried Firefox 4 beta 11. I am switching back to Firefox as my primary browser. As a web power user, I found Firefox 4 gives me more efficient tools to get my work done.</p>
<ul>
<li>It is faster, especially it launches and opens new tabs faster than Chrome</li>
<li>User interface has some nice new innovations, like non-intrusive Download pop-ups and password update dialogs</li>
<li>Tab groups (Panorama) allows me to create different &#8220;workspaces&#8221; for leisure time, like Facebook surfing, and work time containing tabs for corporate email and calendar</li>
<li>Sync works across my different computers, though Chrome can also do this nowadays</li>
</ul>
<h2>Tab groups</h2>
<p><a href="http://blog.mfabrik.com/wp-content/uploads/2011/02/Screen-shot-2011-02-13-at-6.34.14-PM.png"><img class="alignnone size-full wp-image-973" title="Screen shot 2011-02-13 at 6.34.14 PM" src="http://blog.mfabrik.com/wp-content/uploads/2011/02/Screen-shot-2011-02-13-at-6.34.14-PM.png" alt="" width="712" height="504" /></a></p>
<p>I have been experiementing with following tab groups which mostly correspond my different &#8220;behavior modes&#8221; I have on when working on a computer</p>
<ul>
<li>Work tabs: email, calendar, docs</li>
<li>Social tabs: Facebook, Twitter and such</li>
<li>Plone, Python and other programming related: All documents and links open, for example copy-pasting them to IRC discussion to give support for someone</li>
</ul>
<p>Note that I had to add &#8220;Tab group&#8221; button manually to toolbar, as it was not added there automatically after update. Just right click on empty space next to tabs and choose &#8220;Customize&#8221;</p>
<h2>Add-ons</h2>
<p>Some add-ons I am using and I haven&#8217;t found equally good alternatives on Google Chrome</p>
<ul>
<li><a href="http://www.new-tab-jumpstart.com/">New Tab JumpStart &#8211; </a>speed dial for your recently visited pages and bookmarks when opening a new tab</li>
<li><a href="http://www.xuldev.org/firegestures/">FireGestures</a> &#8211; Mouse gestures which also work on user interface and not just web pages and which do not mess with right button click</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/web-developer/">Web Developer toolbar </a>- test print CSS styles, clear cookies easily, somethign that Firebug doesn&#8217;t do well</li>
<li><a href="http://chrispederick.com/work/user-agent-switcher/">User Agent Switcher</a> (<a href="http://webandmobile.mfabrik.com/docs/web-and-mobile/user-manual/sniffing">needed for mobile site development, some instructions here</a>)</li>
<li>&#8230;. and of course Firebug!</li>
</ul>
<p>I still wish to have add-on sync, so I wouldn&#8217;t need to install add-ons separately on each computer.</p>
<p>Firefox for Mobile (Fennec) does not yet provide as solid experience as its desktop counterpart. Mobile Firefox team definitely need to add some speed to its engine before I can consider it alternative for WebKit on my Android phone. But when it gets there and the sync feature is in the place, I&#8217;ll start using it instantly.
<p class="signature">
<a href="http://mfabrik.com/@@zoho-contact-form"><img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/mfabrik-24.png"></a> <a href="http://mfabrik.com/@@zoho-contact-form">Get developers</a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml"><img valign="middle" src="http://www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt="" style="vertical-align:middle;border:0"/></a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml">Subscribe mFabrik blog in a reader</a> <a href="http://twitter.com/mfabrik"> <img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/twitter-24.png"></a> <a href="http://twitter.com/moo9000">Follow me on Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2011/02/13/firefox-4-is-awesome-switching-back-to-it/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Native mobile application development with Plone, WordPress and Python</title>
		<link>http://blog.mfabrik.com/2011/02/09/native-mobile-application-development-with-plone-wordpress-and-python/</link>
		<comments>http://blog.mfabrik.com/2011/02/09/native-mobile-application-development-with-plone-wordpress-and-python/#comments</comments>
		<pubDate>Wed, 09 Feb 2011 13:59:32 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[plone]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[android scripting environment]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[google app engine]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[meego]]></category>
		<category><![CDATA[mobile apps]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[phonegap]]></category>
		<category><![CDATA[push notification]]></category>
		<category><![CDATA[pyobjc]]></category>
		<category><![CDATA[pypy]]></category>
		<category><![CDATA[pyside]]></category>
		<category><![CDATA[qt]]></category>
		<category><![CDATA[series 60]]></category>
		<category><![CDATA[symbian]]></category>
		<category><![CDATA[webkit]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[wurfl]]></category>

		<guid isPermaLink="false">http://blog.mfabrik.com/?p=937</guid>
		<description><![CDATA[We have just released two mobile applications backed by Plone, WordPress and Python middleware code. In this blog post I&#8217;ll tell some background information what we have learnt with mobile applicationand Python development. mFabrik News &#8211; download now for iPhone and Android Why create a mobile application? The first question is why one rather create [...]]]></description>
			<content:encoded><![CDATA[<p>We have just released two mobile applications backed by Plone, WordPress and Python middleware code. In this blog post I&#8217;ll tell some background information what we have learnt with mobile applicationand Python development.</p>
<p style="text-align: center;"><strong>mFabrik News &#8211; download now for iPhone and Android</strong></p>
<p style="text-align: center;"><a href="http://bit.ly/mfabriknewsitunesblog"><img class="aligncenter" title="iPhoneFooter" src="http://blog.mfabrik.com/wp-content/uploads/2011/01/iPhoneFooter.png" alt="" width="88" height="31" /></a></p>
<p style="text-align: center;"><a href="http://bit.ly/mfabriknewsappbrainblog"><img class="aligncenter" title="AndroidFooter" src="http://blog.mfabrik.com/wp-content/uploads/2011/01/AndroidFooter.png" alt="" width="88" height="31" /></a></p>
<h2>Why create a mobile application?</h2>
<p>The first question is why one rather create a mobile application when the same task can be accomplished with a mobile site? Most people even <a href="http://www.wirelessweek.com/News/2010/10/Mobile-Content-Report-Mobile-Browsers-Trump-Mobile-Applications/">prefer mobile sites over applications</a>. From a pure engineering viewpoint, mobile applications are usually just glorified RSS readers that embed Webkit and add some native user interface bling bling over it. With an app, you are limiting your target audience, because an application is limited to one platform. Maintaining application(s) and application developers is more expensive compared to a mobile site which few (cheap) PHP junkies can throw together.</p>
<p>But is not always technology or price which matters. Mobile applications have prestige value &#8211; <em>having or showing success, rank, wealth, etc.</em> If you have a high quality brand, you probably want to have a mobile application too. When you see the brand logo swinging forth and back in an iPhone application with smooth animation running 60 frames per second, you see that it is a proper placement for the brand logo. The output is more luxury, more carefully planned, and does not look like it was thrown together by few cheap web developers.</p>
<p>There are even rationale reason for going after applications. First, you are in a business of making money. It is a lot of easier when the platform itself is offering you a payment solution without a monthly fees (iTunes payment). Other good reason is that there exists interaction between the application and your content beyond the browser window.  You can push messages or do things even if the user is not on your site (see more information about the push solution we implemented below).</p>
<h2>Mobile application development and Python</h2>
<p>As most of this post readers are probably fellow Python developers, here are some thoughts specifically aimed for them. Python itself is not a very good alternative what comes to mobile application development. Though, the application itself may not contain Python code, Python still shines on the backend side of the things. For example, we&#8217;ll hope to publish an example application using Google App Engine in the near future.</p>
<p>The only future proof platform where Python is 1st class citizen for building applications, is Nokia&#8217;s Meego with its Pyside and Qt bindings. Unfortunately Meego doesn&#8217;t have any shipped handsets and looks like it never will.</p>
<p>Android has script bindings, but they are not good enough for real application development, as interaction with the native platform happens over TCP/IP sockets. However, <a href="http://morepypy.blogspot.com/2011/01/jit-backend-for-arm-processors.html">Android has seen some recent exciting development from PyPy project</a>, possibly enabling native Android development for Python in the future.</p>
<p>iOS with Python could be a go, now when Apple has lift ban on interpreted languages. I haven&#8217;t heard anybody doing it yet, though. <a href="http://www.telesphoreo.org/pipermail/iphone-python/2008-October/000203.html">CTypes had some problems long time ago regarding run-time generated code for Python bindings</a>.</p>
<p>Python has also a port for Series 60 (Symbian) &#8211; don&#8217;t go there if you are not prototyping. It is good platform for students for  playing around, but unfortunately it has never been considered as serious development environment by the handset manufacturer. You have tons of headaches if you actually want to release a product version of your application.  Nokia N900, soon supported. is better prototyping platform for Python than Series 60 as you get full Debian userland.</p>
<h2>Mobile application development and wrappers</h2>
<p><a href="http://blog.mfabrik.com/2009/09/30/cross-platform-mobile-application-development-and-payment/">There exist various wrapper technologies which help you to wrap your HTML5 application to a native application shell</a>. With simplistic APIs provided through Javascript bindings, you can access a limited subset of native platform APIs. Wrapper technologies are mostly aimed for web developers, who do not have any experience on application development and they might want to skip the learn experience of native development.</p>
<p>Wrapper technologies do their job and produce decent apps. But if you are a Python developer I recommend you skip the wrapper step and build your own native user interface and embed Webkit yourself. Designing an user interface is much is easier with Apple&#8217;s Interface Builder or Google&#8217;s  Android tools than with half-baked Javascript bindings. The fact that you are actually able to insert a real breakpoint into your code is itself worth of skipping wrappers. If you already are a Python developer you already know at least one real programming language and mastering Objective-C or Java should be an easy task for you.</p>
<p>Webkit itself has bugs. You will regularly hit obscrure bugs when the amount of  Javascript and CSS code grows. In the worst cases Webkit just dies under your application without a way to debug the problem &#8211; sometimes without a workaround available for the problem. This means dead end for your lovely application. You don&#8217;t want to end up to this situation. So, just to have more low level control, using native tools is good.</p>
<h2>mFabrik News application</h2>
<p><a href="http://blog.mfabrik.com/wp-content/uploads/2011/02/news-both.png"><img class="alignnone size-full wp-image-954" title="news both" src="http://blog.mfabrik.com/wp-content/uploads/2011/02/news-both.png" alt="" width="700" height="500" /></a></p>
<p>mFabrik News mobile application allows you to follow the latest news of mobile and web development, produced by our hacking team. The applications source the news from our Plone based web site and WordPress blog (which you are currently reading). It uses special RSS streams prepared with our <a href="http://webandmobile.mfabrik.com">Web and Mobile multichannel publishing solution</a>: news images are optimized for mobile device screens using a handset database (Wurfl) and some other HTML preproessing is done to make the posts look better in embedded WebKit. Processing is done using <a href="http://pypi.python.org/pypi/mobile.sniffer">mobile.sniffer</a> and <a href="http://pypi.python.org/pypi/mobile.htmlprocessing">mobile.htmlprocessing</a> Python packages which are generic Python packages and should be usable in various environments, including App Engine.</p>
<p>iOS mFabrik News application has push notification support. Android doesn&#8217;t yet implement push solution, <a href="http://android-developers.blogspot.com/2010/05/android-cloud-to-device-messaging.html">but it is coming for Android 2.2 handsets</a>.  Please <a href="http://blog.mfabrik.com/2011/01/29/apple-push-notifications-apn-with-python/">see the earlier blog post how we use Apple Push Notifications with Python</a>.</p>
<p>Download, give the apps a spin and report any feedback! (direct links at the beginning of the post)</p>
<p>We may or may not release the source code of the applications, depending if anybody thinks they actually would find it useful.
<p class="signature">
<a href="http://mfabrik.com/@@zoho-contact-form"><img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/mfabrik-24.png"></a> <a href="http://mfabrik.com/@@zoho-contact-form">Get developers</a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml"><img valign="middle" src="http://www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt="" style="vertical-align:middle;border:0"/></a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml">Subscribe mFabrik blog in a reader</a> <a href="http://twitter.com/mfabrik"> <img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/twitter-24.png"></a> <a href="http://twitter.com/moo9000">Follow me on Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2011/02/09/native-mobile-application-development-with-plone-wordpress-and-python/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Apple push notifications (APN) with Python</title>
		<link>http://blog.mfabrik.com/2011/01/29/apple-push-notifications-apn-with-python/</link>
		<comments>http://blog.mfabrik.com/2011/01/29/apple-push-notifications-apn-with-python/#comments</comments>
		<pubDate>Sat, 29 Jan 2011 14:14:39 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[ios]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[plone]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[Android Cloud to Device Messaging (C2DM)]]></category>
		<category><![CDATA[apn]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[apple push notification]]></category>
		<category><![CDATA[atom]]></category>
		<category><![CDATA[bitbucket]]></category>
		<category><![CDATA[bitreader]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[froyo]]></category>
		<category><![CDATA[google cloud push]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://blog.mfabrik.com/?p=942</guid>
		<description><![CDATA[We have created a middleware service which inputs RSS feeds and outputs Apple Push Notification. This allows integrate push notification support for your existing content management system easily. This blog post should give you some ideas if you are planning to create similar services. To have the über-experience of customer engagement with mobile push notifications [...]]]></description>
			<content:encoded><![CDATA[<p>We have created a middleware service which inputs RSS feeds and outputs Apple Push Notification. This allows integrate push notification support for your existing content management system easily. This blog post should give you some ideas if you are planning to create similar services.</p>
<p>To have the über-experience of <em>customer engagement</em> with mobile push notifications you need</p>
<ul>
<li>A mobile application (iOS, Android 2.2)</li>
<li>RSS feed to notifications middleware server (our solution)</li>
<li>RSS feeds themselves</li>
<li>Windows/UNIX server running the middleware</li>
</ul>
<h2>How it is put together</h2>
<p><a href="http://www.tornadoweb.org/">Tornado</a> web server is used to handle incoming HTTP requests in scalable manner.</p>
<p><a href="http://code.google.com/p/feedparser/">feedparser</a> library fetches RSS feeds and processes them to client notifications.</p>
<p>BitReader (<a href="http://blog.mfabrik.com/2010/09/08/bitreader-python-module-for-reading-bits-from-bytes/">post</a>, <a href="https://bitbucket.org/jtoivola/bitreader/wiki/Home">source</a>) library is used to create messages to interact with <a href="http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingWIthAPS/CommunicatingWIthAPS.html">Apple push notification service</a> (APNs). The protocol is bit based protocol running directly over TCP/IP. Apple service has been designed to handle high volumes of traffic &#8211; it does not use anything like stateless HTTP to waste bandwidth.</p>
<p>Django models are used to store the state of each individual subscriber. Django&#8217;s ORM abstraction allows us to use the same middleware for small distributions (&lt; 1000 clients, SQLite database) or big ones (millions of clients, MySQL database). The stored state information includes the subscriber id and the current badge number &#8211; the red circle on the app icon showing the count unread posts. When the application is launched, it can decrease its badge number by doing a HTTP call to the server.</p>
<p>Django settings are used to put together required certificates and whether the application is run in sandbox mode.</p>
<h2>Walkthrough</h2>
<p>There is a core IO loop, running in a separate process, called <em>stream observer</em>. This loops updates fetches RSS feeds&#8217; status and passes updates to Tornado server over HTTP.  With this arrangement, any HTTP capable client can send push notifications.</p>
<p>Tornado handles incoming updates, updates the related subscribe status &#8211; how many unread notifications, etc. through exposed Django views. The notification is formatted according to the variables available on the subscriber mobile platform. In Apple&#8217;s case, the notification message gets title, badge, sound and a launch image. Payload is checked against hard 256 byte limit.</p>
<p>Then the payload is pushed to <a href="http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingWIthAPS/CommunicatingWIthAPS.html">Apple servers</a> over TCP/IP protocol. SSL certificaties needed.</p>
<p>A subscriber is registered  when the mobile application is launched. The application asks a subscriber id from Apple servers. Then, this subscriber id is delivered to our middleware over normal HTTP call.</p>
<p>The middleware also handles feedback service which gives you list of devices which have unsubscribed from your service. This way you can cut off notifications from unsubscribed clients. This is also done using BitReader and TCP/IP.</p>
<h2>Future</h2>
<p>The architecture is built so that different push backends can be included in the service. Android support is on the roadmap and we probably will have Blackberry and Meego support (when/if Nokia announces such a service).</p>
<p>We have currently tested this solution with RSS streams from WordPress and Plone.</p>
<p>We may release source code when it&#8217;s ready.</p>
<h2>More info</h2>
<ul>
<li><a href="http://blog.boxedice.com/2009/07/10/how-to-build-an-apple-push-notification-provider-server-tutorial/">http://blog.boxedice.com/2009/07/10/how-to-build-an-apple-push-notification-provider-server-tutorial/</a></li>
</ul>
<p class="signature">
<a href="http://mfabrik.com/@@zoho-contact-form"><img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/mfabrik-24.png"></a> <a href="http://mfabrik.com/@@zoho-contact-form">Get developers</a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml"><img valign="middle" src="http://www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt="" style="vertical-align:middle;border:0"/></a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml">Subscribe mFabrik blog in a reader</a> <a href="http://twitter.com/mfabrik"> <img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/twitter-24.png"></a> <a href="http://twitter.com/moo9000">Follow me on Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2011/01/29/apple-push-notifications-apn-with-python/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Android on-device debugging launch fails: Can&#8217;t bind to local 8600 for debugger</title>
		<link>http://blog.mfabrik.com/2010/12/01/android-on-device-debugging-launch-fails-cant-bind-to-local-8600-for-debugger/</link>
		<comments>http://blog.mfabrik.com/2010/12/01/android-on-device-debugging-launch-fails-cant-bind-to-local-8600-for-debugger/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 20:08:44 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[adb]]></category>
		<category><![CDATA[connect]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[debugger]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[eclipce]]></category>
		<category><![CDATA[failure]]></category>
		<category><![CDATA[launch]]></category>
		<category><![CDATA[localhost]]></category>
		<category><![CDATA[logcat]]></category>
		<category><![CDATA[target]]></category>
		<category><![CDATA[usb]]></category>

		<guid isPermaLink="false">http://blog.mfabrik.com/?p=860</guid>
		<description><![CDATA[You try to launch Android app on the device from Eclipse. The debugger fails to connect and times out. Instead, you see this in the Console log: Can't bind to local 8600 for debugger To fix this do the following steps exactly in this order Close Eclipse Disconnect USB cable Kill all adb instances on [...]]]></description>
			<content:encoded><![CDATA[<p>You try to launch Android app on the device from Eclipse. The debugger fails to connect and times out. Instead, you see this in the Console log:</p>
<pre>Can't bind to local 8600 for debugger</pre>
<p>To fix this do the following steps exactly in this order</p>
<ul>
<li> Close Eclipse</li>
<li>Disconnect USB cable</li>
<li>Kill all adb instances on the task manager of your computer</li>
<li>Start Eclipse</li>
<li>Connect USB cable</li>
<li>Launch the application</li>
</ul>
<p>If this does not help then make sure that you are using IPv4 address for <em>localhost</em> DNS loopback name. Edit <em>/etc/hosts</em> and comment out all IPv6 entries.
<p class="signature">
<a href="http://mfabrik.com/@@zoho-contact-form"><img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/mfabrik-24.png"></a> <a href="http://mfabrik.com/@@zoho-contact-form">Get developers</a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml"><img valign="middle" src="http://www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt="" style="vertical-align:middle;border:0"/></a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml">Subscribe mFabrik blog in a reader</a> <a href="http://twitter.com/mfabrik"> <img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/twitter-24.png"></a> <a href="http://twitter.com/moo9000">Follow me on Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2010/12/01/android-on-device-debugging-launch-fails-cant-bind-to-local-8600-for-debugger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Samsung Galaxy S i9000 and Android 2.1 &#8211; enable file copy over USB as mass storage mode on OSX and Linux</title>
		<link>http://blog.mfabrik.com/2010/09/04/samsung-galaxy-s-i9000-and-android-2-1-enable-file-copy-over-usb-as-mass-storage-mode-on-osx-and-linux/</link>
		<comments>http://blog.mfabrik.com/2010/09/04/samsung-galaxy-s-i9000-and-android-2-1-enable-file-copy-over-usb-as-mass-storage-mode-on-osx-and-linux/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 11:50:11 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[copy]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[file browser]]></category>
		<category><![CDATA[finder]]></category>
		<category><![CDATA[galaxy s]]></category>
		<category><![CDATA[internal]]></category>
		<category><![CDATA[kies]]></category>
		<category><![CDATA[mass memory]]></category>
		<category><![CDATA[microsd]]></category>
		<category><![CDATA[mount]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[nautilus]]></category>
		<category><![CDATA[samsung]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[usb]]></category>

		<guid isPermaLink="false">http://blog.mfabrik.com/?p=756</guid>
		<description><![CDATA[Samsung Galaxy S i9000 (Android 2.1) comes with Samsing Kies Windows software which is supposed to be used for copying files between your computer and the phone. Naturally, this Windows software 1) is not very good 2) works on Windows only. However, you can still mount  the device as normal USB mass storage. Just set [...]]]></description>
			<content:encoded><![CDATA[<p>Samsung Galaxy S i9000 (Android 2.1) comes with Samsing Kies Windows software which is supposed to be used for copying files between your computer and the phone.</p>
<p>Naturally, this Windows software 1) is not very good 2) works on Windows only.</p>
<p>However, you can still mount  the device as normal USB mass storage. Just set Settings -&gt; Applications -&gt; Development -&gt; Allow USB debugging checkbox on and replug the USB cable. Then open the notifications menu (pull down the top bar on the home screen). Now there is new option USB Connected. Choose it and then choose Mount.</p>
<p>You should be able to access both the phone internal storage and microSD memory card in Finder / Nautilus.</p>
<p>I created directory /media/mp3 where I copied few music files from my computer. I was able to achieve 5 MB/s transfer rate from my Asus Eee 1005HA PC when writing files to phone internal memory. The phone music player was able to pick up them fine.</p>
<p>More info</p>
<ul>
<li><a href="http://forumuk.samsungmobile.com/PostsList.aspx?ForumPostID=199886">http://forumuk.samsungmobile.com/PostsList.aspx?ForumPostID=199886</a></li>
</ul>
<p class="signature">
<a href="http://mfabrik.com/@@zoho-contact-form"><img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/mfabrik-24.png"></a> <a href="http://mfabrik.com/@@zoho-contact-form">Get developers</a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml"><img valign="middle" src="http://www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt="" style="vertical-align:middle;border:0"/></a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml">Subscribe mFabrik blog in a reader</a> <a href="http://twitter.com/mfabrik"> <img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/twitter-24.png"></a> <a href="http://twitter.com/moo9000">Follow me on Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2010/09/04/samsung-galaxy-s-i9000-and-android-2-1-enable-file-copy-over-usb-as-mass-storage-mode-on-osx-and-linux/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Synchonizing calendar and contacts from Nokia N900 to Samsung i9000 Galaxy S Android</title>
		<link>http://blog.mfabrik.com/2010/09/04/synchonizing-calendar-and-contacts-from-nokia-n900-to-samsung-i9000-galaxy-s-android/</link>
		<comments>http://blog.mfabrik.com/2010/09/04/synchonizing-calendar-and-contacts-from-nokia-n900-to-samsung-i9000-galaxy-s-android/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 11:32:08 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[maemo]]></category>
		<category><![CDATA[n900]]></category>
		<category><![CDATA[syncevolution]]></category>

		<guid isPermaLink="false">http://blog.mfabrik.com/?p=723</guid>
		<description><![CDATA[Here are instructions for advanced users how to migrate their life to N900 for new Android mobile phones. Copy contacts Register at ScheduleWorld (7 days free trial) Install Dropbear SSH on N900 (makes typing less painful) Install syncevolution (tested with command line version) on N900 Create syncevolution templates using syncevolution -c scheduleworld (work over SSH [...]]]></description>
			<content:encoded><![CDATA[<p>Here are instructions for advanced users how to migrate their life to N900 for new Android mobile phones.</p>
<h2>Copy contacts</h2>
<ul>
<li>Register at ScheduleWorld (7 days free trial)</li>
<li>Install Dropbear SSH on N900 (makes typing less painful)</li>
<li>Install syncevolution (tested with command line version) on N900</li>
<li>Create syncevolution templates using syncevolution -c scheduleworld (work over SSH from desktop computer using)</li>
<li>Change username and password in ~/.config/syncevolution/scheduleworld/config.php (use nano shell based text editor)</li>
<li>Change sync to cliet to server one way in ~/.config/syncevolution/scheduleworld/addressbook/config.php and ~/.config/syncevolution/scheduleworld/calendar/config.php</li>
<li>Run syncevolution: syncevolution scheduleworld</li>
<li>Check that scheduleworld.com received your data using web browser</li>
<li>Install Funambol app on Android device from Android Market</li>
<li>Run it. Use credentials: user = numeric scheduleworld.com username, password = given in scheduleworld.com registration email, server url = http://sync.scheduleworld.com/funambol/ds</li>
<li>Alternative 2: export contacs in scheduleworld.com and import .vcf to fresh gmail account</li>
<li>Alternative 3: there exist apps to read .vcf files from SD card &#8211; Scheduleworld can export these files.</li>
</ul>
<ul></ul>
<h2>Copy calendar</h2>
<p>Note: <a href="http://www.google.com/support/forum/p/Google%20Mobile/thread?tid=3c0c89f73ca20404&amp;hl=en">Android 2.1 owners might need to reset their device to factory settings as 2.1 supports synchronizing calendar only from the Google account used to active the device</a>. You need to be able to import calendar entries to Google/Gmail account you initially used to active the device / Android market. Android 2.1 devices do not support syncing calendar from multiple accounts (even if they are Google&#8217;s)</p>
<ul>
<li>(Register a dummy gmail.com account)</li>
<li> Go to scheduleworld.com. From Tools menu choose Export -&gt; Events and Task</li>
<li>Download iCal (.ics) file locally</li>
<li>Go to gmail.com account</li>
<li>Open calendar</li>
<li>Go to Settings -&gt; Calendars -&gt; Import Calendar</li>
<li>Upload .ics file</li>
<li>Now when device syncs with Google Calendar it will receive the calendar entries</li>
</ul>
<p>I succesfully 600 phone numbers and 60 calendar entries.</p>
<h2>Back up SMS</h2>
<p>If you want to back up SMS messages from the device just copy SQLite database over SCP. You can later convert SQLite entries to any format using sqlite command line tool.</p>
<pre>scp user@192.168.1.146:/home/user/.rtcom-eventlogger/el.db .</pre>
<p>That&#8217;s all folks!
<p class="signature">
<a href="http://mfabrik.com/@@zoho-contact-form"><img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/mfabrik-24.png"></a> <a href="http://mfabrik.com/@@zoho-contact-form">Get developers</a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml"><img valign="middle" src="http://www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt="" style="vertical-align:middle;border:0"/></a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml">Subscribe mFabrik blog in a reader</a> <a href="http://twitter.com/mfabrik"> <img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/twitter-24.png"></a> <a href="http://twitter.com/moo9000">Follow me on Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2010/09/04/synchonizing-calendar-and-contacts-from-nokia-n900-to-samsung-i9000-galaxy-s-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

