Box Project #1

When did computers turn into a machine with so few individual components? Feels like I’m buying chunks of the machine already partway put together.

Here’s my parts list. Only seven items.

Plenty of room for upgrades in this, I know. That’s why the case isn’t one of those ridiculously tiny things the size of a sweater box. Those things… kind of weird me out, tbh. To me a computer is a big fifty-pound thing encased in sheet metal. But I digress.

Reasoning behind the parts list:

  • Integrated graphics is fine to start with. I’m not a rabid gamer. I could go out and buy someone’s 18-month-old external graphics card if I decided it wasn’t good enough, though. The case has room.
  • There’s no Windows license included. This should be obvious. It’s going to run Debian, of course. (I’ve had Elementary OS on a partition on my laptop for months… I’m kinda neutral on it. Shrug.) Windows might get a VM or a corner of the hard drive if my school has it for free, but otherwise…
  • Processor is quad-core, decent speed but not the fastest available. I like my VMs. The fans it comes with should be fine since I don’t feel the need to overclock it.
  • Antec case because I’m not a masochist–I want something nice to work in. It’s a sleek, sort of minimalist black, no weird lights or anything–and it’s $48 from Amazon.
  • A solid Antec power supply with the 80+ eco-whatever certification that means it’s efficient. I’ve had enough issues with laptop power supplies that I’m just super done with cheapness in this component.
  • 8GB RAM is solid enough for a Linux box, although there’s obviously room for upgrades. If I were building this to run mainly Windows I’d want 16GB.
  • Terabyte hard drive. I considered buying an SSD instead, or even a tiny one for just the operating system, but for now I’m putting that under the header of potential upgrades. They’re getting cheaper all the time, so it may be smart to wait, and this is good enough for me for now.
  • Nothing special about the CD/DVD drive. It reads, it writes, it’s $20.
  • Motherboards are kind of confusing to me. I don’t know what I’m looking for and they’re all labelled “gaming.” This one looks good though. ASUS is a good brand, it has enough RAM bays and outputs, and I’m pretty sure I looked up what the integrated graphics card was like when I picked it out months ago. My older brother (who built loads and loads of computers in the late nineties/early naughties and still takes stuff apart sometimes) thinks it looks good too so I’m running with it.

That’s my build–I’m ordering it now. It comes to about $600, which is a reasonable price for a computer where ALL the components are good quality, rather than just the ones that get showcased on the label (you ever hear a big-box computer store boast that their case and power supply are good quality? or that their computers are this upgradeable?). In other words, a “business” computer. That’s code for “it isn’t totally crap.”

Also, I don’t have to pay the Windows tax. ò_ó

I’ll let you all know when I get this done and can report on the experience and the performance of the result, so you can use or tweak my build example for your own purposes. I’ve never built a computer before but I’ve watched them being built and fixed, and lots of people are saying it’s gotten easier over the years. Anyway, I’m pretty jazzed about my new tech and this should be really neat!

Happy hacking!

 

Edit: Lucky I wasn’t being too literal when I said I was off to order it now. Martin in the comments is pointing out that I’m paying for way too much motherboard power and way too much power supply wattage. (I probably thought I was being careful when I picked these out and overestimated it.) I was not aware that there were calculators available for power supply needs–I didn’t see it in the PC building manual I bought or the online articles I read, and this seems a little on the bizarre side. If this were more my thing, I’d probably write my own, but I doubt I’ll have call to build more computers any time soon so I probably won’t be developing this skill much. Unless I go work for a repair shop or something, cleaning viruses and bad virus software out of PCs, and end up in that department. (Something I considered doing earlier this year.)

Anyway. I punched in the specs into the Cooler Master calculator and…

That is decidedly not a 650W kind of need. I’m going to try a couple of these calculators just to be sure but… uh. I think a cheaper power supply might be in order.

Edit #2: Newegg’s calculator says 400W for this build. I think a 500W with good efficiency will do it then…? Again, lots of potential upgrades. I don’t want to repurchase this component.

Edit #3: New build here. I added some trimmings and necessities so I don’t forget them. Also added a Mac keyboard, which I like because they’re aluminum, you can get keyboard condoms for them, they feel good to type on, and I don’t have to fight different muscle memory impulses for my laptop and desktop re: command vs. control. Worth $50 as long as it works correctly. My keyboard cover on my MacBook has saved my keys from all kinds of junk gumming them up.

Take Apart A Computer: Follow-Up Post

(If you’re here because you want to know what to do with your shiny new Linux DVD, you can skip about the first third of this.)

Today I attended Take Apart A Computer Day, hosted by the Women In Computing club here at UNI. This was kind of a beta test run for a potentially larger event later on.

I worked together with two other girls (if you ladies are reading and want your names here, let me know–but I don’t generally mention names on this blog unless asked, for people’s privacy) on a huge old box. We have no clue if it worked beforehand (the consensus after two professors and all three of us took a crack at testing it was no), but it definitely isn’t working now, so I guess that’s a success. After all, the event isn’t called “Put a Computer Back Together in Full Working Order Day,” and we did get it apart. Eventually.

So, we learned a couple things from the beta run for next time:

  1. Test all the machines beforehand–after moving them.
  2. The test monitors that the computers also need to be tested on a known working box, so we know our testers work. Nothing like screwy monitor settings to make you crazy wondering what’s up with the computer.
  3. Two people is probably a good number for working on a computer together… three is a bit much. Having a partner makes things easier, but six hands is pretty awkward even if the people are friendly.
  4. WHERE IS THE RIGHT SCREWDRIVER. WHAT EVEN IS THE RIGHT SCREWDRIVER. NONE OF THESE SCREWDRIVERS WORK. HOW.
  5. Juice boxes! Yes, this is kind of a tradition with me now: bring juice into a place where it would be very bad to spill juice. But they were still all consumed! On the other hand, we need more people willing to take home pizza that’s been sitting out for a few hours…
  6. Having extra Linux install DVDs to hand out is a good thing! Not necessary, but good–people are curious!

Anyway, I’m sending this post around the WIC mailing list (er… Google group? It’s different from the CedarLUG list, which is legitimately an old-fashioned mailing list). About five of you folks from this event now have Linux test/install DVDs. If I remember right, I handed out a Xubuntu, a Mint, two versions of Debian, and… something else? Maybe that was it.

I’m pretty sure I’ve used each of them at one point, and they should all work even if they’re not all the newest and greatest; I think they’re all the long-term-stable releases so they’ll be fine. If they don’t work for whatever reason, don’t sweat it; email me or whatever and I’ll make more, or if you have blank DVDs lying around (or are willing to buy a pack for $5 at an office supply store), you can make one.

 

Anyway, when I give people techie stuff, I like to make sure they can easily figure out how to use it. (Doesn’t always happen, but I try to.)

So! If you’re curious about Linux and maybe just got a DVD from me, here’s a guide to all the guides I’ve written on the subject:

If you didn’t get a DVD or yours turned out to be a non-functional dud, here’s how to make one.

If you don’t have an optical drive in your computer, or want a more permanent plaything than the DVD, here’s how to make a virtual machine instead.

If you’re confused about the Linux ecosystem, here’s how I learned what I know.

If you’re just confused, period, here’s the FAQ I wrote for another event which involved lots of Linux newbies.

If you just want to run Linux off your DVD to play with it a little, it’s simple. Stick it in the optical drive of your computer, and restart the computer. While it boots, tap F12 (it’s probably F12, but keep an eye out for what key you’re supposed to press for menu options during your computer’s boot sequence) and select “Boot from CD/DVD” in the menu.

The difference between doing that and making a virtual machine is that a virtual machine will save any files you create from session to session (unless you do magic to configure it otherwise). An install DVD won’t save anything, so you get a fresh, clean system every time you start it up.

If that’s not working for you, email me in the list or comment on this post and I’ll try to help. If that still doesn’t work for you, bring the offending computer to the next WIC meeting if it’s portable (let me know what you’re doing so I make sure to come), or invite me over to your place if it’s not/if you can’t attend the meeting. I will help you get a Linux running if that’s something you want.

I’ve installed Linux on some weird old machines and gotten at least workable solutions out of them. Sometimes a setting needs to be tweaked or Google needs to be scoured for information. Sometimes a certain distro just doesn’t like your hardware, and you need to try a different one or download extra driver files or plug your computer into a wired Internet connection or something weird. Such is technology.

That’s usually not the case though. Most installs these days go really smoothly, especially with Mint or Xubuntu.

Speaking of installs, CedarLUG–UNI’s Linux Users Group–is holding a Backup Day pretty soon, and an Install Day sometime after that. If you want in on that, here’s the web site (I coded that! The penguin at the top is a bit of a giveaway…). Subscribing to that mailing list will get you updates on those events, and the occasional computer puzzle.

Happy Linux-ing!

How to make a Linux CD

A CD or DVD with Linux on it is a useful thing to have! There are quite a few things you can do with it:

  • You can try Linux out without installing it. Just putting the CD in the optical drive and running Linux from there won’t touch your main operating system or files. Using it like this can actually help you fix a Windows computer–you can still access the hard drive and back up all the files that are on it from Linux even if Windows is acting weird. (You can also use it to kind of crack into your machine if you’ve been locked out for some reason, but don’t try it on a network because the sysadmin will notice and flip out. You didn’t hear this from me.)
  • You can install Linux alongside or instead of your main OS–be careful about your files if you’re doing a wipe-and-install, of course, and be careful about partitioning your drive too. Make sure you have a backup of at least everything important if you do it this way!
  • You can also install Linux on a virtual machine, although using the .iso file you download from the Internet and burn to the CD works just as well for this.

So how do you make one? It’s pretty easy:

Get yourself a blank CD or DVD.

Some distros won’t fit on a CD and you’ll have to use a DVD. If you don’t know what this means yet, get a DVD.

Pick a Linux distribution (or “distro”).

There are lots of different “flavors” of Linux. They might look a little different, or be designed for special systems or specific groups of users.

If you’re new to all this, I suggest Mint or Xubuntu. They look a lot like Windows, so they’ll seem familiar, but they’re way better! And they’re a breeze to install. Normal Ubuntu I wouldn’t recommend as a first distro, actually; the user interface it comes with is kind of clunky. The only difference Xubuntu has is that it looks simpler and that makes it a little easier to use.

If you’re curious or you’ve tried this before, try searching around for a distro that’s particularly suited to you. I’m quite fond of Debian, but I’ve been playing with Elementary, which looks more like Mac OS X than the normal Windowsy-looking interfaces.

Mint and Xubuntu are great general-purpose distros. Xubuntu is probably the better one on older computers–I’ve made a ten-year-old box on two gigs of RAM run like a decent computer by installing Xubuntu. If your computer is THAT old, you’ll want 32-bit; otherwise, use 64-bit.

A word about some terms you’ll see. Unless you’re developing or testing for the distro as a project–in other words, if you’re a normal user–you won’t want to use the development versions. Anything that says “nightly release” or whatever, stay away from using as a main operating system because it’s still in testing.

“LTS” means “long term stable.” That is a GOOD thing to download. It may not be the very most recent version, but it’s a well-tested one that’s going to be supported for a reasonably long time.

You can also just get the most recent stable release. Those or LTS releases will be fine.

Download the .iso file

Either from the Internet directly or as a torrent. Googling the name of your distro should make it pop up. Where possible, always use a download link suggested on the project web site. There are probably multiple “mirrors” to download from; try to choose one that is on the same continent as you.

Any computer with 4 gigs of RAM or more should be using 64-bit operating systems. That’s probably what you want unless your computer is really old.

If this is your first time, I’ll make it easy on you. Here’s the download page for the latest Mint (64-bit, Cinnamon desktop), and here’s the download page for Xubuntu.

A torrent is a more reliable way of getting a distro if you have a torrent client set up. They’ll keep going even if they’re interrupted, and they’re less expensive for the maintainers. However, the clients are kind of tricky to set up, at least in my experience. There’s nothing wrong or sketchy about torrenting Linux distros–you can use torrent clients to get hold of sketchy Internet stuff, but that’s not what we’re doing here, this is super innocent and it’s just another way to get your .iso file.

Burn the .iso file to the CD

You probably know how to do this on your computer. If not, Google it. It’s pretty simple.

Label the CD, and maybe put it in a paper sleeve

Lots of people forget to do this, and it’s really confusing! Make sure you mark your CD with the distro name (e.g. Linux Mint), the version number (e.g. 18), and whether it’s 32- or 64-bit (probably 64).

Optional but fun: Burn more CDs for your friends

Self-explanatory.

“Did you get it to do that thing you were trying?”

“I figured out how to install programs!”

“I found a tutorial about the command line!”

“My resolution is acting funny, anyone have ideas about that?”

This is why Linux User Groups exist. Get enough nerds in one room playing with a shiny toy and something fun is going to happen.

 

Happy hacking!

An update, a project, a new book

I apologize for this post coming a week later than I’d planned! To be honest, life happened and I forgot I’d left you hanging until I got an email about a reader’s comment on it. Sorry about that!

No more suspense, then. Saturday’s event was a complete success! We didn’t have all seventy kids, though. We had thirty-five or so again, and since we’d scheduled for seventy, they were a lot more spaced-out. It was a lot more laid-back than the day before (when we’d scheduled to pack the house), and let us work with smaller classes. Which, as any teacher will tell you, is an easier crowd to handle.

This time, we also handed out live Linux CDs with mass-printed disclaimers on them about not installing on the host computer, etc etc, disclaimer of warranty/responsibility/legal cya stuff. We also passed out slips with the URLs of my FAQ and the GitHub where the game I used lives. (I’ve been meaning to write some decent non-techie documentation for how to use that thing…)

I had originally volunteered to be part of the Hour of Code portion of the event on Saturday, rather than the Linux part, but stuff got a little mixed up. The teacher who was going to take the Linux event hadn’t looked at the Hour of Code activities for a year or two and hadn’t realized that it had changed; it now looks like Scratch or Alice, not a text-based activity like she’d thought. She’d planned on letting the kids play around with Scratch (because it’s a good intro to code, which is why HoC uses a similar system) on their Linux live CDs.

When she emailed me with her plans a day or so before her event, I didn’t connect the dots immediately–it took me a few hours before I emailed back to warn her that she had a duplicate activity on her hands, and by then it was rather late. She showed up on Saturday as we were starting to prep the Linux room (I was kind of early and was helping another teacher who had been in the building for a while). I warned her again about her duplicate and she pulled up a computer to look at the HoC activity. But before she could really panic, I reminded her again that I had a different setup that I’d already used, and which had worked well. So I swapped places with another volunteer who was going to help in the Linux room (he went to HoC instead) and kind of took over working my system.

And that’s how I ended up mostly in charge of that event again. Combined with the Raspberry Pi she’d brought, I feel it’s safe to say it was a really good experience for everyone involved.

Mind, this teacher is totally competent and a great teacher–she’s no newbie, she just happened to be relying on old info and I just happened to have something good up my sleeve. I got to squeeze more use out of my script game, and I earned major brownie points with someone I respect. 😉

As the participants fiddled with the game, I stood up and gave a little background info about Linux and the open-source world. I’m actually a decent speaker, believe it or not, when I’m speaking on something I know well. I’m still a much better writer than speaker, but I’m reasonably good at giving impromptu lectures if I know the subject matter. I read audiences fairly well, and though I have plenty of other fears and self-doubts, public speaking isn’t really one of them. (What I’m actually awful at is video. I can’t read a camera. It’s not a good audience.)

The people liked my game so much. A good number of them thought it was funny–one of the older girls got to the part about forfeiting your firstborn son to Microsoft (it’s deliberately campy) and couldn’t stop laughing until I gave her a juice box. Her friend, in turn, discovered the potential to create text-based adventure fanfic. (What have I done??) It was only too difficult for one person, a young girl about eight years old who put up a valiant but losing battle against it until I redirected her to the games that came with the operating system instead and she started playing Potato Guy. (It’s a virtual Mr. Potato Head. The kids seemed to like it a lot.)

One of our other volunteers, a second teacher with minimal (nonexistent?) Linux experience, seemed to not like me very much on the first day. Don’t ask me to name her, because I won’t. I think we got off on the wrong foot, and it was exacerbated by the reality of how disorganized the first run through the activity was, which had been partially preventable if my (and everyone else’s, honestly) brain hadn’t been scrambling around like a drunken monkey. It’s not like we had a dress rehearsal for this sort of thing. I think the kicker was that I’d dropped her online class earlier this semester, and it’s hard not to take that personally; I know that it was because of work overload from my other classes and how well I don’t do with online stuff, but she couldn’t know that.

Whatever the cause, she seemed to kind of radiate disapproval the whole day; I tried to meet her halfway in my speaking to her, trying to apologize for the disarray, but I guess she wasn’t in a good mood. I gave up and got on with what I was doing. The second group was much better handled, at least.

But on the second day, she came back with what seemed like new respect for me, even before I took things over. Maybe it was the presence of the other teacher (the competent Linux teacher), who already had respect for me; maybe she’d spent the previous evening trying to fact-check my FAQ and decided that I was competent after all; maybe she decided that the way I bounced back on the second group the previous day meant I could run things all right after all. Maybe she’d just taken that second cup of coffee and the barista complimented her outfit, so she was in a better mood. There’s no way of knowing, I guess. But she was a lot more helpful then.

I rarely see people change their mind the way she did, and to me, that engenders respect in return–not stubbornly holding on to an ill opinion of someone like a lot of people do. I don’t know her very well, but I was pleased to have her help. So few people have the willingness to change a poor opinion of someone. I’m not trying to be condescending or even implying that I’m any better than average about that. Just… major kudos.

Anyway, that’s enough about the STEM thing.

I’m still kind of designing and turning over the job site in my mind. (I talk about the idea and my design changes for it here.) I want to build it, but I’m not sure where to start. I have basic, slightly dated knowledge of HTML and CSS, and of course I know Python, and I’d like to build the site on those. I think I’d rather not use big frameworks or anything like that–no Django, no Rails, DEFINITELY NO .NET, although I’ve cloned Django and I might poke through the code for ideas if I need to. I want to keep my code fast and lean and I want to know what everything does.

My experience with web design has been pretty limited since I was 13-15. Even this blog is just a plain old WordPress site. Still, it’s not the front of the web site I’m worried about; it’s the backend. Databases? Files? Search? It’s the real code design stuff that I just don’t have the experience to be confident with, which school can’t teach, and the backend stuff, that school won’t teach because it’s too preoccupied with showing you how Microsoft’s latest product “solves that problem for you” and teaching that instead. Paradoxically, this is a very good argument for trying to get into it and screwing it up so badly that I learn.

I’ve got notes in my design notebook about the stuff I plan to do better, which is a lot easier than actually trying to do it better. But I need to get to the latter sooner or later.

I’m reading a new book. It’s called The Charisma Myth–it’s all about how charisma isn’t inborn and can be taught, and then turned on and off like a switch. It’s a really good book.

It says that charisma is composed of three main components: presence, or how in-the-moment you are and how focused you are on other people when you speak with them; power, or how much influence you have to potentially change people’s situations for better or worse; and warmth, which is how compassionate and empathetic you are towards people.

Basically, others assess 1) whether they have your attention, 2) whether you have the power to do stuff for them, and 3) whether you seem like you’d want to. If the answer is “yes” across the board, you have their immediate attention and they want to be around you.

Then the book goes on to say what actions you should take to increase those three qualities. Focus on the feelings in your toes to bring you back to the moment and increase your presence. Visualization and thought exercises to increase your apparent power and warmth. So much of charisma is in body language, and body language is so hard to fake, that you have to learn to manipulate your brain into feeling confident and powerful, and warm and full of goodwill, so that your body language follows. None of those are bad things and none of them change your personality–they just make you kind of a more attractive person to be around. They make others feel better about talking to you.

The book goes on to explain that there are four styles of charisma (actually, it hints at more, but these are what it touches on).

  1. Focus: people are drawn to you because you pay attention to them, because you seem genuinely interested in what they have to say and respect their ideas and opinions.
  2. Visionary: people are drawn to you because you have some big idea you’re intent on bringing about, perhaps something that promises to improve people’s lives. They feel inspired by what you say and more creative after talking to you.
  3. Kindness: people are drawn to you because you broadcast loving acceptance of them for who they are. They feel they can be themselves around you.
  4. Authority: people are drawn to you because you’re in charge. You seem like an impressive decision-maker with some sort of power, so they think you might be able to help them or do things for them.

Everyone has some kind of charisma to some degree, often a mix of them. You shouldn’t try to adopt a style that is alien and unnatural for you, and you need to be wary that you use the right style in the right situation. You should also try to cultivate as many as you can, so you’re adaptable.

I naturally have a fair bit of visionary charisma, particularly in my writing. (But you knew that, didn’t you, you clever thing?) But I think I’ve been walking around with a lot more authority than I’ve realized. I think that’s a big part of why people were so wary of me in high school and thought I was unapproachable. I wear nice clothes–I don’t generally leave the house in sweats or yoga pants unless I’m sick or in costume, and I’m lucky enough that my family can provide me with more expensive, good-quality clothes.

I used to be able to sneak into the school library to sit out a period I technically wasn’t supposed to have free under the usual rules, without leaving the paper trail of signing in, by walking past in my wool trenchcoat with a gait that suggested I was supposed to be there (I copied the quick, confident walk of the school administrators). The librarian rarely looked up, and when she did, she ignored me. Even though I had turquoise hair at the time. My body language just said that I was not to be stopped and bothered, so she didn’t. And when I sat around reading and knitting, nobody thought I was out of place.

This mostly went away when I got to college, where nobody knew I was underage until they got to know me a little better and had already seen that I wasn’t so unapproachable. And the average level of confidence is higher around here, so I didn’t stand out quite so much.

So, apparently I channel authority well? But… that’s not the most appealing of the charisma styles to me. I’d rather make people feel respected (focus) and then inspire them to go do great things (visionary). I don’t really want to boss people around. If other people rely on you to give orders, they can’t handle not having you around, and they can’t go off and do great things on their own. Besides, it’s more fun to be doing great things too rather than making other people do them. I prefer the power that comes from controlling things (like computers), rather than that of controlling people, and I’d rather persuade than barge with my ideas. I’d be okay with directing and organizing a bunch of people to do something they want to do, though. There’s a lot of overhead and grunt work in organizing a collaborative effort. But it probably wouldn’t be as fun as doing things myself.

Uh… looking back on that paragraph… I wonder if I’ve just read Ender’s Game one too many times or if there was a seriously deep reason I connected with it the first time I read it. Anyway.

Focus isn’t something I currently do well, because my mind wanders so much. Even if it’s wandering on something the other person just said, it doesn’t make them feel so great if it looks like I’m zoning out. I’ve decided I’m going to work on cultivating that.

As for kindness charisma–I actually do care about people and try to think the best of others. I also happen to be completely awful at expressing it. (It’s an INTP thing.) I’m actually a pretty warm person, but the associated body language isn’t really wired well into my brain. (Authority’s wired in instead. I’m so girly.) I tend to surprise people by doing nice things for them instead, which catches them completely off guard.

Here’s another story. I was taking a college Psych course in my senior year of HS, and I was working on knitting a super-long pink scarf as a Christmas present for one of my friends. After having worked on it during class for a couple days, a girl comes up to me and asks, “Hey, will you knit me a scarf?” In retrospect I think she meant it jokingly, but I was so caught off guard that someone had talked to me that I blinked and said, “Uh… sure. What’s your favorite color?” It took a minute for her to recover and reply. The next day, she asks, again jokingly, “Hey, have you finished my scarf yet?” I say no, I want her opinion on the color first, explaining that I don’t have any light purple yarn and offer a skein of baby blue instead. She’s taken aback but accepts it and I start knitting. I give it to her a few days later (I was really fast at that point through practice). By then of course she was totally cool with it and thanked me.

Knitting seemed to make me look more approachable, I think. A lot of people were more willing to talk to me while I was doing something so low-key. Especially working on something as absurdly pink as that scarf was. (It was a copy of the really long, bright pink scarf from Homestuck. It was like eight feet long or something crazy and took me… I think well over a month?)

I know that book isn’t technology related, except in the sense that people skills are important in this field, as in any. But psychology is also one of my interests, as are self-analysis and social analysis, so I hope my readers don’t mind my going off on tangents like this.

For sticking with this really long post, here’s a set of Muse songs. These three were among my very favorites for their incorporation of beautiful classical music. Part 3 is particularly striking.

It seems there’s also a Part 4 on YouTube that I’ve never heard before? I’ll investigate it when it isn’t 3 AM.

 

 

 

Friday’s STEM event is over

There’s another round tomorrow, twice as big. I’m not sure how well we’re going to handle that. This group was big enough!

They were mostly 7th graders. There were three HS freshmen in the group, I’m told. They all looked really young and the main group was huge–ostensibly 35 kids, but it seemed like more. After Hour of Code, they were divided into two groups between the virtual reality room and my Linux room and spent half an hour in each. Both rounds, the group I got filled nearly every working computer in the room.

And they… liked my game?

When I learned I was getting a younger group than I thought I was getting, I started wondering how a really nerdy text-based adventure was going to go over. But they either liked it enough or wanted to impress me enough that things went really smoothly. I’m not questioning it.

I’m exhausted. I’ll update with more details later.

I made a thing!

I wrote this text-based adventure script to introduce some basic Linux commands. It’s mainly for the Linux thingy I’m doing on Friday with the Plant Yourself In STEM event, but it’s probably useful to more people than that.

I only got the idea earlier today (err… yesterday now), so I haven’t spent a TON of time on it. I spent more time writing the story than putting it into the code, which is brain-dead simple (validation of specific, static commands). There are certainly more commands I could include and better ways to write it out there, but right now it’s functional and goofy and not boring or over-technical. I’m quite pleased with it.

It lives here and it’s MIT licensed, so you can play it for yourself and/or improve it as you please.

Plant Yourself in STEM: Linux FAQ

I. Questions about Linux

Q: I want to play with Linux some more.

A: Great! You have a few options.

  1. Use a virtual machine. Here are my instructions on how to make one. I recommend this one most because you can run the software well on most modern systems, and there’s no risk of accidentally overwriting Windows or whatever you’re running, and losing all your files in the process. Also, if you break a virtual machine, you can reload it from a snapshot or just make it over again. VMs take a little patience to make the first time, which is why I wrote that tutorial. (It contains a lot of stuff I had to learn by trial and error.)
  2. Use a live CD or USB. Google is your friend on making these, but check at least two tutorials when you make Linux-related stuff. Be careful not to install it over your current system.
  3. If you have money: get a Raspberry Pi and its associated accessories. This can be fun, but you’ll probably end up dropping quite a bit of cash on it. If you want to anyway, again, Google it.
  4. If you REALLY know what you’re doing and this is your own computer, not your parents’, you can make a Linux partition. Be careful with this one. You have to be a little more technical to get it right, and it’s risky to get it wrong. You might want to choose your distro a little more carefully with this option too, to make sure it’s one you like.

Q: What’s with all these different “distributions”?

A: Linux distributions, or distros, are just different varieties of Linux. They all have the same stuff running at the core of the system, roughly, but they can have different software installed and sometimes different commands. Each distro is meant to serve a particular purpose.

Ubuntu and its variants (Kubuntu, Xubuntu, Lubuntu, etc) are meant as a beginner’s Linux–they’re designed to look roughly like Windows and be as easy to use as possible. Linux Mint has a clean design for users and programmers who want something simple, elegant and effective, without tons of shiny graphics. Debian and Fedora are often used in servers or on the personal computers of programmers. Kali is for network security administrators. There are even advanced distros such as Arch and Gentoo, for increased customizability or transparency to the core system below–Arch doesn’t even come with a desktop environment installed, you start out with just the command line interface.

It’s best to start with a simpler distro, like Mint or Xubuntu (which is preferable to normal Ubuntu because of the interface it comes with–it runs faster and I think it looks better). I’m fond of Debian, personally. GNOME 3, the window system it comes with, is rather heavyweight but very shiny. You can put different interfaces on it, though.

Q: Wait, what do you mean “interfaces”? What’s a “window system”? Are they different things?

A: In Linux, the command line is the default interface that’s built into the system. But you can put window systems over the top of it. You know how Mac desktops look different from Windows desktops? Like, the windows look different and Mac has the dock instead of the taskbar? That’s because they use a different window system. Linux has tons of these and you can just swap them around.

“Interface” is a more general term than “window system”–the command line is an interface but not a window system. (Apart from that distinction, they’re interchangeable as far as I know.) That’s semantics, though.

Q: What makes Linux so great, anyway?

A: Lots of things! There are so many reasons to use Linux over Windows (and, to a slightly lesser degree, over Mac)–ranging from the practical to the aesthetic to the philosophical. Here, I’ll list a few of the reasons you probably care most about, but understand that this list is by no means exhaustive.

  1. It’s free! Not only are the vast majority of distros free to download and use, but you can change them however you like or make contributions to them.
  2. Linux is faster, especially on old hardware.
  3. It’s far, far more secure than Windows. Linux very rarely gets viruses, even more rarely than Mac OS X, and when viruses for Linux do appear, an update comes out very quickly to protect the system. But it’s hard to write viruses for Linux because it’s designed so well.
  4. They’re easier to program on. Linux comes with better tools for coders and makes things a lot easier. Tools like git and shell scripting make Linux a far better choice than Windows for a coder.
  5. Linux has a powerful command line, which Windows lacks. (Mac’s command line is okay though.)
  6. Package managers make it easy to install and remove software without leftover files like you get on Windows and Mac. This saves space on your hard drive and keeps your programs working well.
  7. Linux is easy to use and customize! You CAN learn to use Linux without touching the command line (although you’d be missing out on a feature, and if you’re coding you should know it). The basic controls aren’t that different from any other operating system–it just has a few extra tricks it can do.
  8. Linux is becoming a platform for gaming! It’s not totally there yet, but there’s serious progress being made. Steam has certainly jumped on this bandwagon with Steam OS. Personally, Humble Bundle is my favorite place to find Linux games, and it’s for a good cause. And remember what I said about Linux being faster? Your games will perform better. It’s pretty awesome.
  9. Free software–you don’t have to pay for Microsoft Word or Photoshop, as Linux has open-source software that does the same thing. LibreOffice and GIMP are great programs.
  10. It’ll teach you about how computers work! Linux is a great behind-the-scenes of how computers function. To me, that’s really important and cool.
  11. Free support from a great community. Got a question? Google it, and if you can’t find anything to help you, there are forums full of people who’ll help you out for kicks–they just like fixing stuff and making users happy because it’s challenging.
  12. The power to fix your computer when it breaks. Windows doesn’t let you see where stuff is failing, it just pops up with the box that says it’s trying to diagnose the problem and fix it–and I’ve never heard of that working for anyone. Linux lets you see what’s going wrong, if you know where to look, and lets you fix it instead of making you give up. Linux boxes don’t really get the kind of issues that can be solved by rebooting–they work too well for that–but they do occasionally run into bigger blocks where Windows would just throw up its hands and tell you to reinstall.

I’m stopping there. Twelve is a nice round number, and I don’t want this to go on forever.

Q: How do I learn Linux?

A: This is actually a really good question. I was asking the same thing about a year ago. Now that I know from experience, I’ve covered it to send you in the right direction.

II. Questions about coding

Q: How do I start learning to code?

A: Starting to code is easy! There are great sites out there to help people take the first step into programming–I like codecademy–and there are plenty of books too–like this one, which is available for free (although I suggest buying a hard copy or tipping the author if you can). If you’re intimidated, you can start with HTML and CSS and make some basic web pages, in which case I recommend this book.

Q: I’ve been coding for a while… I know a language or two, but I feel like I’m missing something. Open source is really hard to get into and everything is confusing.

A: Basically everyone feels like this after working with books and classes and tutorials for a while. It doesn’t go away with more books and classes and tutorials. It starts to go away once you try to build stuff on your own. Keep your eyes peeled for stuff you think you might be able to build, and then try to build those things. Even if they’re terrible at first. Trust your ability to learn what you don’t need in order to finish your projects.

You’ll feel stupid. You’ll think your program sucks. You’ll get frustrated working on a problem and walk away. But then you’ll figure out something that might be the answer while you’re making dinner and you’ll rush back, and you’ll put it in, and maybe it won’t work but sometimes it does and sometimes it helps you figure out what works, and everything is exciting again. And you’ll forget you were making dinner, and you’ll keep coding and forget to eat at all while your cat eats the lunch meat you left out.

If you love it anyway, you should keep coding.

At some point, after months spent alternating between frustration and excitement, it’ll hit you that six months ago you would have absolutely no clue about anything you’re doing now. You’ll realize that, although you may not be as good as the open-source folks yet, you do know a lot of valuable things that would massively confuse most people.

Q: Uh… really? It’s that hard? But I bought a book that says I can learn Java in a week.

A: You might be able to learn Java syntax in a week, but it’s really just another tutorial. Programming is a separate skill, agnostic of any one language but tied to all of them, and it takes time and effort and trial and error to learn. Also, don’t start with Java. Start with Python, Ruby, or web development.

Q: Is HTML a programming language?

A: No, not really. HTML is a markup language (HyperText Markup Language), and it isn’t Turing-complete. That is, it lacks the different logic structures that programming has. HTML is more just a way to tell the computer how to display stuff, and the things you write with HTML aren’t interactive. To make interactive web sites, you need to use a programming language like Python, Java, PHP, Ruby… etc. You don’t think about it, but most websites you use on a regular basis have tons of programming behind them–it’s not just HTML and CSS.

CSS isn’t a programming language, either. Same deal, I’m afraid.

One could argue that they are both coding languages, though, in that you’re using an artificial language designed for computers in order to tell computers what to do. That’s valid. One speaks of “HTML code” after all.

III. Inevitable diversions

These are here because I don’t want to spend activity time on them.

Q: Can I use Linux to be a l33t hax0r and break into computers?

A: Yeah, if you’re an idiot who can’t figure out anything more fun to do with your computer than break into someone else’s. It’s a lot more technically difficult and interesting to build things rather than destroy them, and it also pays more and doesn’t get you into legal trouble.

Also, that’s not what a hacker is. You’re thinking of crackers. Hackers are the people who build open-source stuff, and they don’t like it when you mix up their names with criminals.

Q: Will you teach me cracking?

A: No.

Q: Should I use Kali Linux as my desktop OS?

A: If you want to be a white-hat, it makes sense to know Kali and the network security tools it comes with. I wouldn’t recommend it as a desktop OS, though. A lot of people are attracted to Kali because it sounds edgy, though, and that’s not a good reason to use it. Don’t do anything stupid with Kali.

Q: Do girls code and game in their underwear?

A: Yes, but where you get it wrong is in thinking that it looks remotely attractive.

Q: What are the best energy drinks? Is Monster good?

A: I covered this, actually. And no, Monster is toxic waste–Full Throttle, NOS, or Venom are much better.