Skip to content

Instantly share code, notes, and snippets.

Avatar

Jim Dennis JimDennis

View GitHub Profile
View quora-dict.py
dic = {}
for idx, char in enumerate (string):
if char! =' ':
if char not in dic:
dic [char] = [idx]
else:
dic [char].append(idx)
@JimDennis
JimDennis / nixos-install-suggestion
Created Dec 25, 2020
Suggestions for NixOS developers
View nixos-install-suggestion
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
@JimDennis
JimDennis / import_responder.py
Created Sep 10, 2020
Example of a problem importing the "responder" package
View import_responder.py
#!/usr/bin/env python3.8
import responder
# Raises: ModuleNotFoundError: No module named 'responder'
@JimDennis
JimDennis / naive_decorator.py
Created Jul 20, 2019
Example of a naïve decorator function
View naive_decorator.py
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 / match_comma_numbers.py
Created Jun 23, 2019
Python Regular Expression: Validate American Style Comma Separated Integers
View match_comma_numbers.py
# 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
View parse_iwinfo_scan.awk
# 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 / rot13.py
Created Feb 19, 2018
Rot-13 in Python
View rot13.py
#!/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])
View eratosthenes_sieve.py
#!/usr/bin/env python2
''' Eratosthenes sieve
'''
from __future__ import print_function
import array
import time
start = time.time()
@JimDennis
JimDennis / mystery_code.py
Last active Aug 10, 2017 — forked from anonymous/mystery_code.py
Mystery Python code from G+
View mystery_code.py
#/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()
@JimDennis
JimDennis / bignums.js
Last active Jul 9, 2017 — forked from anonymous/bignums.ps
Sample JS Code for bigNums Exercise
View bignums.js
/*
7. Iterate over the "bigNums" array.
If any number is less than 10, replace it with "x".
Return "bigNums"
HINT: You will need to "loop" over the array and check "if" the numbers are "less than" 10
Answer: This function should return ["x", 12, "x", 56, 19, "x", "x", "x", 14, 10, "x"]
*/
let bigNums = [3, 12, 7, 56, 19, 9, 1, 5, 14, 10, 2];