How to compile tcpdump for Android 5.* (Lollipop)

The linked github project (chatch/tcpdump-android) contains a shell-script to compile libpcap + tcpdump for ARM based Android devices. However it's a bit outdated, it was never maintained after the initial commits. The source ( for the script is outdated as well. I've taken the time to update the script to the most current libpcap+tcpdump+ndk versions and added Lollipop compatiblity (i.e. PIE support).

Nocache - utility to minimize filesystem caching effects

"The nocache tool tries to minimize the effect an application has on the Linux file system cache. This is done by intercepting the open and close system calls and calling posix_fadvise with the POSIX_FADV_DONTNEED parameter. Because the library remembers which pages (ie., 4K-blocks of the file) were already in file system cache when the file was opened, these will not be marked as "don't need", because other applications might need that, although they are not actively used (think: hot standby). Use case: backup processes that should not interfere with the present state of the cache."

Mawk is the default Awk interpreter in Ubuntu 14.04

And it sux. Sad
Take this eg. ...
% echo '4001966552\n4001966552' | mawk '{sum+=$1; print $1 ", " sum}END{print sum; printf "%lu\n", sum}'
4001966552, 4.00197e+09
4001966552, 8.00393e+09

BusyBox on non-rooted Android devices

On rooted devices you can use the popular BusyBox app to set up BusyBox into /system/xbin and add this path to the default shell path.
On non-rooted devices it's a bit more complicated. Usually you can put your own stuff into /data/local/tmp and this is what I opted to do.

How to get a list of a user's (or channel's) public YouTube videos

The process is quite simple:
  1. Get an API key for the YouTube v3 Data API.
  2. Query the{user_or_channel_name}&key={your_api_key} url and substitute the channel name and api key with the proper values.
  3. Query the{playlist_id}&maxResults=50&key={your_api_key} url and substitute the playlist ID with the ID of the "uploads" playlist (fetched with the prev. query) and your API key. The result will contain max. 50 videos, but if it's so, there'll be a "nextPageToken" value that you can add to the URL in the "pageToken" parameter and request the next 50 videos, etc.

How to resume/continue file transfer over SSH/SCP

To recursively copy a directory's contents, continuing previously interrupted transfers, to/from a remote server via SSH/SCP, use rsync like this:
rsync --partial --progress -avz -e ssh <source> <destination>

where either <source> or <destination> can be a local path (eg. /directory/with/files/) or a remote path (eg.

Touchpad vs. keyboard (typing) madness in Ubuntu

"A long time ago in a galaxy far, far away ..." there was a touchpad that would register touches/clicks even while the user was typing. Ubuntu has a setting to compensate for this: "System Settings / Mouse & Touchpad / Disable while typing". Unfortunately it does not work (at least in Ubuntu 14.04 / Trusty).

In Ubuntu 14.04 the "Disable while typing" in touchpad settings does not work

The problem is with the "-t" option for syndaemon. It messes with syndaemon's functionality. The solution is to uncheck the "Disable while typing" checkbox in System Settings (Mouse & Touchpad) and add your own syndaemon command in Startup Applications (eg. /usr/bin/syndaemon -i 1.0 -K -R -d).

Useful FFmpeg Commands

"FFmpeg is an extremely powerful and versatile command line tool for converting audio and video files. It is free and available for Windows, Mac and Linux machines. Whether you want to join two video files, extract the audio component from a video file, convert your video into an animated GIF, FFmpeg can do it all and even more."

How to speed up / slow down an audio stream with ffmpeg

Use the "atempo" filter:
ffmpeg -i input.mp4 -filter:a "atempo=0.5" -vn output.aac

Syndicate content