Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
A Markov chain trained on the Puppet documentation and H. P. Lovecraft (thedoomthatcametopuppet.tumblr.com)
242 points by dsl on Dec 6, 2014 | hide | past | favorite | 34 comments


If you like this, check out "King James Programming"[0] as well which is currently the King James Bible, Structure and Interpretation of Computer Programs, and Why's Poignant Guide to Ruby.

[0] http://kingjamesprogramming.tumblr.com/


> 7:25 Destruction cometh; and they shall be in the end of the string

Ah, ye olde buffer overflows caused by missing null terminators.


> 20:9 And Moses took his wife and all his wars, and his ways, and according to the law by the body of the procedure object W1.

Thank you so much for posting this — I am in stitches.


> Behold, I see the heavens opened, and the string of 54 bits 001000010000011000100000101000001001000000000110000111

That's the sign we should really be looking for!


I studied music composition as an undergraduate and often used Markov chains in my work. For my senior recital, I composed a piece in which I recite an apocryphal psalm generated with a Markov chain trained on the King James psalms.

Recording: http://gollmar.org/media/07-sacra.mp3


I am going to use this for epigraphs in my next ebook. This is awesome.


Also: https://github.com/rossgoodwin/plotgen Generates novels from tvtropes.org and erowid.org


KJP was absolutely my inspiration for this thing.


Man this is hilarious

  The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, 
  “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in 
  this document are to be interpreted as the fantastic mythology of those beings


This is IETF RFC 2119. On a somewhat related note of mashing up IEEE documents with other things, here's what happens when you run RFC 2119 through the Songify app from the "Autotune the News People": https://soundcloud.com/mpdehaan/rfc-2119

Now somewhat tempted to run the Ansible docs against the complete text of Ender's Game, but it's hard to beat Lovecraft :)


Lovecraft as an allegory for technologist elitism.


"At times I feel uncomfortably sure that I was a sysadmin by trade". This is so good, I could not have written it better myself! I love it.


“During the Jurassic Age the Old Ones met fresh adversity in the form of facts.”

I'm stealing that one!


    “This document is currently being used in production at several large sites,
    but there are some experiences and intimations which scar too deeply to 
    permit of healing, and leave only such an added sensitiveness that memory 
    reinspires all the original horror.”
Sounds like J2EE.


I cried until cthulu refreshed my manifest.



> --assault-stage

> without this argument, git-lower-submodule --circumvent-index format-patches branches that clone the specified refs

That would be useful. Where can I merge the patch?


Markov chains are one of my favorite "simple" models. They are easy enough for someone with an introductory level of programming experience to understand, but they can provide a lot of entertainment and insight.


They're actually so simple that I thought I misunderstood them when I first read about them.


I ran into a lot of issues getting them to run on large sets of data. Simple doesn't mean easy ;)


If anyone is interested to play around with Markov chains and text, I started a tiny ruby project a few years ago: https://github.com/rickhull/markov-text-destroyer

I've been meaning to make it into a proper gem and update the README. Perhaps now is the time. Check examples/ in the meantime.



Of what order is this Markov chain? To me at least, this looks a lot more sensible than the usual gibberish produced by chains of order 1.

Anyhow, hilarious.


They are mostly made with 3- and 4-grams. Any lower and it's not particularly coherent, any higher and there's not enough crossover.


I can get similar coherence with N-Grams where N >= 3


This is lovely, is the source available somewhere so we can apply this to our own body of text?


I'm also curious.

I wrote a Markov text generator in Lisp a few months ago (https://github.com/jl2/markov), and had fun generating text using some old sci-fi books from Project Gutenberg and some documentation we use at work (Fiber Channel and ISCSI specs), but the sentences mine generated weren't as coherent as these.

I'm curious if this is generating thousands of sentences and only posting the best, if it used the basic algorithm and a ton of sample text, or if it's using a more advanced algorithm.

I was planning on making mine use parts of speech to help avoid some of the nonsense sentences, but never got around to it. And it would be harder to find source text to feed into it.


It's a fairly trivial markov chain text generator that I manually scan for good results.

To make it easier, I've got it colorizing output based on the source corpus, so I can see where there's crossover. Then I just generate a wall of text and look for gems where the colors change.

It's an incredibly unsophisticated process


My PHP learning library has an example case[0] that uses Markov chains to do the same thing.

[0] https://github.com/gburtini/Learning-Library-for-PHP/blob/ma...


I wrote something using markov chains similar here: https://github.com/DanBrink91/Anime-Namer

you could probably adjust it to your own stuff easily enough.


I'm using the program written by the creator of the King James Programming tumblr. The source is at https://github.com/barrucadu/markov


So this is my little project. It's great to see it get some attention on HN.

I'll be dropping in here to read any more comments that show up, although it looks like I'm late to the party.


Each report processor must be in the basement - exactly how I feel most days.


Thank you, I have not read anything this funny in a while.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: