Limeron's Fall Opus
…for your health.
I like turtles.
Projects.c
int main(argc, %%**%%argv) { liesure playingWithVi;\\ experiemnt analyzingKillEffects;\\ documentation filesystemExpertise;\\ documentation cProgrammingRevalations; analyze(cProgrammingRevalations);
Today I obtained a more solid understanding of 'pointers', used in C programming. When creating a variable, applying an * 'operator' between the data type and the variable's 'identifier' will tell our program that this variable identifier refers to a 'dereferenced' holding point for our information. The concept here is that instead of the
void analyze(documentation subject) { breakdown(subject); } }
Pointers in C are still awkward to me, but I recently picked up that you may reference them as arrays. If something is initialized as a pointer of any given variable type, you can refer to the first element with that variable's name at subscript 0. Ex:
int *numTest;
numTest[0] = 2;
I decided to work on this Opus thing today, for a change. It's proven to be a less than compelling experience. The benefits of it, however, are that I am retouching some ideas I might let myself feel too comfortable with occasionally. What's going to be a real trip are the experiments I've decided to use. I should be receiving a few O'reilly books on topics which will be vital in my experimentation. Of the 3 books I am expecting, I'm most excited for the one on Python, but I think, perhaps, I should delve into the Vi/Vim one first. I've been meaning to strengthen my Vim skills for a while, and I hope that the book will encourage me to do so.
This is a sample format for a dated entry. Please substitute the actual date for “Month Day, Year”, and duplicate the level 4 heading to make additional entries.
As an aid, feel free to use the following questions to help you generate content for your entries:
Remember that 4 is just the minimum number of entries. Feel free to have more.
SSH is a secure shell which is used to log on to machines and be able to issue commands to the system. “X11” (later defined) connections and arbitrary TCP ports can also be forwarded over the secure channel.
When we ssh lab46, from inside the LAIR, we are accessing a local address. The absolute address we would be targeting is lab46@corning-cc.edu. Our ssh clients are able to accept an address including a user name, such as:
myUsername@lab46
Or, from a remote location:
myUsername@lab46.corning-cc.edu
An alternative way to do this is by using the parameter -l followed by your desired login name when calling ssh.
from the manual page:
:-f Requests ssh to go to background just before command execution. This is useful if ssh is going to ask for passwords or passphrases, but the user wants it in the background. This implies -n. The recommended way to start X11 programs at a remote site is with something like ssh -f host xterm. If the ExitOnForwardFailure configuration option is set to "yes", then a client started with -f will wait for all remote port forwards to be successfully established before placing itself in the background.
This sounds interesting, but I don't fully understand it right now. After a test I did, I found that it allows something to be forked into the ssh command. This means that you essentially connect to the remote server, but are able to cast another command simultaneously. I'm probably wrong.
You can use -q to shut off most diagnostic messages when using ssh.
-v is for 'verbose' mode, and I've seen this in quite a few other programs. Must be a very commonly implemented debugging feature.
There is also a very long list of alternative options you can submit to ssh using -o, followed by anything on this special list. The list can be found at “man ssh_config” using the UNIX shell.
-x / -X: I've found it very interesting that with parameters uppercase vs. lowercase has a profound effect. I find it even more bizzare that this happens with may programs keystroke recognition as well.
This feature is to enable or disable "X11". x - disables X - enables (apparently allows for certain security issues such as monitoring keystrokes.
X11 refers to a window system (specifically the 11th revision of “X”)
A windowing system is something that allows different processes and features of a computer to be managed visually using keyboard, mouse, etc.
The X system is most commonly found on *NIX systems, and also in Mac OS.
X allows for rigorous management of graphics via networking, which enables some great power and versatility in multiuser or remote systems.
Without going into great detail about the specifics of the system, this is what X does.
When we say “Local host”, or more literally “localhost”, we mean the computer we're currently using. It's a way to describe the local machine without having to worry about any networking issues, and, in fact, when using the localhost address much of the networking stack is ignored when transmitting data.
Remote host, conversely to the term “localhost”, is terminology used to describe a computer which is NOT the physically local computer. Whether connected wirelessly, or via a distant physical line, a remote host is a machine which holds information expected to be retrived by other machines via networking.
A home directory is a container in a file system. It's, more specifically, the container which houses a user's most commonly accesed files, and/or, other often navigated directories. Common directories found inside one's home directory include: Documents, Downloads, Music, Pictures, Public, Videos… etc.
In our UNIX environment the command cd (Change Directory), issued with no parameters, will place us in our home directory.
Additionally, to deliberately navigate to a branch of the home directory the command: cd ~/[desired directory] may be issued to shorten the work the user must do to access the home directory.
The current working directory is the position in the file system a user is currently working in. The command pwd man be issued to display what that directory is. Additionally, the first part of our command line will give us some information as to where we are in the file system as well.
In a UNIX file system, nearly every functional aspect of the computing experience is represented in some way to a file. There are, in that case, many different types of files in the system. The type of a file is used to give us a bit of intuition or additional information on what the file may do or how it may behave.
Examples of some file types in UNIX are as follows:
Regular Directory Special
Information on what type of a file you're dealing with can be found by issuing the “file [file name]” command.
Additionally, issuing an “ls -l” command will give a longer listing of the files in the current working directory, including data as to what type of file each listing is.
These types will be expanded on later.
A “regular” file is one which can posses many, varried, attributes. Things such as text documents, images, executables, and source code files are all regular files. A regular file is a file which you will most commonly be doing operations on, or using interactively.
A “directory file” is one which contains information about other files. It's an orginizational file. For example, our home directory is, somehow, represented somewhere in the file system as a file. It is a file which posseses information about the relations between other files on the system. When navigating to your home directory, this “directory file” is accessed, and returns information about where the system should go.
Any special file on the system is one which does not fall into the previous two catagories of “regular” or “directory”. These files are ones which may possess information about devices on the system, connections to the system, or other intricate functions the system may perform. They are most likely going to be the least commonly accessed and used files from the user's perspective. Some examples of what a special file may do are as follows:
[p] - Named Pipes, which allow some user-specific program interaction. [s] - Sockets, which allow communication between processes. [b or c] - Device Files, which are used to apply access rights to [hardware] specific files. [D] - Door files, which are a Sun Solaris specific file type for now. They are used to communicate between client and server.
Since nearly everything involved in a UNIX system is treated as a file, we want to be able to issue a plethora of versitile commands on these files. A “file operation” is a command issued to the system which is going to either read or write some certain amount of data to a certain file.
The command “ls” is our directory listing command. This displays, by default, a list of all visible files in our current working directory. The files listed by an ls happen to be colored on our system (according to file type), which enhances readability. Additional parameters may be issued to the “ls” command in order to siphon more information out of the system about the files. Of particular use is the command “ls -l” (Long Listing), which will display information about each file's type, and the permissions the file possesses.
This will entail continued active use of the file system.
In order to measure my success in this area, I will simply reflect on my amount of comfort in performaing everyday tasks currently versus my amount of comfort 2 weeks ago.
October 18th - Although my comfort regarding the UNIX file system has not improved much at all in the past 2 weeks, it has exponentially grown since the start of the course, and the beginning of my use of Debian via Virtual Box.
As of this date, my home directory is very cluttered, and unorganized. I'll set the goal for myself to have improved organization by my next 2-week check-in period.
Reflect upon your results of the measurement to ascertain your achievement of the particular course objective.
Being able to complete a task must come before being able to automate it. We will have to excercise practice with some of the terms defined above in order to be able to accomplish something. After something becomes accomplishable, to automate it will be a simple translation of the accomplishment process into shell scripting language.
It's very difficult to measure something like this. We have very few tasks, other than to fill out information about each different aspect of the system. Without specific tasks it's very hard to gague one's accomplishment level. I suppose I will simply evaluate, one time per week, whether I have learned and am competent with at least 1 new command.
Follow your method and obtain a measurement. Document the results here.
Reflect upon your results of the measurement to ascertain your achievement of the particular course objective.
It would seem, so far that we are exposed to a new tool / utility each class. Other than that, I am trying to get myself warmed up to using Debian through Virtual Box on my home PC. I plan to become familiar with “Aptitude” (A package management application) in order to expose myself to new tools actively.
I'm currently not comfortable with Aptitude. I suppose once I am, and I can use it properly to obtain new tools regularly, then I will have been successful in this area. Each week I will look back on what I have been able to accomplish in this department, and update accordingly.
Follow your method and obtain a measurement. Document the results here.
Reflect upon your results of the measurement to ascertain your achievement of the particular course objective.
& * → and other operators I'm unfamiliar with in C. How do they all work together?
Collect information and resources (such as URLs of web resources), and comment on knowledge obtained that you think will provide useful background information to aid in performing the experiment.
Based on what you've read with respect to your original posed question, what do you think will be the result of your experiment (ie an educated guess based on the facts known). This is done before actually performing the experiment.
State your rationale.
How are you going to test your hypothesis? What is the structure of your experiment?
Perform your experiment, and collect/document the results here.
Based on the data collected:
What can you ascertain based on the experiment performed and data collected? Document your findings here; make a statement as to any discoveries you've made.
How can I integrate C programming and Python scripting / programming?
Collect information and resources (such as URLs of web resources), and comment on knowledge obtained that you think will provide useful background information to aid in performing the experiment.
Based on what you've read with respect to your original posed question, what do you think will be the result of your experiment (ie an educated guess based on the facts known). This is done before actually performing the experiment.
State your rationale.
How are you going to test your hypothesis? What is the structure of your experiment?
Perform your experiment, and collect/document the results here.
Based on the data collected:
What can you ascertain based on the experiment performed and data collected? Document your findings here; make a statement as to any discoveries you've made.
What are some quick and clean methods for writing data out to files, in a formatted manner? Experiment with writing files with:
Shell Scripting C programming Python scripting / programming
Collect information and resources (such as URLs of web resources), and comment on knowledge obtained that you think will provide useful background information to aid in performing the experiment.
Based on what you've read with respect to your original posed question, what do you think will be the result of your experiment (ie an educated guess based on the facts known). This is done before actually performing the experiment.
State your rationale.
How are you going to test your hypothesis? What is the structure of your experiment?
Perform your experiment, and collect/document the results here.
Based on the data collected:
What can you ascertain based on the experiment performed and data collected? Document your findings here; make a statement as to any discoveries you've made.
If you're doing an experiment instead of a retest, delete this section.
If you've opted to test the experiment of someone else, delete the experiment section and steps above; perform the following steps:
Whose existing experiment are you going to retest? Prove the URL, note the author, and restate their question.
Evaluate their resources and commentary. Answer the following questions:
State their experiment's hypothesis. Answer the following questions:
Follow the steps given to recreate the original experiment. Answer the following questions:
Publish the data you have gained from your performing of the experiment here.
Answer the following:
Answer the following:
I am very excite to have received my books from O'reilly yesterday. I've got a good 1200 pages or so to rip through, now, and I hope that by the end of it all I'll be able to begin working on Evolution and have some major success with it this time.
This evening I'll be playing with Vi and Python, and trying to get some massive documentation done on my Opus.
I discussed working on something for the video wall regarding the game, and once I have some working code we'll try to get something working across it.
I've been skimming through some of my O'reilly books lately, but I haven't come across much unfamiliar material just yet. I'm going to spend the next 20-30 minutes practicing some new Vi techniques I've read about. I've mostly been overwhelmed with some other things, such as essays and physics, lately - Brianne has helped me rework some of my time management, and I'm hoping that will help with completing more work in less time from now on. =]
This is a sample format for a dated entry. Please substitute the actual date for “Month Day, Year”, and duplicate the level 4 heading to make additional entries.
As an aid, feel free to use the following questions to help you generate content for your entries:
Remember that 4 is just the minimum number of entries. Feel free to have more.
This is a sample format for a dated entry. Please substitute the actual date for “Month Day, Year”, and duplicate the level 4 heading to make additional entries.
As an aid, feel free to use the following questions to help you generate content for your entries:
Remember that 4 is just the minimum number of entries. Feel free to have more.
Screen is actually not a standardly available UNIX, it must be downloaded with apt-get / aptitude.
«<Fill this in with some code of how to get screen»>
If you wish to aid your definition with a code sample, you can do so by using a wiki code block, an example follows:
/* * Sample code block */ #include <stdio.h> int main() { return(0); }
cp - our copy command will place an identical version of a file in a given directory, with a given name, without destroying the original.
simply:
http://www.computerhope.com/unix/ucp.htm
Most notably: yes | cp
If files with the same name exist in the new directory and there is a decision prompt to overwrite files, it answers yes.
Interesting use of a pipe.
This is very close in nature to copying a file. To move a file, you specifcy the file, and where you want that file to 'go', rather than where you want that file to be 'replicated'. You can specify a new name, but identical directory as the original in order to 'rename' the file.
“mv” is the move command.
mv –help, for more info.
A dangerous command to use without looking into the syntax for it. The command is “rm”, and can be used to wipe just about any amount of files recursively - therefore offering detrimental affects, if run in certain ways as root user.
An alternative to “rm” is “shred”.
shred - This overwrites files in a recurring manner, in order to enhance security, preventing most hardware-oriented file recovery from being able to recover anything that's been removed. This does not remove files, seemingly, but, instead, overwrites only. You can force removal with -u (–remove). This command is then very similar to “rm”, differing only in overwriting.
An interestingly named command for creating files, “touch” can be used to create an empty file of given name and directory. Using touch on a file will update all of the file's information timestamps.
Alternatively, invoking most text editing programs with a file name appended will prompt for the saving of the file to disk on exit. This is a more streamlined way to create files which you know the intended orientation of.
Identification and definition of the chosen keyword. Substitute “keyword” with the actual keyword.
If you want to demonstrate something on the command-line, you can do so as follows:
lab46:~$ cd src lab46:~/src$ gcc -o hello hello.c lab46:~/src$ ./hello Hello, World! lab46:~/src$
Identification and definition of the chosen keyword. Substitute “keyword” with the actual keyword.
If you wish to aid your definition with a code sample, you can do so by using a wiki code block, an example follows:
/* * Sample code block */ #include <stdio.h> int main() { return(0); }
Identification and definition of the chosen keyword. Substitute “keyword” with the actual keyword.
If you want to demonstrate something on the command-line, you can do so as follows:
lab46:~$ cd src lab46:~/src$ gcc -o hello hello.c lab46:~/src$ ./hello Hello, World! lab46:~/src$
Identification and definition of the chosen keyword. Substitute “keyword” with the actual keyword.
If you wish to aid your definition with a code sample, you can do so by using a wiki code block, an example follows:
/* * Sample code block */ #include <stdio.h> int main() { return(0); }
Identification and definition of the chosen keyword. Substitute “keyword” with the actual keyword.
If you want to demonstrate something on the command-line, you can do so as follows:
lab46:~$ cd src lab46:~/src$ gcc -o hello hello.c lab46:~/src$ ./hello Hello, World! lab46:~/src$
Identification and definition of the chosen keyword. Substitute “keyword” with the actual keyword.
If you wish to aid your definition with a code sample, you can do so by using a wiki code block, an example follows:
/* * Sample code block */ #include <stdio.h> int main() { return(0); }
Identification and definition of the chosen keyword. Substitute “keyword” with the actual keyword.
If you want to demonstrate something on the command-line, you can do so as follows:
lab46:~$ cd src lab46:~/src$ gcc -o hello hello.c lab46:~/src$ ./hello Hello, World! lab46:~/src$
State the course objective; define what that objective entails.
State the method you will use for measuring successful academic/intellectual achievement of this objective.
Follow your method and obtain a measurement. Document the results here.
Reflect upon your results of the measurement to ascertain your achievement of the particular course objective.
What is the question you'd like to pose for experimentation? State it here.
Collect information and resources (such as URLs of web resources), and comment on knowledge obtained that you think will provide useful background information to aid in performing the experiment.
Based on what you've read with respect to your original posed question, what do you think will be the result of your experiment (ie an educated guess based on the facts known). This is done before actually performing the experiment.
State your rationale.
How are you going to test your hypothesis? What is the structure of your experiment?
Perform your experiment, and collect/document the results here.
Based on the data collected:
What can you ascertain based on the experiment performed and data collected? Document your findings here; make a statement as to any discoveries you've made.
What is the question you'd like to pose for experimentation? State it here.
Collect information and resources (such as URLs of web resources), and comment on knowledge obtained that you think will provide useful background information to aid in performing the experiment.
Based on what you've read with respect to your original posed question, what do you think will be the result of your experiment (ie an educated guess based on the facts known). This is done before actually performing the experiment.
State your rationale.
How are you going to test your hypothesis? What is the structure of your experiment?
Perform your experiment, and collect/document the results here.
Based on the data collected:
What can you ascertain based on the experiment performed and data collected? Document your findings here; make a statement as to any discoveries you've made.
If you're doing an experiment instead of a retest, delete this section.
If you've opted to test the experiment of someone else, delete the experiment section and steps above; perform the following steps:
Whose existing experiment are you going to retest? Prove the URL, note the author, and restate their question.
Evaluate their resources and commentary. Answer the following questions:
State their experiment's hypothesis. Answer the following questions:
Follow the steps given to recreate the original experiment. Answer the following questions:
Publish the data you have gained from your performing of the experiment here.
Answer the following:
Answer the following:
This is a sample format for a dated entry. Please substitute the actual date for “Month Day, Year”, and duplicate the level 4 heading to make additional entries.
As an aid, feel free to use the following questions to help you generate content for your entries:
Remember that 4 is just the minimum number of entries. Feel free to have more.
This is a sample format for a dated entry. Please substitute the actual date for “Month Day, Year”, and duplicate the level 4 heading to make additional entries.
As an aid, feel free to use the following questions to help you generate content for your entries:
Remember that 4 is just the minimum number of entries. Feel free to have more.
This is a sample format for a dated entry. Please substitute the actual date for “Month Day, Year”, and duplicate the level 4 heading to make additional entries.
As an aid, feel free to use the following questions to help you generate content for your entries:
Remember that 4 is just the minimum number of entries. Feel free to have more.
This is a sample format for a dated entry. Please substitute the actual date for “Month Day, Year”, and duplicate the level 4 heading to make additional entries.
As an aid, feel free to use the following questions to help you generate content for your entries:
Remember that 4 is just the minimum number of entries. Feel free to have more.
Identification and definition of the chosen keyword.
If you wish to aid your definition with a code sample, you can do so by using a wiki code block, an example follows:
/* * Sample code block */ #include <stdio.h> int main() { return(0); }
Identification and definition of the chosen keyword.
If you want to demonstrate something on the command-line, you can do so as follows:
lab46:~$ cd src lab46:~/src$ gcc -o hello hello.c lab46:~/src$ ./hello Hello, World! lab46:~/src$
Identification and definition of the chosen keyword. Substitute “keyword” with the actual keyword.
If you wish to aid your definition with a code sample, you can do so by using a wiki code block, an example follows:
/* * Sample code block */ #include <stdio.h> int main() { return(0); }
Identification and definition of the chosen keyword. Substitute “keyword” with the actual keyword.
If you want to demonstrate something on the command-line, you can do so as follows:
lab46:~$ cd src lab46:~/src$ gcc -o hello hello.c lab46:~/src$ ./hello Hello, World! lab46:~/src$
Identification and definition of the chosen keyword. Substitute “keyword” with the actual keyword.
If you wish to aid your definition with a code sample, you can do so by using a wiki code block, an example follows:
/* * Sample code block */ #include <stdio.h> int main() { return(0); }
Identification and definition of the chosen keyword. Substitute “keyword” with the actual keyword.
If you want to demonstrate something on the command-line, you can do so as follows:
lab46:~$ cd src lab46:~/src$ gcc -o hello hello.c lab46:~/src$ ./hello Hello, World! lab46:~/src$
Identification and definition of the chosen keyword. Substitute “keyword” with the actual keyword.
If you wish to aid your definition with a code sample, you can do so by using a wiki code block, an example follows:
/* * Sample code block */ #include <stdio.h> int main() { return(0); }
Identification and definition of the chosen keyword. Substitute “keyword” with the actual keyword.
If you want to demonstrate something on the command-line, you can do so as follows:
lab46:~$ cd src lab46:~/src$ gcc -o hello hello.c lab46:~/src$ ./hello Hello, World! lab46:~/src$
Identification and definition of the chosen keyword. Substitute “keyword” with the actual keyword.
If you wish to aid your definition with a code sample, you can do so by using a wiki code block, an example follows:
/* * Sample code block */ #include <stdio.h> int main() { return(0); }
Identification and definition of the chosen keyword. Substitute “keyword” with the actual keyword.
If you want to demonstrate something on the command-line, you can do so as follows:
lab46:~$ cd src lab46:~/src$ gcc -o hello hello.c lab46:~/src$ ./hello Hello, World! lab46:~/src$
Identification and definition of the chosen keyword. Substitute “keyword” with the actual keyword.
If you wish to aid your definition with a code sample, you can do so by using a wiki code block, an example follows:
/* * Sample code block */ #include <stdio.h> int main() { return(0); }
Identification and definition of the chosen keyword. Substitute “keyword” with the actual keyword.
If you want to demonstrate something on the command-line, you can do so as follows:
lab46:~$ cd src lab46:~/src$ gcc -o hello hello.c lab46:~/src$ ./hello Hello, World! lab46:~/src$
State the course objective; define what that objective entails.
State the method you will use for measuring successful academic/intellectual achievement of this objective.
Follow your method and obtain a measurement. Document the results here.
Reflect upon your results of the measurement to ascertain your achievement of the particular course objective.
What is the question you'd like to pose for experimentation? State it here.
Collect information and resources (such as URLs of web resources), and comment on knowledge obtained that you think will provide useful background information to aid in performing the experiment.
Based on what you've read with respect to your original posed question, what do you think will be the result of your experiment (ie an educated guess based on the facts known). This is done before actually performing the experiment.
State your rationale.
How are you going to test your hypothesis? What is the structure of your experiment?
Perform your experiment, and collect/document the results here.
Based on the data collected:
What can you ascertain based on the experiment performed and data collected? Document your findings here; make a statement as to any discoveries you've made.
What is the question you'd like to pose for experimentation? State it here.
Collect information and resources (such as URLs of web resources), and comment on knowledge obtained that you think will provide useful background information to aid in performing the experiment.
Based on what you've read with respect to your original posed question, what do you think will be the result of your experiment (ie an educated guess based on the facts known). This is done before actually performing the experiment.
State your rationale.
How are you going to test your hypothesis? What is the structure of your experiment?
Perform your experiment, and collect/document the results here.
Based on the data collected:
What can you ascertain based on the experiment performed and data collected? Document your findings here; make a statement as to any discoveries you've made.
If you're doing an experiment instead of a retest, delete this section.
If you've opted to test the experiment of someone else, delete the experiment section and steps above; perform the following steps:
Whose existing experiment are you going to retest? Prove the URL, note the author, and restate their question.
Evaluate their resources and commentary. Answer the following questions:
State their experiment's hypothesis. Answer the following questions:
Follow the steps given to recreate the original experiment. Answer the following questions:
Publish the data you have gained from your performing of the experiment here.
Answer the following:
Answer the following: