Monday, November 28, 2011

android application launcher

Got bored with HTC sense and found GO Launcher EX for android.

It is one of the most beautiful launchers for android I've ever seen. The default interface makes Android UI to an iPhone. If you're not happy with the default, you can easily customize it. There are 17 different desktop transition effect that you can choose from for example.

Check it out at
https://market.android.com/details?id=com.gau.go.launcherex&hl=en

Monday, October 24, 2011

jruby gem dependencies for rails 3.1.1

Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)

add to Gemfile.rb
gem 'execjs'
gem 'therubyrhino'

Saturday, October 15, 2011

getting around the great chinese firewall

The easiest way to get around the Great Firewall is to use TOR. However TOR can be slow. The best way is to run your own http proxy and tunneling traffic encrypted through SSH.


Mac/Linux/Unix distributions usually already have an ssh client installed.
Create the ssh tunnel to the proxy server using the following command line:
% ssh -C username@server -L 8080:localhost:8000

Once you've successfully logged in, start a proxy server:
% ./proxy.py

You will see something like:


Any clients will be served...
Serving HTTP on 0.0.0.0 port 8000 ...


Next configure your web browser to use the proxy server which is browser dependent. Google on how to do this. You will need to configure your web browser to use "localhost" and port "8080" for the proxy server host and port.

Monday, September 19, 2011

grails tomcat plugin sym links

create scripts/Event.groovy:

eventConfigureTomcat = {tomcat ->
def ctx = tomcat.host.findChild(serverContextPath)
ctx.allowLinking = true
}

However when grails.app.context = "/", this doesn't work because the TomcatServer.groovy replaces "/" with ""


therefore, must change tomcat.host.findChild(serverContextPath) to tomcat.host.findChild("")

Sunday, September 18, 2011

dojo build script

cp ~/sync/workspace/fulicious/fulicious.profile.js profiles/;./build.sh profile=fulicious action=clean,release releaseName=fulicious-dojo

Wednesday, August 3, 2011

x11vnc gdm

x11vnc -display :0 -auth /var/gdm/:0.Xauth

Friday, April 15, 2011

GeoPoint -> screen pixel

// Convert geo coordinates to screen pixels
Point screenPoint = new Point();
mapView.getProjection().toPixels(geoPoint, screenPoint);

Monday, March 7, 2011

rotate vertically ati graphics driver on ubuntu 10.10

proprietary ati graphics driver on ubuntu 10.10 is quirky. It prevents ubuntu from booting back up if dual monitor is rotated vertically.

The following message pops up on reboot:
udevd-work[110]: inotify_add_watch(6, /dev/dm-2, 10) failed: no such file or directory

Someone else had a similar problem
http://art.ubuntuforums.org/showthread.php?t=1524495

My solution was to boot with the monitors horizontally, make a backup copy of /etc/X11/xorg.conf. Ubuntu boots up fine when the monitors are set to horizontal position. Once booted, manually rotate the monitor using the ATI Catalyst Control Center. When the system is rebooted in this configuration, the udevd-work error message will show up again and prevent the system from booting.
To boot the system again, boot into recovery mode, replace /etc/X11/xorg.conf with the good backup.
Reboot and the udevd-work error message will go away. Now you can boot and log in as usual and manually rotate the monitors

Friday, February 25, 2011

???????????? no permissions

[son@jedi rules.d]$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
???????????? no permissions

must run adb start-server as root first:
sudo adb start-server
then
adb devices will work
or
sudo adb devices

Thursday, February 3, 2011

Wednesday, January 26, 2011

code quality

http://www.sonarsource.org/

Monday, January 24, 2011

create android application from command line

android create project --target 2 --path ./MyAndroidApp --activity MyAndroidActivity --package my.android.package