Minecraft Server, Week 2: Installing Micro Core Linux

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I’m continuing work on a server that can take a bit better care of itself. Let’s get started!

Installing Micro Core was a whole unexpected challenge. I learned how to use a few of the boot options, but actually installing? The drive needed to be formatted, no doubt. I eventually gave in and turned to Ubuntu to format the drive. Doing my research, I went with ext4. I later found it was one of the top picks for SSD, but one of the worse ones for USB drives. I won’t pretend to fully understand it well enough to explain, but I think it has something to do with SSD having a limited number of read and write cycles per sector of the disk. The wrong format can overuse one part of the disk and wear it out prematurely.

Since I was booting from a USB drive, the installer I downloaded was having trouble finding the files to install — it may also be because the OS boots so fast, it doesn’t have time to wake up again after copying to RAM. I tried several approaches, including putting a separate disk image on the thumb drive and and failing to locate its path until I just told it to download the install files from the (N)et. Small joke was on me when Micro Core wanted to format its destination drive again.

While I was doing that, I took another look at just how much space I’d actually need, and an archive of several past servers was only 7GB. I removed the HDD with Ubuntu from any plans for this server and possibly onto another future project I’m not ready to announce.

Trying to learn Micro Core is like trying to learn Linux all over again. Imagine visiting a colony, be it a historic colony in the Americas or a futuristic colony on another planet. Each distro would be like a different family. Some distros are closely related so as to be in the same extended family, while others barely ever see each other in town hall meetings. Tiny Core, and by extension, Micro Core Linux feel like they’re across the town from members of the Debian and Ubuntu family I’ve previously met. While the file system feels similar, the shell and default text editor paint a completely unfamiliar face to look at. (Later edit: the Tiny Core family is a fork of a distro known as DSL, which is a fork of Debian, so the more I get to know the distro, the more familiar things show up.)

To date, I’m only familiar with the Bash shell and Nano text editor. Both provide a relatively open and friendly user experience for anyone not afraid of the command line. The Tiny Core family did not build its command line for people afraid of a text interface. With size and speed as priorities, ease of use isn’t given as much priority. The Ash shell is faster and slimmer, while Vim text editor provides a lot more customization opportunities.

Vim scares me. I had to spend hours just trying to figure out how to move around, and now, the only thing making me even consider keeping it around is the difficulty of adding Nano in.

Apt is the usual way you download programs in Linux setups I’m familiar with. Tce is its less well-known counterpart I have to work with. I’m having trouble learning it, likely because I’m looking first online and only looking through the PDF that came with that documents Tiny Core. It also doesn’t help that most TCL documentation seems to assume you’re working with a GUI.

Insuring Nano was properly installed was tough. I spent a whole evening trying to problem solve, thinking my install was corrupt. The best I could figure out was that I had installed Nano while booted to a thumb drive, but it saved to a different place. When I tried to fix it, tce told me Nano was already downloaded and installed while it was unavailable on the command line. A total of three drives were involved, including my first Linux project running Ubuntu MATE.

I tried bailing, but my attempt to wipe Micro Core failed due to the drive being mounted. I wasn’t able to “umount” it (note the lack of the expected first n in umount; that alone took me between half and a full hour to get). And here lies one of IT’s more haunting nightmares: things working when they reasonably shouldn’t. I came down before bed for a last shot at solving a possibly corrupted path somewhere, and Nano decided to work without either the Ubuntu HDD or the installation thumb drive. Nano has since been stable.

SSH is the next step, but I took a little cut in line for Java. I learned a lot during this period. Working with Micro Core, and I’d assume Tiny Core too, is all about managing persistent files. The OS is small enough to get away with basically reinstalling each time, so unless you protect your data, everything is effectively a temporary file. With that said, I doubt I’ll fully understand what all is where until I finish a second or third project. For all I know, this was just a case of Micro Core repairing itself.

From what I can tell, MCL is one of the few distros to ship without a SSH client. I’ll be using OpenSSH. After a full day of slow learning, I followed a list of directions, somewhat following what was supposed to be going on, only to mess up on the last one and have to start all over again. It went a bit faster this time, and I understood even more of what I was looking at.

Moving along into the final stretch of this week’s planned scheduled progress, I’ve downloaded the Minecraft 1.14.4 server file. Let me tell you: the world is not friendly to CLI denizens (denizen: person living in a place they are not a citizen). I had to search hard for how to download anything, and when I found a couple old blog pages pointing me to a little program called wget. They each provided an old URL that no longer works, even if you update the MC version numbers. The official server download page includes a 40 digit number in hexidecimal.

And here, I admit to cheating a tiny, little bit. After failing to manually copy the URL, I turned to my work on bringing SSH online. A quick paste, which for some reason works with a secondary mouse click to a PuTTY window, and the correct URL was woven into the command.

I realized I had only downloaded the Java installer. I spent the day trying to unpack the HTML for the download page as if it were the actual compressed Java tarball. The shell script I found directed me to a URL, and I thought that was the actual URL to plug into wget. The -O option I used robbed me of a vital clue by overwriting the file name and extension. Something worked, and I didn’t realize it was the wrong thing until I used Nano and read the code for myself.

I wasn’t too sure where to stash Java to make it go, so I put it in with the extensions so it wouldn’t disappear while rebooting. I don’t know what happened after that. I ended up with too many symbolic links between files, likely from recursion somewhere. A reboot broke Java. Things are just a little too messy now. I don’t know what’s what anymore. This job isn’t over.

Final Question: Have you ever gone out looking for instructions while the answer was there in front of you all along in manual form?

New Priority: Minecraft Server

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I’m setting up another Minecraft server, but this time, I’m setting goals a bit higher than usual. Let’s get started!

I am after an automated, headless, dedicated Minecraft server. That means I want a machine that only runs Minecraft, and nothing else. The machine itself will live in a network closet or somewhere where it can have a power cord and Ethernet while I use SSH to get in to change things. I don’t want to have to babysit it, so I want to write a script or two to manage the whole server. The whole idea is to get the maximum amount of performance for Minecraft while spending as little as possible on the OS and other supporting software.

The main bottleneck is RAM. I have 8 GB to work with for now, and that’s fine for running a survival world and a creative world at the same time in Ubuntu, plus a couple tabs in a browser. Both this machine and Derpy have historically been used to host Minecraft servers, but I want to consolidate any running servers into a single machine. To that end, I’d like to see if I can comfortably run three or four servers at once.

Distribution choice is a little more important now. I’m after something as light weight as possible. Unlike the past several months, I’m actually doing progress reports as I go, so I don’t actually know what I’ll have when I’m done. I’m seriously looking at about six distros ranging from Ubuntu Server to Lubuntu to Puppy Linux.

A family Minecraft friend who will likely be playing on the server brought up Linux From Scratch. It’s a resource for compiling your very own distro. It looks fun; it looks educational. I looked up a couple video reviews of it and decided it looks one or two years down the line for me. My goal is two weeks here, and hardware challenges are starting to make me think I may already need to double that.

It turns out there are a bunch of tools for people who want a little more involvement with what’s in their operating system without wanting to go into source code level of detail. All the ones I looked at either have their domains up for grabs or are otherwise obsolete.

There was one more distro this friend brought up: Tiny Core Linux. It aims to provide you with only what you need to get started with a wide variety of projects. To paraphrase their stated goal: add what you need, not demolish what you didn’t ask for. After poking around a bit more, I found another version on their site that nixes the GUI. It’s not like I even wanted one for this project anyway. Micro Core it is until further notice.

I remembered how Derpy used to have this SSD it supposedly used to improve make things go faster. It’s not like it was being used, so I thought maybe I could use it as part of my little project. So I opened Derpy up and pulled it out.

Different computers with open architecture have different schemes of making sure everything stays where it’s supposed to. When I installed Derpy’s present SSD, I didn’t have the correct part to mount it on, so I just put it on what I had and let it be. With the HDD to SSD bracket being freed up, I went ahead and swapped things around. It just took a while to figure out how to get the bracket off.

With the brackets finally swapped, I moved Derpy’s old 60 GB drive to my project computer case and connected it with a SATA cable I had laying around. I think it may even be the one it originally came with. Power was similarly available within the case, but I had to remount the SSD to another position within its bracket so it could reach.

Trying to mount Derpy’s SSD with Puppy Linux

Backing up a little, before I started seriously considering Micro Core, I burned a Puppy Linux live CD. Puppy Linux is another one of those small distros that comfortably loads into RAM.

It’s funny how the sound of a CD drive made me smile. It used to be the sound occupying the boring period between when I started computer time, and when I started actually playing.

I rejected Puppy Linux after I saw office software as well as other stuff I didn’t need included, like a whole GUI environment. Nevertheless, I still used it to verify that I had everything hooked up correctly. It took a while, but I happened across a utility within Puppy that left no doubt. I spent a while trying to see if there’s anything on the drive before I eventually asked my father and he went ahead and told me to just format it.

I know I said I was going to do a more update-style post, but this is running into a longer entry, so I want to split this one. It provides a natural-ish breaking point about here. While I thought I was going to need about two weeks, as of this writing, I’m thinking either three or four weeks total work may be in order. If I break things up like this, I may end up with even more parts. That, or I just spend some of those weeks not doing much but learning what to do next.

Final Question: Have you ever messed around with otherwise junk to turn it into treasure?

Two Small Projects

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I did a couple housekeeping projects. Let’s get started!

Things are still settling from the fire. I did a followup to last week’s post on FimFiction, but I was able to come up with separate content for the two this week. Check it out if you’re interested: Post Evacuation Shakes.

Also of note: the workshop I’ve mentioned every so often is now officially open. They’re called The Third Workshop. I’ve been going there regularly for quite a while, working on whatever project I want.

Finally to the topic for today. I went to Third Workshop today while some strong-smelling chemicals were being used as part of the smoke cleanup. My stated goals: write a Bash script to setup Blinkie for testing code related to my OrbitCam project, and to get Blinkie to connect to any familiar WiFi network while headless.

My first project was almost trivial to write. I’d include it here, but I still haven’t figured out how to do a block of code.

The first line told the OS what interpreter to use. The second and third lines prepare the virtual environment, and since I was feeling adventurous, a fourth line changes directory to the folder I’m working in.

I added execute permissions to my script and went to test my script at the command line with “./OrbitCV”. It ran for a few seconds, then spat me back out to the exact same place I was in before.

My first thought was that it didn’t work for some reason. I tried renaming it to include the .sh name extension, but changed it back when I read the “hashbang” comment at the beginning already took care of that.

A relevant article had a couple typos, one involving a snip of code. The article was aimed at beginners. I sent some feedback.

My eventual theory was that stuff was actually happening, but it was being thrown away afterword, giving me a net of zero progress. Further reading and a couple tests confirmed that Bash scripts start new “shells” within one another like Russian nesting dolls. Reading a little further, I read about sourcing a script with “. ./OrbitCV” so it would run in the same shell.

My conclusion for now is that shells can be pictured as a computer streams of thought as managed by sets of parentheses. Likely not ideal, but I’m working with it for now.

My other mini project promised to be more difficult, but was similarly simple in the end. Blinkie, or at least Blinkie’s SD card the operating system is running off of, travels back and forth, but I’ve had difficulty getting it to automatically connect to a single WiFi network at once.

One of the great things about Third Workshop is that you aren’t often alone alone in your projects. If you are doing something new to the workshop, certain toys tend to appear. One such toy was a counterpart body for my BlinkiePie computer. Skill sets of those around you tend to expand to help you as well.

This time, I ended up on a small bit of a chase. I looked into solutions involving prioritizing what network to connect to. Two or three possible solutions later, I took a look at /etc/wpa_supplicant/wpa_supplicant.conf. What I saw reminded me of NBT data from Minecraft.

I saw each WiFi network Blinkie had ever connected to represented with a name, plaintext password, and another line I don’t know much about. The fourth line on most of them was what interested me the most: disabled:1.

Based on my own observations in the past, events in the present were not making sense. If what I was seeing was what I thought I was seeing, I should just be able to comment out the lines and have it work. I tried just that, and set Blinkie up at home, sans head (the glue didn’t hold the head) and without tightening the screws holding the board in place. Would you believe it just worked like I wanted for once?

Final Question: Have you ever taken on a tiny project you knew you could finish just because it would help with self-esteem?

My Week as a Fire Evacuee

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I’m covering something a little different. This post is cross posted on my Fimfiction writing blog. Let’s get started.

Fuel. Air. Spark. Master any one of these elements during a combustion process, and you have one of man’s most important tools. Neglect them together, and you have a recipe for a destructive force of nature.

Last time we went through a nearby fire, we spent a week under evacuation warning. Our two cars and van were loaded with our most irreplaceable positions: pictures from growing up, souvenirs from trips we’ve been on, computers we’re basically paralyzed without nowadays.

Day 1

It was Sabbath morning. I was getting ready for a special church service to celebrate a major anniversary with a speaker from the North American Division and planned activities all afternoon. I was looking forwars to helping on sound.

I was still at home when I got an Emergency Alert System warning on my phone. At first, I thought it was a sick joke. Wilefire had come nearby a couple years ago, so I sort of had an untouchable mentality. Another alert came through. I was desperately hoping it was basically a “never mind” type thing. No luck. Spanish translation of same alert.

Needless to say, the church service was canceled. I mentally shut down, scared, while others around me hurried to pack for who knows how long. After asking for prayers from different Christian groups online, I was able to help with some things, but not others. After wrangling the computers, I started collecting sentimental items as impulse grabs, ignoring restrictions on bringing both Derpy and my other Linux server.

The idea that I may be coming home to a pile of charcoal and ash felt unreal. With only two operational vehicles, the massive photo trunk from my grandparents’ house had to stay behind. People, critters, and basic necessities tend to trump things like that when faced with a knapsack problem like this.

With our payload set, we set off down south toward San Francisco in heavy traffic as literally everyone fled along with us. It took hours longer than usual to reach the city.

We heard from a friend to save any and all reciepts. Insurance may cover “loss of use,” basically anything extra we spend because of being evacuated, we can get reimbursed, but only if we have the reciepts. We missed one tank of gas, but after that, if we got a paper documenting a purchase, it got stuffed away for later.

Saturday night, we crashed at our grandparents’ house (not the ones with the chest) with four cats and three dogs, two of whom are service dogs. We spent the night safe in relative discomfort.

Day 2

I normally sleep until 10 AM. My grandpa likes to get up early for a walk. I like spending time with Grandpa when I can. I got up earlier than usual, setting a pattern for the next several days.

Sunday evening, we spent looking for a place to sleep that accommodated all our special needs: three beds with at least one in another room. There weren’t any available; everywhere was already filled up with fire evacuees. We even shared a couple sodas with a fellow evacuee family with small kids.

One place said no vacancy, but they were converting to more of an appartment model. They might have worked, but we would have shared a wall with someone who’s scared of dogs, and we have two service dogs.

We eventually crashed into this “newly refurbished” motel. It was clean. If first impressions were everything, they would have had my stamp of approval.

We ate out for most meals on the road, and supper was actually a pretty tasty potato-based lasagna from a Greek restaurant, at least for me.

Night 2

This one gets its own section. Remember that motel? While we were first evaluating it, my sister had a few concerns. Even the tail end of my first impression before supper was a bit sketchy when one of the comforters had a little oil on it from when it fell on the parking lot, or so said Rose, the lady working the place (name changed to protect her identity and because I honestly don’t remember).

also gave us a hard time about an extra $10 for having dogs in the room. “That charge is illegal,” we told her.

We went back and forth a few times. From her point of view, Rose had a boss who would be ticked if she dropped the charge, and as my sister put it, she “took the moral high ground” saying we should be grateful they were accepting our dogs for just a low cleaning fee.

I looked it up while this was going on, and I found something I was not expecting. According to the document I found on ada.gov, service dogs MUST be accepted and MUST be exempted from any animal fee, but a cleaning fee is permissible, so long as a non-disabled person would be charged the same fee. I was not expecting that one.

NOTE: later in our trip, I took a closer look at that document, and found it was replaced by legislation that exempts service dogs from normal cleaning charges as well.

We had to book two rooms, but the more time we spent there, the less sure we felt. The kitchenette refrigerators made a horrendous noise. The outside doors felt as light as an interior door, and had half a key and chain lock system between the two rooms.

Things only got worse after lights out. For reference, I was in the single bed room alone. I found my bathroom door wouldn’t close for getting stuck on the tile floor. Back in the main room, the front door was warped, letting in a ribbon of light. I lost count at five times checking to make sure it was actually latched.

With everything adding up, I didn’t feel safe enough to even get undressed for a shower. I didn’t really want to trust the sheets either, so I planned on just wrapping up in my polar fleece space quilt. Comet, my service dog, had his mat from home, and I moved it closer to the door.

Comet, is usually a good boy. He must have noticed I was feeling scared, so he about insisted on doing a “Jump on” to the bed as I was working on last week’s robotics blog post. And no, he wasn’t going to settle for anything less than full body cuddle when I normally have to insist. Normlly, I’d correct barks at strange noises, such as someone else checking in, but that night, I didn’t. I actually found it a bit comforting.

Day 3

A car alarm woke everyone up around 5:00 am. I made it back to sleep for a couple hours. I found out later that I was the only one.

Comet had stayed cuddled the whole night. Even though the place looked warm and inviting again with the morning light, I would not be caught re-entering my room after leaving it. I rejoined my family to regroup while things were packed after our one night there.

I would not consider staying there again. Eventually, the fridge got to me or something, and I left that room as well, opting to study some of the succulent hedge plants they had growing. Different buds of even the same plant were at different spots in a cycle of growth. I found the fractals interesting to look at.

We ate out for breakfast, and traveled for a place to stay the next night. Most of our travel time, I was riding in the car with my father. I had recently gotten this exponential numbers game on my tablet, and I have a really weak spot for those. Normally, it would have been a bad thing for me, but a simple game that’s remarkably battery friendly was just what I needed.

That night, we found a two bedroom suite in a hotel chain we like. For some reason, we only booked one night there and made reservations in a similar place nearby.

We heard on the way to the first proper hotel that one of the pools was out of service. We were a little relieved when our one-night place didn’t have its pool open. Wouldn’t want those three swimsuits I ended up with to go to waste! Impulse grabs.

Supper, we went to a Siam/Thai place just as they were finishing for the night. Minutes remained until the cook was going to leave, and I made a recommendation we all have my favorite dish from when I went on mission trip to Thailand: pad thai. I didn’t get too good of a look at the menus, but I think I would have gone for an option other than orange sauce. But that food sure tasted authentic!

One of the other patrons had a problem with dogs, and the owner asked us if we could move outside making for another ADA surprise. I decided to take that closer look later. It didn’t come to anything, but the owner was much more diplomatic than Rose.

NOTE: While I later found that when someone with a service dog and someone with dog problems must be in the same area, such as for a work setting or an evacuation center, they should be placed in separate rooms or opposet ends of the same area if possible.

Day 4

I got myself up for the hotel breakfast in the lobby full of stuff I rarely get at home. Personally, I had a big waffle on one plate, and two English muffins with scrambled eggs, cheese, and salsa on my other.

Travel details get a little fuzzy as to which day what happened, but I think this day was the day we went shopping. I stayed in the van, and a backup alarm really messed with me to the point I had to get out of there. I had planty of time to dash away from there so I wouldn’t have to keep getting overloaded by that painful noise.

My sister kept me safe, pointing out that the vehicle backing into the spot next to us could possibly have stepped on the gas instead of the break. She convinced the driver to park in a nearby spot. I don’t remember much else, except that the driver didn’t seem to understand and I was playing my game, like usual.

We got to the hotel we were planning on staying at for the foreseeable future. I made myself at home as best I could. My room had a small desk, but that didn’t keep me from squeezing my dual monitor computer setup onto it. I didn’t ever get a good mouse pad, so I was always fighting it. I set my moon lamp I got last year as a birthday gift on a bedatand. My quilt really brought everything together.

The pool was closs here as well, but there was a weekly grill by the courtyard firepit. It was quiet, not too many people were there at once, and the lady grilling enjoyed her job at the hotel where she could meet people.

As a vegetarian, I didn’t gorge myself on the grilled chicken, but the potatoe salad and barbecue chips were tasty. I had a good time.

Supper was a homemade soup. The bowls that came with the room were tiny, but it was all good.

Day 5

This was a much needed down day. We still weren’t sure if we’d be coming home to a pile of ashes, but I still got myself up for a similar breakfast with four small waffles. My sister and I took food up to our mother since she wasn’t feeling the best.

This day was very much needed. With the decor I imported, I could easily see us living there for anywhere up to a week, as some estimates were landing us.

I pretty much spent the day watching YouTube I could use for trivia fodder later. I also caught up with the protests Hong Kong is having over the premature erosion of their democracy. Eventually, I even managed to write a sentence or two toward my next FimFiction story about Cheerilee.

For once, I don’t remember supper! Probably because it was a disorganized jumble involving cheese, crackers, and leftovers.

Day 6

Halloween. Breakfast was the same fare as before. They had a skeleton in a scrub working the front desk. I was informed “Slim” wouldn’t be working there for too much longer because didn’t meet the dress code.

It was also the day we returned home, as insurance wouldn’t likely cover anything that wasn’t part of the mandatory evacuation. I was supposed to ride shotgun with my mother as she was feeling a little better, but not so well as to not want a backup driver.

Remember when I said I usually sleep in? Well, at the university, Ilearned that I can get up early for breakfast, but doing so for long periods tends to make me fall almost asleep for an hour or two; I was useless for packing, especially when a stereo on wheels parked itself outside our window.

We split up for fetching our critters. While I really wanted to help with our cats, I ended up with the car, picking up our pet dog. She came back all nice and groomed and her sitter gave us the nnews that our little diva held out for the raw beef the other dogs were having. So much for kibble ever again.

Smoke. We got home hours before the van. The firefighters saved the vast majority of the town, but the smoke was terrible, and I didn’t know which N95 mask was mine, nor did I know where an unused one was.

Inside the house was about twice as smoky as outside, so we aired it out. Seemingly long stretches of time are reduced to two single words: unpleasant, and smoke.

Our next objective for the evening was to obtain air improvement devices. While I would have rather personally joined in on the search, I stayed home in case the utility company came by to turn our gas back on.

I ended up orchestrating some smoke-quality furnace filters and a few HEPA filters for in-room use. Coudos to the store manager who ordered extra furnace filters in anticipation of the sudden spike in demand. We got six. When they arrived, I decided to layer one with a lower quality filter so the good one could do its job of catching finer particles better.

Supper for my mother and me was a nicely sized pizza. I called no fewer than three or four places before I found an open one, and when I did get one, it was a 45 minute wait. Turns out they had the orders of three locations being forwarded to their place, and a bunch of hungry evacuees were returning.

We did get one ser of trick-or-treaters. After I had to turn them away, –the porch light was on for the utility guys– I made a sign explaining things.

The gas did not appear that night, so I was double glad I had a shower that morning.

Aftermath

We spent the night with filters going on max in our bedrooms. When we got up, the smoke was pretty bad in the rest of the house. Ever since then, I’ve been scared of smoke damage seeping from the walls and ruining our lungs. I can’t wait until a professional comes through and tells us what needs to happen of if we are all good. I doubt I’ll be able to rest fully until then.

Throught the whole week, I don’t think anything really felt real. Not until I saw a map of the burn zone reaching within walking distance. The evacuation gave the firefighters the room they needed to save everything they did. Maybe it still isn’t real to me even now. All I know now is that since getting home, I haven’t been able to get the initiative to get fully set up again in case we have to leave for any reason.

Just because there’s a disaster going on doesn’t mean your whole life just takes a pause. Sure, I wasn’t able to meet up with a friend who otherwise would have come through on Sunday, but I still made contact with people I normally do online, just not as frequently. I’d like to thank everyone who prayed for us and the first responders. God really took care of us this week. As of noon the following Monday (daylight savings time is over, by the way), the evacuation warning is over, but not all the fires are out.

Lessons we’ve learned this past week: first, keep all receipts during an evacuation if you even think you have loss of use, and second, call your insurance adjuster on your way out. They can help you find space for you and boarding for any critters.

Final question: have you ever lived through a natural disaster? Ever been evacuated for one?