See part 1 for context. This post explains the control/planner strategy I settled on to minimize the cost and make things as stable as possible to mitigate disruptions caused by VMs being re-allocated. Continue reading
1 shell script
There is no automation other than automatically running this shell script whenever a commit is pushed to whatever branches are active. You don’t need to think very hard to see how this will break down at a certain point. Continue reading
In which I try to figure out a sensible pattern for broadcasting messages among a set of isolates. Continue reading
In which I put together some finger exercises and variations on themes to get an index page for a directory that is being served over http. Continue reading
In which I try to mimic Erlang’s process supervision mechanism with Dart’s isolates (poorly). Continue reading
In which I try to use
FileSystemEntity.watch to keep track of files in a directory so that I can have an in-memory representation without having to re-scan the directory over and over again. Continue reading
In which I learn about generators, typed arrays, and bit operations by implementing SHA-256. Continue reading
In which I try to implement a simple http file server in Dart (using the existing http implementation in the standard library of course). My goal is to get something along the lines of the various one-line servers that exist for Ruby and Python. Continue reading
There is surprisingly little information on how to optimize costs using the AWS spot instance market. There are several services that provide management on top of the spot market if you have an architecture that supports an interruptible workload but very little in the way of how to go about doing it yourself other than surface level advice on setting up autoscaling groups. To remedy the situation here’s an outline of how I’ve solved part of the problem for CI (continuous integration) type of workload Continue reading
This is in response to the math myth.
The author couldn’t be more wrong even if he tried. My current project is using GLPK to do some basic mixed integer programming to optimize AWS spot instance allocation. If I had not taken linear algebra, calculus, and a few courses in linear programming the idea would not even have crossed my mind that I could use mixed integer programming to solve the spot allocation problem and that’s just the first half.
The second half can be considered a problem in control theory because it requires taking the new allocations and gracefully transitioning from the old set of allocations. You can go even further and say that the whole thing would be even better if I understood more about stochastic processes and could potentially model the spot market and make predictions ahead of time to simplify the control problem and get ahead of the price fluctuations.
Saying all you need is Excel and 8th grade is in the words of one famous physicist “not even wrong”. If you’re in an engineering discipline then the more math you know the better.