<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Library of Trantor</title>
  <link href="https://www.shimmy1996.com/en/"/>
  <link href="https://www.shimmy1996.com/en/index.xml" rel="self"/>
  <updated>2021-04-24T21:44:00-05:00</updated>
  <author><name>Shimmy Xu</name></author>
  <id>https://www.shimmy1996.com/en/</id>
  
  
  
  
  
  <entry>
    <id>https://www.shimmy1996.com/en/posts/2021-04-24-bio-pages-multiscale-writing-and-xpa/</id>
    <title type="html"><![CDATA[Bio Pages, Multiscale Writing, and XPA]]></title><updated>2021-04-24T21:44:00-05:00</updated>
    <content type="html"><![CDATA[<p>Or, a roundabout way of explaining why I don't have an dedicated &quot;About&quot; page.</p>
<h2>Bio Pages</h2>
<p>I find bio pages hard to write.</p>
<p>I've always despised bio pages that sound like:</p>
<blockquote>
<p>Scott Danger Solo, MIB, is a WHSA certified Sigma-level worm-hole surfing professional that shoots first, crosses the streams, and thinks 4th-dimensionally.</p>
</blockquote>
<p>It grosses me out the same way that ego-flavored bubble gums would. I can't help but take these statements as a desperate attempt at smearing online contents with every last drop of legitimacy squeezed out of grand-yet-insincere-sounding words.</p>
<p>Most of the time, I opt to not include a bio on my online presences. Among the few exceptions is my old WordPress blog where I put:</p>
<blockquote>
<p>EE major; new to WP and not very good at it; weeb; disproportional appetite for new hardware compared to my wallet size; may appear on social networks as <code>shimmy1996</code>; let's be friends XDD.</p>
</blockquote>
<p>Even that felt too revealing for me. In other cases, I just use random made up sci-fi one-liners, for instance:</p>
<blockquote>
<p>University of Trantor, Extraterrestrial Lifeform Breeding and Culinary Arts Major</p>
</blockquote>
<p>Coming up with imaginary professions is actually a lot of fun and I can do this all day long. Just to give you a sneak peek at my stockpile:</p>
<ul>
<li>Supervillain mechanic (the kind that engages in their repair and restoration, not actually in taking over the world);</li>
<li>Saturnian folklore and Demonology enthusiast;</li>
<li>Native speaker of Fishish (a dialect of Atlantish, used by most crustaceans and aquatic mammals in the North Atlantic Ocean; confusing name, I know);</li>
<li>Genff panel (chorono-voltaic modules, think about it as a reversed flux capacitor) technician;</li>
<li>Collector of ultrasonic music (no, that does not include Snake Jazz, they are inferior to Whale Blues or Bat Rock);</li>
<li>Star magnitude calibration specialist;</li>
<li>Dream composition and cinematography expert.</li>
</ul>
<p>The list would have been longer if full-spectrum photography is not actually a thing.</p>
<p>Ah, see how easily I get distracted by these? Back to bio pages on a version of Earth where birds (or Biofueled InspectoR Drones if you prefer) are real and tree octopus aren't, unfortunately.</p>
<p>Why do I always read bio pages under the assumption that they are written with the purpose of exerting authority or &quot;crafting your personal brand&quot;? Wouldn't that make me, who is showing contempt and animosity towards others' qualifications, the one actually displaying syndromes bordering superiority complex? Is it being brought up hearing &quot;modesty is the best policy&quot; all the time finally backfiring? What should the bio page contain anyways? If the purpose is to sprinkle a few hashtags for others to shoehorn my personality into, I would rather not provide such a distraction from contents of the site. Then again, one can argue that if my personality as manifested through the site is easily swayed by the bio page, perhaps the contents aren't really speaking much for themselves after all.</p>
<h2>Multiscale Writing</h2>
<p>I currently classify contents on this site loosely into three categories:</p>
<ul>
<li>Posts: anything with a publish time and a title;</li>
<li>Hoots: anything with a publish time but without a title;</li>
<li>Fixed: anything without a publish time.</li>
</ul>
<p>Up till now, I have always put bio pages under the &quot;fixed&quot; category. However, I have come to realize this have more subtle implications.</p>
<p>This first came struck me as I was casually browsing my RSS reader and landed on a blog post without any indication of publish time. Since I vaguely recognize the page title from memory, I instinctively scanned through the page, searching for a timestamp of any kind. After some detective work, I was able to date the post by checking the HTML source. Realizing that this page was published long ago and only showed up in my RSS reader again due to updated feeds, I promptly left the page. Could there have been subtle wording changes? Maybe, but I didn't remember my first read well enough to recognize them. Could there have been substantial additions? Equally likely, but unless there's a FOMO-inducing &quot;updated XXXX-XX-XX&quot; in huge red fonts, I doubt I would have scrolled down. On a related note, I also see blogs displaying not only publish time, but also a glaring banner warning the readers that the contents may be out of date and the author's opinions may have changed since. Funny how the latter is apparently no longer obvious short of an explicit no-responsibility clause now, but it does illustrate the point: I treat pages without any indication of publish time as ones set in stone, completed works, and ultimate truths of the universe (from the author's view).</p>
<p>There's a mismatch between what I hoped to express through bio pages and the typical fixed page format itself. Well, what are the alternatives? I don't want an <a href="https://sawv.org/en.html">E/N site</a>, as I value the process of organizing my fragments of thoughts as much as, if not more than, the process of collecting them. I've played around with the idea of a <a href="https://alexschroeder.ch/">personal wiki</a>, but I would like to have separate pages for &quot;major versions&quot;, instead of cramming all edits, regardless of importance, into editing history. While for technical contents, latest edition with all the errata incorporated is naturally the most desirable, I don't view my former self necessarily as obsolete or wrong, yet I also don't want to mix past and present on the same page &quot;<a href="https://www.gwern.net/About#long-content">long content</a>&quot; style.</p>
<p>I want bio pages to be condensed me-flavored words, which would be a moving target that a fixed page will forever be playing catching up with as my thoughts evolve over time. Between fixed pages and posts, there is a missing time scale: I need something that manifests change faster than a fixed page, but more long-lasting than regular dated post.</p>
<h2>XPA (eXtensible Personality Archive)</h2>
<p>Cool name, right? It's a happy accident that XPA is also the name of a protein (and the corresponding gene) <a href="https://en.wikipedia.org/wiki/XPA#Function">responsible for repairing DNA damage</a>.</p>
<p>Now, now, before discounting this as unnecessary formality, hear me out. Instead of a single fixed bio page, I think the most fitting substitute is a collection of gradually updated documents, not dissimilar to chapters of a book. While some books, like manga or web novels, are normally published chapter after chapter non-stop Markov-process-style, I'm thinking more of a non-linear progression where rewrites and revisions can happen more frequently.</p>
<p>Some blogs I visit feature sections named &quot;articles&quot; or &quot;opinions&quot; that are distinct from &quot;posts&quot; and serve similar purposes. The format I have in mind though is closer to <a href="https://www.ietf.org/standards/rfcs/">RFCs</a>, <a href="https://www.python.org/dev/peps/">PEPs</a>, etc. XPAs would be numbered, each XPA would be a dump of my current thoughts and personality pertaining to a specific topic, and they can be superseded by a later one with similar coverage. Meanwhile, posts are reserved for concrete things I did or experienced. In other words, XPAs contains literal states of my mind and posts/hoots serve to document some of the incremental changes between those states.</p>
<p>Following its definition strictly, XPA is actually a much more flexible format than I originally thought: reviews could also fall under its umbrella, for instance. Great Scott, just think about all the possibilities! Now the only remaining bike-shedding to be done before I can get started is to determine how XPAs should be presented on the site, whether I count from 0, which numerical system to use, how should we format the identifiers...</p>
<p>Hmm, naming really is hard isn't it.</p>
<h2>Comments</h2>






<p>No comments yet.</p>


]]></content>
    <link href="https://www.shimmy1996.com/en/posts/2021-04-24-bio-pages-multiscale-writing-and-xpa/"/>
  </entry>
  
  <entry>
    <id>https://www.shimmy1996.com/en/hoots/1618152075/</id>
    <title type="html"><![CDATA[Videos of Wendy Carlos playing were mesmerizing to…]]></title><updated>2021-04-11T09:41:15-05:00</updated>
    <content type="html"><![CDATA[<p>Videos of Wendy Carlos playing were mesmerizing to watch. Electronic musicians of the analog age looked seriously cool with all the huge synthesizers, VU meters, and reel-to-reel tape recorders.</p>
<h2>Comments</h2>






<p>No comments yet.</p>


]]></content>
    <link href="https://www.shimmy1996.com/en/hoots/1618152075/"/>
  </entry>
  
  <entry>
    <id>https://www.shimmy1996.com/en/hoots/1618067431/</id>
    <title type="html"><![CDATA[I really like the weather today. It was raining,…]]></title><updated>2021-04-10T10:10:31-05:00</updated>
    <content type="html"><![CDATA[<p>I really like the weather today. It was raining, but not the cold and gloomy kind.</p>
<p>It's the kind that would discourage the early morning dog-walkers, but still managable without a umbrella. The occational refreshing splashes on ankles, the lack of pedestrians or cars, and the bright yet blurred sky all seem to signal that something big, mysterious, and out of the ordinary is waiting for you down the road.</p>
<h2>Comments</h2>






<p>No comments yet.</p>


]]></content>
    <link href="https://www.shimmy1996.com/en/hoots/1618067431/"/>
  </entry>
  
  <entry>
    <id>https://www.shimmy1996.com/en/hoots/1618067381/</id>
    <title type="html"><![CDATA[Using 2 curved 49-inch ultrawide monitors felt…]]></title><updated>2021-04-10T10:09:41-05:00</updated>
    <content type="html"><![CDATA[<p>Using 2 curved 49-inch ultrawide monitors felt great. They are a bit taller than I initially expected and I position them column-wise with the upper monitor tilted downwards. I kinda wish they were curved a bit more, but then the upper monitor would have its corners cut off by the lower monitor. It does feel pretty good to be able to sit as upstraight as I can and still be able to see everything.</p>
<h2>Comments</h2>






<p>No comments yet.</p>


]]></content>
    <link href="https://www.shimmy1996.com/en/hoots/1618067381/"/>
  </entry>
  
  <entry>
    <id>https://www.shimmy1996.com/en/hoots/1617238866/</id>
    <title type="html"><![CDATA[Pasta with fractal shapes and infinite surface…]]></title><updated>2021-03-31T20:01:06-05:00</updated>
    <content type="html"><![CDATA[<p>Pasta with fractal shapes and infinite surface area when?</p>
<h2>Comments</h2>






<p>No comments yet.</p>


]]></content>
    <link href="https://www.shimmy1996.com/en/hoots/1617238866/"/>
  </entry>
  
  <entry>
    <id>https://www.shimmy1996.com/en/hoots/1616890976/</id>
    <title type="html"><![CDATA[Never thought I&#39;d see some of the most unique…]]></title><updated>2021-03-27T19:22:56-05:00</updated>
    <content type="html"><![CDATA[<p>Never thought I'd see some of the most unique software/hardware user interfaces in musical instruments. It does makes sense in that forcing sounds out of what is frequently a digital device beneth the cover using our fleshy human fingers is such a niche combination in itself (compared to what computers are first designed for) that there is simply no &quot;general&quot; way to do it, allowing for tons of experimentation and specialization.</p>
<h2>Comments</h2>






<p>No comments yet.</p>


]]></content>
    <link href="https://www.shimmy1996.com/en/hoots/1616890976/"/>
  </entry>
  
  <entry>
    <id>https://www.shimmy1996.com/en/hoots/1615165853/</id>
    <title type="html"><![CDATA[Did Back Arrow just pulled a Euphemia on us?
]]></title><updated>2021-03-07T19:10:53-06:00</updated>
    <content type="html"><![CDATA[<p>Did <em>Back Arrow</em> just pulled a Euphemia on us?</p>
<h2>Comments</h2>






<p>No comments yet.</p>


]]></content>
    <link href="https://www.shimmy1996.com/en/hoots/1615165853/"/>
  </entry>
  
  <entry>
    <id>https://www.shimmy1996.com/en/hoots/1614738734/</id>
    <title type="html"><![CDATA[Oh, you are saying Rust&#39;s const generics is…]]></title><updated>2021-03-02T20:32:14-06:00</updated>
    <content type="html"><![CDATA[<p>Oh, you are saying Rust's const generics is basically C++'s non-type template parameters? I should have got that from their names, silly me!</p>
<h2>Comments</h2>






<p>No comments yet.</p>


]]></content>
    <link href="https://www.shimmy1996.com/en/hoots/1614738734/"/>
  </entry>
  
  <entry>
    <id>https://www.shimmy1996.com/en/hoots/1614647340/</id>
    <title type="html"><![CDATA[Re: @niconiconi@cybre.space
I got into NetHack…]]></title><updated>2021-03-01T19:09:00-06:00</updated>
    <content type="html"><![CDATA[<p><a class="u-in-reply-to" href="https://cybre.space/@niconiconi/105790127784336362">Re: @niconiconi@cybre.space</a></p>
<p>I got into NetHack mostly by watching YouTube let's plays - around 10 hours into the <a href="https://www.youtube.com/playlist?list=PLnB5NenmrhCfZJBao-rn4FlVBEzr0pmOM">playlist</a> and 20+ odd games, I feel relatively comfortable navigating the early game now (clearing sokoban + minetown).</p>
<h2>Comments</h2>






<p>No comments yet.</p>


]]></content>
    <link href="https://www.shimmy1996.com/en/hoots/1614647340/"/>
  </entry>
  
  <entry>
    <id>https://www.shimmy1996.com/en/hoots/1614528170/</id>
    <title type="html"><![CDATA[Total internal reflection is like light doing 全集中.…]]></title><updated>2021-02-28T10:02:50-06:00</updated>
    <content type="html"><![CDATA[<p>Total internal reflection is like light doing 全集中.</p>
<h2>Comments</h2>






<p>No comments yet.</p>


]]></content>
    <link href="https://www.shimmy1996.com/en/hoots/1614528170/"/>
  </entry>
  
  <entry>
    <id>https://www.shimmy1996.com/en/hoots/1614391838/</id>
    <title type="html"><![CDATA[The weather has finally warmed up. Snow on the…]]></title><updated>2021-02-26T20:10:38-06:00</updated>
    <content type="html"><![CDATA[<p>The weather has finally warmed up. Snow on the streets are starting to melt away. No more worrying about slipping off while cycling. Makes you want to write some neat borrow-checked auto-formatted Rust doesn't it!</p>
<h2>Comments</h2>






<p>No comments yet.</p>


]]></content>
    <link href="https://www.shimmy1996.com/en/hoots/1614391838/"/>
  </entry>
  
  <entry>
    <id>https://www.shimmy1996.com/en/hoots/1613248576/</id>
    <title type="html"><![CDATA[They do make motorcycle helments with shark fins!
]]></title><updated>2021-02-13T14:36:16-06:00</updated>
    <content type="html"><![CDATA[<p>They do make motorcycle helments with shark fins!</p>
<h2>Comments</h2>






<p>No comments yet.</p>


]]></content>
    <link href="https://www.shimmy1996.com/en/hoots/1613248576/"/>
  </entry>
  
  <entry>
    <id>https://www.shimmy1996.com/en/hoots/1611795115/</id>
    <title type="html"><![CDATA[TIL unlike concrete, steel bridge surfaces will…]]></title><updated>2021-01-27T18:51:55-06:00</updated>
    <content type="html"><![CDATA[<p>TIL unlike concrete, steel bridge surfaces will turn piled-up snow into ice, so don't attempt to challenge them with your bicycle. Ouch.</p>
<h2>Comments</h2>






<p>No comments yet.</p>


]]></content>
    <link href="https://www.shimmy1996.com/en/hoots/1611795115/"/>
  </entry>
  
  <entry>
    <id>https://www.shimmy1996.com/en/hoots/1611105598/</id>
    <title type="html"><![CDATA[As sketchy as Brave can seem at times, it has…]]></title><updated>2021-01-19T19:19:58-06:00</updated>
    <content type="html"><![CDATA[<p>As sketchy as Brave can seem at times, it has built-in support for IPFS now! The fact that we end up relying on <code>ipfs://</code> or <code>ipns://</code> URI schemes is a bit funny, but hey, this is still great news.</p>
<h2>Comments</h2>






<p>No comments yet.</p>


]]></content>
    <link href="https://www.shimmy1996.com/en/hoots/1611105598/"/>
  </entry>
  
  <entry>
    <id>https://www.shimmy1996.com/en/hoots/1610849111/</id>
    <title type="html"><![CDATA[Reading through the latest Go generic proposal, I…]]></title><updated>2021-01-16T20:05:11-06:00</updated>
    <content type="html"><![CDATA[<p>Reading through the <a href="https://go.googlesource.com/proposal/+/refs/heads/master/design/go2draft-type-parameters.md">latest Go generic
proposal</a>, I felt ok at the beginning, but increasingly uneasy as I scroll along to find the long list of restrictions and edge cases. It's clear that the dev team is actually painstakingly trying to fit a generics implementation (almost exactly as people have asked for) into the language. Perhaps because Go seemed like such an opinionated language, I was not actually expecting such an serious attempt at all: I would have expected Go generics to simply involve a handful of special interface types from standard library that are somehow unboxed (have one less layer of pointer redirection) and we still write for-loops instead of map-reduces.</p>
<p>It's one of those cases where I applaud the effort, but I'm not convinced that a suitable solution can be achieved (like <em>The Rise of Skywalker</em>). The proposed generics system eats into Go's originally quite orthogonal feature set and reading through all the caveats of how it would interact with other parts of Go already feels similar in length as the entire Go spec. On the other hand, generics and interface types obviously overlap in functionality and while there are restrictions in place to discourage a Go version of &quot;almost always <code>auto</code>&quot; from happening, having to think about which one to (not) use takes away some of Go's appeal for me.</p>
<p>Ugh, this is such an arduous yet unrewarding path to go down. Maybe Go team's <code>.async</code> moment would eventually come and we would all love the solution, but then again, I really don't mind writing generics-free Go that much.</p>
<h2>Comments</h2>






<p>No comments yet.</p>


]]></content>
    <link href="https://www.shimmy1996.com/en/hoots/1610849111/"/>
  </entry>
  
  <entry>
    <id>https://www.shimmy1996.com/en/hoots/1610498227/</id>
    <title type="html"><![CDATA[twixter -&amp;gt; twoxter -&amp;gt; twixt3r -&amp;gt; twIVter…]]></title><updated>2021-01-12T18:37:07-06:00</updated>
    <content type="html"><![CDATA[<p>twixter -&gt; twoxter -&gt; twixt3r -&gt; twIVter -&gt; twixter (in typical movie sequal naming fashion).</p>
<h2>Comments</h2>






<p>No comments yet.</p>


]]></content>
    <link href="https://www.shimmy1996.com/en/hoots/1610498227/"/>
  </entry>
  
  <entry>
    <id>https://www.shimmy1996.com/en/posts/2021-01-01-2020-in-review/</id>
    <title type="html"><![CDATA[2020 in Review]]></title><updated>2021-01-01T10:07:00-06:00</updated>
    <content type="html"><![CDATA[<p>Rooftops are covered in patches of white this morning. All the billboards have lost their typical splendor to the gloomy sky. Even the street lamps' orange glow failed to add any warmth to the car-free roads. Spots of light from a handful of building windows, however, do appear extra dazzling.</p>
<p>What a year. It feels like space-time has a higher viscosity than usual—dense enough to reduce sunlight to just an ivory ambiance—given how eventful the past 300-or-so days have been.</p>
<p>I'm actually glad that the first day of 2021 still feels like any day in 2020. Not very much should physically change simply because of a number flip, not to mention a rather arbitrary one, but perhaps it's exactly for the lack of change that we need to forge something new, something that gives an adrenaline kick, no matter how small.</p>
<p>Ugh, fine. I see no harm in giving in to this cheap psychological trick every once in a while.</p>
<p>Happy New Year, we made it.</p>
<h2>2020: Apocalypse</h2>
<p>I'm not cutting myself any more slacks this time around.</p>
<ul>
<li>☑ <del>Run 550 miles.</del> Run 205 miles and cycle 865 miles (2.5x). <code>[205/205]</code><code>[872/865]</code></li>
<li>☑ Write 14 blog posts. <code>[16/14]</code></li>
<li>☑ No donuts.</li>
<li>☐ Dive into Go and C++20. <code>[1/2]</code></li>
<li>☐ Set up proper backup workflow.</li>
<li>☐ Read non-technical books.</li>
</ul>
<p>Because of COVID-19, I have stopped running outdoors since early March. After a few months of hiatus, I got a bike and a trainer in June and started cycling indoors instead. The 2.5x scaling factor is based on the speed differences between cycling and running. Working out in a more controlled environment is very enjoyable. Aside from easy access to fueling and shielding from the weather, being able to watch anime/listen to seiyuu radio while riding is a game changer. Behold, technology!</p>
<p>Blogging about the blog itself still takes up a sizable portion of my posts (and is a frustratingly self-defeating practice), but I did at least accumulated quite the amount of hoots: these fleeting thoughts aren't organized enough to be its own post, but still interesting enough that I want to write it down. I also use hoots to house my replies to other blogs and the rather cumbersome process of which makes me realize how little I really have to say most of the time. Not to color my still largely manual approach superior, but I do think there is some merit in eliminating low-effort-high-noise contents, both for myself and others.</p>
<p>Ah, donuts, the honey glazed shackles of guilt, the deep-fried cuffs of indulgence. While I would like to attribute this to my will of steel, it is COVID-19 that got the better of such temptations. My laziness and excitement for bunker life eliminated any chances of late night Dunkin' visits. Guess it's time to turn up the dial.</p>
<p>Writing Go was quite the mindless fun exercise. Finding an effective way to learn the C++20 features proved to be harder. <code>&lt;format&gt;</code> is the straightforward one and pretty much works as you'd expect (no compiler supports the standard version yet, so checkout <a href="https://fmt.dev">the original</a>). <code>&lt;ranges&gt;</code> is similar to Rust's iterator methods and allows chaining, too. Maybe I should update my <a href="/en/posts/2019-04-27-enumerate-with-c-plus-plus/">enumerate() with C++ post</a>. <code>&lt;concepts&gt;</code> seems like the logical solution to the problems SFINAE tried to solve, but I don't have a good context to test out its prowess yet. On a related note, Zig's compile-time function approach to generics is also intriguing.</p>
<p>3 copies, check. 2 different media, check. 1 offsite backup, not yet. I'm also counting Syncthing copies here, and whether they can be relied upon as full fledged backups is debatable. Still some way to go here.</p>
<p>Technically, I did <em>read</em> non-technical books; I didn't <em>finish</em> any (not counting manga at least). The truth is, aside from those I read purely for entertainment, I am not so sure about what to read. Most non-fiction books look like success stories marinated in flattery and survivor-ship bias. Fictions, on the other hand, just don't attract me that much: knowing another story to tell isn't as exciting as learning a new algorithm for me. Gee that sounded harsh. Do I really think my blog posts fare any better? Anyways, before admitting defeat, I will give this a more serious attempt this year.</p>
<h2>2021: Days of Future Past</h2>
<p>The ongoing pandemic sparkled nostalgia like never before. People look back at the &quot;normal days&quot; with fondness that I find repulsive. Not that I'm completely immune to the atmosphere though, just that it rubs me in the opposite way: I find myself grew more assertive than before. After all, doesn't everyone secretly think they are above average and thus know better, especially after reading the news? At the same time, the voice of reason tells me to suppress this urge before it turns into arrogance, or even worse, ignorance. Perhaps I should learn to let these out in the form of blog posts, like <a href="https://www.cs.utexas.edu/users/EWD/">EWDs</a>, except non-technical.</p>
<p>On a positive note, my transition to wake-up-at-5-sleep-before-10 schedule is a resounding success. The lockdown WFH actually helped in that I have more leeway to adjust my sleep schedule. Now I have plenty of time for exercise every morning or even the option of another two—or three if I'm really pushing it—hours of sleep. Given how I was able to clock in the last 100 miles of rides within the winter holidays, I'll bump the target mileage up a bit this year.</p>
<p>The schedule change also made me realize how unproductive the few hours before bed really is for me: after a day of work and much needed dinner, I don't feel motivated enough to exercise or focus on anything for an extended period of time. Since I started <a href="https://beancount.github.io/">beancount</a>-ing in 2020, I'm now looking to apply a similar methodology to my time. I've been testing out <a href="https://www.toggl.com/track/">Toggl Track</a> to log how I spend the larger chunks of my day and how many minutes in between slipped away with me blanking out watching YouTube. In particular, I figured having a crude &quot;Strava for reading&quot; system would also make my reading goals easier to achieve. As for which books to read, I'm thinking classic fictions.</p>
<p>After donuts, my challenge this year is to abstain from cookies, which can frequently be found in my work place lunch bags. It's strange how exponentially more attractive cookies are to their ingredients, i.e. sticks of butter and bags of sugar, the latter of which would have been sickening to consume directly.</p>
<p>I wonder if this is an age thing: at some point, human's auditory perception would just click with the sound of electric guitars, making it impossible to resist. I'm looking to sink more time into learning the instrument and be good enough to play a song or two by end of 2021.</p>
<p>The generation after Z is named <a href="https://en.wikipedia.org/wiki/Generation%5FAlpha">Alpha</a>, which makes no sense at all. To hell with inconsistent naming. To hell with COVID-19 (for other reasons, of course).</p>
<blockquote>
<p>Un de ces matins disparaissent<br/>
Le soleil brillera toujours.</p>
</blockquote>
<h2>Comments</h2>






<p>No comments yet.</p>


]]></content>
    <link href="https://www.shimmy1996.com/en/posts/2021-01-01-2020-in-review/"/>
  </entry>
  
  <entry>
    <id>https://www.shimmy1996.com/en/posts/2020-12-25-get-going/</id>
    <title type="html"><![CDATA[Get GOing]]></title><updated>2020-12-25T18:50:00-06:00</updated>
    <content type="html"><![CDATA[<p>Yes, I <a href="https://git.shimmy1996.com/advent-of-code/">finished</a> the <a href="https://adventofcode.com/">Advent of Code</a> this year! Aside from the problems being easier (for me) than 2019, I'm also using Go for this year's challenge and I find it to be particularly suited for this type of endeavor.</p>
<p>This year's puzzles mostly involve string parsing and finding efficient data structures. Majority of the logic flow are pretty straight forward and there's little need for sophisticated algorithms.</p>
<p>For string parsing, regex, which Go has built-in support for, is definitely the way to go. The abundance of parsing related problems means using only basic string manipulation could be rather painful, and I've definitely seen my share of horrible blobs of find/substr/trim.</p>
<p>Most of the time, slices and maps are all I needed. Go has multiple return values but no tuples, whose usage, I find, is largely replaced by either arrays or structs. Versatility of these data structures are actually increased due to the language's encouragement to use constants instead of enums: storing all information as ints opens up the door to some shortcuts and less conversion between types. Surely they don't give you the peace of mind type checked enums provide, but (ab)using them in short programs does provide the odd walking-on-a-knife-edge (or not-wearing-pants-during-Zoom-call) kind of satisfaction.</p>
<p>Imperative programs are easy to write in Go, mostly because of the language's plain and simple control flows and lack of mixed paradigms. There's no need to worry about whether we should use an STL algorithm or chained iterator methods: just write the loop. Reasonable mutability behaviors also helps: whether it's changing a map while looping through it or passing a struct containing a slice to another function, I can get the language to do what I mean without checking the specification line by line.</p>
<p>There's <a href="https://en.wikipedia.org/wiki/Zero%5Fone%5Finfinity%5Frule">the ZOI rule</a> about how the only reasonable numbers are zero, one, and infinity. Quite a few other languages I know, such as Python, C++, and Rust, all seem to hinge on the extreme ends of the spectrum in pursuit of consistency: everything follows the same rules and users can dictate what the syntax means as much as the base language. Go definitely has more exceptions (without supporting it) and &quot;one&quot; moments: built-in containers are magically generic, their methods can have variable number of return values, and everything else is denied the privilege of being eligible to be iterated over.</p>
<p>While just a quick comparison without touching other traits of Go (say interfaces or goroutines, but you don't really need them for Advent of Code), I do find Go's choices peculiar and interesting: <a href="https://lukeplant.me.uk/blog/posts/everything-is-an-x-pattern/">everything is, well, just its own thing</a>.</p>
<h2>Comments</h2>






<p>No comments yet.</p>


]]></content>
    <link href="https://www.shimmy1996.com/en/posts/2020-12-25-get-going/"/>
  </entry>
  
  <entry>
    <id>https://www.shimmy1996.com/en/hoots/1608254487/</id>
    <title type="html"><![CDATA[It snowed yesterday. I noticed those salt-sized…]]></title><updated>2020-12-17T19:21:27-06:00</updated>
    <content type="html"><![CDATA[<p>It snowed yesterday. I noticed those salt-sized ice flakes occationally making tiny marks on my foggy glasses caused by wearing face mask. Even more interesting are the thin layer of frosting found on bridge surfaces made from steel: my bicycle left behind it a double-helix-shaped trail.</p>
<h2>Comments</h2>






<p>No comments yet.</p>


]]></content>
    <link href="https://www.shimmy1996.com/en/hoots/1608254487/"/>
  </entry>
  
  <entry>
    <id>https://www.shimmy1996.com/en/hoots/1608254143/</id>
    <title type="html"><![CDATA[It&#39;s the 17th day of AoC! I&#39;ve tied my 2019…]]></title><updated>2020-12-17T19:15:43-06:00</updated>
    <content type="html"><![CDATA[<p>It's the 17th day of AoC! I've tied my 2019 records! The problems do feel easier this year though.</p>
<h2>Comments</h2>






<p>No comments yet.</p>


]]></content>
    <link href="https://www.shimmy1996.com/en/hoots/1608254143/"/>
  </entry>
  
</feed>
