Please No 169.254/16

When you bring up at new LINUX OS installation it will typically [at least in the case of CentOS] have a route of 169.254/16 on every interface. These routes are used to support the good and virtuous feature known as "zeroconf". Sometimes however you do not want that route noise - especially if the host is going to be operating as a router or firewall. Fortunately disabling this feature for this specific use-case is easy.

The Quest For The Lost Pointer

On the screen you have a pointer - it points at thing! It is used to point at, select [highlight], drag, and numerous other things. The mouse pointer has been there and looked more-or-less the same for decades now; my pointer in GNOME Shell looks and works almost identically to the pointer I had on my GEOS desktop (1986). It has stayed the same because it works.

PostgreSQL Table Spaces

A powerful feature of PostgreSQL is the ability to create table spaces and to move database objects between them. Each table space represents a physical storage location; so using table spaces you can tier data onto different grades of storage [SSD vs. fast disk vs. slow disk] as well as move data from storage being retired [like an iSCSI SAN] to a new storage [a Fiber-Channel SAN!].

Drag-N-Drop Message Format

A little recognized feature in GNOME is the that e-mail messages can be drag-n-dropped from GNOME's Evolution to other applications. When a message from Evolution is dropped into Nautilus the message will be saved to the corresponding folder as an mbox file. This is useful, but probably not optimal, for a desktop environment.

To optimize this behavior the gsettings command can be used to change the default format as a PDF.

Windows "Uptime"

Windows XP and its brethren lack an uptime command. Yeah, the reason the probably obvious, but sometimes it would be nice to know. A user says they restarted their workstation... but most user's [including recent college graduates] don't know the difference between logging out and restarting. So how to know how long a workstation has been running?

explorer.exe /separate

The runas tool in Microsoft Windows serves the same purpose as the sudo tool on Open [or at least "open"] platforms. With runas you can execute commands in alternative security contexts. Only some tools in Microsoft Windows aren't normal; that is if you attempt to run them via runas.... often times nothing at all happens. One very significant example of this behavior is the Control Panel (control.exe).

Performing LDAP Binds With NTLM

With either a Windows Active Directory server or a Samba4 Active Directory server very little information is exposed for anonymous searches via LDAP. This means every search has to bind. Simple binds are insecure and in many cases not supported - for good reason, they are hopelessly insecure. But often times one doesn't want to bother with Kerberos (even as great as Kerberos is) due to ticket expiration, keytab paths, etc...

Deindexing A Table (PostgreSQL)

One of the key steps for performing tuning a database is to test indexing strategies and their effect on performance. It is a series of:

  1. Drop the indexes
  2. Create new indexes
  3. Update statistics
  4. EXPLAIN the important queries.

Rinse and repeat.

Encoding sambaNTPassword With Python

Samba's sambaNTPassword attribute, which mimics the corresponding NT / Active Directory attribute, has a value that must be a hex encoded MD4 hash of the user's password with a UTF-16 encoding. Fortunately generating such a string is a Python one-liner.

import hashlib

password = 'fred123'
nt_password = hashlib.new('md4', password.encode('utf-16le')).digest().encode('hex').upper()

Note that Samba wants all the alpha characters in the string as upper-case.The result will always be 32 characters long.

Counting weekdays between dates

Need a method to accurately count the number of weekdays between two days? [The key here is "accurately", it is a bit harder than it seems at first]. In Python there are several ways to do this, but most involve some iteration or list comprehension. In my opinion, if you have to do that, you are probably violating the Python idiom of "use the batteries".

Pages

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer