Associating Eclipse .launch Files with the Eclipse XML Editor

  1. Open the Preference dialog and go to General/Editors/File Association.  Add a new file type with the *.launch suffix.  In the ‘Associated Editors’ box below, click on Add and assign the XML editor to the file type.
  2. In the Preferences dialog go to General/Appearance/Content Types.  Click on the + next to Text.  Click on ‘XML’ in the tree so that it is highlighted.  Click ‘Add’ in the box below and add the *.launch suffix

Some Handy Eclipse Preferences

Changing the color of the block that get’s displayed in the right-hand side-bar when an occurance of a variable, field, or method is selected:
Eclipse > Window > Preferences > General > Editors > Text Editors > Annotations > Occurrences > Color

Alias package names in the Package Explorer: Window > Preferences > Java > Appearance > [] Abbreviate package names

Couldn’t sign in. There was a problem communicating with google servers. Try again later Error On Nexus 7 Tablet

A couple of months ago I stopped being able to purchase anything through the Google Play Store on my Nexus 7 Android device.  There were a number of different errors that were displayed:

General error messages:

  • Couldn’t sign in. There was a problem communicating with google servers.  Try again later.

From the Google Play app:

  • “Authentication is required.  You need to sign into your Google Account.” 

I tried everything:

  • Re-installing Play
  • Dumping the cache and disabling and re-enabling Play
  • Doing a factory reset on the device
  • Finding every post and page online that I could regarding the issue.
  • Checking my Google domain admin pages for anything that might be related.

After about two months of on and off searching I finally contacted Google Support and got someone on the phone and they suggested that I try to login to my wallet account online.  When I tried, I was redirected to a page that indicated that I needed to ‘Reinstate your Google Wallet online account’.  Huh?  Evidently, it had been suspended.  From that page:

‘Your account was suspended as a precautionary measure to protect your payment information because Google detected that an administrator at your organization initiated a password reset for your email address or you changed your own password.’

I did change my password around the time that it stopped working.  Unfortunately, this is the first that I have read anything about a password change affecting the Wallet account and none of the error messages from the tablet even hinted at what the problem might be.

On the page that indicated my account needs to be re-instated was a link to a form that I needed to fill out to re-instate the account.  On that page was the following:

‘To protect your data and privacy, your Apps Google Wallet / Payments account will always be suspended when your account password is reset by your Google Apps administrator. You will be required to go through this flow each time in order to regain access to your account. If you’d like to avoid these suspensions, please sign up for a Google Wallet account with a personal email address at https://wallet.google.com/signup (if you are a buyer) or a Google Payments account with a personal email address at https://checkout.google.com/sell (if you are a merchant).’

It would have been incredibly helpful to know that when I reset my password.

I ended up having to call the Google Wallet support number to have them reinstate my account because it had been so long since I purchased anything that I had forgotten what my last purchase was.

As a result, I would recommend keeping a log of what you buy and when so that you can automatically reinstate your account whenever you change your password.

Importing Maven Project from a Cloned Git Project into Eclipse Juno SR2 with m2e

I was having some funky issues with Eclipse and m2e not properly reading the pom.xml and setting up the .classpath properly when importing an existing Maven project into Eclipse from a cloned git repo.

When I did the following:

  • Go to File/Import/Maven/Existing Maven Projects
  • Chose the root dir of the the existing directory

I got the following error:

An internal error occurred during: “Updating Maven Project”.
Unsupported IClasspathEntry kind=4

Initially, I solved it with a series of back-and-forth commands in both Eclipse and on the commandline to finally satisfy Eclipse that the dependencies were satisfied.

Thanks to the help of a friend I found a much easier process which enables me to cleanly clone, and import into Eclipse.

  • Clone your git repo
  • On the command-line in the same directory into which you cloned your source run:
    • $ mvn eclipse:eclipse; mvn eclipse:clean
  • Open Eclipse
  • Select File/Import/Maven/Existing Maven Projects
  • Browse to the directory into which you cloned your source and select that directory
  • Click ‘Finish’ in the dialog box

You should now have your project in Eclipse without any compile/dependency errors.

Fixing Compile Error: undefined reference to ‘dclose’ (dlopen, dlsym, and/or dlerror)

I am running an Ubuntu 12.10 machine and I had to compile and install a jsvc binary for an older version that I didn’t have a package that I could install via dpkg or apt-get install.

Running configure came off without a hitch.

Running make resulted in the following error:

gcc -ldl -lpthread jsvc-unix.o libservice.a -o ../jsvc
libservice.a(dso-dlfcn.o): In function `dso_unlink’:
/usr/local/src/daemon-1.0.1/src/native/unix/native/dso-dlfcn.c:41: undefined reference to `dlclose’
libservice.a(dso-dlfcn.o): In function `dso_link’:
/usr/local/src/daemon-1.0.1/src/native/unix/native/dso-dlfcn.c:36: undefined reference to `dlopen’
libservice.a(dso-dlfcn.o): In function `dso_symbol’:
/usr/local/src/daemon-1.0.1/src/native/unix/native/dso-dlfcn.c:47: undefined reference to `dlsym’
libservice.a(dso-dlfcn.o): In function `dso_error’:
/usr/local/src/daemon-1.0.1/src/native/unix/native/dso-dlfcn.c:52: undefined reference to `dlerror’
collect2: error: ld returned 1 exit status
make[1]: *** [jsvc] Error 1
make[1]: Leaving directory `/usr/local/src/daemon-1.0.1/src/native/unix/native’
make: *** [native/all] Error 2

I double checked that the Ubuntu packages that provide those libs were installed (libc6 and libc6-dev).

It turns out that, for some reason, under this distro that the GCC linker requires the -ldl argument to be listed last.  So that the invocation of:

gcc -ldl -lpthread jsvc-unix.o libservice.a -o ../jsvc

needs to be:

gcc jsvc-unix.o libservice.a -o ../jsvc -lpthread -ldl

To make this happen, do the following:

Edit configure:

For your $host_os update:

LDFLAGS=”$LDFLAGS -ldl -lpthread”

to

LDFLAGS=”$LDFLAGS -lpthread -ldl”

Run # ./configure

Then edit the ./native/Makefile:

jsvc: jsvc-unix.o libservice.a
        $(LDCMD) $(LDFLAGS) jsvc-unix.o libservice.a -o ../jsvc

        to

jsvc: jsvc-unix.o libservice.a
        $(LDCMD) jsvc-unix.o libservice.a -o ../jsvc $(LDFLAGS)

# make

It should compile without any complaints

Configuring the Number of Workspaces on Ubuntu 12.10

I typically like to have more than 4 workspaces for my X Windows sessions.

Under Ubuntu 12.10 there is a little trickey involved in updating the default configuration.

First you need to install the compizconfig-settings-manager.  This will enable you to configure the workspace switcher and some other system configs.  Be careful, this will also allow you to break things so only configure what you understand via compizconfig-settings-manager.

Install ccsm:

  • # apt-get install compizconfig-settings-manager

To run invoke (as root):

  • # ccsm

To configure Workspace Switcher:

  • Go to ‘General Options’
  • Click on ‘Desktop Size’ tab
  • Edit the ‘Horizontal Virtual Size’ and ‘Vertical Virtual Size’ to add additional workspaces

 

Click the ‘Back’ and then the ‘Close’ button

Running a Headless Virtual Machine under VMPlayer

If you want to run a headless VM under VMPlayer simply add the following to your vmware preferences file ($HOME/.vmware/preferences):

pref.vmplayer.exit.vmAction = “disconnect”

Restart VMPlayer and fire up your VM.  When you quit that VMPlayer instance it will ask you if you are sure that you want to quit and leave the virtual machine running.

When you quit the player the VM will now be running headless.

Preventing resolv.conf From Being Automatically Overwritten with Each Restart or network restart

I am running CentoOS 6.3 and have set up a local nameserver.  As a result, I’ve customized my version of /etc/resolv.conf to include both the IP of my local nameserver as well as a domain and search configuration directives.

When I restarted the machine, or if I restarted networking resolv.conf was overwritten.

It turns out that the contents of the ifcfg-ethN files determine how the network scripts behave and how, or if resolv.conf is modified programatically.

To prevent this make sure NOT to include a DNS1 (or 2, etc) entry in your ifcfg file and make sure TO include a PEERDNS=no entry.