daverupert.com

https://daverupert.com

The personal blog of Dave Rupert, web developer and podcaster from Austin, TX.

フィード

記事のアイキャッチ画像
A quick light-dark() experiment
daverupert.com
I wanted to experiment with the new CSS function light-dark() and get a sense of how to use it in a CSS architecture of nested (web) components. I think it’s going to be a powerful tool in the new responsive world of component architecture but I don’t want to recommend something unless I have experience with it in a project first.My first pass was to add light-dark() to my components…/* global.css */:root { --dark: #000; --light: #fff;}/* Inside <my-component>'s Shadow DOM */:host { background-color: light-dark(var(--light), var(--dark)); color: light-dark(var(--dark), var(--light));}But if every component is in charge of it’s own light-dark() handling for border, background, and color on every element… the codebase will get messy managing dark mode in a lot of different places, leading to a lot of inconsistencies over time. A more elegant solution for me would be to handle this job in a single location at the root scope level and leverage the cascade a bit.:root { color-scheme: light
5日前
記事のアイキャッチ画像
Vibe Check №32
daverupert.com
An unseasonable gloomy spring in Austin, TX. The kids are nearly done with school for the year and summer plans are shoring up. My son goes to middle school next year. Unbelievable.We’ve battled some on-and-off sicknesses these past couple months and with all the holidays every week has felt like a false start. But here we are, barreling into summer. I’ve already been out on the lake to surf on my cousin’s boat, so I’ve got that going for me.The EclipseIn April my wife’s entire family came out from Arizona to Austin for the eclipse on April 8th. We got a big Vrbo near the lake right in the path of totality. The weather was cloudy and dismal in Austin for the eclipse. But then… ten minutes before full totality, the sky broke open.I’ve seen partial eclipses before and those were cool. But nothing prepared me for seeing the total eclipse. The complete darkness. The confused birds. The sudden drop in temperature. The fully visible halo effect eminating from the sun. It’s other worldly to s
5日前
記事のアイキャッチ画像
Thoughts on Cosmotechnics
daverupert.com
A fine post by Ethan Marcotte called The negotiation cycle led me to an incredible essay by Alan Jacobs called From Tech Critique to Ways of Living. It references an old idea called “The SCT1” which is new to me but based on thinking by the likes of Ursula Franklin and Neil Postman who I am familiar with. Neil Postman’s Technopoly2 –which I read in March– was one of the best books on technology I’ve ever read, so this is relevant for me.Jacobs’ essay takes an unexpected yet welcome turn towards Daoism linking to a heavier essay by Yuk Hui called Cosmotechnics and Cosmopolitics. I’m not smart enough to fully understand all these philosophical (epistemological?) arguments3, but reading the word “cosmotechnics” felt like a beacon in the night for a concept I’ve intuitively felt but never had a word to describe. In Hui’s words:Let me give you a preliminary definition of cosmotechnics: it is the unification of the cosmos and the moral through technical activities, whether craft-making or ar
11日前
記事のアイキャッチ画像
Ideas for my dream CMS
daverupert.com
Matt Haughey wrote a blueprint for his “Dream CMS” and we had him on ShopTalk to talk about it. That got me thinking about what features I’d want in my dream CMS. It’s fun to think of what a modern CMS might have like inline editing, asset serving, monetization/membership functionality, and more imaginative comment moderation.Most of my dream CMS features center around improving my writing and content surfacing. All these ideas seem like a pretty good fit for LLMs or AI, even though I don’t drink from that particular well often.1. On-the-fly fact-checkingAs I think more about verifying outputs, I’d love a feedback tool that did a quick fact check before I hit publish. Did I not cite a source? Did I make a false assertion that ruins the credibility of the whole post? Did I not consider some perspective I should have? Am I just bitching and moaning? CMS, help me, please! I’m making an idiot out of myself.2. Auto-taggingI write a lot of posts but I’m shit at tagging them. I wish I could t
15日前
記事のアイキャッチ画像
The native app install experience
daverupert.com
At the end of each MSNBC YouTube video right now they have a 30 second post-roll of Ali Velshi explaining the 5-step process on how to install the new MSNBC app.Tap on the App Store on your phoneHit “Search” on the bottom right cornerType in “MSNBC”Click on the MSNBC appClick on “Get” or the cloud iconThere’s an implied sixth step where you need to actually open the newly installed app. Opening the app for the first time you swipe through a little slideshow that has two more (optional) steps: give your email and turn on notifications. Standard engagement economy tactics.Hearing the 5-step native app install process a few times a day makes me think we lost something along the way. Remember when the call to action was to visit a URL? Not only is “Visit msnbc.com” more succinct, catchier, private, less prone to user error, and immune to competitive advertisements but it also doesn’t require a paid presenter to coach you through it. Once upon a time users might have needed Ali Velshi’s hel
1ヶ月前
記事のアイキャッチ画像
A weighted vest
daverupert.com
I bought a 40 pound weighted vest for $40 dollars on Amazon. The workout term for this is “rucking” and has connotations with being outdoorsy and/or in the military. Load up a backpack full of weights (or in my case, a vest full of sand bags) and head outdoors. The marketing benefits of rucking sound great:It is simple and anyone can do itGets you outsideActive Resistance Training™️Burns up to 3x more calories than walkingGood for your back and improves your postureGood for your mental healthA neighbor friend of mine (that’s also a physical therapist) has one and she recommended it. My body is adept at carrying heavy objects1, so this seems like an easy way to squeeze out some gains from my regular walks. Bonus points that it gets me outside and gets rid of my developer hunch. After a handful of walks, I’m enjoying the vest and –as expected– my body handles the weight fine but it’s sweatier and hills knock the wind out of me a bit more.There’s an army fetish around rucking. It’s hard t
1ヶ月前
記事のアイキャッチ画像
Mouthguard
daverupert.com
“You know those body builders with the big arms and skinny little legs? Your jaw is like that.”My dentist is explaining this to me while both her hands are inside my mouth clenching the left and right sides of my jaw. She explains that my right jaw muscle is three times larger than the left. I glurk in agreement that the right side of my jaw does seem to be more problematic, it’s not uncommon for it to make a horrifying pop each morning. Her prescription: a mouthguard for clenching my teeth at night.“I could sell you a $700 mouthguard that takes two weeks to fit but unless you know you’re going to be the kind of person that sleeps with a mouthguard, you should just buy one on Amazon first.”I like my dentist’s office. It’s holistic in the sense they care for the whole mouth, not just the teeth bits. It could be my crappy insurance but they’re not concerned with upsells either. And I love the idea of prototyping with a low-fidelity solution first. So I followed their advice and got the L
1ヶ月前
記事のアイキャッチ画像
How do you verify that?
daverupert.com
Hank Green posted a video about four lies he believed. It’s a great video because it’s embarrassing to be wrong on the internet and here is smart person™️ Hank Green admitting he believed some bullshit. As you travel through the internet you’re constantly working against a lot of personal biases, like confirmation bias or the overconfidence bias, and it’s easy to slip up. It’s (biologically) difficult to correct your understanding as new facts invalidate what you believed true.One simple question I’ve started asking a lot is: “How do you verify that?”I’ve seen some compelling demos where LLMs take a jumble of text and spit out compelling artifacts like an image, some b-roll, a spreadsheet, a website, or an entire daily news podcast. It’s incredible… until my buzzkill brain starts asking questions. Images are easy to verify: does image look correct or does it contain phantom limbs and have five rows of teeth? Text summary or expansion, also within possibility to verify. A website? I mea
2ヶ月前
記事のアイキャッチ画像
John Romero doesn’t believe in prototypes
daverupert.com
A couple weeks ago I joined a conversation about John Romero and prototypes. Tyler posted some thoughts about Romero’s autobiography, Matthias shared a quote from a Tim Ferris podcast where Romero chided prototypes, and Matthias looped me in because I love prototypes.No prototypes. Just make the game. Polish as you go. Don’t depend on polish happening later. Always maintain constantly shippable code.Strange Loop 2002A quick internet conversation changed the course of my week a bit. After that short exchange I dove in and listened to podcasts, watched a handful of talks, and read an entire autobiography… and I’m still shocked that John Romero doesn’t believe in prototypes.id Software is synonymous with speedTo understand Romero’s perspective you need to understand the ethos of id Software. id Software was –to borrow a gaming term– a “Press W” company, meaning they tend to plow through all obstacles to keep forward momentum. As Romero recounts in his biography, they prioritized speed abo
2ヶ月前
記事のアイキャッチ画像
Vibe Check №31
daverupert.com
Howdy. It’s March already. Let’s catch up. In January, Austin had a freeze but thankfully uneventful. Brings up a lot of “my dumb hyper-capitalist ultra-Libertarian government has created a failed state” trauma though. In February, my family and I have been battling sickness on and off. Switching over to care for a sick kid at home is such a sidewinder to my intended productivity. Shazam! Transformed from computer man into a butler who futily tries to hypnotize kids (who don’t take naps) into taking naps. We are rolling with the punches that come from attending public school and Spring Break starts next week.Temperatures are already hitting 89ºF (31.6ºC). It’s still technically Winter, but feels like late Spring. I’m trying to enjoy it and take walks but feel a background sense of dread for the upcoming Summer. There’s an old saying in Texas that goes something “warm winter, cool summer” (sometimes expressed as “extreme winter, extreme summer”). I haven’t crunched the numbers to verify
2ヶ月前
記事のアイキャッチ画像
How to get on a podcast
daverupert.com
I’ve been co-hosting a weekly podcast for nearly 12 years with over hundreds of guests and I want to tell you the secret to getting invited on a podcast. Are you ready? Here it goes.Already be talking about something.If you want to go on a podcast and talk, the best thing you can do is already be talking about something. And by talking, I don’t mean pontificating on social media. I mean by writing blog posts, responding to comments, participating in web standards, doing conference/meetup talks, and having actual human-to-human interactions (in-person or online) where you’re taking place in the marketplace of ideas. It helps if you do that on a regular cadence. If I can see from the outside that you’re thinking about a topic –whether broadly or deeply– that gives you standout guest potential. You don’t need to have a whole branded “A Book Apart”-style catch phrase for what you’re talking about (although, it doesn’t hurt), but you need to show you’ve thought about, experimented with, or
2ヶ月前
記事のアイキャッチ画像
Duolingo
daverupert.com
Duolingo does a great job capturing the novel delight of learning a new language. You hop on, take a short quiz, and a little green owl waves at you and hops towards a trophy. You can add friends, join group challenges, and there’s a weekly ranking system to compete with users all over the world where you have a chance to move up a league, stay stagnant, or potentially get demoted to a lower league.Duolingo takes a “spaced repetition” approach at language learning. I like how the app serves you vocabulary in isolation as well as in different sentence contexts with different AI voices, all aimed to reinforce the words before it leaves your brain. The progress meters, streaks, and competitive nature of the app are all a part of the gamification system designed to keep you coming back. But… there’s a lot of them.Here’s a short list of all the progress meters inside the Duolingo you’re responsible for filling up.Daily streak progressCourse progressLesson progressDaily missions for monthly
3ヶ月前
記事のアイキャッチ画像
A tale of three architectures
daverupert.com
It’s been a couple years of working full-time on Luro and we’ve travelled through at least three (or four?) different distinct architectures. If that sounds like a lot, I’d agree. It’s been educational to say the least.I think it’s interesting to think about how apps grow and adapt over years of contributions, so I thought I’d share how we evolved Luro. Each refactor and re-architecture was a considered choice involving the entire team and balancing business and customer needs at the time as well as maintaining new feature velocity.Here is the great retelling…v0: The Not-so Serverless Jamstack Hybrid PrototypeCustomer Need: Ability to preview applicationInternal Need: Prove idea could workThe prototype version of Luro was a Serverless Nuxt app deployed entirely on Netlify. Each CRUD operation was its own serverless function that connected to our Postgres database on Digital Ocean. Netlify and its branch deploys allowed for rapid deployment and the ability to spin up demo instances at a
3ヶ月前
記事のアイキャッチ画像
Week Links №1: Mid-Feb 2024
daverupert.com
I’ve read the entire internet so you don’t have to and here’s some links I found. Is this the start of a newsletter? 🤷‍♂️ I tried this two years ago. Anyways. Here’s some links.Web platform newsCSS Working Group resolved to add Mixins - Styles, now even more reusableCustomStateSet merged in HTML - Add your own pseudo-classes to custom elements like my-switch:state(flipped)EditContext - Microsoft is working on making contenteditable usefulSyntax Highlighting with the Custom Highlights API - Bramus shows how to highlight code using without all the extra spansApple removes Home Screen web apps in the EU - Apple nerfing PWAs as a part of their malicious compliance to the EU’s new Digital Markets ActPrototypingDe-stress Your Creative Process (With This Classical Practice) [Video] (23mins)The Bite - If you know, you know.Impressive demosMake some hacky noise with CSS Gradients - Adam Argyle pulls off a cool CSS trick.Markdown CSS Framework [CW: Cursed] - Alex Riviere implements markdown in ...
3ヶ月前
記事のアイキャッチ画像
UI = f(statesⁿ)
daverupert.com
“UI is a function of state” is a pretty popular saying in the front-end world. In context (pun intended), that’s typically referring to application or component state. I thought I’d pull that thread a little further and explore all the states that can effect the UI layer…First-party application statesEvery application whether it’s a to-do list or a shopping cart or some radically complex app will have some state. State isn’t uniform and typically exists at a variety of different levels. We’ll start at the top and drill down…Global stateData stores and feature gating that typically happens at the application level.Stores - different locations for storing dataApplication store - Redux, Vuex, Mobx, SignalsBrowser store - localStorage, sessionStorage, cookies, IndexedDBData - different types of global dataAccess control data - authentication tokens, paid/unpaid, geolocated, age, verified, member, etc.User data - name, icon, etcCollections - e.g. list of postsSession data… etcPage/Component
3ヶ月前
記事のアイキャッチ画像
A dozen thoughts about AI
daverupert.com
AI. It’s the talk of the town (or at least this year, that is). I’ve been in dozens of conversations about AI in recent days. The likelihood that the next big feature or product I build involves AI seems to be going up. No idea where it’s all headed – and reserve the right to change my mind – but a dozen conversations leaves me with a dozen or so disparate thoughts about this new frontier of technology.Can you spot the difference between these two images? AI was in the news this past month…OpenAI needs $7 trillion dollars (more than the US federal budget) to build new chips for AIOpenAI needs cheap energy from fission reactors to be sustainableI mean, if I had $7 trillion dollars and access to free energy I could probably do some neat things too.Is non-deterministic search really what we want?In a world where our social fabric is being torn by “alternative facts” and online bubbles, do we want to yield finding answers over to a machine known for making things up and is often wrong? Do
3ヶ月前
記事のアイキャッチ画像
Continuous startup jobs
daverupert.com
Two years of working on Luro full time has taught me a lot about #startuplife. While I could probably fill a book with what I’ve learned so far, the biggest takeaway is you’re always busy if you’re on a small team. Here’s a list of jobs that you always need to be doing when creating a company…Planning new featuresBuilding new featuresMarketing new featuresUpdating old featuresManaging technical debtEstablishing processesDocumenting everythingHopping on callsGetting feedbackContacting existing customersAcquiring new customersImproving onboardingAssuring qualityFilling out enterprise software acquisition formsEvaluating software tools for internal useTracking competitorsBuilding cultureHiring peopleManaging peopleMeeting payrollProviding health insurancePitching VCsCreating FOMOCasting visionInvestor updatesEmailing lawyersAccounting and taxesNot enough that we should overly glamorize entrepreneurs, but it’s a lot. Especially, when you’re also tasked with building the darn thing. My list
3ヶ月前
記事のアイキャッチ画像
CoraQuest
daverupert.com
CoraQuest is a “family cooperative dungeon crawler” created by adorable dad-daughter duo Dan and Cora Hughes from Huddersfield, UK. Feeling the boredom of pandemic lockdown, Dan and Cora (8yo) decided to design a board game and put it on Kickstarter. I’ve wanted an easy “Dungeons and Dragons for Kids” game for a long time and this hits all the marks. It’s imaginative, tactile, visual, and it has a simple ruleset that kids can easily grok. I backed it the minute I saw it.CoraQuest comes with ~9 or so premade adventures so parents can run a one-shot without much preparation. The dungeon is a stack of 9x9 tiles with special story cards mixed in that map to story beats in the premade adventure. I embellish a bit and give the bad guys names like “Gerald” and “Geoffrey”. Add some funny voices and it’s a guaranteed good time for kids. My son and his friends played for two hours the other day and the kids didn’t even think about devices. That is worth the price of admission alone.There’s other
3ヶ月前
記事のアイキャッチ画像
A holy communion
daverupert.com
You and I are partaking in something magical.The electric meat inside my cranium told my fingers to punch mechanical keys to send signals through an electric rock and encode these thoughts on a magnetic rock. Then through radio waves, beacons, and wires I create a copy of this magnetically encoded text on another rock in another town, in another state. That rock copies itself to another town (possibly in another country) closer to you. Then through another relay of wires and radio waves that text replicates itself on the electric rock in your palm. Your rock renders those words with light through stained glass. You read rendered words and glyphs and the electric meat in your own head decodes the text.Our thoughts, words, and images transfigured through time and space as ones and zeroes. Circumnavigating the globe in milliseconds. An immaculate relay. A holy exchange.That is powerful. It is precious. We would do well to preserve its sanctity.
3ヶ月前
記事のアイキャッチ画像
“I used to listen to your podcast”
daverupert.com
Often when I talk with folks who know me from my podcast they will say something along the lines of, “I used to listen to your podcast!” Then they blush because their statement implies they don’t listen anymore (Exhibit A). And I just wanted to say…I get it.It’s fine. I take no offense. In fact, that’s part of the magic of podcasts! There’s an ebb and flow to them. Here’s ten reasons I give up on podcasts1:You need certain podcasts at certain times in your life.You and the podcast grow in different directions.You finish a season or story arc and it feels like a good stopping point.You find yourself subscribed to too many of the same kind of podcast (tech, murder mystery, actual play, two white dudes talking, etc).Nearly every podcast goes through an experimental phase and it’s okay not to join them on that cringe journey, you can catch up afterwards.Podcasts bring an immense amount of joy, but they can become another item on the to do list.There might be a global pandemic that cut your
3ヶ月前