For Cozmo

Five years ago this week, I lost a good friend, Gerald “Cozmo” Guido. Like myself, Cozmo (or Coz as we all called him) was a web developer who came into my life when I was still a teenager and hadn’t even decided that web development was where I wanted to go with a career, yet had an immeasurable impact on me and my younger life at the time.

Coz was about 18 years older than me when we first met in Tallahassee, FL (where I grew up). Born and raised in Binghamton, NY he was loud and very uncouth with long, metal head hair (though he always called himself a “fucking hippie” despite not expressing any hippie like tendencies) and a stocky build that showed he could mix it up in a mosh pit pretty easily.

My first job was for a local ISP when I was 14, around 1996. They had a local portal (sort of like an online newspaper) and they wanted someone to write video game reviews for their site. So I was paid in video games, and also learned all the skills to build a website. When I turned 16, and decided that I needed actual money to do things (one can’t live off PC games alone), the ISP hired me on for basic data entry and primitive site building sort of things.

I used to take the public city bus from high school to the ISP every day after school, and I remember the day that Coz showed up for his interview because he stood out so much against the rest of us clean cut, nerdy looking geeks. He was there to interview for a developer job, as at the time the local portal was built using Cold Fusion (remember that?), and apparently he had the skills because he was hired. Coz took a very strange route to being a developer - after living in New York when he was young, mixing it up in the metal/punk scene and apparently doing coke in the bathroom of a Catholic church on Christmas Eve, he moved to the Florida Keys. He always said he went there for a vacation, and left 11 years later. He worked as a cook and on fishing boats, then decided to grow up a bit. He moved to Tallahassee to get a degree from Florida State University in Psychology. He struggled with dyslexia but he said that his professors were always incredibly impressed by his writings and his insight, a fact that he was never shy to bring up. He worked in the psych computer lab and taught himself how to program and got good enough to get a job as a developer.

The ISP was a small company, and was comprised of the actual IT folks, a small computer repair shop, and a whole content team for managing the online portal (so three businesses in one building), but there were roughly 15-20 people there at a time most days. Coz and I didn’t interact that much at first, as I felt that he was too loud, too abrasive and a little intense. He had a habit of pacing around the room, talking to himself when he was working out a coding issue, and then would say something like “Fuck yeah”, jump back into his seat and then get back to work when the answer came to him.

However, after a bit of time, and listening to him talking to some of the other folks there, especially our receptionist (who was two years older than me, very cute, and wayyyyy out of my league), I realized I had misjudged him by his appearance - he was actually a big softy, very funny (in his own loud way) and never talked down to anyone, a rarity then (and sadly still) in the tech world.

I worked at the ISP for a couple of years, before a couple of the people there left to start their own company and snagged me to come with them. It was a good career move, because now I was actually focusing on building Professional Web Sites as a job. Their company continued to grow pretty rapidly and eventually they needed more developers…and they hired Coz to come on board.

Other than my current job working for Lullabot, the next 4 years were some of the best of my career, professionally and personally. The company grew to about 15, and the culture was one of great fun, learning and just generally everyone enjoying doing the work. I got better at HTML, moved into doing some Cold Fusion myself and for a 19 year old kid at that point, was making stupidly good money. And this time, Coz and I were paired together in an office.

Once we were working together, our work relationship became a much closer friendship, and I think that he sort of started viewing me almost like a younger brother. We would code, bitch about George W. Bush, and realized we had a very similar sense of humor (though his was much more on the scatological side than mine). Coz introduced me to Tom Waits, who over time has become one of my favorite musicians, by stating that Waits “sounds like a guy who smoked a carton of Pall Malls and gargled with Draino” but could write a hell of a love song (which is more than true).

I’ve got all these random memories of Coz from around that time:

  • Coz stealing some of my Chex Mix that I had on my desk, calling the rye chips “melba toasts” (not even close).

  • The time we took a company trip down to Universal Orlando and he and another co-worker were smoking pot in the back of my car while I drove down I-75, trying to keep up with my speeding boss and not getting pulled over at the same time.

  • The time he and a bunch of co-workers took me out for my 21st birthday and he and I remained the only ones not puking by the end of the night (he wisely stuck with beer).

  • Watching him pace around the room, a handful of nuts in hand, as he talked through a problem, tossing them into his mouth and clearly talking with his mouth full of food, code knowledge and nut pieces spewing everywhere.

  • Coz attempting to play Tribes 2 with the rest of us on the company LAN and just getting his ass handed to him, but cackling loudly the whole time.

  • Coz commissioning the creation of an “Elvisfish” magnet for his green Tacoma pickup, a bastardization of the “Jesusfish” magnet with Jesus replaced with Elvis.

  • And on and on…

But of course, all good things come to an end. The company slowly shifted their focus from building sites for others to just building their own website product (which still exists today, almost 20 years later!), and the work for the developers drying up. I was one of the last ones left before I saw the writing on the wall and, before my senior year of college, resigned to go work for my Dad rather than get laid off.

Coz took it all in stride though, and went on to start and run his own development company - still plugging away with Cold Fusion - and being fairly successful at it, thanks to the relationships he built with the former company’s now abandoned clients. I myself, 3-4 years later, started my own development shop, and talked to him many times about the perils of being self-employed. If we had work for each other, we would send it along, and I looked to him as one of the mentors I was so so lucky to have. We would still occasionally get together for lunch, or he would come by my dad’s store (whom he also became great friends with), which was connected to where the now defunct ISP was headquartered.

I moved out of Tallahassee in 2006, to Tampa, and we began to talk less and less, at least in person. However, now freed to work for himself, this freedom gave Cozmo the desire to reach out even more as he started a “buds circle” (his words for his closest, most trusted friends, of which there were maybe 5-6 of us) of emails that he would randomly send out about whatever was on his mind. Sometimes they were rambling, sometimes they were just funny things he found online, you never knew what you were opening when you got one of his emails.

The last time I saw Coz in person was in 2009, a year after I had married my wife. We met up in the What-a-burger parking lot just to say hi and catch up while I was in town. I introduced him to my wife and we all had about a 45 minute conversation about…everything. Both Coz and my wife were raised Catholic and went to Catholic school (she now works at one), so they had a lot in common and they hit it off. Coz was still his old self, pacing around, gesturing and talking at a rapid pace. I don’t mean that to sound like he was a crazy person or unintelligible or anything, that is just how he was, and I think that I really loved him for that. For his ability to be himself, fuck what everyone else says, he’s going to speak his mind.

Over the next few years, the emails would still come but not as frequently. Sometimes he would actually pick up the phone and give me a call and we’d chat about whatever was on his mind. He would talk about how great our time working together was, of which I 100% agreed, and it was clear that we both missed our old days together.

The very last time I actually talked to Coz was different in a way that, only with the benefit of time, do I now realize. He called me up again on some random day and his tone and the conversation were just…different. He wanted to know about me, how I was doing, how I was doing with my son (Coz had a son as well that he never saw, but it wasn’t something that he ever wanted to talk about), and about life in general. There was still work talk, bitching about Trump but it all felt very subdued, like it just wasn’t that important to get worked up about. I really didn’t think much of it till after he passed.

On August 14, 2018, I got a call from my dad that Coz had passed away, at the way too young age of 54. He apparently had been struggling with “something with his stomach” for a lot longer than he told me and I guess that was much more serious than I realized. My dad was notified because he was Coz’s in-town emergency contact and when he went to the hospital for whatever the ailment was, he never came out.

It’s somewhat ironic that his stomach was his problem - he loved food, loved to cook and had spent years as a sou-chef when he worked in the Keys. I wish I had been a bit closer with him to know some of family, to know more about his untimely death - his official obituary listed “an extended illness” as the reason - but I guess in the end it didn’t really matter.

When I found out, I was shocked and broke down on the phone while talking with my dad. I called my wife at work, and just let her know how I was feeling and broke down again. I took the time to email everyone in the “buds circle” to let them know he was gone. I even reached out to long long ago co-workers (but only the ones that Coz liked) to let them know about his passing. Given that they were just as shocked as me, and that many hadn’t spoken to him in a long time, I guess I should feel honored that he kept in touch with me enough that I even knew he had been having health problems.

Thinking back on that last phone call, it’s clear to me now that Cozmo was saying goodbye. He was doing it in his way, keeping things in the realm of topics that he was most comfortable with, without making it seem like anything was amiss. For being a big softy, who wore his heart on his sleeve, he was still pretty private about a lot of things. Had I known then, I would have taken more time to maybe see more about how he was doing, or at least reminisce some more about our great times together. But you can’t always know when a good-bye is for real, can you?

I still think about Coz a lot. He passed during the first couple of years during the Trump presidency and you better believe there were some “good buds” emails about that whole shit show. And the more nihilistic side of Coz’s humor would have delighted about making fun of COVID, anti-vaxxers and the general shitty state of the world from 2020-2022. I would have loved to talk to him more about all of that, and so much more. I think that people often come into our lives at times that we need them, whether we realize that need at the time, and when we look back is when we really appreciate it.

I’m reminded of that line by Andy Bernard from The Office:

“I wish there was a way to know you’re in the good old days before you’ve actually left them.”

Because my days with Cozmo were the good old days.

I gained confidence as a developer; I realized that I had a bit of a knack for Photoshop and was pretty decent at this front-end development stuff; I understood and got more comfortable around people who weren’t like me, metal heads and hippies and just generally different than the folks I was around growing up in a middle-class world. I learned to get out of my comfort zone, to try new things and listen to different music and have new experiences and not just stick to a rigid routine I always found myself in.

And even though he never said so, I’d like to think that Coz would be proud and excited that I turned into the person I am now, with an amazing wife and two great kids and a really awesome career. He would of course never say it in so many words - that was never his way - but I think today I know that he was.

I wish I had more pictures of Cozmo, I scoured all my archives looking for them, but this one will have to do. It’s him being goofy “Uncle Gerry” with his niece (who he absolutely adored), and who I am sure misses him as much as I do, and shows a side of him that only those who really knew him ever got to see.

Miss ya Coz. But I know you’re somewhere else, listening to Zappa and fishing and living it up. If there is anything else after…all of this… I know we’ll see each other again someday.

A picture of Gerald 'Cozmo' Guido with his niece

Follow Twitter feeds via RSS, without the Twitter API

In January 2023, when Twitter killed off third party apps, I had intended to write a blog post about the solution I found, via RSS, to still follow the people I wanted without using the Twitter app or website (because fuck Musk). I never got around to it and now, once again, things have changed with the upcoming shut down of the Twitter API.

I’m 100% all in on Mastodon and the Fediverse now, but let’s face it - not everyone has moved to Mastodon and we all have that handful of people that we still want to follow on Twitter. So if you’re like me, you need a solution that avoids Twitter but still gets you the tweets you want, if at all possible.

TLDR: Use Nitter!


Solution #1 - Reeder + NetNewsWire

I have never been a big tweeter, but I did use Twitter as a source for news, especially breaking news. My previous, much ♥️ solution was to use Twitterrific from the Icon Factory. No ads, no wonky algorithm and a chronological feed. It made Twitter (mostly) enjoyable. Then the third party app access was ended (which I ranted about here) and I needed a new solution. I went through my Twitter accounts (a personal one, one for my old business and one I used just to follow sports teams/writers because I never liked lists) and paired the accounts I followed down to just the active ones I wanted. If it was a news organization, rather than the fire host of tweets, I moved to their RSS feeds where I could.

I had previously purchased the amazing Reeder app and used that for my RSS feeds from news orgs, but their Twitter display left a lot to be desired. I instead used NetNewsWire, a free RSS reeder that had great Twitter support and display. I was able to authenticate through Twitter and see my Home feed for each account, with all the tweets I would have seen on a third party app, in order, with no ads or algorithm. It was like Twitterrific all over again, and I was skirting around the ever changing whims of a right-wing, boorish billionaire.

However, because I had to authenticate through Twitter, you can probably see where this is going.


Solution #2: Enter Nitter

In April 2023, Twitter ended the free API access and started to ̶e̶x̶t̶o̶r̶t̶ charge users who wanted to use even the simplest API tools. That meant that if your app wanted to simply post as a bot, or let users connect to your own app, you’d have to pay up. That clearly would be a problem for my workaround because both NetNewsWire and Reeder require you to sign into Twitter to be able to access your Home feed (or, if you are a glutton for punishment, the “For You” tab). I haven’t checked for sure, but I imagine other services like Feedly and FeedBin are going to have the same problem.

After some digging though, I believe I found a solution in Nitter. I had seen their service popup on Mastodon, mostly via bots, wherein it was basically mirroring tweets that a Twitter account posted, but on Mastodon. In checking out their site, I found a bit more:

Nitter is a free and open source alternative Twitter front-end focused on privacy and performance. The source is available on GitHub at https://github.com/zedeus/nitter

  • No JavaScript or ads
  • All requests go through the backend, client never talks to Twitter
  • Prevents Twitter from tracking your IP or JavaScript fingerprint
  • Uses Twitter’s unofficial API (no rate limits or developer account required)
  • Lightweight (for @nim_lang, 60KB vs 784KB from twitter.com)
  • RSS feeds

Open source? Awesome. No JS or ads? Even better. But the best part: All requests go through the backend, client never talks to Twitter

Basically, if you go to https://nitter.net/nytimes , you’ll see a mirrored version of the NY Times Twitter account, free from Twitter entirely, replies and all. You can’t interact with the posts because you would need an account to be able to do that and Nitter is just an aggregator of sorts, but for my purposes it is plenty.

And if you add /rss to the end of any URL, well you suddenly have an RSS feed for that account that you can follow with your favorite RSS reeder.


Great, but not perfect

EDIT: After posting this, some people pinged me to say that they couldn’t get Nitter to work in some RSS readers, like NetNewsWire or Inoreader. So YMMV with this technique but I know it worked fine with Reeder.

Now for the bit of a bummer with using Nitter - you have to follow each account individually as a separate RSS feed, you can’t just follow the “Home” feed like what was available through other RSS clients, because that requires authenticating through Twitter.

For my three separate Twitter accounts, I paired things down even more but still ended up with about 120 accounts that I wanted to follow, which I am sure is a lot but for now is where I’m starting - I can always continue to pair down. And yes, that meant going to all 120 sites at https://nitter.net/TWITTER-ACCOUNT/rss and plugging each feed into Reeder, which took about an hour.

Was it annoying? Yes. Was it worth it to avoid Twitter? Absolutely.

The other draw back I noticed is that if you follow someone who has their account set to private, you can’t see their posts (which makes sense because you aren’t actually “following” them).

If I come across any other limitations besides your time and private accounts, I’ll be sure to update this post.


Whack-a-mole

Otherwise though, I am very happy with Nitter and would recommend it to anyone else who is in my scenario, where they still want to keep up with a few people still stuck on Twitter but don’t want to use Twitter itself.

I’m a bit concerned that Nitter uses Twitter’s “unofficial” API and my hope is that Musk doesn’t have code changed to prevent it (I wouldn’t put it past him), but for now I think this solution will serve my needs.

I hate that it takes such an elaborate method to do something that, 6 months ago, was incredibly simple and easy. And to be honest, I probably should just re-evaluate my news consumption to see about getting away from Twitter entirely but that’s a post for another day. I’m more than willing to continue to dance around all the road blocks that Musk throws up, partially because I’m not willing to 100% part with Twitter but also…well, out of spite for ruining what had been a fairly enjoyable experience with social media.

Hopefully though, this post was useful for you. And if you want to follow me - no RSS reader required - you can find me at https://drupal.community/@hotsauce

CSS: Isolating elements within mix-blend-mode

This week I was working on transferring the designs for the project I am on from Figma to a Drupal theme, when I came across a CSS property I’d never encountered before: mix-blend-mode.

WTF is mix-blend-mode?
Even though I’ve been doing front-end work for over 20 years, in my defense there are at least 520 different CSS properties, so coming across a new one shouldn’t be that surprising really.

mix-blend-mode is actually a pretty cool property:

… sets how an element’s content should blend with the content of the element’s parent and the element’s background.

So it’s basically a way to make the text or other elements blend in with the background image/color that you are applying to it’s parent element. It can do a lot of really neat things like lighten, darken, multiply, hard and soft light and a bunch more (really, checkout the MDN link for some cool examples).

Which is all fun and good, except what if you need to blend the background but don’t want the text to blend in?

Here’s what I was dealing with:

A screenshot of a website footer, with parts blurred out, showing how text is inheriting the mix-blend-mode CSS property

The styling scenario is that the client wanted the textured background all across the footer, but for the “utility links” and the copyright, they should also have the background but with a darker overlay on top of it. The designer didn’t provide a separate file for that part of the background in Figma (grr…) but used mix-blend-mode instead.

In case you can’t make it out (and I don’t blame you), the arrow in the screenshot is pointing to the utility links that, thanks to mix-blend-mode, are impossible to read.

So if you have to use mix-blend-mode but you need the text to appear as normal, what do you do?

Enter another (new to me) CSS propery: isolation.

Isolate all the things!

In essence, I think about isolation similar to the stacking principal of z-index in that you are isolating an element from it’s parent, a la putting an element atop of another one with z-index.

That’s basically exactly how MDN describes it as well:

The isolation CSS property determines whether an element must create a new stacking context.

It works different from the normal box model of CSS though, and is a bit more like CSS @container in my mind, in that you are taking something within another element and pulling it out and away from the styling of it’s parent. It’s less about positioning like z-index would be, and more about controlling what gets applied to a more general container with a background image/color. Again, that’s how I think about it, you may see it differently :)

The isolation property has a default of auto and can also use standard items like inherit, initial, revert, revert-layer (for CSS @layers) and unset . But the one that you’re gonna want to use in many cases is simply isolation: isolate;

One of the keys to using it though, is that you need to set it to position: relative in order for it to take effect. Doing that should isolate your text from the background color/image of the parent and make it stand out.

In my specific use case though, with only part of the parent element having the mix-blend-mode (specifically mix-blend-mode: color-burn) applied, since the rest of the footer needed to have the standard background image without any color change, I had to get a little bit trickier.

I wrapped the two divs, .utility-links and .copyright into a separate div wrapper called .bottom-footer-wrapper. I gave it a position: relative property and then, using the :before pseudo class on .bottom-footer-wrapper, applied the mix-blend-mode to that part specifically.

Within the pseudo class, I set it to be absolutely positioned and a width/height of 100%, and to ensure it appeared, set content: ""; . After that, it’s just applying the mix-blend-mode and we are all set.

Here is a quick Codepen example that I whipped up, since Micro.blog ain’t the best at displaying chunks of code:

See the Pen Isolating elements within mix-blend-mode by Adam Varn (@hotsauce) on CodePen.


And here is my finished example, with white links and proper styling! A screenshot of the same footer as the image above, but with the properly discussed CSS fixes applied.

Hopefully this post will help others who may have had the same problem I did in the past, but also show that there are still so many undiscovered CSS properties out there that we can use!

I didn't get eaten by JS frameworks

I’ve been a “front of the front” front-end developer for over 20 years now, and it has been so refreshing lately to see a lot of respected FEDs like Andy Bell and Jared White push back on the idea of how every site should be built using a JS framework.

My relationship with JavaScript has always been very mixed. I never formally sat down to learn it until about 18 months ago, getting by with just hacked together scripts from Stack Overflow or help from other developers (such as the awesome other FEDs at Lullabot where I work). Lullabot knew this when they hired me but fortunately, my skills with CSS, HTML and Drupal theming (where I primarily work) were enough for them to take me on, and for that I am forever grateful.

Part of the reason I never dove into vanilla JS was that I was busy. For 11 years, I ran my own Drupal development company as a solo developer and on top of that, was a partial stay at home dad for my two kids. Learning something new that I didn’t always see the practical purpose for on a project was never front of mind, I would much rather spend the weekend with my kids than studying docs, and I was thankfully able to get by without it.

But that didn’t mean I wasn’t aware. Starting in 2015 or so, the idea of using a JS framework to build a website really began to spread in the dev circles I was in, and it made me feel less-than as a developer. If everyone else was using this really awesome thing, and I wasn’t, did that mean I was going to get left behind, become a dinosaur of a past era and thus unemployable? It was always a thought in my mind, causing a sort of internal anxiety that still persists today. Having technical knowledge debt is one thing but knowing you have that debt as you continue your day to day job is something all together. It felt like JS frameworks were going to eat the web, and I was going to be gobbled up too.

But as Andy points out in his blog post, that simply didn’t happen. Citing a study from W3Techs, it turns out that React and other frameworks still aren’t doing much gobbling of anything at all.

React is used by 4.0% of all the websites whose JavaScript library we know. This is 3.3% of all websites.

That’s…not a lot of sites, especially when WordPress alone makes up 53% of all websites. So then why the anxiety? As Andy discusses, it was just a very loud, very vocal minority of developers who presented the need for a better DX (Developer Experience) over all else, and - for a while - JS frameworks were the things to do that. Everywhere I looked, from Dev Twitter to blog posts to general conversation, everyone was talking about how this or that framework was the best way forward for making better sites, it made things better for developers, unicorns and rainbows etc etc.

But in hindsight, what I thought was just me languishing in my own embarrassment over not learning the hottest new thing, was really just me being stuck in a dev echo chamber with people I respected telling me something I just had to know and me just…well, feeling bad for not learning it.

Had I stopped to really think about this, I would have seen that everything wasn’t all unicorns and rainbows; the web is made up of a lot of different tools, doing a lot of different things, and no one tool is perfect for every job or need. I had many scenarios when I ran my company where someone wanted a custom website and while I could have probably sold them on using Drupal, it would have been way overkill for what their needs were, adding unneeded layers of complexity, and instead I would steer them towards using Wordpress or something like SquareSpace or Wix.

That’s what’s at the core of choosing any tool for a project: what is the need for the client. Because at the end of the day, most stakeholders in a project don’t generally care how the thing is built, just that it is built and is built in a way that they like and can use. Developers and the companies they work for sell a product, an experience, an expectation. And unless they have a stakeholder who is just enraptured with a hot new thing, chances are any sort of explanation of compiling and first-paint and on and on will just go right over their heads. They hire us to be the experts, not to show off why we are experts.

That’s not to say that I am 100% adverse to learning new things. I remember years ago when CSS pre-processers first started taking root, first with LESS then with SASS. I jumped on learning those because they DID enhance my skills, and made my life easier, without sacrificing anything for my clients (I even presented on SASS back in 2014 . And today, I’m proud that I have built a foundation for myself in vanilla JS, even if it’s years later.

And yes, as developers, discovering a new tool for our toolbox is incredibly exciting, especially in the world of open source. It still gives me a little thrill when I find something that I know I will A) like working with and B) will meet a need, professionally or personally. But what I like to work with, at the end of the day, should NOT cloud how I approach a project.

When it comes to whose experience should matter the most, it should go something like this:

1). END USERS

2). CLIENTS

3). SUPPORT TEAM

453.) DEVELOPERS

Sustainability on a project should also be paramount too. Besides the cores of writing good documentation, adding comments throughout and making sure that the knowledge of how something works is embedded in multiple people should someone get hit by a bus, we shouldn’t be building things that make making changes more cumbersome than they have to be.

I (think) I see the value in something like CSS-In-JS but what happens if you just need to make a quick styling change? Rather than just editing a single line and pushing that up, you have to make the change, verify your tests, recompile everything, etc and adding extra steps to what should not be a complicated process. If we continue to focus on the best DX possible, we are hamstringing ourselves later for those who know how something works by adding unneeded work, and further mystifying a project for someone new (or not as knowledgeable) to come in after the fact.

And yes, knowing how complex systems work might also seem like built in job security for a lot of people. But it isn’t sustainable in the long run, when everyone moves on to the next shiny thing and hiring folks are left scrambling to find someone new to refactor or redo entirely a project because the winds of dev trendiness have changed. I would argue instead that it lessens job security because a company that chases the newest thing is likely to continue to do that and it puts more burden on the developer to keep up or get let go, in a much shorter time frame. The tortoise can sometimes still win the race.

I remember when Angular was the thing. Then it became React. Now it’s TypeScript. All of which made me feel like less-than as a developer, until suddenly…they didn’t. The in-crowd moved on to the next thing and I stayed where I was, growing my skills slowly, and I had a hard time even determining where I should try to focus, if I was going to attempt it at all, because the vocal minority was always carnival barking me in different directions.

But in the end, I didn’t chase the new for many years and you know what? I was able to stay in business, live comfortably enough to give my kids (most of) what they wanted and deal with genuinely happy and satisfied clients. Maybe I was an outlier and someone who got lucky, but I don’t think so. I think there are more of us out there than people realize, who had the same conflicted feeling as me.

Back to that echo chamber for a second. As Jared points out in his post, we should have realized sooner that the onus wasn’t on us to keep up with the front-end framework race but rather for those loud voices to explain why we need to run the race in the first place.

The Burden of Proof is On You, Frontend Framework Stans, Not the Vanilla Web!

So then, I ask:

  • Explain to me why I need to abandon what I know to be a better developer

  • Explain to me why this or that tool is going to be better for my project

  • Explain to me why clients should ignore any FOUC on their site in favor of a slightly cooler experience or any other “gotchas” that come along with any tool

It’s like that line in Jurassic Park when it comes to trying to push us all towards frameworks

GIF from Jurassic Park of Ian Malcolm saying 'You were so preoccupied with if you could, you didnt stop to think if you should'

You don’t have to have JavaScript on your website. JS is the third leg of an already stable table, along with HTML and CSS, that makes the web work. So why are we offloading entire websites into just one? It just doesn’t make sense. Frameworks have a purpose but (again to quote Jared), the web is a polyglot of technologies that make it work and none of us should be made to feel like we have to all follow just one of them to be successful.

So yes, I’m glad - very, very glad - that other people are finally speaking up about the echo chamber a lot of us were stuck in and pointing out the flaws in always following the crowd. As I continue to grow as a web developer, I’m sure that I will adapt and learn new things as I need them. But never again will I just beat myself up for not being on the cutting edge. It’s just not worth the anxiety and stress.

I’m still here as a successful front-end developer. And I didn’t get eaten by JS frameworks.

Digital relics of our former selves

I have a very, very low ICQ number (670140). The problem is, I can’t login to access it anymore, as the email address tied to it is long, long gone.

For people of a certain age like me, who came of age on the internet in the late 90s/early 2000s and at the end of dial-up and the lowering of walled gardens like AOL/Prodigy/Compuserve, there is a whole portion of the internet, of our younger lives, that seems to be gone forever.

We were the people who shared our of-the-moment thoughts in AIM away messages. We would spin up a new blog on Xanga, with no expectation of an audience, doing it just because we wanted to. Social media wasn’t the omnipresent force it is today, and we would just write and share, love and laugh with strangers or friends, as we settled ourselves in this emerging digital world.

To be in your teens or 20s back then was to feel like an explorer, discovering new places to express and be yourself without thought of engagement or follows or anything like that. Sure, it was nice if someone read and commented on your post but how great was it discovering a real-life friends LiveJournal and really getting a feeling of what made them, them ? We were young, we were free, and we were traipsing everywhere to plant our flag on our tiny little corner of this awesome new thing called the Internet.

Reminiscing over the old days of social media now is like the “Old Man yells at cloud” meme from The Simpsons, and that’s not what this post is about. Rather, what I’m realizing now as I become that old man yelling at the actual Cloud, is that a key part of my digital life is gone forever.

We tell our kids today that “what goes on the internet, stays on the internet” and in many ways that’s 100% true. Most social media sites let you archive and export your data; the Wayback Machine keeps an ungodly amount of information. If you post something today, it’s likely to remain online for a long, long time.

But what about the ephemeral stuff, the things that would be called “content” today but was really just a text file back then?

Where are our AIM chat logs, our ICQ conversations with now-deceased friends and long broken-up with ex’s? Did anyone ever save those IRC chats with the Quake “clan” you used to spend weekends playing at LAN parties with? Probably not.

It all just disappeared as these services merged, got bought, shut down or just changed business focus, users be damned. Today, our phones can hold 10x as many pictures as our computers at the time ever could, but in those days even if you were lucky enough to have a digital camera, you didn’t take many pictures and what you did take were shit.

Maybe if you dig hard enough, you can turn up a copy of your first website, or remember the password to that long forgotten but somehow still up blogging service, so you can frantically delete your bad poetry from your first relationship, but probably not. You’ve moved through too many computers, devices or just plain moved and threw away your Password Book (remember those?) to ever find that info again.

Humans have never been able to save every scrap of detail about our lives of course. Billions of people have come and gone on Earth with barely a record of their existence. But today, most of the world is sharing and saving and posting everything they can, as if we are all doing it like we are running out of time and there is just so.much.stuff . We’ve made so much that we can never truly know what we have.

And yet having become digitally aware before all of that, before we the world truly went over the waterfall of the Internet, is very bittersweet. People younger than me now can remember it all because everyone works to remember and the pieces are all there. But I can’t.

Admittedly, a lot of the stuff back then would probably make us all cringe today, and most wouldn’t ever really be worth saving. But I wish I could at least look, at least have the opportunity to curate it. I might be able to find a scrap of something here, an old screenshot there, but that’s it – the rest is all gone.

We tend to think of a relic as something old, from long ago. But a relic can also mean something cherished or prized. For me, those relics from 20+ years ago exist only in vague memories, in “remember posting on ____” conversations, and will never be something tangible again like you get from exporting your Twitter tweets archive.

In some ways it’s better now than back then, to be drowning in a record of ourselves, but to me it will always feel incomplete. There is no “memories” suggestion on my phone for what I was chatting about or listening to in 2002, because no one (including ourselves) ever thought to save it. And I’ve come to accept it I guess, knowing that part of me won’t really be around for someone to know, but it still leaves at least a small hole in me in making up who I am.

Today, I hoard digital pictures of my kids, putting them online in a private place but also backed up to my phone, hard drive and a remote cloud service. Not just because they are pictures of them growing up, but because I know what happens if you don’t take the time to save stuff like that. How quickly we can lose the ephemeral parts of our day to day lives that don’t mean anything then, but could mean the world to us later, without even realizing that it’s gone.

Yep, started a blog.

Let’s see how it goes.