Category Archives: FOSS

Server Management for Middle Schoolers Part 3: Ease of Use

I may be crazy, but I know there are some Middle Schoolers who can run a server. So I’m teaching them headless shell management and scripting, all so they can play Minecraft (the carrot, in this case.) They are learning surprisingly well, but then, so am I. I’ve never had to create a fully group setting on Linux, and didn’t anticipate all the issues I’d run in to. Wanting to have 17 kids in an ssh group, with access to a games folder that consistently outputs files they can all use, and allows them to run an instance of Minecraft they can all access… It is a lot to figure out. This series is going to cover the settings I came up with.

Bash Script Startup and Ease of Use

The biggest problem that I knew I was going to have dealt with the running of scripts. Most of these kids had never been exposed to a Linux environment, much less actually dealt with a command line. We were secure shelling in, so there wasn’t a GUI for them to learn and play with, but they had dealt with all of that issue like a champ. Some of them were getting taxed on the amount of commands they had to use, so I didn’t want to burn them out.

The tmux script that I was working with basically did three things. It set up the temp folder for the tmux instance, made sure that the group managed it, and then dropped in to the instance to operate it. The problem was the amount of typing each of these commands took. Individually, they look like this:

tmux -S /tmp/tmuxDirectory new-session -d -s Minecraft
chgrp MyGroupName /tmp/tmuxDirectory
tmux -S /tmp/tmuxDirectory attach-session -t Minecraft

which is a lot to remember for newly minted shell users. So I opted for scripts. Fortunately, these things are easy to write, and simple to use when you teach them.

Taking those commands and working them into a new serverstart.sh file looks nearly identical. I just commented what was happening with each line before I wrote it, for clarity, and threw a hash-bang /bin/bash on the top. Then I noticed I might want a little more abstraction, so I altered the file to pull the directory, the session name, and the group (incase it needed to change for some reason) out of this file. They are represented here by the $CONSTANTS

#! /bin/bash

# Import server configuration
source config.sh

# Abstract tmux code start $CONSTANTS in config.sh
tmux -S $DIR new-session -d -s $SESSION

# Change the group setting of the $DIR
chgrp $GROUP $DIR

# Start the server
echo Starting $SESSION Server Now

And at this point using the tmux ability to pass along keys is important.

tmux -S $DIR send-keys “java -Xmx2048M -Xms1024M -jar minecraft.jar nogui” C-m

obviously, even this code could (and should) be abstracted a little bit.

With all of this set, the only command the kids will need to remember to start the server is the executable ‘./startserver.sh’. So make it executable.

chmod +x startserver.sh

Other Useful Bash Scripts

Besides starting the server, there may be a time your team will need to manage the server, or stop it. Here are those scripts

serveraccess.sh

#! /bin/bash

# load the configuration
source config.sh

# Attach to shared server instance
tmux -S $DIR attach-session -t $SESSION

serverstop.sh

#! /bin/bash

# Load the configuration
source config.sh

# Stop the server
echo Stopping $SESSION Server
tmux -S $DIR send-keys “/stop” C-m

# Wait 5, then kill the Session folder
sleep 5
tmux -S $DIR kill-session -t $SESSION

You could, of course, be much nicer in this script and give players time to log out, but the flavor of that is up to you.

Wrap Up

I’ll be writing an update soon to tell about how these lessons have been received, how they are progressing, and some interesting difficulties with this situation that have arisen.

 

State of my FOSS, 2015 – The Youtube Enthusiast

Video Editing and Prep –Making it look good everywhere

Kdenlive-> Replaces Adobe Premiere / MovieMaker

Kdenlive (I have no idea how to say that) is a full feature video editor for Unix systems. This one won’t work on Windows, so you’ll have to find another alternative for that OS. This program does what Premiere does, and it does it well. It even feels faster on the render times, though I can’t say that with perfect experience. The biggest bit you’ll be missing out on with this, and the others in this post, is Adobe’s interconnected functionality. Not being able to just plop an editable AfterEffects composition in here is tough, but manageable.

Natron-> Replaces Adobe AfterEffects

Iniria (a research group in France) has hit a homerun with this sole replacement for AfterEffects. Natron does what you’d hope for in AfterEffects style. Kinetic Typography, moving images, quick transitions, all with a nodal editing system. I’m becoming a huge fan of this program, and am only not using it in my regular pipeline because I already have so much set up in Adobe.

Handbrake-> Replaces {Media Encoder / Compressor} and AdobeEncore (sorta)

Another French entry here, Handbrake gets a crack at every video that I output, even from commercial software. The compression alone is worth the effort to try this program out, but it also converts videos very handily between formats, and transcodes if you take the time to learn the closet space in this one.

MakeMKV-> Rips video from DVD to make MKV files.

MakeMKV is an indispensable tool to rip DVDs and BluRays to digital files. The legality of doing this is all in what you do with them. I have a media ‘server’ at home with our DVDs ripped out to it, so the kids can click and play. You can get short clips from movies to use elsewhere, just be careful for the copyrighting. My most common use for this, however, is in getting a video presentation for display that I’d rather have digitally than in a solid format. Works every time.

State of my FOSS, 2015 – The digital sculptor and game maker

This is the stuff I use for 3D images and games, there are other items, but they are less in the spirit of FOSS than they are just free versions of more robust programs (Sculptris, for example.) I threw the game stuff in here, though it doesn’t strcitly fit the 3D bill, I’m just starting out on trying Blender’s Game engine.


3D Art and Game Programming – Makes fun stuff

Blender -> Replaces Maya / 3DS Max / Unity (sorta) / Adobe After Effects & Premiere (sorta)

Blender is probably my personal favorite from this list. This plucky 3D graphics render program is a lot of bang for a single piece of software. If you aren’t into 3D rendering, the video editing tools are still good enough to pull your attention. I’ve been able to do nearly all my learning about how to use this program (with a tremendously steep learning curve for those not used to 3d rendering) online for free. The resources are out there, and the community is fantastic. Add to this, the fact that you can write scripts in Python for the program, and you have me sold. The game engine is not half bad, it probably can’t compete with Unity (also free) yet, but it is open source.

MakeHuman -> Procedurally generate human models

MakeHuman exports to a format useable by all 3d rendering programs, and dramatically reduces setup time for people images. Incredibly valuable for 3D artists who aren’t great modelers, but want to make images of people.

PyGame -> Versatile game coding for python

PyGame is a great framework for creating simple games in Python. Combined with other resources, it can be a really powerful engine builder, and it plays very well with Blender.

State of my FOSS, 2015 – The Web Builder.

If you are interested in connecting in the modern world, there are a great many ways to do it. If you are interested in building a website yourself, there’s some important stuff you should have from the FOSS community.


Web Software – Gets you connected

I should note here that if you are not developing in Python, you’re missing out.

MariaDB -> Replaces MySQL

This is a fun one, because MySQL is technically ‘free’ but isn’t open source, and that’s why there is MariaDB. If you need a database manager, I recommend Maria over MySQL, primarily because it is a drop-in replacement with more features. The creator of MySQL (Michael Widenius) created MariaDB after seeing how Oracle closed down MySQL after they purchased it, so this is a version of his creation that is sure to stay open source.

Web2Py -> Replaces {Content Management System}

Web2Py is a robust CMS for website development. If you know python, you can do just about anything in this that you need to. The alternatives are Rails for Ruby (not bad, but steep curve for learning) or PHP (yuck).

Synfig Studio -> Replaces Adobe Flash

Although Synfig Studio is a fullish featured vector program, the real power lies in its ability to animate graphics for web export. I don’t include it in the 2D art as much as here for the use it has as an animation program over a strictly art program. If you are interested in 2D animation, this is a must have. If you’d like some spiffy, moving graphics for your website, this is a solid choice.

State of my FOSS 2015 – The Artistic

There’s an artist in all of us, and sometimes we can make money with that. Here are some of the FOSS programs I’ve found useful for 2D / Digital art.


2D Art and Photo Editing Software – Makes stuff pretty

The GIMP -> Replaces Adobe Photoshop

The GIMP is a pinnacle example of Open Source Software. One of the best communities out there, a cohesive concept of what they are making, and countless script additions to fill needs the community has for the program. The learning curve for this program is no more steep than for Photoshop, and there are any number of reputable places to learn about it online. If you’re transitioning from Photoshop, I recommend this setup tutorial to make GIMP comfortable for you. If you aren’t, I still recommend reading that article for the ‘set to single window’ step, because that’s going to make your life a lot easier. This program is a must for ‘higher end’ image editing without the cost of a subscription to Adobe.

Krita -> Replaces Adobe Fireworks / Illustrator (sorta)

Krita is a nifty, quick paint program. You can make of it what you will, it isn’t as powerful as GIMP at image editing, but allows you a lot of freedom to get art on the digital canvas. It doesn’t vector as well as Illustrator, so that’s why I don’t give it full marks for that component, but it more than holds its own in its field. If you are a digital artist, this is a program you should have in your arsenal.

Inkscape -> Replaces Adobe Illustrator

Inkscape is a vector graphics program which works, in a very basic way, like Illustrator. It is lacking in some of the functionality that I’d like to see in a vector art program, but is useful enough that I haven’t had any problems switching to it over Illustrator full time. If there were an open source community that I’d like to throw my hat in to programming for, this would be it. It has a decent following, but kinda falls through the cracks with programs like GIMP and Krita on the market. The biggest advantage is the vector images, but most people needing to make those are in a pipeline, and will have one of the commercial programs for it. Technically, this is a necessary addition to any serious digital artist’s 2D FOSS tool bag, though your mileage may vary based on your desire to profit from your art.

IrfanView -> Replaces {image viewer}

While IrfanView is technically only a media viewer, there are some powerful extras hidden in it that make it very worthwhile for artists. Primarily, it is very useful for metadata analysis. Always remember, as an artist, to save your work with metadata, and then check it against this program. You can also check your favorite images for their metadata here, and get some insight to the artists, hopefully.

State of my FOSS, 2015 – The Essentials

There are some basic things that you need to be able to do, and here are the FOSS tools to get you there.


Essential Software – Gets the work done

Libre Office -> Replaces Microsoft Office Suite

Okay, I have to get the boring one out of the way first, you have to have Libre Office. Does what Office Does. If you are an Office power user, you’ll probably find something to quibble about here, but I seriously doubt it. Obviously this is not a cloud version like the newest Office products, your mileage may vary as to that being a pro or a con. Also, this does not have a mail component, but people only use Outlook because they have to (work email), anyway.

Scribus -> Replaces Adobe InDesign / Microsoft Publisher

I hate Publisher, so I didn’t want to put that up there, but a lot of people don’t know any better, because InDesign is so expensive. Welcome Scribus, a desktop publishing software that does what you need. No more wrestling with Publisher to put a text box where you want it, or have to recreate stuff that you’d like on a template page, and no subscription. Best of both worlds. This is a really powerful program, and as a previous InDesign power user, I can tell you, you won’t miss a thing. Top that off with great documentation and a decent Open Source community, and this program is gold.

Geany -> Replaces {text editor}
If you aren’t jumping to Linux, then NotePad++ is your go to for a text editor. If you are, then you’ll have more of a headache than it’s probably worth trying to install NP++, so go with Geany. Lightweight, straight text editor with a few hattrick function. Easy to manipulate to a useable GUI editor, if you aren’t in for a jump to Emacs or VIM (it’s okay if you aren’t.)

VideoLAN VLC -> Replaces Windows Media Player (and just about everything else media wise.)

I debated about where to put VLC Media Player, but it’s an essential enough software that it belongs here. Forget about downloading codecs for crappy, resource hog media players. VLC gets the job done fast and efficiently. Even if you aren’t interested in pursuing the rabbit hole of FOSS, you need to download this program. If you have a media file format, VLC will play it. Period.