ds14 koeart fragen rohform

This commit is contained in:
koeart 2014-09-13 14:09:20 +02:00
parent 848446f781
commit eddf5e07c8
9 changed files with 1848 additions and 0 deletions

View File

@ -0,0 +1,170 @@
--- !Question
question: Mit welcher Verschluesselung kommuniziert das Ampelsystem von Michigan?
answers:
- false: aes
- false: ssl
- true: keine Verschluesselung
- false: gpg
tier: 1
game_round: 1
--- !Question
question: Wofuer steht ASLR?
answers:
- true: Adress Space Layout Randomization
- false: A Secret Lawyer Recommendation
- false: Accelerated Sea-Level Rise
- false: Age, Sex, Location, Race
tier: 2
game_round: 1
--- !Question
question: Wie hoch ist der Preis fuer den Schluessel fuer den Synology Trojaner?
answers:
- true: 0,6 Bitcoin
- false: over9000 Euro
- false: 2,50 Mark
- false: 10.000 Dollar
tier: 3
game_round: 1
--- !Question
question: Was ist ICREACH?
answers:
- true: Suchmaschine fuer Vorratsdaten der US Behoerden
- false: Wlan-Kuehlschrank mit Backdoor
- false: Ein Umweltprogramm der DB
- false: Ein Typo auf abwegen
tier: 4
game_round: 1
--- !Question
question: Was soll in Karlinfornien ab 2015 verpflichtend jedes Smartphones besitzen?
answers:
- true: Kill Switch
- false: Kamera
- false: Kindersicherung
- false: Pornfilter
tier: 5
game_round: 1
--- !Question
question: Wegen was ist der ehemalige Mozilla CEO Branden Eich zurueckgetreten?
answers:
- true: Spenden an Prosposition 8
- false: Sexuellebelaestigung
- false: propritaerer Software
- false: schlechtem Kaffee
tier: 6
game_round: 1
--- !Question
question: Was ist keine SSL Implementierung?
answers:
- false: GnuTLS
- false: BoringSSL
- false: MatrixSSL
- true: FreeSSL
tier: 7
game_round: 1
--- !Question
question: Finde das Patent?
answers:
- true: Fotografieren vor weisen Hintergrund
- false: Sechseckige Tasten
- false: Datenspuren Stuff Please Do not Touch Zettel
- false: jegliche Python Programmierung
tier: 8
game_round: 1
--- !Question
question: Wie ist die Postleitzahl des Internet Kurorts?
answers:
- true: 502
- false: 404
- false: 403
- false: 503
tier: 9
game_round: 1
--- !Question
question: In welchen Land wurde jemand verhaftet weil er Waffen mit einem 3D-Drucker herstellte?
answers:
- true: Japan
- false: USA
- false: Deutschland
- false: Frankreich
tier: 10
game_round: 1
--- !Question
question: Wer ist nach Meinung der Bundesregierung kein Element der Menge alle?
answers:
- true: Angela Merkel
- false: Edward Snowden
- false: Obama
- false: die Queen
tier: 11
game_round: 1
--- !Question
question: Welches AntiViren Programm hat tcpip.sys als Virus endeckt?
answers:
- true: Kaspersky AntiVirus
- false: F-Secure AntiVirus
- false: McAfee AntiVirus
- false: Norton AntiVirus
tier: 12
game_round: 1
--- !Question
question: Welche End-to-End Verschluesselungsmethode feierte im Dezember 2013 ihren 16. Jahrestag?
answers:
- true: GPG
- false: S/MIME
- false: SSL
- false: OTR
tier: 13
game_round: 1
--- !Question
question: Welche Art des Protestes waehlte ein russischer Kuenstler gegen den Polizeistaat?
answers:
- true: die Hoden auf den Rote Platz nageln
- false: die Koerperhygiene zu verweigern
- false: Polizeiserver anzugreifen
- false: Blumen auf Polizeiautos malen
tier: 14
game_round: 1
--- !Question
question: Welche Firma warb mit Auslieferung von Binary Blobs von OpenSource?
answers:
- false: Mozilla
- true: Cisco Systems
- false: Microsoft
- false: Google
tier: 15
game_round: 1
--- !Question
question: Was hat die IT-Administration vom EU-Parlament gemacht?
answers:
- false: Verschluesselung von E-Mails gefoerdert
- true: Verschluesselung von E-Mails verboten
- false: Neue Crypto fuer E-Mails entwickelt
- false: E-Mail als Kommunikationsmittel abgeschafft
tier: 16
game_round: 1
--- !Question
question: Adobe hat seine Triple DES verschluesselt und gesalteten Passwoerter verloren. Warum ist das doof?
answers:
- false: Weil sie den Schluessel mit verloren haben?
- true: Weil sie die Passwort-Hints mit verloren haben?
- false: Weil sie die klartext Passwoerter daneben liegen hatten?
- false: Weil sie Verantwortlich fuer Flash sind?
tier: 17
game_round: 1

179
data.ds2014/murx.yaml Normal file
View File

@ -0,0 +1,179 @@
--- !Question
question: Welcher Diktator hat in diesem Jahr Twitter waehrend Unruhen sperren lassen?
answers:
- false: Putin
- false: Assad
- true: Erdogan
- false: Kim Jung Un
tier: 1
game_round: 1
--- !Question
question: wie wurden alternative dns-server, um die twitter-sperre in der Tuerkei diesen jahres zu umgehen, verbreitet?
answers:
- false: Ueber Brieftauben
- true: Ueber Graffiti
- false: Ueber Lautsprecherdurchsagen
- false: Ueber Banner
tier: 2
game_round: 1
--- !Question
question: welches betriebssystem hat dieses jahr durch supportstop, man koennte sagen, ausgedient?
answers:
- true: Windows XP
- false: Windows Vista
- false: Mac OS9
- false: Ubuntu 13.04
tier: 3
game_round: 1
--- !Question
question: Wem ist die Domain rms.sexy gewidmet?
answers:
- false: Richard Stahlman
- true: Richard Stallman
- false: Richard Simmons
- false: Rosy Mandy Sugar
tier: 4
game_round: 1
--- !Question
question: Was von dem folgenden ist ca-cert?
answers:
- true: eine Community
- false: ein Social Network
- false: ein Friend-to-Friend-Network
- false: Ein Krankhaus
tier: 5
game_round: 1
--- !Question
question: Wieviel Speicher hat der Heartbleed-bug in openssl geleaked?
answers:
- false: 128mb
- true: 64kb
- false: 32kb
- false: 128kb
tier: 6
game_round: 1
--- !Question
question: wie heisst ein Fork von Openssl, der nach dem bekanntwerden des Heartbleed-bugs enstanden ist?
answers:
- false: lovessl
- true: libressl
- false: liberssl
- false: securessl
tier: 7
game_round: 1
--- !Question
question: Was hat sich Amazon 2014 patentieren lassen?
answers:
- false: das Versenden von Packeten per Drohnen
- true: das Fotografieren auf weissem Hintergrund
- false: das Erstellen von .mobi Dateien
- false: das Fotografieren auf schwarzem Hintergrund
tier: 8
game_round: 1
--- !Question
question: wie alt waere Karl Koch dieses Jahr geworden?
answers:
- false: 23
- false: 42
- true: 49
- false: 67
tier: 9
game_round: 1
--- !Question
question: Welcher ist Karl Kochs Todestag?
answers:
- false: 05. November 1984
- true: 23. Mai 1989
- false: 09. November 1989
- false: 13. September 1984
tier: 10
game_round: 1
--- !Question
question: wieviele Daten zu IP-Adress-Inhabern hat die Telekom wegen Urheberechtsverletzungen nach dem letzten Transparenzbericht herausgegeben?
answers:
- false: ca. 1000
- true: ca. 1.000.000
- false: ca. 10.000
- false: ca. 100.000
tier: 11
game_round: 1
--- !Question
question: Wie hat ein saechsischer Hacker die nsa.gov seite gehackt?
answers:
- true: mit einer Cross-Side-Scripting Luecke
- false: mit einer Man-In-The-Middle-Attacke
- false: mit Social-Engineering
- false: mit Gewalt
tier: 12
game_round: 1
--- !Question
question: Wie ist der nickname von dem ehemaligen lulzsec-hacker, welcher fuer das fbi gearbeitet hat und seine crew-mitglieder verraten hat?
answers:
- false: apu
- true: sabu
- false: nabu
- false: babu
tier: 13
game_round: 1
--- !Question
question: von wem hat lulzsec kreditkartendaten entwendet und damit geld an Hilfsorganisationen Uebwerwiesen?
answers:
- false: playstation-network
- false: weisse haus
- true: stratfor
- false: Paypal
tier: 14
game_round: 1
--- !Question
question: wer hat den grimme-online-award 2014 in der kategorie Initiative und Gesamtverantwortung bekommen?
answers:
- false: krautchan.net
- false: heise.de
- true: netzpolitik.org
- false: c3d2.de
tier: 15
game_round: 1
--- !Question
question: was ist in diesem jahr beerdigt worden?
answers:
- false: bestandsdatenauskunft
- true: no-spy-abkommen
- false: indect
- false: CETA
tier: 16
game_round: 1
--- !Question
question: wie heisst der erste deutsche email-provider der einen transparenzbericht vorgestellt hat?
answers:
- true: posteo
- false: gamma
- false: telekom
- false: united Internet
tier: 17
game_round: 1
--- !Question
question: wenn ein hacker neuerdings von herzbluten spricht, dann meint er?
answers:
- false: lovoo.de-Datenbank-Leak
- true: openssl-Bug
- false: java-exploit
- false: Einstellung von Windows XP
tier: 18
game_round: 1

View File

@ -0,0 +1,319 @@
#--- !Question
#question: What are users in Facebook called?
#answers:
# - false: Hostage
# - false: Victims
# - true: Target
# - false: Product
#tier: 2
#game_round: 1
#media:
# question:
# - pix/facebook.jpg
# - pix/facebook-jail.png
# explanation:
# - videos/big-buck-bunny_trailer.webm
#
--- !Question
question: Wie hat das FBI nach eigenen Angaben die Silkroad Seite hops genommen?
answers:
- false: Werbung geschaltet
- false: die NSA um Hilfe gefragt
- true: die Captcha Funktion angegriffen
- false: Ross Ulbricht hat sich gestellt
tier: 1
game_round: 1
--- !Question
question: Suzan G. LeVine, die US-Botschafter in der Schweiz, schor ihren Amtseid auf
answers:
- false: einem iPad
- false: der Bibel
- false: der Schweizer Verfassung
- true: einem Kindle
tier: 2
game_round: 1
--- !Question
question: Was muss in einer SMS stehen um ein WIKO Android Smartphone zum Reboot zu zwingen?
answers:
- false: \!reboot
- true: \=
- false: \]; shutdown -r now \n
- false: 6662342
tier: 3
game_round: 1
--- !Question
question: Was verloste die saechsische Polizei als Preis ihres WM-Tippspiels?
answers:
- false: eine Nacht in der Ausnuechterungszelle (mit Fruehstueck)
- false: einen Kanister Pfefferspray
- true: Fahrt mit dem Wasserwerfer
- false: bei der naechsten Anti-Nazi Demo am 13. Februar ohne Platzverweis eine Sitzblockade machen zu duerfen
tier: 4
game_round: 1
--- !Question
question: Wie wiele Stille SMS wurden 2013 von der Berliner Polizei versendet?
answers:
- true: 73.000
- false: 145.000
- true: 250.000
- false: 310.000
tier: 5
game_round: 1
--- !Question
question: M w A h GBA H R g? (Mit welchen Akronymen hadert Generalbundesanwalt Harald Range gelegentlich?)
answers:
- false: CIA und AIC
- false: BND und NPD
- true: NSA und NASA
- false: ISS und ISIS
tier: 6
game_round: 1
--- !Question
question: Wie lange brauchte die Verwaltung der Stadt Dresden um die Datenbasis der Freifunk-Hotspots im Themenstadtplan zu aktualisieren?
answers:
- false: 24 Stunden
- true: 48 Stunden
- false: 2 Wochen
- false: 2 Monate
tier: 7
game_round: 1
--- !Question
question: Auf welche verschluesselung verweisen die Macher von TrueCrypt als "sichere" Alternative?
answers:
- false: FileVault (Apple)
- false: SafeGuard (Sophos)
- false: Luks (u. a. Debian)
- true: BitLocker (Microsoft)
tier: 8
game_round: 1
--- !Question
question: Was ist das besondere an dieser Schriftart?
answers:
- true: stammt vom Schild eines Obdachlosen
- false: gewann den Nerdcore fuer hervorragende Typografie
- false: naechste iOS Standardschrift
- false: reduziert die Kreditwuerdigkeit, da er von einer Gambling-Seite installiert wird
tier: 9
game_round: 1
--- !Question
question: Wer speichert wann du und was du spielst, zum Beispiel Spiele wie Angry Birds und WoW?
answers:
- false: GCHQ
- false: C3D2
- false: BND
- true: NSA
tier: 10
game_round: 1
--- !Question
question: Wieviele Gaeste waren auf dem 30c3?
answers:
- false: 1337
- false: 8080
- false: 4223
- true: over 9000
tier: 1
game_round: 2
--- !Question
question: Welche Hackergruppe speiste 2007 eine Atombombenexplosion in den Stream einer Webcam ein, welche gerade Live in einer TV-Sendung namens Panorama zu sehen war?
answers:
- false: Anonymous
- false: LulzSec
- false: ScriptKiddiz
- true: Ztohoven
tier: 2
game_round: 2
--- !Question
question: Welcher Inhalt wird fuer private Haushalte in Großbritannien automatisch gefiltert und von wem?
answers:
- false: Flugblaetter theisistischer Sekten, von der Kirche
- true: Pornografie, vom Interprovider
- false: Streptokokken, vom Wasserwerk
- false: Werbung fuer Fremdangebote, vom Mobilfunknetzbetreiber
tier: 3
game_round: 2
--- !Question
question: Wie nenn die NSA Angriffe ueber fingierte Hardware wie USB-Geraete oder Monitorkabel?
answers:
- false: Tim Access Operations
- false: Easy Access Operations
- true: Tailored Access Operations
- false: Suitable Access Operations
tier: 4
game_round: 2
--- !Question
question: Auf welche Absicherungstechnik plant die Bundesregierung demnaechst zurueck zu greifen um ihre Dokumentenerzeugnisse zu sichern?
answers:
- false: Voynich-Chiffre
- false: Enigma
- true: Schreibmaschine
- false: Stenographie
tier: 5
game_round: 2
--- !Question
question: Als was stuft die NSA jeden TOR-Nutzer automatisch ein?
answers:
- true: Extremist
- false: Terrorist
- false: Torrorist
- false: Zwiebelfreund
tier: 6
game_round: 2
--- !Question
question: Als Gregor Gysi dem Bundestagspraesident Norbert Lammert erklaert, dass auch dieser von der NSA abgehoert wird, entgegnete dieser Ja, aber im Unterschied zu Ihnen...
answers:
- false: war ich nicht in der SED
- true: trage ich es mit Fassung
- false: verschluessel ich Mails mit 2048 Bit
- false: ist die NSA Affaere fuer mich beendet.
tier: 7
game_round: 2
--- !Question
question: Wie heisst der neue EU Minister fuer Digitales?
answers:
- false: Karl Theodor von Guttenberg
- false: Roland Koch
- true: Guenther Oettinger
- false: Jan Philipp Albrecht
tier: 8
game_round: 2
--- !Question
question: Wer betreibt KEINE Glasfasernetze der Bundeswehr?
answers:
- true: Telekom
- false: KPN
- false: Interoute
- false: GasLINE
comment: Interroute ist bekannt aus den Snowden Dokumenten und arbeitet eng mit dem GCHQ zusammen
tier: 9
game_round: 2
--- !Question
question: Was entgegnete das Bundeskartellamt der VG Media im Kartellverfahren gegen Google?
answers:
- false: Stimmt.
- false: Die Vorwuerfe werden geprueft
- false: Es erteilt keine Auskunft.
- true: Ihr schaut selber nach Kartell aus.
comment: Gnihihihihihi.
tier: 10
game_round: 2
--- !Question
question: Von wie vielen Tieren gibt es Selfies in der Wikipedia?
answers:
- false: 1
- true: 5
- false: 6
- false: 9
tier: 11
game_round: 2
comment: DER Affe, Elefant, Otter, Irgendwas, ...
--- !Question
question: Wie viele Seiten umfasst das Freihandelsabkommen CETA?
answers:
- false: 572
- true: 1602
- false: 1702
- false: 12302
tier: 1
game_round: 3
comment: Aktuelle Leak bei Netzpolitik.org erschienen
--- !Question
question: Wer bekam den LAME EXCUSE PWNIE 2014?
answers:
- true: AVG
- false: Avira
- false: AMG
- false: IBM
tier: 2
game_round: 3
comment: Gegen Angriffe von innen heraus sind die meisten LANs nicht als Sicher einzustufen. Anmeldung am Server war durch manipulierten Client moeglich.
--- !Question
question: Wie viel Prozent aller Server im Internet waren von Heartbleed betroffen?
answers:
- true: 17 Prozent
- false: 23 Prozent
- false: 42 Prozent
- false: 98 Prozent
tier: 3
game_round: 3
comment: Quelle WP Heartbleed Eintrag
--- !Question
question: Welcher Regierungschef kritisierte kuerzlich die Internetzensur im eigenen Land?
answers:
- false: David Cameron
- true: Hassan Rohani
- false: Angela Merkel
- false: Li Keqiang
tier: 4
game_round: 3
comment: Hoffe es folgen Taten...
--- !Question
question: Welche politische Reaktion gegenueber der USA zog die Bundesregierung nach dem Handygateskandal in Betracht?
answers:
- false: Botschafter ausweisen
- false: Kuendigung SWIFT
- true: sichere elektrische Kommunikation zum Thema machen
- false: Freihandelsabkommen aussetzen
tier: 5
game_round: 3
comment: s Dokument Netzpolitik
--- !Question
question: Wieviele Asteroiden sind nach den Monty Pythons benannt?
answers:
- false: 5
- false: 7
- false: 12
- true: 13
tier: 6
game_round: 3
comment: Namen raussuchen!
--- !Question
question: Was bot die Berliner Polizei nicht zum Kinderfest an?
answers:
- false: bla
- false: blub
- true: blabb
- false: Wasserwerfer fahren
tier: 7
game_round: 3
comment: BILDER!
--- !Question
question: Die Zeit des General Purpose Backofens ist vorbei. Welches Gericht koennte man im iOfen nicht backen?
answers:
- false: Kartoffelgratin
- false: Pommes
- true: Lasagne
- false: Himmel und Erde
tier: 1
game_round: 4
comment: Als letzte Frage, You Dont Know Bernd Test

187
data.ds2014/questions.yaml Normal file
View File

@ -0,0 +1,187 @@
#--- !Question
#question: What are users in Facebook called?
#answers:
# - false: Hostage
# - false: Victims
# - true: Target
# - false: Product
#tier: 2
#game_round: 1
#media:
# question:
# - pix/facebook.jpg
# - pix/facebook-jail.png
# explanation:
# - videos/big-buck-bunny_trailer.webm
!Question
question: Wie hat das FBI nach eigenen Angaben die Silkroad Seite hops genommen?
answers:
- false: Werbung geschaltet
- false: die NSA um Hilfe gefragt
- true: die Captcha Funktion angegriffen
- false: Ross Ulbricht hat sich gestellt
tier: 1
game_round: 1
comment: Test
!Question
question: Suzan G. LeVine, die US-Botschafter in der Schweiz, schor ihren Amtseid auf
answers:
- false: einem iPad
- false: der Bibel
- false: der Schweizer Verfassung
- true: einem Kindle
tier: 2
game_round: 1
!Question
question: Was muss in einer SMS stehen um ein WIKO Android Smartphone zum Reboot zu zwingen?
answers:
- false: reboot
- true: \=
- false: ; shutdown -r now \n
- false: 6662342
tier: 3
game_round: 1
!Question
question: Was verloste die sächsische Polizei als Preis ihres WM-Tippspiels?
answers:
- false: eine Nacht in der Ausnüchterungszelle (mit Frühstück)
- false: einen Kanister Pfefferspray
- true: Fahrt mit dem Wasserwerfer
- false: bei der nächsten Anti-Nazi Demo am 13. Februar ohne Platzverweis eine Sitzblockade machen zu dürfen
tier: 4
game_round: 1
!Question
question: Wie wiele Stille SMS wurden 2013 von der Berliner Polizei versendet?
answers:
- true: 73.000
- false: 145.000
- true: 250.000
- false: 310.000
tier: 5
game_round: 1
!Question
question: M w A h GBA H R g? (Mit welchen Akronymen hadert Generalbundesanwalt Harald Range gelegentlich?)
answers:
- false: CIA und AIC
- false: BND und NPD
- true: NSA und NASA
- false: ISS und ISIS
tier: 6
game_round: 1
!Question
question: Wie lange brauchte die Verwaltung der Stadt Dresden um die Datenbasis der Freifunk-Hotspots im Themenstadtplan zu aktualisieren?
answers:
- false: 24 Stunden
- true: 48 Stunden
- false: 2 Wochen
- false: 2 Monate
tier: 7
game_round: 1
!Question
question: Auf welche verschlüsselung verweisen die Macher von TrueCrypt als "sichere" Alternative?
answers:
- false: FileVault (Apple)
- false: SafeGuard (Sophos)
- false: Luks (u. a. Debian)
- true: BitLocker (Microsoft)
tier: 8
game_round: 1
!Question
question: Was ist das besondere an dieser Schriftart?
answers:
- true: stammt vom Schild eines Obdachlosen
- false: gewann den Nerdcore für hervorragende Typografie
- false: nächste iOS Standardschrift
- false: reduziert die Kreditwürdigkeit, da er von einer Gambling-Seite installiert wird
tier: 9
game_round: 1
!Question
question: Wer speichert wann du und was du spielst, zum Beispiel Spiele wie Angry Birds und WoW?
answers:
- false: GCHQ
- false: C3D2
- false: BND
- true: NSA
tier: 10
game_round: 1
!Question
question: Wieviele Gäste waren auf dem 30c3?
answers:
- false: 1337
- false: 8080
- false: 4223
- true: over 9000
tier: 1
game_round: 2
!Question
question: Welche Hackergruppe speiste 2007 eine Atombombenexplosion in den Stream einer Webcam ein, welche gerade Live in einer TV-Sendung namens Panorama zu sehen war?
answers:
- false: Anonymous
- false: LulzSec
- false: ScriptKiddiz
- true: Ztohoven
tier: 2
game_round: 2
!Question
question: Welcher Inhalt wird für private Haushalte in Großbritannien automatisch gefiltert und von wem?
answers:
- false: Flugblätter theisistischer Sekten, von der Kirche
- true: Pornografie, vom Interprovider
- false: Streptokokken, vom Wasserwerk
- false: Werbung für Fremdangebote, vom Mobilfunknetzbetreiber
tier: 3
game_round: 2
!Question
question: Wie nenn die NSA Angriffe über fingierte Hardware wie USB-Geräte oder Monitorkabel?
answers:
- false: Tim Access Operations
- false: Easy Access Operations
- true: Tailored Access Operations
- false: Suitable Access Operations
tier: 3
game_round: 2
!Question
question: Auf welche Absicherungstechnik plant die Bundesregierung demnächst zurück zu greifen um ihre Dokumentenerzeugnisse zu sichern?
answers:
- false: Voynich-Chiffre
- false: Enigma
- true: Schreibmaschine
- false: Stenographie
tier: 4
game_round: 2
!Question
question: Als was stuft die NSA jeden TOR-Nutzer automatisch ein?
answers:
- true: Extremist
- false: Terrorist
- false: Torrorist
- false: Zwiebelfreund
tier: 5
game_round: 2
!Question
question: Als Gregor Gysi dem Bundestagspräsident Norbert Lammert erklärt, dass auch dieser von der NSA abgehört wird, entgegnete dieser "Ja, aber im Unterschied zu Ihnen..."
answers:
- false: war ich nicht in der SED
- true: trage ich es mit Fassung
- false: verschlüssel ich Mails mit 2048 Bit
- false: ist die NSA Affäre für mich beendet.
tier: 6
game_round: 2

404
data.ds2014/questions2json.py Executable file
View File

@ -0,0 +1,404 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Convert questions for the famous Penta News Game Show from
some yaml format to json.
It's just a helper to write the questions in a more human
readeable format assuming yaml is more human readable
Note:
- Media files are looked for relative to the questions file
- Media files are expected relative to the generated json files
TODO:
* Add own constructor to Question() / nice to have
* Use import logging for debug logging
"""
__author__ = "Frank Becker <fb@alien8.de>"
__version__ = "0.0.2"
__date__ = "Fri 18 Nov 2011 18:10:44 CET"
__copyright__ = "Copyright (c) 2011 Frank Becker"
__license__ = "Python"
import os
import sys
import random
import json
from reportlab.lib.pagesizes import A5, LETTER, landscape, portrait
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Image
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import inch, cm
from reportlab.platypus.flowables import PageBreak
from optparse import OptionParser
try:
import yaml
except ImportError:
print 'You need to install PyYAML first. E. g. "pip install pyyaml"'
class Question(yaml.YAMLObject):
"""Represents a question
"""
yaml_tag = u"!Question"
web_root = "data"
# Generate random points in range of points_per_round
gen_random_points = True
points_per_round = {
1: (1, 100),
2: (100, 1000),
3: (10000, 100000),
4: (5, 42),
5: (13, 80),
}
# {round_no1: [tier1, tier2, ...], round_no2: [tier1, ...]}
registered_questions = {}
def __init__(self, question=u"", tier=0, answers=[], game_round=0,
media=("", "", ""), media_path="data", web_root="data"):
"""docstring for __init__
@question - the Question
@rank - number of the question in the game
@game_round - number of the round in the game
@answers - list of answers, assumed are 4
@media - (media show at question time, media shown at answer time,
media shown at resolution time)
@media_path - path to the media files
"""
self.question = question
self.answers = answers
self.tier = tier
self.game_round = game_round
self.media = media
self.media_path = media_path
self.web_root = web_root
def __type_by_extension(self, media_file):
"""returns the media type looked up by it's extension
FIXME (a8): maybe use file magic in the future
@media_file - path to the media file
"""
media_types = dict(
video = ('webm'),
image = ('png', 'jpg', 'gif'),
)
if not os.path.isfile(media_file):
raise IOError("The file {0} does not exist.".format(media_file,))
ext = media_file.rsplit('.', 1)[1]
for k, v in media_types.items():
if ext in v:
return k
raise KeyError("Media type for {0} not found".format(media_file,))
def __repr__(self):
"""docstring for __repr__"""
return "%s(%r)" % (self.__class__.__name__, self.question)
def _get_points(self, game_round, tier):
"""returns the points by game_round/tier combo"""
points_fixed = {
1: 100,
2: 150,
3: 225,
4: 337,
5: 506,
6: 759,
7: 1139,
8: 1709,
9: 2563,
10: 3844,
11: 5555,
12: 7531,
}
if not self.gen_random_points:
return points_fixed.get(tier, 0)
range = self.points_per_round.get(game_round)
points = random.randint(*range)
return points
@property
def as_dict(self):
"""dump data suiteable for json conversion"""
data = {}
data['text'] = self.question
data['tier'] = self._get_points(int(self.game_round), int(self.tier))
try:
data['source'] = self.source
except AttributeError:
data['source'] = False
print self.question
print self.answers
data['answers'] = [
{'text': answer[False]} if answer.has_key(False) \
else {'text': answer[True], 'right': True} \
for answer in self.answers
]
if hasattr(self, 'media'):
def gen_questions():
q_data = {}
for f in self.media['question']:
q_data[self.__type_by_extension(
os.path.sep.join(os.path.join([self.media_path, f]))
)] = os.sep.join([self.web_root, f])
return q_data
def gen_explanation():
"""Sorry, hacky. Quick fix required only 1st element is taken"""
f = self.media['explanation'][0]
k = self.__type_by_extension(os.path.sep.join(
os.path.join([self.media_path, f])))
v = [os.sep.join([self.web_root, expl]) \
for expl in self.media['explanation']]
if v:
v = v[0]
else:
v = ""
return {'explanation': {k: v}}
#): os.sep.join([self.web_root, f])
#[os.sep.join([self.web_root, expl]) \
# for expl in self.media['explanation']]}
def k_not_found():
raise KeyError("Media keyword not found")
for k in self.media.keys():
m_data = dict(
question = gen_questions,
explanation= gen_explanation,
k_not_found = "lambda x: pass",
).get(k, 'k_not_found')()
for key, value in m_data.items():
data[key] = value
return data
@property
def as_pdf_dict(self):
"""Return full data set. Includes comment field"""
data = self.as_dict
try:
data['comment'] = self.comment
except AttributeError:
data['comment'] = ""
return data
@classmethod
def get_points(cls):
"""docstring for get_points"""
for key in sorted(cls.points.keys()):
yield cls.points[key]
@staticmethod
def register_question(obj):
"""register object in class so no question with the
same tier/round combo can exist"""
if Question.registered_questions.has_key(obj.game_round) and \
obj.tier in Question.registered_questions[obj.game_round]:
raise IndexError("Slot for Question {0} is alredy taken".format(
obj.question,))
elif Question.registered_questions.has_key(obj.game_round):
Question.registered_questions[obj.game_round].append(obj.tier)
else:
Question.registered_questions[obj.game_round] = [obj.tier]
def init_parser():
"""Read command line options
returns:
options:dict -- config options
"""
parser = OptionParser()
parser.add_option(
"-d",
"--debug",
dest="debug",
help="Toggle debugging",
action="store_true",
default=False,
)
parser.add_option(
"-f",
"--questions-file",
dest="file",
help=("Use this file instead of the default "
"questions.yaml"),
metavar="FILE",
default="questions.yaml"
)
parser.add_option(
"-p",
"--generate-pdf",
dest="pdf",
help=("Generate the speaker PDF"),
action="store_true",
default=False,
)
parser.add_option(
"-v",
"--version",
dest="version",
help="Show program version",
action="store_true",
default=False,
)
options = parser.parse_args()[0]
return options
def questions_per_round(questions, game_round=None):
"""docstring for questions_per_round"""
return [q for q in questions if q.game_round == game_round]
def write_json_file(questions):
"""docstring for write_json_file"""
game_round = questions[0].game_round
file_name = 'round_{0}.json'.format(game_round)
fh = open(file_name, 'w')
fh.writelines(json.dumps([q.as_dict for q in questions], indent=2))
def gen_pdf(questions, game_rounds):
"""generate speaker PDF"""
styles = getSampleStyleSheet()
doc = SimpleDocTemplate("pngs-speaker.pdf")
doc.pagesize = landscape(A5)
style = styles["Normal"]
page_elements = []
for round in game_rounds:
for num, question in enumerate(
questions_per_round(questions, game_round=round)):
q_data = question.as_pdf_dict
page_elements.append(
Paragraph("<em>Game Round</em>: {0}".format(round),
style)
)
page_elements.append(Spacer(0, 0.1*cm))
page_elements.append(
Paragraph(
"<font size=12><em>Question {0}:</em> <bold>{1}</bold>"
"</font>".format(num + 1, q_data['text'].encode('utf-8')),
style)
)
page_elements.append(Spacer(0, 0.2*cm))
page_elements.append(
Paragraph("<em>Comment</em>: {0}".format(q_data.get('comment').encode('utf-8')),
style)
)
page_elements.append(Spacer(0, 0.2*cm))
page_elements.append(
Paragraph("<em>Answers</em>:",
style)
)
page_elements.append(
Paragraph("* " + "<br />* ".join([unicode(t['text']) for t in q_data['answers']]),
style)
)
page_elements.append(
Paragraph("<em>Points</em>: {0}".format(q_data.get('tier')),
style)
)
page_elements.append(PageBreak())
doc.build(page_elements)
return
Story = [Spacer(0, 1*cm)]
p = Paragraph("Blubber1", styles["Normal"])
Story.append(p)
p = Paragraph("Blubber2", styles["Normal"])
Story.append(p)
Story.append(Spacer(10, 5*cm))
p = Paragraph("Blubber3", styles["Normal"])
Story.append(p)
#doc.build(Story, onFirstPage=myFirstPage, onLaterPages=myLaterPages)
doc.build(Story)
def gen_answers_html(questions, game_rounds):
"""generate html"""
fh = open("answers.html", 'w')
html_header = """
<html>
<head>
<title></title>
</head>
<body>
"""
html_footer = """
</body>
</html>
"""
#fh.write(html_header)
fh.write('<ul>\n')
for round in game_rounds:
fh.write('<h2>Game Round {0}</h2>\n'.format(round))
for num, question in enumerate(
questions_per_round(questions, game_round=round)):
fh.write('<li>')
print question.question
fh.write(u'Question {0}: {1}<br />'.format(num + 1, question.question))
answers = ['<link href="{0}">Link {1}</link> '.format(s, n) \
for n, s in enumerate(question.source.split())]
#encode('utf-8')),
fh.writelines(", ".join(answers))
fh.write('</li>\n')
fh.write('</ul>\n')
#fh.write(html_footer)
fh.close()
def main():
"""docstring for main"""
options = init_parser()
if options.version:
print "Version: {0}".format(__version__,)
sys.exit()
if options.file:
questions_fh = open(options.file)
else:
questions_fh = open('questions.yaml')
questions = []
for q in yaml.load_all(questions_fh.read()):
#FIXME (fb@alien8.de) 11-11-18 23:16:34 use yaml constructor
# yaml.add_constructor
Question.register_question(q)
if options.file:
q.media_path = os.path.abspath(os.path.dirname(options.file))
questions.append(q)
if options.debug:
print Question.registered_questions
print [q.media for q in questions]
game_rounds = sorted(Question.registered_questions.keys())
for r in game_rounds:
write_json_file(questions_per_round(questions, game_round=r))
if options.debug:
print "Written file for game round: {0}".format(r)
if options.pdf:
gen_pdf(questions, game_rounds)
#gen_answers_html(questions, game_rounds)
if __name__ == '__main__':
main()
# vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 fileencoding=utf-8 :

203
data.ds2014/round_1.json Normal file
View File

@ -0,0 +1,203 @@
[
{
"tier": 4,
"text": "Wie hat das FBI nach eigenen Angaben die Silkroad Seite hops genommen?",
"answers": [
{
"text": "Werbung geschaltet"
},
{
"text": "die NSA um Hilfe gefragt"
},
{
"text": "die Captcha Funktion angegriffen",
"right": true
},
{
"text": "Ross Ulbricht hat sich gestellt"
}
],
"source": false
},
{
"tier": 92,
"text": "Suzan G. LeVine, die US-Botschafter in der Schweiz, schor ihren Amtseid auf",
"answers": [
{
"text": "einem iPad"
},
{
"text": "der Bibel"
},
{
"text": "der Schweizer Verfassung"
},
{
"text": "einem Kindle",
"right": true
}
],
"source": false
},
{
"tier": 64,
"text": "Was muss in einer SMS stehen um ein WIKO Android Smartphone zum Reboot zu zwingen?",
"answers": [
{
"text": "\\!reboot"
},
{
"text": "\\=",
"right": true
},
{
"text": "\\]; shutdown -r now \\n"
},
{
"text": 6662342
}
],
"source": false
},
{
"tier": 28,
"text": "Was verloste die saechsische Polizei als Preis ihres WM-Tippspiels?",
"answers": [
{
"text": "eine Nacht in der Ausnuechterungszelle (mit Fruehstueck)"
},
{
"text": "einen Kanister Pfefferspray"
},
{
"text": "Fahrt mit dem Wasserwerfer",
"right": true
},
{
"text": "bei der naechsten Anti-Nazi Demo am 13. Februar ohne Platzverweis eine Sitzblockade machen zu duerfen"
}
],
"source": false
},
{
"tier": 66,
"text": "Wie wiele Stille SMS wurden 2013 von der Berliner Polizei versendet?",
"answers": [
{
"text": 73.0,
"right": true
},
{
"text": 145.0
},
{
"text": 250.0,
"right": true
},
{
"text": 310.0
}
],
"source": false
},
{
"tier": 63,
"text": "M w A h GBA H R g? (Mit welchen Akronymen hadert Generalbundesanwalt Harald Range gelegentlich?)",
"answers": [
{
"text": "CIA und AIC"
},
{
"text": "BND und NPD"
},
{
"text": "NSA und NASA",
"right": true
},
{
"text": "ISS und ISIS"
}
],
"source": false
},
{
"tier": 11,
"text": "Wie lange brauchte die Verwaltung der Stadt Dresden um die Datenbasis der Freifunk-Hotspots im Themenstadtplan zu aktualisieren?",
"answers": [
{
"text": "24 Stunden"
},
{
"text": "48 Stunden",
"right": true
},
{
"text": "2 Wochen"
},
{
"text": "2 Monate"
}
],
"source": false
},
{
"tier": 53,
"text": "Auf welche verschluesselung verweisen die Macher von TrueCrypt als \"sichere\" Alternative?",
"answers": [
{
"text": "FileVault (Apple)"
},
{
"text": "SafeGuard (Sophos)"
},
{
"text": "Luks (u. a. Debian)"
},
{
"text": "BitLocker (Microsoft)",
"right": true
}
],
"source": false
},
{
"tier": 4,
"text": "Was ist das besondere an dieser Schriftart?",
"answers": [
{
"text": "stammt vom Schild eines Obdachlosen",
"right": true
},
{
"text": "gewann den Nerdcore fuer hervorragende Typografie"
},
{
"text": "naechste iOS Standardschrift"
},
{
"text": "reduziert die Kreditwuerdigkeit, da er von einer Gambling-Seite installiert wird"
}
],
"source": false
},
{
"tier": 53,
"text": "Wer speichert wann du und was du spielst, zum Beispiel Spiele wie Angry Birds und WoW?",
"answers": [
{
"text": "GCHQ"
},
{
"text": "C3D2"
},
{
"text": "BND"
},
{
"text": "NSA",
"right": true
}
],
"source": false
}
]

222
data.ds2014/round_2.json Normal file
View File

@ -0,0 +1,222 @@
[
{
"tier": 202,
"text": "Wieviele Gaeste waren auf dem 30c3?",
"answers": [
{
"text": 1337
},
{
"text": 8080
},
{
"text": 4223
},
{
"text": "over 9000",
"right": true
}
],
"source": false
},
{
"tier": 742,
"text": "Welche Hackergruppe speiste 2007 eine Atombombenexplosion in den Stream einer Webcam ein, welche gerade Live in einer TV-Sendung namens Panorama zu sehen war?",
"answers": [
{
"text": "Anonymous"
},
{
"text": "LulzSec"
},
{
"text": "ScriptKiddiz"
},
{
"text": "Ztohoven",
"right": true
}
],
"source": false
},
{
"tier": 344,
"text": "Welcher Inhalt wird fuer private Haushalte in Gro\u00dfbritannien automatisch gefiltert und von wem?",
"answers": [
{
"text": "Flugblaetter theisistischer Sekten, von der Kirche"
},
{
"text": "Pornografie, vom Interprovider",
"right": true
},
{
"text": "Streptokokken, vom Wasserwerk"
},
{
"text": "Werbung fuer Fremdangebote, vom Mobilfunknetzbetreiber"
}
],
"source": false
},
{
"tier": 247,
"text": "Wie nenn die NSA Angriffe ueber fingierte Hardware wie USB-Geraete oder Monitorkabel?",
"answers": [
{
"text": "Tim Access Operations"
},
{
"text": "Easy Access Operations"
},
{
"text": "Tailored Access Operations",
"right": true
},
{
"text": "Suitable Access Operations"
}
],
"source": false
},
{
"tier": 113,
"text": "Auf welche Absicherungstechnik plant die Bundesregierung demnaechst zurueck zu greifen um ihre Dokumentenerzeugnisse zu sichern?",
"answers": [
{
"text": "Voynich-Chiffre"
},
{
"text": "Enigma"
},
{
"text": "Schreibmaschine",
"right": true
},
{
"text": "Stenographie"
}
],
"source": false
},
{
"tier": 697,
"text": "Als was stuft die NSA jeden TOR-Nutzer automatisch ein?",
"answers": [
{
"text": "Extremist",
"right": true
},
{
"text": "Terrorist"
},
{
"text": "Torrorist"
},
{
"text": "Zwiebelfreund"
}
],
"source": false
},
{
"tier": 631,
"text": "Als Gregor Gysi dem Bundestagspraesident Norbert Lammert erklaert, dass auch dieser von der NSA abgehoert wird, entgegnete dieser Ja, aber im Unterschied zu Ihnen...",
"answers": [
{
"text": "war ich nicht in der SED"
},
{
"text": "trage ich es mit Fassung",
"right": true
},
{
"text": "verschluessel ich Mails mit 2048 Bit"
},
{
"text": "ist die NSA Affaere fuer mich beendet."
}
],
"source": false
},
{
"tier": 123,
"text": "Wie heisst der neue EU Minister fuer Digitales?",
"answers": [
{
"text": "Karl Theodor von Guttenberg"
},
{
"text": "Roland Koch"
},
{
"text": "Guenther Oettinger",
"right": true
},
{
"text": "Jan Philipp Albrecht"
}
],
"source": false
},
{
"tier": 570,
"text": "Wer betreibt KEINE Glasfasernetze der Bundeswehr?",
"answers": [
{
"text": "Telekom",
"right": true
},
{
"text": "KPN"
},
{
"text": "Interoute"
},
{
"text": "GasLINE"
}
],
"source": false
},
{
"tier": 532,
"text": "Was entgegnete das Bundeskartellamt der VG Media im Kartellverfahren gegen Google?",
"answers": [
{
"text": "Stimmt."
},
{
"text": "Die Vorwuerfe werden geprueft"
},
{
"text": "Es erteilt keine Auskunft."
},
{
"text": "Ihr schaut selber nach Kartell aus.",
"right": true
}
],
"source": false
},
{
"tier": 202,
"text": "Von wie vielen Tieren gibt es Selfies in der Wikipedia?",
"answers": [
{
"text": 1
},
{
"text": 5,
"right": true
},
{
"text": 6
},
{
"text": 9
}
],
"source": false
}
]

142
data.ds2014/round_3.json Normal file
View File

@ -0,0 +1,142 @@
[
{
"tier": 14400,
"text": "Wie viele Seiten umfasst das Freihandelsabkommen CETA?",
"answers": [
{
"text": 572
},
{
"text": 1602,
"right": true
},
{
"text": 1702
},
{
"text": 12302
}
],
"source": false
},
{
"tier": 88074,
"text": "Wer bekam den LAME EXCUSE PWNIE 2014?",
"answers": [
{
"text": "AVG",
"right": true
},
{
"text": "Avira"
},
{
"text": "AMG"
},
{
"text": "IBM"
}
],
"source": false
},
{
"tier": 44847,
"text": "Wie viel Prozent aller Server im Internet waren von Heartbleed betroffen?",
"answers": [
{
"text": "17 Prozent",
"right": true
},
{
"text": "23 Prozent"
},
{
"text": "42 Prozent"
},
{
"text": "98 Prozent"
}
],
"source": false
},
{
"tier": 32554,
"text": "Welcher Regierungschef kritisierte kuerzlich die Internetzensur im eigenen Land?",
"answers": [
{
"text": "David Cameron"
},
{
"text": "Hassan Rohani",
"right": true
},
{
"text": "Angela Merkel"
},
{
"text": "Li Keqiang"
}
],
"source": false
},
{
"tier": 94543,
"text": "Welche politische Reaktion gegenueber der USA zog die Bundesregierung nach dem Handygateskandal in Betracht?",
"answers": [
{
"text": "Botschafter ausweisen"
},
{
"text": "Kuendigung SWIFT"
},
{
"text": "sichere elektrische Kommunikation zum Thema machen",
"right": true
},
{
"text": "Freihandelsabkommen aussetzen"
}
],
"source": false
},
{
"tier": 69547,
"text": "Wieviele Asteroiden sind nach den Monty Pythons benannt?",
"answers": [
{
"text": 5
},
{
"text": 7
},
{
"text": 12
},
{
"text": 13,
"right": true
}
],
"source": false
},
{
"tier": 42479,
"text": "Was bot die Berliner Polizei nicht zum Kinderfest an?",
"answers": [
{
"text": "bla"
},
{
"text": "blub"
},
{
"text": "blabb",
"right": true
},
{
"text": "Wasserwerfer fahren"
}
],
"source": false
}
]

22
data.ds2014/round_4.json Normal file
View File

@ -0,0 +1,22 @@
[
{
"tier": 38,
"text": "Die Zeit des General Purpose Backofens ist vorbei. Welches Gericht koennte man im iOfen nicht backen?",
"answers": [
{
"text": "Kartoffelgratin"
},
{
"text": "Pommes"
},
{
"text": "Lasagne",
"right": true
},
{
"text": "Himmel und Erde"
}
],
"source": false
}
]