local

Stuff posted in this site by me.

Oh, Photoprism

mariadb_1 | 2022-04-11 18:17:42 0 [ERROR] InnoDB: preallocating 507904 bytes for file ./photoprism/faces.ibd failed with error 28 mariadb_1 | 2022-04-11 18:17:42 0 [ERROR] [FATAL] InnoDB: Error (Out of disk space) in rollback. mariadb_1 | Fatal signal 6 while backtracing photoprism_mariadb_1 exited with code 139

We recently got our hands on some enterprise hardware and we’re now using it to run some VMs and whatnot. One of the projects I’ve had for a long time is trying to figure out a way to have a web gallery. After looking around at the available options we decided to give a shot to Photoprism.

Requirements aren’t complicated:
– Display pictures and associated metadata quickly, as a gallery.
– Have wide compatibility for various filetypes, including RAW and video files.
– Mobile app helps but it’s not a hard requirement. Web first, preferably with minimum javascript thrown in.

We have about 46 thousand files including pictures and videos, consuming 265 GB of storage. A bit more than what most people would have sure, but any cloud picture solution would definitely charge a good chunk of money to store all of them.

Now, on to PhotoPrims itself. It does Docker Compose but… fine, whatever, you want me to do the devops shit, fine. It’s easy to install, after all:

# mkdir -p /opt/photoprism
# wget https://dl.photoprism.app/docker/docker-compose.yml
# vi docker-compose.yml

You just edit docker-compose.yml with the bits and pieces you need specific to your installation and you’re good to go. Being lazy I mounted pictures storage via CIFS from the storage server. Tried to get it to work directly in Docker but it kept telling me to kick rocks.

Then you run the actual service:

# docker-compose up -d

Starts up a server accesible on the local network at http://server:2342. The documentation does state securing the connection is an exercise left to the reader, but as I only plan to run this on my LAN and accessible only via VPN, it’s fine.

This is where we started running into issues. The first VM created for it had 2 vCPUs, 8GB RAM, 16GB HDD VM. It ran out of drive space after thrashing CPU for a bit. We upgraded the VM to 8 vCPU, 32BM RAM, 32GB HDD. It ran out of disk space after thrashing the CPU cores for a bit longer.

Mmmkay, now we have a bad time going here. Upgraded VM to 16 vCPU, 64GB RAM, 64 GB HDD. It ran out of disk space again after thrashing the CPU cores for a solid 20 hours. We get it, it’s using TensorFlow for AI stuff but as a comparison Digikam is able to do the same things but doesn’t consume nearly as many resources, for as long.

We suppose it really wants you to be using modern hardware of the sort that is incredibly expensive and to find given the current supply chain issues worldwide.

Seriously Google, what the fuck

They are altering the agreement, pray they don’t alter it further.

Source: Google to free G Suite users: Pay up or lose your account | Ars Technica

Darth Vader: I am altering the deal. Pray I don't alter it any further

A few years ago I needed to add another domain to my Gsuite account, which led me to start paying for services there. Over time we started using it for more things but we remained leery of purchasing things from Google through Gsuite accounts or free Gmail accounts.

At some point we migrated our Google Voice number from our gmail account to the Gsuite account, and it remained there. When this migration was done Google moved everything through: contacts, text messages, call history, voicemails. Everything happened without issues or difficulties; all you had to do was unlink your carrier number from one account, migrate the GV number from Gmail to Gsuite, and re-link your carrier number.

But starting a couple of years ago Google disabled the ability to migrate from Gsuite to Gmail. Not without losing everything. We’ve been looking to migrate off Google’s infrastructure for email/calendar and everything else and it’s a non-started as long as they hold my main phone number hostage. And now Google is forcing people and companies who made the mistake of choosing Google for their services to pay up or lose everything:

oh fuck

I’ve been using this for my family since Google first introduced it as a way for Families to use vanity domains together. I have over a decade (almost 2?) of purchases tied to this account and the cost to migrate to their enterprise offering for my family is bonkers.

I don’t know what I’m going to do here as I can’t migrate my purchases out of this account and into a normal gmail account. uuuuuuuugh.

While self-hosting files and email and photos is doable, self-hosting your own mobile phone number is still complicated, and on top of that the available services still cannot compete with the simplicity of GV even as Google leaves the service to wither for years at a time. We’ve been looking at using services like https://jmp.chat/ but again, they are non-trivial:

  1. You must port your number from GV to their service.
  2. You lose everything: Contacts, text messages, call history, voicemails.
  3. You have to figure out what XMPP client to use on your devices depending on operating system, as most XMPP clients don’t support them all.
  4. You have to learn the quirks of texting people who aren’t in your contacts already.
  5. Jmp.chat itself is still marketed as Beta, and some features are still in alpha, like group messaging.

Google should offer the option to convert a Gworkspace (nee Gsuite) account to a free Gmail account, or to migrate the data from a Gworkspace account to a Gmail account. They can do it, they just choose not to because nobody can force them to do the right thing.

The current state of things is absolute bullshit.

“Burn the witch!”, they yell

This is written in Rust because I personally believe that writing security critical components that we would ship with the operating system in C is a massive disservice to our users. Go also doesn’t really have a good story to do interoperability with core C system components like this (the Go runtime is massive and as of writing this post the entire PAM module I’ve written is smaller than the Go runtime, even with a statically compiled copy of libcurl).

Source: The Surreal Horror of PAM – Xe

You can already see C fanbois off in the distance carrying pitchforks and torches

The more things change the more they stay the same

I first started using Linux and FreeBSD on laptops in the late 1990s. Back then, there were all sorts of hassles and problems, from hangs on suspend to pure failure to boot. I still worry a bit abo…

Source: Managing an External Display on Linux Shouldn’t Be This Hard | The Changelog

Evidently nothing has changed since we stopped using Linux as our daily driver OS. We were actively thinking of switching back as we got tired of Windows rebooting on me whenever it felt like. Slight problem— We have two 4K displays and two 1080p displays hooked to a Radeon GPU and AMD isn’t particularly nice about proper driver support; they’re better than Nvidia but not by much.

We hate to think what would happen if we have to switch to a laptop full-time. We’d probably give in fully to the dark side and run WSL on Win11. More and faster progress is being made on running desktop applications on it than people are doing on fixing these issues on “real” Linux.

Blight upon you, Google, for fucking this up

So we took the upgrade onto Android 12 for my phone. It’s just nice, much has already been said about it so not going to repeat any of that. We do have one bone to pick and it is that the youtube app is now permanently installed onto the phone and it ignores any of the preferences you had set in Android 11. It just so happens we have NewPipe as my preferred app cos Reasons. Here’s my workaround for that.

Disable youtube app

  1. Go to SettingsAppsSee All Apps.
  2. Scroll to YouTube, tap it.
  3. Tap disable. Android will put up a warning to scare you.
    YouTube App Info on Android 12
  4. Tap Disable app.

Re-enable newpipe permissions and links

  1. Tap back out to All Apps.
  2. Scroll to NewPipe.
  3. Tap Open by default.
  4. Enable Open supported links.
  5. In the list of Links to open in this app, enable the ones you want. We got lazy so we just enabled everything.
    NewPipe supported links
  6. Exit out to your home screen.

There, you can now enjoy youtube videos in Android 12 without youtube trying to ram any of its paid options down your throat every other video.

Oh, instagram. Fuck you, by the way

I posted a screenshot a few days ago but… instagram did completely nuke my account. I didn’t post much but I did appreciate the people I talked with.

I guess I’ll create a new account using my fb account but I don’t expect to post on there much. Perhaps 1 post a month? I’m not willing to even attempt to be part of a community if the site will nuke and ban you for using third party clients.

Pictures will keep going to Flickr, as usual.

We need interoperability. I didn’t even get a chance to get my contacts out of there.

Immolation at the altar of software transmutation

For the past few years we’ve been seeking to leave the grasp of Google as we’ve noticed a serious divergence between its lofty aspirations and its actual provision of services. We have personally been using the Google Workspace services through multiple incarnations and they’ve always worked well, even if Google decides to shove its dick Buzz Meet chat client down your throat. Most of the time you can disable that.

But it is now obvious the teams running these services are under tremendous pressure to monetize the services beyond the cost per user they charge for entrance. What this service does for us, at its core, is the integration between Gmail and Calendar, with everything else being just a good extra to have. Google won this war on the web in the aughts while Microwoft won it on the desktop back in the 90s with Outlook and Excel.

Yes, there are other companies that do this but it is likely you’ll still use the Gmail or Gcalendar apps, the Outlook apps, or the iOS apps if you’re in the Apple ecosystem. Even people self-hosting their own services will default to using these apps as they’re a known interface that doesn’t change too often.

Now, my previous post was Perhaps WSL2 Should be a Wake-up Call, which itself sparked a lively discussion on lobste.rs, where the author makes this comment

And I think one of the reasons for that is the constant software churn in the desktop space. Lots of things, including various GTK/Gnome or KDE components, ritually get tore down, burnt and rebuilt every 6-8 years or so, and at one point you just get perpetual beta fatigue. I’m not sure how else to call it. Much of it, in the last decade, has been in the name of “better” or “more modern” UX, and yet we’re not in a much better position than ten years ago in terms of userbase. Meanwhile, Microsoft swoops in and, on their second attempt, comes up with a pretty convincing Linux desktop, with a small crew and very little original thought around it, just by focusing on things that actually make a difference.

He’s only making a reference to the Desktop space but we think it can also be applied to the web.

Perusing RSS we found this post by someone more or less looking to do the same thing as us: Organize their life by hosting their own services. While the post is from a few months ago (March 2021), most of these principles still apply as we write this post:

  • Email is what it is. You just have to fucken deal with it.
  • CalDAV and iCalendar are getting even more crufty and their libraries aren’t well maintained. Clients will happily YOLO your data into oblivion if you’re not careful.
  • WebDAV is just… okay, I guess? File sync is more or less a solved challenge. But even then keeping notes in Markdown is a challenge. We prefer CommonMark but support is still spotty years after the specification came out.
  • Tasks? You’re better off keeping your stuff in text files. It’s that bad. Or use a dedicated service.

Now, those are the protocols. What about the actual software?

Servers:
– Email? Sure, you can run your own, it’s not that hard. Plenty of options out there and AFAIK they’re not immolating themselves anytime soon.
– Nextcloud almost decided immolate itself at the altar of language transmutation cos Owncloud decided to do it and people got jealous. Using PHP 8.
– Radicale is coming along on Python3. But myself I still have a bad taste after the move from Python2 to Python3. That immolation left a lot of ash to clean up.
sabre/dav uses PHP 5.4 🤢
– Other solutions… lol what other solutions?

Clients, mobile:
Email: You’ll probably still use the Gmail, Outlook, or Apple apps via IMAP. The open source options… are not well-maintained, or make questionable UI/UX decisions, or are just plain ugly. They don’t have to be better or more modern like in the quote above, but your eyes shouldn’t feel like bleeding when you open them.
Calendar: DAVx⁵ is coming along, but it’s a client library, enabling apps with an actual UI/UX to talk to your self-hosted services. Android only though. Haven’t found any indications of it.
– You need DAVx⁵ to get Android to sync calendar with the OS. The documentation en’t the best. It does work once you get it to work just don’t fiddle with the thing.
– Using iOS? Good luck, at least Apple decided to build support into it. You’ll cry when they take it away.
– You could use web-based interfaces but… then you have to deal with browsers. Here we must commend Mozilla for turning Firefox into a shitty Chrome clone.
Contacts: You’re still relying on DAVx⁵.
Files: Nextcloud app works just fine on both Android and iOS. It does force you go to through it to get to your files as opposed to actively storing them on your devices; you can use FolderSync. Looking around we didn’t find an equivalent on iOS.
Tasks: Again, you’re better off with plain text files or a dedicated service for this.

Clients, desktop:
Email: Seriously, this is fucken ridiculous. Thunderbird still trudging along but its developers seriously want to self-immolate after Mozilla just cut them away. There are no other serious desktop email clients other than Outlook, or going web-based. Whatever GNOME or KDE devlopers cooked up expect them to switch the interface on you cos they wanted to self-immolate. You could go text based but that only works if you’re familiar with the command line. Most people aren’t.
– Going web-based? Most open source web clients have… questionable interfaces.
Contacts: Again, you’re either using Thunderbird, Outlook, or web-based. No, GNOME/KDE apps don’t count. Yes, I’ve used them.
Files: Nextcloud is pretty nice on this cos it stays out of your way, instead of shoving itself into your workflow like Dropbox tries.
Tasks: You have more variety here but… seriously, just use text files. Or a dedicated service that you like.

For now we’re using Nextcloud. We’re okay with it and we’re personally glad it’s sticking with PHP. We just don’t like its newfound tendency to act like it’s the systemd of sync and collaboration. It calls itself a “suite” but most things are only accessible through the web interface. It works fine and that’s all it has to do.

The problem is the churn of apps around the protocols it uses. I can only imagine what GNOME/KDE apps would be like if their devlopers had stuck with the same paradigms and then iterating on them as time went by. Evolution would have 21 years worth of work. Kmail gets sacrificed to whatever the new version of Qt is.

We’re just rambling now but… We still remember Amarok 1.4.6. That one hurt so bad we started using Spotify instead after Clementine deleted a third of our MP3s.

Microsoft is just using Linux to make the moat around Windows deeper

I’ve also slowly become convinced of something else. Elegant though they may be, grand, over-arching theories of human-computer interactions are just not very useful. The devil is in the details, and accounting for the quirky details of quirky real-life processes often just results in quirky interfaces. Thing is, if you don’t understand the real life process (IC design, neurosurgery procedures, operation scheduling, whatever), you look at the GUIs and you think they’re overcomplicated and intimidating, and you want to make them simpler. If you do understand the process, they actually make a lot of sense, and the simpler interfaces are actually hard to use, because they make you work harder to get all the details right.

Source: Perhaps WSL2 Should be a Wake-up Call | Lobsters

As someone who has railed elsewhere about the evils of point of sale systems created by people who have never, in their little sad developer lives, worked in food service, I feel this comment in my bones. For people who know what they want to accomplish, a complicated interface will let you your job once you learn it, and it will let you do magic once you master it.

People bitch about Windows— including myself. But we’re still using it. I personally keep thinking of switching back to Linux but I find myself dreading the inevitable UI churn of GNOME and KDE; it is one of the reasons why I prefer XFCE. But even it suffers from churn under it in the form of libraries and modules that are tossed aside and rewritten in an inane race towards “modernity”.

As for WSL, the classic Borg assimilation quote comes to mind.*

We are the Borg. Existence, as you know it, is over. We will add your biological and technological distinctivensess to our own. Resistance is futile.

Fix Logitech Mouse double-click. Permanently.

As I posted on Reddit some time ago my Logitech Proteus Core G503 Gaming Mouse started having a clicking issue, where one of the buttons would just fake pressing the left-arrow key. Usually a good slap or two of the mouse against the desk would fix it, but it is a known issue due to the drop in build quality of all Logitech products.

But fear not! I found a solution!

I hadn’t thought about this, at all.

On the experience of working with two totally different teams: one novicepractising trunk-based development, the other very experienced being used by GitFlow.

Source: ThinkingLabs:: Thierry de Pauw – On the Evilness of Feature Branching – A Tale of Two Teams

For the longest time I’ve been bashing my head against git cos that’s what everyone uses. I hadn’t realized that not using branches is also a valid development strategy.

Maybe I should just switch to subversion for my personal projects; it seems to align better with how our mind works and as most of them are not software development but rather systems management, having feature branches just isn’t that useful.

Either the system works as expected, or it doesn’t.

Sure, nazism is aye okay

Got locked out of twitter cos their algos don’t understand sarcasm.

We wanted to say “fair” but… no. Twitter Co. does not deserve the benefit of the doubt.

You just have to see what Amazon is doing to see they don’t deserve it.

Vacas flacas

La sequía que azota México es un fenómeno recurrente que con cada visita deja una estela de emergencias y daños. El 84% del territorio sufre sequía en diferentes intensidades, agravada por la falta de lluvias de los últimos meses, según se desprende del Monitor, el organismo de Conagua que la vigila. Pese a que estaba previsto y la evolución histórica del clima en el país lo contemplaba, la sequía sorprendió a Ermenegildo Martínez, un pescador de Veracruz que ha visto como en los últimos ocho meses la laguna donde pescaba se ha secado. “Medía 13 metros de profundidad y ahora apenas le quedan 10 centímetros, en menos de una semana la habremos perdido del todo”, describe. A 1.300 kilómetros de allí, en Sinaloa, el agricultor Gumaro López se contagia del pesar del pescador. Al igual que Martínez tendrá pérdidas en su producción y alerta de que subirán los precios. Ya pasó en 2011 y 1996, los otros dos episodios de sequía extrema que golpearon a México y de los que, ha quedado claro, no se ha aprendido lo suficiente.

Source: La sequía que abrasa México, una tragedia predecible y devastadora | EL PAÍS México

Every Mexican president ignores the lessons learned by their predecessors. This drought will likely drive migration north, which is already a flash point due to the pandemic.

The Water Wars might start much sooner than anyone thought and that is worrying.

For those concerned about the previous post, know that I like blowing things out of proportion, just like you’re doing now.

See you around.

Import basic contact information into Google Contacts quickly

I just fucken spent a fucken hour and a half trying to import some fucken data into fucken Google Contacts cos it’s a piece of pigshit.

There are multiple guides on the web on how to import data into it and most are fucken failures. This is what you need:

Google Contacts CSV columns

In text form, as a CSV:

Given Name,Family Name,E-mail 1 - Value,Phone 1 - Type,Phone 1 - Value,Organization 1 - Type,Organization 1 - Name
First Name,Last Name,mailbox@domain.tld,Mobile,1-000-0000000,unknown,Company Name

In a nice tabulated table. It’s in code cos my fucken markdown plugin doesn’t understand markdown tables

|Given Name|Family Name|E-mail 1 - Value  |Phone 1 - Type|Phone 1 - Value|Organization 1 - Type|Organization 1 - Name|
|First Name|Last Name  |mailbox@domain.tld|Mobile        |1-000-0000000  |unknown              |Company Name         |

And here’s an actual CSV file you can download so you can plug your data into it: google-contact-quickstart.csv: Google Contacts Quickstart CSV.

They should use their much-vaunted AI might and quantum supremacy to fix one of the most basic things companies need to do all over the fucken planet instead of trying to figure out how yoke everyone into their FLoC pigshit without having to threaten ultraviolence on them.

I’d probably have spent less time importing contacts one by one but at least now I know how to do it in bulk and have it work.

Seriously google, get fucked.

It’s done, thank Chaos

This past week was truly a week from fucken hell. Six nights in row at sysadmin jerb, three doubles in a row , then another two doubles in a row.

I’m fucken tired but with the fucken pigs doing curfews in Minneapolis and firing off emergency alerts at all hours of the day it hasn’t been easy to actually get any fucken sleep after they killed a Black guy in Brooklin Center and protests started.

Google Calendar from April 4 until April 17

I think I only survived thanks to the free coffee I get at my barista job and napping at my sysadmin job— which we try not to do because then we’re groggy the rest of the night and when the job is thinking that leads to problems.

I’m going to bed in an occupied territory. Fuck the police.

For Third Night After Daunte Wright’s Killing, Protesters And Law Enforcement Clash Outside Brooklyn Center Police HQ

wiki.vim update

Alright so after a while we just got tired of vimvwiki and vim-pandoc-syntax fighting over syntax formatting and coloring and we weren’t using all the features available in vimwki so ended up switching to wiki.vim and it’s working out pretty good after we switched the journal configuration from daily to monthly with these settings:

Plugin 'lervag/wiki.vim'
let g:wiki_root = '~/Nextcloud/wiki.vim/' " Have wiki live inside Nextcloud
let g:wiki_filetypes = ['md']             " markdown wiki
let g:wiki_link_extension = '.md'         " markdown wiki
let g:wiki_link_target_type = 'md'        " markdown wiki
let g:wiki_write_on_nav = 1               " Write to disk when navigating from file to file
let g:wiki_journal = { 'frequency': 'monthly', 'date_format': { 'monthly': '%Y-%m'}} " Set to journal monthly

The notes are also in the vimrc file cos we know we’ll forget what each specific setting does. Also, why do vim plugin authors think the vim help file is enough? At least have the fucken decency of making it into HTML so you can link to specific bits of it. We hate reading documentation in vim itself when there are much better solutions out there.

But anyways.

We’re using the barest of features cos we don’t really know enough vim commands but we’re already plenty quick with the ones we know. Now we’re trying to figure out what would happen if we stick this wiki into a git repository and manage it that way, which would be awesome for a todo list.

So what we’ve got right now is usually two windows side by side, one for the todo.md file and the other one for the journal for that month. It’s working out pretty well as long as we remember to do a :wa to write all files to disk so Nextcloud doesn’t complain about version differences between server and clients.

Nextcloud itself is still working pretty good. The VM host it lives in will get rebuilt and I’m thinking I’ll migrate from Ubuntu to Debian when I setup a new VM for it.

Aaaah what else was there…? Ah yeah, got three jerbs now

  • Barista
  • Host
  • Sysadmin

The todo.md file mentioned above didn’t even exist until three days ago cos it wasn’t needed but now it absolutely is. Stuff is put on paper first (can’t have phone out at barista/host jobs without a manager complaining), then it goes into the file. It’s working out pretty well. Yes there are apps like Google Tasks, Todoist, Google Keep, Notion but they’re all just so slow and then you’re committed to their own specific way of doing things.

No thanks, I’ll just keep everything in text files cos plain text is forever.

Going back to the jobs… life is going to be absolute mayhem for a few months or until we break and get fired from one, which personally hope is the barista jerb— main clientele will be law enforcement and en’t nobody got time for abuse from those entities.

Ah yes! Another useful tool is barinsta. The regular Instagram app just kept giving me ads and that gets so annoying. The interface harkens back to the initial releases of touchscreen apps but the developer makes it very clear they want you to be conscious of your actions while using the app. The fact you don’t get any ads is just an extra benefit of that. Thanks to it it’s super quick to catch up on my feed instead of spending an hour and still be missing stuff. Install it from F-Droid and if you see anyone trying to put it up on Google Play, report it to the devs.

Other than that we’re also trying to post to Flickr more often. We’re paying for it, might as well use it.

Pretty sure that’s it for now.

S P E E D

The core interaction of your product – Your product exists to save people time or help them solve a problem. Introducing friction or delay during the most important flow of your product will drive people crazy. Notion has developed a reputation for being a sluggish product:

Source: Speed is the killer feature – bdickason.com

I wanted to love Notion. I did! It’s everything you’d want in a note-taking app. But it’s fucken slow, which made me hate it.

This is why I stick with vim and wiki.vim— This just made me realize I haven’t updated that series of blog posts.

Fucken’a

MMDAS PURAS MMDAS

The fucken site broke and I had no idea why.

Nginx seemed to be okay. PHP seemed to be okay. MariaDB had nothing to do with any of this. But anything PHP-based was throwing a fit and just didn’t work at all and of course logging in PHP is hit-or-miss.

After banging my head for two fucken nights I just backed everything up and nuked the server. Switched fron nginx back to Apache, downgraded to PHP 7.3 and kept MariaDB.

I’m just going to keep stuff on Debian Stable for the time being.


Update 2021-03-02_03-28

I’M STILL DEALING WITH THIS.

“Love the smell of thermal detonator in the morning”

Biden decided to bomb Syria cos it’s what the US does, after all. Bomb the shit out of brown people.

We’ve got some memes going around (this is but one example) about Democrats continuing the Republican tradition.

If it actually happens IRL many lulz will be had at Biden’s expense and he’ll fucken deserve it.

That and Kamala is probably pissed that pigs en’t getting money to terrorize people of color.

Rust: move fast and break people’s wallets

Rewrite-it-in-Rust has become a moral imperative. Well, here’s a moral argument: throwing away serviceable computers every couple of years to upgrade is a privilege that not all of your users have, contributes to climate change, and fills up landfills. As far as security is concerned, some matters demand leaving the norm: old hardware is the only kind that can avoid proprietary firmware blobs, Intel ME or AMD PSP, and UEFI. Novel hardware which addresses issues like microcode and open hardware, like POWER9 and RISC-V, are also suffering under Rust’s mainstream-or-bust regime. Anyone left behind is forced to use the legacy C codebase you’ve abandoned, which is much worse for their security than the hypothetical bugs you’re trying to save them from.

Source: Drew DeVault’s blog

As someone who almost exclusively uses older hardware I am extremely annoyed by developers and system administrators who tell me I need to switch out my hardware every 3 to 5 years for the sake of convenience. It’s a very entitled position to take and it got me annoyed enough to go on a little twitter rant about it. If your old hardware works it should be used for as long as possible. You don’t need a server with an AMD Epyc CPU with 1 TB RAM and multipe SSDs with ZFS to… run a simple WordPress blog like this one.

I certainly don’t have the money to develop software in Rust-recommended hardware, which can also double as gaming hardware with the addition of a nice GPU.

How about a memory safe language that can run on “old” or “slow” hardware of the sort that is most often used outside of the US and Europe? If you were to listen to these people they’ll tell you it can’t be done.

Wish for quiet toys

About a month ago we picked up at work a SuperMicro X9SCM-F in a 4U rackable case; we didn’t know who the case maker was until @thegpfury noticed it was a Norco case.

SuperMicro X9SCM-F

SuperMicro X9SCM-F

SuperMicro X9SCM-F

SuperMicro X9SCM-F

SuperMicro X9SCM-F

This is all well and good but we had a major problem for usage: The noise! This being enterprise hardware no consideration was made for acoustics since the device would live in a datacenter but in my case we want to use it at home.

This is what it sounds with all the fans on (NBM-MAT case fans, the lot of them):

Norco DS-24H

Super loud. Like a 70s VW Bug that has had zero maintenance.

So then I tried with only the fans in the back:

Norco DS-24H

And finally with only the CPU fan

Norco DS-24H

At this point it was clear all the fans were buggered to hell. With them all being 80x80x25 it turned out Noctua do have great replacements available; for the backplane I got NF-R8 redux-1200 and for the read I got the NF-R8 redux-1800 PWM so the motherboard can control the speed on them. The power supply is still fully functional and with it being a Corsair AX760 we know we don’t have to worry about the noise coming from it.

This is how it sounds with two backplane fans and both back fans installed:

Norco DS-24H
Much, much better! So quiet very stealth!!!

For the time being it should be okay to run it with just these fans; the apartment is kind of cold and the additional cooling will not be needed until the summer, by which point the thing will probably get upgraded storage. If only more manufacturers had in consideration the acoustics of their devices; there’s an HP ProLiant DL160 G6 laying around that is also loud as fuck but there’s no clear path to making it quieter; I know 1U devices don’t have the most space but even 2U devices are still loud as hell when they can be much improved.

Perhaps a 2U system with quiet fans and good gaming hardware, mounted under a desk top. That’d be nice. Like a Lack rack but for actual desk use. That’d be nice.

vim with rclone on MFA-enabled Nextcloud

I forgot that I enabled MFA on my Nextcloud instance and it broke rclone. This is something the Nextcloud documentation makes clear but neither the instance nor rclone itself will tell you what’s actually wrong or how to fix it.

First, on Nextcloud:

  1. Go to Settings › Security.
  2. Scroll down to the bottom. Enter something descriptive like “rclone” in the entry box, then click Generate App Password.
  3. Nextcloud will display an application-specific password. Leave the screen here. Nextcloud will only display it the one time

You can always start over if you don’t copy it so depending on your password policies you might want to save it in your password manager.

Now, switch over to your shell:

  1. First, kill the current rclone mount: $ fusermount -u /home/nullrend/Nextcloud. Do not just kill the rclone job. Apparently the rclone devs think it’s too hard to implement a rclone umount /mount/dir command or sum’thin’.
  2. Do $ rclone config and delete the current Nextcloud remote endpoint. Much easier to start from scratch.
  3. When you get to the password entry, enter the password given to you by Nextcloud.
  4. Finish the process.

At this point you can save the password on Nextcloud so it actually allows rclone to connect through WebDAV.

To mount the new remote endpoint do something like $ rclone mount endpoint:/ ~/Nextcloud --daemon --dir-cache-time 120m --max-read-ahead 256 --no-modtime --vfs-cache-mode full --vfs-cache-poll-interval 120m. You will need to play with the caching flags depending on what you’re doing and what your needs are.

For my own use case I’m mostly using vim to interact with my vimwiki files so I also often do :set noswapfile to stop vim from bitching about files that are likely open elsewhere.

Migración de alto calibre

NOGALES, Mexico — North of the border, the .50-caliber sniper rifle is the stuff of YouTube celebrity, shown blasting through engine blocks and concrete walls. Deployed with U.S. troops to foreign wars, it is among the most destructive weapons legally available in the United States.But every week, those rifles are trafficked across the border to Mexico, where increasingly militarized drug cartels now command arsenals that rival the weaponry of the country’s security forces. In many cases, criminals outgun police.

Source: Mexico guns: Sniper rifles are flowing to Mexican drug cartels from the U.S. – Washington Post

Los carteles todavía no se animan a realizar asesinatos tácticos de una bala, prefiriendo mostrar sus poderío enviando comandos armados.

Pero para allá van.

For want of a nail…

‘k, so in a previous post I wrote how I reworked my note-taking and went back to plain text. I had to make a few changes since then:

  • I couldn’t take the atrocious UI of Epsilon Notes any longer. Fucken’a. I just accessed my notes directly through the Nextcloud app and that worked well enough.
  • Vimwiki is working quite nicely, just wish it didn’t fuck with the filetype highlighting but the built-in works well enough. Better concealment of links would be nice too.

Switched out Epsilon for Markor, which is prettier and less of a pain in the ass. But trying to set it up is when I started running into an issue with Nextcloud:

It does not support bidirectional folder sync. At all.

The way Nextcloud syncs everything means you have to access your files through the Nextcloud app instead of being able to use your usual app to open a file. It’s not that much of a change but it does prove annoying because that change is forced on you by the application instead of you (the user) adjusting your workflow organically. People have been requesting this ability since 2016 and the app still doesn’t have it.

When I was using Dropbox as my syncing backend my workflow would be like this:

  1. Mark KeePass file as a favorite in Dropbox.
  2. Dropbox syncs the file to all devices so it’s available through the filesystem itself.
  3. As the file is now stored in a local filesystem you can now navigate to it as you usually would:
    • On desktop you can use a file manager to view the file and open it. Alternatively you can use KeePass to navigate to the file and open it.
    • On Android you can open your keepass app, navigate to the database file, and open it.
    • On iOS the same flow as Android applies.
  4. Should the file change Dropbox will sync it silently in the background to all devices. Password applications will notice the change and ask if you want to reload.

With Nextcloud it goes something like this:

  1. Mark KeePass file as a favorite in Nextcloud.
  2. Nextcloud will sync the file to desktop clients but only mark it as a favorite in mobile devices.
  3. You now have a split flow as the file will be available through the local filesystem on desktop but not on mobile:
    • On desktop you use a file manager, or use KeePass itself. Same UX as you would in Dropbox.
    • On Android you need to open the Nextcloud app, navigate to the database file and the OS will recognize the filetype and open it. You can’t use your password app directly as the file does not exist in any local filesystem. When Android terminates your password app and you then have to reload the file through the Nextcloud app.
    • On iOS it looks like you can select which folders to sync to local filesystem. I haven’t tried using the iOS app myself but if someone can confirm this is the behavior it’d be awesome.
  4. Should the file change Nextcloud will sync it silently in the background but behavior will vary depending on platform:
    • Desktop: File is available through local filesystem. Password applications will notice the change and ask if you want to reload.
    • Android: You go through the Nextcloud app, same as before. Trying to use a password app will result in the app telling you the file doesn’t exist, so you then have to go through the Nextcloud app.
    • iOS: I’m not sure what the behavior is. I’d assume it’s the same as on desktop.

To replicate the default desktop behavior (syncing to local filesystem) you end up having to use other apps like FolderSync. This way files and folders are available just like any other file on the Android device, letting you use automation or customization apps without issues, and saving you from having to configure syncronization settings for each app. Looking at you, Joplin.

My suspicion is Nextcloud developers are doing it this way to increase your awareness of the brand and the application, following the footsteps of Dropbox. For the longest time Dropbox was a rock-solid syncing application that did one thing and it did it really well, but now they’re trying to force changes nobody likes in an effort to make more money.

If this is indeed the case Nextcloud developers are learning all the wrong lessons from Dropbox’ failure to understand what it had. Instead of strenghtening its core they’re throwing a million other things at the wall to see what sticks:

  • Talk: Chat server, basically. There’s already plenty of those already available and I don’t see them supplanting IRC, Discord, or Slack. Ever. Nevermind Zoom or Jitsi.
  • Deck: Project management? There are better apps for that that are easier to configure, manage and secure.
  • Notes: There are a myriad note taking applications out there that work better. I don’t need yet another one.
  • Passwords: Again, there are better alternatives: KeePass, 1Password, LastPass.

Nextcloud has a chance to do that one thing well and do it better than Dropbox ever did— that is, file syncing. I feel they’re consciously choosing to throw it away because they want to get a bit more clout and a bit more money. If they keep at it they’re going to end up like Mozilla.

Organize album order in Flickr

I like Flickr. I have been a paying user for years, since the heady days of Web 2.0. Very photo, so web.

But their documentation fucking sucks. It went down in quality when Yahoo took over, and SmugMug isn’t doing much better. But anyway.

Here’s how to reorganize the order in which albums in the Flickr mobile app show up:

  1. Log in to Flickr on the web
  2. Go to the Albums & Collections section of the Organizr.
  3. At the top of the page make sure Viewing: All Albums is selected.
    Flickr Album Organizr
  4. On the right panel order the albums whichever way you want.

Making this change will have effect in two places:
– The Albums page on the web
Flickr Album page on website

  • The Albums page in the mobile App.
    Flickr Album page on Android mobile app

Neither the Flickr Help Center nor the Help Forum have any posts about this. Now, I’m using the Android app but I assume the iOS-based versions will also follow the ordering set in the Organizr panel.

I wish Flickr enabled a few things:
– Sorting by album metadata (alphabetically, album creation date)
– Sorting by picture metadata (make bigger/smaller albums show up first/last). This would include sorting by last album upload, so albums used the most get shown first.
– Make Collections a first-class citizen on the site. They’ve been relegated as a little used organization tool that no one uses and when it does get used it isn’t showcased.

Flickr has so much to win now that Instagram is being integrated ever more into facebook’s grubby infrastructure.