EVC #5: NFTs & cyberpunk, D3.js learnings, and ProjectionalEditing

NFTs (non-fungible tokens) seem to be everywhere in the press and on social medias. While I admittedly don’t get the enthusiasm behind the basic “this meme as a token”, I’m excited to see virtual identities and items become more prominent outside of videogames. In CS:GO your weapon skins might be worth thousands of dollars, with no advantages other than being cool in that specific community. I could see how people who own certain NFTs who make them look cool in certain subcultures would want to showcase them on websites, VR environment, etc. I’m excited to see what infrastructure gets built to make this possible; couple things that come to mind:

  • A “digital inventory” where you can pull assets from different platforms to verify ownership. As a dev, I can easily pull in everything the user owns and let them use it in my product. It could also be used to show your “rep” in certain forums for example.

  • A “normalization” engine for assets. Each NFT should be able to have a 3D, 2D, and text-only representation to show across platforms. Epic Games or Unity would be in a great position to do this and also allow cross-engine support with plugins.

A lot of engineers (including myself!) are fascinated by the cyberpunk world, and it seems like we are getting closer and closer to it. I might have to watch Ready Player One again this weekend :)

Fun Reads

  • “10 Years of Open Source Visualization”: Mike Bostock, the founder of ObservableHQ and creator of D3.js, wrote about some of his learnings from running the D3.js community for 10 years. If you’re an OSS maintainer (or interested in learning the challenges one faces), I’d highly suggest reading it.

  • “ProjectionalEditing”: Somehow I had never run across this post by Martin Fowler, but it’s a very interesting mental model to use when thinking about applications and code. This is really helpful when thinking about low/no-code tools like Storyscript (whose founder shared it with me, thanks Steve!)

  • “My Adventures in CNC Robotics”: I stumbled across this website the other day and thought it was super cool! It was written by a Polish software engineer who started experimenting with CNCs at home and shares some of his learnings. I’m a big fan of these stream of consciousness-like posts.

  • “The Pentesting Bible”: If I changed careers, I’d probably want to get into security (or sports management, but that’s for a different newsletter). This GitHub repo has a ton of content to read to learn about pentesting techniques. It’s always good to learn a bit about how these work to make sure I build things the right way.

Founder Bolt

There’s actually no founder bolt today, unfortunately! I had planned to have a founder feature but wasn’t able to get the questions answered in time, and it was then too late to find a replacement. I’ll just answer the questions this time, but we’ll be back next week!

What’s one productivity hack that you really love? (Automation, dotfiles tweaks, etc)

I use Espanso to create shortcuts for the repetitive text that I have to write. The fun thing is that it’s not just a text replacement, but you can actually run shell commands with it, which lets you use code to pull live data to insert in it (like my Calendar availability). You can also create forms to let you easily fill out variables in a template. It’s very neat and extensible!

What’s the latest product your engineering team has adopted at work?

We just added Blazer to our app with a follower database of our production Postgres. We built a lot of BI within our Voyager system, but it’s hard to generate queries on the fly; this lets us quickly run data checks, and also lets me build dashboards where users can input custom variables. I contributed to Blazer a while back, so it’s good to use it again!

What technology/architecture are you the most excited about trying? What about getting rid of?

I definitely want to get rid of `delayed_job` for our background workers and move to a more modern architecture. The support for it in terms of observability is pretty lacking. I’d probably want to experiment with Temporal as a replacement, which I’ve been a fan of for a while. It might be a bit overkill, but you can never turn down trying out fun technology :)

What’s one side project you started but never finished?

Too many, and Namecheap thanks me for all the money I give them for domain names. One that I am hoping to get back to is a small camera-equipped Raspberry Pi to which you can feed stacks of sports cards, and it automatically digitizes it for you, as well as pulling in the latest sales prices and things like that. It’s become even more relevant recently with how crazy that market has gotten, but I have very little space in my apartment to work with hardware sadly!