Tuesday, October 23, 2012

Integrating Personal Information Manager accross Devices

I like to have integrated Personal Information Manager (Calendar, Task, Contacts, Notes, Files) across my devices. It just does not make sense for me to have different set of tasks, calendar, contacts, etc.. on different devices that I used.

On the pre-Cloud days I used BirdieSync at the core of my synching (I am a happy Thunderbird user). It worked well until I updated my mobile ecosystem to Apple (iPhone and iPad). It was the time when I switched my system to Cloud-based since trying to keep device-to-device synching was no longer practical. So, below are my current setup in general.

Backend : Google, Toodledo and Dropbox

After some searching I settle with Google, Toodledo and Dropbox  as backend :
  • Google : Calendar, Contacts, Email
  • Toodledo : Task, Support Notes
  • Dropbox : Files
They form a powerful combination to support all my data need.  Also, with a high availability of clients on virtually all devices I have great flexibility on forming the setup on the Frontend

Desktop : Thunderbird+Lightning and Addons

 On the desktop I manged to have one conveniently integrated setup below
  • Thunderbird + Lightning Calendar Addon. I only used the calendar on Lightning since the task on Toodledo does not support bidirectional synching to it
  • There are Google Providers Addon that helps sync contact and calendar with Thunderbird
  • For Toodledo, I mount it to Thunderbird using WepApp Tabs Addon
Apart from the above, Dropbox pretty much handle the rest of the data i.e: various files.

Mobile : Pocket Informant, Toodledo App 

It's quite flexible on the mobile side these days since lot of various options available to connect to the above backends. Here are just the highlights of what I used currently
  • Pocket Informant. It synched all calendar, task, contacts and notes to Google and Toodledo, so it's almost a one-stop solution for it
  • Dropbox client. The mobile version support file viewing to some extent.

Having a reliably integrated Information Manager is essential to have us really using it. Otherwise, on this time of multiple devices, we'll just play around with the system on the beginning and potentially discard it later on when the data become scattered and unusable.

I find the above setup working for me personally. You might find other setup more align with your usage and the level of integration that you think is acceptable.

Tuesday, October 16, 2012

How to speed up Code-Build-Test cycle on Android Development

I find that without serious tweaking, Android Emulator can be quite a pain to work with. It's slowness can disturb Code-Build-Test cycle significantly and it accumulates on each cycle wasting some precious development time and not to mention breaking the thinking and work flow.

Here's some tweaks that I find helpful to minimize the problem and make the development flow comfortable again :

  • Configure Hadware Acceleration for emulator to the best that your machine can support. Follow the guide to Setup hardware acceleration Android's developer site. Using it accelerate the Graphic and Virtual Machine
  • Increase the RAM of emulator
  • Minimize the builtin data size of the app. If there's a lot of multimedia files, find a way to just use only small subset of it while developing. The bigger the data the app has, the longer it took to port the app from the development system to emulator which would be bad when happen hundreds time a day
There is also one non-technical matter that I find quite helpful and that is using multiple monitor. With the emulator on the second monitor and the IDE on the first one, the testing, tracing and fixing can be more fluid and relatively faster since there is no window switching occur.

Tuesday, October 02, 2012

Storage and Reader/Player App on iOS for File-Centric Usage

I was a happy Windows Mobile user back in the day and I like how I can access it somehow just like another storage system. The system can be used more as File-Centric system rather than App-Centric like the recent mobile system.

This feature can be quite useful sometime e.g: bring file when in a hurry to  read/play on the go or copy somewhere else later. I missed this kind of use case when started to use iPhone where it has sand boxed model for the App and the only way to interact with the app and storage is through limited iTunes storage model (which is not quite intuitive nor practical at times).  

Thus, my search for a good storage-related app started. Along the way I find that the apps I found also feature built-in reader and player. This is quite interesting since this makes it a self-sufficient subsystem in itself beyond just a mere storage app and it fits with my needs mentioned above.

So, here's some of the apps that I used right now :

  • File Explorer (Universal). This is the most complete in term of feature that I know of. What I really like is how it can access Samba share and Play directly (without copying) many formats that iOS does not support natively. It has great reader/player functionality but from the feel of it took more of  Storage first, Reader/Player second approach.
  • Good Reader (iPad). I needed more advanced PDF reader for my iPad than the built-in one, so I bought this. It turns out it could function as a storage app too and in fact many people use it as such. It's reader first app though with a good general-purpose storage facility.
  • ReaddleDocs (iPhone). I got this when it goes on sale (free) but despite it's price at that time it is a very good app. It's rival Good Reader for reading feature although for PDF reading, good reader has much more sophisticated feature. However, the interesting aspect of this app is how beautiful the built-in reader/player is. It complement my usage of File Explorer above.
Apart form features listed above, all of those app support  features typically exist storage app is quite complete (cloud services support, web-based interface, etc..). They are all enable me to use iPhone/iPad in File-Centric manner when needed.