Dima Malenko Dima Malenko

Chromebox

Google's new Chrome OS device - Chromebox. I'm puzzled by lack of any description of any(!) use cases for this device for a user. Watch YouTube on TV? Hang out on Facebook? Why would I want to buy this computer?

Good news, however, is that you can use rollApp to run desktop applications on Chromebox.

Read More
Dima Malenko Dima Malenko

Mercurial Tags and Jenkins

If you like us use Mercurial for your source control and use Jenkins for continous integration and deployment, there is something you should know. We use Mercurial tags to designate revisions suitable for some practical purposes. For example, we use tag 'qa' to mark a version of the system, which we think is worth deploying into our testing environment and running exetended set of tests. We also have a bunch of jobs on Jenkins, which are supposed to get latest 'qa' revision, build and deploy the system to testing environment.

Theoretical setup looks like following:

Mecrurial configuration

And one would think that since Mercurial's -r parameters work equally well with branches and tags, he is all set. And we apparently thought so.

Unfortunately, Mercurial's approach to tags and Jenkins' approach to checking for changes in repositories do not let the magic happen:

  • Tags in Mercurial are merely records in a version controlled file .hg/hgtags. So in order to see moved tag you have to have this file in local repository.
  • Jenkins uses a variation of hg incoming -r 'tag' to check for changes in repository. However, since in local .hg/hgtags tag points to the "old" revision, it thinks nothing has changed for that tag-branch.

Jenkins developers already know about this issue: Support tags instead of branches

Simple (although not excatly most efficient) trick that works is wiping the workspace before build. There is a plugin, which can make this a part of a build job: Workspace Cleanup Plugin. Do not forget to mark this checkbox in job configuration:

Workspace cleanup configuration

This solutions has an obvious drawback of discarding any artifacts from previous build, which might save time during the next build and cloning the entire repository from the source control each time instead of just a bunch of changes.

For us I figured we are not running these 'qa' builds too often and the codebase is not too big yet, so we've settled with this workaround for the time being.

Read More
Appearances Dima Malenko Appearances Dima Malenko

Part Time Agile

Recently I presented at IT Brunch online conference with a talk about experience of my team doing part time agile development. Here are some highlights:

  • On a personal productivity level do not mix narrow focus tasks like fixing a bug in code with wide focus activities like contemplating about future of technology in your niche.
  • If your team is distributed in time, but not in space, which is not unusual for a team of parttimers or freelancers, give yoursleves a time to get together and just talk (you can eat your lunches at that time too).
  • It’s hard enough to do even one big thing, let alone two. Don’t try to focus your effort on several major features.
  • General management practices still work: if you are a manager, have one-on-ones with your team members.
  • Do not neglect up front design and specification development. There are situations, when it’s easier to try to foresee a problem, than try to resolve it.
Check out the entire presentation for more ideas (narration is in Russian):

There was a questions on where to get more information about one-on-one meetings. I suggest you start with One-on-Ones: The Single Most Effective Management Tool and check out other podcasts on this topic from Manager Tools.

Read More
Analysis, Engineering Dima Malenko Analysis, Engineering Dima Malenko

Route 53 in AWS Management Console (and their hidden reminder)

Yesterday Amazon announced immediate availability of Route 53 (their DNS service) tools in AWS Management Console, which is great news for all the AWS users. But it also bad news to services like Interstate53, which I was using to manage DNS records hosted on Amazon, because it immediately renders them irrelevant. It is good time to remind ourselves how addon development is not exactly the best spot for software vendors and how in some cases you can still compete against the platform vendor by having significant value add.

Read More