Skip to main content


Showing posts from 2018

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 GraphQL Jaden Windle, @jaydenwindle, lead engineer at Jetpack. They 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 abo

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: Introduction Chrome 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 Keynote Ben 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

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

I gave two talks at BayPIGgies . Here are the slides: How to Give a Talk 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

The Big Bet on Web Performance: What to Do Until WebASM Takes Over?

What do WebASM, Reason, Dart, Rust, and Go all have in common? They're all trying to make the web faster. However, they do it in different ways. WebASM's approach is obvious. Take high performance code written in C and C++. Find a way to run it safely in the browser. Dart's initial approach was different. In the short term, Dart was meant to be compiled to JavaScript that would be faster than the JavaScript that you could write by hand. To a small degree, it succeeded. In the long term, the goal was to integrate the Dart VM into browsers. Unfortunately, this vision failed, and they gave up. Reason's approach is a combination of the above two approaches. In the short term, it can be compiled to JavaScript. In the long term, the hope is to use the OCaml-based version of Reason, and run it in the browser using WebASM. This is pretty forward thinking--which you might expect from Jordan Walke, the author of Reason. Go is a language aimed at replacing server-side C++.

A Summary of the O'Reilly Fluent Keynotes

I paid $200 to see all the O'Reilly Fluent Keynotes. These are my notes: @FluentConf #FluentConf One of the speakers just lost his wife right before the conference. He has 7 kids. They setup a GoFundMe page for him. There was a really gorgeous wall that went across the whole stage that was a projection screen. The auditorium was only about 1/3 full, although it was very large. In general, the entire event felt extremely large, but fairly empty. All the sessions are being recorded and will be available via Safari. If you went to the conference, you get access to Safari for free for 90 days. Fixing the JavaScript Time Zones Maggie Pint, @maggiepint, from Microsoft, a maintainer of moment.js. She's a date and time specialist. Moment gets about a million downloads a month. It's in practically everything. She was invited to work on Moment. She went to their issue tracker and looked for label:Up-For-Grabs in order to get started. She found something fundamentally bro