From ed8222535a31a5ede889f12e1d507928ee042531 Mon Sep 17 00:00:00 2001 From: samuel Date: Tue, 19 May 2020 16:28:33 +0200 Subject: [PATCH 1/4] python the hard way ex upto ex13 --- ...arn-python3-the-hard-way-nov-15-2018.pdf.swp | Bin 0 -> 36864 bytes sami/learn-python-the-hard-way/ex10.py | 16 ++++++++++++++++ sami/learn-python-the-hard-way/ex11.py | 8 ++++++++ sami/learn-python-the-hard-way/ex12.py | 6 ++++++ sami/learn-python-the-hard-way/ex13.py | 10 ++++++++++ sami/learn-python-the-hard-way/ex8.py | 13 +++++++++++++ sami/learn-python-the-hard-way/ex9.py | 15 +++++++++++++++ 7 files changed, 68 insertions(+) create mode 100644 sami/learn-python-the-hard-way/.learn-python3-the-hard-way-nov-15-2018.pdf.swp create mode 100644 sami/learn-python-the-hard-way/ex10.py create mode 100644 sami/learn-python-the-hard-way/ex11.py create mode 100644 sami/learn-python-the-hard-way/ex12.py create mode 100644 sami/learn-python-the-hard-way/ex13.py create mode 100644 sami/learn-python-the-hard-way/ex8.py create mode 100644 sami/learn-python-the-hard-way/ex9.py diff --git a/sami/learn-python-the-hard-way/.learn-python3-the-hard-way-nov-15-2018.pdf.swp b/sami/learn-python-the-hard-way/.learn-python3-the-hard-way-nov-15-2018.pdf.swp new file mode 100644 index 0000000000000000000000000000000000000000..1e415072dda26b1c5f8a4d137b8724444a30b328 GIT binary patch literal 36864 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 Date: Wed, 20 May 2020 16:28:40 +0200 Subject: [PATCH 2/4] ex14 --- ...n-python3-the-hard-way-nov-15-2018.pdf.swp | Bin 36864 -> 0 bytes sami/learn-python-the-hard-way/ex14.py | 21 +++++++++++++++ sami/learn-python-the-hard-way/python.org | 24 ++++++++++++++++++ 3 files changed, 45 insertions(+) delete mode 100644 sami/learn-python-the-hard-way/.learn-python3-the-hard-way-nov-15-2018.pdf.swp create mode 100644 sami/learn-python-the-hard-way/ex14.py diff --git a/sami/learn-python-the-hard-way/.learn-python3-the-hard-way-nov-15-2018.pdf.swp b/sami/learn-python-the-hard-way/.learn-python3-the-hard-way-nov-15-2018.pdf.swp deleted file mode 100644 index 1e415072dda26b1c5f8a4d137b8724444a30b328..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36864 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 Date: Fri, 22 May 2020 16:35:56 +0200 Subject: [PATCH 3/4] pushing using magit yay --- sami/learn-python-the-hard-way/#ex1.py# | 8 ++++ sami/learn-python-the-hard-way/.#ex1.py | 1 + sami/learn-python-the-hard-way/ex15.py | 18 ++++++++ sami/learn-python-the-hard-way/ex16.py | 41 +++++++++++++++++ sami/learn-python-the-hard-way/ex17.py | 28 +++++++++++ sami/learn-python-the-hard-way/ex18.py | 25 ++++++++++ sami/learn-python-the-hard-way/ex19.py | 26 +++++++++++ sami/learn-python-the-hard-way/ex20.py | 46 +++++++++++++++++++ sami/learn-python-the-hard-way/ex21.py | 39 ++++++++++++++++ sami/learn-python-the-hard-way/ex22.py | 5 ++ sami/my-org-files/cdist.org/#all-in-one# | 43 +++++++++++++++++ sami/my-org-files/cdist.org/all-in-one.org | 42 +++++++++++++++++ .../cdist.org/cdist#3-requirements.org | 33 +++++++++++++ ...st#5-messsaging => cdist#5-messsaging.org} | 0 14 files changed, 355 insertions(+) create mode 100644 sami/learn-python-the-hard-way/#ex1.py# create mode 120000 sami/learn-python-the-hard-way/.#ex1.py create mode 100644 sami/learn-python-the-hard-way/ex15.py create mode 100644 sami/learn-python-the-hard-way/ex16.py create mode 100644 sami/learn-python-the-hard-way/ex17.py create mode 100644 sami/learn-python-the-hard-way/ex18.py create mode 100644 sami/learn-python-the-hard-way/ex19.py create mode 100644 sami/learn-python-the-hard-way/ex20.py create mode 100644 sami/learn-python-the-hard-way/ex21.py create mode 100644 sami/learn-python-the-hard-way/ex22.py create mode 100644 sami/my-org-files/cdist.org/#all-in-one# create mode 100644 sami/my-org-files/cdist.org/all-in-one.org create mode 100644 sami/my-org-files/cdist.org/cdist#3-requirements.org rename sami/my-org-files/cdist.org/{cdist#5-messsaging => cdist#5-messsaging.org} (100%) diff --git a/sami/learn-python-the-hard-way/#ex1.py# b/sami/learn-python-the-hard-way/#ex1.py# new file mode 100644 index 0000000..04e1500 --- /dev/null +++ b/sami/learn-python-the-hard-way/#ex1.py# @@ -0,0 +1,8 @@ +n +print("Hello World!") +print("Hello Again") +print("I like typing this.") +print("This is fun.") +print('Yay! Printing.') +print("I'd much rather you 'not'.") +print('I "said" do not touch this.') diff --git a/sami/learn-python-the-hard-way/.#ex1.py b/sami/learn-python-the-hard-way/.#ex1.py new file mode 120000 index 0000000..60f2e79 --- /dev/null +++ b/sami/learn-python-the-hard-way/.#ex1.py @@ -0,0 +1 @@ +sami@afro-linux-lenovo-b50-30.19806:1589891645 \ No newline at end of file diff --git a/sami/learn-python-the-hard-way/ex15.py b/sami/learn-python-the-hard-way/ex15.py new file mode 100644 index 0000000..5539d4b --- /dev/null +++ b/sami/learn-python-the-hard-way/ex15.py @@ -0,0 +1,18 @@ +from sys import argv + +script, filename = argv + + +txt = open(filename) + +print(f"Here's your file {filename}:") +print(txt.read()) + +print("Type the filename again:") +file_again = input("> ") + + +txt_again = open(file_again) + + +print(txt_again.read()) diff --git a/sami/learn-python-the-hard-way/ex16.py b/sami/learn-python-the-hard-way/ex16.py new file mode 100644 index 0000000..e8a2389 --- /dev/null +++ b/sami/learn-python-the-hard-way/ex16.py @@ -0,0 +1,41 @@ + +from sys import argv + + +script, filename = argv + +print(f"We're going to erase {filename}.") +print("If you don't want that, hit CTRL-C (^C).") +print("If you do want that, hit RETURN.") + + +input("?") + +print("Opening the file...") +target = open(filename, 'w') + +print("Truncating the file. +target.truncate() + +Goodbye!") + + +print("Now I'm going to ask you for three lines.") + +line1 = input("line 1: ") +line2 = input("line 2: ") +line3 = input("line 3: ") + + +print("I'm going to write these to the file.") + +target.write(line1) +target.write("\n") +target.write(line2) +target.write("\n") +target.write(line3) +target.write("\n") + +print("And finally, we close it.") + +target.close() diff --git a/sami/learn-python-the-hard-way/ex17.py b/sami/learn-python-the-hard-way/ex17.py new file mode 100644 index 0000000..c6a0f1f --- /dev/null +++ b/sami/learn-python-the-hard-way/ex17.py @@ -0,0 +1,28 @@ +from sys import argv +from os.path import exists + + +script, from_file, to_file = argv + + +print(f"Copying from {from_file} to {to_file}") + +# we could do these two on one line, how? +in_file = open(from_file) + +indata = in_file.read() + + +print(f"The input file is {len(indata)} bytes long") + +print(f"Does the output file exist? {exists(to_file)}") +print("Ready, hit RETURN to continue, CTRL-C to abort.") +input() + +out_file = open(to_file, 'w') +out_file.write(indata) + +print("Alright, all done.") + +out_file.close() +in_file.close() diff --git a/sami/learn-python-the-hard-way/ex18.py b/sami/learn-python-the-hard-way/ex18.py new file mode 100644 index 0000000..b9617a4 --- /dev/null +++ b/sami/learn-python-the-hard-way/ex18.py @@ -0,0 +1,25 @@ +# this one is like your scripts with argv +def print_two(*args): +arg1, arg2 = args +print(f"arg1: {arg1}, arg2: {arg2}") + +# ok, that *args is actually pointless, we can just do this +def print_two_again(arg1, arg2): + +print(f"arg1: {arg1}, arg2: {arg2}") + +# this just takes one argument +def print_one(arg1): + +print(f"arg1: {arg1}") + +# this one takes no arguments +def print_none(): + +print("I got nothin'.") + + +print_two("Zed","Shaw") +print_two_again("Zed","Shaw") +print_one("First!") +print_none() diff --git a/sami/learn-python-the-hard-way/ex19.py b/sami/learn-python-the-hard-way/ex19.py new file mode 100644 index 0000000..a8f60d6 --- /dev/null +++ b/sami/learn-python-the-hard-way/ex19.py @@ -0,0 +1,26 @@ +def cheese_and_crackers(cheese_count, boxes_of_crackers): +print(f"You have {cheese_count} cheeses!") +print(f"You have {boxes_of_crackers} boxes of crackers!") +print("Man that's enough for a party!") +print("Get a blanket.\n") + + +print("We can just give the function numbers directly:") +cheese_and_crackers(20, 30) + + +print("OR, we can use variables from our script:") +amount_of_cheese = 10 +amount_of_crackers = 50 + + +cheese_and_crackers(amount_of_cheese, amount_of_crackers) + + +print("We can even do math inside too:") +cheese_and_crackers(10 + 20, 5 + 6) + + +print("And we can combine the two, variables and math:") + +cheese_and_crackers(amount_of_cheese + 100, amount_of_crackers + 1000) diff --git a/sami/learn-python-the-hard-way/ex20.py b/sami/learn-python-the-hard-way/ex20.py new file mode 100644 index 0000000..2e02b87 --- /dev/null +++ b/sami/learn-python-the-hard-way/ex20.py @@ -0,0 +1,46 @@ +from sys import argv + + +script, input_file = argv + + + +def print_all(f): +print(f.read()) + + + +def rewind(f): +f.seek(0) + + + +def print_a_line(line_count, f): +print(line_count, f.readline()) + + +current_file = open(input_file) + + +print("First let's print the whole file:\n") + + +print_all(current_file) + + +print("Now let's rewind, kind of like a tape.") + + +rewind(current_file) + + +print("Let's print three lines:") + +current_line = 1 +print_a_line(current_line, current_file) + +current_line = current_line + 1 +print_a_line(current_line, current_file) + +current_line = current_line + 1 +print_a_line(current_line, current_file) diff --git a/sami/learn-python-the-hard-way/ex21.py b/sami/learn-python-the-hard-way/ex21.py new file mode 100644 index 0000000..fffb76a --- /dev/null +++ b/sami/learn-python-the-hard-way/ex21.py @@ -0,0 +1,39 @@ +def add(a, b): +print(f"ADDING {a} + {b}") +return a + b + + +def subtract(a, b): +print(f"SUBTRACTING {a} - {b}") +return a - b + + +def multiply(a, b): +print(f"MULTIPLYING {a} * {b}") +return a * b + + +def divide(a, b): +print(f"DIVIDING {a} / {b}") +return a / b + + +print("Let's do some math with just functions!") + +age = add(30, 5) +height = subtract(78, 4) +weight = multiply(90, 2) +iq = divide(100, 2) + + +print(f"Age: {age}, Height: {height}, Weight: {weight}, IQ: {iq}") + + +# A puzzle for the extra credit, type it in anyway. +print("Here is a puzzle.") + + +what = add(age, subtract(height, multiply(weight, divide(iq, 2)))) + + +print("That becomes: ", what, "Can you do it by hand?") diff --git a/sami/learn-python-the-hard-way/ex22.py b/sami/learn-python-the-hard-way/ex22.py new file mode 100644 index 0000000..4eceb50 --- /dev/null +++ b/sami/learn-python-the-hard-way/ex22.py @@ -0,0 +1,5 @@ +* What Do Know SO far? + +** print : The print function in Python is a function that outputs to your console window whatever you say you want to print out. + +** diff --git a/sami/my-org-files/cdist.org/#all-in-one# b/sami/my-org-files/cdist.org/#all-in-one# new file mode 100644 index 0000000..a9c3f85 --- /dev/null +++ b/sami/my-org-files/cdist.org/#all-in-one# @@ -0,0 +1,43 @@ +*** cdist #6: Glueing it together +**** Lecture content +***** Objective + - Apply learnings from the previous cdist sessions +***** Steps 1: *__all_in_one* (1.25h) + - Create a new type named *__all_in_one* + - Decide yourself whether it is a singleton or not + - Reason why in your cdist.org file + - It should work on alpine, debian and fedora + - It accepts the following parameters: + - *--with-x* (boolean) + - *--extra-packages* (optional multiple) + - On Alpine, it should install netcat-openbsd and tshark + - On Debian, it should install netcat tshark + - On Fedora, it should install nmap-ncat wireshark-cli + - On all operating systems install socat sipcalc sudo + - If the detected operating system is neither + Alpine/Debian/Fedora, output an error message and abort the + manifest with exit code 1 + - Additionally install all packages specified by the *--extra-packages* parameter +***** Steps 2: *__firewall* (1.25h) + - Create a new type *__my_firewall* + - Add a *type explorer* to find out whether nft is present on + the target system + - Add a required parameter named *file* + - If the type explorer does not detect nft on the target system, + abort with an error message + - Deploy the specified file to */etc/my-nftables* + - Add a *type explorer* that reads the current nft rules + - If the rules are different on the target host, apply the new + ruleset by generating code in *gencode-remote* + - If the filename specified by the *file* parameter is *-* (the + minus sign), then the type should read from *stdin* +***** Step 3: manifest (0.5h) + - Create a new manifest in the folder that contains the initial manifest + - Name the new manifest *firewall* + - Source the *firewall* manifest in the *initial* manifest + - In the *firewall* manifest, match on *localhost* + - Install nftables + - Use the *__firewall* type + - Use correct *require* parameter to ensure that nftables is + installed before the *__firewall* type is run + \ No newline at end of file diff --git a/sami/my-org-files/cdist.org/all-in-one.org b/sami/my-org-files/cdist.org/all-in-one.org new file mode 100644 index 0000000..05b2399 --- /dev/null +++ b/sami/my-org-files/cdist.org/all-in-one.org @@ -0,0 +1,42 @@ +*** cdist #6: Glueing it together +**** Lecture content +***** Objective + - Apply learnings from the previous cdist sessions +***** Steps 1: *__all_in_one* (1.25h) + - Create a new type named *__all_in_one* + - Decide yourself whether it is a singleton or not + - Reason why in your cdist.org file + - It should work on alpine, debian and fedora + - It accepts the following parameters: + - *--with-x* (boolean) + - *--extra-packages* (optional multiple) + - On Alpine, it should install netcat-openbsd and tshark + - On Debian, it should install netcat tshark + - On Fedora, it should install nmap-ncat wireshark-cli + - On all operating systems install socat sipcalc sudo + - If the detected operating system is neither + Alpine/Debian/Fedora, output an error message and abort the + manifest with exit code 1 + - Additionally install all packages specified by the *--extra-packages* parameter +***** Steps 2: *__firewall* (1.25h) + - Create a new type *__my_firewall* + - Add a *type explorer* to find out whether nft is present on + the target system + - Add a required parameter named *file* + - If the type explorer does not detect nft on the target system, + abort with an error message + - Deploy the specified file to */etc/my-nftables* + - Add a *type explorer* that reads the current nft rules + - If the rules are different on the target host, apply the new + ruleset by generating code in *gencode-remote* + - If the filename specified by the *file* parameter is *-* (the + minus sign), then the type should read from *stdin* +***** Step 3: manifest (0.5h) + - Create a new manifest in the folder that contains the initial manifest + - Name the new manifest *firewall* + - Source the *firewall* manifest in the *initial* manifest + - In the *firewall* manifest, match on *localhost* + - Install nftables + - Use the *__firewall* type + - Use correct *require* parameter to ensure that nftables is + installed before the *__firewall* type is run diff --git a/sami/my-org-files/cdist.org/cdist#3-requirements.org b/sami/my-org-files/cdist.org/cdist#3-requirements.org new file mode 100644 index 0000000..975c4c7 --- /dev/null +++ b/sami/my-org-files/cdist.org/cdist#3-requirements.org @@ -0,0 +1,33 @@ +*** cdist #3: type parameters +**** Lecture content + +***** Create a new type named *__colourful_file* + + - The objective is to create a type that creates colourful file + - The content of the file should be "colour=...", where "..." is + a colour specified by a parameter + - Add an *optional parameter* named *colour* + - Use the **__file** type inside your type to create a file + - Use the *$__object_id* variable inside your type + +***** Extend your type to be more colourful + - Modify the *optional parameter* to be able to be specified + *multiple times* + - For each time it is specified, add a line "colour=..." to the file + + +***** Create a new type *__my_dotfiles* + - Objective is to manage the dotfiles in your home directory + - Make it a *singleton* type + - Create a sub directory *files* in the type + - Add your .emacs config to the files folder + - Add a *for* loop to your type to deploy .[A-z]* to your home directory + - Add a .bashrc or .zshrc to the files folder (depending on your shell) + - In the initial manifest, add __my_dotfiles when the target + host is localhost +***** As usual commit all changes to your ungleich-learning-circle repo + + +* Defining parameters +** Every type consists of required, optional and boolean parameters, which + must each be declared in a newline separated file in parameter/required, diff --git a/sami/my-org-files/cdist.org/cdist#5-messsaging b/sami/my-org-files/cdist.org/cdist#5-messsaging.org similarity index 100% rename from sami/my-org-files/cdist.org/cdist#5-messsaging rename to sami/my-org-files/cdist.org/cdist#5-messsaging.org From 93e9083608d5e75942b125b7b5daa74483ed4909 Mon Sep 17 00:00:00 2001 From: samuel Date: Fri, 22 May 2020 16:48:04 +0200 Subject: [PATCH 4/4] pushing until ex.21 --- sami/learn-python-the-hard-way/.gitignore | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 sami/learn-python-the-hard-way/.gitignore diff --git a/sami/learn-python-the-hard-way/.gitignore b/sami/learn-python-the-hard-way/.gitignore new file mode 100644 index 0000000..77a0e17 --- /dev/null +++ b/sami/learn-python-the-hard-way/.gitignore @@ -0,0 +1,4 @@ + +\#*# +*~ +