Thursday, June 11, 2015

Global proxy with Node.js

It would be nice if applications written in node.js respected system proxy setting (i.e. http_proxy and https_proxy). But this doesn't seem to be the case.
If you make http(s) requests from your node.js application, the system setting is ignored unless you take extra care to do the right thing.
So how does one even use a proxy with http and https modules? It turns out the answer is: use an agent (the same for https). Agents can do many things and they can also implement proxying. The most popular agents for proxying seem to be http-proxy-agent and https-proxy-agent but there's also proxying-agent which can do both HTTP and HTTPS.

QEMU too slow? -enable-kvm!

I've been using QEMU for emulating other architectures on my PC for quite some time. But when I needed to emulate an ordinary PC (x86_64 on x86_64), I had been using VirtualBox most of the time.
When I tried QEMU for such emulation I always felt it's terribly slow. Only once I read the docs more carefully I realized what I had been missing was -enable-kvm. Adding this switch makes a huge difference. Interestingly, when I read other documents about QEMU, I don't see this mentioned more prominently.
KVM only works when the architecture you emulate is the same as the host architecture and the host has KVM support. But that is something I assume all recent PCs have, so KVM should work for you.

Wednesday, June 3, 2015

Linux 4.1.0-rc6 on the Alix 2d3

The Alix 2d3 is not exactly the newest of devices but I still like it. While the last kernel config I posted was for linux 3.4.0-rc5, I progressively went through the introduction of systemd in Debian and currently I'm running linux 4.1.0-rc6. If anyone finds it useful, here is my 4.1.0-rc6 config.
There are some important changes compared to the linux 3.4.0-rc5 config:

Monday, June 1, 2015

Filesystem capabilities, kernel configuration, ping and Operation not supported

If you happen to be building your own Linux kernel for some embedded target and are eager to trim down unneeded features and you have been living under a rock (like I had been, until recently), you might end up being surprised by:
usr@host:~$ ping google.com
ping: icmp open socket: Operation not permitted