How to use -map option of FFmpeg, i.e. how to map various input streams into output streams

The FFmpeg howto's examples (at the moment) are all about working with a single input file. Merging streams from multiple input files into a single output file is just as simple.

CyanogenMod (CM11), Trebuchet and home screen rotation

There's a lot of whining on the net about not being able to enable home screen rotation in CM11. Well, this is what the source code is for. Smile And you are able to enable home screen rotation (without compiling your own version of Trebuchet or switching to an alternative launcher), just not through the UI.

PhotoGrabber - a free and open-source Facebook album/photo downloader app

A cross platform desktop application to download images from Facebook. It's written in Python.

How to grep through (aka. find) binary files looking for a byte sequence (aka. pattern match)

Here's my approach using more or less standard Unix/Linux tools:
find . -type f -exec fgrep -aqs $'\x3c\x3f\x70' '{}' \; -print

If your shell does not support the $'\xHH' notation (eg. standard POSIX shell does not, but bash and zsh do), then you can always fall back to echo's octal representation (although it's a bit uncomfortable since most hexeditors and viewers support the hexadecimal format):
patt="$(/bin/echo '\074\077\160')"
find . -type f -exec fgrep -aqs "$patt" '{}' \; -print

iStat Pro Widget External IP Fix

Open the $HOME/Library/Widgets/iStat Pro.wdgt/scripts/core.js script in a text editor, find the getExtIP() function and replace the following line:
ipURL = ''+new Date().getTime();

with this (or a similiar "what's my ip" service URL):
ipURL = ''+new Date().getTime();

And the following:
if(extIP.length < 20 && ipConnection.status == 200 && extIP.match(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)){

With these:
ip_regex = "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}";
if(extIP.length < 100000 && ipConnection.status == 200 && extIP.match(new RegExp(ip_regex))){
    extIP = extIP.replace(new RegExp("^(.*[^\\d])?(" + ip_regex + ")([^\\d].*)?$"), "$2");

This patch lets you use quite many "what's my IP" services since the the script will take the first IP looking string from the result of the HTTP request.

Manually running a media scan on Android

The problem is well known: if you make changes in to filesystem using a method that does not notify Media Storage, then browsing your device via MTP won't show the changes (eg. new files, etc.).

Adblock Plus for Android does not yet support ad filtering for HTTPS/SSL connections

Adblock Plus for Android (ABP) uses the proxy approach for ad blocking, i.e. a process is continuously running in the background, listens on a specific TCP port (which is 2020 nowadays) for proxy HTTP requests and processes them based on it's ad filtering rules. If you're phone/tablet is rooted, ABP can automatically route all outgoing traffic through it's proxy. If your device is not rooted and it's running a more recent (4.2.2 or newer) Android version, then you've to manually configure your network connection to use ABP's proxy. The essential problem with this approach is that it can only process plain/unencrypted HTTP connections, while today most services go through HTTPS (SSL encryption). Let it be Facebook, Google or even warez sites like The Pirate Bay. ABP for Android is of little to no use on these sites. The only possible solution in this case is an in-app ad blocker. The Android version of Firefox does let you install the ABP extension, which will block even ads served via HTTPS/SSL. So you've a choice, even though somewhat limited (since you cannot use the browser of your choice ... you've to use Firefox if you want to get rid of HTTPS ads).

How to programmatically enable and disable airplane/flight mode on Android 4.2+

Previously I wrote this other post about how to change system settings (like Airplane Mode) by directly manipulating the SQLite database file that stores them. It turns out that there's a better way.

Linux Command Cheat Sheet

A pretty nice compilation of some of the more important linux commands. Of course you'll need to get familiar with them to be of any use, but at least it's a good starting point for beginners.

Syndicate content Syndicate content