Charles Lee

2022 in Review

Looking back at my monthly notes for 2022, I’m surprised by how terrible I felt most of the year because of work stress. I had joined a new team because I liked the manager, Alice, but she left after two months. Then I was moved under a new manager Bob, who was alright. Then I and another engineer were (forcefully) moved under Carol, whose team was only half-populated because she had several people leave recently.

Books I Read in 2022

Inspired by https://florian.github.io/reading-2019/

Down Below by Leonora Carrington, published 1983

This book describes Carrington’s ~1-year stay at a mental institution in 1940. Her story starts at the beginning of World War II in 1940, when her husband Max Ernst is sent to a concentration camp for the second time and she escapes to Spain. Carrington’s mental breakdown manifests en route to Spain and becomes publicly disruptive while in Spain. Her hotel, in conjunction with people probably related to her father’s company, traps her and sends her to a mental institution.

Papers I Read in 2022

Harvard Business Review - Managing Oneself by Peter F. Drucker, published 1999

This article in the HBR is an excerpt from Drucker’s book Management Challenges for the 21st Century. Drucker argues that to stay “engaged and productive during a work life in today’s knowledge economy that may span 50 years”, you need to understand your strengths and weaknesses and focus on improving your strengths. He starts by discussing how to identify your strengths using feedback analysis aka decision journaling, then talks about how to improve your strengths by identifying your learning style, values, and community.

My time as a Software Developer at Axoni

part of the series What I do at work

Application Process I got started in crypto when my friend, Alice, introduced me to Bitcoin back around 2016. I was drawn in more by the interesting new technology and less by the vision of how it would change the world. Soon after, I worked through the excellent Bitcoin Coursera, which taught me 95% of what I know about Bitcoin. Alice was interested in starting a Bitcoin ATM business together.

My time as a Database Developer at Novantas

part of the series What I do at work

Overview At the time I joined, Novantas (now Curinos after merging with a competitor) was a mid-sized financial consulting company that primarily worked with banks to price and analyze their deposit and loan products. A long time ago, Alice the analyst created a massive Excel workbook that to help a client price their deposit products, e.g. savings, checking, CD’s. This workbook became popular and was later ported to a Microsoft SQL Server and Adobe Flex web application and christened PriceTek Deposits.

My time as an Application Developer at JPMorgan Chase

part of the series What I do at work

Application Process I received an offer from JPMorgan Chase (JPMC) by working with my university’s career services. At the time I was attending Cornell University as part of the class of 2011, companies were in an escalating race to recruit students earlier and earlier. In the coding world, the ideal path was to intern at Google the summer before your senior year and then, after you finish your internship, to receive a full-time offer to start the summer after your senior year about 10 months later.

My time as a Co-op at LMI

part of the series What I do at work

Co-op program During my time in college, I spent two semesters working at Logistics Management Institute (LMI) as part of my college’s co-op program. The “Engineering Cooperative Education Experience” aka co-op was a special internship program where the school worked with employers to make sure that the co-op work was meaningful and relevant to your course of study. Timing-wise, this worked out well for me because skipping two semesters of classes (and tuition) allowed me to graduate at the same as my friends, when I otherwise would have graduated a year early because of the ~20 AP credits I had collected during high school (a rare example of having something “just in case” actually coming in handy).

My time as a Web Developer Intern at GAL Inc

part of the series What I do at work

The summer after my second year in college, I worked for two months at GAL Inc, a local web development shop near my hometown in New Jersey. I was desperate to get work experience and was happy that this job post on Craigslist worked out. GAL Inc specializes in Search Engine Optimization (SEO) – getting websites to rank highly on search engines aka Google.

What I do at work

A few years ago, I participated in my high school’s career day. I talked about my work at a blockchain start-up and preached the gospel of Bitcoin. It felt like a waste of everyone’s time because I don’t think the students understood what I was saying. How could they understand what it means to “improve API performance” when they don’t understand what an API is? I was certainly lost when I was in their shoes and attended my career day.

What to post? You can post anything

inspired by Alexey Guzey’s Why You Should Start a Blog Right Now (archive)

It’s discouraging to browse the internet when researching things to write about. You’ll find amazing projects and posts by people smarter than you and it’s likely that you’ll find the very exact thing you were thinking of doing, but of course better-executed and well-written. It’s easy to walk away convinced you should write nothing because any attempt will be inferior, embarrassing, and a waste of time.

Conversations with an expert on AI Safety

edited excerpts from an interview with an expert on AI safety

Charles: Some of our readers may be unfamiliar with AI safety. Can you start by describing what AI safety is?

Expert: AI safety is the study and prevention of unintended consequences of artificial intelligence. This includes ensuring that AI is designed in a way that prevents accidents, such as those that could lead to loss of human life or serious damage to the environment.

d3-milestones timeline library

While working on a d3 timeline for another post, I came across a beautiful timeline library, d3-milestones, and knew that I wanted to use it. I’ve also wanted to play with WikiData for a long time, so I combined these two interests by grabbing data from Wikidata and visualizing it using d3-milestones. There’s another chart that I want to try out later in this post, so this first example will be straightforward: Stephen King novels by publication date.

Meditation and Imaginary Bad Things

“Meditation” is an overloaded word. Colloquially, it means to think deeply about; in pop culture it means various things including to clear your mind of thoughts; in most traditional meditation schools, it refers to mental exercises to train a specific skill, e.g. concentration, empathy. In pop culture, meditation is used as a relaxing, post-activity cooldown or calming ritual. In traditional practices, meditation is (obviously) the primary activity and it’s hard work – the goal is to reprogram your mind to reach nirvana.

Cloud gaming provider review

I first heard about gaming-as-a-service aka cloud gaming (not to be confused with games as a service aka GaaS) back in Wired magazine many years ago. The idea was new at the time and Wired talked about how the user experience was laggy and poor so I didn’t give it much thought. Fast forward to today and lots of the screenshots I see in game reviews look incredible. I’m curious to see for myself what the latest games look like at max settings, but like most people, I don’t have a computer that can play modern games nevermind play them at max settings.

Review of The Art of Folding Vol. 2

I came across The Art of Folding Vol. 2: New Trends, Techniques and Materials (TAoF2) while browsing the origami section at my local Kinokuniya, a chain of Japanese bookstores. I was put off by the pretentious title but flipped through it anyway and I’m glad I did.

I had been looking for “what’s next?” in origami both personally and generally. Personally, I had just wrapped up a two-year modular phase with some tessellations and Jun Mitani sprinkled in, and was considering whether to (1) try my hand at design (probably modular), (2) try computer-aided design and folding à la Mitani and Demaine, (3) return to traditional origami and work on shaping and finishing (I got a Yoshizawa book for Christmas), or (4) return to folding complex models from diagrams.

GPT-2 Twitter bot

aitextgen I’ve been loosely following developments in machine learning since the AlexNet days back in 2012. I was particularly excited by OpenAI’s release of GPT-2 in 2019 because it seemed like “the solution for everything”. But sadly, even with the help of the code-first deep learning course at fast.ai, using GPT-2 was beyond me. It required ops knowledge I did not have to configure AWS instances and CS knowledge I did not have to tune countless parameters.

Reading Harry Potter

warning: plot spoilers below

I finally read the Harry Potter (HP) book series, which was very popular 15 years ago when I was teenager. The seven books went on to spawn an eight-part movie adaptation, video games, a prequel film series, a play, and theme parks. As a teenager, I avoided the books because they were popular and I was too cool for popular. It’s taken me some time, but I’m now mature enough for HP.

Five Variations of Five Intersecting Tetrahedra

Overview Thomas Hull founded the field of origami wireframes (or polypolyhedra per Robert Lang) when he created the classic Five Intersecting Tetrahedra (FIT) model. FIT is comprised of five tetrahedra (aka triangular pyramids), each constructed using a unit for each of six edges, that share a center-point and all intersect without overlapping. The existence of FIT has inspired many folders to design their own wireframe models, some of which I’ve re-created in my gallery.

Top three favorites

When people ask me what my favorite XYZ is, I usually just talk about a recent XYZ because I don’t spend time maintaining a life-long list of top XYZ – comparing my recent experiences with my past. But I should. Not so I can give polished answers to the next person who asks, but because it’s interesting and fun to see how my tastes and interests have changed over time.

Dune book vs movies data viz

In anticipation of the new movie interpretation of Dune – “Science Fiction’s Supreme Masterpiece” (says so right on the cover) – coming out this December, I created a visualization to compare the book to the previous two movies: the 1984 version and Frank Herbert’s Dune, a 3-part mini-series broadcast in 2000.

Dune (1984) review To a fan looking for a fan-movie, 1984 Dune disappoints and feels dumbed-down. Part of the problem is the editing that brought the runtime from four hours down to two by using extensive voice-over narration, casually explaining secrets that characters originally never revealed (e.

Sandworm: a timeline of hacking

The book In Andy Greenburg’s latest book, Sandworm: A New Era of Cyberwar and the Hunt for the Kremlin’s Most Dangerous Hackers, he talks about the exploits of the eponymous Russian hacker group and their significance. The book is split into six parts – Emergence, Origin, Evolution, Apotheosis, Identity, Lessons – with the main Sandworm narrative in the three parts: Emergence, Evolution, Apotheosis. We can deduce from this that Greenburg spends as much time on the context of Sandworm as on the group itself, and indeed in his own words:

OrigamiUSA Unconvention 2020

I attended the OrigamiUSA convention this year from June 26-27. The convention is usually held on a college campus, but this year, instead of canceling it, OUSA decide to reduce the number of events and host it on Zoom. I attended an in-person convention a few years and actually preferred this year’s online one:

I could participate from my sofa instead of commuting 1.5+ hours each way and day I had all my tools and supplies readily available I actually got to attend the classes I wanted.

My Experience Learning Prolog

I first heard about the Prolog programming language in the book Seven Languages in Seven Weeks. The book, as promised, introduces the reader to the syntax and paradigms of seven different languages. What attracted me to Prolog was its similarity to constraint programming (programs are defined by and solved using their constraints), its similarity to SQL (data-focused and declarative), and its recursive nature.

Normally, I would learn a new language by playing with it, but Prolog was too foreign and intimidating, so I looked for a more structured learning approach.

TALE-SPIN in Prolog

TALE-SPIN TALE-SPIN1 is an AI program developed in 1977 by James R. Meehan. It works by using a knowledge base of actions to solve and modify goals. As actions are performed, they output text that form a story. In the words of the author:

TALE-SPIN is a problem solver, top-down and goal-directed. Its output may be regarded as a trace through problem-solving procedures.

Meehan rejected previous approaches with clean formulations that involved defining “one kind” of knowledge but sometimes resulted in bizarre stories.

Chopsticks in Prolog

The Game Chopsticks is a simple game of many variations played by children and college students. The variation I play is:

two players start by each sticking both index fingers out to represent a count of one on each hand players alternate turns until someone loses by having a count of zero on both hands on a player’s turn, he must either: use one of his hands with positive count $H1$ to tap one of the other player’s hands $H2$.

Static site deployments with Hugo and GitHub Actions

Introduction It’s been almost two and a half years since I’ve updated this website. While I was away, GitHub Actions was released and Hugo jumped from version 0.31 to 0.70! My old Hugo code no longer builds and instead of updating incrementally, I decided it was easier to just rebuild from scratch with the latest version. At the same time, I would update the theme1 I use and integrate GitHub Actions to replace the now-unnecessary deployment script 23.

DNS Records for GitHub Pages

Every once in a while I need to modify my custom domain’s DNS records to work with GitHub pages, and every time it’s a struggle to get it right. Here I document my currently-working setup.

I followed the recommended setup1 by configuring www as my Custom Domain, also configuring my apex domain, and letting GitHub Pages “automatically create redirects between the domains”. Specifically for this website, I told GitHub that my Custom Domain is www.

Using the Silhouette Cameo to cut and precrease origami tessellations and modulars

Opportunity for automation After a 7-year hiatus, I recently started folding origami again and decided to focus on tessellations and modulars. I used to fold mostly representational models, i.e. animals and humans, and wanted to explore some new areas. Luckily for me, origami advanced greatly while I was away and the first good books on tessellations1 and wireframe modulars2 were published by Eric Gjerde and Byriah Loper, respectively. I bought both books, dove straight into making models, and immediately found myself repeating the same steps hundreds of times.

C4's CBP Bitcoin certification - 9 months later

Back in March 2017, I posted about passing the Certified Bitcoin Professional (CBP) exam by C4. I did this partly out of curiosity and partly hoping it would help in a job search for crypto roles. My curiosity was satisfied, my wallet $73 lighter, and no employers seemed to care. Not surprisingly, what did help during my job search were my understanding of Bitcoin and my crypto sideprojects.

There is a more technical CBX (Certified Bitcoin Expert) exam intended for developers that looks promising: it covers the API and scripting.

Bitcoin beacon: using the blockchain to generate random bits

Random beacons A random beacon is “a trusted service that broadcasts fresh random numbers at regular intervals”. Random beacons are useful in situations that demand security against manipulation, e.g. choosing precincts to audit after an election. Several beacon services currently exist, notably Random.org and the NIST beacon, however there are several advantages to using the Bitcoin blockchain as a source of randomness:

Publicly verifiable Bitcoin blocks are public as soon as they are mined so anyone can perform and verify the beacon computations.

Coursera review: Bitcoin and Cryptocurrency Technologies

The Bitcoin and Cryptocurrency Technologies Coursera is an 11-week, 4-lecturer collaboration that gives the student an overview of the existing cryptocurrency environment and how it came to be. It begins with a history of cryptocurrency advancements leading up to Bitcoin, then goes into the technical details of how Bitcoin works, moves on to the societal impact of cryptocurrencies, and finally ends with a discussion of future developments and their feasibility.

My Thoughts on Crypto Currency Certification Consortium's (C4's) Certified Bitcoin Professional (CBP) certification

What is this? The Crypto Currency Certification Consortium (C4) is a non-profit organization that issues Bitcoin certifications. Currently, the only certification they offer is the Certified Bitcoin Professional (CBP), though a more advanced version, the Certified Bitcoin Expert (CBX), is being developed. Given Bitcoin’s decentralized nature, there can be no official certifying authority – anyone can issue anything. In this environment, the only thing that carries weight is reputation, and C4 has a solid roster on their board and advisors, including Andreas M.

Creating a Steem bot using Python, Piston, and Heroku

Steem for the people When someone writes a great post on Reddit that goes viral and is widely shared, the party that benefits most is Reddit itself. Realizing this and wanting to give back to the community responsible for its success, Reddit toyed with the idea of giving shares of the company to users in the form of a cryptocurrency. This plan was later put on indefinite hold.

Steem is the embodiment of what Reddit wanted to achieve – a blockchain-based, social news platform where posters and upvoters, i.

2017 Priorities - Family First

It’s 11:30pm and I’m in the family kitchen by myself munching on a box of palmiers1 with a glass of milk and it dawns on me that I feel uncharacteristically good. I feel safe, calm, clear-headed, and full of food.

Thinking back to my pre-holiday rush to close out everything before 2017, I was over-whelmed, anxious, and really not that productive. With a list of 2017 priorities in front of me, I start planning out the first few months of 2017 and it’s soon obvious there’s no way I can do all of this.

6 weeks of Uberman

Introduction This post is about my experience with the Uberman (UM) sleep schedule, the popularized and extreme polyphasic sleep schedule that achieves 2-3 hours of total daily sleep through periodic 20 minutes naps. The benefits are enticing. Assuming you currently sleep 8 hours/day and follow the 3 hours/day schedule, you can have 21 more hours a week to enjoy and to get stuff done. With all that extra time, surely I’d be able to get through my to-do backlog!