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)

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").

Thursday, April 25, 2013

Notes on "GTAC 2011: Opening Keynote Address - Test is Dead" presentation

The main message is that there needs to be validation of the product idea up front, rather than getting the product idea wrong and potentially killing a start-up one or two years down the road.  This is not prototyping which can be considered verifying that the underlying technologies should work together but a stage prior to this, using "arts and crafts"-type materials rather than hardware/software. 

The secondary message is that calling yourself a tester, even an automation tester, or "quality assurance person" is detrimental to one's career as these skills are thought of as commodities.  That is, the person is interchangeable with an offshore resource.  Rather QA people should take the role of "righters" or people that make a project "right".  I argue that everyone on a project should be responsible for making a project "right", but from past experience, getting your voice heard can be challenging, especially on more hierarchical teams.  Also inertia is a hard thing to fight.