{"id":566,"date":"2019-12-02T12:00:00","date_gmt":"2019-12-02T20:00:00","guid":{"rendered":"http:\/\/letsbuildroboticswithshadow8472.com\/?p=566"},"modified":"2019-11-24T14:57:30","modified_gmt":"2019-11-24T22:57:30","slug":"minecraft-server-week-3-java","status":"publish","type":"post","link":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2019\/12\/02\/minecraft-server-week-3-java\/","title":{"rendered":"Minecraft Server, Week 3: Java"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am once again writing well ahead of the actual publication date. Let&#8217;s get started!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As I start this post, I&#8217;m still in week 2, and I might even finish this segment in week 2, depending on where a good stopping point is. The following events started early in week 2.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Last week&#8217;s post covered installing Micro Core, all the way up to and including a corrupt install of Java. I&#8217;m discouraged. I was just one&#8230; three&#8230; several steps away from finishing this project within my projected timespan of two weeks. I want this server up, but it&#8217;s more important to finish correctly. But timetables are near-impossible to stick to when you&#8217;re also learning how to use a computer again as if for the first time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The command line is very different to using a GUI. It&#8217;s not toddler friendly, and it requires a ton of memorization. File systems, commands, command flags, file names; during one of my Third Workshop visits, I learned the man command, which brings up a manual for most commands. Micro Core has external documentation, likely for space concerns, so it&#8217;s off to the Internet for pretty much anything I don&#8217;t get.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Botching the Java install made a big, old mess, and having two copies of the Minecraft jar file made it more awkward when an obsolete backup got involved. I made the decision to nuke the OS and start over. But I didn&#8217;t want to just cut it off right there. If I need to start all over, possibly several times, I&#8217;m going to want to keep at least some of my progress, after all, I have SSH access from no fewer than three machines, all nicely set up with each one&#8217;s public key.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I took it under advisement to start writing a script to rapidly move back in case I need to redo my setup several times. Even if I never use it though, I&#8217;ve still learned a lot by dissecting my own work.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For starters, I spent an afternoon and early evening working at a trickle, writing down elements I needed to save. I moved them all to a thumb drive located at \/mnt\/sdc1, and found I had lost all my progress when I got home and plugged everything in. At least I have a picture of the tiny whiteboard I was taking notes on.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mastering persistence is one of the greatest and most important challenges to working with the Tiny Core family, alongside finding someone who knows how to do the thing you&#8217;re trying to do in a close enough circumstance. With most available documentation aimed at baseline computer-literate GUI users, a GUI native lost in a CLI world has to sift through multiple forums and documents to find relevant answers. If I had to guess, I&#8217;d say it feels like a quarter of the Tiny Core help out there talks you through different menus of the default programs while maybe one out of sixteen is a Micro Core specific way of doing things. Note: I think it&#8217;s actually closer to one out of eight GUI special tutorials.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Investigating persistence, I learned a lot about the file structure: too much to regurgitate  for review here all at once. I&#8217;m not even sure it&#8217;s even fully digested. The root file directory has a bunch of files, each with an intended purpose. When I reinstall Java, it&#8217;s going in \/opt, for example. TCL has a special directory called tce where all the packages go for reinstalling everything on bootup. There&#8217;s also some network of links I haven&#8217;t even begun to explore; I just know they make it possible to pull off running the OS from a couple different files instead of having everything scattered everywhere.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vanishing files had me for at least a couple days in parallel with other issues. I read that writing files to physical drives makes them persistent by nature. After my work went poof from my USB stick, I toyed with the umount command a bit more. Nothing worked. Eventually, I came across someone on a Discord server who gave me a working example, and made a whole day feel almost worthwhile. I was able to correctly mount my USB drive and edit its actual contents instead of filling a bubble in RAM somewhere to be flushed out when the power goes out.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sometimes, I don&#8217;t even know if something is a general Linux question. My file system has both sda and sda1 as valid directories to look through, even though I have an sdb1 and so on, but no plain sdb, or a plain sdc when I plug a thumb drive in. This one, I don&#8217;t know for sure yet, but I think it has something to do with a bad bootcode, where I referenced sda. Now it&#8217;s in my fstab (file system table) file and it shows up every time I boot. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Things are all messed up. I just need to nuke it and start over.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Final question: Working with Micro Core has been fun so far, in the same way a video game can be fun, even if it&#8217;s super difficult, provided the rules stay the same the whole time. I can constantly feel success in my fingertips, only for the next challenge to pop up over the horizon. Have you ever applied skills you learned while at play in a more serious situation?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am once again writing well ahead of the actual publication date. Let&#8217;s get started! As I start this post, I&#8217;m still in week 2, and I might even finish this segment in week 2, depending on where a good stopping point is. The &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2019\/12\/02\/minecraft-server-week-3-java\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Minecraft Server, Week 3: Java&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[3,2],"tags":[],"class_list":["post-566","post","type-post","status-publish","format-standard","hentry","category-computer-maintenance-and-repair","category-linux"],"_links":{"self":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/566","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/comments?post=566"}],"version-history":[{"count":3,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/566\/revisions"}],"predecessor-version":[{"id":569,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/566\/revisions\/569"}],"wp:attachment":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/media?parent=566"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/categories?post=566"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/tags?post=566"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}