Multiple Choice mit Text

Also, folgendes: In einer Umfrage habe ich einen Multiple-Choice-Teil mit Checkboxen. Bei manchen Optionen sollen noch zusätzliche Informationen in einem Textfeld abgefragt werden, wenn sie ausgewählt werden.

Gibt es eine Standardlösung, die das kann?

Multiple Choice mit Text

Das kann dann ungefähr so aussehen.

Natürlich könnte man auch alle Textkästen direkt anzeigen. Das ist aber nicht sehr platzsparend.

Multiple Choice mit Text

*scroll*

Der Bonner OB im SP: Von Lobhudelei bis zum privaten Nahverkehr

Heute Abend kommt Ashok-Alexander Sridharan (CDU), der Oberbürgermeister Bonns, ins Studierendenparlament. Weil dieses ihn eingeladen hat. Nun denn.

Wie zu solchen Anlässen mittlerweile üblich durften im Vorfeld Fragen eingereicht werden, die dem Oberbürgermeister dann zugesandt wurden und heute Abend von ihm beantwortet werden. So sind 41 Fragen zusammengekommen, die aus Zeitgründen ziemlich sicher nicht alle heute Abend behandelt werden können. Den gesamten Fragenkatalog gibt es (aus dem Uninetz) hier, aber klickt da mal noch nicht drauf, denn ich habe noch etwas mit euch vor.

Wie zu solchen Anlässen mittlerweile üblich haben die Fraktionen sich nicht abgesprochen, sodass wieder einmal einige inhaltliche Doppelungen vorhanden sind. Die sind besonders interessant, da man an ihnen vergleichen kann, wie die unterschiedlichen Fraktionen sie formuliert haben. Ich behaupte: Man kann anhand einer Frage gut erkennen, von welcher Fraktion sie stammt. Weiterhin behaupte ich, dass dies nicht nur mit den inhaltlichen Doppelungen funktioniert, sondern mit dem Großteil der Fragen.

Wie ließe sich das besser verifizieren als mit einem kleinen Quiz!

Read More

Creating self-signed SSL certificates

Create a self-signed SSL certificate using openssl:

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out certificate.pem -days 365 -nodes

OpenSSL will ask for Country Name, State or Province Name, Common Name and all that jazz before creating key and certificate.


Create a self-signed SSL certificate using python with the cryptography package:

#! /usr/bin/env python3

from cryptography import x509
 from cryptography.x509.oid import NameOID
 from cryptography.hazmat.primitives import serialization, hashes
 from cryptography.hazmat.primitives.asymmetric import rsa
 from cryptography.hazmat.backends import default_backend
 import datetime

name_attributes = []

country_name = input("COUNTRY_NAME: ")
 if(country_name != ""):
 name_attributes.append(x509.NameAttribute(NameOID.COUNTRY_NAME, country_name))

state_or_province_name = input("STATE_OR_PROVINCE_NAME: ")
 if(state_or_province_name != ""):
 name_attributes.append(x509.NameAttribute(NameOID.STATE_OR_PROVINCE_NAME, state_or_province_name))

locality_name = input("LOCALITY_NAME: ")
 if(locality_name != ""):
 name_attributes.append(x509.NameAttribute(NameOID.LOCALITY_NAME, locality_name))

organization_name = input("ORGANIZATION_NAME: ")
 if(organization_name != ""):
 name_attributes.append(x509.NameAttribute(NameOID.ORGANIZATION_NAME, organization_name))

common_name = input("COMMON_NAME: ")
 if(common_name != ""):
 name_attributes.append(x509.NameAttribute(NameOID.COMMON_NAME, common_name))

print("Enter SubjectAltName DNSName values, one at a time. Press Enter on an empty line to finish.")
 san_list = []
 san = "nonempty"
 while san != "":
 san = input("SAN DNSName: ")
 if san != "":
 san_list.append(x509.DNSName(san))

# Generate our key
 key = rsa.generate_private_key(
 public_exponent=65537,
 key_size=2048,
 backend=default_backend()
 )

# Write our key to disk for safe keeping
 with open("key.pem", "wb") as f:
 f.write(key.private_bytes(
 encoding=serialization.Encoding.PEM,
 format=serialization.PrivateFormat.TraditionalOpenSSL,
 encryption_algorithm=serialization.NoEncryption(),
 ))

# Various details about who we are. For a self-signed certificate the
 # subject and issuer are always the same.
 subject = issuer = x509.Name(name_attributes)

cert = x509.CertificateBuilder().subject_name(
 subject
 ).issuer_name(
 issuer
 ).public_key(
 key.public_key()
 ).serial_number(
 x509.random_serial_number()
 ).not_valid_before(
 datetime.datetime.utcnow()
 ).not_valid_after(
 # Our certificate will be valid for 365 days
 datetime.datetime.utcnow() + datetime.timedelta(days=365)
 )

# add SAN entries if any have been entered
 if san_list:
 cert = cert.add_extension(
 x509.SubjectAlternativeName(san_list),
 critical=False
 )

# Sign our certificate with our private key
 cert = cert.sign(key, hashes.SHA256(), default_backend())

# Write our certificate out to disk.
 with open("certificate.pem", "wb") as f:
 f.write(cert.public_bytes(serialization.Encoding.PEM))

The script will ask for Country Name, State or Province Name, Common Name and all that jazz before creating key and certificate. We even get to enter SubjectAlternativeName values! Great.