The eli4d Gazette – Issue 055: The English Olympic Rowing Team Question and Book Inspiration

The English Olympic Rowing Team Question

I heard an interesting question on the Release Notes podcast (episode 268). The conversation was about the purpose and best use of mastermind groups (Ken Wallace did a great job in clarifying the answer).

Ken brings up the story of the English rowing team and how they end up winning the gold medal by singularly focusing on the question: “will this make the boat go faster?”. There’s a great YouTube video discussing this as well as a book.

I like the physicality of the question and how it is a concrete implementation of the “what’s the next physical/visible action?” question from the Getting Things Done methodology. The key point is that for whatever goal you’re pursuing, you need to constantly ask the question if what you’re doing right now is getting you closer (or further) from your goal.

Book Inspiration

Studio Neat’s newsletter had a reference to a musical map site. From this site, I found a literature map site – http://www.literature-map.com/. The way it works is that you enter an author that you like, and then you get a map of other writers whose writing is similar (in terms of distance on map). You can then click on any author on the generated map and see a new map with other related connections.

For example, I’m a big fan of Ryk Brown and his Frontier’s Series. Here’s his map: Ryk Brown map


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


The eli4d Gazette – Issue 054: Dependency and Package Managers in Python and PHP

Python Environment and Package Installation

I saw a recent XKCD comic that describes the current state of setting up a Python development environment:

Python Environment

The excellent Explain XKCD site covers the point of the cartoon. The issue is the (ongoing) difficult transition from Python 2.x to Python 3.x and the reality that there is no defacto package installation tool. The messiness of Python’s development environment deeply contrasts with the cleanliness and beauty of the actual language.

One interesting and significant effort in approaching the above issue can be found through the PyPi package manager. A great FLOSS Weekly episode had an interview with one of the maintainers of the new PyPi covering its pros and cons.

PHP’s Composer and Package System

In the PHP world – Packgist site is the definite destination for third-party PHP packages. In conjunction with these packages, Composer is the defacto package/dependency management tool. It’s more than a package manager because it focuses on managing packages on a per project basis.

At its core Composer focuses on dependency management and the secondary result is that it also does package management. One problem that arises is the usage of Composer as a pure package installer across a system rather than just a project. As Composer’s documentation states:

By default it does not install anything globally. Thus, it is a dependency manager. however support a “global” project for convenience via the global command.

Composer’s “global” command installs packages in a common central project and this, in turn, can cause major headaches with projects that have packages installed in different locations.

Pantheon’s blog describes this issue (and its solution) really well:

One of the most commonly documented ways for a PHP command line tool to be installed is via the composer global require command. This command is easy to document and easy to run, which explains its popularity. Unfortunately, this convenient function has a darker side that can cause some pretty big problems. The root of the problem is that Composer, by design, manages dependencies on a per-project basis; however, the global command installs everything into a common central project. The upshot of this is that two distinct projects that were never intended to be combined must suddenly share dependencies. In this configuration, it is all-too-common to encounter dependency conflicts that never would have been observed had these applications been installed independently.

The current solution to this is a Pantheon created tool called Cgr. The blog article provides details on its usage and when to use Composer global.

Note: many thanks to the folks on the Poststatus Slack for discussing Composer’s issues and pointing to Cgr.

The eli4d Gazette – Issue 053: WWDC 2018 and the best 5-minute explanation of WebAssembly

WWDC 2018

Apple has its World Wide Developer Conference this week. As predicted by the rumor mills there have been no hardware releases. Some great coverage:

Bringing of machine learning into apps through CoreML looks very compelling as well as the updates to ARKit

Best 5 minute explanation of WebAssembly

WebAssembly is the future of browser-based applications achieving allowing apps to achieve native speeds. Browsers already have significant support for it but how it works and it’s current progress is still deep in the weeds.

The New Rustacean podcast covers the Rust programming language. During the first 5 minutes of latest episode, Chris Krycho, the show’s host, provides the best explanation of WebAssembly that I have ever heard. It is a worthwhile listen if you’re interested in this coming web standard.


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


The eli4d Gazette – Issue 052: The Ship of Theseus & Building cross-platform apps in Python

The Ship of Theseus and Story Loops

Imaginary Worlds is one of my favorite podcasts. The most recent episode was amazing in how it related the question of identity through the Ship of Theseus, Westworld, and Star Trek.

There is much that I could say about it, but I think that it would be best to listen to it. So let me leave you with a quote from the podcast that was great:

It (i.e. Westworld) taps into the fact that we’re all on story loops. Some of these story loops are created by us, sometimes they’re created by society, but either way, after a while you just tend to go through the motions (i.e. just like the hosts on Westworld). And every so often it’s good to stop and reflect if this is the version of you that you want to be. It’s easy – all you have to do is ‘freeze all motor functions’.

Building cross-platform apps in Python

I’m not sure if cross platform development is like a unicorn in the software field. Whether it was Java’s “write once, run anywhere” promise or Electron’s pitch of “build cross platform desktop apps with JavaScript, HTML, and CSS”.

I came across an interesting project whose goal is to provide cross-platform development for Python. The BeeWare Project “aims to take the power of Python as a language, and use it to enable users of all skill levels to develop applications with native user interfaces.” This may be an interesting project for those focusing on learning Python.


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


The eli4d Gazette – Issue 051: JavaScript Array/Object Methods and the Meaning of “=”

An Excellent Syntax.fm Episode on Array and Object Methods in JavaScript

The Syntax.fm podcast had an excellent episode covering Array/Object methods, as well as shallow versus deep copies and reference versus copies in JavaScript. It is an episode that I’m highly recommending to my JavaScript students.

What does “=” mean?

Another programming topic – assignment versus equality. Hillel Wayne covers this concept/issue in an excellent article about this very issue. If you’re new to programming, here are some pointers to the terminology used in this article:

Image credit: This nice high-resolution image comes from the DigiBarn museum site.

Mother Tongues


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


The eli4d Gazette – Issue 050: The Design in Tech Report and Google’s Lighthouse Web Page Quality Tool

Design in Tech Report

I came across John Maeda‘s Design in Tech Report while listening to an episode of the Post Status Draft podcast. It’s a comprehensive report how design fits with technology. There’s a desktop version that’s easy to navigate.

An Quality Audit tool for Web Pages

I bumped into a really neat tool from Google that’s built right into Chrome Dev Tools. Lighthouse can be run on any web page. It provides audits for performance, accessibility, and progressive web apps.

I ran Lighthouse against a couple of pages including google.com, and the results were quite interesting.


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


The eli4d Gazette – Issue 049: DevDocs.io and the BaseCS Podcast

DevDocs.io – an amazing programming documentation resource

While scanning through Quincy Larson’s excellent posts I came across the DevDocs site and how it has recently joined the freeCodeCamp family.

DevDocs allows you to rapidly search for documentation of various languages and frameworks. It is similar to Dash but through a web page and it’s free. The best way to use this resource is to add it as a keyword to your browser (per site’s instructions). Having one location for software development documentation is excellent and having this under Freecodecamp’s stewardship guarantees that this resource will only get better over time.

A gentle introduction to computer science through the BaseCS podcast

I’ve come across this extremely charming and useful podcast that goes through computer science in a gradual well-paced way.

The format revolves around one topic, and it is a question/answer type of conversation between Saron (founder of the Code Newbie site) and Vaidehi Joshi. Saron is the questioner and Vaidehi is the CS “explainer in chief”.

Each episode of the BaseCS podcast comes with a well-written article from Vaidehi Joshi’s site.


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