a tumblelog
week 26, 2019

Gerbera flowers

Gerbera flowers Colorful Gerbera flowers.

Records, loops, and arrays

Continue to explore awk, a great language with a strange name

In the evening I read the second part in Daniel Robbins' series on awk: Records, loops, and arrays.

Awk by example

In this series of articles, I’m going to turn you into a proficient awk coder. I’ll admit, awk doesn’t have a very pretty or particularly “hip” name, and the GNU version of awk, called gawk, sounds downright weird.

In the evening I read Awk by example the first in a series by Daniel Robbins to refresh my awk knowledge. While I am mostly a Perl programmer, and use now and then Perl one-liners to solve small problems, I like to have tools like awk in my toolkit as well.

What's listening on port 8080

Today, while experimenting with CockroachDB I noticed that a process was already listening on TCP port 8080. I used netstat — which I had to install first — to discover which process was listening on port 8080.

The fact that I had to install netstat on Ubuntu 19.04 led me to conclude that there was an alternative command to get the same information, and indeed: ss, another utility to investigate sockets according to its man page.

In the evening I used

ss -lptn

to find the names of all TCP listening processes.

The options I used (combined) are:

  • -l, --listening: Display only listening sockets.
  • -p, --processes: Show process using socket.
  • -t, --tcp: Display TCP sockets.
  • -n, --numeric: Do not try to resolve service names.

Regarding the latter, this shows 8080 instead of http-alt for port 8080.

Since I wanted to keep that process listening on port 8080 running I had to find an alternative port for CockroachDB, which can be specified with the --http-addr option as follows:

cockroach start \
    --certs-dir=$CERTS \
    --listen-addr=localhost \

Looking inside the box

This blog post talks about reverse engineering the Dropbox client, breaking its obfuscation mechanisms, de-compiling it to Python code as well as modifying the client in order to use debug features which are normally hidden from view.

Source: Looking inside the box.

Brassavola nodosa, another new growth

In the afternoon, while watering my mother's Brassavola nodosa orchid I noticed another new growth, the third this month.

Brassavola nodosa with three new growths To the left, the third new growth. To the right, bottom and top, the growths I discovered earlier.

From python to Go to Rust: an opinionated journey

When looking for a new backend language, I naturally went from Python to the new cool kid: Go. But after only one week of Go, I realised that Go was only half of a progress. Better suited to my needs than Python, but too far away from the developer experience I was enjoying when doing Elm in the frontend. So I gave Rust a try.

Source: From python to Go to Rust: an opinionated journey

Raspberry Pi 4 on sale now from $35

We have a surprise for you today: Raspberry Pi 4 is now on sale, starting at $35. This is a comprehensive upgrade, touching almost every element of the platform. For the first time we provide a PC-like level of performance for most users, while retaining the interfacing capabilities and hackability of the classic Raspberry Pi line.

The highlights of the Raspberry Pi 4 Model B are:

  • A 1.5GHz quad-core 64-bit ARM Cortex-A72 CPU (~3× performance)
  • 1GB, 2GB, or 4GB of LPDDR4 SDRAM
  • Full-throughput Gigabit Ethernet
  • Dual-band 802.11ac wireless networking
  • Bluetooth 5.0
  • Two USB 3.0 and two USB 2.0 ports
  • Dual monitor support, at resolutions up to 4K
  • VideoCore VI graphics, supporting OpenGL ES 3.x
  • 4Kp60 hardware decode of HEVC video
  • Complete compatibility with earlier Raspberry Pi products

Source: Raspberry Pi 4 on sale now from $35.