Sunday, January 17, 2021

Enabling iwd on Fedora 33

If you are looking to give iwd a try on Fedora it is a simple matter of installing the package, telling NetworkManager to use the (experimental) iwd backend, and masking wpa_supplicant so it isn't started by anything else at boot:

$ sudo dnf install iwd
$ echo -e "[device]\nwifi.backend=iwd" | sudo tee /etc/NetworkManager/conf.d/10-iwd.conf
$ sudo systemctl mask wpa_supplicant

Now reboot. You may need to input your WiFi credentials again. NetworkManager will handle starting the respective supplicant services as needed at boot so explictly enabling them is not necessary.

If you want to switch back to wpa_supplicant, simply delete the configuration file we made and unmask wpa_supplicant:
$ sudo rm /etc/NetworkManager/conf.d/10-iwd.conf
$ sudo systemctl unmask wpa_supplicant

Now reboot.

Friday, August 7, 2020

The Ridgid LSA experience

Ridgid makes a big deal about their "Lifetime Service Agreement" ("LSA"), but how does it work in practice? I've gone through the process twice now with my Gen 5X impact driver, so let's dive into how it works.

The victim

Monday, May 4, 2020

Mumble server on a Raspberry Pi using Docker

I've recently needed to re-familiarize myself with the basics of Docker after some time away. A quick project to hit the ground running was launching a Mumble server (Murmur) on a Raspberry Pi 4 running Raspbian. There are certainly no shortage of Mumble servers on Docker Hub with the most popular one by far being this one. Unfortunately it won't do us any good as there is no armv7 build. Luckily, since Docker officially supports Alpine for armv7, and Murmur is packaged for Alpine, it is pretty easy to get up and running.

Wednesday, June 12, 2019

It's all about the integers



As previously discussed in Floating point madness, the handling of fractional year, month, day, week, hour, and minute components of ISO 8601 dates and times is fraught with all kinds of peril. At the time, I chose a solution that was pretty immediately obvious, could be implemented quickly, solved a real problem with degenerate cases, and seemed intuitive. Even at the time, I mentioned it would only work for most cases, not all. Unfortunately, issue 24 highlights that working for most cases isn't good enough. Is there a solution that can work for all cases?


Wednesday, January 30, 2019

Floating point madness

In the course of squaring away sub-microsecond precision in aniso8601, the discussion came up that fractional components in general are rounded instead of truncated at maximum representable precision which can lead to the same kinds of problems pointed out in issue 10. At the time I pushed back because I figured it would lead to 'floating point madness' trying to get the correct behavior in all cases. Recently I was convinced to capitulate as I ran into a series of issues in my own use. Issue 21 covers this in some detail, but for those that want a complete breakdown, read on.


Wednesday, November 28, 2018

Simple federated sign-on with Amazon Cognito Part 2 - The code

Now that we've got the general setup out of the way in part 1, it's time to dig into how the cognito.js code actually works. Keep in mind it's dependent on js-sha256 for the SHA256 implementation, which is included for you if you use the example index.html file.


Tuesday, November 27, 2018

Simple federated sign-on with Amazon Cognito Part 1 - The "basics"

I recently found myself needing to climb the learning curve for adding federated user sign-in to a webpage with Amazon Cognito. What follows is a quick summary of how you can do the same. For those who want to jump ahead, they can just take a look at the matching Bitbucket Snippet.


Friday, November 16, 2018

Color fringing with fonts in Fedora 29

So Microsoft joined the OIN, which has had knockdown effects on the Linux community, including using FreeType's ClearType subpixel font rendering by default in Fedora. For some reason, they chose not to enable any kind of LCD filter at the same time, which can lead to rainbow color fringing around text. Fortunately enabling an LCD filter in FreeType is easy:

$ ln -s /usr/share/fontconfig/conf.avail/11-lcdfilter-default.conf /etc/fonts/conf.d/

Thursday, October 25, 2018

aniso8601 and sub-microsecond precision

After more false starts than I can count, aniso8601 is finally ready to handle sub-microsecond precision. Anyone following the (now approaching 3 year old) issue #10 will know that a solution wasn't immediately obvious. However, after fairly constant requests for "I want to parse an ISO 8601 timestamp and receive an X" and "why do you only support parsing to X and Y, I need to the parse result to be a Z" I came to the realization what people really wanted was a parser that just parses and to be able to build those parse results into whatever fits their use case best. Enter the 'builder' kwarg.

TLDR: New optional 'builder' keyword argument for all parse methods, 'relative' keyword argument going away. Default behavior is the same as always.

Wednesday, October 24, 2018

Blog maintenance

Yes, I know that the highlighted code listings have a tendency to disappear. My response has usually been "Leave me alone, I know what I'm doing." Anyway, I've changed to using hilite.me (default style, line numbers where appropriate, "borland" coloring). The downside is you can't just copy and paste code easily from the page source anymore. The upside is there is no longer any reliance on third party Javascript which may or may not work depending on whether Venus is in retrograde, ritual animal sacrifices, and whether or not you're holding your tongue the right way.

I've mostly been putting it off because I intended to have the blog moved to a new platform by now, just hasn't happened.

Sunday, October 29, 2017

No more ExactImage

I've grown tired of trying to package ExactImage for Fedora as the Enlightenment bindings it uses seem to no longer be packaged. As of 0.30.0, pdfocr uses the easier-to-package hocr-tools library for wrangling hocr files. The copr repository has been updated accordingly.

Thursday, July 13, 2017

A timely response

And just like that, a response from senator Ron Johson's office:

Dear Brandon,
Thank you for contacting me regarding net neutrality. 
Since the Clinton administration, the Federal Communications Commission (FCC) had regulated the broadband industry with a light touch, allowing the Internet to flourish. Unfortunately, the Obama administration’s decision to reclassify broadband service under Title II — its misnamed “Open Internet Order” — broke with bipartisan tradition. This reclassification imposed heavy-handed utility-style regulations on internet services and led to greater government control of the Internet.  
This heavy-handed regulation has caused investment in Internet infrastructure to decline.  According to the FCC, among the nation’s 12 largest internet service providers, domestic broadband capital expenditures decreased by 5.6 percent, or $3.6 billion, between 2014 and 2016. As the new chairman of the FCC recently explained, “regulations designed for monopoly will push the market further toward monopoly.” This is not what is best for citizens of Wisconsin or the rest of the country.  
One of my top priorities is to ensure the expansion of high-speed broadband throughout Wisconsin. On May 18, 2017, the FCC released a Notice of Proposed Rulemaking for broadband services that was a welcome development. This action restores the light-touch regulation that allowed for a free and open Internet for nearly 20 years.
Thank you again for contacting my office. It is very helpful to hear the views of the constituents I serve. Please see my website at www.ronjohnson.senate.gov for additional information. It is an honor representing you and all the people of Wisconsin.
Sincerely,

Ron Johnson
United States Senator

I used this "free and open" internet that supposedly existed for nearly 20 years. I remember Netflix performing extremely poorly on my Time Warner Cable connection due to TWC refusing to enter into any kind of peering agreement. Netflix eventually had to pay to make it happen. This effectively resulted in TWC double dipping, they charged me over $50 / mo. for a connection that was more than capable of handling an HD Netflix stream, and they charged Netflix for being able to more efficiently deliver content to TWC customers. Basically overnight my connection was "capable" of Netflix. I certainly don't see how small competitors to Netflix could ever afford to enter such an agreement, and without financial incentive, I certainly don't see TWC helping them out or otherwise improving their infrastructure to better handle the load.

During the same "free and open" period, I spent plenty of time on the phone with various ISPs arguing that I was not getting the speed I paid so exorbitantly for. The response was always the same, rated speeds are 'up to', and you are not guaranteed to ever actually receive the rated speed. Interestingly, they would always "look into it" once I complained that I'm only getting speeds that don't exceed the lower speed tiers and suggested I would like to change to a cheaper plan. Every time, speeds would return (for a while). What motivation did they have to solve my problem anyway? They knew I maybe had one other option to buy my internet access from, in some cases I had none. I fail to see how the market could be pushed "further toward monopoly". And that decrease in capital investment? The ISPs themselves don't blame net neutrality, and in many cases investment has increased.

Much like the current debate around "healthcare" has little to with healthcare and has everything to do with insurance (just because I can afford insurance does not mean I can afford healthcare, and if I can't afford healthcare, do I really have access to healthcare?), the debate around net neutrality conflates "the internet" with "internet access". I pay my ISP for the latter: a (constantly increasing) $70 / mo. for 60 Mbps for access to "the internet". That's the entire internet. Not 60 Mbps to some things, 6 Mbps to Netflix, and 1 Mbps to Facebook. And bless them, since Title II classification, I get my 60 Mbps to the entire internet almost all the time.

And what about that doctor from yesterday's rant? In the spirit of that "personal responsibility" Republicans are always prattling on about, maybe if the telemedicine isn't working I'll turn off Netflix. And if it still isn't working, maybe someone should build a better bridge.

Wednesday, July 12, 2017

Tuesday, December 22, 2015

Setting a GuruPlug Server Plus up as a WiFi client

Recently I wanted to again stream audio to my GuruPlug Server Plus, only to discover this house has no good way to get a network cable close enough to my stereo to make it work. I figured this wouldn't be a problem, after all, the GuruPlug Server Plus has WiFi. However, the guide to setting up the GuruPlug as a WiFi client is gone, as is the Wisdom of the Ancients of those who got it to work before me. What follows is a guide on getting WiFi client mode working on a GuruPlug Server Plus running Debian Wheezy with a 3.2.68-1 kernel.


Monday, October 5, 2015

Windows Phone 8.1 - A burning platform

Having recently fallen backwards into the Windows Phone ecosystem after being pretty much exclusively Android since the G1 (Symbian on an E51 before that, Windows Mobile / dumphone combo before that), I feel like I'm qualified to get on the Windows Phone 8.1 hate bandwagon. So without further ado, here we go!

Microsoft Lumia 435 - Cheap, cheerful, surprisingly not crap

Having recently moved to the backwoods, I found myself in need of a phone supporting T-Mobile's excellent WiFi calling service. Despite being firmly entrenched in the Android ecosystem, the Nexus 6 was just too big and too expensive for my tastes. In a sudden bout of pragmatism, I picked up the cheapest phone available at WalMart which happened to support WiFi calling. Enter the Microsoft Lumia 435.


Thursday, June 4, 2015

I'm feeling [Fedora] 22

I've updated my relevant Copr repositories to provide Fedora 22 packages. The quakespasm, yquake2 (repository for the Yamagi Quake II engine), pdftools, and msp430-development-tools (updated to the latest versions of everything, except msp430flasher as the latest installer doesn't seem to work) repos have been updated. Maybe next time I'll have this done before release.


Wednesday, March 18, 2015

Quick and dirty PDF OCR in Fedora 21

Every so often you wind up with a scanned PDF of mostly text. Performing OCR allows you to both search and select text in the document. Usually for one-off scans, a quick OCR is sufficient (no training, no skew correction, etc.). For those cases, I usually recommend pdfocr. Unfortunately for Fedora users, pdfocr uses PDFtk (which Fedora does not package due to it's dependence on gcj), and ExactImage, which no longer has a maintainer. Read on for a quick work around.

Monday, February 23, 2015

MSP430 GCC 3.2.3

A couple of people have asked about version 3.2.3 of the official TI version of GCC for the MSP430. The source link was broken, but it's fixed now. Updated versions of the msp430-gcc-support-files, msp430-elf-binutils, msp430-elf-gcc, and msp430-elf-gdb packages are now available in my Copr repository. And yes, I plan on tracking TI releases in that repo.

Sunday, February 15, 2015

MSP430 and Fedora 21 - The same but different

If you've tried doing any work with the GCC compiler officially packaged by the Fedora Project, you've probably run into issues when trying to link. The issue is correctly identified on that bug report, the strip step of building the RPM needs to be worked around. Unfortunately the maintainer of those packages hasn't stepped forward to push a fix.

I considered fixing the issue myself, but I'd recently discovered that TI and Red Hat have started work on their own supported version of the GNU toolchain for the MSP430. Instead of fixing the current packages (which are packaging source that is over 4 years old now), I packaged the new TI / Red Hat version. Sure, it was time consuming, but when you have a new yo-yo your brother got you for Christmas, the compile time just flies by.