git » homepage.git » commit b509d4a

Preserve TechWorks source histories

author Alan Dipert
2026-08-09 21:29:07 UTC
committer Alan Dipert
2026-08-09 21:29:07 UTC
parent fe4eafcf4839abacce3a7911cf17fd48812a7744

Preserve TechWorks source histories

archive/techworks/SHA256SUMS +32 -1
archive/techworks/git/alandipert.github.com.bundle +3 -0
archive/techworks/git/barcamp2012-jsonscript.bundle +3 -0
archive/techworks/git/berrycam.bundle +3 -0
archive/techworks/git/clojurebridge-curriculum.bundle +3 -0
archive/techworks/git/clojurewest2012-slides.bundle +3 -0
archive/techworks/git/fast-shiny.bundle +3 -0
archive/techworks/git/flapjax-demo.bundle +3 -0
archive/techworks/git/gherkin.bundle +3 -0
archive/techworks/git/gitrubytesting-presentation.bundle +3 -0
archive/techworks/git/ocrug-2018-11-27.bundle +3 -0
archive/techworks/git/oscon2012-clojure.bundle +3 -0
archive/techworks/git/presentations.bundle +3 -0
archive/techworks/git/scala-presentation.bundle +3 -0
archive/techworks/git/shiny-training-rstudioconf-2018.bundle +3 -0
archive/techworks/git/triclojure-hoplon-deck.bundle +3 -0
archive/techworks/git/wombat.bundle +3 -0
archive/techworks/items/2018-intermediate-shiny/forum.headers +23 -0
archive/techworks/items/2018-intermediate-shiny/forum.html +769 -0
archive/techworks/items/oredev-2015/boot-poster.jpg +0 -0
archive/techworks/items/oredev-2015/boot-vimeo.headers +35 -0
archive/techworks/items/oredev-2015/boot-vimeo.json +1 -0
archive/techworks/items/oredev-2015/boot.headers +14 -0
archive/techworks/items/oredev-2015/boot.html +237 -0
archive/techworks/items/oredev-2015/hoplon-poster.jpg +0 -0
archive/techworks/items/oredev-2015/hoplon-vimeo.headers +35 -0
archive/techworks/items/oredev-2015/hoplon-vimeo.json +1 -0
archive/techworks/items/oredev-2015/hoplon.headers +14 -0
archive/techworks/items/oredev-2015/hoplon.html +237 -0
archive/techworks/items/oredev-2015/speaker.headers +14 -0
archive/techworks/items/oredev-2015/speaker.html +223 -0
archive/techworks/manifest.tsv +34 -1
md/TechWorks.md +2 -2
{archive/techworks/items/2019-software-engineering-shiny => md/TechWorks}/BBSW_2019_program.pdf +0 -0
md/TechWorks/shiny-training-rstudioconf-2018-2966e76.tar.gz +0 -0
md/TechWorksArchive.md +2 -0

diff --git a/archive/techworks/SHA256SUMS b/archive/techworks/SHA256SUMS
index dff48a5..6d690b5 100644
--- a/archive/techworks/SHA256SUMS
+++ b/archive/techworks/SHA256SUMS
@@ -6,12 +6,17 @@
 05eadbd88559a3e786d88b11c9b92f248ef7fbc226de0d52239f585c2f7eed8b  md/TechWorks/ShinyServer154.html
 06b57f9625fa07b949d4620e81fe6ad739e6d77c23737af0ef616d9420e7e342  md/TechWorks/authored/wondr/posts/querying-trees-in-r.html
 0706d38fb5ecdd3722fa5d4694bae768c113aaf22af8a78f1da3a34117fa67b3  archive/techworks/items/2013-trilug-raspberry-pi/fDjpAHbB-Mg.webp
+07273d75e8bda0a3834b6344e7e80411687551eae2a254d7ddca2216ab6a1803  archive/techworks/items/oredev-2015/speaker.html
 08e4b9fc431b0b77df656df5989870b0c16af396fcb1dc09af96ce94b116143d  archive/techworks/items/rstudio-integrating-react-shiny/captions.en.vtt
 094b38dafb55def06ed22df8b866ec2c7a09a3295fb5852d537cef2f3577d27d  md/TechWorks/decks/gitrubytesting/images/devflow.png
+0a82b51414d214db696966e70c2fe677681f9755b0421ea7a775c535e60f64c8  archive/techworks/items/oredev-2015/hoplon.html
 0adfe2c4588a6fc2f1fc39863924cc1a4a01c56c80c2e23982e3c79dee2b259a  md/TechWorks/media/video/xaxF5RDdVRE.mp4
 0d429f85eb02fc6e046eec7ee1ef1ae9507007c4978e0b83dd1994a70df62e3e  archive/techworks/items/2013-trilug-raspberry-pi/redirect.headers
+0e0a31d26174e5fb6b20f3402521a98ac9e3f12cb078d2ef650b14224ccaadad  archive/techworks/git/clojurewest2012-slides.bundle
 0e17f2b1f5a0e76d542824cc778049a830661f2f2b617d8eaa40c35c47121726  archive/techworks/items/2005-netbsd-workstation/linux-com-live.html
 0e8252a4757f6fe252b6a2122f0bc15a8818ef12cfa47164c70f4d99caab9433  md/TechWorks/authored/jlt/style.css
+0f45cebcdc5b8bfb838cd258d9778ede288c194b02dc2161e7d5768baf96304c  archive/techworks/git/oscon2012-clojure.bundle
+12c78b4a7c86269dfcf276b3b650e81312cf434781a4174aa5a25f3b85b85934  archive/techworks/git/ocrug-2018-11-27.bundle
 131afee7583c98dfe76d36d6860e66357a9c695f68cb15732b9847465acca3e1  md/TechWorks/decks/gitrubytesting/images/git3.png
 1576ebf4bb6d964314fa18bb78a60efdf5c3b518b6a7ac69549cb2b9a63a7bef  archive/techworks/items/2019-ocrug-interview/2022-replay.headers
 15db67752d75ddcdb3faead339302cb38d88ba30d3d860d499c9ef9768c47290  archive/techworks/items/rstudio-shiny-server-releases/1.5.4-source.headers
@@ -38,17 +43,20 @@
 295dcd7f2ea293bb9e3bb46417d787a934e739739a98bccf7031276c6366a280  md/TechWorks/ocrug-2018-11-27-71dd0b1.tar.gz
 29da8f29b6711962dede7b2f5ecbdf981526b89a972c562b99e41fe03f382a08  md/TechWorks/decks/oscon2012-clojure/slide-assets/collections-seq-list-second.svg
 2a2b25998617233beb48a5e213dc22fe80a561f0d576c625beeb34f9feae1c4d  md/TechWorks/media/video/HGuTqsVh59w.mp4
+2a3fc8f001d78eb9b744768439ac06a703cceb5ce4b750282d487f37461f6c32  archive/techworks/items/oredev-2015/boot.headers
 2c20ea08804b073be81b41cc7dbff29e0184ebffda4455bb58647ba95521f721  md/TechWorks/decks/gitrubytesting/images/git5.png
 2c721a3fb085f73cc1f4364d3d628bd252e13d4854baa9c96e25008043593873  md/TechWorks/decks/barcamp-2012/slide-assets/compilers.jpg
 2db45a0e2da01c336fea6b6d4c49207519e1083b224e0a3a1c1b926bdc4e960c  md/TechWorks/decks/barcamp-2012/slide-assets/cheating.jpg
 2fa46c61ffce23593ef18c65bdeea96bff452d233c0b75f348709ee58f85a040  md/TechWorks/media/video/wVXjExRiFy0.info.json
 2fee1bfcf5ada10104fa724c8a51dab8cefb49006a0011fef1a1e4369fbb1805  md/TechWorks/decks/oscon2012-clojure/slide-assets/identity-state-02.svg
+301247362f0b4ff1941388c1d2f81f9f3d57b4f12445b2a587473bc476c7a291  archive/techworks/git/triclojure-hoplon-deck.bundle
 301d5486cbfa0fa2ea20587884084cbc82f46785f0d650bc388d6e7b6d906fbe  archive/techworks/items/rstudio-load-testing-shiny/original.mp4
 3213965bbe547e4faa41620fd84623a0a43c962b08bd88c93fd8045b331aa4ce  md/TechWorks/decks/oscon2012-clojure/slide-assets/identity-state-05.svg
 33b3861b8d5deeb4596682207f44dbe534bcea015f25849d53f5d696c9decfec  archive/techworks/items/cognicast/052.html
 348263dc01b3b86799759f5bcbfce0afe32726a675580a520ddc7a39ca868d83  archive/techworks/items/cognicast/112-cover.jpg
 3499a6da9bdce3dd105c4f8faf8bdcb7310f3bc64deb09096c8f5937518e40cc  archive/techworks/items/infoq-programming-with-values/source.html
 354755d0a0eeb772b110844a7d17100a2137cc9f3ec153d9b9aa668bc947c113  md/TechWorks/decks/oscon2012-clojure/slide-assets/collections-seq-list-initial.svg
+365d34886c97fe9ca2743afd0df8ae5facbb047082deaf6f3854866e03a4dcce  archive/techworks/git/wombat.bundle
 36efb38dd1f1fc8682b6f2e70e4ce21bad65e0b235bc236fb105d79911fd337b  md/TechWorks/barcamp2012-jsonscript-7e4dcf7.tar.gz
 37bd6847601d6bb5c25639fa100b9d0db33a3694679ea780761ab1c417249ccf  archive/techworks/items/infoq-frp-javelin/audio.ffprobe.json
 37eb2a8885fae16fc6f45b7910a272d9564246cf140ecd72db756fbdc3efa852  md/TechWorks/oscon2012-clojure-5ac233f.tar.gz
@@ -56,13 +64,14 @@
 38da91f7c836f694697ce8be4b998fea809fefa2f8f744b6a0766696d7295d20  md/TechWorks/decks/oscon2012-clojure/slide-assets/common.css
 39071c475b53ebb55c213f4dbb0cc731b9f9da31f7afe5591afbe8f59cd80789  md/TechWorks/OCRUGInterview/headshot.jpg
 39d6df4a9fa92d1c897cf40b79f79efaba56d0862ed8bcf80a7c7aa65ef73b63  md/TechWorks/media/audio/s4-e19-hoplon-with-alan-dipert-source.html
-3a00e044698d556109cd605696506244452c74dbf962b854d1e76bb5456d8986  archive/techworks/items/2019-software-engineering-shiny/BBSW_2019_program.pdf
+3a00e044698d556109cd605696506244452c74dbf962b854d1e76bb5456d8986  md/TechWorks/BBSW_2019_program.pdf
 3a1a72783cd199b05cfb3073931edba2742a3f45264af748d09142e4ff6a4e90  md/TechWorks/authored/wondr/posts/tail-recursion-in-r.html
 3a5b95ac0b1d82b7022fa51989f0e7bddd7ebbbd0eb4793d18cc000f8424843f  md/TechWorks/decks/oscon2012-clojure/slide-assets/clojure-interactive-evaluation.svg
 3aad0c50ebc6588f3a86aa4dde39e312f72c80680a6781ea7afb52dfc9780499  md/TechWorks/media/video/wVXjExRiFy0.en-orig.vtt
 3aad0c50ebc6588f3a86aa4dde39e312f72c80680a6781ea7afb52dfc9780499  md/TechWorks/media/video/wVXjExRiFy0.en.vtt
 3c0bb4bd8b9ab59ccf3128ec66cfb775f98fee4dee25783a00987de1c92f8416  md/TechWorks/decks/gitrubytesting/images/git6.png
 3c2821ff1e6fd6306e4a47397a545248546faae0814fb1bb1ae1b44d1fe4109d  md/TechWorks/authored/wondr/style.css
+3c3483bf6619a5cde3f095a0f396719e18b55d634057be5081d1ad4ff3154955  archive/techworks/items/oredev-2015/boot-vimeo.headers
 3c668ca8dbb0338dfbfda72e866c6151a202c26fdf1f94fba39227106f17cd88  md/TechWorks/decks/gitrubytesting/images/git7.png
 3ced799f7d1d7972530d496fd448c560d97e02f0654c266df205ebb20627e450  archive/techworks/items/2019-ocrug-interview/headshot.headers
 3e53dd7268fc07f4b2c65d3915fce2ab4c227f00e37ccef6a07467b334ce7455  archive/techworks/items/rstudio-make-shiny-fast/wistia.json
@@ -77,6 +86,7 @@
 4562fcd751a5331289d86e3f40eb67870160e637b88b8ff3be0cf33524a1bc5a  md/TechWorks/media/audio/cognicast-111.mp3
 46a6c0183f8e8078948d38be02c66bcaf0681331e8effe36be542eead2a27b95  md/TechWorks/decks/gitrubytesting/images/git2.png
 46f9c948966705d938d81ca2dc5cc5ccfab10ceb81d8a2c8d35d60b7bc72520d  md/TechWorks/decks/barcamp-2012/slide-assets/retina_wood.png
+47778901aef943039f93664ef04fe96f33caebeae9dbaefc3002f573053f2bd6  archive/techworks/items/2018-intermediate-shiny/forum.headers
 489ad1ba18a4a8e2838e4a11528b07be789394ecf8c27e23be87ab0a3a537e07  md/TechWorks/decks/gitrubytesting/images/kittcar.jpg
 48f8a2f70c107f2791976d16a9a8aaeab187504a87ca8ad9f7e18a4cf0de15b8  archive/techworks/items/rstudio-integrating-react-shiny/source.html
 490741c3ce341bd990bba77ef3ffae8e49f03b605c2eec899b36c39fad855f41  md/TechWorks/decks/oscon2012-clojure/slide-assets/collections-seq-lazy-rest.svg
@@ -98,6 +108,7 @@
 5330706e824804a97059a9ea78e04ec5b30f3b35cde21e51ca9c999fb9203854  md/TechWorks/media/video/bmHTFo2Rf2w.info.json
 53e30a56cab4e4c0e77bb34a6a9fb4ad9604ef15939726d992e0e8b581bf1b1d  archive/techworks/items/clojurestream-s4-e19/track-metadata.json
 54e1c5d7fa0cfa998de9431c8ac5396a02ed924c7767b736f6d38391bc5823a8  md/TechWorks/decks/oscon2012-clojure/slide-assets/macro-evaluation.svg
+5533431bdb3591f56ce9b5f360c048d6a4c2e3a8281935d88ab7018bb4f9e0e6  archive/techworks/items/oredev-2015/hoplon-vimeo.headers
 56b21a1533bdd4dee097b2afb2d37600e46d6cbcdb1b0cb8583f83ff212bd900  md/TechWorks/decks/oscon2012-clojure/slide-assets/structure-and-semantics.svg
 572f5d65365c1e07e496613ab5014dfb4d9cdb6483425aa4eea21c046263f88a  archive/techworks/items/rstudio-make-shiny-fast/source.headers
 587381cccc4525cd300170bc250d3aca514bbc4c84e3789683842fef91c5bf02  archive/techworks/items/pluralsight-clojure-fundamentals/thumbnail.jpg
@@ -107,11 +118,15 @@
 5bedc4c82781e2d478b53d1779f0dcae0bb536a6e2c40579b0c5c9bcd14867c8  md/TechWorks/decks/gitrubytesting/images/git-repo-5.png
 5c3ad4d267d56d117cbfd4de702de2223a4bd2c57ca46727ed7213bf4cfe8742  archive/techworks/items/rstudio-load-testing-shiny/wistia.headers
 5e6bce4030e5151bdf7aa3c9986246953a70e4638a7c12be426bb7ecd24886c2  md/TechWorks/2013-01-10_RaspberryPi.pdf
+61351fe3f7f7f12e73f4b58cb335fc3237a5d61567ff9c102ea8daa53188706b  archive/techworks/items/2018-intermediate-shiny/forum.html
 635386ec918673b0a650119c29fc1ab96fe7c85105342d585a2f4fa2d3ee53a4  archive/techworks/items/2013-trilug-raspberry-pi/redirect.html
 66326358232546ee1a467dc983d144d777d8f039f1b4377a140554fe3b527781  md/TechWorks/media/video/HGuTqsVh59w.en-orig.vtt
 66326358232546ee1a467dc983d144d777d8f039f1b4377a140554fe3b527781  md/TechWorks/media/video/HGuTqsVh59w.en.vtt
+675c7d637cfa75667574541ac809e9a062516c902f6698b91647404d3286159c  archive/techworks/items/oredev-2015/hoplon-poster.jpg
+67dd2380eb2b222dbb8ef515cdfb2b59345a599b70cd5f9569fa04e491b29db0  archive/techworks/git/scala-presentation.bundle
 69d0276a7a55e4c54dab59bf73fc333a5a272ef23e429811188f00febd2d9780  md/TechWorks/decks/oscon2012-clojure/slide-assets/background.jpeg
 6b0dcc368fa9670e815d1967ad097bba27c2920223460f8a11280e098e3ce515  md/TechWorks/decks/oscon2012-clojure/slide-assets/collections-structural-sharing.svg
+6cdf60ab2e99daa2ee458022823a05d32104d67aad1b09b3ec22902a3b601a3d  archive/techworks/items/oredev-2015/boot-vimeo.json
 7042815f96c300ca25ff9083eb34b6bd63fcb9e68d0892ec283acc07bd9c1f38  archive/techworks/items/rstudio-load-testing-shiny/original.ffprobe.json
 70678f56b3d687a793d0649cd7f5d38d2ded1f788357c12ecbe7f3acac037590  md/TechWorks/scala-presentation-82e2d00.tar.gz
 70babbc4df02b0920bae65598b8ed2d0fa9a08f0ffc377fa3fb1756187ccc017  archive/techworks/items/pluralsight-clojure-fundamentals/source.headers
@@ -121,6 +136,7 @@
 733ec4b8005a8be7d96d2ba7daf76263066c9d49c095a1fb6232e7638e4d6adc  md/TechWorks/media/video/infoq-programming-with-values.mp4
 734494ecef0a50458ab02416d7a38ca757b10d0fbcbd3fbc9dcd15579b5f1454  md/TechWorks/demos/flapjax/demo.css
 7355773d7c4efd3beefc0b75481b20722d33b75c5fb13a2802850eb493a24837  archive/techworks/items/cognicast/052-cover.jpg
+73925e762b2a8afbd5c351bd7fa335e56cbd3f011c71d27b45cdfb2f1859cd2e  archive/techworks/git/alandipert.github.com.bundle
 73c7a51dec9b771029efe866ccdc013dfdd6807b98e64b853c85e91c2858fe41  archive/techworks/items/2005-netbsd-workstation/linux-com-live.headers
 746135f37df7aa246fa753ce0a39d2e7f347424ee65e26eb1ec4343a1d13addd  md/TechWorks/authored/wondr/posts/assertions-and-postconditions.html
 76fe6f5dcebea899924ed50454fd1e8a83fc1ebcb3833a1996b14ac22d8d442f  md/TechWorks/media/video/xaxF5RDdVRE.en-orig.vtt
@@ -150,6 +166,7 @@
 9115f3072d5134e05b08efcea45eb06d8de734fa4931f60250380c77fb9d0ee9  archive/techworks/items/rstudio-integrating-react-shiny/wistia.headers
 9156d187f09855a7d1d6fa026dec4956912ac1ce768edbefe721f6565a57f0ba  md/TechWorks/media/audio/clojurestream-s4-e19.mp3
 92c2feb1c52804fa75d23f59995b77e23ad108358c6240074f8162e0a331be13  md/TechWorks/ClojureBraveTrueForeword.html
+931f4099ffd310a0a140c2bf21919e4b8bfe28c0f56102c48bb56d800cba4b66  archive/techworks/items/oredev-2015/speaker.headers
 934c2bd9997b9e6603f28308b6fccf0a72d2e30c3bb422effbcf4224ee8d7282  md/TechWorks/gherkin-76dc034.tar.gz
 935c7f008b22184aa5f2c494c3b4f085adc4091e400fd616b31d57e23d5cc7ac  archive/techworks/items/2019-ocrug-interview/2019-original.html
 947286867e69ad7e8a0f78d92bf7cbd5cfed69de03a6bf061aa898cd5e285563  md/TechWorks/decks/gitrubytesting/images/git4.png
@@ -157,6 +174,7 @@
 9545dbac6a9c02f1ec6cae11e0c61610a402746309531cf3f67de231dcf6ef3f  archive/techworks/items/rstudio-integrating-react-shiny/still.png
 9839ad172d31b2915e3eeb9cdf98830d4baf218fab8a5ff804ccedb17e6970d1  md/TechWorks/Cognicast111.html
 9840899887818adced5ce626826cc3941dd511312924cd7b77fd83c6d8cc1133  archive/techworks/items/rstudio-shiny-server-releases/1.5.6-source.html
+9b26b87da1df84b14895ca44630974a38b3da2d42722dc0f9834c7873a4e8fd1  archive/techworks/git/barcamp2012-jsonscript.bundle
 9b5b40432bc71b1da7aeb72a106c524136112e12be1da250e8b01a8d482a262b  md/TechWorks/media/video/tSw3x0rVh88.mp4
 9b5d26799ed7c9f6d78240a10c09f934444d393e506323b6e2320459f8474533  md/TechWorks/OCRUGInterview.html
 9ba1478796fb333177434674d7c0cfa697c1572031b4fa8cf6963a4515985cd4  md/TechWorks/decks/gitrubytesting/images/testsyo.png
@@ -185,15 +203,19 @@ ac5b60c328ac78786f03d96cf889ec4b236f5f0b5aa984e5d318ff6c644cc044  archive/techwo
 ace070cf982b935b701a28b767194b82a59b2322986c065e7159aefdfab3dc58  md/TechWorks/media/audio/cognicast-052.mp3
 ad6bd060e8651a883b5b5c0c5d2b0fe776115783f2c8864927549cf7bd03ae93  md/TechWorks/gitrubytesting-presentation-84744ec.tar.gz
 addb9b5c134b189a024bf6b859a7be3a1227023ee7714cc33b2b7ed62a60d6b1  md/TechWorks/decks/gitrubytesting/images/who-cares.jpg
+b239bd9dea92ead42e49d06e1b9834371515490f4605e238c94092e7eb090271  archive/techworks/git/gherkin.bundle
 b2872d41daa107619377bd61c92289d562dc78ac69060a5c8bc5e89f817f0ee9  archive/techworks/items/rstudio-make-shiny-fast/original.mp4
 b329888a9c0e528192cb24eb4a5dd7644b0e0126d975a8329c5a49fe7b7c0e14  archive/techworks/items/2019-ocrug-interview/2022-replay.html
+b3b136392596c788ce786bf58fe06d74e399dc2dce0a39db4398de71438f4386  archive/techworks/git/gitrubytesting-presentation.bundle
 b439b4b8993805b0163a467d8f18090e3044526ed7e50cd97bb5a32b09cbbc8a  md/TechWorks/media/video/HGuTqsVh59w.info.json
 b44ce2cc585d09d97c1f62f8e196600437eac29aca1e9bdc2742f8e553e4203e  md/TechWorks/decks/oscon2012-clojure/slide-assets/clojurescript-compilation.svg
 b4e735e4accb6e99cd65fa25ba20f5d01f65b051ad20d624d0941b9bf820d8da  md/TechWorks/decks/oscon2012-clojure/slide-assets/collections-seq-list-first.svg
+b5712949103be8352130e4cf9b4a4c480cd4b9d28ce86ed02808550993ada5bf  archive/techworks/git/clojurebridge-curriculum.bundle
 b720141f594781805b58b0cf682a2aa6227d358df9b5ef27d1fd711737437ea9  archive/techworks/items/infoq-programming-with-values/audio.ffprobe.json
 b729a86e1f47a1d797082844e09495a5dab473d5e91b4ccf3973b7644b4a796d  archive/techworks/items/rstudio-shiny-server-releases/author.png
 bb4fab43fb5d8ef0fa84f3f977bf63f6eca8642eaa850f0327e432de104bf71e  archive/techworks/items/2013-trilug-raspberry-pi/fDjpAHbB-Mg.mkv
 bc1cb40c406f0edf0cd7c63a0e01b5dfc941af4afe3a9aff910f9dbc5f057ab8  md/TechWorks/demos/flapjax/cljs_flapjax_frp.pdf
+bcb056624851ffbd4f91bbbe12b7c318982e43f2e55b79e92c0d96e0d5836771  archive/techworks/items/oredev-2015/hoplon.headers
 c0b942c1ec79ed851fc8810fc224b3e357c01bce98f957bf63786f4e467a2ed8  md/TechWorks/media/video/TcnzB2tB-8Q.mp4
 c1a3b92d893c4945f2e5465da527a35043aca1d68075417486477a701e89b949  md/TechWorks/decks/barcamp-2012/slide-assets/org-html-slideshow.js
 c1a3b92d893c4945f2e5465da527a35043aca1d68075417486477a701e89b949  md/TechWorks/decks/oscon2012-clojure/slide-assets/org-html-slideshow.js
@@ -205,14 +227,17 @@ cbdb7e0a11b8566c73453ca401b7cc4ef9d2a424eff8d00dee4f1a6e435d89c3  md/TechWorks/m
 cff200708de3e324faa0e5a7cd4fce4beaaa9100921c47ac4d81bcb698e151f6  md/TechWorks/media/audio/cognicast-112.mp3
 d04ff1f53296811517fd27fb2ed11b4092709558723c36d07f9719a9a4850ca4  md/TechWorks/media/video/bmHTFo2Rf2w.jpg
 d13182021b1963e5c6acfcee2e0d65081e914f5842b66ad7612d0f8d900cc9bf  archive/techworks/items/rstudio-shiny-server-releases/1.5.6-source.headers
+d13fce328968ce3dab102a8e7eb32d071b6a32307bb9ef528b088f3e83dcf3bc  archive/techworks/git/flapjax-demo.bundle
 d1689b5d52035006bf5479bc9819d700e4e239ee60ab695f178da38ba676726d  archive/techworks/items/clojure-brave-true-foreword/source.html
 d18e8f815f977dec70111afd99457a3f488f516df3e0ffd05015d52b9a8ef05d  archive/techworks/items/infoq-frp-javelin/source.headers
 d3bc604551b9f39837f4d619d8b61c324b95e6e26afed30a291092bc8d975d02  md/TechWorks/authored/wondr/posts/package-development-windows.html
 d3df1c308d6d98051b51e06a5421ac56dc63cf308b3a94024a480b30c8496613  archive/techworks/items/2013-trilug-raspberry-pi/slides.headers
+d419ca6dd3466ac8fcc7c75d3a83b8cc9dec807dc91f8a220b90a423b3ef874c  archive/techworks/git/berrycam.bundle
 d6c2893c17b5a2eae5f02674b42253a731cc6ee96fd1b8713d5a759811541590  archive/techworks/items/rstudio-load-testing-shiny/source.headers
 d7008a80eacfc904a8c51334564027aa12a579306f668685f3d9934c4ec3d4fc  archive/techworks/items/clojurestream-s4-e19/soundcloud-rss-2021.headers
 d82843df799752ff13fef3f75599bc683cf22ce5957590aa199a2bbbd018c315  md/TechWorks/authored/jlt/posts/collecting.html
 d86e150c967934e25e3c637f4cbf14322e2cfe9fe80aed75d5898dc7fb6f9af6  archive/techworks/items/rstudio-load-testing-shiny/wistia.json
+d884c2f90ca99835820b69693e2c825928b662de449e3d8910135493c54700aa  archive/techworks/items/oredev-2015/boot.html
 d8d60969258daf549ebaa75dee72e303bb4032cfd202f977b807b7b83a0b2cee  md/TechWorks/demos/flapjax/Glass_TTY_VT220.ttf
 d977b0b3706d214f78878695dc9c7870d3ee78bc639f9f5b5774d051a8367df8  md/TechWorks/media/audio/infoq-programming-with-values.mp3
 d9feaebbf7dd5f8037be7b60226c1e773f304b479f331a2bea3c1a16338684d4  md/TechWorks/media/video/tSw3x0rVh88.en-orig.vtt
@@ -221,17 +246,20 @@ dbdf9ad5674803b9eb8537c17c7b8f2d4a97a00e9e2d83b6c614e1d91dc02643  archive/techwo
 dc07b0df8e99bd30fc28d0bfa5829fdf8bd58bab1ed24dac2dcaeecbcf549557  archive/techworks/items/pluralsight-clojure-fundamentals/source.html
 dc6b504e3d3291965cb18cd875833987f7b47ffc8e897408a26c7e18d1329984  md/TechWorks/decks/gitrubytesting/images/linus_beer.jpg
 dd9a11ba5b00ffa08f88a10dce60f10eb61ac83d5439f0a95e7637a8f76d084b  md/TechWorks/media/video/TcnzB2tB-8Q.info.json
+de8f48f7bf3c61129906da56094ab3d04baf4806cc617742c6235d394886cffe  archive/techworks/git/fast-shiny.bundle
 dfabdb080e00e53092b72e02b3e8f638e07fe568ebb8c4c639d91cb51762a2d2  md/TechWorks/decks/gitrubytesting/images/ferris.jpg
 e307e14633721e10ecdd576af6458d4b1409ddf6f9e42cf3daa4e15e7ffa9b8c  md/TechWorks/Cognicast112.html
 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  md/TechWorks/decks/barcamp-2012/slide-assets/screen.css
 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  md/TechWorks/decks/oscon2012-clojure/slide-assets/screen.css
 e3b57442ae6b25fb49db2a581422d26f8def1a2dc383747236cdafe393d7ef33  md/TechWorks/decks/oscon2012-clojure/slide-assets/identity-state-03.svg
 e4898a3525451733e71c17c22b74710a6dca68c65064c20cbc764ee9922ce966  md/TechWorks/decks/oscon2012-clojure/slide-assets/identity-state-01.svg
+e520e4407eaecae8ee6ec7dae911b7c99f1a176bb622324956b541e00ab633a7  archive/techworks/git/presentations.bundle
 e5e57746ea11987744b1acacd6255d24951fddd939b57f1ceaf1b873a3b786bc  md/TechWorks/media/video/xaxF5RDdVRE.info.json
 e692d52425f09aa632a8c4605dbdb7674d515b20b662fff6fdf441a1f5e60dbf  archive/techworks/items/clojurestream-s4-e19/soundcloud-2020.html
 e755294547f5b9a19054d29eb837069fe8320fe0aa972872c94becdd8b7d8246  archive/techworks/items/rstudio-shiny-server-releases/author.headers
 ea6820d653957fcc86d231b37fab642418a9f8a8991003a30d2a4d70adbd6ce3  md/TechWorks/fast-shiny-da0ea10.tar.gz
 eb519fb5da6646d808dc1801803b3d8e35d5d90bf164775c10833cc43be9b340  md/TechWorks/authored/wondr/posts/shiny-inline-markdown.html
+ed3a60f4a5c625598543a2c9d02162d91921652874d390b91fb0f1f184f7a4fd  archive/techworks/items/oredev-2015/hoplon-vimeo.json
 ef306bbebe80ee481cf012cf446c563828d93902ee927b0a14dc86e60e7b5efc  md/TechWorks/authored/jlt/posts/collecting-macro-edition.html
 f05b26751ae23d5e6352a2a1877e037d8e6e1dd262492db9915150f2dbd6a638  md/TechWorks/berrycam-d24a0c8.tar.gz
 f0923164a543d0fb63691ff1cf564076bd3febad61647703227696d8ac71dead  md/TechWorks/decks/gitrubytesting/images/git-repo-6.png
@@ -240,13 +268,16 @@ f1b637093671124100844ab1aa75702de55de535fca32327116c01ec500df150  md/TechWorks/d
 f413f0be7acdb4780a2698c2f1b363a5d656cb4b3635cd0352c30a4cd4f0be19  archive/techworks/items/infoq-frp-javelin/source.html
 f451fd97f3990482d1ab98a6fe1d335bceb30601b2114289e3937879a437d395  archive/techworks/items/rstudio-integrating-react-shiny/wistia.json
 f50e8de09c6a01a8ac8178eec634fb42151ecd83e9fa1de49ee76e862b8b0507  md/TechWorks/media/video/tSw3x0rVh88.jpg
+f5dee5ae62c180ee4b0c597de0a93379b8283e96558e470d6c380ab008d7b80c  md/TechWorks/shiny-training-rstudioconf-2018-2966e76.tar.gz
 f79b7668eb5466d2119cfe00b055642e8245af28044a2d52d47be67d8817d23e  md/TechWorks/demos/flapjax/index.html
 f7f4733dd10d5bca2c171a9fca48d356f533c7ca8c10ef7ef46db7c16fb5cadb  md/TechWorks/decks/oscon2012-clojure/index.html
 f878cc08851e69e0a757b86400729bbe6a3882e875a6330e4f178e58887e713a  archive/techworks/items/clojurestream-s4-e19/soundcloud-rss-cdx.json
 f89ad0977d130d2fff7597f37dec8914e14d1388c29d1a1c356ebc9389bd064c  md/TechWorks/decks/barcamp-2012/slide-assets/presenter.css
 f89ad0977d130d2fff7597f37dec8914e14d1388c29d1a1c356ebc9389bd064c  md/TechWorks/decks/oscon2012-clojure/slide-assets/presenter.css
+f913f7094f20b37c956594bf0d8c009d70ab3413e1ea4443904b62ee8f393f3e  archive/techworks/git/shiny-training-rstudioconf-2018.bundle
 f93ac829f7ae73c768197eb4f47c634a38f123a1f7bacd3b4065927ac1c86c9a  md/TechWorks/media/video/44Q9ew9JH_U.mp4
 f9f103a2e4ded6dd619e5c27d43e141736257d2a93043a6150e01aa35826dcb5  md/TechWorks/decks/oscon2012-clojure/slide-assets/collections-tree-1.svg
+faf06acfbd418878507c1888ba11c1f410710c348c9fab41c26a8467d0218c26  archive/techworks/items/oredev-2015/boot-poster.jpg
 fb24fd1e710fa026de230de0cdd6b8fe1208b690d7780f620b9eee638e6f7097  md/TechWorks/triclojure-hoplon-deck-7afa060.tar.gz
 fcdc53d3785a9eef7989b3fd4b4cb3ec1715015ba61aaa3cf6a8887aa74822c1  md/TechWorks/2018-09-06-load-testing-shiny-archive.html
 ff2e0fd7602db3c079c43f6506ab569e776ec85b453a22dbb78b14949374adc2  md/TechWorks/decks/oscon2012-clojure/slide-assets/Clojure.svg
diff --git a/archive/techworks/git/alandipert.github.com.bundle b/archive/techworks/git/alandipert.github.com.bundle
new file mode 100644
index 0000000..ee31258
--- /dev/null
+++ b/archive/techworks/git/alandipert.github.com.bundle
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:73925e762b2a8afbd5c351bd7fa335e56cbd3f011c71d27b45cdfb2f1859cd2e
+size 2922611
diff --git a/archive/techworks/git/barcamp2012-jsonscript.bundle b/archive/techworks/git/barcamp2012-jsonscript.bundle
new file mode 100644
index 0000000..b19c328
--- /dev/null
+++ b/archive/techworks/git/barcamp2012-jsonscript.bundle
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9b26b87da1df84b14895ca44630974a38b3da2d42722dc0f9834c7873a4e8fd1
+size 771186
diff --git a/archive/techworks/git/berrycam.bundle b/archive/techworks/git/berrycam.bundle
new file mode 100644
index 0000000..57558e0
--- /dev/null
+++ b/archive/techworks/git/berrycam.bundle
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d419ca6dd3466ac8fcc7c75d3a83b8cc9dec807dc91f8a220b90a423b3ef874c
+size 9804
diff --git a/archive/techworks/git/clojurebridge-curriculum.bundle b/archive/techworks/git/clojurebridge-curriculum.bundle
new file mode 100644
index 0000000..fa048cc
--- /dev/null
+++ b/archive/techworks/git/clojurebridge-curriculum.bundle
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b5712949103be8352130e4cf9b4a4c480cd4b9d28ce86ed02808550993ada5bf
+size 4998801
diff --git a/archive/techworks/git/clojurewest2012-slides.bundle b/archive/techworks/git/clojurewest2012-slides.bundle
new file mode 100644
index 0000000..97bb429
--- /dev/null
+++ b/archive/techworks/git/clojurewest2012-slides.bundle
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0e0a31d26174e5fb6b20f3402521a98ac9e3f12cb078d2ef650b14224ccaadad
+size 85398704
diff --git a/archive/techworks/git/fast-shiny.bundle b/archive/techworks/git/fast-shiny.bundle
new file mode 100644
index 0000000..68b5be9
--- /dev/null
+++ b/archive/techworks/git/fast-shiny.bundle
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:de8f48f7bf3c61129906da56094ab3d04baf4806cc617742c6235d394886cffe
+size 3853724
diff --git a/archive/techworks/git/flapjax-demo.bundle b/archive/techworks/git/flapjax-demo.bundle
new file mode 100644
index 0000000..35a8d0c
--- /dev/null
+++ b/archive/techworks/git/flapjax-demo.bundle
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d13fce328968ce3dab102a8e7eb32d071b6a32307bb9ef528b088f3e83dcf3bc
+size 16713
diff --git a/archive/techworks/git/gherkin.bundle b/archive/techworks/git/gherkin.bundle
new file mode 100644
index 0000000..aca62d3
--- /dev/null
+++ b/archive/techworks/git/gherkin.bundle
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b239bd9dea92ead42e49d06e1b9834371515490f4605e238c94092e7eb090271
+size 102977
diff --git a/archive/techworks/git/gitrubytesting-presentation.bundle b/archive/techworks/git/gitrubytesting-presentation.bundle
new file mode 100644
index 0000000..98d9609
--- /dev/null
+++ b/archive/techworks/git/gitrubytesting-presentation.bundle
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b3b136392596c788ce786bf58fe06d74e399dc2dce0a39db4398de71438f4386
+size 1480277
diff --git a/archive/techworks/git/ocrug-2018-11-27.bundle b/archive/techworks/git/ocrug-2018-11-27.bundle
new file mode 100644
index 0000000..0457329
--- /dev/null
+++ b/archive/techworks/git/ocrug-2018-11-27.bundle
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:12c78b4a7c86269dfcf276b3b650e81312cf434781a4174aa5a25f3b85b85934
+size 2240
diff --git a/archive/techworks/git/oscon2012-clojure.bundle b/archive/techworks/git/oscon2012-clojure.bundle
new file mode 100644
index 0000000..5996806
--- /dev/null
+++ b/archive/techworks/git/oscon2012-clojure.bundle
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0f45cebcdc5b8bfb838cd258d9778ede288c194b02dc2161e7d5768baf96304c
+size 404791
diff --git a/archive/techworks/git/presentations.bundle b/archive/techworks/git/presentations.bundle
new file mode 100644
index 0000000..ef80259
--- /dev/null
+++ b/archive/techworks/git/presentations.bundle
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e520e4407eaecae8ee6ec7dae911b7c99f1a176bb622324956b541e00ab633a7
+size 111358084
diff --git a/archive/techworks/git/scala-presentation.bundle b/archive/techworks/git/scala-presentation.bundle
new file mode 100644
index 0000000..b021fa0
--- /dev/null
+++ b/archive/techworks/git/scala-presentation.bundle
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:67dd2380eb2b222dbb8ef515cdfb2b59345a599b70cd5f9569fa04e491b29db0
+size 459432
diff --git a/archive/techworks/git/shiny-training-rstudioconf-2018.bundle b/archive/techworks/git/shiny-training-rstudioconf-2018.bundle
new file mode 100644
index 0000000..a3342e7
--- /dev/null
+++ b/archive/techworks/git/shiny-training-rstudioconf-2018.bundle
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f913f7094f20b37c956594bf0d8c009d70ab3413e1ea4443904b62ee8f393f3e
+size 21252348
diff --git a/archive/techworks/git/triclojure-hoplon-deck.bundle b/archive/techworks/git/triclojure-hoplon-deck.bundle
new file mode 100644
index 0000000..3872e56
--- /dev/null
+++ b/archive/techworks/git/triclojure-hoplon-deck.bundle
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:301247362f0b4ff1941388c1d2f81f9f3d57b4f12445b2a587473bc476c7a291
+size 331550
diff --git a/archive/techworks/git/wombat.bundle b/archive/techworks/git/wombat.bundle
new file mode 100644
index 0000000..622adf6
--- /dev/null
+++ b/archive/techworks/git/wombat.bundle
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:365d34886c97fe9ca2743afd0df8ae5facbb047082deaf6f3854866e03a4dcce
+size 123698
diff --git a/archive/techworks/items/2018-intermediate-shiny/forum.headers b/archive/techworks/items/2018-intermediate-shiny/forum.headers
new file mode 100644
index 0000000..d2e7856
--- /dev/null
+++ b/archive/techworks/items/2018-intermediate-shiny/forum.headers
@@ -0,0 +1,23 @@
+HTTP/2 200 
+server: nginx
+date: Sun, 09 Aug 2026 21:23:33 GMT
+content-type: text/html; charset=utf-8
+vary: Accept-Encoding
+x-frame-options: SAMEORIGIN
+x-xss-protection: 0
+x-content-type-options: nosniff
+x-permitted-cross-domain-policies: none
+referrer-policy: strict-origin-when-cross-origin
+x-discourse-route: topics/show
+last-modified: Sun, 21 Mar 2021 01:20:07 GMT
+vary: Accept
+cross-origin-opener-policy: same-origin-allow-popups
+cache-control: no-cache, no-store
+content-security-policy: upgrade-insecure-requests; base-uri 'self'; object-src 'none'; script-src 'nonce-sYMfgHA46bX8iRotLzMtr5AF8' 'strict-dynamic'; frame-ancestors 'self'; manifest-src 'self'
+x-discourse-cached: skip
+x-request-id: fec26e9f-c266-4fa2-afaf-65cad5f52a2f
+x-runtime: 0.118960
+x-discourse-trackview: 1
+strict-transport-security: max-age=31536000
+content-encoding: br
+
diff --git a/archive/techworks/items/2018-intermediate-shiny/forum.html b/archive/techworks/items/2018-intermediate-shiny/forum.html
new file mode 100644
index 0000000..deb2d40
--- /dev/null
+++ b/archive/techworks/items/2018-intermediate-shiny/forum.html
@@ -0,0 +1,769 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>Information for the Intermediate Shiny workshop - posit::conf - Posit Community</title>
+    <meta name="description" content="This post is for registered attendees of the Intermediate Shiny Workshop for rstudio::conf 2018. 
+On behalf of myself, co-instructor Dean Attali, and our TA’s Barbara Borges, Winston Chang, and Alan Dipert, thank you for&amp;hellip;">
+    <meta name="generator" content="Discourse 3.5.0.beta8-dev - https://github.com/discourse/discourse version bbbb69f86e58d7523f46cf6cb1ae2c68bda9abb5">
+<link rel="icon" type="image/png" href="https://forum.posit.co/uploads/default/optimized/3X/a/2/a2088ce9db90a2a99109603641bde473e3237a6c_2_32x32.png">
+<link rel="apple-touch-icon" type="image/png" href="https://forum.posit.co/uploads/default/optimized/3X/a/2/a2088ce9db90a2a99109603641bde473e3237a6c_2_180x180.png">
+<meta name="theme-color" media="(prefers-color-scheme: light)" content="#ffffff">
+<meta name="theme-color" media="(prefers-color-scheme: dark)" content="#111111">
+
+<meta name="color-scheme" content="light dark">
+
+<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, viewport-fit=cover">
+<link rel="canonical" href="https://forum.posit.co/t/information-for-the-intermediate-shiny-workshop/4596" />
+
+<link rel="search" type="application/opensearchdescription+xml" href="https://forum.posit.co/opensearch.xml" title="Posit Community Search">
+
+    <link href="/stylesheets/color_definitions_rstudio-light_3_22_6030274f03ac99ef591c84f86fffedf5bfcf1014.css?__ws=forum.posit.co" media="(prefers-color-scheme: light)" rel="stylesheet" class="light-scheme" data-scheme-id="3"/><link href="/stylesheets/color_definitions_rstudio-dark_4_22_e0bea780a0041e716a321ea990253ce1e90cc06c.css?__ws=forum.posit.co" media="(prefers-color-scheme: dark)" rel="stylesheet" class="dark-scheme" data-scheme-id="4"/>
+
+<link href="/stylesheets/common_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="common"  />
+
+  <link href="/stylesheets/desktop_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="desktop"  />
+
+
+
+    <link href="/stylesheets/chat_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="chat"  />
+    <link href="/stylesheets/checklist_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="checklist"  />
+    <link href="/stylesheets/discourse-adplugin_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="discourse-adplugin"  />
+    <link href="/stylesheets/discourse-ai_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="discourse-ai"  />
+    <link href="/stylesheets/discourse-cakeday_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="discourse-cakeday"  />
+    <link href="/stylesheets/discourse-chat-integration_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="discourse-chat-integration"  />
+    <link href="/stylesheets/discourse-data-explorer_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="discourse-data-explorer"  />
+    <link href="/stylesheets/discourse-details_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="discourse-details"  />
+    <link href="/stylesheets/discourse-lazy-videos_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="discourse-lazy-videos"  />
+    <link href="/stylesheets/discourse-local-dates_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="discourse-local-dates"  />
+    <link href="/stylesheets/discourse-math_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="discourse-math"  />
+    <link href="/stylesheets/discourse-narrative-bot_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="discourse-narrative-bot"  />
+    <link href="/stylesheets/discourse-post-voting_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="discourse-post-voting"  />
+    <link href="/stylesheets/discourse-presence_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="discourse-presence"  />
+    <link href="/stylesheets/discourse-rss-polling_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="discourse-rss-polling"  />
+    <link href="/stylesheets/discourse-solved_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="discourse-solved"  />
+    <link href="/stylesheets/discourse-templates_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="discourse-templates"  />
+    <link href="/stylesheets/discourse-topic-voting_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="discourse-topic-voting"  />
+    <link href="/stylesheets/docker_manager_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="docker_manager"  />
+    <link href="/stylesheets/footnote_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="footnote"  />
+    <link href="/stylesheets/poll_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="poll"  />
+    <link href="/stylesheets/spoiler-alert_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="spoiler-alert"  />
+    <link href="/stylesheets/chat_desktop_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="chat_desktop"  />
+    <link href="/stylesheets/discourse-ai_desktop_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="discourse-ai_desktop"  />
+    <link href="/stylesheets/discourse-post-voting_desktop_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="discourse-post-voting_desktop"  />
+    <link href="/stylesheets/discourse-topic-voting_desktop_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="discourse-topic-voting_desktop"  />
+    <link href="/stylesheets/poll_desktop_a599d1935227c78ff33766947ee033fd0b2d242f.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="poll_desktop"  />
+
+  <link href="/stylesheets/common_theme_22_3a1bd32937f0d216040c0dde756e1231a4004a49.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="common_theme" data-theme-id="22" data-theme-name="rstudio theme"/>
+    <link href="/stylesheets/desktop_theme_22_c5de8338f69643a1a2ba766a2a3a1e49a90a1af6.css?__ws=forum.posit.co" media="all" rel="stylesheet" data-target="desktop_theme" data-theme-id="22" data-theme-name="rstudio theme"/>
+
+    
+    
+        <link rel="alternate nofollow" type="application/rss+xml" title="RSS feed of &#39;Information for the Intermediate Shiny workshop&#39;" href="https://forum.posit.co/t/information-for-the-intermediate-shiny-workshop/4596.rss" />
+    <meta property="og:site_name" content="Posit Community" />
+<meta property="og:type" content="website" />
+<meta name="twitter:card" content="summary_large_image" />
+<meta name="twitter:image" content="https://forum.posit.co/uploads/default/original/3X/6/5/654b5c729979def37b03638d5f101ca9eede49b2.jpeg" />
+<meta property="og:image" content="https://forum.posit.co/uploads/default/original/3X/6/5/654b5c729979def37b03638d5f101ca9eede49b2.jpeg" />
+<meta property="og:url" content="https://forum.posit.co/t/information-for-the-intermediate-shiny-workshop/4596" />
+<meta name="twitter:url" content="https://forum.posit.co/t/information-for-the-intermediate-shiny-workshop/4596" />
+<meta property="og:title" content="Information for the Intermediate Shiny workshop" />
+<meta name="twitter:title" content="Information for the Intermediate Shiny workshop" />
+<meta property="og:description" content="This post is for registered attendees of the Intermediate Shiny Workshop for rstudio::conf 2018.  On behalf of myself, co-instructor Dean Attali, and our TA&#39;s Barbara Borges, Winston Chang, and Alan Dipert, thank you for signing up for our course! We look forward to meeting you and helping to get your Shiny skills to the next level!  There are a few things you&#39;ll need:   A working laptop with wifi A relatively recent version of R and RStudio Install the meta-package for the workshop by doing rem..." />
+<meta name="twitter:description" content="This post is for registered attendees of the Intermediate Shiny Workshop for rstudio::conf 2018.  On behalf of myself, co-instructor Dean Attali, and our TA&#39;s Barbara Borges, Winston Chang, and Alan Dipert, thank you for signing up for our course! We look forward to meeting you and helping to get your Shiny skills to the next level!  There are a few things you&#39;ll need:   A working laptop with wifi A relatively recent version of R and RStudio Install the meta-package for the workshop by doing rem..." />
+<meta property="og:article:section" content="Conferences &amp; Events" />
+<meta property="og:article:section:color" content="FFFFFF" />
+<meta property="og:article:section" content="posit::conf" />
+<meta property="og:article:section:color" content="FFFFFF" />
+<meta name="twitter:label1" value="Reading time" />
+<meta name="twitter:data1" value="2 mins 🕑" />
+<meta name="twitter:label2" value="Likes" />
+<meta name="twitter:data2" value="5 ❤" />
+<meta property="article:published_time" content="2018-01-28T23:33:39+00:00" />
+<meta property="og:ignore_canonical" content="true" />
+
+        <link rel="next" href="/t/information-for-the-intermediate-shiny-workshop/4596?page=2">
+
+    <script type="application/ld+json">{"@context":"http://schema.org","@type":"QAPage","name":"Information for the Intermediate Shiny workshop","mainEntity":{"@type":"Question","name":"Information for the Intermediate Shiny workshop","text":"This post is for registered attendees of the Intermediate Shiny Workshop for rstudio::conf 2018.\n\nOn behalf of myself, co-instructor Dean Attali, and our TA&#39;s Barbara Borges, Winston Chang, and Alan Dipert, thank you for signing up for our course! We look forward to meeting you and helping to get yo&hellip;","upvoteCount":0,"answerCount":0,"datePublished":"2018-01-28T23:33:39.431Z","author":{"@type":"Person","name":"jcheng","url":"https://forum.posit.co/u/jcheng"}}}</script>
+  </head>
+  <body class="crawler ">
+    
+    <header>
+  <a href="/">Posit Community</a>
+</header>
+
+    <div id="main-outlet" class="wrap" role="main">
+        <div id="topic-title">
+    <h1>
+      <a href="/t/information-for-the-intermediate-shiny-workshop/4596">Information for the Intermediate Shiny workshop</a>
+    </h1>
+
+      <div class="topic-category" itemscope itemtype="http://schema.org/BreadcrumbList">
+          <span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
+            <a href="/c/irl/posit-conf/7" class="badge-wrapper bullet" itemprop="item">
+              <span class='badge-category-bg' style='background-color: #FFFFFF'></span>
+              <span class='badge-category clear-badge'>
+                <span class='category-name' itemprop='name'>Conferences &amp; Events</span>
+              </span>
+            </a>
+            <meta itemprop="position" content="1" />
+          </span>
+          <span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
+            <a href="/c/irl/posit-conf/7" class="badge-wrapper bullet" itemprop="item">
+              <span class='badge-category-bg' style='background-color: #FFFFFF'></span>
+              <span class='badge-category clear-badge'>
+                <span class='category-name' itemprop='name'>posit::conf</span>
+              </span>
+            </a>
+            <meta itemprop="position" content="2" />
+          </span>
+      </div>
+
+  </div>
+
+  
+
+    <div itemscope itemtype='http://schema.org/DiscussionForumPosting'>
+      <meta itemprop='headline' content='Information for the Intermediate Shiny workshop'>
+      <link itemprop='url' href='https://forum.posit.co/t/information-for-the-intermediate-shiny-workshop/4596'>
+      <meta itemprop='datePublished' content='2018-01-28T23:33:39Z'>
+        <meta itemprop='articleSection' content='posit::conf'>
+      <meta itemprop='keywords' content=''>
+      <div itemprop='publisher' itemscope itemtype="http://schema.org/Organization">
+        <meta itemprop='name' content='Posit Software, PBC'>
+          <div itemprop='logo' itemscope itemtype="http://schema.org/ImageObject">
+            <meta itemprop='url' content='https://forum.posit.co/uploads/default/original/3X/5/b/5b550e4a6263421879881a94c8f707460218273d.png'>
+          </div>
+      </div>
+
+
+          <div id='post_1'  class='topic-body crawler-post'>
+            <div class='crawler-post-meta'>
+              <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person">
+                <a itemprop="url" rel='nofollow' href='https://forum.posit.co/u/jcheng'><span itemprop='name'>jcheng</span></a>
+                
+              </span>
+
+                <link itemprop="mainEntityOfPage" href="https://forum.posit.co/t/information-for-the-intermediate-shiny-workshop/4596">
+
+
+              <span class="crawler-post-infos">
+                  <time  datetime='2018-01-28T23:33:39Z' class='post-time'>
+                    January 28, 2018, 11:33pm
+                  </time>
+                  <meta itemprop='dateModified' content='2018-01-28T23:33:39Z'>
+              <span itemprop='position'>1</span>
+              </span>
+            </div>
+            <div class='post' itemprop='text'>
+              <p>This post is for registered attendees of the Intermediate Shiny Workshop for rstudio::conf 2018.</p>
+<p>On behalf of myself, co-instructor Dean Attali, and our TA's Barbara Borges, Winston Chang, and Alan Dipert, thank you for signing up for our course! We look forward to meeting you and helping to get your Shiny skills to the next level!</p>
+<p>There are a few things you'll need:</p>
+<ol>
+<li>A working laptop with wifi</li>
+<li>A relatively recent version of R and RStudio</li>
+<li>Install the meta-package for the workshop by doing <code>remotes::install_github("jcheng5/ShinyWorkshopDeps")</code> (or (<code>devtools::install_github</code> if that's what you're used to). This will make sure you have all the necessary package dependencies for the workshop--there are quite a few! If you run into any errors installing the dependencies, please post a reply on this thread and we'll help you out.</li>
+<li>We'll be doing many exercises together, so you'll need to obtain the workshop materials. If you're familiar with Git, then do <code>git clone https://github.com/jcheng5/shiny-training-rstudioconf-2018</code>. If not, you can download a zip file here: <a href="https://github.com/jcheng5/shiny-training-rstudioconf-2018/archive/master.zip" rel="nofollow noopener">https://github.com/jcheng5/shiny-training-rstudioconf-2018/archive/master.zip</a>
+</li>
+</ol>
+<p>That should do it! If you have any questions or concerns, reply to this thread (recommended), or email <a href="mailto:joe@rstudio.com">joe@rstudio.com</a>.</p>
+<p>Thanks, see you soon!</p>
+<p>-Joe Cheng</p>
+            </div>
+
+            <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter">
+              <meta itemprop="interactionType" content="http://schema.org/LikeAction"/>
+              <meta itemprop="userInteractionCount" content="0" />
+              <span class='post-likes'></span>
+            </div>
+
+          </div>
+          <div id='post_2' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'>
+            <div class='crawler-post-meta'>
+              <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person">
+                <a itemprop="url" rel='nofollow' href='https://forum.posit.co/u/pteetor'><span itemprop='name'>pteetor</span></a>
+                
+              </span>
+
+
+
+              <span class="crawler-post-infos">
+                  <time itemprop='datePublished' datetime='2018-01-29T14:04:55Z' class='post-time'>
+                    January 29, 2018,  2:04pm
+                  </time>
+                  <meta itemprop='dateModified' content='2018-01-29T14:04:55Z'>
+              <span itemprop='position'>2</span>
+              </span>
+            </div>
+            <div class='post' itemprop='text'>
+              <p>Thanks for the instructions, Joe. The downloads and installation went flawlessly for me.</p>
+<p>I notice that the day 1 agenda contains introduction-to-Shiny material. I assumed this was an intermediate level workshop. Did I misunderstand something?</p>
+            </div>
+
+            <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter">
+              <meta itemprop="interactionType" content="http://schema.org/LikeAction"/>
+              <meta itemprop="userInteractionCount" content="0" />
+              <span class='post-likes'></span>
+            </div>
+
+          </div>
+          <div id='post_3' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'>
+            <div class='crawler-post-meta'>
+              <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person">
+                <a itemprop="url" rel='nofollow' href='https://forum.posit.co/u/jarvis'><span itemprop='name'>jarvis</span></a>
+                
+              </span>
+
+
+
+              <span class="crawler-post-infos">
+                  <time itemprop='datePublished' datetime='2018-01-29T16:04:48Z' class='post-time'>
+                    January 29, 2018,  4:04pm
+                  </time>
+                  <meta itemprop='dateModified' content='2018-01-29T16:04:48Z'>
+              <span itemprop='position'>3</span>
+              </span>
+            </div>
+            <div class='post' itemprop='text'>
+              <p>It might be because a number of people learned Shiny via different avenues or haven't used it in a while, so a quick introduction to refresh people and/or get everyone on some equal knowledge.</p>
+            </div>
+
+            <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter">
+              <meta itemprop="interactionType" content="http://schema.org/LikeAction"/>
+              <meta itemprop="userInteractionCount" content="2" />
+              <span class='post-likes'>2 Likes</span>
+            </div>
+
+          </div>
+          <div id='post_4' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'>
+            <div class='crawler-post-meta'>
+              <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person">
+                <a itemprop="url" rel='nofollow' href='https://forum.posit.co/u/jcheng'><span itemprop='name'>jcheng</span></a>
+                
+              </span>
+
+
+
+              <span class="crawler-post-infos">
+                  <time itemprop='datePublished' datetime='2018-01-29T16:19:47Z' class='post-time'>
+                    January 29, 2018,  4:19pm
+                  </time>
+                  <meta itemprop='dateModified' content='2018-01-29T16:19:47Z'>
+              <span itemprop='position'>4</span>
+              </span>
+            </div>
+            <div class='post' itemprop='text'>
+              <p>That's exactly right. It also gives us some time to shake out any bugs in people's configurations.</p>
+            </div>
+
+            <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter">
+              <meta itemprop="interactionType" content="http://schema.org/LikeAction"/>
+              <meta itemprop="userInteractionCount" content="0" />
+              <span class='post-likes'></span>
+            </div>
+
+          </div>
+          <div id='post_5' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'>
+            <div class='crawler-post-meta'>
+              <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person">
+                <a itemprop="url" rel='nofollow' href='https://forum.posit.co/u/pteetor'><span itemprop='name'>pteetor</span></a>
+                
+              </span>
+
+
+
+              <span class="crawler-post-infos">
+                  <time itemprop='datePublished' datetime='2018-01-29T16:24:28Z' class='post-time'>
+                    January 29, 2018,  4:24pm
+                  </time>
+                  <meta itemprop='dateModified' content='2018-01-29T16:24:28Z'>
+              <span itemprop='position'>5</span>
+              </span>
+            </div>
+            <div class='post' itemprop='text'>
+              <p>Ah ah. Good logic. Thanks!</p>
+            </div>
+
+            <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter">
+              <meta itemprop="interactionType" content="http://schema.org/LikeAction"/>
+              <meta itemprop="userInteractionCount" content="0" />
+              <span class='post-likes'></span>
+            </div>
+
+          </div>
+          <div id='post_6' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'>
+            <div class='crawler-post-meta'>
+              <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person">
+                <a itemprop="url" rel='nofollow' href='https://forum.posit.co/u/wwheeler'><span itemprop='name'>wwheeler</span></a>
+                
+              </span>
+
+
+
+              <span class="crawler-post-infos">
+                  <time itemprop='datePublished' datetime='2018-01-29T19:20:09Z' class='post-time'>
+                    January 29, 2018,  7:20pm
+                  </time>
+                  <meta itemprop='dateModified' content='2018-01-29T19:20:09Z'>
+              <span itemprop='position'>6</span>
+              </span>
+            </div>
+            <div class='post' itemprop='text'>
+              <p>Hi Joe, thanks for the instructions, very much looking forward to this.  I have a chromebook and was planning on using RStudio cloud. It seemed to download and install everything just fine; can you think of any reasons why this setup might not work?</p>
+            </div>
+
+            <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter">
+              <meta itemprop="interactionType" content="http://schema.org/LikeAction"/>
+              <meta itemprop="userInteractionCount" content="0" />
+              <span class='post-likes'></span>
+            </div>
+
+          </div>
+          <div id='post_7' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'>
+            <div class='crawler-post-meta'>
+              <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person">
+                <a itemprop="url" rel='nofollow' href='https://forum.posit.co/u/NovasTaylor'><span itemprop='name'>NovasTaylor</span></a>
+                
+              </span>
+
+
+
+              <span class="crawler-post-infos">
+                  <time itemprop='datePublished' datetime='2018-01-29T20:58:28Z' class='post-time'>
+                    January 29, 2018,  8:58pm
+                  </time>
+                  <meta itemprop='dateModified' content='2018-01-29T20:58:28Z'>
+              <span itemprop='position'>7</span>
+              </span>
+            </div>
+            <div class='post' itemprop='text'>
+              <p>Thanks Joe.  I'm in the "I'm a little rusty" camp so I appreciate the Intro portion.  Really looking forward to taking my Shiny skills to the next level.</p>
+<p>See y'all soon, eh!</p>
+<p>Tim</p>
+            </div>
+
+            <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter">
+              <meta itemprop="interactionType" content="http://schema.org/LikeAction"/>
+              <meta itemprop="userInteractionCount" content="1" />
+              <span class='post-likes'>1 Like</span>
+            </div>
+
+          </div>
+          <div id='post_8' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'>
+            <div class='crawler-post-meta'>
+              <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person">
+                <a itemprop="url" rel='nofollow' href='https://forum.posit.co/u/StatSteph'><span itemprop='name'>StatSteph</span></a>
+                
+              </span>
+
+
+
+              <span class="crawler-post-infos">
+                  <time itemprop='datePublished' datetime='2018-01-29T21:11:27Z' class='post-time'>
+                    January 29, 2018,  9:11pm
+                  </time>
+                  <meta itemprop='dateModified' content='2018-01-29T21:11:27Z'>
+              <span itemprop='position'>8</span>
+              </span>
+            </div>
+            <div class='post' itemprop='text'>
+              <p>I've made a few apps that work but involved lots of borrowing code from other people's repos or blogs and not exactly understanding what is going on sometimes but they work!</p>
+            </div>
+
+            <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter">
+              <meta itemprop="interactionType" content="http://schema.org/LikeAction"/>
+              <meta itemprop="userInteractionCount" content="1" />
+              <span class='post-likes'>1 Like</span>
+            </div>
+
+          </div>
+          <div id='post_9' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'>
+            <div class='crawler-post-meta'>
+              <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person">
+                <a itemprop="url" rel='nofollow' href='https://forum.posit.co/u/jcheng'><span itemprop='name'>jcheng</span></a>
+                
+              </span>
+
+
+
+              <span class="crawler-post-infos">
+                  <time itemprop='datePublished' datetime='2018-01-29T22:50:51Z' class='post-time'>
+                    January 29, 2018, 10:50pm
+                  </time>
+                  <meta itemprop='dateModified' content='2018-01-29T22:50:51Z'>
+              <span itemprop='position'>9</span>
+              </span>
+            </div>
+            <div class='post' itemprop='text'>
+              <p><a class="mention" href="/u/wwheeler">@wwheeler</a> That should be totally fine!</p>
+            </div>
+
+            <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter">
+              <meta itemprop="interactionType" content="http://schema.org/LikeAction"/>
+              <meta itemprop="userInteractionCount" content="0" />
+              <span class='post-likes'></span>
+            </div>
+
+          </div>
+          <div id='post_10' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'>
+            <div class='crawler-post-meta'>
+              <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person">
+                <a itemprop="url" rel='nofollow' href='https://forum.posit.co/u/dataBeth'><span itemprop='name'>dataBeth</span></a>
+                
+              </span>
+
+
+
+              <span class="crawler-post-infos">
+                  <time itemprop='datePublished' datetime='2018-01-29T23:07:50Z' class='post-time'>
+                    January 29, 2018, 11:07pm
+                  </time>
+                  <meta itemprop='dateModified' content='2018-01-29T23:07:50Z'>
+              <span itemprop='position'>10</span>
+              </span>
+            </div>
+            <div class='post' itemprop='text'>
+              <p>everything ran for me until the end, on package DT:  and then this error:</p>
+<ul>
+<li>installing <em>source</em> package ‘DT’ ...<br>
+** R<br>
+** inst<br>
+** preparing package for lazy loading<br>
+Error in loadNamespace(j &lt;- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) :<br>
+namespace ‘htmlwidgets’ 0.9 is being loaded, but &gt;= 1.0 is required<br>
+ERROR: lazy loading failed for package ‘DT’</li>
+<li>removing ‘/Library/Frameworks/R.framework/Versions/3.3/Resources/library/DT’<br>
+Error: Command failed (1)</li>
+</ul>
+<p>Should I just try installing by itself?</p>
+            </div>
+
+            <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter">
+              <meta itemprop="interactionType" content="http://schema.org/LikeAction"/>
+              <meta itemprop="userInteractionCount" content="0" />
+              <span class='post-likes'></span>
+            </div>
+
+          </div>
+          <div id='post_11' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'>
+            <div class='crawler-post-meta'>
+              <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person">
+                <a itemprop="url" rel='nofollow' href='https://forum.posit.co/u/dataBeth'><span itemprop='name'>dataBeth</span></a>
+                
+              </span>
+
+
+
+              <span class="crawler-post-infos">
+                  <time itemprop='datePublished' datetime='2018-01-29T23:09:03Z' class='post-time'>
+                    January 29, 2018, 11:09pm
+                  </time>
+                  <meta itemprop='dateModified' content='2018-01-29T23:09:03Z'>
+              <span itemprop='position'>11</span>
+              </span>
+            </div>
+            <div class='post' itemprop='text'>
+              <p>Okay....installed DT with install.packages and it worked there.     Should this be fine then??</p>
+<p>Thanks!  Looking forward to class.</p>
+            </div>
+
+            <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter">
+              <meta itemprop="interactionType" content="http://schema.org/LikeAction"/>
+              <meta itemprop="userInteractionCount" content="0" />
+              <span class='post-likes'></span>
+            </div>
+
+          </div>
+          <div id='post_12' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'>
+            <div class='crawler-post-meta'>
+              <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person">
+                <a itemprop="url" rel='nofollow' href='https://forum.posit.co/u/rwbenz'><span itemprop='name'>rwbenz</span></a>
+                
+              </span>
+
+
+
+              <span class="crawler-post-infos">
+                  <time itemprop='datePublished' datetime='2018-01-30T04:22:02Z' class='post-time'>
+                    January 30, 2018,  4:22am
+                  </time>
+                  <meta itemprop='dateModified' content='2018-01-30T04:22:02Z'>
+              <span itemprop='position'>12</span>
+              </span>
+            </div>
+            <div class='post' itemprop='text'>
+              <p>Thanks Joe,</p>
+<p>I'm getting the following error during the installation of the digest package:</p>
+<pre><code class="lang-r">&gt; remotes::install_github("jcheng5/ShinyWorkshopDeps")
+Downloading GitHub repo jcheng5/ShinyWorkshopDeps@master
+Downloading GitHub repo rstudio/DT@master
+Installing 1 packages: digest
+Error in download.file(url, destfile, method, mode = "wb", ...) : 
+  cannot open URL 'https://cran.rstudio.com/bin/macosx/el-capitan/contrib/3.4/digest_0.6.15.tgz'
+In addition: Warning message:
+In download.file(url, destfile, method, mode = "wb", ...) :
+  cannot open URL 'https://cran.rstudio.com/bin/macosx/el-capitan/contrib/3.4/digest_0.6.15.tgz': HTTP status was '404 Not Found'
+Warning in download.packages(pkgs, destdir = tmpd, available = available,  :
+  download of package ‘digest’ failed
+</code></pre>
+<p>When I check the contrib/3.4 directory <code>digest_0.6.14.tgz</code> is there, but not 0.6.15.  I'm running the latest version of R (3.4.3) and the latest version of R studio (though I get the same error when trying to install in R outside of RStudio).</p>
+<p>Thanks for the assistance.</p>
+            </div>
+
+            <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter">
+              <meta itemprop="interactionType" content="http://schema.org/LikeAction"/>
+              <meta itemprop="userInteractionCount" content="0" />
+              <span class='post-likes'></span>
+            </div>
+
+          </div>
+          <div id='post_13' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'>
+            <div class='crawler-post-meta'>
+              <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person">
+                <a itemprop="url" rel='nofollow' href='https://forum.posit.co/u/jcheng'><span itemprop='name'>jcheng</span></a>
+                
+              </span>
+
+
+
+              <span class="crawler-post-infos">
+                  <time itemprop='datePublished' datetime='2018-01-30T05:34:39Z' class='post-time'>
+                    January 30, 2018,  5:34am
+                  </time>
+                  <meta itemprop='dateModified' content='2018-01-30T05:34:39Z'>
+              <span itemprop='position'>13</span>
+              </span>
+            </div>
+            <div class='post' itemprop='text'>
+              <p><a class="mention" href="/u/databeth">@dataBeth</a> Sorry but the CRAN version of DT has an issue that will be a little annoying on the first day of class. I'm not sure why htmlwidgets 1.0 is not being installed, can you try <code>install.packages("htmlwidgets")</code>, then try the <code>remotes::install_github("jcheng5/ShinyWorkshopDeps")</code> again?</p>
+            </div>
+
+            <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter">
+              <meta itemprop="interactionType" content="http://schema.org/LikeAction"/>
+              <meta itemprop="userInteractionCount" content="0" />
+              <span class='post-likes'></span>
+            </div>
+
+          </div>
+          <div id='post_14' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'>
+            <div class='crawler-post-meta'>
+              <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person">
+                <a itemprop="url" rel='nofollow' href='https://forum.posit.co/u/jcheng'><span itemprop='name'>jcheng</span></a>
+                
+              </span>
+
+
+
+              <span class="crawler-post-infos">
+                  <time itemprop='datePublished' datetime='2018-01-30T05:37:36Z' class='post-time'>
+                    January 30, 2018,  5:37am
+                  </time>
+                  <meta itemprop='dateModified' content='2018-01-30T05:37:36Z'>
+              <span itemprop='position'>14</span>
+              </span>
+            </div>
+            <div class='post' itemprop='text'>
+              <p><a class="mention" href="/u/rwbenz">@rwbenz</a> For some reason, CRAN hasn't published most of the binary flavors for 0.6.15. <a href="https://cran.r-project.org/web/packages/digest/index.html" rel="nofollow noopener">https://cran.r-project.org/web/packages/digest/index.html</a></p>
+<p>I don't <em>think</em> it should matter which version is installed, as long as some version is. Can you try <code>install.packages("digest", type="source")</code>? If that works, then try <code>remotes::install_github("jcheng5/ShinyWorkshopDeps")</code> again.</p>
+            </div>
+
+            <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter">
+              <meta itemprop="interactionType" content="http://schema.org/LikeAction"/>
+              <meta itemprop="userInteractionCount" content="0" />
+              <span class='post-likes'></span>
+            </div>
+
+          </div>
+          <div id='post_15' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'>
+            <div class='crawler-post-meta'>
+              <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person">
+                <a itemprop="url" rel='nofollow' href='https://forum.posit.co/u/rwbenz'><span itemprop='name'>rwbenz</span></a>
+                
+              </span>
+
+
+
+              <span class="crawler-post-infos">
+                  <time itemprop='datePublished' datetime='2018-01-30T05:58:12Z' class='post-time'>
+                    January 30, 2018,  5:58am
+                  </time>
+                  <meta itemprop='dateModified' content='2018-01-30T05:58:12Z'>
+              <span itemprop='position'>15</span>
+              </span>
+            </div>
+            <div class='post' itemprop='text'>
+              <p><a class="mention" href="/u/jcheng">@jcheng</a> thanks for the update.  The source install went fine, and installed 0.6.15.  Re-running the <code>remotes</code> command completed with errors, so I think I'm good to go.  Thanks again!</p>
+            </div>
+
+            <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter">
+              <meta itemprop="interactionType" content="http://schema.org/LikeAction"/>
+              <meta itemprop="userInteractionCount" content="0" />
+              <span class='post-likes'></span>
+            </div>
+
+          </div>
+          <div id='post_16' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'>
+            <div class='crawler-post-meta'>
+              <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person">
+                <a itemprop="url" rel='nofollow' href='https://forum.posit.co/u/dataBeth'><span itemprop='name'>dataBeth</span></a>
+                
+              </span>
+
+
+
+              <span class="crawler-post-infos">
+                  <time itemprop='datePublished' datetime='2018-01-30T12:51:20Z' class='post-time'>
+                    January 30, 2018, 12:51pm
+                  </time>
+                  <meta itemprop='dateModified' content='2018-01-30T12:51:20Z'>
+              <span itemprop='position'>16</span>
+              </span>
+            </div>
+            <div class='post' itemprop='text'>
+              <p><a class="mention" href="/u/jcheng">@jcheng</a> I think that worked.</p>
+            </div>
+
+            <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter">
+              <meta itemprop="interactionType" content="http://schema.org/LikeAction"/>
+              <meta itemprop="userInteractionCount" content="0" />
+              <span class='post-likes'></span>
+            </div>
+
+          </div>
+          <div id='post_17' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'>
+            <div class='crawler-post-meta'>
+              <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person">
+                <a itemprop="url" rel='nofollow' href='https://forum.posit.co/u/pteetor'><span itemprop='name'>pteetor</span></a>
+                
+              </span>
+
+
+
+              <span class="crawler-post-infos">
+                  <time itemprop='datePublished' datetime='2018-01-30T13:21:37Z' class='post-time'>
+                    January 30, 2018,  1:21pm
+                  </time>
+                  <meta itemprop='dateModified' content='2018-01-30T13:21:37Z'>
+              <span itemprop='position'>17</span>
+              </span>
+            </div>
+            <div class='post' itemprop='text'>
+              <p><a class="mention" href="/u/wwheeler">@wwheeler</a> For what it's worth, I am using the same setup (Chromebook in front of me, RStudio server in AWS). It's always worked flawlessly for me, both for Shiny and non-Shiny development.</p>
+            </div>
+
+            <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter">
+              <meta itemprop="interactionType" content="http://schema.org/LikeAction"/>
+              <meta itemprop="userInteractionCount" content="0" />
+              <span class='post-likes'></span>
+            </div>
+
+          </div>
+          <div id='post_18' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'>
+            <div class='crawler-post-meta'>
+              <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person">
+                <a itemprop="url" rel='nofollow' href='https://forum.posit.co/u/knjogu'><span itemprop='name'>knjogu</span></a>
+                
+              </span>
+
+
+
+              <span class="crawler-post-infos">
+                  <time itemprop='datePublished' datetime='2018-01-30T16:32:29Z' class='post-time'>
+                    January 30, 2018,  4:32pm
+                  </time>
+                  <meta itemprop='dateModified' content='2018-01-30T16:32:29Z'>
+              <span itemprop='position'>18</span>
+              </span>
+            </div>
+            <div class='post' itemprop='text'>
+              <p>Thanks Joe for this. I have also created a few simple apps from borrowed codes but always find it challenging to create a new concept or thinking without codes. Hope this course helps me move past these.</p>
+<p>Looking forward.</p>
+            </div>
+
+            <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter">
+              <meta itemprop="interactionType" content="http://schema.org/LikeAction"/>
+              <meta itemprop="userInteractionCount" content="0" />
+              <span class='post-likes'></span>
+            </div>
+
+          </div>
+          <div id='post_20' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'>
+            <div class='crawler-post-meta'>
+              <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person">
+                <a itemprop="url" rel='nofollow' href='https://forum.posit.co/u/noelchiu'><span itemprop='name'>noelchiu</span></a>
+                
+              </span>
+
+
+                <link itemprop="image" href="https://forum.posit.co/uploads/default/original/2X/3/357344d73210bea9169da6bd83fc981fbdf20a95.png">
+
+              <span class="crawler-post-infos">
+                  <time itemprop='datePublished' datetime='2018-01-31T06:39:52Z' class='post-time'>
+                    January 31, 2018,  6:39am
+                  </time>
+                  <meta itemprop='dateModified' content='2018-01-31T06:39:52Z'>
+              <span itemprop='position'>20</span>
+              </span>
+            </div>
+            <div class='post' itemprop='text'>
+              <p>Hi, at first I couldn't load digest either, then I tried what you shared and it showed up. Could you please help me? I am new to R. Thank you so much.</p>
+<p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.posit.co/uploads/default/original/2X/3/357344d73210bea9169da6bd83fc981fbdf20a95.png" data-download-href="https://forum.posit.co/uploads/default/357344d73210bea9169da6bd83fc981fbdf20a95" title="20"><img src="https://forum.posit.co/uploads/default/optimized/2X/3/357344d73210bea9169da6bd83fc981fbdf20a95_2_690x431.png" alt="20" data-base62-sha1="7CQgDQKJKlrxRTHNXfXSAFHEIrb" width="690" height="431" srcset="https://forum.posit.co/uploads/default/optimized/2X/3/357344d73210bea9169da6bd83fc981fbdf20a95_2_690x431.png, https://forum.posit.co/uploads/default/optimized/2X/3/357344d73210bea9169da6bd83fc981fbdf20a95_2_1035x646.png 1.5x, https://forum.posit.co/uploads/default/optimized/2X/3/357344d73210bea9169da6bd83fc981fbdf20a95_2_1380x862.png 2x" data-dominant-color="EFEEEF"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">20</span><span class="informations">2560×1600 836 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></p>
+            </div>
+
+            <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter">
+              <meta itemprop="interactionType" content="http://schema.org/LikeAction"/>
+              <meta itemprop="userInteractionCount" content="0" />
+              <span class='post-likes'></span>
+            </div>
+
+          </div>
+    </div>
+
+      <div role='navigation' itemscope itemtype='http://schema.org/SiteNavigationElement' class="topic-body crawler-post">
+            <span itemprop='name'><b><a rel="next" itemprop="url" href="/t/information-for-the-intermediate-shiny-workshop/4596?page=2">next page →</a></b></span>
+      </div>
+
+    
+
+
+
+
+    </div>
+    <footer class="container wrap">
+  <nav class='crawler-nav'>
+    <ul>
+      <li itemscope itemtype='http://schema.org/SiteNavigationElement'>
+        <span itemprop='name'>
+          <a href='/' itemprop="url">Home </a>
+        </span>
+      </li>
+      <li itemscope itemtype='http://schema.org/SiteNavigationElement'>
+        <span itemprop='name'>
+          <a href='/categories' itemprop="url">Categories </a>
+        </span>
+      </li>
+      <li itemscope itemtype='http://schema.org/SiteNavigationElement'>
+        <span itemprop='name'>
+          <a href='/guidelines' itemprop="url">Guidelines </a>
+        </span>
+      </li>
+        <li itemscope itemtype='http://schema.org/SiteNavigationElement'>
+          <span itemprop='name'>
+            <a href='/tos' itemprop="url">Terms of Service </a>
+          </span>
+        </li>
+        <li itemscope itemtype='http://schema.org/SiteNavigationElement'>
+          <span itemprop='name'>
+            <a href='/privacy' itemprop="url">Privacy Policy </a>
+          </span>
+        </li>
+    </ul>
+  </nav>
+  <p class='powered-by-link'>Powered by <a href="https://www.discourse.org">Discourse</a>, best viewed with JavaScript enabled</p>
+</footer>
+
+    
+    
+  </body>
+  
+</html>
diff --git a/archive/techworks/items/oredev-2015/boot-poster.jpg b/archive/techworks/items/oredev-2015/boot-poster.jpg
new file mode 100644
index 0000000..b509b33
Binary files /dev/null and b/archive/techworks/items/oredev-2015/boot-poster.jpg differ
diff --git a/archive/techworks/items/oredev-2015/boot-vimeo.headers b/archive/techworks/items/oredev-2015/boot-vimeo.headers
new file mode 100644
index 0000000..6f73a79
--- /dev/null
+++ b/archive/techworks/items/oredev-2015/boot-vimeo.headers
@@ -0,0 +1,35 @@
+HTTP/2 200 
+date: Sun, 09 Aug 2026 20:15:40 GMT
+content-type: application/json
+content-length: 1112
+server: cloudflare
+access-control-allow-origin: *
+x-content-type-options: nosniff
+x-frame-options: sameorigin
+x-ratelimit-limit: 3600
+x-ratelimit-remaining: 3599
+x-ratelimit-reset: 1786310140
+content-disposition: attachment; filename=vimeo.json
+cache-control: max-age=60
+expires: Sun, 09 Aug 2026 20:16:40 GMT
+last-modified: Thu, 09 Nov 2023 23:16:40 GMT
+etag: "3de14173b405afbe9ec5d9e37c912512"
+x-ua-compatible: IE=edge
+x-xss-protection: 1; mode=block
+strict-transport-security: max-age=31536000; includeSubDomains; preload
+x-bapp-server: api-fb6dd578d-p9mrq
+x-backend-server: api-fb6dd578d-p9mrq
+content-encoding: gzip
+via: 1.1 varnish, 1.1 varnish
+accept-ranges: bytes
+age: 0
+x-served-by: cache-iad-kiad7000156-IAD, cache-lax-kwhp1940134-LAX
+x-cache: MISS, MISS
+x-cache-hits: 0, 0
+x-timer: S1786306541.842672,VS0,VE131
+vary: User-Agent, Accept-Encoding,x-http-method-override
+cf-cache-status: DYNAMIC
+set-cookie: __cf_bm=eoSjmoU1UEi8qv06W7c.GY_4OagZtRHBEO9ajtzOH3Q-1786306540.8364537-1.0.1.1-yuiy_SYB8JvaZgWYVzAyVZgIc2yoTUyXrlUmce0RvjOBMb3VA2Q3awpfIWC7in2smlaGar4Z20QiS3Tq29T5tWkzJMcg9leOFHwd2S2_6z0BF8SPwjAS7nrwx8IbRh7G; HttpOnly; SameSite=None; Secure; Path=/; Domain=vimeo.com; Expires=Sun, 09 Aug 2026 20:45:40 GMT
+cf-ray: a2896f283f3aed79-LAX
+alt-svc: h3=":443"; ma=86400
+
diff --git a/archive/techworks/items/oredev-2015/boot-vimeo.json b/archive/techworks/items/oredev-2015/boot-vimeo.json
new file mode 100644
index 0000000..b7d164d
--- /dev/null
+++ b/archive/techworks/items/oredev-2015/boot-vimeo.json
@@ -0,0 +1 @@
+[{"id":144997124,"title":"\u00d8redev 2015 - Alan Dipert - PROGRAMMABLE BUILDS WITH BOOT","description":"We rarely consider our builds as an area worthy of our own engineering attention. Our needs are usually met by the vast array of complex but \"standard\" tools. To the pragmatic engineer their complexity is a warning: don't try this yourself, it's too hard!<br \/>\r\n<br \/>\r\nWhat if it wasn't? What if the capabilities of computers and the affordances of modern languages invalidated the assumptions made by the \"standard\" tool authors a long time ago?<br \/>\r\n<br \/>\r\nThese are the questions we raise, and try to answer, with Boot: \"build tooling\" written in Clojure. Boot is an executable, a Clojure library, and a mental model that can be used to deconstruct, and solve programmatically, nearly any build scenario. Boot has abstractions for command-line DSLs, the filesystem, and the classpath that users can combine simply and on their own with small, concise Clojure programs.<br \/>\r\n<br \/>\r\nI will explain Boot's central concepts and demonstrate its use in a variety of build situations involving at least Java, JRuby, and Clojure.","url":"https:\/\/vimeo.com\/144997124","upload_date":"2015-11-07 15:10:02","thumbnail_small":"https:\/\/i.vimeocdn.com\/video\/543015878-45d427df5619926d42e12047519a4fff813667b6623e6dff2a409befa64143e5-d_100x75?region=us","thumbnail_medium":"https:\/\/i.vimeocdn.com\/video\/543015878-45d427df5619926d42e12047519a4fff813667b6623e6dff2a409befa64143e5-d_200x150?region=us","thumbnail_large":"https:\/\/i.vimeocdn.com\/video\/543015878-45d427df5619926d42e12047519a4fff813667b6623e6dff2a409befa64143e5-d_640?region=us","user_id":4280938,"user_name":"\u00d8redev Conference","user_url":"https:\/\/vimeo.com\/oredev","user_portrait_small":"https:\/\/i.vimeocdn.com\/portrait\/29182621_30x30?sig=3d921b6fe2902d20a9625626594e59b6de0ec6cd659f8c28df8cfba7c69ca1c2&v=1&region=us","user_portrait_medium":"https:\/\/i.vimeocdn.com\/portrait\/29182621_75x75?sig=3d921b6fe2902d20a9625626594e59b6de0ec6cd659f8c28df8cfba7c69ca1c2&v=1&region=us","user_portrait_large":"https:\/\/i.vimeocdn.com\/portrait\/29182621_100x100?sig=3d921b6fe2902d20a9625626594e59b6de0ec6cd659f8c28df8cfba7c69ca1c2&v=1&region=us","user_portrait_huge":"https:\/\/i.vimeocdn.com\/portrait\/29182621_300x300?sig=3d921b6fe2902d20a9625626594e59b6de0ec6cd659f8c28df8cfba7c69ca1c2&v=1&region=us","stats_number_of_likes":0,"stats_number_of_plays":98,"stats_number_of_comments":0,"duration":2422,"width":1280,"height":720,"tags":"Alan Dipert","embed_privacy":"anywhere"}]
\ No newline at end of file
diff --git a/archive/techworks/items/oredev-2015/boot.headers b/archive/techworks/items/oredev-2015/boot.headers
new file mode 100644
index 0000000..40fa2c8
--- /dev/null
+++ b/archive/techworks/items/oredev-2015/boot.headers
@@ -0,0 +1,14 @@
+HTTP/2 200 
+accept-ranges: bytes
+age: 2
+cache-control: public,max-age=0,must-revalidate
+cache-status: "Netlify Edge"; fwd=miss; fwd-status=200; stored
+content-encoding: br
+content-type: text/html; charset=UTF-8
+date: Sun, 09 Aug 2026 20:15:21 GMT
+etag: "132dbe71b3844b4b0e63a4190bd85fb2-ssl-df"
+server: Netlify
+strict-transport-security: max-age=31536000
+vary: Accept-Encoding
+x-nf-request-id: 01KZM2MSPJ0ES1TKDG0RW1K5BQ
+
diff --git a/archive/techworks/items/oredev-2015/boot.html b/archive/techworks/items/oredev-2015/boot.html
new file mode 100644
index 0000000..abbe364
--- /dev/null
+++ b/archive/techworks/items/oredev-2015/boot.html
@@ -0,0 +1,237 @@
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="iso-8859-1">
+        <title>Sessions - &Oslash;redev 2015</title>
+        <link rel="shortcut icon" href="../../favicon.ico" type="image/x-icon" />
+
+        <meta property="og:title" content="&Oslash;redev 2015 session: Programmable Builds with Boot"/>
+<meta property="og:type" content="article"/>
+<meta property="og:image" content="http://oredev.org/2015/SpeakerPics/alan-dipert.jpg"/>
+<meta property="og:site_name" content="&Oslash;redev"/>
+<meta property="og:url" content="http://oredev.org/2015/sessions/programmable-builds-with-boot"/>
+<meta property="fb:admins" content="763245241"/>
+<meta property="og:email" content="info@oredev.org"/>
+<meta property="og:phone_number" content="+46 40 - 602 31 03"/>
+<meta property="og:street-address" content="Hans Michelsensgatan 10"/>
+<meta property="og:postal-code" content="211 20"/>
+<meta property="og:locality" content="Malm\xf6"/>
+<meta property="og:country-name" content="Sweden"/>
+<meta name="twitter:card" content="summary"/>
+<meta name="twitter:url" content="http://oredev.org/2015/sessions/programmable-builds-with-boot"/>
+<meta name="twitter:title" content="&Oslash;redev 2015 session: Programmable Builds with Boot"/>
+<meta name="twitter:description" content="&Oslash;redev Developer Conference 3-6 Nov 2015, Malm\xf6, Sweden. \xd8redev is the Premier developer's conference in Europe, focused on the whole software development process."/>
+<meta name="twitter:image" content="http://oredev.org/2015/SpeakerPics/alan-dipert.jpg"/>
+        <!-- Mobile & web app tags -->
+        <meta name="viewport" content="width=device-width,initial-scale=1">
+        
+        <!-- Stylesheets -->
+        <!--link rel="stylesheet" href="/oredev2015/gui/css/oredev-2013_test.min.css"-->
+        <link rel="stylesheet" href="../../oredev2015/gui/css/basic.css">
+        <link rel="stylesheet" href="../../oredev2015/gui/css/fonts.css">
+        <!--link rel="stylesheet" href="/oredev2015/gui/css/ie.css"-->
+        <link rel="stylesheet" href="../../oredev2015/gui/css/main.css">
+        <!--link rel="stylesheet" href="/oredev2015/gui/css/print.css"-->
+
+        <!--[if lt IE 9]><link rel="stylesheet" href="/oredev2015/gui/css/ie.css" type="text/css" media="screen" /><![endif]-->
+        <!--[if lte IE 9]>
+        <script type="text/javascript" src="/oredev2015/gui/js/matchMedia.js"></script>
+        <script type="text/javascript" src="/oredev2015/gui/js/matchMedia.addListener.js"></script>
+        <![endif]-->
+    </head>
+    <body>
+        <div class="body">
+            
+<div class="top">
+   <a href='/2015/2015'><img src="../../oredev2015/img/logo_oredev.png"></a>
+<form id="Search" action="javascript:searchFree('searchField')" class="main-search-form">
+    <button onClick="searchFree('searchField')" type="submit"><i class="icon-search"></i><span class="struct">Search</span></button>
+    <label for="main-searchtext" class="struct">Search</label>
+    <input type="text" name="searchField" id="searchField" placeholder="Search">
+</form><button onclick="$('.main-search-form-mobile').toggleClass('show', 500); return false;" type="button" class="show-search-button"><i class="icon-search"></i><span class="struct">Search</span></button>
+</div>
+
+
+            <!-- end main-head -->
+            
+
+<div class="theme-image session">
+    <div class="theme-top">
+        <div class="menu"><a href="#" class="icon-menu" onclick="$('.nav-main').toggle(500); return false;"></a><div class="nav-main cf" role="navigation">
+	<ul>
+		<!--li><a href="/" class="">2014</a></li-->
+<li><a class='registration' href='/2015/2015/registration'>Registration</a></li>
+<li><a class href='/2015/2015/speakers'>Speakers</a></li>
+<li><a class='sessions sel' href='/2015/2015/sessions'>Sessions</a></li>
+<li><a class href='/2015/2015/security-day'>Security Day</a></li>
+<li><a class='schedule' href='/2015/2015/schedule'>Schedule</a></li>
+<li><a class href='/2015/2015/faq'>FAQ</a></li>
+	</ul>
+</div></div><form id="SearchMobile" action="javascript:searchFree('searchFieldMobile')" class="main-search-form-mobile">
+    <button onClick="searchFree('searchFieldMobile')" type="submit"><i class="icon-search"></i><span class="struct">Search</span></button>
+    <label for="main-searchtext" class="struct">Search</label>
+    <input class="search-field-mobile" type="text" name="searchField" id="searchFieldMobile" placeholder="Search">
+</form><h1 class="message">
+            <span>Developer conference</span><span>3-6 November</span><span>Malm\xf6 Sweden</span>
+        </h1>
+    </div>
+    <div class="inner-body">
+        <div class="main-headings top">
+            <h1>Sessions - &Oslash;redev 2015</h1>
+        </div>
+    </div>
+</div>
+        <div class="main sessions cf">
+            
+            <div class="inner-body">
+                         
+        <div class="session-list">
+            <h2>FRI</h2>
+            <div class="session-item active cf">
+                <h2 class="time-slot">15.40 - 16.20</h2>
+                <div class="session-info">
+                    <a href="#" class="btn add-to-schedule" data="6E0A895CEB56586CC1257E190017D52E">
+                        <i class="icon-calendar"></i>
+                    </a>
+                    <h3 class="session-name">
+                        Programmable Builds with Boot
+                    </h3>
+                    <div class="session-level">Level: Intermediate</div>
+                    <p>We rarely consider our builds as an area worthy of our own engineering attention.  Our needs are usually met by the vast array of complex but "standard" tools.  To the pragmatic engineer their complexity is a warning: don't try this yourself, it's too hard!</p><p>What if it wasn't?  What if the capabilities of computers and the affordances of modern languages invalidated the assumptions made by the "standard" tool authors a long time ago?</p><p>These are the questions we raise, and try to answer, with Boot: "build tooling" written in Clojure.  Boot is an executable, a Clojure library, and a mental model that can be used to deconstruct, and solve programmatically, nearly any build scenario.  Boot has abstractions for command-line DSLs, the filesystem, and the classpath that users can combine simply and on their own with small, concise Clojure programs.</p><p>I will explain Boot's central concepts and demonstrate its use in a variety of build situations involving at least Java, JRuby, and Clojure.</p><iframe src="http://player.vimeo.com/video/144997124?badge=0" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe><div class="other-sessions"><h3>Other sessions - Alan Dipert</h3><ul><li><a href="#" class="btn add-to-schedule" data="8597844823BDC149C1257E19001C4E2D"><i class="icon-calendar"></i></a> <a href='/2015/2015/sessions/hoplon-a-simpler-way-to-program-the-web'>Hoplon: A Simpler Way to Program the Web</a></li></ul></div>
+                </div>
+                <div class="session-speaker"><h3><a href='/2015/2015/speakers/alan-dipert'>Alan Dipert</a></h3><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/SpeakerPics/alan-dipert.jpg" alt="Alan Dipert" title="Alan Dipert"></div>
+            </div>
+        </div>
+            </div>
+        </div>    
+
+            <!-- end main -->
+                    <div class="sponsors cf">
+                <div class="inner-body main-headings">
+                    <h1>Partners</h1>
+                    <div class="partner-50">
+                        <a class="gold" href="http://www.microsoft.com/sv-se" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_microsoft.png" class="gold"></a>
+                    </div><div class="partner-50">
+                        <a class="gold" href="http://www.webstep.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_webstep.png" class="gold"></a>
+                    </div><div class="partner-100">
+                        <div class="partner-25">
+                            <a class="silver" href="http://ravendb.net/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_ravendb.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.ipeer.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_ipeer.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.malmoopera.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_malmo-opera.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.malmo.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_malmo.png" class="silver"></a>
+                        </div>
+                    </div>
+                    <div class="partner-100">
+                        <div class="partner-25">
+                            <a class="silver" href="http://www.datormagazin.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_dator.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://kodsnack.se" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_kodsnack.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.oreilly.com/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_oreilly.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.truesec.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_truesec.png" class="silver"></a>
+                        </div>
+                    </div>
+                    <div class="partner-100">
+                        <div class="partner-25">
+                            <a class="silver" href="http://informator.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_informator.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="https://www.facebook.com/groups/utvecklare.stockholm/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_kodapor.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://enablingthefuture.org" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_e-nable.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.46elks.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_46elks.png" class="silver"></a>
+                        </div>
+                    </div>
+                    <div class="partner-100">
+                        <div class="partner-25">
+                            <a class="silver" href="https://www.se.capgemini.com/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_capgemini.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.pixelkafe.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_pixelcafe.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://edument.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_edument.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.avegagroup.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_avegagroup.png" class="silver"></a>
+                        </div>
+                    </div>
+                    <div class="partner-100">
+                        <div class="partner-25">
+                            <a class="silver" href="http://bouvet.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_bouvet.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://justtype.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_justtype.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.softhouse.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_softhouse.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.bredband2.com/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_bb2.png" class="silver"></a>
+                        </div>
+                    </div>
+                     <h1>Best companies</h1>
+                    <div class="partner-100">
+                        <div class="partner-25">
+                            <a class="silver" href="https://www.mobenga.com/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_mobenga.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.telavox.com/en/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_telavox.png" class="gold"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.infomaker.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_Infomaker.gif" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://global.qlik.com/se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_qlik.gif" class="silver"></a>
+                        </div>
+                    </div>
+                    <div class="partner-100">
+                        <div class="partner-25">
+                            <a class="silver" href="https://www.4cstrategies.com/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_4cstrategies.gif" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="https://www.signicat.com/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_signicat.gif" class="gold"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.tactel.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_tactel.gif" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_no.png" class="silver"></a>
+                        </div>
+                    </div>
+                </div>
+        </div>
+            <div class="footer cf" role="contentinfo">
+                <div class="inner-body">
+                    <a href='/2015/2015/about-oredev'>About \xd8redev</a> - <a href='/2015/2015/partnership'>Partnership</a> - <a href='/2015/2015/archives'>Archive</a>
+                    <div class="contact-info cf">
+                        Telephone: +46 (0)40-602 31 03 - 
+                        Fax: +46 (0)40-127276 - 
+                        E-mail: <a href="mailto:info@oredev.org">info@oredev.org</a>
+                    </div>
+
+                </div>
+                <!-- end footer-body -->
+            </div>
+            <div class="jayway-founder">
+                <div class="inner-body main-headings">
+                    
+                    <a href="http://www.jayway.com"><img src="../../oredev2015/img/jayway-logo.png" alt="Jayway"></a>
+                    <p>\xd8REDEV was founded in 2005 by Jayway, a company comprised of and focused on specialists within IT. \xd8redev inherited this company's vision and philosophy.</p>
+                </div>
+            </div>
+            <!-- end footer -->
+        </div>
+        <!-- end body -->
+        <!-- JavaScript -->
+        <!--script type="text/javascript" src="/oredev2015/gui/js/oredev-2013_test-minified.js"></script-->
+        <script type="text/javascript" src="../../oredev2015/gui/js/jquery-1.9.1.min.js"></script>
+        <!--script type="text/javascript" src="/oredev2015/gui/js/common.js"></script-->
+        <script type="text/javascript" src="../../oredev2015/gui/js/schedule.js"></script>
+        <script type="text/javascript" src="../../oredev2015/gui/js/purl.js"></script>
+        <script type="text/javascript" src="../../oredev2015/gui/js/jquery.cookie.js"></script>   
+        <script type="text/javascript" src="../../oredev2015/gui/js/enquire.js"></script>
+        <script>
+                  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+                  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+                  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+                  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+                ga('create', 'UA-4553495-1', 'auto');
+                ga('send', 'pageview');
+
+        </script>
+    </body>
+</html>
diff --git a/archive/techworks/items/oredev-2015/hoplon-poster.jpg b/archive/techworks/items/oredev-2015/hoplon-poster.jpg
new file mode 100644
index 0000000..3b2ec4a
Binary files /dev/null and b/archive/techworks/items/oredev-2015/hoplon-poster.jpg differ
diff --git a/archive/techworks/items/oredev-2015/hoplon-vimeo.headers b/archive/techworks/items/oredev-2015/hoplon-vimeo.headers
new file mode 100644
index 0000000..c132de1
--- /dev/null
+++ b/archive/techworks/items/oredev-2015/hoplon-vimeo.headers
@@ -0,0 +1,35 @@
+HTTP/2 200 
+date: Sun, 09 Aug 2026 20:15:41 GMT
+content-type: application/json
+content-length: 1086
+server: cloudflare
+access-control-allow-origin: *
+x-content-type-options: nosniff
+x-frame-options: sameorigin
+x-ratelimit-limit: 3600
+x-ratelimit-remaining: 3598
+x-ratelimit-reset: 1786310140
+content-disposition: attachment; filename=vimeo.json
+cache-control: max-age=60
+expires: Sun, 09 Aug 2026 20:16:41 GMT
+last-modified: Tue, 24 Mar 2026 01:48:21 GMT
+etag: "12c1d3e3c42112cf022109c4cd44e6cd"
+x-ua-compatible: IE=edge
+x-xss-protection: 1; mode=block
+strict-transport-security: max-age=31536000; includeSubDomains; preload
+x-bapp-server: api-fb6dd578d-8zw8l
+x-backend-server: api-fb6dd578d-8zw8l
+content-encoding: gzip
+via: 1.1 varnish, 1.1 varnish
+accept-ranges: bytes
+age: 0
+x-served-by: cache-iad-khef600046-IAD, cache-lax-kwhp1940143-LAX
+x-cache: MISS, MISS
+x-cache-hits: 0, 0
+x-timer: S1786306541.036613,VS0,VE151
+vary: User-Agent, Accept-Encoding,x-http-method-override
+cf-cache-status: DYNAMIC
+set-cookie: __cf_bm=1UMzpLXjVv4w8cqr__WzJWQk5a9AREPxCn_uIXXH.7Q-1786306541.0311432-1.0.1.1-7OLDYhcGotmSiDz8CRIymqsu_zZ4p7ZWZbNiS.yEp2xEtEtTp7KiThQ6.9IDlXCL1DgVc9g5iU4j59tG.dgIUolLEgfSTtRgWFyERR5uqrAJhxEcjIyyPdzuI.Y4CP80; HttpOnly; SameSite=None; Secure; Path=/; Domain=vimeo.com; Expires=Sun, 09 Aug 2026 20:45:41 GMT
+cf-ray: a2896f297fa4f7dd-LAX
+alt-svc: h3=":443"; ma=86400
+
diff --git a/archive/techworks/items/oredev-2015/hoplon-vimeo.json b/archive/techworks/items/oredev-2015/hoplon-vimeo.json
new file mode 100644
index 0000000..5dfef3d
--- /dev/null
+++ b/archive/techworks/items/oredev-2015/hoplon-vimeo.json
@@ -0,0 +1 @@
+[{"id":144696304,"title":"\u00d8redev 2015 - Alan Dipert - HOPLON: A SIMPLER WAY TO PROGRAM THE WEB","description":"HTML appeared in 1991 as a format for distributing scientific documents. JavaScript appeared in 1995 as a way to dynamically manipulate HTML. Since then, HTML and JavaScript have evolved into a capable and universal computing platform.<br \/>\r\n<br \/>\r\nBut it's also one of the most complex. Why?<br \/>\r\n<br \/>\r\nHTML was not designed in anticipation of JavaScript, and JavaScript was not designed in anticipation of Ajax. Framework authors since the 90s have exhausted nearly every paradigm, from MVC to FRP, to fuse HTML and JavaScript into a coherent platform.<br \/>\r\n<br \/>\r\nHoplon proposes a different way to fuse them: by making them both different syntaxes for the same programming language, ClojureScript. In the Hoplon model, HTML elements are just functions and vice versa. Elements are created and composed functionally, and their states are coordinated with an abstract spreadsheet.<br \/>\r\n<br \/>\r\nI'll explain Hoplon's core concepts and show, with code examples, how new degrees of concision and composition can be achieved using Hoplon.","url":"https:\/\/vimeo.com\/144696304","upload_date":"2015-11-04 19:31:01","thumbnail_small":"https:\/\/i.vimeocdn.com\/video\/542640978-c0f6b0a90da43084c4165af3ea19f5a5a5283408dc999905abf2d563226717b8-d_100x75?region=us","thumbnail_medium":"https:\/\/i.vimeocdn.com\/video\/542640978-c0f6b0a90da43084c4165af3ea19f5a5a5283408dc999905abf2d563226717b8-d_200x150?region=us","thumbnail_large":"https:\/\/i.vimeocdn.com\/video\/542640978-c0f6b0a90da43084c4165af3ea19f5a5a5283408dc999905abf2d563226717b8-d_640?region=us","user_id":4280938,"user_name":"\u00d8redev Conference","user_url":"https:\/\/vimeo.com\/oredev","user_portrait_small":"https:\/\/i.vimeocdn.com\/portrait\/29182621_30x30?sig=3d921b6fe2902d20a9625626594e59b6de0ec6cd659f8c28df8cfba7c69ca1c2&v=1&region=us","user_portrait_medium":"https:\/\/i.vimeocdn.com\/portrait\/29182621_75x75?sig=3d921b6fe2902d20a9625626594e59b6de0ec6cd659f8c28df8cfba7c69ca1c2&v=1&region=us","user_portrait_large":"https:\/\/i.vimeocdn.com\/portrait\/29182621_100x100?sig=3d921b6fe2902d20a9625626594e59b6de0ec6cd659f8c28df8cfba7c69ca1c2&v=1&region=us","user_portrait_huge":"https:\/\/i.vimeocdn.com\/portrait\/29182621_300x300?sig=3d921b6fe2902d20a9625626594e59b6de0ec6cd659f8c28df8cfba7c69ca1c2&v=1&region=us","stats_number_of_likes":3,"stats_number_of_plays":237,"stats_number_of_comments":0,"duration":2406,"width":1280,"height":720,"tags":"Alan Dipert","embed_privacy":"anywhere"}]
\ No newline at end of file
diff --git a/archive/techworks/items/oredev-2015/hoplon.headers b/archive/techworks/items/oredev-2015/hoplon.headers
new file mode 100644
index 0000000..cb31dd5
--- /dev/null
+++ b/archive/techworks/items/oredev-2015/hoplon.headers
@@ -0,0 +1,14 @@
+HTTP/2 200 
+accept-ranges: bytes
+age: 0
+cache-control: public,max-age=0,must-revalidate
+cache-status: "Netlify Edge"; fwd=miss; fwd-status=200; stored
+content-encoding: br
+content-type: text/html; charset=UTF-8
+date: Sun, 09 Aug 2026 20:15:21 GMT
+etag: "820505d7b1d1de3d2a6921b39474c207-ssl-df"
+server: Netlify
+strict-transport-security: max-age=31536000
+vary: Accept-Encoding
+x-nf-request-id: 01KZM2MT1W7TXAAKCXJB96TXZV
+
diff --git a/archive/techworks/items/oredev-2015/hoplon.html b/archive/techworks/items/oredev-2015/hoplon.html
new file mode 100644
index 0000000..f94b41d
--- /dev/null
+++ b/archive/techworks/items/oredev-2015/hoplon.html
@@ -0,0 +1,237 @@
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="iso-8859-1">
+        <title>Sessions - &Oslash;redev 2015</title>
+        <link rel="shortcut icon" href="../../favicon.ico" type="image/x-icon" />
+
+        <meta property="og:title" content="&Oslash;redev 2015 session: Hoplon: A Simpler Way to Program the Web"/>
+<meta property="og:type" content="article"/>
+<meta property="og:image" content="http://oredev.org/2015/SpeakerPics/alan-dipert.jpg"/>
+<meta property="og:site_name" content="&Oslash;redev"/>
+<meta property="og:url" content="http://oredev.org/2015/sessions/hoplon-a-simpler-way-to-program-the-web"/>
+<meta property="fb:admins" content="763245241"/>
+<meta property="og:email" content="info@oredev.org"/>
+<meta property="og:phone_number" content="+46 40 - 602 31 03"/>
+<meta property="og:street-address" content="Hans Michelsensgatan 10"/>
+<meta property="og:postal-code" content="211 20"/>
+<meta property="og:locality" content="Malm\xf6"/>
+<meta property="og:country-name" content="Sweden"/>
+<meta name="twitter:card" content="summary"/>
+<meta name="twitter:url" content="http://oredev.org/2015/sessions/hoplon-a-simpler-way-to-program-the-web"/>
+<meta name="twitter:title" content="&Oslash;redev 2015 session: Hoplon: A Simpler Way to Program the Web"/>
+<meta name="twitter:description" content="&Oslash;redev Developer Conference 3-6 Nov 2015, Malm\xf6, Sweden. \xd8redev is the Premier developer's conference in Europe, focused on the whole software development process."/>
+<meta name="twitter:image" content="http://oredev.org/2015/SpeakerPics/alan-dipert.jpg"/>
+        <!-- Mobile & web app tags -->
+        <meta name="viewport" content="width=device-width,initial-scale=1">
+        
+        <!-- Stylesheets -->
+        <!--link rel="stylesheet" href="/oredev2015/gui/css/oredev-2013_test.min.css"-->
+        <link rel="stylesheet" href="../../oredev2015/gui/css/basic.css">
+        <link rel="stylesheet" href="../../oredev2015/gui/css/fonts.css">
+        <!--link rel="stylesheet" href="/oredev2015/gui/css/ie.css"-->
+        <link rel="stylesheet" href="../../oredev2015/gui/css/main.css">
+        <!--link rel="stylesheet" href="/oredev2015/gui/css/print.css"-->
+
+        <!--[if lt IE 9]><link rel="stylesheet" href="/oredev2015/gui/css/ie.css" type="text/css" media="screen" /><![endif]-->
+        <!--[if lte IE 9]>
+        <script type="text/javascript" src="/oredev2015/gui/js/matchMedia.js"></script>
+        <script type="text/javascript" src="/oredev2015/gui/js/matchMedia.addListener.js"></script>
+        <![endif]-->
+    </head>
+    <body>
+        <div class="body">
+            
+<div class="top">
+   <a href='/2015/2015'><img src="../../oredev2015/img/logo_oredev.png"></a>
+<form id="Search" action="javascript:searchFree('searchField')" class="main-search-form">
+    <button onClick="searchFree('searchField')" type="submit"><i class="icon-search"></i><span class="struct">Search</span></button>
+    <label for="main-searchtext" class="struct">Search</label>
+    <input type="text" name="searchField" id="searchField" placeholder="Search">
+</form><button onclick="$('.main-search-form-mobile').toggleClass('show', 500); return false;" type="button" class="show-search-button"><i class="icon-search"></i><span class="struct">Search</span></button>
+</div>
+
+
+            <!-- end main-head -->
+            
+
+<div class="theme-image session">
+    <div class="theme-top">
+        <div class="menu"><a href="#" class="icon-menu" onclick="$('.nav-main').toggle(500); return false;"></a><div class="nav-main cf" role="navigation">
+	<ul>
+		<!--li><a href="/" class="">2014</a></li-->
+<li><a class='registration' href='/2015/2015/registration'>Registration</a></li>
+<li><a class href='/2015/2015/speakers'>Speakers</a></li>
+<li><a class='sessions sel' href='/2015/2015/sessions'>Sessions</a></li>
+<li><a class href='/2015/2015/security-day'>Security Day</a></li>
+<li><a class='schedule' href='/2015/2015/schedule'>Schedule</a></li>
+<li><a class href='/2015/2015/faq'>FAQ</a></li>
+	</ul>
+</div></div><form id="SearchMobile" action="javascript:searchFree('searchFieldMobile')" class="main-search-form-mobile">
+    <button onClick="searchFree('searchFieldMobile')" type="submit"><i class="icon-search"></i><span class="struct">Search</span></button>
+    <label for="main-searchtext" class="struct">Search</label>
+    <input class="search-field-mobile" type="text" name="searchField" id="searchFieldMobile" placeholder="Search">
+</form><h1 class="message">
+            <span>Developer conference</span><span>3-6 November</span><span>Malm\xf6 Sweden</span>
+        </h1>
+    </div>
+    <div class="inner-body">
+        <div class="main-headings top">
+            <h1>Sessions - &Oslash;redev 2015</h1>
+        </div>
+    </div>
+</div>
+        <div class="main sessions cf">
+            
+            <div class="inner-body">
+                         
+        <div class="session-list">
+            <h2>WED</h2>
+            <div class="session-item active cf">
+                <h2 class="time-slot">11.20 - 12.00</h2>
+                <div class="session-info">
+                    <a href="#" class="btn add-to-schedule" data="8597844823BDC149C1257E19001C4E2D">
+                        <i class="icon-calendar"></i>
+                    </a>
+                    <h3 class="session-name">
+                        Hoplon: A Simpler Way to Program the Web
+                    </h3>
+                    <div class="session-level">Level: Advanced</div>
+                    <p>HTML appeared in 1991 as a format for distributing scientific documents.  JavaScript appeared in 1995 as a way to dynamically manipulate HTML.  Since then, HTML and JavaScript have evolved into a capable and universal computing platform.</p><p>But it's also one of the most complex.  Why?</p><p>HTML was not designed in anticipation of JavaScript, and JavaScript was not designed in anticipation of Ajax.  Framework authors since the 90s have exhausted nearly every paradigm, from MVC to FRP, to fuse HTML and JavaScript into a coherent platform.</p><p>Hoplon proposes a different way to fuse them: by making them both different syntaxes for the same programming language, ClojureScript.  In the Hoplon model, HTML elements are just functions and vice versa.  Elements are created and composed functionally, and their states are coordinated with an abstract spreadsheet.</p><p>I'll explain Hoplon's core concepts and show, with code examples, how new degrees of concision and composition can be achieved using Hoplon.</p><iframe src="http://player.vimeo.com/video/144696304?badge=0" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe><div class="other-sessions"><h3>Other sessions - Alan Dipert</h3><ul><li><a href="#" class="btn add-to-schedule" data="6E0A895CEB56586CC1257E190017D52E"><i class="icon-calendar"></i></a> <a href='/2015/2015/sessions/programmable-builds-with-boot'>Programmable Builds with Boot</a></li></ul></div>
+                </div>
+                <div class="session-speaker"><h3><a href='/2015/2015/speakers/alan-dipert'>Alan Dipert</a></h3><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/SpeakerPics/alan-dipert.jpg" alt="Alan Dipert" title="Alan Dipert"></div>
+            </div>
+        </div>
+            </div>
+        </div>    
+
+            <!-- end main -->
+                    <div class="sponsors cf">
+                <div class="inner-body main-headings">
+                    <h1>Partners</h1>
+                    <div class="partner-50">
+                        <a class="gold" href="http://www.microsoft.com/sv-se" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_microsoft.png" class="gold"></a>
+                    </div><div class="partner-50">
+                        <a class="gold" href="http://www.webstep.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_webstep.png" class="gold"></a>
+                    </div><div class="partner-100">
+                        <div class="partner-25">
+                            <a class="silver" href="http://ravendb.net/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_ravendb.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.ipeer.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_ipeer.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.malmoopera.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_malmo-opera.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.malmo.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_malmo.png" class="silver"></a>
+                        </div>
+                    </div>
+                    <div class="partner-100">
+                        <div class="partner-25">
+                            <a class="silver" href="http://www.datormagazin.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_dator.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://kodsnack.se" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_kodsnack.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.oreilly.com/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_oreilly.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.truesec.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_truesec.png" class="silver"></a>
+                        </div>
+                    </div>
+                    <div class="partner-100">
+                        <div class="partner-25">
+                            <a class="silver" href="http://informator.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_informator.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="https://www.facebook.com/groups/utvecklare.stockholm/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_kodapor.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://enablingthefuture.org" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_e-nable.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.46elks.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_46elks.png" class="silver"></a>
+                        </div>
+                    </div>
+                    <div class="partner-100">
+                        <div class="partner-25">
+                            <a class="silver" href="https://www.se.capgemini.com/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_capgemini.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.pixelkafe.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_pixelcafe.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://edument.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_edument.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.avegagroup.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_avegagroup.png" class="silver"></a>
+                        </div>
+                    </div>
+                    <div class="partner-100">
+                        <div class="partner-25">
+                            <a class="silver" href="http://bouvet.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_bouvet.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://justtype.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_justtype.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.softhouse.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_softhouse.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.bredband2.com/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_bb2.png" class="silver"></a>
+                        </div>
+                    </div>
+                     <h1>Best companies</h1>
+                    <div class="partner-100">
+                        <div class="partner-25">
+                            <a class="silver" href="https://www.mobenga.com/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_mobenga.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.telavox.com/en/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_telavox.png" class="gold"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.infomaker.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_Infomaker.gif" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://global.qlik.com/se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_qlik.gif" class="silver"></a>
+                        </div>
+                    </div>
+                    <div class="partner-100">
+                        <div class="partner-25">
+                            <a class="silver" href="https://www.4cstrategies.com/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_4cstrategies.gif" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="https://www.signicat.com/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_signicat.gif" class="gold"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.tactel.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_tactel.gif" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_no.png" class="silver"></a>
+                        </div>
+                    </div>
+                </div>
+        </div>
+            <div class="footer cf" role="contentinfo">
+                <div class="inner-body">
+                    <a href='/2015/2015/about-oredev'>About \xd8redev</a> - <a href='/2015/2015/partnership'>Partnership</a> - <a href='/2015/2015/archives'>Archive</a>
+                    <div class="contact-info cf">
+                        Telephone: +46 (0)40-602 31 03 - 
+                        Fax: +46 (0)40-127276 - 
+                        E-mail: <a href="mailto:info@oredev.org">info@oredev.org</a>
+                    </div>
+
+                </div>
+                <!-- end footer-body -->
+            </div>
+            <div class="jayway-founder">
+                <div class="inner-body main-headings">
+                    
+                    <a href="http://www.jayway.com"><img src="../../oredev2015/img/jayway-logo.png" alt="Jayway"></a>
+                    <p>\xd8REDEV was founded in 2005 by Jayway, a company comprised of and focused on specialists within IT. \xd8redev inherited this company's vision and philosophy.</p>
+                </div>
+            </div>
+            <!-- end footer -->
+        </div>
+        <!-- end body -->
+        <!-- JavaScript -->
+        <!--script type="text/javascript" src="/oredev2015/gui/js/oredev-2013_test-minified.js"></script-->
+        <script type="text/javascript" src="../../oredev2015/gui/js/jquery-1.9.1.min.js"></script>
+        <!--script type="text/javascript" src="/oredev2015/gui/js/common.js"></script-->
+        <script type="text/javascript" src="../../oredev2015/gui/js/schedule.js"></script>
+        <script type="text/javascript" src="../../oredev2015/gui/js/purl.js"></script>
+        <script type="text/javascript" src="../../oredev2015/gui/js/jquery.cookie.js"></script>   
+        <script type="text/javascript" src="../../oredev2015/gui/js/enquire.js"></script>
+        <script>
+                  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+                  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+                  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+                  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+                ga('create', 'UA-4553495-1', 'auto');
+                ga('send', 'pageview');
+
+        </script>
+    </body>
+</html>
diff --git a/archive/techworks/items/oredev-2015/speaker.headers b/archive/techworks/items/oredev-2015/speaker.headers
new file mode 100644
index 0000000..2d58166
--- /dev/null
+++ b/archive/techworks/items/oredev-2015/speaker.headers
@@ -0,0 +1,14 @@
+HTTP/2 200 
+accept-ranges: bytes
+age: 0
+cache-control: public,max-age=0,must-revalidate
+cache-status: "Netlify Edge"; fwd=miss; fwd-status=200; stored
+content-encoding: br
+content-type: text/html; charset=UTF-8
+date: Sun, 09 Aug 2026 20:15:11 GMT
+etag: "c7a95773582664e2e94cb172fabdf42c-ssl-df"
+server: Netlify
+strict-transport-security: max-age=31536000
+vary: Accept-Encoding
+x-nf-request-id: 01KZM2MG50X9ZHD5VFZR3YSRJH
+
diff --git a/archive/techworks/items/oredev-2015/speaker.html b/archive/techworks/items/oredev-2015/speaker.html
new file mode 100644
index 0000000..1027a19
--- /dev/null
+++ b/archive/techworks/items/oredev-2015/speaker.html
@@ -0,0 +1,223 @@
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="iso-8859-1">
+        <title>Alan Dipert at &Oslash;redev 2015</title>
+        <link rel="shortcut icon" href="../../favicon.ico" type="image/x-icon" />
+
+        <meta property="og:title" content="Alan Dipert, a speaker at &Oslash;redev 2015"/>
+<meta property="og:type" content="article"/>
+<meta property="og:image" content="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/SpeakerPics/alan-dipert.jpg"/>
+<meta property="og:site_name" content="&Oslash;redev"/>
+<meta property="og:url" content="http://oredev.org/2015/speakers/alan-dipert"/>
+<meta property="fb:admins" content="763245241"/>
+<meta property="og:email" content="info@oredev.org"/>
+<meta property="og:phone_number" content="+46 40 - 602 31 03"/>
+<meta property="og:street-address" content="Hans Michelsensgatan 10"/>
+<meta property="og:postal-code" content="211 20"/>
+<meta property="og:locality" content="Malm\xf6"/>
+<meta property="og:country-name" content="Sweden"/>
+<meta name="twitter:card" content="summary"/>
+<meta name="twitter:url" content="http://oredev.org/2015/speakers/alan-dipert"/>
+<meta name="twitter:title" content="Alan Dipert, a speaker at &Oslash;redev 2015"/>
+<meta name="twitter:description" content="&Oslash;redev Developer Conference 3-6 Nov 2015, Malm\xf6, Sweden. \xd8redev is the Premier developer's conference in Europe, focused on the whole software development process."/>
+<meta name="twitter:image" content="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/SpeakerPics/alan-dipert.jpg"/>
+        <!-- Mobile & web app tags -->
+        <meta name="viewport" content="width=device-width,initial-scale=1">
+        
+        <!-- Stylesheets -->
+        <!--link rel="stylesheet" href="/oredev2015/gui/css/oredev-2013_test.min.css"-->
+        <link rel="stylesheet" href="../../oredev2015/gui/css/basic.css">
+        <link rel="stylesheet" href="../../oredev2015/gui/css/fonts.css">
+        <!--link rel="stylesheet" href="/oredev2015/gui/css/ie.css"-->
+        <link rel="stylesheet" href="../../oredev2015/gui/css/main.css">
+        <!--link rel="stylesheet" href="/oredev2015/gui/css/print.css"-->
+
+        <!--[if lt IE 9]><link rel="stylesheet" href="/oredev2015/gui/css/ie.css" type="text/css" media="screen" /><![endif]-->
+        <!--[if lte IE 9]>
+        <script type="text/javascript" src="/oredev2015/gui/js/matchMedia.js"></script>
+        <script type="text/javascript" src="/oredev2015/gui/js/matchMedia.addListener.js"></script>
+        <![endif]-->
+    </head>
+    <body>
+        <div class="body">
+            
+<div class="top">
+   <a href='/2015/2015'><img src="../../oredev2015/img/logo_oredev.png"></a>
+<form id="Search" action="javascript:searchFree('searchField')" class="main-search-form">
+    <button onClick="searchFree('searchField')" type="submit"><i class="icon-search"></i><span class="struct">Search</span></button>
+    <label for="main-searchtext" class="struct">Search</label>
+    <input type="text" name="searchField" id="searchField" placeholder="Search">
+</form><button onclick="$('.main-search-form-mobile').toggleClass('show', 500); return false;" type="button" class="show-search-button"><i class="icon-search"></i><span class="struct">Search</span></button>
+</div>
+
+
+            <!-- end main-head -->
+            
+<div class="theme-image speaker">
+    <div class="theme-top">
+        <div class="menu"><a href="#" class="icon-menu" onclick="$('.nav-main').toggle(500); return false;"></a><div class="nav-main cf" role="navigation">
+	<ul>
+		<!--li><a href="/" class="">2014</a></li-->
+<li><a class='registration' href='/2015/2015/registration'>Registration</a></li>
+<li><a class=' sel' href='/2015/2015/speakers'>Speakers</a></li>
+<li><a class='sessions' href='/2015/2015/sessions'>Sessions</a></li>
+<li><a class href='/2015/2015/security-day'>Security Day</a></li>
+<li><a class='schedule' href='/2015/2015/schedule'>Schedule</a></li>
+<li><a class href='/2015/2015/faq'>FAQ</a></li>
+	</ul>
+</div></div><form id="SearchMobile" action="javascript:searchFree('searchFieldMobile')" class="main-search-form-mobile">
+    <button onClick="searchFree('searchFieldMobile')" type="submit"><i class="icon-search"></i><span class="struct">Search</span></button>
+    <label for="main-searchtext" class="struct">Search</label>
+    <input class="search-field-mobile" type="text" name="searchField" id="searchFieldMobile" placeholder="Search">
+</form><h1 class="message">
+            <span>Developer conference</span><span>3-6 November</span><span>Malm\xf6 Sweden</span>
+        </h1>
+    </div>
+    <div class="inner-body">
+        <div class="main-headings top">
+            <h1>Speaker</h1>
+        </div>
+    </div>
+</div>
+        <div class="main speakers cf">
+            
+            <div class="inner-body">
+                         <div class="speaker-card active"><img class="left" alt="Alan Dipert" src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/SpeakerPics/alan-dipert.jpg" alt="Alan Dipert" title="Alan Dipert"><div class="speaker-info" role="complementary">
+									<h2>Alan Dipert</h2>
+									<div class="company"><strong>Company: </strong>Adzerk, Inc.</div>
+									<p>Alan Dipert is a software engineer at Adzerk, where he builds ad serving infrastructure for awesome companies like Reddit and StackOverflow.</p><p>Alan is enthusiastic and optimistic about the future of Lisp and functional programming.  In Clojure, he found his champion.</p><div class="inline-tags"><strong>Tags: </strong>Languages, Tools, Javascript, Web</div><div class="twitter-link"><strong>Twitter: </strong><a href="http://www.twitter.com/alandipert" target="_blank">@alandipert</a></div><div class="webpage"><strong>Webpage: </strong><a href="http://tailrecursion.com/~alan/index.cgi/index" target="_blank">http://tailrecursion.com/~alan/index.cgi/index</a></div><div class="other-sessions" style="margin-top: 3em;"><h2>Sessions</h2><ul><li><a href="#" class="btn add-to-schedule" data="6E0A895CEB56586CC1257E190017D52E"><i class="icon-calendar"></i></a> <a href='/2015/2015/sessions/programmable-builds-with-boot'>Programmable Builds with Boot</a></li><li><a href="#" class="btn add-to-schedule" data="8597844823BDC149C1257E19001C4E2D"><i class="icon-calendar"></i></a> <a href='/2015/2015/sessions/hoplon-a-simpler-way-to-program-the-web'>Hoplon: A Simpler Way to Program the Web</a></li></ul></div></div></div>
+            </div>
+        </div>  
+    
+
+            <!-- end main -->
+                    <div class="sponsors cf">
+                <div class="inner-body main-headings">
+                    <h1>Partners</h1>
+                    <div class="partner-50">
+                        <a class="gold" href="http://www.microsoft.com/sv-se" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_microsoft.png" class="gold"></a>
+                    </div><div class="partner-50">
+                        <a class="gold" href="http://www.webstep.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_webstep.png" class="gold"></a>
+                    </div><div class="partner-100">
+                        <div class="partner-25">
+                            <a class="silver" href="http://ravendb.net/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_ravendb.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.ipeer.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_ipeer.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.malmoopera.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_malmo-opera.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.malmo.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_malmo.png" class="silver"></a>
+                        </div>
+                    </div>
+                    <div class="partner-100">
+                        <div class="partner-25">
+                            <a class="silver" href="http://www.datormagazin.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_dator.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://kodsnack.se" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_kodsnack.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.oreilly.com/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_oreilly.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.truesec.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_truesec.png" class="silver"></a>
+                        </div>
+                    </div>
+                    <div class="partner-100">
+                        <div class="partner-25">
+                            <a class="silver" href="http://informator.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_informator.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="https://www.facebook.com/groups/utvecklare.stockholm/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_kodapor.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://enablingthefuture.org" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_e-nable.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.46elks.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_46elks.png" class="silver"></a>
+                        </div>
+                    </div>
+                    <div class="partner-100">
+                        <div class="partner-25">
+                            <a class="silver" href="https://www.se.capgemini.com/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_capgemini.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.pixelkafe.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_pixelcafe.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://edument.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_edument.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.avegagroup.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_avegagroup.png" class="silver"></a>
+                        </div>
+                    </div>
+                    <div class="partner-100">
+                        <div class="partner-25">
+                            <a class="silver" href="http://bouvet.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_bouvet.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://justtype.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_justtype.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.softhouse.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_softhouse.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.bredband2.com/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_bb2.png" class="silver"></a>
+                        </div>
+                    </div>
+                     <h1>Best companies</h1>
+                    <div class="partner-100">
+                        <div class="partner-25">
+                            <a class="silver" href="https://www.mobenga.com/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_mobenga.png" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.telavox.com/en/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_telavox.png" class="gold"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.infomaker.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_Infomaker.gif" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://global.qlik.com/se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_qlik.gif" class="silver"></a>
+                        </div>
+                    </div>
+                    <div class="partner-100">
+                        <div class="partner-25">
+                            <a class="silver" href="https://www.4cstrategies.com/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_4cstrategies.gif" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="https://www.signicat.com/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_signicat.gif" class="gold"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="http://www.tactel.se/" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_tactel.gif" class="silver"></a>
+                        </div><div class="partner-25">
+                            <a class="silver" href="" target="_blank"><img src="https://s3.eu-central-1.amazonaws.com/oredev.org/2015/logos/sponsor_no.png" class="silver"></a>
+                        </div>
+                    </div>
+                </div>
+        </div>
+            <div class="footer cf" role="contentinfo">
+                <div class="inner-body">
+                    <a href='/2015/2015/about-oredev'>About \xd8redev</a> - <a href='/2015/2015/partnership'>Partnership</a> - <a href='/2015/2015/archives'>Archive</a>
+                    <div class="contact-info cf">
+                        Telephone: +46 (0)40-602 31 03 - 
+                        Fax: +46 (0)40-127276 - 
+                        E-mail: <a href="mailto:info@oredev.org">info@oredev.org</a>
+                    </div>
+
+                </div>
+                <!-- end footer-body -->
+            </div>
+            <div class="jayway-founder">
+                <div class="inner-body main-headings">
+                    
+                    <a href="http://www.jayway.com"><img src="../../oredev2015/img/jayway-logo.png" alt="Jayway"></a>
+                    <p>\xd8REDEV was founded in 2005 by Jayway, a company comprised of and focused on specialists within IT. \xd8redev inherited this company's vision and philosophy.</p>
+                </div>
+            </div>
+            <!-- end footer -->
+        </div>
+        <!-- end body -->
+        <!-- JavaScript -->
+        <!--script type="text/javascript" src="/oredev2015/gui/js/oredev-2013_test-minified.js"></script-->
+        <script type="text/javascript" src="../../oredev2015/gui/js/jquery-1.9.1.min.js"></script>
+        <!--script type="text/javascript" src="/oredev2015/gui/js/common.js"></script-->
+        <script type="text/javascript" src="../../oredev2015/gui/js/schedule.js"></script>
+        <script type="text/javascript" src="../../oredev2015/gui/js/purl.js"></script>
+        <script type="text/javascript" src="../../oredev2015/gui/js/jquery.cookie.js"></script>   
+        <script type="text/javascript" src="../../oredev2015/gui/js/enquire.js"></script>
+        <script>
+                  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+                  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+                  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+                  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+                ga('create', 'UA-4553495-1', 'auto');
+                ga('send', 'pageview');
+
+        </script>
+    </body>
+</html>
diff --git a/archive/techworks/manifest.tsv b/archive/techworks/manifest.tsv
index 6d45ab1..c360d4b 100644
--- a/archive/techworks/manifest.tsv
+++ b/archive/techworks/manifest.tsv
@@ -170,7 +170,7 @@ rstudio-shiny-server-releases	rstudio-author-image	RStudio author portrait	image
 2015-clojure-brave-true	clojure-brave-true-foreword-source	Clojure for the Brave and True foreword source	web-page	https://www.braveclojure.com/foreword/	archive/techworks/items/clojure-brave-true-foreword/source.html	2026-08-09T21:18:00Z	d1689b5d52035006bf5479bc9819d700e4e239ee60ab695f178da38ba676726d	9180	repository-only	preserved	Exact live response body
 2015-clojure-brave-true	clojure-brave-true-foreword-headers	Clojure for the Brave and True foreword response headers	metadata	https://www.braveclojure.com/foreword/	archive/techworks/items/clojure-brave-true-foreword/source.headers	2026-08-09T21:18:00Z	7beddc663de419b9cb3d0f13c29dd4eb1c191664e837531c1baf0878b2dad3f7	1019	repository-only	preserved	HTTP response metadata
 2015-clojure-brave-true	clojure-brave-true-foreword-clean	Foreword to Clojure for the Brave and True	web-page	https://www.braveclojure.com/foreword/	md/TechWorks/ClojureBraveTrueForeword.html	2026-08-09T21:18:00Z	92c2feb1c52804fa75d23f59995b77e23ad108358c6240074f8162e0a331be13	3317	public	preserved	Clean local reading copy retaining the foreword text
-2019-software-engineering-shiny	bbsw-2019-program	BBSW 2019 program	pdf	https://www.bbsw.org/2019/agenda/BBSW_2019_program.pdf	archive/techworks/items/2019-software-engineering-shiny/BBSW_2019_program.pdf	2026-08-09T21:18:00Z	3a00e044698d556109cd605696506244452c74dbf962b854d1e76bb5456d8986	821135	repository-only	preserved	Official program confirming the presentation title, date, venue, and presenter
+2019-software-engineering-shiny	bbsw-2019-program	BBSW 2019 program	pdf	https://www.bbsw.org/2019/agenda/BBSW_2019_program.pdf	md/TechWorks/BBSW_2019_program.pdf	2026-08-09T21:18:00Z	3a00e044698d556109cd605696506244452c74dbf962b854d1e76bb5456d8986	821135	public	preserved	Official program confirming the presentation title, date, venue, and presenter; the original URL now returns 404
 2019-software-engineering-shiny	bbsw-2019-program-headers	BBSW 2019 program response headers	metadata	https://www.bbsw.org/2019/agenda/BBSW_2019_program.pdf	archive/techworks/items/2019-software-engineering-shiny/program.headers	2026-08-09T21:18:00Z	598574173e60c90655a88c6f5a0ea5f3139c8b69796fe086fbe648b77b77c311	527	repository-only	preserved	HTTP response metadata
 2019-software-engineering-shiny	software-engineering-shiny-media	Software Engineering with Shiny slides or recording	metadata	https://www.bbsw.org/2019/agenda/BBSW_2019_program.pdf		2026-08-09T21:18:00Z			repository-only	missing	No independently published slides or recording found
 2012-pluralsight-clojure	pluralsight-course-page	Clojure Fundamentals Part 1 public course page	web-page	https://www.pluralsight.com/courses/clojure-fundamentals-part-one	archive/techworks/items/pluralsight-clojure-fundamentals/source.html	2026-08-09T21:18:00Z	dc07b0df8e99bd30fc28d0bfa5829fdf8bd58bab1ed24dac2dcaeecbcf549557	625766	repository-only	preserved	Exact public response body for the retired course listing
@@ -253,3 +253,36 @@ rstudio-shiny-server-releases	rstudio-author-image	RStudio author portrait	image
 2012-flapjax	flapjax-render-demos-flapjax-demo-css	demos/flapjax/demo.css	web-asset	https://github.com/alandipert/alandipert.github.com/tree/58149e3/flapjax-demo	md/TechWorks/demos/flapjax/demo.css	2026-08-09T21:24:00Z	734494ecef0a50458ab02416d7a38ca757b10d0fbcbd3fbc9dcd15579b5f1454	911	public	preserved	Exact deployed static demo from the GitHub Pages repository
 2012-flapjax	flapjax-render-demos-flapjax-index-html	demos/flapjax/index.html	web-page	https://github.com/alandipert/alandipert.github.com/tree/58149e3/flapjax-demo	md/TechWorks/demos/flapjax/index.html	2026-08-09T21:24:00Z	f79b7668eb5466d2119cfe00b055642e8245af28044a2d52d47be67d8817d23e	699	public	preserved	Exact deployed static demo from the GitHub Pages repository
 2012-flapjax	flapjax-render-demos-flapjax-main-js	demos/flapjax/main.js	web-asset	https://github.com/alandipert/alandipert.github.com/tree/58149e3/flapjax-demo	md/TechWorks/demos/flapjax/main.js	2026-08-09T21:24:00Z	1ac1525f93a95e3154969ce154f791d98e34ebae554b8c8b6ccbdda7234fc210	725105	public	preserved	Exact deployed static demo from the GitHub Pages repository
+2018-intermediate-shiny	intermediate-shiny-source	Intermediate Shiny workshop materials	git-snapshot	https://github.com/jcheng5/shiny-training-rstudioconf-2018/tree/2966e76519e8c12eefacd036979d49146b25bd6f	md/TechWorks/shiny-training-rstudioconf-2018-2966e76.tar.gz	2026-08-09T21:35:00Z	f5dee5ae62c180ee4b0c597de0a93379b8283e96558e470d6c380ab008d7b80c	13140777	public	preserved	Exact source archive at the final workshop commit
+2018-intermediate-shiny	intermediate-shiny-forum	Intermediate Shiny workshop attendee information	web-page	https://forum.posit.co/t/information-for-the-intermediate-shiny-workshop/4596	archive/techworks/items/2018-intermediate-shiny/forum.html	2026-08-09T21:35:00Z	61351fe3f7f7f12e73f4b58cb335fc3237a5d61567ff9c102ea8daa53188706b	47084	repository-only	preserved	Exact public response body identifying instructors, teaching assistants, and workshop materials
+2018-intermediate-shiny	intermediate-shiny-forum-headers	Intermediate Shiny workshop response headers	metadata	https://forum.posit.co/t/information-for-the-intermediate-shiny-workshop/4596	archive/techworks/items/2018-intermediate-shiny/forum.headers	2026-08-09T21:35:00Z	47778901aef943039f93664ef04fe96f33caebeae9dbaefc3002f573053f2bd6	873	repository-only	preserved	HTTP response metadata
+alandipert.github.com	git-bundle-alandipert.github.com	alandipert.github.com full Git history	git-bundle	https://github.com/alandipert/alandipert.github.com	archive/techworks/git/alandipert.github.com.bundle	2026-08-09T21:35:00Z	73925e762b2a8afbd5c351bd7fa335e56cbd3f011c71d27b45cdfb2f1859cd2e	2922611	repository-only	preserved	Self-contained Git bundle of every mirrored ref
+barcamp2012-jsonscript	git-bundle-barcamp2012-jsonscript	barcamp2012-jsonscript full Git history	git-bundle	https://github.com/alandipert/barcamp2012-jsonscript	archive/techworks/git/barcamp2012-jsonscript.bundle	2026-08-09T21:35:00Z	9b26b87da1df84b14895ca44630974a38b3da2d42722dc0f9834c7873a4e8fd1	771186	repository-only	preserved	Self-contained Git bundle of every mirrored ref
+berrycam	git-bundle-berrycam	berrycam full Git history	git-bundle	https://github.com/alandipert/berrycam	archive/techworks/git/berrycam.bundle	2026-08-09T21:35:00Z	d419ca6dd3466ac8fcc7c75d3a83b8cc9dec807dc91f8a220b90a423b3ef874c	9804	repository-only	preserved	Self-contained Git bundle of every mirrored ref
+clojurebridge-curriculum	git-bundle-clojurebridge-curriculum	clojurebridge-curriculum full Git history	git-bundle	https://github.com/alandipert/clojurebridge-curriculum	archive/techworks/git/clojurebridge-curriculum.bundle	2026-08-09T21:35:00Z	b5712949103be8352130e4cf9b4a4c480cd4b9d28ce86ed02808550993ada5bf	4998801	repository-only	preserved	Self-contained Git bundle of every mirrored ref
+clojurewest2012-slides	git-bundle-clojurewest2012-slides	clojurewest2012-slides full Git history	git-bundle	https://github.com/alandipert/clojurewest2012-slides	archive/techworks/git/clojurewest2012-slides.bundle	2026-08-09T21:35:00Z	0e0a31d26174e5fb6b20f3402521a98ac9e3f12cb078d2ef650b14224ccaadad	85398704	repository-only	preserved	Self-contained Git bundle of every mirrored ref
+fast-shiny	git-bundle-fast-shiny	fast-shiny full Git history	git-bundle	https://github.com/alandipert/fast-shiny	archive/techworks/git/fast-shiny.bundle	2026-08-09T21:35:00Z	de8f48f7bf3c61129906da56094ab3d04baf4806cc617742c6235d394886cffe	3853724	repository-only	preserved	Self-contained Git bundle of every mirrored ref
+flapjax-demo	git-bundle-flapjax-demo	flapjax-demo full Git history	git-bundle	https://github.com/alandipert/flapjax-demo	archive/techworks/git/flapjax-demo.bundle	2026-08-09T21:35:00Z	d13fce328968ce3dab102a8e7eb32d071b6a32307bb9ef528b088f3e83dcf3bc	16713	repository-only	preserved	Self-contained Git bundle of every mirrored ref
+gherkin	git-bundle-gherkin	gherkin full Git history	git-bundle	https://github.com/alandipert/gherkin	archive/techworks/git/gherkin.bundle	2026-08-09T21:35:00Z	b239bd9dea92ead42e49d06e1b9834371515490f4605e238c94092e7eb090271	102977	repository-only	preserved	Self-contained Git bundle of every mirrored ref
+gitrubytesting-presentation	git-bundle-gitrubytesting-presentation	gitrubytesting-presentation full Git history	git-bundle	https://github.com/alandipert/gitrubytesting-presentation	archive/techworks/git/gitrubytesting-presentation.bundle	2026-08-09T21:35:00Z	b3b136392596c788ce786bf58fe06d74e399dc2dce0a39db4398de71438f4386	1480277	repository-only	preserved	Self-contained Git bundle of every mirrored ref
+ocrug-2018-11-27	git-bundle-ocrug-2018-11-27	ocrug-2018-11-27 full Git history	git-bundle	https://github.com/alandipert/ocrug-2018-11-27	archive/techworks/git/ocrug-2018-11-27.bundle	2026-08-09T21:35:00Z	12c78b4a7c86269dfcf276b3b650e81312cf434781a4174aa5a25f3b85b85934	2240	repository-only	preserved	Self-contained Git bundle of every mirrored ref
+oscon2012-clojure	git-bundle-oscon2012-clojure	oscon2012-clojure full Git history	git-bundle	https://github.com/alandipert/oscon2012-clojure	archive/techworks/git/oscon2012-clojure.bundle	2026-08-09T21:35:00Z	0f45cebcdc5b8bfb838cd258d9778ede288c194b02dc2161e7d5768baf96304c	404791	repository-only	preserved	Self-contained Git bundle of every mirrored ref
+presentations	git-bundle-presentations	presentations full Git history	git-bundle	https://github.com/alandipert/presentations	archive/techworks/git/presentations.bundle	2026-08-09T21:35:00Z	e520e4407eaecae8ee6ec7dae911b7c99f1a176bb622324956b541e00ab633a7	111358084	repository-only	preserved	Self-contained Git bundle of every mirrored ref
+scala-presentation	git-bundle-scala-presentation	scala-presentation full Git history	git-bundle	https://github.com/alandipert/scala-presentation	archive/techworks/git/scala-presentation.bundle	2026-08-09T21:35:00Z	67dd2380eb2b222dbb8ef515cdfb2b59345a599b70cd5f9569fa04e491b29db0	459432	repository-only	preserved	Self-contained Git bundle of every mirrored ref
+shiny-training-rstudioconf-2018	git-bundle-shiny-training-rstudioconf-2018	shiny-training-rstudioconf-2018 full Git history	git-bundle	https://github.com/jcheng5/shiny-training-rstudioconf-2018	archive/techworks/git/shiny-training-rstudioconf-2018.bundle	2026-08-09T21:35:00Z	f913f7094f20b37c956594bf0d8c009d70ab3413e1ea4443904b62ee8f393f3e	21252348	repository-only	preserved	Self-contained Git bundle of every mirrored ref
+2015-oredev-boot	oredev-boot-poster-jpg	Øredev 2015 boot-poster.jpg	image	https://vimeo.com/144997124	archive/techworks/items/oredev-2015/boot-poster.jpg	2026-08-09T21:42:00Z	faf06acfbd418878507c1888ba11c1f410710c348c9fab41c26a8467d0218c26	170950	repository-only	preserved	Official event or Vimeo metadata retained at full available resolution
+2015-oredev-boot	oredev-boot-vimeo-headers	Øredev 2015 boot-vimeo.headers	metadata	https://vimeo.com/144997124	archive/techworks/items/oredev-2015/boot-vimeo.headers	2026-08-09T21:42:00Z	3c3483bf6619a5cde3f095a0f396719e18b55d634057be5081d1ad4ff3154955	1416	repository-only	preserved	Official event or Vimeo metadata retained at full available resolution
+2015-oredev-boot	oredev-boot-vimeo-json	Øredev 2015 boot-vimeo.json	metadata	https://vimeo.com/144997124	archive/techworks/items/oredev-2015/boot-vimeo.json	2026-08-09T21:42:00Z	6cdf60ab2e99daa2ee458022823a05d32104d67aad1b09b3ec22902a3b601a3d	2583	repository-only	preserved	Official event or Vimeo metadata retained at full available resolution
+2015-oredev-boot	oredev-boot-headers	Øredev 2015 boot.headers	metadata	https://archive.oredev.org/2015/2015/sessions/programmable-builds-with-boot	archive/techworks/items/oredev-2015/boot.headers	2026-08-09T21:42:00Z	2a3fc8f001d78eb9b744768439ac06a703cceb5ce4b750282d487f37461f6c32	436	repository-only	preserved	Official event or Vimeo metadata retained at full available resolution
+2015-oredev-boot	oredev-boot-html	Øredev 2015 boot.html	web-page	https://archive.oredev.org/2015/2015/sessions/programmable-builds-with-boot	archive/techworks/items/oredev-2015/boot.html	2026-08-09T21:42:00Z	d884c2f90ca99835820b69693e2c825928b662de449e3d8910135493c54700aa	18366	repository-only	preserved	Official event or Vimeo metadata retained at full available resolution
+2015-oredev-hoplon	oredev-hoplon-poster-jpg	Øredev 2015 hoplon-poster.jpg	image	https://vimeo.com/144696304	archive/techworks/items/oredev-2015/hoplon-poster.jpg	2026-08-09T21:42:00Z	675c7d637cfa75667574541ac809e9a062516c902f6698b91647404d3286159c	101011	repository-only	preserved	Official event or Vimeo metadata retained at full available resolution
+2015-oredev-hoplon	oredev-hoplon-vimeo-headers	Øredev 2015 hoplon-vimeo.headers	metadata	https://vimeo.com/144696304	archive/techworks/items/oredev-2015/hoplon-vimeo.headers	2026-08-09T21:42:00Z	5533431bdb3591f56ce9b5f360c048d6a4c2e3a8281935d88ab7018bb4f9e0e6	1415	repository-only	preserved	Official event or Vimeo metadata retained at full available resolution
+2015-oredev-hoplon	oredev-hoplon-vimeo-json	Øredev 2015 hoplon-vimeo.json	metadata	https://vimeo.com/144696304	archive/techworks/items/oredev-2015/hoplon-vimeo.json	2026-08-09T21:42:00Z	ed3a60f4a5c625598543a2c9d02162d91921652874d390b91fb0f1f184f7a4fd	2610	repository-only	preserved	Official event or Vimeo metadata retained at full available resolution
+2015-oredev-hoplon	oredev-hoplon-headers	Øredev 2015 hoplon.headers	metadata	https://archive.oredev.org/2015/2015/sessions/hoplon-a-simpler-way-to-program-the-web	archive/techworks/items/oredev-2015/hoplon.headers	2026-08-09T21:42:00Z	bcb056624851ffbd4f91bbbe12b7c318982e43f2e55b79e92c0d96e0d5836771	436	repository-only	preserved	Official event or Vimeo metadata retained at full available resolution
+2015-oredev-hoplon	oredev-hoplon-html	Øredev 2015 hoplon.html	web-page	https://archive.oredev.org/2015/2015/sessions/hoplon-a-simpler-way-to-program-the-web	archive/techworks/items/oredev-2015/hoplon.html	2026-08-09T21:42:00Z	0a82b51414d214db696966e70c2fe677681f9755b0421ea7a775c535e60f64c8	18401	repository-only	preserved	Official event or Vimeo metadata retained at full available resolution
+2015-oredev	oredev-speaker-headers	Øredev 2015 speaker.headers	metadata	https://archive.oredev.org/2015/2015/speakers/alan-dipert	archive/techworks/items/oredev-2015/speaker.headers	2026-08-09T21:42:00Z	931f4099ffd310a0a140c2bf21919e4b8bfe28c0f56102c48bb56d800cba4b66	436	repository-only	preserved	Official event or Vimeo metadata retained at full available resolution
+2015-oredev	oredev-speaker-html	Øredev 2015 speaker.html	web-page	https://archive.oredev.org/2015/2015/speakers/alan-dipert	archive/techworks/items/oredev-2015/speaker.html	2026-08-09T21:42:00Z	07273d75e8bda0a3834b6344e7e80411687551eae2a254d7ddca2216ab6a1803	17516	repository-only	preserved	Official event or Vimeo metadata retained at full available resolution
+2015-oredev-hoplon	oredev-hoplon-video	Hoplon: A Simpler Way to Program the Web recording	video	https://vimeo.com/144696304		2026-08-09T21:42:00Z			repository-only	missing	The public 1280x720 Vimeo recording requires account or age verification; first-party, Wayback, Common Crawl, Internet Archive, and extractor searches did not yield media bytes
+2015-oredev-boot	oredev-boot-video	Programmable Builds with Boot recording	video	https://vimeo.com/144997124		2026-08-09T21:42:00Z			repository-only	missing	The public 1280x720 Vimeo recording requires account or age verification; first-party, Wayback, Common Crawl, Internet Archive, and extractor searches did not yield media bytes
+triclojure-hoplon-deck	git-bundle-triclojure-hoplon-deck	triclojure-hoplon-deck full Git history	git-bundle	https://github.com/alandipert/triclojure-hoplon-deck	archive/techworks/git/triclojure-hoplon-deck.bundle	2026-08-09T21:35:00Z	301247362f0b4ff1941388c1d2f81f9f3d57b4f12445b2a587473bc476c7a291	331550	repository-only	preserved	Self-contained Git bundle of every mirrored ref
+wombat	git-bundle-wombat	wombat full Git history	git-bundle	https://github.com/alandipert/wombat	archive/techworks/git/wombat.bundle	2026-08-09T21:35:00Z	365d34886c97fe9ca2743afd0df8ae5facbb047082deaf6f3854866e03a4dcce	123698	repository-only	preserved	Self-contained Git bundle of every mirrored ref
diff --git a/md/TechWorks.md b/md/TechWorks.md
index b58ec80..559100a 100644
--- a/md/TechWorks.md
+++ b/md/TechWorks.md
@@ -12,12 +12,12 @@ Papers, slides, recordings, and source snapshots are available in the [TechWorks
 | 2019-12-11 | WWW                                                                                           | [Just Lisp Things](https://tailrecursion.com/jlt/)                                                                                                                                                                                                                          | Author         | Blog               |                            |
 | 2019-11-19 | [OCRUG](https://web.archive.org/web/20220123183238/https://ocrug.org/)                        | [Integrating React.js and Shiny](https://www.meetup.com/OC-RUG/events/265511792/), [code](https://github.com/alandipert/ocrug-2018-11-27)                                                                                                                                   | Presentation   | Presenter          |                            |
 | 2019-11-16 | [OCRUG](https://web.archive.org/web/20220123183238/https://ocrug.org/)                        | [OCRUG interview](./TechWorks/OCRUGInterview.html)                                                                                                                                                                                                                          | Interview      | Interviewee        |                            |
-| 2019-11-06 | [BBSW](https://www.bbsw.org/)                                                                  | [Software Engineering with Shiny](https://www.bbsw.org/2019/agenda/BBSW_2019_program.pdf)                                                                                                                                                                                   | Presentation   | Presenter          |                            |
+| 2019-11-06 | [BBSW](https://www.bbsw.org/)                                                                  | [Software Engineering with Shiny](./TechWorks/BBSW_2019_program.pdf)                                                                                                                                                                                                        | Presentation   | Presenter          |                            |
 | 2019-01-24 | rstudio::conf                                                                                 | [Integrating React.js and Shiny](https://rstudio.com/resources/rstudioconf-2019/integrating-react-js-and-shiny/)                                                                                                                                                            | Presentation   | Presenter          |                            |
 | 2018-12-17 | [Orange Combinator](https://www.meetup.com/fr-FR/orange-combinator/events/lxvjrpyxqbwb/)      | [Old School FP: A Common Lisp Experience Report](./TechWorks/2018-12-17-CommonLispOrangeCombinator.pdf)                                                                                                                                                                     | Meetup         | Presenter          |                            |
 | 2018-09-06 | rstudio.com                                                                                   | [Load testing Shiny](./TechWorks/2018-09-06-load-testing-shiny-archive.html)                                                                                                                                                                                               | Webinar        | Presenter          |                            |
 | 2018-02-02 | rstudio::conf                                                                                 | [Make Shiny fast by doing as little work as possible](https://rstudio.com/resources/rstudioconf-2018/make-shiny-fast-by-doing-as-little-work-as-possible/), [slides](https://github.com/alandipert/fast-shiny)                                                              | Presentation   | Presenter          |                            |
-| 2018-01-31 | rstudio::conf                                                                                 | Intermediate Shiny                                                                                                                                                                                                                                                          | Workshop       | Teaching assistant |                            |
+| 2018-01-31 | rstudio::conf                                                                                 | Intermediate Shiny, [materials](./TechWorks/shiny-training-rstudioconf-2018-2966e76.tar.gz)                                                                                                                                                                                 | Workshop       | Teaching assistant |                            |
 | 2017-12-11 | RStudio blog                                                                                  | [Shiny Server (Pro) 1.5.6](./TechWorks/ShinyServer156.html)                                                                                                                                                                                                                 | Article        | Author             |                            |
 | 2017-10-13 | WWW                                                                                           | [Wondr: Thoughts on R programming](https://tailrecursion.com/wondr/)                                                                                                                                                                                                        | Blog           | Author             |                            |
 | 2017-09-12 | RStudio blog                                                                                  | [Shiny Server (Pro) 1.5.4](./TechWorks/ShinyServer154.html)                                                                                                                                                                                                                 | Article        | Author             |                            |
diff --git a/archive/techworks/items/2019-software-engineering-shiny/BBSW_2019_program.pdf b/md/TechWorks/BBSW_2019_program.pdf
similarity index 100%
rename from archive/techworks/items/2019-software-engineering-shiny/BBSW_2019_program.pdf
rename to md/TechWorks/BBSW_2019_program.pdf
diff --git a/md/TechWorks/shiny-training-rstudioconf-2018-2966e76.tar.gz b/md/TechWorks/shiny-training-rstudioconf-2018-2966e76.tar.gz
new file mode 100644
index 0000000..22e35d1
Binary files /dev/null and b/md/TechWorks/shiny-training-rstudioconf-2018-2966e76.tar.gz differ
diff --git a/md/TechWorksArchive.md b/md/TechWorksArchive.md
index 1d2381d..1a70593 100644
--- a/md/TechWorksArchive.md
+++ b/md/TechWorksArchive.md
@@ -18,6 +18,7 @@ Downloads and recordings from [TechWorks](./TechWorks.md). Some original event p
 |:-----|:---------|
 | JACL: A Common Lisp for Developing Single-Page Web Applications | [Paper](./TechWorks/jacl-demo-els-2020.pdf) |
 | Integration Testing in Shiny Apps and Modules | [Poster](./TechWorks/2020-01-28-RStudio-Conf-Integration-Testing-ePoster.pdf) |
+| Software Engineering with Shiny | [Program](./TechWorks/BBSW_2019_program.pdf) |
 | Old School FP: A Common Lisp Experience Report | [Slides](./TechWorks/2018-12-17-CommonLispOrangeCombinator.pdf) |
 | Load testing Shiny | [Webinar page](./TechWorks/2018-09-06-load-testing-shiny-archive.html) |
 | Boot Can Build It | [Slides](./TechWorks/2015-04-20_ClojureWestBoot.pdf) |
@@ -75,6 +76,7 @@ These are the best available copies from the original hosts. Captions are includ
 | Gherkin | [GitHub](https://github.com/alandipert/gherkin) | [Snapshot](./TechWorks/gherkin-76dc034.tar.gz) |
 | OCRUG 2018 presentation | [GitHub](https://github.com/alandipert/ocrug-2018-11-27) | [Snapshot](./TechWorks/ocrug-2018-11-27-71dd0b1.tar.gz) |
 | OSCON Clojure workshop | [GitHub](https://github.com/alandipert/oscon2012-clojure) | [Snapshot](./TechWorks/oscon2012-clojure-5ac233f.tar.gz) |
+| Intermediate Shiny workshop | [GitHub](https://github.com/jcheng5/shiny-training-rstudioconf-2018) | [Snapshot](./TechWorks/shiny-training-rstudioconf-2018-2966e76.tar.gz) |
 | Scala presentation | [GitHub](https://github.com/alandipert/scala-presentation) | [Snapshot](./TechWorks/scala-presentation-82e2d00.tar.gz) |
 | TriClojure Hoplon deck | [GitHub](https://github.com/alandipert/triclojure-hoplon-deck) | [Snapshot](./TechWorks/triclojure-hoplon-deck-7afa060.tar.gz) |
 | Wombat | [GitHub](https://github.com/alandipert/wombat) | [Snapshot](./TechWorks/wombat-dbd34f4.tar.gz) |