I have been playing around with LXD the past few nights, and so far I really like it. It’s like VMs, but as a container, in contrast with Docker, which is designed around running a single application as a container.
In order to try LXD out I installed a Ubuntu 15.10 VM and added the LXD stable PPA. Then it was time to launch some containers!
Shortly after I hit a problem: I could not stop the container I just created! It would just hang there, so I had to stop it forcefully:
lxc stop --force jessie-test
That doesn’t look good at all. Digging around I found the issue on GitHub, which basically concludes that it’s a systemd issue, because it doesn’t seem to handle SIGPWR correctly. Oh boy. The systemd issue is still open on Launchpad, so what do we do then? Well, we get rid of systemd. Let’s prepare a base Debian Jessie image with good old SysV init, shall we?
The missing part was to download all those built artifacts (the Python wheels) stored in AppVeyor and upload them to PyPI when I decided to make a release. Uploading the wheels can be easily done using twine, and for downloading the last built artifacts for a given project I created the following simple Python script using requests:
Quick heads up, I just released pyuv 1.2.0. pyuv is a Python wrapper for libuv. This time around, pyuv implements all the funcionality covering up to libuv 1.7.3.
This release was focused in 2 things: adjusting to new APIs / changes in libuv, and improving the testing, specifically on Windows.
As of this writing, pyuv is automatically tested on Linux systems thanks to Travis CI and on Windows thanks to AppVeyor. Thanks to AppVeyor, I’m now able to provide Python Wheels for pyuv, which is great because, frankly, compiling it on Windows is kind of a pain.
I’m happy to announce python-fibers 1.0.0! Fibers are cooperative microthreads for Python, a project I started about a couple of years ago. Head here for the initial project annoucement and rationale. (yes, I can hear you thinking “why didn’t he use greenlet?!”)
There are no API changes in this release, and since it has been stable so far I thought it it’s fair to call it a 1.0.
It’s with great pleasure that today, the day when OpenBSD 5.7 was released, I can announce OpenHRC: Open Household Router Contraption.
OpenHRC is a project Iñigo and yours truly did in our spare time, in order to replace the (crappy) router our Internet provider gave us with something more robust and OpenBSD based.
We chose the PC Engines APU as our hardware platform, but any device with at least 2 network interfaces will do. OpenHRC uses Ansible to configure the basic OpenBSD installation and enable several services, configured with sane defaults:
Local NTP server
Local caching DNS resolver
This is just the beginning, we will be adding more features shortly, but we couldn’t pass on making our first release the same day OpenBSD 5.7 (which we have been testing for some time) is released.
Check out the installation video below, and head over to GitHub for the source code. Happy routing!
Yes, it’s that time of the year again. The week which leads to one of my favorite conferences: FOSDEM. I’ve been attending for 4 or 5 years now and I love it. There is so much going on it even get overwhelming at times! It’s great to just hop into a random room and listen to a great talk, my brain becomes a sponge throughout the weekend 🙂
If you are a Python user which happens to use Windows every now and then you probably also suffer when installing (or at least trying to) Python packages which need to be compiled. Python wheels really help here, as they ease the installation of binary packages, and even make the installation of non-binary packages faster.
Long time pyuv contributor Marc Schlaich has recently began to provide these wheels for both 32 and 64 Windows, for all supported Python versions: 2.7, 3.3 and 3.4. Wheels for pyuv 1.0.2 have already been uploaded to PyPI, you can check how to install Python wheels here.
Hitting 1.0.0 means the API will remain backwards compatible throughout the 1.x branch. But this came at a cost: pyuv 1.0.0 introduced several backwards incompatible API changes, some coming from changes in libuv itself, and some others to (hopefully) improve pyuv itself.
As usual, you can download pyuv from PyPI, and check the documentation here.
“So, what now?” I hear you say. Since pyuv is currently feature-complete with regards to libuv, adding CFFI bindings to pyuv will probably be the next thing I’ll tackle. You can follow the discussion here. A user already started, and I look forward to joining forces and integrating the work 🙂
Took a while to get these together, mainly because I’m spending quite some time on libuv itself lately. In case you didn’t know libuv 1.0.0 is around the corner, yesterday libuv 1.0.0-rc2 was released, check it out!
Back to pyuv, I’m pleased to announce pyuv version 0.10.12, which a maintenance release for the v0.10 series. In addition, I’m releasing pyuv 1.0.0.dev1, the first development release in the v1.x series of pyuv (which bundles libuv 1.0.0-rc2).