Sunday, December 30, 2012

How I doubled my Internet Speed

Recently I got an email from Comcast that they have doubled my internet speed, but in order to access it, I had to get a new cable modem that supported docsis 3.0. It sounded a bit too good to be true, but I thought I would give it a try since I had been using the same cable modem for over 7 years. Before buying a new modem, I decided to test my speed at speedtest.net and it came out to be 20Mbps.

Then I searched on gooogle to see if my old modem, the Motorola sb5100 supports Docsis 3.0 and sure enough Comcast was right, it did not.

Then, I looked at the Comcast approved device list to find a cable modem that supported the new speed tier.


Tuesday, September 4, 2012

Eclipse SVN bad_record_mac

If you are running eclipse and the SVN plugin (Subversive) is showing the following error, continue reading for the fix.

Problem:
Some resources were not updated.
svn: E175002: Received fatal alert: bad_record_mac
svn: E175002: PROPFIND request failed on '/svn/remote-remind/trunk'

Fix:
1. Add the following line to the eclipse.ini file in your eclipse installation directory.
-Dsvnkit.http.sslProtocols=SSLv3  
2. Restart eclipse.
3. Repeat the same operation as before and it should complete without any errrors.

The problem is caused by a bug in SVNKit which is the connecting software layer between Subversive and SVN. If you want more details about the bug, read more at 
http://issues.tmatesoft.com/issue/SVNKIT-176

Monday, June 4, 2012

Eclipse Java Template for Apache Commons Logging

If you use Eclipse and want to save some typing, here is a template for Eclipse to generate an Apache Commons Logging Log for the class you are currently working on.


${:import(org.apache.commons.logging.Log,org.apache.commons.logging.LogFactory)}
private static final Log LOG = LogFactory.getLog(${primary_type_name}.class);


To use it, open preferences > java > editor > templates, create a new template with the name "log" and paste the code above in the Pattern field.

Eclipse Slf4j Logger Template

If you use eclipse and want to save some typing, here is a template for Eclipse to generate an Slf4j Logger for the class you are currently working on.

    ${:import(org.slf4j.Logger,org.slf4j.LoggerFactory)}
        private static final Logger LOG = LoggerFactory.getLogger(${primary_type_name}.class);

To use it, open preferences > java > editor > templates, create a new template with the name "log" and paste the code above in the Pattern field.

Thursday, March 29, 2012

BodyEngine.com BMI Calculator

I use BodyEngine.com a lot and they recently added a BMI Calculator widget. I am adding it here for convenience. If you want to get the code for your own website, go to their Free Weight Calculators page.


Powered by BMI Calculator

Monday, February 6, 2012

Transport error: 415 Error: Cannot process the message because the content type ...


Today I ran into the following error while using an Axis2 Java Client to consume a WCF Soap Service.

Caused by: org.apache.axis2.AxisFault: Transport error: 415 Error: Cannot process the message because the content type 'application/soap+xml; charset=UTF-8; action="http://myservice.com/mySoapService/"' was not the expected type 'text/xml; charset=utf-8'.

This problem is caused because the WCF SOAP service is using SOAP 1.1 while the Axis2 Client defaults to SOAP 1.2

The fix is to set the Soap Version URI in the Axis2 ServiceClient options as follows:


stub._getServiceClient()
       .getOptions()
       .setSoapVersionURI(
                   SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);

Wednesday, October 26, 2011

BodyEngine.com

Being a software developer, it is very easy to sit down in front of the computer for hours at a time and live a very sedentary lifestyle. I started looking for a way to get back into shape and a friend of mine suggested an app called BodyEngine. The app is very slick and easy to use -- I can appreciate good software when I see it. With only a few clicks I was able to see that I am currently overweight by 5 lb. I can also see how many calories I need to eat and how much to exercise to reach my goal weight of 175 lb. The app is free, so give it a try to see in what category you fall and create your own personalized fitness plan.  http://www.bodyengine.com

Saturday, August 27, 2011

How to ignore self-signed ssl certificate verification in maven svn scm


I was trying to prepare a release for a maven project with the command
mvn release:prepare but the maven scm plugin could not commit the updated pom file because the certificate is self-signed.
 
My setup is Window 7, Collabnet SVN Client 1.6.6, Maven 2.2.1 but the solution is not specific to Windows or collabnet svn client.


...
[INFO] Checking in modified POMs...
[INFO] Executing: cmd.exe /X /C "svn --non-interactive commit --file C:\Users\myname\AppData\Local\Temp\maven-scm-1429998188.commit --targets C:\Users\myname\AppData\Local\Temp\maven-scm-1933937231031554007-targets"
[INFO] Working directory: G:\Projects\my-project\
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Unable to commit files
Provider message:
The svn command failed.
Command output:
svn: Commit failed (details follow):
svn: OPTIONS of 'https://svn.mysite.com/my-project/trunk/': Server certificate verification failed: issuer is not trusted (https://svn.mysite.com)
...

...read on to see how to get around this problem...


Wednesday, May 18, 2011

Test-Driven Development - Are you doing it right?

Recently I have been doing test-driven development (TDD) exclusively in both Java and C#, and I have made great progress in doing it the right way. I was fortunate to learn the right way from Uncle Bob who my employer invited for a TDD in-house training course for our engineering team.

So how do you know that you are doing it right?

Here are the signs that you are on the right path:
  • You are writing more tests than ever before 
  • Your test coverage is creeping up to > 90%
  • You create a test class before creating the class under test
  • You write a failing unit test before making any code changes
  • Your test classes are longer (more lines) than the class under test
  • You start to feel itchy when you write a line of code that is not making a test pass
  • You are more confident in the code you are writing
  • You are refactoring your tests
  • You are not deploying and debugging every time you change the code
  • You are debugging tests rather than production code
Doing TTD is not easy and requires that you stop following old habits and force yourself to do it properly for a few weeks. For me it was a slow off-and-on process, but as I do more and more of it, I find that I am getting my development speed back, with an added boost of confidence provided by over 90% code coverage. Yes, I have tests to prove it!

Saturday, April 9, 2011

How to configure cygwin to use ctrl + arrow to move cursor forward / backward

If you have used Windows for a while, you probably feel more comfortable using ctrl + left arrow and ctrl + right arrow to navigate the cursor through words. The default behavior in bash however is to use alt+f and alt+b. If you don't want to train yourself to learn yet another shortcut, follow three easy steps below to configure cygwin key bindings to use ctrl + left and ctrl + right.

  1. Modify existing or create a new file called .inputrc under your cygwin home directory
  2. Add the following lines:

    "\e[1;5C": forward-word   # ctrl + right
    "\e[1;5D": backward-word  # ctrl + left 
    

  3. Save the file and restart cygwin