Thursday, September 29, 2016

Byte Reflection

Zach M         9/29/16

The salesperson in a cell phone store is telling me that the phone I'm considering has 8GB of memory, which means I can save 10,000 photos taken with the phone's camera!
Is the salesperson telling me the truth? Why or why not?
It depends on the resolution of the camera. If the resolution is high, like 3200x2400, then you would not have enough space. A picture of that quality would take up around 2.2 mb, which is 0.002 gb. 0.002 gb * 10000 photos = 22 gb of data. If the pictures are low enough resolution, then they should be able to fit.


When does byte size matter?  Reflect on the many considerations one has related to coding, data transfer, RAM storage, word size, flash and hard drive storage and Web Pages.

Byte size matters almost all the time. Larger byte sizes means usually means longer loading times, and users of computers are usually impatient. When creating web pages, if you add too many images, videos, or sound, it will take a while for your page to load. The user trying to look at your site will get frustrated at how slow it is loading, even if it’s only taking a couple of seconds.

Byte size matters in RAM storage because you only have a limited amount of RAM. Coders should be conscious of how much ram their program is taking up, and attempt to make it the lowest possible. Byte size matters on flash drives because there is usually only a few gigabytes of storage. The user must be conscious of what they put on their drive, only putting on the necessities. Byte size doesn’t matter so much with hard drive storage because of the abundance of space. Chances are, a average user won’t fill up a 500gb hard drive in their computer’s lifetime, so they don’t have to worry about the amount of things they put on it.

Wednesday, September 28, 2016

HTTP Reflection

Zach M

Define AbstractionServerClientHTTP, the purpose of headers andbody of HTTP


Abstraction: Taking away everything but the essential data

Server: Recieves requests and sends responses

Client: Sends requests to the server

HTTP: HyperText Transfer Protocol. A protocol for sending data.
HTTP Header: Specifies what HTTP version and what the action is, such as post or get.
HTTP Body: The actual information being sent (html, css, images, etc)

  • Explain how layers of protocols allow the Internet to function?
Layers of protocols allow the internet to function because each layer is dependent on the layer below it. HTTP is dependent on TCP which is dependent on IP which is dependent on the physical internet.

  • Use developer tools in a modern browser to explore the HTTP traffic associated with visiting common websites?
Most traffic is image requests, java script requests, html requests, and css requests.

  • Identify abstractions used in the development of Internet protocols?
The abstractions used in the development of Internet protocols are the layers of Internet protocols.

  • Describe how a protocol or layer of the internet acts as an "abstraction" for other layers?
Because each layer doesn't need to know the details about the other. TCP doesn't need to know the details of IP or DNS or HTTP, it only needs to handle the transport of data.

Monday, September 26, 2016

DNS Reflection

Zach M         9/23/16

  • Can you give a high level description of DNS as a name-to-IP-address mapping system used on the Internet?
  • Can you give a few reasons why DNS is useful and necessary?
  • Can you describe at least one vulnerability of DNS and how an attack on it works?

In the DNS, each dot in the address represents a level in the domain structure. Each level refers to a server or group of servers that handle that level. The last level refers to a top level domain. For example, www.google.com has 3 levels in it’s domain.

The leftmost site of the web address is the host name. It specifies a specific ip address in a domain, that's typically dedicated to a specific process. Docs.google.com for example is a specialized ip set up just for google docs. A common example is www.

(For uncached websites)
When you attempt to access a website, your request first goes to a recursive resolver(or DNS resolver), typically run by your isp. The recursive resolver then contacts a root server, a dns that contains information about specific top level domains, such as .com, .org, etc. The root server knows how to access top level domain servers (TLD). If your website is a .com top level domain, it goes to the .com TLD. The TLD sends your request to a Authoritative Name Server. The Authoritative Name Server is the server that stores large amounts of ip addresses. Finally, the Authoritative Name Server sends the ip you requested back to the recursive resolver and you can connect to the website.

DNS is useful and necessary because it would be near impossible to memorize your favorite sites. It is much easier to memorize youtube.com then a 9 digit ip address.

One Vulnerability of DNS is the ability to exploit open resolvers (misconfigured DNS resolvers) to launch a DDOS attack. Since DNS queries are sent by UDP protocol, which requires no handshake to establish where the packet came from, hackers can fake their ip to the site they want to attack. If they request all of the DNS records of a zone, it will end up getting sent to the faked ip. This allows hackers to flood the targets servers with large amounts of incoming data, which slows down their website or server to a crawl.

Friday, September 23, 2016

TCP Reflection

Zach M         9/23/16

  • What do you think the Internet would be like today if different companies’ network protocols were still competing for adoption for the Internet, instead of TCP being the  standard?

It would be extremely difficult to send messages to one another, and the internet would be fragmented. Sections of the internet would rely on one protocol, while other sections would rely on another. Communicating between protocols would be near impossible. Instead of one connected world, we would have multiple networks separated by protocols

Thursday, September 22, 2016

Routing Reflection

ZachM                    9/22/16


Describe the relative benefits of routing over a broadcast style of communication. Is routing traffic more secure than broadcasting? Justify your answer.

Routing is much more specific, unlike broadcast which just sends the message to all devices. Your messages sent by routing are more private than broadcast, because routing sends it to a specific device, while broadcast sends it to all devices. Routing is more secure than broadcasting, because only the recipient will receive the message. But, if someone has access to the router, they are able to see all the traffic coming in and out of it.


Can you know in advance the path a message will take between you and another computer on the internet? Justify your answer.

You can’t know the path a message will take because the fastest route is always changing. Since the path a message will take is always the fastest route, it will always go on the same route in a perfect world. However, internet traffic can make that route slower, and the message is sent along a different route, which is faster than the clogged route. Therefore, we do not know the path a message will take.


An internet service provider just purchased all the routers in your area. What types of things is this ISP capable of doing? Are you comfortable with this arrangement?

The ISP is able to see everything sent in and out of that area. They could censor the area by intentionally drop messages. I’m fine with them seeing my messages, but some people like their privacy.

Monday, September 19, 2016

ZachM Internet Reflection

Zach M                    9/19/16
The following are examples of reasons to know how the internet works.  Provide a specific "real life" example of each of the bullet points.


  • The people who propose the laws, or judge them often don’t really know how the Internet works, what makes sense and what doesn’t. (See: The Internet is a series of tubes).
SOPA was a bill that was an attempted bill in the US senate, that was aimed at banning piracy sites. However, the bill provided enough power and was vague enough to take down any site that had pirated content, including youtube, mediafire, and dropbox.

  • Citizens don’t know how to protect themselves from cybercrime, or often live in a cloud of fear and uncertainty not only about the law, but their rights, and about what’s actually technically possible.
There’s a few people who don’t know much about the internet, and don’t know to download a antivirus software and do virus scans. Some people believe macs can’t get viruses, so they don’t scan their computer for them.

  • Hackers take advantage of unknowing, unsuspecting people.
Hackers can try to take advantage of unknowing and unsuspecting people through malicious ads, that either install adware, or malware onto their computer.

  • Corporations who provide Internet service need to balance profitability with providing access to everyone.
Google (I think) is working on a solar powered balloon that has a satellite dish on it that connects rural areas to the internet

  • Countries restrict access to the internet or monitors activity - how is that technically possible? What is it they are actually doing?

The NSA monitors a large amount of internet activity by wiretapping and tapping CDNs (content delivery networks) to gain access to large amounts of data going through the internet.

Thursday, September 15, 2016

Binary Image Activity Reflections

Zach M

What problems arose in your efforts to create a working protocol? How did you think about the problems in order to solve them?

One problem that arose was the amount of 0s we had to say. Eventually we cut it down to only saying 1 zero before any 1.

How did collaboration play a role in the creation of your protocol?

 Without collaboration, we couldn't have created this protocol.

Monday, September 12, 2016

Shape Reflection

Zach M         9/12/16

  • If you just had a circle and a square, how many 3-shape permutations could you make?
  • Reflection: In 50 words or less, describe the concept of a number system. Why are rules required for a number system to be useful?

With 2 shapes, you could make 2^3, or 8,  permutations.

A number system is a system which can represent all numbers. Rules are required for a system to be useful because if a system breaks these rules, they can’t represent all numbers.

Saturday, September 10, 2016

Chapter One Answers

Zach M         9/10/16

  • Pick one of the above koans and address the following questions:
  • Share your answers with me at stark.brooklinehighschool@gmail.com.  Then post to your blog with the Title: Chapter One Answers
    • Argue if you agree that it is a “truth” and if it will always be a “truth.”
    • How does this koan intersect with your life as a student?

I agree with koan #4, processing is power. I think that processing will most always be power, as long as we are using computers. Companies are always racing to build the fastest processors, and whoever has the fastest processor has the advantage. Having faster databases, search speed, and so on, will give you a large advantage and cut down the time it takes to do some tasks. A company with modern computers will have a huge advantage over companies that still use fax machines and windows xp.

This koan intersects my life on a daily basis. All the time, my devices slowly become obsolete because of the increase in processor power. Old Ipads that were blazing fast in their time are now painfully slow. Same goes to computers, which have perceivably slowed down over the years. Maybe it’s because of software and use, but modern computers are perceivably faster than the older ones.

Thursday, September 8, 2016

Binary

For our binary idea, we used T and F to represent true and false. We came up with this because it was a simple representation of a byte. It had 3 states, true, false, and true false. With this we could communicate with each other from across the room by answering simple true/false questions, such as is there a test today?

Wednesday, September 7, 2016

10 Commandments

Zach M           9/7/16

1. Thou shalt not use a computer to harm other people.
You shouldn’t infect others computers with malware.

2. Thou shalt not interfere with other people’s computer work.
You shouldn’t remotely connect to someones computer and delete their files.

3. Thou shalt not snoop around in other people’s computer files.
You shouldn’t look at people’s files without permission.

4. Thou shalt not use a computer to steal.
You shouldn’t use a computer to steal/pirate.

5. Thou shalt not use a computer to bear false witness.
You shouldn’t use a computer to lie on the internet.

6. Thou shalt not copy or use proprietary software for which you have not
paid.
You shouldn’t pirate software.

7. Thou shalt not use other people’s computer resources without
authorization or proper compensation.
You shouldn’t use someone’s computer without permission.

8. Thou shalt not appropriate other people’s intellectual output.
You shouldn’t plagiarize.

9. Thou shalt think about the social consequences of the program you are
writing or the system you are designing.
You should think about that potential consequences of the program and make sure it doesn’t hurt people.

10. Thou shalt always use a computer in ways that ensure
consideration and respect for your fellow humans.

You should use computers in ways that are respectful and considerate to your fellow classmates.