Finally switching to NextCloud

It's the end of an era. (Cue overly dramatic music.)  I've been using ownCloud as my personal file/caldav/carddav server for years.  This week, I finally decided to switch to NextCloud.  This is my story.

The thing is, I actually remember when NextCloud split from ownCloud.  At the time, I was working on a (now-defunct) product that involved ownCloud.  Basically, my company's core business at the time was data backup, so we had a lot of servers with big disks and were looking for a way to monetize that extra space.  The idea at the time was to do that by integrating a "file sync and share" product into our offerings, and that product was a rebranded ownCloud Enterprise.  Of course, the "file sync and share" space was already pretty crowded, so that product never gained much traction, but it did help me get more into ownCloud and the company even paid to send me to their user conference in Berlin, where I got to meet their team (who, at the time, seemed not-very-impressed with the whole "NextCloud" thing) and see some sites.  So it was actually a great experience, even if the product didn't pan out.

Anyway, despite my affection for ownCloud, my motivation for this change was actually pretty simple and prosaic - I was upgrading my home server (that'll be another post), and I didn't want to downgrade shit.  See, I actually run two ownCloud instances - one on my local network for accessing various media files, and another in my web hosting, for caldav/carddav and files that I want to be highly available.  For my home instance, I was doing a fresh install of the latest Ubuntu MATE on  a brand-new box.  This shouldn't be an issue, except that MATE comes with PHP 8.1, but for some reason, ownCloud only supports PHP 7.4.

Yes, you heard that right - 7.4.  That's the newest version that's officially supported.  The last 7.x release.  The one that's no longer actively supported and has less than six months of security updates left.  That one.  That's what they still expect me to use.

For my previous home box, I believe I'd actually hacked up the source a bit to make it work (since I don't think I depended on anything that didn't work in 8.x), but week I was sick and I just didn't feel like it.  Depending on a version that's about to lose security fixes is crazy anyway.  So I figured I'd "upgrade" to NextCloud, since they actually recommend PHP 8.1.

For my home server, I just did a fresh install, which is fairly straight-forward.  The only annoying part was the Apache configuration, and that was only annoying because I was running NextCloud on a non-standard port and forgot to add a "Listen" directive. 🤦‍♂️ For this instance, there was no real need to do any migration, because the only data I had in there was the (very small) list of users - the rest was just files, which can be trivially re-indexed.

Upgrading the instance on my web hosting was another story.  Since that had my carddav and caldav data, I really did need to migrate that.  I was also already several versions behind on my updates - it was running ownCloud 10.3, whereas 10.8 was current.  However, this turned out to be a blessing in disguise.

You see, NextCloud includes support for migrating from an ownCloud instance.  The thing is, they only support specific migrations.  In my case, the relevant case was that you can migrate from exactly ownCloud 10.5 to NextCloud 20.  Sadly, it took me a couple of tries to realize that the version migration matrix are exact, so there was no path to directly migrate from ownCloud 10.3 to NextCloud.  So I had to use the auto-updater to update ownCloud 10.3 to 10.4, and then manually update ownCloud 10.4 to 10.5 (because the auto-updater wanted to go all the way to 10.8).  Then I could follow the migration process and manually update to NextCloud 20.  From there, I was able to use the NextCloud auto-updater four times to upgrade to the current version.

So the upgrade process was...tedious.  Not really "hard", but definitely tedious.  The directions are pretty clear and simple, it's just a lot of steps to get to a current version of NextCloud.  But at least none of the steps were particularly complicated or prone to error.  As data migrations go, it could be much worse.  And the best part is that it maintained URLs and credentials, so I didn't even have to reconfigure my caldav/carddav clients.

As far as NextCloud itself goes, it seems...pretty much like ownCloud, but nicer.  They've made the UI prettier (both for the web interface and the client app), added a nice dashboard landing page, and made some other cosmetic improvements.  They also seem to have a wider range of installable apps, which is nice.  I haven't had all that long to play with it yet, but so far it seems like a distinct upgrade.

Duet Air is pretty cool

A while back, I posted about a tool called Duet, which allows you to convert an iPad or Android tablet (or even phone) into an external laptop display.  It actually works quite well, and allows you to use either WiFi or USB connections for your tablet monitor.  It also support using the touch screen on the tablet to control your desktop, which is pretty cool.

However, I did eventually discover an issue with it.  It seems that, on my work laptop (but not my personal one), the "energy efficient" setting doesn't properly support all resolutions.  It's a really weird bug, as the other two performance settings ("high power" and "pixel perfect") both work fine, and everything works fine on my personal laptop, but "energy efficient" only works when the resolution is set to maximum on my work laptop.  On the up side, their support people have been very responsive and I can just use a different setting, so it's not a big deal.

Anyway, as part of trying to collect more info on this bug for Duet's testing team, I signed up for a trial of Duet Air to see if I could reproduce the issue through that (spoiler: I could).  Duet Air enables Duet's "remote desktop" feature, which allows you to use not only mobile devices, but other laptops as external displays.

It's actually a pretty slick feature.  You just create an account and sign into all of your devices with it.  Then you can go to the "remote desktop" tab in Duet and choose the device you want to connect to.  The paradigm is that you use the "display" device to select what you connect to.  So, for example, if I want to have four monitors for my work machine, I can open up Duet on my home laptop, select my work laptop, and the home laptop becomes a wireless display.

So far, it's working pretty well.  It's easy to use and set up, performant, and it's a tool I'm already using.  It's also fairly cheap at $25/year.  I think I'll probably continue using it after the trial.

Poor man's home intercom

A few weeks ago, I decided to set up a DIY home intercom system.  This was motivated by the fact that my son has been doing home-school and we set him up a workspace in the basement.  This isn't a problem per se, but my wife usually doesn't go down there with him if he's doing independent work, which means there's often yelling up and down the stairs.  This is, shall we say... somewhat distracting when I'm trying to work.

I did a little searching for intercom systems, thinking I might buy some hardware, but decided that looked like too much work.  We'd have to find a home for it, and then you might not hear it if you were on the other side of the house, unless I put them everywhere, which is an even bigger pain.  Besides, it seemed like there should be an app for that.  And since we pretty much have our phones close to hand most of the time, that would be more convenient than dedicated hardware anyway.

Turns out there is an app for that.  A number of them, actually.  The one I decided to go with was Zello, which is a fairly simple walkie-talkie app.  I went with this one for a few reasons:

  1. The mobile app is free, at least for personal use.  (There's a PC version too, but that's only for paid corporate accounts.)
  2. It's in the Amazon and Google Play app stores.
  3. It's easy to set up.
  4. It's really easy to use.

The setup process for Zello was pretty basic.  For my son, I decided to just put it on an old Kindle Fire that I had laying around.  It can just sit on the desk, plugged in and ready to use whenever we need to talk to him.  My wife and I just put the app on our phones.  From there, you just create an account (which only requires basic information) for each device using the app, and then send a contact request to the other accounts.  Once your request is accepted, that person will appear in your contact list.

Actually talking to other people is even simpler.  You just tap on the person's account from your contact list and then you get a screen with a great big "talk" button in the middle.  When you want to talk to the person, you just press and hold the button and start talking, just like an old-fashioned walkie-talkie.  When you're done, you release the button.  From what I can tell, the connection is not in real-time - it seems like the app records your message and then delivers it, so you are less subject to the vagaries of the network.  But barring networking issues, the delay seems to be pretty short - a few seconds in most cases.

The app also has a few other features, including very basic text messaging.  There's also a "channels" feature, which I haven't used yet.  That's their "group voice chat" feature.  Presumably the idea is to mimic a dedicated frequency for a CB radio.  The primary use-case for the commercial version of Zello seems to be for fleet dispatchers, so the interface seems geared toward a simple replacement for a traditional radio system.

Overall, the app works pretty well.  It was easy to set up and it has definitely saved some frustration in terms of yelling back and forth across the house.  Also, my son seems to like using it.  He even ends is messages with "over and out".  So I count this as a win.

So I finally watched Dune

So a few weeks ago I finally got around to watching Denis Villeneuve's 2021 adaptation of Dune. I'd been putting it off for some time because I was afraid I would be disappointed. Spoiler alert: I was.

See, last summer I read the original Dune novel for the first time. I'm not a big sci-fi buff, but I'd been watching some YouTube videos from Quinn's Ideas, a channel that's largely focused on the Dune franchise, and it sounded like it might be interesting. Turns out I really loved it - enough that I read the next three books in the original series and the other three are on my list. That's saying something, since I haven't read a novel series since I was in high school.  (I don't have any interest in the ones written by Brian Herbert, Frank Herbert's son. From the reviews, they sound like the standard mediocre sci-fi novel fair, which doesn't interest me.) 

The thing I loved about Dune is not the characters or the world building.  Both of those were great, and are worth the read by themselves if you're into sci-fi, but they weren't the main point.  What I liked were the themes that ran throughout the book and how they were illustrated and developed.

The first was the deep political intrigue - the plans within plans within plans.  Everyone in the noble houses was trying to play a life-or-death version of four-dimensional chess, with varying degrees of success, and I found it fascinating to watch this play out.  There wasn't just a single, grand plan that was being carried out - different factions had different, competing plots going, and the book illustrates these conflicts and interactions well.  And they're not morally simplistic, either - even the "good guys" are manipulators and unrepentant killers.  That's down-played a little, since they're mostly directing that against the "bad guys", but it's definitely present.

The second thing I loved about the book was that the story was compelling, but utterly devoid of surprises.  If you haven't read the book, it's devoid of surprises because Frank Herbert deliberately gives away the ending and all the big plot twists.  He does this with quotes at the beginning of each chapter, which are from historical works in the Dune universe written many years after the events of the novel.  So from fairly early on, you already know how the story ends.  And yet the story is constructed in such a way that you still feel like you need to know the "how" and "why" that get you to that ending.  I routinely found myself hoping that the characters would somehow manage to wriggle out of their fate, even though I already knew for certain what it was.

One of the interesting things about this is that it effectively puts the reader in the position of Paul Atreides.  One of the major themes of the novel (and especially the sequel, Dune Messiah) is Paul's struggle with his prescient visions.  He can see his terrible fate coming from far away, and yet he feels unable to prevent it.  The quotes from Princess Irulan's histories and other works presented before each chapter put the reader in this exact position.  We know the end of the story, and we watch the characters move toward that end.  At various points it looks like they might escape, that they could cheat their fate, only to be pulled back onto that path.  It adds to the sense that the end is inevitable, free will and agency be damned.

But back to the movie.  I said at the top that I was disappointed, but just to be clear, this was not a bad movie.  It's just that it didn't do justice to the book.  However, I think that's less because of problems with the movie and more because of the nature of the book.

As you probably noticed from my comments above, much of what I liked about the book was a little more abstract.  It wasn't the action-driven parts of the plot or other things that lend themselves to being displayed on a screen.  They're also things that take a long time to set up.  Even though the movie was two and a half hours long, and it's only part one.  The novel was over 600 pages long, and it wasn't 600 pages of filler, either - even the chapters that didn't have major plot events served as important motivational and establishing material.  That was one of my main worries - when I thought about the book, it didn't seem like there wasn't that much that you could cut without sacrificing some of the story.

And I think that's where the movie fell down.  As I said, the movie has a lot going for it.  And in fairness to Denis Villeneuve, it really is a very faithful adaptation of the novel.  The problem is that the story is just too deep to compress into a movie - even a five hour one.  Of course, it didn't help that the movie spent a lot of time on scenes that consisted mostly of CGI beauty shots of space ships with nothing really happening.  But even if they hadn't done that, it wouldn't have worked.

The problem is that, in the movie, nothing felt earned.  The novel spends a lot of time building up to the big events.  For example, there are numerous scenes with Doctor Yueh that establish his trusted relationship with the Atreides family, establish the "unbreakable conditioning" of the Suk School that put him beyond suspicion, and discuss his inner turmoil that leads to his betrayal of them.  (No, I'm not doing spoiler alerts for a story that's over 50 years old.  Deal with it.)  The movie has none of that.  Yeah, we see a few scenes with the doctor, but we don't really get Lady Jessica confiding in him, we don't hear about the Suk School, and we certainly don't get any of his inner monolog.  He just tells us that he's betraying the Duke because of his wife.  No foreshadowing or anything.

Yes, this movie is faithful to the book in the sense that it shows what actually happens in the plot.  And I do think they did a pretty good job getting the right aesthetic and mood.  But when you remove all the background information and scenes establishing his motivations and position, it just comes across flat.  In fact, I feel like the movie would have been a little confusing if I hadn't already read the novel.  Too much of the action feels unmotivated based just on what's in the film.  To be fair, much of the establishing material is things like Yueh's internal monolog, which isn't very amenable to film adaptation, so it's not really Villeneuve's fault.  But still, the movie suffers for it.

But maybe I'm just being overly critical.  I mean, it was a decent movie that's worth watching.  It's just that the book was so good that it was almost impossible that a movie could really live up to it.  So if you're so inclined, give the movie a watch.  And if you like it, definitely read the book.  It's way better.

Renaissance Periodization Gym-Free Review

It's time for another workout program review!  I've been sort of jumping around and experimenting a little as I get more experienced, so there's not a lot of consistency in what I'm reviewing here.  But that's OK.  If nothing else, it gives others an idea of what the different options out there look like.

Today, we're going to talk about the Gym-Free training template from Renaissance Periodization.  I first learned about RP from their YouTube channel, where I frequently listen to Dr. Mike Israetel explain fitness and muscle building concepts.  In addition to having lots of interesting information, I enjoy his dry sense of humor.

General Structure

The RP gym-free program is, as the name suggests, intended to be done from home.  It's a six-week program that is designed to be do-able with nothing but a pair of dumbbells.  Obviously it's easier if you have a range of weights available (either a set of dumbbells or an adjustable one), but the program includes guidance on what to do if you have limited weight available. I actually did three rounds of this, which I'll talk more about below. 

When you purchase the plan, you select two option: your sex (there's a men's plan and a women's plan) and how many days per week you want to train, between two and six.  I chose the men's plan at four days per week, so that's what I'll be reviewing.  I assume the other options probably have a similar structure, but I have not seen them.  In the 4-day version, there is no split - every workout is total-body.  

As I mentioned, this is a six-week program, but you only get one week of workouts.  You do a different workout each day of the week, and then progress the next week by doing the same workout, but adding one set of each exercise.  After being used to the Athlean-X programs, this put me off a bit at first.  After a while, though, I actually came to like it.  Doing the same workout each week means that you can more easily see your progress in terms of getting stronger and gives you more practice in refining your technique for each exercise.

The exercises themselves were mostly old classics - pushup variations, rows, deadlifts, squats, lateral raises, etc.  Nothing crazy or exotic here.  Again, this was a change from the almost pathological variety in programs like AX, but I actually found that I enjoyed the consistency and focus on the basics.  

The most interesting thing about the workouts is the structure.  There's a little bit of variation between days, but the basic pattern is three exercises for myoreps and then three sets of supersets.   I was not familiar with the concept of myoreps and the program doesn't really use the text-book version of them, but the idea is that you take almost no rest time.  So you take the first set to failure, rest for only 5 - 10 seconds, and then immediately start the next set, repeating until you finish all the tests.  You follow those up with supersets, which involve doing two exercises back-to-back with no rest.  So you'd do exercise 1 to failure and immediately transition to exercise 2 and that would be one set.  Then you rest for 30 seconds and do the next set.

As I mentioned above, progression is done by adding sets.  So the first week, you do two sets of each exercise.  That's 6 total sets of myoreps plus 6 sets of supersets for a total of 18 sets.  The next week you do three of everything.  Then four, then five, then six.  On the sixth week, you get a deload week, so you only do one set of everything.  After completing the first cycle, the recommended progression is to start again, but add another set every week, so starting at 3 and going up to 7.

Program Presentation

In terms of the actual product you get and use, the RP gym-free plan is pretty basic.  (I haven't used their other templates, but I would assume they're similar.)  Basically, you just get a few PDF files and a spreadsheet.  That's it.  I got a one-page "orientation" PDF, a two-page FAQ PDF, an Excel spreadsheet for progress tracking, and a four-page PDF of the actual workouts (one page per day).  The workout PDF did include links to YouTube videos demonstrating each of the exercises, but the videos were very short (just 10 - 20 seconds or so) and didn't include more than a sentence or two of instructions or commentary.

I found this presentation to be...fine.  I mean, it conveys the required information, which is all you really need.  It would have been nice to have some more detail or discussion in some of the demo videos, as there were a few things I had to figure out for myself.  (The extra discussion and background was actually my favorite part about the Athlean-X programs.)  On the up side, the workout PDF looks nice and is laid out well, so it's good as a reference tool.  The general feeling I got from the materials was that this was written by and for people with some weight lifting experience.  It wasn't unfriendly to less experienced lifters, but it didn't do a whole lot of hand-holding.

In terms of tracking the workouts, I tried using the Excel sheet for a few weeks, but ended up just writing them down in a notebook.  I found that using the sheet was a little awkward on my tablet.  I mean, you can do it, but trying to type into Excel sheet cells on a touch screen while you're sweaty and breathing hard isn't great.  I guess I could have printed out the spreadsheets, but that seemed like too much trouble.  I had a spare spiral notebook laying around, so I just hand-wrote my own table with the same information.  I found that easier to do in the moment and easier to look back at, because you can just turn the page rather than having to scroll up and down.

My Experience

I found this to be a very challenging program.  As I mentioned, I did three rounds of this.  The second round, I increased the weight I was using and continued doing the same number of sets.  The third time, I increased the number of tests.

As you might have noticed, but the time you get to week 5 of this program, you're getting a lot of volume.  That's six sets of everything, which comes to 54 sets in all.  When I did the set-bump for my third round, week five was 7 sets of everything for a total of 63 sets.  That's one workout.  Granted, the myorep sets tend to be short (because you're going to failure on the first one and not resting), but that's still a lot of sets.

The good part of this is that it really works - I'm no expert, but from my understanding, volume is one of the big drivers of hypertrophy.  So if you can maintain the level of intensity, adding more sets is likely to lead to more muscle development.  And I feel like I did see some noticeable growth from doing three rounds of this program.  I certainly noticed some increases in strength.

Sadly, there are also some down sides to this approach.  The first is that all this volume can really drag out the workouts.  By week five of my third round, I was closing in on 90 minutes per workout.  And even on the first round, it was around an hour by week 5.  So if you're habitually pressed for time, this might not be a great program for you.

My more serious problem, though, was fatigue.  This program has you doing a lot of sets, and they're all to failure.  I frequently found myself exhausted and sore after workouts and managed to mildly injure myself a couple of times.  It was just a couple of minor pulls or tweaks - not enough to stop me from working out, but enough to make me adapt my form for a couple of exercises.  But still, it underscores that it's important to be mindful of your form, especially as you get more tired.

But it wasn't just getting tired during the workouts.  Although there was a lot of that.  By the end of the program (especially round three), I was getting more out of breath from lifting weights than get from running.  But there was also a lot of carry over of that fatigue from one workout to the next.  This meant that I wasn't able to keep up the same level of intensity though the entire program.  I fact, I noticed that even with the same weight, the number of reps I could do on the first set of an exercise started to fall over the weeks.

Never having done a deload week before, I was a little skeptical when I saw that on the program, but by week five it was pretty clear to me that this was absolutely necessary.  And as a matter of fact, I found that one week was barely sufficient at best.  After the third round, I didn't feel like I'd fully recovered until the second or third week of the next program!

To sum up

Overall, I liked this program.  It was pretty no-frills, but I feel like I learned a lot and made good strength progress.  However, it's very challenging and I had some trouble recovering from the workouts.  Your mileage may vary.  Definitely worth the money, though.