Skip to content

Instantly share code, notes, and snippets.

View magnetikonline's full-sized avatar
💡
I have an idea!

Peter Mescalchin magnetikonline

💡
I have an idea!
View GitHub Profile
@magnetikonline
magnetikonline / README.md
Last active December 16, 2019 01:09
JavaScript implementation of binary insertion sort.
@magnetikonline
magnetikonline / README.md
Last active March 25, 2024 12:48
Linux umask table.

Linux umask table

Umask is determined by subtracting (binary NOT) from the initial masks of:

  • File: 666 rw-rw-rw
  • Directory: 777 rwxrwxrwx

Therefore:

| Umask | File result | Directory result |

@magnetikonline
magnetikonline / README.md
Last active January 29, 2024 23:26
An example of recursion with Promises - reading recursive directories.

An example of recursion with Promises

A pattern for recursion with Promises - in this example, walking a directory structure.

Function flow

  • readDirRecursive() is called with a starting directory and will itself return a Promise.
  • Internally readDir() is called and passed starting directory to read from.
  • A list of directory items is returned by getItemList() as a Promise, which in turn is chained to getItemListStat() to stat each item to determine if file or directory.
  • Finalised list then passed to processItemList():
@magnetikonline
magnetikonline / README.md
Last active April 7, 2024 23:38
Bash internal field separator (IFS) usage.

Bash internal field separator (IFS) usage

The IFS internal variable is used to determine what characters Bash defines as word/item boundaries when processing character strings. By default set to whitespace characters of space, tab, and newline.

Running the example ifs.sh, comparing the difference between the default and setting only newline as a boundary we get the following output:

/path/to/first
file
/path/to/second
@magnetikonline
magnetikonline / README.md
Last active October 20, 2025 01:59
Install Git on macOS from source.

Install Git on macOS from source

A quick n' dirty Bash script to install the following:

  • autoconf, needed by Git configure.
  • git - from source.

Tested successfully under both Intel and M1 (ARM64) based architectures.

Requires as a minimum Xcode CLI tools (no need for a full install). Can be installed via the following:

@magnetikonline
magnetikonline / README.md
Last active March 5, 2017 23:31
NetScaler rewrite action to update a cookie key value.

NetScaler rewrite action to update a cookie key value

Making a note of this because NetScalers at just awful at anything when it comes to messing with HTTP header cookie values.

So I wish to update the value of a Cookie key of mykey= to mykey=new_value. I can do so with the following rewrite action:

  • Type: REPLACE

  • Expression to choose target location: HTTP.REQ.HEADER("Cookie")

  • Expression:

@magnetikonline
magnetikonline / README.md
Last active April 30, 2025 11:11
List all Git repository objects by size.

List all Git repository objects by size

Summary

Bash script which will:

  • Iterate all commits made within a Git repository.
@magnetikonline
magnetikonline / README.md
Created February 8, 2017 00:48
Stop Python urllib2 following HTTP redirects.

Stop Python urllib2 following HTTP redirects

By default calling a URL via urllib2 will follow any 30X responses returned, often not what you want.

We can correct this behavior by adding a custom "opener" class to the urllib2 module like so:

import urllib
import urllib2
@magnetikonline
magnetikonline / README.md
Last active October 25, 2020 09:54
macOS - Install tig CLI Git repository browser tool, without need for Xcode.

Install tig CLI Git repository browser tool

Without the need for Xcode bloat (yay!).

What is tig?: https://github.com/jonas/tig

# install gcc/make/etc.
# note: this will *not* install Xcode - don't be fooled by xcode in CLI command name
$ xcode-select --install