2023 — 2024 Card: Front
2023 — 2024 Card: Back
Hi! You and I may be friends or family. We might be Twitter Mastodon buddies (and we should be). We could be neighbors across the street or across the cities. We might be passing acquaintances or going way back. It's really nice for you and me, for us to chat again, even if it's just with this letter.
Who am I again? Well, aside from the blatantly branded card that brought you here today, there's absolutely no way to know that I am Ryan Rampersad. I might be that annoying flag-enthusiast or that quirky branding guy with long hair and weird red ribbon, or thatTwitter Mastodon-enthusiast or that trusted technical advisor. You bet. That's me.
OK, what's up with this card? These cards have been delivered to fine folks everywhere since the mythical year of 2016. It's legendary because... the casual-though-appropriate way of describing it is, "I don't know, I think I became an adult." Many years ago, I felt a great need to share my gratitude and thank you. That's the collective you, and it's also the individual you, reading this. No matter if you're burning the midnight oil with me on the regular, hanging out in the park with Roxy and me, or in another country away, making the world a better place. Thank you. You're incredible. You’re cool too. I am so lucky to have you in my life, and I think I can write here; the world is fortunate to have you.
And who's that cute puppy? That's Roxy and this year we have a whole section dedicated to her. She's the best dog.
If this is your first card, welcome. If you have received a card before, welcome back, and thank you for reading again. I hope to continue into the distant future.
I want to share my thanks and some additional musings from this year with you with this letter.
Where’s the Roxy update? This year it’s been expanded into its own section. Roxy’s been busy so she needed her own space.
Who is that adorable dog? That's Roxy!
Roxy is 13 years old this year! Roxy is in great health. Sure, she’s no stranger to old age. She can’t jump as high. She used to hop up the steps in the backyard from the yard level to the deck level, but she gave that up in winter this year - it was just too scary. To help her out, I built her an 8’ long and 30’’ wide ramp. She loves that ramp. It’s so cute when she observes the world and learns from it, and figures out the ramp exists, where it goes and what it’s for. Admittedly, she forgets the ramp exists occasionally - she had been going up the steps for 12 years after all - and she’ll look around waiting for a ride up the steps only to realize the ramp is waiting for her.
Roxy walking up her ramp from yard level to deck level at night
What kind of dog is Roxy? That's a great question. Here's how the story goes: she comes from my mom's cousin's farm where two dogs went into the barn and puppies came out. Allegedly, she is a terrier and beagle mix.
Usually that’s where I end the story about Roxy’s genetic heritage. Time time, I have a special treat for you, dear readers. During a sale, because I’m always on the lookout for a good deal, I purchased a Dog DNA Test Kit from Embark. The kit reportedly could tell me what kind of breed of dog Roxy really was. After pretending that the cotton swab was a beef stick, I managed to get a sample from Roxy. Then I mailed it in and waited a few weeks for the results. Well, it turns out, our age old belief that Roxy was terrier and beagle mix was not quite right. She’s primarily a Lhasa Apso. I can kind of see it in the face and parts of her body structure. After finding this out, while on a hike in the woods in Duluth, a fellow hiker asked about what kind of dog she is. I still described Roxy as a terrier beagle mix because it was easier to say. Nobody knows what a Lhasa Apso is. Roxy doesn’t know what she is, but she’s still just cute.
She will accept our usual neighborhood walks in desperation, but she loves going on walks outside of the neighborhood and she's always up for an adventure, especially in the woods. She overheats in the hot summers and her feet sting in the cruelly cold winters. She can't walk quite as far as she used to. This year, I bought her a push-pull wagon. When we go on a longer destination walk, Roxy can stay in the wagon for a little while, then get out and explore, and when she’s tired again, she can hop back in.
Roxy going for a ride in her red wagon
During a vacation in Duluth, I brought the wagon along. Incidentally the time we used the wagon was not at any of the state parks! Instead, it was after we had already visited three that same day, and we wanted to walk 15 minutes away to pick up dinner in Canal Park. She was pretty tired by then, but she still wanted to go with me. With the wagon, I could push her along and she could sit in cozy comfort and watch the sights as they went by.
Roxy in the red wagon bundled up against the cold winds of Duluth's canal park in October
You likely saw the card already, though if not take a look at the images above. In the photo legend, I describe all of the featured adventurous activities and experiences Roxy has gone on this year.
I did not take a picture of this, but you know all those signs people buy and put in their houses? Like “Live Laugh Love”? At the State Fair this year, I saw a sign I thought was funny, and that was accurate. “I work hard so my dog doesn’t have to.” I think that’s really fitting for me and Roxy.
Live from New York, it’s me!
Standing in the center hall at React Summit US while on a work meeting
I received a free ticket to React Summit US through a Twitter retweeting drawing. When I won, I initially thought it was spam. I had to cross check what I had retweeted and the name of the conference a few times. They even asked, are you really sure that you will use the ticket… in New York?
I have a little known secret: I hate traveling. Through the mystical power of the Internet, there’s really no reason to go anywhere for any reason. I guess you could convince me that it’s supposed to be fun to explore new places. Travel just never really did anything for me. When confronted with a free ticket to a conference (hey, this is an invaluable opportunity for professional growth, right?) to the city that never sleeps, and that has subways? How can I possibly say no?
“When is the conference date?”
“It is on November 13th.”
Well, that’s certainly a remarkable date. I confirmed that I would accept the ticket in June and in July I purchased my hotel accommodations and plane ticket. Buying so far in advance, I thought the prices were all fairly reasonable, ending up just a little under two thousand dollars. If I am going all the way to New York for this conference, I might as well stay a while. I decided to stay for 6 days, Saturday to Friday. I planned on taking time off. That’s crazy! That gave me a day and a half before the conference to figure out where to go, and plenty of time after the conference to explore the city. I picked a hotel a few blocks away from the World Trade Center in Lower Manhattan, The Artezen.
To say I was nervous about the whole thing is accurate. I have not really solo-traveled for vacation. Sure, I have traveled for work events. Work events are a bit different though. There’s a preplaned structure, I am not usually in charge of it. In the weeks leading up to the actual trip, I started watching dozens of videos on YouTube about visiting New York. There’s so much great content out there to guide you to the best sights and attractions, or to keep away from all of that to get you to see uniquely memorable spots outside of the tourist zones. The plane portions of the trip I am not nervous about anymore, having been temporarily stranded in O’Hare, Chicago (ORD) due to a ticketless boarding pass in 2019. But once I was on the ground, I knew I had to figure it out. I had to do it because nobody else is going to rescue me in New York City.
You see, I could watch all the videos I wanted about travel tips but once I landed it all changed. I was tired, I was sweaty, I was plane drained. I struggle with conventions that are not plainly written and explained. I can and will in fact read every word. They have to exist though, and they usually do not. Get on the AirTrain? Ok - how do I pay for it? “Pay when you exit the train.” Surely that message is for folks coming off of the train heading into the airport. No, that’s actually how it works - leaving the airport zone - you pay when you exit the AirTrain. Fine. Next up, I know I can take the Long Island Rail Road (LIRR) into Manhattan, but which one of these dozen ticket options can I buy? I watched the video too but I lost all memory of it in real life.
“Where are you heading, sir.” “Manhattan.” “...” “Wall street?” “Ok, Penn Station.” “Sure.” “You can get a $5 city pass.” “Great, thank you.”
Imagine that you just stare blankly at the ticket machine screen with its inscrutable user interface. It’s not that you can’t understand what it says, but remember, you’re plane drained, and you now have a sudden case of onset decision paralysis.
Eventually, making my way into the city on the LIRR, I made it to Penn Station. Traversing through the tunnel on the train, there's a tantalizing transition as you travel into the towering terrain of Midtown Manhattan, melding with the multitude amidst magnificent skyscrapers and the swift stride of the streets. You just pop into existence in a completely new place. I did not gawk long. Remember, I was plane drained. Allegedly the Empire State Building is in sight from Penn Station, but I did not gawk long enough to see it splendidly soaring in the sky. Using Google Maps to plan a route from Penn to Fulton, the station nearest to my hotel, I initially picked the wrong platform to wait for the subway [3]. I studied the signs on the platform carefully though and realized I should take the subway [2]. (Incidentally, I learned that almost every subway train stops at Fulton because it’s a major hub.)
Surprise, on Saturday 11/11, the [2] train was skipping stops between Chambers and South Ferry. I had to immediately bail at Chambers. I cannot read a map in the best of conditions, so I wandered around and eventually found a landmark I could recognize: the World Trade Center and the Memorial Pools. When I walked up to them, that’s when my vacation in New York started.
I loved visiting New York. I successfully navigated the map, the subway, the ferry, the trains and more. I read the MTA’s daily updates on the subway line regularly now. It’s fun. Here’s a brief summary of activities:
New York was brimming with bustling beauty, begging for a longer stay.
When I came back from my vacation, I continued my trip virtually by watching more YouTube videos showcasing New York's nuances, relished the rhythmic rides of sublime subway cars, and exclaimed, “Hey! I know that place, I was right there!” Sometimes I have front-facing footage from sublime subway cars playing in the background. I keep reading about New York transit news. I keep thinking about all the places I wanted to visit. I keep thinking about the subway, and how I should have purchased a MetroCard before they’re entirely replaced with OMNY cards.
My birthday is on November 13th, every year. That was on the day of the React Summit US conference that I had attended in New York. Since I had been traveling on my birthday and birthday-week, my brain still had not quite registered that I turned a year older. I can write this and it still hasn’t quite sunk in yet.
I think this travel week will become a new tradition.
Stand clear of the closing doors.
As you know, Twitter is run by a madman now.
I have loved Twitter for years. Unfortunately it is still a major sphere of influence for me. Many people left, then many returned, then many complained, and thus the cycle continues. The manipulative ads are increasingly encroaching. The algorithm abides by almost no rules or regulations. The chronological timeline is really no more either, which was the centerpiece, the masterpiece of the original Twitter. Statements made could drift off into time, just like those arcade coin pusher games. But it’s all no more. Twitter is by no means the desolate wasteland it was surmised to become, but it is certainly redeemed utopia either.
I've harbored a heartfelt fondness for Twitter through the years. Tragically, its towering influence still tempts me and so many others. Many migrated, then meandered back, meanwhile moaning about the merry-go-round of changes. The manipulative marketing maneuvers multiply, marring the medium that was so effective. The cherished chronological timeline, once the crown jewel, the core of classic Twitter, has crumbled. It’s been replaced by the algorithm which is anarchic and ambiguous, adheres to almost no norms. The ephemeral nature of Twitter was part of the value, ideas could drift away into time, similar to the coins those in arcade pusher games. All of that was a function of chronological time, and now it’s gone. Twitter is not quite the deserted dystopia once imagined it would be, but in not too many ways is it better. I’ll never use its new name. That would give it credit where none is due.
I've been actively promoting Mastodon, valuing the small yet interactive community I've found there. Despite its charm, Mastodon faces challenges in discoverability and the limited reach of its network effect. The community seems to prefer keeping the network relatively small, and certain practices may appear antithetical to social media. Encouraging casual users to join is challenging, with the onboarding process being notably more daunting than Twitter's in its early days. Despite all that, I like it.
In this digital landscape, it can feel like either you're screaming your thoughts amidst a chaotic, ad-filled frenzy where someone might hear you, or you're softly speaking into a blue empty expanse. My engagement on Twitter has shifted more towards passive consumption, while my interactions on Mastodon are more balanced. Perhaps my own shift raises a question. Are we all gravitating towards more closed spaces like Telegram and Discord? Are you still there?
Regardless, Twitter and Mastodon are only part of the story. With the whole read-things-industry being in shambles right now, I needed a new timesink.
I found the bird app. Twitter was the original bird app, and now that title has moved onto Duolingo.
I learned some Spanish in school, but I always disliked Spanish for various technical and educational reasons. You ask me to tell you all about those next time you see me in the wild. For now, ¡Cállate! So, what’s the next best, most different language to learn? Japanese is the language I picked.
Japanese has particular qualities:
I started playing learning Japanese in Duolingo on April 24th. That must have been a slow day. That’s the day I finally relented and tried it.
Almost 245 days later at the time of this writing, I have simultaneously learned a lot and not much at all. There are some odd gaps in learning with Duolingo. While learning Spanish in school, I learned basic nouns first, like animals and colors and later numbers. The Duolingo course structure was quite different in comparison: moving from nouns quickly and skipping past numbers, and into basic descriptive sentences. Certainly more engaging but nevertheless I feel like there are some gaps.
I sense your anticipation building. You're likely expecting this letter to transform, seamlessly transitioning into elegantly crafted prose in Japanese. That’s not going to happen.
Frankly, I do not know enough to practically pretend to know more yet.
Here are some basics though, for your viewing pleasure:
You could write my name like this. I wonder if anyone would actually do that or not though. Note that my name is a foreign word, so it is written in katakana.
Yes, it really does kind of run together like that. What’s going on with these two variants? Well, I am providing the romaji and the kana versions of the phrase. You could think of romaji like a rough phonetic description of how it might sound with usual English sounds.
I’ll learn the word for software, eventually.
Yes, I can dangerously count up to 99. Hey, wait a second, I thought I just wrote up above that I did not age this year. Oh well, this letter will be eventually consistent. 31 is written as sanjuuichi, a combination of san for 3, juu for 10 and ichi for 1.
This is certainly not true, but I have not learned how to negate or make negative statements for actions like this yet.
I did not convert Saint Paul into katakana in this example. Note again, that’s the syllabary used for foreign words. You can try sounding it out though: sa サ i イ na ナ ta タ pa パ u ウru ル. It’s definitely not correct, but that’s the idea.
As of now, my Duolingo streak stands at 237 days with approximately 8,200 XP earned, translating to about 1,700 minutes or 28 hours of learning Japanese. A typical college language course like at the University of Minnesota, which might include around 4 hours of class time plus 4 hours of homework time each week, could result in about 96 hours of theoretical learning over a semester. My current progress is roughly 30% of what one might achieve in a single college semester then. It’s edutainment at its finest.
Actually, that’s kind of the point. Not everything has to be so relentlessly rigorous and positively productive. Nothing can burn at 100% indefinitely. Nothing in nature does it. But maybe you want to have fun and learn something too? Maybe there’s a way? The bird app is just easy enough to keep at it every day. It’s just hard enough for me to think about it outside of active practice time. Just hard enough to treat like writing a program.
(I’d argue, while I was writing the above samples for you, it was much harder than when I am writing code. I need more practice!)
I know the question you have now, everyone asks: “what are you going to do with your Japanese? Are you going to go to Japan? Are you going to live there?” The short answer is no. Actually, the slightly longer is maybe I could visit, eventually. I think at this point I recognize Japanese materials better than an average American visiting Japan. On the other hand, this was never really about Japan itself. It started off as a timesink alternative to the bird app of yesteryear. Eventually it turned into a personal challenge, to examine and to determine if I could still learn new things. Turns out, I can!
I heard they have really fast trains and subways in Japan.
Follow me on the bird app: ryanmr001.
Psst. I added this section shortly after publishing because it took additional formatting time. It's draft flavored content. I still think it's interesting though, so I retrieved it the content from the archives of oblivion (otherwise known as a Sublime Text window).
While studying playing Duolingo to learn Japanese, I connected it back to my usual hobby and work of course: software engineering.
There’s a funny thing that goes in software engineering and business these days. There’s this continuous flux between terse and verbose. Let’s look at our favorite css utility library: Tailwind.
Code readers and non-code readers alike, you can follow along just as well. Consider the following code:
<a class=”rounded-sm border border-transparent bg-black bg-opacity-50 px-3 py-2 text-stone-200 transition-all duration-500 ease-out hover:border-white hover:text-white”>Hello World</a>
And now consider this code, that achieves the same thing:
<a class=”link-style”>Hello World</a>
.link-style {
border-radius: 0.125rem;
border: 1px solid transparent;
background-color: rgba(0, 0, 0, 0.5);
padding: 0.5rem 0.75rem;
color: #a8a29e;
transition: all 0.5s ease-out;
}
.link-style:hover {
border-color: white;
color: white
}
Two examples, one succinct and the other wordy. Sometimes all of those extra characters help you grasp the intent better. You have more scaffolding to hold while you work your way through it. On the other hand, as a seasoned software chef, you’re just as happy to forgo ritual and write laconic code quickly. On the other other hand, sometimes mixing terse and verbose is ideal. Use the terse version for obvious things, use the verbose variant for complicated and unique situations that need more of those landmarks.
Hold on, before I lose you, let me connect this back to Japanese. One of the fascinating things about Japanese is that it has a discrete syllabary that could be used for everything, if you wanted to. You can write phrases, paragraphs and even entire books with just syllabary from Hiragana and Katakana. Indeed, the Kanji, the symbol words, do essentially boil back down into the two syllabary. Everyone wonders this at some point. Why not just do away with kanji?
Let’s look at the basic numbers in English, romaji (for phonetic reference), hiragana and Kanji.
The first three numbers are beautifully written in kanji. They’re just tick marks. Four throws everyone for a loop having two variants. Some of these numbers are multiple syllables. For the most part though, they’re all short. Even so, the kanji version offers specificity and conciseness. For other phrases or words, surely the brevity factor could increase.
There is certainly a cultural connotation element to kanji that someone could speak to better. Separately though, I think it is related to terseness and verbosity. Even in my own practice, I start with hiragana, eventually learn the kanji variant, assume that I’ll never remember that, and then forget that I thought that, and then enjoy that I can cut down a bunch of composition effort and parsing effort by just knowing this one extra symbol representation. I appreciate that. Likewise, I can read tailwind code just fine because I am increasingly used to it. I can read the tiny inscription of px-3 py-2 and expand that out to padding: 0.5rem 0.75rem in my brain.
In the end, in the real world, what did actual people pick? Did they go all in on tersely compressed contextless gibberish? No! They picked the mix. In real written materials, the kanji is directly interspersed with the kana. You can dangerously apply this to other systems too. Embrace the aspects of what each does best and find the harmony in the spectrum.
I hope you have enjoyed this draft flavored content.
This year’s bonus content diverges from my usual activity norm! I have run out of activities for now. I’ll get my Generative AI to help out next time. Luckily, I have a replacement instead. This time, you can watch a video.
Due to friendly fomo, I used an app called 1SecondEveryday or 1SE. The concept is that you record a brief video (or reuse a photo stretched into a video format) and combine them into a video that spans the entire year. I think it’s a cool thought. Enjoy the video of my year!
I am of two minds here. I like looking back at this video and thinking about all the fun things I did, all of that cooking, all of that time with Roxy, and more. The video is a great vehicle for remembering all those things.
On the other hand, I dislike living in the shadow cast by chasing the spotlight of excitement. Not everything is especially extraordinary and notably novel. Documenting every little thing is unnecessary. The ordinary moments — sitting quietly, working, playing with your dog, or preparing dinner — embody the genuine fabric of life that fills in the bulk. That’s fine, that’s expected. There should be exciting things in your life. But pursuing the unending urgency for filling in the artificial story day by day? I am not necessarily going out of my way to just live life.
Being boring is fine. It's just life.
As always, you are my honored guest here. This letter's writing is no small effort, and your time reading this is no small feat either. I have to say thank you one more time. I hope it was an enjoyable read. I hope your year has been well and your next year even better.
If you are adventurous and fastened your awesome card featuring Roxy the dog somewhere decorative or festive, please snap a photo and share it with me.
Thank you, and have a good one.
じゃね
(In Japanese-romaji, this is jaane, or an informal friendly goodbye, like See you!)
Thank you, and have a good one.