# London Haskell Christmas Pub Quiz 2018 ## Structure Each round is worth 10 points, giving a total potential score of 100 points. 6 question rounds on assorted topics 4 other rounds: * team name * table-round * joker * game theory game ## Approximate timing 18:30 room open, advertised time People should form teams, with the help of myself, Bill and Derek. 19:00 Introduction & rules 19:05 Round 1 (10 minutes) 19:15 Mark round 1 (7 minutes) 19:22 Round 2 (17 minutes) 19:40 Round 3 (17 minutes) 19:57 Round 4 (17 minutes) 20:15 Food (or if ready at 19:57, food then) - Note that game theory round will be collected at end of interval (but not photo round) 20:40 Call to order 20:45 Round 5 (17 minutes) + collect game theory round 21:02 Round 6 + mark photo round - extra 3 minutes for photo finishing and marking 21:22 End round 6/photos. Contestant break. Evaluate entries. Prepare results. 21:30 Announce Prizes ## Question Rounds These will be asked in random order (so as to support the joker feature) The round notes for now are organised into potential rounds which may or may not be selected as one of the six rounds actually presented. Each question round will consist of 10 distinct questions on the same theme. Each question is worth 1 point. There will be no partial credit. ### Round C: Centuries The answers for this round are the centuries from the century beginning in the year 1000 to the century ending in the year 1999. Each century appears only once. But it might be a strategy to write the same century multiple times... Please write down in year format - so 1900 for the 20th century. also for pedants, I mean the 00 year, so starting at 00, not at 01. 1300s: The Black Death swept europe, estimated to have killed 30-60% of the population 1800s: A new largest prime number, of 39 digits, was found in this century (1876) 1400s: the aztec city of tenochtitlan, now Mexico City, and at the time one of the largest cities in the world, became the dominant city in the Aztec empire in this century. 1600s: Newton and Leibniz simultaneously invent calculus 1200s: Most of Genghis (pronounciation) Khan's conquests happened in this century 1000s: William the Conqueror was born, he conquered and he died in this century # too easy and not science/tech enough? 1100s: Robert of Chester translated al-kwarizmi's book on algebra from Arabic into Latin (1145) 1500s: Shakespeare married anne hathaway (approx 1564 + 18) 1700s: Newton and Leibniz died 1900s: Pluto, the disgraced former planet, was discovered in this century (1930) ### Round N: Numbers Each answer is an integer. As a clue, the answers are ordered from lowest to highest. 1. SI unit prefixes: "femto" is 10 to the power of what? [-15] (accept just 15 as well - it's the number I'm after) 2. In systems reliability, how many nines of uptime do I have if my system is down for about 9 hours in a single year? [3 nines] 3. In Conways Game of Life, a glider has how many live cells? [5] 4. ARPAnet IP addresses began with which octet, now repurposed in RFC1918 for private use? [10] 5. the 8 byte Double floating point format (IEEE 754) has an exponent of how many bits? 11 6. A hollerith punch card has 80 columns but how many rows? (12) [clue: apparently you could store pre-decimalisation pennies] 7. The US Air Force runs how many operational GPS satellites? 31 8. How many cells/holes are there in a standard connect 4 board? [6x7= 42] 9. What is the ASCII character code for capital letter A? 65 10. The various startrek vessels named USS Enterprise were mostly NCC-WHAT? 1701 ### Round P: Packages Name the top 10 packages on hackage (according to download page on Monday) I'll accept any 10 of the top 12. You can list them in any order. I'll give clues for 7 of them. The others you're on your own. network 1265 aeson 1240 pandoc 1135 yaml 979 hspec 925 conduit 890 Cabal 842 QuickCheck 831 warp 820 http-client 805 text 783 haddock-library 710 - the start, middle and end of web browsing (http-client, network, warp) - parsers and printers for two syntaxes of basically the same semantic model (aeson, yaml) - testing (quickcheck, hspec) ### Round R: Language Riddles 1. following something fishy (edgar codd - relational calculus) [SQL] or "Following something fishy" 2. Simple, though in the last few decades quite visual. [BASIC] 3. Irish and humped [O'Caml] 4. Oxidised for your safety [Rust] 5. Serpentes Dynamicus [python] 6. Eight rude symbols messing with your head [brainfuck] 7. An oak tree in Indonesia, growing out of your cable TV box [Java] (oak is the original name. java is in indonesia, interactive TV was original use case) 8. It was low-level on a PDP/11 but not any more, you'll hurt yourself on my pointy bits [C] 9. A pirate's favourite statistical language [(aaaarrr)R] 10. Weather forecasters and physicists translate their formulae into this old favourite [fortran] ### Round L: London Infrastructure 1. * whitehall is an area of London now associated with government offices. but formerly it was one of these: a palace, a prison, or a church [palace] 2. what is the price of a bridge lift of tower bridge? less than 50 pounds or more than 50 pounds? (need to get 0 in as an option without it being obvious that I've explicitly put a 0 in). 3. the regents canal was rejuvenated in the 1980s for transporting which surprising product? [electricity] 4. since Subscriber Trunk Dialling (STD) codes were introduced in the 1950s, a central london office would have had which 4 STD codes? [01 071 0171 020] If you put down 0207, bzzt. 5. Croydon has postcode area CR0 - one of the few (possibly only) where numbering starts at 0 not 1. Why? [it was a test area when postcodes were developed. (In the test, it was CRO (the letter) for CROydon, and it lived on as CR0) 6. if you see someone in trouble in the river thames, signs recommend that you call 999 and ask for which service? [coastguard] 7. an early node of *which* infrastructure network was disabled based on evidence from early GIS work in 1854? [water hand pump at broadstreet] 8. What was the original motivation for building the Thames embankment - not the district line: [sewer] 9. Which tube line is identified by RGB value (0, 163, 224)? (rgb because you can almost do that in your head if you're suitably minded) Victoria line - light blue 10. The russian word for railway station comes from which station on the national rail and underground networks? vauxhall ### Round H: Haskell-ish stuff This should be the core of the Haskell questions, along with related theory. 1. "What kind of morphism is also a household pet?" [cat-amorphism] 2. What 5 letter t-word will there be fewer of when we increase strictness? 3. Monads are often described in terms of return and bind. But I can implement bind in terms of fmap and what additional operation? [join] 4. which of these is *not* a GHC language extension * ImplicitParams * HexFloatLiterals * DeriveCoercible <---- this one is fake. coercible is automatic. * TransformListComp 5. Which language extension allows me to promote values into types, and types into kinds? [-XDataKinds] 6. The Environment monad is also (maybe more commonly) known as the what monad? [Reader] 7. Template Haskell has two basic operations. Name either one of them. [splicing and quotation] 8. base-4.12.0.0 has got unsafePerformIO and unsafeCoerce. But it has about 20 other unsafeSomething functions. Name any one of them? Mark this by asking the audience to call any out, and go round, rather than listing them. unsafeCoerce# GHC.Exts unsafeDupableInterleaveST Control.Monad.ST.Unsafe unsafeDupablePerformIO System.IO.Unsafe unsafeFixIO System.IO.Unsafe unsafeForeignPtrToPtr Foreign.ForeignPtr.Unsafe unsafeFreezeArray# GHC.Exts unsafeFreezeArrayArray# GHC.Exts unsafeFreezeByteArray# GHC.Exts unsafeFreezeSmallArray# GHC.Exts unsafeInterleaveIO System.IO.Unsafe unsafeInterleaveST unsafeIOToST unsafeIOToSTM GHC.Conc.Sync, GHC.Conc unsafeLocalState Foreign.Marshal.Unsafe unsafeLookupStaticPtr GHC.StaticPtr unsafeShiftL Data.Bits, Foreign.Safe, Foreign unsafeShiftR Data.Bits, Foreign.Safe, Foreign unsafeSTToIO Control.Monad.ST.Unsafe unsafeThawArray# GHC.Exts unsafeThawSmallArray# GHC.Exts 9. Cabal is an acronym. What is the full expansion? [Common Architecture for Building Applications and Libraries] 10. The function `cos` is a member of which Haskell Report typeclass? Floating ## Team name The team with the best name receives 10 points. All others receive 0 points. The best name is at the whim of the quizmaster. Last year it was implemented on the spot by asking each of the sponsors for their opinion of the best name, then randomly choosing one of those options. ## Joker round The 6 question rounds will be presented in random order. The title of each round will be revealed at the start of that round, but not before. Each team has a single joker card. After the title of a round is revealed, but before any questions have been asked, a team may play their joker card for that round. That will double their score for that round. Their joker card is then used and cannot be played for a future round. I should make some decent graphic for this: could be a card joker, or could be a Haskell theme such as (\n -> 2*n) or a joker holding that expression. ## Number round There are 10 points to be given away in this round. They will be distributed according to weightings determined by this round. For each team other than yourself, write down a weight. These weights will be normalised, summed with all other teams, and then used to distribute points. So, for example, if all teams allocate weight 8 to team A, and weight 0 to all other teams, then team A will receive 10 points. This round will be collected some time in the second part of the quiz. ## Table Picture round Each table will be presented with a picture sheet at the start of the quiz. There will be 10 pictures. Identify who/what is each picture (or labelled piece of picture) Each picture is worth 1 point. Write what each picture is, next to the numbers.