My morning routine is sacrosanct. Every day, I wake up at the same time, drink the exact same amount of coffee (which is usually just a little too much), take the same bus, and settle into work. I find a great deal of comfort in this routine, which is why the lack of shock to my system over the month of August was itself quite a shock.  On Sunday, July 28th, my wife and I flew up to Anchorage, Alaska and settled in a small Airbnb on the outskirts of town.

This was not a permanent move; in fact I’m already back in Seattle. Our time in Anchorage was limited to a month as Sarah wrapped up a rotation at the Alaska Native Medical Center (ANMC). While her routine was shockingly similar (which is to say, “brutal” – residency is no joke), mine was very different. Gone was the morning commute to the office. My french press had to stay at home, and the view from my office became dominated by a forest filled with vegetation and the occasional moose.

Case in point – a mother and her calf waltzing through our ward 

Other than the change of scenery and slight shift in daily routine, however, my work life remained the same. I may move around, but our platform’s infrastructure and tooling could care less about where my laptop is opened so long as my logins are valid.

I wish this claim were the first of its kind, but alas, my feet are walking on a path already traveled by Scott Fennell. For years, Scott practiced his craft in Anchorage, helping build our little corner of the internet. Although he’s relocated to Maine (Scott apparently lives only on the edges of the United States), I felt a great deal of comfort knowing that this arrangement could work even if it was only for a short period of time.

Working remotely afforded me some of the most spectacular views that I could imagine.  Just miles away from my house is a view from Kincaid Park looking out on the Cook Inlet and the Turnagain Arm, which is home to miles of mudflats that are visible as the tides go out.

On my way to Kincaid Park for the first time, we encountered all variety of wildlife that went un-photographed due primarily to a state of shock. Bear here simply walk out onto the road, porcupines cross trails without thinking twice, and moose have no qualms chewing on bark as throngs of people walk past.

This past weekend, we visited a few glaciers. The Raven Glacier, which we came upon after hiking up the Crow Pass Trail. Here’s a view looking down the valley:

Followed up by the Portage Glacier:

The following weekend we traversed about 8 miles of the Kesugi Ridge Trail in hopes of catching some glimpse of Denali. We were fortunate to get an unobstructed view in the morning:

Denali is over 20k feet tall! For some context, Mount Rainier which I can see on a clear day from Seattle, is 14k.

We rounded out the trip with a weekend in Seward and Homer. In Seward we were fortunate enough to get out on the water on a kayak and see some sea otters, seals, and glaciers close up. On the way back I snapped a photo at the same location where just 50 years previously, the glaciers in this picture used to reach, but are now receding slowly into the Harding Icefield:

There is a small part of this boy from Montana that wished the stay were more than just a visit. Alaska feels like the parts of Montana that I miss to this day. It’s a feeling of disconnectedness rooted in natural beauty and peace. However, there is no mistaking the fact that this is Alaska, and while the summer beauty is palpable, so is the threat of winter as this picture from Scott illustrates:

More importantly than the frigid winters is the lack of things I’ve come to appreciate about Seattle. The diversity of the population and cultures, easy access to any number of businesses that are open well past 8pm, and a series of vibrant industries and universities working on questions that fascinate and titillate.

I did not miss my morning bus commute, and my routines were far less important than I thought, but Seattle is certainly home.

I do not own a desktop computer and have not for nearly seven years. Before that, my primary computer was a Dell desktop that my parents bought me as a college graduation present that I augmented with a small notebook computer (at a time when such small laptops were just a novelty).

Even without a desktop computer, my life is full of peripheral devices. Laptops these days are so powerful that most can easily accommodate an additional monitor (if not two), and working in this way usually requires a detached keyboard and mouse.

Today, my mouse’s batteries died. Unlike my keyboard, which is solar powered, my mouse runs on rechargeable batteries, and I often forget to recharge them. When I do, I’m left with just my laptop’s trackpad and a sense of frustration.

Continue Reading Technology Advances; the World Remains the Same

This summer, I’ll wrap up a computer science degree from Oregon State University. The experience has been rewarding, difficult, and incredibly eye-opening.

After the first quarter at OSU, I was not sure that the program was for me. While learning C++ was a nice wrinkle, the “Introduction to Programming” courses that served as my welcome were underwhelming. In hindsight, this perspective makes sense as someone that was coming in with years of experience managing and delivering web projects for large clients with large expectations. Learning the structure of for loops, classes, and a brief dalliance into recursion was not really what I had signed up for. However, after the fourth quarter I was trying to plot a path to continue my education far beyond the 15 courses that were required to get another bachelor’s.

It wasn’t the fact that OSU continued to underwhelm that drove me to look beyond the program – quite the opposite. OSU provided a window into a world that I didn’t know existed. It’s fair to say that two years ago I did not know what a computer science degree entailed or what it prepared you for. Two years later and I can’t imagine a world where I don’t continue to explore the field.

Continue Reading Finishing One Degree; Starting Another

Before I dive in, I should note that this post was written as LexBlog hits its fifteenth birthday. It’s been my pleasure to work in the Seattle offices at LexBlog for over 6 years. So much of that pleasure stems from truly enjoying the people that work here and overcoming the challenges we face on a regular basis. Here’s to another fifteen for a great company of great people.

There’s a line in Fight Club that I love that comes to mind when thinking about my favorite memories at LexBlog:

You met me at a very strange time in my life.

Narrator 

https://youtu.be/UkgP0od6iSE?t=23


Continue Reading Overcoming the Trough of Sorrow

I rarely look at C while at the office. In many ways, it’s a language of a bygone era, especially when you’re talking about web application development. Sure, we take advantage of C every day, but write in it? Never.

However, I’ve become fairly proficient in it these past two years and have grown to appreciate the language for what it is: Blazing fast and fine-tuned for several specific use-cases. Unlike JavaScript (my language of choice while at work), C does not come with dozens of associated frameworks that come and go on a moment’s notice. It also doesn’t split its time between the hard logic of an application and managing the user interface. In many ways, C runs the world of computers around us without us even knowing.

The story behind C is the most interesting part of the language. Written in the late 60’s and launched into production around 1972/1973, C was born from necessity. In the late 60’s, Dennis Ritchie and Ken Thompson decided to write an operating system for the PDP-11, Unix (pictured above – it’s the size of a huge refrigerator and it’s processing power isn’t even close to the power of my phone).


Continue Reading Give Me A Language That Doesn’t Change – A Brief History of C

I have a great fondness for journalism. The industry, the people, the organizations — it’s all fascinating and vitally important. My political and philosophical leanings lead me to believe that the tradition of having an independent and empowered Fourth Estate is key to a functioning democracy.  Even in the absence of my politics and philosophies, reading the news is fun. I enjoy reading about the experiences of people I’ve never met going to places I’ve never been. How odd.

So to hear that the profession is dying, shrinking, or changing for the worse, and to listen to the narrative get increasingly louder is cause for some concern.


Continue Reading The Changing Winds of Journalism

I’m over halfway through Oregon State University’s post-bacc computer science program. It’s a (mildly) grueling gauntlet of 15 courses, made more grueling by the fact that I’ve been working full-time and taking two-courses a quarter (with an exception made for this past summer when only one course was on the docket to give me some time to get married 🙂 ). To-date, I’ve taken, or am currently taking, the following courses (in no particular order):

  • Introduction to Computer Science I
  • Introduction to Computer Science II
  • Discrete Structures in Computer Science
  • Data Structures
  • Web Development
  • Introduction to Databases
  • Computer Architecture & Assembly Language
  • Analysis of Algorithms
  • Operating Systems (currently in progress)
  • Software Engineering I (currently in progress)


Continue Reading Over Halfway Through Oregon State’s Post-Bacc Computer Science Program

Another week of reading, lectures, and confused Googling and skimming through videos is in the bag. This week was all about NP-complete. It has been fun to experience an “aha!” moment in each course I’ve taken so far, and this was an especially fun one. In large part, because seeking answers to these questions is seemingly beyond the reach of computers (in a reasonable time).

We’re accustomed to computers being incredibly fast. So accustomed that we forget just how fast they are. They’re really fast. I’m writing this on a 4-year old computer. It has a 2.5 GHz Intel Core i7 processor. That number equates to how many cycles the system clock of this computer runs in a second. So 2,500,000,000 cycles in one second. The version of the CPU  running on this machine is quite powerful. It should execute around 9 instructions per cycle for a single core in the processor and there are 4 total cores running.

This all adds up to a lot of numbers and those numbers represent commands that we expect the computer to execute for us so that we can….. I dunno….. watch videos of cute cats.


Continue Reading Understanding NP-complete.

I should note that I continue to remain positive about the direction of the Gutenberg project (the new WordPress editor, coming to you as of WordPress 5.0). My feelings on this are numerous and expansive, but the long and short of it is that I believe WordPress core needs a major shakeup to help the community (re)develop focus and draw in engaged and effective technical participants. Gutenberg represents a wonderful opportunity to do that as it brings a new paradigm to the core editor (and likely elsewhere as the foundational technology expands into other areas of site management) and has the potential to draw in a new wave of web developers.

That said, the introduction of Gutenberg into core has been an interesting thing to watch. From afar, the concerns of the Accessibility Team seem to clearly show the divisions between WordPress as an open source project (WordPress.org) and as a commercial one (WordPress.com):

https://make.wordpress.org/accessibility/2018/10/29/report-on-the-accessibility-status-of-gutenberg/


Continue Reading Trials and Tribulations with Gutenberg

Having just finished my midterm in Analysis of Algorithms (yes, the class is as dry as it sounds), my brain is still sharp on a few topics; one of them being dynamic programming, which I mentioned in my last post. In that post, wherein I tried to find motivation for forcing myself to relearn calculus, I used the classic example of trying to calculate the nth term of the Fibonacci sequence.

I thought it would be helpful to see this example running with some real code. Below, we have a JavaScript function – fibRecursive – that takes an integer as a parameter. This integer represents the term that we want from the Fibonacci sequence. For example, a call to the function like so fibRecursive(6) would return 8.

https://gist.github.com/jsulz/b439a7a592056bd435cf09780f6ff3b0


Continue Reading A Short Story About Dynamic Programming