layout: true name: inverse class: center, middle, inverse .footnote[ \#ppw2014 ### [@schmonz](https://twitter.com/schmonz) ] --- layout: true name: twitterhandle .footnote[ \#ppw2014 ### [@schmonz](https://twitter.com/schmonz) ] --- template: inverse # Web Architecture for Unix Lovers with Ikiwiki ## Amitai Schlair ### Pittsburgh Perl Workshop 2014/11/09 --- layout: false template: twitterhandle .left-column[ ## What is ikiwiki? ] .right-column[ - Onomatopoetic - Palindromic - Hard to explain fully ] --- .left-column[ ## MediaWiki ] .right-column[ ] --- .left-column[ ## WordPress ] .right-column[ ] --- .left-column[ ## WordPress ] .right-column[ - Textpattern - Drupal ] --- .left-column[ ## GitHub Pages ] .right-column[ ] --- .left-column[ ## GitHub Pages ] .right-column[ - Jekyll - Octopress ] --- .left-column[ ## Catalyst ] .right-column[ ] --- .left-column[ ## Catalyst ] .right-column[ - Mojolicious - Dancer - Rails - ... ] --- .left-column[ ## Extending ] .right-column[ - WordPress - GitHub Pages - Catalyst ] --- .left-column[ ## Ikiwiki! ] .right-column[ - Static and (some) dynamic sites - Written in Perl - Add content in your favorite `$EDITOR` (or browser) - Commit it in your favorite VCS (or browser) - Extend the system's behavior in Perl - Extend the system's behavior in any other language! ] --- .left-column[ ## Sites ] .right-column[ - my personal wiki - a team wiki at work - The Philolexian Society of Columbia University - NetBSD - Higher-Order Perl (proof-of-concept, not `mjd`-blessed) ] --- .left-column[ ## Code ] .right-column[ - `cvs` (for NetBSD wiki) - `rsync` (for Philolexian) - "fancypodcast" - `mandoc` - `wordcount` - `unixauth` - `windauth` (CAS-derived federated web auth) - "Nimble" ] --- .left-column[ ## Live coding! ] .right-column[ - It's Sunday morning - I'm already exhibiting bad judgment - Time is short - We'd better do TDD - Let's teach ikiwiki about Ingy's "Swim" input format ] --- .left-column[ ## Conclusion ] .right-column[ - Why was this talk "for Unix lovers"? - Why was this talk called "architecture"? ] --- template: inverse # FIN