Rocu.de

Love, caffeine and omlette

Tag: productivity

How I fix persistent typos

Sometimes I feel really stupid. I have repeat the same typos over and over and over again.

Take "tapas" for example — I type "tappas" instead. Consistently.

So here's my fix for these kind of situations:

I add a TextExpander snippet that replaces my typo with the proper spelling.

I am not certain if this is the best way of doing it — but this is the first solution that works for me..

You are your own master

During the last years I realized that I play victim all the time. So I try to actively avoid this.

Let me explain what I mean by that. Every morning I walk to our local train station. Often the train will not arrive on time.

In the past I was angry and unrelaxed, waiting for the train on the same spot. I also complained to my colleagues about the stupidity of the train system.

Here is the problem: getting angry will change nothing. The train will still come late.

Here's what I do now, if the train comes late or if I missed it.

I use the time to walk. It's much better and I am not pissed that much. I am doing something meaningful and am not letting someone else waste my time.

Let me phrase it differently: I am not wasting my time.

If you look at all the instances, where someone else makes you miserable, there's a good chance that you make yourself miserable.

You are the master of your own life. If you choose to.

If you realize this simple fact, you can turn almost any situation. Do not excuse yourself by pointing to other people.

Changing your life — there's an app for that

I try to get rid of bad habits and to introduce benefitial behaviors. On a stressfull day however, it's hard to stick to all my resolutions. 2 months ago I have found a solution that works really well for me: Lift.

The basic idea

You start by feeding all youre good resolutions into Lift. Every day you check off all the one's that you achieved. This makes it very transparent, what you did and help's you to not forget your commitments to yourself.

Gamification

Lift has the concepts of streaks. If I did something for 5 days for example this is a 5 day streak.

For me this works great. I would not think about breaking my 66 day Lumosity streak for example.

Friends

On Lift you get support ("props") from other people. There are some pretty remarkable guys on Lift, that get a ton of stuff done every day.

This got even better, when my colleagues joined in. It's amazing to work on habits together and receive positive energy all the time. My colleageus and I also founded a group to work on some habits together.

Conclusion

Lift is the most important app in my life. It helps me to transforming myself.

I have over 30 commitments to myself in Lift. Common wisdom says that this is totally bananas. The amazing thing however is that, on a normal day, I finish most of them.

I am really grateful for this app. I think you should give it a try as well.

If you like Lift — and I am sure you will — become my friend!

My personal dashboard

I am collecting quite a lot of data on a continual basis:

  • Blood pressure
  • Steps
  • Weight
  • Tracked habits
  • GitHub commits
  • Follower counts
  • RSVP's for the events we host at Gutefrage.net

That's why I decided to visualize it on a personal dashboard. This weekend, I invested a few hours and came up with this:

I created a GeckoBoard, because that's what we use at the Helpster Team at Gutefrage.

All the widgets including Meetup.com, Twitter and FitBit are available on GeckoBoard already. The only widget that I had to populate myself was the Lift.do indicator.

Conclusion

Is the GeckoBoard worth 19$'s a month? I don't know.

Probably I will switch to something like Panic's Statusboard - but this requires a little more effort — I am not sure to invest this time until I know that a personal dashboard makes a difference.

Did you guy's try something similar? Then please tell me in the comments below.

Fighting bad habits with technology

I keep a list of stuff to improve. Whenever I catch something stupid it lands in there.

I try to get rid of these bad habits.

Often I find myself unable to solve the problem with willpower alone. Then I search for a solution that assists me. Maybe a little "barrier" or some kind of reminder. Let me show you, what I mean with this..

Looking at the keys all the time

When I started to program 5 years ago I looked onto my keyboard all the time. Sure - typing faster does not make you a better programmer - but typing with 2 fingers is not ergonomic.

I found a nice solution for my problem.

I bought a keyboard without letters. I was so bad to hit the proper keys, that nudged me towards learning it right. I have to admit though that I still have problems with some special keys 😉

Not moving enough during work

Like most people I had the problem that I did not take enough breaks. This was hard to change.

I started to work in Pomodoros (25 minutes of work and 5 minutes of break). Unfortunately I still did not leave my working space often enough.

So I took another iteration and added added a little AppleScript to my Pomodoro App..

After each Pomodoro my Pomodoro timer executes a little script that locks my Mac 😉

Surfing the web all the time

Unfortunately I am addicted to the internet. I am pretty OK with it most of the time — but not, when I want to be productive.

That's why i wrote a little script that blocks my internet access.

#!/bin/bash
echo "Enough of this filthy internet" | cowsay -s
sudo route -n delete default &> /dev/null

If I need to be more specific with the site I need to block, I use a program called SelfControl.

This works great! Of course as a computer guy I could circumvent this — but I do not want to.

Force pushing to master

It happened frequently that I forced pushed to master. This was really annoying for me.


Image Source: Flickr / Pascal (CC BY 2.0)

My colleague Nikolay proposed to fix it with a script. That's just what I did.

I have not force pushed to master since. This script is now also in use at some of my colleagues.

Checking working email at home

I checked working email at home. I love my work to much to let my fingers from it - but I realize that I need time of it in order to rest.


Image Source: Flickr / Tama Leaver (CC BY 2.0)

There's a simple remedy for not reading work related emails at home: Delete the freaking email account on your computers at home. It's baffling how often you will look into your empty email-client thereafter..

Checking Twitter really often

There's so much chatter at Twitter. I checked Twitter hourly. Here's what I did:

  • Remove people that write to much
  • Add a URL block-filter
  • Delete Twitter from my iPhone

    This works really well for me.

Not using arrow keys in VIM

Another stupid habit of mine was, that I used the arrow keys in order to move in VIM.

This was pretty simple to fix: I disabled them!

 not use the arrow keys any more
 nnoremap <up>    <nop>
 nnoremap <down>  <nop>
 nnoremap <left>  <nop>
 nnoremap <right> <nop>
 inoremap <up>    <nop>
 inoremap <down>  <nop>
 inoremap <left>  <nop>
 inoremap <right> <nop>

It took only a week until I was not trying to hit them any more 😉

Being to digital

Another problem of me is, that I use all my electronic devices to much. Here is what I build to prevent this: Productivity Protector 2000.

It works.

Conclusion

What is my point to show you this little collection of personal hacks?

Do not be a victim of you're bad habits.

As Nerd we have superpowers: We analyze problems. We solve them. All day long. Start applying these skills to the rest of your life!

What my dream tech job should offer

Today I received the question from a recruiter, what he would have to offer me to leave my job.

I found his approach really interesting - so I compiled a (very personal) list of minimal requirements for working anywhere.

Enviroment of learning

  • There are people smarter than me in my team that are willing to teach.
  • I want to teach programmers that are not as experienced as me
  • Managers support personal development
  • The company to learn from it's mistakes
  • The company takes experiments

Environment of collaboration

  • People really talk to each other
  • Collaboration between departments
  • People accept help and ask for help
  • Ego plays no role

Good culture

  • Colleagues that love what they do
  • Colleagues that reflect about theire work
  • Real diversity with different interests and skill levels
  • Mutual respect
  • Colleagues that I can trust
  • If the manager is on vacation it just works 😉

Good engineering

  • Excellence
  • Straight forward solutions
  • Not reinventing wheels
  • Continous incremental improvments

Organisational

  • Pay has to be fair - slightly over industry average
  • The company should earn money
  • Ability to switch teams within the organisation
  • Environment work-life-balance is key to top performance
  • Really flexible working times
  • Possibility to work from home sometimes
  • Environment where the people do much more than there job description
  • Enough vacations
  • No questions asked for buying books, going to conferences or taking a course
  • I want to be able to talk to the CEO the CTO and it feels relaxed

Conclusion

Most of this points can not be paid for with money. It really needs work from an Organisation to get there and it takes continous work to maintain such kind of company.

I see that Gutefrage.net is already fullfilling most points on my list. I am really happy there and love the culture.

So what would a recruiter have to offer me to leave? I don't know! But why should I?

How to become a better programmer by not programming

When I was a little bit younger I programmed all the time and did never stop. I thought that in order to get better at programming you have to programm.

This is of course true. But today I would have one advise for me: "Stop fucking programming all the time, thats just ONE way to get better."

The mind is a complicated beast and by doing unrelated activities, you can hugly increase your performance while programming.

Here are some things that I tried out - of course there are other benefitial activities, I just want to give you some ideas what you could try out.

Walking around

Take a walk
Image source: "racorn/Shutterstock""

3 years ago, I started to take extended walks around a lake nearby. They take about 90 minutes. I had some of my best ideas there. My mind is so underwhelmed that I process all the stuff that happened during the day.

If you do not have 90 minutes, you could also buy yourself a FitBit and deliberatly start to walk 10.000 or more steps every day.

It is easy to reach this goal. I walk circles during wating for the train or I take the stairs instead of the escalator.

Walking does help me to fall asleep and to maintain a relaxed and focused mind the next day, please try it!

Play with Lego

Playing with lego

I highly recommend playing with Lego. There are nerd compatible sets like Minecraft Lego, Lego Mindstorms or sophisticated Lego Technic Unimocs.

Playing lego is similar to programming: You have endless possibilities of combining the basic elements.

"Pragmatic Thinking and Learning" mentions building blocks as a tool to think about your designs. So you might even want to buy some for the office.

Take long vacations

Take a vacation at the end of the world

I think to not programm for extended periods of time (weeks / months) is really benefitial. You have time to slow down and think about what you are doing on a higher level.

When I was cruising along the Antartic Peninsula and saw the mases of ice for instance - I feelt insignifant. Work is not the most important thing on the world any more. This can be only benefitial.

If, at the end of my trips, my fingers are itching and I want to programm again - maybe I am doing something right. If not - I try to find out why I am so reluctant.

Excercise

Excercise
Image Source: " maxpro/Shutterstock"

Currently I am doing one strength exercise each day. I am not sure if these things have any mental effects - but I guess it can only be benefitial if your body is in a good shape ,if you try to sit in front of a desk all day long.

Play / Learn an instrument

Play the guitar
Image Source: "igor.stevanovic/Shutterstock"

I play the guitar. I am not good at it - but that is not the point.

I love listening to it, it relaxes me and I also think it bosts my creativity.

Also improvisation feels a lot like being in the flow during programming. Playing good requires playing economical and mastering the technique. It's a long way to mastery. Sounds familiar?

Write

Improve your communication skills with writing
Image Source: "S.Dashkevych/Shutterstock"

I write 30 minutes each day. Mainly about work related stuff.
It help's me sort out all my experiences and ideas. It helps me to reflect and share my knowledge. Last but not least it helps me to improve an important skill, that every good developer needs: To communicate clearly.

If you do not feel comfortable to write for other people - try a tech diary first.

Meditate

Mediate
Image Source: "ollyy/Shutterstock"

I am practicing mindfull meditation for some time now. You concentrate on your breath. Whenever a thought or feeling comes up during this you acknowledge it and concentrate on your breathing again.

Mediation helps me to realize ,when I get angry or exhausted at work and helps me maintain a relaxed attitude.

It also helps me to relax me after a hectic day. Unfortunately it is not easy to practice because during mediation I often realize, that my mind is everything else but calm.

But nontheless - I highly recommend giving it a shot.

Learn a new language

Learn foreign languages
Image Source: "Alfredo Ragazzoni/Shutterstock"

As with programming languages: Learning a new language is a benefitial undertaking. Recently I read that brains of programmers are bilingual. This might be true. Learning foreign languages seems more enjoyable to me, than it was in school.

Here are language learning sites that I tried out. All of them are great! And all of them have IPad-Apps 😉

Of course it helps you during your voyages if you choose to go on vacation. I speak German, English, some French, a bit of Russian and I also tried to learn german sign language (which failed - but hey maybe later)

Read random stuff

Read random stuff
Image Source: "violetkaipa/Shutterstock"

If you only read computer books until now, I recommend that you start to read books that are only slightly related to programming. Here are some books that I found great:

These books helped me to think about programming from new angles.

Change the way you eat

Change the way you eat
Image Source: "Bottaci/Shutterstock"

For a while now I try to eat a high fat, no carbs diet. I can not even begin to describe how great I feel with the new diet. This is something that you have to try for yourself in order to believe me.

No low after lunch, consistent, relaxed energie during the day and some of my health problems are far better now.

What is also nice - I learn how to cook. It still tastes dubious but at least I do something about it 😉

Train your brain

Change the way you eat
Image Source: "Eanpictures/Shutterstock"

The effects of these trainers on programmers is not really proven. For me they seem to work at least a little bit - and I like the challenge 😉

It also gives me feedback about my lifestyle, especially how rested I am. After a night with not enough sleep I suck at these games, when I play them at the breakfast table. I also suck at programming of course - but at least I know in advance.

Do stuff that you do not like

Often I deliberatly do stuff I do not like. I give talks. I listen for an hour to music I absolutely hate. I go somewhere that seems boring. I finish reading a book that seems stupid. I ride on icelandic horses.

Often at the end of the activity I am not so sure what was the reason for me hating the activity. I might still not love it, but I have pushed myself and grown a little bit.

Conclusion

So after you have read this random list of what I do - you might ask yourself what my point is.

My point is: do not microoptimize! The stuff that I do, might not be what you might want to try out. But you should really try to improve yourself in some other means than only be focusing on programming.

As a side effect you can also improve your health, your mood, your communication skills and might learn something interesting on the way, that feeds back into your programming.

I am really interested in more stuff that I could try out. What non-programming activities do you do, that feed back into programming?

Create lorem ipsum text with TextExpander and lorem

Often I need dummy text to fill out a form.

I use a combination of TextExpander and the Lorem Gem that makes this
super simple.

Step 1: Install the "lorem" gem

Install the gem lorem using

sudo gem install lorem

It's simple to use:

# For 1 paragraph dummy text
lorem 1 paragraph

# For 140 chars dummy text
lorem 140 chars

Lorem is a Unix tool - you can combine it with other commands:

lorem 140 chars | pbcopy

Copies 140 chars into your clipboard.

Textexpander + Lorem

I dont want to go into my Terminal, whenever I fill out a
form in Chrome, so I created a TextExpander snippet, that executes lorem
for me and fills in the dummy text.

#!/bin/bash
lorem %filltext:name=paragraphs:default=1%

A nice additional feature is that it asks you how many paragraphs of dummy text you want.

Conclusion

Sometimes simple hacks like this save you a lot of time. I hope you find it as useful as me!

Pair Programming - The why.

Pair Programming means that 2 programmers work on the same problem together at one workstation.
One of them is the driver - the guy who writes the code. The other programmer is the navigator who things on a more strategical level, helps with fresh ideas and asks questions. Both of them should switch frequently.

Pair programming
Pair programming from Syneus Solutions. (CC BY-NC-SA 2.0)

For most programmers this is completely unfamiliar in the beginning. It's not very easy to learn - and it's not for everyone. But learning to pair can be worth it.

Benefits of Pair Programming

Zero friction reviews

Do you do Code Reviews? We at Helpster have the 4-Eyes-Rule: Every piece of code has to be verified by a second pair of eyes.

Pair Programming of course offer just that. You have constant review of your code. And even better: You can directly incorporate it into your code.

Live up to your own standards

Do you have high standards? Do you want to do TDD for example? Do you wan't nice commit messages? Do you want to talk to your Product Manages more often? Write code that the whole team understands? We do!

Pair Programming is great to live up to your own standards: A good navigator has time to think about all of this. It's so much harder to be sloppy, when you are tired if your pair is watching you 😉

Teamwide learning

I learned so much from my pairs, during the last years. Of course you can learn small tricks like using ClusterSSH to admininster servers, or a short hand to create new files. But you might also find yourself using Vim and ask yourself how the hell you can work with it.

You learn a lot during a Pair programming session
Fall 2011 Student Hackathon Coding from @matylda. (CC BY-SA 2.0)

Often you implement something that your pair wanted and the solution is very nice and elegant - more then any of you two might have achived.

Since pairs should switch frequently there is a very good knowedge distribution within the team after a while.

Concentration & Relaxation

A good partner can motivate you. Even the crappiest chore looks way better if you have someone that shares you're pain.

There are fever distractions in a pai. You do not get distracted from the outside or your own emails that often. And you have a good excuse to enforce you're Pomodoros 😉

It's just fun

Last but not least it's just fun. As a driver you have a navigator that
unstucks you all the time and gives you valuable feedback. Even the
worst tasks are just done.

It's very intense and rewarding and at the end of the day you end up
with code that is much better, then what you would have written - but you are also crushed. You go home after 8 hours and feel very good about it.

Conclusion

Pair Programming has a lot of advantages. It's very different in the
beginning, but it can be very nice in the end.

Of course there is not only light. But let's cover this in the next article 😉

© 2017 Rocu.de

Theme by Anders NorenUp ↑