<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Bounded-Error Log</title>
    <link>//blog.vero.site/</link>
    <description>Recent content on Bounded-Error Log</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 31 Dec 2025 19:49:40 -0800</lastBuildDate><atom:link href="//blog.vero.site/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>all the words we leave behind</title>
      <link>//blog.vero.site/post/behind</link>
      <pubDate>Wed, 31 Dec 2025 19:49:40 -0800</pubDate>
      
      <guid>//blog.vero.site/post/behind</guid>
      <description>Here I go quoting song lyrics to myself again
I have to confess I almost forgot to write a year-end post until today, New Year’s Eve.
What did I do in 2025? As before, I worked on a lot of things on Anthropic’s interpretability team, including our massive circuit tracing and biology papers from March. Also as before, I helped run Galactic Puzzle Hunt 2025 with the rest of ✈✈✈ Galactic Trendsetters ✈✈✈ in September.</description>
    </item>
    
    <item>
      <title>Gold-medaling the 2025 IMO was easier than average</title>
      <link>//blog.vero.site/post/imo-2025</link>
      <pubDate>Wed, 03 Sep 2025 01:02:59 -0700</pubDate>
      
      <guid>//blog.vero.site/post/imo-2025</guid>
      <description>&lt;div class=&#34;series&#34;&gt;
&lt;p&gt;(Background/disclaimer: I work at Anthropic, far from any efforts
related to math reasoning or evaluations; opinions are my own. I was an
IMO gold medalist in 2012.)&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I way missed the news window on this one, but I thought it was
interesting and a bit underappreciated that the fraction of gold
medalists at the 2025 IMO (72/630 = 11.4%) is the highest it’s been
since 1981.&lt;/p&gt;
&lt;p&gt;Crudely, IMO gold medals are awarded to the highest-scoring 1/12 of
contestants.&lt;a href=&#34;#fn1&#34; class=&#34;footnote-ref&#34; id=&#34;fnref1&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt; However, because scores are integers
up to 42 and there’s no provision for tiebreaking, it’s possible for a
lot of contestants to be tied around the threshold. In that case, either
all of them get a gold medal or none do, and the fraction of gold
medalists might deviate substantially from 1/12. That’s what happened
this year: 46 contestants all won a gold medal by scoring exactly 35
points.&lt;/p&gt;
&lt;p&gt;Here’s a comparison with the fraction of IMO gold medalists for each
year since 2000. (See &lt;a href=&#34;#appendix-full-stats&#34;&gt;appendix 1&lt;/a&gt; for
a full table and &lt;a href=&#34;#appendix-reference-class&#34;&gt;appendix 2&lt;/a&gt; for
discussion of the choice of 2000.)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Vim Digraphs: The Unnecessarily Detailed Guide</title>
      <link>//blog.vero.site/post/digraphs</link>
      <pubDate>Sun, 22 Jun 2025 20:17:04 -0700</pubDate>
      
      <guid>//blog.vero.site/post/digraphs</guid>
      <description>&lt;p&gt;In Vim, in Insert mode, if you type &lt;kbd&gt;Ctrl-K&lt;/kbd&gt; followed by two
characters, you can insert a special Unicode character corresponding to
those two characters. The two-character combo is often easier to
remember than other codes. These are called digraphs.&lt;/p&gt;
&lt;p&gt;For example, &lt;kbd&gt;Ctrl-K&lt;/kbd&gt;&lt;kbd&gt;1&lt;/kbd&gt;&lt;kbd&gt;2&lt;/kbd&gt; will insert
&lt;code&gt;½&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Everything below this is unnecessary detail.&lt;/p&gt;
&lt;h3 id=&#34;what-are-all-the-digraphs&#34;&gt;What are all the digraphs?&lt;/h3&gt;
&lt;p&gt;I used to think the big table &lt;code&gt;&lt;a
href=&#34;https://vimhelp.org/digraph.txt.html#digraph-table&#34;&gt;:help
digraphs-table&lt;/a&gt;&lt;/code&gt; at the bottom of Vim’s help page for digraphs
was exhaustive. As the page explains, the mnemonics are based on &lt;a
href=&#34;https://datatracker.ietf.org/doc/html/rfc1345&#34;&gt;RFC1345&lt;/a&gt;, an
Internet standard that provides two-character mnemonics for various
characters.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Right Back Here</title>
      <link>//blog.vero.site/post/right-back-here</link>
      <pubDate>Tue, 31 Dec 2024 14:41:03 -0800</pubDate>
      
      <guid>//blog.vero.site/post/right-back-here</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/bF2LtqVBWe0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;I’m still doing interpretability at Anthropic. This year, among many
other research updates, we &lt;a
href=&#34;https://transformer-circuits.pub/2024/scaling-monosemanticity/index.html&#34;&gt;scaled
sparse autoencoders to Claude 3 Sonnet&lt;/a&gt;. There’s not a whole lot I
have to add. I like to think I improved at various clichéd abstract work
skills that I don’t have anything insightful to say about, the most
front-of-mind being communication and prioritization. It’s good to, uh,
communicate what everybody is prioritizing and communicate all the
information everybody needs to prioritize things. Thanks for coming to
my TED talk.&lt;/p&gt;
&lt;p&gt;In my personal life, I went to more in-person social events than ever
before. I took a bunch of improv classes and might actually end up
performing soon™. I went to a Jacob Collier concert and a Bear Ghost
concert. I scored 141/150 plus two beers on the AMC 12. I attended three
separate furry conventions, one of which I believe I have to credit with
indirectly motivating me to hit the gym semiregularly for the first time
in my life. (Also I &lt;a
href=&#34;https://tourtural.finalfantasyxiv.com/&#34;&gt;went to Tural&lt;/a&gt; for
summer vacation.) I’m pretty happy with all that, but it also doesn’t
really add up to exciting reflections.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How is viridis defined?</title>
      <link>//blog.vero.site/post/viridis</link>
      <pubDate>Fri, 06 Dec 2024 00:50:25 -0800</pubDate>
      
      <guid>//blog.vero.site/post/viridis</guid>
      <description>&lt;p&gt;If you’ve dabbled in data visualization, there’s a good chance you’ve
encountered the colormap &lt;code&gt;viridis&lt;/code&gt;, which was &lt;a
href=&#34;https://bids.github.io/colormap/&#34;&gt;created for matplotlib in
~2015&lt;/a&gt;.&lt;/p&gt;
&lt;script src=&#34;https://cdn.jsdelivr.net/npm/d3@7&#34;&gt;&lt;/script&gt;
&lt;figure&gt;
&lt;div class=&#34;d3-viridis&#34; style=&#34;display: flex&#34; alt=&#34;viridis gradient&#34;&gt;

&lt;/div&gt;
&lt;figcaption&gt;
This particular gradient is brought to you by
&lt;a href=&#34;//blog.vero.site/post/d3&#34;&gt;d3&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;script&gt;
window.addEventListener(&#34;DOMContentLoaded&#34;, () =&gt; {
let scale = d3.scaleSequential([0, 255], d3.interpolateViridis);
d3.selectAll(&#34;.d3-viridis&#34;).selectAll(&#34;span&#34;).data(d3.range(256)).join(&#34;span&#34;).style(&#34;background-color&#34;, i =&gt; scale(i)).style(&#34;flex&#34;, &#34;1&#34;).style(&#34;min-height&#34;, &#34;1em&#34;);


function knockoff_viridis(t) {
    let r = (+0.994*t - 0.009)*t + 0.014;
    let g = (-0.031*t + 0.895)*t + 0.135;
    let b = (-0.726*t + 0.682)*t + 0.161;
    return `rgb(${r*255}, ${g*255}, ${b*255})`;
};

function degree_four_viridis(t) {
    let r = (((-5.5793*t + 13.5837)*t - 8.5613)*t + 1.3097)*t + 0.2446;
    let g = (((-0.5587*t +  0.7695)*t - 0.5851)*t + 1.2498)*t + 0.0284;
    let b = ((( 0.5341*t -  0.8296)*t - 1.0321)*t + 1.0515)*t + 0.3552;
    return `rgb(${r*255}, ${g*255}, ${b*255})`;
}

function degree_seven_viridis(t) {
    let r = ((((((42.3473*t - 148.6685)*t + 194.9250)*t - 119.0426)*t + 37.8497)*t - 7.2161)*t + 0.5286)*t + 0.2707;
    let g = (((((( 4.8916*t -  12.2295)*t +   9.1748)*t -   1.3875)*t -  0.2732)*t - 0.7410)*t + 1.4669)*t + 0.0041;
    let b = ((((((22.6620*t -  56.3548)*t +  54.0592)*t -  29.8980)*t + 13.5239)*t - 6.0311)*t + 1.8471)*t + 0.3253;
    return `rgb(${r*255}, ${g*255}, ${b*255})`;
}

d3.select(&#34;.d3-knockoff-viridis&#34;).selectAll(&#34;span&#34;).data(d3.range(256)).join(&#34;span&#34;).style(&#34;background-color&#34;, i =&gt; knockoff_viridis(i / 255)).style(&#34;flex&#34;, &#34;1&#34;).style(&#34;min-height&#34;, &#34;1em&#34;);
d3.select(&#34;.d3-four-viridis&#34;).selectAll(&#34;span&#34;).data(d3.range(256)).join(&#34;span&#34;).style(&#34;background-color&#34;, i =&gt; degree_four_viridis(i / 255)).style(&#34;flex&#34;, &#34;1&#34;).style(&#34;min-height&#34;, &#34;1em&#34;);
d3.select(&#34;.d3-seven-viridis&#34;).selectAll(&#34;span&#34;).data(d3.range(256)).join(&#34;span&#34;).style(&#34;background-color&#34;, i =&gt; degree_seven_viridis(i / 255)).style(&#34;flex&#34;, &#34;1&#34;).style(&#34;min-height&#34;, &#34;1em&#34;);
});
&lt;/script&gt;
&lt;p&gt;You may also know about some of the considerations went into the
colormap’s design, chiefly perceptual uniformity: equally distant colors
on the colormap should “look equally different” to humans.&lt;/p&gt;
&lt;p&gt;I won’t discuss color theory much here; the talk introducing viridis
(below) is quite good, and there are many other resources online, such
as Jamie Wong’s &lt;a href=&#34;https://jamie-wong.com/post/color/&#34;&gt;From
Hexcodes to Eyeballs&lt;/a&gt; or Bartosz Ciechanowski’s &lt;a
href=&#34;https://ciechanow.ski/color-spaces/&#34;&gt;Color Spaces&lt;/a&gt;.&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/xAoljeRJ3lU&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;Instead, I nerd-sniped myself with a different question: How is
viridis, specifically, defined?&lt;/p&gt;
&lt;p&gt;This seems like it should be easy to answer. Just go into matplotlib
and find the &lt;a
href=&#34;https://github.com/matplotlib/matplotlib/blob/a04e35f76f15020b43d06b4644b5e3d544b07deb/lib/matplotlib/_cm_listed.py#L774&#34;&gt;source
code for viridis&lt;/a&gt;, right? Unfortunately, that source code is just a
list of 256 RGB triples along which colors are interpolated. This makes
sense for efficiency and even portability because (as we’ll see) the
formula for producing viridis is incredibly complicated, but it isn’t a
very satisfying answer. How did those triples originally come to be?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>D3 the Hard FP Way</title>
      <link>//blog.vero.site/post/d3</link>
      <pubDate>Sun, 28 Apr 2024 13:15:27 -0700</pubDate>
      
      <guid>//blog.vero.site/post/d3</guid>
      <description>&lt;p&gt;In theory, the idea here is similar to when I was &lt;a
href=&#34;https://blog.vero.site/post/react-redux&#34;&gt;learning React/Redux&lt;/a&gt;
and diving into &lt;a href=&#34;https://blog.vero.site/post/sql-select&#34;&gt;SQL
selects&lt;/a&gt;. In practice, I think most of D3’s complexity isn’t exactly
in a direction that is elucidated by writing down types for everything,
so the title is a mere personal snowclone. I’m just writing things out
to an arbitrary amount of detail until I understand them and can refer
to what I wrote here later.&lt;/p&gt;
&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;
&lt;p&gt;D3 is &lt;a href=&#34;https://d3js.org/what-is-d3&#34;&gt;“a JavaScript library for
visualizing data”&lt;/a&gt;. It has a lot of sublibraries that interoperate
well but could be used separately — for example, it has utilities for
manipulating colors, time, and SVG paths. Of the various concepts,
though, I think D3 &lt;em&gt;selections&lt;/em&gt; are the most distinctive and
fundamental, so they are the focus of this post.&lt;/p&gt;
&lt;p&gt;At a high level, D3 selections feel like jQuery. You run some code
and it goes into the DOM and adds, deletes, and mutates a bunch of
elements. The docs even endorse &lt;a
href=&#34;https://d3js.org/d3-selection/selecting#selection&#34;&gt;monkeypatching
d3.selection&lt;/a&gt; to add custom helpers. However, D3 has data binding and
batch operations that make it easy to change the DOM in a way that
resembles reconciliation in a framework like React.&lt;/p&gt;
&lt;h3 id=&#34;selections&#34;&gt;Selections&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;API: &lt;a href=&#34;https://d3js.org/d3-selection/selecting&#34;&gt;Selecting
Elements&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;A D3 &lt;strong&gt;selection&lt;/strong&gt; holds an array of arrays of
nullable&lt;a href=&#34;#fn1&#34; class=&#34;footnote-ref&#34; id=&#34;fnref1&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt; DOM elements. The intermediate
arrays are called &lt;strong&gt;groups&lt;/strong&gt;. Additionally, each group in a
selection is associated with a &lt;strong&gt;parent node&lt;/strong&gt;. During
basic D3 usage, you might only ever work with selections with a single
group and ignore parent nodes.&lt;/p&gt;
&lt;p&gt;When relevant, I will call the index of an element inside its group
the “within-group index” and the index of a group among all groups in a
selection the “across-group index”.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Despite Everything</title>
      <link>//blog.vero.site/post/despite</link>
      <pubDate>Sun, 31 Dec 2023 19:59:03 -0800</pubDate>
      
      <guid>//blog.vero.site/post/despite</guid>
      <description>&lt;p&gt;…it’s still you. Looking at yourself in the window. The second
afternoon after you finally get COVID for the first time.&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/SX8jyRuOUiQ&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;As previously reported, I left Zoom late last year and spent a bit of
time unemployed, traveling for some of it but mostly staying home. In
the process, I got COVID, though not with a particularly interesting
story. Would not recommend.&lt;/p&gt;
&lt;p&gt;Then I started work at Anthropic doing interpretability research —
moving way back into my comfort zone in a way by returning to my web dev
roots to create many of the visualizations we cared about, and way out
of it in another by jumping into the deeply theoretical end of research,
in a field where my total experience is one college course and one
casual reading group. Still, I figured some things out and we published
&lt;a
href=&#34;https://transformer-circuits.pub/2023/monosemantic-features/index.html&#34;&gt;Towards
Monosemanticity&lt;/a&gt; in early October.&lt;/p&gt;
&lt;p&gt;I don’t have much to add to the research results in the paper, though
I can share some trivial, mildly entertaining anecdotes about the
process:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Concurrency</title>
      <link>//blog.vero.site/post/concurrency</link>
      <pubDate>Mon, 25 Sep 2023 01:03:41 -0700</pubDate>
      
      <guid>//blog.vero.site/post/concurrency</guid>
      <description>&lt;p&gt;I want to add a second word in the title, something like “Koans” or
“Vignettes”, but I don’t know a word with the right connotations.&lt;/p&gt;
&lt;p&gt;I realized recently that I have been walking around for a long time
with some confusion and unknown unknowns about how concurrency works in
various settings, and decided to write about it until I stopped being
confused. This post doesn’t therefore have much of a “point”.&lt;/p&gt;
&lt;h3 id=&#34;concurrency-and-parallelism&#34;&gt;Concurrency and Parallelism&lt;/h3&gt;
&lt;p&gt;Wikipedia, as of time of writing:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Concurrency&lt;/strong&gt; is the ability of different parts or
units of a program, algorithm, or problem to be executed out-of-order or
in partial order, without affecting the outcome.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There are two broad reasons concurrency is useful. One is for
performance: if you want your computer to perform as many floating point
operations as possible by lunchtime, you want all CPUs/GPUs/etc. to be
performing operations simultaneously. Another is that you’re in a
problem domain where you simply can’t predict the order of events:
you’re writing a user interface, and the user can click on any of
multiple buttons in any order; or you’re writing a web server, and any
number of clients can request any pages in any order. These reasons are
not mutually exclusive.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Yet Another Diceware-Style Word List</title>
      <link>//blog.vero.site/post/diceware</link>
      <pubDate>Sun, 23 Jul 2023 00:42:01 -0700</pubDate>
      
      <guid>//blog.vero.site/post/diceware</guid>
      <description>&lt;p&gt;Passwords. It’s 2023 and we still have to deal with them.&lt;/p&gt;
&lt;p&gt;Many people know that, per the &lt;a
href=&#34;https://xkcd.com/936/&#34;&gt;canonical xkcd&lt;/a&gt;, sequences of randomly
chosen words such as&lt;/p&gt;
&lt;div style=&#34;text-align: center&#34;&gt;
&lt;span id=&#34;diceware-out&#34;
style=&#34;font-size: 1.25rem&#34;&gt;soak-science-wander-pew-goldfish-xray-speed-consult&lt;/span&gt;&lt;br/&gt;&lt;button id=&#34;diceware-regen&#34; class=&#34;btn&#34; style=&#34;display: none&#34;&gt;regenerate&lt;/button&gt;&lt;small&gt;
or &lt;a href=&#34;//blog.vero.site/misc/betaveros-diceware.txt&#34;&gt;get the list as .txt&lt;/a&gt; or a
&lt;a href=&#34;//blog.vero.site/misc/betaveros-diceware.html&#34;&gt;standalone generator&lt;/a&gt;&lt;span
id=&#34;diceware-msg&#34;&gt; (if my JavaScript were working the above would be a
random password and you wouldn’t be seeing this message)&lt;/span&gt;&lt;/small&gt;
&lt;/div&gt;
&lt;script src=&#34;//blog.vero.site/js/diceware.js&#34;&gt;&lt;/script&gt;
&lt;p&gt;make relatively memorable but hard-to-crack passwords. One popular
strategy for randomly choosing words is Arnold Reinhold’s &lt;a
href=&#34;https://theworld.com/~reinhold/diceware.html&#34;&gt;Diceware™&lt;/a&gt;, a
list of 6&lt;sup&gt;5&lt;/sup&gt; = 7776 “words” that you can randomly sample from
by rolling five dice (analog or digital). (I won’t go into topics like
how to calculate the entropy of passwords and how long a password you
should try to have here, since most Diceware overviews already discuss
them at length.)&lt;/p&gt;
&lt;figure&gt;
&lt;a href=&#34;//blog.vero.site/img/dice.png&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/dice.png&#34; alt=&#34;Five dice arranged in a V shape, digitally altered to be red&#34; /&gt;&lt;/a&gt;
&lt;figcaption&gt;
Somehow this image was already on my blog without being used in any
post, but if there’s a post it belongs in, it’s surely this one
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;A few people have iterated on the concept since then: probably most
notably, the Electronic Frontier Foundation published their own &lt;a
href=&#34;https://www.eff.org/deeplinks/2016/07/new-wordlists-random-passphrases&#34;&gt;word
list&lt;/a&gt; in 2016, with words chosen to be more well-known and memorable,
at the cost of taking longer to type. I’m a fast typer and prefer the
EFF’s wordlist over the original, and am very grateful to them for
creating it, but after generating quite a few passwords with it over the
last few years, I began to feel that it still had a lot of room for
improvement.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Designing a Programming Language to Speedrun Advent of Code</title>
      <link>//blog.vero.site/post/noulith</link>
      <pubDate>Sun, 09 Apr 2023 14:42:52 -0700</pubDate>
      
      <guid>//blog.vero.site/post/noulith</guid>
      <description>&lt;div class=&#34;series&#34;&gt;
&lt;p&gt;“shouldn’t this have been published a few months ago?” yeah,
probably. I even considered submitting it to the &lt;a
href=&#34;https://www.reddit.com/r/adventofcode/comments/z9he28/advent_of_code_2022_mistiltoe_elfucation/&#34;&gt;AoC
contest&lt;/a&gt;. time is a real beast.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;The title is clickbait. I did not design and implement a programming
language for the sole or even primary purpose of leaderboarding on
Advent of Code. It just turned out that the programming language I was
working on fit the task remarkably well.&lt;/p&gt;
&lt;p&gt;I can’t name just a single reason I started work on my language, &lt;a
href=&#34;https://github.com/betaveros/noulith&#34;&gt;Noulith&lt;/a&gt;, back in July
2022, but I think the biggest one was even more absurdly niche: I solve
and write a lot of &lt;a
href=&#34;https://blog.vero.site/post/puzzlehunts&#34;&gt;puzzlehunts&lt;/a&gt;, and I
wanted a better programming language to use to search word lists for
words satisfying unusual constraints, such as, “Find all ten-letter
words that contain each of the letters A, B, and C exactly once and that
have the ninth letter K.”&lt;a href=&#34;#fn1&#34; class=&#34;footnote-ref&#34; id=&#34;fnref1&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt; I have a folder of ten-line scripts
of this kind, mostly Python, and I thought there was surely a better way
to do this. Not necessarily faster — there is obviously no way I could
&lt;a href=&#34;https://xkcd.com/1205/&#34;&gt;save time on net by optimizing this
process&lt;/a&gt;. But, for example, I wanted to be able to easily share these
programs such that others could run them. I had a positive experience in
this with my slightly older golflang &lt;a
href=&#34;https://github.com/betaveros/paradoc&#34;&gt;Paradoc&lt;/a&gt;, which I had
compiled into a WASM blob and &lt;a
href=&#34;https://betaveros.github.io/paradoc-rust/&#34;&gt;put online&lt;/a&gt; and,
just once, experienced the convenience of sharing a &lt;a
href=&#34;https://betaveros.github.io/paradoc-rust/#aVVje0FwcVdwfH1mV8OYKXNqIHI=&#34;&gt;short
text processing program&lt;/a&gt; through a link. (Puzzle: what does this
program do?) I also wanted to write and run these programs while booted
into a different operating system, using a different computer, or just
on my phone.&lt;/p&gt;
&lt;p&gt;As I worked on it, I kept accumulating reasons to keep going. There
were other contexts where I wanted to quickly code a combinatorial brute
force that was annoying to write in other languages; a glib phrasing is
that I wanted access to Haskell’s list monad in a sloppier language. I
also wanted an excuse to read &lt;a
href=&#34;https://craftinginterpreters.com/&#34;&gt;&lt;cite&gt;Crafting
Interpreters&lt;/cite&gt;&lt;/a&gt; more thoroughly. But sometimes I think the best
characterization for what developing the language “felt like” was that I
had been possessed by a supernatural creature — say, the dragon from the
&lt;a
href=&#34;https://en.wikipedia.org/wiki/Compilers:_Principles,_Techniques,_and_Tools&#34;&gt;Dragon
Book&lt;/a&gt;. I spent every spare minute thinking about language features
and next implementation steps, because I had to.&lt;/p&gt;
&lt;p&gt;The first “real program” I wrote in Noulith was to brute force
constructions for &lt;a
href=&#34;https://2022.galacticpuzzlehunt.com/puzzle/the-cube&#34;&gt;The Cube&lt;/a&gt;,
for last year’s Galactic Puzzle Hunt in early August, and it worked
unexpectedly well. I wrote a &lt;code&gt;for&lt;/code&gt; loop with a 53-clause
iteratee and the interpreter executed it smoothly. Eventually I realized
that the language could expand into other niches in my life where I
wanted a scripting language. For example, I did a few &lt;a
href=&#34;https://www.cryptopals.com/&#34;&gt;Cryptopals challenges&lt;/a&gt; in them. It
would take a month or two before it dawned on me that the same
compulsion that drove me to create this language would drive me to do
Advent of Code in it. That’s just how it has to be.&lt;/p&gt;
&lt;p&gt;This post details my thought process behind the design of this
language. Some preliminary notes:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>2023 MIT Mystery Hunt</title>
      <link>//blog.vero.site/post/2023-hunt</link>
      <pubDate>Wed, 25 Jan 2023 13:45:37 -0800</pubDate>
      
      <guid>//blog.vero.site/post/2023-hunt</guid>
      <description>&lt;p&gt;My seventh year doing Mystery Hunt with ✈✈✈ Galactic Trendsetters
✈✈✈, and after a hiatus it was in person again! This also makes it my
first in-person Mystery Hunt as an alumnus, where I flew in and stayed
at a hotel. How time marches on… I appreciated getting to see everybody
on Galactic, as well as quite a few internet puzzlers at the location
where all the cool people always go, Flour Bakery and Cafe.&lt;/p&gt;
&lt;p&gt;Campus hadn’t changed too much. There were more card readers, but
also fancy kiosks where ID cards could be printed on demand (via the
official 1.2/5★-rated app). I set aside a little time before kickoff to
try to locate a working kiosk to print my ID, but the two kiosks I found
west of Mass Ave, in W20 and W35, were both out of order; only much
later did I print a card in 16. But I am a card-carrying alumnus now.
Galactic had two classrooms in 4-2 and lots of masks and tests. One of
my teammates brought their dog. It was a fun time.&lt;/p&gt;
&lt;p&gt;As typical nowadays, the hunt announcement and kickoff began with a
facade theme of a museum. However, the twist was handled a bit
differently — kickoff had an additional diegetic level: normally the
story is followed by an out-of-character talk about health/safety and
policies, but this year that talk, while still in a different universe
from the museum, was intertwined with an introduction to MATE, the AI
who had ostensibly been writing all the puzzles. Over the course of the
hunt, instead of discovering a possibly predictable secret plan or
betrayal by MATE, we instead found ourselves on its side because (in the
outer fictional diegetic level) teammate had shut off some other “overly
creative” AIs and overworked MATE.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>One Step Forward to Tomorrow</title>
      <link>//blog.vero.site/post/one-step</link>
      <pubDate>Sat, 31 Dec 2022 22:19:58 -0800</pubDate>
      
      <guid>//blog.vero.site/post/one-step</guid>
      <description>&lt;p&gt;One day I’m going to run out of the energy to find barely adequate
allusions for the titles and thematic music videos for the openings of
these end-of-year posts, and they’ll just be called “2095 in Review” or
whatever. Or maybe I’ll just stop making them. But not today.&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/tuHe9lm5vUE&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;Good song. Good animation. Incredibly out of place on its YouTube
channel, in the most inspiring chaotic good way.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;I closed out last year by saying that I wanted to accomplish a “big
milestone” this year. I actually had a specific milestone in mind that I
did not actually achieve and will not reveal, but I made good progress
towards it, and a lot of other things happened, enough that I think I’ll
count that as achieved.&lt;/p&gt;
&lt;p&gt;The big thing is that I left my job at Zoom to have some time for
myself and family… though not before helping to give feedback on a &lt;a
href=&#34;https://datatracker.ietf.org/doc/draft-irtf-cfrg-vrf/&#34;&gt;draft
internet standard&lt;/a&gt;, publish a &lt;a
href=&#34;https://eprint.iacr.org/2022/1264&#34;&gt;cryptography research paper&lt;/a&gt;
(on which I’m the “first author”, strictly due to the vagaries of the
English alphabet), and launch &lt;a
href=&#34;https://blog.zoom.us/zoom-end-to-end-encrypted-email/&#34;&gt;end-to-end
encrypted email&lt;/a&gt;. It was a productive year! I feel like I should have
more to say about all this, but it’s hard to think of anything that I
didn’t already write about &lt;a href=&#34;//blog.vero.site/post/coming&#34;&gt;last
year&lt;/a&gt; and also doesn’t require a blockbuster-length list of
prerequisites. However, if you ever want to hear about the difficulties
of actually getting end-to-end encryption into production in
excruciating detail, invite me to a cocktail party with a lot of
whiteboards.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introduction to Code Golf and Golflangs</title>
      <link>//blog.vero.site/post/golf</link>
      <pubDate>Thu, 22 Dec 2022 15:46:26 -0800</pubDate>
      
      <guid>//blog.vero.site/post/golf</guid>
      <description>&lt;p&gt;Code golf is the recreational activity&lt;a href=&#34;#fn1&#34;
class=&#34;footnote-ref&#34; id=&#34;fnref1&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt; of
trying to write programs that are as short as possible.&lt;a href=&#34;#fn2&#34;
class=&#34;footnote-ref&#34; id=&#34;fnref2&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;
Golfed programs still have to be correct, but brevity is prioritized
above every other concern — e.g., robustness, performance, or legibility
— which usually leads to really interesting code.&lt;/p&gt;
&lt;p&gt;I think code golf is a lot of fun (although I think a lot of things
are fun, so it’s one of those hobbies that I get really into roughly one
month every year and then completely forget about for the remaining
eleven). I wanted to write an introduction because I don’t know of any
good general introductions to code golf, particularly ones that try to
be language-agnostic and that cover the fascinating world of
&lt;em&gt;programming languages designed specifically for code golf&lt;/em&gt;,
which I’ll call golflangs for short. But more on that later.&lt;/p&gt;
&lt;p&gt;Note: If you are the kind of person who prefers to just dive in and
try golfing some code without guidance, you should skip to the &lt;a
href=&#34;#code-golf-sites&#34;&gt;code golf sites&lt;/a&gt; section.&lt;/p&gt;
&lt;h3 id=&#34;a-simple-example&#34;&gt;A simple example&lt;/h3&gt;
&lt;p&gt;Of course, there’s a reason most code golf tutorials focus on a
single language: most code golf techniques are language-specific. The
Code Golf &amp;amp; Coding Challenges (CGCC) StackExchange community has a
list of some &lt;a
href=&#34;https://codegolf.stackexchange.com/questions/5285/tips-for-golfing-in-all-languages&#34;&gt;golfing
tips that apply to most languages&lt;/a&gt;, but there are far more tricks in
just about any language-specific list, and most of the intrigue lies in
knowing the language you’re golfing well. So to provide a taste of the
code golf experience, let’s golf a simple problem, Anarchy Golf’s &lt;a
href=&#34;http://golf.shinh.org/p.rb?Factorial&#34;&gt;Factorial&lt;/a&gt;, in
Python.&lt;/p&gt;
&lt;p&gt;In this problem, we have to read a series of positive integers from
standard input, one per line, and output the factorial of each, also one
per line. Here’s a stab at a simple, direct implementation with no
golfing at all:&lt;a href=&#34;#fn3&#34; class=&#34;footnote-ref&#34; id=&#34;fnref3&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb1&#34;&gt;&lt;pre
class=&#34;sourceCode python&#34;&gt;&lt;code class=&#34;sourceCode python&#34;&gt;&lt;span id=&#34;cb1-1&#34;&gt;&lt;a href=&#34;#cb1-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;kw&#34;&gt;def&lt;/span&gt; factorial(n):&lt;/span&gt;
&lt;span id=&#34;cb1-2&#34;&gt;&lt;a href=&#34;#cb1-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;cf&#34;&gt;if&lt;/span&gt; n &lt;span class=&#34;op&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;1&lt;/span&gt;: &lt;span class=&#34;cf&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;1&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-3&#34;&gt;&lt;a href=&#34;#cb1-3&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;cf&#34;&gt;return&lt;/span&gt; n &lt;span class=&#34;op&#34;&gt;*&lt;/span&gt; factorial(n&lt;span class=&#34;op&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;dv&#34;&gt;1&lt;/span&gt;)&lt;/span&gt;
&lt;span id=&#34;cb1-4&#34;&gt;&lt;a href=&#34;#cb1-4&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;cf&#34;&gt;try&lt;/span&gt;:&lt;/span&gt;
&lt;span id=&#34;cb1-5&#34;&gt;&lt;a href=&#34;#cb1-5&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;cf&#34;&gt;while&lt;/span&gt; &lt;span class=&#34;va&#34;&gt;True&lt;/span&gt;:&lt;/span&gt;
&lt;span id=&#34;cb1-6&#34;&gt;&lt;a href=&#34;#cb1-6&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        &lt;span class=&#34;bu&#34;&gt;print&lt;/span&gt;(factorial(&lt;span class=&#34;bu&#34;&gt;int&lt;/span&gt;(&lt;span class=&#34;bu&#34;&gt;input&lt;/span&gt;())))&lt;/span&gt;
&lt;span id=&#34;cb1-7&#34;&gt;&lt;a href=&#34;#cb1-7&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;cf&#34;&gt;except&lt;/span&gt; &lt;span class=&#34;pp&#34;&gt;EOFError&lt;/span&gt;:&lt;/span&gt;
&lt;span id=&#34;cb1-8&#34;&gt;&lt;a href=&#34;#cb1-8&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;cf&#34;&gt;pass&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>Flexbox Fun Facts</title>
      <link>//blog.vero.site/post/flexbox-fun</link>
      <pubDate>Fri, 23 Sep 2022 21:33:22 -0700</pubDate>
      
      <guid>//blog.vero.site/post/flexbox-fun</guid>
      <description>&lt;p&gt;This post is brought to you by “I am procrastinating other stuff by
doing some long overdue maintenance on my blog”. Mainly, I finally
replaced the old &lt;code&gt;float&lt;/code&gt;-based layout from the random Hugo
theme I forked, which I had been keeping just because it wasn’t broken,
with flexbox, so that I could more easily tweak some other things. If
things look broken, you may need to force-refresh or clear your cache,
and on the off chance things look mostly the same but you feel like
something about the layout feels subtly different, that’s what’s up.&lt;/p&gt;
&lt;p&gt;While making these changes, I ended up digging through the &lt;a
href=&#34;https://www.w3.org/TR/2018/CR-css-flexbox-1-20181119/&#34;&gt;flexbox
spec&lt;/a&gt; to debug an issue and learned some interesting things. (This
and other links in this post are permalinks to the November 2018 spec,
which I believe is the most recent official version as of time of
writing, but it’s nearly three years and there have been quite a few
changes in the “editor’s draft”. Also, this post is not a flexbox
tutorial and will not make sense if you are already familiar with
flexbox.)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>🅿️🅿️🅿️ordle</title>
      <link>//blog.vero.site/post/pppordle</link>
      <pubDate>Mon, 04 Jul 2022 23:54:44 -0700</pubDate>
      
      <guid>//blog.vero.site/post/pppordle</guid>
      <description>&lt;p&gt;Don’t you hate it when CTFs happen faster than you can write them up?
This is probably the only PlaidCTF challenge I get to, unfortunately.&lt;a
href=&#34;#fn1&#34; class=&#34;footnote-ref&#34; id=&#34;fnref1&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Web is out, retro is in. Play your favorite word game from the
comfort of your terminal!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It’s a terminal Wordle client!&lt;/p&gt;
&lt;figure&gt;
&lt;a href=&#34;//blog.vero.site/img/pppordle-1.png&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/pppordle-1.png&#34; alt=&#34;Screenshot of a terminal Wordle client. The puzzle has been solved with the answer COZEY.&#34; /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;p&gt;I only solved the first half of this challenge. The two halves seem
to be unrelated though. (Nobody solved the second half during the CTF.)
The challenge was quite big code-wise, with more than a dozen files, so
it’s hard to replicate the experience in a post like this, but here’s an
attempt.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Mask</title>
      <link>//blog.vero.site/post/mask</link>
      <pubDate>Mon, 04 Jul 2022 23:54:33 -0700</pubDate>
      
      <guid>//blog.vero.site/post/mask</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Don’t forget to wear your mask…&lt;/p&gt;
&lt;p&gt;&lt;code&gt;nc challs.actf.co 31501&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If I had a nickel for every &lt;a href=&#34;//blog.vero.site/post/messy-desk&#34;&gt;CTF
challenge I’ve done&lt;/a&gt; that involves understanding the internal
structure of a QR code, I would have two nickels. Which isn’t a lot, etc
etc. That previous challenge probably helped me get first blood on
this.&lt;/p&gt;
&lt;p&gt;The source code is wonderfully short:&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb1&#34;&gt;&lt;pre
class=&#34;sourceCode python&#34;&gt;&lt;code class=&#34;sourceCode python&#34;&gt;&lt;span id=&#34;cb1-1&#34;&gt;&lt;a href=&#34;#cb1-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;im&#34;&gt;import&lt;/span&gt; io, qrcode, string&lt;/span&gt;
&lt;span id=&#34;cb1-2&#34;&gt;&lt;a href=&#34;#cb1-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-3&#34;&gt;&lt;a href=&#34;#cb1-3&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;flag_contents &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; [REDACTED]&lt;/span&gt;
&lt;span id=&#34;cb1-4&#34;&gt;&lt;a href=&#34;#cb1-4&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;cf&#34;&gt;assert&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;all&lt;/span&gt;(i &lt;span class=&#34;kw&#34;&gt;in&lt;/span&gt; string.ascii_lowercase &lt;span class=&#34;op&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;st&#34;&gt;&amp;#39;_&amp;#39;&lt;/span&gt; &lt;span class=&#34;cf&#34;&gt;for&lt;/span&gt; i &lt;span class=&#34;kw&#34;&gt;in&lt;/span&gt; flag_contents)&lt;/span&gt;
&lt;span id=&#34;cb1-5&#34;&gt;&lt;a href=&#34;#cb1-5&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-6&#34;&gt;&lt;a href=&#34;#cb1-6&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;flag &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;st&#34;&gt;b&amp;quot;actf{&amp;quot;&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;+&lt;/span&gt; flag_contents.encode() &lt;span class=&#34;op&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;st&#34;&gt;b&amp;quot;}&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-7&#34;&gt;&lt;a href=&#34;#cb1-7&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;bu&#34;&gt;print&lt;/span&gt;(&lt;span class=&#34;st&#34;&gt;&amp;quot;flag is &lt;/span&gt;&lt;span class=&#34;sc&#34;&gt;%d&lt;/span&gt;&lt;span class=&#34;st&#34;&gt; characters&amp;quot;&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;len&lt;/span&gt;(flag))&lt;/span&gt;
&lt;span id=&#34;cb1-8&#34;&gt;&lt;a href=&#34;#cb1-8&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-9&#34;&gt;&lt;a href=&#34;#cb1-9&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;qr &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; qrcode.QRCode(version&lt;span class=&#34;op&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;dv&#34;&gt;1&lt;/span&gt;, error_correction &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; qrcode.constants.ERROR_CORRECT_L, box_size&lt;span class=&#34;op&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;dv&#34;&gt;1&lt;/span&gt;, border&lt;span class=&#34;op&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;dv&#34;&gt;0&lt;/span&gt;)&lt;/span&gt;
&lt;span id=&#34;cb1-10&#34;&gt;&lt;a href=&#34;#cb1-10&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;cf&#34;&gt;while&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;1&lt;/span&gt;:&lt;/span&gt;
&lt;span id=&#34;cb1-11&#34;&gt;&lt;a href=&#34;#cb1-11&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;cf&#34;&gt;try&lt;/span&gt;:&lt;/span&gt;
&lt;span id=&#34;cb1-12&#34;&gt;&lt;a href=&#34;#cb1-12&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        inp &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;bytes&lt;/span&gt;.fromhex(&lt;span class=&#34;bu&#34;&gt;input&lt;/span&gt;(&lt;span class=&#34;st&#34;&gt;&amp;quot;give input (in hex): &amp;quot;&lt;/span&gt;))&lt;/span&gt;
&lt;span id=&#34;cb1-13&#34;&gt;&lt;a href=&#34;#cb1-13&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        &lt;span class=&#34;cf&#34;&gt;assert&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;len&lt;/span&gt;(inp) &lt;span class=&#34;op&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;len&lt;/span&gt;(flag)&lt;/span&gt;
&lt;span id=&#34;cb1-14&#34;&gt;&lt;a href=&#34;#cb1-14&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;cf&#34;&gt;except&lt;/span&gt;:&lt;/span&gt;
&lt;span id=&#34;cb1-15&#34;&gt;&lt;a href=&#34;#cb1-15&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        &lt;span class=&#34;bu&#34;&gt;print&lt;/span&gt;(&lt;span class=&#34;st&#34;&gt;&amp;quot;bad input, exiting&amp;quot;&lt;/span&gt;)&lt;/span&gt;
&lt;span id=&#34;cb1-16&#34;&gt;&lt;a href=&#34;#cb1-16&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        &lt;span class=&#34;cf&#34;&gt;break&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-17&#34;&gt;&lt;a href=&#34;#cb1-17&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    qr.clear()&lt;/span&gt;
&lt;span id=&#34;cb1-18&#34;&gt;&lt;a href=&#34;#cb1-18&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    qr.add_data(&lt;span class=&#34;bu&#34;&gt;bytes&lt;/span&gt;([i&lt;span class=&#34;op&#34;&gt;^&lt;/span&gt;j &lt;span class=&#34;cf&#34;&gt;for&lt;/span&gt; i,j &lt;span class=&#34;kw&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;zip&lt;/span&gt;(inp, flag)]))&lt;/span&gt;
&lt;span id=&#34;cb1-19&#34;&gt;&lt;a href=&#34;#cb1-19&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    f &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; io.StringIO()&lt;/span&gt;
&lt;span id=&#34;cb1-20&#34;&gt;&lt;a href=&#34;#cb1-20&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    qr.print_ascii(out&lt;span class=&#34;op&#34;&gt;=&lt;/span&gt;f)&lt;/span&gt;
&lt;span id=&#34;cb1-21&#34;&gt;&lt;a href=&#34;#cb1-21&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    f.seek(&lt;span class=&#34;dv&#34;&gt;0&lt;/span&gt;)&lt;/span&gt;
&lt;span id=&#34;cb1-22&#34;&gt;&lt;a href=&#34;#cb1-22&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;bu&#34;&gt;print&lt;/span&gt;(&lt;span class=&#34;st&#34;&gt;&amp;#39;&lt;/span&gt;&lt;span class=&#34;ch&#34;&gt;\n&lt;/span&gt;&lt;span class=&#34;st&#34;&gt;&amp;#39;&lt;/span&gt;.join(i[:&lt;span class=&#34;dv&#34;&gt;11&lt;/span&gt;] &lt;span class=&#34;cf&#34;&gt;for&lt;/span&gt; i &lt;span class=&#34;kw&#34;&gt;in&lt;/span&gt; f))&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>Kevin Higgs</title>
      <link>//blog.vero.site/post/kevin-higgs</link>
      <pubDate>Mon, 04 Jul 2022 23:54:23 -0700</pubDate>
      
      <guid>//blog.vero.site/post/kevin-higgs</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Now that kmh is gone, clam’s been going through pickle withdrawal. To
help him cope, he wrote his own pickle pyjail. It’s nothing like kmh’s,
but maybe it’s enough.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Language jails are rapidly becoming one of my CTF areas of expertise.
Not sure how I feel about that.&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb1&#34;&gt;&lt;pre
class=&#34;sourceCode python&#34;&gt;&lt;code class=&#34;sourceCode python&#34;&gt;&lt;span id=&#34;cb1-1&#34;&gt;&lt;a href=&#34;#cb1-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;co&#34;&gt;#!/usr/local/bin/python3&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-2&#34;&gt;&lt;a href=&#34;#cb1-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-3&#34;&gt;&lt;a href=&#34;#cb1-3&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;im&#34;&gt;import&lt;/span&gt; pickle&lt;/span&gt;
&lt;span id=&#34;cb1-4&#34;&gt;&lt;a href=&#34;#cb1-4&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;im&#34;&gt;import&lt;/span&gt; io&lt;/span&gt;
&lt;span id=&#34;cb1-5&#34;&gt;&lt;a href=&#34;#cb1-5&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;im&#34;&gt;import&lt;/span&gt; sys&lt;/span&gt;
&lt;span id=&#34;cb1-6&#34;&gt;&lt;a href=&#34;#cb1-6&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-7&#34;&gt;&lt;a href=&#34;#cb1-7&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;module &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;type&lt;/span&gt;(__builtins__)&lt;/span&gt;
&lt;span id=&#34;cb1-8&#34;&gt;&lt;a href=&#34;#cb1-8&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;empty &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; module(&lt;span class=&#34;st&#34;&gt;&amp;quot;empty&amp;quot;&lt;/span&gt;)&lt;/span&gt;
&lt;span id=&#34;cb1-9&#34;&gt;&lt;a href=&#34;#cb1-9&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;empty.empty &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; empty&lt;/span&gt;
&lt;span id=&#34;cb1-10&#34;&gt;&lt;a href=&#34;#cb1-10&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;sys.modules[&lt;span class=&#34;st&#34;&gt;&amp;quot;empty&amp;quot;&lt;/span&gt;] &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; empty&lt;/span&gt;
&lt;span id=&#34;cb1-11&#34;&gt;&lt;a href=&#34;#cb1-11&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-12&#34;&gt;&lt;a href=&#34;#cb1-12&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-13&#34;&gt;&lt;a href=&#34;#cb1-13&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;kw&#34;&gt;class&lt;/span&gt; SafeUnpickler(pickle.Unpickler):&lt;/span&gt;
&lt;span id=&#34;cb1-14&#34;&gt;&lt;a href=&#34;#cb1-14&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;kw&#34;&gt;def&lt;/span&gt; find_class(&lt;span class=&#34;va&#34;&gt;self&lt;/span&gt;, module, name):&lt;/span&gt;
&lt;span id=&#34;cb1-15&#34;&gt;&lt;a href=&#34;#cb1-15&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        &lt;span class=&#34;cf&#34;&gt;if&lt;/span&gt; module &lt;span class=&#34;op&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;st&#34;&gt;&amp;quot;empty&amp;quot;&lt;/span&gt; &lt;span class=&#34;kw&#34;&gt;and&lt;/span&gt; name.count(&lt;span class=&#34;st&#34;&gt;&amp;quot;.&amp;quot;&lt;/span&gt;) &lt;span class=&#34;op&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;1&lt;/span&gt;:&lt;/span&gt;
&lt;span id=&#34;cb1-16&#34;&gt;&lt;a href=&#34;#cb1-16&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;            &lt;span class=&#34;cf&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;super&lt;/span&gt;().find_class(module, name)&lt;/span&gt;
&lt;span id=&#34;cb1-17&#34;&gt;&lt;a href=&#34;#cb1-17&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        &lt;span class=&#34;cf&#34;&gt;raise&lt;/span&gt; pickle.UnpicklingError(&lt;span class=&#34;st&#34;&gt;&amp;quot;e-legal&amp;quot;&lt;/span&gt;)&lt;/span&gt;
&lt;span id=&#34;cb1-18&#34;&gt;&lt;a href=&#34;#cb1-18&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-19&#34;&gt;&lt;a href=&#34;#cb1-19&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-20&#34;&gt;&lt;a href=&#34;#cb1-20&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;lepickle &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;bytes&lt;/span&gt;.fromhex(&lt;span class=&#34;bu&#34;&gt;input&lt;/span&gt;(&lt;span class=&#34;st&#34;&gt;&amp;quot;Enter hex-encoded pickle: &amp;quot;&lt;/span&gt;))&lt;/span&gt;
&lt;span id=&#34;cb1-21&#34;&gt;&lt;a href=&#34;#cb1-21&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;cf&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;len&lt;/span&gt;(lepickle) &lt;span class=&#34;op&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;400&lt;/span&gt;:&lt;/span&gt;
&lt;span id=&#34;cb1-22&#34;&gt;&lt;a href=&#34;#cb1-22&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;bu&#34;&gt;print&lt;/span&gt;(&lt;span class=&#34;st&#34;&gt;&amp;quot;your pickle is too large for my taste &amp;gt;:(&amp;quot;&lt;/span&gt;)&lt;/span&gt;
&lt;span id=&#34;cb1-23&#34;&gt;&lt;a href=&#34;#cb1-23&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;cf&#34;&gt;else&lt;/span&gt;:&lt;/span&gt;
&lt;span id=&#34;cb1-24&#34;&gt;&lt;a href=&#34;#cb1-24&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    SafeUnpickler(io.BytesIO(lepickle)).load()&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;&lt;a
href=&#34;https://docs.python.org/3/library/pickle.html&#34;&gt;pickle&lt;/a&gt;&lt;/code&gt;
is a Python object serialization format. As the docs page loudly
proclaims, it is not secure. Roughly the simplest possible code to pop a
shell (adapted from &lt;a
href=&#34;https://davidhamann.de/2020/04/05/exploiting-python-pickle/&#34;&gt;David
Hamann&lt;/a&gt;, who constructs a more realistic RCE) looks like:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>CaaSio PSE</title>
      <link>//blog.vero.site/post/caasio</link>
      <pubDate>Mon, 04 Jul 2022 23:54:13 -0700</pubDate>
      
      <guid>//blog.vero.site/post/caasio</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;It’s clam’s newest javascript Calculator-as-a-Service: the CaaSio
Please Stop Edition! no but actually please stop I hate jsjails js isn’t
a good language stop putting one in every ctf I don’t want to look at
another jsjail because if I do I might vomit from how much I hate js and
js quirks aren’t even cool or funny or quirky they’re just painful
because why would you design a language like this
ahhhhhhhhhhhhhhhhhhhhh&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It’s just a JavaScript eval jail.&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb1&#34;&gt;&lt;pre class=&#34;sourceCode js&#34;&gt;&lt;code class=&#34;sourceCode javascript&#34;&gt;&lt;span id=&#34;cb1-1&#34;&gt;&lt;a href=&#34;#cb1-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;co&#34;&gt;#!/usr/local/bin/node&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-2&#34;&gt;&lt;a href=&#34;#cb1-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-3&#34;&gt;&lt;a href=&#34;#cb1-3&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;co&#34;&gt;// flag in ./flag.txt&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-4&#34;&gt;&lt;a href=&#34;#cb1-4&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-5&#34;&gt;&lt;a href=&#34;#cb1-5&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;kw&#34;&gt;const&lt;/span&gt; vm &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;pp&#34;&gt;require&lt;/span&gt;(&lt;span class=&#34;st&#34;&gt;&amp;quot;vm&amp;quot;&lt;/span&gt;)&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-6&#34;&gt;&lt;a href=&#34;#cb1-6&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;kw&#34;&gt;const&lt;/span&gt; readline &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;pp&#34;&gt;require&lt;/span&gt;(&lt;span class=&#34;st&#34;&gt;&amp;quot;readline&amp;quot;&lt;/span&gt;)&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-7&#34;&gt;&lt;a href=&#34;#cb1-7&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-8&#34;&gt;&lt;a href=&#34;#cb1-8&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;kw&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;kw&#34;&gt;interface&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; readline&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;createInterface&lt;/span&gt;({&lt;/span&gt;
&lt;span id=&#34;cb1-9&#34;&gt;&lt;a href=&#34;#cb1-9&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;dt&#34;&gt;input&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;process&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;at&#34;&gt;stdin&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-10&#34;&gt;&lt;a href=&#34;#cb1-10&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;dt&#34;&gt;output&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;process&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;at&#34;&gt;stdout&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-11&#34;&gt;&lt;a href=&#34;#cb1-11&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;})&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-12&#34;&gt;&lt;a href=&#34;#cb1-12&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-13&#34;&gt;&lt;a href=&#34;#cb1-13&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;kw&#34;&gt;interface&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;question&lt;/span&gt;(&lt;/span&gt;
&lt;span id=&#34;cb1-14&#34;&gt;&lt;a href=&#34;#cb1-14&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;st&#34;&gt;&amp;quot;Welcome to CaaSio: Please Stop Edition! Enter your calculation:&lt;/span&gt;&lt;span class=&#34;sc&#34;&gt;\n&lt;/span&gt;&lt;span class=&#34;st&#34;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-15&#34;&gt;&lt;a href=&#34;#cb1-15&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;kw&#34;&gt;function&lt;/span&gt; (input) {&lt;/span&gt;
&lt;span id=&#34;cb1-16&#34;&gt;&lt;a href=&#34;#cb1-16&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        &lt;span class=&#34;kw&#34;&gt;interface&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;close&lt;/span&gt;()&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-17&#34;&gt;&lt;a href=&#34;#cb1-17&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        &lt;span class=&#34;cf&#34;&gt;if&lt;/span&gt; (&lt;/span&gt;
&lt;span id=&#34;cb1-18&#34;&gt;&lt;a href=&#34;#cb1-18&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;            input&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;at&#34;&gt;length&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;215&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-19&#34;&gt;&lt;a href=&#34;#cb1-19&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;            &lt;span class=&#34;ss&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;sc&#34;&gt;^[\x20-\x7e]+$&lt;/span&gt;&lt;span class=&#34;ss&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;test&lt;/span&gt;(input) &lt;span class=&#34;op&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-20&#34;&gt;&lt;a href=&#34;#cb1-20&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;            &lt;span class=&#34;op&#34;&gt;!&lt;/span&gt;&lt;span class=&#34;ss&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;sc&#34;&gt;[.\[\]{}\s;`&amp;#39;&amp;quot;\\_&amp;lt;&amp;gt;?:]&lt;/span&gt;&lt;span class=&#34;ss&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;test&lt;/span&gt;(input) &lt;span class=&#34;op&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-21&#34;&gt;&lt;a href=&#34;#cb1-21&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;            &lt;span class=&#34;op&#34;&gt;!&lt;/span&gt;input&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;toLowerCase&lt;/span&gt;()&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;includes&lt;/span&gt;(&lt;span class=&#34;st&#34;&gt;&amp;quot;import&amp;quot;&lt;/span&gt;)&lt;/span&gt;
&lt;span id=&#34;cb1-22&#34;&gt;&lt;a href=&#34;#cb1-22&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        ) {&lt;/span&gt;
&lt;span id=&#34;cb1-23&#34;&gt;&lt;a href=&#34;#cb1-23&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;            &lt;span class=&#34;cf&#34;&gt;try&lt;/span&gt; {&lt;/span&gt;
&lt;span id=&#34;cb1-24&#34;&gt;&lt;a href=&#34;#cb1-24&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;                &lt;span class=&#34;kw&#34;&gt;const&lt;/span&gt; val &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; vm&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;runInNewContext&lt;/span&gt;(input&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; {})&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-25&#34;&gt;&lt;a href=&#34;#cb1-25&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;                &lt;span class=&#34;bu&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;log&lt;/span&gt;(&lt;span class=&#34;st&#34;&gt;&amp;quot;Result:&amp;quot;&lt;/span&gt;)&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-26&#34;&gt;&lt;a href=&#34;#cb1-26&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;                &lt;span class=&#34;bu&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;log&lt;/span&gt;(val)&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-27&#34;&gt;&lt;a href=&#34;#cb1-27&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;                &lt;span class=&#34;bu&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;log&lt;/span&gt;(&lt;/span&gt;
&lt;span id=&#34;cb1-28&#34;&gt;&lt;a href=&#34;#cb1-28&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;                    &lt;span class=&#34;st&#34;&gt;&amp;quot;See, isn&amp;#39;t the calculator so much nicer when you&amp;#39;re not trying to hack it?&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-29&#34;&gt;&lt;a href=&#34;#cb1-29&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;                )&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-30&#34;&gt;&lt;a href=&#34;#cb1-30&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;            } &lt;span class=&#34;cf&#34;&gt;catch&lt;/span&gt; (e) {&lt;/span&gt;
&lt;span id=&#34;cb1-31&#34;&gt;&lt;a href=&#34;#cb1-31&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;                &lt;span class=&#34;bu&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;log&lt;/span&gt;(&lt;span class=&#34;st&#34;&gt;&amp;quot;your tried&amp;quot;&lt;/span&gt;)&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-32&#34;&gt;&lt;a href=&#34;#cb1-32&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;            }&lt;/span&gt;
&lt;span id=&#34;cb1-33&#34;&gt;&lt;a href=&#34;#cb1-33&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        } &lt;span class=&#34;cf&#34;&gt;else&lt;/span&gt; {&lt;/span&gt;
&lt;span id=&#34;cb1-34&#34;&gt;&lt;a href=&#34;#cb1-34&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;            &lt;span class=&#34;bu&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;log&lt;/span&gt;(&lt;/span&gt;
&lt;span id=&#34;cb1-35&#34;&gt;&lt;a href=&#34;#cb1-35&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;                &lt;span class=&#34;st&#34;&gt;&amp;quot;Third time really is the charm! I&amp;#39;ve finally created an unhackable system!&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-36&#34;&gt;&lt;a href=&#34;#cb1-36&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;            )&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-37&#34;&gt;&lt;a href=&#34;#cb1-37&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        }&lt;/span&gt;
&lt;span id=&#34;cb1-38&#34;&gt;&lt;a href=&#34;#cb1-38&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    }&lt;/span&gt;
&lt;span id=&#34;cb1-39&#34;&gt;&lt;a href=&#34;#cb1-39&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;)&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>Interpreting Some Toy Neural Networks</title>
      <link>//blog.vero.site/post/interpret</link>
      <pubDate>Thu, 05 May 2022 23:26:13 -0700</pubDate>
      
      <guid>//blog.vero.site/post/interpret</guid>
      <description>&lt;p&gt;I participated in the &lt;a
href=&#34;https://www.eacambridge.org/agi-safety-fundamentals&#34;&gt;AGI Safety
Fundamentals&lt;/a&gt; program recently. The program concludes with a flexible
final project, with the default suggestion of “a piece of writing,
roughly the length and scope of a typical blog post”, so naturally, I
deleted all but the last two words and here we are.&lt;/p&gt;
&lt;p&gt;When I previously considered machine learning as a field of study, I
came away with an impression that most effort and computation power was
going into training bigger, more powerful models; whereas the inner
workings of the models themselves, not to mention questions like why
certain architectures or design choices work better than others,
remained inscrutable and understudied. This impression always bothered
me, and it definitely influenced me away from going into AI as a career.
Of course, there are important, objective safety concerns around
developing and designing models we don’t understand, many of which we
discussed in the program; but my discomfort is mostly a completely
unrelated nagging feeling I get whenever I’m relying on things I don’t
understand.&lt;/p&gt;
&lt;p&gt;After the program and all the concurrent developments in AI
(including &lt;a
href=&#34;https://www.deepmind.com/blog/competitive-programming-with-alphacode&#34;&gt;AlphaCode&lt;/a&gt;,
OpenAI’s &lt;a href=&#34;https://openai.com/blog/formal-math/&#34;&gt;math olympiad
solver&lt;/a&gt;&lt;a href=&#34;#fn1&#34; class=&#34;footnote-ref&#34; id=&#34;fnref1&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;, &lt;a
href=&#34;https://say-can.github.io/&#34;&gt;SayCan&lt;/a&gt;, and, of course, &lt;a
href=&#34;https://openai.com/dall-e-2/&#34;&gt;DALL-E 2&lt;/a&gt;), I still had this
impression about the field at a very high level, but I also became more
familiar with the subfield of &lt;em&gt;interpretability&lt;/em&gt; — designs and
tools that allow us to understand and explain decisions by ML systems,
rather than treating them as black-boxed mappings from inputs to outputs
— and confirmed that enough people study it to make it a thing. One
quote from a post on the &lt;a
href=&#34;https://www.alignmentforum.org/posts/X2i9dQQK3gETCyqh2/chris-olah-s-views-on-agi-safety&#34;&gt;views
of Chris Olah&lt;/a&gt;, noted interpretability researcher, captured my
feeling particularly eloquently:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;interpretability is very aligned with traditional scientific
virtues—which can be quite motivating for many people—even if it isn’t
very aligned with the present paradigm of machine learning.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I found the whole post insightful, and it happens that the bits
before that in the passage were also relevant to me. I don’t have access
to lots of compute!&lt;/p&gt;
&lt;p&gt;Inspired by that post and by a desire to actually write some code
(which I figured might help me understand the inner workings of modern
ML systems in a different sense), and after abandoning a few other
project ideas that were far too ambitious, I decided to go through some
parts of the &lt;a href=&#34;https://course.fast.ai/&#34;&gt;fast.ai tutorial&lt;/a&gt; and
riff on it to see how much progress I could make interpreting the
models, and to write up the process in a blog post. I tried to capture
my experience holistically, bugs and all, to serve as a data point for
what it might feel like to start ML engineering (for the rare
individuals with a background and inclinations just like mine&lt;a
href=&#34;#fn2&#34; class=&#34;footnote-ref&#34; id=&#34;fnref2&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;), and &lt;em&gt;maybe&lt;/em&gt; entertain more
experienced practitioners or influence their future tutorial
recommendations. A much lower-priority goal was trying to produce “my
version of the tutorial”, which would draw more liberally from an
undergraduate math education&lt;a href=&#34;#fn3&#34; class=&#34;footnote-ref&#34;
id=&#34;fnref3&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt; and dive more deeply
into technical details.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>TI-1337 Silver Edition</title>
      <link>//blog.vero.site/post/ti1337se</link>
      <pubDate>Mon, 14 Feb 2022 01:32:22 -0800</pubDate>
      
      <guid>//blog.vero.site/post/ti1337se</guid>
      <description>&lt;p&gt;Last weekend &lt;a
href=&#34;https://galhacktictrendsetters.wordpress.com/&#34;&gt;Galhacktic
Trendsetters&lt;/a&gt; sort of spontaneously decided to do &lt;a
href=&#34;https://ctf.dicega.ng/&#34;&gt;DiceCTF 2022&lt;/a&gt;, months or years after
most of us had done another CTF. It was a lot of fun and we placed
6th!&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Back in the day the silver edition was the top of the line Texas
Instruments calculator, but now the security is looking a little
obsolete. Can you break it?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It’s yet another Python jail. We input a string and, after it makes
it through a gauntlet of checks and processing, it gets
&lt;code&gt;exec&lt;/code&gt;’d.&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb1&#34;&gt;&lt;pre
class=&#34;sourceCode python&#34;&gt;&lt;code class=&#34;sourceCode python&#34;&gt;&lt;span id=&#34;cb1-1&#34;&gt;&lt;a href=&#34;#cb1-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;co&#34;&gt;#!/usr/bin/env python3&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-2&#34;&gt;&lt;a href=&#34;#cb1-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;im&#34;&gt;import&lt;/span&gt; dis&lt;/span&gt;
&lt;span id=&#34;cb1-3&#34;&gt;&lt;a href=&#34;#cb1-3&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;im&#34;&gt;import&lt;/span&gt; sys&lt;/span&gt;
&lt;span id=&#34;cb1-4&#34;&gt;&lt;a href=&#34;#cb1-4&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-5&#34;&gt;&lt;a href=&#34;#cb1-5&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;banned &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; [&lt;span class=&#34;st&#34;&gt;&amp;quot;MAKE_FUNCTION&amp;quot;&lt;/span&gt;, &lt;span class=&#34;st&#34;&gt;&amp;quot;CALL_FUNCTION&amp;quot;&lt;/span&gt;, &lt;span class=&#34;st&#34;&gt;&amp;quot;CALL_FUNCTION_KW&amp;quot;&lt;/span&gt;, &lt;span class=&#34;st&#34;&gt;&amp;quot;CALL_FUNCTION_EX&amp;quot;&lt;/span&gt;]&lt;/span&gt;
&lt;span id=&#34;cb1-6&#34;&gt;&lt;a href=&#34;#cb1-6&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-7&#34;&gt;&lt;a href=&#34;#cb1-7&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;used_gift &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;va&#34;&gt;False&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-8&#34;&gt;&lt;a href=&#34;#cb1-8&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-9&#34;&gt;&lt;a href=&#34;#cb1-9&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;kw&#34;&gt;def&lt;/span&gt; gift(target, name, value):&lt;/span&gt;
&lt;span id=&#34;cb1-10&#34;&gt;&lt;a href=&#34;#cb1-10&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;kw&#34;&gt;global&lt;/span&gt; used_gift&lt;/span&gt;
&lt;span id=&#34;cb1-11&#34;&gt;&lt;a href=&#34;#cb1-11&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;cf&#34;&gt;if&lt;/span&gt; used_gift: sys.exit(&lt;span class=&#34;dv&#34;&gt;1&lt;/span&gt;)&lt;/span&gt;
&lt;span id=&#34;cb1-12&#34;&gt;&lt;a href=&#34;#cb1-12&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    used_gift &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;va&#34;&gt;True&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-13&#34;&gt;&lt;a href=&#34;#cb1-13&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;bu&#34;&gt;setattr&lt;/span&gt;(target, name, value)&lt;/span&gt;
&lt;span id=&#34;cb1-14&#34;&gt;&lt;a href=&#34;#cb1-14&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-15&#34;&gt;&lt;a href=&#34;#cb1-15&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;bu&#34;&gt;print&lt;/span&gt;(&lt;span class=&#34;st&#34;&gt;&amp;quot;Welcome to the TI-1337 Silver Edition. Enter your calculations below:&amp;quot;&lt;/span&gt;)&lt;/span&gt;
&lt;span id=&#34;cb1-16&#34;&gt;&lt;a href=&#34;#cb1-16&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-17&#34;&gt;&lt;a href=&#34;#cb1-17&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;math &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;input&lt;/span&gt;(&lt;span class=&#34;st&#34;&gt;&amp;quot;&amp;gt; &amp;quot;&lt;/span&gt;)&lt;/span&gt;
&lt;span id=&#34;cb1-18&#34;&gt;&lt;a href=&#34;#cb1-18&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;cf&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;len&lt;/span&gt;(math) &lt;span class=&#34;op&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;1337&lt;/span&gt;:&lt;/span&gt;
&lt;span id=&#34;cb1-19&#34;&gt;&lt;a href=&#34;#cb1-19&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;bu&#34;&gt;print&lt;/span&gt;(&lt;span class=&#34;st&#34;&gt;&amp;quot;Nobody needs that much math!&amp;quot;&lt;/span&gt;)&lt;/span&gt;
&lt;span id=&#34;cb1-20&#34;&gt;&lt;a href=&#34;#cb1-20&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    sys.exit(&lt;span class=&#34;dv&#34;&gt;1&lt;/span&gt;)&lt;/span&gt;
&lt;span id=&#34;cb1-21&#34;&gt;&lt;a href=&#34;#cb1-21&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;code &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;compile&lt;/span&gt;(math, &lt;span class=&#34;st&#34;&gt;&amp;quot;&amp;lt;math&amp;gt;&amp;quot;&lt;/span&gt;, &lt;span class=&#34;st&#34;&gt;&amp;quot;exec&amp;quot;&lt;/span&gt;)&lt;/span&gt;
&lt;span id=&#34;cb1-22&#34;&gt;&lt;a href=&#34;#cb1-22&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-23&#34;&gt;&lt;a href=&#34;#cb1-23&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;bytecode &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;list&lt;/span&gt;(code.co_code)&lt;/span&gt;
&lt;span id=&#34;cb1-24&#34;&gt;&lt;a href=&#34;#cb1-24&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;instructions &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;list&lt;/span&gt;(dis.get_instructions(code))&lt;/span&gt;
&lt;span id=&#34;cb1-25&#34;&gt;&lt;a href=&#34;#cb1-25&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;cf&#34;&gt;for&lt;/span&gt; i, inst &lt;span class=&#34;kw&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;enumerate&lt;/span&gt;(instructions):&lt;/span&gt;
&lt;span id=&#34;cb1-26&#34;&gt;&lt;a href=&#34;#cb1-26&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;cf&#34;&gt;if&lt;/span&gt; inst.is_jump_target:&lt;/span&gt;
&lt;span id=&#34;cb1-27&#34;&gt;&lt;a href=&#34;#cb1-27&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        &lt;span class=&#34;bu&#34;&gt;print&lt;/span&gt;(&lt;span class=&#34;st&#34;&gt;&amp;quot;Math doesn&amp;#39;t need control flow!&amp;quot;&lt;/span&gt;)&lt;/span&gt;
&lt;span id=&#34;cb1-28&#34;&gt;&lt;a href=&#34;#cb1-28&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        sys.exit(&lt;span class=&#34;dv&#34;&gt;1&lt;/span&gt;)&lt;/span&gt;
&lt;span id=&#34;cb1-29&#34;&gt;&lt;a href=&#34;#cb1-29&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    nextoffset &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; instructions[i&lt;span class=&#34;op&#34;&gt;+&lt;/span&gt;&lt;span class=&#34;dv&#34;&gt;1&lt;/span&gt;].offset &lt;span class=&#34;cf&#34;&gt;if&lt;/span&gt; i&lt;span class=&#34;op&#34;&gt;+&lt;/span&gt;&lt;span class=&#34;dv&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;len&lt;/span&gt;(instructions) &lt;span class=&#34;cf&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;len&lt;/span&gt;(bytecode)&lt;/span&gt;
&lt;span id=&#34;cb1-30&#34;&gt;&lt;a href=&#34;#cb1-30&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;cf&#34;&gt;if&lt;/span&gt; inst.opname &lt;span class=&#34;kw&#34;&gt;in&lt;/span&gt; banned:&lt;/span&gt;
&lt;span id=&#34;cb1-31&#34;&gt;&lt;a href=&#34;#cb1-31&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        bytecode[inst.offset:instructions[i&lt;span class=&#34;op&#34;&gt;+&lt;/span&gt;&lt;span class=&#34;dv&#34;&gt;1&lt;/span&gt;].offset] &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; [&lt;span class=&#34;op&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;dv&#34;&gt;1&lt;/span&gt;]&lt;span class=&#34;op&#34;&gt;*&lt;/span&gt;(instructions[i&lt;span class=&#34;op&#34;&gt;+&lt;/span&gt;&lt;span class=&#34;dv&#34;&gt;1&lt;/span&gt;].offset&lt;span class=&#34;op&#34;&gt;-&lt;/span&gt;inst.offset)&lt;/span&gt;
&lt;span id=&#34;cb1-32&#34;&gt;&lt;a href=&#34;#cb1-32&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-33&#34;&gt;&lt;a href=&#34;#cb1-33&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;names &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;list&lt;/span&gt;(code.co_names)&lt;/span&gt;
&lt;span id=&#34;cb1-34&#34;&gt;&lt;a href=&#34;#cb1-34&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;cf&#34;&gt;for&lt;/span&gt; i, name &lt;span class=&#34;kw&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;enumerate&lt;/span&gt;(code.co_names):&lt;/span&gt;
&lt;span id=&#34;cb1-35&#34;&gt;&lt;a href=&#34;#cb1-35&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;cf&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;st&#34;&gt;&amp;quot;__&amp;quot;&lt;/span&gt; &lt;span class=&#34;kw&#34;&gt;in&lt;/span&gt; name: names[i] &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;st&#34;&gt;&amp;quot;$INVALID$&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-36&#34;&gt;&lt;a href=&#34;#cb1-36&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-37&#34;&gt;&lt;a href=&#34;#cb1-37&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;code &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; code.replace(co_code&lt;span class=&#34;op&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;bu&#34;&gt;bytes&lt;/span&gt;(b &lt;span class=&#34;cf&#34;&gt;for&lt;/span&gt; b &lt;span class=&#34;kw&#34;&gt;in&lt;/span&gt; bytecode &lt;span class=&#34;cf&#34;&gt;if&lt;/span&gt; b &lt;span class=&#34;op&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;0&lt;/span&gt;), co_names&lt;span class=&#34;op&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;bu&#34;&gt;tuple&lt;/span&gt;(names), co_stacksize&lt;span class=&#34;op&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;dv&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;**&lt;/span&gt;&lt;span class=&#34;dv&#34;&gt;20&lt;/span&gt;)&lt;/span&gt;
&lt;span id=&#34;cb1-38&#34;&gt;&lt;a href=&#34;#cb1-38&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;v &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; {}&lt;/span&gt;
&lt;span id=&#34;cb1-39&#34;&gt;&lt;a href=&#34;#cb1-39&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;bu&#34;&gt;exec&lt;/span&gt;(code, {&lt;span class=&#34;st&#34;&gt;&amp;quot;__builtins__&amp;quot;&lt;/span&gt;: {&lt;span class=&#34;st&#34;&gt;&amp;quot;gift&amp;quot;&lt;/span&gt;: gift}}, v)&lt;/span&gt;
&lt;span id=&#34;cb1-40&#34;&gt;&lt;a href=&#34;#cb1-40&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;cf&#34;&gt;if&lt;/span&gt; v: &lt;span class=&#34;bu&#34;&gt;print&lt;/span&gt;(&lt;span class=&#34;st&#34;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&#34;ch&#34;&gt;\n&lt;/span&gt;&lt;span class=&#34;st&#34;&gt;&amp;quot;&lt;/span&gt;.join(&lt;span class=&#34;ss&#34;&gt;f&amp;quot;&lt;/span&gt;&lt;span class=&#34;sc&#34;&gt;{&lt;/span&gt;name&lt;span class=&#34;sc&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;ss&#34;&gt; = &lt;/span&gt;&lt;span class=&#34;sc&#34;&gt;{&lt;/span&gt;val&lt;span class=&#34;sc&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;ss&#34;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&#34;cf&#34;&gt;for&lt;/span&gt; name, val &lt;span class=&#34;kw&#34;&gt;in&lt;/span&gt; v.items()))&lt;/span&gt;
&lt;span id=&#34;cb1-41&#34;&gt;&lt;a href=&#34;#cb1-41&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;cf&#34;&gt;else&lt;/span&gt;: &lt;span class=&#34;bu&#34;&gt;print&lt;/span&gt;(&lt;span class=&#34;st&#34;&gt;&amp;quot;No results stored.&amp;quot;&lt;/span&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;More precisely, the gauntlet does the following:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>blazingfast</title>
      <link>//blog.vero.site/post/blazingfast</link>
      <pubDate>Mon, 14 Feb 2022 01:32:15 -0800</pubDate>
      
      <guid>//blog.vero.site/post/blazingfast</guid>
      <description>&lt;p&gt;Last weekend &lt;a
href=&#34;https://galhacktictrendsetters.wordpress.com/&#34;&gt;Galhacktic
Trendsetters&lt;/a&gt; sort of spontaneously decided to do &lt;a
href=&#34;https://ctf.dicega.ng/&#34;&gt;DiceCTF 2022&lt;/a&gt;, months or years after
most of us had done another CTF. It was a lot of fun and we placed
6th!&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I made a blazing fast MoCkInG CaSe converter!&lt;/p&gt;
&lt;p&gt;blazingfast.mc.ax&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;We’re presented with a website that converts text to AlTeRnAtInG
CaSe. The core converter is written in WASM, and also checks that its
input doesn’t have any of the characters &lt;code&gt;&amp;lt;&amp;gt;&amp;amp;&#34;&lt;/code&gt;.
The JavaScript wrapper takes an input from the URL, converts it to
uppercase, feeds it to the converter, and if the check passes, injects
the output into an &lt;code&gt;innerHTML&lt;/code&gt;. The goal is to compose a URL
that, when visited by an admin bot, leaks the flag from
&lt;code&gt;localStorage&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The converter is compiled from this C code:&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb1&#34;&gt;&lt;pre class=&#34;sourceCode c&#34;&gt;&lt;code class=&#34;sourceCode c&#34;&gt;&lt;span id=&#34;cb1-1&#34;&gt;&lt;a href=&#34;#cb1-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;dt&#34;&gt;int&lt;/span&gt; length&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; ptr &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-2&#34;&gt;&lt;a href=&#34;#cb1-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;dt&#34;&gt;char&lt;/span&gt; buf&lt;span class=&#34;op&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;dv&#34;&gt;1000&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;];&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-3&#34;&gt;&lt;a href=&#34;#cb1-3&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-4&#34;&gt;&lt;a href=&#34;#cb1-4&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;dt&#34;&gt;void&lt;/span&gt; init&lt;span class=&#34;op&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;dt&#34;&gt;int&lt;/span&gt; size&lt;span class=&#34;op&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-5&#34;&gt;&lt;a href=&#34;#cb1-5&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    length &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; size&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-6&#34;&gt;&lt;a href=&#34;#cb1-6&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    ptr &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-7&#34;&gt;&lt;a href=&#34;#cb1-7&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;op&#34;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-8&#34;&gt;&lt;a href=&#34;#cb1-8&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-9&#34;&gt;&lt;a href=&#34;#cb1-9&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;dt&#34;&gt;char&lt;/span&gt; read&lt;span class=&#34;op&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-10&#34;&gt;&lt;a href=&#34;#cb1-10&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;cf&#34;&gt;return&lt;/span&gt; buf&lt;span class=&#34;op&#34;&gt;[&lt;/span&gt;ptr&lt;span class=&#34;op&#34;&gt;++];&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-11&#34;&gt;&lt;a href=&#34;#cb1-11&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;op&#34;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-12&#34;&gt;&lt;a href=&#34;#cb1-12&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-13&#34;&gt;&lt;a href=&#34;#cb1-13&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;dt&#34;&gt;void&lt;/span&gt; write&lt;span class=&#34;op&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;dt&#34;&gt;char&lt;/span&gt; c&lt;span class=&#34;op&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-14&#34;&gt;&lt;a href=&#34;#cb1-14&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    buf&lt;span class=&#34;op&#34;&gt;[&lt;/span&gt;ptr&lt;span class=&#34;op&#34;&gt;++]&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; c&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-15&#34;&gt;&lt;a href=&#34;#cb1-15&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;op&#34;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-16&#34;&gt;&lt;a href=&#34;#cb1-16&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-17&#34;&gt;&lt;a href=&#34;#cb1-17&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;dt&#34;&gt;int&lt;/span&gt; mock&lt;span class=&#34;op&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-18&#34;&gt;&lt;a href=&#34;#cb1-18&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;cf&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;dt&#34;&gt;int&lt;/span&gt; i &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt; i &lt;span class=&#34;op&#34;&gt;&amp;lt;&lt;/span&gt; length&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt; i &lt;span class=&#34;op&#34;&gt;++)&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-19&#34;&gt;&lt;a href=&#34;#cb1-19&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        &lt;span class=&#34;cf&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;(&lt;/span&gt;i &lt;span class=&#34;op&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;2&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; buf&lt;span class=&#34;op&#34;&gt;[&lt;/span&gt;i&lt;span class=&#34;op&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;65&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; buf&lt;span class=&#34;op&#34;&gt;[&lt;/span&gt;i&lt;span class=&#34;op&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;90&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-20&#34;&gt;&lt;a href=&#34;#cb1-20&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;            buf&lt;span class=&#34;op&#34;&gt;[&lt;/span&gt;i&lt;span class=&#34;op&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;+=&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;32&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-21&#34;&gt;&lt;a href=&#34;#cb1-21&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        &lt;span class=&#34;op&#34;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-22&#34;&gt;&lt;a href=&#34;#cb1-22&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-23&#34;&gt;&lt;a href=&#34;#cb1-23&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        &lt;span class=&#34;cf&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;(&lt;/span&gt;buf&lt;span class=&#34;op&#34;&gt;[&lt;/span&gt;i&lt;span class=&#34;op&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;ch&#34;&gt;&amp;#39;&amp;lt;&amp;#39;&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;||&lt;/span&gt; buf&lt;span class=&#34;op&#34;&gt;[&lt;/span&gt;i&lt;span class=&#34;op&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;ch&#34;&gt;&amp;#39;&amp;gt;&amp;#39;&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;||&lt;/span&gt; buf&lt;span class=&#34;op&#34;&gt;[&lt;/span&gt;i&lt;span class=&#34;op&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;ch&#34;&gt;&amp;#39;&amp;amp;&amp;#39;&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;||&lt;/span&gt; buf&lt;span class=&#34;op&#34;&gt;[&lt;/span&gt;i&lt;span class=&#34;op&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;ch&#34;&gt;&amp;#39;&amp;quot;&amp;#39;&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-24&#34;&gt;&lt;a href=&#34;#cb1-24&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;            &lt;span class=&#34;cf&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-25&#34;&gt;&lt;a href=&#34;#cb1-25&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        &lt;span class=&#34;op&#34;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-26&#34;&gt;&lt;a href=&#34;#cb1-26&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;op&#34;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-27&#34;&gt;&lt;a href=&#34;#cb1-27&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-28&#34;&gt;&lt;a href=&#34;#cb1-28&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    ptr &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-29&#34;&gt;&lt;a href=&#34;#cb1-29&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-30&#34;&gt;&lt;a href=&#34;#cb1-30&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;cf&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-31&#34;&gt;&lt;a href=&#34;#cb1-31&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;op&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>2022 MIT Mystery Hunt</title>
      <link>//blog.vero.site/post/2022-hunt</link>
      <pubDate>Wed, 19 Jan 2022 19:52:19 -0800</pubDate>
      
      <guid>//blog.vero.site/post/2022-hunt</guid>
      <description>&lt;p&gt;Sixth year hunting with ✈✈✈ Galactic Trendsetters ✈✈✈! As &lt;a
href=&#34;//blog.vero.site/post/2021-hunt&#34;&gt;last year’s writing team&lt;/a&gt;
&lt;small&gt;(previously: &lt;a href=&#34;//blog.vero.site/post/2020-hunt&#34;&gt;2020&lt;/a&gt;, &lt;a
href=&#34;//blog.vero.site/post/2019-hunt&#34;&gt;2019&lt;/a&gt;, &lt;a
href=&#34;//blog.vero.site/post/2018-hunt&#34;&gt;2018&lt;/a&gt;, &lt;a
href=&#34;//blog.vero.site/post/january&#34;&gt;2017&lt;/a&gt;, &lt;a
href=&#34;//blog.vero.site/post/whoosh&#34;&gt;2016&lt;/a&gt;, writing with Random in &lt;a
href=&#34;//blog.vero.site/post/hunt&#34;&gt;2015&lt;/a&gt;)&lt;/small&gt; we had one final
responsibility: running the traditional &lt;a
href=&#34;https://docs.google.com/presentation/d/1UNagEB8angIEJa7OqageeXj95UEuspAL0tDwekZJhzQ/edit#slide=id.p&#34;&gt;How
to Hunt workshop&lt;/a&gt; shortly before this year’s hunt. I didn’t play a
huge role in that, but I lurked and reminded myself some things about
how new puzzlehunters think about puzzles, and I wrote &lt;a
href=&#34;https://docs.google.com/spreadsheets/d/1-KmLvmcydguI_RBJJqHihbewZmssmdNtlWFJIJZVXLk/edit#gid=0&#34;&gt;Yet
Another Puzzlehunt Spreadsheet Tutorial&lt;/a&gt; after casting around and
being not entirely satisfied with the puzzlehunting spreadsheet
tutorials I found. I think I actually understand ARRAYFORMULA now.&lt;/p&gt;
&lt;p&gt;And then, before we knew it, it was Hunt again.&lt;/p&gt;
&lt;p&gt;It’s really nice to get to solve Mystery Hunt again, and especially
nice to do so on a team that was fairly actively trying not to win. GT
generally tried not to add too many members this year, with some
affiliated folks splitting off or hunting with other teams. During the
hunt itself, we avoided backsolving puzzles that people were enjoying
forward-solving, and encouraged people to be more confident before
guessing answers. We ended up with a &amp;gt;50% guess accuracy&lt;a
href=&#34;#fn1&#34; class=&#34;footnote-ref&#34; id=&#34;fnref1&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;, much higher than some of our past
participations, and at least for the puzzles I participated in that took
more than a few incorrect answers, I think they were all reasonable
guesses or honest mistakes (&lt;span class=&#34;spoiler&#34;&gt;VALLICELLIANA&lt;/span&gt;
is difficult to spell) rather than attempts at short-circuiting.&lt;/p&gt;
&lt;p&gt;Personally, I did the hunt as part of a roughly 10-person west coast
contingent who met up in real life (and who all tested negative for
COVID shortly before or after arrival). I think I got roughly three
times as much sleep as I did during the 2020 hunt, when we won, and I
felt freer to hop onto puzzles that were greatly oversaturated with
solvers, such as A Number of Games and How to Install a Handle, or to
try less hard looking for extraction steps after doing the fun meat of a
puzzle. I think a lot of team members took a similar approach; based on
our solve log, we solved no metas between 3am and noon (ET) on either
day, and generally had much starker dead zones of activity in the
mornings than in past years.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>...And They Don&#39;t Stop Coming</title>
      <link>//blog.vero.site/post/coming</link>
      <pubDate>Fri, 31 Dec 2021 23:59:00 -0800</pubDate>
      
      <guid>//blog.vero.site/post/coming</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/2OXgMj6NF08&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;It’s another year, huh.&lt;/p&gt;
&lt;p&gt;2021 is the first year during which I held a full-time job
continuously. My disposable income and discretionary spending have both
increased the most sharply since, well, ever. It’s weird.&lt;/p&gt;
&lt;p&gt;We are still in a pandemic. Greek letters continue to be associated
with uncool things. I got vaccinated and started taking measured (but
still small) risks. Funny story: my first vaccination was a complete
surprise, as my roommate knocked on my door mid-day to inform me that
somebody he knew had extra vaccines to give out — except that the night
before I had a dream about being vaccinated, which was weird enough that
I wrote that dream down, something I do only once every few months. I
also got boosted just a few days ago.&lt;/p&gt;
&lt;p&gt;What else happened to me in 2021?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Just Enough Elliptic Curves to Be Dangerous</title>
      <link>//blog.vero.site/post/elliptic-curves</link>
      <pubDate>Sun, 28 Nov 2021 18:24:18 -0800</pubDate>
      
      <guid>//blog.vero.site/post/elliptic-curves</guid>
      <description>&lt;p&gt;A famous Trail of Bits post says to &lt;a
href=&#34;https://blog.trailofbits.com/2019/07/08/fuck-rsa/&#34;&gt;stop using
RSA&lt;/a&gt;: it’s simple enough to make people think they can implement it
correctly, but full of invisible traps. In contrast, although elliptic
curve cryptography (ECC) implementations could also fall into subtle
traps, they usually don’t. The post conjectures that this is because ECC
intimidates people into using cryptographically sound libraries instead
of implementing their own.&lt;/p&gt;
&lt;p&gt;If you do want to understand ECC just enough to produce your own
trap-ridden implementation, though, this post aims to get you there.
(Assuming some mathematical background chosen in a not particularly
principled way, approximately what I had before writing this post.)
Hence the title. Because I have a cryptographic conscience, I will still
point out the traps I know of; but there are probably traps I don’t know
about.&lt;/p&gt;
&lt;p&gt;This post contains a lot of handwaving and straight-up giving up on
proofs. You don’t need to know the proofs to be dangerous. The ethos is
sort of like &lt;a href=&#34;https://web.evanchen.cc/napkin.html&#34;&gt;Napkin&lt;/a&gt;,
but way shoddier and with zero pretense of pedagogical soundness. Still,
here are some concrete questions that I learned the answer to while
writing this post:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Why does the group law hold, sort of intuitively?&lt;/li&gt;
&lt;li&gt;Why do people have to modify Curve25519 before using it to compute
digital signatures?&lt;/li&gt;
&lt;li&gt;What is a “quadratic twist” and why should I care about it to pick a
secure elliptic curve?&lt;/li&gt;
&lt;li&gt;How is it possible that an isogeny can be described as surjective
but not injective while mapping a finite elliptic curve to another
elliptic curve of the same cardinality?&lt;/li&gt;
&lt;li&gt;How many claws does an alligator have?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Elliptic curves have a lot of complicated algebra. If you ever
studied algebra in high school and did exercises where you had to
simplify or factor or graph some really complicated algebraic
expression, and you learned that algebra is also the name of a field in
higher mathematics, you might have assumed that working algebraists just
dealt with even more complicated expressions. If you then studied
algebra in college, you’d probably have realized that that’s not really
what algebra is about at all; the difficulty comes from &lt;em&gt;new
abstractions&lt;/em&gt;, like a bunch of the terms above.&lt;/p&gt;
&lt;p&gt;Well… the study of elliptic curves involves a bunch of complicated
expressions like what your high school self might have imagined.
Sometimes, notes will just explode into a trainwreck of terms like&lt;/p&gt;
&lt;p&gt;&lt;span class=&#34;math display&#34;&gt;\[\begin{align*}\psi_1 &amp;amp;= 1 \\ \psi_2
&amp;amp;= 2y \\ \psi_3 &amp;amp;= 3x^4 + 6Ax^2 + 12Bx - A^2 \\ \psi_4 &amp;amp;=
4y(x^6 + 5Ax^4 + 20Bx^3 - 5A^2x^2 - 4ABx - A^3 -
8B^2).\end{align*}\]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;“This is REAL Math, done by REAL Mathematicians,” one is tempted to
quip. The &lt;a href=&#34;https://hyperelliptic.org/EFD/&#34;&gt;Explicit-Formulas
Database&lt;/a&gt; is a fun place to take a gander through. I will copy
formulas into this post from time to time when there’s something about
them I want to call attention to, but in general we won’t do any
complicated algebraic manipulations in this post. Just be prepared.&lt;/p&gt;
&lt;p&gt;Because I’m focusing on conceptual understanding (and am lazy), this
post contains almost no code, and definitely no code that’s runnable in
any real programming language.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>One Weird Anki Trick</title>
      <link>//blog.vero.site/post/anki-trick</link>
      <pubDate>Mon, 16 Aug 2021 01:35:57 -0700</pubDate>
      
      <guid>//blog.vero.site/post/anki-trick</guid>
      <description>&lt;p&gt;Imagine you had a button you could press whenever you saw or heard
something you wanted to remember. By holding that button down for about
a minute, you’ll be able to remember that thing &lt;em&gt;forever&lt;/em&gt;. There
are no undesirable side effects. Sounds like a pretty good deal,
right?&lt;/p&gt;
&lt;p&gt;There’s only one catch: you have to regularly find new things to
press the button on. If you stop for more than a few days, the effects
wear off. If you ask me, it still seems almost too good to be true! But
it’s not. It’s the magic of &lt;a
href=&#34;https://en.wikipedia.org/wiki/Spaced_repetition&#34;&gt;spaced
repetition&lt;/a&gt;.&lt;a href=&#34;#fn1&#34; class=&#34;footnote-ref&#34; id=&#34;fnref1&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I had known about this magic for a long time and read blog posts from
all directions telling me to use it, typically but not necessarily
through &lt;a href=&#34;https://apps.ankiweb.net/&#34;&gt;Anki&lt;/a&gt;. Examples include
Nicky Case’s &lt;a href=&#34;https://ncase.me/remember/&#34;&gt;interactive guide&lt;/a&gt;
and Alexey Guzey’s &lt;a
href=&#34;https://guzey.com/things/software/anki/&#34;&gt;guide&lt;/a&gt;; and because
this has been so well-covered, I won’t go into how or why spaced
repetition works or how one would use Anki in this post. Still, for a
long time, I found the one “catch” to be of the -22 variety: I didn’t
use Anki regularly because I didn’t have any flash cards of things I
wanted to remember; but I didn’t make any flash cards of things I wanted
to remember because, given that I didn’t use Anki regularly, making
those flash cards wouldn’t actually help me remember those things.&lt;/p&gt;
&lt;p&gt;Here is the One Weird Anki Trick that got me to finally turn spaced
repetition into a habit: I created an Anki deck with a bunch of amusing
but utterly useless cards,&lt;a href=&#34;#fn2&#34; class=&#34;footnote-ref&#34;
id=&#34;fnref2&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt; in order to make
studying the Anki deck an entertaining activity I actually wanted to do.
(Getting the mobile app and syncing my deck online also helped a lot.)
Only after I started to habitually check my Anki deck did I start adding
cards for the things I actually wanted to learn. I keep everything in
one deck,&lt;a href=&#34;#fn3&#34; class=&#34;footnote-ref&#34; id=&#34;fnref3&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt; so that my fun cards are spread out
among my “work” cards, and when I find myself losing motivation, I add
more useless entertainment cards.&lt;/p&gt;
&lt;p&gt;That’s it. That’s the whole post.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>What Color Should My Discord Roles/Reactions Be?</title>
      <link>//blog.vero.site/post/discord-color</link>
      <pubDate>Mon, 28 Jun 2021 20:17:51 -0700</pubDate>
      
      <guid>//blog.vero.site/post/discord-color</guid>
      <description>&lt;p&gt;I subscribed to Discord Nitro a month ago, but only recently did I
start thinking about the full range of powers the subscription granted
me. I could create my own reactions, dump them in my personal server,
and use them to react anywhere.&lt;/p&gt;
&lt;p&gt;However, when I finally started trying to create some reactions, I
hit an interesting snag: Discord can be used in dark and light mode,&lt;a
href=&#34;#fn1&#34; class=&#34;footnote-ref&#34; id=&#34;fnref1&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt; and a reaction will have the same
color on both modes. If I wanted my reaction to be as clearly readable
in both modes as possible, what color should I make it?&lt;/p&gt;
&lt;p&gt;(I could, of course, just outline my reaction with a contrasting
color, but let’s say that’s cheating. With the limited space in a
reaction, outlining isn’t that great of a solution anyway.)&lt;/p&gt;
&lt;p&gt;Now, one can’t &lt;em&gt;really&lt;/em&gt; just compute the “contrast of two
colors” given only their RGB components; there’s no universally
agreed-on definition of &lt;a
href=&#34;https://en.wikipedia.org/wiki/Contrast_(vision)&#34;&gt;contrast in
vision&lt;/a&gt;, and even if there were one, the contrast of two given colors
would depend on the color space and possibly the viewer’s biology. But,
to get a concrete answer to this question, we can use the standard sRGB
model and the W3C’s definitions of &lt;a
href=&#34;https://www.w3.org/TR/WCAG/#dfn-contrast-ratio&#34;&gt;contrast ratio&lt;/a&gt;
and &lt;a
href=&#34;https://www.w3.org/TR/WCAG/#dfn-relative-luminance&#34;&gt;relative
luminance&lt;/a&gt;.&lt;a href=&#34;#fn2&#34; class=&#34;footnote-ref&#34; id=&#34;fnref2&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt; As of time of writing on my
computer,&lt;a href=&#34;#fn3&#34; class=&#34;footnote-ref&#34; id=&#34;fnref3&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt; Discord reactions have background
&lt;span
style=&#34;padding:0.15em 0.4em;background-color:#2f3136;color:white&#34;&gt;#2f3136&lt;/span&gt;
on dark mode and &lt;span
style=&#34;padding:0.15em 0.4em;background-color:#f2f3f5&#34;&gt;#f2f3f5&lt;/span&gt; on
light mode. Reactions you’ve reacted with have background &lt;span
style=&#34;padding:0.15em 0.4em;background-color:#3b405a;color:white&#34;&gt;#3b405a&lt;/span&gt;
on dark mode and &lt;span
style=&#34;padding:0.15em 0.4em;background-color:#e7e9fd&#34;&gt;#e7e9fd&lt;/span&gt; on
light mode. Because the dark mode background gets lighter and the light
mode background gets darker, we’ll use the latter colors so we’re
optimizing the worst-case contrast.&lt;/p&gt;
&lt;p&gt;There are smarter approaches, but the 256&lt;sup&gt;3&lt;/sup&gt; = 16,777,216
possible 8-bit colors are perfectly feasible to brute force, so I wrote
a short Python script to check all of them, which is at the bottom of
this post. Under the parameters I’ve outlined, the optimal color for a
Discord reaction is &lt;span
style=&#34;padding:0.15em 0.4em;background-color:#ff4103&#34;&gt;rgb(255, 65, 3) or
#ff4103.&lt;/span&gt; A demo:&lt;/p&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td style=&#34;background-color:#3b405a;color:#ff4103&#34;&gt;
#ff4103 &lt;strong&gt;#ff4103&lt;/strong&gt; ●&lt;br&gt;
&lt;small&gt;&lt;abbr title=&#34;Contrast Ratio&#34;&gt;CR&lt;/abbr&gt;: 2.90738237&lt;/small&gt;
&lt;/td&gt;
&lt;td style=&#34;background-color:#e7e9fd;color:#ff4103&#34;&gt;
#ff4103 &lt;strong&gt;#ff4103&lt;/strong&gt; ● &lt;br&gt;
&lt;small&gt;&lt;abbr title=&#34;Contrast Ratio&#34;&gt;CR&lt;/abbr&gt;: 2.90738217&lt;/small&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;That was simple enough, but this color’s worst-case contrast ratio is
less than 0.0000002 better than the runner-up. Surely even very mild
aesthetic considerations will outweigh that. (It’s highly doubtful that
the formulae I used were intended to have this degree of precision in
the first place.)&lt;/p&gt;
&lt;p&gt;After playing with a few ways to get a spread of options, I settled
on categorizing colors into six buckets of saturation and twelve buckets
of hue in the &lt;a
href=&#34;https://en.wikipedia.org/wiki/HSL_and_HSV#Formal_derivation&#34;&gt;simple
HSV model&lt;/a&gt;, and then finding the optimal color within each bucket.
Here is a table of my results:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>SQL Selects the Hard FP Way</title>
      <link>//blog.vero.site/post/sql-select</link>
      <pubDate>Fri, 16 Apr 2021 19:41:49 -0700</pubDate>
      
      <guid>//blog.vero.site/post/sql-select</guid>
      <description>&lt;p&gt;This post is motivated by reasons very similar to the ones that
motivated my &lt;a href=&#34;//blog.vero.site/post/react-redux&#34;&gt;React and Redux
“tutorial”&lt;/a&gt;. Again, it should be more accurately but less
informatively titled “How I wish SQL SELECTs were explained to me”.
Again, it does not imply that this method of explanation is suitable for
anybody else. One difference is that this time, I mostly only wanted to
learn about SQL SELECTs to the extent it would help me perform and
optimize queries in Django’s ORM, but to prevent this post from
languishing forever in my drafts folder, that material has been
sectioned off into a possible future post, because I figured out what I
wanted, ran out of steam, and am now trying to learn TLA⁺. Just me
things.&lt;/p&gt;
&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;
&lt;p&gt;The SQL standard is confusing and almost never completely
implemented; there are huge inconsistencies between SQL implementations.
I will focus on SQLite because it’s popular and easy to play with, but
generally try to stay away from unpopular or nonstandard features. &lt;a
href=&#34;https://www.sqlite.org/lang_select.html&#34;&gt;SQLite’s SELECT
documentation&lt;/a&gt; is good reading for &lt;em&gt;one&lt;/em&gt; particular SQL
implementation.&lt;/p&gt;
&lt;p&gt;A SQL database is a place where you store and query a bunch of data
that’s organized into tables. A table is a homogeneous list of rows. A
row is a heterogeneous tuple of values of various simple data types. The
data types supported depend on the SQL implementation; typical examples
are integers and strings of various sizes, floating point numbers, and
dates/datetimes. All of these types can be nullable; NULL is a SQL value
that can appear just about anywhere. (Like many of the other SQL
features, NULL is handled somewhat inconsistently across SQL
implementations, but as a first-order approximation it’s closer to a
floating-point NaN than, say, Java’s “null”. We’ll talk more about it
later.) However, note that you can’t have a variable-size list of other
things in a row. And just to make sure it’s clear, all the rows in a
given table must have the same data types in the same order.&lt;/p&gt;
&lt;p&gt;A “column” is just what you’d intuitively expect it to be: it’s the
homogeneous list of all values in a particular position in each row of a
table, which all have the same data type. One thing I haven’t mentioned
yet is that table columns all have names. This is true both for tables
stored in the database and for the ephemeral tables that are the output
of queries.&lt;/p&gt;
&lt;p&gt;Since I’ll also be referring to more complex types like lists and
tuples often seen in conventional programming languages, I’ll call these
simple data types “scalar types” and values of those types “scalars”.
This is not SQL terminology; documentation usually just calls these
“data types”. Here’s &lt;a
href=&#34;https://www.sqlite.org/datatype3.html&#34;&gt;SQLite’s page on data
types&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To play along, install SQLite and run it. You should get dropped into
a connection to an ephemeral in-memory database, which is plenty enough
for our purposes. Make a table and mutter some magic incantations to
make the output a little prettier for us:&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb1&#34;&gt;&lt;pre
class=&#34;sourceCode sql&#34;&gt;&lt;code class=&#34;sourceCode sql&#34;&gt;&lt;span id=&#34;cb1-1&#34;&gt;&lt;a href=&#34;#cb1-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;kw&#34;&gt;CREATE&lt;/span&gt; &lt;span class=&#34;kw&#34;&gt;TABLE&lt;/span&gt; a (&lt;span class=&#34;kw&#34;&gt;id&lt;/span&gt; &lt;span class=&#34;dt&#34;&gt;int&lt;/span&gt;);&lt;/span&gt;
&lt;span id=&#34;cb1-2&#34;&gt;&lt;a href=&#34;#cb1-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;kw&#34;&gt;INSERT&lt;/span&gt; &lt;span class=&#34;kw&#34;&gt;INTO&lt;/span&gt; a &lt;span class=&#34;kw&#34;&gt;VALUES&lt;/span&gt; (&lt;span class=&#34;dv&#34;&gt;1&lt;/span&gt;), (&lt;span class=&#34;dv&#34;&gt;2&lt;/span&gt;), (&lt;span class=&#34;dv&#34;&gt;3&lt;/span&gt;), (&lt;span class=&#34;dv&#34;&gt;4&lt;/span&gt;);&lt;/span&gt;
&lt;span id=&#34;cb1-3&#34;&gt;&lt;a href=&#34;#cb1-3&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;.headers &lt;span class=&#34;kw&#34;&gt;on&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-4&#34;&gt;&lt;a href=&#34;#cb1-4&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;.&lt;span class=&#34;kw&#34;&gt;mode&lt;/span&gt; &lt;span class=&#34;kw&#34;&gt;column&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>Blogging Advice For People Exactly Like Me</title>
      <link>//blog.vero.site/post/blogging-advice</link>
      <pubDate>Sun, 14 Mar 2021 00:24:46 -0800</pubDate>
      
      <guid>//blog.vero.site/post/blogging-advice</guid>
      <description>&lt;p&gt;Did you know that it’s harder to become an MIT admissions blogger as
an MIT student than it is to get into MIT as an applicant? It was true
my year, in which 18,306 students applied and 1,467 were admitted
(8.0%),&lt;a href=&#34;#fn1&#34; class=&#34;footnote-ref&#34; id=&#34;fnref1&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt; whereas 69 students applied for 5
blogging spots (7.2%).&lt;a href=&#34;#fn2&#34; class=&#34;footnote-ref&#34; id=&#34;fnref2&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt; Anecdotally it might also be true
for future years.&lt;/p&gt;
&lt;p&gt;I was among the 92.8% who got rejected in the latter process.
Although I obviously would have preferred things go the other way, I
can’t say I was surprised, firstly because, objectively, the odds were
against me (as they were for every other individual applicant); secondly
because, to the extent I can make educated guesses about the criteria
the folks at MIT Admissions would have chosen bloggers by, I would have
been close to the worst possible candidate;&lt;a href=&#34;#fn3&#34;
class=&#34;footnote-ref&#34; id=&#34;fnref3&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt;
thirdly because my application probably wasn’t very good.&lt;a href=&#34;#fn4&#34;
class=&#34;footnote-ref&#34; id=&#34;fnref4&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;4&lt;/sup&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I didn’t dwell on it; I just thought to myself some vague consoling
thoughts and moved on. No matter what I missed out on, at least I
retained complete freedom: to choose what to write about, when to post
it, and how to format and typeset it, down to the very last
&lt;code style=&#34;box-shadow: 1px -1px 3px rgba(170,0,0,0.5)&#34;&gt;box-shadow&lt;/code&gt;.
Right? But, although I mostly successfully avoided thinking about it,
there really was a lot to like about being an admissions blogger! I
liked writing — or perhaps, I liked &lt;em&gt;being a person who has written a
lot&lt;/em&gt; more, and having a commitment to blog regularly would be a way
to force myself to become that person. I liked the idea of getting to
share things with thousands of readers, or less euphemistically I liked
the thought of being, if ever so slightly, famous.&lt;a href=&#34;#fn5&#34;
class=&#34;footnote-ref&#34; id=&#34;fnref5&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;5&lt;/sup&gt;&lt;/a&gt; I
liked the idea of having a sketched portrait and being part of official
events with “Blogger” in the title and all that jazz. Collectively these
things just felt &lt;em&gt;cool&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The thing is, though, that there were things I could do to try to get
those things for myself, and I didn’t do them. I know how to force
myself to blog regularly, which is just by announcing publicly to nobody
in particular that I’ll blog regularly (it’s worked effectively at least
twice). I know many places I could promote my blog and try to get more
readers. I can buy a sketched portrait.&lt;a href=&#34;#fn6&#34;
class=&#34;footnote-ref&#34; id=&#34;fnref6&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;6&lt;/sup&gt;&lt;/a&gt;
It’s not that hard.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>2021 MIT Mystery Hunt</title>
      <link>//blog.vero.site/post/2021-hunt</link>
      <pubDate>Sat, 13 Feb 2021 16:07:56 -0800</pubDate>
      
      <guid>//blog.vero.site/post/2021-hunt</guid>
      <description>&lt;p&gt;Note: if you are viewing this shortly after it’s published and
somehow don’t want to be spoiled on Mystery Hunt, make sure this spoiler
formatting shows up: &lt;span class=&#34;spoiler&#34;&gt;this text should be
spoilered&lt;/span&gt;; if it doesn’t, try shift-refreshing. (There are
Correct Ways to fix this, but I’m too lazy to do them. Sorry.)&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Well, we did it.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://perpendicular.institute/&#34;&gt;✈✈✈ Galactic Trendsetters
✈✈✈ ran an MIT Mystery Hunt.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Somehow, it slipped my mind until trying to write the 2020 year-end
post that I’d probably want to write a post on all this. In fact, there
was one major project that I started in 2019, but that I didn’t think of
mentioning in my 2019 year-end post because it wasn’t ready to be
announced at that time, and that I almost forgot that I had never
mentioned. But this post is a pretty good place to announce it.&lt;/p&gt;
&lt;p&gt;Planning Mystery Hunt is a massive year-long endeavor. I didn’t have
any leadership or otherwise high-responsibility roles, which made sense
because I was busy writing a masters thesis for the first four months of
Mystery Hunt planning. Because of that, and because I know many many
other people on our team have written and will be writing blog posts (&lt;a
href=&#34;https://fortenf.org/e/2021/01/28/mystery-hunt-2021-part-1.html&#34;&gt;Rahul’s
post&lt;/a&gt;, &lt;a
href=&#34;http://www.npinsker.me/puzzles/retrospective&#34;&gt;Nathan’s post&lt;/a&gt;,
&lt;a
href=&#34;https://mitadmissions.org/blogs/entry/two-hundred-puzzles-2/&#34;&gt;CJ’s
post&lt;/a&gt;, maybe more to come?) I will focus on the things I did
specifically. (So there is minimal discussion of the theme, overall
organization, or big decisions like our COVID-19 response; I think the
linked posts cover these well already.)&lt;/p&gt;
&lt;h3 id=&#34;puzzle-writing-software&#34;&gt;Puzzle-Writing Software&lt;/h3&gt;
&lt;p&gt;One part I did largely have “ownership” of, and that I sank a lot of
time into, was maintaining our software for writing puzzles — the
website where authors submitted puzzle ideas and drafts, testsolvers
tested puzzles, and editors tracked and discussed the statuses of all
the puzzles. This role was largely a continuation of me owning the same
component for Galactic Puzzle Hunt since 2018, which itself grew out of
the comparative advantage of having worked on it a little when &lt;a
href=&#34;//blog.vero.site/post/hunt&#34;&gt;writing with Random Fish for the 2015
MIT Mystery Hunt&lt;/a&gt;. There is some life lesson about specialization or
pigeonholing to be learned here. But, to start at the beginning:&lt;/p&gt;
&lt;p&gt;&lt;a
href=&#34;https://github.com/mysteryhunt/puzzle-editing/&#34;&gt;Puzzletron&lt;/a&gt; is
a piece of PHP software used for organizing puzzle writing for
puzzlehunts. The &lt;a
href=&#34;https://github.com/mysteryhunt/puzzle-editing/commit/f67a67d63aa78708c4ca94132f1dce9dbbc116ac&#34;&gt;first
commit on GitHub&lt;/a&gt; says it was imported from Metaphysical Plant in
2011; it’s likely older. There are active commits each year until
January 2018, and AMA responses from &lt;a
href=&#34;https://www.reddit.com/r/mysteryhunt/comments/am5s1d/were_setec_astronomy_and_we_just_ran_a_mystery/efjrzs4/&#34;&gt;Setec
(2019)&lt;/a&gt; and &lt;a
href=&#34;https://www.reddit.com/r/mysteryhunt/comments/eucu3x/ama_we_are_left_out_design_team_for_the_2020/ffnzq80/?utm_source=reddit&amp;amp;utm_medium=web2x&amp;amp;context=3&#34;&gt;Left
Out (2020)&lt;/a&gt; mentioning it, so I believe most if not all Mystery Hunt
writing teams used and improved Puzzletron and passed it down over those
years.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>…And I Feel Fine</title>
      <link>//blog.vero.site/post/and-i-feel-fine</link>
      <pubDate>Thu, 31 Dec 2020 23:59:00 -0800</pubDate>
      
      <guid>//blog.vero.site/post/and-i-feel-fine</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/Is73BbYhFz4&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;It’s a strange and darkly funny story — Tim Minchin wrote the album
this is from, &lt;a
href=&#34;https://tim-minchin.lnk.to/ApartTogetherAlbumWE&#34;&gt;&lt;cite&gt;Apart
Together&lt;/cite&gt;&lt;/a&gt;, well before the pandemic hit and social distancing
became the norm, and I assume I am not alone in finding that the song
resonates unusually strongly as a result.&lt;a href=&#34;#fn1&#34;
class=&#34;footnote-ref&#34; id=&#34;fnref1&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt; By
Jove, it resonates.&lt;/p&gt;
&lt;p&gt;Nobody needs me to say that it’s been a rough year. People have been
complaining that each of the last few years were terrible, and looking
forward to the next one, and being disappointed — as if years were
coherent bundles of quality, and there was any reason to expect
discontinuities in how things are going to occur around January 1st —
and as if there were additionally any reason to expect such
discontinuities, if they did exist, to be positive ones.&lt;/p&gt;
&lt;p&gt;Seriously, do you remember when we thought 2015–2018 were bad?&lt;/p&gt;

&lt;p&gt;And yet… I feel like overall, 2020 went quite a bit better than
expectations for me. Which maybe means it’s astronomically better than
the average person’s 2020. I had a long draft for this post that slowly
accumulated words over the year as usual, but a lot of the ramblings I’d
usually include now seem unusually vapid, and a lot of the deeper trends
and experiences I might normally reflect on are things I don’t think
I’ve really gone through or thought about for long enough to achieve
closure on. This is partly due to the pandemic scrambling a lot of plans
and partly because last January, nearly a full year ago, &lt;a
href=&#34;//blog.vero.site/post/2020-hunt&#34;&gt;✈✈✈ Galactic Trendsetters ✈✈✈ won
Mystery Hunt&lt;/a&gt; and so we’re writing the 2021 hunt. The ramifications
are still being felt and will accelerate until it actually happens two
weeks from now, and that’s all I’ll say about it here.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Advent of Code: How to Leaderboard</title>
      <link>//blog.vero.site/post/advent-leaderboard</link>
      <pubDate>Tue, 24 Nov 2020 19:13:19 -0800</pubDate>
      
      <guid>//blog.vero.site/post/advent-leaderboard</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://adventofcode.com/&#34;&gt;Advent of Code&lt;/a&gt; (briefly,
“AoC”) is a series of 25 festive programming puzzles&lt;a href=&#34;#fn1&#34;
class=&#34;footnote-ref&#34; id=&#34;fnref1&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;
released daily December 1–25. Each puzzle has two parts, which use the
same text input and are related; to solve a part, you submit the right
output corresponding to the input on the website.&lt;/p&gt;
&lt;p&gt;If you’re reading this, I suspect there’s a good chance you knew that
already, but in case you’re new to Advent of Code, let me try to briefly
explain why I like Advent of Code, from the perspective of somebody
who’s spent a lot of their life so far doing programming competitions.&lt;a
href=&#34;#fn2&#34; class=&#34;footnote-ref&#34; id=&#34;fnref2&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The event has a fantastic community surrounding it. I’m the most
familiar with &lt;a href=&#34;https://www.reddit.com/r/adventofcode/&#34;&gt;the
subreddit&lt;/a&gt;, which is full of helpful people, interesting discussions,
non-programming community games, and the occasional &lt;a
href=&#34;https://www.reddit.com/r/adventofcode/comments/e6iw6l/day_5_browserbased_interactive_intcode_processor/&#34;&gt;wonderfully&lt;/a&gt;,
&lt;a
href=&#34;https://www.reddit.com/r/adventofcode/comments/e7ylwd/i_solved_day_8_entirely_in_minecraft/&#34;&gt;spectacularly&lt;/a&gt;
&lt;a
href=&#34;https://www.reddit.com/r/adventofcode/comments/eb79s0/2019_day_10_blowing_up_asteroids_in_unity/&#34;&gt;overengineered&lt;/a&gt;
&lt;a
href=&#34;https://www.reddit.com/r/adventofcode/comments/ea8mif/2019_day_13_excel_did_you_think_i_would_give_up/&#34;&gt;solution&lt;/a&gt;
to a puzzle; but I know there are also many smaller chatrooms and
subcommunities focused on, say, specific timezones or programming
languages.&lt;/li&gt;
&lt;li&gt;Another aspect is the unique two-part format of each puzzle. Even
though they use the same input, you don’t get to see the second part
until after you’ve solved the first one, a feature that Eric Wastl
(AoC’s creator) has taken full advantage of in designing puzzles. The
second part is often a surprising twist on the first part, which keeps
you on your toes and challenges you to keep your code moderately general
or refactorable in a way that I think almost no other programming
challenges do. This sometimes even happens between days in a calendar,
when a puzzle turns out to be about some model of computation you
implemented two or five or ten days ago — hope you kept your code and
remember how it works!&lt;/li&gt;
&lt;li&gt;Finally, AoC also has some non-rigorous puzzles that force you to
use your intuition and “human intelligence”, either by interpreting the
problem statement heuristically or writing code to let you explore the
input. There are quite a few puzzles where it’s infeasible to write code
that handles every step of obtaining the output from the input. The
result is that Advent of Code can feature quite a few challenges that
I’ve found particularly compelling because I think they simply could not
be posed on any other contest platform.&lt;a href=&#34;#fn3&#34;
class=&#34;footnote-ref&#34; id=&#34;fnref3&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are the things that make AoC stand out to me, but it also does
a lot of other things well — the challenges are fun, approachable, and
varied even aside from their interrelations; there is a long, dramatic
story tying everything together (although it’s an &lt;a
href=&#34;https://tvtropes.org/pmwiki/pmwiki.php/Main/ExcusePlot&#34;&gt;Excuse
Plot&lt;/a&gt; if there ever was such a thing); and, although this is
obviously subjective, I find the website’s minimalist-adjacent,
terminal-esque aesthetic really charming (there is a &lt;em&gt;lot&lt;/em&gt; of
detail in &lt;a href=&#34;https://adventofcode.com/2019&#34;&gt;2019’s calendar&lt;/a&gt;…
after you solve everything). I’ve only done the last two years of Advent
of Code, but it really seems like a one-of-a-kind event to me.&lt;/p&gt;
&lt;p&gt;Anyway, one particular feature Advent of Code has is a leaderboard,
which you can get on by being one of the first 100 people worldwide to
solve each puzzle. The competition is fierce — every year, thousands of
people compete to get on the leaderboard. Near the start of AoC 2019, &lt;a
href=&#34;https://gist.github.com/mcpower/87427528b9ba5cac6f0c679370789661&#34;&gt;mcpower&lt;/a&gt;
(&lt;a
href=&#34;https://www.reddit.com/r/adventofcode/comments/e2wjhf/tips_for_getting_on_the_advent_of_code_leaderboard/&#34;&gt;reddit
discussion&lt;/a&gt;) and &lt;a
href=&#34;https://kevinyap.ca/2019/12/going-fast-in-advent-of-code/&#34;&gt;Kevin
Yap&lt;/a&gt; (&lt;a
href=&#34;https://www.reddit.com/r/adventofcode/comments/e82f7a/going_fast_in_advent_of_code/&#34;&gt;reddit
discussion&lt;/a&gt;) wrote some articles about how to do this, both of which
are worth reading. I also thought about writing such an article and
started a draft, but I didn’t get it anywhere close to publishable
before AoC had concluded, at which point I assumed few people would be
interested. But here it is now.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>C&#43;&#43; Rvalue References: The Unnecessarily Detailed Guide</title>
      <link>//blog.vero.site/post/rvalue-references</link>
      <pubDate>Mon, 16 Nov 2020 00:25:50 -0800</pubDate>
      
      <guid>//blog.vero.site/post/rvalue-references</guid>
      <description>&lt;p&gt;By a strange quirk of fate, I have started writing C++ for a
living.&lt;/p&gt;
&lt;p&gt;Learning C++ was about as complicated as I think I expected it to be.
By line count, I’ve written a lot of C++ for programming competitions,
but I knew that I had only ever used a small cross-section of the
language: basic control flow and variables, STL containers and
algorithms, structs on which you mechanically define
&lt;code&gt;bool operator&amp;lt;(const T&amp;amp; other) const&lt;/code&gt; so STL
algorithms can order them, and the very occasional macro or templated
helper function. There were many features I wasn’t even aware
existed.&lt;/p&gt;
&lt;p&gt;In the process of learning C++ professionally, one rabbit hole I fell
into quickly was C++11’s defining feature, the &lt;em&gt;rvalue
reference&lt;/em&gt;, and how it can be used to implement &lt;em&gt;move
semantics&lt;/em&gt; and &lt;em&gt;perfect forwarding&lt;/em&gt;. By poring over a copy of
the widely recommended book &lt;a
href=&#34;https://www.amazon.com/Effective-Modern-Specific-Ways-Improve/dp/1491903996&#34;&gt;&lt;cite&gt;Effective
Modern C++&lt;/cite&gt;&lt;/a&gt;, by Scott Meyers, and a few dozen StackOverflow
answers and blog posts, I roughly understood it after a few days, but
still had a sort of blind-men-feeling-the-elephant feeling. I was
confused about what lay under some of the abstractions I had been using,
unsure of the full shape of the pitfalls that some of the guides had
pointed out to me, and generally uncomfortable that there were still
many small variations of the code I had seen that I couldn’t predict the
behavior of. It took many more days to work myself out of there, and I
wished I had had a guide that explained rvalue references and their
applications to a bit more depth than what might be necessary for
day-to-day use. So here’s my attempt to explain rvalue references in my
own fundamental I-want-to-know-how-things-work-no-&lt;em&gt;really&lt;/em&gt;
style.&lt;/p&gt;
&lt;p&gt;(If this vision doesn’t resonate with you, there are many other posts
explaining rvalue references out there that you might prefer. Feel free
to just skim the executive summary and/or check out some of the linked
articles in the Background section.)&lt;/p&gt;
&lt;h3 id=&#34;executive-summary&#34;&gt;Executive Summary&lt;/h3&gt;
&lt;p&gt;I got… pretty carried away when writing this post, and a lot of it is
just for my own understanding, which may or may not be useful to
readers. Here’s a much more concise rundown (assuming you know basic C++
already):&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>45/101</title>
      <link>//blog.vero.site/post/45</link>
      <pubDate>Tue, 12 May 2020 23:06:51 -0400</pubDate>
      
      <guid>//blog.vero.site/post/45</guid>
      <description>&lt;p&gt;Not a very completionist run. I graded myself pretty strictly though
— both sides of every “and” need to count; “all” means literally all;
fuzzy actions and phrases require full psychological commitment to
qualify.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;//blog.vero.site/img/45.jpg&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/45.jpg&#34; alt=&#34;&amp;quot;101 Thiings To Do Before You Graduate&amp;quot; poster with 45 things crossed off&#34; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Signed Modulo</title>
      <link>//blog.vero.site/post/modulo</link>
      <pubDate>Tue, 04 Feb 2020 18:00:58 -0500</pubDate>
      
      <guid>//blog.vero.site/post/modulo</guid>
      <description>&lt;p&gt;One thing many mathematically-inclined programmers run into when
implementing mathematical algorithms, particularly number-theoretic
ones, is that the &lt;a
href=&#34;https://en.wikipedia.org/wiki/Modulo_operation&#34;&gt;modulo
operation&lt;/a&gt; doesn’t behave how they expect or prefer.&lt;/p&gt;
&lt;p&gt;In many languages, this operator is denoted &lt;code&gt;%&lt;/code&gt;.
Concretely, one might prefer that, if the second argument is positive,
then the modulo operation would always give a nonnegative result. Under
this behavior, the expression &lt;code&gt;(-5) % 3&lt;/code&gt; would evaluate to
&lt;code&gt;1&lt;/code&gt; rather than &lt;code&gt;-2&lt;/code&gt;. This is a lot more useful
for number theory because then for positive integers &lt;code&gt;n&lt;/code&gt;, the
&lt;code&gt;% n&lt;/code&gt; operation actually maps integers to exactly the
&lt;code&gt;n&lt;/code&gt; canonical representatives for the residue classes. As a
result, &lt;span class=&#34;math inline&#34;&gt;\(a \equiv b \mod n\)&lt;/span&gt; if and
only if &lt;code&gt;a % n == b % n&lt;/code&gt;. You can also do things like index
into a length-&lt;code&gt;n&lt;/code&gt; array with &lt;code&gt;a % n&lt;/code&gt; and know that
the index will be in-bounds. Finally, there are also optimization
opportunities: modding by a power of 2 becomes equivalent to a simple
bitwise AND, which is really fast on modern computers.&lt;/p&gt;
&lt;p&gt;A few programming languages, notably Python, do implement
&lt;code&gt;%&lt;/code&gt; this way. However, the majority of languages today,
including pretty much everything remotely descended from C, do not;
instead, &lt;code&gt;(-5) % 3&lt;/code&gt; is &lt;code&gt;-2&lt;/code&gt;. This post attempts to
track down why.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;The first thing to note is that there is a more important
number-theoretic identity we’d like to have:&lt;/p&gt;
&lt;p&gt;&lt;span class=&#34;math display&#34;&gt;\[\texttt{a} = (\texttt{a / b}) \cdot
\texttt{b} + (\texttt{a \% b}). \tag{1}\]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;In words, the integer division and modulo operators should give a
breakdown of &lt;code&gt;a&lt;/code&gt; into a sum of some copies of &lt;code&gt;b&lt;/code&gt;
plus a remainder. Note that this equation also implies that specifying
the rounding behavior of division is equivalent to specifying the sign
behavior of the modulo operation, which will come up repeatedly
later.&lt;/p&gt;
&lt;p&gt;It’s also very uncontroversial that that remainder should have no
copies of &lt;code&gt;b&lt;/code&gt;, positive or negative, left over, which gives
the constraint:&lt;/p&gt;
&lt;p&gt;&lt;span class=&#34;math display&#34;&gt;\[|\texttt{a \% b}| &amp;lt; |\texttt{b}|.
\tag{2}\]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Every programming language I can think of satisfies these two
constraints.&lt;a href=&#34;#fn1&#34; class=&#34;footnote-ref&#34; id=&#34;fnref1&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt; So far so good. However, these two
constraints don’t uniquely determine the values of &lt;code&gt;a % b&lt;/code&gt;
when &lt;code&gt;a&lt;/code&gt; isn’t divisible by &lt;code&gt;b&lt;/code&gt;; there are two
possible values for &lt;code&gt;a % b&lt;/code&gt;, one positive and one negative.
Concretely, we could express &lt;span class=&#34;math inline&#34;&gt;\(-5\)&lt;/span&gt; as
either &lt;span class=&#34;math inline&#34;&gt;\((-1) \cdot 3 + (-2)\)&lt;/span&gt; or &lt;span
class=&#34;math inline&#34;&gt;\((-2) \cdot 3 + 1\)&lt;/span&gt;, so
&lt;code&gt;(-5) % 3&lt;/code&gt; could be &lt;code&gt;-2&lt;/code&gt; or &lt;code&gt;1&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;It’s still mostly uncontroversial that, if &lt;code&gt;a&lt;/code&gt; and
&lt;code&gt;b&lt;/code&gt; are both positive, then &lt;code&gt;a % b&lt;/code&gt; should be
nonnegative as well; we could call this constraint (3).&lt;a href=&#34;#fn2&#34;
class=&#34;footnote-ref&#34; id=&#34;fnref2&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;
However, if &lt;code&gt;a&lt;/code&gt; is negative and &lt;code&gt;b&lt;/code&gt; is positive,
programming languages start to diverge in their behavior. Why?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>2020 MIT Mystery Hunt</title>
      <link>//blog.vero.site/post/2020-hunt</link>
      <pubDate>Mon, 03 Feb 2020 23:24:47 -0500</pubDate>
      
      <guid>//blog.vero.site/post/2020-hunt</guid>
      <description>&lt;p&gt;Fifth year with ✈✈✈ Galactic Trendsetters ✈✈✈ (previously: &lt;a
href=&#34;//blog.vero.site/post/2019-hunt&#34;&gt;2019&lt;/a&gt;, &lt;a
href=&#34;//blog.vero.site/post/2018-hunt&#34;&gt;2018&lt;/a&gt;, &lt;a
href=&#34;//blog.vero.site/post/january&#34;&gt;2017&lt;/a&gt;, &lt;a
href=&#34;//blog.vero.site/post/whoosh&#34;&gt;2016&lt;/a&gt;; writing with Random in &lt;a
href=&#34;//blog.vero.site/post/hunt&#34;&gt;2015&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;We won!&lt;/p&gt;
&lt;p&gt;But apparently I’m still really busy, so I’ll probably just focus on
a few highlights of things I personally experienced and get this post
out the door.&lt;/p&gt;
&lt;p&gt;The theme in a few sentences: As suggested by &lt;a
href=&#34;https://www.reddit.com/r/mysteryhunt/comments/eo475t/you_are_cordially_invited/&#34;&gt;the
invitation&lt;/a&gt; sent out to teams, there was a wedding. It turned out to
actually be a real wedding between two prolific puzzle writers on Left
Out, the organizing team. To the surprise of everybody who expected
either one, three, or maybe five subversions of this announcement, the
wedding actually succeeded (a COIN that would prevent all love in the
universe was briefly reported missing, but then immediately found by the
bride). Instead, we joined the newlyweds on a trip to an amusement park
called Penny Park, which we learned was struggling and closing this
weekend. It was up to help its regain its popularity and stay open by
solving puzzles. The &lt;a
href=&#34;https://www.reddit.com/r/mysteryhunt/&#34;&gt;Mystery Hunt subreddit&lt;/a&gt;
has lots of other cool links and discussions, including this &lt;a
href=&#34;https://public.flourish.studio/visualisation/1267425/&#34;&gt;animated
bar chart&lt;/a&gt;, so I won’t spend more time here.&lt;/p&gt;
&lt;p&gt;I’m pretty sure the best story I personally experienced was how we
solved the metameta, the biggest puzzle that stood between us and
winning hunt, and the moment at which we went, holy smokes we might have
won Mystery Hunt! We got all the pennies required for the final metameta
at Sunday 5:48:09am, and it took us until 12:47:30pm, just under
&lt;em&gt;seven hours later&lt;/em&gt;, to solve it…&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Startup Lag</title>
      <link>//blog.vero.site/post/startup-lag</link>
      <pubDate>Tue, 31 Dec 2019 16:24:31 +0800</pubDate>
      
      <guid>//blog.vero.site/post/startup-lag</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/cPAbx5kgCJo&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;This is a weird song choice — I have not even watched the movie. But
there is a story, and there is a thematic correspondence.&lt;/p&gt;
&lt;p&gt;The story is that I was interning remotely at a coworking space over
the summer. One night, I attended a karaoke event hosted there, the kind
where adult human beings socialize and where I didn’t know anybody else,
and I sang this song. Afterwards, another attendee told me that her kid
(yeah, you know, people in my reference class have children) loved Moana
and was really excited about my performance.&lt;/p&gt;
&lt;p&gt;The thematic correspondence is less obvious and harder for me to
describe. I’m going much less further this year than I could be, and am
less sure about next year than I expected to be at this point for
reasons I’m not ready to share yet (this seems to be happening more and
more on this blog, but there’s not much I can do about it — so it goes).
But it really is the case that there are some things I can’t deny about
myself, some attractor states that my values and way of thinking keep
dragging me towards.&lt;/p&gt;
&lt;p&gt;Frivolous examples: I went through another online Dominion phase and
at least two Protobowl phases, the highlight of which is learning a good
deal about &lt;a
href=&#34;https://en.wikipedia.org/wiki/%C3%89mile_Durkheim&#34;&gt;Émile
Durkheim&lt;/a&gt; and then buzzing on him the next day. I did Advent of Code
again, with the same golfing setup as last year, a foray into making an
auxiliary &lt;a
href=&#34;https://betaveros.github.io/extra-aoc-stats/&#34;&gt;over-the-top
leaderboard&lt;/a&gt; in Svelte, and (surprisingly to myself) getting first. I
have a shiny Charizard with Blast Burn now.&lt;/p&gt;
&lt;figure&gt;
&lt;a href=&#34;//blog.vero.site/img/shiny-charizard.png&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/shiny-charizard.png&#34; alt=&#34;Shiny Charizard in Pokémon Go&#34; width=&#34;360&#34; height=&#34;640&#34; /&gt;&lt;/a&gt;
&lt;/figure&gt;</description>
    </item>
    
    <item>
      <title>Rocket Equation</title>
      <link>//blog.vero.site/post/advent-rocket</link>
      <pubDate>Sun, 01 Dec 2019 13:38:14 -0500</pubDate>
      
      <guid>//blog.vero.site/post/advent-rocket</guid>
      <description>&lt;p&gt;It’s December, so it’s time for a lot of things, including &lt;a
href=&#34;https://adventofcode.com/&#34;&gt;Advent of Code&lt;/a&gt;. I will not be able
to be as competitive as I was last year, and already lost a lot of
points to a really silly mistake on day 1, but I’ll be playing when I
can and &lt;a
href=&#34;https://github.com/betaveros/advent-of-code-golf-2019&#34;&gt;golfing&lt;/a&gt;
the problems when I have time (so far: 7 + 14 bytes).&lt;/p&gt;
&lt;p&gt;As one might expect, &lt;a
href=&#34;https://adventofcode.com/2019/day/1&#34;&gt;Day 1&lt;/a&gt; is not too complex,
but the second part can be analyzed to some mathematical depth and was
discussed a bit on Reddit; plus, it occurred to me recently that I set
up KaTeX on my blog but never used it, so I was looking for an excuse to
write some equations anyway.&lt;/p&gt;
&lt;p&gt;The problem statement for part 2, in brief: We are tasked with
calculating the total mass of fuel required to launch a rocket module of
a given mass. For something of mass &lt;span
class=&#34;math inline&#34;&gt;\(m\)&lt;/span&gt;, one can compute the directly required
mass of fuel by dividing &lt;span class=&#34;math inline&#34;&gt;\(m\)&lt;/span&gt; by 3,
rounding down, and subtracting 2; if the result is negative, it is taken
to be 0 instead. However, the directly required fuel also requires fuel
itself, calculated from its own mass by the same procedure, and that
required fuel requires fuel based on its own mass, and so on until you
reach fuel with 0 requirement.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>callsite</title>
      <link>//blog.vero.site/post/callsite</link>
      <pubDate>Mon, 16 Sep 2019 01:18:58 -0400</pubDate>
      
      <guid>//blog.vero.site/post/callsite</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Call me maybe? &lt;code&gt;nc rev.chal.csaw.io 1001&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A rev with a nasty binary. There are so many functions. I do not like
this binary.&lt;/p&gt;
&lt;figure&gt;
&lt;a href=&#34;//blog.vero.site/img/callsite-gross.png&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/callsite-gross.png&#34; alt=&#34;Screenshot of IDA Pro on the callsite binary, with a lot of code and functions.&#34; /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;h3 id=&#34;static-analysis&#34;&gt;Static Analysis&lt;/h3&gt;
&lt;p&gt;After staring at the sea of functions in IDA for a little bit, I gave
up and tried dumb things instead.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>unagi</title>
      <link>//blog.vero.site/post/unagi</link>
      <pubDate>Sun, 15 Sep 2019 23:43:10 -0400</pubDate>
      
      <guid>//blog.vero.site/post/unagi</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;come get me&lt;/p&gt;
&lt;p&gt;http://web.chal.csaw.io:1003&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This was a web challenge with a few pages. The “User” page displayed
some user information:&lt;/p&gt;
&lt;figure&gt;
&lt;a href=&#34;//blog.vero.site/img/unagi-user.png&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/unagi-user.png&#34; alt=&#34;Screenshot of User page, transcribed below&#34; /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;blockquote&gt;
&lt;p&gt;Name: Alice&lt;br /&gt;
Email: alice@fakesite.com&lt;br /&gt;
Group: CSAW2019&lt;br /&gt;
Intro: Alice is cool&lt;/p&gt;
&lt;p&gt;Name: Bob&lt;br /&gt;
Email: bob@fakesite.com&lt;br /&gt;
Group: CSAW2019&lt;br /&gt;
Intro: Bob is cool too&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The “About” page simply told us, “Flag is located at /flag.txt, come
get it”. The most interesting page was “Upload”, where we could view an
example users XML file:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>baby_boi (A Textbook CTF ROP Tutorial)</title>
      <link>//blog.vero.site/post/baby-boi</link>
      <pubDate>Sun, 15 Sep 2019 22:12:04 -0400</pubDate>
      
      <guid>//blog.vero.site/post/baby-boi</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Welcome to pwn.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;nc pwn.chal.csaw.io 1005&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ahhh, CSAW CTF. Amidst all the other CTFs where we’re competing with
security professionals who probably have decades of experience and who
follow security developments for a living or whatever, there remains a
competition where scrubs like me can apply our extremely basic CTF
skills and still feel kinda smart by earning points. Now that I’ve
graduated and am no longer eligible, our team was pretty small and I
didn’t dedicate the full weekend to the CTF, but it means I got to do
the really easy challenges in the categories that I was the worst at, by
which I mean pwn.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;baby_boi&lt;/code&gt; is pretty much the simplest possible modern ROP
(the modern security protections NX and ASLR are not artificially
disabled, but you get everything you need to work around them). We even
get source code.&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb1&#34;&gt;&lt;pre class=&#34;sourceCode c&#34;&gt;&lt;code class=&#34;sourceCode c&#34;&gt;&lt;span id=&#34;cb1-1&#34;&gt;&lt;a href=&#34;#cb1-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;pp&#34;&gt;#include &lt;/span&gt;&lt;span class=&#34;im&#34;&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-2&#34;&gt;&lt;a href=&#34;#cb1-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;pp&#34;&gt;#include &lt;/span&gt;&lt;span class=&#34;im&#34;&gt;&amp;lt;stdlib.h&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-3&#34;&gt;&lt;a href=&#34;#cb1-3&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-4&#34;&gt;&lt;a href=&#34;#cb1-4&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;dt&#34;&gt;int&lt;/span&gt; main&lt;span class=&#34;op&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;dt&#34;&gt;int&lt;/span&gt; argc&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;dt&#34;&gt;char&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;**&lt;/span&gt;argv&lt;span class=&#34;op&#34;&gt;[])&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-5&#34;&gt;&lt;a href=&#34;#cb1-5&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;  &lt;span class=&#34;dt&#34;&gt;char&lt;/span&gt; buf&lt;span class=&#34;op&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;dv&#34;&gt;32&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;];&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-6&#34;&gt;&lt;a href=&#34;#cb1-6&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;  printf&lt;span class=&#34;op&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;st&#34;&gt;&amp;quot;Hello!&lt;/span&gt;&lt;span class=&#34;sc&#34;&gt;\n&lt;/span&gt;&lt;span class=&#34;st&#34;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-7&#34;&gt;&lt;a href=&#34;#cb1-7&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;  printf&lt;span class=&#34;op&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;st&#34;&gt;&amp;quot;Here I am: &lt;/span&gt;&lt;span class=&#34;sc&#34;&gt;%p\n&lt;/span&gt;&lt;span class=&#34;st&#34;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; printf&lt;span class=&#34;op&#34;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-8&#34;&gt;&lt;a href=&#34;#cb1-8&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;  gets&lt;span class=&#34;op&#34;&gt;(&lt;/span&gt;buf&lt;span class=&#34;op&#34;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-9&#34;&gt;&lt;a href=&#34;#cb1-9&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;op&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;So there’s nothing novel here for experienced pwners, but I feel like
there is a shortage of tutorials that walk you through how to solve a
textbook ROP the way you’d want to solve it in a CTF, so here is a
writeup.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introduction to Puzzlehunts</title>
      <link>//blog.vero.site/post/puzzlehunts</link>
      <pubDate>Mon, 02 Sep 2019 10:34:38 -0400</pubDate>
      
      <guid>//blog.vero.site/post/puzzlehunts</guid>
      <description>&lt;div class=&#34;series&#34;&gt;
&lt;p&gt;not part of the ongoing series, but you can almost pretend it is.
This sentence and the one before it are not a puzzle.&lt;/p&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Imagine a word search.&lt;/p&gt;
&lt;p&gt;Now imagine you aren’t told what words to look for.&lt;/p&gt;
&lt;p&gt;Now imagine you aren’t told it’s a word search.&lt;/p&gt;
&lt;p&gt;Now imagine it isn’t a word search.&lt;/p&gt;
&lt;footer&gt;
— &lt;a
href=&#34;http://www.gmpuzzles.com/blog/2013/04/ask-dr-sudoku-13-puzzle-hunting/&#34;&gt;Mike
Develin, via Thomas Snyder&lt;/a&gt; (aka Dr. Sudoku)
&lt;/footer&gt;
&lt;/blockquote&gt;
&lt;p&gt;This post aims to be a fairly comprehensive introduction to
puzzlehunts and their puzzles, a single post where I can just point
people. I erred towards comprehensiveness in this post because I am not
aware of any similar resources, especially for puzzlers interested in
trying harder puzzlehunts who might not know any more experienced
puzzlers to solve with. It’s possible to start solving some puzzles
after reading much shorter guides, e.g. Puzzled Pint’s &lt;a
href=&#34;http://www.puzzledpint.com/files/3513/8254/7894/2013_10_22_Puzzling_Basics_Infographic.pdf&#34;&gt;“Puzzling
Basics” (PDF)&lt;/a&gt;, so feel free to skip around, stop reading midway
through, or bookmark this to read only after you’ve spent more time
solving.&lt;/p&gt;
&lt;h3 id=&#34;what-is-a-puzzlehunt&#34;&gt;What is a Puzzlehunt?&lt;/h3&gt;
&lt;p&gt;A &lt;strong&gt;puzzlehunt&lt;/strong&gt;&lt;a href=&#34;#fn1&#34; class=&#34;footnote-ref&#34;
id=&#34;fnref1&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt; is an event where
people, usually in teams, solve a series of
&lt;strong&gt;puzzles&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;This is not a very useful definition. The more interesting question
is, what is the kind of “puzzle”&lt;a href=&#34;#fn2&#34; class=&#34;footnote-ref&#34;
id=&#34;fnref2&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt; that appears in a
puzzlehunt? The concept of a puzzlehunt puzzle is fuzzy and difficult to
define precisely. Just about any hard rule one might try to state will
be broken by some puzzle, sometimes deliberately. Still, here are some
common features of puzzlehunt puzzles:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Cook Like You&#39;re Not on MasterChef</title>
      <link>//blog.vero.site/post/cook</link>
      <pubDate>Fri, 23 Aug 2019 00:37:43 -0400</pubDate>
      
      <guid>//blog.vero.site/post/cook</guid>
      <description>&lt;div class=&#34;series&#34;&gt;
&lt;p&gt;part of the “what I learned after four years at MIT” series, I
guess?&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;When I was very young, I thought cooking was easy. I sliced plastic
vegetables with a toy knife and then Velcroed them back together, ad
infinitum. For at least some time, I wanted to be a chef when I grew
up.&lt;/p&gt;
&lt;p&gt;When I was slightly less young, I thought cooking was hard. My
reference points were mostly (1) my parents, who seemed to know how to
make a million different dishes in inscrutable ways without thinking,
and (2) MasterChef contestants (who I assume were better at cooking than
my parents because they were, well, on MasterChef) messing things up and
getting kicked off the show.&lt;/p&gt;
&lt;p&gt;Now, I think I probably elided some meaningful distinctions there in
my youthful naïveté. Cooking food that will keep you from getting kicked
off MasterChef is hard. Cooking edible food is easy.&lt;a href=&#34;#fn1&#34;
class=&#34;footnote-ref&#34; id=&#34;fnref1&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;
Cooking storebought dumplings in particular is so stupidly easy it’s
unfair. More generally, though, most recipes tolerate a lot of
substitutions,&lt;a href=&#34;#fn2&#34; class=&#34;footnote-ref&#34; id=&#34;fnref2&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt; number fudging,&lt;a href=&#34;#fn3&#34;
class=&#34;footnote-ref&#34; id=&#34;fnref3&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt; and
even straight-up skipping pesky instructions, like the ones in baking
recipes where you mix two sets of ingredients separately in specific
orders. There are reasons for those steps, but ignoring them and dumping
everything into the same mixing bowl usually won’t make your results
inedible. You can also just decide to omit ingredients you don’t like.
Probably the least tolerant ingredient measurements in recipes are the
measurements of baking soda or baking powder, which by the way are
different things, in baking recipes. But otherwise you’d really be
surprised how many corners you can get away with cutting — I’ve even
completely winged one baking soda/powder measurement with decent
results. I think this is especially important to know for people from
technical backgrounds like me, who have an instinct to treat the numbers
in recipes as precisely measured, painstakingly optimized choices to
produce the best dish. They usually aren’t, and even if they are
optimized for the recipe author’s palate, they probably won’t be
optimized for yours.&lt;a href=&#34;#fn4&#34; class=&#34;footnote-ref&#34; id=&#34;fnref4&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;4&lt;/sup&gt;&lt;/a&gt; And they certainly aren’t optimized
for any tradeoffs you might want to make between food quality versus the
time and effort you’re putting into cooking. Make the tradeoffs you
want. You’re not on MasterChef.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Money Matters</title>
      <link>//blog.vero.site/post/money</link>
      <pubDate>Wed, 21 Aug 2019 23:34:04 -0400</pubDate>
      
      <guid>//blog.vero.site/post/money</guid>
      <description>&lt;div class=&#34;series&#34;&gt;
&lt;p&gt;part of the “what I learned after four years at MIT” series, I
guess?&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;There’s some oft-cited psychology studies that suggest that once your
salary goes above $75,000, additional money doesn’t make you happier.
This sounds like a sage bit of life advice if it were true, the ultimate
rebuff against excessive greed and materialism and sacrificing other
things for a six-digit salary, but it overstates the case a bit. &lt;a
href=&#34;https://80000hours.org/articles/money-and-happiness/&#34;&gt;80,000
Hours’ analysis of money and happiness&lt;/a&gt; is probably the analysis I’d
trust the most here; I think it would be more accurate just to say that
you get diminishing returns of happiness from salaries above $70,000.&lt;a
href=&#34;#fn1&#34; class=&#34;footnote-ref&#34; id=&#34;fnref1&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt; Still, that was enough for me to
decide fairly early on that I wasn’t interested in trying to get a
high-paying job for its own sake, or in spending too much effort trying
to invest my way to a fortune.&lt;a href=&#34;#fn2&#34; class=&#34;footnote-ref&#34;
id=&#34;fnref2&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt; I wanted my job to be
personally satisfying and good for the world, while paying enough for me
and my family (current and future) to get by, but I planned to treat any
additional money after that as little more than a bonus used for
breaking ties.&lt;/p&gt;
&lt;p&gt;I still mostly stand by that decision today, but over the intervening
years I realized there were a whole host of reasons to want money that
weren’t that selfish at all.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Go to Class (Most of the Time)</title>
      <link>//blog.vero.site/post/go-to-class</link>
      <pubDate>Mon, 19 Aug 2019 09:10:43 -0400</pubDate>
      
      <guid>//blog.vero.site/post/go-to-class</guid>
      <description>&lt;div class=&#34;series&#34;&gt;
&lt;p&gt;part of the “what I learned after four years at MIT” series, I guess?
A short post this time.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I can’t begin to count the number of times we were exhorted in high
school to go to class. College is different, they said. Nobody is going
to force you to go to class any more. This is what you came to college
to do, what you paid so much time and money for. It’s on you to make
sure you’re learning.&lt;/p&gt;
&lt;p&gt;By and large I followed this advice, until I considered that I might
have overcorrected given the exhortations. There are a lot of definitely
bad reasons to skip class, chief among them being too lazy to get out of
bed. There are also some non-obvious reasons to go to class, such as
getting the professors to recognize you — this is a reason to go to
office hours even if you’re not particularly struggling with the class,
or if you know people who might be able to help you that you could ask
more comfortably or more conveniently; professors who know you may
eventually be able to give you career advice, research opportunities, or
letters of recommendation. (Of course, you shouldn’t try to befriend
professors purely for these selfish motives; they’re also good to know
just as fellow humans.)&lt;/p&gt;
&lt;p&gt;But there are also plenty of legitimate reasons to skip class. (It’s
really unclear how many people out there need to hear this, but my past
self did, and I want this draft out of the way-too-long queue of posts.)
Here are some.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Multiplication by Juxtaposition</title>
      <link>//blog.vero.site/post/multiplication</link>
      <pubDate>Sun, 04 Aug 2019 09:49:20 -0400</pubDate>
      
      <guid>//blog.vero.site/post/multiplication</guid>
      <description>&lt;p&gt;We interrupt the irregularly scheduled philosophical posts for some
programming memes:&lt;/p&gt;
&lt;p&gt;Over the last few days, the Internet has divided itself over what the
value of the expression 8÷2(2+2) should be. Some say it should be
evaluated as (8÷2)×(2+2) = 16. Some say it should be evaluated as
8÷(2×(2+2)) = 1.&lt;/p&gt;
&lt;p&gt;At the risk of belaboring the obvious, the core dispute here is not
really mathematical. There is not some sequence of mathematical
operations that produces some number, where mathematicians disagree
about what number it produces. Instead, this is a dispute about
mathematical notation: what sequence of mathematical operations the
expression corresponds to the way it’s written. Specifically, it is a
dispute about whether multiplication written as juxtaposition (how “2”
is written right next to “(2+2)”) has strictly higher precedence than
division. It is closer to a linguistic or typographical dispute than a
purely mathematical one, and the correct answer to the dispute is that
whoever wrote the expression that way should learn to write math
better.&lt;/p&gt;
&lt;p&gt;This debate is not even new. The internet had fun arguing over &lt;a
href=&#34;https://knowyourmeme.com/memes/48293&#34;&gt;48÷2(9+3) and 6÷2(1+2)&lt;/a&gt;,
which are functionally identical ambiguous expressions, eight years ago.
I don’t know why the debate is resurging now and why we still haven’t
gotten tired of it.&lt;/p&gt;
&lt;p&gt;But life is short, so since we’re here anyway, let’s make some
additional memes.&lt;/p&gt;
&lt;h3 id=&#34;asking-the-computer&#34;&gt;Asking the computer&lt;/h3&gt;
&lt;p&gt;Some of my coworkers had the idea to ask some programming languages
what the answer was. The results were underwhelming.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ python3
Python 3.6.7 (default, Oct 22 2018, 11:32:17)
[GCC 8.2.0] on linux
Type &amp;quot;help&amp;quot;, &amp;quot;copyright&amp;quot;, &amp;quot;credits&amp;quot; or &amp;quot;license&amp;quot; for more information.
&amp;gt;&amp;gt;&amp;gt; 8/2(2+2)
Traceback (most recent call last):
  File &amp;quot;&amp;lt;stdin&amp;gt;&amp;quot;, line 1, in &amp;lt;module&amp;gt;
TypeError: &amp;#39;int&amp;#39; object is not callable&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    
    <item>
      <title>Writing for the Mundane</title>
      <link>//blog.vero.site/post/writing</link>
      <pubDate>Thu, 01 Aug 2019 21:23:15 -0400</pubDate>
      
      <guid>//blog.vero.site/post/writing</guid>
      <description>&lt;div class=&#34;series&#34;&gt;
&lt;p&gt;part of the “what I learned after four years at MIT” series, I
guess?&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I hated timed essays in high school. It’s pretty clear if you skim
that part of the blog archives:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;My [SAT] essay got a 10 out of 12. It’s an essay I’d be ashamed of
posting anywhere else; it’s disgustingly traditional and formulaic. […]
This was simply because I knew that using my normal essay-writing
mindset, I’d get maybe a 3, because I’d spend the first twenty minutes
debating myself over which side I was on and rewrite the introduction
ten times. Too bad. I wasn’t there to write a good essay; I was there to
get a good score on the SAT.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;The worst issue is that students do not need to give in-depth
explanation of anything they learned. Due to its stringent time limit,
the essay portion rewards quick reckless writing much more than deep
thought. […] encouraging students to practice writing 25-minute essays
in order to improve their college-bound skills is like encouraging
people to play Grand Theft Auto in order to improve their driving
skills.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I took the Grand Theft Auto analogy pretty far. I’m not proud enough
of these posts to link them, but you can find them if you try. In short,
past me thought timed essays rewarded writing too quickly, with a
disregard not only for facts but for the opportunity to lay out your
opinions and thoughts so you could clarify and revise them, which was
actually the most valuable part of writing.&lt;a href=&#34;#fn1&#34;
class=&#34;footnote-ref&#34; id=&#34;fnref1&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt; I
conceded that the time limits made sense as a practical concession to
allow you to test students’ writing skills fairly,&lt;a href=&#34;#fn2&#34;
class=&#34;footnote-ref&#34; id=&#34;fnref2&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt; but
I felt like there was still way too much emphasis on the raw speed.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Things</title>
      <link>//blog.vero.site/post/things</link>
      <pubDate>Sun, 23 Jun 2019 16:40:07 -0400</pubDate>
      
      <guid>//blog.vero.site/post/things</guid>
      <description>&lt;div class=&#34;series&#34;&gt;
&lt;p&gt;Part of a series of posts about what I learned after four years at
MIT. We’re ramping up to deeper topics eventually, I promise. Soon™.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;This post is about things. You know, physical objects. Earthly
possessions. The indispensable yet fickle chains that bind us to this
plane of existence.&lt;/p&gt;
&lt;p&gt;As a freshman I loved getting free stuff. I went into my first career
fair starry-eyed, taking free pens and t-shirts and sunglasses and
drawstring bags from every company that would let me; I’m sure many
other MIT students have gone through the same ritual of passing. There
seemed to be no downside. Besides, all the swag was probably small
change for most of the companies anyway, due to VC funding or massive
government contracts or whatever. So I might as well make full use of
it.&lt;/p&gt;
&lt;p&gt;Less normally (although I have no idea by how much), I also hoarded a
lot of things that naturally pop up in everyday life, the stuff that
would otherwise get thrown away: extra napkins, plastic bags, produce
containers, boxes, those payment envelopes that come with magazine
subscriptions and exhort you to Subscribe Now To 12 Issues For 20% Off!!
At some point I kept the fortune from every fortune cookie I had ever
eaten in a tiny resealable bag. The rationale was basically the same:
they might be useful some day&lt;a href=&#34;#fn1&#34; class=&#34;footnote-ref&#34;
id=&#34;fnref1&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt; and there was no
downside.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to Choose an MIT Username</title>
      <link>//blog.vero.site/post/username</link>
      <pubDate>Thu, 13 Jun 2019 17:39:14 -0400</pubDate>
      
      <guid>//blog.vero.site/post/username</guid>
      <description>&lt;p&gt;I wanted to write a post after two years at college about everything
I had learned. I didn’t, firstly because I didn’t make it a priority,
and secondly because trying to write about everything I’ve learned at
MIT over any nontrivial length of time is the kind of poorly scoped
endeavor that I could never complete to my own satisfaction.&lt;/p&gt;
&lt;p&gt;Two years came and went, and now it’s been two more years and I’ve
learned even more things, not to mention, actually graduated. Jeez. I
tried to self-impose a deadline for the big post, but it didn’t work
out. There were still too many higher priorities, most of which were
also natural consequences of graduating. I also couldn’t bring myself to
cut anything, because unlike most of the stuff I haphazardly throw onto
this blog, I can actually imagine an audience for just about everything
I wanted to write about.&lt;/p&gt;
&lt;p&gt;Finally I decided that I would break it into lots of small posts on
specific topics. This way, at least the perfectionism can’t bleed
between posts too much. The first topic I wanted to write about is
simple, mundane, and also fairly limited in scope itself: how to choose
your MIT username.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>refrain</title>
      <link>//blog.vero.site/post/refrain</link>
      <pubDate>Wed, 27 Mar 2019 18:26:41 -0400</pubDate>
      
      <guid>//blog.vero.site/post/refrain</guid>
      <description>&lt;pre&gt;&lt;code&gt;http://111.186.63.17/perf.data.gz

Environment: Ubuntu 16.04+latex&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In this challenge, we get a gzipped file called
&lt;code&gt;perf.data&lt;/code&gt; and a minimal description of an environment.
Googling this reveals that &lt;code&gt;perf.data&lt;/code&gt; is a record format of
the &lt;code&gt;perf&lt;/code&gt; tool, a Linux profiler. Installing
&lt;code&gt;perf&lt;/code&gt; allows us to read &lt;code&gt;perf.data&lt;/code&gt; and see some
pretty interactive tables of statistics in our terminal describing the
profiling results, from which we can see some libraries and addresses
being called, but they don’t reveal much about what’s going on. One
hacky way to see more of the underlying data in a more human-readable
way (and to see just how much of it there is) is
&lt;code&gt;perf report -D&lt;/code&gt;, which dumps the raw data in an ASCII
format, but this is still not that useful. (One might hope that one
could simply grep for the flag in this big text dump, but it’s nowhere
to be seen.) Still, from this file, we can definitely read off all the
exact library versions that the &lt;code&gt;perf record&lt;/code&gt; was run
against.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Olympiads: The Infinitely Overdue Retrospective</title>
      <link>//blog.vero.site/post/olympiads</link>
      <pubDate>Sun, 03 Feb 2019 16:01:01 -0500</pubDate>
      
      <guid>//blog.vero.site/post/olympiads</guid>
      <description>&lt;p&gt;I put this question in my FAQ, because at least two people have asked
me this question, and that’s how frequent a question needs to be to be
on my FAQ: I got an IMO&lt;a href=&#34;#fn1&#34; class=&#34;footnote-ref&#34; id=&#34;fnref1&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt; gold medal in 2012, as a ninth
grader, and an IOI gold medal in 2014, as an eleventh grader. I could
have kept going to either, or even decided to try taking the IPhO or
something, but I didn’t. Why not?&lt;/p&gt;
&lt;p&gt;The short answer: It was a rough utilitarian calculation. By
continuing, I would probably displace somebody else who would gain more
from being on an IMO/IOI team than I would. Besides, I wanted to do
other things in high school, so I wasn’t losing much.&lt;/p&gt;
&lt;p&gt;I think the short answer actually captures most of my thinking when I
made the decision back then, and it’s not really new; I said as much at
&lt;a href=&#34;//blog.vero.site/post/time&#34;&gt;the end of 2013&lt;/a&gt;. But behind it
was a lot of complex thoughts and feelings that I’ve been ruminating
over and trying to put into words for the better part of a decade.
Hence, this post.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;There is a natural question that precedes the frequently asked one
that I have never been asked, something I am now realizing I never
honestly asked myself and never tried to answer deeply: Why did I
participate in the IMO and the IOI in the first place?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>2019 MIT Mystery Hunt</title>
      <link>//blog.vero.site/post/2019-hunt</link>
      <pubDate>Thu, 31 Jan 2019 19:39:22 -0500</pubDate>
      
      <guid>//blog.vero.site/post/2019-hunt</guid>
      <description>&lt;p&gt;(this post is sketchily backdated from February 2020)&lt;/p&gt;
&lt;p&gt;Fourth year with ✈✈✈ Galactic Trendsetters ✈✈✈. Past: &lt;a
href=&#34;//blog.vero.site/post/2018-hunt&#34;&gt;2018&lt;/a&gt;, &lt;a
href=&#34;//blog.vero.site/post/january&#34;&gt;2017&lt;/a&gt;, &lt;a
href=&#34;//blog.vero.site/post/whoosh&#34;&gt;2016&lt;/a&gt;, writing with Random in &lt;a
href=&#34;//blog.vero.site/post/hunt&#34;&gt;2015&lt;/a&gt;). Evidently I was unable to
find the time or motivation to blog about this, and I can’t remember any
particularly good stories, so let me just slip this backdated list post
in the archives.&lt;/p&gt;
&lt;p&gt;The theme in a few sentences: The hunt organizers declare a new
Molasses Awareness Day, but because they didn’t follow the proper
procedure, throwing the world of Holidays into chaos, where “chaos”
means molasses. This resulted in lots of puzzle-to-meta matching, since
puzzles were in Holiday towns but metas were at lampposts between two
towns.&lt;/p&gt;
&lt;p&gt;Highlights of puzzles I solved:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A Good Walk Spoiled&lt;/strong&gt; (Holi): Happens to be about a
topic I know well and find interesting. Fun steps. Justified use of
substitution ciphers; the pasting into quipqiup was worth it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;State Machine&lt;/strong&gt; (President’s): A one-aha! one-step
puzzle. Maybe more unfortunate because apparently this was not the only
puzzle to use a specific aspect of a specific source material, but I
didn’t know about that other puzzle so it’s fine.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Clued Connections&lt;/strong&gt; (Pi): I went to sleep near the
end of this puzzle, so I didn’t see it through, but Floorpi was
collectively called out by it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;I Can’t Deal with These Endless Numbers&lt;/strong&gt;
(Patriot’s): Incredible.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Loaded&lt;/strong&gt; (Arbor): Simple and self-contained
enough.&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    
    <item>
      <title>The Prose and the Passion</title>
      <link>//blog.vero.site/post/prose-passion</link>
      <pubDate>Mon, 31 Dec 2018 21:05:59 +0800</pubDate>
      
      <guid>//blog.vero.site/post/prose-passion</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/y4sOfO8Ei1g&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;I was pretty torn between this and “The Future Soon” as the Year-End
Song on this blog, but in the end I think I feel more threatened by the
bland existence of the soulless adult than inspired by the
starry-eyed-idealism-with-misogynist-undertones of the twelve-year-old,
plus I get to show you the best kinetic typography video I have ever
seen.&lt;/p&gt;
&lt;p&gt;Halfway through 2018 I thought this would be the year of ephemeral
phases. I felt like I went through a different phase every month — &lt;a
href=&#34;https://dominion.games/&#34;&gt;Online Dominion&lt;/a&gt; in April, crosswords
in June, &lt;a href=&#34;https://en.wikipedia.org/wiki/Only_Connect&#34;&gt;Only
Connect&lt;/a&gt; in July, &lt;a href=&#34;https://www.jonathancoulton.com/&#34;&gt;Jonathan
Coulton&lt;/a&gt; in August, a brief stint of trying really hard to barre my
guitar chords in October. Somewhere in the middle, I discovered Kittens
Game (“the Dark Souls of Incremental Gaming”) and my summer internship
mentor got me to pick up Pokémon Go again. A few intense periods of
typographical study were interspersed, which involved watching the above
music video dozens of times, teaching a Splash class on typography, and
developing a new awareness of how &lt;a
href=&#34;https://en.wikipedia.org/wiki/Avenir_%28typeface%29&#34;&gt;Avenir&lt;/a&gt;
was &lt;em&gt;everywhere&lt;/em&gt;. During the last month, I went hard on &lt;a
href=&#34;https://adventofcode.com/&#34;&gt;Advent of Code&lt;/a&gt; and got second
place, apparently the only person to make it on every single
leaderboard. I also did a related &lt;a
href=&#34;https://kara71.github.io/Advent-of-Golf-2018/&#34;&gt;golf side
contest&lt;/a&gt; and poured a couple more hours into &lt;a
href=&#34;https://github.com/betaveros/paradoc&#34;&gt;Paradoc&lt;/a&gt;, my personal
golfing language, for rather unclear gain. At least I got a lot of
GitHub followers?&lt;/p&gt;
&lt;p&gt;It would turn out, though, that a lot of these phases had more
staying power than I expected. Pokémon Go is a much better game than it
was two years ago and has actually fostered a significant real-life
community, which seems like one of the best possible outcomes of an
augmented reality game, and I’ve found a steady pace to play at. I
spread the Only Connect bug and people on my hall, intrigued by the
format but annoyed by the overwhelmingly British trivia&lt;a href=&#34;#fn1&#34;
class=&#34;footnote-ref&#34; id=&#34;fnref1&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;,
started writing and hosting full games for each other, with our own
MIT-slanted set of trivia. One of us developed a custom &lt;a
href=&#34;https://github.com/krawthekrow/pi-connect&#34;&gt;site&lt;/a&gt; and &lt;a
href=&#34;https://github.com/krawthekrow/pi-connect-maker&#34;&gt;tool&lt;/a&gt; to host
these games. It took me a while to warm up to Jonathan Coulton’s latest
album, but since it happened, I cannot get &lt;a
href=&#34;https://www.youtube.com/watch?v=DXuxwWm4huM&#34;&gt;Ordinary Man&lt;/a&gt; or
&lt;a href=&#34;https://www.youtube.com/watch?v=Vig5byZx2Ew&#34;&gt;Sunshine&lt;/a&gt; out
of my head; I’m still listening to JoCo as I finish typing up this post.
Although I never got back to the peak of my crossword frenzy, I still
study crosswordese from time to time and compose crosswords for some
special occasions, like &lt;a href=&#34;//blog.vero.site/misc/christmas-somewhere.puz&#34;&gt;this one
(.puz file)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The academics and technical aspects of this year have all blurred
together, but I think my interests are finally crystallizing:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>React and Redux the Hard FP Way</title>
      <link>//blog.vero.site/post/react-redux</link>
      <pubDate>Fri, 07 Dec 2018 16:44:20 -0500</pubDate>
      
      <guid>//blog.vero.site/post/react-redux</guid>
      <description>&lt;p&gt;A more accurate but less informative title for this post would be
“How I wish React and Redux were explained to me”. Note that this does
&lt;em&gt;not&lt;/em&gt; imply that this method of explanation is suitable for
anybody else. I suspect it won’t be for most people.&lt;/p&gt;
&lt;p&gt;I had to learn React and Redux the past summer for my internship at
MemSQL, and there were hundreds of articles that explain React and Redux
in addition to the (fine) built-in documentation, but none of them
scratched the itch; I wanted to know what was going on completely,
including some of the technical details and the philosophy I ought to be
following, as well as efficiently. I did not need another explanation
about how to think functionally, in JavaScript types or with immutable
data. React’s chapter on &lt;a
href=&#34;https://reactjs.org/docs/conditional-rendering.html&#34;&gt;Conditional
Rendering&lt;/a&gt;, for example, felt so inefficient — I know what
&lt;code&gt;if&lt;/code&gt; statements and conditional expressions are, and I know
how to refactor complicated subexpressions into variables…&lt;/p&gt;
&lt;p&gt;So here’s the guide I wish I had. I think. It’s been months since I
started it (as usual, for posts on this blog) and it is probably
incomplete. However, I haven’t written React/Redux deeply in a while, so
I didn’t have much motivation to continue to investigate the incomplete
bits; and the perfect is the enemy of the good, so here it is.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>PLC</title>
      <link>//blog.vero.site/post/plc</link>
      <pubDate>Sun, 30 Sep 2018 23:16:44 -0400</pubDate>
      
      <guid>//blog.vero.site/post/plc</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;We’ve burrowed ourselves deep within the facility, gaining access to
the programable logic controllers (PLC) that drive their nuclear
enrichment centrifuges. Kinetic damage is necessary, we need you to
neutralize these machines.&lt;/p&gt;
&lt;p&gt;You can access this challenge at &lt;a
href=&#34;https://wargames.ret2.systems/csaw_2018_plc_challenge&#34;&gt;https://wargames.ret2.systems/csaw_2018_plc_challenge&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A much belated post. This is a pwn challenge on a custom online
wargaming platform. We are provided with the assembly of what’s
ostensibly a programmable logic controller (PLC) for a centrifuge in a
nuclear reactor. The challenge looks like it’s still up, so you can take
a look and follow along.&lt;/p&gt;
&lt;p&gt;This was the first &lt;a
href=&#34;https://en.wikipedia.org/wiki/Return-oriented_programming&#34;&gt;ROP&lt;/a&gt;
(okay, spoiler, it’s a ROP) I ever pulled off live during an actual CTF,
which I was pretty excited about. The web platform meant I had to worry
less about setup, and even though some of the tools it provided were a
little lacking (no gdb shortcuts like &lt;code&gt;until&lt;/code&gt;, no pwntools
utilities for packing/unpacking numbers, … no &lt;code&gt;one_gadget&lt;/code&gt;),
I think they ultimately made the whole thing a lot more educational for
me, so kudos to the folks behind it. I’ve included a brief description
of all the exploit techniques that lead up to ROP when we get to that,
so hopefully this post will be useful even if you don’t know much about
pwning binaries. The prerequisites would be some knowledge with x86
assembly, how executables are loaded into memory, and how to use
&lt;code&gt;gdb&lt;/code&gt; (or fictionalized web knockoffs thereof).&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Proprietary Format</title>
      <link>//blog.vero.site/post/proprietary-format</link>
      <pubDate>Thu, 28 Jun 2018 23:12:15 -0700</pubDate>
      
      <guid>//blog.vero.site/post/proprietary-format</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;The villains are communicating with their own proprietary file
format. Figure out what it is.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ nc proprietary.ctfcompetition.com 1337&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;We get a server that will talk to us on a port and a
&lt;code&gt;flag.ctf&lt;/code&gt; file that’s definitely not a binary. It’s a &lt;a
href=&#34;https://en.wikipedia.org/wiki/Black_box&#34;&gt;black-box&lt;/a&gt; reversing
challenge! I was @-mentioned as the person who might want to due to
solving bananaScript (CSAW CTF Quals 2017) as a black box, although that
gave a binary that it was possible in theory to reverse. Here black-box
reversing is the only option.&lt;/p&gt;
&lt;p&gt;For the first few lines of input that the server wants, it responds
with quite helpful error messages to help you appease it. If the first
line you give it is not &lt;code&gt;P6&lt;/code&gt;, it complains:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Cat Chat</title>
      <link>//blog.vero.site/post/cat-chat</link>
      <pubDate>Thu, 28 Jun 2018 23:12:06 -0700</pubDate>
      
      <guid>//blog.vero.site/post/cat-chat</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;You discover this cat enthusiast chat app, but the annoying thing
about it is that you’re always banned when you start talking about dogs.
Maybe if you would somehow get to know the admin’s password, you could
fix that.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This challenge is a simple chat app written in NodeJS. The home page
redirects you to a chat room labeled with a random UUID. Anybody can
join the same chat room with the URL.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;//blog.vero.site/img/cat-chat-0.png&#34; alt=&#34;Fresh Cat Chat room&#34; /&gt;&lt;/p&gt;
&lt;p&gt;In a chat room, you can chat and issue two commands,
&lt;code&gt;/name&lt;/code&gt; to set your name and &lt;code&gt;/report&lt;/code&gt; to report
that somebody is talking about dogs. After anybody in the chat room
issues &lt;code&gt;/report&lt;/code&gt;, the admin shows up, listens for a while,
and bans anybody who mentions the word “dog”.&lt;/p&gt;
&lt;p&gt;There are two more commands, &lt;code&gt;/secret&lt;/code&gt; and
&lt;code&gt;/ban&lt;/code&gt;, which are in the server source code and also
described in comments in the HTML source if you didn’t notice:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>JS Safe 2.0</title>
      <link>//blog.vero.site/post/js-safe-2</link>
      <pubDate>Thu, 28 Jun 2018 23:12:01 -0700</pubDate>
      
      <guid>//blog.vero.site/post/js-safe-2</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;You stumbled upon someone’s “JS Safe” on the web. It’s a simple HTML
file that can store secrets in the browser’s localStorage. This means
that you won’t be able to extract any secret from it (the secrets are on
the computer of the owner), but it looks like it was hand-crafted to
work only with the password of the owner…&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The challenge consists of a fancy HTML file with a cute but
irrelevant animated cube and some embedded JavaScript.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;//blog.vero.site/img/js-safe-2-empty.png&#34; alt=&#34;Screenshot of JS Safe 2.0 with a text box and a cube&#34; /&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>shellql</title>
      <link>//blog.vero.site/post/shellql</link>
      <pubDate>Sun, 13 May 2018 15:07:38 -0400</pubDate>
      
      <guid>//blog.vero.site/post/shellql</guid>
      <description>&lt;p&gt;The hardest challenge of not very many I solved in this CTF. What a
struggle! I have a long way to improve. It was pretty fun though. (I
solved “You Already Know”, and got the essence of “ghettohackers:
Throwback”, but didn’t guess the right flag format and believe I was
asleep when they released the hint about it.)&lt;/p&gt;
&lt;p&gt;The challenge consists of a simple PHP script that opens a MySQL
connection and then feeds our input into a custom PHP extension
&lt;code&gt;shellme.so&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb1&#34;&gt;&lt;pre
class=&#34;sourceCode php&#34;&gt;&lt;code class=&#34;sourceCode php&#34;&gt;&lt;span id=&#34;cb1-1&#34;&gt;&lt;a href=&#34;#cb1-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;va&#34;&gt;$link&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;fu&#34;&gt;mysqli_connect&lt;/span&gt;(&lt;span class=&#34;st&#34;&gt;&amp;#39;localhost&amp;#39;&lt;/span&gt;&lt;span class=&#34;ot&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;st&#34;&gt;&amp;#39;shellql&amp;#39;&lt;/span&gt;&lt;span class=&#34;ot&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;st&#34;&gt;&amp;#39;shellql&amp;#39;&lt;/span&gt;&lt;span class=&#34;ot&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;st&#34;&gt;&amp;#39;shellql&amp;#39;&lt;/span&gt;)&lt;span class=&#34;ot&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-2&#34;&gt;&lt;a href=&#34;#cb1-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-3&#34;&gt;&lt;a href=&#34;#cb1-3&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;cf&#34;&gt;if&lt;/span&gt; (&lt;span class=&#34;kw&#34;&gt;isset&lt;/span&gt;(&lt;span class=&#34;va&#34;&gt;$_POST&lt;/span&gt;[&lt;span class=&#34;st&#34;&gt;&amp;#39;shell&amp;#39;&lt;/span&gt;]))&lt;/span&gt;
&lt;span id=&#34;cb1-4&#34;&gt;&lt;a href=&#34;#cb1-4&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;{&lt;/span&gt;
&lt;span id=&#34;cb1-5&#34;&gt;&lt;a href=&#34;#cb1-5&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;   &lt;span class=&#34;cf&#34;&gt;if&lt;/span&gt; (&lt;span class=&#34;fu&#34;&gt;strlen&lt;/span&gt;(&lt;span class=&#34;va&#34;&gt;$_POST&lt;/span&gt;[&lt;span class=&#34;st&#34;&gt;&amp;#39;shell&amp;#39;&lt;/span&gt;]) &lt;span class=&#34;op&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;1000&lt;/span&gt;)&lt;/span&gt;
&lt;span id=&#34;cb1-6&#34;&gt;&lt;a href=&#34;#cb1-6&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;   {&lt;/span&gt;
&lt;span id=&#34;cb1-7&#34;&gt;&lt;a href=&#34;#cb1-7&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;      &lt;span class=&#34;kw&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;va&#34;&gt;$_POST&lt;/span&gt;[&lt;span class=&#34;st&#34;&gt;&amp;#39;shell&amp;#39;&lt;/span&gt;]&lt;span class=&#34;ot&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-8&#34;&gt;&lt;a href=&#34;#cb1-8&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;      shellme(&lt;span class=&#34;va&#34;&gt;$_POST&lt;/span&gt;[&lt;span class=&#34;st&#34;&gt;&amp;#39;shell&amp;#39;&lt;/span&gt;])&lt;span class=&#34;ot&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-9&#34;&gt;&lt;a href=&#34;#cb1-9&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;   }&lt;/span&gt;
&lt;span id=&#34;cb1-10&#34;&gt;&lt;a href=&#34;#cb1-10&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;   &lt;span class=&#34;cf&#34;&gt;exit&lt;/span&gt;()&lt;span class=&#34;ot&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-11&#34;&gt;&lt;a href=&#34;#cb1-11&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The extension basically just executes &lt;code&gt;$_POST[&#39;shell&#39;]&lt;/code&gt; as
shellcode after a strict SECCOMP call, &lt;a
href=&#34;http://man7.org/linux/man-pages/man2/prctl.2.html&#34;&gt;prctl&lt;/a&gt;(&lt;a
href=&#34;https://elixir.bootlin.com/linux/v4.16.8/source/include/uapi/linux/prctl.h#L68&#34;&gt;22&lt;/a&gt;,
&lt;a
href=&#34;https://elixir.bootlin.com/linux/v4.1/source/include/uapi/linux/seccomp.h#L10&#34;&gt;1&lt;/a&gt;).
This means that we can only use the four syscalls &lt;code&gt;read&lt;/code&gt;,
&lt;code&gt;write&lt;/code&gt;, and &lt;code&gt;exit&lt;/code&gt;, and &lt;code&gt;sigreturn&lt;/code&gt;,
where the latter two aren’t particularly useful.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;//blog.vero.site/img/shell_this.png&#34;
alt=&#34;Disassembled innermost function of interest in shellme.so&#34; /&gt;
&lt;figcaption aria-hidden=&#34;true&#34;&gt;Disassembled innermost function of
interest in &lt;code&gt;shellme.so&lt;/code&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;The goal is to read the flag from the open MySQL connection.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Messy Desk</title>
      <link>//blog.vero.site/post/messy-desk</link>
      <pubDate>Sun, 06 May 2018 13:52:52 -0400</pubDate>
      
      <guid>//blog.vero.site/post/messy-desk</guid>
      <description>&lt;p&gt;This challenge is a video of somebody’s messy desk, with what is
apparently the audio from a &lt;a
href=&#34;https://www.youtube.com/watch?v=WwnI0RS6J5A&#34;&gt;Futurama clip&lt;/a&gt;.
The desk is indeed extremely messy and full of things that aren’t
particularly useful for us, but close examination reveals a QR code
reflected in the globe in the middle.&lt;/p&gt;
&lt;p&gt;The challenge is all about getting that QR code. After trying our
best to clean up the image, we ended up with this:&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;//blog.vero.site/img/messy-qr.png&#34;
alt=&#34;Maximally enhanced image of the QR code&#34; /&gt;
&lt;figcaption aria-hidden=&#34;true&#34;&gt;Maximally enhanced image of the QR
code&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    
    <item>
      <title>Pupper/Doggo</title>
      <link>//blog.vero.site/post/doggo</link>
      <pubDate>Sun, 06 May 2018 13:52:52 -0400</pubDate>
      
      <guid>//blog.vero.site/post/doggo</guid>
      <description>&lt;p&gt;We are presented with a big zip file of SML code, which implements an
interpreter for a small ML-like language with a form of taint analysis
in its type checker, called &lt;em&gt;Wolf&lt;/em&gt;. Concretely, every type in
Wolf’s type system has an associated &lt;em&gt;secrecy&lt;/em&gt;: it is either
“private” or “public”, and in theory, the type system makes it
impossible to do any computation on private data to get a public
result.&lt;/p&gt;
&lt;p&gt;Of course, this is a CTF, so the challenge is all about breaking the
theoretical guarantees of the type system. When we submit code, it’s
evaluated in a context with a private integer variable
&lt;code&gt;flag&lt;/code&gt;; our code is typechecked, executed, and printed, but
only if its type is public. The goal is to break the type system and
write code that produces a public value that depends on
&lt;code&gt;flag&lt;/code&gt;, so that we can exfiltrate &lt;code&gt;flag&lt;/code&gt;
itself.&lt;/p&gt;
&lt;p&gt;In all, there are three progressively harder Wolf problems, named
Pupper, Doggo, and Woofer. Doggo and Woofer are each encrypted with the
flag of the challenge before it, so that you need to solve them in order
(unless you can somehow blindly exploit servers running SML
programs).&lt;/p&gt;
&lt;h3 id=&#34;wolf-overview&#34;&gt;Wolf Overview&lt;/h3&gt;
&lt;p&gt;Let’s first go over the Wolf syntax and semantics. (There are small
differences between the three problems, but they’re syntactically
identical and only semantically differ in cases that we’ll naturally get
to.) The &lt;code&gt;examples&lt;/code&gt; folder has some examples of valid
code:&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb1&#34;&gt;&lt;pre class=&#34;sourceCode ml&#34;&gt;&lt;code class=&#34;sourceCode ocaml&#34;&gt;&lt;span id=&#34;cb1-1&#34;&gt;&lt;a href=&#34;#cb1-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;kw&#34;&gt;let&lt;/span&gt; x = (&lt;span class=&#34;dv&#34;&gt;5&lt;/span&gt; :&amp;gt; &lt;span class=&#34;kw&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;dt&#34;&gt;int&lt;/span&gt;) &lt;span class=&#34;kw&#34;&gt;in&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-2&#34;&gt;&lt;a href=&#34;#cb1-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;dv&#34;&gt;6&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>On #DeleteFacebook</title>
      <link>//blog.vero.site/post/on-delete-facebook</link>
      <pubDate>Mon, 02 Apr 2018 20:09:37 -0400</pubDate>
      
      <guid>//blog.vero.site/post/on-delete-facebook</guid>
      <description>&lt;p&gt;It feels a little surreal watching #DeleteFacebook.&lt;/p&gt;
&lt;p&gt;On one hand, despite how hard it is to keep an issue trending in
today’s fast news cycle, this issue has managed to continue burning for
a while. Somewhat recently (March 21), we got two high-profile Facebook
account deletions from &lt;a
href=&#34;https://twitter.com/brianacton/status/976231995846963201&#34;&gt;Brian
Acton (WhatsApp cofounder)&lt;/a&gt; and &lt;a
href=&#34;https://techcrunch.com/2018/03/23/elon-musk-deletes-own-spacex-and-tesla-facebook-pages-after-deletefacebook/&#34;&gt;Elon
Musk&lt;/a&gt;. Other apparent examples include &lt;a
href=&#34;https://www.usatoday.com/story/money/2018/03/28/playboy-dumps-facebook-amid-public-furor-over-users-data-leaks/465156002/&#34;&gt;Playboy
and Cher&lt;/a&gt;, or see &lt;a
href=&#34;http://time.com/money/5220854/delete-facebook-celebrities-companies-cutting-ties-privacy/&#34;&gt;Time&lt;/a&gt;
or &lt;a
href=&#34;https://www.cnet.com/news/several-companies-and-people-are-pulling-back-from-facebook/&#34;&gt;CNET&lt;/a&gt;
for a few more. Facebook’s U.S. and Canada user base &lt;a
href=&#34;https://www.recode.net/2018/1/31/16957122/facebook-daily-active-user-decline-us-canda-q4-earnings-2018&#34;&gt;declined
for the first time last quarter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;On the other hand, for me and for a lot of people, the scandal just
doesn’t seem that qualitatively different from things we’ve known about
Facebook for a long time — its stance on privacy, its psychological
effects, its willingness to manipulate the user experience. Why is this
time different? (Here’s the &lt;a
href=&#34;https://www.reddit.com/r/NoStupidQuestions/comments/87u9ro/why_is_everyone_all_of_a_sudden_mad_at_facebook/&#34;&gt;/r/NoStupidQuestions
thread.&lt;/a&gt; I don’t actually know which answer I believe the most.)&lt;/p&gt;
&lt;p&gt;Is this time really different? I’m not optimistic. The decline could
simply be Facebook running out of potential users to add and space to
grow. According to a recent Raymond James survey, about half of surveyed
users did not plan to change how much they used Facebook, while only 8%
would stop using it, and this may still be an overestimate of people who
will actually leave or delete their accounts.&lt;a href=&#34;#fn1&#34;
class=&#34;footnote-ref&#34; id=&#34;fnref1&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;
Mark Zuckerberg himself &lt;a
href=&#34;https://www.nytimes.com/2018/03/21/technology/mark-zuckerberg-q-and-a.html&#34;&gt;told
the New York Times&lt;/a&gt;, “I don’t think we’ve seen a meaningful number of
people act on [the #DeleteFacebook campaign]”.&lt;/p&gt;
&lt;p&gt;I myself have to admit upfront that, even though I &lt;a
href=&#34;//blog.vero.site/post/me-and-facebook&#34;&gt;barely use Facebook any more&lt;/a&gt; and
have carefully contemplated deleting my Facebook account for a long
time, I still haven’t pulled the trigger.&lt;/p&gt;
&lt;p&gt;Why? What will it take to change this?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>2018 MIT Mystery Hunt</title>
      <link>//blog.vero.site/post/2018-hunt</link>
      <pubDate>Tue, 16 Jan 2018 19:39:22 -0500</pubDate>
      
      <guid>//blog.vero.site/post/2018-hunt</guid>
      <description>&lt;p&gt;My third MIT Mystery Hunt with ✈✈✈ Galactic Trendsetters ✈✈✈ (also
see: &lt;a href=&#34;//blog.vero.site/post/january&#34;&gt;2017&lt;/a&gt; and &lt;a
href=&#34;//blog.vero.site/post/whoosh&#34;&gt;2016&lt;/a&gt;, writing with Random in &lt;a
href=&#34;//blog.vero.site/post/hunt&#34;&gt;2015&lt;/a&gt;). It was a good hunt with a
fun theme, solid puzzles, and extraordinary production quality, marred
only by a fickle unlock structure and a handful of unnecessarily
involved extractions.&lt;/p&gt;
&lt;p&gt;Since we had been told the hunt would be smaller than past years’
(now a controversial statement since the coin was &lt;em&gt;not&lt;/em&gt; found
particularly early) and we didn’t particularly want to win (yet), part
of our team temporarily split off this year to hunt as Teammate. Based
on our Discord channel, ✈✈✈ Galactic Trendsetters ✈✈✈ had 75 people this
year, including remote solvers and people who dropped in and out.&lt;/p&gt;
&lt;p&gt;A short description of the hunt structure: This year’s hunt theme was
&lt;em&gt;Inside Out&lt;/em&gt;, the Disney movie about anthropomorphized emotions.
This was revealed through a kickoff that demonstrated the hunt’s
extraordinary production quality, in which we watched the unveiling of
the Health &amp;amp; Safety hunt, first directly, then in the Control Room
with the emotions of a distraught hunter (Miss Terry Hunter) and a lot
of beautiful memory orbs and scenery. After Terry’s emotions became
overwhelmed in response to the theme, we had to help her emotions to
allow her to complete the Health &amp;amp; Safety hunt. The intro round took
place in the Control Room; we had to solve 34 regular puzzles and five
metapuzzles (somewhat overlapping, with some regular puzzles belonging
to more than one metapuzzle) to help each of the five emotions get back
to the Control Room. The rest of the hunt consisted of recovering memory
orbs from each of four Islands of Personality, each of which had its own
theme and meta structure, and which we could choose the unlock order
of.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Transformation</title>
      <link>//blog.vero.site/post/transformation</link>
      <pubDate>Sun, 31 Dec 2017 23:59:59 +0800</pubDate>
      
      <guid>//blog.vero.site/post/transformation</guid>
      <description>&lt;p&gt;I think this is the right video for this year.&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/lX44CAz-JhU&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;I love the music and the animation. The music video spells out the
central conceit somewhat explicitly, but I think the lyrics by
themselves have a hint of ambiguity — is it a harmful addiction that you
just can’t escape from, or an essential part of your identity that you
just can’t deny?&lt;/p&gt;
&lt;p&gt;What parts of me can I just not deny, huh? Unfortunately 2017 is also
the year I decide my online presence should probably be a little more
professional, so you might have to read between the lines a bit.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Sakura</title>
      <link>//blog.vero.site/post/sakura</link>
      <pubDate>Sun, 12 Nov 2017 00:00:00 -0500</pubDate>
      
      <guid>//blog.vero.site/post/sakura</guid>
      <description>&lt;p&gt;(Okay, this post is backdated.)&lt;/p&gt;
&lt;p&gt;Disassembling the executable produces a huge amount of code. There
are some basic obfuscations like a lot of trivial identity functions
nested in each other, and a few functions that wrap around identity
functions but just add some constant multiple of 16. Most of the meat is
in one very large function, though. If you disassemble this function
with IDA, you see a lot of variable initializations and then a lot of
interesting loops that are quite similar:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Thoroughly Stripped</title>
      <link>//blog.vero.site/post/thoroughly-stripped</link>
      <pubDate>Sun, 12 Nov 2017 00:00:00 -0500</pubDate>
      
      <guid>//blog.vero.site/post/thoroughly-stripped</guid>
      <description>&lt;p&gt;Woo, first CTF writeup. I got the opportunity to participate in the
2017 CSAW CTF finals with Don’t Hack Alone.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Dumped by my core, left to bleed out bytes on the heap, I was
stripped of my dignity… The last thing I could do was to let other
programs strip me of my null-bytes just so my memory could live on.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;We are provided with a core dump. Examining the flavor-text and the
dump, we notice that the dump has no null bytes; we conjecture that they
have been stripped out.&lt;/p&gt;
&lt;p&gt;Next, we examine the hexdump and look for any clues. There are a
bunch of ASCII strings, but they look like normal debugging symbols. One
thing that jumps out is that there are a couple fairly convincing
regular striped patterns that become vertically aligned if you display
20 bytes in each line. Once we do that, we notice the following section.
(This dump is from &lt;code&gt;&lt;a
href=&#34;https://github.com/betaveros/xxb&#34;&gt;xxb&lt;/a&gt;&lt;/code&gt; but
&lt;code&gt;xxd -c 20 thoroughlyStripped&lt;/code&gt; is quite sufficient.)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Hello, Again</title>
      <link>//blog.vero.site/post/hello-again</link>
      <pubDate>Tue, 07 Nov 2017 00:27:42 -0500</pubDate>
      
      <guid>//blog.vero.site/post/hello-again</guid>
      <description>&lt;p&gt;And here we are.&lt;/p&gt;
&lt;p&gt;This is the first post on this blog after I migrated off WordPress
for a static solution.&lt;/p&gt;
&lt;p&gt;At first, I wanted to set things up on Amazon Web Services (AWS),
which was an adventure. There are lots of online posts about how to do
this, but Amazon’s services change quickly and there was often outdated
information. For instance, Amazon had a wizard that led you through
setting up a static site, which I clicked on. It helpfully handled a lot
of grunt work, but now I was out of sync with all of the guides. Oh
well.&lt;/p&gt;
&lt;p&gt;I think things are confusing partly because there are four AWS
components all interacting to make a static site happen:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Remigration</title>
      <link>//blog.vero.site/post/remigration</link>
      <pubDate>Sun, 05 Nov 2017 01:56:42 -0500</pubDate>
      
      <guid>//blog.vero.site/post/remigration</guid>
      <description>&lt;p&gt;I guess I lied in my penultimate post.&lt;/p&gt;
&lt;p&gt;I’m planning on migrating my primary blog (again), off WordPress to a
static site hosted somewhere. I might just throw everything onto GitHub
Pages, or might follow any of the zillions of tutorials on how to host
static sites off a cheap Amazon S3 bucket — I haven’t decided yet, but
no longer having to rely on the free part of freemium services is fairly
liberating.&lt;/p&gt;
&lt;p&gt;Why? Lots of small reasons.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Me and Facebook</title>
      <link>//blog.vero.site/post/me-and-facebook</link>
      <pubDate>Wed, 27 Sep 2017 15:00:20 +0800</pubDate>
      
      <guid>//blog.vero.site/post/me-and-facebook</guid>
      <description>&lt;p&gt;&lt;strong&gt;tl;dr: I don’t use Facebook much. If you want to contact me,
I would prefer nearly any other mode of communication. I am also going
to stop autosharing posts from this blog onto Facebook. RSS readers are
great; get yours today.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Recently I checked Facebook and it said something like “You’ve added
N friends this past T units of time! Thanks for making the world more
connected!” and I just couldn’t any more. Facebook friends are not
friends.
&lt;a href=&#34;https://en.wikipedia.org/wiki/Dunbar&#39;s_number&#34;&gt;Dunbar’s
number&lt;/a&gt; is around 150, maybe double that if you want to stretch it;
humans cannot handle that many human relationships. Facebook’s siloed
ecosystem is the opposite of connected with the rest of the
Internet.&lt;/p&gt;
&lt;p&gt;That is one of many reasons I pretty much don’t use Facebook any
more. This is not new, but I’ve never formalized it. Also, I figure
others might assume otherwise since I still do have an account and still
accept friend requests and post sometimes. Thus, I’m writing this
post.&lt;/p&gt;
&lt;p&gt;Here are all of the reasons:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Taking a Step Back</title>
      <link>//blog.vero.site/post/step-back</link>
      <pubDate>Wed, 17 May 2017 22:17:26 +0800</pubDate>
      
      <guid>//blog.vero.site/post/step-back</guid>
      <description>&lt;p&gt;There’s some point in the decline of a blog’s activity at which you
just can’t apologize with a straight face for not posting any more. Only
ironically.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;I brainstormed reasons why I’m not blogging. It took a while for me
to find a reason that felt right, but I think it’s mostly the concern
that I don’t have anything important to say, and I’m just spamming
people’s inboxes or Facebook feeds. I make fun of my perfectonist
tendencies, but they haven’t gone away and have been exacerbated by how
public this blog feels now. There’s also a general feeling permeating
life that I should be trying to present myself professionally to people,
because like a diamond, the Internet is forever.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>I guess January is puzzles month</title>
      <link>//blog.vero.site/post/january</link>
      <pubDate>Sat, 04 Feb 2017 14:27:18 +0800</pubDate>
      
      <guid>//blog.vero.site/post/january</guid>
      <description>&lt;p&gt;And it’s not even January any more.&lt;/p&gt;
&lt;p&gt;(Thing negative two: Thing zero, which is at the bottom of this post,
contains two puzzles by me. Skip there if that sounds interesting and
text walls don’t.)&lt;/p&gt;
&lt;p&gt;Thing negative one: I abandoned this blog (again). The last month has
been a mess and much of it is political stuff of the sort that I’m the
worst/slowest at writing about.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Thing one: I was on-site for a second MIT Mystery Hunt.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The More Things Change</title>
      <link>//blog.vero.site/post/change</link>
      <pubDate>Sat, 31 Dec 2016 23:59:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/change</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/LRP8d7hhpoQ&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;It seems to me like lots of people want this year to be over. Among
all the other things, 2016 is also apparently the year I totally abandon
this blog and put off certain planned posts by several months.&lt;/p&gt;
&lt;p&gt;I guess this is what happens when you take five technical classes at
MIT. The extracurriculars aren’t helping. And the fastest and most
confident writing I do is still reactive, when there’s an
externally-imposed deadline or when “somebody is wrong on the internet”.
This blog isn’t.&lt;/p&gt;
&lt;p&gt;Oh well, time to make up for it in 2017.&lt;/p&gt;
&lt;p&gt;What happened this year? I’ll start with some serious categories:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>oblig</title>
      <link>//blog.vero.site/post/oblig</link>
      <pubDate>Mon, 21 Nov 2016 14:53:37 +0800</pubDate>
      
      <guid>//blog.vero.site/post/oblig</guid>
      <description>&lt;p&gt;This is two days late and it’s not even the post that was supposed to
be here. That will have to wait until I’m less hosed.
&lt;a href=&#34;https://esp.mit.edu/&#34;&gt;ESP&lt;/a&gt; just finished running Splash, our
largest annual event in which thousands of high school students come to
MIT’s campus, and MIT community members (mostly) teach whatever they
want to the students. This was the first big program I participated
really deeply in as an ESP admin, and it has this way of eating you
alive and spitting you out full of joy and immersion in life but devoid
of energy and buffer zones for finishing other things by their
deadlines.&lt;/p&gt;
&lt;p&gt;On a similar note, thanks for all the birthday wishes from everyone
everywhere. I’m sorry I haven’t found the time to respond or sometimes
reciprocate. This made my day, and probably last couple of weeks
too.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>It&#39;s Complicated</title>
      <link>//blog.vero.site/post/complicated</link>
      <pubDate>Sat, 12 Nov 2016 12:26:52 +0800</pubDate>
      
      <guid>//blog.vero.site/post/complicated</guid>
      <description>&lt;p&gt;On November 8th, 2016, Donald Trump was elected the 45th President of
the United States. Along with a Republican House and Senate majority, to
boot.&lt;/p&gt;
&lt;p&gt;The world around me is still hurting and reeling from the shock.&lt;/p&gt;
&lt;p&gt;Make no mistake, I am scared. I am scared of the policies and
executive orders and legal decisions to come that may strip away many
civil rights and send the environment down a worse track faster than
anyone expected, and I’m barely in any of the groups that have the most
to lose. I have no idea what it’s like to go through this as any of you.
I am sorry.&lt;/p&gt;
&lt;p&gt;But I am also scared that this fear is driving my friends and my
community away from talking to the people we need to talk to if we want
to make sure this doesn’t happen again.&lt;/p&gt;
&lt;p&gt;I’ve heard a lot of people vilify Trump and Trump supporters.
&lt;a href=&#34;https://nmnnmnnmmnnnmnrnmnmnnmn.wordpress.com/2016/11/09/1067/&#34;&gt;Anecdotally,
so have others&lt;/a&gt;. It’s an understandable reaction, but a fragile one.
60 million people voted for Trump.
&lt;a href=&#34;http://waitbutwhy.com/2016/11/its-going-to-be-okay.html&#34;&gt;Quoting
&lt;em&gt;Wait But Why&lt;/em&gt;&lt;/a&gt;, “[P]eople with kids and parents and jobs and
dogs and calendars on their wall with piano lessons and doctors
appointments and birthday parties written in the squares. Full,
three-dimensional people who voted for what they hope will be a better
future for themselves and their family.”&lt;/p&gt;
&lt;p&gt;People voted for Trump. Why?&lt;/p&gt;
&lt;p&gt;Here’s
&lt;a href=&#34;http://fivethirtyeight.com/features/trumps-base-is-blue-collar-his-voters-looking-for-a-return-to-better-times/&#34;&gt;FiveThirtyEight
profiling a few blue-collar voters&lt;/a&gt;.
&lt;a href=&#34;https://www.washingtonpost.com/news/wonk/wp/2016/11/08/a-new-theory-for-why-trump-voters-are-so-angry-that-actually-makes-sense/&#34;&gt;The
Washington Post interviewing an author who spent a lot of time in rural
Wisconsin&lt;/a&gt;.
&lt;a href=&#34;http://www.nytimes.com/2016/11/11/us/politics/the-women-who-helped-donald-trump-to-victory.html?smid=fb-nytimes&amp;amp;smtyp=cur&#34;&gt;The
New York Times on women&lt;/a&gt;. If the articles’ reasons for voting Trump
could be summarized in one word, it would certainly be “economy”.&lt;/p&gt;
&lt;p&gt;But then FiveThirtyEight tempers it a little bit with this reminder
that
&lt;a href=&#34;http://fivethirtyeight.com/features/the-mythology-of-trumps-working-class-support/&#34;&gt;Trump’s
supporters are on average more well-off than others&lt;/a&gt;. Here’s
&lt;a href=&#34;http://www.newyorker.com/magazine/2016/07/11/george-saunders-goes-to-trump-rallies&#34;&gt;The
New Yorker visiting a bunch of Trump rallies&lt;/a&gt;. SupChina discusses
&lt;a href=&#34;http://supchina.com/2016/11/03/many-first-generation-chinese-immigrants-supporting-donald-trump/&#34;&gt;first-generation
Chinese immigrants supporting Trump&lt;/a&gt; and racism is a bullet point
there, but apparently it’s partly rallied around rap lyrics about
robbery that advise to “find a Chinese neighborhood” to steal from, so…?
I am not going to go any deeper into this rabbit hole. Then here’s
&lt;a href=&#34;http://www.motherjones.com/kevin-drum/2016/03/trump-voters-are-not-angry-about-economy-really&#34;&gt;Mother
Jones arguing against the economy being a big factor at all&lt;/a&gt;, and
&lt;a href=&#34;http://www.vox.com/policy-and-politics/2016/10/15/13286498/donald-trump-voters-race-economic-anxiety&#34;&gt;Vox
saying it &lt;em&gt;is&lt;/em&gt; about racial resentment&lt;/a&gt;. Here’s
&lt;a href=&#34;https://www.bloomberg.com/view/articles/2016-11-11/revenge-of-the-deplorables&#34;&gt;Bloomberg
on the Clinton campaign’s failure to persuade&lt;/a&gt; and
&lt;a href=&#34;http://thefederalist.com/2016/11/11/how-jon-stewart-and-the-daily-show-elected-donald-trump/&#34;&gt;The
Federalist on “hyper-liberal late-night comedy”&lt;/a&gt; and
&lt;a href=&#34;http://www.washingtontimes.com/news/2016/nov/9/donald-trump-and-the-new-american-revolution/&#34;&gt;The
Washington Times on Trump’s optimism&lt;/a&gt;. I could find hundreds more out
there just by Googling, and so could you; and chances are if you’re
enough of a voracious reader to be reading my humble blog, you’ve
already read some of these.&lt;/p&gt;
&lt;p&gt;It’s complicated.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Time, Money, and All That Good Stuff: Part 1 of ∞</title>
      <link>//blog.vero.site/post/time-money-1</link>
      <pubDate>Mon, 22 Aug 2016 15:38:29 +0800</pubDate>
      
      <guid>//blog.vero.site/post/time-money-1</guid>
      <description>&lt;p&gt;I had this 5,000-word draft, but I half-abandoned it for being sappy,
boring, pointless, and impossible to rewrite to be satisfactorily
un-cringeworthy. Instead, let me just tell you a couple random stories
and anecdotes that went somewhere near the start. Maybe posting them
will motivate me to salvage something from the 4,500 words that go after
it and post it. Eventually.&lt;/p&gt;
&lt;p&gt;Some time ago, Namecheap had a discount, so I bought a domain name
for 88¢. Unfortunately, the discount only lasted for one year;
afterwards, it would cost $29/year to renew. Even though I bought it on
a whim and didn’t have much use for it, I
&lt;a href=&#34;https://en.wikipedia.org/wiki/Endowment_effect&#34;&gt;found myself
wanting to keep it more and more&lt;/a&gt; and had a huge mental struggle over
whether I could afford it, because wow, $29 is a lot!&lt;/p&gt;
&lt;p&gt;Meanwhile, during the same school year, more or less:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Musings on Time Pressure</title>
      <link>//blog.vero.site/post/musings-pressure</link>
      <pubDate>Mon, 15 Aug 2016 15:44:20 +0800</pubDate>
      
      <guid>//blog.vero.site/post/musings-pressure</guid>
      <description>&lt;p&gt;I hate doing things under time pressure, but I have to admit I do a
lot more things when time pressure exists. One of the things is writing.
Another is posting the things I write. They aren’t very good, but
they’re better than writing that doesn’t exist.&lt;/p&gt;
&lt;p&gt;(in case you forgot, I’m still posting this pretty much only because
&lt;a href=&#34;//blog.vero.site/post/no-excuses&#34;&gt;I made myself post once every
weekend&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;It’s interesting that I can impose time pressure on myself by
declaring commitment devices by fiat and it works. Other people have
developed other methods of doing this — I recently discovered
&lt;a href=&#34;http://www.themostdangerouswritingapp.com/&#34;&gt;The Most Dangerous
Writing App&lt;/a&gt;, which puts time pressure on you to type every five
seconds or it deletes everything you wrote. There are many other ways
it’s done.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>020315040524</title>
      <link>//blog.vero.site/post/bcodex</link>
      <pubDate>Mon, 08 Aug 2016 13:54:22 +0800</pubDate>
      
      <guid>//blog.vero.site/post/bcodex</guid>
      <description>&lt;p&gt;&lt;code&gt;--... ---.. ....- ..... ..--- ----- ....- ....- ...-- -.... ...-- -.... ...-- . ....- ....- ..--- ----- ....- ..... ...-- ----. ...-- -.... ....- ...-- ...-- -.... ..... -.... ....- ....- ..--- ----- ...-- ..-. ....- ----- ..--- ----- ...-- ..--- ...-- ..-. ....- ..... ...-- .- ...-- ..... ....- ----- ....- ..... ...-- -.... ..--- ----- ...-- --... ....- ----- ....- ...-- ..--- ----- ...-- ..--- ...-- ..-. ...-- ---.. ....- ....- ....- ..... ..--- ----- ...-- -.. ...-- .- ...-- -.-. ...-- -.... ..--- ----- ...-- --... ...-- .- ...-- ..-. ...-- ..... ...-- .- ...-- ..-. ...-- ---.. ..--- ----- ....- ....- ....- ----- ...-- . ...-- -.... ....- ..... ...-- ----. ...-- .- ...-- ..-. ...-- ---.. ..--- ----- ...-- ....- ....- ----- ....- ----- ...-- -.. ..--- ----- ...-- ..--- ...-- ..-. ...-- ..... ..--- ----- ...-- ..... ....- ----- ....- ---.. ...-- ..-. ..... -.-. ....- ..... ....- ----- ..... -.-. ...-- -.... ...-- ..--- ....- ...-- ....- ..... ...-- ----. ..... -... ..--- ----- ...-- ..--- ...-- ..-. ...-- ..... ..--- ----- ...-- ..... ....- ----- ...-- .- ...-- ..-. ...-- ---.. ..--- ----- ...-- .- ....- ..... ..... -..&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;..--- ..... ....- ----- ...-- ..... ...-- ..--- ....- .- ..--- ----- --... ---.. ..--- ----- ...-- ..... ...-- .- ...-- ..... ..--- ----- ...-- ..--- ..--- ----- ....- ..... ...-- ----. ...-- .- ...-- ..-. ...-- ---.. ..--- ----- --... ---.. ..--- ----- ....- ---.. ...-- ..--- ...-- ..-. ....- ..... ...-- -.... ...-- ..... ..--- ----- ....- ..... ....- ----- ..--- ----- ...-- ..... ....- ----- ..--- ----- ...-- --... ....- ----- ....- ...-- ..--- ----- ...-- ..--- ..--- ----- ...-- -.. ....- ----- ...-- ..-. ...-- ---.. ..--- ----- ....- ..... ...-- .- ...-- . ...-- -.... -.... ----. ..--- ----- --... ---.. ..--- ----- ...-- ....- ....- ----- ...-- . ....- .---- ...-- .- ...-- -.. ...-- -.... ...-- ..... ..--- -----&lt;/code&gt;
&lt;a href=&#34;https://github.com/betaveros/bcodex&#34;&gt;&lt;code&gt;...-- ...-- ...-- ....- ....- ----- ...-- ..... ...-- -.... ....- ----.&lt;/code&gt;&lt;/a&gt;
&lt;code&gt;..--- ----- ...-- --... ....- ...-- ....- ----- ...-- . ..--- ----- --... --... ...-- ..--- ....- ....- ...-- -.-. ...-- -.... ...-- -.. ...-- -.. ..--- ----- ....- ..... ....- ----- ..--- ----- --... ----. ...-- ..--- ....- --... ...-- ..--- ..--- ....- ...-- ....- ....- ...-- ...-- .- ....- .---- ....- ..... ..--- ----- ....- ....- ....- ----- ..--- ----- ...-- .- ....- ..... ..--- ----- ...-- ....- ....- ----- ....- -.... ...-- -.. ...-- ..... ..--- ----- ....- ...-- ....- -.... ...-- ..-. ..--- ----- ...-- .- ...-- ..-. ..--- ----- ...-- ..--- ...-- ..-. ....- .- ..--- ----- ...-- . ....- ----- ...-- ..... ...-- -.... ....- ...-- ...-- ..-. ..--- ----- ...-- ...-- ....- ...-- ....- ----- ....- ---.. ....- ....- ...-- -.... ....- ...-- ..... -.. ..--- -----&lt;/code&gt;
&lt;a href=&#34;http://betaveros.github.io/bcodex/&#34;&gt;&lt;code&gt;..--- .- ....- ----- ....- -.... ..--- ----- ...-- ....- ...-- ..--- ...-- ..-. ..--- ----- ....- ..... ....- ...-- ....- .- ..--- ----- ...-- .- ....- ..... ..--- ----- ...-- ----. ...-- -.... ....- ...-- ...-- -.... ..... -----&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Pangs</title>
      <link>//blog.vero.site/post/pangs</link>
      <pubDate>Mon, 01 Aug 2016 15:22:19 +0800</pubDate>
      
      <guid>//blog.vero.site/post/pangs</guid>
      <description>&lt;div class=&#34;cw&#34;&gt;
&lt;p&gt;content warning: death, existential dread, the usual&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I have this memory —&lt;/p&gt;
&lt;p&gt;I was a tiny kid, lying in bed and trying to fall asleep, and I
started thinking about death and nonexistence, and I thought about how
one day I wouldn’t exist any more, that there wouldn’t &lt;em&gt;be&lt;/em&gt; a me
thinking my thoughts and perceiving my perspective, and suddenly I was
terrified.&lt;/p&gt;
&lt;p&gt;I got up and knocked on my parents’ bedroom door and asked them about
this. Maybe. Or maybe I didn’t because the fear was less crippling than
the social awkwardness of randomly knocking on my parents’ door in the
middle of the night to ask them a question like that; I don’t remember.
It was a long time ago, okay?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Music II</title>
      <link>//blog.vero.site/post/music-ii</link>
      <pubDate>Mon, 25 Jul 2016 15:50:43 +0800</pubDate>
      
      <guid>//blog.vero.site/post/music-ii</guid>
      <description>&lt;p&gt;When I first made myself commit to posting weekly, I was trying to
make myself spend a little time every day of the week thinking and
writing and whittling away at old drafts. Instead I’m here at 10:40 PM
basically starting a brand-new post. Oh well.&lt;/p&gt;
&lt;p&gt;I last &lt;a href=&#34;//blog.vero.site/post/music&#34;&gt;blogged about music in
2013&lt;/a&gt;. I tagged two other posts with “music” since then, but neither
is particularly deep: &lt;a href=&#34;//blog.vero.site/post/8-songs&#34;&gt;8 Songs for 18
Years&lt;/a&gt; and &lt;a href=&#34;//blog.vero.site/post/drop-in&#34;&gt;Drop-In Filler&lt;/a&gt;.
Let’s continue the tradition of self-analysis part IIs from nowhere…&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;I meditated a little bit in
&lt;a href=&#34;//blog.vero.site/post/conversations&#34;&gt;Conversations&lt;/a&gt; about “lacking
experience or interest in a lot of the commonly discussed culture.” I
think this applies to me and music as well, although not as fully. Back
in Taiwan, when mentally bracing myself for coming to the U.S. for
college, I sometimes worried about not knowing enough about pop music
and bands and not listening enough to popular albums, and having trouble
integrating into the culture for this.&lt;/p&gt;
&lt;p&gt;Turns out, among the communities I wandered into and friends I made,
it was a more frequent obstacle that I didn’t know enough about
classical music and composers. Whoops. Some of the names rang faint
bells from either music class or conversations with high school friends
who did do classical music, but I could not identify or remember any
styles or eras, and would remember composers only by unreliable first
letters or unusual substrings of their names.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Gaming</title>
      <link>//blog.vero.site/post/gaming</link>
      <pubDate>Mon, 18 Jul 2016 16:55:32 +0800</pubDate>
      
      <guid>//blog.vero.site/post/gaming</guid>
      <description>&lt;p&gt;It’s another weekend, isn’t it.&lt;/p&gt;
&lt;p&gt;I’m out of deep things to say. I don’t usually have deep things to
say. Sorry to anybody who subscribed hoping for more things like the
last post. This is basically going to be a personal stream of
consciousness post. But it’s a stream with a long ancestry, since I
apparently wrote 400 words about it in a WordPress draft four years ago.
This was way back before I even started writing post drafts in Markdown
on my computer instead of directly in WordPress, so I guess it must be
an interesting topic.&lt;/p&gt;
&lt;p&gt;Four years ago, Brian&lt;sub&gt;2012&lt;/sub&gt; was suddenly struck by how many
of the people he knew were such serious gamers. But let’s go back even
earlier, shall we?&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;A long long time ago, when I was in elementary school or so, my
parents had some sort of reward system where I had to do productive
things, like study or do chores or write diary entries or practice the
piano or something, to earn time on the computer for games. “Gaming
time” was a currency. I enjoyed saving up lots of thirty-minute
increments and knowing I had the freedom to using them slowly.&lt;/p&gt;
&lt;p&gt;That much I remember; the details of how it worked are very fuzzy and
I’m not sure what I played in those thirty-minute increments either. I
think there was Neopets and Runescape and Club Penguin. (My Neopets
account still sees sporadic activity, because I get really really bored
sometimes…)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>On Islam, Headlines, and Definitions</title>
      <link>//blog.vero.site/post/islam-headlines</link>
      <pubDate>Mon, 11 Jul 2016 15:29:43 +0800</pubDate>
      
      <guid>//blog.vero.site/post/islam-headlines</guid>
      <description>&lt;p&gt;This post’s topic might be the most controversial thing I’ve posted
here ever. I hope the points I want to make aren’t.&lt;/p&gt;
&lt;p&gt;One of the excuses for not blogging I came up with and then deleted
while &lt;a href=&#34;//blog.vero.site/post/no-excuses&#34;&gt;rambling about not
blogging&lt;/a&gt; was that I’m getting more feelings about real-world
real-person issues, things that people take heated positions on — it’s
not topics like what food I ate or what games I’m playing in fourth
grade any more — and my identity is pretty public here, so who knows
what’ll happen. Oh well. I’m probably just paranoid.&lt;/p&gt;
&lt;p&gt;It’s also delayed, as the articles I’m talking about are old; the
latest two news items are the shootings of Alton Sterling and Philando
Castile and then the police shooting at the Dallas rally. That was also
really sad, but I don’t think I have anything insightful to say about
it. Let me point you to the
&lt;a href=&#34;http://mitadmissions.org/blogs/entry/black-lives-matter&#34;&gt;MIT
Admissions post, “Black Lives Matter”&lt;/a&gt;, and then for something a bit
more optimistic out of a huge range of possible choices,
&lt;a href=&#34;https://medium.com/@Mandela/my-white-boss-talked-about-race-in-america-and-this-is-what-happened-fe10f1a00726#.wtnr99lp1&#34;&gt;this
Medium article&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Although after I started writing this post, the story about
&lt;a href=&#34;http://www.indiatimes.com/news/world/muslim-man-hugs-isis-militant-armed-wearing-suicide-vest-before-explosion-saves-hundreds-of-lives-258126.html&#34;&gt;a
Muslim man preventing an ISIS suicide bomber&lt;/a&gt; came out, so now this
is mildly relevant again. Anyway, I guess the delay is no different from
how I put up life posts weeks after the life event happens. So today, I
bring you two old news articles about Islam that my friends shared and
discussed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Green:
&lt;a href=&#34;http://www.huffingtonpost.com/todd-green-phd/is-islam-responsible-for-_b_10449060.html&#34;&gt;Is
Islam Responsible For The Orlando Nightclub Shooting?&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
King:
&lt;a href=&#34;http://www.nydailynews.com/news/world/king-isis-terrorists-aren-muslims-evil-men-article-1.2699463&#34;&gt;ISIS
terrorists aren’t Muslims — they’re just evil men hell-bent on carnage
and destruction&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The second one first, whose argument is, to be frank, weak. I think
this piece from &lt;cite&gt;The Atlantic&lt;/cite&gt; by Wood,
&lt;a href=&#34;http://www.theatlantic.com/magazine/archive/2015/03/what-isis-really-wants/384980/&#34;&gt;“What
ISIS Really Wants”&lt;/a&gt;, is a better-researched overview of ISIS while
still being pretty readable. One caveat is that it’s somewhat old. But
its central claim is quite the opposite:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Conversations</title>
      <link>//blog.vero.site/post/conversations</link>
      <pubDate>Mon, 04 Jul 2016 13:10:21 +0800</pubDate>
      
      <guid>//blog.vero.site/post/conversations</guid>
      <description>&lt;p&gt;One of the most unexpectedly different facets of life during my
internship has been the meals.&lt;/p&gt;
&lt;p&gt;I’m not talking about the food; it’s certainly different in a
fantastic way
(&lt;a href=&#34;https://www.facebook.com/DropboxTuckShop/?fref=ts&#34;&gt;Dropbox’s
food (link to Facebook page)&lt;/a&gt; is like something out of a high-end
restaurant), but I knew that before coming already. Also of note is the
way I started eating ∞% more ramen over the weekends than I did over the
entire school year at MIT, because here I can’t buy that many groceries
without them spoiling and am amazingly lazy in this new environment.&lt;/p&gt;
&lt;p&gt;No, this (deadlined, so not that well-thought-out, but whatever) post
is about conversations at meals, which happen basically every lunch and
some dinners when my team eats together.&lt;/p&gt;
&lt;p&gt;I’ve never had any regular experience like it. Of course I’ve had
many meals at home with family, but they feel different because, well,
it’s family and we have so many topics in common. I went to the same
school for twelve years and we didn’t generally use a cafeteria; we just
ate at our desks in our classrooms, or while doing things like attending
club meetings or taking makeup tests. Sometimes if people felt like it
they would push desks together to eat, but eating by oneself was totally
normal. (At last, I feel like that was what it was. It seems so far away
now that I don’t trust my memory, which is pretty sad… I faintly suspect
I would have this experience in a more stereotypical American high
school. But this is mostly just based off the cafeteria in &lt;cite&gt;Mean
Girls&lt;/cite&gt;, a movie I only watched in its entirety on the flight here,
which is weird because I know I’ve seen the “The limit does not exist!”
part much much earlier. /aside)&lt;/p&gt;
&lt;p&gt;And at MIT? “Time is an illusion. Lunchtime doubly so.”&lt;/p&gt;
&lt;p&gt;I am glad for these conversations over lunch because I get to know my
team more personally (and don’t have to awkwardly eat alone in the
bathroom), but they’ve also given me a lot of time to ponder my (lack
of) conversation skills.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>No Excuses</title>
      <link>//blog.vero.site/post/no-excuses</link>
      <pubDate>Mon, 27 Jun 2016 14:08:54 +0800</pubDate>
      
      <guid>//blog.vero.site/post/no-excuses</guid>
      <description>&lt;p&gt;Wow, this has been the longest silence on this blog in a long
time.&lt;/p&gt;
&lt;p&gt;I can’t justify it with lack of time either. Interning at Dropbox
takes up all of my weekdays, but my weekends are much freer than I’m
used to. I carelessly let two weeks at home in Taiwan pass by without
doing much about blogging, and once again a lot of my few blog drafts
have drifted into the temporally awkward zone, being too far away from
the events they are about.&lt;/p&gt;
&lt;p&gt;Neither is it for lack of things happening. At MIT, there was the
&lt;a href=&#34;http://thetech.com/2016/06/10/senior-house-turnaround-announced&#34;&gt;Senior
House turnaround and freshman moratorium&lt;/a&gt;. I can’t even begin to sum
up the discussion around this issue, but I think
&lt;a href=&#34;https://medium.com/@hollyhaney/an-open-letter-to-chancellor-barnhart-from-a-senior-house-resident-efc107e789ab#.a1psbheao&#34;&gt;the
best response I’ve read is this open letter&lt;/a&gt;. Then there’s the
&lt;a href=&#34;http://seniorhouse.mit.edu/&#34;&gt;official Senior House
response&lt;/a&gt;. But that’s enough links, since I imagine the chances that
this issue is relevant to you &lt;em&gt;and&lt;/em&gt; you’d need this blog to link
you to them if you’re reading this are pretty low. (Then again, the
chances that you’re reading this are already pretty low. Although the
chances &lt;em&gt;you&lt;/em&gt; are reading this right now is 100%.)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>[insert name here]</title>
      <link>//blog.vero.site/post/insert-name-here</link>
      <pubDate>Wed, 23 Mar 2016 15:31:22 +0800</pubDate>
      
      <guid>//blog.vero.site/post/insert-name-here</guid>
      <description>&lt;p&gt;(I’m making random short posts to entertain certain people during
spring break.)&lt;/p&gt;
&lt;p&gt;Since air-dropping into this crazy cultural salad bowl of a place,
I’ve met a lot of people whose names get mispronounced. All sorts of
long vowels and short vowels and consonants and word boundaries that
jump across languages unpredictably. As a result, people often acquire
nicknames or alternative names to get called by, whether actively,
passively, or somewhere in between.&lt;/p&gt;
&lt;p&gt;In contrast, my name is easy and boring. Now, I rather doubt I’d want
an exciting name, in the sense of a name that everybody mangles in
excitingly different ways. I’m not exactly dissatisfied with people
calling me “Brian”. It just strikes me that I think I’ve gone my entire
life without a meaningful nickname or even meaningful derivative of my
name.&lt;/p&gt;
&lt;p&gt;(I’m ignoring the transposition. Why am I ignoring the transposition?
I’m not sure I can rationally justify that, but thinking about it makes
me cringe, which is the reason I’m delicately avoiding explicitly
writing out what nickname I refer to by “transposition”. I will just say
it is rather uninspired… and also, perplexingly to me, used by accident
a lot…)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Zootopia</title>
      <link>//blog.vero.site/post/zootopia</link>
      <pubDate>Mon, 21 Mar 2016 14:27:21 +0800</pubDate>
      
      <guid>//blog.vero.site/post/zootopia</guid>
      <description>&lt;p&gt;(So. It’s spring break. Two-week-late post, and somehow by the end
it’s all aboard the angst train again?)&lt;/p&gt;
&lt;p&gt;Two Sundays ago, I mobbed with a small group of MIT furries to watch
&lt;cite&gt;Zootopia&lt;/cite&gt;, the recent highly-reputed Disney movie.&lt;/p&gt;
&lt;p&gt;(Before anything else, first there were the previews. I was impressed
that every single one of them — there were six or so — was about an
upcoming movie featuring anthropomorphic animals front and center. Let
me see if I can remember all of them… in no particular order,
&lt;cite&gt;Teenage Mutant Ninja Turtles&lt;/cite&gt;, &lt;cite&gt;The Secret Life of
Pets&lt;/cite&gt;, &lt;cite&gt;The Jungle Book&lt;/cite&gt;, &lt;cite&gt;Storks&lt;/cite&gt;,
&lt;cite&gt;Finding Dory&lt;/cite&gt;, and &lt;cite&gt;Ice Age: Collision Course&lt;/cite&gt;.
&lt;ins datetime=&#34;2016-04-09T05:10:42+00:00&#34;&gt;edit: Oh, also &lt;cite&gt;Angry
Birds&lt;/cite&gt;.&lt;/ins&gt; Wow, I said, they know their audience.)&lt;/p&gt;
&lt;p&gt;I went into the movie with a vague impression that
&lt;cite&gt;Zootopia&lt;/cite&gt; was more adult-oriented than most Disney films —
not in the naughty way, but in general making a lot of jokes and
invoking a lot of parallels that I think only adults might have the
experience to get. My suspicions were confirmed a few lines into the
movie, where there was a joke about taxes I cracked up at but can’t
imagine that children a few years younger would have found funny. If you
the reader haven’t watched it, I hope that was vague enough not to ruin
the start for you.&lt;/p&gt;
&lt;p&gt;(To be fair — and, uh, some parts of the internet are kind of big on
this fact — the film also at one point enters a nudist colony.
Fortunately (?),
&lt;a href=&#34;http://tvtropes.org/pmwiki/pmwiki.php/Main/AnimalsLackAttributes&#34;&gt;Animals
Lack Attributes&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;Humor aside, I think the movie also deals with some weighty and
nuanced themes, ones that would take more life experience to fully
appreciate than the themes of most Disney movies. The social commentary
is very clear. Possibly bordering on too blatant for my tastes — even
though the whole movie is kind of Funny Talking Animals, there are some
animal species for which it’s really easy to guess which human
demographic groups they might be symbolizing, to the point where I can
already imagine the other side of the debate. You won’t need a PhD in
literature to figure out the parallels; you wouldn’t even need an AP
English Literature class. But, I think, it still works. It’s like
&lt;cite&gt;Animal Farm&lt;/cite&gt; on training wheels.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Brand New</title>
      <link>//blog.vero.site/post/brand-new</link>
      <pubDate>Wed, 03 Feb 2016 14:26:13 +0800</pubDate>
      
      <guid>//blog.vero.site/post/brand-new</guid>
      <description>&lt;p&gt;&lt;em&gt;(all the times that you beat me unconscious I forgive)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;angst [&lt;span style=&#34;color:#c00;&#34;&gt;████████&lt;/span&gt;  ] &lt;span
style=&#34;color:#c00;&#34;&gt;(8/10)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;We’re overdue for one of these posts, I guess.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(all the crimes incomplete – listen, honestly I’ll live)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Last-ditch feeble attempts at cleaning and reorganizing my desk and
shelf before I figuratively drowned in academics led to me finding&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
the Google physical linked puzzle, which I placed in the Kitchen Lounge
to nerd-snipe people, successfully
&lt;/li&gt;
&lt;li&gt;
a Burger King crown from the previous career fair
&lt;/li&gt;
&lt;li&gt;
ID stickers from the Putnam, one of which is now on my keyboard cover
cover (← not a typo), just because
&lt;/li&gt;
&lt;li&gt;
assorted edibles, like candies and jellies, which I ate; as well as the
half-finished Ziploc bag of candy from my FPOP, six months ago, which I
just tossed in the trash
&lt;/li&gt;
&lt;li&gt;
a box. It’s just, like, a box. I don’t know what goes or went into it
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I feel more in control of my living quarters. Marginally. Guess I’ll
be fine.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(mr. cool, mr. right, mr. know-it-all is through)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Pros and cons of having a departmental advisor in your area of
interest:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Pro: the advisor knows something about the classes you want to take and
can help you choose classes
&lt;/li&gt;
&lt;li&gt;
Con: the advisor knows something about the classes you want to take and
can help you choose classes
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    
    <item>
      <title>whoosh</title>
      <link>//blog.vero.site/post/whoosh</link>
      <pubDate>Mon, 01 Feb 2016 08:19:46 +0800</pubDate>
      
      <guid>//blog.vero.site/post/whoosh</guid>
      <description>&lt;p&gt;I finally did it.&lt;/p&gt;
&lt;p&gt;I was on-site for the 2016 MIT Mystery Hunt. I even &lt;em&gt;solved a
metapuzzle&lt;/em&gt;. This year I hunted with ✈✈✈ Galactic Trendsetters ✈✈✈,
the team primarily but not overwhelmingly formed from floorpi, my dorm
floor. (Perhaps somewhat regrettably, I didn’t contribute to any events
or runarounds or things given to HQ, unless you count attending a
“recitation” for Student Simulator (round King Arthur, second from
left).)&lt;/p&gt;
&lt;p&gt;(Also, I made this post. Has it been two weeks already? Okay, that’s
not an unusual timeframe.)&lt;/p&gt;
&lt;p&gt;But wow, I got to touch so many puzzles.&lt;/p&gt;
&lt;p&gt;Non-spoilery comments on particularly memorable puzzles I did, which
are disproportionately programming-related, if anybody wants to look at
them (I am describing how to get to the puzzle from the round instead of
linking because I’m lazy and links might rot but the instructions will
hopefully survive archival (although turns out there’s actually a
&lt;a href=&#34;http://huntception.com/toc.html&#34;&gt;table of contents&lt;/a&gt; so I
don’t know what I’m doing)):&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Ascension</title>
      <link>//blog.vero.site/post/ascension</link>
      <pubDate>Thu, 31 Dec 2015 23:57:31 +0800</pubDate>
      
      <guid>//blog.vero.site/post/ascension</guid>
      <description>&lt;p&gt;I wasn’t sure what would be the right song for 2015 until I set foot
on MIT. Then it was a no-brainer.&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/KThlYHfIVa8&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;Where do I even begin?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
I thought cooking was hard. Then I ended up in the kitchen on the third
floor of the west parallel of East Campus and had to produce something
edible. So I figured out how to acquire chicken and put it in a pan with
some onions and heat the whole thing up. It wasn’t even that bad! A few
weeks later, I graduated to cooking in a rotation for six people. All
this from a guy whose culinary abilities only went as far as frying eggs
a few months ago. It’s incredible where life takes you sometimes.
&lt;/li&gt;
&lt;li&gt;
I thought I couldn’t productively listen to lyrical music while doing
homework, because I get distracted and/or bogged down by the feels.
Turns out there’s a category of metal songs with great atmosphere and
terrible lyrics that does the trick.
&lt;/li&gt;
&lt;li&gt;
I had planned to suffer through introductory chemistry my freshman fall
and introductory biology my freshman spring, and thereafter be done with
required classes. Well, I took chemistry, but there was barely any
suffering involved, and now biology fits nowhere on my freshman spring
schedule.
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I had some outlandish hopes I’d walk into college and be able to
become mildly financially independent because people would throw
high-paying jobs at me that I could learn from, but I didn’t expect it
to happen. Life isn’t &lt;em&gt;that&lt;/em&gt; easy!&lt;/p&gt;
Well… it happened.
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;An &lt;em&gt;incredible&lt;/em&gt; number of redacted things.&lt;/p&gt;
&lt;p&gt;I’ve never been that kind of guy. Honest and innocent to a fault, no
secrets except those arising from paranoid self-assigned concern about
others’ privacy: that’s me. Until this year.&lt;/p&gt;
&lt;p&gt;Oh well, I can’t blog about it.&lt;/p&gt;
[redacted]
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;But mostly, of course, I actually graduated. The teacher-appreciation
dinner happened (6/4), where I debuted my graduation song (woo!) and ate
some good cake (double woo!); senior prom happened (6/7), with some
awesome photos; and then, actually, the graduation ceremony. (6/10, same
day I realized I had recently passed 100 starred things on GitHub.)&lt;/p&gt;
&lt;p&gt;::looks at self:: I’m actually a college student now.&lt;/p&gt;
&lt;p&gt;Every one of these stages of life seems like it should be a big deal,
like I should pass through and suddenly know all the things about
maturity and aspirations and life that are expected of college students,
but it never happens that way.&lt;/p&gt;
At least, all things considered, I think this transition was very
successful at taking my mind off the angsty side of things. This post is
actually surprisingly unangsty. Sorry to disappoint if that’s what
you’re here for!
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 49 / Triple Back</title>
      <link>//blog.vero.site/post/puzzle-49</link>
      <pubDate>Wed, 23 Dec 2015 00:25:46 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-49</guid>
      <description>&lt;p&gt;I’m not really satisfied with the execution, but eh, what the hell.
My brain can only function at so much of its full capacity when it’s a
few kilometers up in the sky.&lt;/p&gt;
&lt;p&gt;This is a
&lt;a href=&#34;https://mellowmelon.wordpress.com/2009/12/20/puzzle-135/&#34;&gt;Triple
Back&lt;/a&gt;, variant on
&lt;a href=&#34;https://mellowmelon.wordpress.com/double-back/&#34;&gt;MellowMelon’s
Double Back&lt;/a&gt;. Briefly, draw a closed loop through all square centers
visiting each bold-outlined area exactly three (= ⌊π⌋) times. Shaded
cells do not influence solving, only aesthetics.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>November 2015 Puzzles Hints</title>
      <link>//blog.vero.site/post/november-2015-hints</link>
      <pubDate>Sat, 21 Nov 2015 13:16:59 +0800</pubDate>
      
      <guid>//blog.vero.site/post/november-2015-hints</guid>
      <description>A Signature Puzzle: Trying to solve the puzzle with Extreme Speed can’t hurt. Anticron: This puzzle runs on two distinct 24-hour clocks, which is why you can be zoned out for half the time and still solve it. When Is My Birthday Again?: Apparently, if you don’t want to tell your friends your birthday, you can tell one of them the month and the other the day. And if you really want to annoy them, you can change one of the days at the end so they have to work it out again.</description>
    </item>
    
    <item>
      <title>Three for the Price of One (Meta)</title>
      <link>//blog.vero.site/post/three-for-one</link>
      <pubDate>Fri, 20 Nov 2015 13:00:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/three-for-one</guid>
      <description>&lt;p&gt;And that’s another year!&lt;/p&gt;
&lt;p&gt;As usual, &lt;a href=&#34;http://bpchen.scripts.mit.edu/2015/&#34;&gt;you can check
your answers here.&lt;/a&gt; Text above this horizontal rule is not part of
the puzzle.&lt;/p&gt;
&lt;p&gt;Solvers:&lt;/p&gt;
&lt;ol type=&#34;1&#34;&gt;
&lt;li&gt;Yoshiap @ 11-20 13:31:56&lt;/li&gt;
&lt;/ol&gt;</description>
    </item>
    
    <item>
      <title>When Is My Birthday Again?</title>
      <link>//blog.vero.site/post/birthday-again</link>
      <pubDate>Thu, 19 Nov 2015 13:00:25 +0800</pubDate>
      
      <guid>//blog.vero.site/post/birthday-again</guid>
      <description>&lt;p&gt;As usual, &lt;a href=&#34;http://bpchen.scripts.mit.edu/2015/&#34;&gt;you can check
your answers here.&lt;/a&gt; Text above this horizontal rule is not part of
the puzzle.&lt;/p&gt;
&lt;p&gt;Solvers (in my local UTC−5 because I’m lazy):&lt;/p&gt;
&lt;ol type=&#34;1&#34;&gt;
&lt;li&gt;Lewis Chen (phenomist) @ 11-19 05:03:07&lt;/li&gt;
&lt;li&gt;Jack Lance @ 11-19 10:39:11&lt;/li&gt;
&lt;li&gt;Yoshiap @ 11-20 03:29:54&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;</description>
    </item>
    
    <item>
      <title>Anticron</title>
      <link>//blog.vero.site/post/anticron</link>
      <pubDate>Wed, 18 Nov 2015 13:00:59 +0800</pubDate>
      
      <guid>//blog.vero.site/post/anticron</guid>
      <description>&lt;p&gt;Unfortunately, I did not get this successfully testsolved, although,
for whatever comfort it may provide, I did engage in several interactive
rounds of nerfing it.&lt;/p&gt;
&lt;p&gt;As usual, &lt;a href=&#34;http://bpchen.scripts.mit.edu/2015/&#34;&gt;you can check
your answers here.&lt;/a&gt; Text above this horizontal rule is not part of
the puzzle.&lt;/p&gt;
&lt;p&gt;Solvers:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A Signature Puzzle</title>
      <link>//blog.vero.site/post/signature-puzzle</link>
      <pubDate>Tue, 17 Nov 2015 13:00:06 +0800</pubDate>
      
      <guid>//blog.vero.site/post/signature-puzzle</guid>
      <description>&lt;p&gt;As usual, there had to be something here. In fact, this year, there
are several somethings. Hype!&lt;/p&gt;
&lt;p&gt;This is based on an idea by chaotic_iak.
&lt;a href=&#34;http://bpchen.scripts.mit.edu/2015/&#34;&gt;You can check your answers
here.&lt;/a&gt; Text above this horizontal rule is not part of the puzzle.&lt;/p&gt;
&lt;ins datetime=&#34;2015-11-17T21:15:09+00:00&#34;&gt;
ETA 11/17 16:15 UTC−5: Adjusted spacing between the bottom numbers after
feedback. The puzzle is otherwise the same, and solving should not be
significantly impacted.
&lt;/ins&gt;
&lt;p&gt;Solvers (in my local UTC−5 because I’m lazy):&lt;/p&gt;
&lt;ol type=&#34;1&#34;&gt;
&lt;li&gt;Yoshiap @ 11-17 18:28:34&lt;/li&gt;
&lt;/ol&gt;</description>
    </item>
    
    <item>
      <title>Pause</title>
      <link>//blog.vero.site/post/pause</link>
      <pubDate>Fri, 13 Nov 2015 16:03:56 +0800</pubDate>
      
      <guid>//blog.vero.site/post/pause</guid>
      <description>&lt;p&gt;There are 30 minutes until my laundry finishes.&lt;/p&gt;
&lt;p&gt;It is 2:30 in the morning as I write this. Normal people are not
awake at this time of day. It’s possible that normal MIT students are,
though.&lt;/p&gt;
&lt;p&gt;I’ve been meaning to blog for a while, but things happen and other
things happen and still more things happen. From a state of total
inexperience in the kitchen, I’ve already managed to single-handedly
cook six six-person meals for my co-op, not to mention all the weird
meals I make for myself (which is just as well, I don’t think they are
of typically mentionable caliber.) I’ve already taken two exams in three
of my classes and the big midterm for my fourth. Four puzzlehunts —
Simmons, aquarium, Palantir, ΣUMS; five if you perhaps include Next
Haunt. Six SIPB meetings. A few bottles of Soylent; I lost count and
don’t want to check my room because that’ll disturb my roommate. Θ(3000)
zephyrs. And after many weekends of eye-opening group practice, tonight
I have to catch a flight to Rochester, NY for ACM-ICPC regionals.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Sharpies</title>
      <link>//blog.vero.site/post/sharpies</link>
      <pubDate>Sun, 08 Nov 2015 14:59:48 +0800</pubDate>
      
      <guid>//blog.vero.site/post/sharpies</guid>
      <description>&lt;p&gt;As readers of this blog probably know, I am not an MITAdmissions blogger. It was kind of disappointing at the moment, but now I rarely think about it except when I come up with good reasons why I shouldn&amp;rsquo;t be an MITAdmissions blogger. One reason is that I am not very good at coming up with advice that could generalize to a wide audience, even an audience only as wide as people at or coming to the &amp;lsquo;Tvte. &lt;em&gt;(There can be only one!)&lt;/em&gt; This by itself probably wouldn&amp;rsquo;t be so bad because there&amp;rsquo;s plenty of generalizable advice to go around, but I also don&amp;rsquo;t like repeating well-known stuff. Don&amp;rsquo;t skip class, except when you really know when you&amp;rsquo;re doing, which you probably think you do when you skip class. Get enough sleep, maintain good study habits, set aside time to keep up with old friends, back up your zarking data, alternate alcoholic and nonalcoholic drinks, do not forget the factor of one-half when computing the area of a triangle. You get the picture.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s only one piece of advice I can say that I believe is generalizable to any degree, and in particular I think my past self would have appreciated and also had not heard, even in passing, from any other source: Get a Sharpie.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Carpe Annum</title>
      <link>//blog.vero.site/post/carpe-annum</link>
      <pubDate>Fri, 02 Oct 2015 14:47:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/carpe-annum</guid>
      <description>&lt;p&gt;A fun/interesting/unfortunate/fortunate consequence of the mental
world model of
&lt;a href=&#34;https://en.wikipedia.org/wiki/Inside_Out_(2015_film)&#34;&gt;&lt;cite&gt;Inside
Out&lt;/cite&gt; (2015 Pixar film)&lt;/a&gt; (which is a great movie, and I’m saying
this as a non-movie-type — I laughed, and I cried, and just omgwtfbbq
Disney/Pixar) is that imaginary friends that are capable of autonomous
flight are probably immune to being forgotten.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Unfiltering</title>
      <link>//blog.vero.site/post/unfiltering</link>
      <pubDate>Thu, 24 Sep 2015 14:00:18 +0800</pubDate>
      
      <guid>//blog.vero.site/post/unfiltering</guid>
      <description>People are afraid of the dark
because it holds the unknown
and unknowns are scary.
But maybe it is just as frightening
if we let the light shine everywhere
and believe that because we know everything the light shines on
we know everything.
Perhaps for once
when the sun fades over the horizon
and the darkness returns in its dependable cycle
we should silence the fears
and remember
there is darkness in all of us</description>
    </item>
    
    <item>
      <title>Jam-Packed Fun and Games</title>
      <link>//blog.vero.site/post/jam</link>
      <pubDate>Mon, 21 Sep 2015 00:45:43 +0800</pubDate>
      
      <guid>//blog.vero.site/post/jam</guid>
      <description>&lt;p&gt;Did I say “fun”? That was short for function calls. Which are fun
too, admittedly. Blah, I always go to such lengths to come up with
snappy yet justified post titles and end up achieving neither.&lt;/p&gt;
&lt;p&gt;One more complimentary breakfast later:&lt;/p&gt;
&lt;p&gt;This is it.&lt;/p&gt;
&lt;p&gt;Google Code Jam World Finals.
&lt;a href=&#34;//blog.vero.site/img/nametag.jpg&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/nametag.jpg?w=170&#34; alt=&#34;[Google Code Jam 2015 name tag with my name and handle and country]&#34; width=&#34;170&#34; height=&#34;300&#34; class=&#34;aligncenter size-medium wp-image-3374&#34; /&gt;&lt;/a&gt;
Let me take a moment to reflect. Seriously. I do not know how I made it
this far this year. I guess I might be a top-500-ish competitive
programmer globally, maybe even top-150-ish, but definitely not
top-25-ish. And
&lt;a href=&#34;https://code.google.com/codejam/contest/4254486/dashboard#s=p3&#34;&gt;Log
Set&lt;/a&gt;, the hard problem that got me through Round 3, doesn’t seem like
it plays to my forte particularly either. It’s a bit mathy, but the math
bits aren’t the hard part; I think it’s largely implementation, with one
psychological hurdle where you have to realize that, because of how few
distinct integers there are in S′, you can efficiently solve the
subset-sum instances you need to produce the lexicographically earliest
answer. I’m actually kind of impressed I got that. It seems like the
sort of hurdle I usually get stuck on. How did this happen?&lt;/p&gt;
&lt;p&gt;Maybe randomness. Maybe I was just particularly clear-minded during
the round and wrote less buggy code than usual, because I had no
expectation of making it whatsoever and so could look at the contest
detachedly (until midway through the contest I accidentally noticed that
my rank was under 20, and even then I tried very very hard not to think
about it, and it kind of worked).&lt;/p&gt;
&lt;p&gt;But it happened, and now I’m here. Time to roll.&lt;/p&gt;
&lt;p&gt;In some emails much earlier in the Code Jam logistical process,
Google had asked for “requests for changes and/or additions” to the
software that would be installed on our competition computers, and I had
sent them a long list:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Hi,&lt;br /&gt; Here are some things I’d like if they were installed, in
decreasing order of priority:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
The Vim plugin syntastic ( https://github.com/scrooloose/syntastic )
&lt;/li&gt;
&lt;li&gt;
a Haskell compiler (probably Haskell Platform 2014.2.0.0
https://www.haskell.org/platform/ even though it’s a year old)
&lt;/li&gt;
&lt;li&gt;
the Haskell package hdevtools (
https://hackage.haskell.org/package/hdevtools ) so that the above two
may be integrated
&lt;/li&gt;
&lt;li&gt;
(I don’t have enough Linux experience to name a specific thing to
install, but command-line utilities that are the equivalent of pbcopy
and pbpaste on Mac OS X, which allow me to redirect text into or out of
the clipboard from the command line easily)
&lt;/li&gt;
&lt;/ol&gt;
Of course, this is my first Code Jam and I don’t know how reasonable
these requests are. Any nontrivial subset would be appreciated.
&lt;/blockquote&gt;</description>
    </item>
    
    <item>
      <title>Orthogonal Planes</title>
      <link>//blog.vero.site/post/planes</link>
      <pubDate>Sun, 20 Sep 2015 11:13:14 +0800</pubDate>
      
      <guid>//blog.vero.site/post/planes</guid>
      <description>&lt;p&gt;I have a backlog of at least 6,000 words and still too many events to
blog about, so these posts will not reflect things currently happening
to me for a long, long time, except for the little blurbs on top of
posts like this one when they exist.&lt;/p&gt;
&lt;p&gt;Blogging is hard.&lt;/p&gt;
&lt;p&gt;Also, I don’t have a good title.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;It begins with an airplane.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;//blog.vero.site/img/plane.jpg&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/plane.jpg?w=660&#34; alt=&#34;[View of airplane wing and clouds from airplane]&#34; width=&#34;660&#34; height=&#34;373&#34; class=&#34;aligncenter size-large wp-image-3361&#34; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For Zarquon’s sake, you’re entrusting me with &lt;em&gt;my own passport and
airline tickets and luggage and all this stuff I can’t even.&lt;/em&gt; I
still layover people for months on end in &lt;cite&gt;Pocket Planes&lt;/cite&gt;
sometimes. &lt;a href=&#34;//blog.vero.site/post/cars&#34;&gt;(Watch the graceful
descent of this reference into personally overused snowclone
territory.)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Source: Taiwan, my home for the previous twelve years, which I am now
bidding farewell to for the longest time in forever (…which is only
(“only”?) five months, assuming I fly back for winter break as already
planned). Destination: Seattle, for this year’s Google Code Jam World
Finals, which I still don’t know how I managed to qualify for (more on
that in later posts); and, before that, an accompanying interview for an
internship that I scored as part of the bargain.&lt;/p&gt;
&lt;p&gt;I successfully get on the plane, sort some nice things to have on
hand into my MIT tote bag (how did I &lt;em&gt;ever&lt;/em&gt; survive airplanes
without keeping a tote bag on hand?), and put my backpack with the rest
of my stuff into the overhead compartment. An old-ish guy who is
probably Korean sits next to me. Plane takeoff is a bit delayed due to
traffic congestion. Once during the flight, after an attendant passes
out forms to everybody entering South Korea and I tell him I’m not, the
guy asks me where I’m going and we have a short conversation. But for
the most part, it’s typical airplane shenanigans. I listen to Avril
Lavigne and Ellie Goulding, do a little homework, and eat the airplane
food. Nothing remarkable happens.&lt;/p&gt;
&lt;p&gt;Until near the end of the flight: a guy in a suit shows up in the
aisle and, looking at some sort of checklist, calls my name.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 48 / Double Back</title>
      <link>//blog.vero.site/post/puzzle-48</link>
      <pubDate>Sun, 06 Sep 2015 23:15:44 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-48</guid>
      <description>&lt;p&gt;At least one person wants me to post. I’m not even going to try do a
life summary. It’s too hard. Let’s just say:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
right now, my blog drafts contain a backlog of ~7500 words and counting;
&lt;/li&gt;
&lt;li&gt;
I was not accepted as an MIT Admissions blogger, which is bad because my
blogging will continue to not reach a large audience, but good because
my blogging will continue to not reach a large audience. Maybe it had
something to do with the fact that, because the application form
wouldn’t let me submit without any media, I panickedly cranked out the
following puzzle in an hour or so to attach.
&lt;/li&gt;
&lt;/ol&gt;</description>
    </item>
    
    <item>
      <title>Glowstick Fragments</title>
      <link>//blog.vero.site/post/fragments</link>
      <pubDate>Wed, 12 Aug 2015 09:34:22 +0800</pubDate>
      
      <guid>//blog.vero.site/post/fragments</guid>
      <description>&lt;p&gt;&lt;a href=&#34;//blog.vero.site/post/glowstick&#34;&gt;Echoes.&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;On the HSR we kill time with weird games from Kevan Davis’s
&lt;a href=&#34;http://kevan.org/fdgp/&#34;&gt;Freeze-Dried Games Pack&lt;/a&gt;, mostly
Thirty-One. Then we’re there!&lt;/p&gt;
&lt;p&gt;On the bus we kill time with karaoke, until people complain.
Sorry.&lt;/p&gt;
&lt;p&gt;Lunch at Chinese restaurant. Beach resort.&lt;/p&gt;
&lt;p&gt;I spend the first one and a half hours holed up in my hotel room
watching television, first a quiz show where the host asks foreigners
living in Taiwan questions about the country’s culture and society, then
Disney and Cartoon Network cartoons. During the commercial breaks I do
cryptic crosswords I had brought along. This is something I
self-deprecatingly talk about for the rest of the trip, but I have no
regrets because the three cartoons I watch are literally my top three
guilty pleasure cartoons, &lt;cite&gt;Ben 10&lt;/cite&gt;, &lt;cite&gt;Teen Titans
Go!&lt;/cite&gt;, and &lt;cite&gt;Jake Long: American Dragon&lt;/cite&gt;.&lt;/p&gt;
&lt;p&gt;Then I wander around and join some guys playing pool. I do better
than I expect, once pocketing three balls in sequential moves. There is
also a Kinect with a dancing game, which I also score surprisingly well
at and have lots of fun playing.&lt;/p&gt;
&lt;p&gt;Dinner, in which I eat 小卷 (“pencil squids”?) with way way way too
much wasabi. I stuff myself and walk around chatting and eventually
learn there are freshly-made 手卷 (“&lt;i&gt;temaki&lt;/i&gt;” / “hand roll”)
downstairs. Since there’s lots of time I wait until I’m less full and
eat two.&lt;/p&gt;
&lt;p&gt;Group activity outside corresponds eerily to the one three years ago:
shouting, dancing, waving glowsticks, arbitrary dance moves, punishment
games, cooperation games, a competition where the guide gives out points
that don’t matter like on &lt;cite&gt;Whose Line Is It Anyway?&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;Empty promises… but okay. Class songs. (This is the explicit version.
This song is well above the normal offensiveness rating of this blog and
I usually prefer official videos, instead of shady lyric videos probably
made from Windows Movie Maker that might get taken down, but honestly I
find the pathetic execution of censorship in the VEVO version more
offensive.)&lt;/p&gt;
&lt;ins date=&#34;2019-02-05T16:58:07-0500&#34;&gt;
edit from the future: There used to be an explicit YouTube video of
Shots by LMFAO ft. Lil Jon here, which has since been taken down for
obvious reasons. Yes, it is a very crude song. I never went to a party
that was a tenth as wild as the song describes. Maybe it was my means of
vicarious escape.
&lt;/ins&gt;
&lt;p&gt;After it we have a sentimental moment listening to “See You
Again”.&lt;/p&gt;
&lt;p&gt;At night our room flips through television and watches the second
half of &lt;cite&gt;Iron Man 2&lt;/cite&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>[CIMC 2015 Part 3] Monsters and Pandas and Tigers, Oh My!</title>
      <link>//blog.vero.site/post/cimc-2015-part-3</link>
      <pubDate>Tue, 11 Aug 2015 23:32:37 +0800</pubDate>
      
      <guid>//blog.vero.site/post/cimc-2015-part-3</guid>
      <description>&lt;p&gt;My inner perfectionist is crying that I have to post this, in
particular over my pathetic
&lt;a href=&#34;http://snowclones.org/2007/05/22/x-y-and-z-oh-my/&#34;&gt;snowclone&lt;/a&gt;
title, but my inner pragmatist knows that, judging by my old blogging
patterns, it’s now or never.&lt;/p&gt;
&lt;p&gt;18.06: 56%, haven’t touched it in a while, but I think I can do lots
more on the plane.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;As a non-contestant, I confess I feel totally uninvested in the
results and find the Closing Ceremony boring. All contestants go up,
country by country, and have their awards read off. No effort is made to
make any sort of buildup to a climax. But maybe this is for the best; we
don’t want anybody feeling shafted or discouraged from continuing to do
math due to a mere elementary-/middle-school competition. Meanwhile,
though, I’m browsing reddit on my phone.&lt;/p&gt;
&lt;p&gt;After this ceremony, the entire Taiwan delegation spends some time
walking around outside while the guides make confused phone calls trying
to decide where we eat lunch. My parents offer me some potato chips they
bought somewhere, which are (as the label is really eager to point out)
baked, not fried. Some time passes this way; eventually, the guides
figure it out and we go through amazingly long queues to eat at the
cafeteria, as usual. Then we are sent to a massive shopping mall for the
afternoon, a place so large that its exits have number labels that go up
into the double digits so that people don’t get lost.&lt;/p&gt;
&lt;p&gt;I take trippy failed panorama photos from the bus windows.
&lt;a href=&#34;//blog.vero.site/img/trippy-panorama.jpg&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/trippy-panorama.jpg?w=652&#34; alt=&#34;[trippy panorama of a shopping mall]&#34; width=&#34;652&#34; height=&#34;427&#34; class=&#34;aligncenter size-large wp-image-3321&#34; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>[CIMC 2015 Part 2] Journey of the Blue-White Slippers</title>
      <link>//blog.vero.site/post/cimc-2015-part-2</link>
      <pubDate>Fri, 07 Aug 2015 12:04:30 +0800</pubDate>
      
      <guid>//blog.vero.site/post/cimc-2015-part-2</guid>
      <description>&lt;p&gt;(Nontopical life update: Current 18.06 homework status: 34% (mildly
screwed, probably won’t finish before I leave my cozy home for the U.S.
and I usually struggle to get into the mood for homework while
traveling, but I guess I’ll have to))
&lt;a href=&#34;//blog.vero.site/img/18-06-1.png&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/18-06-1.png?w=296&#34; alt=&#34;[18.06 status panel: 34%]&#34; /&gt;&lt;/a&gt;
(I’ve been spending most of my uptime doing said homework and running
errands, and my downtime catching up on &lt;cite&gt;Last Week Tonight with
John Oliver&lt;/cite&gt; while farming the Flight Rising Coliseum. And, okay,
making the above status panel.
&lt;a href=&#34;https://dl.dropboxusercontent.com/u/5295912/status.html&#34;&gt;Live
version here&lt;/a&gt; courtesy of Dropbox’s Public folder. No regrets.)&lt;/p&gt;
&lt;h3 id=&#34;day-3-excursions&#34;&gt;
Day 3 (Excursions)
&lt;/h3&gt;
&lt;p&gt;Morning routine snipped. We come to the middle school again to eat
breakfast and gather; the contestants will be taking their tests here
(accompanied by one bottle of “Buff” energy drink each) while the rest
of us will be going on an excursion. Before this happens, though, two
Taiwanese contestants ask me and Hsin-Po some math problems. There’s a
geometry problem, which I fail to solve:&lt;/p&gt;
&lt;blockquote&gt;
(paraphrased) In triangle △ABC, ∠A is 40° and ∠B is 60°. The angle
bisector of ∠A meets BC at D; E is on AB such that ∠ADE is 30°. Find
∠DEC.
&lt;/blockquote&gt;
&lt;p&gt;Hsin-Po figures out that, once you guess (ROT13) gur bgure boivbhf
privna vf nyfb na natyr ovfrpgbe naq gurl vagrefrpg ng gur vapragre, lbh
pna cebir vg ol pbafgehpgvat gur vapragre naq fubjvat sebz gur tvira
natyr gung gurl vaqrrq pbvapvqr.&lt;a href=&#34;#fn1&#34; class=&#34;footnote-ref&#34;
id=&#34;fnref1&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt; Then, there’s a
combinatorics problem in a book with a solution that they’re not sure
about:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>[CIMC 2015 Part 1] Rainy Days in July (and Other Months)</title>
      <link>//blog.vero.site/post/cimc-2015-part-1</link>
      <pubDate>Tue, 04 Aug 2015 13:48:45 +0800</pubDate>
      
      <guid>//blog.vero.site/post/cimc-2015-part-1</guid>
      <description>&lt;p&gt;We get up at 3:40 AM. By 4 AM we have left our house, speeding like a
bullet into the dark.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;(Ohai. Somehow it slipped my mind that I was ending my streak by
leaving the country for a competition that would likely be highly
bloggable, like my last two international olympiads, both of which led
to notable post sequences on this blog. (Admittedly, the first one was
never really completed…) My only excuse was that I was worried I might
not be able to access my blog from inside the Great Firewall, but I did
(via vpn.mit.edu) and even if I hadn’t, I could still have drafted posts
locally in Markdown as I usually do, so I don’t know what I was
thinking.)&lt;/p&gt;
&lt;p&gt;(Also: because, as I’ve said way too many times recently, I need to
do linear algebra homework, these posts aren’t going to be as complete
or as perfect as I’d like them to be. Although I’m probably just saying
this to persuade myself; I tend to include many of the boring parts as
well as the interesting parts of the trip, which maybe benefits my
future self at the expense of other readers. I probably need to get out
of this habit more if I want to blog for a wider audience, though. Oh
well.)&lt;/p&gt;
&lt;h3 id=&#34;backstory&#34;&gt;
Backstory
&lt;/h3&gt;
&lt;p&gt;The &lt;a href=&#34;http://www.imc-official.org/&#34;&gt;International Mathematics
Competition&lt;/a&gt; (IMC) is,
&lt;a href=&#34;http://tvtropes.org/pmwiki/pmwiki.php/Main/ExactlyWhatItSaysOnTheTin&#34;&gt;as
it says&lt;/a&gt;, an international mathematics competition. But I should add
that it is for elementary and middle-school students (in other words, I
am not competing, okay??). (edit: Also, one or two letters are often
prefixed to indicate the host country, for whatever reason. This year it
would be CIMC, C for China.) I am tagging along because I am a student
of Dr. Sun, one of the chief organizers, and have been slotted to give a
talk and possibly help with grading the papers and translating. My
father is coming to help arrange a side event, a
&lt;a href=&#34;http://dominosolver.com/&#34;&gt;domino puzzle game&lt;/a&gt; competition,
which he programmed the system for; and my mom and sister are also
coming to help with translation and other duties. Other people in our
group: Dr. Sun himself, his longtime assistant slash fellow teacher
Mr. Li (wow I’m sorry I forgot you while first writing this), my friend
and fellow math student Hsin-Po, who is an expert at making polyhedra
from origami or binder clips (and at Deemo); Chin-Ling, my father’s
student/employee who also programmed lots of the domino puzzle server
and possesses a professional camera; and, of course, all the elementary-
and middle-school contestants, as well as most of their parents.&lt;/p&gt;
&lt;p&gt;I don’t think I’ve ever given this amount of background exposition
about any event I’ve attended to my not-so-imaginary audience before. It
feels weird. Some part of me is worried about breaking these people’s
privacy by posting this, which makes a little bit of sense but not
enough for me to think that it’s actually a valid reason to avoid or
procrastinate blogging. I think it’s a rationalization.&lt;/p&gt;
&lt;p&gt;Here we go.&lt;/p&gt;
&lt;h3 id=&#34;day-1&#34;&gt;
Day 1
&lt;/h3&gt;
&lt;p&gt;The only interesting thing that happens at the airport is a short
loud argument in the queues for luggage check-in, perhaps partly fueled
by our high number of people and of heavy boxes (gifts for other
countries and raw materials for Hsin-Po’s polyhedra). I don’t know whose
fault it is.&lt;/p&gt;
&lt;p&gt;In case I fail to scale the firewall, I attempt to download Facebook
on my phone for one last look before boarding, but it fails during
installation twice and I give up.&lt;/p&gt;
&lt;p&gt;Our plane is not fancy enough to offer personal screens and
entertainment centers for everybody, but thankfully the ride lasts only
three hours, so this is tolerable. Instead, the plane plays the second
&lt;cite&gt;Divergence&lt;/cite&gt; movie on overhead screens, which I watch
half-heartedly. The plot setup seems interesting but the ending seems to
me to involve two Ass Pulls™, although since I haven’t been paying much
attention I am not confident if I just missed some foreshadowing or
character development. On the flight, I also read the proof of the
irrationality of powers of &lt;i&gt;e&lt;/i&gt; in &lt;cite&gt;Proofs from THE BOOK&lt;/cite&gt;
and leaf through the magazines.&lt;/p&gt;
&lt;p&gt;I don’t hear any good music on-board, except maybe “Space Oddity”,
which is a little freaky to be listening to while cruising at so may
kilometers in the sky. Perhaps because of this, I find myself singing
and humming “Space Oddity” unexpectedly often over the next few
days.&lt;/p&gt;
&lt;h3 id=&#34;arrival&#34;&gt;
Arrival
&lt;/h3&gt;
&lt;p&gt;The very first sign we see after alighting the plane consists
entirely of characters that are the same in Simplified and Traditional
Chinese — if I remember correctly, 「前有坡道，小心慢走」&lt;a href=&#34;#fn1&#34;
class=&#34;footnote-ref&#34; id=&#34;fnref1&#34; role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;.
The Changchun airport looks like any other airport, coolly blue-themed
with moving platforms. The restrooms have fancy bright purple soap. Even
though I consciously think about how I have suddenly arrived in a
country that places notable restrictions on freedom of speech and
Internet access, I don’t feel it. Eep, what an anticlimax.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;//blog.vero.site/img/gravel.jpg&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/gravel.jpg?w=652&#34; alt=&#34;[People dragging luggage boxes over gravelly ground outdoors.]&#34; width=&#34;652&#34; height=&#34;369&#34; class=&#34;aligncenter size-large wp-image-3267&#34; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>C-c-c-Combo Breaker!</title>
      <link>//blog.vero.site/post/combo</link>
      <pubDate>Mon, 27 Jul 2015 07:10:20 +0800</pubDate>
      
      <guid>//blog.vero.site/post/combo</guid>
      <description>&lt;p&gt;I made it!&lt;/p&gt;
&lt;p&gt;After a &lt;a href=&#34;//blog.vero.site/post/rekt&#34;&gt;misstep on the fourth
day&lt;/a&gt; I managed to post one post every day, completing the rest of the
&lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;streak&lt;/a&gt;! This post is scheduled
to go out around the time my plane takes off.&lt;/p&gt;
&lt;p&gt;I’m free!&lt;/p&gt;
&lt;p&gt;I’d insert a &lt;cite&gt;Frozen&lt;/cite&gt; gif here if I could find a good one,
but I don’t like any of the ones I found and besides, copyright is an
issue. So instead:&lt;/p&gt;
&lt;blockquote&gt;
&lt;figure&gt;
&lt;a href=&#34;//blog.vero.site/img/cliques.png&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/cliques.png&#34; alt=&#34;source: Wikimedia Commons, public domain&#34; width=&#34;585&#34; height=&#34;468&#34; class=&#34;size-full wp-image-3257&#34; /&gt;&lt;/a&gt;
&lt;figcaption&gt;
source:
&lt;a href=&#34;https://commons.wikimedia.org/wiki/File:VR_complex.svg&#34;&gt;Wikimedia
Commons&lt;/a&gt;, public domain
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;IMO2007.C6. In a mathematical competition some competitors are
friends. Friendship is always mutual. Call a group of competitors a
clique if each two of them are friends. (In particular, any group of
fewer than two competitiors is a clique.) The number of members of a
clique is called its size.&lt;/p&gt;
&lt;p&gt;Given that, in this competition, the largest size of a clique is
even, prove that the competitors can be arranged into two rooms such
that the largest size of a clique contained in one room is the same as
the largest size of a clique contained in the other room.&lt;/p&gt;
Author: Vasily Astakhov, Russia
&lt;/blockquote&gt;
&lt;p&gt;If you remember where I first posted this to break a combo, you have
an excellent memory and/or spend too much time stalking me. If you
remember the &lt;em&gt;context&lt;/em&gt; under which I posted this to break a
combo, you have a better memory than I do.&lt;/p&gt;
&lt;p&gt;Was my streak a success? On the bright side, I definitely generated
lots of posts, many of which were radical departures from my old
blogging habits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;//blog.vero.site/post/99&#34;&gt;card game documentation&lt;/a&gt;,
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;//blog.vero.site/post/nuclear&#34;&gt;weird short stories&lt;/a&gt; and
&lt;a href=&#34;//blog.vero.site/post/nuclear-ii&#34;&gt;sequels to weird short stories&lt;/a&gt;,
&lt;/li&gt;
&lt;li&gt;
an essay (liberally defined) with
&lt;a href=&#34;//blog.vero.site/post/quixotic-1&#34;&gt;two&lt;/a&gt;
&lt;a href=&#34;//blog.vero.site/post/quixotic-2&#34;&gt;parts&lt;/a&gt;,
&lt;/li&gt;
&lt;li&gt;
an essay with &lt;a href=&#34;//blog.vero.site/post/more-fiction-1&#34;&gt;two&lt;/a&gt;
&lt;a href=&#34;//blog.vero.site/post/more-fiction-2&#34;&gt;parts&lt;/a&gt; and a
&lt;a href=&#34;//blog.vero.site/post/more-fiction-2-5&#34;&gt;half&lt;/a&gt;,
&lt;/li&gt;
&lt;li&gt;
another &lt;a href=&#34;//blog.vero.site/post/college-emails&#34;&gt;bar graph&lt;/a&gt; that is
actually documented,
&lt;/li&gt;
&lt;li&gt;
a ridiculous &lt;a href=&#34;//blog.vero.site/post/phone&#34;&gt;literate Haskell
post&lt;/a&gt;,
&lt;/li&gt;
&lt;li&gt;
numerous &lt;a href=&#34;//blog.vero.site/post/1024&#34;&gt;facetious&lt;/a&gt;
&lt;a href=&#34;//blog.vero.site/post/zzz&#34;&gt;Paintbrush&lt;/a&gt;
&lt;a href=&#34;//blog.vero.site/post/double-post&#34;&gt;dragons&lt;/a&gt;,
&lt;/li&gt;
&lt;li&gt;
a &lt;a href=&#34;//blog.vero.site/post/signal&#34;&gt;post about a post on a side
blog&lt;/a&gt;,
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;//blog.vero.site/post/index-txt&#34;&gt;and&lt;/a&gt;,
&lt;a href=&#34;//blog.vero.site/post/897&#34;&gt;of&lt;/a&gt;
&lt;a href=&#34;//blog.vero.site/post/drop-in&#34;&gt;course&lt;/a&gt;,
&lt;a href=&#34;//blog.vero.site/post/a-list&#34;&gt;metric&lt;/a&gt;
&lt;a href=&#34;//blog.vero.site/post/sheep&#34;&gt;zarktons&lt;/a&gt;
&lt;a href=&#34;//blog.vero.site/post/2857&#34;&gt;of&lt;/a&gt;
&lt;a href=&#34;//blog.vero.site/post/numbers-bmp&#34;&gt;shameless&lt;/a&gt;
&lt;a href=&#34;//blog.vero.site/post/clicker&#34;&gt;filler&lt;/a&gt;.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I also had lots of fun conversations about my posts, such as:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>[warp]clicker.html</title>
      <link>//blog.vero.site/post/clicker</link>
      <pubDate>Sun, 26 Jul 2015 11:46:04 +0800</pubDate>
      
      <guid>//blog.vero.site/post/clicker</guid>
      <description>&lt;p&gt;Okay, just one more post for the
&lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;streak&lt;/a&gt; milking the stuff
uncovered in my old hard drive, and then it’s over, I promise. Here is a
&lt;a href=&#34;https://betaveros.github.io/clicker.html&#34;&gt;silly three-button
idle game&lt;/a&gt; I discovered, which I apparently made in 2010 when I was a
bored eighth-grader and the most recent jQuery version was 1.4.x.
Instead of enjoying a text wall, please enjoy trying to get 16,384
clicks in the non-warp version. (There’s no victory message or anything;
it’s just a nice round number that I reached while writing this post.
And yes, I know you can call JavaScript from your developer console, or
edit the source or DOM. That’s cheating.)&lt;/p&gt;
&lt;p&gt;And I realize this is short even for filler posts, so if you don’t
want to play an idle game, here is a remix of
&lt;a href=&#34;//blog.vero.site/post/numbers-bmp&#34;&gt;numbers.bmp&lt;/a&gt; to stare at and feel
inspired by. Or disgusted with, or indignant at. Your choice.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Old Tests (and a Mysterious New Student)</title>
      <link>//blog.vero.site/post/old-tests</link>
      <pubDate>Sat, 25 Jul 2015 23:57:41 +0800</pubDate>
      
      <guid>//blog.vero.site/post/old-tests</guid>
      <description>&lt;p&gt;(Short &lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;streak&lt;/a&gt; post. And for
the uninformed, I’m using
&lt;a href=&#34;https://en.wikipedia.org/wiki/Spivak_pronoun&#34;&gt;Spivak
pronouns&lt;/a&gt; for this post just because.)&lt;/p&gt;
&lt;p&gt;Generally, when people I don’t already know through math competitions
ask me or my parents about something like how to teach their intelligent
child to make em really good at math, or even English or whatever, I am
skeptical by default because there seem to be a lot of Taiwanese parents
who have alarmingly rigid and largely baseless expectations or
assumptions about what their children ought to be interested in and
excel at.&lt;/p&gt;
&lt;p&gt;You can lead a horse to water, and honestly I think you could find a
way to force it to drink if you really wanted to, but you can’t make it
enjoy the process of being force-fed. Um.
&lt;a href=&#34;https://english.stackexchange.com/questions/36489/eat-is-to-feed-as-drink-is-to-what&#34;&gt;Force-watered?
Force-hydrated?&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can teach your child math and English, and you could make em ace
all eir tests, but you probably can’t make em enjoy the test so much
that e decides to create more diabolical versions of these tests to give
to eir fictional characters in eir stories for fun!&lt;/p&gt;
&lt;p&gt;These are all &lt;strong&gt;&lt;em&gt;actual illustrations&lt;/em&gt;&lt;/strong&gt; from the
old stories I mentioned in
&lt;a href=&#34;https://betaveros.wordpress.com/2015/07/24/more-fiction-part-2-5/&#34;&gt;part
2.5 of “More Fiction”&lt;/a&gt;. Stories I wrote in 2004. As a
first-grader.&lt;/p&gt;
&lt;p&gt;This is kind of horrifying.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;//blog.vero.site/img/test6blurred.png&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/test6blurred.png?w=652&#34; alt=&#34;test6blurred&#34; width=&#34;652&#34; height=&#34;458&#34; class=&#34;aligncenter size-large wp-image-3231&#34; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>More Fiction (Part 2.5)</title>
      <link>//blog.vero.site/post/more-fiction-2-5</link>
      <pubDate>Fri, 24 Jul 2015 20:27:44 +0800</pubDate>
      
      <guid>//blog.vero.site/post/more-fiction-2-5</guid>
      <description>&lt;p&gt;This is not Part 3. It’s just two things I thought of tacking on to
&lt;a href=&#34;//blog.vero.site/post/more-fiction-2&#34;&gt;part 2&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;What can I say? Part 2s are easy blog post fodder; Part 2 appendixes
are even easier.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;One, there’s one other wall I run into often during those rare
attempts when I get motivated enough to try to write a story: naming
characters is hard. At least, it provides an excellent motivational
roadblock whenever I even consider committing a story to paper, a point
before I’ve actually written anything at which I think “maybe I should
give up and go on Facebook instead” and proceed to do so. Aggh. And I
think there’s more than one reason for this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
I have trouble coming up with names to some degree. Sure, it’s easy to
browse BabyNames.com and look for choices, but a lot of the names there
are really weird and contemplating them for every unimportant character
kind of rips me out of the immersed mindset.
&lt;/li&gt;
&lt;li&gt;
Reading great stories in English class and elsewhere may have gotten me
feeling like every name ought to be a deep meaningful allusion, or at
least pun fodder. I feel like I will regret it if I write a story and, a
few months and/or chapters down the road, realize I missed a better name
or the name I chose has some undesirable connotations in context or
provides an atmosphere-ruining coincidence.
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;But I think the real kicker is simply that some part of me is
terrified of the awkwardness of giving a character the same name as
anybody I know, because then they might read the story and wonder if the
character is somehow based on them. And too many of the names that I
consider common enough to not lure readers off into looking for hidden
meanings are used up that way. This is obviously worst if the character
is an antagonist. But it seems just as awkward if the character is a
protagonist in accord with everything I’ve written, i.e. a paper-thin
character blatantly created for escapist purposes. I am already kind of
terrified I might ever meet anybody with the same name as one of my
mentally established characters even though I haven’t actually written
anything about him. And there’s a well-established convention of
&lt;a href=&#34;http://tvtropes.org/pmwiki/pmwiki.php/Main/OneSteveLimit&#34;&gt;not
reusing a first name in a work&lt;/a&gt;, so this gets even harder with every
work; I’m just as worried, what if somebody thinks this character is
related to the other character in that story I wrote in second grade? Oh
no!!&lt;/p&gt;
&lt;p&gt;It’s like not reusing variable names in a programming language where
everything is in the same scope. Positively nightmarish.&lt;/p&gt;
And I actually discovered some evidence this is a thing in my past: I
found some stories I wrote in 2004. They are possibly the most extreme
exemplification of
&lt;a href=&#34;http://tvtropes.org/pmwiki/pmwiki.php/Main/WriteWhatYouKnow&#34;&gt;Write
What You Know&lt;/a&gt; imaginable: the main character, Michael, goes to
school and makes friends. That’s all.
&lt;figure&gt;
&lt;a href=&#34;//blog.vero.site/img/illustration.png&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/illustration.png&#34; alt=&#34;Illustration courtesy Brian2004&#34; width=&#34;540&#34; height=&#34;543&#34; class=&#34;size-full wp-image-3223&#34; /&gt;&lt;/a&gt;
&lt;figcaption&gt;
Illustration courtesy Brian&lt;sub&gt;2004&lt;/sub&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I kind of want to share these stories, but fast-forward a few years
and you’ll see that a classmate named Michael entered my grade and we
stayed in the same grade until we graduated.&lt;/p&gt;
&lt;p&gt;Hi, Michael. You’re probably not reading this, but the character I
created in 2004 is not in any way based on or inspired by you,
especially not this image. And unlike later in this post where I name a
character after myself, I’m not being sarcastic, really.&lt;/p&gt;
See, this is awkward.
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    
    <item>
      <title>Throwback Thursday Puzzles!</title>
      <link>//blog.vero.site/post/tbt-puzzles</link>
      <pubDate>Thu, 23 Jul 2015 23:39:44 +0800</pubDate>
      
      <guid>//blog.vero.site/post/tbt-puzzles</guid>
      <description>&lt;p&gt;Wow, there are so many cool things in my old folder. I could probably
create and schedule enough filler posts to make my
&lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;streak&lt;/a&gt; last through my week-long
trip and back. I guess I won’t, though, because I don’t want to dilute
my textwall-draft brand more than necessary and there are a few text
posts that I fully intend to post before leaving. Or at least one.
Although on second thought, it’s possible they might actually not be as
interesting as posts like this one about the adorable me from the past.
As Pablo Picasso once said, “Youth has no age.” (Yes, I totally just
went on BrainyQuote and searched for “youth”. Forgive me, please.) Oh
well.&lt;/p&gt;
&lt;p&gt;Today’s throwback theme is old puzzles! Particularly picture ones! In
reverse chronological order by last modified time, because I said so!
All the image puzzles are puzzlehunty in the sense that you’re supposed
to end up with a single word or short phrase as your final answer.&lt;/p&gt;
&lt;h3 id=&#34;p06pre2&#34;&gt;
&lt;code&gt;art/hidd3n/p06pre2.png&lt;/code&gt; (2010/10/31)
&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;//blog.vero.site/img/p06pre2.png&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/p06pre2.png&#34; alt=&#34;p06pre2&#34; width=&#34;640&#34; height=&#34;400&#34; class=&#34;aligncenter size-full wp-image-3210&#34; /&gt;&lt;/a&gt;
A straightforward one to start. I have no idea what’s with the filename,
though.&lt;/p&gt;
&lt;h3 id=&#34;purity2logic&#34;&gt;
&lt;code&gt;haxxor/purity2/logic.html&lt;/code&gt; (2010/10/10?)
&lt;/h3&gt;
&lt;p&gt;My file hierarchy is really weird. I don’t think this time stamp is
when I wrote the puzzle because it was part of a silly static site setup
I created (but never actually put anywhere), and I probably edited and
regenerated stuff like the breadcrumbs many times, but it’ll have to
do.&lt;/p&gt;
&lt;p&gt;This is also funny because the title of the HTML file is “Logic
Puzzles” and the description starts, “These puzzles were made when I was
really bored…”, but there’s only one puzzle.&lt;/p&gt;
&lt;p&gt;Well, it’s better than an under construction page, I guess.&lt;/p&gt;
&lt;p&gt;I’ll quote the entirety of the old instructions as I wrote them, even
though they’re really verbose, since it’s easy to scroll past them:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>numbers.bmp</title>
      <link>//blog.vero.site/post/numbers-bmp</link>
      <pubDate>Wed, 22 Jul 2015 14:06:09 +0800</pubDate>
      
      <guid>//blog.vero.site/post/numbers-bmp</guid>
      <description>&lt;p&gt;Mom dug up an old hard drive for me to find photos of my
elementary-school self participating in the same math competition I’m
presenting at in a week. I discovered a lot of other interesting old
stuff there. So today’s filler post image for the
&lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;streak&lt;/a&gt; is courtesy of
Brian&lt;sub&gt;2003/03/23&lt;/sub&gt;. I don’t think it means anything, but sorry,
I really really need to work on that presentation.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;//blog.vero.site/img/numbers.png&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/numbers.png?w=652&#34; alt=&#34;numbers&#34; width=&#34;652&#34; height=&#34;406&#34; class=&#34;aligncenter size-large wp-image-3201&#34; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Translation Party</title>
      <link>//blog.vero.site/post/translation-party</link>
      <pubDate>Tue, 21 Jul 2015 23:53:12 +0800</pubDate>
      
      <guid>//blog.vero.site/post/translation-party</guid>
      <description>&lt;p&gt;Just a short anecdote for the
&lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;streak&lt;/a&gt; today. Hmm, I guess this
developed beyond being just another filler post, which is good.&lt;/p&gt;
&lt;p&gt;In addition to preparing my presentation, the other job I have to do
for the math competition I’m attending in a week or so (not as a
participant, okay?) is translating various guests’ speeches between
English and Chinese.&lt;/p&gt;
&lt;p&gt;The speeches’ length and formulaicness really get on my nerves, but
then again my standards for speeches were skewed upward by Richard
Forster’s speeches during the
&lt;a href=&#34;//blog.vero.site/post/lightsabers&#34;&gt;opening&lt;/a&gt; and
&lt;a href=&#34;//blog.vero.site/post/xanthous&#34;&gt;closing&lt;/a&gt; ceremony of IOI 2014,
but on the gripping hand I don’t think it’s that hard to at least
&lt;em&gt;try&lt;/em&gt; not to be formulaic and I really can’t see any effort on
their part whatsoever. Off the top of my head, pretty much all the
speeches tend to go like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Welcome!
&lt;/li&gt;
&lt;li&gt;
Math is great!
&lt;/li&gt;
&lt;li&gt;
This competition is great!
&lt;/li&gt;
&lt;li&gt;
The city hosting this competition is great!
&lt;/li&gt;
&lt;li&gt;
The college hosting this competition is great!
&lt;/li&gt;
&lt;li&gt;
You contestants are great!
&lt;/li&gt;
&lt;li&gt;
Good luck!
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Except each bullet point is a paragraph that lasts a minute.&lt;/p&gt;
&lt;p&gt;(Ninja edit: Which is not to say they didn’t put any effort into
their speeches at all, but that much of the effort seem misguided to me.
I don’t see how anybody who has been in the audience for one of these
speeches can overlook the same flaws in their own. Unless it’s like, at
some point in the natural life cycle of the human brain, people
spontaneously start enjoying these safe and repetitive speech topics
instead of some earnest and maybe lighthearted advice and anecdotes and
jokes? Like how people somehow start enjoying spicy stuff, or the bitter
flavor of beer and wine, or writing teenage-angsty ranty posts
complaining to nobody in particular like this one? Tough questions.)&lt;/p&gt;
&lt;p&gt;Anyway. My mom actually does most of the translation but I am the
grammar stickler post-processor and we work together on the hard parts.
The second hardest things to translate are idioms. The hardest things to
translate are quotes. It turns out that lots of people find translated
quotes to Chinese and it can be incredibly difficult to reconstruct
their English versions. Here is the quote that today’s story is about,
which we were tasked with providing the English translation (or
original) for and which the speech attributed to 克莱因 (trad.:
克萊因).&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A*</title>
      <link>//blog.vero.site/post/a-star</link>
      <pubDate>Mon, 20 Jul 2015 23:22:35 +0800</pubDate>
      
      <guid>//blog.vero.site/post/a-star</guid>
      <description>Nope, still no meaningful post today. Instead here is a pretty diagram of the A* search algorithm (A-star in English, for my search crawler overlords). At least, I hope it is; I spent more time fiddling with the pretty colors than making sure the algorithm I implemented was actually A*. It looks right, though? In the background, red component measures traversed distance from start, (inverted) green component measures difference between the traversed distance plus heuristic distance and the theoretically optimal heuristic distance from the start, blue component measures heuristic distance to goal.</description>
    </item>
    
    <item>
      <title>Phone II</title>
      <link>//blog.vero.site/post/phone-ii</link>
      <pubDate>Sun, 19 Jul 2015 23:59:49 +0800</pubDate>
      
      <guid>//blog.vero.site/post/phone-ii</guid>
      <description>Here are two screenshots of the Android 3x3 grid lock we dealt with in the phone post.
Part of the reason I don’t have a real post today and am instead writing filler for the streak is that I wanted to include this 3x3 lock in the programming presentation I’ve been indirectly complaining about in the last few posts, and I couldn’t find any nicely licensed screenshots to illustrate it, so I made these screenshots myself, and then I spent somewhat more than an hour researching copyright law and listening to a talk about it before posting them.</description>
    </item>
    
    <item>
      <title>MIT Course Number Mnemonics</title>
      <link>//blog.vero.site/post/mit-mnemonics</link>
      <pubDate>Sat, 18 Jul 2015 23:45:41 +0800</pubDate>
      
      <guid>//blog.vero.site/post/mit-mnemonics</guid>
      <description>&lt;p&gt;When I first realized it might be helpful to start trying to remember
the correspondence between MIT courses and their numbers, I expected a
list of mnemonics for this correspondence would be one of those Things
That Should Exist On the Internet. I’m pretty surprised it doesn’t. I
mean, MIT has, what,
&lt;a href=&#34;http://web.mit.edu/facts/alum-association.html&#34;&gt;at least
100,000 alumni&lt;/a&gt;; as far as I know, nearly everybody who goes there
speaks the number correspondence fluently, so they have to learn it; and
the science of mnemonics has been with us since the ancient Greeks and
people who understand its usefulness can’t be uncommon, especially not
in such a prestigious institute of higher education.&lt;/p&gt;
&lt;p&gt;What gives?&lt;/p&gt;
&lt;p&gt;I’m not sure. Maybe it’s just that nobody has posted their mnemonic
set on the Internet out of embarrassment? My mnemonics are pretty bad
too, but hey,
&lt;a href=&#34;https://meta.wikimedia.org/wiki/Cunningham%27s_Law&#34;&gt;Cunningham’s
Law&lt;/a&gt; — if you’re reading, feel free to add better ones in the
comments, or to criticize my horribly unenlightened and stereotypical
characterizations of your courses, to make this thing better. Or maybe
it’s out of concern that nobody else will find it useful? I get that
feeling but my &lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;streak&lt;/a&gt; compels me
to ignore it now, as it has for the last dozen posts or so. Or maybe
they just didn’t optimize for search engine findability, so I can’t find
it? I hope this post fixes that.&lt;/p&gt;
&lt;p&gt;Actually, I guess the most likely reason is that maybe most people
don’t actually have &lt;em&gt;all&lt;/em&gt; the course numbers memorized with
perfect recall, only the handful of most common ones they and their
friends are in, and it’s perfectly fine to ask for clarification when an
unknown number comes up in conversation, so nobody ever feels like they
need to bother with mnemonics for every single course. Feels sensible to
me.&lt;/p&gt;
&lt;p&gt;But anyway, I’m not most people.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;The most comprehensive resource of courses and numbers, including
their history, appears to have once been at
&lt;code&gt;http://alumweb.mit.edu/clubs/sandiego/contents_courses.shtml&lt;/code&gt;.
Many, many links point there. Unfortunately, it is dead and I cannot
find its new home, if it has one. Fortunately, there is an
&lt;a href=&#34;https://archive.is/xViRP&#34;&gt;archived version on archive.is&lt;/a&gt;;
on the other hand, I am not sure whether any updates have occurred since
it was archived. A more recent version with course populations from 2005
is
&lt;a href=&#34;http://web.mit.edu/mollieb/www/blog/MIT%20course%20numbers.html&#34;&gt;this
chart&lt;/a&gt; linked from the MIT Admissions blog post
&lt;a href=&#34;http://mitadmissions.org/blogs/entry/numbers_are_names_too&#34;&gt;Numbers
are names too&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Variance</title>
      <link>//blog.vero.site/post/variance</link>
      <pubDate>Thu, 16 Jul 2015 23:59:25 +0800</pubDate>
      
      <guid>//blog.vero.site/post/variance</guid>
      <description>It’s olympiad season. Taiwan placed 18th in the IMO rankings1. Next day there are news stories about how it’s our “third worst performance in history”, and commenters drawing casual arrows from changes in Taiwan’s standardized tests and curriculum to this result, and the Ministry of Education saying they’d review their procedures or something.
What.
Did you forget our performance last year? Do you think our olympiad training system is completely overhauled on an annual basis, or has even a tangential relationship with the overall education system?</description>
    </item>
    
    <item>
      <title>Phone</title>
      <link>//blog.vero.site/post/phone</link>
      <pubDate>Wed, 15 Jul 2015 23:58:02 +0800</pubDate>
      
      <guid>//blog.vero.site/post/phone</guid>
      <description>&lt;p&gt;&lt;strong&gt;tl;dr: anybody want to add me on Line or tell/remind me about
other phone chat apps? betaveros as always.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Wow, talk about uninspired post titles.&lt;/p&gt;
&lt;p&gt;I got a new phone today. Or, well, it’s second-hand, actually. I try
to make electronics last a long time, but I think this was justified
given the state of my last phone’s screen:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;//blog.vero.site/img/screen.jpg&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/screen.jpg?w=269&#34; alt=&#34;old phone screen, with a visibly malfunctioning black patch&#34; width=&#34;269&#34; height=&#34;300&#34; class=&#34;aligncenter size-medium wp-image-3142&#34; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Besides, I’m going off to college and all. Anyway, the phone is
pretty cool. It’s a slick shade of red, it came with a cover and
everything, and it has one of those fancy 3x3-grid locks. How secure are
those again?&lt;/p&gt;
&lt;p&gt;Well, we could just
&lt;a href=&#34;https://stackoverflow.com/questions/6979524/android-lock-password-combinations&#34;&gt;find
the answer on StackOverflow&lt;/a&gt;, but that’s boring.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Chi Banner</title>
      <link>//blog.vero.site/post/chi-banner</link>
      <pubDate>Tue, 14 Jul 2015 21:21:36 +0800</pubDate>
      
      <guid>//blog.vero.site/post/chi-banner</guid>
      <description>Okay, I think I’m figuring this out. When I make a filler post for the streak, it should be an unabashed filler post, so I can accumulate some of the blogging time I find each day to work on a serious post (and for doing the other important stuff I should be doing!) instead of wasting it right away.
Life. I’m programming something for Dad involving a parser using Jison, and one of the tasks involved stuffing a custom lexer into the parser.</description>
    </item>
    
    <item>
      <title>US$2,857</title>
      <link>//blog.vero.site/post/2857</link>
      <pubDate>Mon, 13 Jul 2015 23:20:09 +0800</pubDate>
      
      <guid>//blog.vero.site/post/2857</guid>
      <description>&lt;p&gt;= within 15 cents of $20,000/7&lt;br /&gt; = NT$88,661, by Google’s current
exchange rate&lt;/p&gt;
&lt;p&gt;= 739 hours of Taiwan’s hourly minimum wage or 4.43 months of
Taiwan’s monthly minimum wage&lt;br /&gt; = 317 hours of Massachusetts’s
minimum wage (7.94 weeks or 1.85 months assuming a 40-hour work
week)&lt;br /&gt; = 1.2~1.7 weeks of
&lt;a href=&#34;https://twitter.com/tzhongg/status/536565474041937921/photo/1&#34;&gt;a
list of high tech internship salaries&lt;/a&gt; as
&lt;a href=&#34;http://www.slate.com/blogs/moneybox/2014/11/24/tech_internship_salaries_they_will_destroy_your_sense_of_self_worth.html&#34;&gt;featured
on Slate&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;= 2,955 plates of Sushi Express&lt;br /&gt; = 1,478 cheap boxed lunches (at
NT$60 each), which would last one person 1.35 years at 3 per day&lt;br /&gt; =
1,122 &lt;a href=&#34;http://www.economist.com/content/big-mac-index/&#34;&gt;Big
Macs&lt;/a&gt;, price in Taiwan, or 596 Big Macs, average price in U.S.
(January 2015)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Self vs. Other</title>
      <link>//blog.vero.site/post/self-vs-other</link>
      <pubDate>Sun, 12 Jul 2015 23:59:54 +0800</pubDate>
      
      <guid>//blog.vero.site/post/self-vs-other</guid>
      <description>&lt;p&gt;My mom says I blog too much about myself. I am completely guilty of
that and this post is mostly not an exception. Sorry.&lt;/p&gt;
&lt;p&gt;It’s not that I wouldn’t like to write posts about others and for
others. But I know more about myself so obviously there’s
&lt;a href=&#34;http://tvtropes.org/pmwiki/pmwiki.php/Main/WriteWhoYouKnow&#34;&gt;more
I can write about myself&lt;/a&gt;. It’s kind of a habit, and it’s been a very
personally helpful habit. I discover lots of things when I write
introspectively. But I’m a very weird person and a lot of the insightful
things I discover when doing this are things I doubt I can generalize to
other people. I tried getting a lot of my friends to join HabitRPG when
I discovered it, but it was nowhere as effective on them as it was on
me.&lt;/p&gt;
&lt;p&gt;What else could I blog about? What else do people blog about?&lt;/p&gt;
&lt;p&gt;World-event-inspired topics?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Sheep</title>
      <link>//blog.vero.site/post/sheep</link>
      <pubDate>Sat, 11 Jul 2015 22:42:57 +0800</pubDate>
      
      <guid>//blog.vero.site/post/sheep</guid>
      <description>Ok I give up I don’t have any material and don’t feel like preparing any because the influx of IMO problems, including the shortlist, is too fascinating. Instead, here is a joke quoted verbatim from TVTropes (CC-NC-SA).
An American anthropologist has been studying a tribe in Africa by living with them for a year. One day, the chief called him into the chief’s hut. The chief sighed. “Well, my friend, it seems that we must ask you to leave.</description>
    </item>
    
    <item>
      <title>Nuclear II</title>
      <link>//blog.vero.site/post/nuclear-ii</link>
      <pubDate>Fri, 10 Jul 2015 11:40:47 +0800</pubDate>
      
      <guid>//blog.vero.site/post/nuclear-ii</guid>
      <description>&lt;p&gt;(&lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;streak&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;This is not any better than the
&lt;a href=&#34;//blog.vero.site/post/nuclear&#34;&gt;first installment&lt;/a&gt;, but I need to
post. And then, you know, do homework and presentations and stuff.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Dr. Carver had just managed to drill past Dr. Perkins’s cranium when
she heard the door behind her creak open.&lt;/p&gt;
&lt;p&gt;“Ha! You walked right into my trap!”&lt;/p&gt;
&lt;p&gt;She turned around. Dr. Perkins was standing in the doorway.&lt;/p&gt;
&lt;p&gt;She looked down. Yes, they were both Dr. Perkins, she’d know that
pair of glasses and spiky hair anywhere.&lt;/p&gt;
&lt;p&gt;She looked up. Well, the guy in the doorway was wearing a set of
black robes outside his white lab coat, but other than that, they really
looked completely identical.&lt;/p&gt;
&lt;p&gt;“What?”&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Time Management</title>
      <link>//blog.vero.site/post/management</link>
      <pubDate>Thu, 09 Jul 2015 23:35:50 +0800</pubDate>
      
      <guid>//blog.vero.site/post/management</guid>
      <description>&lt;p&gt;All through high school I had really high standards for myself. Not
the grades, mind you (I admit, humblebrag, my grades were always
uncomfortably high, probably as an expected but still sad byproduct of
this process (yes, I’m actually complaining about grades being too high.
I don’t want my report card to have lots of Bs or Cs, but I really
didn’t need to pour enough resources into schoolwork that I graduated as
valedictorian, when there were so many other personally and socially
meaningful things I could be dedicating effort into creating — but
that’s a subject for another post (humblebrags all the way down.
Somebody get some internet pitchforks and poke some sense into me))),
but simply how I managed my time for doing homework.&lt;/p&gt;
&lt;p&gt;In my opinion: not very well. I always spent too much time surfing
the internet and doing things less urgent than homework, then ended up
sleeping at midnight or one o’clock or whenever often to finish what I
should have done earlier.&lt;/p&gt;
&lt;p&gt;And yet, compared to many of my friends (definitely not all, though),
that’s not late at all and the amount of buffer time I had between
finishing work and having it due was positively luxurious. But then, I
suppose, I didn’t have the same amount of math homework. But to counter
my excuse, I had additional responsibilities such as practicing olympiad
problems and preparing weekend presentations and translating the school
newsletter. So I don’t actually know if my workload was significantly
lighter than average or not, ergo I don’t know whether my time
management skills were significantly better than average or not. It
seriously doesn’t feel like they would be.&lt;/p&gt;
&lt;p&gt;And allegedly, even when I’m procrastinating, it’s more productive
than my friends’ procrastination, maybe even
&lt;a href=&#34;http://paulgraham.com/procrastination.html&#34;&gt;Paul Graham’s good
type of procrastination&lt;/a&gt;. Often when I gripe about how much my former
self procrastinated they will ask me what I’ve been doing and, after
hearing the answer, tell me this. What have I done to put off homework?
Oh, I did some olympiad math problems, committed to my GitHub projects,
read a bunch of programming blogs, organized my old chemistry notes from
two years ago, and surfed the Stanford Encyclopedia of Philosophy. Yeah.
Total waste of time. Meanwhile certain friends surf 9GAG whenever they
get the chance. (Which is not to say that I don’t procrastinate in
obviously unproductive ways sometimes — I surf reddit, YouTube, and
TVTropes of course. Sometimes I even just read my own blog or dig
through old folders in my computer. I’m weird. But anyway.)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Bilingualism II</title>
      <link>//blog.vero.site/post/bilingualism-ii</link>
      <pubDate>Wed, 08 Jul 2015 23:16:46 +0800</pubDate>
      
      <guid>//blog.vero.site/post/bilingualism-ii</guid>
      <description>&lt;p&gt;我本來還想把這一篇用英文跟中文各打一次來實際比較看看，但這已經被困在草稿匣夠久了。一直做重複、吹毛求疵、沒有效率的修改本來就是我寫心情文時的弊病，如果再要求修改時要保持兩種語言版本的同步的話，大概寫到天荒地老都寫不完。（如果讀者沒有讀過我最近亂發的文章，故事都是這樣的：我覺得我在草稿匣累積了太多寫一半的文章，所以在畢業後，我&lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;在六月十一號決定從那天開始每天發文，直到我出國&lt;/a&gt;，目的是強迫自己把那些草稿寫完，中間還亂發很多其他我本來大概不會寫下來的東西。其實還滿有成就感的。另外，如果你的中文沒有很爛的話，如果你在任何地方認為我寫的中文不流暢或是可以寫得更好，請毫不留情的留言批評。這也是一件我發現我在寫中文方面很缺乏的經驗，我會很感謝。當然，根據以往經驗，懇求讀者留言沒什麼機會成功。）&lt;/p&gt;
&lt;p&gt;If you came to this blog or this post hoping to read English, sorry
not sorry. It’s only fair, really, given how many people on Facebook
can’t read the massive English textwall posts I’ve spammed them with for
so long.&lt;/p&gt;
&lt;p&gt;常常有人訝異我的英文這麼好。有時候這些人還會問我怎麼學的－－碰到這種問題我都不知道要怎麼回答。喔，很簡單啊，只要選擇在一個主要說英文的國家出生，然後跟一群從國外回來的同學一起讀有80%的課是用英文上的學校連續讀十二年就好了。&lt;/p&gt;
&lt;p&gt;偶爾也有人知道我是雙語部的或在不同的情況下認識我，反而會覺得我的中文比他們預期的好，例如我的駕訓班教練。其實我在雙語部還是上了十二年的國文課，進度理論上跟其他學校一樣（「理論上」三個字要強調），我也跟身旁很多親戚朋友用中文溝通了更久。比奧林匹亞競賽的經驗應該也讓我認識的上普通國語教學學校的學生，比其他雙語部同學認識的多。所以這應該也不奇怪吧。&lt;/p&gt;
&lt;p&gt;但是。其實我對這兩個語言的精熟度其實還是差很多。日常對話沒問題，不過我對英文細枝末節的部分瞭解的比中文多太多太多了。家裡有不止一本「常見英語錯誤」類的書，我小時候會當小說讀－－我是一個很奇怪的人。在學校課程中，我編輯自己或他人的英文文章是一天到晚的事情，什麼奇怪的句子跟構造都碰過、想過、修理過。還有些時候，我會很自然的寫出一個英文單字，然後發現我不知道為什麼自己會知道這個單字的意思，但就是有一種感覺告訴我，對，subsist的意思就是「存活於只有最基本的需求被滿足的情況」。跟中文比較：有時候，直覺也會告訴我有某一個成語是可以用的，但我只能清楚想到這個成語的兩、三個字。聽起來很「對」，不過我就是想不到第四個字是什麼，或是怕前三個字換成錯別字，再加上懷疑整個成語意思根本不是我模糊腦袋裡現在浮現的，因為我認得這些字字面上的意思，但無法說服自己為什麼它們合在一起可以解釋成這種意思，最後只好放棄，用國小白話文的措詞就好了。&lt;/p&gt;
&lt;blockquote&gt;
「總覺得，我在用任何偏離國小程度的白話文的詞彙的時候都是假裝的。」
&lt;/blockquote&gt;
&lt;p&gt;我在舊一點的草稿寫出了這個句子，不過那一串「的」字讓我覺得怪怪的，現在想想，沒有人跟我討論過寫出這種或其他奇怪的句子時應該怎麼辦。哪一些「的」可以省略？有辦法把句子重寫（recast）避開嗎？還是不管它，我覺得它聽起來很奇怪純粹是錯覺，多讀一點中文就會發現根本沒什麼大不了的？&lt;/p&gt;
&lt;p&gt;使用兩種語言的方法也差很多。看看這個部落格就知道了。我相信我在學校雙語部外的大部分台灣朋友不會試著去理解我關於自己長篇大論的英文作文，但長篇大論的文章還是我最認真表達自己的地方。反觀我的中文短文，都通常是那種搞笑、釣讚、裝弱的文。（不，我真的很弱。）我不時會發現自己在網上逛到一個陌生人的心情文，看得津津有味。我們之間的關係頂多是朋友的朋友的朋友，我只知道我跟他應該都喜歡數學這個共同點罷了，但因為語言，我在那些瞬間覺得自己瞭解他勝於瞭解幾乎所有在我身邊講中文的朋友。我自己怎麼看這件事都覺得不合理，有點慚愧。&lt;/p&gt;
&lt;p&gt;我回去讀了&lt;a href=&#34;//blog.vero.site/post/bilingualism&#34;&gt;我第一次寫的關於雙語的文章&lt;/a&gt;，可能有一點過火：後來證實，在我的朋友中似乎真的有會純粹為了抒發感情而寫七言律詩的人。而且，我講中文的朋友圈裡，文學類佔的比例本來就應該比他們在整個社會裡佔的比例少很多。在學校跟在生活裡，吸收英文多於中文（而且數學多於英文）是我做的選擇，只是我自己不知道選擇的中介點好不好罷了。是否，我花在跟講中文的親戚朋友互動的力氣不夠？&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A List</title>
      <link>//blog.vero.site/post/a-list</link>
      <pubDate>Tue, 07 Jul 2015 20:56:53 +0800</pubDate>
      
      <guid>//blog.vero.site/post/a-list</guid>
      <description>(streak)
≥1 of you should know what is being referred to.
Oh yeah, I love being first. Of course the approximate price is that I have to expose the world to the innocent naïveté of my fourth-grade self. So far nobody mean has ventured there yet, but who knows. Darn, two years. Darn, Cards Against Humanity. I need more of that in my life. I don’t know what else is happening but music is good.</description>
    </item>
    
    <item>
      <title>Drop-In Filler</title>
      <link>//blog.vero.site/post/drop-in</link>
      <pubDate>Mon, 06 Jul 2015 21:50:05 +0800</pubDate>
      
      <guid>//blog.vero.site/post/drop-in</guid>
      <description>&lt;p&gt;(&lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;streak&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;I’ll probably be making filler posts for a while until I make decent
progress on linear algebra and programming work, including another
presentation.&lt;/p&gt;
&lt;p&gt;Let’s listen to some more music.&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/fgtwncI3RuM&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>(8,9,7)</title>
      <link>//blog.vero.site/post/897</link>
      <pubDate>Sun, 05 Jul 2015 10:09:29 +0800</pubDate>
      
      <guid>//blog.vero.site/post/897</guid>
      <description>&lt;p&gt;(&lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;streak&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;I always tell myself, okay, I will actually just draw something
facetiously and get it over with, nobody comes to this blog to admire my
GIMP mouse doodles, but then perfectionist tendencies kick in and I get
&lt;a href=&#34;//blog.vero.site/post/1024&#34;&gt;car&lt;/a&gt;ried away and it ends up
taking more than an hour or so.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;//blog.vero.site/img/linear.png&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/linear.png?w=652&#34; alt=&#34;linear&#34; width=&#34;652&#34; height=&#34;489&#34; class=&#34;aligncenter size-large wp-image-3074&#34; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>More Fiction (Part 2)</title>
      <link>//blog.vero.site/post/more-fiction-2</link>
      <pubDate>Sat, 04 Jul 2015 23:47:49 +0800</pubDate>
      
      <guid>//blog.vero.site/post/more-fiction-2</guid>
      <description>&lt;p&gt;&lt;a href=&#34;//blog.vero.site/post/more-fiction-1&#34;&gt;Part 1 was here&lt;/a&gt;. This is
still part of the &lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;daily posting
streak I have openly committed to&lt;/a&gt; and standard disclaimers still
apply. Just as in &lt;a href=&#34;//blog.vero.site/post/fiction&#34;&gt;my original
post&lt;/a&gt;, back to the flip side — let’s see what I have to do to
&lt;em&gt;write&lt;/em&gt; fiction to my own satisfaction. And this time I have a
guide: the list I made in the first part of this post. Could I create
fiction I would enjoy reading?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1: I enjoy calling things before they happen…&lt;/p&gt;
2: …I also enjoy the Reveal for questions when the author has done
something clever I didn’t catch…
&lt;/blockquote&gt;
&lt;p&gt;Well, obviously, I can’t predict things in my own plot. But I can
develop riddles in the plot, set up expectations and drop subtle clues
and use Chekhov’s Tropes. Can I?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Cognitive Asymptotics</title>
      <link>//blog.vero.site/post/cognitive-asymptotics</link>
      <pubDate>Fri, 03 Jul 2015 23:08:25 +0800</pubDate>
      
      <guid>//blog.vero.site/post/cognitive-asymptotics</guid>
      <description>Short blog content for daily posting streak. Standard disclaimers apply. Not much to see here.
At some point in the past, because I was a bored teenager, I memorized this.
So now, in theory, I can tell you the capital of each state of the U.S. This is already a lame trick, but as I realized yesterday, it’s made even lamer by the fact that the data structure I chose only supports O(n) lookup.</description>
    </item>
    
    <item>
      <title>More Fiction (Part 1)</title>
      <link>//blog.vero.site/post/more-fiction-1</link>
      <pubDate>Thu, 02 Jul 2015 13:41:12 +0800</pubDate>
      
      <guid>//blog.vero.site/post/more-fiction-1</guid>
      <description>&lt;p&gt;I’m going to do it again! I’m going to break a post into parts to
milk it for the &lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;daily posting
streak&lt;/a&gt;. Desperate times call for desperate measures.&lt;/p&gt;
&lt;p&gt;This is mostly a self-analysis post though.&lt;/p&gt;
&lt;p&gt;WARNING:
&lt;a href=&#34;http://tvtropes.org/pmwiki/pmwiki.php/JustForFun/TVTropesWillRuinYourVocabulary&#34;&gt;This
post contains many, many TVTropes links.&lt;/a&gt; If you are like me and need
to be productive but are
&lt;a href=&#34;http://tvtropes.org/pmwiki/pmwiki.php/Main/TVTropesWillRuinYourLife&#34;&gt;liable
to being sucked into TVTropes&lt;/a&gt;, maybe you should find a way to commit
to not clicking on any of these links, or just stop reading. The
&lt;a href=&#34;https://xkcd.com/609/&#34;&gt;obligatory xkcd&lt;/a&gt; is kind of long and
also featured on one of the TVTropes links I’ve already made, so I’m not
going to embed it.&lt;/p&gt;
&lt;p&gt;I &lt;a href=&#34;//blog.vero.site/post/fiction&#34;&gt;blogged about this before in
2013&lt;/a&gt; — how I felt that the analysis trained into me by English class
was dulling my ability to appreciate and write the types of fiction I
really enjoyed. After thinking about it I realized the mismatch goes
deeper than that. Because the things I seek the most in fiction are
escapism and entertainment. I like simple fiction with obvious (though
maybe not
&lt;a href=&#34;http://tvtropes.org/pmwiki/pmwiki.php/Main/Anvilicious&#34;&gt;that
obvious&lt;/a&gt;)
&lt;a href=&#34;http://tvtropes.org/pmwiki/pmwiki.php/Main/AnAesop&#34;&gt;Aesops&lt;/a&gt;
and extreme economy of characters via making all the reveals being of
the form “X and Y are the same person” (which does not quite seem to be
a trope but may be an occurrence of
&lt;a href=&#34;http://tvtropes.org/pmwiki/pmwiki.php/Main/ConnectedAllAlong&#34;&gt;Connected
All Along&lt;/a&gt;, with the most famous subtrope being
&lt;a href=&#34;http://tvtropes.org/pmwiki/pmwiki.php/Main/LukeIAmYourFather&#34;&gt;Luke,
I Am Your Father&lt;/a&gt; (which is
&lt;a href=&#34;http://tvtropes.org/pmwiki/pmwiki.php/Main/BeamMeUpScotty&#34;&gt;a
misquote&lt;/a&gt;!), and is also one common
&lt;a href=&#34;http://tvtropes.org/pmwiki/pmwiki.php/Main/StockEpilepticTrees&#34;&gt;Stock
Epileptic Tree&lt;/a&gt;, so maybe this isn’t the best example), because not
only are such reveals fun, they make the plot simpler. What can I say,
it works.&lt;/p&gt;
&lt;p&gt;The qualities of being thought-provoking or heartwarming are only
bonuses for me; needless
&lt;a href=&#34;http://tvtropes.org/pmwiki/pmwiki.php/Main/JigsawPuzzlePlot&#34;&gt;complexity
in the number of characters or plots&lt;/a&gt; is a strict negative. Sorry, I
don’t want to spend effort trying to remember which person is which and
how a hundred different storylines relate to each other if they don’t
build to a convincing, cohesive, and &lt;em&gt;awesome&lt;/em&gt;
&lt;a href=&#34;http://tvtropes.org/pmwiki/pmwiki.php/Main/TheReveal&#34;&gt;Reveal&lt;/a&gt;,
and often not even then. And I like closure, so I feel pretty miserable
when writers
&lt;a href=&#34;http://tvtropes.org/pmwiki/pmwiki.php/Main/KudzuPlot&#34;&gt;resolve a
long-awaited plot point just to add a bunch more&lt;/a&gt;. Because of this I
am ambivalent about long book series; most of my favorite works of
fiction have come in long series but starting a new one always gives me
&lt;a href=&#34;http://tvtropes.org/pmwiki/pmwiki.php/Main/CommitmentAnxiety&#34;&gt;Commitment
Anxiety&lt;/a&gt;. Even when there’s closure, when I finish an immersive movie
or book I’m always left kind of disoriented, like I’ve just been lifted
out of a deep pool and have to readjust to breathing and seeing the
world from the perspective of a normal person on land. I like when I’m
reading good fiction, but I don’t like going through withdrawal
symptoms. If I want to read complicated open-ended events, I’ll go read
a history textbook, because at least the trivia might come up useful
some day; if I want tough problems I’ll just look at real life and think
about the possibility of college debt and having to find a job and
everything. (If it wasn’t obvious yet, this is why I hyperbolically hate
on &lt;cite&gt;Game of Thrones&lt;/cite&gt; often.) Even worse than all of this is
multiple paragraphs full of scenery and nothing else, unless of course
parts or maybe all of the scenery are
&lt;a href=&#34;http://tvtropes.org/pmwiki/pmwiki.php/Main/ChekhovsGun&#34;&gt;Chekhov’s
Guns&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Some part of me is embarrassed to admit this because I’ve been
educated for so long about deep literature that makes social commentary
or reveals an inner evil of humanity or whatever. But then again, I
don’t really need an education to appreciate the simple, fun fiction I
apparently do.&lt;/p&gt;
&lt;p&gt;So: there are a lot of famous classics or mainstream works I can’t
really enjoy too much, or in some cases, at all. And yet, sometimes a
random story or webcomic will appear and I just won’t be able to stop
reading. Why? I decided to try making a list of things I like in
fiction:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>DOUBLE POST</title>
      <link>//blog.vero.site/post/double-post</link>
      <pubDate>Wed, 01 Jul 2015 01:05:52 +0800</pubDate>
      
      <guid>//blog.vero.site/post/double-post</guid>
      <description>&lt;p&gt;20 posts so far in my &lt;a href=&#34;//blog.vero.site/post/commitment&#34; /&gt;daily
streak&lt;/a&gt;, ignoring the time I posted after midnight but including
exactly one of this post and the commitment-starting post. You pick
which one. The arithmetic works out either way. My last four posts have
been made with less than two minutes to spare before midnight, and my
last post in particular made it by just seven seconds. This is working
as intended in that I’ve knocked out nine drafts that I’m pretty sure
would have rotted in my draft folder for at least a few more months
otherwise, and I’ve also jotted down more spontaneous thoughts and
posted them instead of postponing them until they was too late to be
applicable. But this is also a problem because I can’t spend every day
procrastinating blogging and then frantically blogging before midnight —
I have some serious programming work to do, and a talk to prepare for,
and, of course, linear algebra homework!!!&lt;/p&gt;
&lt;p&gt;I’m kind of stuck here so&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Quixotic Reimagining of Standardized Tests (Part 2)</title>
      <link>//blog.vero.site/post/quixotic-2</link>
      <pubDate>Tue, 30 Jun 2015 23:59:53 +0800</pubDate>
      
      <guid>//blog.vero.site/post/quixotic-2</guid>
      <description>&lt;p&gt;If you remember, &lt;a href=&#34;//blog.vero.site/post/quixotic-1&#34;&gt;Part 1 was
here&lt;/a&gt; and my goal is to construct a theoretical system of
standardized tests that I would be satisfied by. Here’s what I’ve got.
As usual, because of the &lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;daily
posting streak I have openly committed to&lt;/a&gt;, standard disclaimers
apply.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;We’d have a first-tier test like the SAT, except this will be
&lt;em&gt;explicitly designed&lt;/em&gt; &lt;strong&gt;not&lt;/strong&gt; to distinguish among
the high performers.&lt;/p&gt;
&lt;p&gt;The goal of the test is to assess &lt;em&gt;basic&lt;/em&gt; proficiency in
reading, writing, and mathematics. Nothing else. Most good students,
those who have a shot at “good colleges” and know it, will be able to
ace this test with minimal effort and can spend their time studying for
other things or engaging in other pursuits. Students who don’t will
still have to study and it will probably be boring, but the hope is
that, especially if you’re motivated to get into a good college, there
won’t be much of that studying.&lt;/p&gt;
&lt;p&gt;For colleges, the intention of this test is to allow them to require
this test score from everybody without having to
&lt;a href=&#34;http://mitadmissions.org/blogs/entry/the-difficulty-with-data&#34;&gt;put
up disclaimers&lt;/a&gt; that go like,&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;there is really not a difference in our process between someone who
scores, say, a 740 on the SAT math, and someone who scores an 800 on the
SAT math. So why, as the commentor asks, is there such a difference in
the admit rate? &lt;em&gt;Aha! Clearly we DO prefer higher SAT
scores!&lt;/em&gt;&lt;/p&gt;
Well no, we don’t. What we prefer are things which &lt;em&gt;may coincide&lt;/em&gt;
with higher SAT scores…
&lt;/blockquote&gt;</description>
    </item>
    
    <item>
      <title>zzz</title>
      <link>//blog.vero.site/post/zzz</link>
      <pubDate>Sun, 28 Jun 2015 23:58:37 +0800</pubDate>
      
      <guid>//blog.vero.site/post/zzz</guid>
      <description>&lt;p&gt;(&lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;daily posting streak&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Facetious paintbrush dragon filler is best filler!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Coming Up with Blog Post Titles Is Hard</title>
      <link>//blog.vero.site/post/titles</link>
      <pubDate>Sat, 27 Jun 2015 23:59:03 +0800</pubDate>
      
      <guid>//blog.vero.site/post/titles</guid>
      <description>&lt;p&gt;(Disjointed blog content, posted as part of a
&lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;daily posting streak I have openly
committed to&lt;/a&gt;; standard disclaimers apply)&lt;/p&gt;
&lt;p&gt;Blogging is weird. I’m still nervous when I post stuff because I’m
concerned I’m wrong, and end up looking unprofessional or attracting a
bunch of Cueballs or something.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://imgs.xkcd.com/comics/duty_calls.png&#34; alt=&#34;xkcd&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Before I told people about this blog, during the time when 100% of
its traffic came from its coincidental placement in search results, I
didn’t have to worry about this. Now, I choose my words. Because some
Important Person™ might show up. Maybe even misinterpret something I
said and/or get furiously offended at a badly phrased joke.&lt;/p&gt;
&lt;p&gt;I also fear that I’ll update my beliefs quickly; maybe I’ll change my
mind or discover a much better argument for the other side really soon.
But the blog post would still be there, displaying my old belief, giving
the reader an inaccurate or misleading impression of myself. People
might even chat with me to argue about it, and then I have to &lt;em&gt;admit
I’m wrong oh no!&lt;/em&gt; It feels a lot better admitting I’m wrong on my
own turf, in my own time.&lt;/p&gt;
&lt;p&gt;This passage from &lt;cite&gt;Lord of the Flies&lt;/cite&gt; comes to mind (I had
hurriedly reread the book as ammunition for the AP Literature test and
noticed that my past self had marked it):&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Last Step</title>
      <link>//blog.vero.site/post/last-step</link>
      <pubDate>Fri, 26 Jun 2015 22:37:45 +0800</pubDate>
      
      <guid>//blog.vero.site/post/last-step</guid>
      <description>&lt;p&gt;It is more than slightly intimidating to go into the room through the
big sliding door and see everybody dressed up in full-on green surgical
garb with masks and hair nets. I don’t remember this part. Feeling a
little vulnerable, I change my clothes.&lt;/p&gt;
&lt;p&gt;I ask to listen to my iPod during the operation — I remember being
able to do this during the operation four long years ago when the
subject of today’s surgery was inserted into my shoulder — but the
nurse(?) says it’s best not to do that because they’ll be using
something electric to stop the blood. Instead I can listen to music
played from a computer in the operating room. Well, okay then.&lt;/p&gt;
&lt;p&gt;She escorts me through a bunch of twisty little passages to said
room. The computer is a dual-screen Windows XP. The nurse shows me that
there is a folder with random albums sorted by year. I poke through the
folders and create a playlist in Windows Media Player interleaving
&lt;cite&gt;1989&lt;/cite&gt; with a collection of classics from 五月天(Mayday).
Then I get on the operating table and wait. One of the nurses
compliments me on my choice of the latter band. A few tracks later, I
deduce that my interleaving had been to no avail because the media
player was set to shuffle. I spend a lot of time on the operating table
at first not doing anything except stare at the ceiling. There is a
white three-legged contraption there, with each hinged limb ending in a
large blue-rimmed circle of surgical lights. There are white sans-serif
letters inscribed on the rims, saying Chromophare® E 668 and
Berch-something. I think the “something” was a synonym for “say” or
“tell”. An after-the-fact search says it’s Berchtold. Typical human
memory.&lt;/p&gt;
&lt;p&gt;Later I am covered with lots of green cloth, which blocks out the
ceiling. Instead, I can only see a clipboard and random paper forms on
the left side of my peripheral vision, presumably propping up the cloth.
The clipboard is a highly translucent pink. The form on top is yellow
and has a box saying something about somebody paying; the form on bottom
is white with a black-and-pink-striped right border. The clipboard’s
clip also has random streaks of black marker across a white sticker.&lt;/p&gt;
&lt;p&gt;Music plays.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Quixotic Reimagining of Standardized Tests (Part 1)</title>
      <link>//blog.vero.site/post/quixotic-1</link>
      <pubDate>Thu, 25 Jun 2015 23:19:42 +0800</pubDate>
      
      <guid>//blog.vero.site/post/quixotic-1</guid>
      <description>&lt;p&gt;Life update: I got my driver’s license from the place where I learned
to drive. Then I drove home from there with my mom, and it was zarking
&lt;em&gt;terrifying&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Also, WordPress says it has protected my blog from 3&lt;sup&gt;8&lt;/sup&gt; spam
comments.&lt;/p&gt;
&lt;p&gt;Early in the morning tomorrow, I have a small surgical operation, so
I can’t sleep too late. (Well, it ended up being pretty late anyway.
Darn.) Therefore I think I’m going to do something unprecedented on this
blog for the &lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;daily posting
streak&lt;/a&gt;: I’m going to post an incomplete non-expository post.&lt;/p&gt;
&lt;p&gt;Yes, the only purpose of the title is to get initials that are four
consecutive letters of the alphabet..&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;One of the more argumentative post sequences on my blog involved
ranting against standardized tests.&lt;/p&gt;
&lt;p&gt;My very first stab was probably the
&lt;a href=&#34;//blog.vero.site/post/test&#34;&gt;silly satire&lt;/a&gt; directed at the
test everybody has to take that takes up two hours per day of an entire
week. Once college became a thing in my life, I wrote a
&lt;a href=&#34;//blog.vero.site/post/2400&#34;&gt;humblebrag rant&lt;/a&gt; after I took the
SAT and then a &lt;a href=&#34;//blog.vero.site/post/sat&#34;&gt;summary post&lt;/a&gt;
after I snagged this subject for an English class research paper and
finished said paper.&lt;/p&gt;
&lt;p&gt;It should be plenty clear that I am not ranting against this part of
the system because it’s disadvantageous to me.&lt;/p&gt;
&lt;p&gt;But it should also be said that I’ve read some convincing arguments
for using standardized tests &lt;em&gt;more&lt;/em&gt; in college admissions
(&lt;a href=&#34;http://www.newrepublic.com/article/119321/harvard-ivy-league-should-judge-students-standardized-tests&#34;&gt;Pinker&lt;/a&gt;,
then &lt;a href=&#34;http://www.scottaaronson.com/blog/?p=2003&#34;&gt;Aaronson&lt;/a&gt;).
Despite the imperfections of tests, they argue, the alternatives are
likely to be less fair and more easily gamed. The fear that selecting
only high test-scorers will yield a class of one-dimensional boring
thinkers is unfounded. And the idea that standardized tests “reduce a
human being to a number” may be uncomfortable for some, but it makes no
sense to prioritize avoiding a vague feeling of discomfort over trusting
reliable social science studies. Neither article, you will note,
advocates selecting &lt;em&gt;all&lt;/em&gt; of one’s college admits based on
highest score. Just a certain unspecified proportion, one that’s
probably a lot larger than it is today.&lt;/p&gt;
&lt;p&gt;And although I wish the first article linked its studies, I mostly
agree with their arguments. So this puts me in a tricky position. These
positions I’ve expressed seem hard to reconcile! So, after arguing about
all this with a friend who told me things like&lt;/p&gt;
&lt;blockquote&gt;
I think you fail to understand how anti-intellectual american society is
&lt;/blockquote&gt;
&lt;p&gt;(comments on this statement are also welcome) I think some
clarifications and updates on how I feel are in order.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>2^10 Words</title>
      <link>//blog.vero.site/post/1024</link>
      <pubDate>Tue, 23 Jun 2015 15:31:12 +0800</pubDate>
      
      <guid>//blog.vero.site/post/1024</guid>
      <description>&lt;p&gt;Vacuous content for &lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;posting
streak&lt;/a&gt;. Disclaimers apply, particularly “entirely unlike anything
previously on this blog”.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;//blog.vero.site/post/cars&#34;&gt;Like I said&lt;/a&gt;, studying.
Furiously.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Scary Cars</title>
      <link>//blog.vero.site/post/cars</link>
      <pubDate>Mon, 22 Jun 2015 22:27:14 +0800</pubDate>
      
      <guid>//blog.vero.site/post/cars</guid>
      <description>&lt;p&gt;(Part of a &lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;daily posting
streak&lt;/a&gt; but for once I don’t think I need to apply the disclaimers to
this. If you thought for even one second that the title was a
palindrome, I’ve succeeded. It’s not. I don’t have a good title. Okay,
maybe slap the disclaimers onto that part.)&lt;/p&gt;
&lt;p&gt;The first time I drove a car was on 5/18. I think. I might be off by
a day or so. Most of that day’s lesson was spent learning to go forward
and backward, accelerate and decelerate smoothly, and turn the wheel
without getting my hands tangled up. My coach made me count out loud how
many circles I was turning: 一圈半圈半圈一圈etc. It felt kind of stupid
when I was doing it, but I guess in the end it helped, and eventually
once I got the hang of turning the wheel, I just subvocalized it and my
coach also tacitly stopped bothering me about it.&lt;/p&gt;
&lt;p&gt;The first time I activated a turn signal light was probably on 5/26.
That was the day I wrote in my TIL log that, when you turn the steering
wheel back from the direction you were turning, the turn signal lights
turn off automatically. After you think about it, this is a pretty
sensible thing for turn signal lights to do, but when I first learned
this my mind was utterly blown. Wow!&lt;/p&gt;
&lt;p&gt;It’s like when you’re turning and you turn on the turn signal and it
starts clicking this steady beat to increase the dramatic tension, like
you’re doing a trick in a sports driving game and you have to quickly
hit the right sequence of buttons on the controller. Then you actually
turn the corner and then turn the wheel back, and as the wheel makes its
smooth sliding sound back to its upright position, the beat stops like a
resounding V7 to I resolution, as if to congratulate you on executing a
beautiful turn without crashing into another car or driving off the side
of the road.&lt;/p&gt;
&lt;p&gt;That’s what it feels like, anyway.&lt;/p&gt;
&lt;p&gt;On slow days, when you’re halfway through a turn but the drivers
ahead of you are waiting in a queue that stretches on forever on the
practice track, you can shift to the parking gear and use the turn
signal’s beat as a metronome and sing along to it too. I do.&lt;/p&gt;
&lt;p&gt;Or, of course, there’s the obligatory xkcd:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://imgs.xkcd.com/comics/turn_signals.png&#34; alt=&#34;xkcd&#34; /&gt;&lt;/p&gt;
&lt;hr /&gt;</description>
    </item>
    
    <item>
      <title>index.txt</title>
      <link>//blog.vero.site/post/index-txt</link>
      <pubDate>Sun, 21 Jun 2015 20:52:45 +0800</pubDate>
      
      <guid>//blog.vero.site/post/index-txt</guid>
      <description>&lt;p&gt;That’s the name of the text file that comes up in MacVim when I hit
&lt;kbd&gt;option-shift-Z&lt;/kbd&gt;. I use it for quick notes and editing stuff to
later be pasted into webpage forms, especially complicated JavaScripty
ones (e.g. Facebook, Twitter) that don’t play nice with Pentadactyl’s
popout editor functionality. The keyboard shortcut is set in
&lt;a href=&#34;http://qsapp.com/&#34;&gt;Quicksilver&lt;/a&gt;, although I was doing
something similar even on Windows with AutoHotKey.&lt;/p&gt;
&lt;p&gt;Over time I tend to hoard stuff here. Vim says it has more than
40,000 words and 300,000 characters. It contains seeds that never grow
into blog posts, planned tweets I later abandon out of embarrassment,
preemptively composed comments that never get posted, carefully written
text I’m paranoid might get deleted by the Internet, and more. For
today’s frivolous post (part of a
&lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;daily post streak&lt;/a&gt;, standard
disclaimers apply, etc.), here are some excerpted context-free
highlights, like a personal extended game of “What’s in your Ctrl+V
right now?”. The task of interpretation and/or guessing the context is
left up to the reader. Have fun! See you tomorrow!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>My DNSE Story</title>
      <link>//blog.vero.site/post/nuclear</link>
      <pubDate>Sat, 20 Jun 2015 17:12:13 +0800</pubDate>
      
      <guid>//blog.vero.site/post/nuclear</guid>
      <description>&lt;p&gt;(Something something something
&lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;daily posting streak&lt;/a&gt; something
something standard disclaimers. My schedule is tighter than usual
because IPSC is tonight and runs right up until midnight. Anyway, here’s
my logic with posting this: given how long I’ve committed to posting,
I’m probably going to have to dig deeply enough into my reserves to
include it, and to be authentic I can’t edit the story more anyway, so I
might as well do it now. (Also maybe this will pressure me into
finishing and posting one of the real short stories in my blog draft
folder, the same way I feel pressured to make a good puzzle after
posting a bad one.) I’m not even going to reread my story because I
don’t like cringing at my own writing without being able to edit it, but
hopefully that makes it bad enough to be entertaining. If you didn’t
know, this was for an MIT preorientation program application. Tell me if
it’s bad to repost application stuff. I hope not.)&lt;/p&gt;
&lt;p&gt;(Oops this introduction is about as long as the actual story
now.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;ol type=&#34;1&#34;&gt;
&lt;li&gt;Tell us a short story in the available space below. Your inspiration
is only one word: nuclear. Go!
&lt;/blockquote&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
    </item>
    
    <item>
      <title>8 Songs for 18 Years</title>
      <link>//blog.vero.site/post/8-songs</link>
      <pubDate>Fri, 19 Jun 2015 13:40:30 +0800</pubDate>
      
      <guid>//blog.vero.site/post/8-songs</guid>
      <description>&lt;p&gt;At some point I thought, hmm, maybe this blog would benefit from some
more sentimental, memory-capturing music/videos, like I chose for my
&lt;a href=&#34;//blog.vero.site/post/time&#34;&gt;end of 2013 post&lt;/a&gt; or my
&lt;a href=&#34;//blog.vero.site/post/rewind&#34;&gt;end of 2014 post&lt;/a&gt;. (Yeah, I link
to my own posts alarmingly often. I think that’s kind of weird. I don’t
know.)&lt;/p&gt;
&lt;p&gt;Obviously, because you’re reading this already, I decided to follow
through with that idea. There’s no particular significance for posting
this now — it’s not my birthday or anything, as the title might suggest;
it just has a nice ring to it — except of course that I’m starting to
get mildly desperate for content for my
&lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;daily posting streak exercise&lt;/a&gt;.
Standard disclaimers apply.&lt;/p&gt;
&lt;p&gt;This is mostly for my future self. I should note that, although I
like these songs, this is not a list of my absolute most favorite songs
ever. You can tell because there isn’t any Coldplay or fun. (the band.)
Instead, each of these songs was chosen to be meaningful to myself and
my life in at least two different ways that generally don’t overlap with
the other songs. This was difficult but I think I managed it — you know,
how constraint breeds creativity and everything? Also, they’re arranged
by approximate chronological order of impact. But it also means that
this list isn’t going to be that meaningful to anybody other than
myself.&lt;/p&gt;
&lt;p&gt;Also, I have a long list of class-of-2015 sentimental songs, which
I’m not including here because I think there are so many that they
deserve a separate post. Will I avoid procrastinating and feeling
awkward for long enough to make such a post? Stay tuned!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;shrugs&lt;/em&gt; Whatever, enjoy the music or stop reading now if you
want.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1: Simon &amp;amp; Garfunkel - Scarborough Fair/Canticle&lt;/strong&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/-Jj4s9I-53g&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Two Points on Photography</title>
      <link>//blog.vero.site/post/photography</link>
      <pubDate>Thu, 18 Jun 2015 23:55:52 +0800</pubDate>
      
      <guid>//blog.vero.site/post/photography</guid>
      <description>&lt;p&gt;(Uncohesive blog content, posted as part of a
&lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;daily posting streak I have openly
committed to&lt;/a&gt;; standard disclaimers apply. Whew, made it by a few
minutes…)&lt;/p&gt;
&lt;p&gt;This essay was partly inspired by but mostly orthogonal in purpose to
dzaefn’s essay on a similar subject,
&lt;a href=&#34;https://zyxyvy.wordpress.com/2012/04/09/humans-photographs-and-names/&#34;&gt;Humans,
Photographs, and Names&lt;/a&gt;. I agree with many of its points, although I
deviate in that I think it’s more important for my Facebook picture to
identify me than to inform about me (there’s the rest of Facebook, plus
my maybe half a dozen other sites, for doing so). Part of the problem
for me there, and part of the reason I hang on to my nine-letter random
handle from fourth grade, is that my names, first and last, are so
commonplace. Among the people who share them (according to DuckDuckGo)
are a New York Times tech writer, more than one computer science
professor, a photographer, a couple doctors, and some guy who did some
sort of graphics work for a short clip and two movies. This means that,
to somebody not already in my social circles trying to match me to my
account, my Facebook photo is my primary tool for disambiguating myself
from all these other people, and I don’t think there is anything that
could do that job quite as precisely as a picture of my actual face and
body.&lt;/p&gt;
&lt;p&gt;Still, I agree enough to be bothered by having a profile picture
suffering from “the whole extent of photographic informational void”. I
always planned to add some GIMP layers to the photo to indicate context
and content more precisely. Except I procrastinated and it got more and
more awkward to do this as time went by, since as far as I know, normal
people update their profile pictures only to reflect more recent events,
especially when they’re important. Like, you know, &lt;em&gt;graduating from
high school&lt;/em&gt;? So yes, I’ve been waiting to do this for an entire
year now.&lt;/p&gt;
&lt;p&gt;Eh, to hell with awkwardness. That’s the spirit of this daily-posting
exercise.&lt;/p&gt;
&lt;p&gt;(Fun fact: The code in what I’m about to set as my profile picture,
if I don’t procrastinate even more, is real IOI 2014 code I submitted
successfully (for
&lt;a href=&#34;https://betaveros.wordpress.com/2014/07/26/one-line/&#34;&gt;&lt;code&gt;rail&lt;/code&gt;,
as previously featured&lt;/a&gt;; the visually selected fragment was the key
fix for the final bug I fixed). Except I actually had to manually retype
my code printout to get the picture because I lacked the foresight
(sound familiar?) to save an electronic copy of my IOI submissions.)&lt;/p&gt;
&lt;p&gt;Also, I’m glad this isn’t a smiling photo because I feel like it’s
easier to appreciate happy posts from a person whom one associates with
a serious face, than serious posts from a person whom one associates
with a happy face, and I want both types of posts to impact people when
I post them. I could be overgeneralizing from my own feelings though. If
you are reading this and want to chat me feedback (as way more than one
of you has been doing), I’d welcome more data points on this issue.&lt;/p&gt;
&lt;p&gt;That’s not what I &lt;em&gt;really&lt;/em&gt; wanted to rant about in this post,
though.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Why do people take photographs?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Signal Boost</title>
      <link>//blog.vero.site/post/signal</link>
      <pubDate>Wed, 17 Jun 2015 21:59:18 +0800</pubDate>
      
      <guid>//blog.vero.site/post/signal</guid>
      <description>&lt;p&gt;(Short blog content, posted as part of a
&lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;daily posting streak I have openly
committed to&lt;/a&gt;; standard disclaimers apply)&lt;/p&gt;
&lt;p&gt;For the interested, I wrote a
&lt;a href=&#34;https://ibshgin.wordpress.com/2015/06/17/copyright/&#34;&gt;&lt;strong&gt;post
summarizing issues in copyright and patent law&lt;/strong&gt;&lt;/a&gt; on a new
blog for a school club. Actually, if you’re reading this post, you’re
probably already interested enough / bored enough to read that post, so
go read it. I think the videos are worth watching despite their length,
but I tried to summarize the key points in text, so decide how much to
read or watch depending on how much spare time you have.&lt;/p&gt;
&lt;p&gt;I don’t know if that blog will work out, but anyway WordPress tells
me I have 8500% more followers on this blog than the other one, even
though I have doubts about how many of those followers actually read
anything I post at all, so I thought I should link to that post here.
Also, by publicizing the blog, I get to shame my friends and fellow club
members into posting so that it doesn’t look so empty. Social media
expertise, you know?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Spontaneous Thoughts on Teaching</title>
      <link>//blog.vero.site/post/thoughts-teaching</link>
      <pubDate>Tue, 16 Jun 2015 23:04:09 +0800</pubDate>
      
      <guid>//blog.vero.site/post/thoughts-teaching</guid>
      <description>&lt;p&gt;(Disorganized and probably incomplete blog content, posted as part of
a &lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;daily posting streak I have openly
committed to&lt;/a&gt;; standard disclaimers apply)&lt;/p&gt;
&lt;p&gt;Okay, I’m actually going to try starting this blog post and posting
it in the same day.&lt;/p&gt;
&lt;p&gt;Story: As a sort of extracurricular activity slash side job, I taught
a math class after school once a week to six fifth-graders. It was
nominally geared towards some Australian Math Competitions, which my
math teacher administers in Taiwan, although in the end I don’t think I
achieved this end very well.&lt;/p&gt;
&lt;p&gt;After writing this brain dump I realized this was a pretty terrible
hackjob; I had absolutely no idea how to teach fifth-graders or how to
organize an after-school class, and I still mostly don’t. Parents did
most of the organizing, really. And provided refreshments.&lt;/p&gt;
&lt;p&gt;And I get paid for this????&lt;/p&gt;
&lt;p&gt;Bulleted list of other thoughts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Wow, I didn’t realize / remember how serious the gender gap
between elementary-school students is. I don’t mean the difference
between their performance (that might have been the case, but I don’t
think I felt a significant enough difference to conclude anything); I
mean how fifth-grade boys and fifth-grade girls don’t like to
mingle.&lt;/p&gt;
&lt;p&gt;When given the opportunity, they would pick team names like,
“[members of my gender] Rule, [members of other gender] Drool!” They
wouldn’t discuss with each other either. If prompted, they would
sometimes point out mistakes in each others’ work, though.&lt;/p&gt;
&lt;p&gt;I think this is a phase that people grow out of, and I probably did
it myself when I was young. I don’t remember when it ends, but in any
case, ugh, it’s so unproductive that boys and girls separate themselves
for any length of time at all.&lt;/p&gt;
&lt;p&gt;Sigh.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    
    <item>
      <title>rekt</title>
      <link>//blog.vero.site/post/rekt</link>
      <pubDate>Tue, 16 Jun 2015 00:36:06 +0800</pubDate>
      
      <guid>//blog.vero.site/post/rekt</guid>
      <description>&lt;p&gt;Darn, I only lasted four days. That’s pretty bad.&lt;/p&gt;
&lt;p&gt;And I broke like 90% of my HabitRPG streaks too. I was busy running
Monte-Carlo calculations to estimate the number of domino logic puzzles,
and forgot about midnight. Okay, before that I spent twice as much time
on &lt;a href=&#34;http://www1.flightrising.com/&#34;&gt;Flight Rising&lt;/a&gt; for
whatever reason. Bad life decisions.&lt;/p&gt;
&lt;p&gt;I guess that means today I have to post one now, before going to
sleep, and one later. Eh, time to harvest really weird mini-posts from
nowhere.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Mortality</title>
      <link>//blog.vero.site/post/mortality</link>
      <pubDate>Sun, 14 Jun 2015 21:00:51 +0800</pubDate>
      
      <guid>//blog.vero.site/post/mortality</guid>
      <description>&lt;p&gt;(Faux-philosophical blog content, posted as part of a
&lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;daily posting streak I have openly
committed to&lt;/a&gt;; standard disclaimers apply)&lt;/p&gt;
&lt;p&gt;This is a hard essay to write because (1) it’s very irrational and I
should (and I do) know better — death by car accident is much more
likely than death by an airplane crash, but the latter is scarier
because it’s more vivid and we have less control over it, and (2) people
don’t like talking about it. When I tried writing it, though, I realized
I already burned through most of the down-to-earth worries in the posts
I made between April and August of 2010. They still coherently and
accurately sum up my current thoughts surprisingly well. And most of the
irrational, overly philosophical fears appeared in
&lt;a href=&#34;//blog.vero.site/post/midnight&#34;&gt;Thoughts at Midnight&lt;/a&gt;. So there
used to be a lot of fluff here like this, which was inducing
procrastination because I don’t know what to include and what to cut,
but now that I have a daily deadline, I cut most of it. Here’s what’s
left.&lt;/p&gt;
&lt;p&gt;One, xkcd:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://imgs.xkcd.com/comics/leaving.png&#34; alt=&#34;xkcd&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Two, bonus quote: As really-long-term readers know, I have had a
reason to think that I might actually die in the past few years, a real
reason that has stayed with me and gotten me thinking now and then about
what &lt;em&gt;my&lt;/em&gt; meaning of life is, instead of a short-lived fuzzy
philosophical feeling obtained from reading &lt;cite&gt;Tuesdays with
Morrie&lt;/cite&gt; (which is not to say that &lt;cite&gt;Tuesdays with
Morrie&lt;/cite&gt; isn’t a good book; I just suspect no book can convey
everything a personal experience can.) Anyway, it’s over in all
likelihood, but the point is that in the middle, I wrote an essay for
class in ninth grade, which I find equally coherent and equally
representative of my views. The conclusion runs thus:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>College Emails</title>
      <link>//blog.vero.site/post/college-emails</link>
      <pubDate>Sat, 13 Jun 2015 09:08:33 +0800</pubDate>
      
      <guid>//blog.vero.site/post/college-emails</guid>
      <description>&lt;p&gt;(Frivolous blog content, posted as part of a
&lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;daily posting streak I have openly
committed to&lt;/a&gt;; standard disclaimers apply)&lt;/p&gt;
&lt;p&gt;Out of boredom and curiosity, I
&lt;a href=&#34;https://betaveros.github.io/bars-college.html&#34;&gt;graphed how many
emails colleges sent me&lt;/a&gt;, excluding the colleges I actually applied
to. I am being extremely polite and just calling them emails. I’ve
wanted to make this for a long time, but it wasn’t until I saw this
&lt;a href=&#34;https://medium.com/message/my-failed-experiment-in-time-travel-3aa2240a6bc0&#34;&gt;post
about an email experiment&lt;/a&gt; on
&lt;a href=&#34;http://waxy.org/links/&#34;&gt;waxy.org/links&lt;/a&gt; that I understood
which tools I could use to quantify my emails. (And then I actually made
it and procrastinated posting it here for two months. If you look at my
GitHub page or activity you might have seen it already, though.
Oops.)&lt;/p&gt;
&lt;p&gt;I don’t think the results were expected. Other than saying that, I
leave the interpretation up to the reader because I’m on a tight
blogging schedule. Cool? Cool.&lt;/p&gt;
&lt;p&gt;Step-by-step instructions:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Ninety-nine (card game)</title>
      <link>//blog.vero.site/post/99</link>
      <pubDate>Fri, 12 Jun 2015 08:00:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/99</guid>
      <description>&lt;p&gt;(Frivolous blog content, posted as part of a
&lt;a href=&#34;//blog.vero.site/post/commitment&#34;&gt;daily posting streak I have openly
committed to&lt;/a&gt;; standard disclaimers apply)&lt;/p&gt;
&lt;p&gt;It is quite interesting that Wikipedia’s article on
&lt;a href=&#34;https://en.wikipedia.org/wiki/Ninety-nine_%28addition_card_game%29&#34;&gt;Ninety-nine
(addition card game)&lt;/a&gt;, plus many of the following search results
(ignoring the identically-named trick-taking game that is guaranteed to
show up), have the same basic idea but wildly differing assignment of
special cards from the one I’m familiar with, which everybody I can
recall having played with agrees on. (Admittedly I’ve only ever played
this among Taiwanese friends.) The only special-card assignment method
that came close was a certain person’s
&lt;a href=&#34;https://nmnnmnnmmnnnmnrnmnmnnmn.wordpress.com/2012/09/27/concatenation/&#34;&gt;“stuff
from my old blog” dumping post&lt;/a&gt; I bumped into very accidentally. (His
5 is our 4; our 5 skips to an arbitrary player. The post also clarifies
that negative totals bounce back to zero, and includes a clause whereby
players must state the running total after playing and lose if they’re
wrong. Interesting.)&lt;/p&gt;
&lt;p&gt;Anyway, yes, I am documenting the rules to a card game on this blog.
I think this deserves to exist online.&lt;/p&gt;
&lt;p&gt;These rules are not completely rigorous because I don’t know them
completely rigorously. You can use common sense to reach a consensus in
corner cases.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Use a normal deck of playing cards, or two or more identical decks if
you want. Deal five cards to each player and set the rest aside to form
a draw pile. Cards are played into a discard pile in the center. Players
sit in an approximate circle and take turns along the circle, playing
one card and then, usually, drawing one replacement card from the draw
pile, so in normal 99, hands stay at five cards. When the draw pile runs
out, shuffle the discard pile to become the new draw pile.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A Commitment</title>
      <link>//blog.vero.site/post/commitment</link>
      <pubDate>Thu, 11 Jun 2015 08:43:25 +0800</pubDate>
      
      <guid>//blog.vero.site/post/commitment</guid>
      <description>&lt;p&gt;Obligatory life update: I have graduated
&lt;a href=&#34;https://motivatedgrammar.wordpress.com/2012/01/24/a-brief-history-of-speaking-about-graduation/&#34;&gt;[from]&lt;/a&gt;
high school.&lt;/p&gt;
&lt;p&gt;But that’s not what this post is about. I
&lt;a href=&#34;//blog.vero.site/post/scheduled-blogging&#34;&gt;contemplated setting up a schedule
for my blogging&lt;/a&gt; three long years ago, and decided against it,
because I didn’t think writing was a high enough priority for me. Well,
I am setting up a schedule now: &lt;strong&gt;I am going to post something on
this blog every day&lt;/strong&gt; until I have to leave the country (which is
happening once before college, so it’s not for as long as you think; but
I might decide to continue the schedule anyway after I get back. We’ll
see when the time comes.)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Adventures in Unicode Forensics</title>
      <link>//blog.vero.site/post/unicode-forensics</link>
      <pubDate>Sun, 17 May 2015 23:24:11 +0800</pubDate>
      
      <guid>//blog.vero.site/post/unicode-forensics</guid>
      <description>What do you do when you get a bunch of files like this from a zipfile?
I’ve blurred the messed-up file names because I’m not convinced it’s impossible to reconstruct the Chinese names of people from them and I’d rather err towards being paranoid about privacy. Except for the one file name whose author’s identity I’m OK with disclosing. Back story: I have been tasked with collecting everybody’s Chinese assignments for this semester.</description>
    </item>
    
    <item>
      <title>Sylow</title>
      <link>//blog.vero.site/post/sylow</link>
      <pubDate>Sat, 16 May 2015 00:00:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/sylow</guid>
      <description>&lt;p&gt;&lt;a
href=&#34;http://www.artofproblemsolving.com/community/c1285h1035830&#34;&gt;original
sillier post&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Note on notation: I’m going to use &lt;span
class=&#34;math inline&#34;&gt;\(\text{Stab}(x)\)&lt;/span&gt; instead of &lt;span
class=&#34;math inline&#34;&gt;\(G_x\)&lt;/span&gt; for the stabilizer subgroup and &lt;span
class=&#34;math inline&#34;&gt;\(\text{Cl}(x)\)&lt;/span&gt; instead of &lt;span
class=&#34;math inline&#34;&gt;\(^Gx\)&lt;/span&gt; for the conjugacy classes. For the
orbit of &lt;span class=&#34;math inline&#34;&gt;\(x\)&lt;/span&gt; I’ll stick with the norm
and use &lt;span class=&#34;math inline&#34;&gt;\(Gx\)&lt;/span&gt;, although it’s only used
in confusing summation notation that I’ll explain with words too.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;We keep using this silly counting argument which I thought was
something like Burnside’s lemma but actually is a lot simpler, just
partitioning the set into orbits and slapping the orbit-stabilizer
theorem on.&lt;/p&gt;
&lt;p&gt;If &lt;span class=&#34;math inline&#34;&gt;\(G\)&lt;/span&gt; is the group and &lt;span
class=&#34;math inline&#34;&gt;\(S\)&lt;/span&gt; is the set then&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>|Wedge|</title>
      <link>//blog.vero.site/post/wedge</link>
      <pubDate>Wed, 13 May 2015 00:00:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/wedge</guid>
      <description>&lt;p&gt;&lt;a
href=&#34;http://www.artofproblemsolving.com/community/c1285h1033032&#34;&gt;original
sillier post&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Note on notation: to be maximally clear, I have bolded all my vectors
and put tiny arrows on them. Normal letters are usually reals, uppercase
letters are usually bigger matrices. Also, &lt;span
class=&#34;math inline&#34;&gt;\(\cdot^T\)&lt;/span&gt; denotes the transpose of a
matrix.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Let &lt;span class=&#34;math inline&#34;&gt;\(\vec{\textbf{v}}_1, \ldots,
\vec{\textbf{v}}_m\)&lt;/span&gt; be elements of &lt;span
class=&#34;math inline&#34;&gt;\(\mathbb{R}^n\)&lt;/span&gt; where &lt;span
class=&#34;math inline&#34;&gt;\(m \leq n\)&lt;/span&gt;, i.e. column vectors with &lt;span
class=&#34;math inline&#34;&gt;\(n\)&lt;/span&gt; real elements. Let &lt;span
class=&#34;math inline&#34;&gt;\(V = [\vec{\textbf{v}}_1, \ldots,
\vec{\textbf{v}}_m]\)&lt;/span&gt;. This means pasting the column vectors
together to make an &lt;span class=&#34;math inline&#34;&gt;\(n \times m\)&lt;/span&gt;
matrix (&lt;span class=&#34;math inline&#34;&gt;\(n\)&lt;/span&gt; rows &lt;span
class=&#34;math inline&#34;&gt;\(m\)&lt;/span&gt; columns).&lt;/p&gt;
&lt;p&gt;Consider the thing &lt;span class=&#34;math inline&#34;&gt;\(\vec{\textbf{v}}_1
\wedge \vec{\textbf{v}}_2 \wedge \cdots \wedge
\vec{\textbf{v}}_m\)&lt;/span&gt;, which can be visualized as the
hyperparallelogram &lt;span class=&#34;math inline&#34;&gt;\(\left\{\sum_{i=1}^{m}
t_i\vec{\textbf{v}}_i \,\middle\vert\, t_i \in [0,1], i = 1, 2, \ldots,
m \right\}\)&lt;/span&gt; but is apparently a different thing in a different
vector space of things. We wonder how to compute &lt;strong&gt;the hyperarea
of this hyperparallelogram&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Three Standard Deviations</title>
      <link>//blog.vero.site/post/three</link>
      <pubDate>Thu, 30 Apr 2015 19:30:42 +0800</pubDate>
      
      <guid>//blog.vero.site/post/three</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;A PSYCHOLOGICAL TIP&lt;/p&gt;
&lt;p&gt;Whenever you’re called on to make up your mind,&lt;br /&gt; and you’re
hampered by not having any,&lt;br /&gt; the best way to solve the dilemma,
you’ll find,&lt;br /&gt; is simply by spinning a penny.&lt;br /&gt; No — not so that
chance shall decide the affair&lt;br /&gt; while you’re passively standing
there moping;&lt;br /&gt; but the moment the penny is up in the air,&lt;br /&gt; you
suddenly know what you’re hoping.&lt;/p&gt;
— Piet Hein
&lt;/blockquote&gt;
&lt;p&gt;(&lt;em&gt;By the way&lt;/em&gt;, apparently spinning a penny is a terrible
randomization process; studies have shown they
&lt;a href=&#34;http://www.smithsonianmag.com/science-nature/gamblers-take-note-the-odds-in-a-coin-flip-arent-quite-5050-145465423/&#34;&gt;come
up tails &lt;strong&gt;80%&lt;/strong&gt; of the time.&lt;/a&gt; Tossing or flipping is
better but there’s still a faintly biased
&lt;a href=&#34;https://www.stat.berkeley.edu/~aldous/157/Papers/diaconis_coinbias.pdf&#34;&gt;51%
chance it lands with the same face it started with (PDF link)&lt;/a&gt;.
Entirely irrelevantly, is the meter amphibrachic? Nice. I’m sorry, but
the impenetrable English names they give to metrical feet just sound so
cool.)&lt;/p&gt;
&lt;p&gt;As May 1 has been coming up, I’ve been half-seriously giving this
advice to others who still haven’t decided. But I knew this wouldn’t
work for me. I knew where I intuitively wanted to go all along.&lt;/p&gt;
&lt;p&gt;The reasons holding me back were more… reasonable. Mostly the money.
Call it an id-superego conflict.&lt;/p&gt;
&lt;p&gt;I don’t know if the difference between my choices would mean I’d have
to take out loans, or work a lot during college, or both. I don’t think
either of those things would be difficult. I think tech internships over
the summer could just cover the parts assigned to parental contribution
(which I’m not going to let my parents pay, unless they start earning
&lt;em&gt;a lot&lt;/em&gt; more money than expected) and I think I have the skills
to get those internships. But of course that’s a tradeoff. Maybe there
will be something more self-actualizing or more helpful to my future
career that I could do during the summer. I’m not so sure that I’ll find
the same drive to program for a job instead of for a personal project I
really want to use myself, or for putting off something more boring. I
don’t know yet.&lt;/p&gt;
&lt;p&gt;(Get it? Drive? Program? Um, never mind, I guess that’s a hardware
problem.)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 47 / Fillomino [LITS &#43; Walls]</title>
      <link>//blog.vero.site/post/puzzle-47</link>
      <pubDate>Mon, 30 Mar 2015 20:01:26 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-47</guid>
      <description>&lt;p&gt;CLICKBAIT PERSONALITY TEST THAT YOU CAN DO WITHOUT SOLVING THE
PUZZLE: What do you see in the puzzle image below? I have my own
thoughts but I won’t bias you by posting them yet. Sound out your
thoughts in the comments below! (I don’t expect this to work but I’d
love to be proven wrong)&lt;/p&gt;
&lt;p&gt;Okay so apparently how puzzles work is I go nearly a year without
posting one and then when I post a terrible one, I feel guilty and
obligated to post a legitimate one soon after. Testsolved by
chaotic_iak.&lt;/p&gt;
&lt;p&gt;This is a Fillomino (write a number in every empty cell so that every
group of cells with the same number that is connected through its edges
has that number of cells) where each tetromino has had their 4s replaced
by one of L, I, T, or S describing their shape, and they obey the rules
of LITS — they can touch if they are not congruent, they must all be
connected, and their squares cannot form a 2×2 block. In addition, cells
separated by a thick border may not contain the same number or
letter.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 46 / Fillomino [LITS &#43; Extra Region &#43; Walls &#43; Anti-Walls &#43; Inequality &#43; Tapa &#43; Masyu]</title>
      <link>//blog.vero.site/post/puzzle-46</link>
      <pubDate>Sun, 29 Mar 2015 13:01:08 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-46</guid>
      <description>&lt;blockquote&gt;
5:27 PM &lt;strong&gt;phenomist&lt;/strong&gt;: do you use gridderface to make
pretty puzzles?&lt;br /&gt;
…&lt;br /&gt;
5:52 PM &lt;strong&gt;phenomist&lt;/strong&gt;: actually nvm excel is probably
easier lol
&lt;/blockquote&gt;
&lt;p&gt;Okay I’m sorry this is a horrible puzzle where the rules don’t make
sense and I didn’t even get it testsolved. I just wanted an image to
concisely demonstrate the capabilities of
&lt;a href=&#34;https://github.com/betaveros/gridderface&#34;&gt;gridderface&lt;/a&gt;, my
puzzle marking and creation program, for the project homepage, after
somebody expressed interest in using the program to write a puzzle. Then
I got tremendously carried away.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Thoughts at Midnight</title>
      <link>//blog.vero.site/post/midnight</link>
      <pubDate>Sat, 07 Feb 2015 00:49:18 +0800</pubDate>
      
      <guid>//blog.vero.site/post/midnight</guid>
      <description>&lt;p&gt;These are the thoughts that sometimes keep me awake at night.&lt;/p&gt;
&lt;p&gt;These are things I don’t want to think about. These are things I’ve
spent hours thinking about, never productively. They are worrying, but
unlike typical worries in my life, it is fundamentally impractical to
take steps to resolve or mitigate them, after which I may rest assured
that I’ve done my best. The reason is that they also happen to be either
untestable/unfalsifiable or only testable if one incurs absurd and
irreversible costs, mainly dying.&lt;/p&gt;
&lt;p&gt;Sometimes I explain them away to myself successfully and move on.
Sometimes I read what I’ve written and think about these thoughts and do
the cognitive equivalent of looking at them funny, as I’m expecting most
readers to feel if they get that far — why would anybody be bothered, or
afraid, or soul-crushingly panicked about these things? Life is so busy,
there are literally more than sixty-four items on my HabitRPG to-do
list, and besides, there are so many serious global issues humanity is
actually facing right now, and people who are actually deprived of basic
rights and resources and have to struggle to stay alive. How can I
possibly be bothered by these absurd remote thoughts?&lt;/p&gt;
&lt;p&gt;But I know that other times I do feel those emotions exactly. And if
I stare &lt;em&gt;just right&lt;/em&gt;, I can feel those emotions bubbling beneath
the surface in me. Sometimes I can’t explain the issues away to myself,
and a deep soul-sucking pang grows in my stomach. I’m irrational — I’m
afraid of some of these thoughts — and I have submitted to the fact that
there are some edges of my irrationality that would not be worth the
effort to fix if just not thinking about them is better.&lt;/p&gt;
&lt;p&gt;Sometimes these thoughts make me wish I were not so rational.
Sometimes they even make me wish I were religious; it would be easier if
(I believed) consciousness were, somehow, special. I suspect if I tried
really hard, I could make myself believe something like that sincerely.
But I think that’s a betrayal of myself I’m not willing to take. I think
there are better ways to remain happy.&lt;/p&gt;
&lt;p&gt;I want to maximize happiness. Thinking about more general moral
principles will help with that, but the remoteness of these particular
thoughts is such that I doubt I’ll ever have to make a choice that would
benefit from me having thought about them. At least, I think the chance
is small enough to not be worth the negative utility spent thinking
about them.&lt;/p&gt;
&lt;p&gt;So: “There is nothing to fear but fear itself.”&lt;/p&gt;
&lt;p&gt;But I feel frustrated: not thinking about something just doesn’t seem
like a solution. I don’t know how to come to terms with just how
irrational happiness fundamentally is. And I still can’t resist thinking
about them sometimes…&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>2015 MIT Mystery Hunt</title>
      <link>//blog.vero.site/post/hunt</link>
      <pubDate>Tue, 27 Jan 2015 11:45:50 +0800</pubDate>
      
      <guid>//blog.vero.site/post/hunt</guid>
      <description>&lt;p&gt;Well, it’s been over a week, which is a long time for blog posts to
be delayed after the event they’re documenting in probably all of the
world except my blog. So.&lt;/p&gt;
&lt;p&gt;I guess this post should start with a bit of background. I’ve been
puzzlehunting for… wow, three and a half years now. I was introduced to
puzzlehunts from AoPS, when some fellow members got together a team for
&lt;a href=&#34;http://puzzle.cisra.com.au/2011/teamstats_AoPS.html&#34;&gt;CiSRA
2011&lt;/a&gt;, and I think I’ve participated to some degree in every known
internet Australian puzzlehunt since.&lt;/p&gt;
&lt;p&gt;But as for my experience with the MIT Mystery Hunt in particular, I
sort of hunted with a decidedly uncompetitive AoPS team in 2012 (I think
we solved one puzzle exactly), but my serious hunting career began when
dzaefn recruited me into the Random team (then Random Thymes)
&lt;a href=&#34;//blog.vero.site/post/hunter&#34;&gt;for the 2013 hunt&lt;/a&gt; (and I did
blog obliquely about it). We didn’t win (and I actually didn’t
participate that much because I was traveling with family) but the next
year (as One Fish Two Fish Random Fish Blue Fish (1f-2f-17f-255f (I am
evidently in a parentheses mood today because as you’ve probably
noticed, the amount and depth of parentheses in this sentence are
positively alarming (lol)))) we won.&lt;/p&gt;
&lt;p&gt;And I do have a half-written post about that which will never get
posted (and I &lt;em&gt;also&lt;/em&gt; didn’t participate that much, because my
family was moving that weekend) but okay, let’s just drop any semblance
of chronological coherence on this blog and dump a short version of the
list of puzzles and parts towards which I contributed solving, as I
wrote them down one year ago:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Moon Shoes</title>
      <link>//blog.vero.site/post/moon-shoes</link>
      <pubDate>Thu, 15 Jan 2015 18:03:50 +0800</pubDate>
      
      <guid>//blog.vero.site/post/moon-shoes</guid>
      <description>Okay. So. These things:
These things are a thing. They’re like mini-trampolines that you are supposed to strap onto your feet and jump around on to have fun, if you’re, like, six years old, maybe?
Anyway, if you happen to run into a pair of these, please be careful, and please think twice before doing something like, I don’t know, immediately strapping them on after you see them and jumping as hard as you possibly can, especially not when you are jumping on a hard unforgiving surface, or when you are surrounded by a bunch of impressionable children whom you could be concerned might follow your example or be swayed by your bad influence or something.</description>
    </item>
    
    <item>
      <title>C/C&#43;&#43; to D</title>
      <link>//blog.vero.site/post/c-to-d</link>
      <pubDate>Wed, 14 Jan 2015 00:00:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/c-to-d</guid>
      <description>&lt;p&gt;Some notes.&lt;/p&gt;
&lt;p&gt;I’m assuming you want to use D largely, but not entirely, for
competitive programming. That’s me right now.&lt;/p&gt;
&lt;h3 id=&#34;basics&#34;&gt;Basics&lt;/h3&gt;
&lt;p&gt;Syntax is very similar. Function definitions, semicolon-terminated
statements, variable declarations, and so on. You can declare
&lt;code&gt;int main() {...}&lt;/code&gt; or &lt;code&gt;void main() {...}&lt;/code&gt; or
something with arguments.&lt;/p&gt;
&lt;p&gt;Basic types like &lt;code&gt;bool&lt;/code&gt; and &lt;code&gt;int&lt;/code&gt; and
&lt;code&gt;double&lt;/code&gt; are all there. Wonderfully, &lt;code&gt;long&lt;/code&gt; is 64
bits. Instead of &lt;code&gt;unsigned&lt;/code&gt; whatever, just prefix a
&lt;code&gt;u&lt;/code&gt;, e.g. &lt;code&gt;uint&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Arithmetic operators and bit operators are all there too, including
unsigned right shift &lt;code&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/code&gt;. Although &lt;code&gt;^&lt;/code&gt;
is still xor, D has exponentiation as &lt;code&gt;^^&lt;/code&gt;. Sadly,
&lt;code&gt;%&lt;/code&gt; is still same-sign remainder; there’s no true mod.&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb1&#34;&gt;&lt;pre class=&#34;sourceCode d&#34;&gt;&lt;code class=&#34;sourceCode d&#34;&gt;&lt;span id=&#34;cb1-1&#34;&gt;&lt;a href=&#34;#cb1-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;pp&#34;&gt;import&lt;/span&gt;&lt;span class=&#34;im&#34;&gt; std.stdio&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Casts look like &lt;code&gt;cast(int) x;&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;control-flow&#34;&gt;Control Flow&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;if&lt;/code&gt;, &lt;code&gt;while&lt;/code&gt;, &lt;code&gt;for&lt;/code&gt;,
&lt;code&gt;do&lt;/code&gt;, and even &lt;code&gt;switch&lt;/code&gt; all work as you’d expect,
along with &lt;code&gt;break&lt;/code&gt; and &lt;code&gt;continue&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;foreach&lt;/code&gt; is the nice addition though. Not only can you
iterate over arrays and stuff, but range loops go like:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Rewind</title>
      <link>//blog.vero.site/post/rewind</link>
      <pubDate>Wed, 31 Dec 2014 23:59:38 +0800</pubDate>
      
      <guid>//blog.vero.site/post/rewind</guid>
      <description>&lt;p&gt;As per &lt;a href=&#34;http://mitadmissions.org/blogs/entry/50_things&#34;&gt;item
3 of 50&lt;/a&gt;:&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/zAC_teyfrHU&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;&lt;a href=&#34;http://www.infinitelooper.com/?v=zAC_teyfrHU&#34;&gt;InfiniteLooper
version&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Well, there are better memory-triggering songs but I think this
pretty much sums up how I feel about blogging right now (possibly
including the very act of choosing that song.) And college apps. And
life. Plus, the music video is silly in its own incredible way.&lt;/p&gt;
&lt;p&gt;Anyway. Around this time a year ago, I made
&lt;a href=&#34;//blog.vero.site/post/time&#34;&gt;a post&lt;/a&gt; talking about how around
a year before that,&lt;/p&gt;
&lt;blockquote&gt;
I paused my participation in big high-school competitions, for a variety
of reasons.
&lt;/blockquote&gt;
&lt;p&gt;And then I rambled on life and programming competitions.&lt;/p&gt;
&lt;p&gt;If you didn’t get it yet, this post so far has been written to
meaningfully echo the last one. Nothing so abrupt has happened this
year, but I just realized how nice it was to have a paragraph humorously
listing the weird stuff I had gotten myself into over the course of
2013, so I’m going to do so again, even more completely.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>College Questions (unprotected ver.)</title>
      <link>//blog.vero.site/post/college-qs</link>
      <pubDate>Mon, 29 Dec 2014 19:54:05 +0800</pubDate>
      
      <guid>//blog.vero.site/post/college-qs</guid>
      <description>&lt;p&gt;This post, or most of it, was published password-protected once
because… well, I explain that below. (To the one person who actually
bothered asking me for the password, just so you know, I did add and
rewrite parts. More than a few.) I forgot how distinctly powerful a
disincentive a large 2300-word block of text is to the average person,
especially when the subject of half of those 2300 words is teenage angst
(I’ve already linked to &lt;a href=&#34;https://xkcd.com/1370/&#34;&gt;xkcd 1370&lt;/a&gt;
in enough places so I’m not even going to embed it here) interweaved
with an insufferable amount of rationalist jargon. This will probably
filter my readership more than sufficiently already.&lt;/p&gt;
&lt;p&gt;I have still decided to protect one detail of the thought process,
though. But even after that, I guess I do care more about how many
people read this than I do for most of my other posts, so here’s a
primitive attempt to gauge interest; if you choose anything beyond the
first choice, I would also appreciate if you leave a comment, even if
you don’t think you have anything to add:&lt;/p&gt;
&lt;ins datetime=&#34;2017-11-24T18:33:34-0500&#34;&gt;
edit: This poll has been removed, it wasn’t very interesting anyway.
&lt;/ins&gt;
&lt;hr /&gt;
&lt;p&gt;I haven’t posted for a long period again, but I don’t feel too bad
about it.&lt;/p&gt;
&lt;p&gt;Well, until I look carefully at my blog draft folder and remember
that I have 90%-finished drafts about the two debate competitions I went
to (November 2013 and March 2014), and winning the previous Mystery Hunt
(January 2014), and my summer trip to Penghu (July 2013). Which will
probably never get posted out of awkwardness.&lt;/p&gt;
&lt;p&gt;Oops.&lt;/p&gt;
&lt;p&gt;But I’ve been busy, completely righteously busy, with college apps to
write and algorithm classes to teach and speeches to write and a math
club to sort-of lead and all the typical homework besides.&lt;/p&gt;
&lt;p&gt;And then (for those of you who don’t have me as a friend on Facebook)
I got accepted to MIT and Caltech early.&lt;/p&gt;
&lt;p&gt;And for a few days after that, I checked Facebook about sixteen times
a day for the Class of 2019 group discussion, except for one day when I
really needed not to, thanks to the power of committing to my HabitRPG
party to do something. I am increasingly learning that procrastination
is something that has to be actively and strategically fought. But
that’s not what this post is about.&lt;/p&gt;
&lt;p&gt;College.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>HOJ 226: CP (中)</title>
      <link>//blog.vero.site/post/hoj-cp</link>
      <pubDate>Mon, 15 Dec 2014 00:00:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/hoj-cp</guid>
      <description>&lt;p&gt;This post was written in Traditional Mandarin Chinese for my fellow
competitive programmers in Taiwan.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://hoj.twbbs.org/judge/problem/view/226&#34;&gt;題目在這裡，HOJ
226&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;有關的題目出現於NPSC 2014 高中組決賽pD。&lt;/p&gt;
&lt;p&gt;前置要求：treap (split,
merge)跟在上面實作區段操作（請參考資訊枝幹）。&lt;/p&gt;
&lt;p&gt;這裡沒有完整的解答code，因為AC是要用血汗換來的才值得 :-)&lt;/p&gt;
&lt;h2 id=&#34;treap&#34;&gt;Treap&lt;/h2&gt;
&lt;p&gt;我討厭單字母&lt;code&gt;l&lt;/code&gt;的變數名稱（跟&lt;code&gt;1&lt;/code&gt;太像了。我沒有被這個雷過，這只是自己對自己程式碼可讀性的要求），所以我的子樹叫做&lt;code&gt;lc&lt;/code&gt;(left
child)，&lt;code&gt;rc&lt;/code&gt;(right child)。&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb1&#34;&gt;&lt;pre
class=&#34;sourceCode cpp&#34;&gt;&lt;code class=&#34;sourceCode cpp&#34;&gt;&lt;span id=&#34;cb1-1&#34;&gt;&lt;a href=&#34;#cb1-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;kw&#34;&gt;struct&lt;/span&gt; Treap &lt;span class=&#34;op&#34;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-2&#34;&gt;&lt;a href=&#34;#cb1-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    Treap &lt;span class=&#34;op&#34;&gt;*&lt;/span&gt; lc&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-3&#34;&gt;&lt;a href=&#34;#cb1-3&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    Treap &lt;span class=&#34;op&#34;&gt;*&lt;/span&gt; rc&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-4&#34;&gt;&lt;a href=&#34;#cb1-4&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;dt&#34;&gt;unsigned&lt;/span&gt; pri&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-5&#34;&gt;&lt;a href=&#34;#cb1-5&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;dt&#34;&gt;char&lt;/span&gt; val&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-6&#34;&gt;&lt;a href=&#34;#cb1-6&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;dt&#34;&gt;int&lt;/span&gt; size&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-7&#34;&gt;&lt;a href=&#34;#cb1-7&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;op&#34;&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-8&#34;&gt;&lt;a href=&#34;#cb1-8&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-9&#34;&gt;&lt;a href=&#34;#cb1-9&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;dt&#34;&gt;int&lt;/span&gt; size&lt;span class=&#34;op&#34;&gt;(&lt;/span&gt;Treap &lt;span class=&#34;op&#34;&gt;*&lt;/span&gt; a&lt;span class=&#34;op&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;cf&#34;&gt;return&lt;/span&gt; a &lt;span class=&#34;op&#34;&gt;?&lt;/span&gt; a&lt;span class=&#34;op&#34;&gt;-&amp;gt;&lt;/span&gt;size &lt;span class=&#34;op&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-10&#34;&gt;&lt;a href=&#34;#cb1-10&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;dt&#34;&gt;void&lt;/span&gt; pull&lt;span class=&#34;op&#34;&gt;(&lt;/span&gt;Treap &lt;span class=&#34;op&#34;&gt;*&lt;/span&gt; a&lt;span class=&#34;op&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-11&#34;&gt;&lt;a href=&#34;#cb1-11&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;cf&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;(&lt;/span&gt;a&lt;span class=&#34;op&#34;&gt;)&lt;/span&gt; a&lt;span class=&#34;op&#34;&gt;-&amp;gt;&lt;/span&gt;size &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;+&lt;/span&gt; size&lt;span class=&#34;op&#34;&gt;(&lt;/span&gt;a&lt;span class=&#34;op&#34;&gt;-&amp;gt;&lt;/span&gt;lc&lt;span class=&#34;op&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;+&lt;/span&gt; size&lt;span class=&#34;op&#34;&gt;(&lt;/span&gt;a&lt;span class=&#34;op&#34;&gt;-&amp;gt;&lt;/span&gt;rc&lt;span class=&#34;op&#34;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-12&#34;&gt;&lt;a href=&#34;#cb1-12&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;op&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>Commemorating Obvious Milestones Involving Chronological Sustenance</title>
      <link>//blog.vero.site/post/comics</link>
      <pubDate>Wed, 19 Nov 2014 00:00:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/comics</guid>
      <description>&lt;p&gt;Well, there had to be something here.&lt;/p&gt;
&lt;p&gt;Unfortunately I don’t have time for anything more complex, so here’s
a low-effort illogical puzzle for the occasion. (It &lt;em&gt;has&lt;/em&gt; been
testsolved, at least. Thanks, Yoshiap.) It also features a brand new
category, so as not to distract the people on LMI.&lt;/p&gt;
&lt;p&gt;If you don’t already know what occasion it is, it’s easy to find out
by looking through my archives or possibly anywhere else I’ve left a
trail online. Or you could solve the puzzle! (Or you could
&lt;ins datetime=&#34;2014-11-20T12:29:52+00:00&#34;&gt;scroll down to read the
solution!&lt;/ins&gt;) If this puzzle had an answer, it would be a nine-letter
word, although like most of mathematics, it’s less about the answer than
about the path you take to get there…&lt;/p&gt;
&lt;ins datetime=&#34;2017-11-24T18:36:41-0500&#34;&gt;
2017 edit: A warning that this has somewhat linkrotted and is harder to
solve, but theoretically still possible.
&lt;/ins&gt;</description>
    </item>
    
    <item>
      <title>Extreme Value Theorem</title>
      <link>//blog.vero.site/post/evt</link>
      <pubDate>Wed, 22 Oct 2014 00:00:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/evt</guid>
      <description>&lt;p&gt;&lt;a
href=&#34;http://www.artofproblemsolving.com/community/c1285h1042959&#34;&gt;original
sillier post&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The “Extreme Value Theorem”, according to my old calculus textbook
(Larson, Hostetler, Edwards, 8th ed.), is “A continuous function defined
on a closed interval attains a minimum and a maximum on the interval.”
The calculus textbook continues,&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Although [it] is intuitively plausible, a proof of this theorem is
not within the scope of this text.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Of course Rudin proves this, but coming from an unrigorous calculus
background, the required deductions span three chapters and are very
hard to motivate. That’s probably because it proves things for extremely
general objects.&lt;/p&gt;
&lt;p&gt;In particular, I have no idea why the definition of “compact” is what
it is: “a set for which every open cover has a finite subcovering”.
Therefore, here’s a less general but more motivated proof, from the
grounds-up.&lt;/p&gt;
&lt;h3 id=&#34;definitions&#34;&gt;Definitions&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Real numbers&lt;/strong&gt; are hard to define. We only need to
know that we can add, subtract, multiply, divide, and compare them,
i.e. they’re an ordered field, and that they have the
&lt;strong&gt;least-upper-bound property&lt;/strong&gt;. That is, if we have a set
of real numbers that are bounded above, then the set has a &lt;em&gt;least
upper bound&lt;/em&gt;, a bound that “perfectly fits” the set. Precisely, the
bound must be such that every element of the set is less than or equal
to it, and no smaller value satisfies the same property.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Numbers</title>
      <link>//blog.vero.site/post/numbers</link>
      <pubDate>Mon, 20 Oct 2014 00:00:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/numbers</guid>
      <description>Continuing the porting of stuff from betaveros.stash, and adding more stuff.
Mnemonic Here’s my mnemonic table for digits, inspired by an old Martin Gardner column. I wrote from memory the first 132 digits of 2012! correctly at IMO 2012 with this table. I had remembered more, but unfortunately, if I recall correctly, I confused myself over whether I had encoded a 5 or a 2 by the S of “nose”, because this is supposed to be more of a phonetic code than a spelling one — otherwise double letters would be confusing and lots of randomly appearing digraphs would be wasted, because English is weird.</description>
    </item>
    
    <item>
      <title>[IOI 2014 Outtakes]</title>
      <link>//blog.vero.site/post/outtakes</link>
      <pubDate>Sun, 07 Sep 2014 16:01:28 +0800</pubDate>
      
      <guid>//blog.vero.site/post/outtakes</guid>
      <description>Miscellaneous observations that didn’t make it into a compelling narrative, sometimes because I have forgotten exactly when they happened, sometimes because I only remembered when they happened after blogging about it, sometimes because it just seemed too tangential, sometimes just because of the circumference of the mooooooooooooooooon! (That made no sense and I’m not going to remember what I’m alluding to in a few months.) During the first day a guy came into the secret computer room that the Taiwan team had concealed themselves in, saw us watching anime (SAO 2 among others), and innocently asked, &#34;</description>
    </item>
    
    <item>
      <title>[IOI 2014 Part 4] Shades of Xanthous</title>
      <link>//blog.vero.site/post/xanthous</link>
      <pubDate>Sat, 06 Sep 2014 13:04:16 +0800</pubDate>
      
      <guid>//blog.vero.site/post/xanthous</guid>
      <description>&lt;p&gt;No, I didn’t forget. Not for one minute. I was doing homework. I am
very happy because that means I was actually carrying out my priorities
as I envisioned them. I’ve probably edited this post too many times,
though. Meh. But it’s the first weekend after finishing summer homework,
so here we go again!&lt;/p&gt;
&lt;p&gt;Fun fact: This is by far my favorite post title in the entire series.
Possibly in the entire history of this blog.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;In the morning of the last day of official IOI activities, there were
a bunch of cultural activities, e.g. writing Chinese characters
calligraphically, doing tricks with the diabolo, or picking up beans
with chopsticks, and noncultural activities, e.g. getting somebody to
pour water into a cup on your head while he or she was blindfolded. Due
to the last activity I got wet, but my shirt dried really quickly. And
alas, even though I had taken calligraphy summer classes a long time
ago, my calligraphy was awful — robotic, lifeless strokes without the
right aesthetic proportions to make up for it. Blargh.&lt;/p&gt;
&lt;p&gt;Anyway, lunch followed, and then it was time for the closing
ceremony, in the same building as the other ceremonies and contests. Our
team caught the ending song of in a Chinese musical being rehearsed as
we walked into the auditorium. While we waited for everybody, we milled
about waving flags that our various teachers had brought, including not
only Taiwan’s flag but also flags of my school, thoughtfully brought by
teachers who had volunteered. A little later our leader told us that all
the leaders had discussed the matter during a meeting and decided that
we shouldn’t bring any flags to the stage while receiving our medals, so
we were going to have to make do with being patriotic and
school-respecting off stage.&lt;/p&gt;
&lt;p&gt;There were a few performances, including two aboriginal music
performances and the musical we had seen rehearsed ealier, which was a
fun rock musical rendition of some Chinese tale that seemed to have been
sharply abridged, giving it the plot depth of a Wikipedia stub-article
synopsis — a conflict, boy-meets-girl-and-falls-in-love, and a lamenting
Aesop song conclusion with thrillingly vague general applicability. But
the singing and counterpointing and atmosphere were good. I guess it was
proportional to the relative importance of the performance to the
closing ceremony. The program interleaved them with the long-awaited
medal presentations: one round of bronze medalists, one round of silver,
one round of gold.&lt;/p&gt;
&lt;p&gt;Dum-dum-dum-dum, medals! The home team advantage was really obvious
here; the cheering and the medal-presenter handshakes were both
significantly more forceful for Taiwan’s medalists.&lt;/p&gt;
&lt;figure&gt;
&lt;a href=&#34;//blog.vero.site/img/gold.jpg&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/gold.jpg&#34; alt=&#34;I think our leader made this. Thanks.&#34; /&gt;&lt;/a&gt;
&lt;figcaption&gt;
I think our leader made this. Thanks.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Naturally, after the normal medals had been exhausted, the three full
scorers received bags with prizes that may forever remain unknown to my
sorry self, as well as a standing ovation from everybody in the
auditorium. The orchestra had been going through ABBA songs during the
ceremony, and very considerately played “The Winner Takes It All” for
this part. It was impossible not to mentally fill in the lyrics.&lt;/p&gt;
&lt;blockquote&gt;
The winner takes it all&lt;br /&gt;The loser has to fall&lt;br /&gt;It’s simple and
it’s plain&lt;br /&gt;Why should I complaiiiiiiiin?
&lt;/blockquote&gt;
&lt;p&gt;Speeches followed. Most were just average forgettable speeches, but
Forster gave another speech that was somehow even better than the one he
gave at the opening ceremony, with nonstop golden quotables such as:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>[IOI 2014 Part 3] Games of Luck and Strategy and Really Weird Noises</title>
      <link>//blog.vero.site/post/games</link>
      <pubDate>Sun, 17 Aug 2014 22:11:28 +0800</pubDate>
      
      <guid>//blog.vero.site/post/games</guid>
      <description>&lt;p&gt;Shamelessly getting unfinished business out of the way. Yup, that’s
me.&lt;/p&gt;
&lt;p&gt;Excursion Day 1. We traveled down to Yilan on a bus. I played
guess-it with Paul.&lt;/p&gt;
I was quite surprised at myself for remembering this game, but I think
it’s simple and little-known enough to be worth mentioning. Guess-it is
a remarkably pure game of luck and bluffing from one of Martin Gardner’s
columns, played with a small odd number of cards, e.g. the 13 cards of
one poker suit. The cards are dealt evenly to players (who can look at
them) with one card left over, which is kept face down; players take
turns choosing one of two actions:
&lt;ol&gt;
&lt;li&gt;
Name a card and ask the other player if he or she has it. These
questions must be answered honestly.
&lt;/li&gt;
&lt;li&gt;
Guess the left-over card. The guesser wins if correct; the other player
wins if not.
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Guess-it is not trivial because sometimes you should ask the other
player if he or she has a card that you already see in your hand;
otherwise whenever you answered “no” to a query you’d immediately guess
that the asked card is the hidden one. It is actually a solved game in
the sense that the probabilities of the Nash equilibrium strategy for
when to guess and when to bluff have been worked out already, but
they’re not simple probabilities by any means and humans are terrible
randomizers anyway. A few rounds of it sure beats rock-paper-scissors. I
was very amused to lose almost all our games with 11 cards but win
almost all of our games with 13.&lt;/p&gt;
&lt;p&gt;Okay, no more gratuitous narrative excursions into game-theory. The
first stop, National Center for Traditional Arts, was a very laid-back
culture place with old-fashioned retro shops and streets.&lt;/p&gt;
&lt;p&gt;We watched a 3D glove puppetry (布袋戲) video, in the same session as
a lot of the leaders.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;//blog.vero.site/img/519.jpg&#34;&gt;&lt;img class=&#34;aligncenter size-medium wp-image-2521&#34; src=&#34;//blog.vero.site/img/519.jpg?w=225&#34; alt=&#34;519&#34; width=&#34;225&#34; height=&#34;300&#34; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>[IOI 2014 Part 2] One Line to Solve Them All</title>
      <link>//blog.vero.site/post/one-line</link>
      <pubDate>Sat, 26 Jul 2014 23:49:14 +0800</pubDate>
      
      <guid>//blog.vero.site/post/one-line</guid>
      <description>&lt;p&gt;I started trying to sleep at 9 the night before the contest, tossed
and turned in bed until 10, then fell asleep and got up at 3:35 in the
morning. Blah. At that point, I went to the bathroom and applied some
chapstick before trying to go back to sleep until 6. After breakfast, I
grabbed a few minutes of sleep on the bus to the convention center where
our contest would be, then slept on a sofa outside the actual contest
hall alongside most of the rest of our team as we waited for a very long
time until it was okay for us to enter. Competitions really mess with
one’s sleep schedule.&lt;/p&gt;
&lt;p&gt;Then, much too soon, we could enter. Day 1 of the contest was about
to start.&lt;/p&gt;
&lt;p&gt;The laptops were as yesterday, although they were protected with a
white screensaver that indicated my name and ID as well as a countdown
to the start of the contest. I was glad to see that my mousepad and all
my writing utensils had survived without me. Somebody had the sense of
humor to project an online stopwatch with an animated bomb fuse onto the
screens to indicate the remaining time, which, once again, there was a
lot of.&lt;/p&gt;
&lt;p&gt;I conferred briefly with Paul (TZW (alphaveros (?))) about vim
settings for a bit, but there were still fifteen minutes left or so. I
idly stretched, practiced typing my &lt;code&gt;.vimrc&lt;/code&gt; on an imaginary
keyboard, and watched as the US dude two tables to my left unplugged his
laptop’s mouse and rearranged absolutely everything on his table using
the surface under his chair as swap space. (Well, that was how I
mentally described it at the time, pending further revelations. (hint
hint))&lt;/p&gt;
&lt;p&gt;Then it began.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>[IOI 2014 Part 1] Everything is More Exciting with Lightsabers</title>
      <link>//blog.vero.site/post/lightsabers</link>
      <pubDate>Mon, 21 Jul 2014 17:31:10 +0800</pubDate>
      
      <guid>//blog.vero.site/post/lightsabers</guid>
      <description>&lt;p&gt;Okay, I guess it was really naïve of me to suppose that I could get
any considerable amount of blogging done before the IOI ended.
Onward…&lt;/p&gt;
&lt;p&gt;We left off at the end of the practice session. As if somebody were
taking revenge against us for not having to suffer through any airplane
trips, we were served a cold airplane meal for lunch.&lt;/p&gt;
&lt;p&gt;Seriously, the box had a sticker that noted its manufacturer as
something something Air Kitchen and another translucent sticker that
badly covered an inscription saying the same thing in much bigger
letters. It contained a cold apple salad, a cold chicken bun, a cold
flat plastic cylinder of orange juice, and a package of plastic utensils
that was exactly like the utensils that came with every airplane meal
ever. I was disappointed, but at least the salad tasted okay, and I ate
an extra one because two of my teammates volunteered theirs.&lt;/p&gt;
&lt;p&gt;To pass the time, we played an extra-evil
&lt;a href=&#34;https://en.wikipedia.org/wiki/Ninety-nine_(addition_card_game)&#34;&gt;ninety-nine&lt;/a&gt;
variant. Apparently this is a very Taiwanese game because lots of
student guides were teaching their teams the game, although our special
cards differ from the ones Wikipedia lists in a lot of ways and our evil
variant created more opportunity for sabotage and counter-sabotage and
bluffing. 7s are used to draw your replacement card from somebody else’s
hand, and that person cannot draw again and will have one less card;
aces are used to swap your entire hand with somebody else, who also
cannot draw a card; small-value cards can be combined to form special
values (e.g. play a 2 and 5 for the effect of a 7) but after playing a
combination you can only draw one replacement card; and later, to speed
up the game, we added a rule where all 9s had to be unconditionally
discarded without replacement but would still get shuffled back into the
draw pile. Players lose if it’s their turn and they have no playable
cards, including no cards at all.&lt;/p&gt;
&lt;p&gt;While we were playing and repeatedly reveling in everybody ganging up
to beat the winner from the last round, an instrumental version of “You
Are My Sunshine” played on repeat in the background for literally the
entire time. It wasn’t a very good version either. If you didn’t listen
carefully for the fade-out and few seconds of silence at the end of each
loop, you’d think that the loop was only one verse long.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>[IOI 2014 Part 0] Waiting</title>
      <link>//blog.vero.site/post/waiting</link>
      <pubDate>Tue, 15 Jul 2014 21:30:53 +0800</pubDate>
      
      <guid>//blog.vero.site/post/waiting</guid>
      <description>&lt;p&gt;Yes, I know day 1 of the contest already ended and is probably a more
interesting topic to blog about, but I finished writing this last night
just before the internet was cut off to quarantine the contestants from
the leaders, who received the problems and began translating them. I
didn’t know about this until it was too late, which is why I’ve been
waiting since yesterday to post this.&lt;/p&gt;
&lt;p&gt;To provide a counterpoint to the last post, one of the many,
&lt;em&gt;many&lt;/em&gt; advantages of entering an international competition is
that you get to meet a lot more people you already know, so there’s less
time spent being socially awkward. While waiting for stuff to happen,
aside from all the expected time spent with the Taiwan team, I also
talked to, played games with, and otherwise entertained a whole lot of
people I already knew, including my schoolmates (no less than fourteen
of them were volunteers) and some of the college students who had
shepherded us around during olympiad training.&lt;/p&gt;
&lt;p&gt;Which is a good thing, too, because there was a lot of waiting.&lt;/p&gt;
&lt;p&gt;First I waited for my teammates; my parents had decided to take me to
the hotel (Fullon Shenkeng) directly, since I had a lot of stuff, and I
had arrived early. This took about an hour, after which we had lunch.
Then I waited for the hotel to give us our room cards, which took about
five hours, after which we had dinner. Finally, at night, I waited for
the Codeforces system tests. Very nerve-wracking. But I’m getting ahead
of myself.&lt;/p&gt;
&lt;p&gt;Advantage #2 of being the home team: you can talk to all of the
organizers and volunteers fluently, so you can get them to help you more
quickly. Although we waited for our room cards for an obscenely long
time, I got the volunteers to replace my pinyin-name-card with a
legitimate one that said “Brian” on it really quickly.&lt;/p&gt;
&lt;p&gt;Unfortunately, after I talked to a few more people, it looks like
they aren’t going to change my name in the database. So if anybody
reading this chances to look at the IOI live ranking and is unable to
find me, look for the first name “Po-En”.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>[IOI 2014 Part −1] Prelude.hs</title>
      <link>//blog.vero.site/post/prelude</link>
      <pubDate>Sat, 12 Jul 2014 22:34:59 +0800</pubDate>
      
      <guid>//blog.vero.site/post/prelude</guid>
      <description>&lt;p&gt;Indexing debates are boring. Especially when you can just flagrantly
disregard all concerns about memory safety (because C++ never had any in
the first place) and write
&lt;code&gt;int _array[100008], array = _array + 2;&lt;/code&gt; I do this
alarmingly often; hence, the title. Hashtag firstworldanarchists. Three
± 1 cheers for
&lt;a href=&#34;http://www.haskell.org/ghc/docs/7.6-latest/html/libraries/array-0.4.0.1/Data-Array.html#v:array&#34;&gt;Haskell
arrays&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Anyway. One of the disadvantages of entering an international
competition as the home team is a lack of time to completely absorb the
idea that what is about to happen is a Big Thing. There was lots of time
before the other international competitions I went to to spend
uncomfortably on airplanes trying to adjust for the timezone
difference.&lt;/p&gt;
&lt;p&gt;Not so for a competition in one’s own country. Right up to the night
before entering the hotel that marks the beginning of everything, I’m
still at home, furiously refreshing the AoPS IMO fora and Facebook for
news (!!!), lazily solving trivial Codeforces Div II problems with
&lt;del&gt;pointless&lt;/del&gt; point-free Haskell one-liners, and blogging.
(There’s more, but I kind of want it to be a surprise.)&lt;/p&gt;
&lt;p&gt;Anyway, let’s set the rules. Well, there’s only one, honestly:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>#pyconapac2014</title>
      <link>//blog.vero.site/post/pycon</link>
      <pubDate>Tue, 20 May 2014 22:26:53 +0800</pubDate>
      
      <guid>//blog.vero.site/post/pycon</guid>
      <description>&lt;p&gt;Late post. As usual.&lt;/p&gt;
&lt;p&gt;It started with an online competition — write programs, solve
problems, get points. I wouldn’t call the problems easy, but they
weren’t hard either. So I solved all of them. To make it even less
impressive, only about twenty people submitted anything at all.&lt;/p&gt;
&lt;p&gt;But the result was just what it was: I ended up with a free ticket to
&lt;a href=&#34;https://tw.pycon.org/2014apac/en/&#34;&gt;PyCon APAC 2014&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I’d prefer a conference about a more functional programming language,
but I’ll take what I get. Another adventure!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Rise from the Ashes</title>
      <link>//blog.vero.site/post/rise</link>
      <pubDate>Tue, 29 Apr 2014 19:27:33 +0800</pubDate>
      
      <guid>//blog.vero.site/post/rise</guid>
      <description>&lt;p&gt;After the first stage of selection camp, I was very nervous because I
was fifth place in a selection sequence that would finally result in a
team of four.&lt;/p&gt;
&lt;p&gt;I screwed myself over on the first mock test by committing to a bad
implementation method on a problem that was hard to get points on. My
method seemed simple, but the memory usage leaked out in a way that was
confusing and hard to patch; unfortunately, I tried to patch it in
increasingly desperate and convoluted ways rather than scrapping the
method, and thus missed out on many of the points elsewhere.&lt;/p&gt;
&lt;p&gt;During the second test I failed to read the last problem carefully
and spent too much of my time on the second problem, once again missing
out on a lot of relatively easy points. I had optimized and optimized
and pushed my quadratic runtime down to linearithmic, which would allow
me to get the points for the last subtask — or so I thought. But with 10
minutes left I had all but one testcase right, and after desperately
rereading my code, I realized that I had a string comparison stuck in an
inner loop that could make my runtime degenerate to quadratic if the
input string had lots of the same digit. In order to have a solidly
linearithmic algorithm, I would have to implement a
&lt;a href=&#34;https://en.wikipedia.org/wiki/Suffix_array&#34;&gt;suffix array&lt;/a&gt;.
Ten minutes? I gave up. (The problem setters told me afterwards that
hashing would have worked too; I didn’t think of that at all. Oops.) I
spent the 10 minutes reading the last problem and still failed to read
it carefully. So that did not go very well.&lt;/p&gt;
&lt;p&gt;But, as the title probably gave away, during the third and fourth
mock tests everything went much better than expected. :)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>HabitRPG</title>
      <link>//blog.vero.site/post/habitrpg</link>
      <pubDate>Thu, 17 Apr 2014 19:04:12 +0800</pubDate>
      
      <guid>//blog.vero.site/post/habitrpg</guid>
      <description>HabitRPG: harnessing the addiction of web games with cheap leveling mechanisms to destroy bad habits, avoid procrastination, and improve your life.
(Ironically, I discovered it on /r/InternetIsBeautiful.)
These claims sound a bit hyperbolic, but they are actually working on me. Most notably: for the three days after I discovered it, most of which has been spent at IOI selection camp away from school and worldly concerns, I’ve only gone on reddit once — and only for about two minutes.</description>
    </item>
    
    <item>
      <title>Puzzle 45 / Fillomino [No-Path]</title>
      <link>//blog.vero.site/post/puzzle-45</link>
      <pubDate>Tue, 15 Apr 2014 08:15:37 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-45</guid>
      <description>&lt;p&gt;As requested, a puzzle post! Straight from the WTF-variant
department. Quite hard.&lt;/p&gt;
&lt;p&gt;This is a
&lt;a href=&#34;http://www.nikoli.co.jp/en/puzzles/fillomino.html&#34;&gt;Fillomino&lt;/a&gt;,
with the additional constraint that for each polyomino, there must
&lt;em&gt;not&lt;/em&gt; exist a path (i.e. a sequence of cells, each orthogonally
adjacent to the next) that includes each of the polyomino’s cells
exactly once (and does not include cells outside the polyomino).&lt;/p&gt;
&lt;p&gt;As a degenerate case, 1-ominoes are banned as well.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Adventures in Cabal Installations</title>
      <link>//blog.vero.site/post/cabal</link>
      <pubDate>Sun, 13 Apr 2014 15:51:16 +0800</pubDate>
      
      <guid>//blog.vero.site/post/cabal</guid>
      <description>&lt;p&gt;First Google Code Jam!&lt;/p&gt;
&lt;p&gt;The format of this competition, allowing us to run programs on our
own machines, brought up a very interesting issue for me: what
programming language should I be using? (I had had similar
considerations for IPSC 2013, but GCJ’s problems are closer to the
traditional ACM-ICPC style.)&lt;/p&gt;
&lt;p&gt;The obvious choice is C++, the language I use for roughly every other
competition, but its safety (or lack thereof) is not very appealing. I
need speed, but not &lt;em&gt;that much&lt;/em&gt; speed. Unfortunately I still
haven’t gotten around to learning any other friendlier mid-level
languages (on the list: D, Go, or Rust), so I have no close substitutes
for C++ right now.&lt;/p&gt;
&lt;p&gt;Python is certainly available for a reliable arbitrary-length integer
type, if nothing else.&lt;/p&gt;
&lt;p&gt;As for non-candidates, Java has &lt;code&gt;BigInteger&lt;/code&gt; and memory
safety, but all in all I decided the benefits are too minor and it’s too
ugly without operator overloading. Scala is probably way too slow. So I
don’t expect to be writing either language.&lt;/p&gt;
&lt;p&gt;The only difficult choice I have to make is, of course, Haskell —
which can be quite fast, even while it’s ridiculously type-safe and
expressive and referentially transparent and easy to reason about, once
you’ve:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;figured out how to do the problem&lt;/li&gt;
&lt;li&gt;scrapped step 1 and &lt;em&gt;actually&lt;/em&gt; figured out how to do the
problem &lt;em&gt;functionally&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;gotten the thing to compile&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Even if I can handle step 1, step 2 is by no means a simple task, as
my struggle to implement a mere
&lt;a href=&#34;//blog.vero.site/post/haskell&#34;&gt;Sieve of Eratosthenes&lt;/a&gt;
efficiently shows. That is fun, but not at all intuitive; I am doubtful
I can do this under contest conditions. It is extremely difficult to
transfer my skills in learning how to implement, say, a segment tree or
treap into this language.&lt;/p&gt;
&lt;p&gt;But! Google links to the
&lt;a href=&#34;http://www.go-hero.net/jam/10/round/0&#34;&gt;programming language
breakdown for 2010 Qualification Round&lt;/a&gt; as an example, and much to my
surprise, Haskell ranks somewhere between sixth and tenth place in
popularity (depending on what you sort by), so there are functional
superprogrammers who can presumably do something like this.&lt;/p&gt;
&lt;p&gt;As it happens, I ended up implementing all four solutions to the
qualification rounds in Haskell, because of the relaxed time limit and
lack of any involved algorithms and data structures. I think it was
worth it.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Re-Re-Revisiting the SAT</title>
      <link>//blog.vero.site/post/sat</link>
      <pubDate>Sat, 08 Feb 2014 00:54:03 +0800</pubDate>
      
      <guid>//blog.vero.site/post/sat</guid>
      <description>&lt;p&gt;First, I got worked up about the test. Then I got a score and ranted
about it on this blog. (I’m still uncertainly hoping that didn’t come
off as arrogant. Let me add, I did not get a perfect PSAT.) Then a
friend pitched to me the idea that I write an article about it for my
school newspaper, which I did. It was far too long. As if that weren’t
enough, I then decided to examine whether the SAT was an accurate
prediction of “academic ability and success” for my English research
paper. Now I’ve come full circle to this blog, where I’m going to try to
synthesize and conclude everything, free of the shackles of the research
paper format, to allow me to move on with my life. This post contains
bits lifted from all three essays and lots of new stuff; I’ve been
editing it for so long that I feel like I have it memorized. Its word
count is around that of the newspaper article &lt;em&gt;plus&lt;/em&gt; the research
paper, i.e. far far far too long.&lt;/p&gt;
&lt;p&gt;But whatever, nobody reads this blog anyway and I have to get this
out of my system. When I said I wanted to “move on with my life”, I
really meant my winter homework. Oops!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; I am not an admissions officer. I have
not yet even been accepted to a prestigious university (despite rumors
to the contrary…), for whatever definition of “prestigious”, unlike some
of the bloggers I’m referencing. So some of this is pure speculation. On
the other hand, some of it is researched and referenced, and I think the
pure speculation still makes sense. That’s why I’m posting it.&lt;/p&gt;
&lt;p&gt;Okay, here we go…&lt;/p&gt;
&lt;p&gt;Let’s start with the question of accurate prediction. The SAT is a
useful predictor, but not as useful as one might assume. Intuitively, it
ought to be more accurate than other metrics because it’s a
&lt;em&gt;standardized&lt;/em&gt; test, whereas GPAs other awards vary by habits of
teacher and region and are hard to compare objectively. But as a
&lt;a href=&#34;http://research.collegeboard.org/sites/default/files/publications/2012/7/researchreport-2008-5-validity-sat-predicting-first-year-college-grade-point-average.pdf&#34;&gt;study
from the College Board &lt;em&gt;itself&lt;/em&gt; (PDF)&lt;/a&gt; found:&lt;/p&gt;
&lt;blockquote&gt;
the correlation of HSGPA [high-school GPA] and FYGPA [first-year GPA in
college] is 0.36 (Adj. r = 0.54), which is slightly higher than the
multiple correlation of the SAT (critical reading, math, and writing
combined) with FYGPA (r = 0.35, Adj. r = 0.53).
&lt;/blockquote&gt;
&lt;p&gt;Of course, that doesn’t mean the SAT is worthless, because combining
the SAT score and high school GPA results in a more accurate metric than
either one alone. But by “more accurate” I refer to a marginal
improvement of 0.08 correlation.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The Sands of Time</title>
      <link>//blog.vero.site/post/time</link>
      <pubDate>Tue, 31 Dec 2013 18:33:17 +0800</pubDate>
      
      <guid>//blog.vero.site/post/time</guid>
      <description>&lt;p&gt;Random video! Although I feel that I’ve heard it earlier, my first
conscious memory of getting linked to it is from
&lt;a href=&#34;http://usamoarchive.wordpress.com/2012/03/01/youre-older-than-youve-ever-been/&#34;&gt;this
post&lt;/a&gt;. At first I thought it would be the right background music for
this post, but upon further reflection I think it mainly suited me while
I was writing this post. Well, it’s topical if you mentally replace
“day” with “year”.&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/q2bo_u_YmW8&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;Anyway. Around this time a year ago, I paused my participation in big
high-school competitions, for a variety of reasons.&lt;/p&gt;
&lt;p&gt;Firstly, I stopped attempting to make IMO both because I wouldn’t get
that much from the training and because other people ought to have the
opportunity. I was concerned that I might condition myself to only be
able to do math with the short-term motivation of contests. Better to
focus on college math and maybe some original research, I thought.
During the year, I did lots of the former and very little of the latter.
Meh.&lt;/p&gt;
&lt;p&gt;As for the IOI, my obvious next target: I was tired of training and
going abroad while paranoid about whether my immune system would hold
up. I didn’t feel that the IOI was worth that. To some degree, I also
felt burned out about programming. Long story short, my treatment should
end soon, and learning Haskell completely resolved the burnout
problem.&lt;/p&gt;
&lt;p&gt;But the most important reason, I think, was that “high school was too
short”. I started math competitions ridiculously early and didn’t spend
much time exploring other interests. I thought I knew myself well enough
that I could say I didn’t have many more interests at all, but I was
completely wrong (psych nerds will reflexively note this to be the
&lt;a href=&#34;https://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect&#34;&gt;Dunning-Kruger
effect&lt;/a&gt;). I coded lots in weird languages — Haskell, as mentioned
previously, plus Scala, plus all manner of other magical command line
tools. I wrote my first math problem and submitted it officially, picked
up a new instrument, went to a debate competition, served as an
unimportant tech guy for MUN, discovered and became hooked on
Pentatonix, participated in three puzzle hunts in Australia and one in
Massachusetts, figured out my rough political stance, rode a boat, got
retweeted by &lt;span class=&#34;citation&#34; data-cites=&#34;eevee&#34;&gt;@eevee&lt;/span&gt; and
&lt;span class=&#34;citation&#34;
data-cites=&#34;Kyrgyzstan_News&#34;&gt;@Kyrgyzstan_News&lt;/span&gt;, increased my
Neopets™ fortune by over 3400%, and lurked on FurAffinity a little too
much.&lt;/p&gt;
&lt;p&gt;But now, dear competition world, I’m back.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>74 Days</title>
      <link>//blog.vero.site/post/74-days</link>
      <pubDate>Fri, 27 Dec 2013 18:14:21 +0800</pubDate>
      
      <guid>//blog.vero.site/post/74-days</guid>
      <description>&lt;p&gt;I did it!&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;//blog.vero.site/img/ascension.png&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/ascension.png&#34; alt=&#34;ascension&#34; width=&#34;652&#34; height=&#34;479&#34; class=&#34;aligncenter size-full wp-image-2307&#34; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Okay, I got a 2400. Happy now?</title>
      <link>//blog.vero.site/post/2400</link>
      <pubDate>Thu, 21 Nov 2013 22:59:07 +0800</pubDate>
      
      <guid>//blog.vero.site/post/2400</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; from the future, 2017-11-25: I am fairly
unhappy with this rant as it stands — it makes many points I still agree
with, but it just sounds sooo pretentious — but it is one of very few
posts to actually receive a link from an external post I’m aware of, so
I am letting it stand for historical interest. I wrote this years ago;
please don’t take it out of context.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I have to admit, I got unhealthily worked up about getting this
score.&lt;/p&gt;
&lt;p&gt;For the purposes of college, I only ever wanted a score that wouldn’t
be a deal-breaker — anything above 2300 would be enough. Any other time
I had left would be better spent in other endeavors. Such endeavors
might help on the college app, but more importantly, I’d also get to
enjoy them.&lt;/p&gt;
&lt;p&gt;So why am I here? Partly it’s because my classmates got worked up
about it. Somebody specifically requested me to post my score somewhere.
And partly it’s because there couldn’t be a better way at the moment to
establish my authority to (yet again) rant against standardized tests
here.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 44 / ???</title>
      <link>//blog.vero.site/post/puzzle-44</link>
      <pubDate>Tue, 19 Nov 2013 00:00:26 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-44</guid>
      <description>&lt;ins datetime=&#34;2013-11-18T23:20:18+00:00&#34;&gt;
Edit 11/19 7:23 AM UTC+8: Fixed some transcription errors on right:
&lt;strong&gt;R4C17 is D instead of N, and R15C17 is G instead of E.&lt;/strong&gt;
Neither change should greatly impact solvability. Thanks to ksun for
pointing out an error.
&lt;/ins&gt;
&lt;p&gt;Logic puzzles are easy to construct if one doesn’t have some specific
pattern or theme in mind. It’s just that, given the increasing number of
constructors and puzzles with amazing themes, I don’t think it’s very
meaningful for me to just construct more puzzles of the same genres by
putting down clues randomly. That’s why, for my seventeenth birthday, I
took the puzzlehunt route and made something without instructions that
is not completely solved by logical deduction. Still, I’ve provided all
the information needed to do this puzzle initially, so I hope my not
getting the inductive bits test-solved can be excused.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Fiction</title>
      <link>//blog.vero.site/post/fiction</link>
      <pubDate>Sun, 20 Oct 2013 11:54:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/fiction</guid>
      <description>&lt;p&gt;“I like fantasy books! I used to read a lot of Eoin Colfer.”&lt;/p&gt;
&lt;p&gt;“What does that mean, &lt;em&gt;used to&lt;/em&gt;? You don’t read anymore?
That’s so &lt;em&gt;sa-a-a-ad&lt;/em&gt;…”&lt;/p&gt;
&lt;p&gt;Our teacher and I had this conversation during our first English
class, and I realized I agreed with her. Well, no, of course I still
read: news articles, r/AskReddit threads, and the books we get assigned
in class. But not fiction, almost. As I later mentioned to my teacher, I
followed Sam Hughes’ &lt;a href=&#34;http://qntm.org/ra&#34;&gt;Ra&lt;/a&gt; avidly
(something I highly recommend). That was it.&lt;/p&gt;
&lt;p&gt;What does my present self still think of Eoin Colfer? Although I
adored the &lt;i&gt;Artemis Fowl&lt;/i&gt; books when I was younger, my interest
faded, but not before I had recommended it to my sister. The
conversation spurred me to get out the seventh &lt;i&gt;Artemis Fowl&lt;/i&gt; book,
which I had stopped reading halfway through a year ago, and finish it.
It was still true that I didn’t like it as much, because I couldn’t feel
the high stakes strongly in the book and I found that the joking asides
compounded the problem. But a few days later, when we took a trip to the
Taipei library, I found the eighth book and borrowed it, plowing through
nine-tenths of the book before we left. The ending seemed to be happy
but still felt counterintuitively poignant for me. In any case, I had
closure.&lt;/p&gt;
&lt;p&gt;So what’s the lesson? Authors vary in output too. I was naïve to
suppose that because I found this book boring, I had outgrown all books
that were even vaguely similar. In the same trip, I also borrowed a
bunch of other random fantasy books, plus a realistic fiction book about
a teenage pregnancy, just for kicks. It turned out to be surprisingly
good. In a week, I read four books, cover to cover, despite a typical
load of homework and chemo.&lt;/p&gt;
&lt;p&gt;Any excuses I made before about not having enough time simply don’t
hold water. Still, I have yet to figure out if this sort of reading is
sustainable, because not every book is so engrossing. Far from it…&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 43 / Fillomino [Nonrectangular &#43; Walls]</title>
      <link>//blog.vero.site/post/puzzle-43</link>
      <pubDate>Mon, 30 Sep 2013 20:52:46 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-43</guid>
      <description>&lt;p&gt;I’m extremely satisfied — a little incredulous, in fact — with how
this puzzle came out.
&lt;a href=&#34;https://chaosatthesky.wordpress.com/&#34;&gt;chaotic_iak&lt;/a&gt; labels it
the “most ridiculous fillomino ever in history”. Apparently, it’s rather
tricky.&lt;/p&gt;
&lt;ins datetime=&#34;2013-09-30T13:05:57+00:00&#34;&gt;
ETA: Journalistic responsibility compels me to mention that chaotic_iak
also added, “might be beaten later”. Oops?
&lt;/ins&gt;
&lt;p&gt;This is a
&lt;a href=&#34;http://www.nikoli.co.jp/en/puzzles/fillomino.html&#34;&gt;Fillomino&lt;/a&gt;
combining the
&lt;a href=&#34;http://mathgrant.blogspot.tw/2011/09/monday-mutant-95-polyominous-no.html&#34;&gt;Nonrectangular&lt;/a&gt;
(polyominoes can’t be rectangles) and
&lt;a href=&#34;http://mathgrant.blogspot.tw/2012/10/fillomino-fillia-2-preview-series-walls.html&#34;&gt;Walls&lt;/a&gt;
(polyominoes can’t span thick lines) variant rules. I think the first
variant first came from mathgrant; I’m not as sure about the second, but
they both appeared in
&lt;a href=&#34;http://logicmastersindia.com/forum/forums/thread-view.asp?tid=525&amp;amp;posts=64&amp;amp;start=1&#34;&gt;Fillomino-Fillia
2&lt;/a&gt;, at least.&lt;/p&gt;
&lt;p&gt;Write a number in every empty cell so that every group of cells with
the same number that is connected through its edges is a shape that’s
not a rectangle with that number of cells. In addition, cells separated
by a thick border may not contain the same number.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Anesthesia</title>
      <link>//blog.vero.site/post/anesthesia</link>
      <pubDate>Mon, 19 Aug 2013 23:02:46 +0800</pubDate>
      
      <guid>//blog.vero.site/post/anesthesia</guid>
      <description>&lt;p&gt;I couldn’t remember how long it had been since we entered the ninth
floor. Somebody had covered the elevator area with cartoon animals and
landscapes. Not surprising, since all the children’s wards were
here.&lt;/p&gt;
&lt;p&gt;Funny idea, that: I am still a child for medical purposes.&lt;/p&gt;
&lt;p&gt;I was not sick. Not more than usually, anyway. I didn’t need to get
an IV drip installed or even change into the patient uniform the first
night. There was nothing to do or feel. No guilt or fear, unlike last
time — this check-up had been scheduled for along time and served as a
simple test to see how my bone marrow was doing. No annoyance, either,
because I knew it mattered; but no apprehension of the results, or of
the needles. You can never get used to the needles, but you learn to
just accept them anyway. There is nothing to be done about them.&lt;/p&gt;
&lt;p&gt;Who knows? The result could be something bad. But I know enough not
to take this hypothetical seriously before it was anything other than
hypothetical.&lt;/p&gt;
&lt;p&gt;I slept, and dreamt of vomiting carrots.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 42 / Fillomino [Greater-Than]</title>
      <link>//blog.vero.site/post/puzzle-42</link>
      <pubDate>Fri, 19 Jul 2013 08:57:13 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-42</guid>
      <description>&lt;p&gt;Oops, I forgot the “puzzles” category was semi-reserved for puzzles I
constructed/wrote, because among other things an LMI bot is following
it. Anyway, if this makes up for anything, I have a puzzle that I’ve
procrastinated posting for very, very long.&lt;/p&gt;
&lt;p&gt;This is a
&lt;a href=&#34;http://www.nikoli.co.jp/en/puzzles/fillomino.html&#34;&gt;Fillomino&lt;/a&gt;
puzzle. Inequality signs in the grid must be satisfied by the two
numbers they touch.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Rankk Solving Statistics</title>
      <link>//blog.vero.site/post/rankk-stats</link>
      <pubDate>Thu, 18 Jul 2013 22:43:21 +0800</pubDate>
      
      <guid>//blog.vero.site/post/rankk-stats</guid>
      <description>&lt;p&gt;Funny, I go on a trip to Penghu followed by a four-day science camp
and also get dragged into drawing classes and some sort of movie
advising joint, and this is what I decide to blog about.&lt;/p&gt;
&lt;p&gt;Since it’s summer, I went back to
&lt;a href=&#34;http://www.rankk.org/&#34;&gt;Rankk&lt;/a&gt; and solved stuff. This is lots
of fun if you’re good with computers, plus a little math, cryptography,
and general puzzling. I’m still stuck on level 8… oh well. Since the
levels didn’t seem very indicative of difficulty to me, I decided to do
some analysis.&lt;/p&gt;
&lt;p&gt;New challenges have been added to Rankk over time, so my metric of
difficulty is the number of solvers divided by the time from release to
now. Of course this is far from perfect; for example, a challenge’s
author doesn’t always seem consistently counted as a solver, problems
with lower numbers and problems that will help level up are more likely
to get checked out by new rankkers, and so on. But this is just for
fun.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Music</title>
      <link>//blog.vero.site/post/music</link>
      <pubDate>Sat, 22 Jun 2013 23:13:54 +0800</pubDate>
      
      <guid>//blog.vero.site/post/music</guid>
      <description>&lt;p&gt;Isn’t it weird to suddenly talk about this topic?&lt;/p&gt;
&lt;p&gt;I don’t think that I have ever talked about music any more than
briefly in passing. It might be confusing to my &lt;em&gt;finger quotes&lt;/em&gt;
&lt;em&gt;audience&lt;/em&gt;, and I worry I’ll seem inconsistent.&lt;/p&gt;
&lt;p&gt;Well, a foolish consistency is the hobgoblin of little minds. If you
wonder, “I didn’t know that you sang and played the piano, or you liked
music in that way — or, at all…” please note that I didn’t know
either.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Test</title>
      <link>//blog.vero.site/post/test</link>
      <pubDate>Sun, 09 Jun 2013 21:58:01 +0800</pubDate>
      
      <guid>//blog.vero.site/post/test</guid>
      <description>&lt;p&gt;Parts of this (a majority of questions, I hope) are intended as
satire. Other parts of this are silliness created to blow off steam from
being coerced into spending nine unproductive hours. Still other parts
exist simply because I wanted to have equally many questions per test.
Also, 256th post w00t. &lt;ins datetime=&#34;2019-08-22T22:21:48-0400&#34;&gt;(2019
edit: after the migration, this post count is wildly incorrect, but
whatever.)&lt;/ins&gt;&lt;/p&gt;
&lt;h3&gt;
“Verbal Reasoning”
&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Directions:&lt;/em&gt; The questions in this test are multiple-choice.
Each question has four possible choices. Read each question and decide
which answer is the best answer. Find the row in your answer sheet that
matches the number of the question. In that row, fill in the oval
corresponding to the answer you selected.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Haskell and Primes</title>
      <link>//blog.vero.site/post/haskell</link>
      <pubDate>Sat, 25 May 2013 23:03:05 +0800</pubDate>
      
      <guid>//blog.vero.site/post/haskell</guid>
      <description>&lt;blockquote&gt;
“I have been told that any encryption becomes safer if the underlying
algorithm is maximally obscured, what is most conveniently done by
coding it in Haskell.” – rankk
&lt;/blockquote&gt;
&lt;p&gt;Functional programming is terribly addicting! Partly I think the
completely different way of thinking makes it feel like learning
programming, and falling in love with it, all over again. Partly there’s
this evil sense of satisfaction from using &lt;code&gt;$&lt;/code&gt;s (and later
&lt;code&gt;&amp;lt;$&amp;gt;&lt;/code&gt;s and &lt;code&gt;=&amp;lt;&amp;lt;&lt;/code&gt;s and
&lt;code&gt;&amp;amp;&amp;amp;&amp;amp;&lt;/code&gt;s) to improve readability for initiated
Haskellers and worsen it for everybody else. Partly it’s because
&lt;a href=&#34;http://learnyouahaskell.com/&#34;&gt;&lt;i&gt;Learn You a Haskell for Great
Good!&lt;/i&gt;&lt;/a&gt; is such a fun read — there are too many funny bits to list
but my favorite so far is when the author analyzes the first verse of
Avril Lavigne’s &lt;em&gt;Girlfriend&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Although I think my code in Haskell tends to be more readable than in
other languages, code obfuscation in Haskell is almost natural: all you
have to do is refactor the wrong function to be “pointfree”, which means
that even though it’s a function that takes arguments, you define it
without parameters by manipulating and joining a bunch of other
functions. Example (plus a few other tiny obfuscations):&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb1&#34;&gt;&lt;pre
class=&#34;sourceCode haskell&#34;&gt;&lt;code class=&#34;sourceCode haskell&#34;&gt;&lt;span id=&#34;cb1-1&#34;&gt;&lt;a href=&#34;#cb1-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;isPrime &lt;span class=&#34;ot&#34;&gt;=&lt;/span&gt; liftA2 (&lt;span class=&#34;op&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt;) (liftA2 (&lt;span class=&#34;op&#34;&gt;$&lt;/span&gt;) (&lt;span class=&#34;fu&#34;&gt;all&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;.&lt;/span&gt; ((&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;) (&lt;span class=&#34;dv&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;/=&lt;/span&gt;)) &lt;span class=&#34;op&#34;&gt;.&lt;/span&gt; &lt;span class=&#34;fu&#34;&gt;rem&lt;/span&gt;) (&lt;span class=&#34;fu&#34;&gt;flip&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-2&#34;&gt;&lt;a href=&#34;#cb1-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;fu&#34;&gt;takeWhile&lt;/span&gt; [&lt;span class=&#34;dv&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;..&lt;/span&gt;] &lt;span class=&#34;op&#34;&gt;.&lt;/span&gt; (&lt;span class=&#34;fu&#34;&gt;flip&lt;/span&gt; (&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;) &lt;span class=&#34;op&#34;&gt;$&lt;/span&gt; liftA2 (&lt;span class=&#34;op&#34;&gt;*&lt;/span&gt;) &lt;span class=&#34;fu&#34;&gt;id&lt;/span&gt; &lt;span class=&#34;fu&#34;&gt;id&lt;/span&gt;) &lt;span class=&#34;op&#34;&gt;.&lt;/span&gt; (&lt;span class=&#34;op&#34;&gt;&amp;gt;=&lt;/span&gt;))) ((&lt;span class=&#34;op&#34;&gt;&amp;lt;&lt;/span&gt;) &lt;span class=&#34;dv&#34;&gt;1&lt;/span&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;QQ wordpress why no Haskell highlighting &lt;ins&gt;(Editor’s note from
2017: The migration should highlight this now!)&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;Also, for some reason, you can do this in Haskell:&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb2&#34;&gt;&lt;pre
class=&#34;sourceCode haskell&#34;&gt;&lt;code class=&#34;sourceCode haskell&#34;&gt;&lt;span id=&#34;cb2-1&#34;&gt;&lt;a href=&#34;#cb2-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;ghci&lt;span class=&#34;op&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;kw&#34;&gt;let&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;2&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;2&lt;/span&gt; &lt;span class=&#34;ot&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;5&lt;/span&gt; &lt;span class=&#34;kw&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;2&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;2&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb2-2&#34;&gt;&lt;a href=&#34;#cb2-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;dv&#34;&gt;5&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;(via &lt;a href=&#34;http://www.yellosoft.us/evilgenius/&#34;&gt;Haskell for the
Evil Genius&lt;/a&gt;)&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Okay, but seriously now. I wrote this about my journey to learn
functional programming in the
&lt;a href=&#34;//blog.vero.site/post/programming&#34;&gt;programming babble post&lt;/a&gt; half a
year ago:&lt;/p&gt;
&lt;blockquote&gt;
The main obstacle I have is that it’s hard to optimize or get
asymptotics when computation is expensive (a big problem if you’re
trying to learn through Project Euler problems, particularly ones with
lots of primes).
&lt;/blockquote&gt;</description>
    </item>
    
    <item>
      <title>MUMS Puzzle Hunt 2013</title>
      <link>//blog.vero.site/post/mums</link>
      <pubDate>Fri, 24 May 2013 21:44:24 +0800</pubDate>
      
      <guid>//blog.vero.site/post/mums</guid>
      <description>&lt;p&gt;&lt;a href=&#34;//blog.vero.site/img/informatix.jpg&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/informatix.jpg?w=300&#34; alt=&#34;Informatix [MUMS Puzzle Hunt 2013]&#34;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So, I somehow managed to
&lt;a href=&#34;http://www.ms.unimelb.edu.au/~mums/puzzlehunt/teamstats.html?team=not+AoPS&#34;&gt;get
25 points all by myself&lt;/a&gt; in
&lt;a href=&#34;http://www.ms.unimelb.edu.au/~mums/puzzlehunt/&#34;&gt;MUMS Puzzle
Hunt 2013&lt;/a&gt;. Well, I pestered chaotic_iak a little with
&lt;a href=&#34;http://www.ms.unimelb.edu.au/~mums/puzzlehunt/2013/puzzles/3.3_Diagnosus_ghQ3AcbJ.html&#34;&gt;3.3
Diagnosus (.html with animated .gif)&lt;/a&gt; but we still didn’t recognize
all the Pokémon until hint 3, at which point Google sufficed for me.&lt;/p&gt;
&lt;p&gt;This is nowhere near the top, but compared to the usual results of
whatever AoPS team I form, it’s amazing. By far the best result of AoPS
was on CiSRA in 2010 (46th with 58 points), before I discovered puzzle
hunts in AoPS; unfortunately due to people getting older and the influx
of younger and younger people to the fora, there are less possible
teammates each year and they have less time, so here I am by myself.
(Also I could have accepted an invitation from a guy in the
some-form-of-Elephant team, but I figure if you can win two MUMS hunts
in a row you don’t need any more people.)&lt;/p&gt;
&lt;p&gt;All in all: Yay!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 41 / Slitherlink [Clones]</title>
      <link>//blog.vero.site/post/puzzle-41</link>
      <pubDate>Sat, 27 Apr 2013 17:27:26 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-41</guid>
      <description>&lt;p&gt;I survived midterms.&lt;/p&gt;
&lt;p&gt;This is a
&lt;a href=&#34;http://www.nikoli.co.jp/en/puzzles/slitherlink.html&#34;&gt;Slitherlink&lt;/a&gt;
mutant. Draw a loop through adjacent vertices that cannot intersect
itself. Each number indicates how many of the four edges around it are
drawn. In addition, each pair of colored squares in corresponding
positions (e.g. R1C1 and R6C6, R2C8 and R7C3) must have an equal number
of edges drawn around them (i.e. if there were numbers placed there,
they would be equal).&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Example &#34;BetaWorldProblems&#34;</title>
      <link>//blog.vero.site/post/problems</link>
      <pubDate>Sat, 20 Apr 2013 11:51:06 +0800</pubDate>
      
      <guid>//blog.vero.site/post/problems</guid>
      <description>&lt;p&gt;because my title needs to mean something.
&lt;ins date=&#34;2019-02-05T18:08:23-0500&#34;&gt;(note from the future: before late
2017, when I &lt;a href=&#34;//blog.vero.site/post/hello-again&#34;&gt;migrated to Hugo and
GitHub Pages&lt;/a&gt;, the blog was called “BetaWorldProblems”.)&lt;/ins&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Φllotaxy</title>
      <link>//blog.vero.site/post/phyllotaxy</link>
      <pubDate>Thu, 04 Apr 2013 13:49:55 +0800</pubDate>
      
      <guid>//blog.vero.site/post/phyllotaxy</guid>
      <description>This is beautiful. Why do they have to make it sound all mysterious and difficult? That’s (the reciprocal of) the golden ratio, by the way.
Transcript since the resolution is far from awesome: “Most angiosperms have alternate phyllotaxy, with leaves arranged in an ascending spiral around the stem, each successive leaf emerging 137.5° from the site of the previous one. Why 137.5°? Mathematical analyses suggest that this angle minimizes shading of the lower leaves by those above.</description>
    </item>
    
    <item>
      <title>Puzzle 40 / Fillomino [Samurai]</title>
      <link>//blog.vero.site/post/puzzle-40</link>
      <pubDate>Sun, 24 Mar 2013 00:03:13 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-40</guid>
      <description>&lt;p&gt;Yeah, and there’s this. chaotic_iak rejected this variant for his
&lt;a href=&#34;https://chaosatthesky.wordpress.com/puzzles/#fff&#34;&gt;February
sequence&lt;/a&gt; in order to get consistent 7x7 dimensions, so I made one.
It’s been about a month. I have no idea why I procrastinated posting it
until now.&lt;/p&gt;
&lt;p&gt;This is a Samurai
&lt;a href=&#34;http://www.nikoli.co.jp/en/puzzles/fillomino.html&#34;&gt;Fillomino&lt;/a&gt;,
which means each grid satisfies the constraints on its own. Write a
number in every empty cell so that, in each square grid, every group of
cells with the same number that is connected through its edges has that
number of cells. Note that the two grids must contain the same numbers
where they overlap, but the grouping should be considered independently.
I’d explain this really carefully if it weren’t the main gimmick of this
puzzle.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Google Reader Powering Down</title>
      <link>//blog.vero.site/post/google-reader-powering-down</link>
      <pubDate>Thu, 14 Mar 2013 20:35:09 +0800</pubDate>
      
      <guid>//blog.vero.site/post/google-reader-powering-down</guid>
      <description>&lt;p&gt;Google just announced
&lt;a href=&#34;http://googlereader.blogspot.tw/2013/03/powering-down-google-reader.html&#34;&gt;it’s
shutting down Google Reader&lt;/a&gt; in three and a half months… I am
participating in the friendly Reddit DDoS-hug of all the alternatives
(&lt;a href=&#34;http://www.reddit.com/r/AskReddit/comments/1a8zgj/what_are_some_good_web_rss_readers_to_replace/c8v71t5&#34;&gt;list&lt;/a&gt;,
but scroll around in the thread for a few more). Darn.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 39 / Contact &#43; Slitherlink [Antisymmetric]</title>
      <link>//blog.vero.site/post/puzzle-39</link>
      <pubDate>Thu, 28 Feb 2013 21:38:54 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-39</guid>
      <description>&lt;p&gt;Yay crazy hybrids! I guess this one is kind of hard.&lt;/p&gt;
&lt;p&gt;Draw a loop through adjacent vertices that cannot intersect itself.
For each pair of symmetrically placed numbers, one is a Slitherlink clue
which indicates how many of the four edges around it are drawn, and one
is a Contact clue which indicates the total length of all straight
segments adjacent to it where segment length is always measured up to
the nearest turns in the loop.&lt;/p&gt;
&lt;del datetime=&#34;2017-11-25T16:26:24-0500&#34;&gt;
Please click on the image if it looks weird, which it very likely will.
&lt;/del&gt;
&lt;p&gt;&lt;ins datetime=&#34;2017-11-25T16:26:37-0500&#34;&gt;(This was a WordPress bug
that should no longer be relevant.)&lt;/ins&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Adventures in Scala Pseudo-Abuse</title>
      <link>//blog.vero.site/post/scala</link>
      <pubDate>Thu, 21 Feb 2013 22:01:25 +0800</pubDate>
      
      <guid>//blog.vero.site/post/scala</guid>
      <description>&lt;p&gt;So, what have I been doing with programming recently?&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.scala-lang.org/&#34;&gt;Scala&lt;/a&gt; is an amazing
multiparadigm programming language that runs on the Java Virtual Machine
and interoperates with Java. I learned about it last time reading random
articles on Twitter.&lt;/p&gt;
&lt;p&gt;When I say “amazing” I mean “This is a language in which my code
gives me nerdgasms every time I read it.” Wheeee.&lt;/p&gt;
&lt;p&gt;Okay, it’s not perfect. People say it’s too academic. It has a
notoriously complicated type system (which is
&lt;a href=&#34;http://scientopia.org/blogs/goodmath/2013/01/21/types-gone-wild-ski-at-compile-time/&#34;&gt;&lt;em&gt;Turing-Complete&lt;/em&gt;
at compile time&lt;/a&gt;). Its documentation is a bit patchy too. For a
serious introduction, the Scala website has plenty of links under
documentation, and a &lt;a href=&#34;http://www.scala-lang.org/node/104&#34;&gt;tour
of features&lt;/a&gt;. Somebody wrote
&lt;a href=&#34;http://www.naildrivin5.com/scalatour&#34;&gt;another tour&lt;/a&gt; that
explains things a bit more. So here, instead of introducing it
seriously, I’m just going to screw with its features.&lt;/p&gt;
&lt;p&gt;Example of freedom. Scala lets names consist of symbols, and treats
one-parameter methods and infix operators exactly the same. The full
tokenization rules are a bit detailed and I put them at the bottom of
this post for the interested. This lets you create classes with
arithmetic and domain-specific languages easily, but it also creates
some silly opportunities:&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb1&#34;&gt;&lt;pre
class=&#34;sourceCode scala&#34;&gt;&lt;code class=&#34;sourceCode scala&#34;&gt;&lt;span id=&#34;cb1-1&#34;&gt;&lt;a href=&#34;#cb1-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;scala&lt;span class=&#34;op&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;kw&#34;&gt;val&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;12&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-2&#34;&gt;&lt;a href=&#34;#cb1-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;op&#34;&gt;*:&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;Int&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;12&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-3&#34;&gt;&lt;a href=&#34;#cb1-3&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-4&#34;&gt;&lt;a href=&#34;#cb1-4&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;scala&lt;span class=&#34;op&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;*&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-5&#34;&gt;&lt;a href=&#34;#cb1-5&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;res0&lt;span class=&#34;op&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;Int&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;dv&#34;&gt;1728&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 38 / Contact</title>
      <link>//blog.vero.site/post/puzzle-38</link>
      <pubDate>Sun, 10 Feb 2013 00:00:47 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-38</guid>
      <description>&lt;p&gt;A &lt;a href=&#34;http://inabapuzzle.com/honkaku/contact.html&#34;&gt;Naoki Inaba
(JP)&lt;/a&gt; type, as seen on
&lt;a href=&#34;http://puzzleparasite.blogspot.tw/2012/01/rules-contact.html&#34;&gt;Para’s
Puzzle Site&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Draw a loop through adjacent vertices that cannot intersect itself;
each number indicates the total length of all straight segments adjacent
to it, where segment length is always measured up to the nearest turns
in the loop.&lt;/p&gt;
&lt;p&gt;Let’s see how well WordPress’s scheduling works again. Happy Chinese
New Year!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Now on GitHub!</title>
      <link>//blog.vero.site/post/github</link>
      <pubDate>Sat, 09 Feb 2013 22:54:34 +0800</pubDate>
      
      <guid>//blog.vero.site/post/github</guid>
      <description>Yay?
Right now I feel about this a lot like I felt about getting Twitter. Nobody I know personally is there, but all the “famous” “technological” people are, and something like 90% of the open-source projects I bump into are too.
Just like Twitter, I barely know how to use Git either, but that’s okay. For version control I’m going all command-line now! Last time I tried to link stuff up with Eclipse everything exploded, but after I ran git init from the terminal this time, it’s highlighting things red and green everywhere like it’s suddenly begging me not to forsake it for the command line.</description>
    </item>
    
    <item>
      <title>Pronunciation Stereotypes and the Uncrackable IPA Code</title>
      <link>//blog.vero.site/post/pronunciation</link>
      <pubDate>Thu, 07 Feb 2013 18:37:12 +0800</pubDate>
      
      <guid>//blog.vero.site/post/pronunciation</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: I wrote this in 2013. It seems too irreverent
in places when I look back, and not quite in the way that I’d like, but
maybe it’s kind of amusing anyway?&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; just because a significant number of
people in group A (esp. of a certain race/ethnicity) also have quality B
does not mean that (i) all or most people of group A have quality B or
(ii) people of group A who do not have quality B are in any way strange
or inferior.&lt;/p&gt;
&lt;p&gt;In other words, stereotypes are stupid; don’t apply them to real
people.&lt;/p&gt;
&lt;p&gt;The stereotypical “Asian” (a person from “Asia”, a mythical faraway
continent consisting of two countries, China and Japan) is too
hard-working, gets disowned for any grade below an A, has
infinitesimally thin eyeslits, and pronounces L’s and R’s
identically.&lt;/p&gt;
&lt;figure&gt;
&lt;a href=&#34;http://i.imgur.com/BtNBg.gif&#34;&gt;&lt;img src=&#34;http://i.imgur.com/BtNBg.gif&#34; alt=&#34;Animation: A door labeled Supplies opens to reveal four Asians in martial arts robes with stereotypical insignias mouthing the words &#39;Surprise!&#34; title=&#34;Supplies!&#34; /&gt;&lt;/a&gt;
&lt;figcaption&gt;
&lt;em&gt;jumps at opportunity to find and use .gif seen on Reddit without
understanding any context&lt;/em&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;The internet says the L/R thing is mostly due to Japanese having only
a single sound somewhere in between those two. Wikipedia has a page on
Japanese phonology which seems to support this. Still, Wikipedia
articles on phonology all consist of giving every sound a long
incomprehensible name, such as the “apical postalveolar flap undefined
for laterality” for the Japanese sound discussed above, and I’m not
Japanese, so don’t take my word for it.&lt;/p&gt;
&lt;p&gt;Mandarin Chinese (blatantly ignoring the myriad dialect variations)
has a perfect L sound (ㄌ) and an R sound (ㄖ) that is only a little
different. Of course, there are people who still pronounce them
identically, but it’s not common — generally, the language teaches L’s
and R’s well. Right?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 37 / Slitherlink &#43; Masyu</title>
      <link>//blog.vero.site/post/puzzle-37</link>
      <pubDate>Thu, 24 Jan 2013 15:16:51 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-37</guid>
      <description>&lt;p&gt;Nikoli
&lt;a href=&#34;http://www.nikoli.co.jp/en/puzzles/slitherlink.html&#34;&gt;Slitherlink&lt;/a&gt;
+ &lt;a href=&#34;http://www.nikoli.co.jp/en/puzzles/masyu.html&#34;&gt;Masyu&lt;/a&gt;
hybrid; I don’t know who first put them together but combinations like
this aren’t rare.&lt;/p&gt;
&lt;p&gt;Draw a loop through vertices that cannot intersect itself; each
number indicates how many of the four edges around it are drawn; the
loop must pass through all large dots, and it must go straight through
white dots while turning either before or after (or both), while it must
turn on black dots without turning either before or after.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 36 / Fillomino [LITS]</title>
      <link>//blog.vero.site/post/puzzle-36</link>
      <pubDate>Wed, 23 Jan 2013 18:29:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-36</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://mathgrant.blogspot.tw/2012/11/monday-mutant-119-polyominous-tetra.html&#34;&gt;mathgrant’s
hybrid type&lt;/a&gt;: a Fillomino (write a number in every empty cell so that
every group of cells with the same number that is connected through its
edges has that number of cells) where each tetromino has had their 4s
replaced by one of L, I, T, or S describing their shape, and they obey
the rules of LITS — they can touch if they are not congruent, they must
all be connected, and their squares cannot form a 2x2 block.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Hunter on Vacation</title>
      <link>//blog.vero.site/post/hunter</link>
      <pubDate>Wed, 23 Jan 2013 16:18:58 +0800</pubDate>
      
      <guid>//blog.vero.site/post/hunter</guid>
      <description>&lt;figure&gt;
&lt;a href=&#34;//blog.vero.site/img/rainbow.jpg&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/rainbow.jpg?w=300&#34; alt=&#34;Very faint rainbow&#34; /&gt;&lt;/a&gt;
&lt;figcaption&gt;
Faint rainbow
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;So winter vacation started and parents had planned a trip to southern
Taiwan, to get closer to nature and walk around and stuff.&lt;/p&gt;
&lt;p&gt;Also, the MIT Mystery Hunt, the absolute granddaddy of all the other
puzzlehunts in terms of age, structure, and size, happened this weekend.
Originally, I didn’t have a team and just planned to look at the puzzles
after they got archived and &lt;s&gt;try solving some puzzles&lt;/s&gt; read the
solutions while constantly thinking, “How could anybody ever solve
that?” Because of that, I wasn’t planning to even bring my laptop at
first; then I could force myself to study some long-overdue ring theory
during the nights. I was taken aback by a private message on Saturday
morning from somebody with many different names inviting me to
remote-solve for Random Thymes.&lt;/p&gt;
&lt;p&gt;Me: !!!!!!!!!!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Similarity</title>
      <link>//blog.vero.site/post/similarity</link>
      <pubDate>Wed, 16 Jan 2013 22:57:48 +0800</pubDate>
      
      <guid>//blog.vero.site/post/similarity</guid>
      <description>&lt;p&gt;Sometimes, a sentiment randomly appears in my brain. I wonder about
it. There’s a draft I’ve worked on because I’m trying to get something
out of my bubble. My emotions are confusing and they need to be
released.&lt;/p&gt;
&lt;p&gt;And after a few sentences, they’ve been released, but the post’s not
out there because I want to polish it. First it’s just a look-over for
typoes or grammar, then maybe I want to get the flow of the sentences
right or cut down the embarrassing bits.&lt;/p&gt;
&lt;p&gt;Then, on the third read-over, I don’t know why I’m writing it
anymore.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 35 / Double Back</title>
      <link>//blog.vero.site/post/puzzle-35</link>
      <pubDate>Fri, 04 Jan 2013 22:42:10 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-35</guid>
      <description>&lt;p&gt;This is another
&lt;a href=&#34;https://mellowmelon.wordpress.com/double-back/&#34;&gt;MellowMelon’s
Double Back&lt;/a&gt;. Briefly, draw a closed loop through all square centers
visiting each bold-outlined area twice. Shaded cells do not influence
solving, only aesthetics.&lt;/p&gt;
&lt;p&gt;It’s mostly easy, I think. It’s okay if you don’t know what the theme
means. (Yes, chao, I want more contrib points.) Also, WordPress seems to
have stopped automatically linking images to their files. Hmm.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 34 / Snail&#39;s Nest</title>
      <link>//blog.vero.site/post/puzzle-34</link>
      <pubDate>Tue, 18 Dec 2012 22:08:43 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-34</guid>
      <description>&lt;p&gt;It’s been a while, hasn’t it? This is something I constructed
semi-experimentally to stop failing at an entire genre of puzzles, and
then procrastinated posting just about forever. I only test-solved this
on paper; I hope I didn’t do anything silly while digitizing.&lt;/p&gt;
&lt;p&gt;Rules paraphrased from USPC because I can’t find any good links:
Write each of the given words into its own snail; letters must be
entered from the outside of the snail spirally inward. Not all squares
will be used; squares with “-” must stay blank. Each letter can appear
at most once in each row and column.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Ridiculously Long-Winded Programming Babble</title>
      <link>//blog.vero.site/post/programming</link>
      <pubDate>Sun, 16 Dec 2012 22:08:28 +0800</pubDate>
      
      <guid>//blog.vero.site/post/programming</guid>
      <description>&lt;p&gt;Okay I don’t actually know how this pointless rambling got so long. I
know the longer it is the more people will just tend to skim, because I
do that all the time. So I went back and refactored—er, rewrote all the
somewhat tangential bits (wow these puns are too easy) into footnotes.
Manually. Obviously if I have to do this again I’ll write a script for
it. But the post is still really long, and I bet nobody will read the
whole thing. Oh well.&lt;/p&gt;
&lt;p&gt;Life updates: I got out of the hospital Friday two-and-a-half weeks
ago, went to the preliminaries of NPSC (a national team programming
contest) with classmates, threw up a lot, went back into the hospital,
and came out again. I wrote a lot of stuff about the experience and how
much it sucked (hint: &lt;em&gt;a lot&lt;/em&gt;) when I started this draft around
that time, but now putting so much detail in this post feels weird. I’m
mostly good now.&lt;/p&gt;
&lt;p&gt;Three years ago NPSC was the only programming contest I really knew
of; now I’ve participated in quite a few more, both online and locally,
but it’s still the only contest I’ve entered that gives you real-time
verdicts. I believe it inherits this from being modeled after ACM-ICPC,
but that’s for college people and I’m less clear on how it works. All
the other contests, namely
&lt;a href=&#34;https://www.topcoder.com/&#34;&gt;TopCoder&lt;/a&gt;,
&lt;a href=&#34;http://www.codeforces.com/&#34;&gt;CodeForces&lt;/a&gt;,
&lt;a href=&#34;http://usaco.org/&#34;&gt;USACO&lt;/a&gt;, and the other local individual
competition (there doesn’t appear to be an English name so for the
purpose of this post I’ll just call it “Nameless Local”; there’s a
nation-wide competition in one-and-a-half weeks!), have system tests
after the contest that don’t allow you to resubmit afterwards.&lt;a
href=&#34;#fn1&#34; class=&#34;footnote-ref&#34; id=&#34;fnref1&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt; They all give pretests that you get
to know about right away, just to catch super-silly non-algorithmic
mistakes like failing to remove the debug statements or reading input
from the wrong place, but these contain weak test cases and don’t
guarantee that the solution will pass the system tests and get full
score.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Gridderface 0.5</title>
      <link>//blog.vero.site/post/gridderface-0-5</link>
      <pubDate>Tue, 27 Nov 2012 17:53:13 +0800</pubDate>
      
      <guid>//blog.vero.site/post/gridderface-0-5</guid>
      <description>Okay, I give up. Here it is: Gridderface is a (quoting the project description, which I wrote anyway so whatever) “keyboard inferface for marking grid-based puzzles in Java” that I’ve been working on for too long. It is open-source under the GPL v3.
Basically, it’s a thing you can paste logic puzzle images into to solve them in, like people do in Paint, when you can’t or don’t want to print them.</description>
    </item>
    
    <item>
      <title>Puzzle 33 / Ice Barns</title>
      <link>//blog.vero.site/post/puzzle-33</link>
      <pubDate>Thu, 22 Nov 2012 20:59:38 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-33</guid>
      <description>&lt;p&gt;Noticed this at &lt;a href=&#34;http://meanderlawn.blogspot.tw/&#34;&gt;meander
lawn&lt;/a&gt; who has a really broad puzzle blogroll… I don’t really know
what I’m doing and may have misinterpreted something, but here goes.
(Ahahaha puzzle 33 on 11/22… I wish it was intentional :P)&lt;/p&gt;
&lt;p&gt;Draw a path through square centers which enters and exits through the
given places. Outside the “ice barns” (the gray things), the path may
turn freely but may not self-intersect; inside “ice barns” the path may
self-intersect but may not turn. Each ice barn (not necessarily every
cell but every region, I think) must be passed over. The path must pass
through each given arrow in the given direction.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 32 / Slitherlink [Crosslink &#43; Liar]</title>
      <link>//blog.vero.site/post/puzzle-32</link>
      <pubDate>Mon, 19 Nov 2012 00:00:44 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-32</guid>
      <description>&lt;p&gt;Yes, a “big” crazy mutant puzzle for a “milestone”
&lt;a href=&#34;https://xkcd.com/1000/&#34;&gt;(as seen on xkcd)&lt;/a&gt;, both for this
blog and for my life. Things are rough now, but I prepared this
ridiculously ahead of time. It’s still not &lt;em&gt;really&lt;/em&gt; big, but I’m
not so experienced and I don’t have the inspiration for something like
&lt;a href=&#34;http://www.artofproblemsolving.com/Forum/viewtopic.php?f=535&amp;amp;t=506208&#34;&gt;an
entire mini-puzzlehunt&lt;/a&gt;. Also, I think I should attempt more
word-bank-based puzzles some day so I won’t fail as completely at
them.&lt;/p&gt;
&lt;p&gt;But anyway: This is a Slitherlink combining MellowMelon’s
&lt;a href=&#34;https://mellowmelon.wordpress.com/slitherlink/crosslink/&#34;&gt;Crosslink&lt;/a&gt;
and
&lt;a href=&#34;https://mellowmelon.wordpress.com/category/puzzle-types/slitherlink/liar-slitherlink/&#34;&gt;Liar&lt;/a&gt;
variations. Draw a loop through vertices that can intersect itself but
must go straight both times if it does; each number normally indicates
how many of the four edges around it are draw, but exactly one clue in
each row and column is false. Have fun.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 31 / Fillomino [Sashigane]</title>
      <link>//blog.vero.site/post/puzzle-31</link>
      <pubDate>Fri, 09 Nov 2012 17:03:16 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-31</guid>
      <description>&lt;p&gt;This is a
&lt;a href=&#34;http://www.nikoli.co.jp/en/puzzles/fillomino.html&#34;&gt;Fillomino&lt;/a&gt;
puzzle where every polyomino is required to be an L-shape, as in
&lt;a href=&#34;http://www.nikoli.co.jp/en/puzzles/sashigane.html&#34;&gt;Sashigane&lt;/a&gt;.
Write a number in every empty cell so that every group of cells with the
same number that is connected through its edges is an L-shape (with arms
of positive length and 1-cell thickness) with that number of cells.&lt;/p&gt;
&lt;p&gt;My second, and now symmetric, attempt at this crazy self-invented
mutant; &lt;a href=&#34;//blog.vero.site/post/puzzle-22&#34;&gt;puzzle 22&lt;/a&gt; was the first.
A word of warning: I can’t solve this without bifurcating near the end,
so logic purists may be disappointed, but I like the clue arrangement
too much. In fact I suspect this puzzle could have many more clues
removed without affecting uniqueness, so tight are the rule constraints
in this type.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 30 / Fillomino [Skyscrapers]</title>
      <link>//blog.vero.site/post/puzzle-30</link>
      <pubDate>Fri, 09 Nov 2012 16:58:09 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-30</guid>
      <description>&lt;p&gt;Haha, way-overdue
&lt;a href=&#34;http://logicmastersindia.com/FF2/&#34;&gt;Fillomino-Fillia&lt;/a&gt;
practice puzzle. This is a
&lt;a href=&#34;http://www.nikoli.co.jp/en/puzzles/fillomino.html&#34;&gt;Fillomino&lt;/a&gt;
puzzle; in addition to normal rules, treat numbers inside the grid as
building heights. Numbers outside the grid indicate how many buildings
can be seen from that direction, where a building blocks all buildings
of lower or equal height behind it.&lt;/p&gt;
&lt;p&gt;Edit: I should warn that the arithmetic here is pretty annoying.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 29 / Corral [Antisymmetric Multiplicative]</title>
      <link>//blog.vero.site/post/puzzle-29</link>
      <pubDate>Thu, 08 Nov 2012 17:35:43 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-29</guid>
      <description>&lt;p&gt;This is a
&lt;a href=&#34;https://mellowmelon.wordpress.com/corral/&#34;&gt;Corral&lt;/a&gt; puzzle in
which half the clues are
&lt;a href=&#34;http://mathgrant.blogspot.tw/2012/08/monday-mutant-117-inner-limits.html&#34;&gt;multiplicative&lt;/a&gt;.
For each symmetric pair of clues, one is normal and one is
multiplicative.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Adventures in Meta-Debugging</title>
      <link>//blog.vero.site/post/debug</link>
      <pubDate>Mon, 05 Nov 2012 22:28:39 +0800</pubDate>
      
      <guid>//blog.vero.site/post/debug</guid>
      <description>&lt;p&gt;Okay did I mention how I sucked at the command line? This is part of
the journey towards stopping. Yes, I’m on a Mac and it’s not very *nix-y
in some ways but it’s enough for me for now.&lt;/p&gt;
&lt;p&gt;Today’s story starts when I learned about
&lt;a href=&#34;https://www.gnu.org/software/gdb/&#34;&gt;&lt;code&gt;gdb&lt;/code&gt;&lt;/a&gt;, the
pure-command-line GNU Debugger, which is incredibly cool. I have tried
and failed to learn how to use the debug function on many of my IDEs; I
found shotgunning &lt;code&gt;printf&lt;/code&gt; statements as needed faster. This
may well be the first time I found a command-line tool so much more
intuitive than the GUI-equipped programs. Wow.&lt;/p&gt;
&lt;p&gt;Then I learned that for some reason the &lt;code&gt;gdb&lt;/code&gt; on this
computer was 6.3, which is 1.2~1.5 major versions behind (depending on
how you count) and missing a frustrating amount of features. (The one
that the current Code::Blocks installer installs is also something like
6.4. Blech.)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Unread Count</title>
      <link>//blog.vero.site/post/unread-count</link>
      <pubDate>Sat, 03 Nov 2012 11:32:50 +0800</pubDate>
      
      <guid>//blog.vero.site/post/unread-count</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; from 2019: My 2012 self wrote this. I don’t
remember writing it. This is the first time I have felt personally
attacked by a post I wrote seven years ago.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Why do so many people have these three- or four- or even five-digit
inbox unread counts? I become uncomfortable when I have more than about
five unread emails, or if there are twenty emails of whatever status in
my inbox — the rest get archived, of course. Out of sight, out of mind.
Whew. It’s hard for me to fathom how anybody can sleep knowing they have
such a scary number of unread emails waiting for them.&lt;/p&gt;
&lt;p&gt;Why does the status of being unread matter, one might ask? There are
already so many ways to classify things in the typical inbox: stars or
labels or folders or flags or whatever your mail service may call them.
Well, the thing that makes the unread qualifier stand out is that it
already has meaning; you don’t need to assign it any. It means you
haven’t read it! Thank you, Captain Obvious.&lt;/p&gt;
&lt;p&gt;If you know how to use email, there are no good reasons to ignore the
status. Is the email actually not important to the point where you won’t
even bother to read it? In that case, why is it even in your inbox? If
it’s spam, mark it as such; spam filters are pretty effective nowadays,
but only if you train them, and even if not it only takes one click to
get rid of it. If it’s some notification you don’t care about,
unsuscribe or fine-tune your subscription. As invasive as web services
are getting nowadays, I haven’t yet seen a legitimate one that doesn’t
provide a link to let you do one of these things, even if it’s concealed
in small gray text at the bottom of the email. Should you encounter a
notification that doesn’t have these links or doesn’t stop spawning evil
clones after you tell it to, don’t think twice; it is spam and should be
mercilessly filtered as such. And if you still have two hundred emails
left after all that, you should either rethink your values or start
reading them now.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 28 / Fillomino [Nonrectangular]</title>
      <link>//blog.vero.site/post/puzzle-28</link>
      <pubDate>Wed, 24 Oct 2012 20:39:47 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-28</guid>
      <description>&lt;p&gt;This is a
&lt;a href=&#34;http://www.nikoli.co.jp/en/puzzles/fillomino.html&#34;&gt;Fillomino&lt;/a&gt;
puzzle where every polyomino is required to be nonrectangular (which
also bans squares). Write a number in every empty cell so that every
group of cells with the same number that is connected through its edges
is a shape that’s not a rectangle with that number of cells.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://logicmastersindia.com/FF2/&#34;&gt;Fillomino-Fillia 2&lt;/a&gt; is
coming! Anyway I don’t know how to judge difficulty but this is probably
terrible practice. I should try a Skyscrapers if I can keep pretending
USH homework doesn’t exist which I probably shouldn’t.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 27 / LITS</title>
      <link>//blog.vero.site/post/puzzle-27</link>
      <pubDate>Tue, 23 Oct 2012 19:37:35 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-27</guid>
      <description>&lt;p&gt;Nice and tricky. (I think.)&lt;/p&gt;
&lt;p&gt;In fact I tried to be too tricky and spent a very long time fixing an
ambiguity. It was worth it though.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.nikoli.co.jp/en/puzzles/lits.html&#34;&gt;LITS -
Nikoli.&lt;/a&gt; Exactly one tetromino per region, no 2x2s, they’re
connected, adjacent tetrominoes are noncongruent.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Matrix Intuition</title>
      <link>//blog.vero.site/post/matrix</link>
      <pubDate>Sun, 14 Oct 2012 17:01:29 +0800</pubDate>
      
      <guid>//blog.vero.site/post/matrix</guid>
      <description>&lt;p&gt;Stopped by a friend’s house a few days ago to do homework, which
somehow devolved into me analyzing what programming language I should
try to learn next in a corner, which is completely irrelevant to the
rest of this post. Oops.&lt;/p&gt;
&lt;p&gt;Anyway, in normal-math-curriculum-land, my classmates are now
learning about matrices. How to add them, how to multiply them, how to
calculate the determinant and stuff. Being a nice person, and feeling
somewhat guilty for my grade stability despite the number of study hours
I siphoned off to puzzles and the like, I was eager to help confront the
monster. Said classmate basically asked me what they were for.&lt;/p&gt;
&lt;p&gt;Well, what a hard question. But of course given the curriculum it’s
the only interesting problem I think could be asked.&lt;/p&gt;
&lt;p&gt;When I was hurrying through the high-school curriculum I remember
having to learn the same thing and not having any idea what the heck was
happening. Matrices appeared in that section as a messy, burdensome way
to solve equations and never again, at least not in an interesting
enough way to make me remember. I don’t have my precalc textbook, but a
supplementary precalc book completely confirms my impressions and
“matrix” doesn’t even appear in my calculus textbook index. They
virtually failed to show up in olympiad training too. I learned that
Po-Shen Loh knew how to
&lt;a href=&#34;http://www.math.cmu.edu/~ploh/docs/math/mop2009/alg-comb.pdf&#34;&gt;kill
a bunch of combinatorics problems with them (PDF)&lt;/a&gt;, but not in the
slightest how to do that myself.&lt;/p&gt;
&lt;p&gt;Somewhere else, during what I’m guessing was random independent
exploration, I happened upon the signed-permutation-rule (a.k.a.
&lt;a href=&#34;https://en.wikipedia.org/wiki/Leibniz_formula_for_determinants&#34;&gt;Leibniz
formula&lt;/a&gt;) for evaluating determinants, which made a lot more sense
for me and looked more beautiful and symmetric&lt;/p&gt;
&lt;p&gt;&lt;span class=&#34;math display&#34;&gt;\[\det(A) = \sum_{\sigma \in S_n}
\text{sgn}(\sigma) \prod_{i=1}^n A_{i,\sigma_i}\]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;and I was annoyed when both of my linear algebra textbooks defined it
first with cofactor expansion. Even though they quickly proved you could
expand along any row or column, and one also followed up with the
permutation formula a few sections later, it still felt uglier to me.
Yes, it’s impossible to understand that equation without knowledge of
permutations and their signs, but I’m very much a permutations kind of
guy. Sue me.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 26 / Double Back</title>
      <link>//blog.vero.site/post/puzzle-26</link>
      <pubDate>Wed, 10 Oct 2012 08:48:10 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-26</guid>
      <description>&lt;p&gt;That’s not a picture. Why is it recreated as one? Oh well.&lt;/p&gt;
&lt;p&gt;You can interpret this as me about reaching level 8.1 (the user
ranking) on &lt;a href=&#34;https://www.rankk.org/&#34;&gt;rankk&lt;/a&gt; or complaining
about how infuriating level 8.1 (the puzzle) is. I’m torn.&lt;/p&gt;
&lt;p&gt;This is one of a bunch of
&lt;a href=&#34;https://mellowmelon.wordpress.com/double-back/&#34;&gt;MellowMelon’s
Double Backs&lt;/a&gt;. Briefly, draw a closed loop through all square centers
visiting each bold-outlined area twice. Shaded cells do not influence
solving, only aesthetics.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 25 / Double Back</title>
      <link>//blog.vero.site/post/puzzle-25</link>
      <pubDate>Wed, 10 Oct 2012 08:40:02 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-25</guid>
      <description>&lt;p&gt;Most uncreative picture ever! But it’s suitable after
&lt;a href=&#34;http://puzzle.cisra.com.au/&#34;&gt;CiSRA’s Puzzle Week&lt;/a&gt;. This
might be the first time our AoPS team managed all four puzzles in a
group.&lt;/p&gt;
&lt;p&gt;…sigh, now I must handle the guilt for squeezing out so much time
from my normal schedule.&lt;/p&gt;
&lt;p&gt;This is one of a bunch of
&lt;a href=&#34;https://mellowmelon.wordpress.com/double-back/&#34;&gt;MellowMelon’s
Double Backs&lt;/a&gt;. Briefly, draw a closed loop through all square centers
visiting each bold-outlined area twice. Shaded cells do not influence
solving, only aesthetics.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 24 / Double Back</title>
      <link>//blog.vero.site/post/puzzle-24</link>
      <pubDate>Wed, 10 Oct 2012 08:26:11 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-24</guid>
      <description>&lt;p&gt;Right, back to puzzles because I have nothing substantial to say.
Circumstantial evidence suggests I created this one in June.&lt;/p&gt;
&lt;p&gt;This is one of a bunch of
&lt;a href=&#34;https://mellowmelon.wordpress.com/double-back/&#34;&gt;MellowMelon’s
Double Backs&lt;/a&gt;. Draw a closed loop through all square centers visiting
each bold-outlined area twice.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 23 / Corral [Multiplicative]</title>
      <link>//blog.vero.site/post/puzzle-23</link>
      <pubDate>Wed, 19 Sep 2012 21:49:01 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-23</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://mathgrant.blogspot.tw/2012/08/monday-mutant-117-inner-limits.html&#34;&gt;Too
lazy to explain rules today&lt;/a&gt; although this is probably an easy
one.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Comments</title>
      <link>//blog.vero.site/post/comments</link>
      <pubDate>Wed, 19 Sep 2012 18:46:21 +0800</pubDate>
      
      <guid>//blog.vero.site/post/comments</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2012 self wrote this. It is a little dated
and does not entirely capture my current beliefs and attitudes, although
I have to say it’s not too far off either. As of 2018, &lt;a
href=&#34;//blog.vero.site/post/me-and-facebook&#34;&gt;Me and Facebook&lt;/a&gt; is more
relevant.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href=&#34;//blog.vero.site/img/orange-comment.png&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/orange-comment.png&#34; alt=&#34;&#34; title=&#34;orange-comment&#34; width=&#34;458&#34; height=&#34;85&#34; class=&#34;aligncenter size-full wp-image-1383&#34; /&gt;&lt;/a&gt;
Here’s a guilty secret: I like getting feedback.&lt;/p&gt;
&lt;p&gt;I’m not restricting myself to painstakingly thoughtful comments that
attempt to &lt;em&gt;build upon&lt;/em&gt; and &lt;em&gt;transform&lt;/em&gt; the post to form
an interesting conversation, the kind English teachers are hellbent on
promoting. Sure, I get the most kicks out of those, but I’m not picky.
Even single-digit pageview bars or a handful of Facebook “like”s give me
buzzes of excitement.&lt;/p&gt;
&lt;p&gt;It’s a guilty feeling, because I also think that that these are
unimaginably cheap internet currencies and should not qualify as
“meaningful” under a rational mindset. I strongly suspect visitors
accidentally click on my blog and leave after five seconds without
taking in anything, because I do that all the time to other people’s
blogs and sites. Sometimes it is out of boredom, sometimes it is because
I actually have something of higher priority to do than indiscriminate
reading, sometimes it is simply because I cannot read the language. I’ve
seen plenty of people like posts on Facebook based on the poster, only
occasionally taking into consideration the first word of the post in
question, before actually reading them.&lt;/p&gt;
&lt;p&gt;Yes, the proliferation of “liking” on Facebook bothers me. I don’t
expect everybody to reply meaningfully to everything when they just want
to express approval lightly. However, when I see that tiny minority of
people handing them out to people in their own threads like programs at
a concert, I become indignant. Under their influence, what was
originally a straightforward, meaningful badge of appreciation becomes a
handwavy gesture that carries virtually no weight, and then I don’t know
what to do when I see something I like &lt;em&gt;seriously&lt;/em&gt;. Will clicking
that button still express the feeling strongly enough?&lt;/p&gt;
&lt;p&gt;I accept that, in our stressful world, a few instant effortless gags
that take ten seconds to fully process and approve deserve a place.
Nevertheless, the number of people who seem to want to make the “like” a
completely passive and automatic action is almost physically
painful:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 22 / Fillomino [Sashigane]</title>
      <link>//blog.vero.site/post/puzzle-22</link>
      <pubDate>Mon, 10 Sep 2012 21:07:31 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-22</guid>
      <description>&lt;p&gt;This is a
&lt;a href=&#34;http://www.nikoli.co.jp/en/puzzles/fillomino.html&#34;&gt;Fillomino&lt;/a&gt;
puzzle where every polyomino is required to be an L-shape, as in
&lt;a href=&#34;http://www.nikoli.co.jp/en/puzzles/sashigane.html&#34;&gt;Sashigane&lt;/a&gt;.
Write a number in every empty cell so that every group of cells with the
same number that is connected through its edges is an L-shape (with arms
of positive length and 1-cell thickness) with that number of cells.&lt;/p&gt;
&lt;p&gt;May be slightly reminiscent of
&lt;a href=&#34;http://mathgrant.blogspot.com/2011/09/monday-mutant-95-polyominous-no.html&#34;&gt;no-rectangle
Fillominoes&lt;/a&gt;. &lt;em&gt;Slightly…&lt;/em&gt; (Has anybody done this before? It
seems so interesting that I feel like I couldn’t be first.)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>[IMO 2012 Part 6] Mostly Not About Excursions</title>
      <link>//blog.vero.site/post/not-excursions</link>
      <pubDate>Mon, 27 Aug 2012 08:40:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/not-excursions</guid>
      <description>&lt;p&gt;Yes. I know it’s been more than a month. Blogging motivation
decreases, but the responsibility of that &lt;em&gt;stay tuned&lt;/em&gt; doesn’t go
away.&lt;/p&gt;
&lt;p&gt;It’s okay. It’s all worth it because the stuff in the games room is
absolutely ridiculous. Warning: huge post.&lt;/p&gt;
&lt;figure&gt;
&lt;a href=&#34;//blog.vero.site/img/p4.jpg&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/p4.jpg&#34; alt=&#34;[IMO 2012 Problem 4 on a cake.&#34; title=&#34;Problem 4 Cake&#34; width=&#34;474&#34; height=&#34;252&#34; class=&#34;size-full wp-image-1317&#34; /&gt;&lt;/a&gt;
&lt;figcaption&gt;
Our old friend, the monster of a functional equation, in edible form. In
the games room. Did I mention abso-zarking-lutely ridiculous?
&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 21 / LITS</title>
      <link>//blog.vero.site/post/puzzle-21</link>
      <pubDate>Sat, 25 Aug 2012 10:27:40 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-21</guid>
      <description>&lt;p&gt;I made this a long time ago but put it off until I had programmed
enough to digitize it without my fingers leaving the home row. I think
the finish is interesting.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.nikoli.co.jp/en/puzzles/lits.html&#34;&gt;LITS -
Nikoli.&lt;/a&gt; Exactly one tetromino per region, no 2x2s, they’re
connected, adjacent tetrominoes are noncongruent.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 20 / Sashigane</title>
      <link>//blog.vero.site/post/puzzle-20</link>
      <pubDate>Wed, 22 Aug 2012 07:12:36 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-20</guid>
      <description>&lt;p&gt;&lt;a href=&#34;//blog.vero.site/img/20-sashigane.png&#34;&gt;&lt;img src=&#34;//blog.vero.site/img/20-sashigane.png&#34; alt=&#34;&#34; title=&#34;Sashigane&#34; width=&#34;345&#34; height=&#34;345&#34; class=&#34;aligncenter size-full wp-image-1302&#34; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Yeah, I lied last time I made one of these; the original Nikoli name
wasn’t that hard to remember, and “sashigane puzzles” has shown up as a
search query, so here you go. Perfect opposite-type-clue rotational
symmetry, chaotic_iak! I hope you’re satisfied now.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>On writing</title>
      <link>//blog.vero.site/post/on-writing</link>
      <pubDate>Mon, 20 Aug 2012 13:34:15 +0800</pubDate>
      
      <guid>//blog.vero.site/post/on-writing</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2012 self wrote this. It’s a bit dated, but
it’s okay, and also is of historical interest for featuring me
explaining the CSS I learned from English class.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Every time I notice that I have hoarded a large number of strange
assignments and essays from another school year of work I get all
guilty. First there’s the knowledge about ancient Chinese dynasties and
plant hormones that I only have shadows of recollections of, which makes
me wonder whether all the time and effort invested by teachers,
classmates, and myself have gone wasted.&lt;/p&gt;
&lt;p&gt;I know, though, that given that I still sense these shadows, it
shouldn’t be difficult to look up and relearn this stuff if I ever need
to do so. This brings me to the non-factual parts of the learning, such
as writing skills with all its variations. There’s persuasive writing,
which I don’t use much because I can’t usually even persuade myself to
take a side in anything, let alone others. There’s descriptive writing
mode, which I don’t use much because the most vividly describable things
I encounter are food, and the shallowness of piling flowery adjectives
together to talk about food just makes me cringe nowadays. Previously, I
wrote at least two such compositions in sixth grade. Blech.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>[IMO 2012 Part 5] Unlucky Fours</title>
      <link>//blog.vero.site/post/fours</link>
      <pubDate>Thu, 02 Aug 2012 23:03:41 +0800</pubDate>
      
      <guid>//blog.vero.site/post/fours</guid>
      <description>&lt;ins datetime=&#34;2012-12-03T13:52:25+00:00&#34;&gt;
[edit: okay guys I’m surprised at many people come here with search
queries looking for solutions. If you want IMO solutions,
&lt;a href=&#34;http://www.artofproblemsolving.com/Forum/viewforum.php?f=834&#34;&gt;the
corresponding AoPS forum&lt;/a&gt; invariably has many of them. This is
probably late-ish, but just in case.]
&lt;/ins&gt;
&lt;p&gt;Day 2 of the contest.&lt;/p&gt;
&lt;p&gt;Did you know that in Chinese [or Mandarin, whatever] “four” is
unlucky because it’s a homophone for “death”, and hospitals tend to skip
it in floors or ward numbers?&lt;/p&gt;
&lt;p&gt;Did you know that there was going to be an anecdote involving the
seventh Artemis Fowl book but I couldn’t make it work so instead you
have a weird and utterly disconnected metareference to something
deleted?&lt;/p&gt;
&lt;p&gt;I don’t know, it sounded cool at the time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Problem 4.&lt;/strong&gt; Find all functions f: Z → Z such that,
for all integers a,b,c that satisfy a+b+c = 0, the following equality
holds: &lt;span
class=&#34;math display&#34;&gt;\[f(a)^2+f(b)^2+f(c)^2=2f(a)f(b)+2f(b)f(c)+2f(c)f(a).\]&lt;/span&gt;
(Here Z denotes the set of integers.)&lt;/p&gt;
&lt;p&gt;An innocent-looking functional equation, but once you start trying it
you discover that there’s quite some depth to it. Random guessing can
yield that &lt;span class=&#34;math inline&#34;&gt;\(f(x) = x^2\)&lt;/span&gt; is a
solution, so I proved inductively that after dividing out a constant
f(1) then the remaining part of f is a perfect square. Letting &lt;span
class=&#34;math inline&#34;&gt;\(f(x) = f(1)g(x)^2\)&lt;/span&gt; with g(x) a nonnegative
integer and factorizing the original equation, I got an auxiliary
functional equation equivalent to the original equation.&lt;/p&gt;
&lt;p&gt;Casework on small values of g, and the surprises started coming hard
and fast. First: wow there’s an extra odd-even solution! Then: woah
there’s another mod 4 solution! What is this madness?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 19 / Yajilin</title>
      <link>//blog.vero.site/post/puzzle-19</link>
      <pubDate>Thu, 02 Aug 2012 14:16:36 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-19</guid>
      <description>&lt;p&gt;I have just realized that I have only ever tried one level of
difficulty in puzzle construction, viz., “as hard as I can make it”.
This is mainly because I don’t want to construct anything overly trivial
with the same few tricks, but, well, maybe it’s not the best idea for
actually trying to build an audience.&lt;/p&gt;
&lt;p&gt;Am I actually trying to build an audience? Am I? *shudders*&lt;/p&gt;
&lt;p&gt;(Yajilin summary: fill in some cells, draw a loop through the rest,
filled cells aren’t adjacent, arrows denote # of filled cells along some
ray; &lt;a href=&#34;https://mellowmelon.wordpress.com/yajilin/&#34;&gt;MellowMelon’s
rules&lt;/a&gt;)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>[IMO 2012 Part 4] The Inequality of Broken Dreams</title>
      <link>//blog.vero.site/post/inequality</link>
      <pubDate>Thu, 02 Aug 2012 11:07:33 +0800</pubDate>
      
      <guid>//blog.vero.site/post/inequality</guid>
      <description>&lt;p&gt;I could spend all day coming up with post titles like this one.
Really, I could. Anyway, after receiving the letter gently reminding me
to turn in the official IMO report in Chinese, I finished that first and
turned it in. This, plus the fact that I don’t have any way to do any of
my summer homework yet, should make continued blogging much easier.&lt;/p&gt;
&lt;p&gt;These months of preparation and anticipation, and in just over two
days it will be behind us forever.&lt;/p&gt;
&lt;p&gt;Thus were my thoughts at 3:30 in the morning, which were a much worse
method of preparation than that which I used for the APMO, which
involved trying for the first time to put my compass in its box and
staring at a cryptic crossword. Twisted thoughts as I lay innocently in
bed, trying to preserve my spirit and mathematical function. I got up at
6:30 and ate a breakfast nervously with the team.&lt;/p&gt;
&lt;p&gt;We dispersed into the contest hall. Flat squarish white tables in
orderly rows greeted us. They were considerably smaller than the
arm-span tables we had last year in the Netherlands’ stadium, but the
space was still ample compared to the ones we took our practice tests on
at home. I floundered a bit looking for whoever was supposed to check
our stuff for forbidden items, but none of the proctors paid any
attention to that, so I flipped through my own jacket pockets
paranoidly.&lt;/p&gt;
&lt;p&gt;But preparation was too brief, and there were at least fifteen
minutes left with nothing to do except try not to panic. I managed to
fill these fifteen minutes by doing elaborate breathing exercises,
raising and flapping my arms, counting down seconds, focusing on a color
word, meditating badly, clearing out everything nonmathematical from my
mind with a symbolic gesture. This is not a very coherent description,
but I wasn’t feeling very coherent.&lt;/p&gt;
&lt;p&gt;I opened an eye halfway and watched as the clock ticked down the last
few seconds. The starting signal sounded. I opened up the problem
envelope…&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 18 / Smullyanic Dynasty</title>
      <link>//blog.vero.site/post/puzzle-18</link>
      <pubDate>Wed, 01 Aug 2012 19:03:44 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-18</guid>
      <description>&lt;p&gt;Again, the
&lt;a href=&#34;http://zotmeister.dreamwidth.org/2005/03/22/&#34;&gt;Zotmeister
type&lt;/a&gt;. (Short rules: each cell states how many liars are in the 3x3
square centered at it, liars incorrectly so. Liars satisfy the “dynasty”
rule i.e. liars are not orthogonally adjacent and non-liars are
connected through sides.)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 17 / Corral</title>
      <link>//blog.vero.site/post/puzzle-17</link>
      <pubDate>Mon, 30 Jul 2012 19:07:41 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-17</guid>
      <description>&lt;p&gt;Corral puzzle, aka Cave aka Bag etc. (Yes, from nikoli.) Short rules:
draw a loop along the grid lines; each numbered cell is in the loop and
the number denotes how many cells can be seen vertically or horizontally
from that cell, plus the cell itself. Stealing link to
&lt;a href=&#34;https://mellowmelon.wordpress.com/corral/&#34;&gt;MellowMelon’s long
rules&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>[IMO 2012 Part 3] Luggage Carriers and Language Barriers</title>
      <link>//blog.vero.site/post/luggage-language</link>
      <pubDate>Wed, 25 Jul 2012 09:32:45 +0800</pubDate>
      
      <guid>//blog.vero.site/post/luggage-language</guid>
      <description>&lt;p&gt;Who knew coming up with strangely cryptic and illogical but
nice-sounding post titles was so much fun!?&lt;/p&gt;
&lt;p&gt;Okay, this break in storytelling is mainly brought to you by generic
summer laziness, as well as possibly a tiny bit of chemotherapy adverse
effect. There is only a little perfectionism involved, and that’s
because this post contains a long awkward situation (you might have
guessed already). I guess this is what it feels like to have oodles of
stuff to blog about, but not enough motivation. Heck, these few days
with running the TAIMC have long filled my list of rant topics with
juicy stories until it’s near-bursting. But I need to end this self-pity
party before I get carried away, so… back to the action.&lt;/p&gt;
&lt;p&gt;Stranded in a foreign country at least 20 degrees Celsius below our
comfort zone, having worn the same clothes for 36 hours of airplane
travel, and still with less than 48 hours until the contest and &lt;em&gt;zero
out of six compasses&lt;/em&gt;, we were running out of options.&lt;/p&gt;
&lt;p&gt;A quick inventory of clothes showed that, after including the vests
and caps in the backpacks we got, we probably had just enough clothes to
survive the cruel frigid environment. So, reluctantly, we left the games
room and hit the street to hunt down some underwear and socks to change
into. Not to mention toothbrushes and some T-shirts and jackets for good
measure, because the inside of the hotel was not the right temperature
for full cold-resistance gear.&lt;/p&gt;
&lt;p&gt;Some haphazard wandering up and down the streets later, we found a
store that suited our needs and picked up some clothes. The underwear
came in two sizes: too loose and too tight. We picked the latter. Oh
well, it would only be for a day or so… right?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>[IMO 2012 Part 2] The Hotel of Deception</title>
      <link>//blog.vero.site/post/hotel</link>
      <pubDate>Fri, 20 Jul 2012 12:45:41 +0800</pubDate>
      
      <guid>//blog.vero.site/post/hotel</guid>
      <description>&lt;p&gt;We finally arrived at the hotel at 3:30, meeting another local from
Taiwan, Mr. Chen, who helped us carry some of our stuff off the bus.
Po-Chiang, our guide, was waiting inside. We took more pictures and
finally lugged the meager stuff we had off to our hotel rooms.&lt;/p&gt;
&lt;p&gt;At least, we tried. I started to realize that there was much more to
this hotel than it seemed.&lt;/p&gt;
&lt;p&gt;Firstly, of course, was the confusing placement of rooms with numbers
starting with 4 and 5 on the fourth floor (which would be the fifth
floor by our numbering system, where the lobby is floor 1; but here the
lobby was assigned 0. Off-by-one errors just waiting to happen here.)
Secondly were the completely indecipherable signs. I don’t remember the
details, but the first signs we saw read something like “560 ~ 540:
left; 520 ~ 540: right”. Occasionally there would be weird slashes or
half-slashes between the numbers instead (later I finally realized they
were slanted, Comic-Sans-style capital Ys, or “and” in Spanish). Are
these closed, open, or half-open intervals? And why the heck are their
upper and lower bounds in a different order!?&lt;/p&gt;
&lt;p&gt;We wandered through the corridors, peeking down each one, trying to
figure out whether the numbers were increasing or decreasing and whether
a parity argument (for those of you not fluent in math lingo, that means
odds and evens) allowed for the existence of our room. Who knew the
simple act of finding one’s living quarters could be so mathematically
tasking? In the end, our rooms were in the last corridor, just about
diametrically opposite to the elevators on the half of our floor. Oh
well.&lt;/p&gt;
&lt;p&gt;The room was pretty nice overall. The furniture and basic facilities
were quite complete, with a sparkly bathroom and a couple tables and
chairs of various shapes. The closet was big and had a safe, which was
rather important because just about everybody we had met had warned us
over and over again about all the incredibly skilled thieves, muggers,
and pickpockets in Argentina. It was probably much safer (no pun
intended) in the hotel, but with all of these warnings (later we would
even find a notice from the hotel warning us to lock our doors) I was
never entirely certain. There were lots of lights controlled by a set of
confusing switches on either side of our beds. There was at least one
white immovable divider cunningly disguised as a switch, one switch that
didn’t ever seem to do anything, and one that turned everything off. The
last one made a little sense after a while because it had pictures of
stars and a moon on it, but the whole setup was still pretty
non-user-friendly in my opinion.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>[IMO 2012 Part 1] Dangerous Metal Chopsticks</title>
      <link>//blog.vero.site/post/metal-chopsticks</link>
      <pubDate>Fri, 20 Jul 2012 07:44:51 +0800</pubDate>
      
      <guid>//blog.vero.site/post/metal-chopsticks</guid>
      <description>&lt;p&gt;It’s time to begin the epic blogging journey. The detailed version of
this year’s amazing IMO, because I decided that a perfectionist guy like
myself could not possibly liveblog and be satisfied with both the
quality of the posts and being able to fully enjoy the actual event.&lt;/p&gt;
&lt;p&gt;Our story begins in a hotel in Taiwan.&lt;/p&gt;
&lt;p&gt;The night before departure, us six contestants and Prof. Lin gathered
in a hotel. This was entirely necessary because our flight left at
something like five o’clock in the morning. After checking over the
flight plans and relevant phone numbers in a conference room, we enjoyed
a pretty extensive buffet dinner, what would easily be the best meal we
would get to have for at least a week, the highlight of which was a fish
steak that looked and tasted exactly like fried egg. Afterwards we did
some emergency shopping and prepared a convenience-store breakfast for
consumption three o’clock the next day.&lt;/p&gt;
&lt;p&gt;As I’ve complained before, we have an 11-hour difference to get used
to, and that morning I had gotten myself to sleep as late as 6 AM trying
(successfully, much to my amazement) to complete an iPod OS system
update. I didn’t think I could pass airport security with the sort of
consciousness I had when I finally slept that morning, so I reverted
with the rest of the team to an 11 PM curfew. Oh well. The seven of us
left the hotel after 3 AM, setting off in a huge 30-person bus for the
airport.&lt;/p&gt;
&lt;p&gt;Luggage drop-off was mostly uneventful. I realized that the airline
didn’t seem to like passengers bringing two bags onto the airplane, and
decided to distribute my bag with all the winter clothes in it into my
luggage and my backpack. Little did we know what would happen to the
luggage…&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Glowstick Memories</title>
      <link>//blog.vero.site/post/glowstick</link>
      <pubDate>Thu, 28 Jun 2012 22:37:50 +0800</pubDate>
      
      <guid>//blog.vero.site/post/glowstick</guid>
      <description>&lt;p&gt;So. It looks like I’ve officially graduated.&lt;/p&gt;
&lt;p&gt;I have to wonder whether it really means anything. Taiwan’s system
classifies the grades neatly into 6/3/3 sections, but then our bilingual
department also uses the somewhat illogical and faintly sexist
freshman-sophomore-junior-senior naming thing, in which the big jump
happened last year.&lt;/p&gt;
&lt;p&gt;Neither of these naming issues, of course, really matter. Shakespeare
says, “A rose by any other name would smell as sweet.” Nor, I would
think, do the different color of uniforms we have to wear (pink, if you
didn’t know.) But AP classes probably count for something.&lt;/p&gt;
&lt;p&gt;I am going to take AP Biology. Why did I pick AP Biology anyway? It
seemed like a reasonable default choice. I guess I would like to know
something more about the mysteries of life and consciousness to guide my
philosophical side, and many of the other courses looked too murderously
intense. The perfect stepping stones into the giant hamster wheel of
overachievement that everybody is crazy about here. But then I learned I
still received eight chapters to study by myself during summer vacation,
alongside the English reading assignment. Oh well, so much for
relaxation.&lt;/p&gt;
&lt;p&gt;You know, I used to think of this issue, about all the academic work
we students pile onto ourselves and all the ensuing stress and chaos,
from a strange detached third-person viewpoint. Not everybody has a mind
that is fit for all that brainwork. Some people have to do the artistic,
imaginative things. Some people cannot function optimally in our intense
learning environment. Somehow, imperceptibly, according to my apparently
not-all-that-bad grades, I put myself in the crazy book-grinding
category, and I am having second thoughts.&lt;/p&gt;
&lt;p&gt;I don’t feel the energy for all this intense future yet… The past is
still so close, so vivid, so attractive. Our graduation trip, for
instance.&lt;/p&gt;
&lt;p&gt;Yeah, okay, fine, I admit it, what follows is a rough record of our
graduation trip that has been stuck in draft limbo for approximately
forever, and I was trying to segue into it. I’m a perfectionist, what
can I say?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Impact Minus Two Weeks</title>
      <link>//blog.vero.site/post/impact-minus-two-weeks</link>
      <pubDate>Mon, 25 Jun 2012 20:14:12 +0800</pubDate>
      
      <guid>//blog.vero.site/post/impact-minus-two-weeks</guid>
      <description>&lt;p&gt;Wait, are you serious? Under two weeks left, is that what it’s come
to?&lt;/p&gt;
&lt;p&gt;What happened to my majestic plans to go over every functional
equation I failed on, ever? Or to go through a super-intense
geometry-immersion period and actually try to develop some of that crazy
“intuition” thing? And I have &lt;em&gt;finals&lt;/em&gt; coming up too! I just
finished a ludicrous deadline-extended geography project that I am
absolutely confident is the crappiest paper of my entire school career
so far! And despite a semester of (slacking) classes, my Spanish is
still only barely at a usable level! Exclamation marks!&lt;/p&gt;
&lt;p&gt;Don’t panic… let’s focus on the positive. I am absolutely prepared
with my stationery. I bought three spanking new 0.4mm pens that say “Can
write for 1000 meters!” because all of my current ones are annoyingly
thick and constantly having almost-but-not-quite run out, plus three new
mechanical pencils and enough matching 2B lead to last me through
college. All the pencils and lead are Pentel. I haven’t done any
research, so if something terrible happens in Argentina I know what
company to blame, and I am writing it here so I won’t confuse the
brands. Also, in view of what happened to SCH’s carry-on baggage last
year (luckily there was no geo on Day 1), I got an extra compass I hope
won’t be needed.&lt;/p&gt;
&lt;p&gt;While we’re listing all the &lt;em&gt;stuff&lt;/em&gt; I have gotten ready:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 16 / Slitherlink [Domino]</title>
      <link>//blog.vero.site/post/puzzle-16</link>
      <pubDate>Wed, 06 Jun 2012 19:57:09 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-16</guid>
      <description>&lt;p&gt;Slitherlink with 20 clues taken out as dominoes and their original
positions shaded. For more lucid rules please visit
&lt;a href=&#34;https://mellowmelon.wordpress.com/2010/10/21/puzzle-263/&#34;&gt;MellowMelon’s
puzzle 263&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Domino set is all possible dominoes exactly once each:
&lt;strong&gt;{00,01,02,03,11,12,13,22,23,33}&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Twitter Bandwagon</title>
      <link>//blog.vero.site/post/twitter-bandwagon</link>
      <pubDate>Tue, 01 May 2012 11:58:32 +0800</pubDate>
      
      <guid>//blog.vero.site/post/twitter-bandwagon</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2012 self wrote this. It is preserved for
historical interest and amusement.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Hahahahahahahahahahahahaha look at all the services&lt;/p&gt;
&lt;p&gt;&lt;em&gt;ahem&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;So, if you’ve been hiding under a rock for the last decade, Twitter
is a platform for microblogging, i.e. blogging with very short posts,
called tweets, which have to be under 140 characters after they shorten
all the links for you for no reason, often after you’ve already
shortened it once somehow-or-other. And yes, I hopped onto the bandwagon
during procrastination. Everybody who matters on the technological edges
of the internet seems to have one.&lt;/p&gt;
&lt;p&gt;I’m not arrogant enough to imagine I could compare Twitter to
anything else authoritatively… I only barely count myself as using it.
But a brief set of first impressions should be okay. Twitter is very
public: you can see everybody’s tweets, who everybody is following, and
who everybody is being followed by; the single privacy setting is a
simple binary choice to lock up your account, so that everybody who
wants to see what you posted needs your explicit authorization.&lt;/p&gt;
&lt;p&gt;My Facebook feed consists of entries such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;photographs of people I barely recognize, which I scroll past
quickly… unless my mom comes up and says “Who is that?” and spends ten
minutes looking at more such photos while asking me questions like “How
do you go to the next picture?” or “Why is this photo so blurry?”&lt;/li&gt;
&lt;li&gt;context-less fragments of some larger conversation, e.g. “LOL!” or
“linglinglinggg” (copied verbatim from a status)&lt;/li&gt;
&lt;li&gt;alerts of J. Random Person having taken a Personality Test or scored
too many lines in Tetris&lt;/li&gt;
&lt;li&gt;Meta-Facebook infographics, like a cloud of your closest friends or
number of status posts. I tend to… have an extraordinarily negative
impression of the type of narcissistic achievement-reliant…
&lt;em&gt;people&lt;/em&gt;… who need rewards at every step, except that they seem
to be &lt;em&gt;everybody&lt;/em&gt;… *sigh&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    
    <item>
      <title>Coup de Grâce</title>
      <link>//blog.vero.site/post/coup-de-grace</link>
      <pubDate>Mon, 30 Apr 2012 19:22:49 +0800</pubDate>
      
      <guid>//blog.vero.site/post/coup-de-grace</guid>
      <description>&lt;p&gt;Yes, it’s official now. I’m on the 2012 International Mathematical
Olympiad team bound for Argentina, and if I didn’t make a post about
this I would be ashamed to call myself a blogger. So, a little moment of
smug self-satisfaction should be justified, I hope? And not to mention,
last year’s title of youngest Taiwan contestant is not yet passed? Let’s
cue the evil laughter!&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://imgs.xkcd.com/comics/toot.png&#34; alt=&#34;Obligatory xkcd where a guy pops up and toots a literal air horn&#34; /&gt;&lt;/p&gt;
&lt;p&gt;…or maybe not.&lt;/p&gt;
&lt;p&gt;Here is a simple tabulation of our selection problems:&lt;/p&gt;
&lt;ol type=&#34;1&#34;&gt;
&lt;li&gt;GA/GN/CG/GNC/NGA&lt;/li&gt;
&lt;li&gt;AG/CA/NG/GCN/AGA&lt;/li&gt;
&lt;li&gt;GA/GN/CA/GCN/AGC&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Algebra x9, Combinatorics x7, Geometry x12, Number Theory x8. In
other words a distribution in perfect negative correlation with my
estimated ability in each subject. At least, that’s how I’ve always
estimated them before about a month ago. Ouch, the last stage was the
only one of the three where problem distribution for combinatorics
actually reached its fair share. (Alternative interpretation: 2011’s
distribution was majorly f123ed up with only one real geometry problem,
which just means that this year’s battle will probably be difficult for
me. (Alternative alternative interpretation: the evil, nasty, wicked,
depraved windmill was actually an outrageous negative for me. Gee, I
don’t know how to feel. But I should actually do stuff instead of wildly
speculating; let’s get back to the topic.))&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Scheduled Blogging</title>
      <link>//blog.vero.site/post/scheduled-blogging</link>
      <pubDate>Fri, 20 Apr 2012 11:43:31 +0800</pubDate>
      
      <guid>//blog.vero.site/post/scheduled-blogging</guid>
      <description>&lt;p&gt;Some bloggers have a regular schedule for posting and forcing
themselves to meet the deadlines. In essence, something like “updates
every Thursday.”&lt;/p&gt;
&lt;p&gt;For me, I think this is a bad idea, because it forces me to write. If
my day is boring and uneventful as it quite often is and I still have to
crank out a post, it would not be a post that readers would enjoy.
Better once-a-month enthusiastic, interesting posts then an ugly stream
of tedious drudgery for the visitor to wade through every time, stuff
like (quoting one random ancient post):&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 15 / Sudoku / Happy Birthday!</title>
      <link>//blog.vero.site/post/puzzle-15</link>
      <pubDate>Sun, 25 Mar 2012 00:00:08 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-15</guid>
      <description>&lt;p&gt;A bonus gift for the birthday of a very important person! Ignore the
colors while solving.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 14 / Slitherlink</title>
      <link>//blog.vero.site/post/puzzle-14</link>
      <pubDate>Thu, 22 Mar 2012 20:46:51 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-14</guid>
      <description>&lt;p&gt;Just a normal one this time.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Note-taking</title>
      <link>//blog.vero.site/post/note-taking</link>
      <pubDate>Wed, 21 Mar 2012 18:43:09 +0800</pubDate>
      
      <guid>//blog.vero.site/post/note-taking</guid>
      <description>&lt;p&gt;Finally getting into geography honors. And surviving, somehow, with
grades that still might count as ridiculous-in-a-good-way. The one big
change I’m getting used to is the need to take actual hardcore
&lt;em&gt;notes&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;For eight years, most classes I’ve gone to, both inside or outside
school, have been straight from a book or handout, which would be so
easily read and comprehended (…to me) that any notes would be a waste of
energy. A couple science teachers would make us take notes and count
them as a grade. All you had to do to get an A was write down most of
the important bits, even if the chapter sections were written in
exaggerated cursive that took up half the page and there were random
teddy bears straddling the margins, as in my notes.&lt;/p&gt;
&lt;p&gt;There was a stage in maybe seventh grade where I told myself I would
make neat, doodle-free notes that actually summarized the stuff in
biology (the easy seventh-grade kind (not that we still remember all of
it)), and to get to that goal I would force myself to use only one page
for each section, with a special way to mark the vocabulary words. It
helped studying a little, but the stage didn’t last, and I ended up
doodling again.&lt;/p&gt;
&lt;p&gt;Even when the going finally got tough and understanding became a
nontrivial task, I still had irrelevant embellishments and a bunch of
artificial fonts for my “notes”. Even in the days when I was free to go
to the Chiao-Tung University for classes twice a week (and still get
consistently ridiculous grades, judging by the score breakdowns the prof
gave us after every test), my notes looked like this.&lt;/p&gt;
&lt;figure&gt;
&lt;a href=&#34;//blog.vero.site/img/notes-lhopital.jpg&#34;&gt;&lt;img class=&#34;size-full wp-image-1030&#34; title=&#34;L&#39;Hopital notes&#34; src=&#34;//blog.vero.site/img/notes-lhopital.jpg&#34; alt=&#34;[L&#39;Hopital notes]&#34; width=&#34;474&#34; height=&#34;335&#34; /&gt;&lt;/a&gt;
&lt;figcaption&gt;
Exhibit A: mathematical analysis/advanced calculus notes, circa 2010
&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 13 / Akari</title>
      <link>//blog.vero.site/post/puzzle-13</link>
      <pubDate>Mon, 19 Mar 2012 06:44:28 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-13</guid>
      <description>&lt;p&gt;Somewhat depressing almost-symmetry.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 12 / Sashigane</title>
      <link>//blog.vero.site/post/puzzle-12</link>
      <pubDate>Tue, 13 Mar 2012 13:30:47 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-12</guid>
      <description>&lt;p&gt;If you are reading this, then our APMO testing time is over! There’s
a small chance of me being really happy or really frustrated about how I
did, but I’m betting on a solid “meh.”&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://mathgrant.blogspot.com/2012/01/rules-ellbound.html&#34;&gt;Rules
page&lt;/a&gt; by mathgrant. There’s no way I’m going to memorize the Japanese
name yet. [edit: It’s Sashigane. It’s not that hard.]&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 11 / Smullyanic Dynasty</title>
      <link>//blog.vero.site/post/puzzle-11</link>
      <pubDate>Tue, 06 Mar 2012 18:25:47 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-11</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://zotmeister.dreamwidth.org/2005/03/22/&#34;&gt;Ruleset&lt;/a&gt;
designed by Zotmeister.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 10 / Nurikabe 3</title>
      <link>//blog.vero.site/post/puzzle-10</link>
      <pubDate>Sat, 03 Mar 2012 18:00:11 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-10</guid>
      <description>&lt;p&gt;A ratio-preserving enlargement of the janko.at sample invocation
puzzle, perhaps. I wanted to try using smaller clues. Finally a grid too
large for full-size displaying! Is that even supposed to be an
achievement?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 9 / Yajilin</title>
      <link>//blog.vero.site/post/puzzle-9</link>
      <pubDate>Tue, 28 Feb 2012 12:00:09 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-9</guid>
      <description>Man, hacking new puzzle types into the image generator is an amazing way to procrastinate.</description>
    </item>
    
    <item>
      <title>Puzzle 8 / Fillomino</title>
      <link>//blog.vero.site/post/puzzle-8</link>
      <pubDate>Sun, 26 Feb 2012 12:00:58 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-8</guid>
      <description>Hey, a “theme” (look at the corners)!
Honestly though I’m just spreading out my puzzle posts so there’s some illusion of regularity.</description>
    </item>
    
    <item>
      <title>English Names</title>
      <link>//blog.vero.site/post/english-names</link>
      <pubDate>Sat, 25 Feb 2012 23:08:46 +0800</pubDate>
      
      <guid>//blog.vero.site/post/english-names</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: I wrote this in 2012. Maybe it’s kind of
amusing?&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;For some reason, everybody around here seems to think that adding
English characters, no matter how broken or meaningless, confers an
added sense of quality or superiority. I don’t really understand the
mindset here but it’s the only explanation I can come up with. It’s
certainly not to make the lives of our English-speaking population any
easier.&lt;/p&gt;
&lt;p&gt;We were sharing songs in Chinese class with literary techniques, and
there were a bunch of songs, including mine, by this pretty famous
singer with the stage name
&lt;a href=&#34;http://en.wikipedia.org/wiki/Fish_Leong&#34;&gt;Fish Leong&lt;/a&gt;. Okay,
it’s kind of cute and it’s a translated homophonic Cantonese pun, so it
makes some sense, although I wonder what people would think the name
meant if mentioned without any context. There was this more obscure guy
a couple seasons back in the reality TV singing competition (see, no
original shows around here) whose name was Quack. &lt;em&gt;smacks head&lt;/em&gt;
It’s also kind of cute if you only know that the word is the sound a
duck makes, which probably holds for most of the audience. But still, it
takes just five seconds to
&lt;a href=&#34;http://en.wikipedia.org/wiki/Quack&#34;&gt;put it into Wikipedia&lt;/a&gt;.
Oops?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 7 / Slitherlink [All Twos]</title>
      <link>//blog.vero.site/post/puzzle-7</link>
      <pubDate>Wed, 22 Feb 2012 18:47:04 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-7</guid>
      <description>It’s 2/22 and I have low standards.
This is a normal Slitherlink, except all the 2s have been given to you. Thus, empty squares cannot have exactly two edges around them. Of course it’s been done before (guess who?)
I appear to be drastically overshooting a monthly schedule :P</description>
    </item>
    
    <item>
      <title>Puzzle 6 / Fillomino</title>
      <link>//blog.vero.site/post/puzzle-6</link>
      <pubDate>Tue, 21 Feb 2012 17:55:52 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-6</guid>
      <description>Not actually my first try, but I guess I don’t need to resort to 6x6s to fill up my quota just yet, do I?
Okay for the absolutely uninformed, this is a Fillomino (or see MellowMelon’s rule page).
I’ve switched to 32x32 pixel cells because they seem a reasonable size and it’s possible to express all pixel sizes as an exact floating-point fraction of the cell side so my image generator can be used in a general way to get perfect stroke thicknesses without worrying about any rounding errors no matter how obviously numerically insignificant they would be in this case.</description>
    </item>
    
    <item>
      <title>Technological Fails Continue</title>
      <link>//blog.vero.site/post/technological-fails-continue</link>
      <pubDate>Wed, 15 Feb 2012 22:11:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/technological-fails-continue</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2012 self wrote this. It is preserved for
historical interest and amusement, and does not reflect my current
beliefs or attitudes.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Hardware:&lt;/p&gt;
&lt;p&gt;The laptop I’m typing this on is over two years old. This is not a
lot by some measures, but weird spontaneous glitches are starting to
accumulate to the point where they’re getting on my nerves. The internet
card still needs an extra reset to start working half the time, and
occasionally warrants a full reboot, which costs five minutes. The USB
ports are loopy, some windows just show up black when they feel like it,
and there’s a steadily climbing whir in the background. I’m kind of
anticipating the moment the whole thing just drops dead.&lt;/p&gt;
&lt;p&gt;Well, I’m not about to run out of computers to use (there’s a noisy
XP desktop that also barely works despite handling all our print jobs,
but also one spanking new eight-core CPU laptop, which Dad considered a
valuable enough investment (?)) but such a loss is still not something
to be dismissed lightly. And the externalized cost is far more important
and chilling. Who knows how many kids in the Congo had to mine coltan,
or how much conflict has occurred over the crude oil, or what awful
conditions those sweatshop-assembly workers are going through? Annie
Leonard’s words still resonate with me from when we were first shown the
video a year ago. Which is more recent than this laptop, so that doesn’t
mean that much. I think a couple months ago I would have absolutely no
second thoughts about getting a new one, though. Yup, I’m in a quandary
(ha ha vocabulary) on the balance between desensitization and compulsive
hoarding of stuff.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 5 (Liar Slitherlink)</title>
      <link>//blog.vero.site/post/puzzle-5</link>
      <pubDate>Tue, 14 Feb 2012 12:19:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-5</guid>
      <description>One puzzle a month! What a prolific schedule!
A Liar Slitherlink as created by MellowMelon (probably). Normal Slitherlink rules except exactly one clue in each row and column is false; you figure out which. But I bet you knew that already.</description>
    </item>
    
    <item>
      <title>Bilingualism</title>
      <link>//blog.vero.site/post/bilingualism</link>
      <pubDate>Sun, 12 Feb 2012 22:11:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/bilingualism</guid>
      <description>&lt;p&gt;So, as triggered by my confrontation with the Chinese book report
(remember? whatever the answer is, it’s okay): a reflection on my
incompetence at dealing with two languages, and why this matters, or
not.&lt;/p&gt;
&lt;p&gt;I can think in both languages. It’s a natural product of our school
environment. The two languages often have to complement each other; most
of the nerdy terms or globally relevant allusions are English-exclusive
(I couldn’t talk coherently about SOPA in any language other than
English!), but a lot of cultural and geographical staples around here
are Chinese only. And sometimes there are unexpected holes where an
innocuous-looking phrase simply has a few too many connotations to
translate perfectly (the example I always get stuck on, and have yet to
solve satisfactorily with anything short of a full sentence recasting,
is “appreciate”.)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Adventures in Crappy Markup</title>
      <link>//blog.vero.site/post/crappy-markup</link>
      <pubDate>Fri, 10 Feb 2012 21:39:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/crappy-markup</guid>
      <description>There are two big elementary and middle school competitions around this part of the globe. Well, “big” according to “I’ve heard of it”, which is by no means an accurate measure of, well, anything. I don’t go out of my way to look for them any more, even though… hold on, am I still eligible? Whatever. But in any case, diverting any unnecessary energy from the olympiad-proof-training is probably not a good idea now.</description>
    </item>
    
    <item>
      <title>Puzzle 4 / Nurikabe (&#43;Lists of Obscure Stuff)</title>
      <link>//blog.vero.site/post/puzzle-4</link>
      <pubDate>Wed, 11 Jan 2012 21:11:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-4</guid>
      <description>I was like “Let’s make a 15x15!” and got confused by the graph lines and stopped early. Anyway, I think the steps aren’t so trivial now. I’m still too lazy to fix my generator, however.
yes, normal Nurikabe </description>
    </item>
    
    <item>
      <title>Puzzle 3 / Nurikabe</title>
      <link>//blog.vero.site/post/puzzle-3</link>
      <pubDate>Tue, 10 Jan 2012 17:00:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-3</guid>
      <description>&lt;p&gt;I only just managed to make a 10x10 that’s not broken.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.janko.at/Applets/Nurikabe/q.php?w=450&amp;amp;h=340&amp;amp;r=10&amp;amp;c=10&amp;amp;p=,,4,,,,3,,,/,8,,,,,,,,/,,,5,,,,,,/,,,,,,,3,,/,,,,,,,,,/,,,,,,,,,/,,,,,,,7,,/,3,,,,,,,3,/,,2,,,,,,,/,,,,,4,,,,&#34;&gt;janko.at
applet&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Autological Procrastination</title>
      <link>//blog.vero.site/post/autological-procrastination</link>
      <pubDate>Thu, 05 Jan 2012 17:33:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/autological-procrastination</guid>
      <description>&lt;p&gt;#ifdef BORING_SELF_DEPRECATION&lt;/p&gt;
&lt;p&gt;So obviously this isn’t a good parody and the song is ancient (under
some “pop” definition, which is probably not a very discriminative
label), at over four years. Just randomness that finds its way onto my
iPod. And the words are not very creative, and there are even two lines
that survive unscathed because they fit reasonably and I can’t think of
anything better (and I don’t even know if this is supposed to be bad, I
just want to ensure nobody expects otherwise).&lt;/p&gt;
&lt;p&gt;#endif&lt;/p&gt;
&lt;p&gt;Whatever, this has been sitting in my draft box for at least one
month.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Freedom Writers SEO (or lack thereof)</title>
      <link>//blog.vero.site/post/freedom-writers-seo</link>
      <pubDate>Tue, 03 Jan 2012 17:46:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/freedom-writers-seo</guid>
      <description>Note: My 2012 self wrote this. It is preserved for historical interest and amusement.
Two months ago for some random reason I noticed that somebody had found this blog by Googling for the Freedom Writers contest page. Shortly thereafter, the school went ahead and held it for the second time, two years after the first contest, and even more people have started searching for some combination of “ibsh freedom writers”, resulting in an anomalously large number of hits to a certain just-over-two-years-old post.</description>
    </item>
    
    <item>
      <title>Puzzle 2 / Slitherlink</title>
      <link>//blog.vero.site/post/puzzle-2</link>
      <pubDate>Sun, 01 Jan 2012 00:01:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-2</guid>
      <description>Written for the new year of 2012.
(janko.at applet)</description>
    </item>
    
    <item>
      <title>Hello</title>
      <link>//blog.vero.site/post/hello</link>
      <pubDate>Sun, 01 Jan 2012 00:00:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/hello</guid>
      <description>&lt;p&gt;A new year. A new start. And just a chance to abuse the phrase “See
you next year!” It’s hard to get tired of using it once every 365.24
days.&lt;/p&gt;
&lt;p&gt;So, I have decided to open up my other blog to people.&lt;/p&gt;
&lt;p&gt;There are a few reasons for not doing so previously. Firstly, there’s
a lot of silly writing with unexplained LOLs and exclamations all over
the place in the archives, not to mention the countless other sorts of
weirdness linked to the handle I’m using here that’s spread over the
rest of the interwebz. But I like to keep old stuff as some kind of
record that my past self existed, and I’ve given up being embarrassed
about them. And anyway, now and then I’m still performing embarrassing
acts that outstrips any of this stuff by miles.&lt;/p&gt;
&lt;p&gt;When I was thirteen*, the world was a different place to me. I
imagined thousands of creepy people staring at computer screens out
there, waiting to kidnap children and sell them to clients halfway
across the globe the instant they figured out their addresses and
statuses as minors. I don’t blame that old me; there has been at least
one computer class devoted to videos of this type.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>2011 Summary</title>
      <link>//blog.vero.site/post/2011-summary</link>
      <pubDate>Sat, 31 Dec 2011 23:59:59 +0800</pubDate>
      
      <guid>//blog.vero.site/post/2011-summary</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: This post is backdated. I am writing this post
in 2019 because, as part of the &lt;a href=&#34;//blog.vero.site/post/remigration&#34;&gt;Big
2017 Remigration&lt;/a&gt;, I have decided to delete most of the posts because
they were too embarrassing and sparse on information, but figured I
might keep a rundown of the highlights.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;2011, on this blog:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Freedom Writers</title>
      <link>//blog.vero.site/post/freedom-writers</link>
      <pubDate>Tue, 27 Dec 2011 08:48:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/freedom-writers</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2011 self wrote this. It is preserved for
historical interest and amusement, and does not reflect my current
beliefs or attitudes. Also, it has linkrotted.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Alrighty, if you’re looking for the IBSH Freedom Writers contest
website, its URL is
&lt;a href=&#34;http://freedomwriters.ibsh.co.cc/&#34;&gt;http://freedomwriters.ibsh.co.cc/&lt;/a&gt;.
&lt;ins datetime=&#34;2013-03-28T13:51:01+00:00&#34;&gt;(2013/03/28: The link is now
dead. I’m not surprised; it’s just more evidence that free websites of
the “do your own html files” type are really fragile things.)&lt;/ins&gt; I
just tried to help my sister find it through Google, it’s nowhere to be
found, and instead there are hits in ancient archive posts from this
blog.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puzzle 1 (Wild Slitherlink Appeared!)</title>
      <link>//blog.vero.site/post/puzzle-1</link>
      <pubDate>Mon, 28 Nov 2011 19:24:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/puzzle-1</guid>
      <description></description>
    </item>
    
    <item>
      <title>Fairy Tale</title>
      <link>//blog.vero.site/post/fairy-tale</link>
      <pubDate>Tue, 27 Sep 2011 18:10:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/fairy-tale</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2011 self wrote this. It is selectively
preserved for historical interest and amusement from a lot of similar,
chronologically nearby posts. I am not as angsty any more.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I don’t know where to start.&lt;/p&gt;
&lt;p&gt;First there was a headache. No biggie, sleep it off. But it’s easy to
lose yourself&lt;/p&gt;
&lt;p&gt;The pain, the random gusts of nausea, confusion, irritation… it’s
another person in this body, speaking a foreign language I can’t even
begin to fathom&lt;/p&gt;
&lt;p&gt;playing by his own rules, won’t let you figure them out. his kingdom,
and there’s not even a way to surrender or take the path of least
resistance. Every path looks the same from here&lt;/p&gt;
&lt;p&gt;blackness, vagueness, shadows, defying all interpretations&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Nerdy Writing</title>
      <link>//blog.vero.site/post/nerdy-writing</link>
      <pubDate>Mon, 05 Sep 2011 21:18:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/nerdy-writing</guid>
      <description>Note: My 2011 self wrote this. It is selectively preserved for historical interest and amusement. It’s just meta enough to be funny, I think.
I can look at the posts I made in fourth grade, and understand how I might get exaggeratedly happy about these tiny things, and write this ramble that goes up and down and all over the place.
Anyway apparently I wrote “to indulge in a colloquialism” less than a year ago in a school essay and now it sounds plain freaky to me.</description>
    </item>
    
    <item>
      <title>Normality</title>
      <link>//blog.vero.site/post/normality</link>
      <pubDate>Tue, 09 Aug 2011 19:51:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/normality</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2011 self wrote this. It is selectively
preserved for historical interest and amusement from a lot of similar,
chronologically nearby posts. That’s all. I am not as angsty any
more.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;So. I was hoping I could blog for once without predictably explaining
something about how this doesn’t mean anything about future posts or
activity or anything, but apparently I can’t get started without a lame
start like this.&lt;/p&gt;
&lt;p&gt;Eight months have passed since I started my fight with leukemia. Yes
it has been a rough eight months, full of unpredictable pain, nausea,
diet restrictions, and freakishly-sized needles.&lt;/p&gt;
&lt;p&gt;I’ve been waiting for I don’t know how long for everything to go back
to “normal”, but now that I look back I can no longer imagine the idea.
The world, outside, still seems to be rushing at its insane pace towards
maximum chaos. Economic and natural crises still seem to be always
around the corner. But in here, in the hospital ward, or at home, it’s a
really different feeling. I feel completely disconnected. Nothing
changes; every day is waiting, waiting, waiting for the future, for a
better moment or feeling or achievement.&lt;/p&gt;
&lt;p&gt;For what, really?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>2010 Summary</title>
      <link>//blog.vero.site/post/2010-summary</link>
      <pubDate>Fri, 31 Dec 2010 23:59:59 +0800</pubDate>
      
      <guid>//blog.vero.site/post/2010-summary</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: This post is backdated. I am writing this post
in 2018 because, as part of the &lt;a href=&#34;//blog.vero.site/post/remigration&#34;&gt;Big
2017 Remigration&lt;/a&gt;, I have decided to delete most of the posts because
they were too embarrassing and sparse on information, but figured I
might keep a rundown of the highlights.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;2010, on this blog:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>2009 Summary</title>
      <link>//blog.vero.site/post/2009-summary</link>
      <pubDate>Thu, 31 Dec 2009 23:59:59 +0800</pubDate>
      
      <guid>//blog.vero.site/post/2009-summary</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: This post is backdated. I am writing this post
in 2018 because, as part of the &lt;a href=&#34;//blog.vero.site/post/remigration&#34;&gt;Big
2017 Remigration&lt;/a&gt;, I have decided to delete most of the posts because
they were too embarrassing and sparse on information, but figured I
might keep a rundown of the highlights.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;2009, on this blog:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Technological Fails</title>
      <link>//blog.vero.site/post/technological-fails</link>
      <pubDate>Sun, 20 Dec 2009 18:05:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/technological-fails</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2009 self wrote this (except for the
insertions by my 2013 self). It is preserved for historical interest and
amusement, and does not reflect my current beliefs or attitudes.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Strange things:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>More Random Blathering</title>
      <link>//blog.vero.site/post/more-random-blathering</link>
      <pubDate>Sun, 16 Aug 2009 21:47:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/more-random-blathering</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2009 self wrote this. It is preserved for
historical interest and amusement only, and does not reflect my current
beliefs or attitudes.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Somehow my cousin deleted the Eragon game from his PSP. Ah well, it
was fun while it lasted. Current project: get that secretary-problem
paper done. It looks much nicer now, due to the references and big bold
titles.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>New Goal: 10 Keepers</title>
      <link>//blog.vero.site/post/new-goal</link>
      <pubDate>Sun, 16 Aug 2009 13:38:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/new-goal</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2009 self wrote this. It is preserved for
historical interest and amusement only, and does not reflect my current
beliefs or attitudes.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Now and then I find myself lapsing into a bunch of 42-related
questions. The most recent occurrence was the day before yesterday, and
I decided that the meaning of life is to find your meaning of life.
Since that would tautologically entail that I had already completed my
meaning of life, I decided to reject it, even though it has a pretty
nice ring to it. Some goals:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Back from Math-Camp Post...</title>
      <link>//blog.vero.site/post/back-from-math-camp</link>
      <pubDate>Thu, 13 Aug 2009 19:23:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/back-from-math-camp</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2009 self wrote this. It is preserved for
historical interest and amusement, and as a testament to how far I’d go
to typeset math equations in ASCII art.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I have just come back from a week of continuous mathematics, board
gaming, and hitting people with sticks to ensure that they get up in
time. Yippee! Those problems sure do get around.&lt;/p&gt;
&lt;p&gt;Sample problem: This problem rocks!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Winter</title>
      <link>//blog.vero.site/post/winter</link>
      <pubDate>Tue, 27 Jan 2009 20:09:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/winter</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2009 self wrote this. It is preserved for
historical interest and amusement only, and does not reflect my current
beliefs or attitudes.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I’m reconsidering. It’s not that boring. LOLZ. There it goes
again.&lt;/p&gt;
&lt;p&gt;Particulars… well, I got to play my cousin’s PSP. It was an instant
like the instant when I saw the Krusty Kreme shop during our visit to
Indonesia (shoot, my mouth is watering again), I found a very
interesting game logo. A shining blue lowercase E. Most people would
think of the Internet Explorer logo. But obviously, Microsoft is
probably not affiliated with Nintendo or whatever company made PSPs;
even then you can’t play Internet Explorer.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>2008 Summary</title>
      <link>//blog.vero.site/post/2008-summary</link>
      <pubDate>Wed, 31 Dec 2008 23:59:59 +0800</pubDate>
      
      <guid>//blog.vero.site/post/2008-summary</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: This post is backdated. I am writing this post
in 2018 because, as part of the &lt;a href=&#34;//blog.vero.site/post/remigration&#34;&gt;Big
2017 Remigration&lt;/a&gt;, I have decided to delete most of the posts because
they were too embarrassing and sparse on information, but figured I
might keep a rundown of the highlights.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;2008, on this blog:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Lost</title>
      <link>//blog.vero.site/post/lost</link>
      <pubDate>Mon, 29 Dec 2008 20:09:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/lost</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2008 self wrote this. It is selectively
preserved for historical interest and amusement from a lot of similar,
chronologically nearby posts. That’s all.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I have a life and I still don’t know what to do with it. I like
making powerpoints, programming, typing tests, made-up hyperbolic IQ
tests, Gmail, and odd things.&lt;/p&gt;
&lt;p&gt;All that animation has gone to my nerves. And Bookworm Adventures
pining. Best word so far: VORACIOUS, which earned me a blue gem tile,
which froze somebody. I want to design games for PopCap too, because
then I get to play the ones they already have for free.&lt;/p&gt;
&lt;p&gt;Lolcode:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Eternity Bus Ride</title>
      <link>//blog.vero.site/post/eternity-bus-ride</link>
      <pubDate>Sun, 14 Dec 2008 08:46:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/eternity-bus-ride</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2008 self wrote this. It is selectively
preserved for historical interest and amusement from a lot of similar,
chronologically nearby posts. It is not representative of my current
beliefs or attitudes.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Yesterday I got to sit and vegetate on a bus for a total of four
hours. My MP4 was already getting boring. In fact the time spent at the
math lesson was less than that. Luckily the bus home had a TV that kind
of worked, and showed a replay of the show that self-translates as “One
Million Star”. I only watched a bit. The rest was highly tumultuous
slumber. Dinner was spaghetti, which helped.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A (****) of a Lot of (****)</title>
      <link>//blog.vero.site/post/a-lot-of</link>
      <pubDate>Fri, 12 Dec 2008 21:41:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/a-lot-of</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2008 self wrote this. It is preserved for
historical interest and amusement.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Arvorie has just spammed my email account with three emails, two of
them talking about palindromes.&lt;/p&gt;
&lt;p&gt;“What? The fat in your head?”&lt;/p&gt;
&lt;p&gt;My latest hard cryptogram, used with a substitution cipher:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Change</title>
      <link>//blog.vero.site/post/change-2008</link>
      <pubDate>Tue, 21 Oct 2008 20:38:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/change-2008</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2008 self wrote this. It is selectively
preserved for historical interest and amusement from a lot of similar,
chronologically nearby posts. It is not representative of my current
beliefs or attitudes.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I like this life.&lt;/p&gt;
&lt;p&gt;I remember somewhere in some book (Walk Two Moons, I think) someone
said sometime something about everybody being afraid of change. Change’s
only problem is that it is completely unpredictable.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The Return of the Omnipotent Biker</title>
      <link>//blog.vero.site/post/the-return-of-the-omnipotent-biker</link>
      <pubDate>Sun, 19 Oct 2008 20:46:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/the-return-of-the-omnipotent-biker</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2008 self wrote this. It is selectively
preserved for historical interest and amusement from a lot of similar,
chronologically nearby posts. That’s all.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Biking is fun. Unfortunately it doesn’t require as much exertion as
other workout methods do. The thing you learn most from it is how to
obey traffic.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;“I asked him if he knew what the word ‘obey’ meant. He
replied,”Sure. It’s a place online where you can buy stuff.”“&lt;/i&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Spanish, Music, and Doing the Wrong Thing</title>
      <link>//blog.vero.site/post/spanish-music-and-doing-the-wrong-thing</link>
      <pubDate>Thu, 16 Oct 2008 18:15:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/spanish-music-and-doing-the-wrong-thing</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2008 self wrote this. It is preserved for
historical interest and amusement, and is not representative of my
current beliefs or attitudes.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Yesterday I got persuaded by my mom to seriously use the LearnToSpeak
Spanish CD we bought. I say “Hasta luego” into the mic and it says I
selected “Estoy bien”. Still, the vocabulary it selects are far better
than the ones I selected haphazardly. ¿Qué quiere decir “…”? Well, I’m
stopping the finding of new vocabulary in Spanish madly.&lt;/p&gt;
&lt;p&gt;Today I lost my Kitchen Midden rubric by clipping it into the
questionnaires. I wasn’t sure until I found it there. I flipped through
the questionnaires and found it in ten seconds. Wooooo! WHAT ARE THE
ODDS? Luck.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Cold</title>
      <link>//blog.vero.site/post/cold</link>
      <pubDate>Mon, 13 Oct 2008 17:17:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/cold</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2008 self wrote this. It is selectively
preserved for historical interest and amusement from a lot of similar,
chronologically nearby posts. That’s all.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Hooray! Something I ate today cured my cold! Well, they assuaged it
for today at least. Perhaps by dinner I’ll be coughing like a donkey
with terminal asthma again.&lt;/p&gt;
&lt;p&gt;Okay, enough with horrible similes. Luckily or not, in P.E. class we
didn’t do the lethal 100m dash timing. Instead we practiced jumping.
Hooray! It’s not as exerting.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Sicknesses and Sundays</title>
      <link>//blog.vero.site/post/sicknesses-and-sundays</link>
      <pubDate>Sun, 12 Oct 2008 11:23:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/sicknesses-and-sundays</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2008 self wrote this. It is selectively
preserved for historical interest and amusement from a lot of similar,
chronologically nearby posts. That’s all.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Today is Sunday. Tomorrow is when I go back to school. *sigh*&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Pearl Milk Tea Again</title>
      <link>//blog.vero.site/post/pearl-milk-tea-again</link>
      <pubDate>Sat, 11 Oct 2008 19:43:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/pearl-milk-tea-again</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2008 self wrote this. It is selectively
preserved for historical interest and amusement from a lot of similar,
chronologically nearby posts. It is not representative of my current
beliefs or attitudes.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;After submitting my article onto my Magnum Opuses website section I
got to drink some more pearl milk tea that wasn’t sweet at all.&lt;/p&gt;
&lt;p&gt;When I was little I used to look at everybody drinking bitter things
like tea, coffee, beer, wine, and all that. I simply couldn’t imagine
growing up and liking them. Everything good at that time was sweet,
sugary, sweet, and unhealthy. Then I realized that I hated candy.&lt;/p&gt;
&lt;p&gt;Ah, whatever.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Physical</title>
      <link>//blog.vero.site/post/physical</link>
      <pubDate>Sun, 05 Oct 2008 20:44:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/physical</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2008 self wrote this. It is selectively
preserved for historical interest and amusement from a lot of similar,
chronologically nearby posts. It is not representative of my current
beliefs or attitudes.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Recent excercise: I’ve bicycled all over the place, almost going into
Jhubei. Obviously, with parental notice. In fact they rode with me. Or,
more strictly speaking I rode with them. Whatever. Also I’ve done a few
pushups wrongly. And I’m typing, I guess. Ah, whatever.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Virtues, Complaints, and Trash</title>
      <link>//blog.vero.site/post/virtues-complaints-and-trash</link>
      <pubDate>Thu, 02 Oct 2008 18:48:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/virtues-complaints-and-trash</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2008 self wrote this. It is selectively
preserved for historical interest and amusement from a lot of similar,
chronologically nearby posts. It is not representative of my current
beliefs or attitudes. I hope you enjoy the glimpse into a sixth grader’s
psyche while he attempts to wax philosophical.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I have been pondering an interesting problem for a long time. Which
virtue is the best, the most important, the most worthy of epitomizing
the word “virtue”? Due to homework constraints I have been unable to put
this up for a long time, which is frustrating.&lt;/p&gt;
&lt;p&gt;My candidates: First, honesty. Then we have kindness. Then
responsibility, and optimism, and courage, and intelligence. It doesn’t
look like a fair match, really.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Human Dependencies and More Trash</title>
      <link>//blog.vero.site/post/human-dependencies-and-more-trash</link>
      <pubDate>Tue, 30 Sep 2008 16:41:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/human-dependencies-and-more-trash</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2008 self wrote this. It is selectively
preserved for historical interest and amusement from a lot of similar,
chronologically nearby posts. It is not representative of my current
beliefs or attitudes. I hope you enjoy the glimpse into a sixth grader’s
psyche while he attempts to wax philosophical.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Humans depend on electricity. It’s the main problem with
blackouts.&lt;/p&gt;
&lt;p&gt;Prehistoric people didn’t have this dependency. If our world is
further electronized, blackouts will be very dangerous and will have to
be made more robust.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>NeoBanner</title>
      <link>//blog.vero.site/post/neobanner</link>
      <pubDate>Mon, 29 Sep 2008 18:42:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/neobanner</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2008 self wrote this. It is selectively
preserved for historical interest and amusement from a lot of similar,
chronologically nearby posts. That’s all.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Hooray! I got a new banner! Is there something rebellious lurking
just beyond my grasp?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Peanut Butter Viscosity</title>
      <link>//blog.vero.site/post/peanut-butter-viscosity</link>
      <pubDate>Mon, 29 Sep 2008 08:44:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/peanut-butter-viscosity</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2008 self wrote this. It is selectively
preserved for historical interest and amusement from a lot of similar,
chronologically nearby posts. That’s all.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Note to self: PB gets stickier when toasted. Slightly strange because
under heat it should flow easier, but it’s probably the same principle
as the way cement works.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Yay! I&#39;m back!</title>
      <link>//blog.vero.site/post/yay-im-back</link>
      <pubDate>Mon, 25 Feb 2008 18:33:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/yay-im-back</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2008 self wrote this. It is preserved for
historical interest as a glimpse into the history of this blog.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Blog revival!!! Thanks to Jonathan for reminding me of the existence
of Blogger.&lt;/p&gt;
&lt;p&gt;Today was a good day all in all.&lt;/p&gt;
&lt;p&gt;Accomplishments:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>2006 Summary</title>
      <link>//blog.vero.site/post/2006-summary</link>
      <pubDate>Sun, 31 Dec 2006 23:59:59 +0800</pubDate>
      
      <guid>//blog.vero.site/post/2006-summary</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: This post is backdated. I am writing this post
in 2018 because, as part of the &lt;a href=&#34;//blog.vero.site/post/remigration&#34;&gt;Big
2017 Remigration&lt;/a&gt;, I have decided to delete most of the posts because
they were too embarrassing and sparse on information, but figured I
might keep a rundown of the highlights.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;2006, on this blog:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Your Typical Friday</title>
      <link>//blog.vero.site/post/your-typical-friday</link>
      <pubDate>Fri, 08 Sep 2006 19:15:00 +0800</pubDate>
      
      <guid>//blog.vero.site/post/your-typical-friday</guid>
      <description>&lt;div class=&#34;warning&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: My 2006 self wrote this. It is preserved for
historical interest (as the first post ever made on this blog) and
amusement, and is not representative of my current beliefs or
attitudes.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Today was an… ordinary special day. Well, an ordinary day from all
aspects, but a special day if you count the way everybody got
hyperactive after lunch.&lt;/p&gt;
&lt;p&gt;Well, duh!&lt;/p&gt;
&lt;p&gt;Just your typical Friday. Typical Fridays, we get computer class. And
I can repeat it again.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Color</title>
      <link>//blog.vero.site/ref/color</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>//blog.vero.site/ref/color</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.brucelindbloom.com/&#34;&gt;Bruce Lindbloom&lt;/a&gt; has a
ton of equations, but I just want the big ones on one page. We’ll assume
&lt;a href=&#34;https://en.wikipedia.org/wiki/SRGB&#34;&gt;sRGB&lt;/a&gt;, which implies
using &lt;a href=&#34;https://en.wikipedia.org/wiki/Illuminant_D65&#34;&gt;D65&lt;/a&gt; as
white (if you’re using Bruce Lindbloom’s calculator to check your
implementation, make sure to set these).&lt;/p&gt;
&lt;h3 id=&#34;rgb-linear-rgb&#34;&gt;RGB ↔︎ Linear RGB&lt;/h3&gt;
&lt;p&gt;Let &lt;span class=&#34;math inline&#34;&gt;\(\Xi\)&lt;/span&gt; (one of &lt;span
class=&#34;math inline&#34;&gt;\(R\)&lt;/span&gt;, &lt;span
class=&#34;math inline&#34;&gt;\(G\)&lt;/span&gt;, and &lt;span
class=&#34;math inline&#34;&gt;\(B\)&lt;/span&gt;) be an RGB component in the range &lt;span
class=&#34;math inline&#34;&gt;\([0, 1]\)&lt;/span&gt;. (This is an obnoxious variable
choice, but I’m trying to not overload any variable names in this entire
post.) If you have RGB values in &lt;span class=&#34;math inline&#34;&gt;\([0,
255]\)&lt;/span&gt;, divide them by 255. It can be converted to/from the
&lt;strong&gt;linearized component&lt;/strong&gt; &lt;span
class=&#34;math inline&#34;&gt;\(\xi\)&lt;/span&gt; (one of &lt;span
class=&#34;math inline&#34;&gt;\(r\)&lt;/span&gt;, &lt;span
class=&#34;math inline&#34;&gt;\(g\)&lt;/span&gt;, and &lt;span
class=&#34;math inline&#34;&gt;\(b\)&lt;/span&gt;) as:&lt;/p&gt;
&lt;p&gt;&lt;span class=&#34;math display&#34;&gt;\[\xi = \begin{cases} \Xi/12.92 &amp;amp;
\text{if }\Xi \leq 0.04045 \\ ((\Xi + 0.055)/1.055)^{2.4} &amp;amp; \text{if
}\Xi &amp;gt; 0.04045 \end{cases}\]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&#34;math display&#34;&gt;\[\Xi = \begin{cases} 12.92\xi &amp;amp;
\text{if }\xi \leq 0.0031308 \\ 1.055v^{1/2.4} - 0.055 &amp;amp; \text{if
}\xi &amp;gt; 0.0031308 \end{cases}\]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;This is called “companding”.&lt;/p&gt;
&lt;p&gt;However, you can use &lt;span class=&#34;math inline&#34;&gt;\(\xi =
\Xi^{2.4}\)&lt;/span&gt; and &lt;span class=&#34;math inline&#34;&gt;\(\Xi =
\xi^{1/2.4}\)&lt;/span&gt; in a pinch.&lt;/p&gt;
&lt;h3 id=&#34;linear-rgb-xyz&#34;&gt;Linear RGB ↔︎ XYZ&lt;/h3&gt;
&lt;p&gt;Convert between XYZ and linearized RGB. Again, this assumes sRGB and
D65.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#34;math display&#34;&gt;\[\begin{align*}
X &amp;amp;= 0.4124564r + 0.3575761g + 0.1804375b \\
Y &amp;amp;= 0.2126729r + 0.7151522g + 0.0721750b \\
Z &amp;amp;= 0.0193339r + 0.1191920g + 0.9503041b
\end{align*}\]&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Coq Reference</title>
      <link>//blog.vero.site/ref/coq</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>//blog.vero.site/ref/coq</guid>
      <description>&lt;p&gt;It seems like a rite of passage to create one of these because there
are so many Coq tactic cheat sheets out there and there’s just so much
to learn. Here’s mine.&lt;/p&gt;
&lt;p&gt;This is mostly about tactics but I realized not really.&lt;/p&gt;
&lt;p&gt;Links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a
href=&#34;https://coq.inria.fr/refman/proof-engine/tactics.html&#34;&gt;Coq
Tactics&lt;/a&gt;. Authoritative but dense.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a
href=&#34;https://softwarefoundations.cis.upenn.edu/lf-current/index.html&#34;&gt;Logical
Foundations&lt;/a&gt; (Software Foundations Volume 1). I think the order of
ideas makes pedagogical sense but also makes it hard for me to look up
particular tactics or concepts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Other Coq cheat sheets found by Googling “Coq cheat sheets”:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://pjreddie.com/coq-tactics/&#34;&gt;Coq Tactics Index&lt;/a&gt;
(Joseph Redmon)&lt;/li&gt;
&lt;li&gt;&lt;a
href=&#34;https://www.cs.cornell.edu/courses/cs3110/2018sp/a5/coq-tactics-cheatsheet.html&#34;&gt;Coq
Tactics Cheatsheet&lt;/a&gt; (Cornell CS3110)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://adam.chlipala.net/itp/tactic-reference.html&#34;&gt;Coq
Tactics Quick Reference&lt;/a&gt; (Adam Chlipala) / the &lt;a
href=&#34;http://adam.chlipala.net/frap/&#34;&gt;Formal Reasoning About
Programs&lt;/a&gt; book also has a nice appendix&lt;/li&gt;
&lt;li&gt;&lt;a
href=&#34;https://www.cis.upenn.edu/~rrand/popl_2016/reference.html&#34;&gt;Coq
Tactics&lt;/a&gt; (UPenn ???)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Meta-notes: I cover a lot of weak tactics because I like knowing
exactly what my tools are doing. I try to use the variants of tactics
that explicitly name things produced when possible. I am sure there is
nomenclature I don’t understand precisely and use sloppily in this list;
I am also sloppy with metavariables. Even things that are correct might
be horrible style. There are likely other errors and omissions. They
might be fixed one day. I’m putting this up nevertheless because it’s
personally useful.&lt;/p&gt;
&lt;h3
id=&#34;things-i-wish-i-knew-but-didnt-learn-from-software-foundations-or-coq-tactic-cheat-sheets&#34;&gt;Things
I wish I knew but didn’t learn from Software Foundations or Coq tactic
cheat sheets&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The first two sections are not about tactics per se but how to find
theorems to use and how to use them. Knowing how to use all of these
query commands is super useful.&lt;/li&gt;
&lt;li&gt;To clean up repeating subexpressions with “local variables”, I find
&lt;code&gt;remember expr as X eqn:Hname.&lt;/code&gt; easier to work with than
&lt;code&gt;set (X := expr).&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pose proof expr as Hname.&lt;/code&gt; adds &lt;code&gt;expr&lt;/code&gt; to the
context, with name &lt;code&gt;Hname&lt;/code&gt;. Modus ponens where you know
&lt;code&gt;H1&lt;/code&gt; and &lt;code&gt;H2&lt;/code&gt;, which is “&lt;code&gt;H1&lt;/code&gt; implies
&lt;code&gt;H3&lt;/code&gt;”, is just &lt;code&gt;pose proof (H2 H1) as H3&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Software Foundations covers bullets and curly braces early, but I
like subgoal specification with &lt;code&gt;1:&lt;/code&gt;, &lt;code&gt;2:&lt;/code&gt; etc.,
which can really help limit nesting depth.
&lt;code&gt;2: (tactic that solves subgoal 2).&lt;/code&gt; If you want more
bullets, there are infinitely many, not just three. After &lt;code&gt;-&lt;/code&gt;
&lt;code&gt;+&lt;/code&gt; &lt;code&gt;*&lt;/code&gt; you can use &lt;code&gt;--&lt;/code&gt;
&lt;code&gt;++&lt;/code&gt; &lt;code&gt;**&lt;/code&gt; &lt;code&gt;---&lt;/code&gt; etc.&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    
    <item>
      <title>diagrams Reference</title>
      <link>//blog.vero.site/ref/diagrams</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>//blog.vero.site/ref/diagrams</guid>
      <description>&lt;p&gt;&lt;code&gt;&lt;a href=&#34;https://diagrams.github.io/&#34;&gt;diagrams&lt;/a&gt;&lt;/code&gt; is a
nifty Haskell library for making vector diagrams. I keep coming back to
it to generate graphics for puzzles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the very old &lt;a
href=&#34;https://blog.vero.site/post/signature-puzzle&#34;&gt;A Signature
Puzzle&lt;/a&gt; from this blog&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://dp.puzzlehunt.net/puzzle/a-fork-in-the-road.html&#34;&gt;A
Fork in the Road&lt;/a&gt; (DP Puzzle Hunt)&lt;/li&gt;
&lt;li&gt;&lt;a
href=&#34;https://2020.galacticpuzzlehunt.com/puzzle/symbols&#34;&gt;Symbols&lt;/a&gt;
(Galactic Puzzle Hunt 2020)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://silphpuzzlehunt.com/puzzle/a-lot-of-research&#34;&gt;A Lot
of Research into Things That Have Very Little Meaning&lt;/a&gt; (Silph Puzzle
Hunt)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I got sick of relearning it every time, and I think there’s some
small chance other people will find it useful too, so I wrote something
up. This post is a sort of reference that tries to compromise between
the &lt;a href=&#34;https://diagrams.github.io/doc/quickstart.html&#34;&gt;quick start
tutorial&lt;/a&gt; and &lt;a
href=&#34;https://diagrams.github.io/doc/manual.html&#34;&gt;manual&lt;/a&gt; on one
hand, and the API reference on the other, to try to be deeper and more
comprehensive than the former, but also flow better and be easier to
navigate than the latter. Some types are just really intimidating when
fully written out…&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb1&#34;&gt;&lt;pre
class=&#34;sourceCode haskell&#34;&gt;&lt;code class=&#34;sourceCode haskell&#34;&gt;&lt;span id=&#34;cb1-1&#34;&gt;&lt;a href=&#34;#cb1-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;ot&#34;&gt;circle ::&lt;/span&gt; (&lt;span class=&#34;dt&#34;&gt;TrailLike&lt;/span&gt; t, &lt;span class=&#34;dt&#34;&gt;V&lt;/span&gt; t &lt;span class=&#34;op&#34;&gt;~&lt;/span&gt; &lt;span class=&#34;dt&#34;&gt;V2&lt;/span&gt;, &lt;span class=&#34;dt&#34;&gt;N&lt;/span&gt; t &lt;span class=&#34;op&#34;&gt;~&lt;/span&gt; n, &lt;span class=&#34;dt&#34;&gt;Transformable&lt;/span&gt; t) &lt;span class=&#34;ot&#34;&gt;=&amp;gt;&lt;/span&gt; n &lt;span class=&#34;ot&#34;&gt;-&amp;gt;&lt;/span&gt; t&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;To avoid unhelpfully generic types, I will deal concretely with
two-dimensional diagrams that measure everything in &lt;code&gt;Double&lt;/code&gt;,
and will frequently abbreviate complex types with an asterisk, like I
will write &lt;code&gt;V2*&lt;/code&gt; for &lt;code&gt;V2 Double&lt;/code&gt;. I will introduce
these aliases along the way for easy greppability. They’re not legal
Haskell, of course.&lt;/p&gt;
&lt;p&gt;This reference assumes basic-to-intermediate Haskell knowledge. Some
of the more intermediate stuff includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Monoids, and that the Haskell &lt;code&gt;Monoid&lt;/code&gt; operator is
&lt;code&gt;&amp;lt;&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Typeclasses. I will sometimes write fake type signatures as
abbreviations for typeclass restrictions: for example,
&lt;code&gt;TrailLike&lt;/code&gt; is a typeclass, and I might say or write that a
function returns &lt;code&gt;TrailLike&lt;/code&gt; when I really mean
&lt;code&gt;TrailLike t =&amp;gt; t&lt;/code&gt;, any type &lt;code&gt;t&lt;/code&gt; that is in
that typeclass.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;van Laarhoven lenses may help, but mostly I’ll try to black-box
them.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Factorize</title>
      <link>//blog.vero.site/util/factorize</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>//blog.vero.site/util/factorize</guid>
      <description>A basic JavaScript factorizer. Warning: it uses extremely dumb trial division, so numbers with large prime factors will quite likely hang your browser, and big numbers will overflow or lose precision. If you want to factor the big fish, use Alpertron’s ECM applet or something.
factor! append? fancy? </description>
    </item>
    
    <item>
      <title>Haskell Stash</title>
      <link>//blog.vero.site/ref/hs</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>//blog.vero.site/ref/hs</guid>
      <description>&lt;p&gt;Editor’s note: This is almost certainly years out of date. cabal has
v2 commands and stuff now? Sorry.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>init</title>
      <link>//blog.vero.site/ref/init</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>//blog.vero.site/ref/init</guid>
      <description>&lt;h2 id=&#34;section&#34;&gt;1&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a
href=&#34;https://www.mozilla.org/en-US/firefox/new/&#34;&gt;&lt;strong&gt;Firefox&lt;/strong&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a
href=&#34;http://www.proginosko.com/leechblock.html#SECT2&#34;&gt;LeechBlock&lt;/a&gt;,
&lt;a href=&#34;https://download.xmarks.com/download&#34;&gt;Xmarks&lt;/a&gt;&lt;/strong&gt;, &lt;a
href=&#34;https://www.eff.org/https-everywhere&#34;&gt;HTTPS Everywhere&lt;/a&gt;, &lt;a
href=&#34;https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/&#34;&gt;uBlock
Origin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Formerly: &lt;a href=&#34;http://5digits.org/pentadactyl/&#34;&gt;Pentadactyl&lt;/a&gt;
(&lt;a href=&#34;http://5digits.org/nightlies&#34;&gt;nightlies&lt;/a&gt;), &lt;a
href=&#34;https://lastpass.com/misc_download2.php&#34;&gt;LastPass&lt;/a&gt;, &lt;a
href=&#34;https://disconnect.me/&#34;&gt;Disconnect&lt;/a&gt;, &lt;a
href=&#34;http://firefox.exxile.net/aios/&#34;&gt;All-in-One Sidebar&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.dropbox.com/&#34;&gt;&lt;strong&gt;Dropbox&lt;/strong&gt;&lt;/a&gt;
(&lt;code&gt;&lt;a href=&#34;http://db.tt/&#34;&gt;db.tt&lt;/a&gt;&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;(g)&lt;a href=&#34;http://www.vim.org/&#34;&gt;Vim&lt;/a&gt;&lt;/strong&gt; / &lt;a
href=&#34;https://github.com/macvim-dev/macvim&#34;&gt;MacVim&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a
href=&#34;https://github.com/Shougo/neobundle.vim&#34;&gt;NeoBundle&lt;/a&gt;; &lt;a
href=&#34;https://github.com/nanotech/jellybeans.vim&#34;&gt;jellybeans&lt;/a&gt;, &lt;a
href=&#34;https://github.com/scrooloose/syntastic&#34;&gt;syntastic&lt;/a&gt;&lt;/strong&gt;,
airline, fugitive, unite.vim, nerdtree, …&lt;/li&gt;
&lt;li&gt;Make sure you change your home folder and other paths in your
&lt;code&gt;.vimrc&lt;/code&gt; if necessary.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.latex-project.org/&#34;&gt;LaTeX&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.videolan.org/vlc/&#34;&gt;VLC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://ankisrs.net/&#34;&gt;Anki&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.geogebra.org/&#34;&gt;Geogebra&lt;/a&gt;, &lt;a
href=&#34;http://db-maths.nuxit.net/CaRMetal/index_en.html&#34;&gt;CaRMetal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://osu.ppy.sh/p/download&#34;&gt;osu!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://ccxvii.net/gargoyle/&#34;&gt;Gargoyle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://musescore.org/en&#34;&gt;MuseScore&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.utorrent.com/&#34;&gt;μTorrent&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://veracrypt.codeplex.com/&#34;&gt;VeraCrypt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://gyazo.com/&#34;&gt;Gyazo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    
    <item>
      <title>Iverson Bracket</title>
      <link>//blog.vero.site/ref/iverson</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>//blog.vero.site/ref/iverson</guid>
      <description>Very simple to explain: if \(P\) is a statement, \([P]\) is 1 if \(P\) is true and 0 if not. So for example
\[\begin{aligned} \lbrack 1 &amp;lt; 2\rbrack &amp;amp;= 1 \\ \lbrack 1 &amp;gt; 2\rbrack &amp;amp;= 0 \end{aligned}\]
It’s like using a boolean as an integer in C or Python.
It’s useful to keep yourself organized when you’re writing summations, especially if you’re summing across terms with a weird condition or if you need to exchange two sums.</description>
    </item>
    
    <item>
      <title>Java Clipboards and Data Transfer</title>
      <link>//blog.vero.site/ref/java-clipboards</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>//blog.vero.site/ref/java-clipboards</guid>
      <description>&lt;p&gt;(Ported from betaveros.stash. Wow, I get syntax highlighting and
footnotes! Probably years out of date though. I probably wrote this
somewhere in 2012–2014, but am editing this parenthetical in 2021.)&lt;/p&gt;
&lt;p&gt;A quick brief guide. At least, that’s how I planned it.&lt;/p&gt;
&lt;p&gt;A lot of stuff is in the package &lt;code&gt;java.awt.datatransfer&lt;/code&gt;.
Class &lt;code&gt;Toolkit&lt;/code&gt; is in &lt;code&gt;java.awt&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Some basic classes. The class &lt;code&gt;Clipboard&lt;/code&gt; is a clipboard,
obviously. Its content is/will be an instance of the class
&lt;code&gt;Transferable&lt;/code&gt;. Some content can be read as different types
of objects depending on what you want; to choose which type you use an
instance of &lt;code&gt;DataFlavor&lt;/code&gt;. It provides three basic ones:
&lt;code&gt;DataFlavor.imageFlavor&lt;/code&gt;,
&lt;code&gt;DataFlavor.javaFileListFlavor&lt;/code&gt;, and
&lt;code&gt;DataFlavor.stringFlavor&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Okay, now step by step. This is the low-level method.&lt;/p&gt;
&lt;ol type=&#34;1&#34;&gt;
&lt;li&gt;Get the default clipboard with
&lt;code&gt;Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Get a transferable with
&lt;code&gt;Transferable content = clipboard.getContents(null);&lt;/code&gt; &lt;a
href=&#34;#fn1&#34; class=&#34;footnote-ref&#34; id=&#34;fnref1&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Check if &lt;code&gt;content&lt;/code&gt; can be read as the kind of object you
want with
&lt;code&gt;(content != null) &amp;amp;&amp;amp; content.isDataFlavorSupported(someFlavor)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;If it does, get the object with
&lt;code&gt;content.getTransferData(someFlavor)&lt;/code&gt; &lt;a href=&#34;#fn2&#34;
class=&#34;footnote-ref&#34; id=&#34;fnref2&#34;
role=&#34;doc-noteref&#34;&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you just want a quick-and-dirty function:&lt;/p&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb1&#34;&gt;&lt;pre
class=&#34;sourceCode java&#34;&gt;&lt;code class=&#34;sourceCode java&#34;&gt;&lt;span id=&#34;cb1-1&#34;&gt;&lt;a href=&#34;#cb1-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;dt&#34;&gt;static&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;String&lt;/span&gt; &lt;span class=&#34;fu&#34;&gt;getClipboard&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-2&#34;&gt;&lt;a href=&#34;#cb1-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        &lt;span class=&#34;kw&#34;&gt;throws&lt;/span&gt; java&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;awt&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;datatransfer&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;UnsupportedFlavorException&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;bu&#34;&gt;IOException&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-3&#34;&gt;&lt;a href=&#34;#cb1-3&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;cf&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;op&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bu&#34;&gt;String&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;)&lt;/span&gt; java&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;awt&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;Toolkit&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;getDefaultToolkit&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-4&#34;&gt;&lt;a href=&#34;#cb1-4&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        &lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;getSystemClipboard&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-5&#34;&gt;&lt;a href=&#34;#cb1-5&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;        &lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;getData&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;(&lt;/span&gt;java&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;awt&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;datatransfer&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;DataFlavor&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt;stringFlavor&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb1-6&#34;&gt;&lt;a href=&#34;#cb1-6&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;op&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>Linear Algebra</title>
      <link>//blog.vero.site/ref/linalg</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>//blog.vero.site/ref/linalg</guid>
      <description>This is a matrix.
\[\begin{bmatrix} 1 &amp;amp; 2 &amp;amp; 3 \\\\ 4 &amp;amp; 5 &amp;amp; 6 \end{bmatrix}\]
It has 2 rows and 3 columns, so it is a \(2 \times 3\) matrix.
Matrix addition and multiplication-by-a-scalar is done componentwise. Matrix multiplication is done trickily; it’s associative, distributive, commutative with scalars, linear, anticommutative-under-transposition.
Vectors are like columns of matrices, or matrices with one column. Except row vectors are rows of matrices.</description>
    </item>
    
    <item>
      <title>Operation Exchange</title>
      <link>//blog.vero.site/ref/exchange</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>//blog.vero.site/ref/exchange</guid>
      <description>&lt;h3 id=&#34;limit-limit&#34;&gt;Limit + Limit&lt;/h3&gt;
&lt;p&gt;Cheaply, using an &lt;a
href=&#34;%7B%%20post_url%202014-10-21-iverson-bracket%20%%7D&#34;&gt;Iverson
bracket&lt;/a&gt; expression:&lt;/p&gt;
&lt;p&gt;&lt;span class=&#34;math display&#34;&gt;\[
\begin{aligned}
\lim_{a \to \infty} \lim_{b \to \infty} [a &amp;gt; b] &amp;amp;= 0 \\
\lim_{b \to \infty} \lim_{a \to \infty} [a &amp;gt; b] &amp;amp;= 1
\end{aligned}
\]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;For more continuity, use &lt;span class=&#34;math inline&#34;&gt;\(\frac{a}{a +
b}\)&lt;/span&gt; instead (Rudin Example 7.2).&lt;/p&gt;
&lt;p&gt;Uniform convergence on one limit suffices to allow this exchange,
almost by definition.&lt;/p&gt;
&lt;h3 id=&#34;limit-continuity&#34;&gt;Limit + Continuity&lt;/h3&gt;
&lt;p&gt;Let&lt;/p&gt;
&lt;p&gt;&lt;span class=&#34;math display&#34;&gt;\[
f_\epsilon(x) = \begin{cases} 0 &amp;amp; \text{if } |x| \geq \epsilon \\ 1
- \left|\frac{x}{\epsilon}\right| &amp;amp;\text{if } |x| &amp;lt; \epsilon
\end{cases}.
\]&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Paper Size</title>
      <link>//blog.vero.site/ref/paper</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>//blog.vero.site/ref/paper</guid>
      <description>&lt;p&gt;1in = 2.54cm&lt;/p&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;A4&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;
= &lt;strong&gt;21.0cm × 29.7cm&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;= 8.27in × 11.69in&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
A4 − 1in margins
&lt;/td&gt;
&lt;td&gt;
= 15.92cm × 24.62cm
&lt;/td&gt;
&lt;td&gt;
= 6.27in × 9.69in
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
Letter
&lt;/td&gt;
&lt;td&gt;
= 21.59cm × 27.94cm
&lt;/td&gt;
&lt;td&gt;
= 8.5in × 11in
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</description>
    </item>
    
    <item>
      <title>Poker Formatter</title>
      <link>//blog.vero.site/util/poker</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>//blog.vero.site/util/poker</guid>
      <description>&lt;p&gt;Format poker cards for forum games and whatever without reaching for
Unicode input methods.&lt;/p&gt;
&lt;p&gt;The regex employed is essentially
&lt;code&gt;/\b([A2-9TJQK]|10)([CDHS])\b/g&lt;/code&gt;. You have to type in
uppercase (otherwise even “as” would be filtered).&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Problem Reference</title>
      <link>//blog.vero.site/ref/problem-ref</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>//blog.vero.site/ref/problem-ref</guid>
      <description>(ported from wiki)
Certain notable problems that I don’t want to look through a zillion pages to find.
Iran TST 1996, notoriously reposted at least 35 times on AoPS (okay, many of these are actually modifications):
If \(x, y, z &amp;gt; 0\) then
\[(xy+yz+zx)\left(\frac{1}{(x+y)^2} + \frac{1}{(y+z)^2} + \frac{1}{(z+x)^2}\right) \geq \frac{9}{4}\]
ISL 1988 #4: if \(1, 2, \ldots, n^2\) are placed in a \(n \times n\) chessboard, some two adjacent numbers differ by at least \(n\)</description>
    </item>
    
    <item>
      <title>Rudin Crib Notes</title>
      <link>//blog.vero.site/ref/rudin</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>//blog.vero.site/ref/rudin</guid>
      <description>&lt;p&gt;Brevity has been chosen over accuracy because the whole point is that
you should know this stuff already.&lt;/p&gt;
&lt;h3 id=&#34;chapter-2-basic-topology-some-ch.-3&#34;&gt;Chapter 2: Basic Topology
(+ some Ch. 3)&lt;/h3&gt;
&lt;p&gt;An &lt;strong&gt;isolated point&lt;/strong&gt; of E is in E but not a limit point
of it. E is &lt;strong&gt;perfect&lt;/strong&gt; if it is exactly equal to its set
of limit points. Equivalently, it is closed and has no isolated points.
Ex. 2.44: The Cantor set is perfect.&lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;compact set&lt;/strong&gt; is a set for which every open cover
has a finite subcover.&lt;/p&gt;
&lt;p&gt;Compactness or compact sets have these properties (with made-up
names):&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Stash</title>
      <link>//blog.vero.site/ref/stash</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>//blog.vero.site/ref/stash</guid>
      <description>&lt;div class=&#34;sourceCode&#34; id=&#34;cb1&#34;&gt;&lt;pre class=&#34;sourceCode sh&#34;&gt;&lt;code class=&#34;sourceCode bash&#34;&gt;&lt;span id=&#34;cb1-1&#34;&gt;&lt;a href=&#34;#cb1-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;ex&#34;&gt;rustc&lt;/span&gt; &lt;span class=&#34;at&#34;&gt;-C&lt;/span&gt; prefer-dynamic&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb2&#34;&gt;&lt;pre
class=&#34;sourceCode css&#34;&gt;&lt;code class=&#34;sourceCode css&#34;&gt;&lt;span id=&#34;cb2-1&#34;&gt;&lt;a href=&#34;#cb2-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;fu&#34;&gt;.meter-text&lt;/span&gt; { &lt;span class=&#34;kw&#34;&gt;white-space&lt;/span&gt;: &lt;span class=&#34;dv&#34;&gt;pre-wrap&lt;/span&gt;&lt;span class=&#34;op&#34;&gt;;&lt;/span&gt; }&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb3&#34;&gt;&lt;pre class=&#34;sourceCode sh&#34;&gt;&lt;code class=&#34;sourceCode bash&#34;&gt;&lt;span id=&#34;cb3-1&#34;&gt;&lt;a href=&#34;#cb3-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;ex&#34;&gt;launchctl&lt;/span&gt; stop com.apple.pboard&lt;/span&gt;
&lt;span id=&#34;cb3-2&#34;&gt;&lt;a href=&#34;#cb3-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;ex&#34;&gt;launchctl&lt;/span&gt; start com.apple.pboard&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&#34;sourceCode&#34; id=&#34;cb4&#34;&gt;&lt;pre class=&#34;sourceCode sh&#34;&gt;&lt;code class=&#34;sourceCode bash&#34;&gt;&lt;span id=&#34;cb4-1&#34;&gt;&lt;a href=&#34;#cb4-1&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;co&#34;&gt;# requires ImageMagick&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb4-2&#34;&gt;&lt;a href=&#34;#cb4-2&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;kw&#34;&gt;function&lt;/span&gt;&lt;span class=&#34;fu&#34;&gt; img()&lt;/span&gt; &lt;span class=&#34;kw&#34;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb4-3&#34;&gt;&lt;a href=&#34;#cb4-3&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;    &lt;span class=&#34;ex&#34;&gt;identify&lt;/span&gt; &lt;span class=&#34;at&#34;&gt;-format&lt;/span&gt; &lt;span class=&#34;st&#34;&gt;&amp;#39;&amp;lt;img src=&amp;quot;%f&amp;quot; width=&amp;quot;%w&amp;quot; height=&amp;quot;%h&amp;quot; /&amp;gt;&amp;#39;&lt;/span&gt; &lt;span class=&#34;va&#34;&gt;$1&lt;/span&gt;&lt;/span&gt;
&lt;span id=&#34;cb4-4&#34;&gt;&lt;a href=&#34;#cb4-4&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;&lt;/a&gt;&lt;span class=&#34;kw&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    
  </channel>
</rss>
