Accidental software discovery of the day (via
pkg search pie, looking for GNOME Pie actually): orpie, an excellent full-screen console RPN calculator written in OCaml.
Wow, Opera 48 converts units, time zones and currencies on text selection. That's really awesome.
Some WebExtensions attempt similar things but as there's no native select popover thingy in Firefox, they either add a context menu item (okay) or just edit text inline (please don't). At least they don't inject custom UI into the page.
The recent standardization of Encrypted Media Extensions by the W3C isn't actually a big deal. EME was already used in production with multiple independent implementations (which is a W3C requirement). Before that, Flash and Silverlight provided similar things. Worse, some video services used (and still use) custom NPAPI plugins to protect their content.
And yet, a lot of people on several link discussion websites posted ridiculous slippery slope doomsday scenarios. Like, now, NOW the Web will be no longer open and free, full of DRM for everything, even news articles will be DRM'd, and proprietary software will run in the browsers instead of "open" scripts (that you can View Source), and someone even seriously suggested that browsers might stop playing non-DRM content.
How come this never happened when Flash was extremely popular and included DRM capabilities? ;-) It's as if no one except for movie studios actually wants to use DRM.
Also, there's this innovative technique for proprietary software on the web. Actually it existed since forever and it's called… doing the interesting things on the server side.
Recent discovery: forwarding serial ports over the network is pretty easy. Useful for embedded development!
For example, if you're working with an ESP8266 SDK in a Linux VM, but the device is attached to a FreeBSD machine: run something like
doas python2 ~/rfc2217_server.py -p 8266 /dev/cuaU0 on the host and use something like
rfc2217://192.168.1.2:8266 as the
--port argument to esptool.
(Yeah, use that script. Other RFC2217 implementations don't seem to support binary mode for some reason.)
Polymer 3.0 is pretty exciting! R.I.P. HTML Imports.
Paper elements were automatically converted to ES Modules… except for the deprecated neon-animation, which is a dependency of paper-dialog and some others. Hopefully this will be solved soon. micro-panel is a heavy user of paper-dialog! :D
Also, a new interesting thing by the Polymer team is lit-html, which is not yet actually integrated with Polymer…
"[Linux] ISO management software" is literally the best euphemism ever :D
I've decided to move the VMs on my desktop from VirtualBox to Microsoft Hyper-V. Because reasons.
Actually because I've upgraded my desktop to an AMD Ryzen CPU: first, AMD-V/SVM is not supported by the Intel HAXM thing from the Android SDK, so I wanted to try out Microsoft's Hyper-V based Android "emulator" (VM configurator/runner thingy) instead. Second, giving 16 virtual CPUs on an SMT 8-core to a FreeBSD guest in VirtualBox results in a weird performance issue. (Though giving 4 vCPUs to multiple VMs on a 4-core CPU worked fine.) Third, it's Oracle VM VirtualBox and no one likes Oracle.
So, here's how you can do it as well.
How to get Hyper-V
You need Windows 10 Pro, Enterprise or Education. (Or Windows Server, obviously.) Just enable it as a feature and restart.
Alternatively, installing the MS Android "emulator" automatically enables it.
How to migrate a VM (FreeBSD, Linux or Windows with EFI)
(NOTE: older versions of FreeBSD apparently had some loader issue that prevented EFI boot in Hyper-V. Everything works for me on a recent build of 11-STABLE.)
In VirtualBox, go to the Virtual Media Manager (Ctrl+D) and copy your disk as
In the Hyper-V Manager, use the Edit Disk dialog to convert the
If you haven't done that yet, go to the Virtual Switch Manager and make a virtual switch ("External" is like bridge mode in VBox).
Now make a virtual machine. Generation 2, no dynamic memory (FreeBSD doesn't support that), select the virtual switch and the VHDX disk.
Click Connect and it should just work.
By the way, it's nice that you can always close the console window without powering off the VM, unlike in VirtualBox where you need a special "Detachable start".
Interestingly, if you create the VM without a disk and attach the disk later, you won't see "boot from hard drive" in the firmware / boot order settings. And there's no add button! (WTF?) The fix is to use PowerShell:
$vm = Get-VM "YOUR VM NAME" Set-VMFirmware $vm -FirstBootDevice (Get-VMHardDiskDrive $vm)
Speaking of which, it's nice to have a directly integrated PowerShell interface to all the things. My little xvmmgr script was initially written for VirtualBox, and that required COM.
How to migrate a VM (other OS)
Well, a similar process, but use Generation 1.
My experience so far
Client Hyper-V has pleasantly surprised me. It's a very smooth experience: it looks like a Type 2 hypervisor even though it's actually Type 1, it runs VMs without any performance issues… what else could you ask for?
Well, the downside is its lack of flexibility in terms of paravirtualized (MS calls them "synthetic" or something) vs emulated devices.
All you get is the choice between two generations.
Generation 1 means legacy BIOS boot from an emulated IDE drive with emulated all the things plus optionally some paravirtualized devices like the NIC.
Generation 2 means EFI boot from a SCSI drive with paravirtualized everything.
Oh and the SCSI controller is also on the
So there's no way to use EFI and SCSI with e.g. OpenBSD, you need full Hyper-V support for at least the disk and network to do that.
Thankfully Microsoft contributed that support to FreeBSD! :)
My desktop has Ryzen! :D
Interestingly, it runs my 2400 rated DDR4 sticks at 3200. Not super tight timings (CL18-19-19-37 1T) but pretty good for Hynix memory. My previous system, non-K Skylake, couldn't run it above ~2450.
lol, Sia has a minimum fee of 1000 SC, even if you want to get ~20 GB for 5 SC. Horrible for small scale storage.
I went to
pull the gadgetbridge repo today and look at this shit. Someone issued a DMCA takedown because "reverse engineering of my work or sharing images from my work is strictly forbidden"?! Fuck off asshole, you can't copyright that. Apparently the reverse engineering is bluetooth logs. What a dick.
This Belkin Lightning cable's connector just cracked open… but I put it back together. One half locks into the other. Good design.
WWDC is all weed jokes now, nice :D
Also doing some work on the Android app. It will eventually become a thing! :)
evdev support in the psm driver (with proper support for Synaptics touchpads and Thinkpad Trackpoints) landed in FreeBSD -CURRENT! Just set up libinput in Xorg for all devices, very nice. (Without device autodetection — with devd, Xorg wants to use the old keyboard and mouse drivers. Using the udev backend would work, but freebsd-ports-graphics is currently meh.)
So Amazon Lambda has a 6 MB limit on request (and response) size. Binary files have to be Base64 encoded (LOL) which makes the limit even SMALLER! So my micropub media endpoint chokes on full DSLR resolution photos. Yeah the "right way" is to have the API Gateway endpoint upload to S3, and the upload event trigger the Lambda processing which would download from S3, and use a separate Lambda for authentication on that endpoint… but I need the processed URLs in the response body. I need everything to happen in one request! How did AWS engineers not see that use case coming?!