News
Own your content
2018: Some Hope
Great post from Brent Simmons on getting off the Twitter/Facebook train.
A little Apple-centric, but you get the idea.
News
Real World
RealWorld example apps is a great idea:
See how the exact same Medium.com clone (called Conduit) is built using any of our supported frontends and backends. Yes, you can mix and match them, because they all adhere to the same API spec
And it looks like porting the app over to Vanilla JS is already underway.
News
Vanilla JS Sample Apps
I spent some time over the holidays porting web framework sample apps over to vanilla JS.
I’ll add the same caveat here that I also included in the code:
The code works w/o polyfils in Chrome. To get it to run in a wider range of browsers you will need to add polyfills and, depending on the target browser version, compile the JS back to an older version of ES, and run a prefixer on the CSS.
News
Things to watch for
As the current political situation unwinds there are things to watch for:
Now that the GOP mega-donors have their tax cut, do Republicans become more open to impeaching Trump? He is a huge liability for the 2018 mid-terms and impeachment might improve their odds as a way of distancing themselves from him. As impeachment for Trump looks more and more likely, look for WikiLeaks to start dumping compromising information on Trump.
News
Geometric Algebra
Table of contents An Introduction to Geometric Algebra over R^2 Geometric Algebra applied to Physics The Shoelace Formula via Geometric Algebra
News
Custom Element Spinner
Now that Custom Elements has reached v1 and is starting to appear in browsers, let's make some elements. We'll start with one of the simplest elements possible, a busy spinner, or activity indicator. Caveats: No accessibility.
spinner-bw { display: none; border-radius: 50%; width: 2em; height: 2em; border: 0.4em solid #a6cee3; border-left: 0.4em solid #1f78b4; animation: spinner-bw-spin 1.5s infinite linear; } spinner-bw[active] { display: inline-block; } @keyframes spinner-bw-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } window.
News
Organizing around State
This is L-Systems with Redux and StateReflector, but now with more organization around updating the state and around efficiently updating the DOM to changes in the state. That is, a simple app for drawing L-Systems, where making changes to the parameters (Length, Angle) is stored in the URL fragment identifier, thus creating a permalink for any selections a user makes. The state of the page is kept in a Redux state store and we use StateTools.
News
L-Systems with Redux and StateReflector
This is D3 and L-Systems with Redux and StateReflector, but now w/o the D3.js. While D3.js is fun, at this point it is a bit distracting, I'm more interested in Redux and data binding, so time to move back to just drawing static images on canvas. Length: Angle: this.StateReflector = this.StateReflector || {}; (function(sr) { "use strict"; // A Promise that resolves when DOMContentLoaded has fired.
News
D3 and L-Systems with Redux and StateReflector
This is D3 and L-Systems with live controls and Redux, but now state is reflected into the URL Fragment. The syncing is two way, that is, changes to the state of the controls are reflected into the URL Fragment, and changes to the fragment are reflected into the state of the controls, so every change give you a permalink to that state, and browser history navigation works. Link Distance: Link Strength: Charge Strength: this.
News
What a bold platform really looks like.
Chuck Schumer Says Senate Democrats Are Open To Single-Payer Health Care
“We’re going to look at broader things [for health care],” he said. “Single-payer is one of them.. Many things are on the table. Medicare for people above 55 is on the table. A buy-in to Medicare is on the table. Buy-in to Medicaid is on the table.
Yeah, bold leadership always comes from phrases like “on the table”.
News
D3 and L-Systems with live controls and Redux
This is just D3 and L-Systems with live controls, but now state is managed by Redux. Oh, and also arrow functions, because they're available everywhere I care about. I've been reading about Redux and wanted to try it out. It seems nice, as it forced me to consolidate everything about page state, which caused me to clean up the code quite a bit. I like that in a tool.
News
D3 and L-Systems with live controls
An L-System fed into d3-force, but now with controls that allow you to change some of the simulation parameters. Link Distance: Link Strength: Charge Strength: (function () { function E(s) { return s ? (rules[s[0]] + E(s.substr(1))) : "" } rules = { X: "F-[[X]+X]+F[+FX]-X", F: "FF", "+": "+", "-": "-", "[": "[", "]": "]", } var start = {id: "0"}; var graph = { "
News
D3 and L-Systems
So we know L-Systems are fun. What if we let d3-force layout the nodes of the L-System? (function () { function E(s) { return s ? (rules[s[0]] + E(s.substr(1))) : "" } rules = { X: "F-[[X]+X]+F[+FX]-X", F: "FF", "+": "+", "-": "-", "[": "[", "]": "]", } var start = {id: "0"}; var graph = { "nodes": [start], "links": [], }; var n = 0; var st = [start]; L = E(E(E(E(E("
News
Data binding and JS frameworks
It was over three years ago that I wrote No more JS frameworks, at which time I was roundly criticized for not understanding that data binding could only be done via JS framework, the two were inextricably linked, and only 2-way data binding would do, as one way data binding was for weak-minded fools who weren’t building real applications. You can find the comments on HN yourself, I don’t link to that cesspool.
News
Tile Store
My team at Google is the infrastructure team for Skia:
Skia is an open source 2D graphics library which provides common APIs that work across a variety of hardware and software platforms. It serves as the graphics engine for Google Chrome and Chrome OS, Android, Mozilla Firefox and Firefox OS, and many other products.
Skia, being a graphics library, needs to be tested for both performance and correctness, and being cross-platform, it needs to be tested across a wide variety of platforms and under different configurations.
News
L-Systems
L-Systems are cool. The amount of complexity, and naturalness of the forms you can get from such a tiny amount of code is amazing. canvas { } (function () { var a = document.getElementById('canvas'); var c = a.getContext("2d"); function E(s) { return s ? (rules[s[0]] + E(s.substr(1))) : "" } M = Math r = M.random rules = { X: "F-[[X]+X]+F[+FX]-X", F: "FF", "+": "+", "-": "
News
Compute and Moore's Law
This article from Technology Review, How AI Can Keep Accelerating After Moore’s Law is a good follow-on from a previous article Moore’s Law Is Dead. Now What?.
From the second article:
Engineers have kept GPUs getting more powerful because they can be more specialized to the particular math they need to perform for graphics or machine learning, he says.
In order to continue to squeeze more performance out of the same number of transistors and/or watts, we are going to need to get closer to the metal, and the metal is going to have to become more and more specialized, or at the very least, the metal has to stop looking like monolithic CPUs with a small number of cores.
News
North Carolina Urbanization and Rural Flight
The rural areas of North Carolina are emptying out. .tooltip { position: absolute; width: 200px; height: 28px; pointer-events: none; } text { font-size: 15px; } North Carolina County Population vs Count Population Growth Rate (2010 - 2014).Click on the graph to toggle between population density and county population. North Carolina is not immune to Rural Flight, nor is it a special victim, as the phenomenon is happening world wide.
News
Moving to Jekyll
I am in the process of moving this blog over to Jekyll, while at the same time admitting that I’m never going to finish writing my own blogging software, and that I really should concentrate on the writing, and not the underlying software.
This is also an admission that for a while there may be general brokenness such as broken links and some horribly formatted posts.
Also, I will be turning on comments, which is a longer post in itself, but let’s just say that after years of watching abuse and generally uncivil behavior on all the social networks I’ve decided to revert to old technology from a simpler time, where I get to have absolute control over what appears next to my writing.
News
Noisy Frogs
Why yes, the frogs in the pond across the road are rather loud.
BTW, Google Science Journal is awesome.