feat: move remaining post content

This commit is contained in:
Devin Haska 2024-02-10 23:31:20 -08:00
parent da1035826f
commit 58d679d3c9
46 changed files with 3152 additions and 18 deletions

View file

@ -0,0 +1,115 @@
---
title: "2020: In Review"
date: 2021-01-09
excerpt: A remarkable year.
categories: ["year recap"]
---
How do you even begin to summarize the whirlwind that was 2020? What are the Greatest Hits? Heres a short list:
- COVID-19.
- The president was impeached and nothing happened.
- Harvey Weinstein was sentenced.
- The death of George Floyd.
- The Beirut explosion.
- Murder hornets.
- Ruth Bader Ginsbergs passing.
- The sucker punch: news of MF DOOMs passing on the last day of the year.
When I was young, I always wondered what it would be like to live through a historic event like the Vietnam War, or the AIDS crisis. It feels like Ive lived through a lifetime of them in the span of a year. And my list isnt even close to everything that happened in 2020.
A lot of good things happened this year too:
- Multiple vaccines for COVID-19.
- There might be microbial life on Mars! Water on the Moon!
- [The Pentagon released footage of “unidentified aerial phenomena” (read: UFOs!).][ufos]
- Working from home had a revolution.
- Lots of really cool SpaceX launches.
- [That time that air pollution was so low because of the pandemic.][pollution]
- Trump lost. And kept losing.
- [Italian mayors losing their shit telling people to stay home.][mayors]
- [Olive and Mabel by a sports commentator.][commentator]
- [Google is being sued by the US for antitrust violations.][antitrust]
- We got Season 2 of The Mandalorian.
{% image "https://cdn.wonderfulfrog.com/8deaca3a-3ad8-4a2b-9068-b6ea1b7f7ec1.jpeg", "A screenshot of my phone with a news heading that says 'BIDEN BEATS TRUMP'", "" %}
I had to search for both positive and negative events because my brain is having enough trouble dealing with the present, let alone reasoning what happened in the past.
As for me... well...
## Work
When 2020 started, I was only 2 months into my new job. A year later and Ive dug into the work. This year has been such a fantastic reminder of how fortunate I am to work for my company. There is a clear understanding of the events in the world and an implicit assumption that nobody is at (or even near) 100% productivity. There is a tacit acknowledgement that sometimes people need to take a few hours (or more) off to refocus. They care about the humans behind their work.
Its also my first workplace that feels “real” — in the sense that we (the company) have core values that we all believe in, and if we dont meet them the expectation is that we shore up or ship out. I had a sobering reminder of what that means this year. It was like my first year of university. Impostor Syndrome struck its claws into me quite deep this year, as I felt like I was an outsider/impostor working with such a talented group of people across disciplines. I felt anxious and was certain I was going to be axed once the pandemic rolled in. The opposite could not have been more true. Everyone was there to support me and make sure that I landed with two feet. It was an incredible feeling knowing I was valued.
Ive found my groove now after a rocky start. Being surrounded by colleagues who value their work and really truly want to do the best can be an invigorating feeling.
Last year I was excited to get started in iOS development, and started making a super simple (Magic the Gathering) life counter app. It never got beyond the earliest stages though. Then my work ended up going in a very web-focused direction. Now Im not so sure I want to even have an app on the App Store as my indifference toward Apple seems to grow by the day.
On the team leadership side of things, I did get the opportunity to lead a small team in creating a Slack app for a not-for-profit company. That was a ton of fun for multiple reasons, but above all it was my first time seeing something the company made (that I had a hand in) live in the real world! It was a real privilege being able to work on it.
I spent more time working with GraphQL and I feel like its becoming a reliable tool in my belt now.
Lastly, I finally took the time to learn vim. It was (and still is) an uphill battle, but its so rewarding being able to accomplish anything I want using just the keyboard. Its been a few months and I feel like Im back up to speed with my mouse and keyboard self. Speed aside, its been a ton of fun tweaking my editor to have it _just so_, using things like VimPlug to get some essential plugins. Its also made me realize how feature-rich vim is by itself and how few plugins I need to get a very powerful editor. Ive since moved onto NeoVim (nvim) for the plugin ecosystem and have no plans to go back to VS Code.
## Creative
2020 was the year of being indoors, so all the more reason to really engage with my creative hobbies. I started up piano lessons again with my previous teacher after a year of sort-of-but-not-really-trying to play on my own and find a jazz teacher. The value of a teacher who understands you and knows how you like to learn cannot be understated.
I finished a long-standing knitting project (a scarf, but using 2 different colors of yarn) for my Mom. I was proud to finally finish it after starting it last year.
I mostly kept up with drawing, although Ive had week-long (or more) periods of no practice. Im eager to get into working with a teacher, but not sure how well it would work remotely.
I got busy with some side projects in the coding space:
- [A static site powered][teabase] by NextJS and AirTable to publish our tea collection.
- [A simple API][hltbapi] for querying [How Long to Beat][hltb], integrated into an iOS shortcut.
- A (incomplete) [CHIP-8 emulator][chip8] built using JavaScript.
I was quite pleased that I kept up (more or less) with monthly summaries on the site here. I hope to continue doing that with some shorter form posts in between. I have a few topics in mind Id like to explore.
## Mental Health
As with I imagine the majority of people on the Earth this year, my mental health took a sharp nosedive. I remember feeling off all the time, and how nothing seemed to be interesting or engaging. Not even work got me excited. Im so fortunate that I had the ability to see a professional to talk about these things and start feeling better. I think it was a case of the [“COVID-19 wall”][covidwall].
Working through my emotions though, [I did learn some things about myself][octrecently]. I am more aware of how much I value short, actionable tasks instead of large, vague goals.
I could feel my moods decline when I was paying attention to events unfolding in the US over the year.
## Playing
Being at home I got the chance to settle into some games this year. Without a doubt the majority of my time (over 400 hours worth) went into [Animal Crossing: New Horizons][acnh]. Talk about the right game at the right time. It has regularly been my escape from the... **\*gestures at everything\***.
It also served as a gaming jumping on point for my partner and my parents. Everyone got into it in a big way and it served as a fun bonding activity. We also all got into the same island at once, which was so much fun!
My other favorite games this year would be [A Short Hike][ash] and [Hades][hades]. I went into more detail with my experience with Hades in an [earlier post][novrecently].
## Listening
A notable achievement would be finally organizing my music collection. Its been something on my todo list for years and Im so happy I finally got around to it. Ive been using it happily without issue since I got it running, and its super easy to maintain. For those curious [I went into more detail in this post][music].
Finally I feel like I need to mention [Bandcamp Fridays][bcf]. This was a hidden gem turned into favorite of mine this year. It was one day a month I went a little crazy and bought a ton of music. Im happy to see the tradition is returning in 2021.
## Closing
Im writing this post about a week into 2021 and if youve been following along... 2021 be like “hold my beer”. Im hoping it turns into a redemption arc, but were not off to a great start. Heres hoping, though. As a great man — Ted Lasso — once said: its the _lack_ of hope that kills you.
[ufos]: https://www.cnn.com/2020/04/27/politics/pentagon-ufo-videos/index.html
[pollution]: https://www.insider.com/before-after-photos-show-less-air-pollution-during-pandemic-lockdown
[mayors]: https://www.youtube.com/watch?v=KxtGJsnLgSc
[commentator]: https://www.youtube.com/watch?v=vPhpJuraz14
[antitrust]: https://www.washingtonpost.com/technology/2020/12/17/google-search-antitrust-lawsuit/
[teabase]: https://teabase.vercel.app
[hltb]: https://howlongtobeat.com
[hltbapi]: http://hltb-api.vercel.app/
[chip8]: https://github.com/devinwl/chip-8
[covidwall]: https://metro.co.uk/2020/09/23/how-to-push-through-six-month-coronavirus-wall-13309340/
[octrecently]: /posts/recently-10-2020
[acnh]: https://www.animal-crossing.com/new-horizons/
[novrecently]: /posts/recently-11-2020
[hades]: https://www.supergiantgames.com/games/hades/
[ash]: https://ashorthike.com
[music]: /posts/take-the-power-back-music
[bcf]: https://daily.bandcamp.com/features/bandcamp-fridays-2021

View file

@ -0,0 +1,166 @@
---
title: "2021 Ranked: Games"
date: 2022-01-18T20:52:22.166Z
excerpt: All of the games I played in 2021. Ranked.
categories: ["rankings"]
---
As we move onto the year ahead that will be 2022 (please dont be the sequel everyone expects it to be), I always like to look at the past year and see what caught my attention. Lets look at all the games I played in 2021. Keep in mind these didnt all come out that year. Meanwhile Ill rank them all.
{% image "https://cdn.wonderfulfrog.com/spiritfarer.png", "", "" %}
## \#16 — Spiritfarer
I dig the universe for this game. I think theres a lot to like. That being said, I found the game far too grindy. The combination of excessive travelling and backtracking killed it for me. Im going to keep an eye on the studio though and see what else they make.
___
{% image "https://cdn.wonderfulfrog.com/spvtwce.png", "", "" %}
## \#15 — Scott Pilgrim vs. the World
Its the Scott Pilgrim game that everyone loved. Not much else to say. Im glad its getting a port for modern consoles. Personally I think its fine, not my cup of tea.
___
{% image "https://cdn.wonderfulfrog.com/sm3dwbf.png", "", "" %}
## \#14 — Super Mario 3D World & Bowsers Fury
A fun Mario game, fine enough. This game came out before Odyssey though, and it shows. Its not even in the same league. They tried to solve that by including the “Bowsers Fury” expansion, which does an admirable enough job of trying to make 3D World into a hybrid of Odyssey and Breath of the Wild.
I dont like how in order to 100% the game, you need to play every single level 4 times (or play with 4 friends once). I had a hell of a time making a dent in the final level (World Crown), and couldnt do it. Knowing that Id have to do it another 3 times just knocked the wind out of my sails. I like to 100% my Mario games, theyre usually a lot of fun to do. Not this time.
___
{% image "https://cdn.wonderfulfrog.com/paradisekiller.png", "", "" %}
## \#13 — Paradise Killer
Even though this game has elements of my favourite games, it didnt grab me in the way I thought it would. I gave up on it pretty quickly, but want to go back and try it again. Maybe something didnt click right away…
___
{% image "https://cdn.wonderfulfrog.com/gunpoint.png", "", "" %}
## \#12 — Gunpoint
Im an avid follower of [Tom Francis](https://www.pentadact.com) (the developer of the game). It took me a long time to finally sit down and play through the entirety of it (which is about 2-3 hours). I absolutely loved the rewiring mechanic. It allows for a ton of flexibility while fitting within a set of rules. Its got just the right about of spy flick and film noir mixed together. A perfect amount of camp. For $10, you could do worse.
___
{% image "https://cdn.wonderfulfrog.com/cfb.png", "", "" %}
## \#11 — Catherine: Full Body
The game piqued my interest but didnt grab me all that strongly. I do want to go back and give it an honest shot though. I didnt get too far in my first playthrough. The puzzle mechanics were brain teaser fuel.
___
{% image "https://cdn.wonderfulfrog.com/godofwar.png", "", "" %}
## \#10 — God of War
One of the reasons I bought a PS5 was so I could play games like this at 60 FPS. I will complete this game. Its a lot of fun. I keep getting distracted right as Im in the middle of it though, so I keep restarting from the beginning months later. But I will do it!
___
{% image "https://cdn.wonderfulfrog.com/miitopia.png", "", "" %}
## \#9 — Miitopia
A surprisingly fun and humorous RPG. I had no idea it was a 3DS port. I spent a surprising amount of time [crafting Miis from Star Trek to Seinfeld](/posts/recently-06-2021) to fit into my whacky universe. And my friends too of course.
___
{% image "https://cdn.wonderfulfrog.com/nmh3.png", "", "" %}
## \#8 — No More Heroes III
I first played this at a friends board game get-together. Everybody could not handle the wild-ass bullshit that goes on in these games. Its classic Suda though. I didnt end up finishing it this year, but I want to go back.
Im not entirely sure why they brought the open-world stuff back though. I think the 2nd game made the right call ditching it.
___
{% image "https://cdn.wonderfulfrog.com/sv.png", "", "" %}
## \#7 — Stardew Valley
The coziest of couch games. One of my favourite games on the SNES is Harvest Moon and Stardew Valley is that game but better. In every way.
I had a lot of fun playing this and lost many hours tending to my farm. Something else caught my attention which drew me away, but Im eager to get back and finish the story.
___
{% image "https://cdn.wonderfulfrog.com/hades.png", "", "" %}
## \#6 — Hades
What else can I say that hasnt been already? The game is fantastic and has even won a Hugo award. If you havent, play this game.
I decided to revisit the game after my initial playthrough and get all of the extra content. I shared my original thoughts in [this post](/posts/recently-11-2020), and [mentioned it again later in 2021](/posts/recently-05-2021).
___
{% image "https://cdn.wonderfulfrog.com/d2r.png", "", "" %}
## \#5 — Diablo II: Resurrected
I dont have a lot of faith anymore when studios announce a remaster or remake of an older game. That being said, I cannot believe how well Blizzard pulled it off. Well, the game part of it anyway. The multiplayer has had issues since it launched, but I have faith they can fix them.
I am impressed of the dedication their team to get the details right.
Once I take my rose-tinted glasses though, I can see that even a passionate remaster cant solve the games underlying problems. The end-game is boring. It turns into a months-long grind (if youre lucky though, it might be shorter). In all the years that I played the game I never got far enough to be considered “in the end-game”, and now that Ive gotten there… there is nothing left but grinding. Play the same map over and over and hope that RNG gives you what you need. This is typical of the genre, but more recent titles (say Diablo III) wont make you grind for months. You can wrap up a Season of Diablo III in about a week with casual play.
In summary: best remaster Ive seen. But a remaster cant solve a games underlying problems (unless it changes things, which tends to go against the spirit of a remaster). That being said, Blizzard have expressed their intentions of adding new runewords and quality-of-life features. I plan to check those out eventually.
___
{% image "https://cdn.wonderfulfrog.com/ypee.png", "", "" %}
## \#4 — Yuppie Psycho
I never expected a 2D, topdown game to frighten me so much. I was unsettled in almost every moment playing this game. Its balanced well with genuine moments of humour. The levity takes the edge off between horrifying encounters. There are plenty of delightful jabs at office culture while navigating the heights and depths of Sintracorp.
___
{% image "https://cdn.wonderfulfrog.com/metroiddread.png", "", "" %}
## \#3 — Metroid Dread
The fact that this game even exists blows my mind. Us Metroid-heads have been hearing the “Dread” name ever since it was hinted at back in Metroid Prime. That was for the GameCube! There have been rumours for years, but nothing materialized. Then literally out of nowhere, a new 2D Metroid title emerges, and it bears the Dread title!! 20 years later we finally got it.
This game wins my totally-not-made-up-category of “Best Game That I Didnt Finish”. I do intend to go back, though.
I like the game and gameplay. The Dread part of the title fits in well as I do dread going up against the EMMIs (a stupid name though). The game is plenty hard without being punishing. It rewards skillful play without requiring it.
___
{% image "https://cdn.wonderfulfrog.com/valheim.png", "", "" %}
## \#2 - Valheim
This game got its hooks in me fast and deep. I was sucked in for a month straight. I would eagerly await the end of the work day so I could play more Valheim. Id spend the whole weekend glued to my monitor. And I got to play it with friends! We made a great castle near the end of the game as we neared the end (of the content at the time).
The game was in early-access at the time (and is still as of this writing), but as far as an early-access game goes it felt full-featured. Rough around the edges and clunky in spots, but the core experience was enthralling. So much so that [I wrote about it](/posts/recently-03-2021) — [twice](/posts/recently-04-2021)! I look forward to going back once there have been more updates.
___
{% image "https://cdn.wonderfulfrog.com/tgaac.png", "", "" %}
## \#1 - The Great Ace Attorney Chronicles
Ive been a fan of the Ace Attorney series since the DS days. In that time the series has accumulated a ton of “cruft” — backstory, lore, whatever you want to call it. Its gotten to the point where its starting to feel like a Kojima game… ridiculous stories that dont make any sense.
Capcom did the best thing they could at this juncture. They threw it all in the bin and started from scratch. A new cast of characters to build with. The core of the game is more-or-less the same: you investigate crime scenes, and defend your client in court. Oh, and topple the countrys government, dethrone a queen, solve a decades old murder, and burn a courtroom down. Which of those are actually true? Youll have to play and find out.
What they got right was so much. The Logic and Reasoning spectacular were my favourite sections. They brought a lot of life to the Investigation section of each trial. I wish there were even more! I can tell the designers had a ton of fun in these sections. The spotlights added a ton of flair.
Theyve absolutely nailed the 3D part of the game in terms of character animation. It feels like the older 2D games but with the flexibility of 3D. They can create dynamic scenes with exciting camera movement. Characters can face each other, or look at spots in the world. It creates a believable world that feels alive and makes the characters spring forth with life. My favourite character without a doubt is Lord Barok van Zieks. Pray forgive the discourtesy for not suggesting the main character.
I was impressed with the story. Each case felt like its own complete arc, but various threads start to tie them all together into one giant, bombastic finish. I didnt see the conclusion coming, and felt like Ryunosuke when I finally pieced it all together.
Without a doubt the best music for the entire series. I've been humming various tunes to myself since starting playing the game, and regularly look for "extended versions" of songs on YouTube.
Its not only a great game, its a great sequel. These days thats hard to pull off. I hope Capcom hasnt given up on the series and will give us an all new Ace Attorney game.

View file

@ -0,0 +1,104 @@
---
title: A Primer on Canadian Government
date: "2021-01-27"
excerpt: Canadas parliamentary system explained.
categories: ["canada", "government"]
---
In the last four years Ive learned an awful lot about how the United States government functions at a high level, and even on specifics like the House and Senate processes. Meanwhile Im foggy at best on how Canadas government functions. I decided to educate myself.
I will try my best to simplify into smaller chunks and focus on aspects I wasnt aware of. This is not an exhaustive summary but more of a high-level overview. Ive linked to the sources Ive used which provides more information on specific subjects or terms.
## How is the federal government formed?
- A general election is held. This is every 4 years but can happen sooner under certain circumstances.
- When voting in a general election, Canadians are voting for an individual to represent their constituency (or riding) in the House of Commons.
- The House of Commons is the 338 elected members of parliament (MPs) across Canada. There are 338 seats in the House of Commons.
- The political party that holds the most seats in the House of Commons is the party in power.
- The power is decided in two ways: majority or minority.
- Majority power means the party in power holds more than 50% of all seats in the House of Commons.
- Minority power means the party holds the most seats, but less than 50% of the total seats in the House of Commons.
- The distinction of power is important because a majority vote is required to pass legislation.
- MPs in Canada almost always vote along party lines. When a party votes for (or against) legislation, its expected every member of the party will vote the same.
- Majority power governments therefore can pass legislation without challenge, while minority governments require support from other parties.
- The leader of the party in power becomes the Prime Minister.
- The Prime Minister, along with their Cabinet and the Governor General form the Executive Branch of government.
- The Prime Minister selects members of their Cabinet (ministers) and appointments them to various governmental departments.
- The Governor General appoints members of the Senate with advice from the Prime Minister. These senators come from the Prime Ministers party.
- With the Senate filled and the House of Commons members elected, the Legislative Branch of government is formed.
- The government is ready to govern.
## What happens in the House of Commons?
- MPs spend their time in the House of Commons discussing and debating Chamber Business.
- Chamber Business tends to be new bills being put forth by ministers. MPs will sometimes put forward their own bills called Private Members Bills.
- There is time for MPs to talk about important information in their riding, and raise issues.
- The House of Commons has a Speaker whose job is to ensure the rules of the House are followed. Questions and statements are directed through the Speaker.
## What happens in The Senate?
- The Senate follows similarly to the House of Commons.
- Chamber business for the Senate tends to be bills originating from the House of Commons. They can discuss committee reports, make statements, etc.
- Much like the House of Commons, the Senate will debate and discuss bills.
- Although they follow the same process as the House of Commons, the Senate in Canada is not known to go against the House of Commons. A bill that passes in the House of Commons will likely pass in the Senate (occasionally with minor revisions).
- The Senate has a Speaker that functions like the House of Commons.
## What are political parties like in Canada?
- Unlike the US, Canada has more than 2 major political parties.
- In modern political history Canada has 5 major parties:
- Liberal Party of Canada
- Conservative Party of Canada (colloquially known as the Tories)
- Bloc Québécois
- New Democratic Party
- Green Party
- MPs belong to a political party, but in rare cases can be independent.
## How does an idea become law?
- A written idea becomes a bill.
- A bill starts off in a Chamber (the House of Commons, but could be the Senate).
- It is put forward and given a First Reading. This serves as an introduction.
- Following the reading, MPs debate the bill. This process is the Second Reading.
- The bill is then passed to a committee to study and review the bill under scrutiny. This is where amendments are recorded.
- The committee then reports back to the Chamber where the bill originated, and notes any amendments. The bill is again debated. Any members not on the committee are welcome to suggest further changes.
- Following the debate and after any additional amendments are added, the bill is given its final reading called the Third Reading.
- MPs can debate one last time about the final status of the bill. MPs may change their mind in between these stages if they are for or against the bill.
- The bill is put to a vote. A vote of more than 50% means the bill moves along to the Senate, where the First, Second, and Third Reading process repeats.
- As mentioned earlier, the Canadian Senate rarely goes against what the House of Commons puts forward.
- Once the bill passes both the House of Commons and the Senate unchanged, it is ready for the Governor General.
- The Governor General gives the bill Royal Assent, and it becomes law.
- The Governor General represents the Queen and thus holds ultimate power, but has never withheld Royal Assent in modern politics. This part of the process is ceremonial.
## Watch sessions of Parliament
You may be familiar with C-SPAN which offers live streams of US House and Senate sessions. There is a Canadian equivalent called [CPAC][cpac] (Cable Public Affairs Channel) which offers similar programming. CPAC is a privately owned, not-for-profit television service. Its designed to be an unbiased window into our government at work.
The [House of Commons publishes their agenda][hocagenda] for the day.
## Whos working for you?
The [House of Commons site has the list][hocmembers] of every elected MP. Each member has information on their roles, any bills they have supported or put forward, how they have voted on matters, and more. It even shows where they are seated in the House of Commons! There are detailed breakdowns on current and past roles, election results, and more.
## Conclusion
Keep in mind this was a surface level introduction into Canadian government. There are more details to learn like:
- What are the rules in the House of Commons? The Senate?
- What are the political party ideologies?
- What about provincial governments?
- What are the requirements to become a Senator?
- What is the pathway for a Canadian citizen to become an MP?
- How do the smaller political parties pass legislation?
My hope though is this is enough of a jumping-off point to kick-start the process of learning more and getting involved in Canadian politics.
## Sources
[House of Commons Canada — “The Canadian Parliamentary System“](https://www.ourcommons.ca/About/OurProcedure/ParliamentaryFramework/c_g_parliamentaryframework-e.htm)
[House of Commons Canada — “Legislative Process”](https://www.ourcommons.ca/About/OurProcedure/LegislativeProcess/c_g_legislativeprocess-e.htm)
[cpac]: https://www.cpac.ca/en/
[hocagenda]: https://www.ourcommons.ca/en#pw-agenda-publications
[hocmembers]: https://www.ourcommons.ca/members/en

View file

@ -0,0 +1,40 @@
---
title: Thoughts on the Apple Watch
date: 2019-05-20
excerpt: My experience with the Series 3 Apple Watch, 11 months later.
categories: ["apple watch", "apple"]
---
Since I started going to the gym regularly and kept watch on what foods I ate, I became more interested in monitoring my calories burned during workouts. Initially I thought I should get a Fitbit, but I wasnt too fond of their lineup at the time. At the time of writing they also _still_ dont sync to Apple or Android Health. When the Apple Watch was initially revealed I toyed with the idea of buying one, but had yet to come up with a compelling reason to buy it. Given my newfound interest in fitness and health, and that I had given the Watch a few months to bake - it seemed like now (June 2018) was good a time as ever to jump in. I decided one hot day that it was time for me to jump into the world of wearable tech.
By this point in time the Series 3 was a few months old. They offered both the GPS and cellular models. Given that I always tend to keep my phone on me, I didnt see any advantage in buying the cellular model. They also require an eSIM card to work, which is an additional charge for carriers here in Canada.
The setup process is remarkably simple. After a brief initialization process, the Watch screen shows a sparkly cloud background. Your iPhone takes a picture of it, and the process is complete. I couldnt believe how fast and easy it was to pair.
One of the first things I noticed while using the Watch is the [Taptic Engine][] (what Apple obtusely calls their vibration technology). Its subtle but still prominent enough to feel. Its a small but appreciated detail... something I feel is often under-appreciated in todays devices. If youre not sure you can tell the difference - go back to an old iPhone (something before the iPhone 7) and _feel_ and _listen_ to the vibration. Compare it to the Apple Watch or a newer generation iPhone. Its a night and day difference. The newest Taptic Engine makes almost no sound. It also does a serviceable job at making the Digital Crown (knob on the side) feel more tactile.
[taptic engine]: https://developer.apple.com/design/human-interface-guidelines/watchos/user-interaction/haptic-feedback/ "A developer's guide for how to use Haptic Feedback on the Apple Watch"
The wrist-tilt detection is generally pretty good, although sometimes it refuses to work. This happens seldomly, but enough to notice. I wish the screen were OLED so that it could be always on. I think it might also save on battery life too.
The battery life has been great for me - I usually get about 2 days of consistent usage before needing a recharge. I think the expectation compared to other wearable tech might be longer (a Fitbit can go for a week before needing a recharge), but for my use case this is sufficient.
The Watch will automatically detect when you start working out and is usually accurate. When doing a spirited walk, it will pick up on it within 10 minutes. For more intense workouts (elliptical and stationary biking in my case), it starts a workout within 3 minutes. All Workout app data is recorded to Apple Health so other apps can make use of the data. As an avid Pokémon GO player, this pairs well with the [Adventure Sync][] feature. What this means is that my distance travelled and calories burned are sent to Apple Health and Pokémon GO can pick up on that data. One complaint I have is that there is a limited variety of Workouts available. For example, there are no workouts for strength training.
[adventure sync]: https://pokemongolive.com/post/adventure-sync "Niantic's explanation of the Pokémon GO Adventure Sync feature"
Standing detection can be quite spotty sometimes. Ill be standing completely upright and moving, and the Watch will refuse to acknowledge it. Ive been sitting down sometimes when it triggers a “you stood up” alert. It has annoyed me enough times that Im thinking of disabling the alerts entirely.
I thought it would be great to have all of my phone notifications mirrored to my Watch - available at a moments notice, but it very quickly became overwhelming. I ended up disabling all notifications except for phone calls and reminders. Ive personally grown tired of always giving my phone too much attention, and I found myself facing the same issue with the Watch.
The interface is good enough for the odd time Im forced to use it - dismissing notifications, starting workouts, setting alarms, etc. Anything beyond that though is a chore. The “circle grid” is an unpleasant mess. Thankfully, I later discovered that there is a [“list view” option][list-view] for the home screen which works much better. The Digital Crown is used for scrolling the current screen, but being so familiar with a touch screen I dont see the use for it. Generally speaking, if theres a way to avoid using the Watchs interface then I will opt to do that. Ive found most of the “Watch apps” are near useless. The ones I use the most are the Clock app (for timers), Workouts, Home (controlling lights), and Music (for controlling volume). Since I carry my phone with me all the time, why would I bother using a tiny, cramped interface when I have the full-featured app available right there?
[list-view]: https://www.youtube.com/watch?v=3DVrPJXWV50&t=1m31s "7 Tips Every Apple Watch Owner SHOULD Know!"
That said, I have found some unexpected uses from the Watch. Firstly, being able to control volume without using my phone turned out to be a handy shortcut. The Digital Crown can raise or lower the volume without the phone needing to be unlocked. I use the Home app as a Watch Complication which works most of the time, but sometimes it refuses to connect to my devices. Speaking of Complications - I wish there were more options available for the stock watch faces. I was hoping to use my Watch as a “super Notification Center” and have tons of information available at a glance. Instead, the most I can seem to get out of it is an icon, an unread count, or a single line of text.
The [Scribble][] feature is one I see rarely mentioned and under-appreciated. It makes composing short text messages a breeze. You can write letters and short words using your finger. Ive found it to be generally very accurate. Its a rare occurrence for me to be without my phone, but it's served me well in a pinch.
[scribble]: https://support.apple.com/en-us/HT206907 "Details on the Scribble feature"
Several months later Im not using the Watch beyond a bunch of sensors. It does feel like Im underutilizing the Watch, but at the end of the day Im satisfied with what I get out of it. I wouldnt recommend the Watch to everyone. The ideal use case is niche in my opinion. For the fitness enthusiasts I think theres something to get here, but unless you value data being synced to Apple Health, a Fitbit might be a better option. For those who are already invested into the Apple ecosystem, an Apple Watch may perform better than a Fitbit. Unless you plan to really utilize the various health and fitness-related features of the Apple Watch, I dont see the point in it. That said, I think it makes for a great piece of tech for the right use case.

View file

@ -0,0 +1,17 @@
---
title: Checking In
date: 2021-11-24T07:03:52.766Z
excerpt: Kept you waiting, huh?
categories: ["checking in"]
---
Ive dropped my regular writing habit as of late. I wanted to write a quick post to say Im doing alright. Whats happened recently?
I saw a documentary called [The Rescue](https://www.imdb.com/title/tt9098872/) which was all about rescuing the boys soccer team that got stuck in caves that flooded. I expected to enjoy it, but this delivered an unexpected emotional impact. You kinda “know the plot” going into the movie, and yet its paced perfectly to unfold the story in a dramatic fashion. The absolute overwhelming joy I felt at the end was incredible. If you have to see one documentary this year (and you should), see this one.
In other movie news I saw Dune. I hadnt read the books when I saw the movie. I went in completely blind with no expectations. What I got impressed me. Knowing little of the source material, I thought they brought the world to life. Hans Zimmers score (which I have to admit was not mixed well and is awfully loud during the movie). The feeling that the soundtrack evokes fits the atmosphere with perfect precision every time. It transports you to the arid deserts of Arrakis. Eagle-eyed readers might notice I used the word “hadnt”, which to be clear means Im reading the first book now. Im about 30% of the way in, and Ive almost caught up to the movie. With the announcement of part 2 on the way though it shouldnt be that surprising. The first book was written in the mid 60s, but is not nearly as dated as I expected (except perhaps [this passage](https://english.stackexchange.com/questions/360106/what-does-this-word-mean-in-this-passage-from-frank-herberts-dune#360112)).
Going to movie theatres is a strange experience after not being in one for the better part of a year and a half. Its something Im getting used to again. I did miss theatre popcorn something fierce though.
We had insane flooding here in town from a rainstorm. It was enough to knock out an arterial road that we rely on for getting goods into the city. It was difficult to get products into town, and sent some of the population into a frenzy. Panic buying everywhere. It was impossible to get gas for a few days (and we were running on fumes before the rain started). I saw signs in grocery stores limiting purchases of milk and eggs to one per customer. Its pulled the wool from my eyes that we do not have the infrastructure for a real natural disaster. We need to get better prepared.
Today was an exciting day for me as I acquired a new [coffee grinder](https://baratza.com/grinder/encore/). Its a proper burr grinder, and based off my small sample size of one coffee its made a huge difference. Ive been refining my Aeropress method thanks to [James Hoffmans YouTube channel](https://www.youtube.com/channel/UCMb0O2CdPBNi-QqPk5T3gsQ). I think short of a full-on espresso machine Ive found my setup. I did also purchase a pour-over (Hario V60) which I will be trying out soon. It will need practice.

View file

@ -0,0 +1,18 @@
---
title: Coming back to vinyl
date: 2019-09-14
excerpt: Sometimes minimalism goes too far.
categories: ["vinyl", "collecting", "minimalism"]
---
This is an update to my post from a few months ago about a cautionary tale into collecting vinyl. I stand by the post, but I wanted to mention that Im back into the hobby. What happened?
I believe this all started because of my ruthless quest for minimalism. I dont mean in the popular sense of owning no furniture like that photo of Steve Jobs, but speaking more in a sense of values. If something isnt providing me any value, why should I continue to own it? That was the conclusion I arrived at when it came to evaluating my vinyl collection.
{% image "https://cdn.wonderfulfrog.com/CB867BB6-6F62-44AC-B1F4-B9B8D290D75C.jpeg", "Steve Jobs sitting cross-legged in his living room with sparse furniture", "" %}
After talking with my partner, she said something along the lines of it being okay to collect things. It sounds silly, but that single bit of permission and validation told me that the collection does indeed bring my joy and value. It cemented the fact that the collection is now a part of who I am — it helps define my identity as an avid music listener. Once someone told me its okay, it completed changed my perception. Perhaps all I was looking for to begin with was permission to collect them?
Since rekindling my love of vinyl Ive once again fallen in love with the hobby. I forgot what an experience it is to listen to a record. Its even more enjoyable when you have someone there with you. Being able to enjoy a hobby together with someone completely changes my relationship with the collection. It feels like its something I can share with my partner and introduce them to new music. We get to hold a physical, tangible piece of music in our hands. We can admire the art. Heck, it even has a distinct smell that I love (dont judge).
Ive also thrust myself back into the music scene again. Im following more artists and keeping an eye on when things are coming out. Im excited to listen to new music again.

View file

@ -0,0 +1,29 @@
---
title: Give In to Feel Good
date: 2020-08-16
excerpt: Procrastination isnt just about laziness, is it?
categories: ["procrastination", "mental health"]
---
Procrastination is something I struggle with every single day. I find it often strikes as critical thoughts:
- This will turn out horribly, better to not even start.
- This will take forever to learn, why not do something fun?
- Practicing is so boring and hard, lets do something easier.
I used to think that procrastination was because of sloth, or laziness. Now I realize its different — its negative emotions. Procrastination is how one manages these negative emotions.
The thoughts I get all the time are like a form of anxiety. I dont cope well with these emotions. My natural response is to give in now to feel good. Id rather reward myself over the short-term rather than the long-term. I know that the long-term reward is what I want, and yet I find myself going after the short-term reward instead. It feels good immediately.
[This thread on Hacker News](https://news.ycombinator.com/item?id=24120275) prompted my journey into my own procrastination, and [this video](https://www.youtube.com/watch?v=mhFQA998WiA) from the thread helped me look at procrastination in a different way. This was a lightbulb moment for me. To me my source of procrastination is not myself being lazy or uninterested, but being critical. Im a perfectionist (and Ive come to realize I dont like that), and I am plagued by reasons I shouldnt start a task. This helps me at least identify the problem.
TODO: YouTube shortcode: mhFQA998WiA
I have some actionable goals that I want to try:
1. Break any prospective task into a concrete goal. “Work on a blog post” is vague and hard to measure, but “write a paragraph about procrastination” is more structured and easy to track.
2. Remind myself of the feeling I get when I accomplish a task. It might feel good to give in right away, but remember the feeling of sitting down and doing the work and feeling great afterward. Use that as a form of motivation.
3. Dont forget what my long-term goal is with a given task. For example, practicing anatomy in drawing is working toward a long-term goal of being able to draw from imagination.
4. Taking a deliberately sloppy start to “get momentum going” is better than doing nothing at all. If the sloppy start doesnt go anywhere — well, at least I gave it an honest effort. Try to ignore my inner perfectionist and show up.
Now comes the long and arduous task of working on it. Then again, maybe just one more self-help YouTube video...

View file

@ -0,0 +1,212 @@
---
title: "GMTK Game Jam Post-Mortem"
date: "2021-07-03T07:25:56.354Z"
excerpt: My first game jam ever.
draft: false
categories: ["gamejam", "gamedev"]
---
This year I participated in the [GMTK Game Jam](https://gmtk.itch.io) with two friends. It lasted 48 hours from June 11th to 13th. My main responsibility was the art department.
The theme was “joined together”, which meant you could take things literally and join stuff together, or maybe take things in a more narrative sense, like the way hands join together to form a handshake.
Thats how we decided to take things anyway. We came up with [“Put er There: Tactical Hands-On Action”](https://wcyu.itch.io/put-er-there)
> In the cut-throat world of business, deals are won with strong interpersonal skills. Expressed primarily through the joining together of hands. Will you build the strength to rule industries? Or flop like a fish into the role of fry cook.
## Results
There were 5,800 entries for this game jam. For my first, Im pleased with our ranking. Heres how we stacked up:
**Originality**: #587 (3.742 avg)
**Presentation**: #1125 (3.452 avg)
**Fun**: #3181 (2.355 avg)
**Overall**: #1501 (3.183 avg)
From 31 total ratings. [Full results available here](https://itch.io/jam/gmtk-2021/results).
We got killed on the Fun category, which makes sense. We decided to build a narrative-based game which doesnt have much interaction or gameplay. Our control scheme was not chosen well (we didnt playtest a lot), which hurt our score I imagine. If you cant play the game, then its not fun is it?
I was happy to scoring well in the Presentation and Originality categories. Pixel-art handshake-based games are an under-tapped market!
## Planning & Creation
The game idea we eventually landed on was originally a joke we proposed to each other. We started to lean into it, and then sure enough, we believed we had a game here that fit the theme and would be funny too.
My job was art and in the first few hours I got to my drawing board. Okay, so it isnt a board but a sketchbook.
{% image "https://cdn.wonderfulfrog.com/FirstGameplayConcept.jpg", "Sketch of gameplay concept", "" %}
I originally drew this image after started taking our joke concept seriously. I added some nonsensical business speak and we all seemed to enjoy the humour.
{% image "https://cdn.wonderfulfrog.com/MinigameConcept.jpg", "Sketch of a character with a very stretchy neck", "" %}
At one point we had toyed with requiring constant eye-contact by using the mouse (something I think that would be fun), and then having ridiculously cartoony stretchy necks as they rapidly moved around the screen.
{% image "https://cdn.wonderfulfrog.com/UIConcept.jpg", "Sketch of UI prototype", "" %}
We wanted to implement dialogue responses into the game as a way to engage with the characters — another added element to the game beyond holding a few buttons. We wanted to bind them to the keys youd use to maintain your handshake grip, so answering them would require letting up your grip for a moment.
After I got busy with gameplay concepts and had decided on how we wanted to play the game, I got busy with coming up with our cast of characters.
{% image "https://cdn.wonderfulfrog.com/CharacterDesigns.jpg", "A rogue's gallery of various characters", "" %}
We came up with the stereotypical origin story of the struggling child who has never met their birth father. A natural progression for the main character we thought was the humble origins of a lowly fry cook turned Regional Franchise Manager. With all that in mind, we came up with some “business people” to interact with. In our original plans we had even greater heights for our character to reach: shaking hands with the President, the Pope, negotiating peace treaties with alien races… there was no bar too high.
The dude in the middle ended up closely resembling our McBurger CEO (“Chief McBurger”), but the rest didnt really end up in the game. I really like the skeezy guy in the top-left. I tried to capture his essence later for “Francis McBurger”, who is supposed to be your greaseball middle manager.
Afterward we decided we needed the Mom and Dad characters to play a part. The Mom I went super stereotypical, but didnt end up using it at all in the end (youll see how it diverges later).
{% image "https://cdn.wonderfulfrog.com/MomDesign.jpg", "It's Mom.", "" %}
The Dad I went vaguely European and kinda hipster vibes. Very strong jaw to highlight his traditional masculinity. A chunky moustache that resembles Ron Swansons pushbroom. I knew right away that he should be annoyingly buff and he wants to show it off with tight-fitting shirts.
{% image "https://cdn.wonderfulfrog.com/DadsonDesign.jpg", "It's Dad.", "" %}
I wanted to have a plaid shirt for Dad, but couldnt figure out how to make it work in pixel art. This is the only artifact I have left: its a blown-up sprite that came from a screenshot of my screen-share over Discord.
{% image "https://cdn.wonderfulfrog.com/DadsonPlaid.png", "It's Dad -- in plaid.", "" %}
I doodled for most of the first night then went to bed. First thing the following morning was purchasing a copy of [Aseprite](https://www.aseprite.org) and getting into it. I had my work cut out for me: I needed to do a bunch of characters and backgrounds, and fast.
I stuck with the default palette in Aseprite. I thought giving myself constraints would let my creative side flourish, and it did. We originally planned to have an all human cast, but the palette I had was limited in various skin tones. It did have plenty of bright blues, greens, and reds though.
It had been a long time since Ive made tiny squares into pictures, but I found my footing after a few hours. The first character I made had green skin and kinda looked like [Piccolo from DBZ](https://dragonball.fandom.com/wiki/Piccolo). Naturally I added antennae and the likeness was _impeccable_.
{% image "https://cdn.wonderfulfrog.com/sheet1.png", "It's a bad pixel art drawing of a guy that might or might not be Piccolo.", "" %}
Then I started to play with this concept. What if all the characters are weird aliens? The blue character turned into the CEO (“Chief”), and as a joke I transformed him into [Dodoria](https://dragonball.fandom.com/wiki/Dodoria) (inevitably DBZ makes it into anything Im involved with). Dadson is slowly taking shape (although looks kinda like a fish). The character on the left was supposed to be our middle manager, but I ended up scrapping this for something else later.
A few more hours later I had a new version of Mom created. I thought the original design was kinda boring, and thought it would be funny if Mom was a punk-y rebel (a mix of the side-cut and spike hair). She never ended up “feeling” like a Mom, but it was a fun character to create.
{% image "https://cdn.wonderfulfrog.com/sheet4.png", "Mom is back -- in punk form.", "" %}
Then the middle manager (“Francis”) took shape with a new form. I thought a long-faced ([Squidward](https://en.wikipedia.org/wiki/Squidward_Tentacles)-esque) would be funny, and leaned into it. I wanted to have the slick-back hair from the start because it captures the feeling of a typical greaseball.
{% image "https://cdn.wonderfulfrog.com/sheet5.png", "You just know Francis would never give you weekends off.", "" %}
At this point we had our cast of characters and various facial expressions! Heres a mini-timelapse of the entire spritesheet taking form:
{% image "https://cdn.wonderfulfrog.com/SpritesheetEvolution.gif", "A timelapse of the game's spritesheet.", "" %}
I didnt end up having time for backgrounds and relied on my teammates for that. Photoshop wizardry got us there in the end!
By the time I finished the artwork, it was about 3 or 4am on the 12th, so I opted to sleep for 6-ish hours and come back for the last haul on the 13th. By this point we had the game in a playable state and started testing.
Once we eliminated the majority of the bugs it was submission time. That ended up being a whole ordeal in itself but we got there with 18 minutes to spare. If it wasnt for the 20 minute extension due to itch.io having issues, Im not sure we wouldve made it!
## My experience
We struggled to find a concept that we felt was compelling and fun. I think we came up with a lot of good ideas, but we were hyper-focused on finding something that felt compelling and innovative. In hindsight, I think we wouldve been better off finding something simpler but fun. A concept that can be implemented quickly and then iterated on was a recurring theme I saw in the successful (i.e. top 20) games. We spent far too long on the ideation portion of the project (I estimate somewhere around 7 hours) before we landed on an idea we all liked — the idea which originally started as a joke.
Starting on the wrong foot like that meant we kept to late nights. A sleep-deprived mind is never as sharp as a well-rested one, but here we were. If I could do it again, Id advocate for a normal sleep schedule, and less staying up until 5am.
Our working prototype I dont think arrived until sometime in Saturday. We were all newbies when it came to game development and didnt know what we should be doing. Next time I would aim to have a working game within the first 24 hours. Programmer art at most, but working game mechanics first.
Since we moved along slowly we didnt have a chance to playtest our game until the 11th hour. We decided on a control scheme that had players holding 5 keyboard buttons down at once. Our aim was to try and recreate the tactile sensation of handshaking using fingers on the keyboard. A novel idea, but we failed to realize that 5 keys simultaneously is not a common feature in average consumer keyboards. What ended up happening was that a significant portion of our players could not play the game. They would get stuck in tutorial hell. The lesson here is upload a working build as soon as you can and get others to try it out as soon as possible.
If I could do the art again Id limit myself even further by doing like a 4-bit colour palette. Theres a lot of potential in that space and works well for a simple but unified art style in a game jam. One of my favourite games that Mark Brown highlighted was [Phasing Puller](https://mvln.itch.io/phasing-puller), which had a limited colour scheme. The challenge of a limited colour palette is appealing to me and something I want to explore in future game jams.
## Post-jam
We liked our game enough to continue working on it. We want to deliver what we think the game shouldve been when it was time to submit it.
I took the time to redraw our characters using what I learned during the jam. This time all limits were off and I decided to go my own way with the colour palette. I learned about something called [“hue shifting”](https://www.youtube.com/watch?v=PNtMAxYaGyg) to make better colours, and off I went.
### Dadson
My first stop was Dadson. I thought I could come up with better colours that went with the heavy red vibe but with a touch of purple.
{% image "https://cdn.wonderfulfrog.com/Dadson1.png", "It's Dad -- in (better) colour.", "" %}
From there I started to embellish the details like his annoying muscles and stern eyes. I spent a fair amount of time doing anatomy studies to capture those rippling biceps. In between revising Dadson and other characters, I came back and re-applied what I had learned (again). Youll notice the jump is pretty substantial — look at the shading on his face. I wanted to highlight his jaw and defined facial features.
{% image "https://cdn.wonderfulfrog.com/DadsonFullEvolution.gif", "It's Dad -- in timelapse.", "" %}
I felt like my shading improve substantially as I went on. I feel way more confident when it comes to getting a good shade gradient going.
I also played with talking and blinking sprites in between revisions.
{% image "https://cdn.wonderfulfrog.com/Dadson-talk-blink.gif", "It's Dad -- talking and blinking.", "" %}
{% image "https://cdn.wonderfulfrog.com/DadsonTalkRage4.gif", "It's Dad -- talking and blinking. He's also quite pissed.", "" %}
### Francis
At some point when I was revising Dadson I decided to take a stab at Francis. I wasnt happy with the shading or green colours. I started with a new colour palette for him. I came up with this:
{% image "https://cdn.wonderfulfrog.com/FrancisNew.png", "Still not giving weekends off.", "" %}
The shading isnt quite right. I needed to highlight his gaunt features. I thought it would be funny if he had more sassy body language, so I went with an arms folded pose. This was hard to get right and I spent a fair bit of time searching for various references.
{% image "https://cdn.wonderfulfrog.com/FrancisBodySassy.png", "Sassafrass bod.", "" %}
Once I plugged them together I got into it and finally landed on the right shading.
{% image "https://cdn.wonderfulfrog.com/FrancisNew3.png", "You want time off? You're lucky to even have this job.", "" %}
I had a lot of fun with his facial expressions. I even did talking/blinking animations which I think came out excellent.
{% image "https://cdn.wonderfulfrog.com/FrancisFaces.png", "The many faces of Francis.", "" %}
{% image "https://cdn.wonderfulfrog.com/FrancisTalk.gif", "The way he talks is even sniveling.", "" %}
### Chief
I had an idea of where I wanted to go here. I was looking for a [pre-world domination Jeff Bezos](https://media.npr.org/assets/img/2020/07/27/bezos2_wide-d887a33c25f471b95d41e058ef764ac95d72a56b-s1600-c85.webp), something that suggests a kinda disarming, but looks pretty affable kinda guy.
{% image "https://cdn.wonderfulfrog.com/ChiefNewFace.png", "A new face won't fool me. This guy wants to take over the world.", "" %}
The shading on the sides of his chin look kinda like tiger stripes, which mightve been fun to explore. I later claned up the shading which removed the tiger stripe look. Then I came up with fun facial expressions. I thought it would be interesting to not have Chief react in fear with an extreme grip, but more of a curious interest, something that suggests a “I may have underestimated this guy…” feeling.
{% image "https://cdn.wonderfulfrog.com/ChiefNewFaces2.png", "The many moods of Chief. This is morning mist.", "" %}
Cant forget his new body (which I think sells the whole package).
{% image "https://cdn.wonderfulfrog.com/ChiefNewFull.png", "That ain't no Dad bod.", "" %}
### Mom
This was the character I was dreading the most. It was hard to come up with the character in the first place, but where do I take things from here?
Better yet, how the hell do I make pixel art hair?
I took on the challenge, and started with the face.
{% image "https://cdn.wonderfulfrog.com/MomFaceEvolution.gif", "From punk to party girl. Wait. That's not Mom!", "" %}
I wanted — for lack of a better word — a more “motherly” face, which eventually meant age her up. It was important to me to keep her fun spirit, but stay within “Mom territory”. I struggled to get the skin colour palette right for a long time. At one point I gave up and made her skin yellow, which was super fun (rven though it looked like she had permanent jaundice). That did allow me to see where I was going wrong with my colours though, and I eventually landed on the right look.
I scrapped the spiked hair because I couldnt get it to look right, and I thought it was out of place. In the future though Id like to have a Mom with spiked hair. Very rad.
Moms body sprite challenged me. I had to learn how to shade better to capture the look I wanted (Ill say it — I had no idea how to draw breasts). I initially started with a shoulder-less dress for flair and fun, but I think it looked a little _too fun_, so I brought it back with a nice coral cardigan.
{% image "https://cdn.wonderfulfrog.com/MomFullEvolution.gif", "Now that's the Mom I know.", "" %}
Im proud of how this one came out. It challenged me in many different aspects but came out almost exactly how I wanted it to. I feel like I improved my skills a lot with this one.
Finally, here are some before and after versions of the character sprites.
{% image "https://cdn.wonderfulfrog.com/DadsonBeforeAfter.gif", "Dadson, before and after.", "" %}
{% image "https://cdn.wonderfulfrog.com/ChiefBeforeAfter.gif", "Chief, before and after.", "" %}
{% image "https://cdn.wonderfulfrog.com/FrancisBeforeAfter.gif", "Francis, before and after.", "" %}
{% image "https://cdn.wonderfulfrog.com/MomBeforeAfter.gif", "Mom, before and after.", "" %}
### The rest
I dont have much else to share (yet) with other visuals. Im currently working on drawing new backgrounds for each of our characters. I want to make sure that all our UI elements match the pixel art aesthetic.
Im excited to continue.
## Afterword
I hope that my friends will want to do this again next year. It was a ton of fun to put down the keyboard and take up the mouse (and tablet) to draw and engage my creative muscles.
I want to participate in more of these game jams, especially in an artistic fashion.
With all the work Ive been putting into redrawing all our character art and assets, I feel like Ive learned more about drawing (anatomy, shading, proportions) in these last few weeks than I have my entire life.
If I took one thing away from this experience, its that I have the urge to draw, and I need to let it out.

View file

@ -1,9 +0,0 @@
---
title: Hello world
date: 2017-01-01
categories:
- test
- email
---
This is a test post.

View file

@ -1,9 +0,0 @@
---
title: Hello world again
date: 2017-02-01
categories:
- test
- email
---
This is a test post.

View file

@ -0,0 +1,94 @@
---
title: How this blog works
date: 2019-04-13
excerpt: Everything powering this blog explained.
categories: ["gatsbyjs", "ssg", "react"]
---
---
**Update October 6th, 2020**: I have switched from GatsbyJS to Next. Everything else is more-or-less the same. I will be adding a colophon page eventually.
---
I was recently reading [Jumbo's Privacy Policy][] (and also gave their product a shot - it works well) and felt inspired to explain how everything powering this blog is set up, and why I decided to use the technology I chose. I hope this provides the visitor more transparency into how my site works, and also an educational resource for anyone looking to start a blog of their own.
[jumbo's privacy policy]: https://blog.jumboprivacy.com/privacy-policy.html "Jumbo's Privacy Policy"
## Static site generation
Something like a blog is generally fairly static unless new a post is added, so it seemed overkill to involve a CMS like Wordpress or Drupal. Not to mention all the security updates I'd be responsible for, or paying another company to manage them for me. With that in mind a static site generator seemed like the best choice.
## Why GatsbyJS?
As many projects I work with currently involve using [React][], I thought appropriate to use something like [GatsbyJS][] to make a static site. This would also give me potential skills at work for future projects.
[react]: https://reactjs.org/ "React - A JavaScript library for building user interfaces"
[gatsbyjs]: https://www.gatsbyjs.org/ "GatsbyJS"
I've previously used [Jekyll][] to generate static sites, but with it being Ruby I felt out of my element, and I'm not really interested in learning it right now. It also felt like a lot of overhead to get a site up and running. I opted to try something else this time.
[jekyll]: https://jekyllrb.com/ "Jekyll"
I wasn't interested in coding up something from scratch, and it just so happens that GatsbyJS provides a wealth of [starter-kits][] to work with. I didn't want to code from scratch as I felt I wouldn't learn a lot from creating my own application - I have a general idea of how things should work in React, so I'd rather take a look at something already done and tweak it to my needs. I wouldn't be providing any value to the open-source community either as there are probably plenty of "React blogs" out there already.
[starter-kits]: https://www.gatsbyjs.org/starters/?v=2 "A list of GatsbyJS starter kits"
After seeing Dan Abramov's [Overreacted blog][] was powered by the [`gatsby-starter-blog` starter][] I decided to take a look myself. It had everything I needed - static site generation, lightning fast performance, out-of-the-box RSS, and a pretty good looking theme. After poking around in the repo a bit I figured this was just what I needed.
[overreacted blog]: https://overreacted.io/ "Dan Abramov's Overreacted blog"
[`gatsby-starter-blog` starter]: https://www.gatsbyjs.org/starters/gatsbyjs/gatsby-starter-blog/ "gatsby-starter-blog starter"
### What I ended up tweaking
Besides a few theme bits here and there (read: splash of teal everywhere), I didn't change much. I originally omitted the `<Bio />` component from all pages as I didn't have much to write there, but later added it back in with a link to a Contact page.
Speaking of which, I also added a custom [Contact page][]. This by itself doesn't do anything, but thanks to my webhost it acts as a contact form and accepts submissions (more on that later). GatsbyJS itself doesn't do anything besides provide a static page.
[contact page]: https://devinlumley.me/contact "Link to my contact page"
## Code management - Git & GitHub
I used [Git][] primarily because I am familiar and comfortable with it. That's the long and the short of it. Version control is essential, even for personal projects. If you're not already I'd recommend you get familiar with Git, or at least another alternative. Know how to make branches, revert commits, stash code, and don't be afraid of `git rebase`! Git has some of the best [documentation][] around.
[git]: https://git-scm.com/ "Git homepage"
[documentation]: https://git-scm.com/docs "Git documentation"
I used [GitHub][] as a code repository again because I was most comfortable with it and familiar. I have found it reliable for my use cases, and is generally working when I need it ([GitHub does go down sometimes...][]). There is also a large open-source community there, so it seemed prudent to have my open-source code hosted there.
[github]: https://github.com/ "GitHub"
[github does go down sometimes...]: https://github.blog/2018-10-30-oct21-post-incident-analysis/ "Blog post about GitHub's downtime on October 21st 2018"
## Site hosting - Netlify
This was the piece I struggled with the most. I originally wanted to self-host my site, but that proved to be too tedious for me. I'd rather have everything "just work" rather than be in charge of deployments or security patches. That would also mean I'd have to be in charge of a server and keep on top of it. No thanks.
A friend of mine offered me some space on his server which was very kind of him, and it would've worked fine since this was a static site. This didn't work for me though since it'd require manual deployments. It's a small thing but I don't want to be responsible for managing them. Next!
[GitHub Pages][] seemed like the choice for me. It deployed automatically based on the repo contents, and doesn't require any maintenance. This would be on GitHub's servers, so no security patches. They support custom domains (and with HTTPS). Win win! This worked fine in the beginning, but I noticed something I didn't care for - if I wanted to update my site it required access to my own development machine. Since I chose GatsbyJS which uses React, the static version of the site needs to be transpiled and built - which requires the code repo cloned and set up. Yuck! That's too much work.
[github pages]: https://pages.github.com/ "GitHub Pages"
What I wanted was something that could handle automatic deployments by building the site on their servers, and provide hosting. Enter Netlify!
It offered all of the same features as GitH
ub Pages, but also allowed for building the site on their servers. It monitors the `master` branch (by default), and re-builds the site when it detects changes. This was perfect! Now I could make updates from anywhere and commit them to my repo. Netlify would then deploy the site for me and that's it! Perfect.
Prior to choosing Netlify I reviewed their Terms of Service and Privacy Policy. I felt I could trust them, even as a free service. Since I am on the free plan, they can terminate my account at any time for any reason. I don't think Netlify is in the business of doing that without warning, but it's still something for me to remember. Given that everything has been working perfectly with no issues, I'm looking at becoming a paying customer if that'll guarantee my site won't be suddenly removed (so long as I don't break any rules).
As an additional bonus (I was not aware of it when I chose Netlify) - they offer [form handling][]! This means I can accept form submissions from visitors should I so choose. I decided to throw together a quick form for contacting me if anyone desires. It can even forward submissions to your inbox. Very handy!
[form handling]: https://www.netlify.com/docs/form-handling/ "Details on Netlify's form handling"
## How traffic is managed - Cloudflare
Something like [Cloudflare][] probably seems overkill for a blog (let alone a static site), but I thought why not and give it a shot. They've recently impressed me with their [1.1.1.1 DNS][], and they regularly post about goings-on and act very transparently. I personally value that a lot, and as such I'd like to use their services. Out-of-the-box Cloudflare's DNS services provide lightning-fast resolution time - so my already snappy blog should feel even snappier (Safari users especially - just kidding). Cloudflare also caches my site, so should Netlify go down - Cloudflare can serve a cached version of my site. Since my site is generally pretty static, this is ideal! There's also things like DDoS protection, load balancing, and other fancy tech that my blog (probably) won't need.
[cloudflare]: https://www.cloudflare.com/ "Cloudflare"
[1.1.1.1 dns]: https://one.one.one.one "1.1.1.1 DNS"
## Miscellaneous
For my domain names I use [Namecheap][]. No real reason beyond good prices. They offer lots of configuration options for your domain, although this is likely standard across any domain name provider.
[namecheap]: https://www.namecheap.com "Namecheap"

View file

@ -0,0 +1,89 @@
---
title: "It's Been a While"
date: 2022-10-02T03:07:55.330Z
excerpt: February 2022 - September 2022.
categories: ["gba", "updates", "burnout"]
---
{% image "https://cdn.wonderfulfrog.com/unknown.jpg", "An AI generated image using the prompt 'a frog playing a game boy in watercolor'.", "" %}
Whats happened since my last post?
* I got engaged!
* We bought a condo!
* I finished several projects at work! One of them even launched in the App Store and Play Store!
* I found out I love home projects (I love DIY)!
* I learned a lot about home electrical.
* We painted a lot! Almost the whole place.
* I got a Steam Deck and I love it!
* I got into custom keyboards for a bit. Im kinda off the hobby now. Id still like to make one, but stop there.
* I put together a BBQ all by myself!
* I dyed my hair for the first time.
* I learned how to solder.
* We took a trip to Calgary.
* I got to be a beekeeper for about 15 minutes!
* I cut and re-soldered Hue light strips. That was time-consuming but worth it! They are flexible now.
* I got my Playdate (finally)!
* I got into modding GameBoys.
* I burned out (oops)
* I learned how to install a faucet and drain.
## Engaged
I proposed to my girlfriend after we got the keys to our new place. I tried my best to recreate this moment from our favourite show Parks and Recreation.
## Home Projects
I *love* home projects. The place we bought needs refreshing. I took it upon myself to update all the light fixtures and light switches by myself (just kidding I had help), and I managed to it without us being electrocuted! I did manage to arc electricity once but that's no big deal, right?
I had a minor panic attack after that, but I'm alive and still have a healthy respect for electricity!
I've since:
* Built a shelf from scratch
* Replaced a bathroom faucet
* Fixed a leaky drain trap
* Installed curtains and rods
* Painted nearly every room
I'm certain I'm forgetting something.
## Steam Deck
I was one of the lucky few who managed to preorder right when they opened ordering. I received mine back in March and have been loving it. It's like a capable PC in the palm of your hands. I use it all the time when I'm on the couch.
I can't wait to see where things go from here. I'm eagerly awaiting the dock. I want to use it as a daily driver PC. Here's hoping they release more security features though.
## Soldering and Game Boy modding
I've always wanted to try adding a touch of modern hardware to a Game Boy. I have a lot of nostalgia for the whole handheld line -- I think I played them non-stop until the DS game around.
Game Boy mods took off during the pandemic. There were plenty of options to choose from -- new screens, power boards, sound amps, new shells -- there's likely a mod for everyone.
I am fond of the original Game Boy Advance, the one that doesn't fold shut. I remember many hours playing away underneath the lamps in our living room, because it didn't have a backlight of any sort. They didn't add that until the Game Boy Advance SP.
I got soldering practice in by chopping up my Hue light strips and a DIY audio kit from a shop in town. The Hue lights dont bend (I accidentally broke mine trying to), but with wires in between each strip, I can mount them to the back of my monitor.
I went with Funnyplayings IPS screen, a dehum/dehiss kit, a new shell/buttons, and a glass screen.
The installation process for a new screen couldn't be easier, even for a newbie like me. There are a few solder points and running wire. Getting the dehum/dehiss kit aligned properly was tricky. Im not sure I detect any difference using it either. The rest was re-assembly. Behold!
{% image "https://cdn.wonderfulfrog.com/q5f6yoq.jpg", "A modified Game Boy Advance with a clear shell, teal buttons/trim, and an IPS screen.", "" %}
I decided to try my hand at modding an original Game Boy which was a lot of fun, but 30 year old parts make it challenging. Ill make a separate post someday about my trials and tribulations.
## Burnout
Did I do a number on myself for this one. We had a stressful client at work. They didnt make our lives easy, but I dont believe they were trying to be malicious. When I involve myself in any project, I tend to invest myself fully, even if its to my own detriment.
I neglected to take care of myself. I didnt engage with my usual routines of exercise and creative outlets. I started a habit of wake up -> work -> sleep. Not good.
Both of those factors were the largest contributors to my burnout. Mid-project I crashed hard, and didnt recover. I took a day off and powered through the remainder of the project (which was a lot less stressful by this point). I needed more time though. I took an extended break post-project. Im fortunate that I have the ability to do this. Im grateful to have a partner that will support me when Im down like this.
## Post-burnout
I started therapy again right before my burnout (the timing in a way was fortuitous). Im doing better now. Not recovered, but better.
Ive been exercising more and drawing again. It feels great to engage with those hobbies again, especially regular exercise. I can feel my mood improve once Ive finished a workout. Im planning on participating in Inktober.
Ill make sure my next post is not ~~6~~ 7 months later.

View file

@ -0,0 +1,62 @@
---
title: Lately
date: 2024-01-02T03:36:21.754Z
excerpt: Kept you waiting, huh?
categories: ["updates"]
---
I know it's been a long time since my last post. Over a year in fact. I'd like to do a recap on the major life events, because there's been a lot!
Instead I'd like to talk about other stuff that's happened lately.
I got a new monitor - my first foray into ultra-wide - the [Dell U3423WE](https://www.dell.com/en-ca/shop/dell-ultrasharp-34-curved-usb-c-hub-monitor-u3423we/apd/210-bfou/monitors-monitor-accessories#techspecs_section). It was a steep investment, but I've had my previous monitor for close to 10 years, so it's a worthwhile investment if I can keep it going that long. I really like it because not only is the picture quality amazing (and it's ultra-wide), it also has a built-in KVM switch so I can swap between my MacBook and PC effortlessly. It even swaps over the Ethernet connection if I need it.
I've had it for a few weeks now and it's wonderful. It doubles as my monitor for gaming too, which has been surprisingly immersive. I do feel a little limited at 60hz, but I could not find a monitor that had the same features as the Dell with a higher refresh rate. At the end of the day I prefer the KVM switch and power delivery features over refresh rate.
~~The holidays are coming up fast.~~ (I'm posting this well after Christmas. Oops) This whole year went by insanely fast. It feels like as I get older my perception of time warps. Days bleed into weeks into months. Individual days can drag on, but before I know it the month is over. As always I feel woefully unprepared for the upcoming season... I still have gift shopping to do, dinner to help plan, even get the decorations up... (I did end up doing all of my gift shopping successfully, Christmas dinner went off without a hitch, and even got the decorations up in time)
## Reading
I'm slowly trying to rebuild my reading habit. Since probably... last spring or so, I haven't been reading at all. My favourite time to read is when I'm going to bed, but I was either too tired to even read, or I'd reach for my phone without even thinking about it.
I've been reading [Horus Rising](https://www.blacklibrary.com/the-horus-heresy/novels/horus-rising.html) by Dan Abnett. Always wanted to start reading some Warhammer 40,000 fluff and now I'm finally doing it. This book takes place 10,000 years before the "current time" of the 41st millennium. I'm enjoying Abnett's writing, but disappointed that he doesn't carry on the next few books.
I found this [Psytrance Guide](https://psytranceguide.com) quite engaging. For anyone who enjoys trance music, this is an encyclopedic resource for all sub-genres of trance -- I suppose more specifically psytrance -- and plenty of samples to go with. I got particularly into Goa Trance... something about the fact it came from the 90s to 00s really appealed to me. I used to listen to a lot of electronic music when I was younger. Lots of DJ Tiesto. Darude.
## Watching
We usually have two shows going at any given time. A serious show that typically has a long-running plot, and something silly that we can watch when we need a bit of levity.
The silly show is classic CanCon (Canadian Content) -- [Corner Gas](https://www.cornergas.com/). The show takes place in the fictional town of Dog River, typically surrounding the titular Corner Gas gas station. It's unbashedly Canadian and a delight to watch. It wasn't shy about including then-current politicians either (for better or worse).
Our "serious show" is [Star Trek: Strange New Worlds](https://www.ctv.ca/shows/star-trek-strange-new-worlds). We tried to enjoy Picard, and may try again someday, but we feared for modern Star Trek after watching some of it. Thankfully, Strange New Worlds is here to say that they can still recreate the magic of TOS and TNG. It's so good to see everyone around a table again discussing how they want to approach this week's problem. I love Ethan Peck's Spock. He might be my favourite character of the bunch. I find I resonate most with Vulcans in any show, like T'Ana from Lower Decks. Truly though the whole cast is stellar.
I stumbled upon this short film called [Stalled](https://www.youtube.com/watch?v=7mSH86O2qzA). I honestly forget how I found it... might've been in my recommended feeds. A man enters a bathroom stall... and then sees himself peeking into the stall he's in. It gets much wilder and weirder from there.
Apple produced a short called [The Lost Voice](https://www.youtube.com/watch?v=ra9I0HScTDw&pp=ygUOdGhlIGxvc3Qgdm9pY2U%3D). It demonstrates the power of their newest feature called Personal Voice. It's amazing to me that this technology exists, and is only getting better. And fast, too.
## Playing
![Our mighty castle after many hours of work. I'm quite fond of the ramparts / courtyard area.](/images/2023-11-27-21_41_16-greenshot.png "Our mighty castle after many hours of work. I'm quite fond of the ramparts / courtyard area.")
Like clockwork, my friends and I started up another Valheim server. It's a lot like that meme where people get into Minecraft for 2 weeks. Once a year at least, we will likely start up a new Valheim server.
We've since made it to and through the Mistlands, which was new to us. The biome is tough and unforgiving, but also nails the vibe. We had a lot of fun (and frustration) making our way through abandoned mines and rocky cliffs - all the while struggling to see further than 5 feet in front of us.
We had a ton of fun assembling our sprawling castle, but the game tends to suffer once there are a ton of objects on screen. It became the Castle of 20 FPS for me. We had an epic staircase entrance, our own great hall and kitchen (called The Drooling Lox), a forge/blacksmith, a workshop, a bakery, a farm, and even a chicken coop under the castle ramparts.
I finished Warhammer 40,000: Boltgun this month. It was a fun 40k-themed retro shooter, but overstayed its welcome by a few hours. The level design got confusing sometimes too. Perhaps that was the part of the "charm" of 90s shooters, but they could've left that part in the past.
Still, if you happen to be within the intersection of 40k and retro shooters, you could do worse. The dedicated taunt button made up for a lot. There were so many that I don't know if I ever heard a repeat.
## Listening
My new album habits have been all over the map lately. I hope before the year ends (or shortly thereafter) I can compile a list of my favourite 2023 albums. (editors note: the year did end without a 2023 list being completed. Perhaps the author will eventually write one)
One of recent note is [My Soft Machine](https://album.link/ca/i/1662545566) by Arlo Parks. I heard this one on [Afterdark on CBC](https://www.cbc.ca/listen/live-radio/1-1051-afterdark) (Odario Williams is a household name here). There is a mixture of shoegaze and Grimes, which delivers a moody and expressive form of pop that is very soothing.
I got into The Beaches by hearing their latest single Blame Brett on the radio. I found their new album okay, very listenable but not much that stands out (save for the single). That said, a friend suggested I check out [Late Show](https://album.link/ca/i/1440897088) and that album is killer. A grittier sound with a rougher edge.
A fast favourite is Olivia Rodrigo's [GUTS](https://album.link/ca/i/1694386825) which found favour with the both of us here. [My favourite track Obsessed](https://www.youtube.com/watch?v=PGwzUpVjsZI) didn't even make it to the album - at least the one most of us got - it was released only as part of a RSD exclusive release. Hopefully it makes its way to a deluxe or reissue someday.
Another friend of mine told me about Abstract Orchestra, which I can't believe I'm only just discovering now. They've done a few instrumental jazzy versions of MF DOOM's releases, but my favourite has to be [their take on J Dilla's Donuts](https://album.link/ca/i/1238569093). It's the perfect album to throw on when I don't know what I want to listen to, or even as engaging background music. I love Donuts, but there's something special about Dilla too!

View file

@ -0,0 +1,351 @@
---
title: My vim setup
draft: false
date: 2021-04-18T20:24:10.177Z
excerpt: Everybody does it differently.
categories: ["vim", "development"]
---
{% image "https://cdn.wonderfulfrog.com/vimsetup.png", "A screenshot of my `vim` setup in action.", "" %}
I thought it would be fun to talk about my `vim` configuration. Everyone does it differently, and I wanted to toss my hat into the ring.
I dont claim to have the best setup, but it works great for JavaScript (React, node) and TypeScript development.
I keep my `.vimrc` and other related files up to date on [GitHub](https://github.com/devinwl/dotfiles).
This has been a helpful exercise in evaluating what my configuration options do, and which ones I can get rid of. After a while these things tend to accumulate a lot of cruft.
I pledge to keep this page up to date as I add (or remove) changes to it.
## nvim
I use [Neovim](https://neovim.io) (`nvim`) instead of `vim` because it has support for fancier plugins, and it handles asynchronous actions better than `vim`, in my experience.
Plus it has “neo” in the name, and thats plain cool.
## Basics
This section captures what I would consider to be the basics of vim: clipboard behaviour, backspace behaviour, spellchecking, all that jazz.
```
set nocompatible
```
This tells vim to use `vim` settings rather than `vi`. To be honest I dont full understand what this does, but see it enough in other `.vimrc` I decided to include it.
```
set number
set relativenumber
```
This enables line numbers. Youre gonna need those if youre developin. `relativenumber` shows relative line numbers from the currently highlighted line.
```
set title
```
Sets the terminal windows title to be the file currently being edited (I think).
```
set scrolloff=2
```
This changes the scroll offset, or in other words when `vim` decides to start scrolling. In my case, once I am on the 2nd to last line of my screen and I want to scroll down (or up), it will scroll the screen upwards and move to the next line.
```
set backspace=indent,eol,start
```
This makes the BACKSPACE key behave in a sane way while using `vim`. I dont know why this behaviour isnt default — probably some holdover from the “old days”.
```
set nowrap
```
No linewrapping allowed. I switch around this setting from time to time.
```
set noerrorbells
set belloff=all
```
I dont see how playing a sound when there is an error is helpful — like when I try to scroll past the end or beginning of the file. Turn that off.
```
set hlsearch
```
This will highlight all search matches on any open buffers, like when using `/` to search for text.
```
set incsearch
```
As I start typing when using `/`, it will highlight things as they are matched (before pressing ENTER).
```
set signcolumn=yes
```
This enables the sign column in `vim`, which can be used by plugins to highlight lines with errors, warnings, and so on.
```
set hidden
```
`vim` by default will throw away buffers when you switch away from them. This stops that behaviour. A reasonable expectation with any modern text editor.
```
set nobackup
set nowritebackup
```
`vim` likes to create backup files (adding `~` to the extension) and I dont like them. I use version control software and Im content with that.
```
set cmdheight=2
```
This gives me more breathing room in the command window.
```
set shortmess+=c
```
Shortens messages from `vim`.
```
set path=$PWD/**
```
When running searches in `vim`, set the project directory to where I currently am.
```
set showmode
```
Shows which mode `vim` is currently in on the command window. Im forgetful.
```
set ignorecase
set smartcase
```
Makes search patterns case-insensitive. Except when the search pattern contains uppercase characters (`smartcase`).
```
set clipboard=unnamed
```
Removes `vim`s separate clipboard, and “shares” it between `vim` and the outside world (your computer).
```
set cursorline
```
Highlights the line the cursor is currently on. Makes it easier for me to find the cursor.
## Tabs and spaces
```
set tabstop=2
set shiftwidth=2
set softtabstop=2
set expandtab
set shiftround
set smarttab
set smartindent
set autoindent
set copyindent
```
I dont care if we use tabs or spaces anymore, Ill use what the project at hand wants.
Tab uses spaces, and each tab is 2 spaces.
If Im at a certain indentation level, then these options ensure I maintain it and it always a multiple of `shiftwidth`.
## Spellchecking
```
autocmd FileType gitcommit setlocal spell
autocmd FileType markdown,md,mdx setlocal spell
```
When I am writing a `git` commit, or inside a Markdown file I want to add spellchecking.
## Forcing myself to learn hjkl
```
noremap <Up> <NOP>
noremap <Down> <NOP>
noremap <Left> <NOP>
noremap <Right> <NOP>
inoremap <Down> <NOP>
inoremap <Left> <NOP>
inoremap <Right> <NOP>
inoremap <Up> <NOP>
```
`hjkl` is essential way to move around in `vim`. You dont have to move your hands from home row. Its hard to learn at first, but if you disable the arrow keys, you start to learn pretty quick.
## netrw
```
let g:netrw_banner = 0
```
This hides the giant help banner when using `netrw` (`:E`). I use `netrw` to move around sometimes, when CTRL + P doesnt cut it.
## Split movement
```
nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
nnoremap <C-H> <C-W><C-H>
```
I use splits a lot and this makes it easier to move around between them.
## Plugins
```
call plug#begin('~/.vim/plugged')
```
I use [vim-plug](https://github.com/junegunn/vim-plug) to manage all my plugins.
### auto-pairs
Adds pairs of quotes, brackets, etc. If I type `”`, itll add a closing quote. Works with `()` and `{}`.
```
let g:AutoPairsMultilineClose = 0
```
This disables the default behaviour of trying to close any pair even if it was on another line. When writing code blocks `{}`, it would jump to the next closing `}` if I was inside another code block. It might make sense to someone, but for me it just annoyed me. Thankfully it can be switched off!
### vim-surround
Took me a while to get, but once I did I cant imagine life without it. Wrap words/quotes/code blocks/whatever in more quotes or characters. A mnemonic from my coworker:
```
(y)olo (s)urround (i)n (w)ord/(“)quote/etc
```
### vim-commentary
I use `gc` all the time. Comment entire blocks or lines super quick. Easy to remember.
### vim-polyglot
Syntax highlighting for various languages. I use JavaScript (and adjacent stuff like JSON) 99% of the time, but nice to have for shell scripts, Ruby, and so on.
### fzf
One day I might learn how to use `vimgrep`, but for now I have `fzf`. Requires extra binaries. I thought I needed NERDTree to move around, but `fzf` has got my back.
```
nnoremap <silent> <c-p> :GFiles --cached --others --exclude-standard<cr>
```
This makes CTRL + P filter files that are part of the projects `.gitignore` by default.
### vim-fugitive
Ive got this installed but dont use it much. It adds `git` support right in `vim`, but I almost always have a second tab open in my terminal explicitly for `git` operations.
### vim-rhubarb
Like the above, it offers a neat feature, but I keep forgetting to use it. It will create a link directly to the line youre on in `vim`.
### coc.nvim
I bet this one will garner controversy. Getting intelligent autocomplete in `vim` was never something it was intended to do, but `coc` in combination with `nvim` gets us there. For it to function “just so” requires extra configuration, which Ill highlight below.
```
let g:coc_global_extensions = [
\ 'coc-tsserver',
\ 'coc-json',
\ ]
```
This runs these `coc` plugins all the time. Since Im always mucking about in JavaScript, this isnt a big deal. Its smart enough to know when Im *not* in JavaScript and to not complain, which works for me.
```
if isdirectory('./node_modules') && isdirectory('./node_modules/prettier')
let g:coc_global_extensions += ['coc-prettier']
endif
if isdirectory('./node_modules') && isdirectory('./node_modules/eslint')
let g:coc_global_extensions += ['coc-eslint']
endif
```
This tells `coc` to load up `eslint` and `prettier` extensions if Im using them in my project. Super handy to automatically load up `prettier` only when I need it.
```
nnoremap <silent> K :call CocAction('doHover')<CR>
```
Rarely do I need to trigger `coc` on its own, but this is for the odd time. Nice for when looking up variable types (using TypeScript), or method arguments.
```
command! -nargs=0 Prettier :CocCommand prettier.formatFile
```
Shortcut to run `prettier` using `:Prettier`. I dont use this often since I have it configured to run on save.
### coc-settings.json
```
"suggest.noselect": false,
```
This option pre-selects the first option in the autocomplete list.
```
"eslint.autoFixOnSave": true,
"eslint.filetypes": ["javascript", "javascriptreact", "typescript", "typescriptreact"],
```
This runs `eslint` on save, and ensures that the files in `filetypes` run `eslint`.
```
“coc.preferences.formatOnSaveFiletypes": ["markdown", "mdx", "javascript", "javascriptreact", "typescript", "typescriptreact"],
```
This runs `prettier` for me on these filetypes when saving. Somehow this doesnt interfere with `eslint`, which is magic to me.
```
"coc.preferences.jumpCommand": "vsplit"
```
When using commands like `gd` (goto definition), it will open in a new `:vsplit` by default.
## Theme
I saved the best for last.
I currently use the [Rigel](https://rigel.netlify.app) theme.
```
set statusline=%f%=%m%r%h%w%y[%04l,%04v]
```
This sets up my status line to show me what I need to know:
* The file Im editing
* A marker if the file has been modified but not saved
* What language mode Im in
* What line Im on
* What column Im on
```
highlight Comment cterm=italic gui=italic
```
My font of choice is [Operator Mono](https://www.typography.com/fonts/operator/overview), and it has beautiful cursive italics that I want to see. Anything comments in the file (or certain keywords) are converted into *italics*.

View file

@ -0,0 +1,116 @@
---
title: My vinyl journey
date: 2018-12-09
excerpt: A cautionary tale of getting into collecting records.
categories: ["music", "vinyl", "collecting"]
---
**Update 04/16/2019**: See the updates section at the bottom for further discussion.
Im here to tell you vinyl collecting isnt all its cracked up to be. Like many hobbies, it takes time and dedication to truly appreciate. Im here to offer a cautionary tale to anyone looking to start the hobby. Its important to make sure you want to do it for the right reasons - something I didnt do when I started.
{% image "https://cdn.wonderfulfrog.com/mmb.jpg", "Record cover of Mogwai's Mr. Beast" %}
At some point in 2008 I decided to begin my vinyl journey. After hearing about records making a quiet comeback from my friend I thought I might see what this was all about on a whim. After perusing the local music stores then-growing record collection I came out with [Mogwai's Mr. Beast](https://itunes.apple.com/ca/album/mr-beast/794356427). When I returned home I asked my parents for their old record player. My Mom returned my request with surprise.
> "You want what?"
>
> "Your old record player. You still have it right?"
>
> "Yes but... Why?"
>
> "Records are coming back!"
>
> "Huh."
Off to the garage we went. Beneath a pile of old DVDs and other relics of another age - there it was. With the player was a giant container of records. I lugged the two with anticipation and enthusiasm upstairs. The record player was Dual's CS 728Q.
{% image "https://cdn.wonderfulfrog.com/dual.png", "Poster for the Dual CS 728Q record player" %}
I didn't have a sound system at the time - so my setup was a messy daisy-chain of cords that eventually lead to a pair a cheap computer speakers. I excitedly rummaged through my parents collection looking for one album in particular. With a pleased grin I found it. I was looking for [Pink Floyd's Wish You Were Here](https://itunes.apple.com/ca/album/wish-you-were-here/1065973975).
{% image "https://cdn.wonderfulfrog.com/wywh.png", "Record cover of Pink Floyd's Wish You Were Here" %}
I admired the gatefold LP for some time before placing it on the platter. Pressing the start button the record started turning. The tone arm swung over and locked into place, hovering over the record. Gently it lowered itself until it landed with a subtle popping sound. It was at this point I realized what a phono preamp was - and without having one means there is very little sound. Undeterred, I cranked the volume on my tinny little speakers. It wasn't much but I could hear it! David Gilmour's wailing guitar pumping through the needle to my speakers. It was a magical moment for me. I listened to the whole album on those horrible speakers, completely enthralled in the medium.
After listening to Wish You Were Here I quickly switched to [Dark Side of the Moon](https://itunes.apple.com/ca/album/the-dark-side-of-the-moon/1065973699). It was somewhere around this point that I decided that I want to get into collecting vinyl.
## The collection grows
As with most things I get interested in, I launched into this new hobby with reckless abandon. If there was a record of a new album coming out - Id buy it. One record I think of often is [Dinosaur Jr.s Farm](https://itunes.apple.com/ca/album/farm/543340712) - the striking furry green creatures towering over the skyscrapers. It was unique and colourful, and I can admit years later I bought it strictly for the artwork. The thrill of opening a gatefold and getting lost in the artwork - this was something you didnt get with digital or CD copies. It became a ritual in its own like when I would read the manuals with video games before playing them. With every new record I would sit and admire the artwork first - taking in all the work put into the cover.
With my new desire to acquire any and all kinds of vinyl I wandered into shops and would eat up anything that looked remotely interesting. About a year into the hobby I started to notice that more and more of my favourite artists were releasing brand new pressings of their upcoming albums. The writing was on the wall - the record companies were taking notice of the resurgence of vinyl and were preparing to go in swinging. I didnt think much of it at the time of course.
{% image "https://cdn.wonderfulfrog.com/djf.png", "Record cover of Dinosaur Jr.'s Farm" %}
It was also around this time I started to notice more of the minor annoyances with vinyl - chiefly the maintenance aspect. By virtue of the way the medium works, anything like dust, dirt, or small particles are the enemy. They cause pops and cracks, or worse skips. My brand new records started showing these symptoms after a few plays. Again though I falsely convinced myself this was all part of the charm and just needed to be accepted; the worrying never stopped though. I would often have to convince myself the record would be fine and to just play it. For the large part I was still enjoying the hobby, but starting to realize some of the downsides that came with it.
## Animal Collective
During this time I can recall a particularly vivid memory relating to a record purchase. In 2009 Animal Collective released their breakout album [Merriweather Post Pavilion](https://itunes.apple.com/ca/album/merriweather-post-pavilion/300683110). I remember picking it up at the store after months of anticipation (and listening to low-quality album leaks). After the usual ritual of gatefold admiration, I put the record on the platter and hit start. With headphones hooked up, I put on my pair of Sony MDRV6s and laid down on the bed. I closed my eyes. Soon the opening notes of In the Flowers began. I lost myself on a sonic odyssey - interrupted only by the necessity to flip the record over. It was one point in my life where I recall listening to an album front to back without _any_ distractions. Despite my slow-growing annoyance with vinyl as a hobby, this is one memory I always look on fondly.
{% image "https://cdn.wonderfulfrog.com/acmpp.jpg", "Record cover of Animal Collective's Merriweather Post Pavilion" %}
## Annoyance turns to irritation
Sooner or later I started to question my dedication to this hobby. At the start I convinced myself that everything sounded _better_ - the usual “it sounds warmer” type of stuff. Eventually though I began to question that. Did it really sound all that better? A lot of my records had plenty of pops, hisses and crackling. Is this really what everyone was talking about? Not to mention the maintenance required to keep a record in good shape. Things like dust covers and cleaning tools.
And then the physical act of having to manage a record while it plays. It sounds like a small thing, but after so long it starts to get aggravating. Sometimes you just want to listen to music without any fiddling.
I started to do some research on this whole “warmer sound” thing. I came to the conclusion its largely nonsense, or in other words its mostly placebo. I can imagine vinyl might sound great if youve got the sound system to support it - but whats doing the job here? Is it the vinyl or the thousands invested into audio equipment? Im leaning towards the latter.
Then - finally - the realization set in.
## The realization
I got into vinyl for all the wrong reasons. I wasnt ready to accept the work that comes with the hobby. I can admit I got sucked into the hype and hipster nature of the hobby when it first started to see a resurgence. I wanted to hear that “warmer sound”, and convinced myself I was.
I was certain everything I was hearing would sound so much better than on my computer or CD player - but failed to realize that if you only have a budget audio setup, odds are you wont hear any difference. Not to mention youll hear more of the pops, hisses, etc.
I didnt understand that maintenance plays a larger role than I realized. Its not enough to buy the record and play it. It needs to be cared for and cant be mistreated. If not cared for properly, imperfections are introduced into the sound. Its also possible to permanently add this imperfections. This might be appealing to some, but I realized I just want to listen to music without any of the added effort.
It doesnt sound like much, but having to be responsible for a record while it plays can be tiring. For me it all came back to just wanting to listen to music with little effort. I want to focus on what Im doing, whether thats relaxing or working or whatever.
Records tend to eat up space quickly. After putting a stop to my collecting Im somewhere around 100-200 records. They take up a wall of my apartment, and weight _a lot_. They are not easy to move around if its necessary. They have to be stored properly (upright in other words), otherwise you risk warping the record.
- To really appreciate vinyl you have to be fully dedicated to it
- Odds are you won't hear a difference until you invest in your audio setup. Anything you hear is your own perception.
- Might be enough for some but I wanted more empirical evidence. Not enough to go by a feel for me, especially what vinyl needs
- Understand that owning records means you need to take care of them. They are prone to failures. Easy to form a permanent skip/pop/hiss in the record
- The act of changing a record can be tedious especially when you just want to listen to music
- They take up huge amounts of space and require adequate storage (or risk ruining the record due to warping)
- They're heavy!
## So you want to get into vinyl
Collecting vinyl is a lot of fun, but I think demands more than most think about. In summary:
- Effort
- Changing a record
- Moving your collection
- Needle placement (if turntable is not automatic)
- Care
- Maintaining record quality with sleeves
- Proper storage
- Keeping environment as dust and particulate free as possible
- Cleaning older records
- Cost
- Now that the hobby is a lot bigger expect to pay higher costs
- Newer turntables are not cheap
- Monetary cost of storage units, cleaning, etc
As of this writing the vinyl resurgence is in full swing and the record companies noticed. Record Store Day used to be an exciting time for new, rare releases and other hard-to-find items. It has become a fully commercialized day full of nothing but marketing. Expect to have to really hunt the records now as scalpers scoop them up and try to make a quick buck on eBay.
The records your parents used to listen to have all been bought up by collectors years ago - the only copies left are going to be expensive. Youll really have to dig for the diamonds in the rough.
New releases can go for anywhere around $30-$40 (CAD), and are often pressed into double (or even triple) albums due to space on the record itself. If youre lucky you can find it locally, otherwise look forward to even higher costs due to shipping (and possibly scarcity).
Having said all this - the hobby can be really fun. Not much can compare to the physical act of playing a record and listening to it. It unfortunately took me some financial and time investment to find out it wasnt for me. Hopefully you can decide for yourself first before you dive straight in.
As of now Im sitting on a sizeable record collection. Ive invested a lot of time into it and find it hard to part with it despite the fact I havent listened to a single one in probably years now. Holding some records brings me happiness and joy, which tells me that I shouldnt part with them. One day Ill thin out the collection and reduce it to albums I know I truly love and adore. For now though, its a great conversation starter!
## Update - April 16th 2019
I recently watched a video that does a better job at explaining the technical parts of how vinyl works and dives into the "does vinyl actually sound better" with more detail than I provided. I recommend watching it regardless of what side you're on when it comes to vinyl.
[The Truth About Vinyl - Vinyl vs. Digital](https://www.youtube.com/watch?v=lzRvSWPZQYk)

View file

@ -0,0 +1,118 @@
---
title: Professional development in 2018
date: 2019-01-07
excerpt: A look back at what happened in 2018 - professionally. For me.
categories: ["personal", "career", "growth", "react"]
---
In 2018 I received the opportunity to develop my professional skills and further my career development. Id like to highlight some developments and things I wish to focus on and improve in the next year.
## Web development
### React
This year I was a developer on a project that utilized the latest version (16) of [React](https://reactjs.org/). I had previously used version 14 in another project that acted as a digital asset management portal. This project was also a DAM that used [Cantemo](https://www.cantemo.com/) as the backend.
During this project I learned about the proper architecture for [class/presentational components](https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0). In the beginning I would often mix the two, which lead to class -> presentational -> class -> … hierarchies. This lead to a lot of confusion with the other developers in the team. Eventually we were able to start cleaning this up and simplifying our component architecture.
### RxJS
RxJS is incredibly useful for managing asynchronous events. Until learning about the framework I had been relying on unwieldy promise-chains to ensure my async events were handled properly. Now with something as simple as an `Observable` we can inform the UI when an event has finished. It sounds so simple it makes me wonder why it took me so long to find out about it. RxJS has also been combined with Redux to form one of my favourite libraries [redux-observable](https://redux-observable.js.org/). This makes connecting Redux actions to reducers a snap.
### Angular 5
In the first half of the year I became the lead developer for a small digital asset management project using Angular as the front-end and a [HATEOAS](https://en.wikipedia.org/wiki/HATEOAS) API layer. I was responsible for the front-end team. I had support from some of the other intermediate and junior developers as they had more experience with the framework. The last time I used Angular was back in the AngularJS (or 1.0) days. The framework has come a long way since then. Our basic architecture involved using Services for all data communication between the front-end and back-end, and Components for managing presentational layers.
### Functional programming - pipe, compose, etc
After being introduced to the [Ramda](https://ramdajs.com/) framework I quickly became more familiar with the functional programming language side of things. After some initial friction to understand how `compose()` worked (and later `pipe()`) I really started to like functional programming.
This was also a good opportunity to pick up [Reselect](https://github.com/reduxjs/reselect) which offers a clean and reusable way to access state slices from Redux.
### Redux
Redux proved to be a great help for management of the application state in all projects I worked on in 2018. The action/reducer logic took some time to grasp for the junior developers, but I felt confident in my understanding and was able to get them up to speed quickly. There were some hurdles in reducer composition as I quickly learned reducers can grow in scope and size very quickly. I found the `combineReducers` function very handy for breaking up reducers into smaller chunks.
### Styled Components
When I first saw this library my immediate reaction was revulsion. “Inline style - in my project? No way!” This attitude harkened back to older times when it was considered poor form to use inline style in web development. The important difference here is that yes - there is inline style - but that inline style is coming from something closer to a stylesheet. Once I made that critical realization I was right on board with Styled Components.
Another critical realization was that with Styled Components - there is no more need for adding classes to toggle style. Styled Components can read any props passed to it - which allows for [conditional styling](https://www.styled-components.com/docs/basics#adapting-based-on-props). This cleans up the JSX for any components and makes it far easier to read and manage.
### TypeScript
Having strong typing and intelligent autocomplete was invaluable in the Angular 5 project. It lead to far fewer headaches between developers and made code cleaner and easier to understand. `Interface`s allow for simple model definitions for complex objects and fewer mysteries (wait - which properties are on this `Object`?)
## Professional development
### Lead a team of developers
This did eventually lead to an issue with the sheer number of services and components as I quickly learned that _abstraction for the sake of abstraction is a dangerous idea_. I decided early on that I wanted to have as much abstraction as possible with components and services being small. What I believe I failed to realize was that this eventually leads to an enormous number of files and scattered project structure. When it came time to onboard new developers the process was a nightmare. It was difficult to understand our architecture and where relevant code was located.
I was trying to future-proof the code before I was even sure there would _be_ a future for the code. Its okay to over-engineer when time permits, but sometimes the solution with flaws (code duplication, large components, etc) is okay. If its easily understood by other developers and works consistently, then its okay. [Duplication is far cheaper than the wrong abstraction](https://www.sandimetz.com/blog/2016/1/20/the-wrong-abstraction). I believe in my case I made the wrong abstraction - or more specifically - for the wrong reasons.
As it turned out the project _was_ eventually canned - so my future-proofing provided little benefit and ended up slowing the team down in the beginning days, and especially when we tried to introduce new developers to help ease the load on the front-end team.
Technical debt can always be resolved later _if_ it is recorded and stored somewhere. There are always opportunities to resolve any tech debt later when developers revisit components or functions.
### Initiated a code review practice amongst team
Early on in a React project I noticed that a lot of our tickets came back from QA fairly frequently. Admittedly we had been doing very little internal testing and review of our own, so I decided to kickstart an internal code review for every ticket that was going out to the client. The results were noticeable very quickly as tickets stopped returning so frequently. Some tickets were still coming back though, so we went a step further and had each developer review the code, test the code locally, and review all ticket acceptance criteria against the code branch. This so far has proven to be a huge boon for the team as the clients QA can take upwards of a week before we hear back. Previously we would have tickets returned on Friday - the day before the sprint ended - and it would be a mad dash to fix things up. Typically tickets are returned now for minor details and can be resolved quickly by the team.
This seems like a such a “well, duh - of course you should be doing that” deal, but until we saw the results it was difficult to implement. Once the project lead was seeing less churn on tickets it was quickly encouraged and actively enforced.
### Hosted a successful hackathon
During an internal staff meeting, we decided to have our own version of an [“airing of grievances”](http://festivusweb.com/festivus-airing-of-grievances.php) - except that was more about grievances with the company and nothing to do with individuals (cause that would be heckin rude). One of the biggest gripes was that the office did not tend to work all together on the same project. Its the nature of a consulting firm - people end up on different projects and can be pretty isolated. Weve tried to integrate staff together more, but during this very same meeting we also found out that wasnt inclusive enough. Something that the majority of staff were interested in though was a hackathon.
The idea was to get the office to put their pencils down and work on something fun for a day, and maybe even learn something that can be provide benefits for the company. What the company ended up going with is our own take on [Battlesnake](https://www.battlesnake.io/). We ran our own internal tournament and pitted teams against each other. It turned out to be a lot of fun and spurred a lot of developers working together. Im hoping we can do another one again soon. There are also plans to send the office to the official competition!
## Lessons I learned
### Abstraction for the sake of abstraction is dangerous and should be avoided
I mentioned this in another section but I learned slowly (and painfully) that abstraction for the sake of it does not help anybody. It lead to an unwieldy codebase and longer development time when it came time to update or revise existing features. Generally speaking it is perfectly acceptable to go with a "flawed solution”. Having a generalized and abstracted solution does not automatically equal a better solution. That said, abstraction for the sake of it on _personal projects_ can be a great learning experience as it allows for a developer to flex their muscles in a low-stakes environment.
### Documentation is extremely valuable
Im not just referring to comments in code, but more specifically in creating paper trails. Ive lost count how many times Ive had to dig up old tickets and code branches for bug fixes we applied weeks, months, or years ago. By documenting myself every step of the way Im creating a paper trail that I can follow down the road. Ive also found that leaving more detailed commits makes trawling the codebase easier. `git log —grep=<text> —no-merges` is my new favorite command.
### I need to spend more time reviewing requirements before starting work
This caught me a lot especially in a later project. I think I have a nasty tendency to read the requirements and jump right into work thinking Ive understood everything and thought of any upcoming problems. I can count the number of times I was actually right here - meaning I was often wrong. My goal in the upcoming year is to stop and spend more time on requirements and spend more time with analysis.
### I need to be aware of how I conduct myself in the office
During my annual review something that was brought to my attention was my general demeanour when speaking about clients. I would often joke with my coworkers - what I would call “office talk” - mostly negatively. What I failed to realize though was that some of those coworkers might look up to me and respect me and take my opinion to heart. People were paying attention to what I was saying and if the only thing coming out of my mouth was negative, then it might lead to derision toward clients. It made total sense to me as I know I would do this often. Ive since then tried my best to “clean up my act” and try to act and conduct myself more positively. Im also trying to foster more positive communication between our office and remote teams that we work with on projects.
### Maintaining coding style guides helps enforce certain architectural decisions
One of the biggest challenges Ive run into working with other teams is maintaining a consistent code style and keeping architecture in line with designs. In a recent project we integrated [ESLint](https://github.com/eslint/eslint) with our own editors. It takes some time to add everything into the config, but once it was done it was a noted improvement for us. There was a consistent style and things like `console.log` s were easily spotted and removed. The downside however was that our team was the only one using it. Another lesson learned.
## Things I want to focus on in 2019
2019 should be an exciting year for web development. [TypeScript is on the rise](https://hackernoon.com/major-programming-trends-to-prepare-for-in-2019-169987cc75f4) , and React has some awesome [new features on the way](https://reactjs.org/blog/2018/11/27/react-16-roadmap.html). Here are a few things I want to focus on in 2019 - web dev or professionally.
### React Suspense
The [demo of Suspense from Dan Abramov](https://www.youtube.com/watch?v=nLF0n9SACd4) was super cool. In React projects Ive worked on so far - Ive had to define my own “Loader” components to wrap my UI components. That component also can only typically handle loading until its told to go away - whereas Suspense looks to work smartly with lazy loading and eventually asynchronous requests.
I admittedly dont fully grasp the magic behind Suspense yet, but from what Ive seen it looks extremely useful - especially combined with [React.lazy](https://reactjs.org/docs/code-splitting.html#reactlazy).
### GraphQL
My first real experience with GraphQL was actually with [GatsbyJS](https://www.gatsbyjs.org/) - whats powering this blog. Following some of the early tutorials Im absolutely loving how everything works. A problem I encounter often in my profession is “data normalization” or “massaging data” between the clients database and the front-end. GraphQL seems to solve this issue nicely with platform-independent query language for an API. Being able to perform your own “joins” however you like - on the fly! - now thats really cool.
Theres some [great tutorials available on their site](https://graphql.org/learn/). They all update live which makes it easy to play with.
### More team lead experience
After the first Angular project early in the year I didnt get a chance to really lead a team. I really enjoyed my short time and I hope in 2019 I will get more opportunities to do that. Im looking to do more team _leadership_ and not _management_ - at least right now. Well see where the year takes me.
### Pursuing more personal projects
When I first started my career back in 2012 I quickly stopped working on web development projects in my spare time. I would find that after getting home from a long day of work - the last thing I want to look at is more lines of code. As my responsibilities have moved further away from development and more leadership, Ive found myself looking more to personal coding projects. The first big step in that direction was this blog. I started with Jekyll and eventually used it as an excuse to learn [GatsbyJS](https://www.gatsbyjs.org/). It was a lot of fun! It also had a nice side effect of causing me to write a bit more. Im treating this blog almost like a pseudo-journal. Ive written down some ideas for small projects I can try to explore in the coming year that use some upcoming React features for example.
### Positivity
On the heels of my office conduct Im going to try and generally be more positive in my professional - but also personal life. I think the world has enough negativity in it already, so Im going to try and have a more positive outlook on things. Be more interested in new things. Be excited for the unknown.

View file

@ -0,0 +1,48 @@
---
title: Professional development in 2019
date: 2020-01-23
excerpt: A look back at what happened in 2019 - professionally. For me.
categories: ["career", "growth", "personal", "react", "swift"]
---
{% image "https://cdn.wonderfulfrog.com/dude-pretending-to-read.png", "A dude sitting on a chair with legs crossed casually pretending to read but seemingly looking off into the distance with a confident smile, or perhaps to look at a neat dog. From Open Doodles.", "" %}
2019 was a slow year for professional development. As things started to stagnate near the end of the year, I sensed it was time to move on and look for a new job. Before we talk about 2019, I wanted to revisit the goals from 2018:
- React Suspense
- GraphQL
- Team lead experience
- Pursuing personal projects
- Positivity
React Suspense is still (as of this writing) in development. I did some short exploration on what was currently available, but nothing further. I don't see Suspense being finished this year, so I won't worry about it.
I didn't end up learning any GraphQL in 2019 beyond a few brief explorations with tutorial content. Since 2020 has started, I've finally acquired that experience and deep learning. I'll be continuing to learn and acquire GraphQL experience. It feels good being able to look at the queries powering my blog and actually understanding them. A key concept was the idea of cursor-based pagination, also known as [Connections](https://blog.apollographql.com/explaining-graphql-connections-c48b7c3d6976).
Team lead experience didn't end up happening. Since getting a new job, I've sidelined that aspiration until I've gained more experience at my new workplace.
I did not explore any personal projects in 2019 beyond my personal blog. Hot on the heels of the new year, I started playing around with Swift -- Swift UI and UIKit.
I am still continually aware of my attitude and try my best to remain positive. This is not so difficult in the workplace, but outside of work it can be difficult given the current climate.
So what _did_ happen in 2019?
- Continued to gain React experience
- Became unhappy with my current work environment
- Got a new job
Professionally speaking, 2019 was one of my weakest years. I did not acquire nearly as many skills nor experience that I was searching for. I ended up stagnating. I got more experience with React and the entire ecosystem. I feel at this point it's a well-worn (but polished) tool on my belt, ready to go at a moment's notice. I've developed my own opinions on architecture, but continue to evaluate new options. The future for React looks bright, so I feel like my time invested into the ecosystem was worth it.
Besides React though, I did not develop anything else really new. Since writing last year's review, I worked on the same project all year. I continued to struggle and be at odds with the other development team who was in charge. We felt ignored and undermined repeatedly. I like to think I can collaborate with any team, and try to make sure everyone is happy. I could not figure out a system that worked with them. It lead to a stressful environment, with fevered calls from project managers demanding to know why XYZ feature is not done, or why the app is suddenly broken. I didn't know what to do, and due to the nature of our partnership we couldn't take the reigns. We were at their mercy.
I met with my managers and let them know my frustrations, but it seemed like nothing could be done. On a whim, I applied to a new agency in town thinking maybe something might come of it. Turns out, I wanted them and they wanted me. It was a match made in heaven!
Thankfully, I landed a new job at a company that feels amazing to work for. I am constantly surrounded by some very clever people who have a genuine passion for what they do. I have only been here for a short three months so far, but I can say the difference is night and day. I'm really excited to see where things go from here. There are many opportunities on the horizon that I can see.
## Stuff in 2020
I think 2020 should be a great year for professional development. I see the opportunity to really flex my dev muscles and get into the weeds. I'd like to focus on one thing and that's **iOS development**.
I've managed to make two projects so far using a combination of Swift tutorials and plenty of StackOverflow searching. Based the recommendations of my coworkers, I focused on learning UIKit and not Swift UI. I plan on going into more detail in a future post.
This year, I'd like to create a really dead-simple app and get it published onto the App Store. I have a few ideas in mind for what I can do.

View file

@ -0,0 +1,76 @@
---
title: Recently
date: 2021-02-01
excerpt: January 2021.
categories: ["recently"]
---
Its been a rough month. Ive been struggling. I feel tired all the time and dont know why. Smarter heads than me suggest its stress — with world events being what they are.
I try to treat myself and keep up with exercising and going easy on myself when I dont end up accomplishing much.
Its hard not to be hard on yourself.
These posts have turned into more of a “here are interesting articles I read this month” and less “whats going on lately” because Im not doing much.
## [Vox: The word “Orwellian” has lost all meaning][orwellian]
With the removal of Donald Trump from Twitter, the term “Orwellian” has been tossed around a lot. Its lost all meaning. Its become the sloppy, lazy rhetoric that Orwell himself rallied against.
A private company is within their rights to determine who can and cannot use their service, especially when they are using it to incite riots.
## [Sound of Colleagues][soc]
The office vibe is something Ive missed in the past few months. Keyboards clattering away, idle chit-chat, people coming and going. Its a comfortable background noise that strangely can help me focus. This handy little noisemaker helps bring back that office feeling with plenty of options to fiddle with.
## [Whitehouse.gov chooses WordPress, again][whwp]
For any web development readers, here is a great breakdown into what powers the White Houses site. Its WordPress, if you hadnt guessed.
Id like to know how they decided to go with WordPress. My assumption wouldve been that WordPress represents too much of a security risk and theyd go with something static (Hugo, Next, etc). Then again, WordPress is battle-tested — been around for over a decade. Plus for anyone doing content it makes sense to have something simple and straightforward like the WordPress dashboard.
At least it wasnt Drupal.
## [Rage Against the Machine x The Ummah Chroma Killing In Thy Name][kitn]
Ill let the video speak for itself. White rage is one of the biggest issues facing Canada and the US. The [reading list near the end of the film][ucrl] is a starting point I will be participating in.
Fuck white supremacy.
## [The Atlantic: The Pandemic Has Erased Entire Categories of Friendship][friendship]
This article was a “whoa” moment for me. Having not realized what was missing until its pointed out to you. As I imagine for everyone, my own social circle has reduced to my partner, and on occasion (appropriate social distance) visiting my parents. I found something missing and it has to be these weak/moderate tie relationships.
## [Vox: Why you should care about data privacy even if you have “nothing to hide”][dataprivacy]
I struggle to explain why Im passionate about privacy to those who have “nothing to hide”. A common refrain I hear is “if you dont like it, dont use the service” which means nothing when these companies gobble up enough data to construct “shadow profiles” on those who dont use their services.
Worse is the ability for these services to learn everything about an individual and control the information they see. All under the guise of driving “user engagement”, which may be all they are trying to do... but it ends up with people stuck in echo chambers. When these echo chambers are full of misinformation, its no wonder we are seeing radicalized individuals.
## [The Washington Post: I checked Apples new privacy nutrition labels. Many were false.][privacylabels]
Im disappointed to see Apple enforcing these arbitrarily. I shouldnt be surprised though with how arbitrarily they enforce other guidelines like human-interface guidelines or submission rules.
The idea of “privacy nutrition labels” is a big deal in making data harvesting transparent and easy to understand. I hope that Apple decides to follow their own values and be strict with apps following their privacy labels.
## [Vox: Doug Emhoff, wife guy extraordinaire][emhoff]
Im excited to see how the first “second gentleman” plays out. Itll be refreshing, and more importantly, bring attention to the fact that men can play a supporting role that traditionally women fill. He will be scaling his own career back to more support his wifes.
Itll be important for men (read: white men) to see a man in this role.
Love this quote:
> I may be the first Second Gentleman, but I know I wont be the last.
Thats all for this month. Learn from me and take it easy. Be nice to yourself and others. ✌️
[orwellian]: https://www.vox.com/culture/22233197/orwellian-definition-george-orwell-1984-politics-english-language-josh-hawley-donald-trump-jr
[soc]: https://soundofcolleagues.com/
[whwp]: https://pagely.com/blog/whitehouse-gov-chooses-wordpress-again/
[kitn]: https://m.youtube.com/watch?v=5lnTvwdoQFw
[ucrl]: https://www.theummahchroma.com
[friendship]: https://www.theatlantic.com/health/archive/2021/01/pandemic-goodbye-casual-friends/617839/
[dataprivacy]: https://www.vox.com/recode/22250897/facebook-data-privacy-collection-algorithms-extremism
[privacylabels]: https://www.washingtonpost.com/technology/2021/01/29/apple-privacy-nutrition-label/
[emhoff]: https://www.vox.com/22242368/doug-emhoff-kamala-harris-husband-vice-president

View file

@ -0,0 +1,42 @@
---
title: Recently
date: 2022-02-01T23:49:47.158Z
excerpt: February 2022.
categories: ["recently"]
---
{% image "https://cdn.wonderfulfrog.com/lastfm-feb-2022.jpeg", "My most-played music last month.", "" %}
I'd like to get back into the habit of writing these. I'll start one month late for some reason, though.
I've been following the Rogan/Young beef. It's been interesting seeing the fallout of Neil Young pulling his music from the service. Other artists have followed suit like Joni Mitchell. [Brené Brown stopped uploading new podcasts temporarily](https://twitter.com/BreneBrown/status/1487535996782710786).
As a result Spotify has [updated their misinformation policy](https://newsroom.spotify.com/2022-01-30/spotifys-platform-rules-and-approach-to-covid-19/), but has yet to reveal how they plan to enforce it going forward. I'll be watching.
## Reading
I'm working on [Immune by Philipp Dettmer](https://sites.prh.com/immune). It's an educational book and an asset in today's current climate. There is a lot of talk surrounding our immune system and COVID-19, and I wanted to improve my understanding of our human immune system.
They get into sufficient detail to pique my interest, but summarize everything into a condensed paragraph as a recap. It help me retain the dense amount information.
There are plenty of violent metaphors used to explain how the immune system works. It's apt -- the cellular level of the human body is an inherently violent place. Cells will kill each other ruthlessly and commit suicide. What's troubling me is how they've chosen to explain these metaphors. For example, a teacher shooting a student in the face because they failed their exam (which out of context sounds abhorrent, but is used to explain how the thymus works and how ruthless it is). In my opinion they could've chosen something more tasteful for a North American audience. I understand why they chose the school metaphor -- they referred to the thymus as "Murder University". But still...
Again, the immune system is a violent thing, and it's hard to explain without resorting to violent metaphors. I would've appreciated a less visceral choice of words, like "the teacher destroys the student". There has to be a way to keep things tasteful.
## Playing
TODO: YouTube: vFhzUdVs9-E
I started [The Witcher 3](https://store.steampowered.com/app/292030/The_Witcher_3_Wild_Hunt/) last month. I'm determined to get through it and find out what the fuss is about. It's got its hooks in me good. It suffers from classic open-world tropes like an overabundance of quests, too many locations to visit, weird janky physics, and plenty of other funky bugs.
The game is good. Great, even. I think you need to take some of it on the chin though. Sometimes textures won't load and you'll be talking to an invisible-armed dwarf. Sometimes a Level 20 Lesher will spawn in your starting area.
The world feels like your on-brand grimy fantasy world. I enjoy that every choice the game asks of you is never clear-cut. Someone is going to win out and someone will be hurt by your major choices. Even playing as a "good guy" means you'll have to step on some toes eventually.
## Listening
Revisiting albums I missed last year, because I missed a lot.
I can't believe I haven't talked about the new Failure ([Wild Type Droid](http://failureband.com)). I do believe it's their best yet. The one-two punch of "Water With Hands" into "Headstand" is legendary.
I've missed so much of Ladyhawke's discography since her debut album in 2008, but her newest [Time Flies](https://ladyhawkeau.lnk.to/TimeFliesWE) is wonderful. My favourite track is "[Think About You](https://www.youtube.com/watch?v=VOXgGm0qm3k)".

View file

@ -0,0 +1,92 @@
---
title: Recently
date: 2021-03-05
excerpt: February 2021.
categories: ["recently", "valheim"]
---
{% image "https://cdn.wonderfulfrog.com/forestsunrise.png", "A screenshot of Valheim with a sunrise coming through a thick, dense forest." , "" %}
Like Christmas, I am always shocked at how fast February goes by, even though its the same length (except Leap Years) every year.
Heres the latest.
## Listening
[DOOM - BORN LIKE THIS. (Repress) by MF DOOM](https://mfdoom.bandcamp.com/album/doom-born-like-this-repress-2)
News of MF DOOMs passing right at the tail end of 2020 was the sucker punch nobody needed. The man was prolific as hell, and my paltry library of his material is only my beginning.
I recently picked up Born Like This and NehruvianDoom from Bandcamp, and a compilation of all Special Herbs Vol 0-9. With the latter collection, its fun spotting the beats that would appear later on his albums. Its amazing how they stand out on their own, missing his lyrics and flow but feeling great in of themselves.
[Axiom Verge Soundtrack by Thomas Happ](https://axiomverge.bandcamp.com/album/axiom-verge-soundtrack)
I played Axiom Verge back in 2018 (and Im super excited for the sequel), but the soundtrack has been a mainstay in my rotation since.
I find myself regularly humming “Trace Awakens” either in my head or out loud.
[Black Aura My Sun by Deserta](https://deserta.bandcamp.com/album/black-aura-my-sun)
Im always on the hunt for new shoegaze and Deserta did not disappoint. I found them trawling through the “shoegaze” tag on Bandcamp under new releases.
Its sprawling, dark, moody, and thats the way I like my shoegaze. Its easy to close your eyes and let your mind wander to the stars.
As I write this post, it's technically Bandcamp Friday. I'll have some more to share next month!
## Reading
Ive been playing a heck of a lot of [Valheim](https://www.valheimgame.com) (more on that later), and its got me finally reading up on Viking history and the mythology. My book of choice is [Children of Ash and Elm](https://www.basicbooks.com/titles/neil-price/children-of-ash-and-elm/9780465096985/) The game does a surprisingly great job at being true to the “source material”, if this one book is anything to go by.
The author has an engaging writing style that keeps you reading. There is just enough of the mythology sprinkled into otherwise factual information. It strikes a nice balance.
The Vikings themselves did not keep much on their own history, but instead we rely on second-hand encounters from researchers, scholars, or travellers. Christian scholars in particular tended to look at Vikings as godless pagans, which makes it important to process their research with a careful eye.
An article I read this month which really resonated (and had a bit of a reckoning) is "[Men Have No Friends and Women Bear the Burden](https://www.harpersbazaar.com/culture/features/a27259689/toxic-masculinity-male-friendships-emotional-labor-men-rely-on-women/)".
Women are encouraged to foster platonic, intimate relationships with other friends (typically other women). Men however do not (usually) possess these relationships. Bonds between male friends are weaker and tend to ignore feelings and emotions. Men depend on the women in their lives as our emotional dumping ground -- a place to go when we need to confront our emotional problems.
It's not normalized to express these feelings around other men. We are taught instead to conceal these feelings because they are not "manly" (toxic masculinity, in other words). This mindset leaves men without the tools to deal with these emotions ourselves, so we instead depend on women to help us. Showing weakness is a shameful in traditional definitions of masculinity, which further discourages being vulnerable.
I know from personal experience that I am guilty of this. I don't have close bonds with most of my male friends, and we almost never talk about our emotions, or what we're feeling, let alone how to deal with them. I will turn to the women in my life instead: my partner, my Mom, and female friends.
At the crux of this piece I think is a challenge to what it means to be masculine. Men need to change the script and ask ourselves what it means for us?
## Watching
We recently discovered that with the Star acquisition from Disney that Futurama has showed up on the service. That warrants a full rewatch.
Heres my favorite bit ever:
TODO: YouTube: pjsQ-seC31U
## Playing
{% image "https://cdn.wonderfulfrog.com/moonrise.png", "My mighty viking with the moon as a backdrop." , "" %}
Without a doubt (and likely to my partners dismay) the majority of my time the past few weeks has been in [Valheim](https://www.valheimgame.com). I initially felt like the survival aspects of the game werent for me, having had enough of it in Minecraft. What sucked me right in though was the sheer quality of this Early Access title (can you believe its a team of **five people**?). The aesthetic of retro, low-poly models combined with a modern lightning engine creates this nostalgic but fresh vibe that fits in a game of its kind.
Progressing in the game is done by destroying one of the five major bosses, with each one dropping a new key item that allows one to find new resources, or open doors into previously locked crypts. You enter the “Bronze Age”, then the “Iron Age”, and before long youll have your own blast furnace. Its possible to build historically accurate longhouses, or go the other direction and build giant castles, or sprawling treehouse villages. The game is fine with you doing whatever strikes your fancy.
A group of us (6) decided to get the game on a Friday evening, and before I knew it it was 1AM. Then it was 1AM Saturday. It kept going on like this. I lived and breathed the game. It sucks you in quick if youre not careful.
{% image "https://cdn.wonderfulfrog.com/newheim.png", "My cozy viking home." , "" %}
Here are some screenshots of our journey to take down The Elder, the second boss of the game. His summoning location was far away from our little home of “Newheim” (which replaced our old village, now referred to as “Oldheim”), across the great sea. We built our first boat capable of holding more than one or two people and set sail.
{% image "https://cdn.wonderfulfrog.com/sailingtoelder.png", "A group of six hapless Vikings sailing their way to slay an unknown evil." , "" %}
{% image "https://cdn.wonderfulfrog.com/elderdistance.png", "Our map showing the distance from our main base to The Elder." , "" %}
After a days journey (which is about 30 minutes), we broke shore at what we called “Elderheim” (we have an incredibly clever naming scheme, if you havent noticed). We hastily built a small house and a portal to allow us to return to the island if we died (which we did, multiple times).
{% image "https://cdn.wonderfulfrog.com/elderheim.png", "A screenshot of Valheim showing a hastily built shelter in the pouring rain." , "" %}
With our base deployed and our bellies full of food, we set out to summon The Elder and take them out. I dont have any shots of us during the fight, but you can rest assured it was a delightful, flailing mess. We all died at least once or twice. We ran out of arrows mid fight and had to speedily drop them on the ground to share.
In the end though, we triumphed!
{% image "https://cdn.wonderfulfrog.com/elderdown.png", "The corpse of the mighty Elder!" , "" %}
Weve since taken down the third boss and are on our way to number four. The Mountain has proved to be a tough biome to survive, and if our brief excursion into the Plains has been any indication — the fun is only just beginning.
{% image "https://cdn.wonderfulfrog.com/stones.png", "The severed head of The Elder attached to a sacrificial stone altar. With this we gain strange new magical powers." , "" %}

View file

@ -0,0 +1,85 @@
---
title: Recently
draft: false
date: 2021-04-01T19:03:49.841Z
excerpt: March 2021.
categories: ["recently", "valheim"]
---
{% image "https://cdn.wonderfulfrog.com/coolbow.png", "My Valheim character under the moon." %}
Right up until the end of the month things were looking up pandemic-wise, but our province announced that more restrictions are going to be in place for the next few weeks. Cases have been trending upward for the younger age groups (20-30s). It felt like up until this announcement that were was a chance that summer might mean a vaccine for people in my age range. Not to mention that AstraZeneca has been suspended recently in Canada. Back to waiting.
## Reading
Recently finished [“How to Take Smart Notes” by Sönke Ahrens](https://takesmartnotes.com). Jury is still out on this one. Ive taken an interest in Personal Knowledge Management and saw this book come up often in recommendations. I dont grasp the benefits on Zettelkasten yet. My hope and dream is to retain the information I absorb when I read non-fiction books. I tend to forget what I learned weeks later.
I think Im going to have to re-read it again and take some notes (which seems to be what the book is advocating for).
[Accessibility is critical](https://gomakethings.com/theres-no-such-thing-as-a-website-or-web-app-that-doesnt-need-to-be-accessible/). I try to make my website accessible to anyone and regularly check my scores. When I ended up working with a company in the USA (which **requires** accessibility features to be implemented), I discovered how easy it was for web developers to make things work across a variety of browsers. It requires — realistically — a small amount of effort from designers and developers to check color contrasts, title attributes, and things of that nature. The bare minimum goes a long way.
[Mark Kozelek was accused (again) of sexual misconduct](https://pitchfork.com/news/sun-kil-moon-mark-kozelek-accused-of-sexual-misconduct-by-seven-more-women/#intcid=_pitchfork-right-rail_9b8b489f-0542-4dd7-9707-aef436fa1e42_popular4-1). I hadnt caught this story when the accusations were first coming out against Mark Kozelek, but these recent accusations are damning. They all follow a pattern of behaviour that does not differ between stories. I had a lot of respect for Kozelek and his music. Its disappointing to learn that someone you respected turns out to be a piece of shit.
## Playing
Been keeping busy on the games front lately! The Switch is a wonderful console. Its easy to sneak in a few minutes in between meetings at work, or if Im loafing on the couch with my partner.
### Valheim
Our group finished what I would consider to be the “campaign” of the game: the 5 bosses. We wrapped up about mid-March, slaying the mighty Yalguth after a long, hard battle. It was a lot of fun because it required coordination and resource management.
![Our heroes stand triumphant and display their grisly trophy!](/images/theend.png "Our heroes stand triumphant and display their grisly trophy!")
Since we finished all the bosses, weve fallen off the game. Without the next boss to work toward, the game became resource-gathering and base-building. A fun activity, but does not appeal to everyone. Without my friends playing, I dont find myself all that interested.
For $20 though, some of the best times Ive had with a game in recent memory. In terms of pure hours-played to dollars-spent, it was an incredible value (over 100 hours).
There are updates planned for Valheim that could be pretty exciting (like the Mistlands, Firelands, and Deep North being implemented), which might pull our group back in.
![The summoning area for Yagluth, the final boss. He wants totems from his Fuling followers.](/images/yagluthsummon.png "The summoning area for Yagluth, the final boss. He wants totems from his Fuling followers.")
### Stardew Valley
Ive had this game on my radar for years and was craving a “couch game”. Perfect fit. The game is pure chill distilled into retro pixel perfection. It reminds me of Harvest Moon on the SNES (which I loved), but better in every way.
Cordova Farm is on its second year and is ready to bring in the big bucks after an action-packed winter.
### DOOM Eternal
Sometimes a guy just has to shoot some demons in the face, ya know?
Having loved DOOM (2016) and its incredible soundtrack, DOOM Eternal was an easy pickup. I was waiting for the mood to strike me, and after listening to the DOOM 2016 soundtrack for god-knows-how-many-times-now, I knew I was ready to put on my Praetor suit and kill some mother-effin demons.
Eternal takes everything that made the 2016 version great and builds on it. The core loop is still there, but its been refined to a sparkly sheen.
My least favourite part has been the emphasis on story and lore, which if Doomguy was anything to go by in the last game, I couldnt care less. Its nice to see them expand on some lore, but I liked it better when it was buried in a codex entry and kept the gameplay tight and continuous.
A fast favourite of mine though was adding fast travel near the end of missions. Id always catch a secret I missed on the map in DOOM 2016, and Eternal is no exception. Now I can go back after completing all the combat objects and take my time exploring.
I must mention that Mick Gordon has returned to champion the soundtrack again, and is no slouch in this game either. Im always cranking the volume to really get into the mood.
## Listening
[GRINDSTONE (Original Game Soundtrack) by Sam Webster](https://bysamuel.bandcamp.com/album/grindstone-original-game-soundtrack)
I played Grindstone when it first came out on Apple Arcade. I didnt think much of it (or the soundtrack) and moved on. I stumbled upon the soundtrack again last month and couldnt believe what I missed. Its a blend of hip-hop grooves and smooth synths.
[Ghost Tapes #10 by GOD IS AN ASTRONAUT](https://godisanastronaut.com/album/ghost-tapes-10)
God is an Astronaut are post-rock staples spanning back to the early aughts. Their music evokes feelings Im finding hard to put into words, but I always get enveloped by their sound.
[LEATHER TEETH by Carpenter Brut](https://carpenterbrut.bandcamp.com/album/leather-teeth)
Youd probably recognize the hard-edged synthwave if you played Hotline Miami. The game featured a few of their tracks from an earlier album called Trilogy. Leather Teeth continues to channel that raw energy into heart-pumping darkwave.
Tomorrow (April 2nd) is Bandcamp Friday!!
## Watching
TODO: YouTube: VrKW58MS12g
It never ceases to amaze me how far Mark Rober will go to be annoying to package thieves and scammers. The interesting part of this video is showing how deep the rabbit hole goes with these scammer ring. Rober teamed up with other YouTubers to show all of this — I found Jim Brownings video incredibly interesting because it showed me a fascinating part of the ring: the money mule.
TODO: YouTube: Xvjjpzyiig4
See everyone next month. ✌️

View file

@ -0,0 +1,18 @@
---
title: Recently
date: 2020-05-18
excerpt: May 2020.
categories: ["recently"]
---
A bad habit of mine is not updating my site with some new writing. After reading Tom MacWright's "[How to blog](https://macwright.org/2019/02/06/how-to-blog.html)" (and the rest of his fantastic site), I decided that I like the idea of writing on a schedule. So, I'm going to do my darnedest to makes sure I write something at least once a month. I like the title of "Recently", so I'm opting to steal that.
Living during a pandemic has been weird. My mood swings pretty rampantly -- one day I'll be happy, and the next exhausted for seemingly no reason. I'm doing my best to escape with whatever I can. Usually my hobbies.
I've been playing [Animal Crossing](https://animal-crossing.com/new-horizons/) a ton. The game couldn't have come at a better time, honestly. Nothing goes wrong in your deserted island. It's been a fantastic creative outlet for myself. I'm losing hours consistently reshaping my island to what my idyllic paradise would be (in this case, it's mostly a forest). Popping by to say hello to all of my villagers. Stopping to admire my myriad flower gardens. It's a great way to unwind after a long day.
I've been really enjoying [Bknapp's Nostalgic Nintendo Beats 2](https://bknapp.bandcamp.com/album/nostalgic-nintendo-beats-2) lately. Lo-fi hip-hop is on heavy rotations these days as it helps me regain focus and keeps me in a lighter mood. From Tom MacWright's blog, I discovered [Wolf Parade](https://wolfparade.bandcamp.com/), and by playing Grand Theft Auto V ([currently free on the Epic Games Store](https://www.epicgames.com/store/en-US/product/grand-theft-auto-v/home)), I found Bass Drum of Death's [Crawling After You](https://bassdrumofdeath.bandcamp.com/track/crawling-after-you).
I just finished reading Neil deGrasse Tyson's [Astrophysics for People in a Hurry](https://www.goodreads.com/book/show/32191710-astrophysics-for-people-in-a-hurry). I found it hard to follow at times. It felt like it couldn't decide if it wanted to be a beginner's book, or an advanced look. I have more than a passing fancy when it comes to astrophysics, but sometimes the pure information-dump was just too much. There was a lot of process, and some of it I just plain didn't get. I would still push Stephen Hawking's [A Brief History of Time](https://www.goodreads.com/book/show/3869.A_Brief_History_of_Time) as a primer into the world of astrophysics (and everything in-between). Still, I feel like it serves as a great catalyst for more learning.
My partner has been encouraging me to take more photos lately. I'm trying my best to take at least one photo a day, but it's been difficult when I start to get too critical of what I'm taking a photo of. It feels like there's only so much to photograph in your neighborhood, but I'm trying to not stress too much about it and just press the shutter button. It's been really exciting to reconnect with photography again.

View file

@ -0,0 +1,65 @@
---
title: Recently
draft: false
date: 2021-05-01T19:03:49.841Z
excerpt: April 2021.
categories: ["recently"]
---
{% image "https://cdn.wonderfulfrog.com/mistergotcha.png", "The Nib's 'Mister Gotcha' comic" %}
[Mister Gotcha][mistergotcha] is prime material when I complain about Apple and its ecosystem. Theres lots to complain about, but Im a heavy user. Out of the options available, they are (in my opinion) the best choice as a consumer. That doesnt mean they are perfect, though. Apple can (and should) do better.
## Reading
Have you been feeling “blah” lately? Youre not depressed or overly anxious, but something is off? Me too, and Im glad I found a way to identify that feeling properly (rather than “blah”). Its called [languishing][languishing].
Ive been reading a lot of articles and posts on Apple and the App Store: Apple vs. Epic, antitrust lawsuits, Apple crushing competitors. Theres a lot to unpack, and I plan to in another post. For now though I want to leave you with MKBHDs excellent “Apple vs. The Paradox of Choice”. This is what happens when we put too much trust into one company without any checks and balances.
TODO YouTube: qNAo0UdYF6g
You know the state of the video game industry is in a bad spot when [Sony is patenting an AI that will play video games for you][sonyai]. The intent appears to be innocent at first — it will learn how you play and assist you — but the larger implication I feel is that it will play games _for you_, as in you sit there and watch and itll do everything. Because games are too grind-y these days, right? Even though it was the game industry itself that got us to this point. The relentless pursuit of maximizing retention and engagement propels into games that are playing themselves.
I wish more games would aim for small but tight experiences: something you can finish in a weekend, but leaves a lasting impression because of its quality and polish. Games dont _need_ to last 120 hours anymore (and they never did).
## Watching
Im an absolute sucker for all things astronomy, including the Space Race and the Moon, so I feel like [For All Mankind][forallmankind] was written for me. The alternative history aspect has been fun, and I dont want to spoil too much here, but its fun to think about what couldve been if the Space Race never ended.
The first season is all aces and 100% binge-worthy. With an hour for each episode, there is plenty of room for the show to breathe and settle into a good story. Things move along at a good pace.
The second season is not as great. They zeroed into the family drama aspect of the show, which I understand (we need you to care about these characters so when they are in high-stakes situations it feels important), but there has been considerably less “space time” for a show that I thought was all about our continuation of space exploration. They started exploring interesting concepts like militarizing the moon, but then theres a lot of “now lets see whats going on on Earth” and its like “no wait, theres cool shit happening on the Moon why are you doing this?”
I recommend though for anyone with Apple TV+.
TODO YouTube: ijKAtzQY1wc
I discovered [Yasuke][yasuke] as a new album from Flying Lotus (which is _phenomenal_), but the premise and protagonist sold me on it. Ive only seen one episode, but Im hungry for more.
## Playing
I was in love with Hades when it originally came out ([see my thoughts here][hades]), and happily finished a successful run through the Underworld. After that, I mustve moved on — but that was a big mistake. Theres more to see and do, and every single run is just as (or more) fun as the last.
I got the “true ending”, and now Im working on the epilogue content. Its incredible to me how much voice-acted content there is. I swear every time I return to the House of Hades Im hearing something new.
## Listening
Playing Hades at any point guarantees that I will be listening to the soundtrack, on repeat, for a while. No contest — this is Darren Korbs best work.
Royal Bloods new album _Typhoons_ came out yesterday, and the singles have been so good. I scored a limited transparent blue vinyl version which looks super rad. Im miffed it didnt come with a download code though, come on record labels! Dont be so cheap!
Thanks to [my pal doing a video on Beastie Boys][rankvideo], I decided I needed to get to know them better. They feel like another one of those bands that everyone else grew up with, but I missed the boat on. Another example for me would be Red Hot Chilli Peppers.
Im starting my journey with Hot Sauce Committee Pt. 2! The first thing that surprised me was the sheer depth of the musicality on this record. I didnt expect it to be so dynamic! And the music video for [Make Some Noise][makesomenoise] is a true whos who of Hollywood celebrities.
Ill leave you with this excellent tweet (of an image, from Tumblr — how meta) that [explains NFTs][nfts] for the stupid things that they are.
[mistergotcha]: https://thenib.com/mister-gotcha/
[languishing]: https://www.nytimes.com/2021/04/19/well/mind/covid-mental-health-languishing.html
[sonyai]: https://www.pcgamer.com/sony-patents-an-ai-bot-that-will-play-your-games-for-you/
[forallmankind]: https://tv.apple.com/ca/show/for-all-mankind/umc.cmc.6wsi780sz5tdbqcf11k76mkp7
[yasuke]: https://www.netflix.com/title/80990863?s=i&trkid=0
[hades]: ./posts/recently-11-2020#hades
[rankvideo]: https://www.youtube.com/watch?v=Y5sDNZjlfKM
[makesomenoise]: https://www.youtube.com/watch?v=WdgLMslbDuY
[nfts]: https://mobile.twitter.com/charlottejee/status/1387722711766650884

View file

@ -0,0 +1,18 @@
---
title: Recently
date: 2020-06-02
excerpt: June 2020.
categories: ["recently"]
---
{% image "https://cdn.wonderfulfrog.com/wolfgang.jpg", "Wolfgang reading a book in an idyllic forest paradise", "" %}
My pet project these last few weeks has been my [CHIP-8 interpreter](https://github.com/devinwl/chip-8). I've been following tutorials around the internet to try and figure things out. I've learned a lot more than I expected and even rekindled a bit of interest in hardware. I took a course in university that used an ARM processor for learning assembly language.
I've also been working through the [Just JavaScript](https://justjavascript.com/) course. This has been really interesting to me because I've found that my mental model up until then was inaccurate. It's going to take some effort to re-learn some things I've really ingrained into my thought process, but I'll do it.
I went through one of my closets that's full of hobby stuff to try and reorganize my "studio space" a little. I ended up having to dig out my old Warhammer collection. My old paints are long dried up and beyond saving, but the models are fine. I'd be lying if holding the miniatures in my hand didn't rekindle the spark. I want to paint again. So now I'm looking at picking up some Vallejo paints from a local hobby store. I'm going to try and steer clear of any GW stuff (except for the minis). Oh, and I did manage to tidy up my space too. It'll be all ready for a little painting station.
Music has had some heavy rotation this week with [Bass Drum of Death's self-titled album](https://bassdrumofdeath.bandcamp.com/album/bass-drum-of-death-2). Been album-hopping with [MASTER BOOT RECORD](https://masterbootrecord.bandcamp.com/music). Somehow I never took a deep dive with The White Stripes, so now that's happening. I even bought some CDs so I could rip them. I subscribe to Apple Music but has been increasingly un-interested with their offerings besides the cloud support. None of their For You material has really succeeded or resonated with me. Actually, the "Essentials" playlists are convenient jumping-on points for most artists. Music discovery is something I love but have a hard time engaging with. It's such a subjective thing and I find the algorithmic approach no good.
That's all for now. The world is burning. Stay safe everyone.

View file

@ -0,0 +1,52 @@
---
title: Recently
draft: false
date: 2021-06-01T19:03:49.841Z
excerpt: May 2021.
categories: ["recently"]
---
{% image "https://cdn.wonderfulfrog.com/coffee_time_with_dexter.jpg", "Miitopia: where you end up in cafe enjoying your coffee, with Dexter from Dexter's Lab being your barista.", "" %}
I got vaccinated this month. Canadas rollout has been slower than say the US, but come vaccine day I was in and out within 20 minutes (thats including my 15 minute waiting period). There are rumours that the 8 week waiting period between doses might be shortened.
On the one hand, Im excited. The potential for things to “go back to normal”, as I imagine everyone is thinking. We can go into shops without having to worry how many people are inside. No more following confusing arrows on the floor. No more masks (although Id like there to be a normalization of mask-wearing in North America for the common cold or the flu).
But on the other hand, Im pretty anxious about going back to normal. Weve spent the last year and a half away from each other. Weve become familiar with fewer people around us. Seeing other people nearby can be a source of anxiety and worry. Should we be rushing to get back to normal? There is a controlled plan to _gradually_ move things back to the “before times”, but can we count on everyone to follow the rules dutifully? There is a sense of low-feeling anxiety about the whole thing for me.
Im sure Im not alone in this, but since the pandemic started Ive gained weight. The Pandemic Pounds, as it were. With summer coming up, more people are going to want to visit the beach, go swimming, all that. Im feeling self-conscious. I dont feel ready, yet. I want to work on myself.
Personally speaking Im going to need my own “rollout plan” for how things are going to move back to normal.
## Watching
Finished watching season 2 of For All Mankind. The finale was spectacular. I understand now why all the family drama was emphasized. There wouldnt be the same impact without caring about the characters.
Im excited for season 3, but I imagine were at least 2 years off from that now.
On an otherwise comfy Friday evening, my partner and I decided to finally watch the four TNG Star Trek movies (7-10). I was impressed with the large scope of the movie budget. Everything looked and felt much more grandiose. It was like watching extra long episodes of the show itself (which I think others might find a negative) — but personally it channels the feeling of the show so well they dont feel out of place at all. Except for maybe the 7th movies penchant for extremely moody, dark lightning.
## Playing
Ive finished the majority of Super Mario 3D World. I made it all the way to “World Crown”, which houses the ultimate platforming challenge (as far as the game is concerned at least). Its challenging indeed (Ive lost count of how many lives Ive chewed through… at least 200 at this point). Its one of Nintendos better “traditional” Mario titles, although with Odyssey kicking around its not even close which one would make the better Switch title (its Odyssey). That being said though, the Bowsers Fury add-on is a fun romp. Its like they smooshed 3D World and Odyssey together and ran with it. Its a little weird, but it works out. I wish the framerate were better though. It can really chug sometimes.
I started playing Catherine: Full Body, which is the remaster of the original game. There are supposedly plenty of extras, but having never played the original Im not aware of whats new. The puzzle aspect is confusing at first, but once it clicks its engaging. It channels the feelings of Tetris, like when you get into the _zone_. Im eager for more.
My game _du jour_ is undoubtedly Miitopia. The Switch version is a port of the 3DS version released many a year ago. Its like an homage to the JRPGs of old, but without all the grinding and crushing difficulty. In fact the game has largely been a breeze so far, but Im fine with that. It makes a perfect couch game. Something to play when you want to take it easy.
What really grabbed me about it was the ability to plonk your own Miis into the game. Ive taken the opportunity to put my friends in as our main party so far, and inject whatever famous person I feel like making (fictional or otherwise). Thanks to the games fantastic writing, you can end up with some hilarious moments that wouldnt otherwise happen without such creative freedom.
{% image "https://cdn.wonderfulfrog.com/miitopia_newman.jpg", "My character in Miitopia exclaiming 'Newman!' when the Dark Lord suddenly appears.", "" %}
The Dark Lord in my game is none other than Newman himself, eternal enemy to Jerry Seinfeld. My Carefree Guide, the guy you meet at the very start, is Kramer (who is pretty good pals with Newman), and this moment made me laugh out loud:
<video width="100%" controls>
<source src="https://i.imgur.com/o3nWPCa.mp4" type="video/mp4" />
Your browser does not support the video tag.
</video>
Dont be surprised if this conspiracy goes all the way to the top of Kramerica Industries!
I dedicated the better part of an evening creating countless Miis and verifying their accuracy with my partner. She has the patience of a saint I tell you.
Until next time!

View file

@ -0,0 +1,50 @@
---
title: Recently
date: 2020-07-04
excerpt: July 2020.
categories: ["recently"]
---
{% image "https://wonderfulfrog.b-cdn.net/lady-actually-reading.svg", "Lady reading her book in what must be eventually pretty uncomfortable, but at least she has a nice cactus. From Open Doodles.", "" %}
My [CHIP-8 emulator](https://github.com/devinwl/chip-8) took a back seat last month. I havent made any progress on it since late May. I hope to return to it, but right now my interests have shifted to different projects.
Im working on a small site re-build right now. I didnt understand how my sites template worked — specifically the Gatsby stuff — and wanted to gain a greater understanding. This seemed like a good opportunity to start from zero and build up to where I was, which isnt all that complicated. The difference being I was doing it my way and could introduce parts gradually, and learn how everything works. Like learning how the engine of a car works, or whats “under the hood”. Id say the only major difference Im planning on doing is using [Tailwind CSS](https://tailwindcss.com) instead of the [Typography](https://www.npmjs.com/package/typography) library. I feel like I understand it better and can grok how to build my site the way I want it. I feel like my typography settings are a little too hacky.
I finished the [JustJavascript](https://justjavascript.com/) course (as it is), although I think a new module is on its way in a few weeks. I really enjoyed the course and re-evaluating my mental model for JavaScript.
As I alluded to in my previous post, I started painting my old Warhammer miniatures again. I ended up having to buy Citadel paints after all, as I could not get the red I wanted (its called Mephiston Red). Im painting some Space Marines using the Blood Angels scheme. I discovered that I missed that hobby and had so much fun painting again. Im trying so hard to resist the temptation to buy more miniatures and paints, and try to work within the constraints I have.
My biggest project in the last few days has been my music collection. I have had a few days off and have decided that once-and-for-all Im gonna organize this thing. Furthermore, I wanted to move off of Apple Music. As mentioned before I have been growing dissatisfied of Apple Music and would rather take control back. It took some time to figure out which music of mine was something I had added myself (using iTunes Match before switching over to Apple Music), and which was music I added to my library using just Apple Music. I plan to get into more detail about how I accomplished this in another post, but Smart Playlists is the secret sauce. Ive got everything going on a Plex server at home, and then using the [Prism](https://prism-music.app/) app to play my music on my phone. Works both locally and remotely.
Reading wise, Ive taken a break from my usual reading list and introduced some new material. With everything going on in the world — especially tied to George Floyds murder — Ive taken a step back to listen and try to educate myself. We Canadians like to think that our “crazy neighbours to the south” are the ones having racism problems and weve “pretty much solved it”, but that couldnt be further from the truth. We have our own problems to solve here at home. Here is a sampling of some works I found enlightening (and usually shocking).
### [Starlight Tours](https://thisiscriminal.com/episode-138-starlight-tours-4-17-2020/)
> In January 2000, the bodies of two First Nations men were found frozen in a remote area of Saskatoon, Canada. It was a place where nobody walked, especially in the winter. And then, a man named Darrell Night came forward and said he had been dropped off by police on the outskirts of town, but he had made it back alive.
>
> We speak with former police officer Ernie Louttit and reporter Dan Zakreski about the deaths of Neil Stonechild, Lawrence Wegner, and Rodney Naistus, and “starlight tours” within the Saskatoon Police Service.
### [What We Inherit: A Brief History of American Racism](https://podcasts.apple.com/us/podcast/8-what-we-inherit-a-brief-history-of-american-racism/id1441348407?i=1000477989176)
> The national and international protests over the death of George Floyd have generated larger and more widespread conversations about systemic racism in the United States. We hope to use our platform to help provide context and understanding around our shared moment in history, to show how our past creates our present, and to help illuminate how anti-Black racism has been passed on through our culture and politics, changing with each generation but also very much staying the same.
### [The Hate U Give](https://www.goodreads.com/book/show/32075671-the-hate-u-give)
> Sixteen-year-old Starr Carter moves between two worlds: the poor neighborhood where she lives and the fancy suburban prep school she attends. The uneasy balance between these worlds is shattered when Starr witnesses the fatal shooting of her childhood best friend Khalil at the hands of a police officer. Khalil was unarmed.
>
> Soon afterward, his death is a national headline. Some are calling him a thug, maybe even a drug dealer and a gangbanger. Protesters are taking to the streets in Khalils name. Some cops and the local drug lord try to intimidate Starr and her family. What everyone wants to know is: what really went down that night? And the only person alive who can answer that is Starr.
### [How To Be An Antiracist](https://www.ibramxkendi.com/how-to-be-an-antiracist-1)
> Ibram X. Kendi's concept of antiracism reenergizes and reshapes the conversation about racial justice in America--but even more fundamentally, points us toward liberating new ways of thinking about ourselves and each other. Instead of working with the policies and system we have in place, Kendi asks us to think about what an antiracist society might look like, and how we can play an active role in building it.
### [The Skin Were In](https://www.penguinrandomhouse.ca/books/536075/the-skin-were-in-by-desmond-cole/9780385686341)
> A bracing, provocative, and perspective-shifting book from one of Canada's most celebrated and uncompromising writers, Desmond Cole. The Skin We're In will spark a national conversation, influence policy, and inspire activists.
I used to think that I “never saw race”, but I know now thats bullshit. The best thing we can do though is learn from our mistakes and do better in the future. Thisll be something Ill have to work on continually, and I plan to do that.
Be kind to each other, and be safe.
Image from [Open Doodles](https://www.opendoodles.com/compositions).

View file

@ -0,0 +1,28 @@
---
title: Recently
draft: false
date: 2021-07-05T00:11:37+00:00
excerpt: June 2021.
categories: ["recently"]
---
The west coast just got over the heat dome. In my neck of the woods, that was easily the hottest its ever been here. Our car at one point said 46ºC. We were ill-equipped to deal with the heat — no AC and living on the top floor of our building. To beat the heat we ended up booking a hotel for a few days. It was an expensive solution, but the sanity gained more than made up for it.
Im looking into solutions for AC in our place, even though were renting. I imagine this was the first of many heat waves to hit us now and in the coming weeks. Not to mention that its been so dry that wildfire season cant be far off.
This month I participated in the [GMTK Game Jam][gamejam]. I [wrote about my experience][jamblog], and the game we made is called [“Put er There”][pet].
My takeaway from the game jam is that I need to engage more in the visual arts. I had a blast making pixel art, and I want to continue to draw (or pixel) regularly.
Not much else going on. The province has moved onto Part 3 of its re-opening plan which means things are starting to “return to normal”. Masks are recommended but not required. People have been acting weird about it. Not much surprise there.
I had my first experience in over a year meeting with more than one or two people at once, and without masks. It felt, as expected, weird and a bit uncomfortable at first, but soon it felt like normal again. Keeping in touch with friends over Discord and text helps keep you connected, but nothing can replace seeing (and hugging) them in person.
Ive been quiet on the music front lately. I must be in a music funk, because I find myself not listening to much of anything lately. Sometimes Ill put on the [24/7 lo-fi beats channel][lofi], but recently its the sound of my keyboard clacking away while at work. Eventually something will come my way that reignites the spark and Ill be back in it again. I did manage to rediscover the Drop Nineteens _Delaware_.
Im continuing to play through Miitopia. I think the game overstays its welcome a bit (the classic JRPG trope of an even bigger bad — literally called “The Darker Lord”). Its still keeping my interest though. The end of the game has some quality-of-life features that should honestly be there in the start: the ability to change jobs at will, and being able to buy the same equipment for other party members. The last area is starting to drag on, but I figure Im near the end.
[gamejam]: https://gmtk.itch.io
[jamblog]: /posts/gmtk-post-mortem-2021
[pet]: https://wcyu.itch.io/put-er-there
[lofi]: https://www.youtube.com/watch?v=5qap5aO4i9A

View file

@ -0,0 +1,64 @@
---
title: Recently
date: 2020-08-02
excerpt: August 2020.
categories: ["recently"]
---
Ive been focusing on my mental health lately. Its been largely ignored and Ive decided I need to fix that.
I mentioned the music library update last time and Im happy to report that its done. A [more detailed post](/posts/take-the-power-back) is available if youre curious about my process.
At work I concluded work on a big project for the last few months. I personally found the work engaging and technically challenging, but the client I did not enjoy. Ill be happy to take a breather and get started with a new project soon.
## Site Upgrade
The site upgrade progresses. I decided on the tech stack pretty quickly. I ended up dropping [Tailwind CSS](https://tailwindcss.com) in favour of [Theme UI](https://theme-ui.com). I really liked how Theme UI worked. It made sense in my head, and came with some lovely demo themes to play with. Ive ended up more or less copying [their docs pages](https://theme-ui.com/getting-started) with some small tweaks. Im moving up to the world of [MDX](https://mdxjs.com) for my content pages, which is nice since I can splice in some React components when needed. It reminds me of [BBCodes from phpBB](https://www.phpbb.com/community/help/bbcode), or [Shortcodes from WordPress](https://wordpress.com/support/shortcodes/).
Ive been crawling the web lately looking at other developers personal sites and I decided that I need to put in more effort into mine. Its my [digital garden](https://joelhooks.com/digital-garden) and I want it to reflect myself better. Im trying to stretch my creative muscles and come up with a rudimentary design system. Im currently trying to finalize a colour scheme. Ive decided on my typography (fonts are just device defaults). All spacing, margins, etc were decided for me thanks to Theme UIs defaults.
Speaking of typography — I spent a lot of time [reading up on the subject](https://practicaltypography.com) and really try to flex my skills here. I wanted my typography to look the same on almost any device and maintain the same character spacing across varying screen widths. Its a small detail that I care deeply about.
## Shaving
In personal care news, I decided to start using a [safety razor](https://www.getrockwell.ca/products/rockwell-6c-razor) for my shaving. It has been an entirely rewarding experience. Its turned the act of shaving into a more meditative activity for me. There arent a ton of steps, but I really enjoy following my internal checklist and taking my time with the activity. Not to mention that Ive never had a smoother shave with zero razor burn. I would highly recommend anyone out there that needs a close shave on their face to give it a shot. I am planning to write a detailed post on proper face (and hair) care targeted toward men. Based on my own experience and asking around with my (male) friends, there are definitely some misconceptions and a lack of education on that front.
## Religion
The subject of religion has been on my mind a lot lately. I am not particularly seeking any religion currently, but its existence in the lifetime of humankind has been an interest of mine. It started with me asking my partner if what I called an “ethical religion” — that is, a religion that is comfortable with the advances of science — could exist. What I didnt know at the time was that this isnt a radical idea at all. There are many religions out there that demonstrate this.
I ended up asking some friends of mine about their faith and what it meant to them. What I found out immediately was that my idea of an “ethical religion” already exists. I think a large part of my ignorance stemmed from a lack of exploration and looking at religion from the lens of pop culture. It casts a wide shadow as if to suggest that every Christian is a Bible-thumping maniac who distrusts modern medicine and believes only in the power of God. Not to say those people exist — Ive seen them myself — but your average person has a far more nuanced relationship with religion.
For example, there are sects of Christianity that are comfortable with the idea of gay marriage, or rights for women, or birth control. Despite what the Bible may say, they dont necessarily follow it to the letter, but more in spirit. For some, religion is a source of purpose — to help give their life meaning and a reason for being here. Frankly Im really embarrassed that I was so dismissive of religion.
## Reading
### [The Trial - Franz Kafka](https://www.goodreads.com/book/show/17690.The_Trial)
Tried to read this years ago, but felt the writing style so cramped and physically difficult to read. Im trying again in the hopes that I can read and enjoy it. So far, so good.
### [The Skin Were In - Desmond Cole](https://www.goodreads.com/book/show/50870424-the-skin-we-re-in)
A pretty damning read on how far Canada has to go on dealing with systemic racism. Like many Canadians, I knew things were bad, but this spelt out how truly bad it is. If the situation in the US was not reason enough to convince me that we need to defund the police, then this is it. While the book was not setting out to necessarily claim this message, that was my own conclusion. The police seemed to be a recurring undercurrent to the issues POC face today.
Two snippets that really struck me:
### [Ryan Reid fatally shooting Jermaine Carby](https://www.cbc.ca/news/canada/toronto/jermaine-carby-inquest-peel-regional-police-1.3581519)
> Peel Regional Police officer Ryan Reid was never charged for fatally shooting Jermaine Carby, \[...] during a traffic stop in September 2014. \[Reid] wouldnt have done anything differently — he said with Carbys mother and family members in the hearing room.
### [Officer Louie Cerqua on shooting and killing Michael Eligon](https://www.cbc.ca/news/canada/toronto/toronto-officer-who-shot-michael-eligon-feared-for-his-life-1.2448192)
> “With the high stress situation like that, youre going to resort to your firearm, its the only real option you have.”
## Music
[George Clanton and Nick Hexum](https://georgeclanton.bandcamp.com/album/george-clanton-nick-hexum)
I love hearing Nick Hexum — he has such a unique vocal style that I can always point out. Together with Clanton they form the perfect summer blend of vaporwave and chillwave. Couldnt gave come out at a better time.
[Stonerror - Widow in Black](https://stonerror.bandcamp.com/album/widow-in-black)
Its probably a tired comparison to make — they have a song called Kings of the Stone Age after all — but their sound reminds me so much of Queens of the Stone Age in all the best ways. Kyuss is probably a more apt comparison, actually. Heavy, crunchy, fuzzy guitar riffs that linger on blissfully, spacey vocals, wandering through time. Its all here. And not to judge an album by its cover, but this one rules.
Thats all for now. Take care out there. ✌️

View file

@ -0,0 +1,78 @@
---
title: Recently
date: 2020-09-02
excerpt: September 2020.
categories: ["recently"]
---
Been feeling kind of low lately. Struggling to feel engaged and get started on some of my personal projects. Facing my inner demons as it were, and trying to get back on my feet. On the other hand, Im working hard on my personal fitness, so thats going well! 💪
## Work
In a bit of downtime at the moment, so myself and a few other coworkers got to work building a Slack app for a non-profit organization. Its been a really enjoyable project so far! Ive been able to learn so much new tech, and get to flex my leadership muscles a bit. We just had a demo and they loved it! Im looking forward to where this goes.
## Playing
Besides Animal Crossing, here are some games I played this month.
### A Short Hike
A simple game that reminds me of adventuring in the backwoods of BC when I was younger (even though A Short Hike technically takes place in Ottawa). A game with a simple premise (get to the top of a mountain) has a lot of charm and character, and plenty to do too. There is no map, so youll be relying on pure exploration to get the most out of this game. There is plenty to find, be it Treasure Maps, Golden Feathers, or a variety of mini-games to play. The visuals harken back to the days of early 3D (especially PlayStation with the chunky pixels), which instantly transports me into a simpler time. Everything is cute and cuddly, and gives those warm, cozy vibes (that we could all use). The world drew me in, and even after finishing my main “objective”, I am going back for more. There is a lot to explore and uncover. At the same time though, if you decided to end your adventure after the peak, youre still left with a fun little distraction that is worth the price of entry.
### Spiritfarer
This game reminds me of the show The Good Place, but with a more somber tone. Its a meditative management game with a whole lot of the human element to it. Each spirit you take on has their own wants and desires — things they would like to do before they pass through the Everdoor. As the name would suggest, this is the door you pass on to the great beyond.
You end up having to take care of a small farm and kitchen in order to keep them fed, and then harvest resources to build other structures on your ever-growing boat. Theres never a shortage of things to do, but it also never feels like theres any great pressure to get things done. The game is happy to go at your own pace.
## Watching
### Murdoch Mysteries
Murdoch Mysteries stars the titular William Murdoch — detective for the Toronto Constabulary during the turn of the (20th) century. The series follows Murdoch and the constabulary as they solve various police cases, typically gruesome murders.
Apparently I never like a TV show immediately, because this one at first glance struck me as a bit uninteresting. My partner would have it on in the background, and I would tune in every now and then and kind of roll my eyes and continue whatever I was doing. Soon though I found myself slowly getting sucked into the show, starting to ask about characters (whats Constable Crabtree doing now? Whats the Inspector talking about?), and following larger plot points. The real kicker was when James Gillies started to become the big bad and a recurring nemesis for Murdoch, and before I knew it I found myself fully enveloped into the show.
It helps that Murdoch is a giant nerd, and he and George get to regularly geek out about whatever new invention in their current focus; whether it be something the detective has concocted to help solve the current case, or new contraptions like the automobile.
Without a doubt my favourite character is George Crabtree — dutiful partner to Murdoch. The two are practically inseparable and form a charming duo. I really feel for George. He tries very hard to live up to the detectives name and attempts to impress him at every opportunity. He succeeds just as much as blunders, and I just love it. Not to mention that its produced by the CBC, so its good ol fashioned Canadian entertainment.
### [What is Quakerism?](https://m.youtube.com/watch?feature=youtu.be&v=E8RDjg0Mhyw)
Continuing with my exploration into religion, my partner sent me this video from Jessica Kellgren-Fozard on Quakerism. If there was any religion I felt like exploring, this one really resonates with me. An emphasis on inclusivity and belonging, and a sense of community are all things I can get behind. There is no sense of (formal) leadership, but rather everyone is equal. Fun fact: that famous oat company stole their name.
## Reading
### [My Fave is Problematic: Kill la Kill](https://www.animefeminist.com/my-fave-is-problematic-kill-la-kill/)
Ive fallen off of the anime fandom in a huge way in the last few years. I was tired of the tropes, especially the consistent mistreatment of women in most shows. Thats not to say they are all guilty of problematic content, but there are more that do have the content than those that dont. This article helped articulate my feelings better than I could. I think it also leads into another discussion point: can we enjoy problematic media? I think the answer differs for everyone, but its a fun topic to explore.
### [The Big Leap by Gay Hendricks](https://www.goodreads.com/book/show/6391876-the-big-leap)
These days I would style myself as a recovering addict when it comes to self-help books. There never is (and never was) a single trick to turn my life around. Im increasingly wary of the entire industry, as Im now certain that not everyone is looking to help people out. I think these kinds of books can be helpful as a springboard, but a lot seem to parrot the same advice, only phrased differently using the authors writing style. This book largely seems to follow that trend. Im frankly tired of hearing about how the author overcame adversity when the adversity is so disconnected with what your average person faces. The amount of famous people (read: white billionaires) hes helped is numerous and wants to remind us quite often. I dont care. The author loves to use chirpy terms like “Zone of Genius” non-ironically, and its very grating. These hokey-sounding terms cause me to view their ideas with increased skepticism.
Tone aside though, I think there are nuggets of truth buried inside. The “Upper Limit Problem”, or the idea that we self-sabotage when feeling good, rings true for me. I think the notion that we deliberately get ourselves sick is ridiculous (the author recounts a situation where a patient deliberately gave himself laryngitis), but I do notice that I have a tendency to start criticizing myself, or being antagonistic once things get good in my life. It can be helpful to be aware and acknowledge when this happens.
While the term “Zone of Genius” makes me roll my eyes, I think the concept is solid. The Zone of Genius is described as something in life that always brings you joy, even if its considered work (i.e. your job). Youll always feel energized and ready to tackle problems in this space. It supercharges your brain and gets you motivated.
## Listening
### [Death Grips - Year of the Snitch](https://www.youtube.com/watch?v=C2Vwn3pxUPg)
I remember trying to get into Death Grips way back when The Money Store was the new hotness, but their brand of aggressive and in-your-face hip hop was too much for my budding musical tastes. Coming back nearly a decade later though, and I cant help but love whats going on here. The raw energy pouring from this group can be too much for some — not in the “you just dont get it” hipster sense, but in an actual “auditory overload” sense. Youve gotta be in the right headspace for it, and every now and then you need to stop and breathe. In the moment though, its pure bliss. Now I get to go all the way back and explore their remaining catalogue.
### [Lady Gaga - Born This Way](https://www.youtube.com/watch?v=wagn8Wrmzuc)
I “stumbled” upon Lady Gaga because I was forced to for a university class. We were tasked with exploring music that we would not normally listen to. I opted to search YouTube one day for the first top 40 pop artist that came to mind — this being somewhere around 2010 so Lady Gaga it was. The first song I clicked on was a music video for “Judas”. As it turns out that song is an absolute banger and from then on I was a Gaga convert.
Going thrift shopping one weekend, I stumbled upon a CD copy of Born This Way for a buck. Why not? I ripped it and added it to my library. I dont think Ive listened to the whole album before, but its real good! Everything is so catchy. Im not known to belt out tunes, but I cant help but join in and mouth (maybe even sing a little) the lyrics.
### [No Joy - Motherhood](https://nojoy.bandcamp.com/album/motherhood)
I havent more than a full listen or two yet, but No Joy (unlike their name) provides plenty of shoegaze joy yet again. I hope I can see them live again sometime in the future, once the world… yknow, stops being crazy.
### [Chilly Gonzales - Solo Piano II](https://www.youtube.com/playlist?list=PL0122C1147CDF8B77)
A perfect “rainy day” record. Gonzales is a master of the piano, and proof that it will always be my favourite instrument.
Until next time. 👋

View file

@ -0,0 +1,84 @@
---
title: Recently
date: 2020-10-04
excerpt: October 2020.
categories: ["recently"]
---
Its been a rough month, and its only the 4th. The [six-month COVID-19 wall][covid-wall] is hitting me hard. Its hard to feel like doing more than existing right now. Im glad Ive been talking to a counsellor about things. Its hard to even get the motivation to write this post.
Something Ive learned is that when faced with a daunting task, its important for me to break things down into smaller, manageable chunks. It helps curb the anxiety a bit, especially when its something not work related. Larger and vague goals do nothing but generate anxiety for me. Its actually a bit of an enjoyable activity for me to spend a bit of time to compartmentalize everything.
I recently went on a nice date night with my partner, and it was desperately needed. Im a bit of a homebody, but even I was feeling a bit trapped. It was nice to get out (and stay outside) and enjoy my town.
Im starting up piano lessons again with my previous teacher, and Im surprisingly excited to get started again. Applying what I learned from counselling, it will be important for me to make sure my piano-related goals are broken down, small, and actionable.
## Development
Recently wrapped two projects at work. One was a marketing site for a client we previously worked with. It had a very short timeline and I didnt estimate it properly, so it lead to some weekend work. Its now the weekend after it wrapped and Im feeling worn out.
A few weeks earlier, another project wrapped. This was a Slack app for a non-profit organization. The goal of the app is to send newsletter notifications to users inside a workplace. The organization is moving fast to develop “workspace plans” for companies, and this was a case of great timing and availability on our end. Im hoping it will be out of private beta soon and we can get more users! It will be really exciting to see it out in the wild.
Ive gone hard into the world of [Vim][vim] — [Neovim][neovim] specifically. Its a daunting text editor to learn, but once you get a handle on the initial movement controls it feels very powerful. A small number of plugins have made it like VS Code, but faster. I started learning vim because Im giving a cloud development environment a trial run. I dont want to use a virtual desktop, so Im looking at a text-based prompt. Ive always toyed around using vim, but now Im fully invested. Its been a lot of fun painfully tweaking my setup to have it work just so. Heres my [`.vimrc`][vimrc], if youre curious.
## Social Cooling
People tend to crook an eye at me when I tell them I dont have a Facebook account or avoid social media like the plague. Ive struggled to explain my reasons without it sounding utterly confusing or smarmy. Then I discovered this site called [Social Cooling][social-cooling]. I wont try to summarize the site but instead urge you to give it a read if youre feeling like Big Brother from 1984 is becoming closer and closer to reality.
## Listening
Another new month means another Bandcamp Friday. I didnt waste any time and secured some cool new stuff! And set my sights onto what Id like to get next month.
### [DANCE WITH THE DEAD — Entire Discography][dwtd]
Champs of the darksynth arena. Anything from their back catalog would feel right at home in an 80s slasher flick. My favorites are THE SHAPE and NEAR DARK, but practically anything is great. They havent put out much material from the aforementioned THE SHAPE in 2016, but heres hoping 2020 and beyond brings more.
### [Fleet Foxes - Shore][shore]
Been a while since their 2012 release Helplessness Blues (which seems apt right now, actually), and I couldnt be happier to see the group making more. Ive only given it a handful of listens so far, but this is without a doubt some of their best.
### [Meltt - Swim Slowly][meltt]
A little group from Vancouver that makes some class eletronic/psychedelic/new wave/lofi music. I stumbled upon them after they came up on YouTubes autoplay (I think after DRAB MAJESTY, another band worth your time), and Im so glad for that. Its cool to find an artist you love not far from your own home town, and makes me think I should dig deeper for more local bands. Theres so much music out there, more than I realize, and tons of it is happening right around me.
### [Sufjan Stevens - The Ascension][sufjan]
I wouldnt consider myself a follower of his stuff, but hearing “America” from the album sold me on it and I snap bought it. Still got a lot of stuff to go through, but excited to dig into this one.
### [Street Cleaner - Annihilation][sc]
One part darksynth, one part industrial, and just a dash of outrun. Such a phenomenal pumping album front to back. Feels like the perfect soundtrack to a gritty, cyberpunk future where the 80s never went out of style. As it turns out — its a video game now, too!
### [City Girl - Somnoloent Nova][city-girl]
Lately Ive found it hard to decide what I want to listen to. Thankfully, there is always “24/7 anime girl lofi beats to chill and listen to” that helps decide for me and keep me focused. Sometimes though things get tough and that music helps keep me grounded, and think of better times.
”Somnolent Nova” is that. Its just fantastic, chill tunes to keep you going, or help you kick back. A nice dash to jazz to keep the listener engaged, but not distracted.
### Podcasts
I wanted to highlight one particular episode as it pertains to my interests in several ways: Reply Alls [The Snapchat Thief][snapchat-thief]. Particularly the parts about securing your accounts and managing the information thats available about you. I take great strides to help cull the information flow wherever possible, so the episode was kind of like vindication for me after my friends typically roll their eyes at my “paranoia”. On the other hand, its also a good way to point out that my security is only as good as my weakest link. If my friends are not as savvy as I, and I choose to share some private information with them, then its safe to say its out there in some form or another.
## Reading
My pile of books — digital or otherwise — never stops growing. I flit between books like my dog flits between his favorite toy. Which is to say, I am often reading something different every day.
Right now its [Omoiyari: The Japanese Art of Compassion by Erin Niimi Longhurst][omoiyari]. Self-compassion is something I struggle with on the daily. It hasnt been the most revealing book, but there was one part that I liked — the concept of “_zakka_”. As per usual there is no literal English word for it, but my understanding was that it was a sort of celebration of our miscellaneous, mundane things. For example, in the book, the author has a particular watering can that is gold and with a large, narrow spout. It is otherwise completely ordinary, but to the author it has a special sort of meaning. To borrow the Kondo parlance, it sparks joy. Its not an antique, but its not particularly expensive either. It lead me to think about some items in my life that would fit under the category of _zakka_.
Something that immediately came to mind is my Lamy Safari fountain pen. I dont know what it is about this pen, but whenever I hold it, I just feel good. It writes like a dream, and with my special color of ink, everything looks so beautiful (even in my horrible writing). The tedious and slow process of filling up ink ends up being a rewarding experience as I take each step carefully, ensuring that my pen is clean and that I get the correct amount of ink. I love to go on and on about this pen. Tying into an element of Japanese folklore, I feel like a benevolent _yokai_ has decided to live inside my pen.
What about you, dear reader? Is there some otherwise mundane item in your life that brings you utter joy every time you hold it? Perhaps it evokes a feeling of nostalgia. An item to anyone else would have little meaning, but to you it means everything.
[covid-wall]: https://metro.co.uk/2020/09/23/how-to-push-through-six-month-coronavirus-wall-13309340/
[vim]: https://www.vim.org
[neovim]: https://neovim.io
[vimrc]: https://gist.github.com/devinwl/e8fc207bef247bae57d9c86990106b91
[social-cooling]: https://www.socialcooling.com
[snapchat-thief]: https://gimletmedia.com/shows/reply-all/v4he6k
[omoiyari]: https://www.goodreads.com/book/show/52848030-omoiyari
[dwtd]: https://dancewiththedead.bandcamp.com
[shore]: https://fleetfoxes.bandcamp.com/album/shore
[meltt]: https://meltt.bandcamp.com/album/swim-slowly
[sufjan]: https://music.sufjan.com/album/the-ascension
[sc]: https://streetcleaner.bandcamp.com/album/annihilation
[city-girl]: https://city-girl.bandcamp.com/album/somnolent-nova

View file

@ -0,0 +1,94 @@
---
title: Recently
date: 2020-11-06
excerpt: November 2020.
categories: ["recently"]
---
{% image "https://cdn.wonderfulfrog.com/e460bb30-2ef1-4a3c-af6d-f7ff9c696bac.jpeg", "A frog recounting his struggles about trying his hardest, and feeling like its never enough. By Cat's Cafe.", "" %}
Well, now its November. That happened. Heres some things that caught my interest this month.
## Hades
Really enjoyed my time with the latest from Supergiant — [Hades][hades]. Its been in early access for a while now, and finally dropped in October. It has all the polish and finesse youd expect, and all the fun too. I tend to avoid roguelikes — games that use some (or all) of the concepts from the original Rogue, like permadeath (losing your character forever), random maps and items, etc. Hades does away with permadeath (mostly), and every run ends up feeling like youre progressing anyway. The items (boons) you find along the way are all lost when you die, but there are currencies like Darkness and Gems that persist through death. These can be used for permanent upgrades that increase your power level gradually. It stops the game from feeling like youre throwing stuff at the wall and hoping it sticks, and more like taking a step up the stairs every death. The roguelike mechanics are even baked into the story — the ever-changing (read: random) rooms are always different to prevent would-be escapees from ever leaving the underworld.
The soundtrack is of course all aces again. Darren Korb can do no wrong in my eyes, and this keeps the streak going. The soundtrack is classic Korb with some metal leanings this time around. The Scourge of the Furies has been stuck in my head for weeks.
At \$20 or so, the game was a steal. Ive completed one run and that was enough for me, although I imagine after some time Ill be going back again. It kept me busy for 15 hours easy.
## Plastic Recycling
Ive always tried my best to reduce and reuse, and of course recycle as much possible. So it was incredibly disheartening to learn that [the majority of plastics recycling is a complete and total sham][plastics-sham].
The majority of our (Canadas) recycling was not so much recycled as it was shipped off to other countries instead (in this case China, and then parts of Southeast Asia). It wasnt recycled at all, just shoved off wholesale for some other country to deal with. Now those countries wont take our plastic waste anymore, so we have are forced to deal with it.
If you are anything like me, youd look for the recycling symbol on any piece of plastic, and breathe a sigh of relief knowing it can be recycled. Well as it turns out, a lot of plastics _cannot_ be recycled, at least in any economically viable way. [So long as we _thought_ it was working though, nobody would look into it][recycling-lie].
Now that the jig is up and the plastics industry is onto it, surely theyve come up with a new strategy, right? Nope. Theyre blaming us — the consumers — and putting the impetus on us to solve the problem. Its the same response when they faced backlash back in the 80s, just with a different coat of paint. When in reality, the average person cannot make a noticeable impact alone. It should be up to the industries that produce so much plastic to cut down and reduce the amounts created.
All that said, there is still viability in recycling _some_ plastics, like from soda bottles and milk jugs. Things like plastic film, bags, and wrappings though are better off sent to the bin. At least that way they end up in _our_ landfills and not some other country.
Ultimately the best course of action for a consume is to focus on the first two Rs: reduce and reuse.
## [Spotify Not Playing Fair][spotify-not-playing-fair]
Spotify (among other corporations) banded together to form the [Coalition for App Fairness][app-fairness-coalition] — a coalition that seeks to ensure that competition exists and users have a choice on how to use their device. It advocates for consumer choice, and aims its sights specifically toward Apple and its 30% tax of all revenue from sales in the App Store. Developers have been trying to find ways around this tax, and Apple has been happy to close any loophole. Its been this game of cat and mouse, where the cat has literally trillions of dollars to throw at the problem.
Meanwhile though, Spotify has decided they arent actually interested in playing fair after all. They are making it difficult to export your playlists and other content, and are only interested in getting you locked into the platform. Its surprisingly anti-competitive behavior coming from a company that frequently cries at Apples own anti-competitive behavior. Apples 30% cut _is_ bullshit, but for Spotify to behave like this is completely hypocritical.
A late month update shows that Spotify is now allowing users to transfer their playlists, but only playlists they have made themselves, and not ones generated by Spotify.
## Susan Kare
Our workplace was recently graced with a talk from icon legend — Susan Kare. She is responsible for all the charm and whimsy from one of my favorite operating systems (System 7). It was really great to listen to her recount stories from those days, and dig into her process of how she came up with an icon design. She touched upon the idea of working within constraints (in her early days, she only had access to black and white colors), which resonated with me. If I think back to some of my creative breakthroughs, I believe that constraints tend to bring out the best, rather than limit potential.
## The Game Industry Needs to Unionize
Cyberpunk 2077 was in the news for getting delayed again. Delays are frequent and almost expected in the gaming industry, so this came as no surprise. It's has been delayed twice now (it was originally announced back in 2017), so whats another month? What has got me frustrated though was that prior to this delay [CD Projekt Red decided that crunch was required to ship the game on time][cyberpunk-crunch].
Crunch — for those unfamiliar — is when a studio goes into overtime to ship a product. It typically means 6 to 7 workdays with long hours (12+), and sleeping in the office is not outside the realm of possibility. Its a horrible practice that needs to stop, but is still prevalent even today, especially with AAA game studios.
Whats especially frustrating is that not only was the crunch effectively useless (why crunch if youre going to delay anyway), but the studio co-founder [Marcin Iwiński said he was committed to avoiding crunch “no matter what”][marcin-iwinski].
But it keeps going — there was a rumor going around that the developers [“wanted a 6 day workweek instead of a delay”][6-day-work-week], but it turns out those conversations never happened.
And lets not forget the [legions of gamers rushing to defend a company][gamers-defending-companies] that does not need defending nor should it be defended. Companies are not your friend. Never have been, and never will.
The gaming industry by and large needs to unionize. A common practice for these larger studios is to lay off the entire QA and development team when the game ships. Thats of course after crunching for weeks. Developers are not the only ones getting the short end of the stick either. A few years ago (2016-2017), [video game voice actors went on strike][voice-actors-strike] to put an end to an industry and largely doesnt care about its employees. They eventually won and got the benefits they wanted after 11 months.
The silver lining in this ugly business (at least for CDPR employees) is that the companys employees have profit-sharing as part of their compensation, and this game is very likely to sell like gangbusters. Theyll end up with a big fat cheque for sure, but the way they got there should never have happened.
Ill end this section on [a positive note][respawn-cares] with a AAA studio that actually gives a shit about their employees.
## [Becoming RBG][becoming-rbg]
My partner bought this book shortly after her passing (RIP), and I got around to reading it after being curious. I feel like I had some birds-eye levels of knowledge on Ruth Bader Ginsburg, but this book proved I knew barely even that.
I feel like my review will end up simply summarizing her story, so Ill just say that I found it completely engrossing. Her story is so incredible and inspiring. Speaking of incredible, “incredible woman” is a moniker my partner uses when describing — well, incredible women — and I feel like it could not be more apt here. She was one of a kind, and a tour de force.
The format makes for a fun read — I feel like this book is tailored to younger audiences — but the artwork injects a personality that I feel like is not far from RBGs own sense of humor and wit.
I wish I had read this book before (and well before) her passing. Im eager to read another book about her from the same publisher called “I Dissent” (her dissenting opinion in the Supreme Court being a common occurrence).
## The Rest
Now that the election has been called, my anxiety is falling back to normal. I capped off my first week of November with some splurging on Bandcamp Friday, because spending money typically helps me feel better, if only for a little.
Next week I've got some much needed vacation. Really looking forward to that. I've got a stack of books with my name on it, as well as some crafting projects.
Stay safe out there, and remain patient. ✌️
[catscafe]: https://www.catscafecomics.com
[hades]: https://www.supergiantgames.com/games/hades/
[plastics-sham]: https://www.npr.org/2020/09/11/912150085/waste-land
[recycling-lie]: https://www.cbc.ca/documentaries/the-passionate-eye/recycling-was-a-lie-a-big-lie-to-sell-more-plastic-industry-experts-say-1.5735618
[spotify-not-playing-fair]: https://mjtsai.com/blog/2020/10/12/spotify-not-playing-fair/
[app-fairness-coalition]: https://appfairness.org/
[cyberpunk-crunch]: https://www.theverge.com/2020/9/29/21494499/cyberpunk-2077-development-crunch-time-cd-projekt-red
[marcin-iwinski]: https://kotaku.com/cd-projekt-red-boss-again-promises-that-cyberpunk-devs-1835518344
[6-day-work-week]: https://twitter.com/jasonschreier/status/1314675754937053185?s=21
[gamers-defending-companies]: https://www.forbes.com/sites/erikkain/2020/10/12/its-time-to-stop-defending-cd-projekt-red-over-cyberpunk-2077-crunch/?sh=2c32039d7e6c
[voice-actors-strike]: https://www.polygon.com/2017/9/25/16363872/video-game-voice-actors-strike-sag-aftra-agreement
[respawn-cares]: https://twitter.com/jonshiring/status/1314304030735179776
[becoming-rbg]: https://www.simonandschuster.com/books/Becoming-RBG/Debbie-Levy/9781534424555

View file

@ -0,0 +1,46 @@
---
title: Recently
date: 2020-12-07
excerpt: December 2020.
categories: ["recently"]
---
{% image "https://wonderfulfrog.b-cdn.net/tumblr_594d8523021106f126390d49d5a0a1a0_1db9a35a_1280.jpg", "Little Big Things by Cat's Cafe", "" %}
Not a long one this month. The holidays are upon us, but it doesnt exactly feel like it to me. Its a strange time to be sure.
## [The Beirut Port Explosion by Forensic Architecture](https://forensic-architecture.org/investigation/beirut-port-explosion)
An incredible look into the Beirut port explosion using publicly available data. Forensic Architecture constructed complex 3D models using various video sources of the explosion. I was especially impressed by the recreation of the interior of the warehouse, using smoke trails and their relative location to paint a picture without knowing exactly what it looks like inside. Highly recommend watching this video and their others (check out the breakdown of Black Lives Matter police brutality). The amount of effort they put into these is truly incredible, and the results are — for lack of a better word — amazing.
## [A Star Trek actor tries to one-up his co-star on his return to Hollywood](https://www.youtube.com/watch?v=QmVwCcUQRjU)
Brent Spiner is truly a gem. I had the chance to finally sit down and watch the entirety of Star Trek: The Next Generation, and without a doubt my favorite character was Data (portrayed by Spiner). The episode that stuck out is “Datas Day”, which follows what turns out to be a not-so typical day for Data.
Its fun to see Spiner poking fun at an exaggerated version of himself.
## [Decolonize your reading habits](https://www.antiracismdaily.com/archives/decolonize-your-reading-habits-anti-racism-daily)
I know I am guilty of this. I am going to do better and ensure that my fiction is not made up only of white authors. I shouldnt be looking to people of color solely on the topic of education or issues.
> Its problematic when you turn to writers of color when you want to be educated, but white writers the rest of the time. Instead, we should also be reaching for authors of color when we want a lighthearted, fluffy book. When we want to read something to decompress from our months of election anxiety. When we want to travel to a different world. We shouldnt have our “race/racism bookshelf”, crammed with writers of color, and have every other shelf filled with white writers.
## Listening
December marks the last of [Bandcamp Friday](https://isitbandcampfriday.com)s (according to their schedule anyway). Im hoping Bandcamp keeps it going as a scheduled event of some kind. For the Spotify users out there, Hype Machine has a new program called [Merch Table](https://hypem.com/merch-table). Plug in a playlist and it will tell you of any artists on Bandcamp that you can purchase from.
I ended up picking up a few things:
- [Nothing - The Great Dismal](https://nothing.bandcamp.com/album/the-great-dismal)
- [Nothing - Tired of Tomorrow](https://nothing.bandcamp.com/album/tired-of-tomorrow-standard-version)
- [Drab Majesty - Modern Mirror](https://drabmajesty.bandcamp.com/album/modern-mirror)
- [No Joy - More Faithful](https://nojoy.bandcamp.com/album/more-faithful)
- [Night Runner - Starfighter](https://nightrunnermusic.bandcamp.com/album/starfighter)
Im on a real shoegaze kick lately. Ive been consulting [a guide I found on reddit](https://i.redd.it/rxrtulf0m5631.jpg) for new stuff. I dont remember how I found Nothing before — I think it was on another shoegaze list, maybe from Pitchfork? — but their song [ACD (Abcessive Compulsive Disorder)](https://www.youtube.com/watch?v=Sx0PJx2_LZ8) is peak shoegaze for me. It really stuck out and hasnt left me. The Great Dismal seems to follow that trend. Ive only just started listening and cant wait to dive in more.
No Joy are one of my shoegaze staples. I had the pleasure of seeing them a few years ago at some hole-in-the-wall bar. Their set was tragically short (one of the band members quipped to my pal it was “short n sweet”), but for the moments we did get were absolute bliss.
Drab Majesty strike that perfect 80s vibe. They capture the feel and sound of that decade so well, but still strike me as modern.
Thats all for this month. Dont forget about your holiday shopping! We managed to get ours done in one day. Dont do what I tend to do and leave it until its too late. Stay safe out there friends. ✌️

View file

@ -0,0 +1,18 @@
---
title: Remember to be nice
date: 2021-01-12
excerpt: Open source is often a thankless job.
categories: ["open source", "signal"]
---
[Signal][signal] is seeing a jump in activity after [WhatsApp recently made adjustments to their privacy policy][policychanges]. Coming from a paid, closed source, feature rich application like WhatsApp to an open source app like Signal can be a little jarring. Where is that favourite feature of mine? Why havent they prioritized it? So [Signal has to come out and remind people in the community to be nice][benice]. The developers only have so much free time.
Open source software quite literally powers everything we do in the technology sphere (my site included), yet it is such an under appreciated facet of our world. Consumers (as in “using the open source project” sense, not a more capitalist definition) expect the same level of features and support that funded and closed source projects have, yet forget that the majority of open source development work is done in limited free time. Its a form of volunteerism that is not recognized enough.
Work that developers put into their projects is literally a labour of love. They arent being paid to do this. They care so much that they provide their work, free of charge, because they care about you — the consumer.
It can be hard to remember that there is a human on the other end. Treat those developers with fairness, kindness, and above all — respect. They are taking their valuable free time to make your life a little easier.
[signal]: https://signal.org
[policychanges]: https://web.archive.org/web/20210106121851/https://www.whatsapp.com/legal/updates/privacy-policy?eea=0
[benice]: https://archive.is/y23jH

View file

@ -0,0 +1,32 @@
---
title: Stray Thoughts 1
date: 2021-09-27T19:42:32.596Z
excerpt: I can't decide what to call my weekly posts anymore.
categories: ["stray thoughts"]
---
{% image "https://cdn.wonderfulfrog.com/collage.jpeg", "My popular last.fm scrobbles from the last week. From the top left: David Bowie - The Next Day, Turnstile - GLOW ON, Sleigh Bells - Texis, Angels & Airwaves - Lifeforms, Thrice - Horizons/East, Deafheaven - Infinite Granite, Japanese Breakfast - Jubilee, The Slang - Divide, Tyler, The Creator - IGOR", "" %}
Been fiending [Diablo 2: Resurrected][d2r] since it came out. Ive been playing the original on and off for years. It was the first game I can recall that I saved up my own money for. I went to the (now defunct) game store downtown and bought their copy in the display window outside. Before I knew it I made my Necromancer and slaying the demons of Hell! My Mom surely must've bought it for me since I wasn't even close to 17 yet.
The game has relit the fire when it comes to gaming. Lately I purchase new games, play them for a day, then forget about them. This is the first game in recent memory I've played longer than that. I'm excited to keep going every day!
All that being said, I feel conflicted buying this game. On the one hand, Blizzard has been on a downward trend lately (to put it mildly), capping with a lawsuit over mistreatment and sexual harassment (“a culture of harassment”). Their response was tone deaf to say the least. The fallout has been staggering[^1]. It does not feel good buying a game from a studio that treats their employees like this, and is seeking profit over compelling games. It should be no surprise that a company wants profit, but I feel like the "old Blizzard" at least tried to make incredible games while making money.
On the other hand Blizzard had little to do with D2R. They own the IP and oversaw development, but Vicarious Visions were the masterminds behind this remaster. They did a fantastic job. They did such a good job that Blizzard merged with them (in hindsight, probably wasn't the best move). The artists, developers, everyone on the team crushed it. They deserve to be praised. I want Blizzard to know *this* is how you do a remaster, not that god awful mess that was Warcraft 3: Reforged. Im opting to vote with my wallet as a way to say “more of this”.
I dont support the way the company treats their employees. I think its possible to engage with problematic entertainment. I don't think boycotting is the answer. I know I said as much a few posts ago, but I'm changing my mind. Boycotting is much more likely to tell the executives that they should continue to treat their employees poorly for poor sales or some other stupid reason. I've seen others try to offset the carbon footprint[^2] when purchasing from Amazon, and I'm doing something similar by donating to causes that support the affected employees inside Blizzard. I'm raising awareness of the issues going on at the studio to everyone I know that engages with Blizzard games. All that being said, if you personally feel like boycotting Blizzard by-and-large, then go for it.
I recently started [scrobbling again on Last.fm](https://www.last.fm/user/Keiroshin). There is a conspicuous omission of about 6 years where I stopped worrying about it. I wish I had opted to continue using the service. I like flipping through this data. What was I into on March 2012?
Im reading Aubrey Gordons book *[What We Don't Talk About When We Talk About Fat](https://www.yourfatfriend.com/book)*. Its making me reevaluate my relationship with my weight. To be more specific, this book and the podcast [Maintenance Phase](https://www.yourfatfriend.com/podcast) are doing that.
I used to believe that losing weight was a willpower thing. That if I tried hard enough I could do it. At one point I did it — I got ridiculously thin using a severe caloric deficit diet. It worked but at what cost? My friends worried about me. But I was thin! Look at how easy it was! I maintained the weight and tweaked my plan for a few months. Then as all unsustainable diets go, I slowly dropped the plan and gained all the weight back (and then some). The diet in hindsight was not maintainable, even though I had managed to convince myself it was. It was horribly boring. I was hungry almost all the time.
This is all to say: maybe I dont need to lose weight. Maybe Im fine as I am? I can just be me. Get clothes that fit me properly. Make sure I eat balanced meals. My body could be predisposed to stay at this weight. I feel healthy (as one can be in the middle of a pandemic). My head is full of old, preconceived notions when it comes to fatness. I'm on a new journey to relearn and reevaluate my relationship with being fat. In my case fat is not an accurate descriptor — following the book I would be described as "small fat", and I can fit into straight-sized clothing. What I am learning is that it's not the death sentence that the 90s would tell us. There are people that are bigger. It *can* come from genetics, as much as my old self would disagree. To quote Maintenance Phase: "it's a little more complicated!"
\[1]: Google "blizzard lawsuit" and you'll see plenty of results of high-ranking staff leaving the company.
\[2]: I recently learned that the term "carbon footprint" was coined by none other than BP, as in the big oil company. I lack a better term to describe what I'm trying to illustrate, so I'm going to use it here. To my chagrin.
[d2r]: https://diablo2.blizzard.com/en-us/

View file

@ -0,0 +1,16 @@
---
title: Stray Thoughts 2
date: 2021-10-03T22:35:21.592Z
excerpt: Are collected thoughts really stray?
categories: ["stray thoughts"]
---
{% image "https://cdn.wonderfulfrog.com/collage2.jpg", "This week's top last.fm artists." , "" %}
Going strong on Diablo 2. Ive reached the point where I have Hell Mephisto on farm now and Im grinding for new gear. Its a relaxing game to play with its rote paths. I like to get into the groove and kinda zone out. Its meditative for me, in a sense.
My exciting purchase this week is a [Hobonichi Techo Planner](https://www.1101.com/store/techo/en/2022/all_about/planner/). These things are popular enough that it requires buying them months in advance. Mine is meant for the whole year, starting in 2022. Ive always wanted to get one after hearing others rave about them. I love the Tomoe River paper. Its thin but sturdy. It has an amazing feel to the touch. It smells nice. It checks all my boxes. Im excited to start using it in the new year. For now Ive been using the spare pages to try things out, and fill in any big events that I know Ill need to remember.
We finally got around to watching the [Star Trek “remake”](https://www.imdb.com/title/tt0796366/) movie. We both came out disappointed. If you changed the characters names then it couldve been “Space Movie 2009”. It didnt feel like it was Star Trek at all. The movie took itself far too seriously. It was dense with action. Wheres the diplomacy? The camp? Why does it feel like they stuck in Leonard Nimoy for no other reason than the cameo? I was not surprised to learn that the movie was directed by J.J. Abrams. It felt a lot like The Force Awakens. It played up the nostalgia (remember this character), but didnt have the substance required to pull it off. The individual actors did great jobs pulling off their respective roles though. I thought Zachary Quinto did a good job capturing the essence of Spock without it feeling like a copycat. The newest film “Star Trek Beyond” wasnt directed by Abrahms — think I should watch it.
On the weekend we visited the local farm and corn maze. To beat a dead pun-horse to death, it was a-maize-ing. The farm was pretty rough around the edges. It looked from another decade. It had a certain appeal though, almost an eerie-ness to it. They run a nighttime version for adults. I think it would be quite spooky actually! The corn maze itself was a sufficient labyrinth.

View file

@ -0,0 +1,21 @@
---
title: Stray Thoughts 3
date: 2021-10-12T16:54:44.498Z
excerpt: Sweater weather is here!
categories: ["stray thoughts"]
---
I've been fortunate to have vacation time for a few days. It was much needed R&R after a long haul of a project. I got to spend time with my partner — we had a special day where we did everything she wanted! There was plenty of tea shopping.
I picked up [Metroid Dread](https://www.nintendo.com/games/detail/metroid-dread-switch/) on Friday. I'm a few hours in now. Here are my thoughts where I am:
* The game is hard! I didn't expect this but I'm happy to see a new Metroid game with a challenge.
* I wish the music was memorable. I refer to Super Metroid's music that maintained the atmosphere but managed to create choice tunes.
* I'm not feeling the dread. My feeling is that the developers wanted to recreate the feeling of being pursued by the SA-X, but instead landed on this frenetic and chaotic encounter with the EMMIs (that name is dumb and will forever be). It's clear when entering an "EMMI zone" which defeats the feelings of dread and anxiety.
* Speaking of the EMMI encounters, getting a game over when colliding with one feels like bad game design to me. I understand they are supposed to feel threatening and impossible. The game over feels clunky and awkward — it serves no purpose other than to slow gameplay down. I would prefer it fade to black and spawn Samus at the previous checkpoint.
* The load times are substantial. The Switch hardware is showing its limits lately with games trying to hit a visual fidelity it cannot maintain. Dread suffers from long load times (but are thankfully not bad if you use the sleep function) and choppy framerates here and there.
* Why is Adam here? He has zero personality. He is not interesting at all. His notable attribute is that he says "Any objections, Lady?" to Samus. If his dialog boxes changed to "Ship's Computer", there would be no difference.
* Why are the aim and missile buttons on the bumpers and not the triggers? Why is there no method to remap the controls? I'm hoping they will add an option to remap controls in a patch, but that will likely be when I've finished with the game.
Despite my negative thoughts (I'm a passionate Metroid player), I am enjoying the game. I'm glad they're making a brand new Metroid game. I hope that Metroid Prime 4 is happening and hasn't been quietly cancelled!
My friend shared [Green Lung](https://www.greenlung.co.uk) with me. I was hooked instantly. It was when I discovered the "doom" genre and all of its sub-genres. I've been listening to it non-stop since.

View file

@ -0,0 +1,12 @@
---
title: "Tadpoles: The Big Little Migration"
date: 2021-01-10
excerpt: A short film about frogs.
categories: ["short film", "frogs"]
---
TODO: YouTube: 5S-lZtE1J6M
Frogs are undoubtedly my favorite animal, and seeing a short film about them beings me so much joy. The tadpole is not a stage in a frog's life you see emphasized much. Not to mention this was filmed right in my beautiful province!
As the thumbnail shows this short film was won many accolades, and not without merit. Truly some of the best underwater filming I've ever seen, and even above land! Treat yourself to the sweetest 8 minutes of your day.

View file

@ -0,0 +1,165 @@
---
title: Take The Power Back (Over My Music)
date: 2020-07-26
excerpt: One guy's struggle to regain ownership of some MP3 files.
categories: ["music", "beets", "plex"]
---
TODO: Come up with a YouTube shortcode for this video: qKSNABST4b0
When did Rage Against the Machine [get so political](https://www.nme.com/news/music/tom-morello-twitter-respond-to-people-only-just-realising-rage-against-the-machine-are-political-2685353), anyway?
I want to take control of my music library and be responsible for organizing and tagging all of my music files. This probably sounds like making work for the sake of work, but its something that Im passionate about. Like a well-curated and organized collection of records, clothes, make-up, or books, it feels good knowing everything is there for a reason and where it should be.
## tl;dr
If you are currently using Apple Music and want your files back, here's how:
- Use Music.apps Smart Playlists to filter your library into just the tracks you want (i.e. dont “own”). Export that playlist for a master list of music to find elsewhere.
- Forget managing your library manually and find a tool that suits your needs. My recommendation is beets. Allow that tool to reorganize your folders and redo all the tags. The more control you give the tool, the easier it is. If it doesnt work for you, reconfigure it, or find another tool.
- Maintain your new library by using that same tool to add new music in the future.
For the full story, continue reading…
## Why?
The long story short is because I want to, but here's a more nuanced answer.
### I wanted to be in control of my files
My music is important to me. While the music itself is not difficult to recover, I have painstakingly managed and tweaked the organizational structure to my preferences. I dont want to have to do that again for any reason.
### I wasnt using the features of Apple Music anymore
I tried using Apple Music as a discovery service, but just stopped using it. I found it wrong more often than right when it came to music it thinks Id like. There are plenty of ways to “demo” music now, too.
### Apple Music was becoming too expensive for what I used it for
Since I wasnt using any other features of Apple Music, it was a redundant backup (a-la iTunes Match), and for the cost it isnt worth it.
### I enjoy curating and managing my music files
Some people out there hate having to manage files, tags, and everything in between, but I get joy out of painstakingly managing my collection. Its fun to me.
### I wanted to update all my tags, album art, etc
My music collection spans back to the early aughts, and I know back then I was not all that concerned with organizing my collection. This is an opportunity to correct any mistakes.
### I wanted it to be all backed up and under my control
Im serious when it comes to backing up my data. After too many serious data losses, Ive taken a more concerned approach to backing up my data. I like to have redundant backups (on-site and off-site), and while Apple Music would suit as an off-site backup, its again way too expensive to justify that. If I leave Apple Music, I instantly lose access (and any record) of music I added to my library too.
### What if Apple lost my music?
I cant prove it, but Im certain that over the years during the transition from iTunes Match to Apple Music, somewhere down the line Apple lost some of my music. When I set out on this journey, I found random missing tracks in my library. They were not hard to replace, but to have them just disappear into the ether really sucks. [And Im not the only one](https://tyler.io/itunes-match-failed-me/).
### What if Apple Music were to disappear tomorrow?
Apple being a trillion-dollar company makes this seem extremely unlikely, but its extra justification. Im not dependent on any service or company to manage my music. I get to do it myself.
### I listen to music in a particular way
Im pretty old-school (or at least, I think this is old-school) in that I listen to whole albums front-to-back. Im not really a playlist guy, which seems like the trend these days. I pick my album and then leave it alone. I rarely use shuffle and skip. I want my experience to be tailored to this style of music listening.
## What I did
I separated my library into two major categories: **my music**, and **Apple Music music**.
**My music**: Music I acquired through CD rips, torrents, iTunes Store purchases, or something else. I acquired the files for this music. Its either stored in my local backup or uploaded through iTunes Match years ago. I have or can get the files for this music.
**Apple Music music**: Music I added to my library through Apple Music. This means I have no files associated with the music and it exists purely in the cloud. When these files are downloaded they are in a DRM-protected format.
Unsure of how to find my Apple Music music, I started by googling when the service started, which was [June 30th, 2015](https://en.wikipedia.org/wiki/Apple_Music). Then I sorted my entire library by date and looked at everything before and after that date.
<Aside>
My first piece of Apple Music music was Foals “What Went Down”. I added that on July 2nd, 2015. I guess I took a few days to figure out what to add to my library?
</Aside>
Before we get much further, I should mention that I have over 130GB of music (somewhere around 19,000 songs). Sorting by the Date Added field showed me that I had about 6,098 songs to comb over. I knew that mixed into those 6,000+ songs were music I had the files to. I needed a way to filter those tracks out. Now what?
Well, turns out iTunes — sorry — Music(.app) — has a handy feature called Smart Playlists. Thanks to a tip from [Tyler Hall](https://tyler.io), you can use Smart Playlists to find any music in your library that is not:
- Purchased (came from iTunes Store)
- Matched (uploaded and updated using iTunes Match)
- Uploaded (uploaded tracks saved using iTunes Match)
{% image "https://cdn.wonderfulfrog.com/amm.png" , "Smart Playlist filters", "" %}
I also added a filter to show music only from May 18th 2018. This date is important because it was the day I re-subscribed to Apple Music after not using it past the free trial. That cut down my list to 2,221 songs. Thus, I had my Apple Music music.
{% image "https://cdn.wonderfulfrog.com/stats.png" , "2,221 total songs", "" %}
I also made another Smart Playlist to find all of my Purchased music (1,107 songs), and downloaded those. A grand total of about 3,300 songs from Apple.
Any music that was marked as Matched or Uploaded I had files to, so that cut down my work significantly.
At this point I started toying around with automation ideas — maybe I could use something like [youtube-dl](https://ytdl-org.github.io/youtube-dl/index.html) to automatically find the list of songs Im missing and add them to my library. I decided the time Id have to invest though would be on par with how long it would take me to manually generate a nice `.csv` or list of albums to find, so opted not to go that route. Instead, I used the Export Playlist feature (File > Library > Export Playlist…) to dump the playlist and then convert it to a `.csv` file using tabs as the separator.
From there I grouped everything up by album using a pivot table in Excel, which gave me my master list of Apple Music music. This would be music Id have to find elsewhere and get my own version of. I hope to use [Bandcamp](https://bandcamp.com) as much as possible. Im planning on writing a post someday about purchasing music fairly — as in giving the most of your hard-earned dollars to the musicians that make the music. Bandcamp is one of the best in that camp, and deserve your money. Getting back on track…
Downloading all of my Purchased tracks turned out to be more difficult than I thought. Music(.app) for whatever reason likes to fail when it comes to downloading files, and usually silently. There were a few errors reported, but many more files failed to download. It took some trial and error (probably an hour or so), but after some manual fiddling I got what I needed.
One caveat is that any tracks that were Matched (using iTunes Match) were likely swapped from MP3 to AAC (`.m4a`). I personally dont care enough about fidelity to force one over the other, but this will turn out to be an issue later. If that is a concern, make sure to note any `.m4a` files.
## Music Tagging, or How I Learned to Stop Worrying and Love The MusicBrainz
This step I knew I wanted to use as many automated tools as possible. There are likely a ton of databases out there for music, but I ended up liking [MusicBrainz](https://musicbrainz.org) the most. Especially because they have an app — [Picard](https://picard.musicbrainz.org) — that makes re-tagging very seamless. This is especially useful for YouTube rips as they dont have any IDv3 tags, but Picard can scan by audio signature and match that way instead! Really cool. It wasnt always right, but it was generally very close most of the time.
{% image "https://cdn.wonderfulfrog.com/60percent.gif" , "60% of the time, it works every time", "" %}
This worked pretty well at the start, but it was a fairly manual process. Id have to:
- Drag-n-drop everything into Picard
- Click Scan
- Wait for results, then manually verify them
- Correct any issues
- Click Save
- Drag-n-drop the correctly tagged files into my library, making sure it was organized properly
I also didnt love the way Picard would tag some fields, like genre. Admittedly the genre tag is so subjective there is no standard way to accomplish it, but I had my preferences. By default it would ignore certain genre tags like “shoegaze” because it wasnt on their whitelist, and replace it with “rock” or “alternative”. I wanted something more granular.
What I really needed was an opinionated tool that followed the same structure I wanted, or at least let me tell it what I wanted. I found it, and its called [beets](https://beets.io). Getting a Python app set up on macOS Catalina turned out to be a bit of a process (and not something Ill document here) but I got it running eventually.
I wont bore you with all the features of beets, but I used it because it did everything above but automatically (where possible). Beets still requires some manual intervention when its not sure how to proceed. For example:
- The existing tags are so wonky it has no idea what the music is
- The existing tags match multiple albums
- There are missing tracks
Beets will prompt you with the issue and you can decide how to proceed. It has smart defaults and worked quite well. I dont think it was designed to import an entire library at once, and did crash on me a couple of times. No big deal though, because beets supports [resuming an interrupted import](https://beets.readthedocs.io/en/stable/reference/config.html#resume).
It also had a more sensible genre tagging system, and a [plethora of plugins](https://beets.readthedocs.io/en/stable/plugins/index.html#using-plugins). I ended up using:
- LastGenre — gets the genre tag from [last.fm](https://last.fm) (and has a larger whitelist than Picards)
- FetchArt — downloads a copy of the album art based on the matched album release
- EmbedArt — similar to FetchArt but embeds the art as part of the IDv3 tags
In hindsight I wouldve mapped my new library to a non-NAS drive first (then copied it all over wholesale later), as transfer speeds were sometimes slow when mass importing such a large volume of files.
What I quickly discovered though was that _a lot_ of my music was missing tracks from albums. I ended up having to keep a separate spreadsheet of what I called my “Music Errata”. Turns out in some cases I was genuinely missing files, but the culprit most of the time seemed to be because of a mixture of filetypes. Remember when I mentioned noting any `.m4a` files? Here's where it becomes important.
Beets seems to handle albums of either `.mp3` or `.m4a` files just fine, but when they were mixed together, it would pick `.mp3`s and ignore `.m4a`s (or vice-versa). I found a bash script online that uses `ffmpeg` to convert any `.m4a` files in a folder to `.mp3`, and off I went.
```bash
for foo in *.m4a; do ffmpeg -i "$foo" -acodec libmp3lame -aq 0 "${foo%.m4a}.mp3"; done
```
This script will convert any `.m4a` files in the current directory to `.mp3` using VBR in the highest quality.
Other missing tracks were due to failed Music(.app) downloads, or in rare cases I was genuinely missing some songs. Off I went to acquire the odd missing track.
With how long it took to import my whole library, plus my running list of errata (which was about 50-70 different albums), the process took me well over a week to finish. After the initial import went through, I ran through my errata list and corrected any errors — this step took about 2-3 days since it involved a lot of manual work and very little automation.
## Final Result
After probably two weeks of work — I have it. An organized, properly tagged music library. Not a big deal to everyone, but to me it means everything.
What am I doing with it now? My NAS supports running Plex, so I can serve my entire library though my NAS which pipes into Plex. I can access it outside of the network. I can search by whatever tag I can imagine, and everything Just Makes Sense™ now.
I still have my huge list of music to re-acquire, and have since been slowly chipping away at it. Adding new music is super easy with beets: `beet import <directory of music>`. Beets does the rest.
A nice side-effect of poring over my music library has been re-discovering music I had long forgotten about. Its been a lot of fun to revisit artists that havent had a listen in over 10 years.
A lot of time invested, but so worth it to me. I hope this can serve as a rough guide for someone in a similar situation as myself in the future. For anyone stuck and wanting their music collection reclaimed, please get in touch. I want to help! Good luck.

View file

@ -0,0 +1,48 @@
---
title: "The Fellow Stagg: A Review of the Details"
date: 2022-01-22T21:35:22.320Z
excerpt: Is it the Apple of kettles?
categories: ["tea", "reviews"]
---
{% image "https://cdn.wonderfulfrog.com/stagg-kettle.jpg", "A drawing of a Fellow Stagg kettle", "" %}
The Fellow Stagg is without a doubt the most money I will ever spend on a kettle. Its been lauded in coffee circles, but how does it stack up on the small things? Lets sweat over those details.
## Design and aesthetics
The Fellow Stagg has an attractive design that would blend seemlessly into any home. They come in a variety of colours which helps it mesh with any design. It looks like a kettle. It has a pleasing silhouette. It blends in but isnt afraid to stand out when it needs to. It has a timeless feel.
The LCD screen on the stand is a pleasant two-tone colour. Not white, and not blue. Somewhere in between. The refresh rate is low, which leads to ghosting. Its slight, but cheapens the feel of the product. Fellow themselves draw attention to the high-resolution display, but does not hold up under scrutiny by any means.
## Interaction
The main controls consist of two physical toggles and a dial. The switches have a satisfying click when set into place. Its surprisingly easy to move the switches accidentally when moving the stand around, though. My finger has toggled them by accident a few times now.
The two physical toggles control the Farenheit/Celsius setting (which is displayed on the LCD screen), and the heating mode (hold to keep water at temperature, set to boil to the set temperature and turn off).
The dial has a pleasing “clickfeel” to it, which provides a clicking sensation every turn of the dial. One turn means one degree hotter or colder. The dial itself clicks in to turn the kettle on and off, or start the timer. The click is not responsive at all and sometimes requires several presses before it registers. Disappointing.
There isnt much to navigate with the dial itself, which means no deep menu diving. This is thanks to the switches themselves — a wonderful design decision. The dial is responsible for increasing or decreasing the temperature, and thats it. Once the dial has stopped moving for a moment, the kettle sets the temperature and gets to work. It can be changed mid-boil.
Speaking of temperature control, it keeps the temperature held accurately. It will keep the water boiling if set to the maximum. It has a “set” mode as an alternative, which heats the water to the set temperature, and then turns off.
There is a timer setting to start a stopwatch (not countdown) timer. It gives a brief 3-2-1 countdown, then starts (which is handy when brewing a pour-over coffee). The kettle will emit no beeps or any sound of any kind, which means there are no alarm settings (say a 4 minute timer for brewing tea). To start the timer requires holding the dial down for a second or two. The aforementioned lack of responsiveness means setting the timer can be hit-or-miss. To stop the timer requires one press. If the kettle needs to be turned off while a timer is running, this requires multiple presses. In my mind this is backwards — I would expect a single press to start a timer and a long press to turn the kettle off.
## Handling
The handle has a well-designed grip. It fits comfortably in my hand, with my thumb resting on the top of the grip. There is a piece of metal between the handle and the kettle itself, and it gets hot. I've scalded my index finger a few times when I grip the handle. I assume the metal bit is there for a reason, but they should've compensated for that by making the handle a little further from the kettle.
It is easy to accidentally spill the kettle when first using it. It pours slowly — which is desirable — but I found on the first few goes I would spill water out the top. It takes getting used to. Eventually though it becomes familiar and controlling the flow is simple. It needs barely a tip to get a good stream going, and even less to slow it down.
With a kettle full of water, it has a good weight to it. Not heavy enough to struggle with, but enough to feel weighty. When placing the kettle back down, it has a nice clunk sound to confirm its locked back into place on the stand.
The lid is detachable, which in my mind is a negative. I would prefer it was attached to the kettle, as there isnt a way to place the lid on the counter without it getting wet (or making it hard to pick back up). I wish the knob on top of the kettle were larger, as I occasionally scald my fingers trying to take it off after a kettle has boiled (I tend to make several cups of tea in a short timespan). The knob itself tends to get pretty hot by proximity to the metal part, which doesn't help.
## Conclusion
I think for a consistent coffee consumer this is likely the ultimate kettle. Not necessary to get started, as there are cheaper gooseneck kettles out there. That being said, Id be surprised if this unit does not end up lasting me a long time (and I will be sure to let everyone know). The control offered by a gooseneck does make a difference when brewing pour-over coffee, let me tell you.
On the other hand, if you primarily enjoy tea and coffee occasionally (like myself), you might find yourself frustrated with the slowness of a gooseneck when all you want to do is pour water for your dried leaves. Had we the counter space, Id consider running two kettles. The Stagg would be used for only coffee, and a larger spout kettle for multiple cups of tea. The temperature controls are nice for different brews of tea, but — again, if you are like me — I tend to drink black tea and coffee. I need one setting: boiling.
If you can afford the luxury, and are in need of a gooseneck kettle, the Fellow Stagg wont do you wrong. There are cheaper options though if you want to try it out first. If you are a tea drinker, there is no need to purchase this kettle nor a gooseneck in my opinion. Stick with a spout kettle.

View file

@ -0,0 +1,66 @@
---
title: How does React's Suspense work?
date: 2019-10-26
excerpt: The Suspense is killing me.
categories: ["react"]
---
First and foremost, this post is writing about stuff that is part of the Experimental branch of React, so by the time you read this it could be out of date. Ill try to keep things up to date as they develop.
Reacts recent post on [Concurrent Mode](https://reactjs.org/docs/concurrent-mode-intro.html) got me thinking its finally time to sit down and experiment with the Suspense API for data fetching. I dug into the blog post but quickly got lost with how Suspense actually works.
What is Suspense exactly? Suspense suspends components until they are ready. How does it know when components are ready? Turns out its a lot like [Error Boundaries](https://reactjs.org/docs/error-boundaries.html). When `throw Error` happens, an Error Boundary catches the error so the whole app doesnt crash. Suspense works similarly, except instead of errors, its looking for a `Promise` object. This is a little weird to most web developers I imagine… since when did we start `throw`ing promises? Once I understood that though, I started to get how a `<Suspense />` component can tell when data is loaded. Once the Promise (or Promises) resolves, the component is ready. There is an example on the React blog post:
```js
const resource = fetchProfileData();
function ProfilePage() {
return (
<Suspense fallback={<h1>Loading profile...</h1>}>
<ProfileDetails />
<Suspense fallback={<h1>Loading posts...</h1>}>
<ProfileTimeline />
</Suspense>
</Suspense>
);
}
function ProfileDetails() {
// Try to read user info, although it might not have loaded yet
const user = resource.user.read();
return <h1>{user.name}</h1>;
}
function ProfileTimeline() {
// Try to read posts, although they might not have loaded yet
const posts = resource.posts.read();
return (
<ul>
{posts.map(post => (
<li key={post.id}>{post.text}</li>
))}
</ul>
);
```
In this case, the `resource.user.read()` (or `resource.posts.read()`) `throw`s a Promise until the data is available, then it returns. The `<Suspense />` component returns the `fallback` until the thrown Promise resolves (either success or fail). It seems unintuitive to `throw` a Promise, but then again, so did JSX and now its second nature to me. I couldnt imagine life without it.
Another nifty element of Suspense is the ability to control how the UI loads based on data fetches in progress. Its possible to wrap a bunch of thrown promises together by a Suspense so the UI waits for all of them to finish first.
Another option is to nest Suspense options. This allows for a gradual reveal of the UI in the event a data fetch returns earlier than other requests. It gives the developer complete control over how the UI renders. Returning to the example above in its current configuration, the `<ProfileDetails />` component will load and unlock the top level `<Suspense />` wrapper. That will render the `<ProfileDetails />` component and render the next `<Suspense>` blocks `fallback` until the components inside load. Alternatively, the `<Suspense>` block that wraps the `<ProfileTimeline />` component could be removed to produce this:
```js
function ProfilePage() {
return (
<Suspense fallback={<h1>Loading profile...</h1>}>
<ProfileDetails />
<ProfileTimeline />
</Suspense>
);
}
```
This would require both components to finish loading until they are then both revealed at the same time. The developer has complete control over the loading behaviour and can modify it with minimal changes.
This only covers a small slice of the upcoming changes with Concurrent Mode, but I had a bit of trouble grokking the foundations. This helped me understand how Suspense works, and now Im excited to start learning about the rest, like Transitions!

View file

@ -0,0 +1,99 @@
---
title: Version 2
date: 2021-09-19T00:50:06.409Z
excerpt: Electric boogaloo.
categories: ["mdx", "development", "netlify", "eslint"]
---
{% image "https://cdn.wonderfulfrog.com/v2lines.png", "That's a lot of lines!", "" %}
Welcome to version 2.0! I've been working away at the site for a few weeks now. There have been plenty of changes under the hood, and the front-facing side of things look similar.
I took the time to do a visual refresh, taking inspiration (and sometimes copying) from my favourite sites from other developers. I'm happy with how things look now (and there is dark mode). There will be undoubtedly more tweaks as time goes on.
What's new?
## The catalogue
The flagship feature of this version is my catalogue feature. As the page describes, I wanted a repository to keep track of my favourite (and not) stuff. A nebulous descriptor, but what I'm trying to say is that it's anything and everything I had something to say.
Right now it's capturing books, podcasts, and comics. It's something that I will refine and add onto over time. I have plans to add music, video games, and even choice YouTube videos.
Under the hood everything is a Markdown file with front matter to help give additional information. Ratings, authors, URLs, and so on.
I dabbled with using [Airtable](https://airtable.com) to power everything, and that did indeed work… but I really like the idea of building everything myself. I opted to use flat files instead. Super portable and easy to work with.
## MDX
This won't be evident from the site itself, but I switched (back) to using [MDX](https://mdxjs.com/) to power my content. I had it for a while but eventually switched to plain Markdown. From myself in my commit logs:
> I had initially planned to start using .mdx files more liberally in my writing, but have decided to keep things as plain Markdown for maintainability. I prefer to write my posts in an external editor and not everything supports .mdx files.
That time has come.
At the time, using MDX with NextJS was a complicated process. Now there are a [multiple](https://github.com/vercel/next.js/tree/canary/packages/next-mdx) [libraries](https://github.com/kentcdodds/mdx-bundler) to choose from. I went with [next-mdx-remote](https://github.com/hashicorp/next-mdx-remote) for the simple reason that I was able to get it working quickly. I think [mdx-bundler](https://github.com/kentcdodds/mdx-bundler) is more powerful (and is going to be the new beau for NextJS developers), though.
I don't have any grand plans at the moment to build anything more intense than that, but I'm happy with the ability to do so.
## Netlify CMS
I've loved [Netlify CMS](https://www.netlifycms.org/) since I discovered it, but when I opted to move my deployments to [Vercel](https://vercel.com/) I lost the ability to use it. Fast forward a year or two and [other developers have come to my rescue](https://github.com/ublabs/netlify-cms-oauth) with other identification methods. Now I can use Netlify CMS while hosting on Vercel.
Having Netlify CMS was essential for me because I wanted a way to manage my site content without being near my home computer with all my development tools set up.
I had hoped by now there'd be other options but it seems they've carved out their niche. Everyone else wants you to use their headless CMS service. Bleh.
I may end up making my own competitor to Netlify CMS one day…
```jsx
export default function Youtube({ id, title }: Props) {
return (
<iframe
allow="fullscreen; picture-in-picture"
src={`https://www.youtube-nocookie.com/embed/${id}`}
title={title}
></iframe>
);
}
```
It means I can embed a YouTube video in a post like this:
```
<Youtube id="vEvlWyb29ik" />
```
## Miscellaneous
I spent a lot of time making sure the developer experience (read: me) was enjoyable while working on it. I'm hoping now though that I won't have to make too many changes and can focus on building out the content.
Some favourite packages of mine in no particular order:
* [eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y) Accessibility is important, and this will catch the easiest errors before it leaves the editor!
* [eslint-plugin-simple-sort](https://github.com/lydell/eslint-plugin-simple-import-sort) I like things being in alphabetical order. This took some extra configuration to get it *just right*. I'll share my config below.
* [rehype-img-size](https://github.com/ksoichiro/rehype-img-size) Adds the width and height of any (local) image that is processed by `rehype`.
* [rehype-slug](https://github.com/rehypejs/rehype-slug) Adds `id` tags to all Markdown headers.
Simple sort `eslintrc` config:
```
"simple-import-sort/imports": [
"error",
{
"groups": [
// Packages. `react` related packages come first.
["^react", "^@?\\w"],
// Aliases and absolute paths.
["^(utils|types|components|styles)(/.*|$)"],
// Relative paths.
["^\\."],
// SCSS/CSS.
["^[^.]"]
]
}
],
```
What this does is sorts all packages first (and bumps `"react"` to the top), then local dependencies (that I have aliased to `components`, `types`, etc), and then finally relative path imports and CSS files.
That's all for now! Hope you like the new site. ✌️

View file

@ -0,0 +1,27 @@
---
title: Week 1
date: 2021-08-15T19:01:49.565Z
draft: false
excerpt: A new week, a new format.
categories: ["weaknotes"]
---
I'm trying a new format with my writing. When it comes time to write my monthly log, I usually have either too much or not enough to write about. I'm taking a page from a [few][weaknotes1] [other blogs][weaknotes2] I found that use "weaknotes", which are Twitter-like posts of short (possibly random) thoughts.
This was the first week back after my vacation. Coming back to work after a hefty vacation is always weird. It takes me a good 24-48 hours to really "get back into it". It didn't help that a heat wave took over as the week went on. I felt horribly unproductive and unfocused.
With all the Blizzard news flying around I was ready to quit Blizzard games for good (I even said so in my most [recent post]), but I've come to question the efficacy of boycotts when it comes to enacting change. [Axios had a great article on the subject][boycotts], and I've seen other gaming outlets with the same sentiment. I've decided to stave off a boycott. I'd rather follow the advice of the developers and support causes that help them directly.
The [immune system] is _hardcore_, yo. Every time I learn a little bit more I'm impressed that something so complex can exist on such a tiny scale. Our bodies do so much that we can't even notice. The macrophage bloodlost is strangely hilarious but terrifying.
We're nearly done watching [Deep Space 9]. The first few seasons were pretty rough, but they found their footing eventually. Once Worf made his big entrance I feel like the series really took off. I'm happy to see the Romulans again after not seeing them for so long. I feel like they have some intrigue to them, whereas the Cardassians are always dicks. Then again, it's always fun to hate on Dukat. Vic Fontaine has to be the best thing the series added. [The episode that was basically the plot of Ocean's 11][baddabang] was so fun!
Have a great week gang.
[weaknotes1]: https://alicebartlett.co.uk/blog/weaknotes-1
[weaknotes2]: https://meowni.ca/weaknotes/
[recent post]: /posts/recently-08-2021
[boycotts]: https://www.axios.com/activision-blizzard-boycott-a2d85fa6-9826-4675-928f-a49eef5e5dfd.html
[immune system]: https://www.youtube.com/watch?v=lXfEK8G8CUI
[deep space 9]: https://en.wikipedia.org/wiki/Star_Trek:_Deep_Space_Nine
[baddabang]: https://en.wikipedia.org/wiki/Badda-Bing_Badda-Bang

View file

@ -0,0 +1,54 @@
---
title: Week 2
date: 2021-08-22T22:58:02.387Z
draft: false
excerpt: Bit of a weird week.
categories: ["weaknotes"]
---
{% image "https://cdn.wonderfulfrog.com/noblewarrior_d2rbeta.png", "Like Link in Zelda, I have NobleWarrior the ever-living Paladin. Never the same character, but I always make a new one every so often.", "" %}
- [More stories from victims at Blizzard]. I'm saddened and disappointed to hear that Morhaime was largely an accessory and protected the harassers. I had him pegged as one of the last few good executives. I guess they don't exist after all.
- This whole notion of coworkers being "family" needs to die. They can be friends, but the whole "family thing" is a gross tactic employed by people in positions of power to make employees complacent.
I am pro-union, for the record. Unions help protect employees, especially the marginalized. I hope to see game developers unionize in my lifetime.
[I like this article for its actionable steps at the end]. I want to see more of this. People are ready to fight for this but aren't sure how. This helps.
- The term sideloading needs to go away. It's the term used when talking about installing "unauthorized" software on your iOS device. It creates this irritating amount of nefariousness with something that is not nefarious at all. We can thank Apple for that one.
Installing the software we want has been something we've been doing for decades now with the earliest computers. That's all it is -- installing software. We should be allowed to do it, but Apple has decided their bottom line is more important than giving their consumers freedom. At least they care about privacy, right? Oh wait.
- [A collision with NeuralHash]. A lot of tech-talk here but the crux seems to be that Apple's CSAM technology is not infallible after all. What's on display here is that two completely unrelated images end up being confused as the same thing by Apple's tech. Not to mention that this happened in a matter of _hours_ once the tech was released.
If you're out of the loop, CSAM stands for Child Sexual Abuse Material, and Apple was trying to find a way to scan for this content on the user's device. There is no good way to add this to every iPhone without it being a gross invasion of privacy and rife for abuse by the government, police, etc. I respect Apple for making this a priority, but their implementation is no good.
If anything this displays that the system has some glaring flaws and god only knows what will happen from that. Apple claims that everything will be reviewed and protected against abuse, but if their App Store review policy is anything to go by then this should inspire absoutely zero confidence. In fact, it should make everyone deeply concerned.
- [The Taliban are carefully crafting their social media presence]. They skirt the line very carefully.
- [Dubai Is A Parody of the 21st Century]. I'll let the video speak for itself. I don't understand why anyone (read: white people) would want to live here. That is to say, I understand, but I don't understand why _they_ would.
- [It's really hard to like Apple right now], or in general actually. Particularly horrible is this portion (emphasis mine):
> When Georgia legislators introduced a pair of app store bills in early February, Apple immediately hired five new lobbyists to advocate against the legislation in the state. And during the frenzied debate following the bills introduction, Apple lobbyists told legislators that the company could pull out of two important economic development projects in Georgia — **a $25 million investment in a historically Black college in Atlanta** ...
Give us what we want or we pull funding. Disgusting. This is the same company that touts "black lives matter". What they really meant is "Black Lives Matter... when it's convenient for us". Fuck lobbying.
- We finished Deep Space 9. The final was a whirlwind finish with more sad parts than I expected. It was more bittersweet actually. I hope we get to revisit some of these characters in Voyager. Speaking of, we should be starting that soon.
- Playing through the D2R Open Beta. Trying out more classes. They fixed some of the annoying crash and chat bugs, but it still craps out on me now and then. Suddenly I see "You have left World Chat" with no way to rejoin. Now I can't talk to anyone. If I restart the client it works fine.
- [Some alarming legislation coming from our country].
- Finally got to watch Studio Ghibli's latest movie [Earwig and the Witch]. Checking the reviews it seems to be universally panned. I enjoyed it quite a bit. It's a different look but I still get that "Studio Ghibli" aesthetic and feeling. Especially the colour choices and character design. The ending is abrupt, which is the harshest criticism I can give it. Otherwise it was a fun and super charming movie! The soundtrack is amazing and channels the prototypical prog rock sound well. So good in fact that I'm hunting for the music to add to my collection!
[more stories from victims at blizzard]: https://www.upcomer.com/activision-blizzards-lawsuit-may-force-change/
[i like this article for its actionable steps at the end]: https://www.polygon.com/22627759/activision-blizzard-lawsuit-games-worker-unions-labor-organizing
[a collision with neuralhash]: https://mjtsai.com/blog/2021/08/18/neuralhash-implementation-and-collision/
[the taliban are carefully crafting their social media presence]: https://www.washingtonpost.com/technology/2021/08/18/taliban-social-media-success/
[dubai is a parody of the 21st century]: https://www.youtube.com/watch?v=SacQ2YdVOyk
[it's really hard to like apple right now]: https://www.politico.com/news/2021/08/20/apple-takes-on-state-legislatures-georgia-50629
[some alarming legislation coming from our country]: https://www.politico.com/news/2021/08/20/apple-takes-on-state-legislatures-georgia-50629
[earwig and the witch]: https://www.imdb.com/title/tt12441478/

View file

@ -0,0 +1,57 @@
---
title: Week 3
date: 2021-08-30T00:07:20.030Z
draft: false
excerpt: The One Where Apple Sucks A Lot.
categories: ["weaknotes"]
---
{% image "https://cdn.wonderfulfrog.com/podophobia.png", "", "" %}
I'm noticing that these weekly posts are turning into a link dump rather than a weekly look at what's going on in my life. I'm not sure if that's what I want to do going forward, and I'll have a think on it.
On Friday _No More Heroes III_ was released. I've been looking forward to a new NMH game for a while. _Travis Strikes Again_ was fun for a bit, but I'm glad to be back into the Garden of Madness! It's everything I could've hoped for and expected. I was playing the game in front of my friends and their confused reactions to everything was delightful. It's a game you really need to take at face value and question nothing.
Sunday was movie day. We watched _[Wag the Dog]_ and _[The Lobster]_. _Wag the Dog_ was a dark comedy about the industry of politics and media, and their relationship. Watching it in 2021 gives it an even more sinister edge. Interestingly it came out only a month before the Clinton-Lewinsky scandal.
_The Lobster_ was an... interesting movie. It was very uncomfortable throughout. I don't recall ever actually enjoying anything I was watching. I couldn't stop watching though, it was strangely gripping. I don't want to go too far into detail with the plot, but I'll say it starts out with our main character being escorted to a hotel after his wife leaves him. He has 45 days to find a new partner, or else he will be turned into an animal. There is no emotional connection to the characters. In fact the film (purposefully, I imagine) seems to be largely devoid of any emotion at all. All of it comes from the viewer's reactions. I have a surprising amount to say about a movie I don't recall ever enjoying. But I watched it. All the way!
It's hard to recommend it because I think you kind of need to know what you're getting into first. I was warned the movie was "weird" and kind of prepared myself for it, and even then my expectations were incorrect. It does feel like an "important movie" that people should watch at some point in their lives.
Next week we're on vacation again, albeit much shorter this time. I'm excited for the break. I have some project ideas to work on for a few days.
Anyway, onto the aforementioned link dump!
- [I had no idea Quake 1's development was so troubled][quake]! At the time it felt like id software were nailing it.
I'm glad to see the surgance of "boomer shooters" (although I prefer the term retro shooter), as it's such an undertapped market. The article says it best: "bland realism". I want the off-the-rails freedom of movement, ridiculous guns, big explosions, giant enemies, endless carnage! No cinematics! No story! Nothing but mindless action!
- How can we trust an entity like Apple to handle something as complicated as their approach to CSAM when [they can't even handle children using their services][apple_children]? This is basic stuff here. Like `if age < 17` levels here! Come on! They rule their App Store with an iron fist, and yet won't even take the small amount of time and effort to ensure that their apps are following their own guidelines. They have access to a user's age since _every device_ has to use an Apple ID. Ridiculous.
- I didn't know this prior to the most recent lawsuit leveled at Activision Blizzard, but the [Overwatch cowboy was named after real-life Jesse McCree][mccree_rename], who up until August worked at Blizzard. I'm glad that they are opting to change his name with all that has come to light. Going forward, Blizzard won't be naming in-game characters in any game after employees. Smart move. They've had to remove quite a few other references since the fallout began.
Linked in that article is a [great explainer][blizzard_explainer] to prime yourself if you'd like to learn more about the recent news with Blizzard.
- [The Fortnite meta verse continues to get weirder][fortnite]. This feels a little tone-deaf given that Fortnite is a cutesey cartoon shooter game. It's also a game that deals heavily in microtransactions. It's a nice gesture, but something that should've been shot down when the meeting was taking place. Big guess as to why that didn't happen...
- The big news heading into the weekend was Apple settling a lawsuit. [Apple relents a little and allows mentions of other in-app purchases in the App Store][apple]. Great, big win! Right...? Not quite. The language in the settlement is very specific. Developers are free to mention other avenues of purchases in email, websites, whatever, _but not inside their own app_, where it's the most important. They pat themselves on the back like they did everyone a huge favour, yet change nothing.
[This thread has a great breakdown of what the settlement entails][apple_thread]. By accepting any settlement money, developers cannot sue for antitrust violations, or join any similar lawsuit. Such a scam!
It's really distressing that the wider tech sphere has taken the headlines and ran with it. They're giving Apple far too much credit for doing nothing.
Lastly, the lawyers claiming they need 30% of the $100M for developers is a delightful bit of irony. 30% being the same percentage Apple takes of all in-app purchases.
- Secret side note since you made it to the bottom: I really really like False Knees. I learned that the painting style is gouache (pronounced "gwash"). If you like Uses This, [they have one on Joshua Barkman][usesthis] (the author of False Knees)!
[falseknees]: https://falseknees.com/408.html
[quake]: https://www.rockpapershotgun.com/quake-renaissance-where-is-quake-and-how-did-it-get-here
[apple_children]: https://www.techtransparencyproject.org/articles/apples-app-store-loopholes-put-children-risk
[mccree_rename]: https://www.polygon.com/22621751/overwatch-mccree-renamed-jesse-mcree-blizzard
[blizzard_explainer]: https://www.polygon.com/22608372/activision-blizzard-lawsuit-explainer-sexual-harassment-frat-boy-discrimination-gender-fired
[fortnite]: https://www.axios.com/mlk-experience-fortnite-time-2a3f7ff0-1ddb-40c5-84a2-7212ae31af19.html
[apple]: https://zd.net/3yoPsP4
[apple_thread]: https://twitter.com/rjonesy/status/1431080067942207488
[wag the dog]: https://en.wikipedia.org/wiki/Wag_the_Dog
[the lobster]: https://en.wikipedia.org/wiki/The_Lobster
[usesthis]: https://usesthis.com/interviews/joshua.barkman/

View file

@ -0,0 +1,17 @@
---
title: Week 4
date: 2021-09-13T00:07:20.030Z
draft: false
excerpt: It's the fourth one.
categories: ["weaknotes"]
---
{% image "https://cdn.wonderfulfrog.com/C0664BF8-4E3C-4285-8F5C-BECD7E0347B1.jpeg", "", "" %}
Been a while since my last entry. Since then I went to Calgary again. I didnt end up doing much this time. I was by myself for most of the trip. I underestimated how weird it feels not only being alone but in an unfamiliar place. It hit me harder than I ever expected. On the upside I managed to get work done on my site (which should be evident soon).
I got a new pair of glasses. Its been four years since I got my last pair, and the prescription jump is not insignificant. Im still getting used to them. My first time with progressives. I love the frames, though!
I discovered the joy of [Copic markers]. Theyre fun! And gorgeous. And expensive. Ill have to pace myself. See some quick doodles at the start of the post.
[Copic markers]: https://copic.jp/en/product/

View file

@ -0,0 +1,49 @@
---
title: Whats Next?
date: 2020-09-13
excerpt: From one framework to another.
categories: ["nextjs", "gatsbyjs", "tailwind"]
---
This site is now powered by NextJS. This is the site rebuild I have been talking about for some time, but it didnt turn out the way I was planning.
## Why NextJS?
Short answer: because I wanted to learn it.
Long answer: I wasnt completely satisfied with the GatsbyJS ecosystem. It lead me to learn GraphQL and a little bit of Webpack, but it felt largely like a black box to me.
More recently though I read about [some troubling details][gatsby-contractor] a contractor faced while working for GatsbyJS. I was not at all impressed with how GatsbyJS handled this. Their CEOs [empty apology in an open letter][gatsby-open-letter] reeks of “techbro culture” to me. The whole situation is a real mess. Given that Ive personally been unsatisfied with the ecosystem, this seemed like a good time to ditch GatsbyJS in favor of something else. But what...?
For a while I toyed with the idea of making it myself, but that seemed like too much work for how little I need. Im not that interested in tweaking every aspect of my build process. I like to find opinionated tools that align with my goals instead of making my own.
_Aside: An opinionated tool in my case is a framework or library that has opted to make some choices or “sensible defaults” that align with how I would potentially use it. I dont need to spend time reconfiguring everything to work how I want it to._
I tried to find some lightweight frameworks that read Markdown (or MDX) files and create HTML files from them. After reading [this post][gatsby-vs-next], I was convinced that I should try out NextJS. More importantly the post told me how NextJS worked. It made total sense to me:
- Read the files we want
- Use remark to convert them to HTML
- Build pages from that output
Done. Simple. No need to add GraphQL. Right from the get-go everything made sense to me, which I cant necessarily say for GatsbyJS.
## What about Tailwind or Theme UI?
I previously stated that I was planning on using [TailwindCSS][tailwind] and then later [Theme UI][theme-ui] to help style my site. I ended up flitting between the two for some time before deciding that they were too heavy-handed and too complex for what I needed. It also felt like I ended up fighting with the default style, trying to remove style I didnt like. This sounds like an opinionated tool that doesnt align with my goals. I opted to instead do my styling by hand. I only use a small set of the standard HTML elements, so I neednt worry about making sure every single element is styled properly. Instead I opted to:
- Set the font to something I like (in this case all system defaults)
- Set some CSS variables with a color scheme I designed
- Gradually style every element using my current content as a test
- Add some font scaling
Called it done there.
Now that I have the basic framework down, I plan to flex my developer muscles and slowly introduce some of my own character and add delight into my site. I want to make it a fun place to visit.
As much fun as a website can be, anyway. 😄
[gatsby-contractor]: https://clacified.com/tech-science/news/nat-alison-testimonial-about-gatsby
[gatsby-open-letter]: https://www.gatsbyjs.com/blog/open-letter-to-gatsby-community
[gatsby-vs-next]: https://jaredpalmer.com/gatsby-vs-nextjs
[tailwind]: https://tailwindcss.com
[theme-ui]: https://theme-ui.com