June 2009 Archives

Debunking Common Misconceptions Among Linux Newbies

| 8 Comments

The following list is derived from my personal experience, both as a former Linux newbie, and in the dealings I have had with other Linux newbies. Linux newbies often have a lot of misconceptions about what Linux is, and about how they should learn it. These statements are meant to contradict some of those misconceptions.


The only realistic way to learn Linux is to use it. Though this may seem like an obvious point, I have met a number of Linux newbies who did not seem to grasp the concept. These people often want to "dual-boot" Linux and another operating system, or to put Linux on a spare computer, so that they can "play" with Linux every once a while without going outside of the safety of the other operating system that they already know.


Trying to learn Linux by "playing" with it once in a while is like trying learning to ride a bike by walking next to it. To become proficient in Linux, you need to depend on it. Nothing will improve your Linux skills like knowing that you need it to send your next e-mail or to finish your next homework assignment.


You do not get software in the same way as you do for Windows and Macintosh computers. With the Windows and Macintosh operating systems one typically finds software by buying a CD off of a shelf, downloading it from a malware-infested freeware site, or copying it illegally through peer-to-peer networks. In Linux, you rarely install software this way, and it is generally considered a bad idea to do so.


Almost every Linux distribution available has what is called an online software repository. An army of magical geeks and programmers find or make programs and put them into this repository. They examine each program in the repository as best they can in order to make sure the programs are safe to run on your computer and free of software bugs.


These repositories usually contain thousands of programs. All you have to do is learn how to use the "package management system" that came with your Linux distribution, and then you will be able to install and use all these programs for free. The package management system downloads the software from the repository and installs it on your computer for you.


There is a difference between an operating system and an interface. With operating systems such as Windows or Macintosh, the operating system has a certain well-defined "look and feel", which can only be altered slightly. Things such as the location of menus and the way icons behave is characteristic of the operating system itself. This is called the operating system's "desktop environment".


In Linux, however, there are many different desktop environments available for you to choose from. Most Linux distributions come with a certain desktop environment by default. But if you don't like it, you can simply install a different one.


Do not allow yourself to become frustrated just because you come across an interface you do not like. Linux is highly customizable, and it can ultimately become whatever you want it to be.


The command line is not a bad thing. For those of you who do not know what I am talking about, a "command line" is a special tool on your computer. It allows you to tell your computer what to do by typing commands instead of by clicking on icons or menus. Nearly every operating system has one - some just hide it a little better than others.


Some people are deathly afraid of the thing. Really, however, it is not all that bad. I have used mine for years, and I know a lot of other people who have as well. In fact, you can use it to accomplish a lot of cool things that are very difficult to accomplish without one.


But in any case, if you pick the right Linux distribution you may never even have to use the command line. Or at least, very rarely.


Linux is for gamers too. Too many people believe the popular myth that there are no or very few computer games available for Linux. Actually, there are many games available, in a large variety of genres and styles. There are First-Person-Shooters (FPS), Role-Playing Games (RPG), arcade games, puzzle games, strategy games, flight simulators, and other games. Just run online searches for a list of "top linux games", or ask the nearest Linux fanatic what his favorites are.


Often these Linux games do not always have quite as high a resolution or quite as many features as their proprietary, commercial counterparts, but any gamer can have a satisfying experience if he is willing to patiently experiment with the various Linux games that are available.


Furthermore, due to special "emulator" technology written for Linux, it is sometimes possible to play Windows games on a Linux computer.


There is help available. You can certainly learn how to use Linux without any help if you really want to. But you do not need to. Strange as it may sound, the are literally thousands of people who "hang out" at online forums and chat channels for no other reason than to find people who need help with Linux (and to increase their own knowledge). Learn how to communicate with these people, and they will be able to answer nearly all the newbie questions you have.


Furthermore, there is online documentation scattered across the Internet for nearly every Linux distribution and program available. And if you are lucky enough to know a Linux fanatic personally, he or she will more than likely be glad to provide you with whatever resources you need to help you get set up.


The first experience is not always the characteristic one. I once talked to a man who gave up on Linux after only a single attempt. As he provided me with more details, I came to find out that he happened to have chosen the most complex and technically-oriented Linux distribution available. There are many other distributions that are much easier to use, but he was not aware of that.


I knew another person who told me that he hated a particular Linux distribution. As it happens, he was using a version of that distribution which was almost ten years old!


If your first experience is a little rough for some reason, do not "throw in the towel". Talk to someone with more experience to see if you are doing something wrong. Or try a different desktop environment. Or try a different Linux distribution.


Linux is an operating system of ideals. What is ultimately most important about Linux is that it is an operating system constructed of Free and Open-Source Software (FOSS). The entire FOSS movement is predicated on the idea of intellectual freedom. FOSS advocates believe that ultimately nobody "owns" a piece of software, and that people should be free to copy, distribute, and modify software without the legal restrictions and intellectual fetters imposed on them by copyright and patent holders.


Since most of the commercial software world does not think this way, Linux has always been something of an "underdog". Linux is a great operating system, and constantly improving, but it is not perfect. People who understand where Linux is headed are more apt to be patient when there are a few bumps along the road. Someone once said that "an ideal is still a useful thing, even if it is never fully realized."

How to Get Code Block Hiding in Emacs

| No Comments
I just figured out how to use code block hiding in emacs22, using hs-minor-mode. That stands for HideShow minor mode. I wanted to call this post "How to Get Code Folding in Emacs", but apparently "Folding" means something different to some people, and there is a different mode for that.

Anyway, to turn on hs-minor-mode simply enter "M-x hs-minor-mode". (M stands for the Meta key, usually Alt, and C stands for the Ctrl key.) Then you can use the following key combinations:

C-c @ ESC C-s show all
C-c @ ESC C-h hide all
C-c @ C-s show block
C-c @ C-h hide block
C-c @ C-c toggle hide/show


Frankly, though, I think it is harder to remember those than to just use the commands they point to:

M-x hs-hide-all
M-x hs-hide-block
M-x hs-show-all
M-x hs-show-block
M-x hs-toggle-hiding


The ones I use most are hs-hide-all and hs-toggle-hiding, which can be used in abbreviated form:

M-x hs-hide-a
M-x hs-t


Also, here is something which you can add to your .emacs file:

(global-set-key (kbd "C-\\") 'hs-toggle-hiding)

(add-hook 'c-mode-common-hook   'hs-minor-mode)
(add-hook 'emacs-lisp-mode-hook 'hs-minor-mode)
(add-hook 'java-mode-hook       'hs-minor-mode)
(add-hook 'lisp-mode-hook       'hs-minor-mode)
(add-hook 'perl-mode-hook       'hs-minor-mode)
(add-hook 'sh-mode-hook         'hs-minor-mode)


This will start up hs-minor-mode automatically when you open code files for some languages, and will also allow you to us the hs-toggle-hiding command by pressing C-\, which is a bit faster.

Things probably work a little bit differently in graphical Emacs, but since I only use emacs22-nox, you'll have to figure that out yourself.

Linux Makes the Grade in California Schools

| No Comments

Firefox Extension: Tamper Data

| 1 Comment
Here is a great add-on for Firefox/Iceweasel:

https://addons.mozilla.org/en-US/firefox/addon/966

The Tamper Data add-on allows you to arbitrarily modify all your POST and GET data before submitting an HTML form. After installing Tamper Data, you can open it anytime from the Tools menu. Once it is open, you can switch in and out of tamper mode. When you are in tamper mode, each time you hit the submit button on a form, a window appears asking you if you want to tamper with the action data.

The primary benefit of Tamper Data for me is in my light web-development work. It allows me to test, for example, my PHP/MySQL code for vulnerabilities, by allowing me to easily pass malformed or malicious data in POST transmissions.
The site blog for indicium.us.
Linux Projects
Online Games
Unsung Linux Games

RSS Feed

Powered by Movable Type 4.21-en
and GNU/Linux


Creative Commons License
The content of this blog is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License. See my copyleft page for more details.