Posts

Final Report

  CSCI 499 Final Report By: Hamza Rashid, Kaitlyn Khan, Tom Reingold, Tong Chen Hamza Rashid My contribution to the project is the streamplayer website. The code reads from a csv, user1.csv, which is a users 8 selected “favorite” radio stations. My code fetches the csv and then processes the data, loading 8 divisions which would contain the stream, as well as a play/pause button. Once this is loaded the user is presented with multiple options, such as being able to change the 8 available “favorite” streams. To make this easier for users, the available radio stations are loaded into a drop down menu. Simply select the radio stream number, the station you would like to select, then hit change. If it is successful an alert will appear on screen. Finally users have an option to save the new “favorite” streams. Hitting save will update the user1.csv in the server, an alert will appear if it was successful. (Hamza Rashid) To organize my code I broke up parts of my code into functions. ...

A Protocol for Packet Network Intercommunication

   Blog Post by: Kaitlyn Khan, Hamza Rashid, Tom Reingold, Tong Chen Packet switching networks have been developed as a way to allow networks to share resources. A method for delivering data is also part of the network. Packet switching networks have of a set of computer resources called HOSTS, a set of one or more packet switches, and communication media that interconnect the packet switches. HOSTS would need to communicate with other HOSTS. Since different HOSTS may use different processes to communicate, a packet switching subnet can show this relationship. There is a maximum size of data which can be transferred through the subnet. Different networks have different strengths and weaknesses depending on communication media data rates, buffering and signaling strategies, routing and propagation delays. (Hamza) Gateways are connections that join two networks allowing data to travel from one network to another. In practice, a gateway contains two half. Each half is associa...

A Unified Theory of Garbage Collection

  Blog Post by: Kaitlyn Khan, Hamza Rashid, Tom Reingold, Tong Chen Tracing garbage collection and reference counting have many parallels. Tracing starts at the roots and aims to find the live data. Reference counting starts from anti-roots, which are the objects whose reference counts are zero, and aims to find the dead data. In this sense reference counting is the complement of tracing. Tracing starts from a count of zero, and increments to the true count. Reference counting starts with an excessive count and decrements to the true count.(HR)  As mentioned above, tracing will initialize the count to zero. A work-list, which is the set of objects to be processed, is used in the algorithm. While iterating through the list, if a new vertex is encountered, all of it's outer edges will be added to the work-list. Once the loop is finished all the live nodes will be discovered. A separate function is used to return the unused nodes to free the storage.(HR)  Reference cou...

The Frama-C Software Analysis Platform

Image
Blog Post by: Kaitlyn Khan, Hamza Rashid, Tom Reingold, Tong Chen                      I personally have never heard of Frama-C before, but I am impressed by all of the applications and abilities this program has to offer. Many coding platforms such as Visual Studio Code already implement debuggers that will notify the user of a missing element or undeclared variable. These are some examples of how programs adapted to become smarter and self-replicating. I wanted to write about how Frama-C is outlining the potential in artificial intelligence based applications. The article already describes the benefits of Frama-C as a tool to parse code and verify software for reputable organizations such as Mitsubishi and NASA. Since even tests with over 80,000 lines of code can successfully be covered within 8 hours and output 86% of function, the numbers prove its validation. (KK)           Frama-C paves ...

Why Functional Programming Matters

Blog Post by: Kaitlyn Khan, Hamza Rashid, Tom Reingold, Tong Chen In “Why Functional Programming Matters” by John Hughes, the author offers several arguments in favor of functional programming. He claims that functional programs are less error prone than procedural programs and therefore easier to write. He draws an analogy between modular programming and functional programming. Essentially, he suggests that functional programming offers the same advantages and more. (TR)   The base of functional programming is the use of functions as arguments. The program receives addition, multiplication, other mathematical/programming functions with some elements, lists, and/or even another functional program as part of their argument. Then computes and returns the value. In this case, the function can be viewed as a constant value for the computation. Since it is possible to factor/modify a function without computing all of its value first. Thus allowing the program to compute the value only w...

The Tail At Scale

Blog Post by: Tong Chen, Kaitlyn Khan, Hamza Rashid, Tom Reingold In massive-scale systems that might be spread over a wide geographical area, response time for the user can be high. The statistical distribution of the latency is a long tail, i.e. as response time increases, the number of users experiencing a given response time decreases. This sounds OK, but the tail is long which is to say that a great many users can experience excessive response time. This paper discusses ways to mitigate long response time in ways that would not be necessary in smaller systems. (TR) Large companies such as Google divide large problems among many computers and networks, and these might even be continents apart. An example of a service would be auto-completion in the Google search bar. I might type “how do I” and the first three suggestions are - how can i tell what folder a google doc is in - how do i watch the super bowl - how do i get wordle (TR) The problem of guessing what the user wants is divi...

Our first class

Image
  We had our first class today. Hamza, Katie, Tom, and Tong agreed to be in group 3. This blog is named atomizeGothamtank because it is an anagram of our names, and we live in Gotham City. (Tom) We discussed what we might like the project to be. We're not sure. Maybe a game. Maybe something that processes data such as a class registration system. (Tom) We discussed platforms. We took inventory of the group's computing facilities. We thought perhaps we could develop an iOS game, but that requires Xcode. Xcode requires a Mac, and not everyone has one. Maybe that's OK because not everyone needs to work on the iOS portion. Those without Macs could do the backend work. Tom offered to share his Mac with the others remotely, but it remains to be seen if that's viable. (Tom) We envisioned a client-server app that runs on the web. Perhaps it would render properly on both a mobile browser and a computer browser. The back end (webserver) would be on a Linux system because Tom offe...