Coding Journey Update

I first started learning to code in grade school – which is not that strange these days but in 1982 it was pretty groundbreaking. I wrote more about that on my dj-codes site.

I started coding again in the early days of the web. I created sites from scratch and tinkered with HTML wherever I could. I didn’t really do much more, except for adding some ActionScript to my Flash animations (another relic of a bygone era).

After I started using WordPress to build websites around 2009, I didn’t really move beyond HTML tinkering. Somewhere in the back of my mind, I always thought I would go back to learning to code so I could create applications or make robots move. Someday…

Last year, I decided to start learning to code again for real. Partly because I’m just a geek and partly because as a software developer, I would make a lot more money than in any of my current freelance gigs or screen printing business. I also like to learn new things.

So far I’ve been learning on my own through Udemy courses, YouTube, books and other developers who know more than I do. It’s slower to learn that way, but I think I’m getting more depth of knowledge than if I did a quick-start bootcamp kind of thing. Nothing against bootcamps, I just know how I learn best.

I’m going to start documenting my journey into coding here and I may also start a YouTube channel. I’ll try to stay more on the journey side and less on the code side. I don’t want your eyes to glaze over in case you operate heavy machinery while you read my posts.

The last six months has been really fun. I’ve loved every minute of my learning, even if sometimes it makes me want to scream (looking at you, PHP). I’m learning to fail more often and pick myself up more quickly. I don’t really have a set deadline for when I’m supposed to be “done,” I’m not thinking of it that way. I’m just doing what I can, as much as I can and building projects that might be fun and useful.

Earlier this week, I got my certificate in Responsive Web Design. It represents about 300 hours of course work in HTML and CSS. Now I’m moving onto JavaScript, where the rubber meets the road.

Free code camp certificate

I hope you’ll follow my journey. I need all the encouragement I can get. And if you’re on a similar journey, I’d love to hear about it.

Get off my lawn

A pair of feet jumping off a lush, green lawn. Photo by Sharon McCutcheon.

Phsst-phsst-phsst-phsst-phsst-phsst-phsst-phsst…

On one of my morning walks in our suburban Los Angeles neighborhood, I took a detour around a home where a mass of sprinklers was dousing the lawn in little arcs. The lawn was green, lush and beautiful. If I played golf, I probably would have been tempted to tee up. Instead, I skirted the yard and went into the street to avoid getting my ankles splashed and my feet wet. Puddles formed on the sidewalk and the excess water not soaked up by the grass and dirt ran down the street in little streams.

Rather than pause to revel in the splendorous high pile of Kentucky blue grass, I thought about the fact that Southern California is in the middle of another drought year. As I watched the water run down the gutter, I imagined how much of it could have been used for drinking, cooking or bathing. Like the two expensive SUVs parked in the driveway, the lawn seemed like just another upper middle class trophy. Look! the lawn seemed to boast, they are doing so well they can even let their water run down the street!

Don’t get me wrong, I love grass. I love trees and thick, green forests. I grew up partially in the midwest, where lawns were ubiquitous. Unlike in the Southwestern desert, they didn’t need much tending to keep them going. They got plenty of rain and shade from the tall, mature trees in the neighborhood. It was a rare occurrence for my parents to put out the sprinkler on a scorching summer day to water the yellowing patches in the yard. For us kids, running through the sprinklers was an exciting rite of passage, a signal that school was still months away. It was also likely defeating the purpose as we trampled the grass on every pass. Somehow it always grew back anyway.

When I was ten, we moved from Chicago to Phoenix and I was full of questions. If it’s a desert, where will we get water? Will we have water? What if we run out? My vision of the desert at the time was taken from old TV and movies, where someone was always dying of thirst or covered in dust. I was surprised and relieved to find that our new home was in a suburb not unlike the one we just left. We had showers, sinks, toilets, running water and eventually even a pool. We were going to be okay.

Our yard, however, was a completely different story. It was covered in little rocks. There was a small tree and some bushes, but the ground cover was definitely not play-friendly. In fact, we were lectured not to ever walk or run through the yard because we would disturb the black plastic sheeting underneath that was keeping the weeds from growing. Because I was bad at listening, or following rules, or maybe just because I was ten, one of my favorite pastimes was running at full speed and seeing if I could clear the bush in the middle of the yard. Once my activity was discovered, I was given the job of pulling the weeds that were now popping up all over the place. If pulling weeds out of grass is annoying, digging your knuckles into sharp rocks is torturous.

A house in suburban Phoenix with rocks in the front yard.
A recent photo of the house where I grew up in suburban Phoenix. It looked almost exactly like this in 1980.

It didn’t take long for me to stop worrying about where our water came from. I splashed around in our pool without a care of water sources. I was satisfied after I learned that we had plenty of water because it was piped in from the Salt and Verde rivers, as well as the Colorado River. Plenty!

That’s still the case today. Phoenix largely gets its water from outside sources. Similarly, Los Angeles gets the majority of its water from the Owens River Valley, which in turn depends on snow melt from the Sierra Nevadas. If there’s little to no snow pack in the winter, there’s a drought in the spring and summer.

These systems worked okay when there weren’t almost 4 million people needing fresh water. It’s getting increasingly hard to serve such a huge (and growing) population. It’s fascinating to me that a majority of people seem to live as if the supply is endless. I don’t know if it’s willful ignorance or a genuine misunderstanding of the environment in which we live. It’s also both amusing and maddening that we blame avocado and almond crops for greedily sucking up all the water, when my own observations have shown me:

  1. Several cars waiting in line at the local car wash, all of them without a speck of dirt
  2. The aforementioned over watering and maintenance of golf-course level lawns
  3. The massively wasteful animal agriculture industry. If you’ve ever driven on I-5 through central California and held your nose for several miles, that’s what you smelled. But sure, almonds are evil.
  4. Overshowering, when George Carlin’s “four key areas” method works just fine.

Aside from just being cranky about the water waste from lawn maintenance, I am fascinated by the fact that in spite of all the gorgeous green carpet I see in our neighborhood, I notice one odd thing. I never see anyone actually using the lawn. No one ever sits on them, naps on them, or plays on them. They are purely decorative.

When we moved into our current home, the lawn had been very carefully built and maintained so as to attract renters like us. I admit that it worked. However, my just-spent-four-years-in-Oregon sensibility changed when I realized how much water we were losing every time the sprinklers came on. We slowly dialed it back until our landlord started complaining about how some of the grass was dying. To appease him, we dialed it back up until we started noticing mushrooms growing in the yard. So back down it went. We wondered how the trees and bushes could thrive without much water, but the grass could not. Our neighbors have beautiful rose bushes and other plants but they never water their yard at all. I started looking at my favorite yards, the ones with dirt and colorful desert plants, and decided that was really the way to go. Over the years our landlord has softened on the grass issue. We water the plants in the front yard with a hose a couple times per week, but I even wonder if maybe they’re getting enough water from the ground anyway.

Sometimes I miss the “accidental” green lawns of Germany, Chicago, or Oregon. I also miss the desert of Arizona. When I think about missing those things, I realize that what I miss is experiencing them for exactly what they are. I’m starting to understand what I used to hear people say about Los Angeles being fake. It’s not the people and it’s not Hollywood. It’s the day-to-day manufacturing of a different environment instead of experiencing the one we’re in at the moment.

How I choose to link my reading list

If you’ve ever checked out my Now page, you’ve seen my monthly reading list. Sometimes everything changes and other times it looks like I take months to read the same book. That’s because sometimes it does. Sometimes I give up on a book that’s not really happening for me. No guilt. I read for pleasure, mostly, so if it’s not pleasing, why torture myself?

In fact, I think kids should be allowed to be more honest about the literature in their school curriculum, rather than be trained to believe that just because someone like Twain or Hemingway wrote it, it’s automatically good or entertaining (I love both authors, by the way). While it can be good to understand why society as a whole has declared a book to be great literature, it’s not necessary to agree.

I list almost everything I’m currently reading, even if I’m not really getting into it. So if you see something on my list and are curious what I thought about it, you can check out my Goodreads page. It probably needs updating, so you can also just ask me.

I like to link to the books I’m reading. I’m just nice that way. Most of the time I link to books in the Los Angeles Public Library collection. Mostly because I live here, but also because I believe that our local libraries are one of the most important public institutions we have. I grew up in the library, my wife and our kids grew up in the library. It’s an amazing, free resource. I want to see more people taking advantage of them.

While I love our library, I do also like to buy books and keep them in my own collection, or give them as gifts. For books to be bought, it’s probably easiest to link to them on Amazon. That way, almost anyone, almost anywhere in the world can find the book quickly and buy it on the spot.

I’m not going to do that. I have two reasons:

  1. I don’t think things always need to be so easy. Yes, you can get a book delivered to your home or office sometimes the same day. But when you consider the cost of the human and environmental resources it takes to make that happen, it’s a luxury that we can easily do without. Sure, I order things from Amazon, I won’t lie. But usually it’s something that I can’t get locally very easily without driving all over town – another waste of resources.
  2. I want to support small, local bookstores. I think the days of the behemoth bookstore are going to be over soon – because… Amazon – and I want to see small, independently-owned shops become the go-to source for book-buying. Many times I link to Skylight Books here in L.A., but if you have a local bookstore you love just let me know and I’ll link to it when I can.

That’s about it. That’s my great linking manifesto. I love sharing what I’m reading here and I hope you find some juicy books to check out. If you have some to share, get in touch. I always love to hear about new (or old) titles!

Learn Emacs and you could totally change how you use your computer

What the heck is Emacs?

Are you ready to get your geek on? Let’s talk about Emacs.

The first thing to understand about Emacs is that it’s not a sandwich. It does sound like it might be a tasty snack, but unfortunately being food is among the small percentage of things Emacs is not.

Emacs is a text editor. No, wait. Emacs is for writing code. Ummm… it’s also for organizing your calendar and using email. You can play games. Here’s the definition from the creators of the most widely-used variant of Emacs:

GNU Emacs, describes it as “the extensible, customizable, self-documenting, real-time display editor.”

It was invented in 1976, and is amazingly still used and being developed today in (mostly) it’s original form. It doesn’t have a pretty, graphical user interface like the software you’re used to in 2021. It looks more like the terminal window that Neo uses in The Matrix.

Rather than navigating with a mouse, you do almost everything using key commands. It takes a little time to learn them but once you do, it becomes second nature. If you use bash (terminal) a lot, you’ll get the hang of it pretty quickly. In fact, you can even use Emacs inside your terminal, but that’s a story for another day.

Like the description says, Emacs is customizable and extensible. There are packages you can download and install (all from within Emacs) that extend the functionality and look of your Emacs. Someone else’s Emacs could look totally different from mine, which is pretty cool.

Emacs is also self-documenting, which means that everything you need to know about using it is built right into the program. If you try it, I highly recommend doing the built-in tutorial.

Another thing to love about Emacs is that it’s cross-platform. You can move your whole Emacs setup between Mac OS, Windows or Linux and pick up right where you left off.

Here’s a screenshot of my Emacs setup (click for a close-up):

screen shot of Mac desktop showing Emacs buffers

I use two monitors and Spaces (Mac OS). So my #4 space is dedicated to Emacs. I’ll give you a quick tour, then I’ll describe what’s going on. There are several windows open, some with one frame and one split into two frames. From the left; Scheme, Projects, Agenda, Notes (below), and a Game. Here’s what they are:

Scheme

This is the reason I started using Emacs in the first place. I write code in a few different languages, but I never really learned computer science itself. I picked up a book called Simply Scheme that teaches computer science and programming from a very basic level. For several days (weeks?), I got wrapped up in learning how Emacs works, and of course I had to find out everything I could do with it beyond running Scheme.

There is even a package that highlights syntax errors in PHP and other languages. While my main code editor is VS Code, I’ll edit some code in Emacs from time-to-time.

Projects

Emacs is a very basic text editor, but it does have some features that allow you to create nicely organized lists and documents. The thing I like about it is that it’s very much distraction-free. Unlike writing in MS Word or even Google Docs, there are no formatting options or little pop-ups that happen while you’re composing something. I use it to get my thoughts down, edit, then paste the final version into Open Office or Google Docs later for formatting. Using Markdown language you can also do some nice formatting in Emacs and export as HTML or a PDF.

One of the things I love using it for is to list projects I’m working on and next actions (similar to David Allen’s Getting Things Done, but me style). I can create To-dos and even manage them with scheduling and completing them with simple key commands.

Agenda

One feature I love is org-mode. I can look at my schedule and to-dos by the week or day. Any to-dos I have added to my other files, like Projects, will sync up with my agenda file. It takes a little setting up, but once it’s done it’s awesome.

Like most people in 2021, I use my phone for almost everything. So it wouldn’t do me a lot of good to set up an agenda if I couldn’t view it or manage tasks when I’m not home. Luckily, there’s an app for that. It’s called beorg and I love it. It syncs via my iCloud acccount (you can also use WebDav or Dropbox).

Notes

Again, as a text editor, Emacs is great. Anytime I want to make quick notes on something, I create a new file/buffer and start tapping away. In my screen shot, I was copying and pasting notes from a chat with tech support about a client’s site. Sure, I could just use TextEdit or a bunch of other word processing apps on my laptop, but the beauty of Emacs is that I can do almost everything right there.

Games

If you used a PC back in the early 1980s like I did, the first thing you wanted to know was what kind of games can I play on this thing? Back then, computer games were mostly text-based unless you had a system like Pong. The games included with Emacs are very similar, although these days there are more graphical-based games like Tetris and even Pac-Man (I haven’t tried that yet). And yes, Pong is there, too.

The game open on my screen is Dunnet, which is a version of an interactive adventure game called Zork. I keep that buffer open and jump into it every now and then.

There’s a fantastic list of games you can play at https://www.masteringemacs.org/article/fun-games-in-emacs.

Try some Emacs!

If you’re even slightly geeky about computers, you should give Emacs a try. Maybe it won’t be as useful to you in your day-today like it is for me, but it’s fun to try it out. There’s a bit of a learning curve, but there are tons of resources online to help you figure stuff out.

Do you use Emacs? Have you ever tried it? I’d love to hear your experience!

The Catastrophic Boba Shortage of 2021

No, not that Boba.

I read the headline, then I read it again. Yep, it really does say that, I thought. It’s not just that it’s 3:00 am and I’m sitting on the toilet in the dark. I’m mostly awake and it’s right there: “Boba Shortage to Last Throughout Summer.”

There was nothing I could do in that moment but take slow, deep breaths and try to process the horrific news.

Wait a minute. What am I saying? I don’t even drink boba. In fact, it kind of grosses me out. All those little gelatinous orbs floating around in a drink make me think of eyeballs and I don’t even want to contemplate what it would be like to bite down on – ugh. “Excuse me, Waiter, there’s an eye in my soup.”

I’m not usually squeamish about these things; no, wait. Yes, I am. I’m very squeamish. I still do a side eye at baked goods with raisins in them. Don’t even get me started on foods inappropriately described as “gooey.” Can we just say “melty?” Similarly, boba really makes my tummy rumble, and not like I’m hungry.

This news headline, with its dire prediction of the coming Bobacolypse, gave me an odd sense of relief. Don’t get me wrong, I genuinely weep for the rest of the population that loves their boba tea. If I saw one of those behemoth pickups driving down the freeway filled with boba and toilet paper, I would call 911 and pursue them until the fiend was captured. So no, I wasn’t relieved about the drastic boba shortage itself, but at the headline.

I was relieved because the fact that these are the stories making the news ticker means a short break from stories about mass shootings and uber-conservative political nuttiness. Maybe it’s only a tiny break, but it helps. The more headlines I see like “Do Squirrels Damage Power Lines More Than Weather?,” the easier it is to scroll past the doom.

You might be thinking (because I just did) why don’t you just stop reading the news? And you would be smart to think that. I do take occasional breaks from reading news, but the truth is that I am addicted to knowing what’s going on in the world. In some ways, even gloomy news can be comforting to me – and sometimes the more ridiculously doom-ridden, the better. I realize it’s weird, but hear me out. Take a headline like “Solar Wind Traveling 1,118,468 mph Due to Hit Earth Sunday.” That sounds dangerous, as if by Monday the entire Western hemisphere will be a gooey mess. I mean, melty mess. It also sounds very science fiction-ey, like it’s just ridiculous enough to be the premise of a Netflix series. Since I can’t do anything about it and I clearly can’t take it seriously, it doesn’t affect me emotionally. I can handle it. So I keep reading the news and mentally separate the hard stuff from the laughable stuff.

Here’s another headline to consider: “North Korea warns of ‘crisis beyond control’ in heated statements aimed at US and South Korea.” Okay, let’s quickly brainstorm here. What are we going to do about this? How can we make Kim Jong Un feel less attacked? We could get on a plane to North Korea, sit down with him and help him understand about the old saying “sticks and stones.” If I thought we would come back alive, much less even get there, it might be something to consider. It would be something to do, rather than just sit here and worry about it. So, I won’t worry about it.

But back to boba. We are clearly in a crisis here. And even though there’s probably nothing I can do about it, and it doesn’t affect me due to my revulsion at the very thought of consuming it, in the back of my mind I wonder. Maybe I can do something? Just because I’m not a boba drinker doesn’t mean I can’t help those who love their bubble tea. Maybe I can start cultivating cassava in my yard. And maybe I can gather my neighbors to do the same. Together, we could turn this planetary tapioca ball shortage around.

Still, maybe this will all just be okay. I’ll be okay. We’ll be okay. We will learn to live in a world without boba. I think it’s best summed up in the words of Denise Giraldo-Gordon of Brooklyn, NY:

“I didn’t miss it at all. I just needed to prepare mentally.”

We all do, Denise. We all do.

Fractured

You’ve probably stubbed your toe a few times in your life, amiright? Sure you have. Sadly, you will likely never get to the championship-level toe stubbing that I have attained. You need to practice every day. Most people don’t have that kind of drive. I don’t mean to be dismissive, but I am just extremely adept at smashing my feet.

If there’s a box, I will kick it. If there’s a door frame, I will hit it. If there’s something heavy, I will drop it on myself.

I’m not what I would consider a clutz, per se. I just have magnets in my feet that attract injury. They’re average sized feet. They don’t turn out so that snagging them on objects would be easier. Nope. They just get themselves in situations on a regular basis that defy explanation.

I’m a good healer, so typically I’m back up and running (literally) in a week or two. Recently, however, I stubbed my pinky toe so well that I actually broke it.

Back in February (the 3rd to be precise, according to my bullet journal), I kicked a box of t-shirts as I was walking by; the box was minding its own business. Again, these are not things I do on purpose, it’s a natural talent I have developed. I’m not angry, or frustrated, nor do I have anything against boxes or cardboard. Simple happenstance, or what some might call not looking where I’m going. But yes, I jabbed my pinky toe into that box like I was playing in the World Cup. Or at least it felt that way.

Several expletives later, it bruised and swelled up like a hot dog in a microwave.

I resigned myself to the fact that I wouldn’t be running any time soon. I did do some power walking and hiking, but that’s only because I’m stubborn and kind of dumb. Suffice to say it didn’t get any better under that kind of care. After a couple months of this, Jenni suggested that maybe, just maybe I might want to get it checked out. Okay, sure, fine.

Turns out it’s broken this time. For real. Thankfully, I squeaked by without needing surgery, but it was close. The only thing I have to do now is… wait. Apparently I can even run on it if I want, as long as there’s no pain. But I’m not going to do that (again – yes, I tried it once). I will (sigh) let it heal like a normal person would.

I wish I could say something about lessons being learned, or offer up some kind of zen wisdom about feet. Alas, I only have this dumb story about my toe.

The offending phalange, as seen from the outside. Hey, that would be a good name for a bar.

Easing Off the Pressure

I made two promises to myself in the last couple of years that I have been failing to keep. The first was that I would only write blog posts or newsletters when I really felt like I had something to say. The second was that I would publish on a regular schedule.

Maybe you can see how those two promises are like peanut butter and pickles. They were never meant to go together. So I’ve been over here flailing around, desperately trying to stick to a schedule and also write super meaningful things.

Lately, when the little reminder thingy pops up in my calendar that tells me I need to publish something, I’ve started asking myself, okay, but what? And the more important question, okay, but why? And a more existential question, who is doing all this scheduling in my calendar?

I mean, obviously it’s me. But the overly (annoyingly) optimistic me who creates the schedule and the lazy, easily distracted, pessimistic me who reads the calendar are not on speaking terms. And while I can’t change these two mes very easily, maybe I can get them in a room and help them work out their issues. Maybe the first thing to work on is easing up on all the pressure.

I already have a writing gig where I’m obligated to publish new content each month, and there are other people depending on me. And that’s fine – no, it’s awesome. I have a great editor and other writers who help me with my content, keep me on track and hold me accountable.

Here it’s just me. Or mes. Us? More existential questions and I’m getting off track here.

At one time or another (maybe always), we put so much pressure on ourselves to accomplish goals, be something great, get to a perfect place in our lives. Sometimes I think it’s necessary and good. Otherwise, we would sit around all day in our underwear eating whatever we could easily reach in the cupboard (peanut butter and pickles come to mind). Other times I think we can afford to ease up a little bit on ourselves.

I thought I wanted a job. I was wrong.

This past November, I celebrated thirteen years of being self-employed. Thirteen seems like a weird number to celebrate, but I actually celebrate every year.

And when I say celebrate, what I mean is that I freak out on a semi-monthly basis over the state of my finances and wonder why the hell I don’t have a full-time job for chrissakes.

On a recent freak-out, I convinced myself that I didn’t want to start another business, this time building WordPress websites. As much as I love working in WordPress and creating web sites, starting a new business means that I’ll need to hustle to get projects. That part, I don’t love. I’m already hustling enough in my other work. Instead, I decided to look into a bona fide j-o-b using my WordPress skills.

I figured that I may as well start right at the source, so I looked at careers at Automattic, the company that created WordPress. It’s an amazing company, one that I could actually see myself working for out of love and not just for a paycheck. I found a job called Happiness Engineer and it fit me and my skills perfectly.

Unfortunately, Automattic did not agree, which was a humbling experience. While I can apply again in 12 months, I don’t think that I will. Rather than becoming soured on WordPress, I felt a sort of renewed energy for creating on the platform.

The more I thought about finding a full time job, the more I found myself reflecting on the past thirteen years of independence. When I first struck out on my own, I often felt like an unemployed loser. In my head, my family was a hair’s breadth away from starving to death in a shanty town, reduced to selling cheap trinkets made from our toenail clippings. Over time and with some success, I was gradually able to think of myself as a business owner. We never did starve, and our toenail clipping trinkets are made just for our own pleasure. We’ve had to get creative at times (the Oregon alpaca farm comes to mind), but somehow we’ve always made it work.

The other magical thing that happened to shoo me away from a full time job search was that I suddenly got extremely busy. Big screen printing jobs mean long hours of pushing a squeegee, a writing gig means lots of coffee-filled outlining and collaboration, and I also landed my first WordPress gig. Not bad, considering I had convinced myself that a j-o-b was my thing only three weeks before.

Last week, as I was pushing ink onto my 200th sweatshirt, I suddenly realized that had I been hired at Automattic, I would be scrambling right now trying to figure out how I would be able to show up for everyone, every day, with my brain intact. Forgoing sleep and injecting the coffee comes to mind as a possible solution. But whatever, that did not happen and my brain is still (to a fair degree) intact.

What I also realized is that over thirteen years my brain has also been rewired. I’ve trained myself to work the way I work, meaning that I structure my time in the way that works best for me, rather than an employer deciding that. I’m able to put my energy into things I love and when I need to move on to something else, I just do it.

That doesn’t mean that I don’t sometimes push deadlines to their absolute limits. Huge deadline tightrope-walker, me. And yeah, there are days I wonder how we’re going to pay for those little frivolities, rent and food. I don’t enjoy the financial roller coaster. Who likes credit card debt, raise your hand. You, in the back, with the foil hat, you can have mine.

The thing of it is, I don’t want just another “job.” Been there, done that, I literally have the t-shirt. If I take on full time employment, I want it to matter. I don’t need just a paycheck. I need to work with amazing people. I need to work on challenging projects that make a difference, that add something positive to the world.

Maybe that’s a tall order, but I’m going to keep looking until I find it.