Final Thoughts on Introduction to Unix

As I turned in my final assignment to Github (which by the way I finally memorized the commands for uploading!) I was pretty happy with how the course turned out. I learned a whole new operating system and gained familiarity with the terminal and its countless commands. I definitely learned enough to be able to hold my own in an entry-level job position.

I am especially proud of the group project that me and 3 other guys made (see the previous post for link). It is the most reviewed game on the Scholar forums and all the answers have been yes, yes, yes, yes, yes, etc. and everyone has had great things to say about it. Favorite comment: “If it was longer and you could get the copyright I’d pay to play this game!” It’s really encouraging to hear all the favorable reviews; it’s definitely inspired me to get back into the field of programming as my CPE focus and study up on it over break and perhaps expand this game or make my own!

My charge to the Unix class next spring: come to class and talk to each other!

LUUG Meetings

Throughout the semester, we had an assignment to go Linux and Unix Users Group for credit. So I decided to go check it out the club. However, I was kind of over-whelmed by the information that they were discuss at that meeting. The environment made it feel like everyone in the room had to be adequate user of Linux or UNIX.

I definitely want to give the club the benefit of the doubt. I might have walked into an officers meeting or certain where veteran Linux or Unix users come to speak.

I feel like this club should I have separate meetings for Beginner and Expert users, just some new users like myself do not get over whelmed with new information. Or the club could set up workshops for setting up Linux or for working new projects.

Maybe I get the wrong experience with the club, but first impressions are tough to forget.

Tough Next Step

Is it just me or did the progression stop?

I installed Ubuntu, learned how to use the standard terminal, got familiar with the commands… now what?

The curriculum and online lessons did a great job in introducing me to Unix and how to use it and what it can do. However, how do I up my skills even further? Things like better terminals (Tmux?), remote access, greater customization,  and more ways to draw me in are completely foreign still. I feel as though there are tools out there that can help me become a better Unix programmer but I haven’t been able to find them. Sure there’s the internet but it’s an even worse experience trying to sort through the garbage bloggers who are trying to teach random applications; it’s a pain to try to find good help.

So besides buying how-to books how do people get so good at Unix and start hacking away?

I mean you can only mess around with trial and error for so long, right? You have to run out of exciting new commands eventually too don’t you?

Final Project Update

This semester went so fast and we are reaching the finals week soon. Our goal was to finish our Unix project as soon as we can so that we can study for our exams. Our project incorporates a mixture of command line interfacing and parsing data from on line. Our group is building  a “fantasy football application” in Python. When the user logs in with his user name and password, the data from his fantasy football team will be displayed. This is done by parsing the data that is available on yahoo sports web page when a registered user logs in. The data is then displayed accordingly based on user preferences. We still haven’t finished the park of User interface through command line, but we are pretty much sure that we could finish this by this weekend. In addition, I am also working on the processes home work, but it seems really tough.

In ECE3574, we have finished our project on temperature calibration using message passing. I was not able to complete the whole thing even after taking a day of extension. Our next project is finding primer numbers using Qt designer. Hopefully, I will finish this assignment along with the Unix assignment.

Poems about Unix

Hey all,

I thought I would post my poems here so you could take a look if you wanted.

Haiku:
unix? you ask me
simplicity is the key
only what you need
limerick:
Unix is not Windows
so it comes with many new woes
many new utilities
none that I can use with ease
virtualbox is even hard to close

Poems

Haiku:

Simple is the word
Only does one job very well
Why do any more work?

Limerick:

Unix was cool looking and different
but was difficult to understand
For doing everyday tasks,
were painful tasks in itself
But what is life without a few pains.

Intro to Unix ECE 2524 Entry #9

I’ve been enjoying the break finishing up all the current unix assignments before the break began. I guess the last thing I did that I haven’t mentioned yet is the future of unix paper.  I thought this was an interesting paper to write about and research as technology in the future has always been an interest of mine. Upon finishing the paper I didn’t realize that part of the submission was creating a makefile to convert the paper to html and pdf. Since I started this paper in Word I wasn’t sure where to go and how to get it in to markdown format. Turns out markdown format is pretty much just plain text, so I was able to take the plain text file and simply add some white space where paragraphs were needed which wasn’t nearly as bad as I thought it would be. After getting the markdown file, converting it using pandoc was as simple as just googling what the command to do so was. Setting up the makefile after this was a piece of cake.

In 3574, we are getting a bunch of homeworks as he is trying to squeeze everything into these last couple of weeks which is really annoying. So we got stuck with an assignment over break. This proved to be pretty tough especially without being able to go see the TA for help.  The homework was on POSIX message queues.  I managed to set up everything necessary for the homework, but was stuck on one of the most trivial parts. The parameter for the message in the send and receive functions is a char*. I didn’t realize how annoying this was to convert my messages between char*s and QStrings.  Turns out everything I was doing wrong had to do with my error in conversion. I was using the same char* as my send and receive message because I didn’t realize how it was really storing the information into the pointer.  By having 2 char*s, one for receiving, and one for sending, this cleared up the issue. Such a small thing for all the debugging I had to do. Debugging for this homework was extremely annoying since you had to run 4 separate processes of the same program, then a fifth process of a different program. All 5 processes had to be run in a certain order, and remade, and reran every time I made a small change. It would take about 30 seconds just to get to the point where I could rerun the program. I finally got it working though after a few emails with the TA,

Poet assignment thoughts

While writing the haiku and limerick for the assignment due tomorrow I realized a few things about the class and my feelings toward Unix. I’m very reluctant to learn new things about Unix because I’m so used to Windows 7. I don’t even want to learn Windows 8 because it’s a new operating system. While I realize that Unix and Linux can be completely customizable to your needs, the “default” package of most operating systems is enough for me. Most of the programs and packages we have had to install in Ubuntu have given me some form of trouble. My personal opinion is they should not make this course mandatory for CPE’s in the future. If you don’t want to learn a new operating system then it will be very difficult for you to learn it, and learn it well.

Cooperative Processes

My latest project in ECE 3574 is about cooperative process. The purpose of our assignment to communicate between 2 different files which includes 5 processes altogether. Cooperative process is the idea of of passing/retrieving information within the processes. There are two ways that this can be done:

1) Shared Memory

In shared memory, all communicating processes must establish a region of shared memory. Each processes then reads/writes to this shared memory location. It is important to make sure that two processes may read and write at the same time. A classic example of shared memory problem could be encountered during a producer consumer problem. The producer produces while the consumer consumes the information. The best place to put the data would be in the shared memory location which could be accessed by both the producer and consumer.

2)Message Passing

There is no memory allocated in message passing. A small mail box with a corresponding mail box number is attached to the processes. The processes send and receive data through this mailbox. A communication link must be established for two processes to communicate. My current project focus of Message Passing which utilizes Posix Message Queues.

FTP(File Transfer Protocol)

While doing research for the futures paper, I found some information about FTP. FTP is also called as File Transfer Protocol. We are aware that Unix is a server based operating system. There is one central server and the data of this server can be accessed by several other computers which have access to the parent server. Often times, the access is restricted by enforcing a user name and/or a password. Each computer is like a branch where the server acts as the root of this tree.

FTP is the way to transfer data to and from these server. It can be very beneficial in office where the main data might need to be accessed by all the employees. There is a list of FTP commands that could be found on Google. Some of these commands are:

APPE: Append

DELE: Delete File

MKD: Make directory, etc.

All these commands are typed in the Linux terminal. There are several other ways of transferring files and FTP is one of the major and famous one out there.

Look at this link for several other FTP commands:

http://en.wikipedia.org/wiki/File_Transfer_Protocol