I'm Jan Riethmayer. Software developer, Berliner, Rubyist and CTO at bonusbox.
Install Theme

Put Your Back into Your Backlog

Here’s a rough picture how our backlog looks like: backlog

bonusboxblog:

Backlog is easily overlooked part of Scrum or Kanban processes. It is often treated as a cloaca, full of festering stories that did not make the cut and are now not going anywhere.

With a right approach, though, product backlog can be a tremendously powerful resource.

Read More

Using command-line tools

My team already makes fun of me about my little shell-script-crusade.

7 command-line tools for data science (7cltfds)

When coming across 7 command-line tools for data science I liked the article. Installing all the different tools was bit of a pain as it required python and nodejs to be setup. I hesitated to install the tools and start playing as I didn’t have a cool idea or problem to solve.

Leaving the comfort zone

One day, when turning to lead-qualification for our sales-team in Brazil, I looked at a website, which offered a lot of content about online-shops.

My first approach on scraping the site for leads was building a ruby script. It’s been a javascript paginated site, so the straight forward solution was to utilize a webdriver to scrape and click. Building this with mechanize was pretty straight forward.

Then I got lost in refactoring of throw-away code because it was so ugly. I wasn’t happy with maintaining another project to do future lead-qualification of other sources, this smelled to me.

So I thought about how to shell-script it, now I had a reason to come back to installing the tools mentioned in 7cltfds.

Instead of using the pagination of the site, I utilized the search as an api to search for all shops ^^.

Although the shell-script looks like a mess, creating the shell script line by line with temporary results in text files (a very nice feedback-loop), it’s been straight forward to create.

Knowledge transfer of shell scripts

The best side-effect is, I’ve been able to go show the shell-script to our business intelligence. Besides scraping future lead-qualification sites, BI had a huge learning curve to solve recurring tasks when generating reports from other apis learnign more shell commands.

Learn more shell commands

So what are the next steps to shell-script mastery?

Get familiar with the main operators

|     # the pipe
<,>   # redirecting in and out
()    # firing off subshells

Control-constructs

while
if
for 

Basic commands

cat     # stream content
find    # find files
cut     # split functionality
grep    # search
xargs   # smash multiple lines into one and map over the elements
wc      # word count
sort
sed     # gsub
awk     # inline editor, crazy shit

Additional key tools

curl
xml2json  # nice to access attributes out of html documents
jq        # key utility to manipulate/view json
scrape    # command line scraper
json2csv  # to feed graphing libraries

What to learn next

ls /usr/bin | less   # yields few commands :)

Development environment automation

My setup is one 11” laptop for maximum mobility and two desktop-computers (at home and work) to get the best of both worlds.

When we had a burglary in our office, a lot of hardware was stolen, unfortunately I went out for a beer and left my laptop in the office, too. Setting up a development environment costs time, so I started with automation, especially as I knew the delivery time of my 2nd machine was 3 weeks.

boxen: development environment automation based on puppet

I’ve been using boxen to automate the last year, which meant I learned a bit more about puppet.

Once you’re setup, it’s great. I evangelized it a lot. A big plus is, all the versions across all machines are the same to avoid it works for me-effects. Have a look at my boxen manifest to get an idea how a setup could look like and to which detail you can automate.

I was super happy with this setup until I tried to share my setup with coworkers. Most of the tools have been installed already on their machine and boxen requires a fresh box, which poses big switching costs so it wasn’t adapted.

One OS-update later my boxen-setup was running into issues. Fixing the setup cost me a whole day, so I decided to try something else.

sub and bash as development environment automation

We introduced sub at bonusbox. So I wrote a simple shell-script to install the development environment required for our projects via bb devenv setup.

Not only this was super easy to setup, all of my coworkers were able to use it right away with zero switching costs and no learning curve, as our development environment is pretty homogen and it’s pure bash.

The only drawback is, that we eventually have different versions of particular tools running, which didn’t bring up any issues yet.

Have a look at how simple the setup-script was setup at some point:

sueperdesign:

Tuesday Illustration!

van da Beezeboe

nice

sueperdesign:

Tuesday Illustration!

van da Beezeboe

nice

It’s summer time. Time for new Kombucha!

Craft your own kombucha!

yummie! :D