Thursday, April 23, 2009

Ruby

This morning I was writing a history paper and decided listening to music was the best way to go about it. While I was listening to the radio, the song Ruby came on by the Kaiser Chiefs. I was thinking about it during the song, and realized that Ruby is actually a programming language too, so I decided to write about it a little bit. The name decision was between "Ruby" and "Coral", but Ruby was chosen because it is the birthstone of one of his colleagues. Ruby was developed in the mid 1990's in Japan and is inspired by Perl, and is a dynamic general purpose object-oriented programming language. The producer Yukihiro Matsumoto of Japan said the he developed the language for "the programmer productivity and fun" and follows the principles of good designs. It is also said to follow the POLS (Principle of least surprise) and is made in order to minimize confusion for experienced users even though the designer did not intend for it to follow that principle. It is a good language to make games on and such, becuase of the little confusion and good use of graphics.

Wednesday, April 22, 2009

SE Linux

Hey everyone, today during one of my classes we were discussing SE Linux and it seemed to really intrest me. I thought about looking up some random facts about it, and try to figure out some interesting things about it. SE Linux stands for security enhanced linux and it a feature by linux to provide a number of security policies. It was original tested in 2000 by the "open source development community" and was developed by the National Security Agency (NSA). About SE Linux, the NSA stated "It provides a enhanced mechanism to enforce the separation of information based on confidentiality and integrity requirements, which allows threats of tampering and bypassing of application security mechanisms to be addressed and enables the confinement of damage that can be caused by malicious or flawed applications".

It is available in Red Hat Enterprise Linux and for all future releases. Some of the features of SE Linux are its independent of specific policies and policy languages, as well as specific security formats. It also is a very flexible policy and supports policy changes.

Tuesday, April 21, 2009

Blue

I was thinking about writing about a prgramming language that I never heard of before, so I looked up a list on google. I picked the most interesting sounding language to me, at that was the language "Blue". Blue is used mostly as a teaching tool for students learning about object orientated programming. The prgrams are done in a collection of classes which is also called a "project". The blue enviroment also allows very flexible testing and incremental software development.

It is a fairly simple language to understand the code. For example, to add you have to use the addition sign "+", and to print a message all you have to write is print("string"). The special syntax that allows you to shorten the code instead of writing long lines is known as an alias. Alias' do not add any special functions to the program however, they are only for visual use by making things easy for the programmer and the reader to read. In conclusion, Blue is a very good language to learn about the basics of object orientated programming, howver, it is not the best to use for programmers on a higher level up.

Monday, April 20, 2009

Ada

Today I was thinking about programming languages to talk about and came up with researching about Ada, and not the American Dental Association. Ada was developed in 1977 by a tream contracted by the U.S. Department of Defense and is extended from Pascal and other programming languages. According to wikipedia, the language was named after Ada Lovelace who is credited for being the first computer programmer.

It was originally targeted for real-time and embedded systems, and supports a large number of compiler check to help avoid bugs during a run time. To allow a better quality for error messages, Ada does not allow you to use a ';' without putting a statement before hand. Also, if you want to declare a variable as empty you need to declare it by NULL. You can also avoid a dangling conditional statement, the user has to use an 'endif' statement to keep everything organized and working correctly. All in all, the Ada language is fairly easy to use and allows for functions such as strong typing, run-time checking, and parallel processing.

Tuesday, April 14, 2009

Going old school: MS Dos

Today I was feeling like researching up something from the past and decided to write about programming in MS Dos. To begin, MS Dos stands for Microsoft disk operating system and it was released in 1982. MS Dos uses a command line interface meaning users had to type in commands instead of being able to click commands, and versions such as Windows 3.11 used in a graphical user interface which made things easier to see for the user.

The MS Dos commands help the user so that they will be able to find out whats going on in the low level. A list of commands can be found on www.computerhope.com/msdos.htm. It supports some commands that Linux also supports such as path, batch, and chdir. It also supports its own commands such as command, break, and backup.

Monday, April 6, 2009

Just a giant heap of...

After talking about trees, and Binary Search Trees, I am going to expand upon that today and I will talk about a different kind of tree called a heap. A heap is a binary tree in which the root node is larger then both of its two children. It must also be a complete tree which means that every level has the maximum number of children and the bottom level is shifted as far left as possible. This way is easier to find the maximum value in the tree since it will be at the very top. This type of tree supports 3 different methods, which are heapify, heap_sort, and build_heap. Heapify compares a certain node to the number below it and if it is smaller, it swaps the 2 node's position. Heap_sort exchanges the last node in the tree with the largest node and then disconnects the largest number. By the end the tree is sorted from the smallest number at top to the largest number at the bottom right. Finally, build_heap uses an array and the uses the heapify method to make the heap tree.

Sunday, April 5, 2009

BSTs

As a continuation of my last post, I am going to go more in depth with the different kinds of trees. Today I will talk about the first kind of tree that I learned about in school, and that’s a Binary Search Tree, or BST. A BST is a tree in which the maximum amount of children that a node can have is two. Also the nodes are set up so that the left subtree contains a smaller number than the root, but the root is smaller than its right child. A BST supports a lot of functions, such as search, sort, insert and delete.

The insert function puts a node at the bottom the tree, following the root down, and going to the left or right depending on if it's greater or less than the root, until it reaches a null node. The delete function deletes a given node, and then switches that position with the nodes successor. It is also fairly easy to search, by going left or right depending on the value until you reach a null node or the value you were looking for. My next post will be comparing the BST to a Heap tree so look for that coming up soon.