Thread pools on the JVM should usually be divided into the following three categories:
- CPU-bound
- Blocking IO
- Non-blocking IO polling
Each of these categories has a different optimal configuration and usage pattern.
<?xml version='1.0'?> | |
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'> | |
<fontconfig> | |
<!-- ~/.config/fontconfig/fonts.conf --> | |
<match target="font" > | |
<edit mode="assign" name="hinting" > | |
<bool>true</bool> | |
</edit> | |
</match> | |
<match target="font" > |
var webpack = require('webpack'); | |
module.exports = { | |
entry: './ui/entry.js', | |
output: { path: __dirname + '/public/compiled', filename: 'bundle.js' }, | |
module: { | |
loaders: [ | |
{ test: /\.jsx?$/, loader: 'babel-loader', include: /ui/, query: { presets: ['es2015', 'react'] } } | |
] | |
}, |
export FREETYPE_PROPERTIES="truetype:interpreter-version=35" |
Fibers are an abstraction over sequential computation, similar to threads but at a higher level. There are two ways to think about this model: by example, and abstractly from first principles. We'll start with the example.
(credit here is very much due to Fabio Labella, whose incredible Scala World talk describes these ideas far better than I can)
Consider the following three functions