Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How Phones Do

Lito Nicolai
April 08, 2018
110

How Phones Do

Lito Nicolai

April 08, 2018
Tweet

Transcript

  1. !8

  2. !9

  3. !10

  4. !13 (but it’s easier to have an ‘outgoing message’ and

    ‘incoming message’ wire so that you don’t talk over each other)
  5. !19

  6. !26 2.2 I would like to talk to other people

    without having a personal wire to their telegraph
  7. !27

  8. !28 “control signals” are things like “what terminal number am

    I trying to connect to” “information link” is the literal telegraph bleeps and bloops
  9. !29

  10. !37

  11. !39

  12. !41

  13. !43

  14. !44

  15. !45

  16. !46

  17. !47

  18. !48

  19. “If one of these breaks, say, on the outskirts of

    Murmansk, are you OK with going to fix it?”
  20. - oh god plz don’t crash, ever, plz - thousands

    of simultaneous calls - asynchronous - don’t mind if some other exchanges have gotten disconnected - change code remotely, with little downtime
  21. “If I sent a ring message to a phone it

    was supposed to ring. If the phone A went off-hook it was supposed to send an (offHook, A) message to the exchange. If the user of phone A dialled some digit D, then a (digit, A, D) message would be sent to the exchange.”
  22. Ok what are we really doing here predicates: idle(N) means

    the subscriber N is idle on(N) means subscribed N in on hook ... etc. etc. operators: +t(A, dial_tone) means add a dial tone to A rules: process(A, f) :- on(A), idle(A), +t(A,dial-tone), +d(A, []), -idle(A), +of(A)
  23. Thank you! I’m @litonico_ I write about computers at tinyletter.com/learntocomputer

    I work for destroyallsoftware.com (Help me test those code paths)