This is especially for writers of big things. If you write small things, like blog posts or short articles, your best tool is probably a text editor you like and a way to handle markdown language. Chances are you use a word processor like MS Word or LibreOffice, and that is both overkill and problematic for other reasons, but if it floats your boat, happy sailing. But really, the simpler the better for basic writing and composition and file management. If you have an editor or publisher that requires that you only exchange documents in Word format, you can shoot your text file with markdown into a Word document format easily, or just copy and paste into your word processor and fiddle.
(And yes, a “text editor” and a “word processor” are not the same thing.)
But if you have larger documents, such as a book, to work on, then you may have additional problems that require somewhat heroic solutions. For example, you will need to manage sections of text in a large setting, moving things around, and leaving large undone sections, and finally settling on a format for headings, chapters, parts, sections, etc. after trying out various alternative structures.
You will want to do this effectively, without the necessary fiddling taking too much time, or ruining your project if something goes wrong. Try moving a dozen different sections around in an 80,000 word document file. Not easy. Or, if you divide your document into many small files, how do you keep them in order? There are ways, but most of the ways are clunky and some may be unreliable.
If you use Windows (I don’t) or a Mac (I do sometimes) then you should check out Scrivener. You may have heard about it before, and we have discussed it here. But you may not know that there is a new version and it has some cool features added to all the other cool features it already had.
The most important feature of Scrivener is that it has a tree that holds, as its branches, what amount to individual text files (with formatting and all, don’t worry about that) which you can freely move around. The tree can have multiple hierarchical levels, in case you want a large scale structure that is complex, like multiple books each with several parts containing multiple chapters each with one or more than one scene. No problem.
Imagine the best outlining program you’ve ever used. Now, improve it so it is better than that. Then blend it with an excellent word processing system so you can do all your writing in it.
Then, add features. There are all sorts of features that allow you to track things, like how far along the various chapters or sections are, or which chapters hold which subplots, etc. Color coding. Tags. Places to take notes. Metadata, metadata, metadata. A recent addition is a “linguistic focus” which allows you to chose a particular construct such as “nouns” or “verbs” or dialog (stuff in quotation marks) and make it all highlighted in a particular subdocument.
People will tell you that the index card and cork board feature is the coolest. It is cool, but I like the other stuff better, and rarely use the index cards on the cork board feature myself. But it is cool.
The only thing negative about all these features is that there are so many of them that there will be a period of distraction as you figure out which way to have fun using them.
Unfortunately for me, I like to work in Linux, and my main computer is, these days, a home built Linux box that blows the nearby iMac out of the water on speed and such. I still use the iMac to write, and I’ve stripped most of the other functionality away from that computer, to make that work better. So, when I’m using Scrivener, I’m not getting notices from twitter or Facebook or other distractions. But I’d love to have Scrivener on Linux.
If you are a Linux user and like Scrivener let them know that you’d buy Scrivener for Linux if if was avaialable! There was a beta version of Scrivener for Linux for a while, but it stopped being developed, then stopped being maintained, and now it is dead.
In an effort to have something like Scrivener on my Linux machine, I searched around for alternatives. I did not find THE answer, but I found some things of interest.
I looked at Kit Scenarist, but it was freemium which I will not go near. I like OpenSource projects the best, but if they don’t exist and there is a reasonable paid alternative, I’ll pay (like Scrivener, it has a modest price tag, and is worth it) . Bibisco is an entirely web based thing. I don’t want my writing on somebody’s web cloud.
yWriter looks interesting and you should look into it (here). It isn’t really available for Linux, but is said to work on Mono, which I take to be like Wine. So, I didn’t bother, but I’m noting it here in case you want to.
oStorybook is java based and violated a key rule I maintain. When software is installed on my computer, there has to be a way to start it up, like telling me the name of the software, or putting it on the menu or something. I think Java based software is often like this. Anyway, I didn’t like its old fashioned menus and I’m not sure how well maintained it is.
Writers Cafe is fun to look at and could be perfect for some writers. It is like yWrite in that it is a set of solutions someone thought would be good. I tried several of the tools and found that some did not work so well. It cost money (but to try is free) and isn’t quite up to it, in my opinion, but it is worth a look just to see for yourself.
Plume Creator is apparently loved by many, and is actually in many Linux distros. I played around with it for a while. I didn’t like the menu system (disappearing menus are not my thing at all) and the interface is a bit quirky and not intuitive. But I think it does have some good features and I recommend looking at it closely.
The best of the lot seems to be Manuskript. It is in Beta form but seems to work well. It is essentially a Scrivener clone, more or less, and works in a similar way with many features. In terms of overall slickness and oomph, Manuskript is maybe one tenth or one fifth of Scrivener (in my subjective opinion) but is heading in that direction. And, if your main goal is simply to have a hierarchy of scenes and chapters and such that you can move around in a word processor, then you are there. I don’t like the way the in line spell checker works but it does exist and it does work. This software is good enough that I will use it for a project (already started) and I do have hope for it.
Using Scrivener on Linux the Other Way.
There is of course a way to use Scrivener on Linux, if you have a Mac laying around, and I do this for some projects. Scrivener has a mode that allows for storing the sub documents in your projects as text files that you can access directly and edit with a text editor. If you keep these in Dropbox, you can use emacs (or whatever) on Linux to do your writing and such, and Scrivener on the Mac to organize the larger document. Sounds clunky, is dangerous, but it actually works pretty well for certain projects.
The next release of Ubuntu, the most commonly used and thought of by normal people and a few others version of Linux, is set to be released on Thursday, October 19th. The exact set of changes and improvements is not known, but a few key ones are, and some can be guessed at from the multiple pre-release releases.
This is a momentous occasion because this will be the first version of Ubuntu’s main flavor that does NOT include Unity as its default desktop.
If you don’t know, Unity was a menu and control system for the desktop, your main interface when working with the computer other than, obviously, while using a particular application. It was the look and feel, the essence, of the operating system. Unity was supposed to unify things, like diverse features of a typical desktop, like Ubuntu running on a cell phone, a desktop, a laptop, a whatever.
This is very simple, and it has more to do with the philosophy and marketing of operating systems than the technology of the operating systems themselves, though the technology does matter a great deal as well. First, lets have a look at how this ransomware attack was allowed to happen to begin with.
The vast majority of affected systems in this latest world wide cyber attack were Windows based computers that were not updated with recently available and easily deployed patch. The attack did not affect other operating systems, and Windows systems that had a recently released security patch were not affected. (I was going to put a link here to direct people to the Microsoft web page with info on what to do if you were attacked, but a minute or two of perusal on the Microsoft site mostly told me about Microsoft’s new products, and I did not find any such page. If you have a link, please place it in a snark free comment below.)
Why was the patch not deployed on so many computers? For several reasons.
Some of the operating systems were running under administrative policies that did not allow patching for some reason or another. I’ve only heard rumors of this but it sounds like a blind-future style pre-decision, in the same category of other bone-headed human processes like no tolerance policies for knives in schools and three strikes you are out sentencing policies. It works like this: You remove thinking from the process by making all decisions in advance, and then get the heck out of there with limited liability and whatever happens happens. If you do this you are probably a member of congress or a school board member planning on retiring soon. It never goes well. Telling security IT people in advance what they can and can’t do because of HR or personnel regulations is like going to a doctor and telling them what your diagnosis and treatment is going to be, in advance. You will die of something curable, eventually, if you do that regularly.
Some of the operating systems were running on computers that are, in theory, never supposed to be turned off. This is similar to the first reason in its stupidity level. For one thing, making it impossible to patch an OS ever is really not smart. For another thing, that computer you plan to never turn off is going to turn itself off now and then. But it is also bad at another level, the level of the operating system. Windows has operated, for years, under the principle that when enough stuff goes wrong, you turn off the computer and start again, and if that does not work you reinstall the operating system from scratch. Now, I know, you Windows lovers will jump in at this point and tell me that “Windows doesn’t work that way any more” but you know what? After decades of hearing how Windows Past is not Windows Present, when it really is, I don’t care what you say. Also, actual on the ground Windows users have been trained, by Microsoft policy, to reboot or reinstall for decades. Anyway, the point is, Windows can not be updated on the fly, and thus, the system utterly fails in a situation where updating is critical, which by the way is all the time and all machines, because even computers you use for nothing but curating recipes for muffins, if hooked to the Internet (where all the good muffin recipes are), can still be the platform for launching a secondary cyber attack.
Some of those operating systems were in health related fields (referring here to both of these first two excuses) and that is why so many health related facilities were hit initially.
Another reason, which is a bit tricky, is the problem with updating stolen software. If you stole the OS it might be hard to get an update or patch. It seems like a good idea for the company making the OS to do this, as it encourages buying the product and discourages stealing it. Yet, many tens of thousands of computers, maybe hundreds of thousands, are currently locked down by WannaCry because they were pirated, and not updated. This becomes a public health (cyber-health, eHealth) risk. It is like vaccination. We all suffer because so many others get the disease, even those of us who did not fail to do the right thing.
This is a moment when we look at something like computer operating systems and realize that they are actually a public good as much as, or more then, they are a commercial product. Think of roads and canals in the old days. Roads and canals were often privately owned (as were fire departments and police forces in many cases) and eventually it became apparent that these are all public goods, so they were essentially taken over by the government. Similarly, power companies and railroads. Not exactly taken over but made into quasi public entities through integration with public agencies and heavy regulation.
I’ve often argued that things like Google, Amazon.com, Facebook, Twitter, etc. have become the equivalent of public goods, like roads and the post office, etc., in a similar way. To some extent, this is also true of operating systems.
There is of course a solution to all of this. What we need is an operating system that is made by the public itself. If all interested parties simply became involved, and maybe large companies with a lot of stake in computers would put aside a meaningful amount of their own software development resources, and a few public and private agencies would provide some grants and bounties and stuff, we could have an operating system that was free, easily installed, updated every week with common updates (like, maybe, on Sunday evenings or something) with a very easy and easily automated system of updating, that would be great.
Ideally most software would come from well maintained and secure repositories that were checked for malicious code. There could be several different such repositories more or less redundant with each other but maybe tweaked to cater to different types of users. The added advantage of several different but similar repositories is this: even if some bad code gets into one repository, the fact that across users, many different repositories are used, would slow its spread.
By making the operating system free, easy, effective, powerful, flexible, and easily updated almost every one of the limitations in the way we do things that allowed WannCry to spread and ruin everything would simply not have happened. A few people would be hit, it would be a minor story.
On top of this, let’s make this new operating system have a few other security related features.
For instance, monitoring code. The way it works now with Windows, is that a finite number of paid and I’m sure brilliant individuals are in charge of coding and maintaining the operating system, and updated and patches, while a much larger number of criminal-minded nefarious but also brilliant individuals are focused on breaking the security. This means that there is an uneven arms race where day to day Microsoft will always be a step ahead of the bad guys, except every now and then when the bad guys jump ahead and make a huge mess.
I propose that this ratio be reversed, that the arms race between the good and the evil become totally one sided in the other direction. Have a very large number of individuals, a proportion of the above mentioned community of private individuals and interested corporations and agencies, working on security, swamping out the nefarious bad guys. There would be very few moments when the bad guys got very far ahead of the good guys.
In addition, the operating system itself could have other security related features. For example, the basic tools inside the operating system could be well maintained, highly traditional, really clean and neat code, and free to use. So, for example, basic tasks that any new software might use are figured out, so you don’t have to add your own new version of the code to do them. This means that new code will generally be fast, effective, clean, easier to maintain, and more secure.
Also, the operating system can work more like a prison than, say, a food court. In a food court, you do what you want to do (eat, meet your friends, hang out) in a rather chaotic environment where you can move freely from place to place. Someone puts their food down on a table to go back to the Azian Kuizine window to get the chopsticks they forgot, and you can grab their pot stickers, sit down at a nearby table, and no one can really figure out that you just sole their food. And so on.
In a prison, you can theoretically leave your cell and walk down the hall to the gym, then go to the cafeteria, then the law library. But, the entire route is blocked by a series of doors that only specific people have permission to open, at specific times, for specific reasons. Everything you do requires having permission at every step of of the way, and it is all constantly being carefully watched.
Life should be more like the food court. What happens inside computers should be more like the prison.
Of course, by now, most of you have figured out that I’m talking about Linux. Linux is an operating system that is already widely used when certain conditions pertain. Since the Android OS is based on Linux, and the majority of servers run Linux, and Linux is becoming the preferred desktop in China, it may well be that Linux is more widely deployed right now than any other operating system, though most Westerners think of it as nearly non-existent on desktops.
Critical tasks are often trusted to Linux or similar operating systems (Unix, BSD, etc.) because of reliability and security. When efficiency is required, Linux is often tapped because it can be deployed in a very efficient manner. Linux acts internally like the prison, not the food court. The system itself is constantly monitored open source code, and most of what runs on it is openly monitored as well. Software is usually distributed via secure repositories. The system is free and easily updated, there is no such thing as a pirated copy of Linux. There is a regular schedule of updates, they come out every Sunday.
Another important feature of Linux is the separation of the operating system and the surface appearance of the system. The operating system itself comes in a number of varieties, but most people use one of two: Red Hat or Debian (there are others). But the surface of the OS, the part the user sees, is not related to that at all. Most people use a “desktop” which provides the windows and stuff, the parts that you interface with, and there are several versions of this, from which users can more or less pick and chose.
Here is why this is important: The desktop provides the user experience, and the user experience sells the product. If you develop a proprietary operating system like Windows, many of your decisions, including when to produce major updates, etc. is driven by the marketing department. The development and deployment of the operating system is a complex process where designers and marketing gurus are at the same table, essentially, as security experts and developers concerned with efficiency.
In the Linux system, the security people and efficiency and functionality developers work most of the time independently from the equivalent of “marketers” or “designers” because of this two layer aspect of the system. It is quite interesting to visit the communities of desktop developers and hear what they are saying to each other, then visit the community of system developers and hear what they are saying to each other. They are pretty much two distinct conversations. There will never be a marketing or design decision about Linux that impacts security.
Linux is the female operating system in a patriarchic world. Refer to the appropriate John Lennon song for a starker analogy. It does a lot of the work, maybe most of the work, but is usually not recognized. When people make comparisons, Linux has to dance backwards and in high heels.
If I say, like I just said here, that “if Linux was widely in use, the WannaCry attack would have been much less severe” people will respond “Linux can be attacked too” and that will be taken by others, and possibly meant to begin with, as stating “Linux and Windows are the same, its just that attackers attack Windows and not Linux.” That is a pernicious falsehood that feels a lot like many sexist comments about the limitations of women. Yes, Linux could in theory be attacked. No, Linux is pretty much not attacked very often or ever, so your fantasy about how it can be attacked has no empirical back up. No, Linux and Windows are not the same in which they are developed, designed, maintained, deployed, updated, or secured, and every single one of those differences gives Linux a huge leg up on security and Windows one or more disadvantages.
If a cyber attack is a mugger, Windows is a physically small drunken person with wads of money sticking out of his pockets, staggering down a dark ally near the convention hall during a mugger’s conference, while Linux is a hundred sober and smart well trained Navy Seals each driving a separate armored car in undisclosed locations.
Yes, you can attack the Navy Seals. But if you do that, they’ll make you wanna cry.
We begin with the usual list of things you pretty much always do after installing every Linux OS. Why these things are not automatically done for you on installation is a bit mysterious, but down deep there are generally reasons (legal reasons) for some of these things. In fact, pretty much everything here, with some minor tweaking you can ignore, is the same as for Ubuntu 16. And 15, probably. If you’ve been upgrading to the latest Ubuntu on a regular basis, this might all be pretty automatic for you by now!
Update your operating system by opening a terminal and typing in these things (sudo will cause the terminal to ask for your password).
sudo apt update
sudo apt upgrade
Turn on the “Canonical Parter” repositories. Canonical is the company that makes and maintains Ubuntu. Go to Software & Updates and under the Other Software tab, check off Canonical Partners.
Go to “software and updates” and pick the tab for “Additional Drivers” and pick the graphics drivers that show up there as options, if necessary.
Most people will want to install media codecs so you can listen to, or better listen to, or watch, things.
It is easiest to do this from the command line (the terminal) by typing:
sudo apt-get install ubuntu-restricted-extras
Install Gdebi package installer, which I think is not already installed on this distro. This is a program that installed the contents of “.deb” packages, which you will occasionally (like, in a bout one minute from not likely) download in order to install some programs. Gdebi allows you to right click, or in some other easy way, deploy the package (which will be a folder with stuff in it) to have it all install automatically.
Find and learn to use the software installation system that comes with Ubuntu.
You will want to install the Unity Tweak tool because it allows you to … tweak Unity in ways the system configuration interface does not. Why are all the tweeky configury things not automatially in one place? I don’t know, and this to me is a major failing of the effort to get people to use the Linux Desktop.
Anyway, type this:
sudo apt-get install unity-tweak-tool
Since Unity is will never be deployed with a distribution again after 17.04, that will be the last time you do that!
Install your favorite additional software
The distribution comes with piles of software already, but there are a few things you may want to install because you use them. Use the software installer to do so, or go to the appropriate web site to download the deb file (which you’ll use gdebi to install).
I install Chrome Browser (others install Chromium, but I don’t think that is the best option). Go to the Google Chrome web site to find it.
I use Dropbox, and if you do, go to the Dropbox site and install the latest version.
Skype is installed from the Skype site as well.
I like GIMP image processing. That should be in your software installer center.
I like VLC as a media player. This should be in your software installer center.
The Unity Tweak tool lets you change how application windows are managed, including minimizing them. Play around with the tweak too.
Go to the configuration panel and select the theme you like, or leave the theme along. I’m kind of beyond changing my theme all the time but it is fun if you are into it, go for it!
Many will suggest system cleaning and monitoring tools. I don’t think most of these tools do much or provide much information beyond what you can get by using the command line tools that have always been there. Linux is not Windows. It takes care of itself and is not a crybaby. It is much more like a Mac in this way, and for good reasons: Both are Xnix operating systems, in the same family.
A Zapus is a kind of jumping mouse. A Zesty Zapus is the new Ubuntu Linux operating system, 17.04.
It has just been released and has some important features. But Zesty Zapus is not as interesting at the Artful Aardvark, which I’ll discuss briefly below.
Support of 32 bit hardware is waning across the Linux world, and in this release the 32 pit PowerPC is not supported. The 64 bit PowerPC still is, but I would not be surprised if that support dropped in the not too distant future.
There are various other changes deep under the hood that the average desktop user may not care about, including the use of systemd-resolved for the DNS resolver for networking.
Of special interest is that Ubuntu is now not by default using a swap partition. Swap is a place in your hardware, normally on a drive, that the operating system uses as extra memory, so that when you don’t have enough physical memory, the swap can be used. There are two ways to make swap, one is by dedicating a hard drive or hard drive partition to it, the other is having the operating system use unused disk space on your computer for it. In the past it has been considered faster and more efficient to use a partition, but the non-partition option has always been in the background to use as needed and you didn’t have to have a swap partition. Now, Linux seems to be moving away from the partition and using the swap file instead, and Ubuntu will do this by default.
Zesty Zapus uses Linux 4.10. It has “driverless printing” which is a new thing and works for some printers. There are updates to various software included with the distribution, including LibraOffice (now version 5.3, a fairly significant upgrade).
Several if not all of the major “Ubuntu Flavors” are also updated, including the one I prefer, which is Mate (I’ll write about that elwsewhere).
Otherwise, this new release of Ubuntu will act a lot like the previous release.
But that will not be the case with the next release, 17.10, Artful Aardvark. As the alphabetical cycle of release names comes around full circle, so does the desktop paradigm. Ubuntu, controversially to some, not controversially to most, started out years ago using the Gnome desktop. Over time, Ubuntu created the “Unity Desktop” which was meant to unify the user experience across all devices including the as yet to exist and now never going to exist (I think) Ubuntu phone. In my view, Unity was a bad thing, I did not like the way it worked. On the other hand, the main Gnome people for reasons that are still mysterious to me, decided to copy Ubuntu and make Gnome look and act a lot like Unity.
Now, Ubuntu will kill Unity. The next release of Ubuntu will not included Unity, and will instead use Gnome.
So, to install Ubuntu 17.04, which you may not want to do (I’d wait until 17.10 if you want the Gnome interface) go HERE and follow the instructions. It is possible that you can upgrade your current installation to the new release, but if you have a non-Ubuntu OS or an older version, you may need to download an image and reinstall. Then, when you are done, you may want to do these things.
Ubuntu is a form of Linux. Most references on Linux will be applicable to Ubuntu, but each distribution of Linus has its own features, so if you are going to use a specific operating system (Ubuntu vs. Fedora, for example) you will be happier with a book about that distribution.
This is a selection of what I regard as the best books for the purpose, but if you are reading this post in late 2017 or later, and you click through to a particular book, do look around for more recent editions. Also, check out the book reviews on my other blog, which will include all sorts of science books, some politics, and a good number of computer related books.
Unlike some operating systems, Linux doesn’t try to hide the important bits from you—it gives you full control of your computer. But to truly master Linux, you need to understand its internals, like how the system boots, how networking works, and what the kernel actually does.
In this completely revised second edition of the perennial best seller How Linux Works, author Brian Ward makes the concepts behind Linux internals accessible to anyone curious about the inner workings of the operating system. Inside, you’ll find the kind of knowledge that normally comes from years of experience doing things the hard way. You’ll learn:
How Linux boots, from boot loaders to init implementations (systemd, Upstart, and System V)
How the kernel manages devices, device drivers, and processes
How networking, interfaces, firewalls, and servers work
How development tools work and relate to shared libraries
How to write effective shell scripts
You’ll also explore the kernel and examine key system tasks inside user space, including system calls, input and output, and filesystems. With its combination of background, theory, real-world examples, and patient explanations, How Linux Works will teach you what you need to know to solve pesky problems and take control of your operating system.
Eight previous top-selling editions of Linux For Dummies can’t be wrong. If you’ve been wanting to migrate to Linux, this book is the best way to get there. Written in easy-to-follow, everyday terms, Linux For Dummies 9th Edition gets you started by concentrating on two distributions of Linux that beginners love: the Ubuntu LiveCD distribution and the gOS Linux distribution, which comes pre-installed on Everex computers. The book also covers the full Fedora distribution.
… unique and advanced information for everyone who wants to make the most of the Ubuntu Linux operating system. This new edition has been thoroughly updated by a long-time Ubuntu community leader to reflect the exciting new Ubuntu 16.04 LTS release with forthcoming online updates for 16.10, 17.04, and 17.10 when they are released.
Former Ubuntu Forum administrator Matthew Helmke covers all you need to know about Ubuntu 16.04 installation, configuration, productivity, multimedia, development, system administration, server operations, networking, virtualization, security, DevOps, and more—including intermediate-to-advanced techniques you won’t find in any other book.
Helmke presents up-to-the-minute introductions to Ubuntu’s key productivity and Web development tools, programming languages, hardware support, and more. You’ll find new or improved coverage of navigation via Unity Dash, wireless networking, VPNs, software repositories, new NoSQL database options, virtualization and cloud services, new programming languages and development tools, monitoring, troubleshooting, and more.
You’ve experienced the shiny, point-and-click surface of your Linux computer—now dive below and explore its depths with the power of the command line. The Linux Command Line takes you from your very first terminal keystrokes to writing full programs in Bash, the most popular Linux shell. Along the way you’ll learn the timeless skills handed down by generations of gray-bearded, mouse-shunning gurus: file navigation, environment configuration, command chaining, pattern matching with regular expressions, and more. In addition to that practical knowledge, author William Shotts reveals the philosophy behind these tools and the rich heritage that your desktop Linux machine has inherited from Unix supercomputers of yore. As you make your way through the book’s short, easily-digestible chapters, you’ll learn how to: Create and delete files, directories, and symlinks Administer your system, including networking, package installation, and process management Use standard input and output, redirection, and pipelines Edit files with Vi, the world’s most popular text editor Write shell scripts to automate common or boring tasks Slice and dice text files with cut, paste, grep, patch, and sed Once you overcome your initial “shell shock,” you’ll find that the command line is a natural and expressive way to communicate with your computer. Just don’t be surprised if your mouse starts to gather dust.
If you use Linux in your day-to-day work, this popular pocket guide is the perfect on-the-job reference. The third edition features new commands for processing image files and audio files, running and killing programs, reading and modifying the system clipboard, and manipulating PDF files, as well as other commands requested by readers. You’ll also find powerful command-line idioms you might not be familiar with, such as process substitution and piping into bash.
Linux Pocket Guide provides an organized learning path to help you gain mastery of the most useful and important commands. Whether you’re a novice who needs to get up to speed on Linux or an experienced user who wants a concise and functional reference, this guide provides quick answers.
Shell scripts are an efficient way to interact with your machine and manage your files and system operations. With just a few lines of code, your computer will do exactly what you want it to do. But you can also use shell scripts for many other essential (and not-so-essential) tasks.
This second edition of Wicked Cool Shell Scripts offers a collection of useful, customizable, and fun shell scripts for solving common problems and personalizing your computing environment. Each chapter contains ready-to-use scripts and explanations of how they work, why you’d want to use them, and suggestions for changing and expanding them. You’ll find a mix of classic favorites, like a disk backup utility that keeps your files safe when your system crashes, a password manager, a weather tracker, and several games, as well as 23 brand-new scripts…
In the first half of the book, you’ll learn about basic programming concepts, such as lists, dictionaries, classes, and loops, and practice writing clean and readable code with exercises for each topic. You’ll also learn how to make your programs interactive and how to test your code safely before adding it to a project. In the second half of the book, you’ll put your new knowledge into practice with three substantial projects: a Space Invaders-inspired arcade game, data visualizations with Python’s super-handy libraries, and a simple web app you can deploy online.
Scratch, the colorful drag-and-drop programming language, is used by millions of first-time learners, and in Scratch Programming Playground, you’ll learn to program by making cool games. Get ready to destroy asteroids, shoot hoops, and slice and dice fruit!
Each game includes easy-to-follow instructions, review questions, and creative coding challenges to make the game your own. Want to add more levels or a cheat code? No problem, just write some code.
Invent Your Own Computer Games with Python will teach you how to make computer games using the popular Python programming language–even if you’ve never programmed before!
Begin by building classic games like Hangman, Guess the Number, and Tic-Tac-Toe, and then work your way up to more advanced games, like a text-based treasure hunting game and an animated collision-dodging game with sound effects. Along the way, you’ll learn key programming and math concepts that will help you take your game programming to the next level.
Want to introduce kids to coding in a fun and creative way?
With the Scratch Coding Cards, kids learn to code as they create interactive games, stories, music, and animations. The short-and-simple activities provide an inviting entry point into Scratch, the graphical programming language used by millions of kids around the world.
Kids can use this colorful 75-card deck to create a variety of interactive programming projects. They’ll create their own version of Pong, Write an Interactive Story, Create a Virtual Pet, Play Hide and Seek, and more!
Each card features step-by-step instructions for beginners to start coding with Scratch. The front of the card shows an activity kids can do with Scratch–like animating a character or keeping score in a game. The back shows how to put together code blocks to make the projects come to life! Along the way, kids learn key coding concepts, such as sequencing, conditionals, and variables.
This collection of coding activity cards is perfect for sharing among small groups in homes and schools.
There is really no better time to get a Raspberry Pi. The new Raspberry Pi 3 has features that make it much more useful and fun, including more speed, built in bluetooth, and built in wifi.
The Raspberry Pi is a small computer that, out of the box, lacks storage drive or device, a monitor, a screen, or a mouse, but is otherwise a fully functional computer that can run a normal operating system. It costs very little, so if you happen to have a TV or monitor that can use a component or HDMI hookup, a keyboard, a mouse, and an appropriate microSD card, then you have a computer for $39.99. If, on the other hand, you need to buy those parts and the cables and such, then you have a $200 computer (or more) that isn’t very fast but is still cool. Chances are, though, that you have at least some of these parts laying around.
I’ll make some suggestions below as to how to set yourself up (including the option of buying a kit) but first let me say a little more about why you might want to do this.
Why Pi reason one: A kid
Maybe you have a kid in the house who is old enough to start to play around with a computer, but not old enough to not gob all over it, drop it, or mistake it for a bath toy. With a Raspberry Pi, you are not taking a big risk. First, it is cheap and easily replaced, compared to, say, a laptop. Second, if it does end up in the bath, it is probably easier to dry out than a notebook or desktop computer.
When Huxley was about five, I set him up with a Raspberry Pi hooked to an old TV we had laying around. I bought a new keyboard and mouse for it, and that keyboard and mouse has done a lot of good work since. He learned the basics of turning a computer on, turning a computer off, using the mouse, running some basic apps (like Tux Paint), etc.
Over the next year he continued to use the Pi but also graduated to a laptop his grandfather had laying around. It was a Windows laptop, so I wiped it and installed Linux. Huxley is now able to install software using the command line, and he is about as good at word processing as any average person. He’s pretty good with graphics software as well. At school, he’s been learning a watered down version of the iMac, he can use Windows, and he knows more about the Android and iOS operating systems than most. He turned 7 last week. I owe much of his rapid development to the Raspberry Pi. Also, to Linux; If Linux is one of your first operating systems, you will understand more quickly the things you need to know to make computers bend to your will.
Why Pi reason two: impress your friends
So, here’s the scenario. A bunch of your friends get together now and then at a particular coffee shop, or the cafeteria, or perhaps your family gathers at the cabin, or at a favorite vacation spot. Pretty soon everyone pulls out a device. Most have phones, but here and there a laptop being used by someone who needs to get some real work done.
Well, you need to get some real work done too, so you pull out a box of Altoids, plug it into the nearest TV, sign in via your iPad and, using the iPad’s virtual keyboard, get to work.
A Raspberry Pi can be cobbled together with a number of different bits and pieces, including some interesting options for the computer’s case, to make what is essentially a laptop or a funky desktop. It can work as a “headless” server, so you use a different device to access it.
My most elaborate setup involved a super fast USB stick to run the operating system. The microSD is the usual boot device, but I hacked it to hand the boot process over to the faster USB stick and run the computer from there. An HDMI output ran to a small TV. The Pi was hooked directly into the internet via a LAN cord (there is a plug on the Pi). A powered USB hub allowed multiple additional possibilities. A bluetooth dongle gave the device that capability, and allowed use of a mouse and keyboard. Oh, and I overclocked it. That was a Raspberry Pi 2.
The Pi 3 comes with built in wireless and bluetooth, and is faster and thus not so much in need of overclocking.
Why Pi reasons three through infinity: Projects
The Raspberry Pi is, as noted, a basic computer, but it has a number of pins that give the hardware access to outside thingies. These GPIO pins let you hook sensors or actuators directly to the Pi, so you can build things with a brain. In addition, there is the usual serial (USB) interface.
There are two commonly used machines on which a very large number of Do It Yourself (DIY) projects have been based. A home media center. A garage door opener. A weather station. A personal web server. A remote control camera for security or to watch birds or game. A system for turning on and off all your things, including lights. A customized alarm clock. A bitcoin server. Any one of a number of different robots.
One device is the Arduino Uno R3 Microcontroller, or a related card, the other is the Raspberry Pi. If you look around you will find dozens of other circuit boards that do these things, but none of them have the huge support network, gazillion lines of pre-written code, and myriad bits of hardware designed to be added on to make things happen.
The Arduino controller is, frankly, the better choice of machine for many uses. If you need a smartish machine to do one thing, and only one thing, and that thing isn’t too complicated, a Raspberry Pi is probably overkill and might have some downsides. A controller might even be better designed as hardware goes, as it is real time. Say you are building a model airplane and you want a smart device inside it controlling the various things that make it fly. You will be sending signals via radio to the plane. A controller can be set to cycle rapidly through the communications module to see if there are any instructions coming in, then to various sensor or actuator circuits to acquire information or to set the actuators to do things (change speed, etc.). You can be confident in advance that the controller will focus on nothing other than these jobs, and check each of these inputs and outputs several times (a known number of times) a second.
If, on the other hand, you use a computer — any typical computer — with a normal operating system like Linux, OSX, or Windows, then you can’t be as sure. There can be a software based timer set up in the computer that will theoretically go from sensor or actuator to sensor or actuator, checking the communication module for commands every cycle. But those cycles are virtual. If somewhere along the way a backup program was installed to make a copy of a directory and put it on a USB stick every hour, then suddenly your computer is busy doing something else. If updates are automatic on your setup, same problem. Yes, you can configure a system to not do anything you don’t want it to do, but you might not be perfect in you efforts. In other words, having a Raspberry Pi carry out time sensitive mission critical rapid fire acts is like hiring a potentially recidivistic but reformed fox to guard the henhouse. Yeah, it probably works, but if any chickens are missing …
The Raspberry Pi, running a normal operating system, can do pretty much anything any other computer can do, and might in fact, do any of a number of different things while still carrying out the program you wrote to operate the air plane. But the Arduino controller can only do a few things, and you can’t really accidentally have it programmed to send out bulk emails or get your fur coat cleaned while you are trying to control your expensive model airplane.
So, let’s say I want a device in my garage that has a sensor that tells me if the garage door is open or closed, turning on a light on a second device in my house (connected by radio signal) if the door is open, and allowing me to open or close the garage door by pushing a button on that interior device. That would be easy using two Arduino boards, some sort of sensor, a cheap pair of radio communication thingies, and some lights and resistors. (Plus the appropriate way to close/open the door, for which there are several options.)
Say I want to have a device in the garage that senses if the door is open, has a camera that can be used to check out the garage, communicates the status of the door via the internet, and allows me to remotely open or close the door or look at the camera’s image remotely form anywhere on my smart phone. You can totally do that with an Arduino controller, but that will involve adding a lot of parts and raising the cost, and you may be limited in other ways. A Raspberry Pi would be better for this application.
Say I want the device in the garage to have a movable pointable camera, a temperature sensor, a “door open” sensor, a door close/open actuator, and a way to turn on and off the main garage light. But, I want to control all of those functions from the Internet, and I want the same internet interface to also give me the temperature in my house and provide a view from a camera pointing out the front door. I also want the same system to give me access to my Google calendar.
For that, I’d want the Raspberry Pi running the web server, hard wired, perhaps, into my home LAN, and fitted with a Camera Module and a temperature sensor. I the Garage would be an Arduino with a movable camera and all that other stuff, controlled via the Pi that sits in my house.
And so on.
Very elaborate home automation systems have been built using a combination of various Arduino controllers and a Raspberry Pi at the center of it all.
The Raspberry Pi can run any software that normally runs on Linux, if that is the operating system you install (which is probably the case). Most projects that use the Pi as the central brain use Python, which is an all purpose programming language. The Arduino controller uses a form of C, but it is easy to use and for most functions, there is already code ready to use out of the box or with minor changes. The Pi can have huge programs and handle massive amounts of data, if you have a large enough USB stick or microSD card. The Arduino is very limited in space and memory, though it can be attached, with some extra work, to various mass storage devices.
I think you get the idea.
What kind of Pi do you want?
There are four kinds of Raspberry Pi. The Zero, the One, the Two, and the Three. If you are getting a new one, just get the three. It replaces the one and the two. (The Zero is a whole different thing, for advanced users.)
In order to make a Raspberry Pi work, you will need things like a power adapter, a keyboard, etc. You might want to put it in a case. You will need a microSD card with the operating system on it. Since the Pi is a DIY device, the basic unit comes with none of this and you have to figure it all out yourself.
Or, you can buy any one of dozens of available kits that have some combination of some of the basic parts needed. Kits don’t have a monitor, keyboard, or mouse. The Raspberry Pi comes with the rarely used component jack (the yellow round thing on the back of your TV may work with it) and an HDMI output, for video, and several USB sockets. The PI 3 has bluetooth built in, so you can use a bluetooth mouse and keyboard if you want. The kits tend to have the Pi, an SD card often with the OS preloaded, an HDMI cable, a power supply, and a case. Most kits these days come with heat sinks, which are pretty much unnecessary but cool, that you can glue on to the Pi if you want.
For the more DIY oriented user, the CanaKit Raspberry Pi 3 Ultimate Starter Kit – 32 GB Edition comes with additional parts that will be helpful in building projects that exploit the Pi’s input/output pins, such as LED lights, hookup wires, and resistors, a breakout cable, and a breadboard. The way the Pi is set up, you will want a breakout system to allow you to mess with electronic components more easily and safely (safe for the Pi, that is, with its sensitive computer circuity). If I was going to give a kit to someone who I knew was going to mess around with the hardware, this is the kit I’d probably pick.
The Operating System, which you can download at the Raspberry Pi site and install on the microSD card, also allows for some options. And, it can be a little confusing.
There is a “system” called “noobs” (for Noobie, I assume) which is the easy way to install Raspbian. Or, you can get Rraspbian sans Noob, which is apparently the hard way to install Raspbian. I’ve done both, but I don’t remember if one is actually harder.
Raspbian is the basic OS for the Raspberry Pi, and it is a Linux distribution based on Debian (get it? Raspberry Pi Debian = Raspbian?)
The Raspbian distribution formerly used LXDE as the desktop, a lightweight, not very fancy, stable desktop. But, recently, the desktop was redesigned to be much sleeker and nicer (but still basic and efficient) and has been renamed Pixel. (Pixel as in Pi-something, but also, named in part after the author’s experiences as a young child playing peek-a-poke in Basic on his IBM clone.)
You can also install a version of Ubuntu Mate. I’ve done that. I don’t recommend it. The Pi is not meaty enough to pretend to be a normal desktop computer when saddled with the extra overhead. Pixel is the way to go. But it was fun to play around with. Another option is the OSMC, or Open Source Media Center, if you want to use the machine as a media center. There are others. I’ve no experience with them, so I can’t tell you much about them. But I can tell you this very cool thing: You put the OS on the microSD, and put the microSD in the Pi, and that is what determines what OS you are using. So, you can swap between operating systems but just swapping cards. How cool is that?
One especially advanced but seemingly widespread use of the Pi is to build a gaming device. You install some software. Then, you install the bios of one or more gaming systems. Then you install the games that go with that gaming system. Obviously, you will only install systems and games that you already own, and not find anyplace on the Internet to download them. Then, you have all those old console games on your Pi. You’d probably buy some game controllers to hook up to that device, and you’d probably run it on your TV.
All the information you need to make all of this work can be found either on the Raspberry Pi site, or at a destination linked to from that site.
Raspberry Pi Cases
As noted, you can use the Raspberry pi as a regular, low power but usable, computer and at the same time make a cool case for it. This is a bit like having a laptop that you carry around, but instead of a laptop, it is a box of Altoids. Or some LEGOS.
Instructions to make the Altoids Pi case are here.
There are a gazillion projects on line that use the Raspberry Pi. Here, I’ll give you just a few examples. Most of the examples use Raspberry Pi 1 or 2 (probably, 2 is the most common) and in most cases you’ll want to use a 3. So, the best way to get good instructions for a project is to look at a few examples and hopefully among them will be one that uses the Pi 3.
Here is a somewhat slow but a good start on a PIrsonal Assistant. You can make this run faster if you tweak it (and use the Pi 3):
Do you know what Tor is? If not, maybe find out. Given the current political climate, it may become more important. Anyway, you can make a Tor Router.
There are many picture frame projects out there. Just search for Raspberry Pi Picture Frame.
Here is a system that controls your lights using voice commands.
If it was me, I’d skip the voice feedback. The detailed instructions are HERE.
At first I thought this Pi controlled espresso machine would be dumb, because really, what can a computer to do make an espresso machine work better. Then I looked more closely at it and realized this is a thing.
Stratux looks interesting. I remember my uncle, a Franciscan missionary who would stop by now and then on his way to this or that remote place, invented something like this back in the 60s. Stratus is a device you use to identify aircraft in your vicinity, using the plane’s ADS-B broadcasts.
I’m not going to point to a particular media streaming project. There are many, many such projects and it all depends on what you want to do. Just do a search for using the OSMC system on Pi. Or, just a simple music streaming machine.
Same with console gaming projects.
People make Minecraft servers. Generally, if there is anything you might like to dedicate a computer to, that is on all the time, the Pi may be the way to go. It is very low power demanding, and cheap enough that you can dedicate this card to that one purpose, leave it running, and give it just enough maintenance to keep it from being coopted by nefarious hackers.
A print server, a file server, a local web server for your own uses, a system that puts your google calendar or other stuff on a TV screen (or other screen) for your convenience. Each of these idea has 20 or 30 iterations out there.
I hear someone is working on an “Election Converter” that runs on a Raspberry Pi 3. I’d send you a link but the instructions are written in Cyrillic.
Andy Lee Robinson started the recent trend of making compelling graphics about climate change that move. He did a version of the Arctic Ice Death Spiral (a term coined by Joe Romm), which was highly acclaimed but that did not go as viral as it should have at the time. Then, a version with additive ribbon graphs about three years ago. He called that the “waterfall diagram” and it was picked up and used by the BBC at the time. Not long after, he came up with the disappearing block of ice motif. And now, Andy has an updated version, here:
This is ice VOLUME, not the oft cited surface area. Surface ice will always reform and melt in the Arctic, but long term there used to be a lot of thick ice that never melted during the summer. This long term thick ice would survive the summer melt, and allow new winter time surface ice to form more easily each year. As that ice disappears from various coastal areas in the high Arctic, new winter surface ice takes longer to get going.
The first version of this graphic, using ice blocks, was requested by Joe Romm, for Think Progress, in 2013, and appears here. Joe just wanted two ice cubes, side by side, and that is what Andy provided.
But Andy got thinking about the presentation of this very important climate change related metric. “After a while I thought it would be a nice challenge to try to animate it,” he told me. “To accomplish this, I started from the same camera angle, zooming in, following the line to the minimum and then returning to the original location. This required a way to create hundreds of script files to describe each frame.”
Andy told me that he is fluent in Perl, so he used that to calculate parameters for the objects he wanted to manipulate and substitute them in a povray script template. “At a resolution of 1920×1080, it takes between 15 minutes and 2 hours to make one, depending on what computer is working on it. I wrote spline and easing routines to calculate the smooth motions of the camera and cube sizing, and to interpolate the progression of the graph series.” The MySQL is a shared database that each server has access to, in order to check out a frame, render and return the results over NFS to a shared directory.
“The same perl program is run on each server and therefore knows which frame to render next, and after a few days the finished frames can be assembled together using ffmpeg with music, in a wav file.”
Andy, who is a gifted musician, composed the music himself.
“This uses 8 machines in total, including a linux laptop at 2 hours per frame! It was very painstaking work, writing all the code and parameters, but once done the images can be replicated automatically as new data appears. If only it would pay the rent!”
The history of what we call “OpenOffice” is complex and confusing. It started as a project of Sun corporation, to develop an office suit that was not Microsoft Office, to use internally. Later, a version became more generally available known as Star Office, but also, a version called “OpenOffice” soon became available as well. The current histories say that Star Office was commercial, but my memory is that it never cost money to regular users. I think the idea was that large corporations would pay, individuals not. This was all back around 2000, plus or minus a year or two.
In any event, the Open Office project built two things of great importance. First, it made a set of software applications roughly comparable to the key elements in Microsoft’s Office Suite, including a word processor, a spreadsheet, a presentation app, and, depending, something that draws and something that relates to databases.
The second thing it did was to create and develop an important open source document format.
But, believe it or not, in the world of software development and programming, even in the happy fuzzy world of OpenSource, there can be fights. And, not just the fun and tongue in cheek fights over which religion you are (vi vs. Linux). These fights often involve differences in points of view between megacorporations that get involved in OpenSource projects, and the unwashed masses of programmers contributing to such things. The majority of code is written and maintained by corporations, much of that in the hands of a very small number, but the contributions from individuals not linked to corporations is extremely important.
In the case of OpenOffice, the tensions were between the broader Office-interested development community and big corporations shifted in 2010 when Sun corporation which had always been involved in OO development, was purchased by Oracle Corporation. Oracle has not been friendly to OpenSource in the past, so the wider community freaked. There is a side plot here involving Java, which we will ignore. Oracle didn’t end up doing anything clearly bad against the OpenOffice project. But, they also ended up not doing anything good, either, which is essentially a death sentence for a project like this. Later in the same year, an organization called The Document Foundation was created and took on the job of forking OpenOffice.
Forking is where a given lineage of software is split to create an alternative. Sometimes this is to bring some software in a different direction, perhaps for a more specialized use. Sometimes it is a way of resolving conflict, much as hunter gatherers undergo fission and fusion in their settlement patterns, by separating antagonists or putting a distinct wall between antagonistic goals. In this case, while the latter is probably part of it, the main reason for the fork and its main effect was to get the project under the control of an active development community so work could be continued before the project stagnated.
That fork became known as LibreOffice. For some time now, it has been recommended that if you are going to install an OpenSource office suite on your Windows, Linux, or Apple Computer, it should be LibreOffice.
One could argue that the OpenOffice suit or its analog (earlier, Star office, later the LibreOffice fork) is the most important single project in OpenSource, because an office suite is a key part of almost all desktop computer configurations. Of course, most servers don’t need or require an office suite, and there, web servers and database servers, and a few other things, are more important. But to the average end user (in business or private life) being able to open up a “Word Document” (a term misapplied to the category of “wordprocessor document”), or to run a spreadsheet, or to make a presentation, etc. is essential, and that is what an office suit provides. OpenOffice was comparable to Microsoft Office, and now, LibreOffice is comparable to Microsoft Office. By some accounts, better, though many Microsoft Office users have, well, a different religion.
Now, it is being reported that the mostly ignored, maligned by some, historically important yet now out of date OpenOffice project is about to byte the dust. As it were.
Dennis Hamilton, VP of the group that runs OpenOffice, “… proposed a shutdown of OpenOffice as one option if the project could not meet the goals it had set. ‘My concern is that the project could end with a bang or a whimper. My interest is in seeing any retirement happen gracefully. That means we need to consider it as a contingency. For contingency plans, no time is a good time, but earlier is always better than later.'” [Source]
Approximately 160 million copies of LibreOffice have been downloaded to date. The closing of the OpenOffice project, should that happen, will probably have little effect on LibreOffice, since most people had already walked away from the venerable old but flawed grandaddy of OO Suites.
Most of these commands start with the word “sudo.” This is because these tweaks change the software or the operating system, and Linux needs to know that the person in charge of the computer is doing that. Start a command with “sudo” and after you enter the command, you will be asked for your password. Enter the password, hit Enter, and you are good to go. If the next time you use “sudo” is soon enough, you won’t be asked for your password.
There is one other thing you might want to know so the rest of this makes sense.
Software, applications, apps (three words for the same thing) typically come in “packages.” A package is a bunch of stuff that includes information on what needs to be installed to make a piece of software work, what needs to be done to let the system know it is there, etc.
Packages live in repositories, and they live on the internet. (They can also live on a DVD but that is rarely done for the average user … there were in fact packages on your installation DVD but that’s the last time you’ll probably use DVD or USB stick based packages.)
Your computer, after installation, is set up to know about certain repositories. This is the great advantage of using Ubuntu or many of the other major distributions. You get that distribution’s repository, and the packages stored there are carefully maintained and secured. Installing off a major repository like this means no viruses, malware, “freeware” or other junk will get onto your computer. It also means that when you issue a general update command, your computer visits the repository and updates all of your installed software based on whatever is new or changed in the repository.
During the following process, you will likely add some new repositories to your computer’s database of repositories. Just follow the instructions. But note, in order for an added repository to be known about, you add it, then you update the package system. Again, just follow the instructions.
It is also possible to install software using a downloaded package. In the case of Ubuntu (or any debian based Linux distribution), these are files with the “deb” extention. If you have the right software installed, you should be able to just double click on a deb file and pick an option to install it. I include an example or two of that process in with the tweaks below.
Finally, as you will see, there are several different software interfaces to this installation system. For the most part, you can install anything from the available repositories using the Ubuntu software center. But the Ubuntu software center is one crappy piece of software, in my opinion. It looks slick, but is slow and clunky and frustrating.
There is a system that works better (it is more responsive) but harder to use (because it does not hold your hand much) called synaptic.
But generally, the smoothest, quickest, easiest way to install most software from the repositories that your computer is aware of is with the command line, using the command “sudo apt-get install bla-bla-bla.” As shown below many times.
So, now, on to the tweaking.
1. Make the terminal program handy
First, open a terminal. You may have already placed an icon for the terminal on the Task Panel; if so, click that. If not, hit the “super” key (the Key Formerly Known as the Windows Key) to bring up the Unity dash. Then, type in “terminal” and choose the icon for the terminal program.
Now that the terminal program is running, you’ll see it in the Task Panel. If you’ve not already locked the terminal icon to the Task Panel, right click on that icon, and opt to have the terminal icon always be in “the launcher” even if it is not running.
2. Update the software and operating system you just installed
Even if the system was updating while installing (that was an option you had during the install), there are probably still some things that need updating. If you have not done so yet, type or copy/paste this into the terminal (shift-ctrl-v to paste in a terminal) and hit enter:
sudo apt-get update
You will be asked for your password. Type it in and hit “enter.”
If you are asked a question with a “Y/n” answer, type in “y” and otherwise follow any obvious instructions.
The updated command is a quick and dirty way of making sure that the software you have installed is updated. Chances are that when you do this after install, almost nothing will happen because little or no software will be ready for an upgrade.
When all the gobbledygook is done in the terminal, type in:
sudo apt-get dist-upgrade
The dist-upgrade command will, in short, do a more thorough job of updating the things that are installed on your sy stem (it does not upgrade you to a new distribution, it just updates the software with more awareness of what the distribution specifies in terms of packages and interrelations between packages). The details are not too important. What you need to know is that “apt-get update” is quick and useful, and “apt-get dist-upgrade” will take much longer to run, but do a much better job of updating things and cleaning up after itself, and should be done now and then.
If you are asked a question with a “Y/n” answer, type in “y” and otherwise follow any obvious instructions.
These steps can be fast or slow, depending.
3. Make installing software easier
First, enable the Canonical Partners’ Repository. This will allow you easier access to some software. A repository is where software lives, and your installation programs know about only certain repositories, and ignore others.
Open System Settings (on the Task Panel, the gear and wrench icon)
Click on “Software and Updates”
Go to Other Software tab.
Click the check box for “Canonical Partners”
You may be asked for your password.
You will be asked to “reload” the repository info. Do that.
There are a couple of applications for installing and updating software, and you can have fun with them, but two tools that are really helpful that Ubuntu mysteriously does not install by default should be installed now. One is called “synaptic” and it is a menu drive graphical interface to your repositories, the other is gdebi, which allows you to install software that comes to you via download in a “deb” package.
sudo apt install synaptic sudo apt install gdebi
If asked to choose Y/n at any point, choose Y
4. Install Linux graphics drivers
This may not be important, or it may be, depending on your hardware. So just do it and see what happens!
Do whatever it says there to install any graphics drivers that may be available.
5. Allow Workspaces To Work
I have no idea why a Linux distribution would not have work spaces right there in your face by default, but Unity seems not to. Workspaces is one of those desktop things that makes non-Linux users go “wow, that’s cool, now I want Linux!”
A workspace is a desktop, and multiple workspaces are multiple desktops, on which one or more applications are running. Macs have something like this now (stolen from Linux, but implemented poorly). The Linux implementation is better. You smoothly sail between desktops with Ctrl Alt Arrow Keys, and Linux does not randomly make new desktops for you like a Mac does.
System Settings >>> Appearance >>> Behavior
Check the box to enable workspaces, and the box to Add show desktop icon to the launcher.
6. Install Java
Java is required for running many application’s on Linux platform, So should install java using these three commands in sequence (one at a time).
sudo apt-get install default-jre
7. Fix app menu problem
One of the bad things about Unity was to cause application menus to become invisible and to not be on the application. If you want to see the menus where they belong, you can fix that.
System Settings >>> Appearance >>> Behavior tab >> ‘Show the Menus for a Window’
Check ‘In the window’s title bar’
Check ‘Always displayed’
8. Classic Menu
One of the things I miss most from an old fashioned Gnome 2.0 style desktop is a simple menu, with submenus, that includes all the software installed on my system. To me, this is really important.
And, solvable. We can add a Gnome 2.0 style menu thingie to the app panel in Unity.
You will have to log out and back in again for the menu to show up. Use the gear icon in the far upper right of the screen to log out/shut down, etc.
9. Show Your User Name On The Top Menu Bar
It may be useful to show your user name on the Top Menu Bar (the strip along the top of your screen). Here is one way to do that, using the terminal.
gsettings set com.canonical.indicator.session show-real-name-on-panel true
If you want to turn this back off, do this:
gsettings set com.canonical.indicator.session show-real-name-on-panel false
10. What about Adobe Flash? And Therefore, Chrome?
This is complicated. Flash turns out to be something of a nightmare. Perhaps it was a good idea at the time, but increasingly developers and such are avoiding using it. But you probably need Flash now and then, but almost always in a browser window. So, the way to handle this is to use Google Chrome as your browser. Not Chromium.
The Firefox browser is installed by default in most Linux distributions. This is cultural, maybe even political. Firefox as a piece of software, and an organization, has been central to the development of OpenSource software, so it is sort of worshiped. I recommend ignoring it. So, when you get to the part below about installing Chrome, do that.
If you google “how to install Google Chrome on Linux” you get this:
Choose either 32 bit .deb (for 32bit Ubuntu) or 64 bit .deb (for 64bit Ubuntu)
Click Accept and Install.
Download .deb file to a folder (Downloads is the default folder)
Open up your Downloads folder.
Double-click the .deb file you just downloaded.
This should launch Ubuntu Software Centre.
NOTE: Google often updates its method of installing. I just installed Chrome and it took fewer steps than indicate above. If you’ve already installed gdebi (as suggested above) this will be very quick and automatic.
You will be asked if you want to make Chrome your default browser. I recommend doing this. Then, run Chrome and lock the icon to the Task Panel, because you will probably be using it a lot.
11. Install Dropbox…
… if you use Dropbox.
sudo apt install nautilus-dropbox
Then simply launch Dropbox from Unity Dash and follow the instructions.
This uses the wget command to go on the internet and download a part of a web site, in this case, a file on the web site. This may not work if they changed the name of the file, but this is currently the correct name.
After downloading the package, install it using the previously installed deb package application:
sudo dpkg -i dropbox_2015.10.28_amd64.deb
12. Install VLC
Linux, and in this case, Ubuntu, comes with various multimedia playing software, but generally not with VLC, which is a very good piece of software. If you want, you can install it this way:
sudo apt-get install vlc browser-plugin-vlc
13. Install Gimp Image Editor
GIMP stands for “GNU Image Manipulation Program.” It is an OpenSource pixel-based image manipulation program for photographs, drawings, etc. In the old days, it was included in most Linux distributions but no longer is. If you want to install it:
I’ve not used Bleachbit. But everyone seems to like it, and you might want to try it out. It cleans up internet histories, destroys temporary files, and other junk that tends to accumulate on your system.
Linux is not like Windows (or at least, like Windows was in the days I used it). It does not accumulate a lot of junk to the point where it slows down and stops. But it can accumulate some junk, and apparently, Bleachbit helps take care of this.
I’ve decided to remove the recommendation to install bleachbit. As I already suggested, Linux is designed in such a way that the things a clean-up program like bleachbit does are unnecessary. I suspect bleachbit is a bit like Linux based ant-virus software, something that former Windows users want to see, because such kludges are necessary in Windows.
So skip this step (I deleted the code for installing it anyway).
15. Install Skype…
… if you use it.
sudo apt-get install skype
16. Install the Unity Tweak Tool
You can configure, tweak, and generally mess around with your Unity Desktop using the installed System Settings and various esoteric bits of software, but if you install the Unity Tweak Tool you will probably find most of what you want to do, and more, there.
sudo apt install unity-tweak-tool
In the unlikely event that you end up messing up Unity with all your crazy tweaking….
Now, you know how to install software in Ubuntu, and generally, in debian based distributions, and you have some experience with the command line.
What you can do now is explore all the software that was automatically installed on your system, such as Libra Office (which stands in for Word, Excel, Power Point, etc) and all sorts of other cool stuff. If you installed the traditional style menu applet as described above, that is a good way to explore around among the available software offerings.
From now on, every now and then, run
sudo apt-get update
sudo apt-get upgrade
Also, on the standard Ubuntu distribution, there is a semi-automatic software updater that will remind you to update software now and then, or that can be set to do it automatically. I don’t like setting it for automatic on a laptop, but maybe on a desktop.
If you have installed Ubuntu with the Unity desktop, you’ll learn how to use it mainly by playing around with it. Discoverability of its various functions is more or less built into the design. But there are a few things you will want to know right away in order to get up to speed efficiently.
The first thing you need to know about the Unity desktop is that the words people use for the various parts are all over the map. I’ll try to be consistent in my own use of terms, but if you read about Unity in other places, you may need to know, for example, that the “Task Panel” and the “Launcher” and the “Dock” are the same thing.
Task Panel (Launcher, Dock)
So, let’s start with the Task Panel (aka Launcher, or Doc). This works much like the doc on a Mac, but placed by default on the left side of your screen, which makes sense for wide screens. The Task Panel has a bunch of icons on it by default. You can remove or add icons as you wish. Most or all of these icons represent software you can run but that is not running now. This is your handy dandy way of running your most commonly used software (apps, applications). Just click on it and it will go.
Once an application is running, it will have a little thingie on the icon indicating that this is an active application. More than one instance (window, etc.) of an application running will cause the icon to have a slightly different look, and when you click on it you will see small versions of all the windows that are open, so you can pick the one you want to use.
You can quickly switch between applications by clicking on the icons of running applications.
If you start an application from somewhere other than the Task Panel, an icon for that application will normally be added to the Task Panel. This is your chance, using right clicking, to tell Unity to keep that icon on the Task Panel, for easy access, even after you shut that application down. Obviously, there is only so much room on the task panel for icons, but you can scroll up and down. You can also make the icons smaller, which will allow more to fit. But really, you should only keep the half dozen or so applications you use most of the time on the task bar.
Right clicking on an icon, as noted, gives you the option to lock it to, or unlock it from the Task Panel (but that menu item will call it a “launcher.”) But depending on the application, you may have a number of other choices. For example, clicking on the file manager will give you a list of commonly used (according to Unity’s designers) folders you may want to open.
The top icon on the Task Panel opens the Dash. You can also open the Dash by pressing the Super Key (the key formally known as the Windows Key).
The Dash is a big giant square thing that comes flying out of the Dash Icon. there is a space on the top that is clearly for searching for things. A common use of the Dash is to open it, and then you start to type in the name of an application. The Dash will show you an ever-narrowing set of choices which you can pick, or, when you end up with only one choice, you just hit enter and that application runs.
If you have just installed Ubuntu and haven’t done any of the recommended tweaks, try this: Open the dash, and start typing in “terminal”. Once you see the terminal application as your choice, hit enter (or click on it). Now, the Terminal icon is on your Task Panel. Right click on the Terminal icon and lock it to your Task Panel. Once you are set up and using Ubuntu a lot, you may find that you rarely use the terminal, but when you are first installing and tweaking the system, you’ll find it handy to have this icon readily available.
The Dash has many other powers. It can show you recent files, recent downloads, recently used apps, etc. Searching for apps is pretty smart. Terms that are not in the name of the application but that suggest the application might (depending) show you an icon for the application. For example, the search term “Network” will get you several choices including the “System Monitor,” because the System Monitor monitors, among other things, the network.
The Dash has what are called “Lenses.” See the bottom of the Dash to find the “home” lens, the “applications” lens, etc. If you select the “music” lens, you see, and search will search among, the music files in your music directory.
Workspaces are one of those features of early Linux desktops (before Unity) that makes you look at Linux and go “I want that!!!” This idea has been implemented over the ages in Windows and other systems, with varying degrees of success or longevity, but it was originally implemented in Linux in a way that really works. It is now part of the Mac operating system, though that implementation is rather poor, in my opinion. But it was always there in Linux.
See this post on tweaks if your workspaces are not turned on. But if they are, there should be an icon in the Task Panel, near the bottom, which is a workspace switcher.
Here is what a workspace is. Imagine that you open three or four applications and have the windows all visible. That is a workspace. Now, you switch to a different workspace, and those windows are now not visible, because they were on the other workspace. You now have a clean workspace. You can now open other applications (or more instance of the same ones) on this clean workspace. Switching between workspaces allows you to have a handful of applications running and organized on the screen like you want them, but then, you can go to a different workspace and do entirely different work.
For example, I might have a file manager opened to a particular subdirectory, and a text editor or two, for a writing project, on one workspace. On a different workspace, I have an email client, and a web browser with a tab showing Facebook and another tab showing Twitter. I can ignore the email and social networking while I write, but now and then take a break and go over to the other workspace and screw around on social media and check my email.
Workspaces are a great way to pretend you are being very efficient!
When you hit the Workspace Switcher button you get a view of all your workspaces, and can chose among them. You can even drag open applications between workspaces. (And, by the way, you can configure a particular application to always be visible on all workspaces, and otherwise tweak the whole workspace thing quite a bit.)
But, there is a better way to switch between workspaces …
Hotkeys and shortcuts
This is a good point to talk for a moment about hot keys and shortcuts. There is a lot here but I’ll only mention a few features, starting with workspaces.
In Linux, generally (most desktops) including Unity, you usually move between workspaces by holding down the Alt and Control keys and then manipulating the arrow keys. Also, Alt-Tab moves between windows open on a given workspace. Try alt-tab then hold those keys down for a bit longer, and even more magic happens. So, between these two sets of shortcuts, you can move between all your different work thingies really efficiently.
There are a lot of shortcut keys available in Unity. To find a cheat sheet of these keys, press the Super Key and hold it down for a moment. The cheat sheet will appear in the middle of the screen.
All hotkeys and shortcuts can be changed and reconfigured, and you can add shortcuts that don’t exist until you think them up and figure out how to implement them. This is beyond the scope of this post, but you can play around with it later.
Top Menu bar and Application and System Indicators
Unless you’ve been living in a command line cave, you already know about Application and System indicators. In Unity, they are located on the Top Menu Bar. Just play around with them. If you click the time/date, you get a little calendar popout. You can see if you are connected to the internet, and what your volume is turned to. Depending on what software is installed, you may see the temperature at your local weather station, or an indicator telling you that you have new mail.
Also, at that link, you’ll find instructions for installing a very cool applet to the Top Menu Bar which will give you an old fashioned menu showing, organized hierarchically, all the software that you have installed on your computer. This is how I usually run software that is not on the Task Panel.
That’s all the important stuff you need to know right away. There’s more, but you’ll discover it over time. You can go to system settings, and to the various system setting tools suggested here to do things like moving the Task Panel to the bottom of the screen, changing your wallpaper (the image on the desktop) and choosing whether to show icons for hard drives or plugged in devices, the trash can, etc.