RSSAmplifier

Blog

Marcus Lewis

Marcus Lewis

probablymarcus.comRSS feed ↗10 posts

Latest posts

A native graphical shell for SSH

With the web browser, we have really figured out a good flow for how one device (the “server”) can provide an experience on another device (the “client”). This raises a fun idea: imagine if servers and edge devices could serve up a browser-based graphical “shell” so they can be used from other devices. The shell would provide a home screen of apps. In this shell, every app is a small HTTP server,…

It's like a web view, but native

I think modern operating systems should support something I call the outerframe . An outerframe is like a web view, but it runs compiled machine code and uses the underlying operating system’s APIs to create UI. A fundamental reason web views are useful is that they let the user experience be driven by something external, rather than confining the app to only use rigid built-in native app logic.…

Tip: Use services, not the terminal, to run local backends

I’ve embraced a fun way of working with Jupyter, Tensorboard, and other local webservers. Example: Launch Jupyter Lab In this video, I clicked a new “services” item in my macOS menu bar: As you can see, the current backends on my laptop are Jupyter Lab, two websites, and a “Top” utility that I built. I only had to create these entries once, and now I have them forever. Now I’m a few clicks away…

Web apps over SSH can be surprisingly good

When you’re working directly with a server, web apps are useful. A few examples: Jupyter lets you run Python in a visual environment, Tensorboard lets you observe deep learning training runs, and tools like phpMyAdmin help you manage websites. The problem is, these apps typically aren’t directly accessible to web browsers, because exposing them to the web puts your server at risk. The standard…

Smooth Pursuit, and how Screens Don't Mimic Reality

Your brain’s visual system is economical. Rather than capturing a big high-resolution image, only a small portion of your retina has light receptors packed together closely enough to capture fine detail. To construct a big useful picture of your surroundings, your brain relies heavily on eye movement. One nice trick your eyes and brain use is smooth pursuit . You can lock your eyes on a moving…

The web could use machine code

Think of all the client-side code that runs on your devices. Most technical people would say that it falls into two categories: Native apps, which are written for a specific platform and compiled to machine code. The web, which is written in cross-platform interpreted code. This mental model is a misconception. These categories are real, but nothing I mentioned about them is fundamental. The…

Extended material for 'Expressions are Pragmatic Model Visualizations'

This is the extended material for Expressions are Pragmatic Model Visualizations . Followup on Example 1 Let’s further loosen the prior on the parameters. Model Visualization Gaussian Process with the following kernel. Mean: constant Covariance: Use distance between points as follows: * sum([ # Kernel: Factorized scalar vs choice parameters * sum([ # Scalar parameters * matern_25( norm_l2([…

Expressions are Pragmatic Model Visualizations

Most machine learning models are never visualized. Visualizing a model and its parameters often leads to immediate insights or bugfixes, but getting a good visual requires a lot of one-off work. How do we get useful visualizations without requiring too much human overhead? I think code is underrated as a visualization. In this blog post I show a family of pragmatic visualizations that are each…

What happens when you vectorize wide PyTorch expressions?

In scientific computing, code is often naturally expressed as wide, tree-like expressions. Often different branches of that tree contain similar chunks of logic, so there is potential to run many different branches together in parallel vectorized operations. What happens when you take your nice tree-like code and mangle it into hard-to-read vectorized code? How would a person do that? I created…

Gaussian Processes Extrapolate, Sometimes in Goofy Ways

Here is a toy function. (To see the code and more plots, check out this notebook .) Figure 1: 80 random observations of a deterministic function (black) and the predicted maximal point in that function (orange), according to a Gaussian process trained on those 80 observations. Intuitively, it seems clear that this function’s highest value probably occurs when x is in the center region. But a…