My attempt at being a poet (#7)

Whats my name? (Haiku)

Short and sweet is best

I love logical thinking

My Name is Unix

Speak up (Limerick)

Starting from scratch this is going to be rough,

I work through the assignments throughout the semester this is tough.

Unix and Python kick my butt

And all I do is keep my mouth shut

I’ve almost made it to the end, I’ll be ok surely enough.

Posted in Uncategorized

Response to Shy then Engineers or Engineers then Shy?

Original Post

I agree with this post completely. First day of class is not as exciting as it used to be; no one tries to meet new people or talk to the person next to them. As difficult as it is maintain a social life as CPE, I feel like there are many opportunities to meet new people with similar interests, such as in school clubs or sporting events. I think effort is simply needed to meet new people.

Speaking up in class is entirely a different issue, I believe the main reason for no one wanting to speak up is because they are intimidated by public speaking. I know its a small class of 30 people, but I would nevertheless consider speaking up in class as public speaking.One way to fix this issue would be to make public speaking class part of our curriculum. Not only will this help in the short term, but it will be very useful on the job.

Well, its either my reason above, or no one knows the answer to the professors question.


Everyone’s a Poet

Here are my poems for the everyone’s a poet assignment. I’m no poet, so please don’t judge to harshly :)


Programs should work well

Together and by themselves

with text to connect


Learning Unix when I’m used to Windows

Was difficult, proving to be a challenging foe

But I soon learned the new rules

And the benefits of the command line tools

Although I still think the exit button on the right side, is where it should go.


Posted in Uncategorized



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


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,

Re: large scale makefiles

In a recent post  asked about maintaining makefiles for larger projects.  It is certainly true that manually updating lists of dependencies for many (hundreds… thousands even, the Linux kernel is comprised of some 22,000 source files) can become tedious.  Luckily there are tools that will generate Makefiles for you, though really their motivation is to automate the build process on a wide variety of machines and platforms.  If you’ve used Qt for development you have probably been using the ‘qmake’ command.  This is generate a ‘Makefile’ that is then read with a subsequent call to ‘make’.  For more general projects GNU provides Autoconf and Automake.  Along with a couple other programs these are referred to as the GNU Autotools.  If you ever need to install a piece of GNU software from source (if a package isn’t available for your distribution, for instance) chances are it will use Autotools and you will build it with two commands:

$ ./configure
$ make

The first command will generate the Makefile that is then used when you run `make`.  In the process of generating the Makefile, `configure` will check your system for necessary libraries and tools and notify you if something needed is missing.  This is also where you would specify optional build parameters.  To get a list of options run

$ ./configure --help

If you decide you do want to make your project available to the open source community, it’s a good idea to set up the build process using GNU Autotools since folks will be expecting it.

Another option is cmake, which provides similar functionality to GNU Autotools and in addition has the capability to generate project files for a number of IDEs. A quick google search will turn up several commentaries on the merits of the two build systems (and probably several others).

If you do find yourself writing several Makefiles for larger projects (and even if you don’t), be sure to familiarize yourself with the issues raised in the now well-known paper Recursive Make Considered Harmful by Peter Miller.

Response: Shy then Engineers or Engineers then Shy?

Original Post

thatoneguy posed this question back on October 16th. Essentially he asked if engineers started off shy, or become shy because they are engineers.

I think that engineers may start off somewhat introverted coming out of high school, but when they are put into a bunch of classes with other introverted engineers, they adapt and become even more introverted.  This turns into a vicious cycle that outputs what society expects:  introverted, quite, socially awkward engineers who are smart, but are unlikely to be understood by the general public.

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.

Everyone’s a Poet


Ants are small creatures

each ant doing their job well

so the queen’s happy

(queen = entire OS ; ant = program)


It started out rough

because I had never used Linux, it made homework tough

but thanks to Google and the exercises, i was out of my misery

No thanks to python and it’s mysteries

I was able to finish my homework and other stuff

Posted in Uncategorized

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.