Sunday, October 16, 2011

Sync Google calendar with Gnome Clock (calendar applet)

This guide explains how to do it:

http://utkarshsengar.com/2009/11/google-calendar-with-gnome-clock/

Sunday, September 25, 2011

Remove app from device (fast)

This guide is a fast way to remove an apk you have been developing from the device:


  1. For easy access to the adb binary, create a folder in your home directory bin and place a symbolic link to your original adb binary.
    cd ~
      • mkdir bin
      • cd bin
ln -s ../Software/android-sdk-linux_86/platform-tools/adb adb
(if your original adb binary lives in /home/your_user_name/Software/android-sdk-linux_86)
  1. Re-login to your Ubuntu workstation and you are done.
Next time to quickly remove your app, open a terminal prompt (Ctrl+Alt+T) and type adb uninstall your.app.package.name.

Sunday, August 28, 2011

Android Logging Best Practices

You are implementing some small piece of logic, deep inside of your code's activities and a crash occurs, problem is, you have been scrolling LogCat window and you can't find your exception. Here are some best ways to stop wasting time, filtering out the useless:
  • Create a TAG with which you will be logging all the time. Saves memory and time. i.e. 
public static final String TAG = "MyApplicationTag";
or
public static final String TAG = MyActivityClass.class.getSimpleName();

...

Then in your code:
...

Log.d(TAG, "log this");


One for an entire application, one per activity. As long as it makes sense to you and you can quickly find it.

Additional tips:
  • Setup additional tabs inside of LogCat. These are very useful:
    • AndroidRuntime
    • System.err
    • MediaProvider
  • Create a utility class
public static class SuperAppLog {

public final static String TAG = SuperAppLog.class.getSimpleName();

public void error(String message) {
// .. do some app wide logging
// .. redirect to a file
// .. fire off a analytics logging request
// .. etc
}

}



That's it. If you want to get more fancy or mess around with Log levels, check out this answer or this guide.

Happy Coding!

Tuesday, June 28, 2011

GStreamer resource error: NotFound

For some reason Banshee stopped playing sound and displayed the error.

rm -rf ~/.config/banshee-1/



Wednesday, June 22, 2011

DVD Support for linux

Got this error on my linux machine:

libdvdread: Encrypted DVD support unavailable.

Came across this link:

http://kyleabaker.com/bbpress/topic.php?id=56

That's all you need to know. In case the link dies:

Enable Commercial DVD Playback
sudo wget http://www.medibuntu.org/sources.list.d/lucid.list -O /etc/apt/sources.list.d/medibuntu.list
sudo apt-get update && sudo apt-get install medibuntu-keyring && sudo apt-get update
sudo apt-get install libdvdcss2

Sunday, May 29, 2011

SSLPeerUnverifiedException: No peer certificate error on Android when authenticating with GoDaddy's certs

I came across an interesting error. Apparently if you do not install the intermediate certificate and your SSL cert is from GoDaddy you will get the SSLPeerUnverifiedException.

Here is why you might not experience this problem on a desktop client.

If you have more information, let me know in the comments.

Definitely try this out.

Canon MF4360-4390 dn on Ubuntu 11.04

EDIT Cannon updated their site with a very easy, stay out of the way download.

If you have a Canon MF4360-4390dn this small guide is for you:

Install with (sudo dpkg -i <deb>):

Well it could have been worse, no drivers, no support. Go Cannon, hope to see more Linux support in the future :)

Update for 4370:
http://www.usa.canon.com/cusa/support/consumer/printers_multifunction/imageclass_series/imageclass_mf4370dn

subeclipse on Ubuntu 11

So we are not out of the woods yet. 
Svn error

Svn library provided by Tigris for Eclipse needs special settings:


Install the libsvn:

  • apt-get install libsvn-java
and append this:
  • -Djava.library.path=/usr/lib/jni
to your:
  • /usr/lib/eclipse/eclipse.ini
Do the appending all in one go with echo:
  • sudo sh -c "echo '-Djava.library.path=/usr/lib/jni' >> /usr/lib/eclipse/eclipse.ini"
Note: Make sure all single and double quotes copy appropriately.



Java in Ubuntu 11

To get java installed perform these:
  • sudo add-apt-repository 'deb http://archive.canonical.com/ lucid partner'
  • sudo apt-get update
  • sudo apt-get install sun-java6-jdk sun-java6-jre sun-java6-plugin
  • sudo update-java-alternatives -s java-6-sun
You can verify everything went smooth with:
  • java -version
  • ls -lahF /etc/alternatives/java
Note: I'm using the "Lucid" code name for the repository because it simply worked. You should find the tag for your version.

    Ubuntu 11

    I chose Ubuntu 11 because  10.04 LTS would not ship by default with drivers to handle my SATA controller. I'm installing this to be a development/home machine. I have been running Fedora prior to this but decided that Fedora is not simply free Red Hat version but some bleeding edge stuff that passed all the unit and integration tests. Out of the box stuff "worked", had to get the nvidia driver working, blacklist some nvidia-like driver from loading at boot. What a waste of time.

    Some things I wish just installed by themselves. Standard for developers, general public etc. I think Ubuntu has it right. Some items I disagree with:

    • inclusion of Mono by default, and all mono based software
    • unity is not yet stable, browsing search engine results for solutions or hacks to disable feature X and Y is too similar to Fedora, the unstable "RedHat Linux"
    Items that Ubuntu got right:
    • flawless installation
      • partitioned my drive to share it with the Windows 7 for some unpredicted software / functional need. Ubuntu detected and used the remaining free space to perfectly set up the entire boot loader.
      • intelligent installation, based on picked settings, Ubuntu started purging packages that would be otherwise useless to me. i.e. language packs that don't apply to my settings.
    • Unity
      • for my taste I want to get going with development, quick. Too many visual effects are useless to me unless I have a productivity gain in different contexts. The "one-top-bar", now present in Unity, is absolutely right. No more waste of space. Go Ubuntu!
      • search - no one wants to browse through menu sections when you know what you want, search, start typing. It is amazing that Mac's Spotlight search or Quicksilver app had it right long time ago. I'm glad to see it go viral at Ubuntu's product development.
    • Media player - Banshee
      • well integrated experience
      • no annoying audio squeeks and scratches. 
        • Using this media player is a pleasure. Just works.
      • don't like that Mono is underneath it all but having integrated Amazon MP3 store into the thing it nice. Amazon for some reason chose some latest boost libraries for their plugin and distributions like Fedora don't make obtaining these libraries easy, it is a pain to install (because of the manual steps). This should just work.
    I will post more as I discover problems here and there. So far I have changed from default unity desktop to "Ubuntu Classic - No effects" to use the system without being exposed to some session killing bug. Works well.

    Highly recommend:
    web upd8

    Now onto installing Java and getting some work done.

    Friday, April 22, 2011

    Eclipse-ExtensibleAPI: true

    If you want to use a class from a host plugin in your fragment class, make sure you include

    ...

    Eclipse-ExtensibleAPI: true
    ...

    as part of your MANIFEST.MF (execution information of your host plugin). Otherwise this stuff simply won't work.