Labels

.net (1) *nix (1) administration (1) Android (2) Axis2 (2) best practice (5) big-data (1) business-analysis (1) code re-use (1) continuous-integration (1) Cordova-PhoneGap (1) database (2) defect (1) design (3) Eclipse (7) education (1) groovy (2) https (2) Hudson (4) Java (1) JAX-RS (2) Jersey (3) Jetty (1) localization (1) m2eclipse (2) MapForce (1) Maven (12) MySQL (1) Nexus (4) notes (4) OO (1) Oracle (4) performance (1) Perl (1) PL/SQL (1) podcast (1) PostgreSQL (1) requirement (1) scripting (1) serialization (1) shell (1) SoapUI (1) SQL (1) SSH (2) stored procedure (1) STS (2) Subclipse (1) Subversion (3) TOAD (3) Tomcat (4) UML (2) unit-testing (2) WAMP (1) WAS (3) Windows (3) WP8 (2) WTP (2) XML (4) XSLT (1)

Sunday, February 9, 2014

Connecting to Nexus 7 device for debugging on Windows 8.1

While the instructions Using Hardware Devices and OEM USB Drivers are adequate, here's my experience setting up my 2nd generation Nexus 7 on Windows 8.1 Pro.

When connecting the device to my computer's USB port, Windows does recognize it and installs drivers, but treats the device as a Music Player:


At this point, adb does not recognize the device for development purposes:


However, after following the instructions for the Google USB Driver, I get the following: 


and from adb, I do see the device listed when doing the command "adb devices".

Saturday, February 8, 2014

Registering device for Windows Phone 8 development

In order for the phone to be registered for development, it also needs to be browse-able in File Explorer when the phone is connected.  In my experience, the most common problem is assuming that any USB cable is compatible when in fact some cables are only useful for charging:  Windows Phone 8 is not detected by your computer

When there are problems you may see the following screens:



When the phone is properly detected, you will see the following:


Upon clicking "Register", if your phone is also connected to the Internet, you will see the following in moments and be able to deploy your applications to the device:

Thursday, February 6, 2014

Setting up Apache Cordova/PhoneGap

Based on following the steps in the official PhoneGap documentation, the following document augments that information with more details, specifically around setting up on Windows 8 and for developing Windows Phone 8/Android apps:

Setting up Apache Cordova/PhoneGap (version controlled)




Friday, October 25, 2013

OutOfMemoryError with Java

Recently had to investigate an OutOfMemoryError issue possibly caused by my Java code.  Some tools/information I have found useful so far are:
  1. VisualVM - profiler that you probably already have installed.  Check for <JAVA_HOME>/bin/jvisualvm.exe
  2. Generations - describes Java memory management.  It will help you interpret the graphs in the Visual GC plugin
  3. Understanding Weak References - never heard of weak references in the context of Java?  Me too

Thursday, October 3, 2013

Hudson having problem with Subversion: hudson.model.Job.hasCascadingProject()Z

One day, a few of our Hudson jobs (but not all) started to have this error when executing.

FATAL: hudson.model.Job.hasCascadingProject()Z
java.lang.NoSuchMethodError: hudson.model.Job.hasCascadingProject()Z
 at hudson.scm.PerJobCredentialStore.getXmlFile(PerJobCredentialStore.java:137)
 at hudson.scm.PerJobCredentialStore.<init>(PerJobCredentialStore.java:58)
 at hudson.scm.SubversionSCM$DescriptorImpl.createAuthenticationProvider(SubversionSCM.java:1820)
 at hudson.scm.SubversionSCM$DescriptorImpl.getRepository(SubversionSCM.java:2069)
 at hudson.scm.SubversionSCM$DescriptorImpl.checkRepositoryPath(SubversionSCM.java:2039)
 at hudson.scm.SubversionSCM.repositoryLocationsNoLongerExist(SubversionSCM.java:2272)
 at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:748)
 at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:711)
 at hudson.model.AbstractProject.checkout(AbstractProject.java:1229)
 at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:507)
 at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:424)
 at hudson.model.Run.run(Run.java:1367)
 at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
 at hudson.model.ResourceController.execute(ResourceController.java:88)
 at hudson.model.Executor.run(Executor.java:145)

This turns out to be at the Subversion check-out step:

You can click on "Update credentials" to go to a screen to enter in your credentials.  But you might get the following error:

HTTP ERROR 500

Problem accessing /hudson/job/PWS-OCDT/descriptorByName/hudson.scm.SubversionSCM/postCredential. Reason:
    hudson.model.Job.hasCascadingProject()Z

Caused by:

java.lang.NoSuchMethodError: hudson.model.Job.hasCascadingProject()Z
 at hudson.scm.PerJobCredentialStore.getXmlFile(PerJobCredentialStore.java:137)

At this point, check the file-system of your Hudson server.  Under <HUDSON_HOME>\jobs\<Job name> you may notice that compared to Jobs that are working, the problematic job does not have a "subversion.credentials" file.  Copy over this file as-is to the directory.  No Hudson re-start is necessary; just go back to the Dashboard and choose the problematic Job.  From this point, you should be able to choose "Update credentials" and work through the screens without getting an unhelpful
 
hudson.model.Job.hasCascadingProject()Z 

error.  FYI, this is Hudson ver. 2.1.2 and our Subversion server location changed, which may have caused this issue. 

Tuesday, July 9, 2013

Software development and JavaScript podcast

While looking for a Java development podcast (still looking!), I came across JavaScript Jabber.  While the focus is JavaScript, there are episodes with more generic topics like Software Team Dynamics.  The podcasters are all experienced developers from various backgrounds (e.g. .NET, Ruby, etc.), the audio quality is good, and the shownotes are excellent.  Furthermore, they have sponsors so you know they have great content that attracts listeners.

Thursday, June 27, 2013

Nexus system administration misunderstanding

The available repositories that can be added to the Group ("Public Repositories") is on the right (see below).  Intuitively, shouldn't they be on the left, and you move them over to the right?  By default, newly added Repositories show up in the right column ("Available Repositories").