LSDJ Tutorial

Before the Pandemic, I once saw Chipzel play Bit Bash and it was phenomenal. Since I don’t really know much about writing chiptune music, I did some research and found out she uses Little Sound Dj (LSDJ) for some of her more recent stuff. And also a longgggg time ago I messed around MilkyTracker. So I don’t really know what the point of this post is other than to post some resources and reflect openly about how I want to write video game music. Should I compose it like I’d compose for a music theory class? Should I record some instrumental licks and go from there? I have no idea what I’m doing haha

  • Download Little Sound Dj
    • Currently messing with BGB as my emulator
  • Milky Tracker
    • I didn’t need a Gameboy emulator when I used it but the interface is similar to other Chiptune programs
  • Flat
    • I used to use Sibelius and Finale way back in the day but this is basically the modern version of that

Indexing JetBrains Toolbox Application

I’ve had Alfred search issues on my M1 MacBook Pro when it came to trying to run applications installed by JetBrains Toolbox. I used the Alfred self-diagnostics tool to figure out what was going on with one of the apps, Rider, and received the output below:

Starting Diagnostics...

File: ''
Path: '/Users/bergren2/Applications/JetBrains Toolbox'


Check file cache database...

✅ File cache integrity is ok


Check if file is readable...

✅ Alfred has permissions to read this file.

Unix Permissions: 493
Underlying Type: NSFileTypeDirectory
Extended Attributes: (


Check if volume '/' is indexed by macOS...

✅ Indexing is enabled on this drive


Check direct file metadata...

⚠️ Direct metadata is missing, this file is likely not indexed by macOS

Display Name: 
 Other Names: 
Content Type: 
   Last Used: 


Check mdls file metadata...

❌ macOS metadata missing essential items

kMDItemFSContentChangeDate = 2023-01-20 02:20:40 +0000
kMDItemFSCreationDate      = 2023-01-20 02:20:40 +0000
kMDItemFSCreatorCode       = ""
kMDItemFSFinderFlags       = 0
kMDItemFSHasCustomIcon     = 0
kMDItemFSInvisible         = 0
kMDItemFSIsExtensionHidden = 0
kMDItemFSIsStationery      = 0
kMDItemFSLabel             = 0
kMDItemFSName              = ""
kMDItemFSNodeCount         = 1
kMDItemFSOwnerGroupID      = 20
kMDItemFSOwnerUserID       = 501
kMDItemFSSize              = 1
kMDItemFSTypeCode          = ""


❌ Troubleshooting failed

The root of the issue was that the application wasn’t showing up in Spotlight, so I took to the Internet to search for a way to re-index or add the application. It led me to run this:

mdimport ~/Applications/

And while this seemed to do the trick, I was still getting the instance of Rider that exists in ~/Library/Application, but only in Alfred. And Alfred is supposed to ignore it! So knowing that Spotlight was correct — it was only showing the version in ~/Applications/ — I typed “reload” into Alfred to reload the cache and remove the extra instance.

I first became an Alfred user back when Spotlight wasn’t as powerful, and tools like it and Quicksilver were a must-have. Now? I’m not so sure. However Alfred has become a staple part of my workflow, even when it comes to generating GUIDs or quickly opening Jira links when I have ticket ID. And remember Ubiquity for Firefox? Most of that functionality is replicated just fine in Alfred, but I still dream about highlighting an address and seeing it pop up on a map. That was peak Late Aughts.

Edit: I ran into issues indexing core Mac apps — things like and weren’t showing in Spotlight. It turns out they aren’t actually in /Applications and are instead in /System/Applications — you can easily verify this in terminal using ls on the respective directories. The solution was to delete ~/Library/Preferences/ and restart, which I found out about through this guide. Now that I know that this file was being buggy, I wouldn’t be surprised if it was another buggy casualty of the transfer from my old MacBook Pro.

More Cantonese

I’m learning more! I modified my first post to include more Instagram links and removed the “resources I want to try” (they didn’t pan out). Below I embed a few videos from creator Adam Tan that I enjoyed because they encapsulate the subtleties in learning Cantonese — things that I haven’t seen explicitly stated elsewhere, even in some of the resources I’m already using to learn.

Homebrew M1 Migration

As part of my MacBook upgrade, I directly transferred my old laptop’s data into my new one. So when I naively ran brew update I received the following:

/usr/local/Homebrew/Library/Homebrew/cmd/ line 37: /usr/local/bin/git: Bad CPU type in executable

Rather than try to debug this and countless other libraries not working because they were intended for Intel instead of ARM, I used the opportunity to uninstall Homebrew and start fresh. After reinstalling Homebrew and adding the recommended commands to my .zprofile to add Homebrew to my PATH, I was in good shape.

Hello Vim, my old friend

When checking my .zprofile for errors, I noticed Vim was yelling at me. That reminded me of my dotfiles repo, so I ran to its README to run the installation instructions. And they worked! So while Vim these days is used more for the occasional commit message edit and not my entire workflow, I’m still very grateful for having a good jumping off point for a fresh install. It also reminds me I should add things like fnm and gh if I want them to be part of my toolchain by default.

Speaking of Git

As soon as I finished that thought I ran into this error trying to commit:

error: gpg failed to sign the data
fatal: failed to write commit object

Great! So now I need to figure out how to get my signing working again.

1Password CLI and SSH Signing

1Password has a CLI that can be downloaded directly or installed via brew install 1password-cli. I just had to check a few boxes and told 1Password to configure my ~/.ssh/config correctly.

1Password Developer configuration screen

After I imported my old key to 1Password it prompted me to set-up commit signing with SSH — I didn’t know that was a thing! So after adding my SSH key as a signing key (instead of as an auth key — it was already added as such), I was able to see the fruits of my labor:

My latest dotfiles repo commit, in all its verified goodness

Because the new MacBook has a fingerprint reader, I can easily add that as an additional check whenever I need to sign my commits. Maybe not the most necessary given what I do day-to-day, but I think it’s neat and glad it was so easy to use.

MacBook Upgrade

I finally caved and upgraded my 2015 MacBook Pro to a 2021 M1 Pro MacBook Pro. I had toyed with upgrading the battery on the 2015 MBP because that was the major pain point (couldn’t really go anywhere unplugged), but I also missed having more screen real estate and the fan would kick on for the simplest tasks. Now that my data transfer is complete, I’m taking inventory of the applications I use and figuring out which ones are worth keeping around. So far, here is my list:

Most of these apps “just worked.” The few that didn’t I just had to redownload the M1 image and I was fine — all of the data was preserved, and at most I just needed to re-login.


  • I had to rebind Caps Lock to Esc
  • Edge didn’t sync some settings, such as default search engine or remembering passwords 🙄

Next Up

  • JetBrains silliness listed above
  • Fork is crashing on launch, so will need to figure that out
  • Homebrew updates, key updates, etc
  • Because I transferred my old MacBook directly to my new one, there’s seven year’s worth of cruft I need to work through

Cantonese Learning Resources

Charmander: "Person speaking to me in Chinese"
Ditto as Charmander: "Me trying to reply in Chinese"

Howdy! Since the pandemic I’ve put a little more effort into learning Cantonese. I didn’t learn growing up but was surrounded by it on my mom’s side. This first table is the resources I’ve found so-far that are pretty helpful:

Jyutping the romanization scheme
Mango Languageshttps://mangolanguages.comMight be free with your library! It is in Chicago. Good for phrases and hearing pronunciation, plus they explain cultural differences.
Plecohttps://www.pleco.comDictionary app
Flashcards Deluxe can setup the flashcards in Google Drive and then it’ll sync
Cantonese Keyboard app that uses Rime-Cantonese as a backbone
Dropshttps://languagedrops.comGood for vocab, learning characters and hearing pronunciation

So far I think the trick with a lot of these apps is a) making sure I’m using vocabulary and phrases that a native Cantonese speaker would use, and b) learning in such a way that I can write both by hand and by typing. The former comes with any language, and the latter comes with the day and age we live in. A big part of learning anything at a later age is getting over making mistakes and trying to be a perfectionist, so it helps me to write out these challenges explicitly so I can hopefully overcome them as obstacles.

Also to address the former, I follow a bunch of creators, many of whom I found via CantoTok. Here are some of the ones I could easily find:

Second post of 2022 wooo

I haven’t been blogging a lot — since the pandemic, really — and my posts have been more focused on the technical rather than on the details of my life. But given the recent collapse of Twitter, I revisited the notion of self-publishing. This blog post made the rounds on Mastodon (yes, I’m on Mastodon), and I resonated with the following:

You are pouring your words into increasingly closed and often walled gardens. You are giving control – and sometimes ownership – of your content to social media companies that will SURELY fail.

Scott Hanselman, Your words are wasted

As if the Universe wanted to reward me for scratching that itch, I recently regained access to my Flickr account that had all of my old blog photos, and I found my blog backups that in theory should date back to 2005 — the year I started this blog.

Now that I’m older, I know I don’t have the same appetite for “being online” like I did when I was 16. But I want to attempt to re-unify all of the parts of my online presence, even if it’s just gathering the pieces for myself and not publishing them back out to the world.

Happy New Year

Growing up, New Year’s Eve used to be an annual tradition of code updates to my blog. I don’t have the same drive that I did back then, but I did get a chance to update my list. Below are the fifty resolutions I want to tackle in 2022:

  1. Rock climb more
  2. Workout regularly to lose weight
  3. Learn Cantonese
  4. Learn drums
  5. Play more double bass
  6. Write more
  7. Learn SketchUp
  8. Fantasy football site
  9. Get new glasses
  10. Publish a video game
  11. Learn Godot
  12. Learn Blender
  13. Learn Procreate
  14. Practice guitar
  15. Learn mandolin
  16. TI4 rules app
  17. Fix record player
  18. Königsberg for a single language
  19. Catalog books
  20. frame and hang the posters
  21. Raspberry Pi project
  22. Become a home inspector 
  23. Finish movies on scratch poster
  24. catalog board games
  25. Finish CS masters degree
  26. Get a Real ID + renew passport
  27. Teach Iggy ASL
  28. Practice tarot regularly
  29. Re-learn piano
  30. Play mahjong regularly
  31. Get really good at Excel
  32. Revitalize your blog
  33. Create a budget!
  34. learn a fighting game on a fight stick with decent netcode
  35. information radiators for the office
  36. Bike more (ebikes or your own)
  37. Author a children’s book
  38. Get good at using the sewing machine
  39. Get good at solving math contest problems
  40. Write a D&D campaign 
  41. Arduino project to monitor plant soil humidity levels
  42. Grace Lee Boggs learning project
  43. Start a software co-op
  44. Start cooking again
  45. Write sheet music regularly
  46. Eat healthier
  47. Set up Hubitat
  48. Learn how to make chiptune music
  49. Contribute to civic open-source software
  50. learn data viz (,, etc)

It spans from simple to ambitious and everything in-between. We’ll see what sticks!

New Year’s Resolutions

My list is currently at 32 — when I get to 50 I’ll make sure I don’t have any repeats and then probably rank them or something.

One of those items is to give this blog more attention. I’ve written even less in 2021 than I did in 2020, so 2022 could be a great time to turn it around. And even just knowing that I’ll probably use this space to write more tech posts instead of the emo posts of yesteryear — totally fine by me. If anything, it’s a perfect example of narrative documentation that can later be compiled into something more… expository? Is that one of the writing forms we learned in middle school? I swear most of the crap we learned growing up we had to unlearn later because it was taught incorrectly or without the correct context or nuance. Or it was just flat-out racist. (There’s all the obvious “X was omitted from history class” ones but check out just how many tunes you know are actually minstrel songs you never learned the full history of!)

I have the next few weeks off so might do a follow-up post before the end of the year. But if I don’t, have a good rest of 2021 and see you in 2022!

Re-approaching Productivity

I bought David Allen’s Getting Things Done (GTD) oh so many years ago (I think when I bought my first Kindle!), but I never finished it. I’m sure a big part of it was getting distracted — there’s no denying that — but I think I’m also a bit hesitant to revisit it. “Productivity” is a scary word for me, and I think part of that is its abuse within the framework of capitalism.

I think I’m ready to revisit it now. When I was learning from Manager Tools, I was just beginning my drift even further leftward from my already liberal identity. During that time, I was cognizant of the primary audience being business owners, managers and stakeholders — not the stumbled-into-managerial-role I had at the time. I have a feeling that something similar will hold for GTD, and therefore I need to have a similar approach to learning from it.

So I’m deciding to try out the audiobook version of GTD, which will give me the guide rails I need and also give David Allen’s updated version a chance. I don’t expect him to even mention capitalism, but I do expect a bit more self-awareness. Probably Elizabeth Warren-levels of awareness.

I think my own environment and context has changed significantly enough that the concepts I’m currently tackling — productivity, equity, mental health, neurodivergence, Left ideologies — are driving me to unify them in some way or another. I don’t expect something neat and tidy here, but — in the tradition of Grace Lee Boggs — I think exploring how they’re related will push me to a greater understanding of how we can continue to evolve and push for change.