How to check if one dictionary is a subset of another larger dictionary in python Oct. 11, 2022, 2:05 p.m.

Provided your code already has both dictionaries as variables, it's very concise to check for this inline:

if big | small == big:
  # do something

Here is a solution that also properly recurses into lists and sets contained within the dictionary. You can also use this for lists containing dicts etc...

def is_subset(subset, superset):
    if isinstance(subset, dict):
        return all(key in superset and is_subset(val, superset[key]) for key, val in subset.items())

    if isinstance(subset, list) or isinstance(subset, set):
        return all(any(is_subset(subitem, superitem) for superitem in superset) for subitem in subset)

    # assume that subset is a plain value if none of the above match
    return subset == superset

Worse Is Better June 29, 2022, 8:19 a.m.

The concept known as "worse is better" holds that in software making (and perhaps in other arenas as well) it is better to start with a minimal creation and grow it as needed. Christopher Alexander might call this "piecemeal growth." This is the story of the evolution of that concept.

development reading

The Grug Brained Developer June 29, 2022, 8:19 a.m.

A layman's guide to thinking like the self-aware smol brained developer.

development reading programming

systemd by example - the systemd playground Jan. 27, 2022, 11:32 a.m.

The playground allows you to learn about systemd interactively, right from your browser! Create examples without the danger of breaking your system, and without being distracted by hundreds of unrelated unit files.

tutorial linux

Security identifiers (Windows 10) - Windows security Nov. 8, 2021, 10:04 a.m.

A security identifier (SID) is used to uniquely identify a security principal or security group. Security principals can represent any entity that can be authenticated by the operating system, such as a user account, a computer account, or a thread or process that runs in the security context of a user or computer account.

security windows

Well-known SIDs Nov. 8, 2021, 10:03 a.m.

Well-known security identifiers (SIDs) identify generic groups and generic users. There are universal well-known SIDs, which are meaningful on all secure systems using this security model, and well-known SIDs that are meaningful only on Windows systems.

security windows

User Rights Assignment (Windows 10) - Windows security Nov. 8, 2021, 10:02 a.m.

Provides an overview and links to information about the User Rights Assignment security policy settings user rights that are available in Windows. User rights govern the methods by which a user can log on to a system. User rights are applied at the local device level, and they allow users to perform tasks on a device or in a domain. User rights include logon rights and permissions. Logon rights control who is authorized to log on to a device and how they can log on. User rights permissions control access to computer and domain resources, and they can override permissions that have been set on specific objects.

security windows

Microsoft Defender for Endpoint (mdatp) on Debian Sid Nov. 8, 2021, 9:10 a.m.

I've spent quite a few hours learning how to wrangle auditd around exclusions. Here's what I've learned.

linux security

We need to talk: Can we standardize NO_PROXY? Oct. 21, 2021, 1:44 p.m.

Fast forward to today, we can see that how these proxy server variables are handled varies, depending on what language or tool you are using.

documentation proxy

Which Version Does Import-Module Import? Sept. 27, 2021, 12:20 p.m.

When you use Import-Module, run a command that triggers module auto-loading (PowerShell 3.0+), or run a script or module with a #Requires -Module directive, Windows PowerShell does not import the newest version of the module. Instead, it imports the newest version of the module that it finds in the first directory in which it finds the module. The order in which it looks for the module is determined by the value of the PSModulePath environment variable ($env:PSModulePath).


Managing Access Control with Desired State Configuration Sept. 15, 2021, 11:13 a.m.

Over the summer, the PowerShell Access Control module got some DSC resources to help manage security descriptors for for some of the supported object types. The module includes three resources: cAccessControlEntry, cSecurityDescriptorSddl, and cSecurityDescriptor.

security windows powershell dsc

Athena Basics: Running Queries | The Athena Guide May 28, 2021, 2:42 p.m.

Athena is not an isolated service, and running a query involves at least three AWS services: Athena, Glue Data Catalog, and S3.

athena aws

restic April 22, 2021, 8:01 a.m.

Restic is a modern backup program that can back up your files from Linux, BSD, Mac and Windows to many different storage types, including self-hosted and online services, only transferring the parts that actually changed in the files you back up.

backup free tools

How To Use Rsync to Sync Local and Remote Directories Feb. 11, 2021, 10:26 p.m.

Rsync, which stands for “remote sync”, is a remote and local file synchronization tool. It uses an algorithm that minimizes the amount of data copied by only moving the portions of files that have changed.

tutorial linux rsync

Windows Installer reconfigured all applications - Avoid querying Win32_product Jan. 12, 2021, 9:50 a.m.

Win32_product class is not query optimized. Queries such as select * from Win32_Product where (name like 'Sniffer%') require WMI to use the MSI provider to enumerate all of the installed products and then parse the full list sequentially to handle the where clause. This process also initiates a consistency check of packages installed, verifying and repairing the install. With an account with only user privileges, as the user account may not have access to quite a few locations, may cause delay in application launch and an event 11708 stating an installation failure.

Win32reg_AddRemovePrograms is a much lighter and effective way to do this, which avoids the calls to do a resiliency check, especially in a locked down environment. So when using Win32reg_AddRemovePrograms we won't be calling on msiprov.dll and won't be initiating a resiliency check.


Reserved Words in DynamoDB Dec. 10, 2020, 9:14 a.m.

The following keywords are reserved for use by DynamoDB. Do not use any of these words as attribute names in expressions. This list is not case-sensitive.

dynamodb aws

Domain Controller Selection Nov. 27, 2020, 3:49 p.m.

The process of a Windows client selecting an Active Directory domain controller isn't too complex but is often not fully understood.  Let's look at the way a member server chooses a DC and how this affects applications.

active directory

Deploying a Ubiquiti UniFi Home Network including Multiple WiFi Access Points July 30, 2020, 11:36 p.m.

Your network design is the greatest factor for poor wireless roaming. To get the best results, you will need to tune your wireless home network. This includes accounting for neighboring networks, interference, the density of your APs, the number of your wireless clients and their idiosyncrasies in terms of wireless standards support. Don’t expect to deploy a multi-AP network in your home, leave everything at the default settings, and have it work flawlessly. The location, power settings, and additional configuration parameters of your AP’s are critical.

UniFi wifi networking

Free Typing Speed Test July 20, 2020, 7:58 a.m.

Free WPM typing test.


Getting Started with macOS Programming in Swift June 23, 2020, 1:57 p.m.

In this post we are going to see the basics of a macOS app through the creation of a simple, but at the same time useful for many developers app: A font viewer that will let us choose font families and it will be displaying the PostScript names of the available fonts.

tutorial mac programming swift