xml-utilities : High Level XML Java Utility APIs

I have been working on Java with XML since 2002. It used to be quite confusing and complex to get the value of a tag for example as it required to get into Node level. Here’s an example:

<books>
  <book>
    <title>Book1</title>
    <prod id="33-657" media="paper"></prod>
    <chapter name="Introduction to XML">
      <para>What is HTML</para>
      <para>What is XML</para>
    </chapter>
    <chapter name="XML Syntax">
      <para>Elements must have a closing tag</para>
      <para>Elements must be properly nested</para>
    </chapter>
  </book>
  <book>
    <title>Book2</title>
    ...
    ...
  </book>
</books>

From functional point of view, I may be interested to get book names. So instead of going into familiar low-level Element and Node route, here’s what I prefer:

Read more ›

Posted in github, Java, opensource

QuickTip : Github Multiple Accounts Access with ssh

Let’s say we have two github accounts named “shrikant-home” and “shrikant-work”.

I would like to access both accounts from ssh.

I hope you have already created public and private keys for both github accounts and added in the ssh settings as mentioned at http://help.github.com/mac-set-up-git/

Now create a file named ~/.ssh/config file and make following entries

Read more ›

Posted in github, QuickTip

QuickTip : Editing Gradle Scripts with Textmate

You need to associate ‘.gradle’ extension with groovy as follows:

  • First if not done already, install groovy textmate bundle from http://groovy.codehaus.org/TextMate
  • In Textmate, open “Bundles –> Bundle Editor –> Edit Languages –> Groovy” and change as follows:
    fileTypes = ( 'groovy', 'gvy');
    

    to

    fileTypes = ( 'groovy', 'gvy', 'gradle' );
    

In order to run gradle scripts from Textmate use bundle from https://github.com/alkemist/gradle.tmbundle

Posted in QuickTip, Tools

Building Soft Skills of Agile Team – Key to Real Success

It’s easy to work in isolation as nobody bothers you. It still works when you work in cubicle like structures where you speak when you really need to. People need to come to your cubicle to reach you. I may want to communicate through emails even though I know you are sitting just next to me.

Having said that, through experience, we all know that it all boils down to inefficiency, huge time taken to finish a simple thing, long email trails which sometimes never reach to a conclusion, a middle management whose sole purpose is to manage the communication through layers.

Not only software world but also corporate world is moving towards collaboration, no-cubicle culture, team-work and no heroism culture. All that is fine and in general it makes sense also, but as professionals are we prepared or trained on how to deal with humans or different human behaviours? While working with many Agile projects, I could see that problem hindering project success is not essentially technical but soft skills. Agile promotes pair-programming but doesn’t teach on how to deal with certain individuals or the way they work.
Read more ›

Posted in Agile, Agile Adoption, Opinion, People Management

How to break requirements into user-stories

It’s easy to talk in terms of the user-stories but when it comes to create them, it may be a daunting task to break features into smaller functional chunks. This is not very specific to Agile only as the same can be practised in Waterfall projects too. There it helps in identifying and prioritising the smaller chunks of the functionalities which essentially provide business value within short span of time.

Context

The presentation is mainly for people who are moving away from waterfall and adopting Agile. The problem is changing the functional-specification specific mindset into one which could think and appreciate smaller functional chunks. For these people, thinking in terms of smaller user-stories becomes a challenge. This presentation aims to help them. At the same time, it’s useful for people who already work in Agile projects.

Read more ›

Posted in Agile, Agile Adoption

eclipse-to-maven : Printing Dependency Tree of Eclipse projects or Workspace

Many a times when you need to understand or optimize the dependency tree in Eclipse projects, it’s simpler to look at .classpath file or at the build path of Eclipse project. However it doesn’t remain practical for a big workspace as .classpath file contains many other things other than <classpathentry/> tags and also you have to open individual .classpath files in different Eclipse projects. Looking at Eclipse buildpath becomes too repetitive and mechanical in a big workspace.

eclipse-to-maven project supports the functionality to print the Eclipse dependency tree in readable format. The steps on how to use this it are mentioned in the README of the project.

Posted in Eclipse, eclipse-to-maven, Tools

Converting Eclipse Workspace to Maven – Why eclipse-to-maven?

Through this post, I would like to analyse the factors on why to mavenise the existing Eclipse based workspace using eclipse-to-maven project.

Focus on business goals instead of just doing build

ANT is a low level language and requires everything to be created from the scratch. The main focus remains creating build for the project. With Maven, build becomes trivial and you start focusing on bigger goals like enforcing test coverage, static code review with checkstyle and PMD. That too becomes very simple as many of the plugins are already available.

Good opportunity to restructure

Provides a good time to restructure and having a thoughtful analysis on what kind of sources should be placed where. The analysis results in potentially removing cyclic dependencies, identifying the sources which are not used anymore. This in turn results in reducing the build time significantly.

First step towards continuous delivery

In order to be continuous delivery ready, the build has to be single click (virgin machine with just Java in place), continuous integration ready all the time, plugins available to support automated functional testing. Also build should be simple enough to introduce any new small or big build specific change. Maven is a first step towards doing that in any Java based workspace.
Read more ›

Posted in Eclipse, eclipse-to-maven, github, Java, Maven

nanolog : WordPress Theme – Custom Width for a Post or Page

Problem

The width of WordPress theme was less. Wanted to extend it for a specific page used for displaying a mindmap with Freemind wordpress plugin.
Read more ›

Posted in nanolog, Usability, wordpress

When KISS Backfires

I started working in software projects when C++ was the only highly popular programming language. There used to be a lot of focus in writing optimal programs or routines. So though the applications were optimal, they suffered from Waterfall mindset of thinking distant future nobody was clear on – “What if…in future…”.

Design patterns and C++ Idioms were new and that led people writing complex programs for the heck of applying patterns in the applications. Some “what if…” used to generate a lot of waste. I still remember a software project which was continuously and consciously designed for internationalized database just because what if we need to setup our company in a country like China. For years a lot of effort and money went into developing and maintaining internationalized datasets. At the end when the need really came, people realized that the same system doesn’t fit in China because the way thing works over there. So a lot of hard work simply became waste.

Agile came and along with that engineering practices Extreme Programming became mainstream. The learnings from Waterfall days gave birth to some principles which made a lot of sense in Agile perspective.

So “Keep It Simple and Stupid (KISS)” made a lot of sense to the developer community which has already seen many overengineered products and a lot of waste coming just because of “what if…” syndrome.

Read more ›

Posted in Agile, TDD, XP

Nanologs – When Blogs and Tweets Don’t Work

Twitter promised brevity. People  didn’t have that much time to look at detailed descriptions or articles. At the same time everybody didn’t have that much of articulation skill so that they could write their experiences properly as web pages.

Twitter is a big thing. However it’s becoming the problem  which exactly it was trying to  solve. It’s again information bombardment. You still require data-miners to separate good information from pile of useless tweets.

On daily basis, you read tweets in the hope that you will find some useful info.

Another problem is – though 140 characters length is a boon, sometimes the research of days cannot be expressed in just tweets.
Read more ›

Posted in nanolog, Usability
Welcome to Sampreshan
Technology Strategist, Speaker, Scrum/XP/Agile Trainer Coach and Trainer
Your interest areas
Follow

Get every new post on this blog delivered to your Inbox.

Join other followers: