From 703bad4fad198d670272fd71d84912ba4dfda264 Mon Sep 17 00:00:00 2001 From: Jasper Van der Jeugt Date: Fri, 31 Jul 2020 21:47:54 +0200 Subject: Capitalization --- black.txt | 78 +--------------- client/src/Client.elm | 22 +++-- server/lib/Cafp/Main/Server.hs | 4 +- white.txt | 203 ++--------------------------------------- 4 files changed, 27 insertions(+), 280 deletions(-) diff --git a/black.txt b/black.txt index 0a5908f..c05bfb9 100644 --- a/black.txt +++ b/black.txt @@ -1,79 +1,3 @@ # ICFP2020 Cards \BLANK is just \BLANK in the Category of \BLANK. - -# These are the old cards I copied. -A crypto conference is never complete without \BLANK. -A recent laboratory study shows that undergrads have 50\% less sex after being exposed to \BLANK. -A romantic, candlelit dinner would be incomplete without \BLANK. -Both Microsoft and Apple have concerns with \BLANK. -Bruce Schneier's new book has a chapter on \BLANK. -Despite his work at Bletchley Park, Alan Turing is little know for his work on \BLANK. -Did you hear that \BLANK is the new hot topic? -Due to the Covid crisis, I have rekindled my enthusiasm for \BLANK. -During sex, I like to think about \BLANK. -Having really bad gas throughout November led to \BLANK. -I always include \BLANK in my reviewer feedback. -I can't believe I got away with \BLANK. -I can't believe my grant application for \BLANK was denied! -I can't concentrate without \BLANK. -I deserve to be an IACR fellow for my groundbreaking contributions to \BLANK. -I don't encrypt my files, I keep them hidden in \BLANK. -I drink to forget \BLANK. -I felt sick to my stomach at PKC because of \BLANK. -I find that \BLANK relieves pre-submission stress. -I get by with a little help from \BLANK. -I got 99 problems but \BLANK ain't one. -I hope no one finds out about \BLANK. -I just got out of an incomprehensible talk on \BLANK. -I just hope the reviewers don't notice \BLANK. -I only got through my PhD because of a long-winded explanation of \BLANK. -I swear I didn't go to Financial Crypto because of the location, I went for \BLANK. -I think I will skip the session on \BLANK this year. -I was going to include Katz and Lindell as recommended reading, but it doesn't contain anything on \BLANK. -I was surprised to see anyone awake at the end of my presentation on \BLANK. -I woke up drenched in sweat from a nightmare about \BLANK. -I woke up filled with shame about \BLANK. -I'll eat my hat if anyone ever breaks \BLANK. -I'm hoping to avoid 2/3 of the program committee, because my paper is on \BLANK. -I'm sorry, Professor, but I couldn't complete my homework because of \BLANK. -I've had it with these blockchain bros! ``Crypto'' means \BLANK. -It took 72,000 instances, but I finally cracked \BLANK. -It turns out that my company's password policy requires \BLANK. -My academic CV says I'm an expert on \BLANK. -My career started with \BLANK. -My favourite thing about online conferences is \BLANK. -My encryption scheme is extra secure because of \BLANK. -My first accepted paper was on provably secure \BLANK. -My latest paper on \BLANK will help me get more citations than Mihir Bellare. -My student couldn't complete their homework due to \BLANK. -Oh no! I just saw Koblitz and Menezes taking another look at \BLANK. -One regret I have from my PhD is \BLANK. -Putting \BLANK in my application helped me immensely. -RWC was already full when I tried to register because I was too busy \BLANK. -Remembering \BLANK, then immediately vomiting. -Self-isolation is fantastic for \BLANK. -TSA guidelines now prohibit \BLANK on airplanes. -Talk dirty to me, baby. Tell me about \BLANK. -The Bletchley Park Museum has just opened an interactive exhibit on \BLANK. -The Israeli government stores its data with \BLANK. -The best thing about having Eurocrypt 2020 online was \BLANK. -The next big thing will almost certainly be \BLANK. -The talk that had the most influence on my personal life was \BLANK. -The thing I love most about staying in the UCSB dorms during Crypto is \BLANK. -The way things are going, the best paper at Crypto 2048 will probably be about \BLANK. -There is nothing quite like \BLANK, alone in the office at night. -WTF! My paper on \BLANK just got rejected from the ePrint server. -What ended my last relationship? -What gets better with age? -What is the best way to wind down at the end of a hard day? -What never fails to liven up the Eurocrypt banquet? -What will always get you laid? -What's a cryptographer's best friend? -What's my secret power? -When I am President of the United States, I will create the Department of \BLANK. -When all this is over, I'm not looking forward to \BLANK. -When my crypto patents turn me into a billionaire, I will erect a 50-foot statue to commemorate \BLANK. -Why can't I sleep at night? -Yo' momma so dumb she encrypts her files with \BLANK. -\BLANK kept me up all night. -\BLANK was the last thing I expected to find in Edward Snowden's leaked documents. +Really, \BLANK would be better without \BLANK. diff --git a/client/src/Client.elm b/client/src/Client.elm index aebeb8f..5170e64 100644 --- a/client/src/Client.elm +++ b/client/src/Client.elm @@ -132,16 +132,24 @@ blackCardContent cards (Messages.BlackCard idx) = blackCardBlanks : Cards -> BlackCard -> Int blackCardBlanks cards c = List.length (blackCardContent cards c) - 1 +capitalizeFirst : List String -> List String +capitalizeFirst l = case l of + x :: xs -> (String.toUpper (String.left 1 x) ++ String.dropLeft 1 x) :: xs + _ -> l + blackCard : Cards -> BlackCard -> List WhiteCard -> Html a blackCard cards black whites = - let blank mbWhite = Html.span - [Html.Attributes.class "blank"] <| - case mbWhite of - Nothing -> [] - Just w -> [Html.text <| whiteCardContent cards w] in + let blackParts = blackCardContent cards black + whiteParts = List.map (whiteCardContent cards) whites |> + case blackParts of + "" :: _ -> capitalizeFirst + _ -> identity + blank txt = Html.span + [Html.Attributes.class "blank"] + [Html.text txt] in Html.div [Html.Attributes.class "card", Html.Attributes.class "black"] <| - intersperseWith (List.map (\c -> blank (Just c)) whites) (blank Nothing) <| - List.map Html.text <| blackCardContent cards black + intersperseWith (List.map blank whiteParts) (blank "") <| + List.map Html.text blackParts whiteCardContent : Cards -> WhiteCard -> String whiteCardContent cards (Messages.WhiteCard idx) = diff --git a/server/lib/Cafp/Main/Server.hs b/server/lib/Cafp/Main/Server.hs index fc31cec..5c8f08b 100644 --- a/server/lib/Cafp/Main/Server.hs +++ b/server/lib/Cafp/Main/Server.hs @@ -54,8 +54,8 @@ readCards = Cards <$> fmap parseCards (T.readFile "assets/black.txt") <*> fmap parseCards (T.readFile "assets/white.txt") where - parseCards = V.fromList . - filter (not . T.isPrefixOf "#") . filter (not . T.null) . T.lines + parseCards = V.fromList . filter (not . T.null) . map dropComment . T.lines + dropComment = T.strip . fst . T.break (== '#') newServer :: IO Server newServer = Server <$> readCards <*> MVar.newMVar HMS.empty diff --git a/white.txt b/white.txt index 235eda2..7f57a8f 100644 --- a/white.txt +++ b/white.txt @@ -1,196 +1,11 @@ # ICFP2020 Cards -A Monad -A Monoid +a Monad # Inline comment +a Monoid Endofunctors - -# CardsAgainstCryptography cards. -100\% talks, \\ 0\% human interaction. -16-bit AES. -17 slides for a 3-minute rump session talk. -2 to 4 kilograms of top quality amphetamines. -2-sentence Eurocrypt reviews. -387 contact tracing papers submitted to Eurocrypt 2021. -4mm reasonable margins. -A 25-year old policy on sexual harassment. -A Facebook friend request from a cryptographer I~actually despise. -A career-limiting card game. -A dancing cryptographer. -A genuine attempt to configure IPsec. -A hand wavy argument. -A long-term nonce. -A non-fabricated use of pairings. -A painfully slow Tor masturbation session. -A popup Skype notification from ``lovemachine69'' during my keynote talk. -A proof that appears in the ``full version''. -A shepherd that won't budge. -A tight security reduction to the problem of fending off a sexually voracious goat. -A violent and bloody PhD defence. -Aaron Aaronson's insistence on alphabetical author ordering. -Academic integrity. -Accidentally sexting my co-supervisor. -Actually being ``sorry for the late reply''. -Actually efficient indistinguishability obfuscation. -Adleman-Rivest-Shamir encryption (the ARSE algorithm). -An IACR board meeting. -An SSL vulnerability with a silly name. -An ``anonymous'' reviewer insisting I cite 6 papers by the same author. -An inappropriate workplace romance. -An insecure VPN straight to the Kremlin. -An overfull hbox. -An overlooked patent. -Arguing savagely against contact tracing so no one finds out that I don't get invited to parties. -Arriving 13 minutes late to a 15 minute talk and having the gall to ask a question. -Asking for 2 room keys during check-in, knowing full well I'm not getting laid. -Bart Preneel's \\ private key. -Beefing up my Proposition to a Theorem because I'm that awesome. -Being forced to attend social events because I'm the visitor's official host. -Being the only smartly dressed person in the room. -Best rejected paper award. -Bragging about getting held up at Border Control for saying I'm a cryptographer. -Brexit. -Checking my Google Scholar profile daily. -Chocolate-covered shrimp. -Citing personal communication. -Conferences with 5 submissions at 11:59pm. -Crippling student debt. -Crypto wars. -Day drinking. -Deadline day flatulence. -Deliberately hiding inefficiencies inside the big O. -Deliberately not referencing a superior paper. -Desperately trying to plug my crypto research into a grant application on pandemic prevention. -Diffie but definitely not Hellman. -Doing Facebook maths puzzles to show I am better than those idiot 97\%. -Double ROT-13. -Drinking alone. -Dropping the word Blockchain into my research proposal as many times as possible. -Dual\_EC\_DRBG. -Encrypted database security definitions. -Explaining what my job is at a family reunion. -Falling asleep in a 5-person meeting. -Feeling flattered because a conference spam email addressed me as Professor. -Fighting over LaTeX syntax. -Filing a patent application for modular multiplication... in 2017. -Flirting with people at the conference registration desk. -Forgetting my VGA adapter. -Frantically taking notes during every talk. -GDPR requirements. -Getting a fourth cookie during a coffee break because I have no one to talk to. -Getting rejected, but then taking immediate solace in the fact that the selection of papers was a difficult and challenging task. -Getting stuck at the French-speaking banquet table. -Getting tenure, then chilling the f--- right out! -Getting turned on by a proof. -Going straight to journal. -Government-mandated backdoors. -HTTPS everywhere! -Hands-on supervision. -Having time to catch up on my reading, \\ then not doing it. -Having to wear pants. -Having to write a polite rebuttal to the reviewer who clearly didn't read past page 2. -Hiding my conflict of interest. -Hillary Clinton's BlackBerry. -Home-baked, snake oil crypto. -Ignoring reviewer comments and resubmitting immediately. -Ignoring the session chair flashing 5 minutes left because I've got 23 slides to go. -Including an XKCD comic in my slides because I'm so original. -Knapsack cryptosystems, revisited. -LNCS' 25-foot margins. -Making claims in the submission that you hope you can achieve before the rebuttal. -Maths-terbation. -My Silk Road purchase history. -My \textit{h}-index. -My automated reply saying ``email responses will be delayed'', when I know damn well I'll be online with high-speed internet access 24/7. -My butt. -My crypto blog views getting into the double digits. -My dear friend the Program Chair overruling 3 borderline rejects on my paper. -My genitals. -My inappropriate supervisor. -My inflated sense of self-importance that warrants my PGP key. -My much more successful career as a singer after rocking the Crypto rump session. -My relationship status. -My second divorce. -My sex life. -My side job as an incompetent security consultant. -My successful career at a patent troll company. -My supervisor's morning breath. -Nigel Smart's new Hawaiian shirt. -Not being important enough to be asked to sign the public statement on contact tracing. -Not feeling guilty about falling asleep during the keynote. -Not having to wear pants. -Not needing to pretend to listen to the other speakers in my session. -Overselling it hard in the introduction. -Password1. -Picturing the FSE audience naked. -Politely starting an answer with ``That's a good question...'', when the question is actually idiotic. -Post-quantum RSA. -Preparing for two weeks to give a 15-minute presentation to a room of 7 people all on their laptops. -Pretending to care when my vegetarian coauthor complains about the lack of banquet options. -Pretending to understand. -Pubic key cryptography. -Publishing anyway. -Purchasing the Springer hardcopies I publish in because my mom is collecting them. -Putting an outdoors-y photo on my academic webpage to look well-rounded. -Quadruple XOR. -Quantum key distribution. -Quickly trying to peek at someone's badge as I shake their hand, but it's flipped backwards. -Reading the person in front's emails. -Relatives who ask me to help them install their printer on Windows. -Remembering when `working from home' meant a day off. -Rogaway's loose morals. -Satoshi Nakamoto. -Security through obscurity. -Sending an email at 11pm so people think I work hard. -Serious rump session speakers. -Sexual tension. -Skype dropping out every 10 to 15 seconds. -Social sciences. -Someone less senior than me signing off with ``Thanks in advance''. -Spending 3 Bitcoin on pizza in 2012. -Spending all of my Levchin prize money on cocaine. -Springer's editorial team. -Starting a conversation with ``When did you fly in?'', because I have nothing interesting to say. -Taking a group shower with my recent co-authors. -Telling anyone who'll listen quite how busy I am. -Thanking the anonymous reviewers for their ``useful'' comments. -That feeling when my article is sitting pretty at the top of the ePrint archive. -That one asshole who's always sleeping during my Eurocrypt talks. -The MIT Mafia. -The NSA's massive stack of amateur porn. -The North Korean Cryptographic Standard. -The awkward question the chair asks when nobody understood the talk. -The awkward silence of 8 people standing in a circle during the afternoon coffee break. -The great firewall of China. -The great paywall of IEEE. -The intoxicating aroma of 12 PhD students in one office. -The latest dance mix album by DJ~Bernstein. -The one person I don't want to get stuck next to on the conference excursion bus. -The one really hot person at CHES registration drinks. -The one suit I own for meetings with industry. -The person in the front row taking photos of every slide. -The secret flash drive hidden in my underwear. -The sound of 50 people on a Zoom call all trying to speak at once. -The student body. -The walking zombie corpse of Claude Shannon. -Thinking I'm so clever for using pictures of Alice (Cooper) and Bob (Marley). -Throwing a party for my next citation milestone. -Trying to make TCC friends at the bar in order to get the IACR 7-conference grand slam. -Turbulent bowel movements in the middle of my Asiacrypt presentation. -Turning up to one meeting and claiming co-authorship. -Tweeting about my paper acceptance. -Unbreakable military-grade encryption. -Undergrads. -Using Beamer because it's social suicide to use PowerPoint. -Using ``it clearly follows'' when the implied following is anything but clear. -Using ``we should talk about this offline'' because the question exposes holes in my paper. -Using indecipherable, non-standard notation to hide a dodgy proof. -Vital sugar beet auctions. -WalnutDSA. -Wearing a T-shirt with a Linux joke. -Wearing a conference t-shirt... in public. -When you realize that quantum computers have been 10 years away for 3 decades. -Wistfully looking out of the window of my overly-cramped PhD office. -Writing a reference for someone I can't remember meeting. -Yet another cryptographer falling into the blockchain startup abyss. -\texttt{Ctrl+F}'ing to see how many times I'm cited and finding ``0 results''. -``Working'' remotely. -{\comicsans A slide deck entirely in Comic Sans.} +drinking +JavaScript +Haskell +Scheme +Racket +C +C++ -- cgit v1.2.3