team-anxiety

Does your team suffer from anxiety? If a team and it’s surrounding culture doesn’t create a safe place to learn, the team’s ability to grow will be hampered. If the team’s very survival is threatened, not only will the team not improve, nothing will get done. At least, nothing good.

And yet, over and over, I see workplaces that overtly discourage development teams from trying new technology, experimenting with their process, or collaborating more effectively with business leaders and customers.

learning-anxiety-graph

If you want to help avoid crisis, stagnation, and failure, actively work to reduce the real and perceived levels of learning and survival anxiety. Create a space where it’s encouraged and safe to learn new things. If you care about innovation, be bold enough to empower your teams with the freedom to make it happen.

share this:Email this to someoneTweet about this on TwitterShare on LinkedInShare on Facebook

Lombok is…

…this week’s muse. (A weekly featured project/product that will make your short life better.)

Would you give me an uncomfortably long hug if I told you that you never had to write another Java getter/setter again? Project Lombok can help you do this with simple annotations!

class Person {
  @Getter @Setter String firstName;
  @Getter @Setter String lastName;
}

But wait, there’s more. You can eliminate all sorts of boilerplate code: toString(), equals(), hashCode(), etc. The project has great documentation and is easy to get started with.

There is a longer tutorial, Reducing Boilerplate Code with Project Lombok, that also explores the limits and controversy around the project.

share this:Email this to someoneTweet about this on TwitterShare on LinkedInShare on Facebook

Morning Dose of Git

Some fool has checked .settings, .project, and myCrazyProductionDB.properties files into your git repo. You can add them to .gitignore, but they’ll still show up as modified because they are already being tracked. If you really can’t delete them, you can at least stop tracking them with:

$ git update-index --assume-unchanged <file>

A Simple Example

$ git update-index --assume-unchanged .classpath

If Git needs to modify the file, it will fail gracefully. To merge changes, you’ll have to un-mark it as assume-unchanged.

To see which files you’ve marked:

$ git ls-files -v | grep "^[[:lower:]]"
h .classpath

This works because ls-files -v prints the marked file in lower-case.

Re-mark the file with:

$ git update-index --no-assume-unchanged .classpath
share this:Email this to someoneTweet about this on TwitterShare on LinkedInShare on Facebook

linkedOut – Microservices

WTF is a microservice? Martin Folwer’s Microservices a definition of this new architectural term.

Richard Clayton exposes some potential pitfalls in Failing at Microservices. Please avoid our mistakes.

Reduce the risk of failing at a new technology by hacking your organization to better manage ‘skill debt’. Oren Ellenbogen responds to the painful example of failure with some excellent suggestions in, Who should own your engineering team’s skill debt?

share this:Email this to someoneTweet about this on TwitterShare on LinkedInShare on Facebook

Installing Up-To-Date Node.js on Linux

I’m running a recent version of XUbuntu, and have installed Node.js via the package manager. But, the version in the Ubuntu repos is horribly out of date:

$ nodejs -v
v0.10.25

As of today, the LTS version is 4.4.0. It’s pretty easy to install from the source. But, there’s a better way. The Node.js project maintains a set of repos for most Linux distros, which includes excellent installation instructions. In my case, it was incredibly simple:

$ curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
[sudo] password for kenneth: 

## Installing the NodeSource Node.js 4.x LTS Argon repo...

...

## Adding the NodeSource signing key to your keyring...

## Creating apt sources list file for the NodeSource Node.js 4.x LTS Argon repo...

...

## Running `apt-get update` for you...

Then, I installed the shiny new Node.js using Aptitude – because Aptitude is the bomb:

$ sudo aptitude install nodejs
The following NEW packages will be installed:
rlwrap{a} 
The following packages will be upgraded:
nodejs{b} 
1 packages upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 8,781 kB of archives. After unpacking 38.6 MB will be used.
The following packages have unmet dependencies:
nodejs : Conflicts: nodejs-dev but 0.10.25~dfsg2-2ubuntu1 is installed.
      Conflicts: npm but 1.4.21+ds-2 is installed.
nodejs-dev : Depends: nodejs (= 0.10.25~dfsg2-2ubuntu1) but 4.4.0-1nodesource1~wily1 is to be installed.
The following actions will resolve these dependencies:

 Remove the following packages:
1)     nodejs-dev
2)     npm

No problem, Ghost Rider, just accept the solution to remove the original packages and roll on:

Accept this solution? [Y/n/q/?] y
The following NEW packages will be installed:
rlwrap{a} 
The following packages will be REMOVED:
...
The following packages will be upgraded:
  nodejs 
1 packages upgraded, 1 newly installed, 60 to remove and 1 not upgraded.
Setting up nodejs (4.4.0-1nodesource1~wily1) ...

All done!

nodejs -v
v4.4.0

Get your up-to-date Node.js on!

share this:Email this to someoneTweet about this on TwitterShare on LinkedInShare on Facebook