Family Photo Chest Part 5: Opening the Vault

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I started organizing the chestful of pictures. Let’s get started!

But first, I have a new area in the house to call my lab — for now at least. We have a spare bedroom we call our art room and it has been recently made available for use. I’m working off the same folding table as before, but with the extra space –and the ability to close off the area from our four legged friends– there was enough room for my father and me to move the old sea chest from our garage to the art room.

The goal in this phase of this branch of the project is to get a general census of what we have so we know how much storage to buy. Color photos take three times the space as their Black and White or Sepia counterparts, and many pictures have their original negatives stored in there as well. The general guidelines I received was to sort everything into large, medium, and small piles, with separate piles for color images.

We opened the chest and started pulling out various prints. I about have no words for the level of entropy I found. Collections of photos were haphazardly strewn about inside, while other prints were floating free in the photo paper soup. As I excavated, I found where at least a few photo envelopes had lost at least partial containment while in at least one case, a small photo of a motorcycle frame found its way inside a package of my father’s school photos. If it were any more organized, sorting would have been trivial. If it were not at all organized, I could be a lot more mechanical. As it stands, I am choosing to preserve obvious collections and incorporate them into my eventual file system.

Not all collections are bound the same. The most secure collection is a cardboard box stuffed full of envelopes. I all but left that one alone, moving it into a plastic bin along with several other obvious sets. I also had a special place in that bin for less organized sets of photos, such as one series that only had a rubber band. Several loose sets of pictures were obviously taken together, especially if they were together in a stack. Those ended up in yet another folder.

I still ended up with a few surprises. I had to make a pile for non-picture documents and envelopes with their contents lost to the soup. A lot of old mail ended up in there. I even found a lock of hair, presumably from someone’s first haircut. There must be no fewer than four or five languages represented in there.

Eventually, I ended up taking a bunch of sandwich bags and stuffing the loose groups in. I actually found a small picture within a minute while writing this post — in part because of this very tactic.

I owe a big thank you to my father for sorting out ambiguous sets. A lot of the memories in the trunk are his or are from people I never overlapped with. I can see this project taking quite a while. Hopefully, things can get moving sooner rather than later.

Final Question: How do you bring order to semi-chaos?

Linux Deep Dive Part 4: 3D Printer Workflow Online

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am printing myself a bookmark as a “Hello Again, World” project. Let’s get started!

I have a Monoprice Maker Select Plus 3D printer. It’s a rebrand of a product made by Wanhao. For those keeping score, I am running Debian 10 (Buster) on my laptop, and I’m migrating different tasks over to Linux that I can.

My problem: My printer shipped with a version of the Cura slicer specifically tailored to work with it — on Windows. By default, the version of Cura I found on the Debian 10 repositories does not come packaged with presets for my printer or its original branding. Furthermore, the software has had several more years of development since the kiddie pool fork of the software I was used to playing with.

Since last week, I’ve realized that as far as someone at my skill level is concerned, all the specializations are are just a few numbers a sufficiently resourceful individual, such as myself, can look up, punch in, and fine tune as necessary. With the right numbers, I can see where a printer can safely print multiple small jobs on the same bed without waiting on the head to move to each one every layer.

A slicer is only any good if I’m going to print something, so I modeled up a bookmark in Blender. That interface is a new sight for my eyes to behold. I eeked out something for a first prototype using my fragmented knowledge from when I last put printing away.

Over in Cura, I used a slider to set 100% infill; I don’t want this thing breaking on me. I told it to go with structural support and saved it to my SD card. I really like this version of Cura over the dinosaur animal cracker I used to work with.

I went through about half a thing of canned air on my printer and leveled it with an assortment of junk mail and a bubble level. Fortunately I didn’t need to reapply grease. I did have to reassemble my MacGyvered filament holder atop the printer. Somehow, I found the same piece of PVC pipe from before in another part of the house, but I used a rag instead of a strip of cardboard to secure it.

When material started getting laid down, I noticed another old problem. Filament wasn’t quite sticking at the very beginning of extrusion. As the printer continued laying down material around where my bookmark was soon to take shape, I recognized it as a brim. The malformed plastic was relatively isolated, and the print continued without further incident.

Lacking my proper spatula, I peeled the fresh bookmark off the buildplate by the deformity from the beginning, but I quickly learned how easily freshly printed plastic can deform. It twisted and left a minor, permanent warp if one were to look closely enough. Next time, I will let it cool.

The brim was a lot harder to get everything. Between the prototype being too thick for a hardback and me not liking the pointy bits I designed into the sides, I took the design back to Blender, where I had to refresh my memory again on proper modeling methodologies and that’s were I stand now.

Final Question: How frequent do you come across a 3D printer operator using Linux?

Linux Deep Dive Part 3: Stability

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am just going over the stuff I did this week. Spoiler alert: it’s more of a mix and mash. Let’s get started.

My idea while writing last week’s post was it. I believe my laptop wasn’t booting reliably because GRUB was configured incorrectly. The BIOS went fine and selected the external drive to load from (or the GRUB disk). The bootloader, GRUB, loaded correctly, gave me the option of operating systems to boot, but when it went to load Debian, some of the time the drives respond out of order: when GRUB went to the drive presently known as sda, the internal, Windows drive, and expected to load Debian, it panicked and dropped into BusyBox.

I diagnosed the problem by looking directly at the grub configuration files and sorted out any instances of “sda.” There were a few. After fielding some questions about the suspect config lines, I regenerated the config file after reverting the only change I had previously made without regenerating. When it was done, I scanned for the parts where “sda” had previously shown up, and there was the correct UUID I was looking for.

I wish I had found someone identifying this problem. Ironically, I came within inches of mysteriously solving this issue none the wiser when I tried regenerating the GRUB files to give the drives a full minute to load instead of five seconds. I can see where I might have spent just as long trying to reproduce the bug an failing. I wouldn’t have it any other way than how it happened. I can live with this.

With stability issues out of the way, I have other things to move over. Remember when I used to do 3D printing? Well, I want to make a bookmark, and I want to do it from Linux. I popped my SD card into my laptop, and found the copy of the Cura slicer that originally came with my printer — it’s a .exe file. Linux doesn’t do .exe files.

Side note: I’ve been using aptitude instead of apt-get. They both do the same job, but aptitude tries to put a nicer face on it, like not changing half its name for searching instead of installing.

After teaching myself how to search the apt repository like I did back on MicroCore, I used aptitude search cura and installed the package pertaining to g-code generation. I looked in my program menu and found “Ultimaker Cura.” OK, I suppose this is the generic. I already knew the version I was on before was a fork of some other parent program. Lacking another explanation, Ulitmaker Cura seems to be it.

The first time I opened this newer version of Cura, I was bombarded with a prompt to add my printer. I didn’t see my printer, so I ended up picking a wrong one and continuing from there. And that is where I’m stuck.

I poked around in the menus and did some research, and found the latest version of Cura is on at least version 4.0, but the on in the Debian repositories is 3.3.1. I am starting to get the feeling that this is what they meant when Debian software is chosen for proven stability. I may go around the repository on this one.

Diagnostic procedures involved a bunch of research and plugging in with a USB B connector. I hooked my printer up and told Linux to list my USB devices. I isolated an entry called “QinHeng Electronics HL-340 USB-Serial adapter.” I’m not exactly sure what is going on here, but it looks like my printer is electronically connected to something inside that then talks to the computer outside. Oh, and the menu still works off just USB power.

I am open to using other slicers. The main goal is to demonstrate a workflow, and I don’t have that right now. I also tried Slic3r Prusa and it had even fewer options, but it had a list of questions for configuring other printers.

Looking around, there is a lot more to the world of slicers than the narrow sliver I was looking at before. The IIIP branded Cura is great for someone who is just wants to 3D print or doesn’t want to move away, but there is a whole world to explore out there with different optimizations and features to play with — all locked away behind a learning curve that starts with getting my printer back online.

There are plenty of 3D printing videos out there. Every one I clicked on while trying to get things working on Linux was using Windows. Maybe there was one, but I don’t know. I’m going to have to tackle OS/slicer and slicer/printer issues separately from now on.

Unrelated: I have been getting a lot of use out of my Steam controller. It turns out to be very useful as a mouse on my Widows machine when I want to sit back without a hard surface in easy reach.

Final Question: What was one challenge you faced that left you feeling good for going through it?

Linux Deep Dive Part 2: End of Week 3

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am continuing my coverage of my deep dive into Linux. Let’s get started!

Last time, I installed Debian Linux on a USB external solid state drive using skills I learned from previous projects.

I am very much still in my trial period for Debian. Most of my time working with it has gone into exploring and diagnosing the system.

A lot of my MATE explorations into panels happened on at least day two. While I was able to assemble a semi-convincing Start bar look-alike, it still has a way to go.

I discovered the first of two big hitches when I took it in to Third Workshop and booted to Windows to demonstrate Minecraft in its unplayably slow state. I hit restart, booted into Debian, and it was still unplayably slow. I even rebooted several times, only for it to refuse the decent performance I knew I had seen already. We even put a simple clone of Minecraft by the name of Mine Test on there to test the FPS. I got it home, booted straight to Debian and Minecraft unexpectedly worked correctly.

It took me a while, but I finally narrowed the pattern down. The performance drop only happened if and only if I first boot to Windows and restart into Linux without shutting down completely.

Even though I didn’t master the problem by solving it completely, it hasn’t come back, so long as I don’t reproduce it on purpose. I’m fine leaving it alone.

And now for my other problem: Debian only successfully boots about half the time. I still don’t know this one. All I can do is lay out everything I know about it and hope someone knows what the deal is because I’ve yet to find a help topic that matches my problem exactly.

It used to be that Debian would boot every other time, but it did have a spell where it booted and failed about six consecutive times each. A few days ago, it’s gone to not booting at all. Whenever it fails, it drops into BusyBox, displaying an ash shell with the prompt (initramfs). It has some basic commands, and I think the general idea is that when the Linux kernel can’t find the files it needs, a knowledgeable operator can manually mount a drive and boot from there.

Now, I’ve mounted drives by hand before. I met someone going by hyperreal who generously spent over an hour and a half of his time on me. We seemingly tried everything to try and get BusyBox to boot. Nothing. We even peeked at the hard drives’ contents from a GRUB boot menu console (Don’t cite me on terminology here!). Everything looked good until BusyBox showed up again.

A lot of it was repetitive. In short, it looked like /root had the contents of my Windows… I may have it. What if GRUB is looking for sda or sdb specifically and they respond in the wrong order? I’ll check into it.

As I was saying before a flicker of hope interrupted me, The Windows drive was mounted to /root and I was able to umount it, but neither drive would mount there. I kept getting an “Invalid argument” error. Maybe the BusyBox mount command is a little different, but it should have worked each time. We tried mounting it from /dev, where devices are listed by an internal shorthand per system, and from a more out of the way place that listed them by UUID. There were four entries, and I suspect the two that didn’t look like hard drives were my mouse and keyboard.

Moving along, I also tried burning a Super GRUB Disk a total of three times. The first two were on my laptop, but they both flopped. I detoured for a while, doing other stuff mentioned above before making a good disk from my desktop.

I still need to mess around with the disk to know exactly what is going on. The working theory has been an unreliable install of GRUB. I have a new idea since writing this, but for now, I have a way to use my computer when I want.

Final Question: Any ideas on this one? I could really use the input, though I should probably get the comments section working some time.

Family Photo Chest Part 4: PyCharm Migration

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am moving PyCharm from Windows to Debian. Let’s get started!

The past month didn’t feel all that fast in terms of this project. I reread a few of my paragraphs from last month, and I get the feeling I didn’t have a clue about what I was looking at.

There are at least a couple reasons why I believe IDE’s are only for when you have an expert handy. They are full of stuff beginning programmers don’t need to be using yet and that stuff can be incredibly fragile. The moment something breaks, progress stops and you need someone familiar with the program to sort things out. If you’re engaging in self-study, working from the command line has fewer things to break and most language tutorials provide command by command instructions anyway. If possible, you should seek out one or more groups to join who can answer programming questions when they come up.

PyCharm was a little fussy to migrate to the new operating system. I made the mistake of just importing everything straight from the configuration on the old install. First of all, all the file paths were written in Windows. I tried routing the interpreter to the one that came with Linux, I had to move the link to my project file around, and I went hunting through the venv settings for references to Windows paths.

The easiest thing to do is to just say no to importing anything on first launch and recustomizing everything. I ended up moving looking into individual files in my settings and plucking out the ones with intrinsic ties to the old install. I had a lot of custom colorization going on, so I sifted through my settings files and plucked out anything with file paths starting with C:\.

Project files were a separate but parallel undertaking. With all the errors I kept getting, I ended up grafting my old project files into a new set of project files. Almost everything copied over, but a hidden .idea folder holds a lot of ties that rely on things not moving. I also had to remove a workspace.xml file or something similar over a reference to the old hard drive. Pycharm brought up a dialogue box to fill in the appropriate information and that angle was solved.

Now, about virtual environments. Implementing them is an important gesture toward seasoned programmers collaborating on projects on different computers, but they complicate things a bit much for the average novice on his or her own. On my windows install, I managed to hack it out of my project, but I never told PyCharm that I didn’t want to use them in a way it could understand. This time, however, I had help addressing the issue.

The IDE is a powerful tool. Powerful tools are okay to pick up and use, but the learning curve can be sharp, and reckless newbies can easily damage something while careful newbies just get slowed down by all the things to research. Supervision like what I used to get in my programming classes or what I’m getting now at Third Workshop is a practical must-have. I don’t always get the answer I’m looking for right away, but stray comments tend to provide seeds to plant in a search engine.

Final Question: Have you ever made a major change and had little cracks you didn’t anticipate?