Week 1-4 9/29 start
Week 1
August 29, 2011
Data Struct, HPC1 & System Prog
How many Lair creatures dose it take to make a video cam move in a room unassisted by human hands
1.1 Matt Haas has issued a challenging concept of putting a cam on a track to move around the room to record project progress and for security reasons
1.2 i took the challenge as i thought it would be awesome to try and it would be on par with the makers or such as weasel-bot and the video wall
i did some research to find the hardware needed isn't hard to find but the programing required is almost nonexistent
you can not call a pointer before you have made it pointie and set the pointer to the pointie
1.4 you must use the wand of dereferencing only after you have established an element able to be pointed too.
1.5 you can have more then one pointer set to the same element which you can modify the element and both pointers will read the new element data.
1.6 you can also have a pointer point to a pointer that points to a element or another pointer.
Today is the first Friday of the first week of my 5th semester at CCC
the action of coming early to class around surprisingly 8:45 it was empty and i was able to start basic programs for the HPC project im attempting
clear head no distractions in a friendly familiar environment
what concepts aren't perfect yet hell all of them but at least I'm at ease here my life been hell for the past few months
challenges i face well not sure what a pointer is just yet or how to utilize it but i have a vague sense to what i need to do
Week 2
September 5, 2011
System Prog, HPC1 & Data Structures
this was the first day of week two
i found a schematic of a bread board DC motor control unit the only problem is how to make i work for two
Thursday i did more research and found open source code usable for the camera instead of downloading a file to run it with out knowing what is in it
Friday i was introduced to link lists which helped me a lot to finish my programs for discrete
Week 3
September 13, 2011
System Prog, HPC1 & Data structure
this was the 2nd day in the 3rd week when i got to sit down and type this so bare with it im a bit tired and grouchy i have to move my shit out of one house to another for some family and personal reason which i didn't want to do.
Monday we discussed Double link lists and the applications and utilization.
have to remember all the pointers must be pointing at something and it helps if each is pointing is to something different in most cases.
you can also make this work for char and string by changing all %d to %c or %s and the variables to char instead of int or others.
I have started a new project for HPC1 which is the measurement of power usage in the lair.
with a Wattage monitor and a rough estimate to how much we spend for one Kilo/Watt hr which is based on 11cents
Week 4
September 20, 2011
System Programing HPC1 & Data Structures
Week 5
September 25, 2011
System Programing HPC1 & Data Structures
1.1 Monday fun with linked lists and more confusing programing i really need to review my C/C++ syn text
1.2 Tuesday more Opus done with HPC1 topics all objectives and most of my SysProg need to do the experiments YAY (sarcasm)
1.3 Thursday YAY all terms done and most have examples if you read this Matt i apologize for not all the examples being done but at the moment I'm more focused on getting some experiments done.
1.3.2 Thursday YAY two experiments done need to finish HPC1 experiments
1.4 Friday in at 8:30 feel like crap tired as hell woke up at 3:30am and went to bed at 11:30 not enough sleep might fall asleep before class and possible during
]
Meems (Misc)
Fun Facts about the lair with no terminology or reason just for fun.
Blue-“The door is everything that once was and ever will be the door controls happiness and sadness, anger and fear, space and time, The door can see into your mind, The door can see in to your soul!” Charlie-“The door can do all that!?!” Blue-“no.. not really”
Key Words for HPC1, Data Structures and System Programing
Data Structure Topics
Version control: The use of Subversion documentation and recording in a central and secure location presented to you by your employer, yourself, or a class instructor EXP. svn add “YOUR FILE NAME HERE” / svn commit -m “YOUR FILE NAME HERE” / svn update “THE DIRECTORY YOU MADE CHANGES TOO”
Pointers: in the Use of pointers u are Referencing a known location of allocated memory in two possible ways the address or its contents EXP.
int main()
{
int *i;
int s[];
int i = s[i];
}
int main()
{
int *i;
int *h;
int s[];
int *i=s[i]'
int *h->*i
}
Null Pointers: Null pointers are used to reference a end of a node stream or a end point in part of the program there used as return points or end points to the entire program EXP. A double link list while tmp→end next→Null
Void Pointers: All I know at the moment about Void its self is its a empty data type. So I'm guessing a void pointer could point to both int and char with out given you much trouble. That wold be useful when having multiple data type sets with in a program that needs to be reference using 1 or 2 pointers, Instead of multiplying the number of pointers you might be able to use a void pointer instead I will need to experiment with this. EXP. See Experiment #1 Data Structures
Function Pointers: A function pointer is nothing but a Referencing Scope to change the way the program is ran, run, or running. EXP. could think of a few but to lazy to copy and paste at the moment.
Memory Allocation: the Use of malloc is one of the best function commands there is. As well as one of the most unique with it u are able to physically able to take or use space on your computers Ram and basically say this area is just for this program and nothing else. EXP. Doubly linked list Program for node creation.
Memory De- Allocation: the use of Free is another unique program commands that allows you to empty and give the Ram space that you allocated for use and completely erases it and gives it back to the computer for its own use.
Linked list: is a Node utilizing program allowing you to free your self form a array which is a predetermined size to one thats not predetermined which can be made short or longer by adding program functions how ever single linked list only use 2-3 pointers total to manipulate its data which means you can not insert or replace data that needs to be changed.
Double linked list: is another Node utilizing program that allows you better access and can fill nodes with arrays making them larger and more expansive and in many ways more effective and efficient this linked list type always s able to if done right delete replace and insert other data with in the string of node ordered data.
Stacks: Stacks are a structure in computer programing allowing limited access to a data base of information (not a real Data base but figuratively) Stacks are a abstract data structure following a last in first out system of data organization. EXP. i could copy and paste one but it wouldn't be one of my own work or an example of what i learned it would be from another wiki.
Pushing:Is the way to initialize or place things into a stack which always goes on top of the stack. EXP. Don't have one yet
Popping:is the way to take off the top thing of the stack. EXP. Don't have one yet
System Program Topics
User Space: users space is determined by the free space on the RAM (program workspace) user space is also defined by the user itself in what it can use and what it wants to use on a multi seat system its defined by the client and how it works with the user to meet its needs. EXP. the use of the multi seat systems in the lab are each terminal is a dummy terminal which the docking bay controls all O/I responses form the USER then ends those to the intelligent Tower which in return either decides to send back the info the user is looking for or go to another source for the information.
Kernel Space: Kernel space is the Operating systems basic command lists and what it do for the organization of files with in the computer aka File systems and commands. EXP. UNIX/Linux uses Directories to organize its files where as Windows will use Folders
File Access: file access is the permission of of the USER and or kernel on how to handle a file. EXP. i have viewing access to /var/public/data which allows me to copy or look at the files in side that directory but while its in that directory i an unable to make changes edit or save over those files.
File Descriptors: these are the error in and out codes included insed of the libaries that are instlalled and used on a computer to indecate weather or not the program is running properly or not. EXP. when compling an code you often find your self a list of errors. EXP. one i becoming more farmillar with is Segmentation fualt errors which is when a a program you or some one else has written uses pointers and one of the pointrs or more then one of the pointers is pointing at the wroung position.
Buffering: is the are of phyiscal memory that stores temp data for a short peroid of time its used to calling programs or commands when entered. EXP. when u bring up a web browser it may seem instantanius but it accutly takes a minute section of time this is what the time is between u sending the request and it appering on the screen.
System Calls: is what happends when the system itself calls to the
OS kernal for a request of service it may be for a file a program a set of commands or even some physical space on a hard wear device to start running. EXP. using Malloc to allocate memory space for a node or an array u use a system call to tell the kernal tyhis is what i want please do this and the kernal then says to teh ram free up this space using for nother but this.
Bit Sets & Bit Masks: mostly used for netowrking poruposes these sieres of 1s and 0s are vital to the communication between computers in effort to create a network: Bit sets are a sieres of 8 1s and 0s and bit masks are the encription for the bit set usinf the ANDing system and the free unsed data space to create a encription.
User ID & Group ID: User ID is set up for use for a single person to use his or her own directories much like a multiple users on a single system, Group ID is used for people either looking in on you or on users form the same seat array (aka the multi seat systems). EXP. Flake is one of the group ID systems it is the first set of tables in the class as you walk in.
Links
Device files: device files are usually object code for using I/O hard war on a computer which u should never try to mes with unless u have the proper instruction OR a lot of spare copies of that part and time. EXP the driver software for a DVD burning should be never messed with when u have sound on it will make unnerving noises.
processes and programs: Processes are not necessarily programs but programs are always processes. Processes are either executed programs or executed commands. where as Programs are software that manipulate certain inputs that it is program to handle. EXP. run form command line top
you'll notice that u have top as a process but your programs you have open are also processes but then notice that top is a command and not a program.
HPC1 Topics
C/C++ Syn text Review and Refresher: working on it EXP. Double link list manipulation of string and chars
Watt: Watt is a unit of measurement used to measure the flow of electrical current through a viable medium. EXP. the Standard Edison light bulb emits light when electrical current flows through a filament the power it requires is usually labeled on the top of the light bulb
KW/H: stands for kilowatt per hour which is a measurement of electrical current into a resource for a given hour usually done with ratios. EXP. your NYSEG bill if your in NYS or your light and gas bill you will see a ratio like $0.00 per KW/H
Motion Cam & Software: a Security system which enables a camera with the right hard wear to move around in a circle and/or up and down the software that might come with is possible something that you can control the cameras movement. EXP. Although i do not know how to work it or how it works the lairs current camera is able to take pictures stream live video feed and move up down as well as right and left
Hobby Motor: A hobby motor is a small electrical DC motor which produces 20-60lbs of torque that i know of it runs off a 1.5 to 3.0 volt DC battery. if I'm not mistaken the floppy disk drive motors on the lair cam works on the same concept as the hobby motor just scaled way down and unable to move much more then a few ounces.
Multi-seat systems: is a system of computer monitors which can be directly controlled by a single user for each while only using one computer tower to process and out put. EXP. the front half the Lair minus Juice box and Caprison.
thin multi seat client: a thin multi seat client is the use of Docking Station and a single central intelligence hub to direct Traffic from multiple users and a single seat on different terminal systems working on there own things are there own speed with out causing problems to the other users. EXP the lair thin client using 4 USB toggle units to run four separate monitors to one single tower unit which in returns only deals with easy and simple I/O commands anything more involved such as compiling code or accessing the web the processor pipes it out into the central two servers which in returns sends the gooey and I/O requested.
USB Docking Station: is essentially a I/O hub which directs traffic between key board mouse and monitor of each multi seat station to the Tower which then either deals with the simple I/O commands or pipes them to the servers. this is what makes the thin client multi seat in the lair work as well as it dose. EXP. the Docking Stations next to each terminal with the video power and USB 2.0 ports
Documentation: vital piece of any project is recording your results process and/or explanations. EXP.
Sano's Portfolio
Upgrading: upgrading doesn't always necessarily making physical changes to a program or even a hard ware set up of a system in use some times its just updating to run on newer protocols or even making the file or hardware more efficient. EXP.
Logging: is what a computer dose to check for changes to any of its directors files or libraries and basically sets a time stamp on them saying when it happened and when it ended. EXP. if you had ever needed to run system restore u will be giving a list of events that have occurred prior to the system restore on the computer.
Accessibility: is a fancy way of saying this is what your able to do on this system and nothing more which also depends on the system you are using and who the super administrator is. EXP. Lair users on all the machines have there own account and password which are saved on the two servers i know of only 2 people who have administrator super rights and they are Presley and Matt which when they enter there user ID and password the servers know that they have access and rights to everything in the system no matter how critical is it to the system or how mundane the file however they are not allowed to see others users files or directors with out permission. EXP. /var/public/data i can look at everything in there but i can change any of it till i copy from its location to my home directory or a directory that is linked to my home
DATA Objectives
Objective 1
the current objective of the course is to get us to understand how pointers work how to implement Structures and how to use linked lists
Method
the method I will be using to tell if I'm making progress is that for most of these early implementations I will be using them to do other assignments and if and when I understand enough to write one from near scratch which wont be for a while till then i will measure my results and record them as submitted assignments
Measurement
I'm not sure what this means but so far i have been able to manipulated Characters and integers fairly well using some basic search algorithms
how ever I'm finding that trying to take in command line arguments is proving and showing my apparent weak understanding of some basic fundamentals of C and C++ programing
Analysis
Thew Results i have been getting and the out put is correct for most part and i been getting positive reviews but not nearly where i think i should be and I'm am failing and falling behind in the logical and understanding of what is actuality happening.
I Did fairly well as to be expected i am still having a hard time refreshing my mind and remembering all the syn text for C and C++
there is much room for improvement my code is command line driven not menu or gooy driven
at this point the process of measurement is working fine and i have yet to exceed my own standards so it will remain where it is till i have a better understanding
if i were to enhance it i would try to rewrite the entire code form standard C to C++ and make a better menu system
the Application I'm attempting to write is a string/char manipulation library which allows the user to make changes to data if needed if i were to change it it any way i would make it into a semester long project to make a simple word processor.
SYSPROG Objectives
Objective 1
At the moment I'm not quite sure what i am attempting to do in system programing but if i could tie this in with my major HPC1 project i would probably see a better reason why to read the book (i“ve read the first 2 chapters)
Method
the method of measure i will be using is the book and the experiments i will attempt currently no experiments or projects are being done by me for this class
Measurement
Unfortunately as of Tuesday September 27,2011 i have neglected this course do to my focus on HPC1 Discrete math and Data Structures hwo ever i am working on an experimental idea that i will try either Thursday afternoon or Friday morning
Analysis
Reflect upon your results of the measurement to ascertain your achievement of the particular course objective.
How did you do?
Room for improvement?
Could the measurement process be enhanced to be more effective?
Do you think this enhancement would be efficient to employ?
Could the course objective be altered to be more applicable? How would you alter it?
HPC1 Objectives
Objective 1
the objective in this class is to broaden are field of knowledge and use of Linux UNIX environments to better serve are future employers where ever and whom ever they may be are selfs or others.
Method
the method i will base my results on is the variety of projects i do and how i can improve upon the concept
Measurement
Currently my Motion Room tracks cam is a research state awaiting approval to move to the prototype stage which i have no clue how to attempt
Currently my Lair power usage project is on going and fairly straight forward i am on the second week of testing will be testing new systems next week
Analysis
most results are promising but there are minor concerns by myself and my instructor as to the actuality software implementation for the Motion cam system and as well as the degree of power usage there is in the lab may be more then expected.
Fairly well i believe better then i thought got farther then hoped which means my neglected System program class will most likely improve next month
need a better understanding of electrical systems and how to operate them
Not sure
again not sure
it could but it would lose sight of the broad focus to what it is use to and accustomed too.
Experiments
Experiment 1 DATA structures
Question
What if i used a void pointer to point to a int then to a char with the same pointer in a single program.
Resources
Double and single linked list from Data class
Hypothesis
I believe if u did this it would solve the problem of initialization your pointer to a certain variable type.
The reason i believe this s that void is a undetermined variable type which when pointed to one variable type to another should change with it.
Experiment
I'm going to make a simple program and run it to point and print out each variable type data using a void pointer
Data
the code Dose not let you dereference a void as a pointer
Analysis
Based on the data collected:
was your hypothesis correct? No
was your hypothesis not applicable? Yes it was but it didn't show the result i was hoping for
is there more going on than you originally thought? yes one short coming is that void is indeed a variable type but how ever it is suppose to be empty which has made me some one perplexed to the fact that it wont point to both int and char variable types
what shortcomings might there be in your experiment? the lack of coding might be the problem i better if i over loaded the void variable function it might work but in this experiment i was trying to do the it the simplest way possible.
what shortcomings might there be in your data? problems with the syn text and my rusty memory of the C language syn text
Conclusions
if u are to over load the void pointer u might be able to get it to point to any variable type u want with out much problem and with very little repercussion do to the fact that it is defined as a empty variable type able to manipulate other variable types with out much harm. How ever from the conclusion I've witness and hand programed is that void by itself with out over loading it will not point to other variable types at all.
Experiment 2 HPC1
Question
What is the question you'd like to pose for experimentation? State it here.
Resources
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.
Hypothesis
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.
Experiment
How are you going to test your hypothesis? What is the structure of your experiment?
Data
Perform your experiment, and collect/document the results here.
Analysis
Based on the data collected:
was your hypothesis correct?
was your hypothesis not applicable?
is there more going on than you originally thought? (shortcomings in hypothesis)
what shortcomings might there be in your experiment?
what shortcomings might there be in your data?
Conclusions
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.
Experiment 3 System programing
Question
the qeustion is at what rate can a single process be performed using multiple terminals and the same process or command
Resources
past experiences have seen many different findings and one we recently noticed was the use of a xtv terminal screen to share sight of a single persons terminal.
Hypothesis
based on what I've seen and done in the past with a small program or command running once and not continuously it will not be as difficult or as one that continues and updates periodically.
when Matt Haas first started to use the XTV environment to show us what he was doing on his terminal the delay and relay timer was set as fast as it could go and with about 10-13 people running it as is started to take up close to 90% of the CPU power on the servers and the delay times were closing in on 10 seconds per person.
Experiment
I'm going to use Matt's XTV test to prove the bases that a constantly running program or command is more taxing then a simple quick command by getting people on Friday about 7 or more to run the same command line command of either top or who is less taxing then the XTV program
Data
Perform your experiment, and collect/document the results here.
Analysis
Based on the data collected:
was your hypothesis correct?
was your hypothesis not applicable?
is there more going on than you originally thought? (shortcomings in hypothesis)
what shortcomings might there be in your experiment?
what shortcomings might there be in your data?
Conclusions
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.