Just a quick note: we have a good idea of how many people make it through these challenges versus how many start. As long as that ratio stays remotely sane --- and as long as the whole Internet doesn't secretly turn out to be full of people who can bust out crypto attacks better than most vulnerability researchers can, which is a concern because an English professor finished these --- we'll donate $20 to PIH or Watsi for everyone who finishes.
Sean, Marcin, and I are watching the cryptopals at matasano address, so if you have questions or get stuck on one of the later problems, don't hesitate to ask; the worst that'll happen is we'll take too long to reply.
Update: We WILL get to you. We're definitely getting your emails. All of your emails. All of the emails. Give us a little bit though.
(Not necessarily responding to the parent comment directly.)
The wall between STEM and the humanities is, if not artificial, quite porous, and it's in the interest of every intelligent person to bring it down.
In general, there's been quite a bit of interest in quantitative approaches to the humanities lately. Try googling for J.E.H. Smith's proposal for a data-driven survey of world philosophy, or look into Franco Moretti's work on "distant reading" in Graphs, Maps, Trees. The latter was even profiled in the New York Times Magazine several years ago.
I also like to trot out the example of Hugh Kenner, a protege of Marshall McLuhan who was one of the 20th century's great scholars of Modernism, particularly of Joyce and Pound — and who was also a contributor to Byte.
I agree. I once asked a mechanic in my military unit a question about a car problem, it quickly turned into an hour-long lecture on thermodynamics and ambient heat. The guy is absolutely brilliant.
Thanks for opening this opportunity up to the community! :)
EDIT: Dumb question, but for scheduling purposes, what's an order-of-magnitude estimate for a block of 8 questions? Is this like a weekend-hackable thing, part-time during the week, month sabbatical, or what?
It is a freakin' blast watching people work through these. The pleasure is ours.
Regarding time commitments: it is hugely variable, mostly I think because different people put different priorities on finishing. The first set should go very quickly.
I would love it if these took a month of work, but people have gotten through them in a couple days, and there's some delay built in there because of email.
The bit about priorities is spot on. I got the first set done with Ruby in a week's spare hours. The execution speed (and some of your other posts) have me motivated to learn Go, so set two is on hold until I get comfortable with brute forcing ciphers in a statically typed language. If I were European I'd probably be done by now :)
If you already know ruby, have you considered using JRuby for this? I wouldn't besmirch anyone trying to pick up a new language, but I am curious to hear if there were any technical reasons for going with something else.
Just for the fun of it, really. I'm sure MRI or JRuby would suffice given properly considered execution strategies. Optimizations have been half the fun for me so far with MRI 1.9.
I've been having a blast, despite not putting any time into it (I'm on problem 14 or so because of work). The first two blocks of 8 shouldn't require much time (hours). The instructions so far are rather complete; you aren't left wondering (like on Project Euler sometimes) how to approach something. Most of my time has been spent code golfing.
I've been meaning to try these but have been avoiding the scheduling headache… but it just sounds like too much fun, so I finally sent you guys an email. I'll make time for it somehow. Thank you for doing this, you guys are awesome.
I sent an e-mail to you about 3 weeks ago asking if I could please try out the crypto challenge, and received no response. Should I try again or does your update refer to the fact that you're just backed up at the moment? Thanks!
EDIT: Apologies, it was only 10 days ago. So I'll assume you all are just a little backed up with the volume of requests.
Tangential note: if you noticed that this was quite well-written for a blog post, and if you've never heard of Maciej Cegłowskiv[1], then you should absolutely start reading his blog, Idle Words[2]. The essays are simply sublime. Even though he only occasionally writes about tech stuff (it's mostly about his extensive travels), this is hands down my favorite blog and I await every new post eagerly.
My absolute favorite is Białowieża Forest [1] - I died laughing many many times, and I even learned a thing or two along the way. For me, nothing beats enlightening educational entertainment such as this.
We got an overwhelming response to this, which is awesome. Good news/bad news. Bad first: slight delay, while we change up the way we manage the email responses (we're pulling the emails into Mailgun, which is fantastic btw). The good news is we should have everyone squared away by the middle of this afternoon, and should be much more responsive moving forward.
We're really looking forward to watching people run through the challenges. We'll post aggregate stats when everything's done.
"In a stimulating paper "On the Cruelty of Really Teaching Computer Science,"[35]Edsger Dijkstra examines the implications of one central, controlling assumption: that computers are radically novel in the history of the world. Given this assumption, it follows that programming these unique machines will be radically different from other practical intellectual activities. This, Dijkstra believes, is because the assumption of continuity we make about the behavior of most materials and artifacts does not hold for computer systems. For most things, small changes lead to small effects, larger changes to proportionately larger effects. If I nudge the accelerator pedal a little closer to the floor, the vehicle moves a little faster. If I press the pedal hard to the floor, it moves a lot faster. As machines go, computers are very different.
A program is, as a mechanism, totally different from all the familiar analogue devices we grew up with. Like all digitally encoded information, it has, unavoidably, the uncomfortable property that the smallest possible perturbations -- i.e., changes of a single bit -- can have the most drastic consequences.[36]"
Our website is so secure that I don't even understand how it works. It turns out we have a load balancer. I only updated one of the static servers. Go me!
I have to say, I've been hearing about the challenges for several months and have been far too intimidated to attempt them as I'm a total newb on the crypto side of things.
After reading this article though, I figured it would be safe to assume that I'll learn as I go through them.
Sean, Marcin, and I are watching the cryptopals at matasano address, so if you have questions or get stuck on one of the later problems, don't hesitate to ask; the worst that'll happen is we'll take too long to reply.
Update: We WILL get to you. We're definitely getting your emails. All of your emails. All of the emails. Give us a little bit though.