Skip to content

Instantly share code, notes, and snippets.

@AlexanderEllis
Last active April 1, 2022 16:12
Show Gist options
  • Save AlexanderEllis/aa657384719134861e5bb2647649205e to your computer and use it in GitHub Desktop.
Save AlexanderEllis/aa657384719134861e5bb2647649205e to your computer and use it in GitHub Desktop.
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Caffeinspiration</title>
<link>https://alexanderell.is/</link>
<description>Recent content on Caffeinspiration</description>
<generator>Hugo -- gohugo.io</generator>
<language>en</language>
<lastBuildDate>Sun, 27 Mar 2022 13:09:00 -0400</lastBuildDate>
<atom:link href="https://alexanderell.is/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Keeping a debugging lab notebook</title>
<link>https://alexanderell.is/posts/debugging-lab-notebook/</link>
<pubDate>Sun, 27 Mar 2022 13:09:00 -0400</pubDate>
<guid>https://alexanderell.is/posts/debugging-lab-notebook/</guid>
<description>I like to keep a debugging lab notebook when I&amp;rsquo;m working through a particularly tricky problem.
It&amp;rsquo;s nothing fancy, just a new tab visit to docs.new and a quick @today to add today&amp;rsquo;s date. I usually try to describe the problem and the specific issue I&amp;rsquo;m having, including any reproduction steps or screenshots (frequently copied over from the issue tracker). I try to summarize the issue and my understanding of how things work, though this frequently leads to a handful of open questions for me to go through to really understand what&amp;rsquo;s happening.</description>
</item>
<item>
<title>Detecting pitch with the Web Audio API and autocorrelation</title>
<link>https://alexanderell.is/posts/tuner/</link>
<pubDate>Sun, 20 Mar 2022 13:00:15 -0400</pubDate>
<guid>https://alexanderell.is/posts/tuner/</guid>
<description>I&amp;rsquo;ve been playing with the Web Audio API recently, and I made a basic app that will detect the pitch of incoming tones using your microphone. You can try it by pressing &amp;ldquo;Start&amp;rdquo; (be sure to try both the sine wave and the frequency displays), and I&amp;rsquo;ll be walking through how it works below.
Start
Press start to begin Rounding options: No rounding Round to nearest Hz Round to nearest note Smoothing options: No smoothing Basic smoothing Very smoothed (note must be more consistent and held for longer) Display (click Start after you switch): Sine wave Frequency Unfortunately, JavaScript is needed to run this.</description>
</item>
<item>
<title>I prefer my biographies in chronological order, thank you very much</title>
<link>https://alexanderell.is/posts/chrono-bio/</link>
<pubDate>Sun, 13 Mar 2022 18:52:21 -0400</pubDate>
<guid>https://alexanderell.is/posts/chrono-bio/</guid>
<description>Usually, biographies go through someone&amp;rsquo;s story in roughly chronological order.
OK, that&amp;rsquo;s a little too linear, like a page-a-day journal for your entire life. Realistically, you&amp;rsquo;re going to focus on different parts of the subject&amp;rsquo;s life more than others.
You can imagine that broken up into chapters, too. Maybe our subject&amp;rsquo;s childhood is generally passed over in favor of the more interesting middle-life.
This general flow makes sense, because you can do some fun foreshadowing by mentioning things that happen in the subject&amp;rsquo;s future (orange in the diagram below), and you can remind the reader of things that happened in the subject&amp;rsquo;s past with past references (purple in the diagram below).</description>
</item>
<item>
<title>My lizard brain is no match for infinite scroll</title>
<link>https://alexanderell.is/posts/infinite-scroll/</link>
<pubDate>Sun, 06 Mar 2022 17:28:14 -0500</pubDate>
<guid>https://alexanderell.is/posts/infinite-scroll/</guid>
<description>I&amp;rsquo;m declaring defeat. Infinite scroll has won.
There is an endless supply of interesting things to consume online, and there are teams and teams of very smart people working very hard to get me to keep watching. One more video means one more metric counter incrementing, one more engagement click, one more step towards growth, ad revenue, product success&amp;hellip;
The danger for me is that I fall in. It&amp;rsquo;s so easy to open an app in an automatic movement of muscle memory, filling up an empty moment without conscious thought.</description>
</item>
<item>
<title>I miss easily seeing how my coworkers use tools</title>
<link>https://alexanderell.is/posts/casual-collaboration/</link>
<pubDate>Sun, 27 Feb 2022 13:58:57 -0500</pubDate>
<guid>https://alexanderell.is/posts/casual-collaboration/</guid>
<description>It&amp;rsquo;s one of the little things I miss about working in-person with other people.
Writing software can involve so many different tools. Before my current remote working times, one of the ways I picked up on efficient ways to use some of the tools involved was from seeing how coworkers navigated them, especially when they had a lot more practice with them.
A colleague and I would be looking at their screen together, working with a tool that I had an OK understanding of, when they&amp;rsquo;d use a feature or shortcut I didn&amp;rsquo;t even know about.</description>
</item>
<item>
<title>Morse Codle</title>
<link>https://alexanderell.is/posts/morse-codle/</link>
<pubDate>Wed, 16 Feb 2022 21:03:02 -0500</pubDate>
<guid>https://alexanderell.is/posts/morse-codle/</guid>
<description>This is a game for playing Wordle with Morse Code. JavaScript is needed to run this game. If you don&#39;t have it enabled, I totally get it — I often don&#39;t like it either. MORSE CODLE q w e r t y u i o p a s d f g h j k l Enter z x c v b n m -- Guess the MORSE CODLE in four tries.</description>
</item>
<item>
<title>Writing Morse code games in JavaScript using the Web Audio API</title>
<link>https://alexanderell.is/posts/writing-morse-code-games/</link>
<pubDate>Sat, 12 Feb 2022 12:36:19 -0500</pubDate>
<guid>https://alexanderell.is/posts/writing-morse-code-games/</guid>
<description>Playing sound with the Web Audio API Playing Morse code Morse code timing Playing letters, words, and sentences Adjusting the speed The Listening Game The &amp;ldquo;Speaking&amp;rdquo; game Parsing the incoming signal into Morse code Hooking it up to user input Finishing thoughts Last week, I posted a pair of games I made to play with Morse code in your browser.</description>
</item>
<item>
<title>Little games to play with Morse Code in your browser</title>
<link>https://alexanderell.is/posts/morse-code/</link>
<pubDate>Fri, 04 Feb 2022 22:32:54 -0500</pubDate>
<guid>https://alexanderell.is/posts/morse-code/</guid>
<description>Be sure to also check out my other Morse code game, Morse Codle, a daily Morse code Wordle puzzle.
This is a pair of games for playing with Morse Code. Since the games play the signals as sound, I recommend headphones (wired if possible for the latency) and a low volume. Game options are available towards the bottom.
Unfortunately, JavaScript is needed to run these games. The only JS running on my site is for the games (no tracking, etc) if you want to enable it.</description>
</item>
<item>
<title>Writing a toy traceroute from scratch</title>
<link>https://alexanderell.is/posts/toy-traceroute/</link>
<pubDate>Sun, 30 Jan 2022 10:59:16 -0500</pubDate>
<guid>https://alexanderell.is/posts/toy-traceroute/</guid>
<description>traceroute is a tool you can use to trace the route of packets from your computer to another computer. It lets you see each step that your packets take along the way.
For example, the following is the result of running traceroute from my computer in Massachusetts to &amp;ldquo;example.com&amp;rdquo;:
You can see that it took 8 hops to get from my computer to the destination IP (93.184.216.34), and you can see the associated timing for three different attempts for each step.</description>
</item>
<item>
<title>(1) New Message: How websites catch your attention with JavaScript</title>
<link>https://alexanderell.is/posts/attention-javascript/</link>
<pubDate>Sat, 22 Jan 2022 11:59:21 -0500</pubDate>
<guid>https://alexanderell.is/posts/attention-javascript/</guid>
<description>There are many good things about JavaScript. There are also bad things about JavaScript.
There are many cases of well-intentioned features in JavaScript being used for unhelpful purposes. These features can help support rich web applications with impressive features and capabilities, but they can often be used antagonistically, in the sense that they aren&amp;rsquo;t helpful for the user (like intercepting your clipboard commands). I find these cases interesting, and I wanted to explore a few of these attention-grabbing examples.</description>
</item>
<item>
<title>How do you visualize code?</title>
<link>https://alexanderell.is/posts/visualizing-code/</link>
<pubDate>Mon, 17 Jan 2022 17:11:31 -0500</pubDate>
<guid>https://alexanderell.is/posts/visualizing-code/</guid>
<description>The other day I was reading about the development of personal computers and the desktop GUI, and I was thinking about how comfortable we all have become with the analogy of the &amp;ldquo;desktop&amp;rdquo; for our personal computers. We place files in folders and keep them on our desktops. There&amp;rsquo;s a lot of physical action going on.
Humans are very good at understanding spaces, especially when it comes to remembering physical spaces, and it got me thinking about how we commonly visualize code.</description>
</item>
<item>
<title>A Children&#39;s Book Story About Distributed Systems</title>
<link>https://alexanderell.is/posts/terrier-dist-sys/</link>
<pubDate>Wed, 12 Jan 2022 20:07:04 -0500</pubDate>
<guid>https://alexanderell.is/posts/terrier-dist-sys/</guid>
<description>Editor&amp;rsquo;s note: the following document was found in a collection of papers and assignments, apparently dating from late 2020 when the author was stuck inside studying distributed systems. An additional note, written in green and red Crayon on the back of a CVS receipt, was found stapled to the document: &amp;ldquo;it is now winter . this work features only approximate explanations. it favors silliness over accuracy in some sections. it should be taken with a light hearted grain of salt&amp;rdquo; [sic].</description>
</item>
<item>
<title>Completing a Part-Time Master&#39;s in Computer Science While Working</title>
<link>https://alexanderell.is/posts/mscs/</link>
<pubDate>Sat, 08 Jan 2022 17:33:34 -0500</pubDate>
<guid>https://alexanderell.is/posts/mscs/</guid>
<description>&amp;ldquo;I&amp;rsquo;m going to be 29 anyways, so I might as well be 29 with a Master&amp;rsquo;s.&amp;quot;
— me 5 years ago debating whether I should take classes
On June 5, 2017, I started taking classes at Tufts University while working full time. On January 4, 2022, I submitted the final draft of my Master&amp;rsquo;s thesis. Much like my past self had hoped, I&amp;rsquo;ve made it 4 years in the future, and I&amp;rsquo;m done with my Master&amp;rsquo;s program.</description>
</item>
<item>
<title>The Strange Path of Accepting How Your Brain Works</title>
<link>https://alexanderell.is/posts/limitations/</link>
<pubDate>Sun, 31 Oct 2021 00:10:11 -0400</pubDate>
<guid>https://alexanderell.is/posts/limitations/</guid>
<description>I recently read Turing&amp;rsquo;s Cathedral, a book about the early history of computers, and it largely focused on the life and brilliant times of John von Neumann, who was, to put it simply, a genius. It is both fascinating and disappointing to learn about a brain that works so much better than your own.
Fascinating because the wide spectrum of human ability has led to a brain so capable. That we (in the general, humanity sense of &amp;ldquo;we&amp;rdquo;) are able to perform such feats is incredible.</description>
</item>
<item>
<title>Writing an RPC From Scratch</title>
<link>https://alexanderell.is/posts/rpc-from-scratch/</link>
<pubDate>Sun, 18 Apr 2021 13:15:13 -0400</pubDate>
<guid>https://alexanderell.is/posts/rpc-from-scratch/</guid>
<description>There are many ways for computers to talk to other computers. A commonly used approach is a Remote Procedure Call, or an RPC. An RPC allows for the abstraction of calling another computer&amp;rsquo;s procedure as if it were a local one with all of the transmission and communication taken care of.
Let&amp;rsquo;s say we&amp;rsquo;re writing some math program on a single computer and we have some procedure or function that handles checking if a number is prime.</description>
</item>
<item>
<title>You&#39;re Reading This in the Future</title>
<link>https://alexanderell.is/posts/youre-reading-this-in-the-future/</link>
<pubDate>Fri, 16 Apr 2021 19:39:25 -0400</pubDate>
<guid>https://alexanderell.is/posts/youre-reading-this-in-the-future/</guid>
<description>You&amp;rsquo;re reading this in the future. Isn&amp;rsquo;t that weird?
Even I&amp;rsquo;m reading this in the future. Let&amp;rsquo;s say I write the last &amp;ldquo;C&amp;rdquo; in this sentence at 7:41:50 EDT in the evening of Friday April 16, 2021, or exactly 1618616510 seconds since January 1, 1970, UTC. Even as I started typing this next sentence, let alone editing this and pushing this to my blog, that time has passed, and we&amp;rsquo;ve all moved on.</description>
</item>
<item>
<title>Checking if the Pi is done</title>
<link>https://alexanderell.is/posts/pi-cluster-monitoring/</link>
<pubDate>Tue, 10 Nov 2020 20:48:00 -0400</pubDate>
<guid>https://alexanderell.is/posts/pi-cluster-monitoring/</guid>
<description>I recently put together a Raspberry Pi cluster to try out some toy distributed systems projects, and I wanted to start with a basic monitoring program to get my feet wet and work out the following:
Getting each node running and set up with software Running Go on each machine Deploying code to each machine Nodes listening &amp;amp; responding to RPCs Sending/receiving RPCs between laptop and nodes As I&amp;rsquo;ve previously mentioned, this isn&amp;rsquo;t meant to be production grade, since I would just grab one off the shelf if that was the goal.</description>
</item>
<item>
<title>Building a Raspberry Pi Cluster for Building Toy Distributed Systems</title>
<link>https://alexanderell.is/posts/pi-cluster/</link>
<pubDate>Sat, 24 Oct 2020 20:48:06 -0400</pubDate>
<guid>https://alexanderell.is/posts/pi-cluster/</guid>
<description>I&amp;rsquo;ve recently been getting more interested in distributed systems, and I wanted to get experience building some of the concepts I&amp;rsquo;ve read about.
My interest lies more on the software and system design side &amp;ndash; more &amp;ldquo;how would we design and build an example of a distributed file system across four computers?&amp;rdquo; than &amp;ldquo;how do I make a reliable home server to play media?&amp;rdquo; &amp;ndash; which is why my focus is on playing around with some toy software problems instead of worrying about what a real production hardware setup would look like.</description>
</item>
<item>
<title>Debugging a launch-blocking issue</title>
<link>https://alexanderell.is/posts/debugging/</link>
<pubDate>Sun, 23 Aug 2020 23:14:15 -0400</pubDate>
<guid>https://alexanderell.is/posts/debugging/</guid>
<description>It was around 4PM a few Fridays ago when I heard that something had gone wrong, and I volunteered (was volunteered?) to help fix it. There was a broken internal configuration that blocked future immediate work for an upcoming launch that same day. I hadn&amp;rsquo;t worked on this particular system, just similar things before, but because I&amp;rsquo;m decent at visualizing and debugging these things, my colleague asked me for help with it.</description>
</item>
<item>
<title>Code Review and Criticism</title>
<link>https://alexanderell.is/posts/me-and-my-work/</link>
<pubDate>Wed, 03 Jun 2020 00:07:04 -0400</pubDate>
<guid>https://alexanderell.is/posts/me-and-my-work/</guid>
<description>I&amp;rsquo;ve been working in software for a few years, and I&amp;rsquo;ve come to take it for granted that I am not my work. My work exists in some separate sphere, where it can easily be critiqued, dissected, refactored, or improved by me or anyone else. It&amp;rsquo;s as if it&amp;rsquo;s in a separate pond from my private one, where any ripples don&amp;rsquo;t cross the pebbly barrier to the rest of me. I&amp;rsquo;m still proud of the things I make and still take ownership over code, projects, and problems, but those things are separate from me.</description>
</item>
<item>
<title>Don&#39;t touch my clipboard</title>
<link>https://alexanderell.is/posts/taking-over-my-clipboard/</link>
<pubDate>Mon, 17 Feb 2020 18:01:11 -0500</pubDate>
<guid>https://alexanderell.is/posts/taking-over-my-clipboard/</guid>
<description>Looking for an em dash I was recently trying to find an em dash character to use in a piece of writing. Since I don&amp;rsquo;t have the shortcut memorized—for future reference, shift+option+minus on Mac—I did a quick search for it. I didn&amp;rsquo;t see one on the search results page to copy, so I clicked into the first result: &amp;ldquo;The Punctuation Guide&amp;rdquo;:
From https://www.thepunctuationguide.com/em-dash.html
I&amp;rsquo;m a sucker for a good copy and paste, so I selected the em dash character, copied it, and pasted back into my doc.</description>
</item>
<item>
<title>Harnessing the Power of Shower Thoughts</title>
<link>https://alexanderell.is/posts/trust-in-your-unconscious/</link>
<pubDate>Sat, 16 Nov 2019 21:43:06 -0500</pubDate>
<guid>https://alexanderell.is/posts/trust-in-your-unconscious/</guid>
<description>One of the best ways to learn and come up with new ideas is to focus intensely on a problem, then let your mind wander. I&amp;rsquo;ve enjoyed doing this when problem solving and learning, and recently I&amp;rsquo;ve been thinking about how weird it is to build trust in your unconscious to do the work for you, especially when it comes to technical work.
Letting your mind focus and letting your mind wander The first recommendation I have for anyone taking a meta look at learning is Barbara Oakley&amp;rsquo;s Learning How To Learn.</description>
</item>
<item>
<title>Dark pattern for autoplaying videos: clickjacking pause</title>
<link>https://alexanderell.is/posts/intercept-pause/</link>
<pubDate>Thu, 24 Oct 2019 20:40:52 -0400</pubDate>
<guid>https://alexanderell.is/posts/intercept-pause/</guid>
<description>I recently saw a common clickjacking dark pattern when trying to pause a video the other day.
On a Bloomberg news autoplaying video, the sound is initially muted.
Clicking anywhere on the video will unmute it. It would be pretty easy to have an invisible element overlaying the video that listens for a click, and it looks like that&#39;s probably what we have here: What&#39;s interesting is that the control panel (pause, play, scrubbing, etc.</description>
</item>
<item>
<title>Clickbait Snail Mail</title>
<link>https://alexanderell.is/posts/clickbait-snail-mail/</link>
<pubDate>Sat, 19 Oct 2019 20:47:19 -0400</pubDate>
<guid>https://alexanderell.is/posts/clickbait-snail-mail/</guid>
<description>Junk mail is so interesting at its odd intersection between design, advertising, and psychology.
I usually try to pay attention to the ways that things around me are designed, and recently I&amp;rsquo;ve been saving some junk letters that are particularly interesting in their attention-grabbing efforts. Here are a few of the notable envelopes I&amp;rsquo;ve received in the past few months.
What if we didn&amp;rsquo;t put any information on it and made it look exotic?</description>
</item>
<item>
<title>MapReduce in Simple Language</title>
<link>https://alexanderell.is/posts/simple-map-reduce/</link>
<pubDate>Sat, 09 Feb 2019 00:00:00 -0500</pubDate>
<guid>https://alexanderell.is/posts/simple-map-reduce/</guid>
<description>MapReduce Explained Using the Ten Hundred Words People Use Most Often MapReduce is a good way to take a big job that would take a long time on one computer and break it up into smaller jobs that can be done by simple computers.
If you can break down a big job into smaller jobs, you can run the smaller jobs on many simple computers. If you have a lot of simple computers, you can do a lot of the smaller jobs at the same time, and this can make your job go a lot faster.</description>
</item>
<item>
<title>Good Design: Double Sided Park Signs</title>
<link>https://alexanderell.is/posts/reservoir-signs/</link>
<pubDate>Mon, 27 Aug 2018 23:52:22 -0400</pubDate>
<guid>https://alexanderell.is/posts/reservoir-signs/</guid>
<description>I often walk my dog around a small reservoir near my apartment. It&amp;rsquo;s a perfect distance for tiring a small terrier, and it&amp;rsquo;s a beautiful area.
There are a number of signs around the reservoir that tell you to not swim in the water (as it&amp;rsquo;s a backup emergency water supply) and to not walk on the ice when it&amp;rsquo;s frozen over in the winter (as it&amp;rsquo;s very, very cold if you fall in).</description>
</item>
<item>
<title>Why does a spray bottle work?</title>
<link>https://alexanderell.is/posts/check-valve/</link>
<pubDate>Fri, 08 Jun 2018 10:27:44 -0400</pubDate>
<guid>https://alexanderell.is/posts/check-valve/</guid>
<description>Exploring a simple machine I took apart a simple spray bottle to see how it kept fluid flowing only in one direction from the reservoir to the nozzle. It does so with simple check valves made of two pieces of plastic, a spring, and a small sphere. It&amp;rsquo;s a simple way to solve a tricky problem.
A simple spray bottle One way flow It&amp;rsquo;s often useful to restrict flow to only one direction.</description>
</item>
<item>
<title>Letting the User Guide You: Analyzing Store Design</title>
<link>https://alexanderell.is/posts/store-layout/</link>
<pubDate>Wed, 06 Jun 2018 09:02:23 -0400</pubDate>
<guid>https://alexanderell.is/posts/store-layout/</guid>
<description>I enjoy looking at design in everyday life and the balance between how things are designed and how people try to use them.
A store I visited recently had bad customer flow, and the signs were there. There was literally a sign telling customers where to line up for the checkout line. Customers didn&amp;rsquo;t naturally line up there, and an employee was correcting customers who missed the sign. This is bad design.</description>
</item>
<item>
<title>Building a Simple Cache Server in Python</title>
<link>https://alexanderell.is/posts/simple-cache-server-in-python/</link>
<pubDate>Sat, 26 May 2018 10:24:05 -0400</pubDate>
<guid>https://alexanderell.is/posts/simple-cache-server-in-python/</guid>
<description>I&amp;rsquo;m a fan of small toy projects that have the sole purpose of demonstrating a concept. This is a small project that demonstrates how a cache server works.
I think it&amp;rsquo;s important to balance toy projects with getting exposure to production-level code. While this project has been helpful for understanding the idea, an open source project like [Squid-Cache] (https://github.com/squid-cache/squid) is definitely on my reading list!
At the very simplest level, an HTTP server responds to requests.</description>
</item>
<item>
<title>Investigating JavaScript&#39;s RegExp Lookbehind</title>
<link>https://alexanderell.is/posts/regex-lookbehind/</link>
<pubDate>Sat, 28 Apr 2018 13:22:25 -0400</pubDate>
<guid>https://alexanderell.is/posts/regex-lookbehind/</guid>
<description>Some people, when confronted with a problem, think “I know, I&amp;rsquo;ll use regular expressions.” Now they have two problems.
Jamie Zawinski
Regular Expression Lookbehinds I recently came across an interesting regular expressions use case that led to an interesting look into regular expressions, JavaScript engines, and release versions.
In particular, I was trying to find a certain substring from a string that did not contain a substring preceding it.</description>
</item>
<item>
<title>JavaScript: Writing your own Array.reduce</title>
<link>https://alexanderell.is/posts/javascript-array-reduce/</link>
<pubDate>Sun, 01 Apr 2018 09:51:00 -0400</pubDate>
<guid>https://alexanderell.is/posts/javascript-array-reduce/</guid>
<description>I&amp;rsquo;ve found that one of the best ways for me to really understand anything is to implement it myself. Between the ECMAScript spec and a few lines of JavaScript, you can build a chunk of knowledge for a very specific area of JavaScript. Doing this often is a great way to gain a deeper understanding of the language, and it&amp;rsquo;s a great exercise in reading the docs, reading code, and creating your own solution.</description>
</item>
<item>
<title>typeof null: investigating a classic JavaScript bug</title>
<link>https://alexanderell.is/posts/typeof-null/</link>
<pubDate>Mon, 19 Mar 2018 08:40:17 -0400</pubDate>
<guid>https://alexanderell.is/posts/typeof-null/</guid>
<description>In my last post, I looked into some JavaScript casting and explored why 0 &amp;lt;= null evaluates as true.
For this post, I&amp;rsquo;d like to investigate another unexpected behavior in JavaScript: why typeof(null) evaluates as &#39;object&#39;.
This is a well-known bug, and we&amp;rsquo;ll investigate first in the ECMAScript specification followed by a deep dive into an early implementation of JavaScript to see the bug in its natural habitat.
The main idea is that the code assigned each item some bits for use as flags for different types, but null was different.</description>
</item>
<item>
<title>Investigating JavaScript Casting Behavior</title>
<link>https://alexanderell.is/posts/javascript-casting/</link>
<pubDate>Sun, 18 Mar 2018 11:14:19 -0400</pubDate>
<guid>https://alexanderell.is/posts/javascript-casting/</guid>
<description>The disconnect between &amp;ldquo;what seems like it should happen&amp;rdquo; and &amp;ldquo;what happens&amp;rdquo; causes you to push doors that are to be pulled, tap ads that load in the place of content, and cast null into 0 by accident in JavaScript.
For more on JavaScript&amp;rsquo;s unintuitive behavior, please watch (or rewatch) wat.
Much of this behavior can be explained by JavaScript&amp;rsquo;s casting. From ECMAScipt: &amp;ldquo;The ECMAScript language implicitly performs automatic type conversion as needed.</description>
</item>
<item>
<title>Investigating a Bug in Moment.js</title>
<link>https://alexanderell.is/posts/investigating-moment-bug/</link>
<pubDate>Sat, 06 Jan 2018 11:37:37 -0500</pubDate>
<guid>https://alexanderell.is/posts/investigating-moment-bug/</guid>
<description>Investigating a bug in Moment.js In this post, I walk through the steps I took while investigating a bug in Moment.js, an open source JavaScript library for dealing with dates and times. Rather than write about what would have ideally happened (the steps of which would look like 1) see bug, 2) know issue, 3) investigate fix, 4) open PR), I wanted to include the entire process, which included some</description>
</item>
<item>
<title>Connecting Arduino with a Node Server</title>
<link>https://alexanderell.is/posts/arduinode/</link>
<pubDate>Mon, 01 Jan 2018 09:59:52 -0500</pubDate>
<guid>https://alexanderell.is/posts/arduinode/</guid>
<description>Arduinode I&amp;rsquo;ve been working through the Arduino Starter Kit projects recently, and I wanted to try a new project that was outside of the pre-made booklet. Working with an offline Arduino (intranet of things?) has let me learn a great deal, and I wanted to see how difficult it would be to connect my Arduino to a simple Node server, which would get me ready to connect it in any future projects.</description>
</item>
<item>
<title>MBTA Bus Mirrors</title>
<link>https://alexanderell.is/posts/mbta-bus/</link>
<pubDate>Wed, 06 Dec 2017 08:51:05 -0500</pubDate>
<guid>https://alexanderell.is/posts/mbta-bus/</guid>
<description>I take the MBTA 86 bus as part of my commute in the morning. It runs from Reservoir in Brighton to Sullivan Station in Cambridge, and it stops at Harvard on the way, which is where I get off.
Right after the Eliot street stop, there are two ways for the bus to get underground to the Harvard stop. One way is to go down Bennett St., take a right on University Road, take a right on Mt.</description>
</item>
<item>
<title>Temperature Sensing with Arduino</title>
<link>https://alexanderell.is/posts/arduino-project-3/</link>
<pubDate>Sun, 13 Aug 2017 15:16:13 -0400</pubDate>
<guid>https://alexanderell.is/posts/arduino-project-3/</guid>
<description>I worked through the third basic project in the Arduino Starter Kit Projects Book. I like to write about the projects to reinforce my own understanding.
The third project, the &amp;ldquo;Love-O-Meter&amp;rdquo;, creates a simple circuit with a temperature sensor. Using the Analog-to-Digital converter, the Arduino reads in the value coming from the temperature sensor, then lights up a combination of 3 LEDs depending on that value.
Here&amp;rsquo;s what my circuit looked like:</description>
</item>
<item>
<title>Noticing UI: Shazam&#39;s loading screen</title>
<link>https://alexanderell.is/posts/noticing-ui-shazam/</link>
<pubDate>Sat, 05 Aug 2017 21:29:38 -0400</pubDate>
<guid>https://alexanderell.is/posts/noticing-ui-shazam/</guid>
<description>Shazam&amp;rsquo;s loading screen I was pleasantly surprised by Shazam&amp;rsquo;s iPhone app loading screen, and I took a look into what makes it stand out.
Here&amp;rsquo;s what it looked like:
This felt different, and it made me look at the experience of opening apps. I started by spending a bus ride home from work opening and closing apps to get a feel for why this wasn&amp;rsquo;t like other apps.
Loading&amp;hellip; A loading screen tells a user that the app or other result is not ready yet.</description>
</item>
</channel>
</rss>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment