Fun Fast Tools for Serious Work This post serves as a permalink to accompany my talk from EmberConf 2021. Mho The demo of the service-worker-based build tool is available here [https://github.com/ef4/mho] with instructions to run both the prebuilt binary (currently compiled only for OSX, sorry!) as well as how to rebuild everything
Videos Dynamic import() into your Ember app A screencast where we build an app that loads real data, lazily loads Highcharts on demand, and plots the data using Highcharts.
Videos Living Animation What ambitious web application developers need to learn from game developers. Presented at EmberConf 2018 in Portland.
Videos Design for Learning This is a wide-ranging talk on learning and why you need to understand how people learn if you want to build good software. Plus I build a fun orbital mechanics demo. Presented at EmberNYC, March 2018.
Videos How to Add TailwindCSS to an Ember App There is definitely an intimidation factor some people feel about integrating things into Ember apps. While there are plenty of things I want to make easier too, I think a large amount of the perception only comes from lack of good learning materials. Toward that goal, I made this screencast
Mind and Hand "Mens et Manus" (latin for "Mind and Hand") is the official motto of MIT [https://web.mit.edu]. Lots of schools have Latin mottoes, and they are usually pretty bland. But mens et manus was — and still is — a radical social statement. It says that knowing
Effective team culture: Five Whys & Stop-the-line When Google set out to measure what makes their best software development teams successful, they found a strong correlation with psychological safety [https://www.nytimes.com/2016/02/28/magazine/what-google-learned-from-its-quest-to-build-the-perfect-team.html] : > A shared belief held by members of a team that the team is safe for interpersonal risk-taking.
Programming doesn't fit in your brain > “A lot of beginners under-appreciate the degree to which googling things is part of a programmer’s job,” says @steveklabnik [https://twitter.com/steveklabnik] #wednesdaywisdom [https://twitter.com/hashtag/wednesdaywisdom?src=hash] pic.twitter.com/FnXo3rBfPb [https://t.co/FnXo3rBfPb] — Glitch (@glitch) May 31, 2017 [https://twitter.com/glitch/
Search-first Web Applications Lots of software projects struggle when they try to implement search-related features. I was reminded of this by @trek's [https://twitter.com/trek] reaction to this Algolia [https://www.algolia.com] marketing tweet: > Development teams often delay building search due to lack of confidence in getting it
CSS and Markup in Javascript is an Evolutionary Dead End There is a popular trend among some Javascript developers to argue that humans should stop writing CSS and HTML (and HTML-based templates). They argue everything should instead be written as Javascript, to reduce complexity and present a more unified developer experience. And certainly many people who try this approach like
Cardstack Architecture Notes Many people have expressed an interest in contributing to Cardstack and have been clamoring for some docs to help them get started. This is the first of three posts I intend to ship in the near term to unlock some of that potential energy: 1. Cardstack Architecture Notes. This post.
Lake Wobegon Web Development There is a strain of thought in the web development community that believes there's a tension between having comprehensive developer tools and delivering good user experiences: This is exactly backwards. At the scale of the entire web, better tools are the only way to deliver better experiences. The
Strong Conventions Make Hiring Easier The most reliable way to evaluate programmer candidates is to hire them to do a bit of realistic work. This is widely understood, but not widely practiced. The biggest barrier is finding projects for them to work on. In most organizations, the overhead of getting a new person started is
Frameworks are where we iterate on tomorrow's universal abstractions The amount of complexity a single human programmer can handle is fundamentally limited. Until our brave cyborg future comes, even the best programmers can only hold so much in their minds at once. And the number of programmers that can productively work on a single project is limited by the
On Interface Complexity vs Implementation Complexity There are two very different kinds of simplicity in software engineering: simple interfaces and simple implementations. Simple interfaces are absolutely critical, because the budget for interface complexity is paid out of your head. But simple implementations are far less important. The budget for implementation complexity is paid out of an
On the irony of programmers who don't like abstraction An inflammatory anti-Rails post [http://solnic.eu/2016/05/22/my-time-with-rails-is-up.html] has been getting lots of discussion lately. The author's frustrations are legitimate, but his articulation of the problem takes an absurd turn: > The really challenging part in this discussion is being able to explain that
Decoupled Drupal: from an Ember maintainer's perspective Drupal [https://www.drupal.org] project lead Dries Buytaert recently launched a community discussion by asking "should we decouple Drupal with a client-side framework? [http://buytaert.net/should-we-decouple-drupal-with-a-client-side-framework]". My high-level takeaway from the discussion is that the Drupal community is serious about finding shared solutions to common problems.
The Framework Learning Cycle Much of the discussion around frameworks -- particularly in the Javascript community -- is mired in misunderstanding over a key question: who are frameworks really for? Beginner Beginning web developers tend to lean heavily on frameworks. This is a good thing — it lets them stand on the shoulders of giants