][CyberPillar][ Overview

[#sitecfg]: Site configuration

Pursued Achievements

][CyberPillar][ helps people learn how to perform tasks on devices that utilize computer circuitry. Such tasks include setting up automated services that can use computer networks to assist other computers. Also, there are extensive detailed references to help greatly in troubleshooting. After these goals have started to be achieved, an additional goal was pursued: providing information that will help people who want to gain or enhance a career related to performing the tasks described by this website. After all, financial income is pleasant.

Wanting changes

A lot of people have commented, rather negatively, about the colors. Many people would prefer having virtually no color at all.

That preference is fine, and easy to do with most modern web browsers. In the right toolbar, see the hyperlink called “CSS options”. Or, the color schemes can actually be changed from a menu option on some web browsers. For instance, in Firefox, press Alt-V to bring up the View menu, and choose the “Page Style” menu option.

Another, even faster method, of changing some colors is to highlight some text. That has been a method to make text visible when it unfortunately was not visible because of a problem that wasn't yet detected. Hopefully all such problems have been resolved.

The creator and founder of this website has not claimed great expertise on color aesthetics. On the contrary, an open request for assistance has been publicly posted. (The most relevant request is the one titled “CSS Style designer”, although the artistic may also find some opportunities in the sections named “Site theme” and “Other creative arts”.)

At the time of this writing, one remaining issue is that choosing to use any customized color scheme will not affect other pages on the site. This is a known issue and there is a known solution that requires the browser to support saving configuration in “cookies”. However, even with cookies enabled, this customization is currently not being saved. As can be seen in the upper-right corner, support for cookies has started to be developed.

Understanding colors

The colors of the default stylesheet are expected to help as people as they can easily distinguish differences between the varying types of text, such as things to type on a command line, things found in text files, filenames, names of computers, names of protocols, numeric addresses for computers, protocol port numbers, and so on. Memorization of the colors is not expected, but is expected to happen (to some extent or another) as people read enough of the site. An explanation of some key colors is provided by Key/Legend.

Heirarchical Design

The site is created using a very strongly heirarchical design. This is evident by the “outline”-looking format. A primary benefits of having the site be made up of so many collapsable sections is so that experts can speed through the reading by skipping sections. When an expert sees a section title and feels that this is a topic that the expert does not need any hand-holding on, the sections contain “collapse” buttons so that the section can be easily skipped. These “collapse” buttons may also help people who are looking for some specific information and are feeling much less interested in being sidetracked by some other information.

However, many people have learned how to perform many computer tasks with a focus on how to get the task done most easily in the short term. There may be some benefit for even knowledgable people to learn how to do things using the methods described by ][CyberPillar][. ][CyberPillar][ was created while keeping certain focuses in mind. People who learned things without focusing on those goals may find that reading the entire text reveals some nuances that may be helpful. See the section about the focuses of ][CyberPillar][ for an overview on what may be likely to be gained.

Issues with Site Layout

The good news is that the site was made using some very modular technology. There are a small number of key files that affect the look of the entire website, so only a fairly little bit of effort is needed to be able to get changes deployed across the entire website.

Claims of a broken site layout

A claim has been made that the site will not scroll properly on certain mobile devices. This has not been heavily explored.

Also, people have also mentioned that too much of the site has been taken up by the site's layout, providing less room available for viewing the site content.

These are recognized as legitimate complaints, which may be addressed when time permits. Unfortunately, there may not be a clear quick path of how to address these issues. Eefforts have been getting applied in other directions, where there have been more clear ways to achieve larger payoffs. Efforts are severely constrained by the staff size. (The entire site was made by a single person during hours outside of work. At the time of this writing, that still has not changed. See: helping ][CyberPillar][.) At the time of this writing (August 2013), further resolution of these specific issues is realistically expected to take months or years.

Some changes have been made, such as adding colors to the left side of individual sections, and indenting each sub-section layer much less. “[X]” and “[v]” buttons have been added to allow closing the side bars. This should help to reduce pain; it is recognized that the current state is not yet ideal.

For now, the unfortunate recommendations are to either wait until further solutions are determined and implemented, or to simply use a capable browser on a large screen. The site was primarily created using dual 28 inch monitors, so some of these issues might not be readily apparent during quick internal testing.

Client-side versus Server-side

Some people would prefer that certain tasks, such as remembering user preferences regarding color schemes, should be remembered by the server instead of requiring client-side technologies. This way, even users of very simple web browser clients could benefit from these technologies.

The primary reason this was not pursued is because such features tend to impose substantial requirements on the server, which increases the difficulty of people being able to set up properly functioning mirror locations. The pages on this website do not require that there is a computer which both transmits web pages and also runs specific versions of enhancement software. If a web page is on a CD, along with the appropriate client-side technology files, then the web pages can be easily viewed without any required work other than the typically-optional step of installing a preferred web browser.

This example is not meant to make any implications about licensing of the legal rights related to any specific content, but is simply looking at the situation from the perspectives of technology and ease-of-use for some people. The fact that these decisions increase challenge for some other people is unfortunate, but the difficulty needs to happen somewhere and there does not seem to be a single solution that satisfies all possible needs.

One of ][CyberPillar]['s distinguishing characteristics (which sets ][CyberPillar][ unique from many other resources) is that ][CyberPillar][ strives to provide lots of hyperlinks to detailed guides and to official sources. Having so many references helps people to easily see how to become un-stuck, if needed. Also, making lots of pointers to official sources allows people to see why tasks are done the way they are. (An understanding, of why people generally perform a task a certain way, can be useful even if the reason is nothing more glamorous than people following the recommendations of certain standards.)

The “Tutorials” section is different from many other tutorials because these tutorials do not simply provide a list of detailed instructions on how to get things done. Instead, they aim to provide a broader overview on some larger tasks, and provide lots of hyperlinks that reference additional documentation that provide further details.
Understanding some conventions
[#seeckvar]: Overview: outputting variables

Several times, there are references to commands to output variables. Such a command might look something like the following:


This command doesn't substantially change information that the computer needs to perform a task. The purpose of this command is simply to show the variables to the user.

Especially on a brand new machine that might not yet have customizations applied, a new command prompt may simply be losing the values of variables that are being used. Any of the following activities may often result in a command prompt that lacked some variable customizations from another command prompt:

  • Logging off of an SSH session and then logging back in
  • Logging off of a computer's local console, and logging back in
  • restarting a computer
  • creating a new window in a GUI (if a GUI is being used)
  • exiting a subshell
  • switching windows in a terminal multiplexer (tmux or screen)
  • detaching from a terminal multiplexer

When seeing such an echo command, running the command is recommended for anybody who is using a quick copy-and-paste method to be able to run the commands quickly. After running the command, view the results before pasting any further commands. For example, if there are two variable names, then make sure there are at least two words that are shown. If not, then one of the variables is probably unset, and that is a problem that should be fixed before proceeding with any of the later steps of the tutorial.

Unix Curly Brances for variables

Unix note: This guide tends to show variable names surrounded with curly braces when they are preceeded with a dollar sign. So, for example, the guide will use ${VISUAL} rather than just $VISUAL. The effect of the curley braces is often nothing.

The theory is that using curley braces allows text to be placed right after a variable name, and so using the curley braces may sometimes add some flexibility. For example, a person could run “ echo ${VAR}WARN ”, and then the operating system would output the contents of the variable named VAR followed by the text “WARN”. Without those curly braces, the operating system would look for a variable named “VARWARN” (a.k.a. “${VARWARN}”), which would be an entirely different variable.

In many other cases, these optional curley braces have no impact. Many instructions do not use the optional curley braces, so if they seem new to you, don't get too alarmed by them.

[#sudontee]: sudo -n

The “ sudo -n ” command is designed to run a specified command as a user with specific priviledges, but only if sudo can successfully accomplish this without requesting a password. This guide most commonly shows this when using “ some-command | sudo -n tee ”. In this case, if sudo prompted for a password, the output from the output of the some-command would be treated as a password, which almost certainly (and hopefully) would cause things to not work well. The sudo command would consume the first line's worth of standard input, trying to obtain a password. Then, the sudo command would not consume the remaining standard input, so that input would likely be provided as standard input for whatever command comes next. (This has often led to the remaining input to be pasted into a command prompt/shell, and so the remaining input is treated as commands to be run from the command line. This is conceivably dangerous. Perhaps this is especially common if input was pasted to a terminal.)

There are two basic ways to get sudo to not require a password. One way is to use the /etc/sudoers configuration file options, and specify that no password is required. That method is rightfully shunned by some people who cite that approach as being very capable of substantially reducing security. Another approach is to simply run sudo successfully first. For instance, running:

sudo echo Hello, World!
some-command | sudo -n tee -a outputFile

When taking this approach, the first sudo command will prompt the user for the password. Then, the sudo command will remember that there was a recent successful attempt, so the second time “sudo -n” will succeed.