Tag Archives: Linux

Writing Software for Writers

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.

Scrivener can look like this.

How to share keyboard and mouse between two computers?

I use two different computers, each with a different operating system, to do my stuff. Actually, I use five, but only two where I would ideally like to switch between them while I’m using them. I’ve experimented with some solutions, so I can offer some advice. Continue reading How to share keyboard and mouse between two computers?

What is New in Ubuntu 17.10, the Artful Aardvark

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.

Unity used a modus operendus that many other interfaces were shifting towards. I hear there are versions of Windows that looked a bit like this, and Gnome from version 3.0 onwards had this basic approach. Continue reading What is New in Ubuntu 17.10, the Artful Aardvark

How To Avoid Future WannaCry Style Ransomware Attacks

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.

Things to do after installing Ubuntu 17.04

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!

Anyway, after installing Ubuntu 17.04, consider these next moves:

Update and Patch Up

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.

______________________
Book suggestions:

Ubuntu Unleashed 2017 Edition (Includes Content Update Program): Covering 16.10, 17.04, 17.10 (12th Edition)

The Linux Command Line: A Complete Introduction

______________________

Refinements

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!

Don’t bother

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.

Ubuntu 17.04 and the future

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.

______________________
Book suggestions:

Ubuntu Unleashed 2017 Edition (Includes Content Update Program): Covering 16.10, 17.04, 17.10 (12th Edition)

The Linux Command Line: A Complete Introduction

______________________

Ubuntu and Linux Books

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.

For books on programming (in various languages, for kids and adults) check out this post.

Linux: General books

Two years old but still good:

How Linux Works: What Every Superuser Should Know

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.

    Yes, this is good: Linux For Dummies, 9th Edition

    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.

    Ubuntu Linux

    Ubuntu Unleashed 2017 Edition (Includes Content Update Program): Covering 16.10, 17.04, 17.10 (12th Edition)

    … 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.

    Other Linux Distributions

    Not at all current, but of historical interest and probably available used: The Debian System: Concepts and Techniques and A Practical Guide to Fedora and Red Hat Enterprise Linux (7th Edition).


    Using the Linux Command Line and bash shell

    The Linux Command Line: A Complete Introduction

    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.

    Linux Pocket Guide: Essential Commands

    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.

    Wicked Cool Shell Scripts: 101 Scripts for Linux, OS X, and UNIX Systems

    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…

    Books On Computer Programming and Computers

    Python

    Learning Python
    Python Crash Course: A Hands-On, Project-Based Introduction to Programming is a fast-paced, thorough introduction to programming with Python that will have you writing programs, solving problems, and making things that work in no time.

    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.

    My review: How to learn Python programming

    MORE COMING SOON

    Learn Scratch Programming (For Kids And Adults)

    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.

    Coding projects in Scratch and other items.

    Learn Python Using Minecraft

    Write Computer Games In Python

    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.

    Scratch Programming For Kids, By The Cards

    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.

    Why Get A Pi? (Raspberry Pi)

    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.)

    There is also the A vs. B model within these categories. None of that is important. Get the Pi 3 B. THIS ONE: Raspberry Pi 3 Model B Motherboard.

    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.

    I recently got the Vilros Raspberry Pi 3 Complete Starter Kit with Clear Case and 32GB SD Card, which came with the Pi 3 (with WiFi and Bluetooth, as mentioned), a power supply, a 32 GB Class 10 MicroSD card (you will want a class 10 card), a case, an HDMI cord, and two heat sinks. I think that normally lists for $90 but is perpetually on sale for much less.

    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.

    fly713vhaq33le0-medium

    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.

    Ready-made LEGO cases are here and here.

    Strange and wonderful devices

    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.

    The Collapse Of Arctic Sea Ice

    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!”

    OpenOffice May Close The Door

    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.

    Things To Do After Installing Ubuntu 16.04 LTS

    This is one of four related posts:

    Should You Install Ubuntu Linux?
    Installing Ubuntu 16.04 LTS
    How to use Ubuntu Unity
    Things To Do After Installing Ubuntu 16.04 LTS

    Some Linux/Ubuntu related books:
    Ubuntu Unleashed 2016 Edition: Covering 15.10 and 16.04 (11th Edition)
    Ubuntu 16.04 LTS Desktop: Applications and Administration
    The Linux Command Line: A Complete Introduction

    If you have already considered your options for installing Linux, done the installation, and learned your way around the Unity Desktop, then you are ready to tweak your system. This will be easiest if you use the terminal for several of the steps. Just copy and paste the lines I give you here. Note that in Linux, unless you change it, to paste into a terminal you hit shift-control-v, not just control-v.

    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.


    Check out:

    <li><a href="http://gregladen.com/blog/2017/03/ubuntu-linux-books/">UBUNTU AND LINUX BOOKS</a></li>
    
    <li><a href="http://gregladen.com/blog/2017/03/books-computer-programming-computers/">BOOKS ON COMPUTER PROGRAMMING AND COMPUTERS</a></li>
    

    ___________________

    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!

    Unity Dash >>> Software & Updates >>> Additional Drivers

    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.

    sudo apt-get update
    sudo apt-get install classicmenu-indicator

    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:

    • Click Download Chrome. Go here to do that.
    • 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.

    An alternative method for installing Dropbox:

    wget https://linux.dropbox.com/packages/ubuntu/dropbox_2015.10.28_amd64.deb

    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:

    sudo apt-get install gimp gimp-data gimp-plugin-registry gimp-data-extras

    14. Install A Junk Cleaner (Bleachbit):

    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….

    …you can reset unity like this:

    sudo apt-get install dconf-tools
    dconf reset -f /org/compiz/
    setsid unity
    unity --reset-icons

    Have Fun

    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

    and

    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.

    How to use Ubuntu Unity

    This is one of four related posts:

    Should You Install Ubuntu Linux?
    Installing Ubuntu 16.04 LTS
    How to use Ubuntu Unity
    Things To Do After Installing Ubuntu 16.04 LTS

    Some Linux/Ubuntu related books:
    Ubuntu Unleashed 2016 Edition: Covering 15.10 and 16.04 (11th Edition)
    Ubuntu 16.04 LTS Desktop: Applications and Administration
    The Linux Command Line: A Complete Introduction

    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 Dash

    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

    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.

    By default, in Unity, application menus, the menus that go with a specific program, are invisible unless you approach them with the mouse, and then they appear. But they are not located on the application itself, but rather, on the Top Menu Bar. See this post for instructions as to how to move them to the applications and make them not invisible.

    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.

    Now, play

    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.

    Installing Ubuntu 16.04 LTS

    This is one of four related posts:

    Should You Install Ubuntu Linux?
    Installing Ubuntu 16.04 LTS
    How to use Ubuntu Unity
    Things To Do After Installing Ubuntu 16.04 LTS

    Some Linux/Ubuntu related books:
    Ubuntu Unleashed 2016 Edition: Covering 15.10 and 16.04 (11th Edition)
    Ubuntu 16.04 LTS Desktop: Applications and Administration
    The Linux Command Line: A Complete Introduction

    Linux isn’t for everyone, so I’m not going to try to talk you into using this superior operating system if you have some reason to not do so. But if you have a computer that runs Windows, it isn’t that hard to install Ubuntu. The main advantages of doing so are 1) You get to have a Linux computer and b) you get to not have a Windows computer.

    Here, I have some advice on installing Ubuntu (this is general advice and applies across many versions).

    How to install Ubuntu

    If you are going to try Linux, I recommend installing Ubuntu’s latest version, which is Ubuntu 16.04 LTS Xenial Xerus.

    A Linux distro (the specific version of Linux you install) includes a specific “desktop,” which is your user interface and a bunch of tools and stuff. The default Ubuntu desktop is called Unity. If you’ve never used Linux before, you’ll find the Unity desktop to be very good, especially if you tweak it a bit. If you have used Linux before, you may prefer a different style desktop. For me, I preferred the older style “Gnome 2.0” style desktop. The differences are cosmetic, but I happen to like the cosmeticology of the Gnome style better.


    Check out:

    <li><a href="http://gregladen.com/blog/2017/03/ubuntu-linux-books/">UBUNTU AND LINUX BOOKS</a></li>
    
    <li><a href="http://gregladen.com/blog/2017/03/books-computer-programming-computers/">BOOKS ON COMPUTER PROGRAMMING AND COMPUTERS</a></li>
    

    ___________________

    What I liked most about the older style desktop is the presence of a menu that had submenus that organized all the applications (software, apps) installed on the system. I also prefer the synaptic system for installing new software over the Ubuntu “Software Center.” But, there is a menu that can be installed in Unity that serves this purpose, and it is easy to install synaptic installation software as well. So, even as an old time Gnome 2.0 guy, I have decided to go with Unity.

    There are many forms of Linux out there, and one of the best maintained and well done versions is called debian. Ubuntu bases its distribution on debian, but modifies it in ways that are good. The most current version of Ubuntu is therefore the version of Linux that is most up to date but at the same time stable, and the best supported. This situation has developed to the extent that people are now often using, incorrectly but harmlessly, the term “Ubuntu” to mean “Linux” with the assumption that the Unity desktop is the primary desktop for Linux.

    So, how do you install Linux, in the form of Ubuntu, on your computer?

    Should you install Linux along side Windows (dual boot)?

    If you just want to install Linux on a computer, where Linux will be the only operating system, skip this section.

    The first thing you need to decide if if you want a dual boot system or not. Say you have Windows installed on your computer. If you make this a dual boot computer, you install Linux along side Windows. Then, when you fire up your computer you chose which operating system you want to use.

    This may sound like a good idea, but I strongly recommend against it. It adds a significant layer of complexity to the process of installing the system. Also, things can go wrong. A normal single-boot installation of Linux will usually give you no problems, and it will be more stable as an operating system than any other operating system out there. But things can go wrong with dual booting which could drive you crazy and, depending on your hardware and a few other things, may cause you to unexpectedly lose the ability to use your computer.

    Dual booting and partitioning are related operations, because in order to dual boot you will have to mess around with partitioning. How you do this will depend on whether or not Windows is already installed on your computer.

    There are people who will tell you differently, that dual booting is harmless and fun and good. Those individuals are unique, special individuals with the ability to solve complex problems on their computers. They may have good reasons to have dual boot systems. In fact, many of them may have several different operating systems installed on one computer. This is because, as a hobby or for professional reasons, they need to have a lot of different operating systems. Good for them.

    I recommend that if you are not sure if you want to use Linux, don’t install it along side Windows, but rather, find an extra computer (or buy a cheap used one somewhere), install Linux on it, and if you find yourself liking Linux more than you like Windows, go ahead and install Linux on your main, higher-end computer and be done with it.

    Using two partitions is a good idea for some

    As with dual booting, I recommend that the first time Linux user skip this idea entirely, but here are some thoughts on it in case you are interested.

    One of the great things about Linux is that it uses the concept of a home directory. The home directory is a directory associated with a particular user, one for each user of the system. In most cases, a desktop or laptop computer has just one user, you. But you still get the home directory. (Apple’s OSX uses this system as well.)

    This means that your data, configuration files for software, and all that stuff, ends up in one single directory. So, in theory, if you decide to install a whole new version of Linux, all you have to do is copy all of the contents of your home directory somewhere, install an entirely new system, then copy all that stuff into the new home directory and it is like you never left.

    This also means that you only have to back up your home directory. Installing software on Linux is so easy that you really don’t have to back any of that up. By backing up your home directory, you are also backing up your settings and preferences for most of that software, so if you reinstall it, the software will figure out how to behave properly.

    One method people use is to make a partition for their home directory and a separate partition for the system. You can think of a partition as roughly equivalent to a hard drive. On a simple system, the hard drive has one petition (that you need to know about … there are other specialized partitions that you don’t interact with). But you can divide (partition) the hard drive into multiple parts, put your operating system on one, and your data (home) on the other. The operating system, if you are running Linux, can be fairly small, while your data directory, in order to hold all those videos you take with your smart phone and your collection of cat picture, needs to be larger.

    There is also a third partition you can make, called the swap partition. This is a separate dedicated part of your hard drive that the operating system uses to put stuff that won’t fit in RAM (memory). If you don’t have a dedicated swap partition, Linux will use another parittion for this purpose. It is probably slightly more efficient to have a dedicated swap partition, but with a reasonably fast computer with a good amount of ram, you probably won’t know the difference.

    You can totally skip the separate partition thing and have Ubuntu put everything on one partition. The advantage of separate partitions are not worth the effort if you are not comfortable playing around with partitions. But, if you do, 10 gigabytes will comfortably hold the operating system, and the swap partition should be something like 5 or 6 gigabytes. The rest should be your home directory.

    Simply installing Ubuntu on a computer.

    There are two major divisions of operating systems for regular computers: 32 bit and 64 bit. If your computer can run a 64 bit operating system, and most made any time recently can, then you should install the 64 bit version of Ubuntu. You need to know that 32 bit operating systems are becoming a thing of the past, so, in fact, some software is no longer developed to run on such systems.

    Due to an historical quirk, the 32 bit version of Linux is often has the word “Intel” in it, while the 64 bit version of Linux generally has the word “AMD” (a competitor of Intel) in it. This does not mean that you have to have an AMD processor in your computer to run the 64 bit system.

    There are other forms of Linux that run on other processors. I’m assuming you have a typical run of the mill desktop that normally would run Windows, so it is probably an Intel or AMD 64 bit machine.

    You should have three things handy in order to install Unbutu on a computer where it will be the only operating system.

    1) The computer

    2) Installation media that will fit in your computer, such as a CD, DVD, or a thumb drive

    3) An internet connection that works

    You can get the installation media by going to the Ubuntu site and downloading a file from Ubuntu and putting it on a medium of some sort.

    When you are looking for the file, look for “Ubuntu Desktop.” There are other versions of Ubuntu, don’t use those. The current version is Ubuntu 16.04 LTS.

    This page has the download materials and provides good guidance.

    To do a clean install with a DVD, download the operating system from that link. The file will be called something like “ubuntu-16.04-desktop-amd64.iso”. The “iso” part means that it is a disk image that you will want to burn onto a DVD using a working computer.

    This download took be about five minutes on a medium-fast Internet connection.

    You then burn the iso image onto a DVD or USB stick.

    Using a DVD

    In Windows, you right click on the iso file and pick “burn disk image” and follow the instructions.

    On a Mac, use “Disk Utility.” Insert the blank DVD and drag/drop the .iso file onto the left pane of the Disk Utility. Select it, and click the “Burn” button. Follow the instructions.

    In Linux, insert the DVD or CD into your computer and if you are lucky a window will pop up asking if you want to burn the disk. Otherwise, run Brasero and follow the instructions to put the iso image on the disk.

    Now, here comes the slightly tricky part. You want your computer to boot off of the DVD/CD drive. (Which, by the way, can be an external USB device if that is what you have.)

    So, first, put the CD or DVD into the computer, turn the computer off properly, then turn it on. It might just boot off that disk and you are good to go.

    But, just in case, watch your computer screen as the computer is booting up. Note any message that gives the name of a function key and tells you what it does. It may say something like “F2 = boot order” or “F9 = configure bla bla bla” or words to that effect.

    If the computer did not actually boot off of the disk you inserted, turn it off again, and start it again, but as it is booting up press the function key that should get you to either boot sequence or configuration.

    Using the arrow keys (the screen will give you info on what keys to use) find the part that shows the boot order. If your computer ignored the boot disk you inserted, you probably have “Internal Hard Drive” as the first place to boot from. But you should see other options down below. Using the arrow keys and other keys as suggested by the instruction on the screen to move the DVD drive, or whatever device you want to boot from, to the top of the list. Then save the configuration (i.e., with F10, or some other method … it will tell you on the screen) and exit out of the configuration thingie.

    You may then have to restart one more time, but your computer will boot from the DVD and will actually start to run a mini version of Linux set up to help you install the operating system on this computer.

    Using a USB

    You can also boot from a USB thumb drive. You may have to make your computer boot first from the USB drive instead of an internal hard drive (see above) and, of course, you will have to make a bootable USB stick.

    You need a USB stick with at least 2 gigs of space and that doesn’t hold anything important.

    Then, if you are using Windows, install the Rufus USB installer. Run that program and follow the instructions to make a bootable USB drive. You’ll be using the same iso image you previously downloaded.

    If you are using a Mac, install the UNetbootin utility and use that to make the bootable USB stick.

    Insert the USB drive before you run UNetbootin, or UNertbootin may not recognize the USB you insert later.

    Since this will be “unconfirmed software” open it by finding it in the finder (the actual finder, not a finder replacement or any other method), control-click on the icon for the software, and select “open.” You will then be asked to confirm that you want to open it. Say yes. You will likely be asked for your password. Enter it.

    Also, no matter what system you are using, make sure to “eject” the USB stick properly.

    The installation process.

    Note: It is possible that your computer will give you some sort of text-based menu when you boot off the USB or DVD drive. Just go with the default, and let the process continue until you get what looks like a normal graphical user interface that is, actually, a temporary Linux operating system running on your computer.

    Also note, that during the install process, if you need to enter any numbers, there is a good chance the “numlock” button is turned off. You can, of course, turn it on.

    If, as recommended, you are going to make your computer a Linux computer and not bother with a separate petition for home, swap, etc., then the rest is simple. I assume you have no data on this computer that needs to be backed up or saved. Indeed, you may have installed a new clean hard drive which is empty anyway.

    You have inserted the boot medium, you taught your computer to boot off of it, you’ve restarted your computer, and now you are looking at a welcome screen that gives you two options: Try Ubuntu and Install Ubuntu.

    If you pick “Try” then you now have a Linux operating system temporarily running on your computer and you can play with it. I’m not sure why you would bother with this.

    If you pick “Install Ubuntu” then you have a series of easy tasks to perform, mostly picking the defaults.

    Make sure to pick “Download updates while installing” and “Install third-party software for graphics and Wi-Fi hardware, etc. etc.”

    If your computer is not currently logged into a network, you will have the option of doing so. Do so. You want to be hooked up to the network in order to download updates and stuff during installation.

    Logging into the network may not be obvious. It isn’t an option on the install screen, but rather on the desktop that is currently running on your computer. Click on the blank triangular thingie on the top menu bar — this is the network applet. Pick your network, enter your password, etc.

    Then you get to allocate drive space. For the simple, recommended, install, pick “Erase disk and install Ubuntu.” Pick “encrypt the new Ubuntu install” if you like. If you don’t know what LVM is, don’t bother with it.

    Or, pick “something else” if you want to define different partitions for home directory, dual boot, swap files, etc. Then, good luck with that. For your first Linux install on a fresh machine, you don’t need to go down that rabbit hole. While such endeavors are not that difficult to do, you should probably make that the project for your next Linux install.

    How to set up separate Root, Home and Swap paritions

    Skip this part if you are doing the recommended default install. This will destroy everything on your hard drive. If it does not go well, you can always do a new fresh install and pick the default.

    At this point you have booted off the DVD or USB and you have clicked the icon to “install Ubuntu.” You are now looking at several options, including “something else.”

    Select “something else”

    Accept (hit Continue) with the scary message “You have selected an entire device to partition. If you proceed with creating a new partition table on the device, then all current partitions will be removed…”

    (But do note that you are about to blotto your computer, so there better not be anything you want to keep on it!)

    Make the first partition for the Ubuntu install as a primary partition.

    Put it at the beginning of this space

    Use EXT4journalingfilesystem (unless you have some reason to use some other file system) … this will be the default already chosen.

    Set the “mount point” as /

    This is the partition in which your operating system will be placed, and is known as the root partition.

    How big should it be? Ubuntu needs a minimum of 20 gb. I would make it larger. I used 50 gigs when I did this.

    Hit OK

    Make a swap partition

    This is the partition your computer will use as “extra memory.”

    Now select “free space” and set up a “logical” petition (at the beginning of this space) that is twice the size of your installed RAM.

    If you don’t know how much RAM your computer has, open a terminal right there on the computer you are working with (The upper left button with the Ubuntu symbol on it, type in “terminal” and hit enter). In the terminal, type in

    free -h

    That will give you a total number (and other numbers) Round up to the nearest gigabyte and multiply by two.

    Enter that number into “size” (if you want 16 gigs, it will be 16000 mb).

    Select from the dropdown list “swap” to make this a swap file. Hit OK

    Install the home directory (where all your stuff goes)

    Select the free space again.

    Just take for size whatever is left on your computer (hopefully a lot). Pick logical, beginning of this space, and EXT4journalingfilesystem again.

    For mount point, enter

    /home

    This will be your home directory. Hit OK

    Now, you’ll see a nice table with a graphic bar on the top showing you what you’ve set up. If it all looks OK to you, a small but not too small root directory, a smaller swap file (probably), and the rest a huge home file, hit “Install Now”

    You’ll get another warning, but we don’t care about not stinking warnings.

    Later, if you need to change any of these size requirements, run a live USB/DVD (like you did to make this install) and run “gparted” to change the partition sizes. (You can’t change the partition sizes from within an operating system. That would be like changing the fundemental fabric of the universe while you are actually in the universe. Not even The Doctor can do that)

    And now, go back to the normal install.

    Continuing with the default normal install…


    If you have Windows installed, you may then get the option to Install Linux along side Windows. Pick that if you want, and chose how much hard drive space to allocate to each system.

    After that are a few screens that are simple and self explanatory. Give the installation system a location, choose the kind of keyboard you want to use.

    Then you get to chose your login and password details. Here you have to decide how simple vs. secure you want your system to be. You should make sure you never forget your user name and password or you will be locked out of your system.

    So, enter your name, then pick a name for this computer for identification on networks, etc, then enter your user name which will contain no spaces or strange symbols, and be all lower case.

    Then enter your password twice. The system will complain if your password is lower security, feel free to ignore this if you don’t care, pay attention to it if you want a more secure system. You are going to be using this password a lot. Just sayin’.

    Check “require my password to log in” for most installations. You can also chose at this point to encrypt your home folder to limit access to your data if someone gets physical access to your computer.

    Then, the system will install while you get to see some info about Ubuntu.

    Then you are “done” in that you have a Linux computer. You may or may not have been prompted to remove the DVD or USB. If you restart the computer and fail to do so, you’ll be back in the installation system. Just remove the DVD/USB and restart the computer.

    Once the computer is restarted, you’ll have to re-establish your network connection one more time. (This is your new system, it doesn’t know about your networks or network password yet.)

    At this point, go right to this post and start tweaking your computer. If you don’t do that now, at least do the things noted below.

    But there is something else you should do right away. Open a terminal (hit the super key, aka windows key, and start typing “terminal” and the terminal option will come up. Click it).

    Then, type in:

    sudo apt-get updates

    You will be asked for your password, which hopefully you will remember. The computer will then go on the internet and find updates for stuff that was installed during the installation. Even though you told it to do something like this during installation, it probably didn’t do it for all the software that is now on your computer.

    Following all this, you do now have a Linux computer. There are several things you can do after installing Ubuntu 16.04. First, go to this post to find out how to navigate around on your new Unity desktop, and then, see this post for how to tweak and refine your Linux installation in useful and important ways.

    Have a good time using your Linux computer!