I believe this is Season #5 for FTC Robotics in Columbus ... that's kind of hard to believe. It's also why we put a #5 in the post title.
|
Anyway, we have some tech chores at hand, so let's discuss.
If we get new computers for Robotics this year,
we’ll probably find that they have no OS. This communication is to
describe the desired configuration of our s/w computers for maximum
portability and service with minimum needed maintenance.
What follows is pretty close to what we’ve had the
last couple of years and it works predictably, updates are knowable and
controlled, and overall system stability AND portability is excellent –
runs on Pentiums and CoreI5’s, and VPro’s
with 2Gig and up of RAM and ~40 gig and up of disk.
Obviously don’t download any of this onto your work machine.
Desired Configuration:
Distro: I really cannot emphasize this enough, but we *must* have control over when system updates happen. WE CANNOT LOSE OUR WORK DUE TO A BADLY TIMED UPDATE FAILURE. That kind of risk is for people who roll the dice with Redmond's product, and we have some higher standards.
Anyway, here are the options I'm willing to help with. Sounds curmudgeonly, I know, but I'm pretty sure we can keep 4 machines running and in sync with this setup. I don't feel like spending any extra effort on this kind of overhead, and it keeps things simple and reliable. And cheap. And simple. I said that twice, because it is twice as important.
http://bbqlinux.org/ (not really preferred, but the fastest install I know. If you're pressed for time, this might be a good call)
BBQ Linux (NOT LinuxBBQ)
- Pro: Has Android Studio & a workable Java included as part of distro. Setup is pretty simple.
- Pro: Arch gets you more hitpoints of nerd just for saying it, let alone using it. Depending on your view, this also can be a Con.
- Con: is Arch based rather than Debian based. Works fine, just uses a different repository schema. With the pi's and other things, I'm more used to Debian and apt, but I kind of like the extra geeky aspect of Arch. It is to Linux itself as Linux is to Mac or Win.
PREFERRED
XUbuntu (Not Lubuntu, Kubuntu, Ubuntu, or any other ‘buntus). I
believe XUbuntu works OK with UEFI (the MS-inspired denial of service
boot obstacle – I’ve not tried installing GRUB on a recent piece of
hardware). Plus 'buntus are the "hello world" of Linux, and that's not necessarily a bad thing. XUbuntu is maybe the "hello world" of the 'buntus.
- https://docs.xubuntu.org/
current/user/C/index.html - The XFCE window system native to XUbuntu is clean, low overhead, and functional.
- XUbuntu (historically) allows you more control over both the schedule for updates and the password/username to a greater extent than other ‘buntus. We do NOT want the OS to upgrade automatically the week before a tournament. You wanna do CPR on Android Studio because some tool incompatibility bounced into your lap and 'sploded, that's your problem. I have plenty of baggage without that.
- Computer Name: The name should be something unique and yet appealing to a nerdy teen. Just don't make it boring. Have used variations of person’s name who donated computer (Bartacus, Ziggy, MagiCarp) and for corporate donations once used names of ships in Patrick O’Brien novels that also existed in the Royal Navy (Surprise, Lively). Should be a consistent theme. If using planet names, could make the background a picture of that planet so it can be identified from even a distance. Prolly should skip Venus and Earth.
- Post install, run from command line: %sudo apt-get update --This should update the repository lists.
- Post install, also run from command line: %sudo apt-get dist-upgrade –This is to ensure the software is up to date. Will take 5 minutes to 40 minutes to run, depending on available bandwidth and time of day.
I’d love to experiment
with Rasperry Pi’s Pixel distro, but don’t recall if it is 32 bit or 64
bit and can’t be bothered to look right now. We need the 64bit OS.
Pixel looks very much like the Raspian distro
for a pi, except it does not include Wolfram Mathematica. OTOH, it
ought to be familiar to some of our students and an excellent tie in to
inexpensive machines they’ll have access to at home (a Pi 0-W is $10,
probably figure $35 plus a keyboard and mouse
to get one up and running on your HDMI monitor. Pi 3b+ adds 3 cores
half a gig of RAM and about $20 to that. I really like the idea of
presenting a system that looks very like one they might reasonably get
to students from a fairly frugal economic circumstance).
Accounts: historically we’ve used judenki, but this
year let’s do “robotics” (We'll have to coordinate the password. I'm not putting it here :-) ) … can make it automatically
log in, but must do password for sudo.
Android Studio – whatever is current. It’s a
derivative of IntelliJ, so any web instructions you find for IntelliJ
should work fine for Android Studio.
- configure SDK’s for Nexus phones. Check the FTC message board for instructions. Or copy from one of the PS3’s.
- With updates and configuration, this may take an hour or so to install.
- As I recall, you can install Android Studio in the user directory but it's messed up - a little like putting your socks on over your shoes. All the stuff is there, but it's cringably wrong. We can discuss.
Android Studio Plugins
- Git
https://javapapers.com/
android/android-studio-git- tutorial/ - Sonarlint
https://www.sonarlint.org/
intellij/ I really would like to see the software students use lint in real time. It's hard, but I had a lint fueled wilding over our code during the holidays last winter and by the time I was done, it really was tighter, sturdier, and better looking code. Ugly code, you'll remember, is a venial sin in some places, a mortal in others.
- XUbuntu should come with either Java or OpenJDK. OpenJDK is rumored to have some compatibility issues. We want Java. Can download it and tar or use a file manager to extract it (should be done with root priv) we want Java 8 64 bit!
- Java really needs to be installed in /opt or /opt/bin (I forget which one right now)
- There is a little bit more configuration work that needs to be done for Java, like added to /etc/sources maybe?
- You'll need the JDK and the JRE as I recall.
- https://www.java.com/en/download/help/linux_x64_install.xml
Git
- Need it. %sudo apt install git-all
Finally, here's a little video that pays homage to the title of this post. It's hard to find a squeaky clean cover of Mambo #5, so we'll add a little Beethoven to our song. It isn't precisely what it seems, but you should expect that by now :-)