Connected Devices & Networked Interaction

Why? Small form factor personal devices are changing.

Blogging: not formal, things we’re struggling with; working on. Can be as messy as needed to be.

Even if it’s in a cardboard box; make an enclosure for it.

At the end of the semester, Tom can write longer form feedback if asked.

Connected devices example includes Arduino to a web server or laptops talking to each others laptops.

Unix & Linux = Posix operating systems

Similar commands and structure. MacOS is now a Unix OS.

VPN = allows you to be in one real network while you’re also in the private one.

Virtual Private Server: Instance of an operating system within an operating system = containers. Each instance won’t affect other people’s instances.

Q: how is this different to Docker?

Laptop has 3 network layers: Wifi, Bluetooth, ethernet.

Geographies of the internet: Please do not throw sausage pizza away

  • Application layer
  • Presentation layer = HTML.

With OSI model, web developers know a lot about presentation and application layer.

MAC address is unique to each computer.

Inet number changes everytime you connect to a network. As long as you have an address

Decentralized network is essentially comprised of hubs.

Content Delivery Network = Cloudflare.

Visual Trace Route:

Stefan Sundin Traceroute mapperStefan Sundin Traceroute mapper

Could do Understanding Networks Week 1 homework.

IoT = connected devices?

GUI (the p5 editor for example) vs Text Interfaces (?).

Command Line Tools

  • nslookup tigon.net - to see IP address to any given website.
  • ifconfig en0 - The developer way
  • traceroute tigoe.net
  • Describes network touchpoints or nodes we go through. Network providers try to route your request through the most optimal way to serve your data. This also tells us who has information about our traffic and potentially influences speed.
  • clear - to end instance of any given terminal.
  • ls -l - ls with details
    • shows permissions (eg. drwxr-xr-x, which is execute, read, write permissions)
  • cat filename - to see what’s inside
    • stands for concatenate
  • ls /dev/cu.* or ls /dev/ - to see serial ports available.
    • Serial ports end up being almost files so they can be accessed through cat =
  • cat /dev/cu.usbmodem101
    • with this you get a stream of the data being transferred via the port.
    • we know the port name from the Arduino IDE or by running difs on the list after connecting Arduino.
    • Serial Port gets created after plugging in Arduino
  • Pipe it = Redirect the output of a command to another - so execute the serial port output somewhere else
    • cat /dev/cu.usbmodem101 >> log.txt
      • There’s lots of automation possible here.
      • Now the output of the serial port is being saved for the first time.
    • cat /dev/cu.usbmodem101 >> log.txt &
      • & ensures process is running in the background
    • cat myfile.txt | grep Velux
      • grep looks up the word Velux in the file myfile.txt
  • ps - lists all processes we have running.
  • kill process number - kills a certain process.
  • cat *.txt
    • opens content of all txt files
  • nc tigoe.net 80
    • Get /
    • netcat = better program to list files
    • port 80
    • net cat goes over the net and cat only works locally
  • ls *.txt
    • lists all files with .txt extension
    • * = all files
  • nc -nklw 2 80
    • l means listen
    • w means wait timeout
  • man nc
    • the manual / helpsession

Curl is a full on tool.

To connect to a server, we use the HTTP protocol

  • we connect on any given port
  • Request verb (get, post) to a specific path.
nc -l 80
/get

python3 -m http.server 80
	# To serve 

10.20.54.224

#TODO: create my own server and use 2nd instance of terminal to access it.

TODO: Set up a website somewhere that can be accessed through the CLI. Setting up a Virtual Environment. Digital Ocean or AWS. Tom can SSH into his server. If unclear which one I need, book office hours.

TODO: Send video I saw yesterday about hubs.

TODO: book TIgoe office hours for next week - Thesis.

Come in with questions.