<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Blog feed]]></title><description><![CDATA[Riley J. Shaw is a programmer and designer. Rooted in repair and craft, he creates transparent, remixable tools for a sustainable and accessible future.]]></description><link>https://rileyjshaw.com</link><generator>GatsbyJS</generator><lastBuildDate>Thu, 09 Jul 2026 22:28:23 GMT</lastBuildDate><item><title><![CDATA[Introducing: ShaderPad]]></title><description><![CDATA[Today I’m releasing ShaderPad. It’s a small, focused library to put a shader on a website without rebuilding the same graphics scaffolding every time. If you want to experiment with writing shaders, I think this is one of the best ways to get started. Motivation

If you’ve spent much time on this website, you know I mainly use my computer to doodle. Shaders are an expressive way to sketch with code. There are many shader sandboxes online, most notably ShaderToy, that make it easy to write shaders. But platform lock-in makes moving these sketches onto your own website a hassle.

After wiring up the same…]]></description><link>https://rileyjshaw.com/blog/introducing-shaderpad</link><guid isPermaLink="false">POST_INTRODUCING_SHADERPAD</guid><pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Scaling faders: do these exist?]]></title><description><![CDATA[Occasionally, clumsily, I make music. I had a drum kit when I was growing up. Making music looked like this:

Sit down.Hit drums for an hour.

Now I’ve grown up, so I share walls with landlords and neighbours whose love is conditional. And though I’ve managed to fit drums into some astonishing nooks, my recent apartments haven’t had room for surfaces that I don’t eat or sleep on.

These days, I make music with a keyboard or drum pad connected to my computer. It’s the same computer that I spend most of my time…]]></description><link>https://rileyjshaw.com/blog/scaling-faders</link><guid isPermaLink="false">POST_SCALING_FADERS</guid><pubDate>Tue, 17 Nov 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[April 4th is Deletion Day]]></title><description><![CDATA[<p>I included the following in <a href="https://sfpc.rileyjshaw.com/post/171435065582/my-school-for-poetic-computation-application" rel="noopener noreferrer" target="_blank">my application for SFPC</a>:</p><blockquote><p>DELETION, PERMANENCE, AND CONSISTENCY=====================================</p><p>Silicon
 Valley likes to store data because it entrenches people in their past 
behaviors. Corporate culture’s emphasis on consistency is ableist, 
colonizing, transphobic, and represents a growing discomfort with 
people’s fluidity.</p><p><b>I hope someday to have an International Day of Deletion.</b> How can we live more presently?</p></blockquote><p>I am excited to say that after a few years of privately practicing Deletion Day on April 4th, we’ve got <a href="https://deletionday.com" rel="noopener noreferrer" target="_blank">a public website</a>.</p><p>Deletion Day 2020 is less straightforward than it’s been in past years. With the isolation of social distancing, I’ve found comfort in social and digital media. And my gripes about data security and privacy seem tiny next to the health crisis we’re dealing with globally. But – this is still something that matters to me. Privacy and agency remain important components of the rapid changes we’re witnessing in government and society.</p>]]></description><link>https://sfpc.rileyjshaw.com/post/614491710124359680/april-4th-is-deletion-day</link><guid isPermaLink="false">SFPC_TUMBLR_614491710124359680</guid><pubDate>Sat, 04 Apr 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[I oppose Amendment 3 to the .COM Registry Agreement]]></title><description><![CDATA[ICANN is the governing body for the Internet’s domain name system. They are responsible for enabling and achieving “broad representation of the global Internet community”. Over the past few years they have proven to be shady, if not downright corrupt. Last…]]></description><link>https://rileyjshaw.com/blog/ICANN-Amendment-3</link><guid isPermaLink="false">POST_ICANN_AMENDMENT_3</guid><pubDate>Mon, 10 Feb 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[Repair Matters on CBC Radio]]></title><description><![CDATA[I was on the CBC again! Kady Wong and I representedRepair Matters on BC Today this afternoon. You can listen to the segment here. It starts at 33:30.]]></description><link>https://rileyjshaw.com/blog/repair-matters-on-cbc-radio</link><guid isPermaLink="false">POST_REPAIR_MATTERS_ON_CBC_RADIO</guid><pubDate>Mon, 16 Sep 2019 00:00:00 GMT</pubDate></item><item><title><![CDATA[final showcase project: depression]]></title><description><![CDATA[<blockquote><p>“how can i help?”</p><p>a solitary
 dial reflects the machine’s physical clock speed, acting as display 
rather than control. despite appearances, your presence is appreciated.</p></blockquote><p><i>depression</i> is a personal reflection of my past few years, struggling
 with depression in an environment that couldn’t help or support me the 
way i needed. <i>depression </i>initially existed as part of a larger criticism of  capitalism and the work ethic. i stripped down the larger piece until one exposed dial remained.</p><p>the dial  represents the machine’s energy level. turned all the way down, it represents depression; the machine’s&nbsp;clock speed drops, and it becomes so sluggish it’s nearly inoperational. when the dial is turned all the way up, the machine works “as intended”.</p>]]></description><link>https://sfpc.rileyjshaw.com/post/182905537092/final-showcase-project-depression</link><guid isPermaLink="false">SFPC_TUMBLR_182905537092</guid><pubDate>Wed, 25 Apr 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[a few ideas along the way]]></title><description><![CDATA[<p>annnd the showcase is finished! i’m working on a writeup for my final project, but in the meantime here are some other ideas i tested along the way. this post won’t get into the themes i wanted to explore with these pieces, since i’d rather spend that time on the final writeup. hopefully you find some of these  interesting without explanation!</p><p><b>geometries that reveal contradictory images / messages from different perspectives</b> (to be printed, then origami’d). i tested a few geometries for this one; here’s a prototype i built to test “print” images to a pyramidal lattice:</p><p><b>self-destructive art piece that wants privacy:</b></p><p><b>wiping away digital residue:</b></p><p><b>a printer that ran through a scanner that ran through another printer and then into a paper shredder because idk state surveillance or something:</b></p>]]></description><link>https://sfpc.rileyjshaw.com/post/179360727897/a-few-ideas-along-the-way</link><guid isPermaLink="false">SFPC_TUMBLR_179360727897</guid><pubDate>Tue, 24 Apr 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[Calling all New York friends!]]></title><description><![CDATA[<p>The SFPC showcase is this weekend. Come check it out!</p><p style=""><a href="https://www.eventbrite.com/e/sfpc-spring-2018-student-showcase-tickets-45020562715" rel="noopener noreferrer" target="_blank">https://www.eventbrite.com/e/sfpc-spring-2018-student-showcase-tickets-45020562715</a></p>]]></description><link>https://sfpc.rileyjshaw.com/post/173128872587/calling-all-new-york-friends</link><guid isPermaLink="false">SFPC_TUMBLR_173128872587</guid><pubDate>Fri, 20 Apr 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[v.1]]></title><description><![CDATA[<p>with the showcase coming up, i’ve been ignoring this blog to fill my sketchbook with desperate project ideas. it’s been a process. i’ve built a few prototypes to 50% but haven’t been satisfied yet.</p><p>this evening (less than two days before the showcase) i finally had an idea that stuck. i’m writing from the subway home after building the enclosure and v1 of the software:</p><p>the project is called depression. i’m excited to write more about it soon!</p>]]></description><link>https://sfpc.rileyjshaw.com/post/173089791367/v1</link><guid isPermaLink="false">SFPC_TUMBLR_173089791367</guid><pubDate>Thu, 19 Apr 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[Telepresence Manifesto (2018 redux)]]></title><description><![CDATA[<p>today in critical theory, we read and discussed <a href="https://github.com/morehshin/TheRadicalOutside_Spring2018#on-manifestos" rel="noopener noreferrer" target="_blank">a few “manifestos for the internet age”</a>. i’ve got a cold so i called in; when the class broke out to create their own manifestos, i decided to write a “telepresence manifesto” from my sniffly blanket fort.</p><p><a href="https://spectrum.ieee.org/robotics/artificial-intelligence/telepresence-a-manifesto" rel="noopener noreferrer" target="_blank">turns out marvin minsky beat me to it.</a> for context: minsky, who said “i don’t think there is any such thing” regarding human consciousness, co-founded MIT’s AI laboratory. MIT has a long history of military research; in recent years, its public focus has shifted to military robots, drones, and battle suits.</p><p>his manifesto creeps me out. i changed “hands” to “drones” to emphasize why. Edits left as strikethroughs; emphasis my own.</p>]]></description><link>https://sfpc.rileyjshaw.com/post/172567522977/telepresence-manifesto-2018-redux</link><guid isPermaLink="false">SFPC_TUMBLR_172567522977</guid><pubDate>Tue, 03 Apr 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[unhitching]]></title><description><![CDATA[<p>The possibility, vital for life, of unhitching, which consists… in grasping, during the brief intervals in which our species can bring itself to interrupt its hive-like activity, the essence of what it was and continues to be, below the threshold of thought and over and above society: in the contemplation of a mineral more beautiful than all our creations; in the scent that can be smelt at the heart of a lily and is more imbued with learning than all our books; or in the brief glance, heavy with patience, serenity and mutual forgiveness, that, through some involuntary understanding, one can sometimes exchange with a cat.</p><p>Claude Lévi-Strauss, “Tristes Tropiques”</p>]]></description><link>https://sfpc.rileyjshaw.com/post/179678255817/unhitching</link><guid isPermaLink="false">SFPC_TUMBLR_179678255817</guid><pubDate>Sat, 31 Mar 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[making nothing]]></title><description><![CDATA[<p>here’s a post that i wrote during my second week here. now that the showcase is coming up, i need to start making a thing. guess i’d better put this up before that starts :)</p><p>one of my major goals during this program is to not make things.</p><p><i>* silence. the sfpc showcase curators back away slowly to discuss what a mistake they’ve made. *</i></p><p>it’s okay, i’ll do the assignments and make a showcase project and all that. i’m still going to make things. it’s hard not to; i’ve already made a lot of Things since arriving, more than i’m comfortable with. but i’m celebrating all the things i think of that i don’t make.</p><p>during the binary numbers assignment, i came up with an idea to:</p><ul><li>map binary digits (bits) to piano keys</li><li>find binary numbers that resolve to nice chords</li><li>create a simple matching app that prompts players with a decimal number and celebrates when the correct chord is played</li></ul>]]></description><link>https://sfpc.rileyjshaw.com/post/172372422682/making-nothing</link><guid isPermaLink="false">SFPC_TUMBLR_172372422682</guid><pubDate>Thu, 29 Mar 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[checking in]]></title><description><![CDATA[<p>hi! i haven’t written here in a while. school is busyyy. reading a lot, building a bit, exploring new york, etc. i’ve got a few drafts / reflections from the past few weeks which i’ll hopefully post, but here’s the official rundown so far:</p><p><a href="https://medium.com/sfpc/by-yeli-student-of-sfpc-spring-2018-e007cf28ccdb" rel="noopener noreferrer" target="_blank">week 1</a></p><p><a href="https://medium.com/sfpc/spring-2018-week-2-8539ec15443" rel="noopener noreferrer" target="_blank">week 2</a></p><p><a href="https://medium.com/sfpc/spring-2018-week-3-26068381ab30" rel="noopener noreferrer" target="_blank">week 3</a></p><p><a href="https://medium.com/sfpc/spring-2018-week-4-9f7587d464dc" rel="noopener noreferrer" target="_blank">week 4</a></p><p><a href="https://medium.com/sfpc/spring-2018-week-5-36df8924e06e" rel="noopener noreferrer" target="_blank">week 5</a></p><p>…i can’t believe we’re halfway through! final showcase prep is starting and i still have no idea what i’ll build. yikes! gonna go ponder that, bye for now :)</p>]]></description><link>https://sfpc.rileyjshaw.com/post/172315833927/checking-in</link><guid isPermaLink="false">SFPC_TUMBLR_172315833927</guid><pubDate>Tue, 27 Mar 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[border crossing]]></title><description><![CDATA[<p>headed back to canada for the weekend to see the AGO’s yayoi kusama exhibit (RAD!) and attend a funky dance (RAD!). i’m back at the airport now and made it through (phewf). explaining this school at customs is always complicated, and i’ve been pulled into secondary each time.</p><p>with this week’s readings on “security” + surveillance for our crit theory course (“the radical outside”) fresh on my mind, the customs experience was heightened. last time reached an ABSURD level of invasiveness with questions about my family. this time was just lots of silence as i pondered what the neural nets were cooking up.</p><p>lil thought: upon saying i quit my job just over a month ago, the agent said “oh - that’s a really long time”. Work is a weed we’re feeding 🌱 neoliberal capitalism, “we eat for you”, soapbox, etc.</p>]]></description><link>https://sfpc.rileyjshaw.com/post/171825548577/border-crossing</link><guid isPermaLink="false">SFPC_TUMBLR_171825548577</guid><pubDate>Tue, 13 Mar 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[I have a new blog]]></title><description><![CDATA[I made this website in early 2014 to document projects I worked on at Hacker School. Though I’ve changed a lot since then and worked on all sorts of problems, the site hasn’t updated to reflect that. After three years working on Khan Academy’s engineering team, I left to pursue art and activism full time at the School for Poetic Computation. I’m posting snippets at sfpc.rileyjshaw.com.

At some point I’ll update this site to reflect my current focus. For the time being, I’ve merged my waaay outdated portfolio into the lab.

For more about what I’m focusing on at the moment, you can check out my application to SFPC. It’s half a year out of date at time of writing, but that’s more recent than…]]></description><link>https://rileyjshaw.com/blog/i-have-a-new-blog</link><guid isPermaLink="false">POST_I_HAVE_A_NEW_BLOG</guid><pubDate>Mon, 05 Mar 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[My School for Poetic Computation application]]></title><description><![CDATA[<p>I’ve decided to post my response to the three questions SFPC asks potential participants.</p><p>Before I start any application process I try to learn as much as I can about the place. That involves learning about the folx involved. I hope this post helps a future SFPC attendee get started on their application.</p><p>If you’ve landed here from a search and are considering applying, I recommend doing so! It’s fun here and the people are nice.</p><p><b>A disclaimer  before we get into it:</b> everyone who goes through SFPC comes from different backgrounds. If you see something on my application that you haven’t experienced, please don’t take it as a requirement. Batches are carefully selected to include different perspectives and skillsets. And you’re awesome 💕</p>]]></description><link>https://sfpc.rileyjshaw.com/post/171435065582/my-school-for-poetic-computation-application</link><guid isPermaLink="false">SFPC_TUMBLR_171435065582</guid><pubDate>Fri, 02 Mar 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[Oh, And Speaking Of Consistency...]]></title><description><![CDATA[<p>I’m capitalizing words sometimes now. New brand guidelines, hot off the presses.</p>]]></description><link>https://sfpc.rileyjshaw.com/post/171435153227/oh-and-speaking-of-consistency</link><guid isPermaLink="false">SFPC_TUMBLR_171435153227</guid><pubDate>Fri, 02 Mar 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[metropolis]]></title><description><![CDATA[<p>i watched metropolis (1927) tonight at a bar with some friends. despite being nearly a century old, it’s  a pertinent commentary on class and technology. the explicit moral is literally spelled out at the end, I guess:</p><blockquote><p><i>there can be no understanding between the hands and the brain unless the heart acts as mediator.</i></p></blockquote><p>but we couldn’t reach consensus about what this meant re: the worker struggles depicted in the film.</p><p>anyway, it’s late so instead of getting getting into heady things like that, i’ll share something that made me laugh during the movie. this scene reminded me  of my lacking estimation skills at various points in my corporate tech career:</p><p>^ me, hand waving</p><p>^ my manager</p><p>^ my current progress</p>]]></description><link>https://sfpc.rileyjshaw.com/post/171298312372/metropolis</link><guid isPermaLink="false">SFPC_TUMBLR_171298312372</guid><pubDate>Mon, 26 Feb 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[oh dear, my gifs aren’t animating. i’ll never be famous.]]></title><description><![CDATA[<p style="">oh dear, my gifs aren’t animating. i’ll never be famous.</p>]]></description><link>https://sfpc.rileyjshaw.com/post/171298380607/oh-dear-my-gifs-arent-animating-ill-never-be</link><guid isPermaLink="false">SFPC_TUMBLR_171298380607</guid><pubDate>Mon, 26 Feb 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[rough thoughts on the bear thing]]></title><description><![CDATA[<p>it was silly to write all of this down but i  created this blog today and i’m still editing the layout, so i want more words to work with.</p><p>create a few distinct sounds, for example:</p><ul><li>cup/table tap</li><li>cup/table scrape</li><li>ball/table tap</li><li>ball/table scrape</li><li>cup/ball tap</li></ul><p>these examples are unambiguous and easy to perform rapidly by someone keeping the cup in one hand &amp; ball in the other. i’ll refer to each performed sound as a “bit” from here on out.</p><p>for n bits, you have (number of sounds)^n options. with the examples above that’s 5^n, which is plenty.</p><p>so what’s important to convey?</p><p>the shapes are curvy and strange, so it’s easier to share a limited reference table of basic + advanced shapes instead of deriving each part of the bear from scratch. three bits could cover 125 shapes, which is  ample for bear and bear-like drawings.</p>]]></description><link>https://sfpc.rileyjshaw.com/post/171116512267/rough-thoughts-on-the-bear-thing</link><guid isPermaLink="false">SFPC_TUMBLR_171116512267</guid><pubDate>Wed, 21 Feb 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[“D30U30: You’re in Canadian Business!”]]></title><description><![CDATA[A few months ago I was nominated for a dubious “Developer 30 Under 30” award. I attended the first reception to speak with the organizers about representation in tech, and the impact these lists have on how we (individually and collectively) identify who moves into STEM. I wanted to ensure they took this seriously; specifically, that they wouldn’t promote a toxic status quo. Then this happened: There was a lot of internal discussion about “fairness”, etc. Most was disappointing and unsurprising; some was encouraging. The list got re-ordered, for whatever that’s worth. But if there was any lingering doubt in your mind about industry awards, they are 100% made up and unrepresentative of…]]></description><link>https://rileyjshaw.com/blog/D30U30</link><guid isPermaLink="false">POST_D30U30</guid><pubDate>Thu, 27 Apr 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[All of which are American dreams]]></title><description><![CDATA[Title lifted from . The results of the US presidential election last Tuesday shocked me. I checked Twitter to find that my entire feed felt the same. Again. Oops, I created a comfortable echo-chamber for myself.

Social news algorithms have been under intense scrutiny over the past week. I wanted to see what other people’s social media bubbles looked like, so I wrote a little shell script1.

I’m not interested in building empathy for racists. I am interested in improving my own awareness. This tool displaces me from the narrative I chose and delivers me from opinions I agree with. It’s helped me realize just how powerful a curated social feed can be as a tool of persuasion…]]></description><link>https://rileyjshaw.com/blog/all-of-which-are-american-dreams</link><guid isPermaLink="false">POST_ALL_OF_WHICH_ARE_AMERICAN_DREAMS</guid><pubDate>Sun, 13 Nov 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Escher Sketch!]]></title><description><![CDATA[I just had a blast playing with Anselm Levskaya’s Escher Sketch project!]]></description><link>https://rileyjshaw.com/blog/eschersketch</link><guid isPermaLink="false">POST_ESCHERSKETCH</guid><pubDate>Wed, 10 Feb 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Khan Academy: a new employee’s primer]]></title><description><![CDATA[I recently joined the developer team at Khan Academy. Since arriving I’ve been surprised by a number of intentional decisions the organization has made to empower its developers. Whether you’re working in tech or just curious about the inner workings of Khan Academy, there’s some great wisdom in how things are done here. All aboard!

A benefit of working at an education startup is that everyone naturally puts a lot of thought into information design. As a result, this has been the smoothest onboarding I’ve experienced.

Onboarding…]]></description><link>https://rileyjshaw.com/blog/khan-academy-primer</link><guid isPermaLink="false">POST_KHAN_ACADEMY_PRIMER</guid><pubDate>Mon, 20 Jul 2015 00:00:00 GMT</pubDate></item><item><title><![CDATA[How to generate a static site from a folder of assets using Gulp]]></title><description><![CDATA[An entirely skippable preface (Seriously, we don’t start building it until the third section.)

While going through some of my dustier folders on a flight to Hawaii I came across . It’s a lovely book with plenty of inspiration for simple demos; perfect plane material.

After working through a few chapters, I moved my particle system and canvas logic into their own util.js file. Until then i’d been creating a new HTML file for each demo, manually adding the title, script includes, and next/previous links. This meant that I had to edit each file to include util.js. It was a frustrating amount of overhead considering each demo only took a few minutes to write.

didn’t someone…]]></description><link>https://rileyjshaw.com/blog/how-to-generate-a-static-site-from-a-folder-of-assets-using-Gulp</link><guid isPermaLink="false">POST_HOW_TO_GENERATE_A_STATIC_SITE_FROM_A_FOLDER_OF_ASSETS_USING_GULP</guid><pubDate>Thu, 05 Mar 2015 00:00:00 GMT</pubDate></item><item><title><![CDATA[The pool on the roof must have a leak]]></title><description><![CDATA[Today we hiked the Kalalau Trail and swam beneath the cold spray of a waterfall. Today we discussed the finer points of the axolotl protocol used by TextSecure.

Today we delighted in “shave ice”, a local delicacy that is definitely not a snow cone.

Today we wrote copy, polished features, closed bugs, and merged pull-requests.

Measured by lines of code, today was short. Measured by steps taken, it was tall. Measured by ideas discussed, things learned, and sights seen, it was towering.

For the past week and a half I’ve been trapped on an island among a team of brilliant hackers. A curious duality exists on the island. At sunrise, stand…]]></description><link>https://rileyjshaw.com/blog/the-pool-on-the-roof-must-have-a-leak</link><guid isPermaLink="false">POST_THE_POOL_ON_THE_ROOF_MUST_HAVE_A_LEAK</guid><pubDate>Wed, 21 Jan 2015 00:00:00 GMT</pubDate></item><item><title><![CDATA[Graphing depth]]></title><description><![CDATA[There’s something magical about a procedure that just works. Even if you don’t understand why it works, having a set of steps that will always get you to the same destination feels nice. In life there are few patterns that consistently produce the same outcome. But in math? Hoo boy… This post takes us through two very simple procedures that converge to a numerical endpoint. We’re going to graph the amount of time it takes to reach this endpoint, which actually ends up being quite pretty.

Careful; such routines can be somewhat of a rabbit hole. As xkcd’s Randall Munroe puts it,

The Collatz Conjecture states that if you pick a number, and if it’s even divide it by two and if it’s odd…]]></description><link>https://rileyjshaw.com/blog/graphing-depth</link><guid isPermaLink="false">POST_GRAPHING_DEPTH</guid><pubDate>Thu, 04 Dec 2014 00:00:00 GMT</pubDate></item><item><title><![CDATA[Stealing history with CSS binary trees]]></title><description><![CDATA[History-sniffing attacks let front-end code peek at other sites you’ve visited. They can be used to target ads, steal information, or discern your identity. Creepy. Historically, one of the most popular history-sniffing techniques was to style  links using CSS and check their color with JavaScript. Major browsers started implementing privacy changes to address this attack in 2010.1 As a result, JavaScript’s  now returns unvisited styles for visited sites.

Even with these limitations there are a number of ways to scrape a user’s…]]></description><link>https://rileyjshaw.com/blog/stealing-history-with-CSS-binary-trees</link><guid isPermaLink="false">POST_STEALING_HISTORY_WITH_CSS_BINARY_TREES</guid><pubDate>Wed, 12 Nov 2014 00:00:00 GMT</pubDate></item><item><title><![CDATA[Riddle: chicken prices]]></title><description><![CDATA[Someone posted a riddle a few days ago: Three farmers were selling chickens at the local market. One farmer had 10 chickens to sell, another had 16 chickens to sell, and the last had 26 chickens to sell. In order not to compete with each other, they agreed to all sell their chickens at the same price. But by lunchtime, they decided that sales were not going so well, and they all decided to lower their prices to the same lower price point. By the end of the day, they had sold all their chickens. It turned out that they all collected the same amount of money, $35, from the day’s chicken sales. What was the price of the chickens before lunchtime and after lunchtime?

I’d been nerd sniped, and…]]></description><link>https://rileyjshaw.com/blog/chicken-prices</link><guid isPermaLink="false">POST_CHICKEN_PRICES</guid><pubDate>Tue, 28 Oct 2014 00:00:00 GMT</pubDate></item><item><title><![CDATA[Fin?]]></title><description><![CDATA[I started writing this in April. It began, Three months ago I was in Toronto, squeezing in one last show at The Rex before shipping off to New York.

I had just finished Hacker School and wanted to write a retrospective post. I also wanted to officially resign from the Iron Blogger crew. But I was on a kiteboarding trip at the time, and the wind was picking up.

My three preceding posts are shoddy. Two are short quotes from materials I’d been reading through. The other reads like an assignment. All three were started on Monday morning before check-ins because I didn’t want to lose a bet.

I’m glad that I have a blog now. It’s a great way to share cool things that I’ve learned and silly things…]]></description><link>https://rileyjshaw.com/blog/fin</link><guid isPermaLink="false">POST_FIN</guid><pubDate>Sun, 12 Oct 2014 00:00:00 GMT</pubDate></item><item><title><![CDATA[The cat’s-whisker detector]]></title><description><![CDATA[Semiconductors are important. They allow us to make transistors1, which allow us to make integrated circuits, which allow us to build calculators and flight control systems and iPads. The transistor is the unequivocal poster child of semiconductor physics. It was developed in 1947 by John Bardeen, Walter Brattain, and William Shockley at Bell Labs.

It may have far-reaching significance in electronics and electrical communication.

This post is not about the transistor. It’s about the beginning of an industry that has changed the way we communicate. It’s also sort of about capitalism.

History

In 1874, German physicist Ferdinand Braun created a diode…]]></description><link>https://rileyjshaw.com/blog/the-cats-whisker-detector</link><guid isPermaLink="false">POST_THE_CATS_WHISKER_DETECTOR</guid><pubDate>Tue, 22 Apr 2014 00:00:00 GMT</pubDate></item><item><title><![CDATA[Accidental reset]]></title><description><![CDATA[From page 33 of the Apple II User’s Guide: Sooner or later you will hit the RESET key when you did not intend to. It is inevitable, unless your Apple II requires you to type CTRL-RESET instead of just plain RESET. You can reduce the hazard by carefully prying off the plastic keytop, leaving just the keyswitch shaft available (Figure 2-9).

You can take this one step further and make it physically harder to push down the RESET key. Get a small rubber washer about 3/8 inches inner diameter, 1/2 inch outer diameter, and 1/8 inch thick. Remove the RESET keytop as shown in Figure 2-9. Work the washer over the exposed square flange of the keyshaft as shown in Figure 2-10. Replace…]]></description><link>https://rileyjshaw.com/blog/accidental-reset</link><guid isPermaLink="false">POST_ACCIDENTAL_RESET</guid><pubDate>Mon, 14 Apr 2014 00:00:00 GMT</pubDate></item><item><title><![CDATA[A language for weaklings]]></title><description><![CDATA[From Learn C The Hard Way: I’m going to guess that you come from a language for weaklings. One of those “usable” languages that lets you get away with sloppy thinking and half-assed hackery like Python or Ruby. Or, maybe you use a language like Lisp that pretends the computer is some purely functional fantasy land with padded walls for little babies. Maybe you’ve learned Prolog and you think the entire world should just be a database that you walk around in looking for clues. Even worse, I’m betting you’ve been using an IDE, so your brain is riddled with memory holes and you can’t even type out an entire function’s name without hitting CTRL-SPACE every 3 characters you type.

Br…]]></description><link>https://rileyjshaw.com/blog/a-language-for-weaklings</link><guid isPermaLink="false">POST_A_LANGUAGE_FOR_WEAKLINGS</guid><pubDate>Tue, 01 Apr 2014 00:00:00 GMT</pubDate></item><item><title><![CDATA[Hue-angle transitions]]></title><description><![CDATA[I was recently browsing a beautiful red monochrome1 site. There were a few call-to-action buttons on the page that transitioned to green on hover. Where did that brown come from?! The initial red looks great, the final green looks great, but everything between is pretty dismal. Why is that?

The RGB color model

Red Green and Blue are the three primary additive colors. Your browser takes an 8-bit intensity value for each of the R, G, and B components to determine the output color…]]></description><link>https://rileyjshaw.com/blog/hue-angle-transitions</link><guid isPermaLink="false">POST_HUE_ANGLE_TRANSITIONS</guid><pubDate>Mon, 31 Mar 2014 00:00:00 GMT</pubDate></item><item><title><![CDATA[Your art teacher lied]]></title><description><![CDATA[Guess what? Chemistry isn’t the only high school course built on a foundation of lies. In art class we’re taught that the primary colors are red, yellow, and blue. Not only is it wrong to say that there are three true primary colors, but if we were to pick three, we’d pick a better combination. Let there be light

A band of wavelengths in the electromagnetic spectrum between 390nm and 700nm makes up the visible spectrum of light; we perceive different wavelengths within this spectrum as colors. White light is a combination of all wavelengths in the visible spectrum.

Humans are trichromats, which means that we have three types of color receptors (cone cells). Our short-, mid-, and long…]]></description><link>https://rileyjshaw.com/blog/your-art-teacher-lied</link><guid isPermaLink="false">POST_YOUR_ART_TEACHER_LIED</guid><pubDate>Sun, 23 Mar 2014 00:00:00 GMT</pubDate></item><item><title><![CDATA[Taking the average tone]]></title><description><![CDATA[Today I wanted to see what the average frequency of a song would sound like with no spectrum analysis or separation. I had a hunch that it would end up sounding like garbage, and I was totally right. If you took the average color of a beautiful painting, it would likely turn out muddy brown. Today, I created the audio equivalent:

Blazo’s Misty Sapphire:

Steve Reich’s Music for 18 Musicians:

Kill the Noise remix of KOAN Sound’s Talk Box:

These first tones were generated using the powerful, free, cross-platform audio software Audacity and a cool lisp-y language called Nyquist. Since Audacity lets you run Nyquist scripts on hand-selected audio segments, this first bit was quick and dirty:…]]></description><link>https://rileyjshaw.com/blog/taking-the-average-tone</link><guid isPermaLink="false">POST_TAKING_THE_AVERAGE_TONE</guid><pubDate>Mon, 17 Mar 2014 00:00:00 GMT</pubDate></item><item><title><![CDATA[Iron blogger]]></title><description><![CDATA[A few days ago a fellow Hacker-Schooler proposed Iron Blogger to our batch. The rules are simple: Get a blogWrite on said blog at least once a weekFailing completion of #2, be humiliated and ostracized. Also, forfeit $5.

I don’t think that we’ve decided on where the money is going yet; I’m hoping for giant Iron Blogger belt buckles.

Of course I’ll do that!

At the start of the batch I vowed to avoid any projects focusing on front-end design work, including a personal site.

Oops.

I also vowed to try my hand at blogging; breaking one vow to fulfill the other can’t be that bad, right? I made an addendum, stating that I could spend exactly two days making a site… and here we are!

It had to…]]></description><link>https://rileyjshaw.com/blog/iron-blogger</link><guid isPermaLink="false">POST_IRON_BLOGGER</guid><pubDate>Mon, 10 Mar 2014 00:00:00 GMT</pubDate></item><item><title><![CDATA[window.clusterFuck]]></title><description><![CDATA[I started a project called Terra a few weeks ago. I added a conditional to  that would complain if I’d already defined the library: (function (exports) {
	function init() {
		if (!exports.terra) {
			// do initialization things
		} else {
			throw 'You’ve already defined terra. Pay attention…';
		}
	}

	// more stuff happens…

	init();
})(this);


I’ll admit that this is a really ugly pattern for handling namespaces, but even common patterns are affected by this. Let me take you on a journey through the biggest browser wat I’ve ever seen.

I ran the code and the console yelled at me.

Strange… but maybe I forgot a  somewhere. I set some…]]></description><link>https://rileyjshaw.com/blog/window.clusterfuck</link><guid isPermaLink="false">POST_WINDOW_CLUSTERFUCK</guid><pubDate>Mon, 10 Mar 2014 00:00:00 GMT</pubDate></item></channel></rss>