Insomnia and Getting Stuff DONE

Insomnia since 4am means I’ve gotten some stuff done and it’s not even 9 yet. I’m all prepped for my blog staff’s meeting later today, which means I got a bunch of small fixes done on the redesign and assessed the status of various projects for the next month or two.

Yesterday I finished my first little react project to the point where I’m calling it DONE as in Cult of Done and moving on to other things. I left a todo list on the readme so I can go back and clean stuff up later, but I’ve hit the law of diminishing returns for a learning project. Nothing I have left to work on there will help me learn anything new, or rather, anything I would learn I can do more efficiently as part of a different project.

You can fork that project, by the way, if you want to set up your own link directory. Check the readme for details.

Today I’m going to make a study day. I’m working through the documentation for React and Redux, which is going much smoother now that I have some experience under my belt. I might open Cuppa again and figure out next steps for that. It needs a real backend which will likely be in Node. MERN stack tutorials are in my future.

Last night I used Library Time to start poking at my next writing project. Notion seems like it will work for my needs, though I spent most of the time shuffling real pieces of paper around. I have a full binder of various attempts at wrapping my head around what this world looks like and who the characters are and what story I’m trying to tell. It’s been twelve years since I started the project and I’ve changed considerably (along with the rest of the world) in that time.

My first job is seeing what I have to work with, hence the paper shuffling. There’s a treasure trove of raw material. Somewhere in there is the heart of the story.

Don’t forget to breathe

“When you were little, you were so carefree. But these last few years, more and more, it’s almost like I can feel you holding your breath… You get to exhale now, Simon. You get to be more you than you have been in… in a very long time. You deserve everything you want.” – Emily in “Love, Simon”

This morning when I woke up everything felt tight, strained. I’m 43 and that means that things have indeed started to hurt more in odd places, but this was more than that. I felt clenched.

I turned to a guided meditation on my phone. It helped a little, enough to get the ball rolling in making me see where the clenching was coming from, or so I thought. I was looking at how stressed I’ve been lately for various reasons.

I can feel the burnout creeping in around the edges, enough that it might start effecting my work. I can taste it on my tongue and feel it in the way I interact with the word. I knew when I signed off for the day I needed to unplug for a day or so, at least from writing code and wrapping my mind in those logical thoughts, useful as they might be.

I lit some incense, took a deep breath, and started to unclench. Then the noisy neighbors came home and wrecked the mood I had so tentatively started to foster. Fine then, I’ll just watch a movie, right?

I had heard about “Love, Simon” from a friend and they were pretty passionate about it. All I knew going in was that it was a teenager’s coming out story and I was guaranteed a happy ending, which is so welcome right now.

I liked the characters, enjoyed the soundtrack, and was very much appreciating the whole thing. And then I got blindsided by that bit of dialogue above. In the moment I didn’t understand why, but I started crying. Okay, sobbing is more like it.

The words are what the mom, Emily, says to her newly outed (by another student, not by choice) gay son. A little while later, the dad says some similar kinds of things. I could not stop crying. It’s been a half hour since the movie ended and I’m still crying.

In my spiritual tradition (as much as what you can what I do a tradition) we call this kind of experience a “heart opening”. Something comes along and just breaks you wide open and the feelings are overwhelming and intense and beautiful, if a bit painful as well.

I realized how much I needed to hear those words. In that moment I realized how much I, too, have been holding my breath. Unlike Simon, though, it hasn’t been four years. it’s been more like thirty-four.

I’m queer, this isn’t news to most and definitely not news to me, but my parents don’t know. I don’t have a partner. They’re conservative. I know they would still love me if I told them, but they wouldn’t get it, I don’t think, just how like they don’t get that I’m on the autism spectrum, though I have at least tried to explain that.

They don’t know about my spiritual path or lots of other small, personal, fragile things about me, either. Being exposed to them for the better part of the day yesterday left me feeling both tired and wired. Nothing was wrong, we had a nice time, actually, but I felt that gap between us, that secret. I was holding my breath all day.

This movie hasn’t made me suddenly want to tell them. I’m not planning all of a sudden on coming out. It has made me, however, realize that I hold my breath a lot. I have all this tension just balled up in a tight coil inside me. It’s not just my queerness, my spirituality, my personal beliefs. Not just being afraid of the world we’re living in and how it all feels so wrong.

It’s about how I’m approaching things, too. I’m not finding enough joy, or making my own. I’m not taking care of my health, spiritual, physical, mental or otherwise. I’m clenched all the time, with fear and nameless (and named) anxieties. I’m not resting enough.

I’m not breathing enough.

I don’t know what the next step is from here. I’m open and raw right now and that’s okay, it’s good. I vaguely was aware that there was a barrier up around me and it’s wrecked now and that’s good, too.

As Robert Fripp once wrote, “It is necessary to know the next step, but not the step after that.” My own “next step” was to sit down and write these words, to get it down on the page and find the connections.

There’s more digging to do, as well. I’ve got unreconciled feelings of something that might be regret, but it’s waiting for now. I also know that the world will do it’s best to come creeping back in, the good and the bad and that the intensity of these feelings will fade and it’s very possible I may even forget that this evening even happened. I like to hope not, though and to also hope that I can start building from here.

Is it strange to say that I wish any of you reading this a similar experience? It’s not fun, it’s not one of those “nice” feeling things. There is a chance though that it can be very healing and will do more good than harm when you recognize it for what it is. You may even feel like yourself again, though a slightly different version, when you come out the other side.

It’s not too difficult to start. You can begin by taking a nice, slow breath…

On Certification

“Software Engineering”, a field of interest launched in 1968 that aimed to bring product design and construction skills to computer scientists by having very clever computer scientists think about what product design and construction might be like and not ask anybody.  – Graham Lee

The idea of certification and licensing for software engineers came up in a Slack I’m on. Of course I accidentally ended up writing a wall of text that really needed to be a blog post, so here we are.

I think those algorithm coding white board tests used by many tech companies to vet potential employees are meant to be some kind of measured standard. However, as an industry it’s been collectively decided (mostly by default rather than intent) that there should be alternate paths to a career, which makes that kind of standardization feel like more like gate-keeping.

Additionally, the vast array of technologies available make it hard to quantify knowledge like that. Are you certifying for front end, backend, general knowledge? Say you’re going to have multiple certificates. If it’s front end, are you standardizing a particular language or even framework? How long would such a thing be valid for?

Setting standards also means being able to take a step back and evaluate the industry as a whole. It would surely slow progress of new technologies, but then I don’t necessarily feel that’s a bad thing, if I’m being honest. Move fast and break things was meant to be an approach to solving problems in new ways (yes, and make money fast and easy) but unfortunately seems to have taken the discipline of writing software along with it.

It’s all something to think about, and standards, if not licensing as other engineering disciplines have, is not the worst idea I’ve ever heard. I even say this as someone who didn’t graduate college. If licensing was put into place, I’d be out of the running and at the same time I feel that so much software is built in a way that’s harmful to users and maintainers alike that something should probably change.

React, Rails, and the degradation of the developer experience

The web development field is a mess. Tutorials only 6 months old are out of date. I’m dependent on stack overflow for answers to everything. I spend more time fighting config files and setups than I do writing code.

I wouldn’t want to scare anyone away, but I would be tempted to give dire warnings to folks looking to get into web dev right now. There is a shit ton of bs involved that has nothing to do with building apps or changing tech culture. Our tools are busted & confusing as fuck. It’s only because I’ve been at this so long that I can calmly navigate this quagmire.

I don’t mind learning new things, but that learning needs to feel like I’m getting something sustainable out of my time. Honestly, I don’t think “always be learning” is healthy. It’s the nature of the beast, but I don’t think we’re built for it. I just would like the industry to get to a point where there’s a sense that any of this is learnable with consistency.

I’ve literally lost interest in React before I’ve even built my first app in the framework and that’s entirely to do with the amount of learning that has to go on that has nothing to do with what I’m trying to build.

I’m just looking at all this and seriously questioning what we’re getting out of it. How is this better than the PHP apps we were building 10 years ago? It’s a slightly better experience for the end users? Maybe, but there have been other related innovations that make things faster. I mean, I built this site on WordPress for a reason. It’s fast, it’s got a stable UI, it does predictable things.

Are these web apps we’re building really anything more than html forms and pages? Is this really any more straightforward (and powerful) than what we were using a few years ago? I was working through a React course last week and the instructor half-jokingly said he called himself a “professional forms developer” which is scarily accurate for what many of us are actually doing.

There is room for innovation. I just wish it was happening a bit more slowly and thoughtfully. I think my last year of working with Rails has had a big influence on how I’m feeling about this stuff. There are changes to Rails, but it’s measured. JavaScript-land is a hot mess in comparison. The Rails apps I work on are plenty quick and responsive, even on mobile. Most of the time, there’s little to no javascript involved. Okay, fine, I’m blaming the single-page application fad.

All of this complexity is supposed to make the “developer experience” better. We’re meant to be more productive and write better, more stable code by using these frameworks. I’m just not seeing that play out so far in practice. If we’re not even having a better experience doing the work, then what is the point of all this, really?

At the end of the day, I like building things. I really do. Today is just one of those days where the barrier between what I’m doing (and where the industry keeps going) and being able to build things is very very high.

Focus music

When I’m coding, sometimes I’ll put on various game soundtracks on Spotify.

I don’t listen to soundtracks for games I already play. I know the music too well and it’s distracting. I focus on trying out music from stuff I’ve never played.

Besides getting music that helps me focus, as a bonus I end up discovering interesting games I’d never heard of before and probably wouldn’t have found any other way.

It’s pretty awesome, though it does mean my Steam wishlist gets even longer.

Immersive Skyrim: Introduction

One of the reasons I built a PC for myself this year was gaming. I hadn’t had a real, solid gaming machine yet and was excited to try it out. In particular, I wanted to see what I could do with mods on Skyrim.

I managed to gather a fair amount of mods that all worked together to give me an interesting, immersive experience. While I haven’t gotten very far in the game’s storyline (technically I haven’t officially started, but I’ll explain that later) I’ve had an interesting time wandering around, doing a bit of dungeon crawling, and ending up getting into and out of a fair amount of trouble.

I thought since I was having so much fun with this play style, someone else might too and so here’s the first part of my guide on playing Skyrim with a bunch of immersion mods. I’ve also added one “in character” cheat mod that keeps things fun.

Okay, fine, I’ll start with the cheat mod.

My character, as I’m playing her, is a Kajit from elsewhere in the Elder Scrolls world. She and her mother (who died recently) were traveling merchants and tinkers. In her grief, she sold everything they had except for the Haven Bag that had been passed down in the family for generations. She came to Skyrim to see what it was like and maybe try starting her life over again.

So yeah, the Haven Bag is probably the cheatiest cheat ever. It’s a house you can carry as a piece of equipment, complete with a bunch of loot, bed, alchemy table, workbench, etc. etc. So sue me, I’m a pack rat. I have to pick up everything I see and having a limited inventory is not for me. Yes, I’ve also slept in the bag and used it to warm up. But this is a land of magic, right? And yeah, this is what my character’s ancestors used to get by in life. It’s there to be used.

Okay, now that I’ve finished justifying why my total cheat is okay, I’ll tell you a bit more about the immersive mods I gathered to make the world feel more lived in and real, not to mention more dangerous. I’m going to go over the general categories now, and then break down the mods in separate posts later.

Before I get started, I’ve created a spreadsheet that lists all the mods, including the load order and links.

First, I have a bunch of what I’ll call “General” mods. These are the standard mods that are recommended that most players use, even if they’re playing a fairly vanilla game otherwise.

Next comes the “Cosmetic” mods. These make the whole world a little prettier, a little more lively, and a lot more realistic, especially when it comes to the animals in the world. I added quite a few of these.

“Loot and Trading” will be after that. I’ve added just a few things to make trade more realistic and add some depth to the world that wasn’t there before.

After that, I’ll talk about the “Direct Effects” mods I’ve added. These add more interactivity to the environment itself, effect the character’s stats, or modify the way the inventory works.

Finally, I’ll cover one of the most interesting set of mods I’ve added: “Health”. These are the mods that massively change the way the game is played and ties all the other mods together into a more immersive, impactful experience.

All in all, adding these mods has made Skyrim interesting and more challenging, though not in the typical way. Monsters and men retain their same level of difficulty. It’s the environment itself that seeks to punish with a more dangerous journey and reward with more beauty and subtlety.

Now I just wish I could keep avoiding that pesky main storyline.

The tea cabinet

I organized my tea this morning and figured I’d give a little tour. (Click the image for a bigger view)

I love tea. Even when you make a basic cup with a bag, there’s still a little ritual around it, something that soothes me and smooths out the rough edges of my day. I also love the subtle (and not so subtle) variations in flavor available in tea, especially when you throw herbal tisanes into the mix. Even without that, the flavors of tea range from light and sweet to dark and earthy or smoky and I find each of them interesting.

So, my tea. I’ve got a cabinet dedicated to it. Top shelf is hard to get to without a chair, so it’s now holding my fancy flower blossom teas as well as a few empty containers waiting for my next loose leaf purchase.

Middle shelf is most of the boxed teas. Celestial Seasonings, Choice, Yorkshire, and Twinnings. I’ve also got some Adagio fandom teas that are tasty and special to me.

Bottom shelf has the tins and a couple special teas. This is where my beloved Pu-erh lives. I’ve also got a tea bag dispenser that holds a couple chamomiles to keep them handy and the last of my bagged Twinnings Lapsang Souchang.

I still need to work up a list, but this is a nice little overview of what I’ve got on hand. I need to remember to pick up a nice white to go along with my greens and blacks.

Cranky Tech Rant #1

(#1 because yeah, there will be more)

I am really tired and a bit angry at people calling themselves “React Developers”.

No. Please. You are a JavaScript developer working in React.

Just like right now I’m a Ruby developer working in Rails.

It’s really easy to lose sight of the language at the core, and the fundamentals that go with it, if we forget what the foundation is for these frameworks.

This could be expanded to saying “You are a DEVELOPER” and please don’t put a language-specific label on it, but then, that’s because I like being a polyglot. That’s not everyone’s cup of tea, for sure.

On “Software Engineering”

There was an xkcd comic going around a couple weeks ago. It was funny in a disturbingly “it’s funny because it’s true” way. Further driving the point home was this article on writing software tests I read this morning, where Process Engineering practices used in industrial planning is compared with Software Engineering practices for building applications.

Much of software built today is created with some level of testing applied, at least on the back end. The front end has been slower to integrate testing, though the tools are just as strong. But in both the front and back end, testing is seen as a necessary evil at best, and an unnecessary burden at worst. A lot of this sentiment, from my experience, comes from a couple different sources.

First, is simple ignorance. The way many of us have entered the industry, through various levels of self-teaching, means there are gaps in understanding of best practices. As someone who came in this way, I’m hyper aware of these gaps and work to fill them. Testing is one of the most difficult skills to learn for a newcomer, especially if you’re learning on your own. I can’t speak for the bootcamps, having never attended one. I like to think they teach BDD or TDD as a matter of course.

Second is cost. Testing takes time. In the startup world of “move fast and break things” the things that break are supposed to be the old ways of doing things, opening up the opportunity for more efficiency and a better ways. When testing is sidelined in favor of pushing out a minimum-viable product, what often ends up broken instead is the code base, the application itself and the bread and butter of the business being built.

Third is, quite frankly, laziness on the side of the developers. Testing takes time. It means having planning in place. It means thought processes must be applied to ensure the functions being written do their job properly. This means that you can’t just dive in and start writing code, something most developers will tell you is the “fun” part. So there’s a big avoidance factor at play as well.

Mechanical engineers like my father chuckle about our industry’s use of the term “engineer”, and rightfully so. While there are many folks who work hard to plan and test, there are many more who prefer to dive in and start writing code without those practices. When the software does not work as expected, or becomes more and more difficult to maintain as the bug list grows, none of us should be surprised.

If we are to model ourselves after the aircraft designers and the building engineers mentioned in that xkcd comic, then we need to embrace their practices of testing and planning as well.

The software we write infects and effects the world around us. Algorithms rule everyone who touches the internet now. Software is dangerous, it’s a tool that can and is used as a weapon, a subtle knife used to stab more often than not. We have a duty to everyone on the planet to get our shit together as an industry. Otherwise, what the hell are we doing calling ourselves Engineers?

Pruning

I was thinking about my phone today. Eventually it will need replacing, but with what? Do I want to stay with the iOS ecosystem? Is there some better option out there?

I went through a little thought experiment where maybe I would purchase a basic, non-smart phone and get an iPod Touch for the stuff I use my current phone for. Getting away from iTunes (which I only use for organizing my music library) is a massive challenge and I’ve got quite a few games I’m pretty attached to.

In the end what I realized is that I needed to declutter my phone, make sure the notifications I get are minimal, and find a better option for a bedside clock.

I dumped most of the games I kept on there “just in case” I wanted to play them (I game a fair bit on my iPad, those games will be there instead). I moved my social media apps (Twitter and Mastodon, I don’t have a Facebook account) deep into a folder. I like the option of posting to them as needed, but burying them makes me less likely to read the feeds on there.

Everything on the homepage is daily use. Apps on the middle page are stuff I use pretty often but not daily, and utilities it would be a pain to have to download (the retail apps particularly) the few times a year I need them. The games I’ve left on their I use daily for brain breaks and I like variety in them.

All in all, I’m glad I went through this process. I feel like my phone is more of a tool again and will help me keep my daily practices more consistent and distract me just a bit less.