Wednesday, 19 November 2014

Automate your development laptop - Reinout van Rees @ Brainport Python Meetup #2

Last Tuesday there was a second Python meeting of The Brainport Python meetup group in Eindhoven.
The first meeting was two months ago and was received very well. Many of the people who visited the fist meeting did also attend the second one. It was really nice to see them again and to meet people who were new to the meeting group.

For the second meeting we introduced presentations as part of the program.
First Reinout van Rees did an excellent presentation about Development laptop automation. After eating some pizza I told about my journey and view on Desktop application development with use of Python. The slides can be found here.


Reinout did already summarize my talk. However nobody did summarize his one yet. So let me give some extra explanation about his slides. I think he did an excellent presentation about how you can optimize and automate your Development machine and it's really worth to take this topic serious. It already saved me some minutes of useless fiddling around while setting up my new development PC.

Reinout started with a very nice statement: "The shoemaker's children go barefoot". This saying is also applicable to many developers. We use version control, provisioning tools and we set up automated tasks for our products and clients, but most of us do not develop for themselves with the same care. We write scripts, but we lose them. We install software on our PC's and setup our IDE's. However we don't store the configurations. So when disaster strikes and you have to replace your machine it takes hours, days or weeks to fully recover.

The call to action is easy: "Automate your development laptop with the same care as your regular projects". You have to change your mindset a little for this: Be explicit and do something regularly.

Being explicit means that you create a safe central place where you can store your scripts, small programs and configurations. A good place for this is an on-line GIT repository.
Being explicit also means that you make an good overview of what's in your toolbox. You can do this by maintaining a README file in the repository.

The second mindset that you need is to do something regularly. So if you change something: Adjust your README file! It's also good to check which apps you have installed and to check regularly if every app is up to date. I now have for example a nice list of tools which I use very often and which I can install by just running a single command: Make install-essentials. This list of essentials will grow and shrink at some moments over time and by improving it regularly it ensures me that I'll install the right software when I need to install my essentials.

Reinout also advised to get out and start talking to other people about their setup. You can join them while programming and ask them how they organize their environment in order to find out how you can improve your own situation and increase your productivity. At last it's important to automate, improve or fix something regularly (e.g. every week) to ensure everything stays up to date.

A great tip of Reinout is to be not too perfectionistic. Reinout explained this in a very nice way. He showed us the roof of the train station of Eindhoven and some parts of the movie "A bridge too far". In that movie you see a temporary Bailey bridge being constructed. Similar bridge parts are now used as the roof in the Eindhoven station. Re-used second-hand parts, but it works fine. So you don't need to be too perfectionistic.

At last Reinout showed us some examples like zest.releaser which can automate the process of releasing zest components. Checkoutmanager is also useful since it allows you to manage multiple git repositories and it reminds you to push your changes or when to commit stuff. Various skeleton projects of Reinout help his colleagues out when they have to bootstrap a project. Beside this Reinout pointed out the trick to symlink .dotfile locations to your central toolbox so you're always using the right configurations.

I want to thank Reinout for his wonderful presentation and all the visitors of the meeting for coming to the meeting. It was nice to see everybody and to share ideas and experiences. I also want to thank BounceSpace and SendCloud for the location, the food and the drinks. I think the second meeting set a good example for the upcoming meetings and I hope that we can improve the meetings over time as well as the overall Python community in the area.

1 comment:

  1. Nice. Also a lot of people have them online already.
    Check out this post:

    I also made my own fork with some extra solarized terminal styles and vimrc's etc.