A Word About Obsidian

I’ve been using Obsidian for a while now, and it’s a tool that gets better as I use it.

Normally, that sort of statement is due to a tool’s complexity being an inhibitor at first, and then gradually an asset. There’s no question that this is true for Obsidian.

However, it’s also the case that Obsidian, itself, has gotten markedly better over the time that I’ve been using it.

What prompted this post is the recent change in the way Obsidian handles tables.

Obsidian has always supported tables, although they are not necessarily a standard Markdown feature. The support was very bare-bones, and I used the wonderful Advanced Tables and Table Extended plugins to make them more useful to me.

When a recent update to Obsidian announced that tables support had improved, my first thought was to wonder if I would need my plugins anymore. While that answer is a qualified “yes”, what Obsidian has added is by no means unhelpful.

I also use Okular as my primary PDF viewer. One of the nice features in Okular is the ability to select a table, including specifying where the row and column breaks fall, and then to paste it elsewhere.

In my previous workflow, this always required a lot of post-processing. Things sped up a bit when I discovered that pasting into LibreOffice resulted in a working table that I could then convert to text and paste into Obsidian.

All of that has changed. I can now pasted those tables (some of which are pretty large) directly into obsidian, with Obsidian taking care of the formatting.

So, what are the qualifications on my “yes” to keeping my two Tables plugins?

  1. Advanced Tables has the marvelous ability to start typing a table and then use a hotkey (I use ctrl-enter or ctrl-tab) to tell Obsidian, “Based upon what I typed, make this a table.” It’s possible that I’ll eventually stop using this in favor of the new table support’s version (using the mouse), but for the time being I’m going to keep Advanced Tables.
  2. Table Extended does something I haven’t seen anywhere else, and it’s pretty cool. The only downside is that it’s not visible in the default editor: you have to go to preview mode to see it. Therefore, all of the editing is manual.

    Table Extended allows me to make multi-row and multi-column cells, and especially multi-row headers. This is absolutely essential for tables where columns are grouped under larger headings.

Anyway, I may at some point post more about how I’m using Obsidian, but for now I just suggest you try it. Oh, one more thing I love: I use a plugin called Obsidian Git to automatically commit my changes and then push them to a remote git server. Automatic backup, plus I can now work on multiple machines without corrupting my files (because of git’s commit tracking).

Adventures Dark and Deep

This is not a proper review of this TTFRPG1, but just a silly observation. Two of the books related to this system are the Book of Lost Lore and the Book of Lost Beasts.

I haven’t completely evaluated new vs. recycled content in these books (that will wait for the proper review, mayb), but one thing that niggles at me is the names of these books.

The cover art is great, the internal art is fine, but the Book of Lost Lore already has two Ls in it. It should be the Libram of Lost Lore. Tell me I’m wrong.

So, the Book of Lost Beasts also has two identical initial letters: B. This one was a bit trickier (partly because there are sooo many synonyms for “book”), but I’ve come up with the Book of Bygone Beasts. That lends it a flair of “ye olde and mystick past” as well as being properly alliterative.

Update on the QNAP TS-473A

It’s been almost a year since I wrote about the QNAP NAS system, and I thought it appropriate to talk about some updated experiences.

First, I’m no longer using the DLNA server as the primary way to stream media. It’s not that it didn’t work, but it was clunky, and I knew my wife would never be happy with it.

This led to a lot of experimentation. Over the same period of time, it became clear that her iMac needed a system software update to continue to be useful as an Internet-facing machine, and since Apple does not support that model of iMac with updates, I installed Linux Mint on it.

The Linux install was easy and straightforward, and I installed a couple of things to make it look a little more Mac-like for her, but Kodi continued to give us problems, and even seemed to be more unstable than before. It certainly didn’t work well with the DLNA from the QNAP (I am still making video available from the old TrueNAS system, although it doesn’t get any new rips) and I could see that my wife was getting very frustrated.

I decided to try a different tack. I have a free account with Plex, but in my experience, they only let you stream your local content locally if you also have a paid subscription. I may be misunderstanding that, or maybe it only applies to the clients, or something, but I could never get it to do what I wanted it to do.

I then looked at Emby, and ran into some similar issues, but then I tried Jellyfin, which was a fork of an earlier version of Emby. Not only does it have a native client, it also just works in a web browser.

Back to the QNAP. QNAP ships with software called ContainerStation. This software allows one to install and run docker containers on the NAS. It allows installation from Docker Hub, which opens up the possibilities for a vast array of software running on the NAS.

One of the drawbacks of ContainerStation is that it is difficult to modify a docker configuration after it is created — specifically to change the list of file system folders that are mounted inside the docker environment. However, since it is so easy to spin up a second copy of a container and configure it the way you want, this isn’t as bad a deal as it might otherwise be.

I installed a Jellyfin docker container, and my wife is now happy with the streaming media available on her iMac. It’s easy for me to add content to, to modify metadata, etc., and she benefits from all the changes I make.

Second, there’s also a docker image for calibre-web. I haven’t decided, yet, whether this is my solution, or if I’m going to instead run an image for Calibre itself (running as a headless server). The benefit to running Calibre is that you can easily make virtual libraries based upon metadata, including tags. On calibre-web, you have to add the books one by one to the “shelf” you want them on. On the other hand, I do think the interface looks nicer for calibre-web.

All in all, I’m still quite pleased with QUTS-Hero as an OS on the NAS, and the hardware of the QNAP TS-473A. It is very responsive for what I want to do with it, and in my limited use-case it’s been a good value for the money. That said, the QNAP software for media streaming and control is terrible, and seems designed (like Plex) to try to drive you to their servers and services. No thanks. The reason I do this on-prem is to avoid having your tendrils in my stuff. The fact that ContainerStation makes it relatively painless to do this is a clear win. Also, if I do need a more complete solution of something down the road, I still have the ability to install Ubuntu, etc., to have a more fine-grained software experience.

One Night in Two-Horse

Jared glanced down the narrow alley as they passed its mouth. His companions wouldn’t be able to see it, but Mrs. Wiggums‘ cat was stalking a rat in the weeds by the palisade. Her name wasn’t Wiggums, of course, but she was married to Mr. Wiggums, and that had been his name ever since Jared had observed him on a windy day some years ago.

Silver started to whistle, then cut it off as Jared glanced angrily at him. What was the point of listening for trouble before it found you if your comrades made so much noise? Ogre, to Jared’s right, couldn’t help how loudly he breathed, and didn’t see the point in preparation for a fight, anyway. Ogre‘s attitude was, once the fight started, he finished it.

“That’s my attitude, too, of course”, he thought as he glanced up towards the fingernail-thin sliver of Luna in the sky. “I just don’t see any point in getting more hurt in a fight than need be.” He didn’t put words to it, but he felt again the iron hate for the thin elven bones his parent had bequeathed him. He would never have Ogre‘s bulk, or his ability to be reckless in a fight.

Silver understood. He was fully human, but he was also more agile than strong. Jared could hear Silver‘s thumbnail flick the edge of one of his throwing knives, a restless fidget that didn’t mean anything, but that irritated the edges of Jared’s senses.

Jared hated night patrol. He hated most things, but night patrol brought out everything in him that he wished was different. He could see the heated forms of Flaccus the bum and his latest prostitute through the thin wall of his tent. He could hear the scrape and flutter as the bats and rats went about their nightly errands. He was aware of an entire world that his comrades were entirely unaware of, and he hated the mark of difference that it put on him.

“At least Celene won’t be up to any tricks,” he thought, glancing up at Luna. The big moon caused trouble in her own way, of course, as she pulled on Jared’s blood the way she pulled on the waters of the harbor, but Celene — the small moon led a dance that culminated on Godsday of every festival week, and She made Jared … dance.

Jared wasn’t terribly literate, but to the degree he thought in such terms, Celene was definitely capitalized, even in Her pronouns. She lit fire in his veins that peaked four times a year, and sometimes at the new moon and quarters, depending upon the year and how tired Jared was. On those nights, Jared used whatever excuses he could — once he had even abandoned his patrol-mates, and gotten a beating from Mic — in order to find a quiet, private place to dance. Celene was also one entity to whom Jared didn’t dare assign a nickname.

But, no, Celene was waxing towards the first quarter tonight, and wouldn’t cause him any embarrassment. Jared ducked under the low-hanging sign-board of the Grumpy Troll Tavern — it had been abandoned since the owner had disappeared three years ago, and the sign was going to fall into the street one of these days, but it was a kind of local entertainment when passers-by got smacked in the face by it.

Emerging at the next intersection, the lights of the Temple bloomed across their faces, spoiling Jared’s night vision. It was a Godsday, he realized, as he heard the light plucking of Charity’s harp. “It must be a processional,” he thought, since there was no one singing along to the music. He listened for the chime of the thurifer as it swung on its chain, but Silver nudged him in the ribs and they turned into the next street, the Temple fading into the darkness behind them as a whiff of salt water and rotten fish met their nostrils.

Jared had fallen a step or two behind, “Not because I want to hear more of the music,” he thought, when Ogre cried out and fell heavily on his face in the mud of the street. Pausing another moment for his eyes to adjust to the renewed darkness, Jared could now see the seed bag on the ground. “It must be soaked with mud,” he thought, for it lay in a trickle of water that always led from the well to the harbor, and he and Silver shushed Ogre like mothers as they helped him up off the ground.

“I’d send you back to Mic right now,” Silver was saying, “if it wasn’t so dark that no one will notice that you’re covered in mud. But I’ll do it if you don’t stop that cursing! It’s not professional.”

Jared grimaced in the darkness. While it was true that the merchant they were going to escort was one who cared about appearances, he always had trouble calling what the gang did “professional.” Ogre finally calmed down enough that they thought they could continue, but Jared could hear the big man’s heart racing, and the occasional cracking of his knuckles as he flexed his fists. This would be a bad night for trouble, and he fished in his pouch for a copper to throw across Norebo’s threshold when the passed the shrine a couple of streets down.

The merchant’s house was well lit, and a lamp-boy stood by the door waiting for them. When the trio emerged from the shadows in the middle of the street, the boy rapped sharply on the door, and the merchant emerged rather quickly, as though he had been waiting for them.

“Our apologies, Master Oaklock”, Silver smarmed, bowing to the wealthy man Jared thought of as Whiteface, for the powder he put on his cheeks to hide the blush of his heavy drinking.

Oaklock looked them up and down with a critical eye and sighed, resigning himself to the escort. “Thank you, Matt,” he huffed. “Perhaps Lester can wait outside?” Ogre huffed a little at this, but kept his mouth shut, and Silver continued verbally smoothing the feathers of their client as they continued towards the docks.

Jared inwardly rolled his eyes at the lamp-boy, even though he knew that the obstacle Ogre had tripped over wasn’t the only one between here and the docks, and the others couldn’t see in the dark the way he could. Still, he silently slid away from Silver and Whiteface, letting the darkness hide him, and becoming more aware of the other shapes that were concealed in the darkness.

The sound of the surf against the breakwater was loud in his ears as they came up to the Pentapus, the arcane shellfish splaying its five legs across the weather-beaten sign above the door. There was a big longshoreman leaning in at one of the tavern’s windows, so Jared silently steered Ogre to the other one. That way, he reasoned, he’d be in on any action, but wouldn’t upset Master Whiteface with his muddy clothes. Besides, he didn’t like to think of the exit being barred by that longshoreman.

Silver held the door for the merchant and the lamp-boy trimmed his lamp to wait for them to emerge. After Silver and Whiteface had disappeared inside, Jared counted three and followed them.

At least Silver was along this time, he thought. Mic seemed to have an idea that Jared was persuasive, and kept trying to cast him as the face-man. Silver could talk the scales off a flounder, as the saying went, and then charge it for the privilege. Jared thought of himself as muscle — less blunt and unimaginative than Ogre, but pointed and piercing. His eyes were two of his weapons. He leaned against the wall next to the bar and started counting.

Four longshoremen, that was certain, he thought. One man, a half-orc?, might be a sailor off the ship in the harbor, called the Ghoul. The merchant from the ship, Whiteface’s counterpart, was a fat and greasy man with deep folds on his face and stains all over his rich robes. There was half a goose in pieces on a trencher in front of him, and he scarcely looked up at Whiteface as the local merchant sat down across from him, loudly greeting him and proclaiming how good it was to see him.

Swine?” Jared thought. No, Swine might be a better name for the half-orc, whose greenish snout was very piglike, and whose little eyes glittered as he looked around the room. Jared could see that Swine was the reason that Oil-tub (that name worked) was so nonchalant about the open bag of coins on the table next to him. The extra bulk to his tunic might be the orcish muscles Jared had heard about, but it might be armor. Jared glanced at the board and flipped a two-copper piece on the bar as he ordered a short beer, loosening a dagger beneath his cloak with his other hand as he did so.

Oil-tub wiped his greasy fingers on Swine’s cloak, and Jared was unhappy that he couldn’t read the half-breed’s expression well enough to see if he cared. One of the longshoremen had gotten up and was moving behind Silver, seeming to be looking at the dart-board on the wall behind him. The one at the window leaned out and glanced towards where Ogre slouched, impassively, at the other window. Jared ordered another beer, commenting, “For my friend,” with a gesture to Silver, when the barman looked quizzically at him. He sipped from the first beer, glad that they served in bottles down here at the docks, and feeling the heft of the glass, the balance of the bottle as he drank it down. When the balance changed, he swapped for the other bottle, getting another look from the barman.

Whiteface was starting to lose his composure. There were sheaves of parchment on the table now, and he was reading from one of them, his mouth moving as he followed the letters. Oil-tub was watching him more carefully now, although he affected nonchalance, and Jared saw that his right hand disappeared into the folds of his robe time and again. Jared exhaled and took a sip of beer every time the hand emerged empty, but he could tell things were not going well.

Silver, meanwhile, had shifted his position so that the longshoreman was no longer right behind him, and he was making facial expressions and whispering to Swine both to distract him, and to size him up. The big Half-orc didn’t react in any way, and Jared found himself wondering if the creature was just too stupid to follow a conversation. Although his head was on a swivel, and the little pig-eyes kept taking in the whole of the room, he didn’t move in any other way, and Jared had not yet seen a weapon on him.

Dismayed, Jared realized that he had become distracted. Without his noticing, the greasy merchant now held a dagger just below the table, and he had begun to lean forward. Silver was glancing back at the longshoreman behind him and Ogre seemed disengaged — perhaps he was thinking of coming in for a beer, despite orders.

Suddenly, Oil-tub lashed out with his left hand, grabbing Whiteface by the wrist of the hand that held the parchment. As the dagger began coming back and prepared to rise above the table, Jared threw the bottle of beer he had been nursing. It stung the fat merchant on the elbow and shattered, the pain causing the man to drop the knife into the folds of his robe. However, Jared’s movement had not gone unnoticed.

Swine swung a heavy club — a thick stick with a band of iron around the end — and almost caught Silver in the face as he glanced back from the longshoreman. Silver dived forward and grabbed Whiteface, pulling him under the table while he called for Lester to help.

Things moved very quickly after that. Someone threw a knife at Jared that caught him in the left shoulder. The Half-orc now had an axe in one of his hands, and Silver’s back was unprotected, sticking out from beneath the table. Jared threw his dagger, intending to hit the Half-orc in the shoulder joint, gasping as the half-man lurched into the path of the blade and took it in the throat.

The longshoreman at the window was in the tavern now, having been thrown head-first through the window by Ogre, who entered the room by the door laughing wildly. Silver was on his back, kicking at a couple of longshoremen who were trying to pull him up and away by his legs, while Whiteface hid wretchedly under the table.

Jared threw the other beer bottle, and grabbed a wine bottle before the barman could put it out of reach behind the bar. Smashing the end off the bottle to make a satisfyingly jagged edge, he leapt forward from the bar to the side of the obese merchant.

“Call off the dogs,” he snarled, nicking the man slightly with the sharp glass. While he held the bottle mostly steady, he found the fallen knife in the man’s robes and retrieved it. He didn’t hear Oil-tub give the stand-down order.

He didn’t see Ogre fly into two of the longshoremen, bearing them bodily to the ground. He didn’t see Silver get to his feet, and then punch one of the longshoremen who renewed the attack when they saw that Ogre hadn’t stopped.

He seemed to hear a heartbeat, though it was not with his ears. The little pig-eyes of the half-breed locked onto his, and Swine reached up, pulled on Jared’s dagger, and died. Jared didn’t know what it was, but he seemed to feel it as the Half-orc’s spirit rushed out of his body and into the darkness.

He came to himself when one of the longshoremen tackled him, and he wrestled himself free, smashing the man’s face into the floor. Silver had somehow gotten Oaklock to the door, so Jared retrieved his dagger from the fallen Half-orc and picked up the latter’s club to help Ogre pacify the remaining longshoremen. He took a moment to knock the greasy merchant unconscious during the melee, aware that he might have things more dangerous than daggers hidden in his robes.

When the last of the longshoremen was moaning on the floor and Ogre looked around to find no more foes, he jerked his head towards the door and the two of them followed Silver and Whiteface into the darkness, Jared stopping only long enough to pick up the bag of coins from the table on the way.

As he glanced through the window as they began their way back, he saw the stiff, ungainly corpse of the Half-orc. What affinity had passed between them as that man died, he wondered. Was it simply that they were alike, the ugly and the handsome, both cast-offs of monsters who had left them to find their own way in the world of humans?

QNAP TS-473A First Impressions

Christmas came early at the Wood household, as we decided to make good on years of talk about separating the gift-giving from the celebration of the Savior’s birth. Picking a day when we would all be available, and so on, we settled on December 18.

One of the new toys is the QNAP NAS system referenced in the post title.

The interface could be a little more explanatory, and I was glad that I had read up to know that I would need to select the new QuTS hero OS right away if I wanted to use it.

OS installation took a while, but I just left it running and went to do other things, and before long it was all there.

One reason I wanted to use the new QuTS hero 5 OS is that it uses ZFS1 by default. ZFS is said to be the OS for preventing bit rot, or the gradual degradation of data from random changes to the storage medium, so I’ve been using it on my homebuilt NAS (that currently runs TrueNAS).

QNAP has a pretty good reputation for their software (and are popular enough that they are the targets of specially-designed malware), but I was still a little nervous about migration. Supposedly, you can also wipe the box and put another OS on it (like TrueNAS), so I could theoretically end up with a similar setup to what I have, but on more NAS-friendly hardware. Still, I have been struggling with the media streaming element of my home server setup.

We’ve traditionally been using file shares and Kodi to stream our media around the house, but it didn’t work quite as well as we’d like. For one thing, running Kodi on each machine that wanted to consume media meant that we had a separate library on each machine. Some of our media is a little quixotic, and the “matches” found in the movie database were usually not very family-friendly. Trying to get the info updated on all client machines was frustrating.

So far, the new QNAP looks promising as a way to get around some of these difficulties. For one thing, the DLNA2 implementation “just works”. (My client is VLC, which I had generally avoided as a media player in the past, but the interface has gotten a lot better.) This should mean that I can edit the metadata for my music, movies, and TV shows, and the clients (including Kodi) will pull that information when they connect to the DLNA server.

What about the hardware?

Drive installation was really painless. It’s a “nearly” tool-free process that is tool-free if you want it to be. Basically, the device uses drive sleds (provided) that have the old clip-style drive rails. They attach to the outside of the sled and poke through the holes into the mounting screw holes on the drive. For better retention, you can (optionally) use the provided3 screws to secure the drive to the sled using the screw holes on the underside of the drive.

It’s not as simple and straightforward as the sled-free system on the Synology JBOD4 system I have, but I really have no complaints.

There are USB ports on the front of the device, and you can program an action to take place when the button on the front is pressed. (Basically, do you want to automatically import media to your server — like connecting your camera, for instance — or back up to NAS storage, etc.)

There are also USB ports on the back, so you can attach more storage (like the Synology JBOD device I have) if the four drive bays (in my model) aren’t enough for you, and you don’t want to spring for a whole new NAS system.

Other details

There are a lot of options for connecting the QNAP to other storage services, either to use cloud services as a backup to the QNAP, or to use the QNAP as a local cache of the cloud services. You can link it together with other NAS devices to back up off-site, so it really makes it easy to make backups, rather than just copies.

I mentioned ZFS briefly when I started this post — one of the other features of ZFS is that it can very easily make RAID systems of varying flexibility. It’s relatively easy to add and remove drives from the RAID, and as long as you’re patient, and your hardware isn’t too slow, you shouldn’t lose data. I have four 8TB drives that will end up living in this QNAP, and that should provide a certain amount of redundancy to the data storage in this NAS.

Final observation, before I go back to playing with this thing: QuTS provides an app called Ubuntu Linux Station, that allows me to install an Ubuntu 20.04 or 18.04 VM on the NAS. While this is terrible overkill for most things that I want a NAS to do, it does allow me a simple way to set up a Calibre Content Server on the network. I’ve been running one from my desktop, but not only will I feel better with that stuff stored away from the rest of my stuff (okay, backed up, since I’ll be keeping a copy of everything on my computer, too), but it will make it easier for me to convince my family to look to the network for ebooks.

I’m sure as time goes by I will find out other things that I want this server to do, and so far I’m really impressed by the flexibility of the QuTS to let me do them.

No Longer a Slave of the Horned Society

Dew dripped heavily from the twigs of the surrounding trees as the warlocks chanted. The clerics burned bits of incense that stank like the fourth circle as they wove the spell together. It was a ceremony, and would take nearly an hour for the first candidate to be ready.

As the ritual neared the first milestone, the temperature in the glade dropped, and as the hierarch raised the ornate dagger and plunged it into the chest of the candidate, the dripping stopped altogether, the dewdrops frozen with the blast of cold that emanated from the weathered stone slab.

Bloodsip shivered inside his woolen robes, and focused on the chant. He wasn’t sure it was required — certainly he felt no power flowing through him. At least, it felt nothing like the power he channeled when he unleashed an eldritch blast, but he was not going to be responsible for the failure of this ritual.

Snerdbane Edgeslice opened his eyes, vaguely aware that the blood dripping from the dagger above his face was his own. An aching pain in his chest made him think he knew where he had been stabbed, and he tried to lash out at the masked figure above him. However, it wasn’t the ropes that bound him to the stone slab that prevented him. Other chains, resting on his soul rather than his limbs, bound him.

As the ropes fell free from his body, he rose from the slab and knelt before the Dread Hierarch. He hated the man with every fiber of his being, but he could only obey. The hierarch extended a sword to him, the surface of which writhed with runes that glowed in Snerdbane’s vision. He reached out and took the sword, and his body was wracked with pains as the blade became his soul. Or possessed his soul. Or — he wasn’t sure exactly what had happened. However, strength now flowed into his body from the blade, and he stood, aware that the Hierarch had granted him permission.

Hate and rage flowed through his mind, and the smug look on the face of a nearby hobgoblin drove him into a frenzy. Hardly knowing what he was doing — had he been a fighter, once? — he clove the humanoid practically in two, swinging the runeblade with a heavy two-handed arc that took the creature completely by surprise.

A sharp cry of surprise — dismay? — broke from one of the surrounding, cloaked figures. Snerdbane smiled with what was more like a sneer and turned to the Dread Hierarch.

“You have done well,” that man said, his voice echoing hollowly in the mask he wore. “You have survived the transformation, and you have killed. Did you feel strength flow into you from the hobgoblin?”

Snerdbane thought a moment, then nodded. Something had flowed up the blade from the creature when he struck it. Glancing down, he saw that the wound over his sternum had closed.

“Good. You have become a Death Knight, and death is your master. When you serve him well, he will reward you with renewed health and vigor. Take the armor that the guard was wearing. It is yours, now, and you will need it shortly.”

Puzzled, the new Death Knight pulled the armor off of the hobgoblin. It fit him passably well, but was damaged from the blow he had given it. No one told me that this would be the way for me to get equipment he grumbled inwardly.

He had hardly finished fastening the final working straps of the leather armor when there was a cry from the stone behind him. Turning, he saw the Hierarch’s knife rising from the chest of another man.

This man, too, rose from the stone and knelt to the Hierarch, but when he took the sword from the hiearch’s hands, he cried out aloud and the blade shattered, leaving him nothing but a shard — hardly a dagger or short sword.

“Gutterspawn!” the Hierarch shouted in fury and disdain. “Worthless wretch! You are unable to hold the gift you have been given!” He turned to Snerdbane, but the Death Knight needed no order. He strode forward quickly and slashed at the gutterspawn, surprised when the wretch blocked with his feeble blade.

The fight was soon over, even with this unexpected resistance. With the creature’s demise, Snerdbane felt even stronger than before, and he seethed when the Hierarch told him to stand aside while others were processed. Some of the clerics were beginning to sound hoarse from chanting so long, although most of them were accustomed to this sort of duty.

After a half-dozen men had been transformed into either Death Knights or gutterspawn, and the latter had been dispatched by the former, one of the newer Death Knights noticed that Snerdbane was wearing armor, and immediately attacked him.

The first Knight was surprised at this action, and suffered a wound before bringing his own runeblade into play, parrying and riposting, slashing at his enemy’s unprotected flesh. It wasn’t long before he had defeated the newcomer, but although he felt more powerful from this victory, he noticed that the wound had not been healed.

Snerdbane approached a cleric that was observing rather than participating in the ritual and demanded that the priest explain what was happening.

“Only the living are able to heal you when you strike them with your runeblade,” the priest said with a cruel smile. Seeming to divine Snerdbane’s next thought, he said, “You are forbidden to harm one of our order.” Indeed, the invisible bonds on Snerdbane’s soul? prevented him from as much as slapping the man.

Furious, he stormed away from the ceremony until he found a small group of humanoids clustered around a smoky fire. He struck one of them down, and was immediately healed of the wound he had received from the other Death Knight. However, he had been careless again, and the armor of this victim was in even worse shape than that he was wearing.

Undeterred, he set upon the entire group, who had attacked him with the death of their comrade, and when he had slain all of them, he was able to piece together a more complete set of armor.

He was puzzled by only one thing. Although the blows he rained on the hobgoblins seemed to heal him, he didn’t feel the increased strength he had felt from killing gutterspawn or Death Knights.

Hardly had fitted the new armor to his body than he was set upon by another Death Knight. This one moved more swiftly than the last, and Snerdbane was soon fighting desperately, growing weary as he fended off the furious attacks of the other.

Finally, the attacker paused and said, “Bow before Delphus Shadowblade, and you shall live.” Snerdbane bowed reluctantly, and Shadowblade inhaled sharply, as though a surge of pleasure had moved him.

Turning from Snerdbane, Shadowblade searched for a new adversary, and the former gripped his sword, ready to run the previous victor through from behind. However, he soon realized that he was completely incapable of striking the one to whom he had bowed. Instead, he followed the victor and joined him in attacking some of the other wandering Death Knights, some of whom had, themselves, joined into small groups.

Luna was still high when Delphus Shadowblade took his place on one of the standing stones to the right of the Dread Hierarch. He had been given a suit of armor after defeating many of the other Knights, and was now called Master of Sorrow. Gutterborn and the lesser Death Knights still fought in the shadows beyond the fire pots, and there were no humanoids left within the circle that was permitted to the undead warriors. Generally, those Death Knights who had made the transition first were able to defeat the newer recruits, having collected gear from the unfortunate humanoid soldiers and guards who had surrounded the ritual circle. Others, like the unfortunate Snerdbane, were eventually cut down by warriors with finer mettle, and some of these waited with Shadowblade for the last of the victims to be processed.

In between the fighters and knights who were slaughtered to change them into Death Knights (or gutterborn, for the less fortunate) the clerics slaughtered sacrifices to the dread powers that were granting these transformations. As the Hierarch oversaw the last of these sacrifices — a young girl taken from the lands of the Bandit Kings — the sounds of combat from beyond the grove changed in tone.

While there had been a more-or-less constant clash of arms in the surrounding darkness, there were now the sound of thundering hooves and the shouts of living voices. Light bloomed in the darkness here and there as light spells were cast into the melee, and other lights cast black shadows from tree or standing stone as they emanated from unsheathed blade or uncovered shield.

Before Shadowblade could completely reckon what was happening, a great warhorse charged into the very circle, a tiny elf-maiden clad in shining armor on its back. In her right hand was a heavy lance and on her left arm a shield bearing the emblem of a rose encircled by thorns. She swept past the lesser Death Knights, ignoring even Shadowblade, to charge right up to the Dread Hierarch and strike him with her lance.

The blow would have killed a normal man, but the Dread Hierarch of the Horned Society was no normal man. Possessed of arcane powers and filled with the strength of the Hells, he flew a few feet through the air and landed on his feet.

His disciples immediately sprang into action to defend their master, while Shanks ran up behind the horse to attack the knight from the ground. However, before he could even swing his sword, several other horses charged in to the glade.

Each warhorse carried a warrior, and each warrior was hedged about with a power that made the Master of Sorrow tremble. A good-looking man in impeccable armor charged at Shadowblade, but the Master avoided the wicked-looking lance with ease. In return, he swung his massive hand-and-a-half sword over his head and brought it down upon the Cavalier. Although the runeblade guided his hand in the most effective blow possible, the opposing horseman seemed relatively unfazed by the attack.

Arrius Boldblade slid from his steed, simultaneously drawing his gleaming sword from its sheath as he did so. If the brooding Knight he faced wanted swordplay, he was more than up to the challenge.

To his left, Alianna Glimmersky leaped from her steed’s back as well, calling to the beast to retreat for the time-being. There was an aura of fear around these foes that made the horse restive, and she needed to concentrate on stopping this ritual.

Behind the two of them, Theobaldus the Observant, Guderwinda Everbright, and Clatriel Redmain repeated the maneuver, one they had rehearsed in training until it was as straightforward as breathing.

Calling forth a power he had never used, the Master of Sorrow mentally commanded the foes to despair. Although the elf and another of the warriors blanched for a moment, they pushed their assault on the Death Knights in the glade.

One of the other Knights unleashed a freezing blast of cold. While one of his comrades was inconvenienced by this, the Cavaliers were severely injured, the frost only slowly melting from the polished surfaces of their armor.

Shadowblade considered the cocky horseman before him. The man’s gleaming armor was clearly bound with arcane power that was proof against all but the mightiest swordsman, but he would see if it was protected against elemental forces. Like the lesser Knight had done, Shadowblade focused his power into a blast of cold that staggered his foe, though the man showed great courage on his face.

Across the glade two of the other Death Knights copied this action, blasting the cavaliers just as their joints were beginning to unfreeze from the earlier blast. Another of the Death Knights — Shadowblade couldn’t remember his name — was caught in these cones of cold as well, but if he wasn’t strong enough to shrug the bitter frost off, he wasn’t fit for the title.

The Dread Hierophant called upon his minions to deal with the intruders and vanished, while one of the Warlocks flew up into the sky, pointing his finger at the Elven Paladin to no apparent effect. The Death Knight behind the elf had been swinging his sword at her to no effect, and having lost her primary target, she turned her attention on him. With two mighty blows, she cut viciously through the Knight’s armor, her sword blazing redly as though enjoying the carnage.

The three interlopers across the glade were also hacking away at their foes, seemingly undeterred by the ferocious cold that had sapped them again and again. While Shadowblade glanced around to see what had become of the other Warlock, the one in the air cast a fireball at the elf.

At another time, the Master of Sorrow would have been entertained and impressed at the way the flames broke around the elf without harming her, bringing the Death Knight she faced to his knees as they scorched his cold undead flesh. Now, he was only angry, and unleashed a second blast of cold at the infuriating Cavalier who dared face him. The man staggered and blanched, and the Death Knight took comfort in knowing that his bravery now was mostly bravado. Still, the human warrior’s sword was beginning to take its toll of the Master’s health, and he seemed to be protected from the runeblade’s life-leaching ability.

A lightning bolt tore through the glade, removing the elf’s opponent from the fight, but Shadowblade couldn’t tell if the Paladin had been badly hurt or not. His senses told him not only that she was alive, but that she bore life within her, and he burned with a hate, and a desire to end her.

Keeping his final blast of cold for the elf, he swung at the Cavalier again, but the man deftly caught the blade on his shield and countered with a wounding thrust below Shadowblade’s guard.

Two of the other Death Knights were down, now, though he thought he had seen one of the female Paladins — of Pholtus, by the look of her — go down to a blast of cold. He looked to his right and saw the Elf approaching at the top of her speed, the glowing red sword held in a way that made his insides ache with anticipation.

While planes of shifting colored lights suddenly appeared throughout the glade — no one ever learned what had caused them or what purpose they were intended to serve — the Master of Sorrow focused his rage on the elf and called out, “Die!”

To his surprise, although the frost blasted her fiercely, instead of attacking him, she stretched out her hand to the Cavalier he had been fighting and said, “Courage, my friend,” the touch seeming to revive him.

As the last two of the lesser Death Knights went down before the Paladins, Alianna Glimmersky tested her blade against the skill and armor of the Master of Sorrows. Soon, Theobaldus and Clatriel had joined her, and with the combined attacks of the group, the Master soon lay lifeless, the mockery of undeath ended.

The flying Warlock had headed off around this time, and the other Warlock, on foot, was beginning to run away. Whistling for her steed, Alianna charged her followers to take care of Guderwinda’s body, then swung into the saddle to pursue the fleeing warlock. It wasn’t long before she returned, his senseless, bound body draped across the rear of her horse.

Arrius and the others were guarding a small group of “prisoners”. Alianna’s infravision told her that they were not alive, but undead of the sort she had lately been fighting. Clatriel told her that they had been herded this way by the rest of the force, and that they did not have the same spirit as the Death Knights they had been fighting.

“They don’t have any armor, to speak of, and no swords — look.” She pointed with her glowing longsword at the dagger-like shard one of the fiends was clutching to his chest.

Alianna’s look suddenly changed, as though she were listening to someone else speak, who was not present for the rest of the party, and she smiled.

Spurring forward, she leveled Fedifensor at one of the groveling prisoners, noting the way he avoided looking at the glowing red blade.

“You, there,” she said, accepting the sidelong glance he gave her. “If you wish to be freed of this corruption, and to be avenged on the Horned Society, seek out Pholtus.”

Several of the other gutterspawn murmured that they would also seek out Pholtus, but Alianna stopped a few of them. “No,” she said, commandingly, “you four are to seek out Pelor.” They crept away, seemingly accepting this word.

When the Paladin was about to turn her horse away from the wretches, one of them stood boldly up. Hate filled his face, but there was something else there, too. Perhaps a thirst for vengeance? He was broader than the others, and didn’t seem to fit with them in a number of ways.

“Where would you have me go, mistress?” he asked.

Something like a smile broke on the elf’s face as she saw his boldness. He didn’t cower like the others, although he cradled the broken scrap of a sword against his chest like the rest.

“Heironeous,” she said, emotion touching her voice. With a nod, the gutterspawn turned and strode through the midst of his fellows as though he had a mind to find Heironeous that very night.

Alianna turned her steed and saw that her companions were looking at her with amazement. “Come,” she said, “this one,” she nodded to the shape across her horse’s rump, “has information that the mages can reach, and Goodie needs a cleric to help her rejoin the fight.

“I also need to ask her forgiveness for leading her to a death. The next time we face these monsters, we must be prepared for their cold attacks.”

“What of the ones you released?” asked Theobaldus.

“I don’t know,” she laughed. “My God has a use for them, but what it is is beyond me. Perhaps my husband will be able to tell me when we see him again. In any case, I almost wish I could be there when the undead present themselves at a temple of Pholtus.” She laughed again at the thought, and taking the reins of Guderwinda’s horse in her left hand, she started the way back to the rest of the force, where she hoped to find a cleric who could return her herald to life. Failing that, they would need to return to the fortress before Goodie would be able to ride the horse again, instead of being carried like a sack.

Password Management

A necessity in the digital age

A while back, password management was one of those things that “I suppose some people do that”. Most people had at most one or two online accounts, and it was a whole lot harder to get around the Internet and find useful things to compromise or steal.

Things have changed. My currently used password manager tracks 1,692 items, and while there are some duplicates and items that aren’t passwords, not to mention passwords for accounts that I no longer have, that’s way too many passwords for me to manage on my own.

What is a Password Manager?

A Password Manager is a computer program (and possibly a service) that helps a computer user to manage the passwords that are needed for a modern digital life. This is necessary because of a couple of very important points.

  1. Passwords should be secure. They should be long, complicated, and difficult for people to guess. In general, they should not contain identifying information about you (birthdate, anniversary, pet’s name, etc.) but should be as random as possible.
  2. You should use a different password for each service you use.

Let’s look at each of these points in turn, and then we’ll talk about how a password manager can help with them.

Passwords Should Be Secure

In the before time, computers were slow and had extremely limited memory. (This is technically true about almost all times, compared to the times that come after, although I believe Moore’s law has failed.) One of the things that this meant was that it was difficult for a computer to crack a password.

If you’ve played the game Portal 2, you’ll possibly remember the scene where Wheatley tries to guess the password to keep GLaDOS from reactivating. He starts by guessing six As, and then goes to five As followed by C. He’s not very fast, and if the password is longer than 6 characters, he’ll never get it.

Today’s computers are able to go through all of the possible combinations in a six character password (including lower case letters and numbers and symbols) in a very short amount of time.

With the larger amounts of memory (and storage) programs designed to pilfer passwords can also use a dictionary attack, using words from a word list to try to guess the password more quickly. Some of these word lists include passwords collected from online server breaches.

In short, to make it more difficult for a program to guess your password, you need to have a password that’s difficult to guess. There are two major techniques used for this.

The first technique is to make a jumble of characters. This password manager believes that this 20 character code containing UPPER and lower case letters, digits (numbers), and symbols is adequately random to be excellent. It is allowing ambiguous characters (i.e. both 0 and O — that’s a zero and a capital O). This type of password is quite secure, but very difficult to remember.

The second technique uses real words, but combines them in ways that are not normal (or grammatically sensical). Although this password is easier to remember, it is also rated excellent because it is quite long, and random enough that a program will have a hard time cracking it. Note that upper and lower case letters are used, as well as digits, to make it more secure. To a computer, E and e are completely different, and not necessarily related.

So, with this kind of password, you can have a relatively secure way to access data that is yours, and that shouldn’t be shared with other people. This includes your email, your bank account, your computer, etc. However, memorizing even one of these passwords is difficult, and I said you should have a different password for every account you use?

Passwords Should Be Unique

Every once in a while, you’ll hear that service XYZ.com got hacked, and that the hackers got away with personal information of the users of that service. If that personal information included passwords, the hackers (or those they sell the information to) will certainly try to use those passwords in other places, especially in combination with the username connected to that account.

Since usernames are often just email addresses, and since most people don’t have lots and lots of email addresses, this basically means that if you reuse your password, you’ll be reusing both password and username.

Logins are like locks that usually require two keys: your username and your password. Since most services ask for your email address, and allow you to login using that address, hackers now only need to have one of the keys, the password, to try to access your information. If your password is always the same, too, they will have both keys to every account you use.

Why Does It Matter?

I’ve heard a lot of people say, “Well, I don’t do anything important on my computer, and I don’t have very much money in my bank account, and so I won’t lose much if someone is able to break in to my account. Besides, why would they want to?”

This ignores several very real harms:

  1. Once a hacker has access to a server using a legitimate account, he can try to use that account to gain access to other parts of the server. By not using his own account, he’s less likely to be caught on failed attempts.
  2. If a hacker empties your bank account (even if there’s not much money in it) you’ll likely be faced with overdraft charges that can be expensive to clean up.
  3. Sometimes, the hacker just wants access to your computer. He can use it to attack other computers around the world without leaving a trail back to him. This slows your computer down (and if he uses your computer for bitcoin mining, will cost you in electricity and failed computer parts) and makes you a participant in, for example, an attack on the Bank of Scotland.
  4. Some people just want to see the world burn. They may not care about your 1,700 pictures of your dog, but they get pleasure from the thought that by deleting or defacing them, they have exercised power over you.
  5. If you use any kind of account to work with someone else’s data, that person can be harmed through the access to your account. Malicious reviews can be posted under your name, or false information can be inserted into online accounts.

In short, it’s more important than you may realize.

It Sounds Complicated

To be fair, it is complicated, but Password Managers make it somewhat less complicated.

Most password managers share two characteristics: they let you generate secure passwords (as shown in the pictures above) and they store username-password pairs for later use. Most of them also use a single password to unlock this store of information, and many of them allow you to synchronize your passwords between your phone and your computer, for example.

How Does it Work, Then?

  1. You go to a website that you use for some purpose (maybe it’s your email).
  2. If the password manager is locked, you will need to type your one password that unlocks it. Many web browsers provide basic password management, and most of them don’t lock the manager when you’re not using it.
  3. The password manager will either let you copy and paste the username and password into the webpage, or will do it for you.

That’s it!

The nice thing is that, for most password managers, the one password never leaves your computer — rather it’s used to unlock the password database/password store.

Most of them will also allow you to generate a secure password, will update the stored password when you change it, etc.

Extra features include checking that the website is the same as the one where you previously used the password. https://microsoft.com and https://microsoft-us.com are not the same place, and one of them might be owned by a hacker trying to get your password.

Some password managers let you store your credit card information securely so it’s available, but not stored in some stranger’s database. Identification information (driver’s license, passport) and software keys can also be stored, and some managers provide special formats for these.

Warnings!

Not all password managers are created equal. In my opinion, there are several things to watch out for when selecting a password manager:

  1. Where are the passwords stored?
    • If the passwords are stored only on your computer, that’s more secure than if they’re stored on someone’s server. The server is not only a bigger target (millions of users’ passwords) but also easier for a hacker to get to.
  2. How are the passwords stored?
    • If they are encrypted, that’s better protection. However, if they’re just in a text file, that’s not very secure, even if it’s on your own hard drive.
  3. Where is the decryption done?
    • If the password is decrypted at a remote server, so just the password is sent back to you, that’s not very secure. However, if the service can’t decrypt your password file, that’s more secure. (Sometimes this is called zero knowledge. The company can’t share your information because they don’t know it. It also means you’ll lose all your passwords if you forget your one password to decrypt them all.
  4. What does it cost?
    • Password managers all cost something. Sometimes it’s just the inconvenience of using one, instead of using the same username and password everywhere on the Internet. However,
      1. Some password managers have a price to buy. This seems to be less common now because
      2. Some password managers have a monthly fee. This means that not only do you have an on-going expense, you may lose access to your passwords if your subscription lapses.
      3. Some password managers have a special format that can’t be exported to a different manager easily. If you decide to change to a different password manager, you could have some problems. (I ran into this when I stopped using the Mac — my password manager was 1Password, which isn’t available off the Mac, and several of the password managers I tried couldn’t make sense of the 1Password export format.)
      4. Some password managers give the serving company access to the password store. This means that if they are hacked, hackers could gain access to all of your passwords.
      5. Some password managers are just plain hard to use.
  5. Does it synchronize with multiple devices?
    • This one bit me with a couple of solutions. If Dropbox (for example) is the only option for synchronizing, a free account will limit you to five devices. Sometimes, the manager itself will require a license for every x devices it’s installed on. It’s best to find that out before you have gotten committed to using a particular password manager.

This is a lot of information to process. I will plan to write a second post comparing some password managers.

Gaming Remotely: challenges

I’ve been playing a D&D game with my kids for the past few years. We are using MapTool for our Virtual Table Top because it’s free, and it’s also pretty impressive. A lot of the number crunching involved in regular Old School D&D is done by the computer, which is what it’s for. (Note, although I’ll generally say D&D, we’re actually playing 1st Edition Advanced D&D. My time with the Basic Set was very short, and I lost interest during 2nd Edition.)

Things have gone pretty well, and we have two players who live off site who join us through the magic of technology. The biggest problem has been our Internet connection. We live in a rural area, and the only Internet options for us have been traditional satellite Internet (bad latency and even worse customer service, coupled with a pricing structure that would make a robber baron blush) and AT&T DSL.

AT&T is one of those companies that has tried its level best to alienate me for years. I pulled the family off of their cell phone service last year, and we’re just waiting for an opportunity to ditch the DSL line as well. The service is poor to start with, but the signal drops several times per day, and that’s just unacceptable.

When the service drops, we lose connection on our voice chat (using Discord) and our remote players also lose their connection to MapTool, and have to be booted and reconnect (once the connection is back up).

We finally have a chance at something better. I’m testing a Starlink setup. It’s not technically available in our area (we’re on the wait list), but I managed to get a chance, and I’ve been running it for just under a week.

The first thing to love is that it’s so much faster than DSL most of the time. The latency isn’t too much worse, and it’s also been quite stable. There’s just one little problem!

Starlink uses the same setup as cell phones for assigning IP addresses. That means, among other things, that the IP address can change, sometimes frequently. It also means that they don’t support (and probably will never support) port forwarding or NAT.

MapTool runs a local server, and unless your machine is directly connected to the Internet, you need that port forwarded to your players for them to connect to the server. (Okay, technically, you need the port forwarded from somewhere else to the server, but let’s not get too OCD about this.)

Last week was a blind role playing session, because we discovered the problem too late. I almost always forget about the port forwarding because it works transparently most of the time, and every time I’ve changed router setups, I generally have a glitch the first game day because I’ve forgotten to redo the port forwards. With most routers, it’s a fairly trivial thing to do.

This time, I’ve spent most of the week working on this issue, and I finally fixed it this morning. I’ll start with what didn’t work.

  1. localtunnel
    • This is an npm installation that should work easily. In fact, it’s very similar to the solution that eventually did work.
    • Unfortunately, my remote machine (tested using a computer connected via my phone’s hotspot) couldn’t connect to the server.
    • I have a need to use/hate relationship with npm. For whatever reason, I seem to have to continually reinstall applications that use it, including npm. All in all, I’m probably just as happy it didn’t work.
  2. Remote.it
    • Oh, how I wanted to like this solution. It has a nice configuration app, it claims to do everything I need, and it even mentions working with Starlink.
    • Nope. Also, nuh uh. Documentation was sparse, and whether I’m just a bonehead or for some other reason, it didn’t work.
    • If someone can tell me how to make it work, I’d be happy to give it another chance.
  3. Tailscale
    • This is a great concept — zero config VPN. Unfortunately, it achieves this by using Single Sign On from Google or MS, or one of those other evil megacorporations. Nope, I spend a fair amount of my life avoiding the monitoring of those beasts, I don’t want to invite them to our games. I didn’t even look far enough to see what costs, if any, there were.
  4. ZeroTier
    • This one is actually pretty amazing. I might go back to it if I get the proper feedback from my group.
    • ZeroTier is an easy-to-configure VPN setup that supports 25 nodes using their free plan.
    • Unfortunately, it requires installation of client software on every connected machine. For a different application, that would be completely worth it. For gaming, where I’ve already asked the players to install MapTool, it’s not going to work. Plus, we’re hoping to move over to Foundry, which will eliminate the need for my players to install any software except a web browser.
  5. SSH Tunnel
    • Technically, all I need for this one is ssh installed on my machine, which I have, and a server that’s not inside my network, which I also have. (An example is this fine website.)
    • I had an application on the Mac that would help with this, but I couldn’t remember the name, so didn’t look for alternatives. (It turns out to have been SSH Tunnel Manager. Now I feel stupid.)
    • I found an app called jEnTunnel. It’s a little java app with a graphical interface that allows me to easily set up tunnels. I haven’t tried to see if it actually works with MapTool yet, but I will update when I have a chance to do that. Chances are it will be my go-to, since I control the other endpoint.
  6. ngrok
    • This is what I ended up using, and what prompted writing this post.
    • ngrok is a tiny little command-line tool that lets me forward a port very simply.
    • In fact, it allows the creation of config files that give a shortcut to opening several ports simultaneously, which could be very useful indeed.
    • They have a ppa, so I can install (and uninstall) using apt.
    • One downside, the external url and port change every time you run it, so it’s a bit more fiddly than some of the other options.

TL/DR

If you have a similar situation where you need to forward a port out of your firewalled Internet connection, ngrok or an ssh tunnel may be what you’re looking for.

Update!

Further experimentation has revealed a couple of unpleasant truths. The first is that, because my server isn’t a VPS, I don’t actually control it. My hosting provider won’t unblock the ports that I need, so forwarding them does nothing good for me. I may decide to pay for a VPS and host my site(s) there, and then I’ll control the ports, but that’s way in the future.

Secondly, I got a response from Remote.it’s support team. It looks like the only way (short of running a VPS) to make it work for my use is to have my players install the Remote.it software on their computers as well. Then, we can link up and have fun. This puts it soundly in the ZeroTier category, and isn’t acceptable right now.

TL/DR 2: ngrok does what I need, albeit not in a pretty fashion.

Phones: The Shipping Wars

I have had a love/hate relationship with my cellular provider for some time. Long enough ago that it could well be the beginning, I was with AT&T, but their customer service irked me fiercely. Between one thing and another, I hadn’t taken the plunge to a different service, but then my son accidentally bought a Tracfone phone that was locked to that service. You see, we had been buying cheap prepaid phones to use with our AT&T sim cards, but he didn’t realize that some of them used different background networks.

Well, he just got another phone, and the Tracfone device lay around our house for a while, seeking purpose. That purpose arrived when AT&T started disabling our older devices. I activated the Tracfone for my wife, ported the number over, and it was smooth sailing.

However, there were storms on the horizon. Tracfone’s customer service rivals AT&T for horror, and there was one complication after another. Finally, they switched off my phone — the one AT&T had sent me when they were shutting down my older phone.

Well, this got me interested in options again, and I found Reach Mobile. I haven’t used them long enough to know if I like them, but they have been marginally more communicative than Tracfone, and they don’t insist on calling back on an unrelated number “within 15 minutes” which is always longer and then making me wait on hold after they call me.

So, to transfer your number from one phone service to another, you need four pieces of information.

  1. The name of the company you’re transferring from. In my case, this was Tracfone.
  2. The account number. This is trickier, especially if you have multiple phones with a vendor. For Tracfone, it’s the last 15 digits of your SIM card number, which you can find with a magnifying glass on the back of your SIM card if you pull it out of the phone.
  3. The PIN code. This was a real stumper. After wasting time with the chat support at Tracfone, waiting for someone to call me back, waiting on hold for the person who called me to pick up, I finally found that I could have gotten it by myself. To get the Number Transfer Pin for a Tracfone, text NTP to 611611 on the phone that has the number you’re transferring from.
  4. The billing zip code.

Well, once I had located these pieces of information, I was set. There was one small snag: since I had activated my SIM card with Reach Mobile, they were unable to change the number on it. Fortunately, they send two SIM cards when you sign up, so I was able to use the second card to receive my old number.

Well, I’m still waiting for the transfer to go through. Reach suggested contacting Tracfone to ask them to hurry it up, but I think I’d rather carry around two phones for a bit longer.

Using Cloud Storage

Okay, so we really need to answer the question, “Should you use cloud storage?” before we get into the weeds on this one.

Simply put, cloud storage is file server space that’s not on your computer. More generally, it is usually owned by someone else, and is physically separate from where you are.

Because the “cloud” is not typically owned by you, you need to be aware that what you store there might be examined by whoever is providing the storage, that they may change their policies and force you to find other solutions, they might be raided by law enforcement in such a way that your (innocent) files are swept up with those of the target, etc. In other words, don’t blindly trust a cloud.

That said, there are good reasons to use cloud storage. One thing that makes it “cloud” is the ease of access. You can access your files on a number of different devices, and changes in one place are quickly reflected elsewhere. (This can be a problem, too, if things change in a bad way, but there are ways to mitigate that, too.)

For as much of a “cloud skeptic” as I am, I have accounts with several cloud providers. I’m going to briefly recount which ones, why, and then discuss how.

The oldest cloud account I have is with Apple’s iCloud service. I got it when it was a free .Mac account, kept paying for it for quite a while, and now have stopped paying for, and using, it. I don’t use a Mac very much at all, and my Macs tend to be well behind the current OS and hardware. Because of that, Apple won’t let me use two-factor authentication, and iCloud is pretty useless without it. So, I don’t even try to access my iCloud storage anymore, and I long since took my data out of it. I still have the account because it’s connected to my Apple ID, which is connected to my Apple Developer ID, etc.

The second oldest account I have is with Dropbox. Dropbox was one of the first, and I was always able to function within the limits of the free account. I don’t use a cloud to back up most of my data (unless you count a local cloud, which we’ll talk about later) partly because of cost and partly because of time. It takes a long time to upload or download terabytes of data. Dropbox worked well, and I used it for a number of programs on the Mac that were able to use Dropbox for sync. (This was largely during the period when you had to pay for .Mac to use the cloud storage for sync, and I wasn’t paying.)

I mostly stopped using Dropbox a few years ago when they started limiting free accounts to using three devices. The primary purpose for my Dropbox account was to sync my contacts and passwords using a third party whose interest was not in my contacts and passwords. To do that, it needed to sync with close to a dozen devices, so three was not going to cut it. I still have the account, and it can be useful for transferring a file to someone, but I use it only slightly more than the iCloud account.

Now it starts to get hard to say what I got next. It was probably Koofr. I was looking for a privacy-supporting cloud service, and heard about Koofr. It’s hosted in the EU, so it has all the benefits and problems associated with that. I get 10GB free, which isn’t nothing, but is a lot less than some of my folders. It has a Linux app, so that’s nice. I don’t really know why I haven’t used it more.

Box is another of these services that I tried to get the free offer, and wasn’t impressed enough to really do more with. It is something I’ll be using with work, so I may find myself using it more in the future.

OneDrive (Microsoft) and Google Drive (guess who) are two more cloud drives that I only use for work. I hate both of those companies, and don’t trust them in any way, so I share as little of my information with them as possible.

pCloud is my new favorite. There are several reasons for this. First, it is privacy-oriented, being based in Switzerland. Second, Linux is a first-class citizen, with a proper app. (To be fair, Dropbox also has a full Linux app. OneDrive and Google Drive don’t, and iCloud isn’t even accessible using other means.) Second, although it cost me money, I was able to buy 2TB of cloud storage with a lifetime lease. Of course, that’s the lifetime of that lease, and it’s very possible that they will discontinue this service, or be bought out, or something at some point. However, the perpetual license makes it a fixed cost rather than a recurring one, and that’s something I like. They offer encryption as an add-on, which I haven’t purchased yet, but it’s available in the same way with a one-time payment. It syncs nicely with my computer and phone, and the storage is big enough to be useful, especially when considering things like file versioning, which it supports.

OwnCloud/NextCloud are two versions of the same open source software, with NextCloud being a fork of OwnCloud. What is nice about this software is that it’s not necessarily on someone else’s hardware. While I run an instance of one of these on my shared-host web server (that I don’t control) it is trivial to install it on XigmaNAS or HomeAssistant (or many similar open source servers) and use as a cloud within your home. While firewalls and network security are outside the scope of this article, with proper precautions (like a VPN) you could even have a home-based server that you can access while away from home.

Accessing “Unsupported” Clouds

So, how can I access OneDrive, Google Drive, and Box from my Linux computer, since I both need these for work and they don’t support my operating system?

Well, for Box, the answer is deceptive. John Green wrote an article about mounting a Box drive in Ubuntu, and although one of the comments from 2021 says that Box stopped supporting WEBDAV, I find that (in 2022) it still works just fine. Since the credentials are stored in my Gnome Credentials, I’m not sure how I would mount a second Box account using this method.

However, the product ExpanDrive is another solution. This was something I acquired long, long ago in a Mac bundle, and never really got it to do what I needed it to.

ExpanDrive options

It supports a ridiculous number of cloud providers, both free and costly, and it allows me to mount those volumes seamlessly on my Linux computer. It flaked out a certain bit when I was trying to mount two different Box accounts, but that’s why I went looking for, and found, John Green’s solution. Using ExpanDrive I can easily access all of the cloud accounts that don’t have a nice Linux client.


Update 14 April 2022: Another contender in the cloud storage arena appears to be internxt. At this point, I don’t know anything about them except that they advertise on Brave, and they emphasize zero-knowledge file storage for anonymity and security. They offer 10GB on the free plan, which is certainly enough to try them out. If you do, please let me know in the comments.