Skip to content

Instantly share code, notes, and snippets.

View JimDennis's full-sized avatar

Jim Dennis JimDennis

View GitHub Profile
@JimDennis
JimDennis / mystery_code.py
Last active August 10, 2017 20:21 — forked from anonymous/mystery_code.py
Mystery Python code from G+
#/usr/bin/env python
from __future__ import print_function
import random
list1 = list('abc') # We can expand strings into lists with this:
list2 = list1[:] # Makes a (shallow) copy of the list
letter_counts = dict()
#!/usr/bin/env python2
''' Eratosthenes sieve
'''
from __future__ import print_function
import array
import time
start = time.time()
@JimDennis
JimDennis / rot13.py
Created February 19, 2018 03:11
Rot-13 in Python
#!/usr/bin/env python
from __future__ import print_function
from string import uppercase
key = dict()
for plain,code in zip(uppercase, uppercase[13:]+uppercase[:13]):
key[plain] = code
key[plain.lower()] = code.lower()
def rot13(msg):
results = ''.join([key.get(c,c) for c in msg])
# Take output from iwinfo "$INTERFACE" scan command
# ... combine each stanza (record) into a single line and
# prefix with hostname
# Call with -v h="$HOSTNAME"
BEGIN {h=sprintf("%s:\t", h); line=h};
/^[^ ]/ {print line; line=h};
/^ / {line=sprintf("%s %s", line, $0)};
END {print line}
@JimDennis
JimDennis / match_comma_numbers.py
Created June 23, 2019 01:36
Python Regular Expression: Validate American Style Comma Separated Integers
# Regular expression to validate if a string is a valid integer with
# commas separating thousands, millions, billions and so on
import re
# start with some test cases:
good_tests = ['1', '12', '123', '1,234', '12,345', '123,456',
'1,234,567', '12,345,678', '123,456,789']
fail_tests = ['1234', '1,2345', '12,34', '1,2', '1,23', '1.2', '1,234.5']
# implement a test harness
@JimDennis
JimDennis / naive_decorator.py
Created July 20, 2019 22:10
Example of a naïve decorator function
def prefixer(fn, prefix):
'''Return a wrapper which prefix first (string) argument with prefix'''
def wrapper(output, *args, **kwargs):
output = '%s%s' % (prefix, output)
return fn(output, *args, **kwargs)
return wrapper
## Example of a decorator WITHOUT using the @wrapper syntactic sugar
## (to save ref to print if we want to use it later: old_print = print)
@JimDennis
JimDennis / import_responder.py
Created September 10, 2020 19:20
Example of a problem importing the "responder" package
#!/usr/bin/env python3.8
import responder
# Raises: ModuleNotFoundError: No module named 'responder'
@JimDennis
JimDennis / nixos-install-suggestion
Created December 25, 2020 02:34
Suggestions for NixOS developers
Offer nixos-enter after nixos-install as Per https://nixos.wiki/wiki/Change_root
After one has installed NixOS as per the instructions at: https://nixos.org/manual/nixos/stable/index.html#sec-installation
consider prompting the user and offering to perform nixos-enter to chroot into /mnt.
This can allow the new user to explore their new installation before reboot; but it also teaches them how they might later
use the nix-enter command for rescue perposes.
Of course getting value of this is in providing enough information in the prompt to inform the user of the option,
offer them more info, and showing them what it's doing (much as the web page is already doing; but presented there
dic = {}
for idx, char in enumerate (string):
if char! =' ':
if char not in dic:
dic [char] = [idx]
else:
dic [char].append(idx)
@JimDennis
JimDennis / Caloric.py
Created December 4, 2022 01:37
How to use gists for discussion of Python code
# Nostr posting: My first ever python script I wrote almost two years ago.
# This program will take user inputs and output the caloric intake required as stated in the insanity elite nutrition guide
print('Welcome to the Insanity Calorie calculaor \n');
# Step #1 Use the Harris Benedict Equation:
# First ask what the weight height, and age
print('Please answer each question \n')
weight = float(input("Please enter your weight in pounds: \n"))