Smalltalk is an interpreted language!

Well started my assignments for the OOP class. It’s a simple introductory to smalltalk programming. I have to create a derived class from another provided by the professor. When I “compiled” the file, and passed it to the smalltalk interpreter, I encountered a problem! Smalltalk did not like me using my instantiated object:

” My Main! “
| sa |

sa := SavingsAccount new initialize: 50.
sa postInterest: 0.05 .
sa inspect
!

>./gst ~/Documents/grad_school/ooProgramming722/dev/savingsAccount.st
“Scavenging… 15% reclaimed, done”
“Scavenging… 0% reclaimed, done”
“Scavenging… 0% reclaimed, done”
“Scavenging… 0% reclaimed, done”
“Scavenging… 0% reclaimed, done”
“Scavenging… 0% reclaimed, done”
“Scavenging… 0% reclaimed, done”

Not so good, hunh? I am sure you smalltalk gurus already see my problem. Besides running smalltalk as a program and not installing it wherever make install puts it. Hint for all you non-programmers: interpreted languages are read from start to finish at the time the program is run.

See it yet? My SavingsAccount is derived from another class Account. (Am I using the correct smalltalk terminology?) I am passing only the savingsAccount file to the interpreter, and I am missing it’s parent. How will smalltalk know what the parent class looks like? Smalltalk was able to interpret the object in this file by just creating instances of a generic object to take place of the SavingsAccount’s super class. I guess it doesn’t like garbage collecting in this scenario. I must read the oop.h file to understand why but for now passing the parent class on the CLI does the trick.

CS 622 Assignment 1

CS 622
Assignment 1

2.1
Each of these layer models is a real world example of the three layer network model.

In the first example model, the physical connection is the telephone line. The lowest layer on both the receiving and sending ends is the telephone. The telephone acts as the network access layer. It allows the receiving and sending ends access to the telephone line, and it also establishes the communication link between the two ends. The second layer up acts as the transport layer on both the sending and receiving sides. This layer in the transmitter is the host which acts as the mediator between the guest who wants to order the pizza and the telephone. The host provides access to the telephone. On the receiving end is the order clerk whois the itermediary at the pizza parlor. The clerk answers the phone and takes the order. At the top layers resides the application layer. In this example the sender’s “application” is the guest who provides the data, pizza order and the receiver’s “application” is the pizza cook who assembles the pizza pie.

In the second example model, the physical connection is the road. The network acces layer is exemplified by the delivery van. It allows the pizza being delivered a reliable means to the use the road. The transport layer is where the order clerk finalizes the pizza order and gives it to the person who will deliver the pizza in the delivery van. On the receiving end, the host pays for the pizza, which the guest as the application layer on the receiving end will eat. On the transmitting side, the cook acts as the application layer and prepares the pizza, which will be handed off to the clerk to package for delivery.

2.4
The two blue armies don’t have a reliable way to communicate their attack plan, because they are unsure if their messengers get through to each commander. If their messaging protocol relied on the acknowledgement of a message, then either the message or the acknowledgement could be lost. They could add to the protocol an acknowledgement to the acknowledgement, but then each message sent still is not garaunteed to reach its destination. The armies could introduce redundancy into their protocol. They could send two or more messengers to send or acknowledge a message, and only rely on reception of one message or acknowledgement to attack, but this is a waste of resources and could still lead to a lost messenger. The two armies could introduce a timeout to there protocol scheme by waiting a certain time for the acknowledgements before proceeding or terminating the attack.

Report due tomorrow

Fact 52: Efficiency stems more from good design than from good coding

This is from Robert Glass’s “Facts and Fallacies of Software Engineering.” I am supposed to refute one of the facts. Unfortunately, none of them seem unreasonable. They are all true to some degree. The above fact is very true. A good design can produce good code. A poor design will produce bad code. Yet, I want to say that this is false?

What is false about it? I am so stuck on this question that it is keeping me from writing this paper. I am screwed. An allnighter is coming up.

Procrastination

I am the greatest procrastinator in the world. I have a paper due tomorrow, but haven’t started. I have a midterm project due next week. When will I start?

#437. It’s hard to fly with the eagles when you’re surrounded by turkeys.

I just started graduate school last week. I am concentrating on Software Engineering. Hopefully, I will post more often about software engineering topics. I can talk for days on end about it, but I find it hard to write about out. I usually converse with coworkers about software engineering principles, and I am sure they are as tired of my myriad observations, so that going to school should help in giving me another outlet for my rants.

News from afar.

Finally got that grad school application off in the mail during lunch, so back to updating this blog less less frequently than before. Here’s a newspaper from some remote island in the South Pacific. It might as well be on another planet for the distance from the civilized world. (link via BoingBoing)

Acheivements and Aspirations

This is the essay for a grad school application. I hate writing essays. Why I need one now I shall never know.

To reflect upon the achievements in my life is a tough assignment for me. First off, as a humble person, writing about myself seems to be a boastful thing to do. I am not used to bragging about myself. I don’t like the attention focused on me. Second, to spend some time to reflect on your past is to relive both the good and the bad time and conjures up memories which may be difficult to share in an essay for others to read. It is like allowing strangers a peak into your private journal. Lastly, a list your life’s achievements seems to make life smaller, and the act of living life a by-the-numbers deal. So with trepidation, I shall list the achievements of my life so far, and hope that it conveys a little piece of me to the reader.

My first achievement that I am proud of is graduating from the University of Miami, Florida with a bachelor’s degree in communications. Yet, when I had entered college, I had planned on graduating with a degree in one of the natural sciences either biology or chemistry and continue on with becoming a doctor. It took some strength of character to change my focus from sciences to the arts, because I am not the most communicative of person’s. Once transferred to the Miami’s School of Communications, I took up film as my specialty. With extremely creative people and in a highly collaborative environment, I had participated in making three student documentaries that were well received one of which even garnered a little publicity the local paper. My time spent at Miami allowed me to see that it is in creative, collaborative environments where I like to work.

Another achievement in my life of which I am proud about is the fact that I went back to school for another bachelor’s degree. In making the decision to return to school, I had to accept the fact that my communication degree does not suit me well. I had to accept the fact that my father was right when pointing out when I was young that I may be more suited for work in the technology field even it had meant that his son will not follow his footsteps as a doctor. I had to accept the realization that a job in the film industry would be unachievable for me. At this point in my life, when returning back to school seemed to be a step back, it was actually when I felt that I had finally matured. I returned to school for a degree in computer science.

Of course, my first salaried job was a grand achievement. It allowed me to pay for my return to school on my own rather than my parents paying. The job was as a web developer during the time when being one was a cool thing have been doing. I had the most fun during this time as I had found a job that allowed me to express myself artistically and scientifically. The web development company was a small firm consisting of the two owners who split the business and technical aspects of the company between them, the graphic designer, and me, the programmer. Eventually, we created a company that became big enough to have been bought out by a larger company. I am proud to say that I have experienced the “dotcom” era in the front lines as grunt web programmer.

My most recent achievement so far is my current job. Having earned that second degree in computer science, I am finally applying that knowledge as a software engineer. It might not be in as glamorous an industry as I had been with my previous job, but it was exactly what I had wanted to do. I wanted to do some serious embedded systems programming. I reasoned that eventually everything will have a microchip in it and would need someone to program it. Why not gain experience doing embedded systems work?

Finally, let me focus a few thoughts about my aspirations. Hopefully, I shall continue in the software field. If not with my current employer, then with a company that shall allow me to focus on writing code and being creative in an analytical way. Also, I would like to someday write commercial software for my own company, and I would also like to continue on with learning and maybe earn a doctorate degree.