Popularity of Manually Installed *NIX Shells on macOS According to Brew

Here is the popularity of various manually-installed *NIX shells according to how often they've been installed within the last 30 days via Homebrew:ShellPopularityzsh44809bash21737fish9307tcsh236ksh69Note, these counts are for people who have manually-installed the shell. Presumably, most people probably just use the built-in version of bash.

mv ex-coworkers.csv udemy/

As much as I enjoy working at Udemy, I kind of wish that some of my previous co-workers were here working with me. I've been here for 3.5 years, which is the longest I've stayed anywhere.In particular, we're looking for full-stack engineers (Python, JavaScript, and Kotlin), iOS engineers, a data science manager, and a senior data engineer.If you want to come work with me, check out our job postings, and drop me a note :-D

Books: Kubernetes: The Complete Guide To Master Kubernetes (March 2019 Edition)

I started reading Kubernetes: The Complete Guide To Master Kubernetes (March 2019 Edition) and almost immediately had to put it down. I don't get it. All the other reviews were so good, but the text of this book is literally terrible. It's like a non-native speaker was leaning on Google Translate and was in a hurry to get things out the door.For instance, on p. 8, it says, "It will also run on vacant metal machines." I think the author meant to say, "It also runs on bare metal." On the same page, it also says, "The main objectives of Kubernetes is to hide the complexity of managing a fleet of containers by providing REST arthropod genus for the needed functionalities." What the heck is "REST arthropod genus"?I generally lean toward O'Reilly books because their product is generally so good. However, in this case, the O'Reilly book's ratings were pretty bad. I don't know how this book got the highest ratings other than to s…

JJ's Mostly Adequate Summary of the Django Meetup: When *Not* To Use the ORM & Goodbye REST: Building GraphQL APIs with Django

The Django meetup was at Prezi. They have a great space. They are big Django users.Goodbye REST: Building APIs with Django and GraphQLJaden Windle, @jaydenwindle, lead engineer at Jetpack. moved from Django REST Framework to GraphQL.It sounds like a small app.They're using Django, React, and React Native.I think he said they used Reason and moved away from it, but I could be wrong.They had to do a rebuild anyway, so they used GraphQL.He said not to switch to GraphQL just because it's cool, and in general, avoid hype-driven development.GraphQL is a query language, spec, and collection of tools, designed to operate over a single endpoint via HTTP, optimzing for perf and flexibility.Key features:Query for only the data you need.Easily query for multiple resources in a single request.Great front end tooling for handling caching, loading / error states, and updates.(I wonder if he's talking about Apollo, not just GraphQL. I f…

JJ's Mostly Adequate Summary of Chrome Dev Summit 2018

I went to Chrome Dev Summit 2018. Here is the schedule. Here is the official news from day 1. Here are all the recordings. And, here are my notes:IntroductionChrome started with WebKit from Safari.They added V8.They made a joke about the fact that they decided not to add Dart ;)Chrome has been around for 10 years.Day 1 KeynoteBen Galbraith, Director, Chrome and Dion Almaer, Director, Web Developer Ecosystem.Google was founded 20 years ago.Android was founded 15 years ago.In 2008, Chrome launched with process isolation: secure and stable. It's now the standard.This year, they launched site isolation. Even within a tab, content from different domains is isolated into separate processes.HTTP pages are now marked as "Not Secure".80% of the top 100 sites are all HTTPS.V8 has been around for 10 years.There was something in React Hooks that was slow, and they reacted quickly to fix it.The new WASM (WebAssembly) compiler is called LiftOff. This made Unity 10X faster.Someone comp…

"How to Give a Talk" and "Building Video Games for Fun with PyGame"


JavaScript: Upgrading from MobX 2.7.0 to 3.0.2

As usual, you should check out the CHANGELOG. However, let me point out a few things specifically:Don't use the @action decorator on a singleton object that you pass to observable(). If you have code that looks like observable({ @action f: () => {}), you should change it to observable({ f: action(() => {}). Apparently, using decorators on singleton objects is a little sketchy. I assume the same thing applies to extendObservable. If you're using classes, it's a non-issue.If you have a resolution field in package.json that lists mobx, make sure you keep it in sync with the version of mobx you're trying to install. Otherwise, you'll end up with multiple versions of mobx, each with their own state, and that led to ultra-weird behavior for me.When passing an object to observable(), remember that it now makes a copy of that object. That was already the case for arrays and maps, but now it's also the case for normal objects. Hence, when you pass an object into a…