Max Polun's blog

Well, it's been a while

I haven't update this since 2016, it's 2021 now. Hmm... was there something in the interveining years that maybe stressed me too much to find the time to post? The world may never know. Anyways, I've been meaning to reveamp this as a Gatsby site for a while. Nothing wrong with jekyll, but I like working with react.

Comparing Event sourcing with redux

Background I’ve long thought that event-sourcing (ES) was an interesting way to structure a back-end application, and I use redux very often in my day job as a front-end developer. Recently I’ve been looking more closely at event-sourcing and I think putting the information I’ve learned into front-end terms might be useful for others. This is mostly for front-end engineers interested in event-sourcing. If you don't know redux jargon, you might find this hard to follow. What are these things…

On the future of computing

I've been listening to the accidental tech podcast recently and one of John Siracusa's hobbyhorses is that something like iOS has to be the way forward for computing, as opposed to classic desktop OSes. While I think everyone agrees that desktop OSes aren't going to get much more popular than they are now, my problem with this statement is that it's so vague that it doesn't mean anything. Being like iOS can mean many things, and the only really concrete thing he throws out is no exposed…

The Two types of TDD

This recent artical and it's hacker news comments Have gotten me thinking about testing and TDD, specifically how there are different reasons why people do it. I think it helps to go back and look at the two "Schools" of TDD to understand what each one was trying to get out of their tests and what the strengths of the two approaches are relative to each other (and relative to non-TDD methodologies). First, a history lession: TDD first originated in the Chrystler Comprehensive Compensation…

How to be concurrent

There are lots of ways that different languages do concurrency, and I want to talk about the general ways they do it, without getting bogged down in language details. So what is concurrency? It's not parallelism, that's for sure. It's at it's simplest the ability to do work in the background while not pausing work in the foreground. Some forms of concurrency can use parallel hardware resources (CPU cores, etc), but not all. I'm going to clasify low-level concurrency features (as opposed to high…

Isomorphic Javascript is just Progressive Enhancement done right

I was just at Fluent this week, and I had an interesting thought, spurred by several things, but really crystalized when I saw this talk by Eric Meyer. So, the (perhaps badly named) concept of Isomorphic Javascript is usually sold as a performance optimization for loading time in single-page applications, which is one benefit it provides. However it actually fixes the problem with single-page apps -- they break the web. A single-page app that does not render on the server (isn't isomorphic…

EPR: A utility for simplifying node paths

So let's say you've got a node project, with a structure somewhat like this: Your statements in your specs can easily get very ugly: They're also fragile -- if you move either your spec file or your implementation file, you've got to update your requires. This is a good argument for using lots of small modules that can be broken out -- if a module lives in your folder then requireing it is always easy: The problem is that when you're writing an app lots of the code can't really be seperated…

RISC vs CISC doesn't matter for x86 vs ARM

If you've been following tech lately, you've probably heard people talking about the competition between x86 chips (mainly from Intel), and arm chips. Right they're used mostly for different things -- phones and tablets have arm chips, desktops, laptops, and servers have x86 chips -- but Intel's trying to get into phones and arm vendors want to get into servers. This promises lead to some exiciting competition, and we're already reaping the power benefits of Intel working on this in desktops and…

osc - play with the web's audio generation capabilities

I've been playing around with the WebAudio api for a bit and come up with a nice little demo program that shows the basic capabilities of the OscillatorNode interface (plus some fun canvas programming). It's not a serious project, but it is fun. I'm calling it osc, and you can also check out the source code.

What's exciting about the PS4 hardware

OK, so everyone's talking about PS4 announcement. Here's my thoughts -- take them with a grain of salt though since I'm not a game developer. I've had playstations since the first one, and I've generally liked them. That said, the PS3 had several weaknesses: Price: no one wants to pay $600 for a game console Incessant updates that take forever to download and run Bad ports: the Xbox had the better version of most cross platform games this generation, just because it was easy to develop for Now…
© 2021 Max Polun, Built with Gatsby