tilde.club/~brennen/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1428 lines
52 KiB

9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
  1. <!DOCTYPE html>
  2. <html lang=en>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>~brennen (prop., ed., pub., sysop)</title>
  6. <link rel="alternate" type="application/atom+xml" title="changes" href="feed.xml" />
  7. <link rel=stylesheet href="tildebrennen.css?update_for_xmas_lights=yesplease" />
  8. <!-- the following are all available for general use from squiggle.city/js/ -->
  9. <script type="text/javascript" src="https://squiggle.city/js/jquery.js"></script>
  10. <script type="text/javascript" src="https://squiggle.city/js/shjs/sh_main.js"></script>
  11. <script type="text/javascript" src="https://squiggle.city/js/shjs/lang/sh_perl.js"></script>
  12. <script type="text/javascript" src="https://squiggle.city/js/p5/p5.min.js"></script>
  13. <link type="text/css" rel="stylesheet" href="//squiggle.city/js/shjs/css/sh_darkness.css">
  14. </head>
  15. <!--
  16. Hello there, intrepid viewer-of-source.
  17. To be honest, there is nothing very interesting here, but one day
  18. there might be.
  19. (o)(o)
  20. ========
  21. / \
  22. \ /
  23. `` ``
  24. One day.
  25. -->
  26. <body>
  27. <div id=squiggleCanvas style="position: fixed; bottom: 0; right: 0; z-index: -5000;"></div>
  28. <header>
  29. <nav>
  30. <h1>~brennen</h1>
  31. <p>
  32. <a href="feed.xml" title="an atom feed of updates">feed</a>
  33. | <a href="http://squiggle.city/">squiggle.city</a>
  34. | <a href="http://tilde.club/">tilde.club</a>
  35. | <a href="https://p1k3.com/" title="a blog">p1k3</a>
  36. | <a href="https://p1k3.com/userland-book/" title="a book about the command line for humans">userland</a>
  37. | <a href="http://squiggle.city/~brennen/workings-book/" title="a technical notebook">workings</a>
  38. </p>
  39. </nav>
  40. </header>
  41. <div style="clear: both;"></div>
  42. <section>
  43. <article>
  44. <h2>December 2015</h2>
  45. <p>Ok maybe I will rethink the slidy-tile interface to this page.</p>
  46. <p>Also I put the lights back up.</p>
  47. </article>
  48. <article>
  49. <h2>A Sunrise</h2>
  50. <p class="huge centerpiece">🌄</p>
  51. </article>
  52. <article>
  53. <h2>A Crawly</h2>
  54. <p class="huge centerpiece">𓆨</p>
  55. </article>
  56. <article>
  57. <h2>three things i kind of love</h2>
  58. <ol>
  59. <li>
  60. <p>I actually think the Marvel Cinematic Universe, for all its
  61. considerable flaws and shallow CGI flash, has been really great. With
  62. few exceptions, even the trivial movies are pleasant enough diversions
  63. featuring people I like, while the better ones have real emotional
  64. heft. Plus I can watch and talk about them with my 50-something
  65. parents, who have them all on DVD and are completely up on who last
  66. kicked Loki's ass etc.</p>
  67. <p>In the end, will its narrative metaproject succeed? Maybe it's not
  68. likely. A longform story project on this scale with no clear endgame is
  69. likely enough to collapse under its own considerable weight. But who
  70. knows. So far they're pulling it off. They've managed to make me care
  71. about a character literally named Captain America.</p>
  72. <p>(Parenthetical to Marvel: I think you have enough dumptrucks full of
  73. money by now to give Black Widow a movie already. Hell, why not a
  74. <em>series of movies</em>? Remember, I'm pulling for ya. We're all in
  75. this together.)</p>
  76. </li>
  77. <li><p>Two-slice toasters from the 1950s-70s having at most two controls.</p></li>
  78. <li>Dishes consisting of a gravy on rice.</li>
  79. </ol>
  80. </article>
  81. <article>
  82. <p>[ a dry, cold wind whistles through the streets of tilde.club ]</p>
  83. <p>[ a tumbleweed skitters into the big pile under the mercantile's front window ]</p>
  84. <p>[ a single flake falls from the slate-gray sky and drifts into the black water pooled in the old stock tank by the windmill ]</p>
  85. <p>[ creaking noises ]</p>
  86. </article>
  87. <article>
  88. <p><img src="images/frog.gif"></p>
  89. </article>
  90. <article>
  91. <h2>some textfiles</h2>
  92. <ul>
  93. <li><a href="textfiles/corn.txt">a news.tilde.club post about sweetcorn</a> (I
  94. hope ~schussat (?) doesn't mind being quoted here)</li>
  95. <li><a href="textfiles/vimpoems.txt">about writing poems in vim</a></li>
  96. </article>
  97. <article>
  98. <h2>Reverse Chronological Dated Entries Are Totally Fine But I Already Do That Elsewhere</h2>
  99. <p>And, thinking that, I decided to make my home on squiggle.city a stack
  100. of cards about... Well, about whatever. Some of them will have dates.
  101. Some of them will change arbitrarily.</p>
  102. <p class=centerpiece><img src="hypercard.png" /></p>
  103. </article>
  104. <article>
  105. <h2>Thursday, January 22, 2015</h2>
  106. <p><a href="http://squiggle.city/~brennen/workings-book/#Thursday-January-22">RARGH GIT</a></p>
  107. </article>
  108. <article>
  109. <h2>Thursday, January 15, 2015 - wee hours</h2>
  110. <p class=centerpiece><img src="hypercard.png" /></p>
  111. <p>I have decided that my squiggle will now be more like a HyperCard
  112. stack.</p>
  113. <p>Please use &larr; &rarr; arrow keys to navigate.</p>
  114. <p>Comparisons to PowerPoint will be vigorously disdained.</p>
  115. </article>
  116. <article>
  117. <h2>Wednesday, January 14, 2015</h2>
  118. <p>Some things I have been up to:</p>
  119. <ul>
  120. <li>nostalgia-tripping a little bit on <a href="http://squiggle.city/~brennen/workings-book/#Monday-January-12-MS-DOS-AGT">DOS software</a></li>
  121. <li>the third in a series of guides for Adafruit, <a href="https://learn.adafruit.com/an-illustrated-shell-command-primer">An Illustrated Shell Command Primer</a></li>
  122. <li><a href="http://squiggle.city/~brennen/workings-book/#Tuesday-January-13-rtd-bus-schedules-transit-data">messing around with RTD schedule data</a></li>
  123. <li>a <a href="http://squiggle.city/~paper/archives/squiggle.city.herald.1.2.txt">second issue of the local paper</a></li>
  124. </ul>
  125. </article>
  126. <article>
  127. <h2>Monday, January 12, 2015</h2>
  128. <p><img src="images/heart_keen.jpg"></p>
  129. </article>
  130. <article>
  131. <h2>Sunday, January 11, 2015</h2>
  132. <p>Some radio streams, ordered by time in my life when they were
  133. important:</p>
  134. <ul>
  135. <li><a href="http://wnax.com/">AM 570 WNAX Yankton</a></li>
  136. <li><a href="http://129.93.42.12:8000/listen">FM 90.3 KRNU Lincoln</a></li>
  137. <li><a href="http://www.kzum.org/">FM 89.3 KZUM Lincoln</a></li>
  138. <li><a href="http://stream.kgnu.net:8000/KGNU_live_high.mp3">FM 88.5 KGNU Boulder/Denver</a></li>
  139. <li><a href="http://www.radio1190.org/wp-content/themes/nextmagazine/listen_high_v3.html">AM 1190 KVCU Boulder/Denver</a></li>
  140. </ul>
  141. <p>WNAX is one of the great old mid-American AM stations. It's been
  142. operating since 1922. I remember it for the Five State Trader, the
  143. Neighbor Lady, and being the kind of station that carried <a
  144. href="https://en.wikipedia.org/wiki/Paul_Harvey">Paul Harvey</a>. Also a
  145. lot of weather and farm market stuff. These days when I hear it (and I'm
  146. listening to the stream right now), it's mostly right-wing talk radio in
  147. the modern style, though it still sounds like itself during the ad
  148. breaks.</p>
  149. <p>KRNU is the <a href="http://www.unl.edu/">UNL</a> college station. I
  150. first heard a lot of indie rock and deliberate weirdness there.</p>
  151. <p>KZUM is the community station in Lincoln. It's deeply weird in the
  152. way that all community stations seem to be, and idiosyncratic in the way
  153. of volunteer-run broadcast media in smallish
  154. urban-refuge-from-the-provinces markets. I'm pretty sure it was the
  155. first place I heard Democracy Now, but that doesn't really convey the
  156. full character of the thing. Like right now it's winding up two hours of
  157. Native American drum-and-group-vocals stuff, and I have vivid memories of
  158. driving to work and listening to this (daily? weekly? it happened over
  159. and over again) U2-only hour.</p>
  160. <p>KGNU is Boulder's equivalent to KZUM. It's both a more professional
  161. exercise and perhaps a more predictable one, though it shares a lot of
  162. the implicit politics of a KZUM. Both stations, it pretty well goes
  163. without saying, get deeply weird late at night.</p>
  164. <p>Radio 1190 is the local take on the low-power college indie radio
  165. thing. In keeping with type, it's often aggressively unlistenable in
  166. precisely the way that its core demographic is always seeking.</p>
  167. </article>
  168. <article>
  169. <h2>Thursday, January 8, 2015</h2>
  170. <p>Wikipedia sentence fragment of the day:</p>
  171. <blockquote>
  172. <p>groundhogs are the most solitary of the marmots</p>
  173. </blockquote>
  174. </article>
  175. <article>
  176. <h2>Tuesday, January 6, 2015</h2>
  177. <p>So I skim through ~schussat's
  178. <a href="http://prettygoodhat.com/2015-01-03-EndlessLegend.html"
  179. title="My Endless Legend Journal">Endless Legend journal</a>, which is
  180. a writeup of a game with a bunch of screenshots. It looks neat, but I
  181. know I'm never going to play it.</p>
  182. <p>What I keep wanting, really, is something that is like a game but is
  183. not exactly a <i>game</i> so much as it's a little world in a box that I
  184. can ramble around in like an itinerant traveler with no particular
  185. agenda, or watch over like an indifferent minor deity. The thing I want
  186. is for interesting things to happen without me being obligated to
  187. <i>do</i> anything. I don't want to go on quests. I don't want to
  188. manage an empire. I don't want to work my way through any decision trees
  189. or max any stats or struggle to make any NPCs happy or deal with any
  190. marauding hordes. (I don't mind if there occasionally <i>are</i>
  191. marauding hordes. I don't even mind having the option to thwart them or
  192. whatever. I just don't want to be <i>compelled</i> to thwart them by
  193. some ludic apparatus any more mechanical than my own reaction to whatever
  194. they're doing in the simulation space.)</p>
  195. <p>Back when I still played a lot of games, I used to spend absurd
  196. amounts of time flying around with all the cheatcodes on just looking at
  197. stuff and trying to provoke the monsters into doing anything that wasn't
  198. fighting me. One of my favorite parts of Doom-engine games was the thing
  199. where some monster would accidentally shoot some other monster and they'd
  200. forget all about whatever hackneyed narrative they were part of and just
  201. start slaughtering one another in a fit of pique. I loved the little
  202. villages and forests and rainclouds in something like <i>Black &amp;
  203. White</i>, but I passionately hated that I was supposed to complete
  204. quests and achieve goals.</p>
  205. <p>I don't want all my interactions with the denizens of whatever
  206. world-in-a-box reduced to the nexus of simulated violence or simulated
  207. feed-the-livestock quasi-benevolence.</p>
  208. <p>(Is there a mode in <a href="https://en.wikipedia.org/wiki/Dwarf_Fortress">Dwarf
  209. Fortress</a> where everything just happens and I don't have to decide anything?
  210. Because that sounds like it would be neat to watch.)</p>
  211. </article>
  212. <article>
  213. <h2>Monday, January 5, 2015</h2>
  214. <p><a href="https://ello.co/brennen/post/EPBHcI7lPlBPdG-CCD_PCw">Cats think about murder.</a></p>
  215. <p>I <a href="http://squiggle.city/~paper/">founded a newspaper</a>.</p>
  216. <p>~imt made <a href="https://club6.nl">club6.nl</a>, "the first IPv6
  217. only Public Access UNIX System". Get in while you still can, folks. It's
  218. gonna be a landrush.</p>
  219. </article>
  220. <article>
  221. <h2>Saturday, January 3, 2015</h2>
  222. <p>It's snowing.</p>
  223. <p class="huge centerpiece">
  224. ❄ ❅ ❆
  225. </p>
  226. <p>I have talked some real shit about Ubuntu in the not-so-distant past,
  227. and if I'm honest I have to admit it probably won't have been the last time.
  228. Every once in a while it wouldn't hurt for me to acknowledge some of the
  229. <i>good</i> work happening there.
  230. <p>Specifically, I really like the Mono variant of <a href="http://font.ubuntu.com/">this
  231. font family</a>. Looks great in the terminal and gvim both.</p>
  232. </article>
  233. <article>
  234. <h2>Monday, December 29</h2>
  235. <p>Leaving the decorations up too long is a family tradition.</p>
  236. <p>Recent notes:</p>
  237. <ul>
  238. <li><a href="http://squiggle.city/~brennen/workings-book/#screencast-gifs-thursday-december-18-2014">screencast GIFs</a></li>
  239. <li><a href="http://squiggle.city/~brennen/workings-book/#drawing-tools-friday-december-19-2014">drawing</a></li>
  240. <li><a href="http://squiggle.city/~brennen/workings-book/#candles-amp-candlemaking">candles</a></li>
  241. </ul>
  242. </article>
  243. <article>
  244. <h2>Tuesday, December 16, early a.m.</h2>
  245. <p><img src=christmas_lights.svg width=500 /></p>
  246. </article>
  247. <article>
  248. <h2>Monday, December 15</h2>
  249. <p>Text editors I have known and loved:</p>
  250. <ul>
  251. <li><a href="https://en.wikipedia.org/wiki/Pfs:Write">pfs:Write</a> for DOS</li>
  252. <li>DOS Edit / QBasic</li>
  253. <li>Notepad<sup>1</sup></li>
  254. <li>Pico</li>
  255. <li>BBEdit</li>
  256. <li>Some weird Windows thing that had a bunch of menus of HTML tags built in</li>
  257. <li>The super-90s-Windowsy text controls embedded in mIRC</li>
  258. <li>XEmacs</li>
  259. <li>Vim</li>
  260. </ul>
  261. <p>Games I really liked:</p>
  262. <ul>
  263. <li>That one where you were a little smiley face and you went around
  264. the dungeon finding artefacts and sometimes typing things like
  265. <tt>DRINK POTION</tt>.</li>
  266. <li>The first super-pixelly <i>Commander Keen</i>, with the little green
  267. Vorticons running around.</li>
  268. <li><i>Cosmo's Cosmic Adventure</i></li>
  269. <li>That artillery game on the Apple ][ where you had little castles
  270. shooting at each other.</li>
  271. <li><i>Scorched Earth</i>, where little tanks shot at each other.</li>
  272. <li><i>Worms</i>, where a bunch of little worms shot at each other.<sup>2</sup></li>
  273. <li><i>Bolo</i>, where little tanks shot at each other but it was
  274. top-down and real-time and there was a Little Green Man to do your
  275. bidding and it was <i>networked multiplayer</i>.</li>
  276. <li><i>Taipan</i>, where you had a merchant ship and shot at
  277. pirates.</li>
  278. <li><i>Tempest</i>, which featured both shooting and abstract colorful
  279. shapes.</li>
  280. <li><i>Spy Hunter</i> on the NES. Also the version of <i>Spy Hunter</i>
  281. at the Pizza Hut in Wayne, NE.</li>
  282. </ul>
  283. <p><small><sup>1</sup> Ok to be fair I never actually loved Notepad.</small></p>
  284. <p><small><sup>2</sup> I've never really warmed to subsequent entries in
  285. this (enormously successful) series. They all struck me as the wrong
  286. kind of cartoony. I think this is a lesson in how the constraints on
  287. an aesthetic can force it into channels more broadly appealing than
  288. the same artists will later find with bigger budgets and greater
  289. technological capacity. Either that or a lesson on how weirdos like
  290. me often prefer low-res hackery. Either way, there is probably an
  291. analogy to country music and George Lucas somewhere in here.</small></p>
  292. </article>
  293. <article>
  294. <h2>Sunday, December 14</h2>
  295. <p>Here's an interesting little thing:
  296. <a href="http://protocol.club/~datagrok/beta-wiki/tdp.html">Tilde
  297. Description Protocol</a>.</p>
  298. <p>I have the following going in relation to this:</p>
  299. <ul>
  300. <li><a href="http://squiggle.city/tilde.json">squiggle.city/tilde.json</a></li>
  301. <li><a href="http://squiggle.city/tilde.txt">squiggle.city/tilde.txt</a></li>
  302. <li><a href="http://squiggle.city/users.json">squiggle.city/users.json</a></li>
  303. <li><a href="http://squiggle.city/users.txt">squiggle.city/users.txt</a></li>
  304. <li><a href="https://githug.com/squigglecity/squiggle.city">squiggle.city repo with listusers.pl</a></li>
  305. </ul>
  306. </article>
  307. <article>
  308. <h2>Tuesday, December 9</h2>
  309. <p>A few sections in <a href="http://squiggle.city/~brennen/workings-book/">workings</a>:</p>
  310. <ul>
  311. <li><a href="http://squiggle.city/~brennen/workings-book/#makecitizen-wednesday-december-3-2014">on
  312. a script to make new users</a></li>
  313. <li><a href="http://squiggle.city/~brennen/workings-book/#single-board-computers">on messing around
  314. with single-board computers</a></li>
  315. <li><a href="http://squiggle.city/~brennen/workings-book/#namespaces-scope">on namespaces
  316. &amp; scope</a></li>
  317. </ul>
  318. <p>In more interesting news, a bunch of people have asked for
  319. squiggle.city accounts lately. That's pretty cool. I do wish I knew how
  320. to encourage more people who aren't demographically within a couple of
  321. degrees of me to sign up.</p>
  322. </article>
  323. <article>
  324. <h2>Saturday, December 6</h2>
  325. <p>I just started a new project that I'm going to host on squiggle.city:
  326. <a href="http://squiggle.city/~brennen/workings-book/"><i>workings</i></a>
  327. is an attempt at an ongoing technical notebook. I plan for it to get huge,
  328. and expect it to be really boring, if you're not me. Hopefully it will
  329. be useful for remembering stuff I do, and a place for the rough notes on
  330. things I'm going to turn into finished writing later.</p>
  331. <p>This idea owes something to an experience I had in jr. high and
  332. highschool of being required to keep a daily logbook for science classes.
  333. (Ed Brogie, if you ever google yourself, here's a little ego bump for
  334. you, which I will temper by observing that the <a
  335. href="http://en.wikipedia.org/wiki/Bloom%27s_taxonomy#Cognitive">Bloom's
  336. taxonomy</a> trip you were on was really weird and probably super
  337. counterproductive - but hey, at least you tried to get people to write every
  338. day.)</p>
  339. <p>I could put this kind of effort into contributing on Stack Exchange or
  340. something, but doing <a href="https://p1k3.com/userland-book/">userland</a>
  341. showed me that I really like the <i>idea</i> of a book as a container for
  342. effort, and anyway I can't stand all that gamified bullshit with roaming
  343. packs of vicious procedure jockeys constantly assailing useful questions
  344. and answers as incorrectly framed, categorized, or imagined. This kind
  345. of thing is also why I no longer invest time in the bureaucratic hell
  346. that is the machinery of Wikipedia. Life is just too short and time too
  347. precious.</p>
  348. </article>
  349. <article>
  350. <h2>Tuesday, December 2</h2>
  351. <p>There's a list of updated pages on the
  352. <a href="http://squiggle.city/">squiggle.city home page</a>, generated
  353. from <a href="#2014-11-12">a script</a>. For a while, I was updating this
  354. by deleting it and running a vim command to pull it back in:</p>
  355. <pre><code>
  356. :r !perl listusers.pl
  357. </code></pre>
  358. <p>I wanted to make this automatic. In the old days, I would have
  359. turned on Server Side Includes in Apache and written something kind of like:</p>
  360. <pre><code>
  361. &lt;!--#exec cmd="perl /var/www/listusers.pl" --&gt;
  362. </code></pre>
  363. <p>Unfortunately, squiggle.city is running nginx, and while nginx is
  364. pretty groovy these days, its SSI module only does includes, not execs.
  365. What I settled on instead is this include directive:</p>
  366. <pre><code>
  367. &lt;!--# include file="listusers.html" --&gt;
  368. </code></pre>
  369. <p>Coupled with typing <code>su www-data</code>, followed by
  370. <code>crontab -e</code> and adding this:</p>
  371. <pre><code>
  372. # m h dom mon dow command
  373. 0,5,15,25,45 * * * * perl /var/www/listusers.pl &gt; /var/www/listusers.html
  374. </code></pre>
  375. <p>Which should refresh the list on minutes 0, 5, 15, 25, and 45 of every
  376. hour. (The intervals are arbitrary. I just kind of felt like those were
  377. the right minutes.)</p>
  378. <p>There is pretty good <a
  379. href="http://nginx.org/en/docs/http/ngx_http_ssi_module.html">documentation</a>
  380. on enabling the nginx ssi module and writing directives for it. I just had to
  381. do this in <code>/etc/nginx/sites-enabled/default</code>:</p>
  382. <pre><code>
  383. location /index.html {
  384. ssi on;
  385. }
  386. </code></pre>
  387. </article>
  388. <article>
  389. <h2>Monday, December 1</h2>
  390. <p>I'm out on the plains for a few days.</p>
  391. <p>It's a strange season in a strange century. The news cycle is still working
  392. the kind of groove that feels like it would fit pretty well in the opening
  393. infodump of a film about the collapse of civilization. (You can practically
  394. hear Godspeed swelling over the measured tones of NPR personalities and the
  395. stridencies of ChristoRepubliFascistCatholiFamilyTalk radio alike, complete
  396. with little bursts of punctuating static.)</p>
  397. <p>And then on the other hand, things are not so abnormal as all that. My
  398. cousins are having babies. My sisters are getting married. The people who
  399. were my age when I first knew them are twice my age now.</p>
  400. </article>
  401. <article>
  402. <h2>Wednesday, November 27, 12:27 p.m.</h2>
  403. <p>It turns out there's now an IHOP attached to the Flying J Limon, CO.
  404. I think this is a relatively new establishment, but truck stops have a way
  405. of aging in quickly, so it's hard to tell.</p>
  406. <p>I'm having the quick two-egg breakfast, eggs over medium, bacon, wheat
  407. toast. The eggs are pretty much actually over medium, which is a thing
  408. you can't always rely on.</p>
  409. </article>
  410. <article>
  411. <h2>Tuesday, November 25, early a.m.</h2>
  412. <p><a href="https://github.com/stars/brennen">Things I have starred on GitHub</a>.</p>
  413. <p>A thing about lists like this: They're often full of touchstones for
  414. personal memory. Here's me getting worried about e-mail. Here's me
  415. keeping an eye on the big boss. Here's when <a
  416. href="http://danacoalition.org/">Erik Winn</a> died. Here's that <a
  417. href="https://p1k3.com/2014/1/14">detour</a> into weird text editors.
  418. Here's that <a href="https://github.com/sinker/tacofancy">taco thing</a>, when they
  419. <a href="https://www.metafilter.com/125946/Google-Illiterate#4870602">closed</a> Google Reader, that <a
  420. href="https://www.youtube.com/watch?v=mzL04B9WPQg">day with the model train</a>...</p>
  421. </article>
  422. <article>
  423. <h2>Monday, November 24</h2>
  424. <p><a href="https://p1k3.com/2014/11/24">On not spamming</a>.</p>
  425. </article>
  426. <article>
  427. <h2>Saturday, November 22</h2>
  428. <p>So as we were drinking beers yesterday,
  429. <a href="http://squiggle.city/~stilldavid">~stilldavid</a> pointed out
  430. that you should be able to mail everyone on the server.</p>
  431. <p>I figured this should be pretty easy, but it took more googling and
  432. grepping and general head-scratching than I really would have liked to
  433. remember that <code>/etc/aliases</code> is a file which exists, and then
  434. to determine that the version of exim installed here supports a line like
  435. this one:</p>
  436. <pre style="white-space: pre-wrap; overflow: scroll;"><code>
  437. citizens: acg,ahava,ben,berkay,brennen,bri_huang,burnedboard,casey,danlyke,delio,drun,erik,fazol,frencil,hord,ianremsen,jbd,jenleelind,jimblom,joe,kache2k,kirstenrk,leducmills,mike,mshorter,nallen,nick,nightliz,pearcebot,randy,robacarp,sgmustadio,sibicle,skk,stilldavid,thcipriani,todd,tonicorinne,trevor,typexawesome,zinefer
  438. </code></pre>
  439. <p>...which means that if you're logged into squiggle.city, you can write
  440. to citizens@squiggle.city in your mailer of choice and we should all see
  441. your message.</p>
  442. <p>Send some e-mail?</p>
  443. </article>
  444. <article>
  445. <h2>Friday, November 21</h2>
  446. <p><a href="http://squiggle.city/~robacarp">Pretty good answer</a>.</p>
  447. </article>
  448. <article>
  449. <h2>Wednesday, November 19</h2>
  450. <p>Hey <a href="http://squiggle.city/~robacarp">~robacarp</a>, long-time
  451. listener, first-time caller here. I just have a couple of questions for
  452. you and then I'll take my response off the air, thanks:</p>
  453. <ol>
  454. <li>Where the heck do you get lanolin? Is this just a "now we have
  455. the internet and you can mail order literally anything" phenomenon, or
  456. is there a kind of store you go to and they have lanolin in a jar on the
  457. shelf like some kind of normal thing that you would normally buy in a store?</li>
  458. <li>Second, and really Rob this is more of a comment, but second, isn't there an
  459. "i" in "manifesto"?</li>
  460. </ol>
  461. </article>
  462. <article>
  463. <h2>Monday, November 17</h2>
  464. <p>Here are <a href="http://squiggle.city/~brennen/drawrings/">some drawings</a>.</p>
  465. </article>
  466. <article>
  467. <h2>Saturday, November 15, evening</h2>
  468. <p>In which I install a MUSH engine:</p>
  469. <pre><code>
  470. TOPICS
  471. Help available on the following Topics:
  472. $-COMMANDS ARBITRARY COMMANDS ATTRIBUTE OWNERSHIP
  473. BEING KILLED BOGUS COMMANDS BOOLEAN VALUES
  474. COMMAND EVALUATION COMSYS CONTROL
  475. COSTS CREDITS DROP-TO
  476. ENACTOR EXITS FAILURE
  477. FLAG LIST FLAGS FUNCTION LIST
  478. FUNCTIONS GENDER GOALS
  479. HERE HOMES LINKING
  480. LISTENING LISTS LOOPING
  481. ME MONEY MOVING
  482. OBJECT TYPES PARENT OBJECTS PARENT ROOMS
  483. PIPING POWERS LIST PUEBLO
  484. PUPPETS REGEXPS ROBBERY
  485. SEARCH CLASSES SEMAPHORES SPOOFING
  486. STACK SUBSTITUTIONS SUCCESS
  487. SWITCHES USER-DEFINED COMMANDS VERBS
  488. WIZARDS ZONES
  489. help wizards
  490. WIZARDS
  491. Wizards are the people that help run the game and make sure that everything
  492. is working properly. They have special powers to tweak reality in ways
  493. mortals can only dream of. Be nice to them, they are going out of their
  494. way to help keep the game running smoothly. And remember, if you have any
  495. problems or just want to talk to someone, they will be there for you as
  496. well.
  497. </code></pre>
  498. <p>Yesssssssssssssss.</p>
  499. </article>
  500. <article>
  501. <h2>Saturday, November 15, afternoon</h2>
  502. <p>If you have JavaScript turned on, <del>this</del> the background of this
  503. page should be a silly <a href="http://p5js.org/">p5.js</a> doodle.</p>
  504. <p>For folks with squiggle.city pages, there are a few resources at <a
  505. href="http://squiggle.city/js/">squiggle.city/js/</a> if you'd like to
  506. include jQuery, p5.js, or syntax highlighting on your pages without cluttering
  507. your <code>~/public_html</code> or relying on somebody's CDN.</p>
  508. </article>
  509. <article>
  510. <h2>Wednesday, November 12, 9:38</h2>
  511. <p>Here's <a href="tilde.club.listusers.html">listusers.pl output for
  512. tilde.club</a>, just 'cause.</p>
  513. <p>Really, the way this should work is that <code>listusers</code> should be
  514. a utility which outputs tab-separated values, and there should be another
  515. utility that's good at making TSV into HTML tables.</p>
  516. </article>
  517. <article>
  518. <h2><a name="2014-11-12"></a>Wednesday, November 12, 9:00ish</h2>
  519. <p>The <a href="http://squiggle.city/">squiggle.city home page</a> now
  520. has a slightly better summary of users' home pages. I also feel better
  521. that it now contains a table (used for tabular data, though - I should
  522. really work one in somewhere for layout).</p>
  523. <p>I wrote a little Perl script to generate that list. Here it is in
  524. full:</p>
  525. <pre class=sh_perl><code>
  526. #!/usr/bin/perl
  527. use strict;
  528. use warnings;
  529. use 5.10.0;
  530. # we'll use this to filter out people who haven't logged in.
  531. # pretty silly!
  532. my %whitelist;
  533. my (@lastlog) = split /\n/, `lastlog | grep -v Never | awk '{ print \$1; }'`;
  534. foreach my $user (@lastlog) {
  535. $whitelist{$user} = 1;
  536. }
  537. opendir(my $dh, '/home/')
  538. or die "could not open /home/: $!";
  539. my %dirs;
  540. my %titles;
  541. while (my $dir = readdir $dh) {
  542. next if $dir =~ /^[.]/;
  543. next unless $whitelist{$dir};
  544. my $index_html_path = "/home/$dir/public_html/index.html";
  545. if (-e $index_html_path) {
  546. $dirs{$dir} = (stat $index_html_path)[9]; # mtime
  547. $titles{$dir} = get_title_from_file($index_html_path);
  548. }
  549. }
  550. close $dh;
  551. sub sort_by_time {
  552. $dirs{$b} &lt;=&gt; $dirs{$a};
  553. }
  554. my $list = "&lt;table&gt;\n";
  555. foreach my $key (sort sort_by_time (keys(%dirs))) {
  556. $list .= ' &lt;tr&gt;'
  557. . '&lt;td&gt;&lt;a href="/~' . $key . '/"&gt;~' . $key . '&lt;/a&gt;&lt;/td&gt;'
  558. . '&lt;td&gt;' . $titles{$key} . '&lt;/td&gt;'
  559. . '&lt;td class=tiny&gt;' . $dirs{$key} . '&lt;/td&gt;'
  560. . "&lt;/tr&gt;\n";
  561. }
  562. $list .= "&lt;/table&gt;";
  563. say $list;
  564. sub get_title_from_file {
  565. my ($filespec) = @_;
  566. my $html = slurp($filespec);
  567. if ($html =~ m{&lt;title&gt;(.*?)&lt;/title&gt;}is) {
  568. return $1;
  569. }
  570. return '';
  571. }
  572. sub slurp {
  573. my ($file) = @_;
  574. my $everything;
  575. open my $fh, '&lt;', $file
  576. or die "Couldn't open $file: $!\n";
  577. # line separator:
  578. local $/ = undef;
  579. $everything = &lt;$fh&gt;;
  580. close $fh
  581. or die "Couldn't close $file: $!";
  582. return $everything;
  583. }
  584. </code></pre>
  585. <p>This is by no stretch of the imagination a good script. Actually, it's
  586. terrible. As an exercise, maybe I'll write and explain a version that's
  587. less dumb.</p>
  588. </article>
  589. <article>
  590. <h2>Monday, November 10, 1:58am</h2>
  591. <p>I like <a href="http://tilde.club/~schussat/slowblog-sat-20141108.html">~schussat's
  592. slow-blog from Saturday</a>.</p>
  593. </article>
  594. <article>
  595. <h2>Monday, November 10, 12:55am</h2>
  596. <p><a href="http://squiggle.city/~danlyke/">~danlyke</a> has some thoughts about
  597. design. These are harsh thoughts, but they are worth considering.</p>
  598. <p><a href="http://squiggle.city/~frencil">~frencil</a> has some thoughts
  599. about nuclides and JavaScript. I look forward to seeing where this project
  600. goes. I should mess with D3 again. It broke my brain <i>so hard</i> the
  601. first time around, probably because I cannot math very well.</p>
  602. <p><a href="http://squiggle.city/~stilldavid">~stilldavid</a> has some
  603. thoughts about science, and measurement, and value.</p>
  604. <p><a href="http://squiggle.city/~acg/">~acg</a> has a list of all the
  605. things he's voted up on Hacker News, which is cool because I mostly can't
  606. bring myself to follow HN on a day-to-day basis and Alan's interest in a
  607. thing is often a pretty good filter for whether it will be worth my
  608. time.</p>
  609. <p class="centerpiece"></p>
  610. <p>If you're logged into squiggle.city, you can run a few classic text
  611. games now. I installed <code>adventure</code> a while ago, using the
  612. bsd-games package in Debian. The other day I added <code>frotz</code>,
  613. an interpreter which will let you play lots of the things at the
  614. <a href="http://www.ifarchive.org/">Interactive Fiction Archive</a>. I
  615. downloaded a version of Zork there and made a <code>zork</code> command that runs this
  616. in Frotz. What I will do eventually is install a whole crapload of
  617. adventure games and make a big menu for running them.</p>
  618. <p>I'd also like to install some development tools for this kind of thing.
  619. I used to dabble in <a href="http://www.tads.org/">TADS</a> and such, and
  620. it was fun even though I never wrote a game that anyone would actually
  621. play. I should probably take another look, because I'll bet the
  622. <i>programming</i> side of this stuff would be a lot easier for me these
  623. days, even if the structuring and writing of a serious game would still
  624. be pretty daunting.</p>
  625. <p class="centerpiece"></p>
  626. <p>I'm on the tilde operators mailing list now. I get the sense that some
  627. interesting things are about to happen, and I should probably take some
  628. action with regard to those things. It's been difficult to do anything
  629. requiring thought or planning or a working memory because I have been
  630. <i>sick as a dog</i> for a bit over a week now, but I think I'm trending
  631. towards functional. I'm down to "coughing sometimes" and "feel massively stoned
  632. even though theoretically sober" from "coughing relentlessly" and "the kind
  633. of headache you think of in terms of how bad the tunnel vision is at any
  634. given moment." This is promising.</p>
  635. </article>
  636. <article>
  637. <h2>Tuesday, November 4, 4:48pm</h2>
  638. <p>Oh also, I wrote <a href="https://p1k3.com/2014/11/3">a little bit about
  639. quitting</a> SparkFun and talking in front of people.</p>
  640. <p>I'm going to bet this isn't the last I'll write about either of these things.</p>
  641. <p>The best tweet I saw today was
  642. <a href="https://twitter.com/GreatDismal/status/529706476315500544">this one</a>,
  643. by Wm. Gibson, in tribute to everybody's favorite Colorado airport demon horse.</p>
  644. </article>
  645. <article>
  646. <h2>Tuesday, November 4</h2>
  647. <p>New on ~c:</p>
  648. <ul>
  649. <li><a href="http://squiggle.city/~zinefer/">our first arcade</a></li>
  650. <li><a href="http://squiggle.city/~stilldavid/">Dave is gonna write</a></li>
  651. <li><a href="http://squiggle.city/~nallen/">Nick's face</a></li>
  652. </ul>
  653. </article>
  654. <article>
  655. <h2>Friday, October 31</h2>
  656. <p>Hi SparkFun.</p>
  657. <p>Here are some <a
  658. href="https://p1k3.com/userland-book/slides/">slides</a> from the talk I
  659. gave today on the command line.</b>
  660. </article>
  661. <article>
  662. <h2>Tuesday, October 28</h2>
  663. <p>Last night's project: <a href="https://github.com/brennen/git-feed">git-feed</a>:
  664. a simple tool for making Atom feeds out of git commit logs.</p>
  665. </article>
  666. <article>
  667. <h2>Monday, October 27</h2>
  668. <p>I'm doing a "lunch &amp; learn" at work on Friday that will attempt to
  669. be a gentle introduction to the command line.</p>
  670. <p>I have <i>no idea</i> how to go about this, really. Some smart people
  671. on irc.tilde.club suggested that I go with the "tell them what you're going
  672. to tell them, tell them, and tell them what you told them" + "tell them
  673. about three important things" approaches. These seem like good ideas. I
  674. guess I will start by trying to decide what the three things should be.</p>
  675. <p>I used to be so very afraid of public speaking of any kind. Like, physically
  676. shaking, cold sweats, creeping numbness, inability to talk terrified. I don't
  677. really think I am any more, but I'm not sure how that changed.</p>
  678. <p>It's funny how what you're afraid of changes. I used to be afraid to say
  679. things in front of people. Now I'm afraid that everyone I've ever loved is
  680. going to die and everything I've ever done will be forgotten and it will
  681. be as if I never even lived. The defining difference between these two fears
  682. is probably that the former wasn't even really <i>of</i> anything at all
  683. and the latter is an objective fact.</p>
  684. <p>Anyhow, if you have any ideas about what the best thing to convey to
  685. people right after you give them a shell account is, I would love to hear
  686. them.</p>
  687. <p class="huge centerpiece"></p>
  688. </article>
  689. <article>
  690. <h2>Saturday, October 25</h2>
  691. <p>Reading about nerd things:</p>
  692. <ul>
  693. <li><a href="http://michaelcoyote.github.io/2014/08/15/my-fathers-tools/">my father's tools...</a> - on Awk</li>
  694. <li>a lot of <a href="http://tilde.club/~ford/">~ford</a></li>
  695. <li>a lot of things via <a href="http://tilde.club/~_/">~_</a></li>
  696. </ul>
  697. </article>
  698. <article>
  699. <h2>Friday, October 24</h2>
  700. <p>squiggle.city, while still far from heavily trafficked or populated,
  701. stirs a little, and a few things emerge:</p>
  702. <ul>
  703. <li><a href="http://squiggle.city/~robacarp">~robacarp</a> makes a squiggle follow your mouse</li>
  704. <li><a href="http://squiggle.city/~thcipriani">~thcipriani</a> has a nice face up</li>
  705. <li><a href="http://squiggle.city/~todd/">~todd</a> is all droney</li>
  706. <li><a href="http://squiggle.city/~joe/">~joe</a> clearly understands the internet as well as anyone</li>
  707. <li><a href="http://squiggle.city/~randy/">~randy</a> also has sound ideas</li>
  708. </ul>
  709. </article>
  710. <article>
  711. <h2>Monday, October 20</h2>
  712. <p>So for now, I'm going to mirror this on both tilde.club and
  713. squiggle.city.</p>
  714. <p>squiggle.city is coming together pretty ok. I'm maybe going to rethink
  715. the Debian stable approach, because everything is <i>super old</i>. On the
  716. other hand, I'm not sure if I want to run testing. I'm still pretty sure I
  717. don't want to run Ubuntu but I guess we'll see.</p>
  718. <p style="text-align:center;"></p>
  719. <p>Also, I just put up a new version of <a
  720. href="https://p1k3.com/userland-book">userland</a> that feels more complete
  721. to me. I think I'm going to call this version 1.0.0 (except maybe for
  722. adding more detail about how to run your own Linux) and wait until after
  723. I've tried to teach out of it to make any more changes.</p>
  724. <p style="text-align:center;"></p>
  725. <p><a href="https://p1k3.com/">p1k3 is live again!</a> Well, minus the wiki part,
  726. but I'll get that back up soonish.</p>
  727. <p>This is good: <a href="http://monkey.org/~marius/unix-tools-hints.html">Hints for writing
  728. Unix tools</a>.</p>
  729. </article>
  730. <article>
  731. <h2>Sunday, October 19</h2>
  732. <p>Now open for business, in a completely unprepared fashion:
  733. <a href="//squiggle.city">squiggle.city</a></p>
  734. </article>
  735. <article>
  736. <h2>Thursday, October 16</h2>
  737. <p>All of my personal internet stuff is still broken. I spent an hour
  738. earlier this evening trying to configure Apache on the machine where I'm
  739. stitching p1k3.com back together, and <i>nothing</i> worked. I had
  740. almost forgotten the unbelievable frustration of the nothing works &rarr;
  741. bash on config files &rarr; google errors &rarr; read docs &rarr; bash on
  742. config files &rarr; nothing works loop here. Apache at its worst is like
  743. a special kind of stateful psychological torture device for web
  744. nerds.</p>
  745. <p>My working life is also a shambles. For most of the workday I kept
  746. task-switching between a few dozen utterly predictable nerd failure
  747. modes: Stare at the bug tracker. Stare at the e-mail. Stare at the
  748. code just long enough to begin to understand it, then get distracted by
  749. something blowing up in the logs. Stare at the bug tracker. Go for
  750. coffee. Open some browser tabs, forget what I was trying to research.
  751. Close the wrong browser tabs, spend too much time trying to retrieve
  752. them. Review other people's code ineffectively and with misdirected
  753. hostility. Sit on the couch drinking beer and listening to the Velvet
  754. Underground. Stare at the bug tracker.</p>
  755. <p>My house is the kind of messy that usually indicates severe illness or
  756. nontrivial substance abuse issues. My clothes are all dirty. My car
  757. sounds like it's going to disintegrate. I'm pretty sure I need to
  758. advance my landlord the rent money for next month or the power's going to
  759. get turned off. I'm eating undercooked pizza at the unbelievably shitty
  760. bar across the street from my driveway (where the same angry bartender
  761. acts skeptical of my age and IDs me with focused hostility two or three
  762. times a week, but also usually proves to be nice in the long run) instead
  763. of just making a salad or something at home.</p>
  764. <p>Anyway, I just registered squiggle.city and pointed it at a
  765. DigitalOcean VM. I think AWS is maybe the standard thing, but I feel
  766. this weird sense that there is a benefit to spreading the thing out
  767. across providers. I'm going to run Debian on it because Debian is one of
  768. the longstanding loves of my technical life, and because I would rather
  769. teach unixy stuff using it, if I've got the option.</p>
  770. <p>I in no way have the mental bandwidth or the temporal capacity to
  771. sysop anything that actual human beings are using, on the off chance that
  772. anyone uses the system I spin up, but I'm going to do it anyway, because
  773. despite all the trappings of nostalgia, this feels to me somehow like a
  774. thing that gestures at a possible future that I would like to be working
  775. on, and I would really like to continue feeling that way for a
  776. minute.</p>
  777. <p>All of these decisions may bite me. I'm going to look at the existing
  778. configuration stuff people are doing tomorrow and see how practical it is
  779. for reuse, given my self-imposed constraints. If anyone would like to
  780. get on my list for an account, tweet me or find me on freenode #tildeclub as
  781. brennen or whatever.</p>
  782. <p>This is fun.</p>
  783. </article>
  784. <article>
  785. <h2>Wednesday, October 15, 12:11 a.m.</h2>
  786. <p>On the rest of the internet, things are kind of loathsome right now.</p>
  787. <p>In the tiny part of it that I inhabit, I'm watching a bunch of people
  788. rediscover things that maybe a lot of us didn't know were sincerely missed
  789. by more than just ourselves.</p>
  790. <p>I've written a handful of posts to local newsgroups tonight. This
  791. doesn't feel like an exercise in nostalgia so much as it does an exercise
  792. in <i>reevaluation</i>.</p>
  793. <p>It seems to me like this is an important distinction. You can indulge
  794. nostalgia for a little while, but you can't really trust it. Sooner or
  795. later it will deceive you really painfully.</p>
  796. <p>On the other hand, sometimes older patterns illuminate. Sometimes the
  797. nagging, pervasive sense that you have been sold a bill of goods can be
  798. thrown into a useful kind of relief in the light of a time - or just a
  799. mode - that didn't feel that way at all.</p>
  800. </article>
  801. <article>
  802. <h2>Monday, October 13</h2>
  803. <p>As happens every year or two, DreamHost just updated something and broke
  804. <a href="//p1k3.com">p1k3.com</a>, which is where I put most of my writing.</p>
  805. <p>I think I'm going to take this as a sign that maybe it's time to move that site somewhere
  806. less likely to arbitrarily quit working. I just fired up a vm on
  807. <a href="https://digitalocean.com/">DigitalOcean</a>, which was a fairly painless experience.
  808. After DNS finishes propagating, I will have to figure out an Apache configuration for the
  809. umpteenth time and install some Perl modules and muck around with SSL certificates.</p>
  810. <p>Once I get that done, I think I'll get serious about putting together a
  811. tilde.club-alike shell server. I have, right now, the following domains sitting unused:</p>
  812. <ul>
  813. <li>userland.club - I like this because it echoes my intent to make a space for playing
  814. around with the stuff in <a href="https://github.com/brennen/userland-book">userland-book</a>,
  815. but I don't want any confusion with UserLand Software.</li>
  816. <li>getyouashell.com - sort of speaks for itself, I think?</li>
  817. <li>lostsnail.org - I had this dumb idea one time about a service where you'd sign up
  818. and you'd get handwritten letters in the mail (gift subscriptions available). For some
  819. reason, despite never having done anything about the service, I haven't quite been able
  820. to bring myself to give up the domain.</li>
  821. </ul>
  822. <p>I'm not really sure any of these are quite right, but then I'm also not sure that I need
  823. to spend any more money on vanity domain names.</p>
  824. </article>
  825. <article>
  826. <h2>Saturday, October 11, 2014</h2>
  827. <p>Interesting things generally are happening in the
  828. <a href="https://github.com/tildeclub/tilde.club/issues/">tilde.club
  829. repo issues</a>. Also, I
  830. <a href="https://github.com/tildeclub/tilde.club/issues/33">asked about shells</a>.</p>
  831. </article>
  832. <article>
  833. <h2>Friday, October 10, 2014</h2>
  834. <pre class=art>
  835. __________________________________
  836. ( Time keeps getting away from me. )
  837. ----------------------------------
  838. o ^__^
  839. o (oo)\_______
  840. (__)\ )\/\
  841. ||----w |
  842. || ||
  843. </pre>
  844. </article>
  845. <article>
  846. <h2>October, 2014</h2>
  847. <pre class=art>
  848. ______________
  849. &lt; Hi everyone. &gt;
  850. --------------
  851. \ ^__^
  852. \ (oo)\_______
  853. (__)\ )\/~
  854. ||----w |
  855. || ||
  856. </pre>
  857. <p>I'm Brennen. I also have <a href="https://p1k3.com/">this other web site</a>
  858. and there is this <a href="https://p1k3.com/userland-book/">thing I am writing about
  859. using the command line</a>.</p>
  860. <p></p>
  861. <p>I am keeping this in a git repository. Here is <a href="git-feed.pl">a
  862. Perl script</a> you can use to make a <a href="feed.xml">feed</a> out of a
  863. git log. (It needs a little work to generalize well.)</p>
  864. <p>Maybe tomorrow I'll try to find my old GeoCities stuff and put it up here.</p>
  865. </article>
  866. </section>
  867. <footer>
  868. <p><img src="freespeechrib.gif"></p>
  869. <!-- Begin Tilde.Club Ring Fragment-->
  870. <center><font size="2">
  871. <center>
  872. <br><img src="webring.png" border="0" usemap="#notepad.map"><br>
  873. </center>
  874. <map name="notepad.map">
  875. <area shape="rect" coords="0, 0, 60, 70" target="_top" href="http://tilde.club/~harper/link.html?action=join">
  876. <area shape="rect" coords="130, 0, 417, 75" target="_top" href="http://tilde.club/~harper/link.html?action=random">
  877. <area shape="rect" coords="465, 0, 549, 75" target="_top" href="http://tilde.club/~harper/link.html?action=join">
  878. </map>
  879. </center>
  880. <!-- End Webring Fragment-->
  881. </footer>
  882. <script>
  883. $(document).ready(function () {
  884. // syntax highlighting - see http://shjs.sourceforge.net/
  885. // I was going to use http://prismjs.com/, which seems neat,
  886. // but that one doesn't come with Perl highlighting out of the
  887. // box, and the thing I wanted to highlight was a Perl script.
  888. // This one's been around for a while, and seems to do a pretty
  889. // nice job, really.
  890. sh_highlightDocument();
  891. // A really simple p5.js sketch - google p5.js:
  892. var lights_sketch = function(sketch) {
  893. var x = 0;
  894. var y = 12;
  895. var world;
  896. var red = sketch.color(255, 0, 0);
  897. var green = sketch.color(0, 255, 0);
  898. var blue = sketch.color(0, 0, 255);
  899. var yeller = sketch.color(255, 255, 0);
  900. var colors = [red, green, blue, yeller];
  901. var light_width = 9;
  902. var light_height = 18;
  903. var renderlight = function (x, y, color) {
  904. sketch.push();
  905. sketch.stroke(color);
  906. sketch.fill(color);
  907. sketch.ellipse(x, y, light_width, light_height);
  908. sketch.pop();
  909. };
  910. sketch.setup = function () {
  911. world = {
  912. // size of the canvas
  913. width: $(window).width(),
  914. height: $(window).height(),
  915. };
  916. sketch.createCanvas(world.width, world.height);
  917. sketch.background(0, 0, 0);
  918. };
  919. var waitfor = 1800;
  920. var wait_til = sketch.millis() + waitfor;
  921. sketch.draw = function () {
  922. x = 0;
  923. if (sketch.millis() < wait_til) {
  924. return;
  925. }
  926. sketch.clear();
  927. var previous_color;
  928. var color;
  929. while (x < world.width) {
  930. while (color === previous_color) {
  931. color = colors[ Math.floor(Math.random()*colors.length) ];
  932. }
  933. renderlight(x, y, color);
  934. x += 50;
  935. previous_color = color;
  936. }
  937. wait_til = sketch.millis() + waitfor;
  938. };
  939. };
  940. var myp5;
  941. myp5 = new p5(lights_sketch, 'squiggleCanvas');
  942. $(window).resize(function () {
  943. myp5.setup();
  944. });
  945. /*
  946. // STACK STARTS HERE
  947. // get all the "cards", hide them
  948. $cards = $('article, footer');
  949. $cards.hide();
  950. var card_number = 0;
  951. var $cur_card = $( $cards.get(card_number) );
  952. $cur_card.toggle();
  953. var transit = function (jump) {
  954. $('button').hide();
  955. $cur_card.hide();
  956. card_number += jump;
  957. // wrap around (1)
  958. if (card_number > ($cards.length - 1)) {
  959. card_number = 0;
  960. }
  961. // wrap around (2)
  962. if (card_number < 0) {
  963. card_number = $cards.length - 1;
  964. }
  965. $cur_card = $( $cards.get(card_number) );
  966. console.log(card_number);
  967. console.log($cur_card.html());
  968. $cur_card.toggle({
  969. duration: 200,
  970. done: function () { $('button').show(); }
  971. });
  972. };
  973. var $fwd_button = $('<button class=clicker-button>&rarr;</button>');
  974. var $bwd_button = $('<button class=clicker-button>&larr;</button>');
  975. var $all_button = $('<button class=clicker-button>all</button>');
  976. var $button_group = $('<div class=buttons/>');
  977. $fwd_button.click(function (e) {
  978. e.preventDefault();
  979. transit(1);
  980. });
  981. $all_button.click(function (e) {
  982. e.preventDefault();
  983. $cards.show();
  984. $button_group.hide();
  985. });
  986. $bwd_button.click(function (e) {
  987. e.preventDefault();
  988. transit(-1);
  989. });
  990. $(document).keydown(function(e) {
  991. switch(e.which) {
  992. // case 8: // backspace
  993. case 37: // left
  994. $bwd_button.click();
  995. break;
  996. // case 32: // spacebar
  997. case 39: // right
  998. $fwd_button.click();
  999. break;
  1000. case 90:
  1001. toggleFullScreen();
  1002. break;
  1003. default:
  1004. return;
  1005. }
  1006. e.preventDefault();
  1007. });
  1008. $button_group.append($bwd_button, $all_button, $fwd_button);
  1009. $('body').append($button_group);
  1010. var toggleFullScreen = function () {
  1011. if (!document.fullscreenElement && // alternative standard method
  1012. !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement ) { // current working methods
  1013. if (document.documentElement.requestFullscreen) {
  1014. document.documentElement.requestFullscreen();
  1015. } else if (document.documentElement.msRequestFullscreen) {
  1016. document.documentElement.msRequestFullscreen();
  1017. } else if (document.documentElement.mozRequestFullScreen) {
  1018. document.documentElement.mozRequestFullScreen();
  1019. } else if (document.documentElement.webkitRequestFullscreen) {
  1020. document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
  1021. }
  1022. } else {
  1023. if (document.exitFullscreen) {
  1024. document.exitFullscreen();
  1025. } else if (document.msExitFullscreen) {
  1026. document.msExitFullscreen();
  1027. } else if (document.mozCancelFullScreen) {
  1028. document.mozCancelFullScreen();
  1029. } else if (document.webkitExitFullscreen) {
  1030. document.webkitExitFullscreen();
  1031. }
  1032. }
  1033. };
  1034. */
  1035. });
  1036. </script>
  1037. </body>
  1038. </html>