The eli4d Gazette – Issue 047: Keeping up with Software Industry and Developer Marketing

Keeping up with the Fast Pace of the Software Development Industry

The podcast had an excellent episode about the issues (and solutions) of keeping up with the fast pace of software development. While this podcast is more skewed towards JavaScript, the suggested approaches apply to all programming languages, libraries, and technologies. Some interesting points (which I bookmarked in my twitter feed):

  • At 15 minutes and 46 seconds: a sane approach to this fast-moving field
    • maintain core programming skills in whatever language that you’re versed in
    • practice “just in time learning” for everything else
  • At 47 minutes and 42 seconds: how to stay up-to-date

Developer Marketing and Landing Pages

I listened to 2 excellent episodes from the Release Notes podcast about the art of creating landing pages for various types of products. Justin Jackson does an excellent job of explaining his approach, as well as providing actionable advice. You can find the episodes here:

Thoughts? Feedback? Let me know: @eli4d on Twitter


The eli4d Gazette – Issue 046: Programming Language Affordance and DHH’s Reason for StimulusJS Creation

Tech Pick (Programming Language Affordance)

I am a huge fan of Sandi Metz. She’s like one of those Zen masters that snap their students out of their current perceptual ruts.

In a recent article (‘What Does OO Afford’) Sandi goes into a great reflection about Object Oriented programming and the affordances that this approach provides. It’s a great and worthwhile post. One section that strikes me is the following:

Just like varying styles of doorknob, different programming languages offer their own unique affordances. Language designers have preconceived ideas about the best way to model reality, and their creations reflect these biases. Thus, programming languages are explicitly designed to “enable” certain kinds of thinking.

I’m talking about something that’s deeper than syntax. Languages have points-of-view: they’re designed to be used in certain stylized ways. The mere fact that code compiles doesn’t mean it’s arranged as the language designer intended.

While it’s possible to warp most any programming language into use by an alternate way of thinking, working at cross-purposes from your language’s intentions is not the most efficient way to write code. Don’t roll this rock uphill. If you don’t understand your language’s affordances, learn them. If your coding inclinations conflict with the designer’s biases, yield.

The above puts language wars in perspective. A language is designed to model reality in a certain way. If it takes off due to significant adoption (whether organic or through environment limitations like JavaScript), then warping occurs as developers try to use this hammer to nail every problem.

Media Pick (JavaScript Framework Choice)

The most recent Full Stack Radio podcast fits quite well with Sandi’s article. It features an interview with David Heinemeier Hansson.

In this interview, he discusses his company’s (Basecamp) release of a JavaScript framework named Stimulus. It’s interesting to learn how he chose Ruby‘s affordances over the those given by various JavaScript frameworks (like React, Vue, etc…). So Stimulus supports this choice by keeping as much of the programming on the server side via Ruby and Ruby on Rails.

Thoughts? Feedback? Let me know: @eli4d on Twitter

The eli4d Gazette – Issue 043

Tech Pick

Have you ever had to build a documentation website? It’s certainly a pain if you do it from scratch. You could use something like Google Sites, but that’s not so professional besides the Google product graveyard possibility. So what can you do?

There are many static site generators but how well are these particular projects maintained? Also, since they’re generalized tools – a particular generator may not fit the requirements of a documentation website (like the need for translations).

Some fine open source engineers at Facebook have created Docusaurus – a site generation tool that is geared for the creation and maintenance of documentation websites. The motivation for Docusaurus and how the tool can be updated without breaking an already created site can be found in the first blog posting.

With Facebook’s use of Docusaurus for its open source projects this is a tool that is likely to be maintained and enhanced over time.

Media Pick

Lots of web application and website development centers around API development (and this is becoming more of a norm). Content management systems like WordPress are de-coupling the backend (i.e. database) from their frontend using APIs (WordPress’s API info can be found here: This allows web applications/sites to create customized front-ends that are more customized to the application’s purpose and it allows for future expansion of the application’s data (for example a mobile app that needs to use the site’s database). To communicate to API endpoint a particular “language” needs to be spoken by both client (for example web browser) and server. This is where REST and GraphQL come in.

A recent episode of the podcast explains GraphQL (another Facebook open source effort) and how it’s likely to replace REST. It’s a great episode for both beginners and experts, and the show notes are fantastic.

My recent Holiday Review

If you’re looking for battle-tested products and services/products to avoid (i.e. CrashPlan, Drobo, O’Reilly Media), then check out my 2017 Holiday Review.

Thoughts? Feedback? Let me know: @eli4d on Twitter

The eli4d Gazette – Issue 037

Tech Pick

I’ve been going through Jason McCreary‘s Getting Git course. I’ve used git superficially in the past, but I didn’t ‘get’ it. At $29 it is an amazing bargain and is well worth purchasing. The course is broken down into the following sections:

  • Making Changes
  • Viewing History
  • Managing Workflows
  • Sharing Work
  • Everyday Git

Each section contains the git commands related to that section, and it is covered through two videos. There’s an ‘init’ video which is a short video (typically one minute max) introducing the command. This is followed by a ‘Master’ video covering greater details of the command and providing context to both the section and its usage.

One core feature of this course is that it is all about the practical usage of git. There’s no esoteric ‘stuff,’ which is helpful when you need to work with git quickly.

My approach has been to mirror what Jason shows in a terminal window of my own and to take notes about it. Jason keeps each video’s set-up (in terms of the initial repository) to the bare minimum, which makes it fairly easy to follow and practice.

Media Pick

If you’re looking for a quirky podcast – check out Reply All. It’s hard to describe this podcast. I’d recommend that you start with the Phantom Caller episode.

Thoughts? Feedback? Let me know: @eli4d on Twitter

The eli4d Gazette – Issue 036

Tech Pick

I came across this interesting question about choosing a development stack.

The Question:

When building a new web app, project, website, how do you choose your development stack? Nowadays there are hundreds of ways one could go about building the same project.

I am a entry level software developer wanting to start a side web project, but I feel stuck in analysis paralysis. I don’t mind trying to learn new languages either. Any thoughts or comments are appreciated! Thanks, guys!

I completely identify with the analysis paralysis issue. There’s just so much interesting technology out there (whether a tech stack or programming language).

There’s an answer (further down the page) that mentions a neat article – The Boring Stack – The Best Way To Build Interesting Things. It’s a worthwhile article that gets to the heart of the question.

The top answer given asks the questioner to distinguish between the desire to learn something new versus the desire to start a business that needs a development stack. This is a very thoughtful criteria (emphasis mine):

If your goal is to learn a new language [or a new development stack], that’s fine – pick something that looks interesting, or that furthers your career development. As a web developer: rails, python + django or node are all decent choices with wide adoption, and you should probably know at least one of them.

If your goal is to start a business, pick a tech stack that you know and that lets you move fast with safety. Learning new tech is not the goal here.

Media Pick

I’ve mentioned the Functional Geekery podcast previously. I like how it completely focuses on functional programming. I found episode 106 to be good in following the interviewee’s (Reid Evans) journey into functional programming. The show notes also had some interesting functional JavaScript resources including Reid’s channel on YouTube.

Thoughts? Feedback? Let me know: @eli4d on Twitter

The eli4d Gazette – Issue 033

Tech Pick

I’ve been making slow glacial progress (due to everything else in my life) in learning Laravel while working on a side project. As part of this, I’ve been listening to lots of PHP and Laravel podcasts. Twenty Percent Time is a new-ish podcast where two developers from Tighten (Caleb Porzio and Daniel Coulbourne) discuss various programming topics that typically revolve around Laravel. On the latest episode, Caleb verbalized something that I’ve fundamentally believed in for a long time though I didn’t have the words for it. Here is what he said:

“You can be an unbelievable super successful super smart great Laravel developer and know nothing but the Laravel docs and use nothing but the built-in Laravel things. You don’t have to learn design patterns…you don’t have to learn the internals of how everything works…it’s kind of crazy, but that is the path to mastery. The path to mastery is knowing how to use the tools really well, just using the tools that are in the docs.

Beyond learning Laravel, I think that Caleb’s quote is significant for those of us that get super-involved in learning about the latest ‘shiny’ thing, rather than learn a few tools well to create something.

Media Pick

I can’t recall a time in my life when political polarization was greater than it is now. I’ve recently come across a constructive podcast (“What Trump Can Teach Us About Con Law”) covering our president in the context of constitutional law. It fits my ‘learn by example’ style, and it is a fantastic study of our country’s constitution.


  • I bought a Drobo 5N last November during a black Friday sale. I didn’t get to unbox it until a month ago (lesson learned – test hardware as soon as possible; I knew this, but life has been busy). Within a few days, I found that my Drobo was a dud. Fortunately, Drobo’s diagnostics in combination with Drobo support has been excellent so far, and I have a replacement coming. Hopefully, I’ll experience the Drobo difference soon :-).
  • I’ve had lots of emails with OmniFocus support about the last corruption. This infrequent/intermittent bug got even escalated to an OmniFocus engineer. Their support has continued to be stellar.

Thoughts? Feedback? Let me know: @eli4d on Twitter

The eli4d Gazette – Issue 032

Tech Pick

I’ve had Python on my brain lately due to heavy duty preparation for my upcoming online Python course. So coming across Instagram’s Python technology stack was interesting. The article begins with:

Each day, over 95 million photos and videos are shared on Instagram. The unstoppable photo-centric social media platform has over 600 million registered users — 400 million of whom are active every day. Talk about operating at scale: Instagram kills it at levels most companies can barely even dream about.

Even more impressive, though, is the fact that Instagram serves this incredible amount of traffic, reliably and steadily so, by running Python (with a little help from Django) under the hood. Yes, that Python — the easy to learn, jack-of-all-trades general purpose programming language. The one everybody in the industry dismisses as, “Yeah, Python is great in so many ways, too bad it’s not really scalable.”

I thought that this was a great example to mention to my students – “well if Instagram uses Python at their scale, Python must be a good thing to learn.” And yet this didn’t sit right with me, and I remembered reading an excellent article that clarified my unease: “You Are Not Google”.

Python is a great language for many reasons (easy to learn, lots of built in libraries, great scientific/numeric support (SciPy, Pandas, iPython, NumPy), etc..) but Instagram’s use of it is not one of them. I’m not Instagram, and it’s very likely the case that you aren’t either.

Media Pick

I’ve had “American Gods”aal on my Kindle for what seems like forever. It was recommended by a friend back in 2004 and I got the Kindle version on sale a few months ago (via Bookbub).

Where to begin? The story is like a fractal of a pick-up stick game. You think “really Neal – a pick-up stick game?” And there’s Gaiman laughing manically. So you play the game and read the book 1 bit at a time…and just when you think you understand, repeating themes and whispers of previous chapters slap you across the face.

My Kindle highlights are filled with too many sentences from this book, and I can hardly pick a favorite. Here’s an example:

“The house smelled musty and damp, and a little sweet, as if it were haunted by the ghosts of long-dead cookies.”

aal = Amazon affiliate link


I’m a big OmniFocus, but recent (XML) corruptions have been worrisome (on the positive side OmniFocus support is top notch). One database corruption happened in March, and another just happened about a week ago. My favorite data format is plain text. But I haven’t come across a plain text task management system that implements GTD and spans mobile and Mac OS X as seamlessly as OmniFocus.

Thoughts? Feedback? Let me know: @eli4d on Twitter