❌

Normal view

  • βœ‡Cassidy Williams
  • Notes for my future self on how to set up a camera for streaming
    My poor Sony a6100 camera (with a Sigma 30mm lens) died on me this week. It served me well for over 6 years! I replaced it with my husband’s a6400 that he wasn’t using anymore, and because of various adjustments on my desk that I made at the same time, I ended up having to swap lenses too. So, this is now my current video setup: Sony a6400 camera Sigma 16mm lens Elgato Prompter + Camera Hub software Elgato Flex Arm (to hold everything up) Setting up my camera was a pain because I
     

Notes for my future self on how to set up a camera for streaming

19 March 2026 at 00:00

My poor Sony a6100 camera (with a Sigma 30mm lens) died on me this week. It served me well for over 6 years! I replaced it with my husband’s a6400 that he wasn’t using anymore, and because of various adjustments on my desk that I made at the same time, I ended up having to swap lenses too.

So, this is now my current video setup:

  • Sony a6400 camera
  • Sigma 16mm lens
  • Elgato Prompter + Camera Hub software
  • Elgato Flex Arm (to hold everything up)

Setting up my camera was a pain because I couldn’t pull in settings (or even see them) from my older camera, so I had to do it all from scratch. This is me writing everything down for any pour soul who also has to deal with this… which could also be future me.

”Basic” settings for streaming

I copied this man’s video for a lot of my settings.

I set the camera mode to Video Mode (the top wheel on top of the camera, not any of the photo modes or manual modes).

After that, settings time, hit Menu and then:

  • Camera Settings 1 (the red icon), on page 5, set Focus Mode to Continuous AF
  • Camera Settings 2 (the purple icon)
    • On page 1, set Exposure Mode to Manual Exposure, File Format to XAVC S 4K, and Record Setting to 30p 60M
    • On page 2, set AF drive speed to Fast, and AF Tracking Sens. to Responsive. I don’t touch the audio settings because I have this connected to a computer!
  • Setup Settings (the yellow icon)
    • On page 2, set Auto Power OFF Temp. to High
    • On page 4, go to HDMI Settings and set HDMI Resolution to 1080p

The framing

The 30mm lens was wonderful, I liked it, but with the way I had reconfigured parts of my desk, it was just a bit too zoomed in on my face. I couldn’t get everything perfectly framed again, for some reason.

So, with the 16mm lens, it worked, but it was VERY wide and you could see too much of my room. Sony has a really great built-in feature to their cameras called Clear Image Zoom that crops things while continuing to output 1080p resolution.

To set that up, press Menu, then go to the purple Camera Settings 2, then page 5 of that page. Select Zoom Setting and change it to Clear Image Zoom, and then select Zoom to adjust the zoom. Blammo!

The colors

I could not get my colors to be what they were on the previous camera, but it got close! I had to go to the red Camera Settings 1 page 11, and then poke around with the White Balance (NOT auto, auto made it change too much) and Creative Style (…my very boring setting there is Standard but there were some nice other ones, too).

Before and after

This was my a6100 setup with the 30mm lens:

Sony a6100

And this is my setup now with the a6400 and 16mm lens!

Sony a6400

This took me hours, so I am hoping if you out there need to do a similar setup, it will only take you mere minutes. Toodles!

  • βœ‡Cassidy Williams
  • A history of styling choices leading to native CSS
    I recently updated my app todometer to be styled with pure, native CSS! Styling todometer over time Changing the CSS libraries in todometer has been a real reflection of CSS styling history. When I first built it more than 9 years ago now, that first initial commit had React, Electron, and Less for CSS. Less at the time was great for what I wanted (Node-based styling with nesting). It let me use variables (like this) and nesting (like this), and got the job done with some global styles. Eventua
     

A history of styling choices leading to native CSS

25 March 2026 at 00:00

I recently updated my app todometer to be styled with pure, native CSS!

Styling todometer over time

Changing the CSS libraries in todometer has been a real reflection of CSS styling history.

When I first built it more than 9 years ago now, that first initial commit had React, Electron, and Less for CSS. Less at the time was great for what I wanted (Node-based styling with nesting). It let me use variables (like this) and nesting (like this), and got the job done with some global styles.

Eventually in 2020, I wanted more encapsulated styles, thus I wanted to use CSS Modules. Also at the time, wanting to keep my variables and nesting where I could (but also modernize), I switched to node-sass. When you look at the commits here and here, you can see the variables switching from starting with @ to $, and how I moved everything everything to their respective *.module.scss component (ultimately only keeping variables at the global level). The behaviors all stayed the same, just was more modern under the hood!

Yet another big refactor was due in 2023, when I got rid of all Sass and used plain ol’ CSS files, and postcss for transformations. node-sass had been deprecated, which really led me to reevaluating the styling stack, and CSS variables existed natively, so that was one less thing needed! That led me to where we were until earlier today, postcss-nested.

postcss-nested vs. postcss-nesting

These libraries sound almost exactly the same, but act different, and Chris Coyier talks about it a bit here. To save you a click, postcss-nested has syntax like Sass, and postcss-nesting has syntax like the CSS spec!

Given the history above, it makes sense how the transition happened here. Moving from Less to Sass to a more vanilla CSS approach, all while keeping the core of variables + nesting, is all I really wanted. The nested library back in 2023 let me keep styling almost exactly the same when I transitioned away from Sass, with the exception of variables (see the commit).

I switched in this commit today to postcss-nesting mostly to make sure that everything transitioned smoothly. It involved a laughably small change list, to just add & nesting selectors across some files.

Pure CSS, baby

The transition to fully native CSS for the entire app is possible now because CSS nesting is natively available! I probably didn’t actually need to do the “switch to postcss-nesting” step, but it felt like a good iterative one.

And since I did that iterative step, the only changes I did for a “fully pure” CSS solution was to simply delete the postcss files!

Look at that diff. So much red!! So nice!!

It’s about the journey, not the destination… but also the destination is cool

It’s really amazing to see how far we’ve come in browsers to be able to do these things without any libraries at all. Yes, I don’t have the most complex styles in the world, and yes, I’m really “only” using variables and nesting, but it’s cool that a “quality of life, nice to have” thing that I enjoyed nearly a decade ago is now a standard. Look at us go!

Anyway, you can check out the repo for todometer here, with a new version being properly cut soon!

  • βœ‡Cassidy Williams
  • I got yet another digital typewriter: The BYOK
    I talked about building my Micro Journal in the past here, and how much I like having a distraction-free writing device for blogging, drafting things, and just getting ideas out. Well… I liked it so much that I got another one! This one is called the BYOK (the Bring Your Own Keyboard). I got it on Kickstarter and it’s cool! It’s more portable than the Micro Journal in that it’s the size of your phone (and has a magnet in the back for stands that are compatible with MagS
     

I got yet another digital typewriter: The BYOK

27 March 2026 at 00:00

I talked about building my Micro Journal in the past here, and how much I like having a distraction-free writing device for blogging, drafting things, and just getting ideas out.

Well… I liked it so much that I got another one! This one is called the BYOK (the Bring Your Own Keyboard). I got it on Kickstarter and it’s cool! It’s more portable than the Micro Journal in that it’s the size of your phone (and has a magnet in the back for stands that are compatible with MagSafe stands), and you can connect most keyboards to it (via cable or Bluetooth). I may or may not be typing on it right now, heh.

Here’s how it works!

It’s been a cool little device. I like that it’s mostly toddler-proof so far, and I’ve had fun trying it out! I think I prefer the syncing I have set up on my Micro Journal more so far, but the portability of the BYOK is pretty nice, and I like how much the team has been updating the firmware.

Here’s some resources for it:

  • βœ‡Cassidy Williams
  • My rainbow sweater
    My sister got me a rainbow cardigan sweater a couple years ago for Christmas that is very fluffy and floppy. It doesn’t have pockets, it doesn’t have buttons, it just kind of drapes on me and is like a small blanket with arms. It’s not a practical sweater, but it’s cozy. Because it’s not practical, I always have to remember to, for example, wear only pants that have pockets with it, so that I can put my stuff (phone, lip balm, etc) somewhere. I always have to wear
     

My rainbow sweater

30 March 2026 at 00:00

My sister got me a rainbow cardigan sweater a couple years ago for Christmas that is very fluffy and floppy. It doesn’t have pockets, it doesn’t have buttons, it just kind of drapes on me and is like a small blanket with arms. It’s not a practical sweater, but it’s cozy.

Because it’s not practical, I always have to remember to, for example, wear only pants that have pockets with it, so that I can put my stuff (phone, lip balm, etc) somewhere. I always have to wear certain shirts that don’t bunch up in a certain way when the sweater is feeling extra floppy. It’s just… not the most convenient sweater.

But hoo boy, my babies love my rainbow sweater. My oldest loves to sit on my lap and have me envelop her in it in a hug. My youngest loves to bury his face in it when he’s sleepy. Both of them love to pet it because it’s so soft. They admire the colors. They tangle their fingers in it and hold on tight to the loops. They flop with the sweater, and with me, and it’s the coziest thing in the world.

I love, love, love putting on this sweater. I get a little giddy thinking about how the babies will gravitate towards it as soon as they see the thick loops plopped across my shoulders. It’s impractical, and it’s weird, but it brings me the best warm cuddles ever.

  • βœ‡Cassidy Williams
  • Speaking at TechCamp Korea 2026
    I just got home from South Korea, where I taught some workshops at an event hosted by the U.S. Embassy Seoul! The event is called TechCamp Korea 2026, and the participants were a cohort of young professionals, entrepreneurs, and researchers. It was one of the most unique events I’ve ever been to, where it was part hackathon, part learning event, and part international relations, all in one cool space at Seoul National University’s campus! My talks were some hefty ones, each 75 minut
     

Speaking at TechCamp Korea 2026

10 April 2026 at 00:00

I just got home from South Korea, where I taught some workshops at an event hosted by the U.S. Embassy Seoul!

The event is called TechCamp Korea 2026, and the participants were a cohort of young professionals, entrepreneurs, and researchers. It was one of the most unique events I’ve ever been to, where it was part hackathon, part learning event, and part international relations, all in one cool space at Seoul National University’s campus!

My talks were some hefty ones, each 75 minutes long and cramming in workshop time:

  • AI-Native Development: Building for Developer Experience
  • Turning Ideas into Software

(I don’t have these talks online, but maybe I could record a video or something)

TechCamp talk about turning ideas into software

The majority of participants were technical, but about a third of the cohort had non-technical backgrounds, so it made for some interesting questions and ideas around the content.

Because of how the groups were split up so everyone would have good relationship-building time, each of the 5 American speakers delivered our talks 3 times each, and I tell ya, after giving 6 long talks in a short period of time… my throat is feelin it. It was totally worth it though. The participants were so eager to learn about technologies like the GitHub Copilot CLI and alllll the AI models to experiment with, and their excitement was so contagious, I had a blast.

TechCamp talk showing the GitHub AI clients

Because my in-laws are based on Korea, it was a fun opportunity too to bring the family along. While I was speaking at the event, they were able to visit our relatives, and having that short but sweet time was so nice. That being said, traveling 18+ hours each way with two babies (nearly 3 and nearly 1 year old)… I’ve made better decisions in my life.

Anyway, meeting other speakers like Bilva Chandra and Brina Koumoin was wonderful. There were Korean-language keynotes that we got to listen to with some translators, and we speakers had the titles of “American Experts”, but really, we were mentors and teachers and user test subjects at this event. We stayed up late after our talks helping the individual groups with their projects, and the results blew us away. Groups worked on everything from robotics to supporting postpartum mothers (which I really care about) to innovative ideas around nuclear energy to educating individuals who are less abled. It was amazing!

TechCamp mentoring session

The organizers of this event were so thoughtful, and every decision along the way was very intentional for everyone to build lasting connections with each other. Getting to know the participants was delightful (perhaps my favorite moment after I helped one of them was her responding to me with, “Thank you so much, would you please be my cousin?”) and I hope to stay in touch with them. I feel all warm and fuzzy after this one, and have already told the team that I would participate in this type of event again and again!

TechCamp Korea 2026 group photo

  • βœ‡Cassidy Williams
  • Deep Dish Swift 2026 recap
    I gave the opening keynote at Deep Dish Swift 2026 today! It was so fun. The event is very iOS-oriented and nearly 300 people in the Chicago area, and it was cool meeting so many folks who I hadn’t met in person before. Before the event, I actually spoke on the podcast for the event, called Slices! I love all of the pizza puns this event has so much. The vibe throughout the podcast and the conference was fun, indie, and just cool. My talk, speaking of pizza puns… started with a piz
     

Deep Dish Swift 2026 recap

12 April 2026 at 00:00

I gave the opening keynote at Deep Dish Swift 2026 today! It was so fun. The event is very iOS-oriented and nearly 300 people in the Chicago area, and it was cool meeting so many folks who I hadn’t met in person before.

Before the event, I actually spoke on the podcast for the event, called Slices! I love all of the pizza puns this event has so much. The vibe throughout the podcast and the conference was fun, indie, and just cool.

My talk, speaking of pizza puns… started with a pizza pun, where I led with, “I thought this conference was about eating deep dish swiftly…” and my slides were literally just about pizza. The talk itself was actually about AI, the state of the industry, and how we need to share our knowledge and support others… but again the visuals were all pizza.

This was honestly one of the hardest-to-write talks I’ve ever done. Doing the technical AI part of the talk while making my slides plausibly like a real talk about pizza was far more challenging than I expected it to be. But, I’m happy with the outcome!

Cassidy speaking at a podium, wearing a pizza shirt

I’ve never actually had so many people approach me just to ask me about my talk-writing process before, with one attendee saying, “I’ve never seen a metaphor so gracefully navigated,” which is the most flattering thing I’ve ever heard someone say to me while I’m wearing a shirt covered in pepperoni.

  • βœ‡Cassidy Williams
  • Connecting the Logitech MX Creative Console to Elgato Lights
    I’ve been using an Elgato Stream Deck to control my lights in my office for the past several years. The one I have (with 15 buttons) has worked great for me, but I noticed that I only really use 8 of the buttons. The rest work perfectly fine, but I always forget the macros I have saved there, and really just go back to defaulting to lighting control. Now, lately because I’m editing videos a lot more (both for work and personally), I’ve been looking to get some kind of knob or
     

Connecting the Logitech MX Creative Console to Elgato Lights

13 April 2026 at 00:00

I’ve been using an Elgato Stream Deck to control my lights in my office for the past several years. The one I have (with 15 buttons) has worked great for me, but I noticed that I only really use 8 of the buttons. The rest work perfectly fine, but I always forget the macros I have saved there, and really just go back to defaulting to lighting control.

Now, lately because I’m editing videos a lot more (both for work and personally), I’ve been looking to get some kind of knob or dial for my desk to be able to scrub through footage faster.

These scenarios combined, I ended up finding the Logitech MX Creative Console! The buttons look exactly like the Stream Deck ones (only there’s 9 of them, with options to switch between pages and apps), and it comes with a Bluetooth rotary dial with buttons.

General review

These things get the job done. I do wish that the dial could plug in instead of just relying on Bluetooth, but besides that, programming the buttons was fairly straight forward, and everything connected pretty seamlessly. Because I already have a Logitech mouse and a backup webcam, I didn’t have to install any extra software, which was also nice.

(also… this is not a sponsored post, I’m truly just using all these products for myself)

That being said… Elgato and Logitech, being competitors, did not play as nicely out of the box.

Building a custom solution

Because I couldn’t control my Elgato Key Lights natively from my desk, I brought out the GitHub Copilot CLI to help change that (once again, not sponsored, but I do work at GitHub, full disclosure). The Elgato lights have their own IP addresses and a REST API, so I figured I could use the tools I have to throw together a script!

In the CLI, I opened up Plan Mode and prompted:

I want to be able to control Elgato Key Lights using buttons on the MX Creative Console. Each button tap should trigger a script that controls a specific light. Write a Python script to generate scripts that communicate with the lights via their REST API that I can toggle from the console.

Not the best prompt in the world, but Plan Mode asked me the necessary clarifying questions to put together a plan that the tool could run with.

A couple meetings later when I checked back, my script wizard was done, and my lights now work!

If you want to do something similar (or have a different tool toggle your lights), here’s the repository with all the scripts you need.

❌