Thoughts on building a library

I’ve always loved to read as a child but what I read depended mostly on the books I got as birthday presents. As an adult I occasionally bought some books at book stores at train stations. But I never had a strategy how to build a library.

Why do I need a library?

Knowledge is power! Books are the easiest way to gain profit from other people’s experience. You can see books as mentors which tell you valuable life lessons. For example the Game book “I will teach you to be rich” got me started with thinking about personal finance.

What do you need to build a library?

A shelf and your first book!

For starters you can buy an IKEA billy or even a Gersby for way below 50€.

As an entry into a topic you can buy introductory books, e.g. a Science Fiction Almanach which contains stories from different authors.
From there you can dive deeper into subtopics or subgenres or buy more from authors You like.

But books are to expensive!

Buy them used! The great thing about amazon market place is to be able to buy used books. For example I purchased the biography of Ozzy osbourne for a ridiculously cheap 1€ (+3€ shipping)

Remaindered books are a great way to quickly build up your library. You often find them in a supermarket near by. It is a bit like gold digging because those boxes contain a lot of girl porn books (those books where longhaired princes riding on unicorns save the damsel in distress) but the search for the nuggets is worth it. I found my first Dan Simmons book “Terror” that way.

And what shall I read?

I would recommend starting with three categories:

  • Biographies
  • Fictional books
  • Specialist books from your field of work

Non-fictional books are harder to read and you should of course try to apply the lessons to your situation so you will be slower as well.

Which Biographies shall I read?

Learn from the great! For techies: You can start with a biography of Isaac Newton, Kepler or Galileo and work your way to Bill Gates, Steve Jobs or Elon Musk. (again: Highly opinionated!)

For musicians: read Slash, Ozzy, Rudolf Schenker, Gene Simmons, Motley Crue, and so on.

Other great biographies I read over the last years:

  • Total Recall – Arnold Schwarzenegger
  • Losing my Virginity – Richard Branson
  • Mick Jagger Biographie

Do you have any tips for fictional books?

Some of my favorite authors are:

  • Ken Follett
  • Dan Simmons
  • Paulho Coelho
  • Martin Suter

How do I chose from specialist books from my field of work?

Again, read some books about broader topics and narrow down. For programmers, start with

  • Pragmatic Programmer
  • Clean Code
  • Passionate Programmer

Read the classics

  • Extreme Programming
  • Design Patterns
  • Refactoring

Read books from the “Head First” series, because they are really great especially for beginners.

If you are interested in management and leadership read some Peter Drucker. for self-improvement read Marshall Goldsmith, Stephen Corvey, Dale Carnegie.

How shall I read a non-fictional book to get the most out of it?

I’ve tried different things: Writing notes on paper, writing directly into my pc text editor. But when I read I want to be as comfortable as possible, so in the end the only tool I use is a text marker pen to highlight important passages.

Shall I re-read my books?

Yes, you definitely should! Books are like friends, you can visit them over and over again. While fictional books often have a plot twist which you will still remember when you re-read, non-fictional books are often worth a second read especially when they are full of wisdom.

 

 

Review Code Reading

If you learn a music instrument you have to learn riffs, licks and songs. No teacher will ever say “Here are all the chords and scales. Go into the world and make people happy” Does not work.

But in software development sometimes it seems to look like that universities show you algorithms and data structure and the syntax of a specific language and say you are done – save the world with your code.

In the last couple of years more and more people look at software development as a craft and call it the software craftmanship movement. Continue reading “Review Code Reading”

iMacros for the Rescue 

Bill Gates once said: “I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it.”

Sometimes being such a lazy person I’ve discovered a couple of years ago a neat little browser plug in which let’s you automate your browser. It’s called iMacros and is available for Firefox and Chrome.

After the installation you get an icon in your toolbar:

When You click this icon the iMacros sidebar opens and you find a bunch of demo scripts:

Capture and Replay

If You use iMacros for the first time you should definitely start with the record and playback option:

If You hit the record button iMacros is going to capture every mouse click and keystroke. If you hit stop it will save it to the #Current.iim file.

Macro Language

After you captured your interaction with the browser you can manually alter the script. This is what iMacros saved when we entered something into the google search bar:

URL GOTO=https://www.google.de/
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:tsf ATTR=ID:lst-ib CONTENT=creatronix
TAG POS=1 TYPE=BUTTON FORM=ID:tsf ATTR=ID:_fZl

The syntax is pretty easy, iMacros tries to figure out which is the best identifier for a web element. In this example it uses ATTR=ID:lst-ib to identify the input field and ATTR=ID:_fZl for the Search Button.

Real world example

One task where this plug in came in handy was adding a bunch of colleagues to a newly created mailing group. For this example you need to have all names in a text file, which you can access with:

SET !DATASOURCE colleagues.csv 'Name of the file
SET !LOOP 1 'which line you want to start from
SET !DATASOURCE_LINE {{!LOOP}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:fname CONTENT={{!COL1}

You can repeat the macro with the Play Loop function. If you have 15 people in your list you can set Max to 15 and hit play. You can select the playback speed in the settings menu so that you are able to watch your script in slowly in action. When it works flawlessly You can crank up the speed to get the job done.

Bottom Line

Over the years iMacros saved me a lot of manual labor. Every time I have to do some annoying copy and paste job in the browser, I try to figure out if there is a way with iMacros. Its syntax is quite comprehendible so adapting scripts to new situations is very easy.

On drawback: you have no if-else statements so if you loop, the flow has to be straight forward.

When I want to do more heavy lifting and permanently integrate some scripts into my workflow I use Greasemonkey, but that’s a different story for the next time. Stay tuned!

 

Review Emsa Travel Mug

After owning a couple of cheap merchandise insulated travel mugs, Jens Dittmar convinced me to spend a couple of euros on a “professional” travel mug. (In the end I convinced my boss to buy a bunch of mugs for the whole team as a christmas present so I didn’t have to buy one myself 🙂 )


After using the mug for one and half year I can say that it really improved my life quality. Suffering from stomach-ache I tried to reduce my filter coffee intake and switched to espresso from a Bialetti stovetop mokka cooker. By using the travel mug I could enjoy my yummy espresso which I cooked at home at work the whole morning, too. As I started to go to barcamps the mug also saved lots of paper cups.

Marketing claims

What I was really interested in -from an engineering standpoint- was to prove if their claim “4 hours hot – 8 hours cold” was valid or not. Continue reading “Review Emsa Travel Mug”

Node.js with PyCharm

PyCharm amazes me every time. Although it is first and foremost a python IDE you can do full stack web development with it, i. e. you have code completion for HTML, CSS, JavaScript and even TypeScript, CoffeeScript.

I wanted to code some node.js stuff and jetbrains already got a plugin for PyCharm. Before installation:

https://www.jetbrains.com/help/pycharm/2017.1/node-js-and-npm.html

The installation is painless and after a restart you have full node.js support!

 

Team Capability Matrix 

One of the many questions You hear as a team lead is: “Who can help me with <topic XYZ>?”

When your team is small you can easily say: “colleague A is expert on X, B on Y, and C on Z”.

But with increasing team size and number of topics you have to handle in your team it can be good idea to write down the capabilities and competencies of your team members.

Step 1 – Write down all of your team members

Easy. If You don’t know who is in your team, shame on You 🙂

Step 2 – Write down all tools and technologies You use in Your team

A bit harder. If You don’t know by heart who uses what, please interview your colleagues.

Step 3 – Combine the information in a table.

Use a simple scheme to tag knowledge

  • :mrgreen: – great knowledge
  • 🙂 – ok
  • 😳 – don’t know what it means

Write down the colleagues on one axis the tools and techs on the other.

Team Member / ToolTool XTool YTool Z
Colleague A:mrgreen:😐😳
Colleague B😐:mrgreen:😳
Colleague C😐😐:mrgreen:

To transpose or to not transpose – that is the question

It doesn’t matter which info goes on which axis but in most cases you can say which number is higher: number of colleagues or the number of skills / tools / technologies used in the team. So put the longer list on the y-axis.

What can You get out of it?

When You have your Team Capability Matrix in place you can identify core knowledge areas -things everyone in the team has to know- and fill in the gaps with training and workshops.

Let’s say Tool X and Y are must have skills. So You would schedule training for Tool Y for A and C and training for X for B and C

You can even develop your team by asking your team mates in which areas they want to improve and schedule training accordingly.