La tecnología no es buena
ni mala,
ni tampoco neutral»
Melvin Kranzberg
De la realidad a números
Una señal digital es una señal usada para representar datos como una secuencia de valores discretos. Para cada instante estos valores pueden tomar un valor de un conjunto finito de valores.
Proakis, John G. (2007) Digital Signal Processing. Pearson Prentice Hall
En cambio, una señal analógica es de naturaleza continua.
Esta discretización,
¿cómo afecta a los compositores?
Continuo
Discreto
¿Continuo?
¿Discreto?
Compartir es bueno,
y con tecnología digital, compartir es fácil.
Richard Stallman
Al ser valores discretos se pueden instrumentar técnicas de detección y corrección de errores, tanto en la transmisión como al persistir en memoria.
Pasar la realidad a números, todo lo que puede procesar un computadora
Señal analógica
Muestras digitales
t
2 bits por muestra
3 bits por muestra
No puede ser, pero es. El número de páginas de este libro es exactamente infinito
Borges, "El libro de arena"
Responda si es verdadero o falso
Representando números
Binario (base-2):
0, 1
Decimal (base-10):
0 ... 9
Hexadecimal (base-16):
0 ... 9, A ... F
El propósito de la computación es el entendimiento, no números
Richard Stallman
2
10
Solo hay 10 clases de personas,
las que saben binario y las que no.
Acrónimo de binary digit, dígito binario.
El bit es la unidad mínima de información empleada en informática, en cualquier dispositivo digital, o en la teoría de la información
Conjunto ordenado de 8 bits
Decimal | Binario | Hexadecimal |
---|---|---|
127 | 0111 1111 | 7F |
192 | 1100 0000 | C0 |
168 | 1010 1000 | A8 |
nibble
Normalmente se lo representa como un un número hexadecimal de dos cifras
Se utiliza el byte y sus múltiplos para medir cantidad de datos
Nombre | Símbolo (SI) | Múltiplo |
---|---|---|
bit | b o bit | 0/1 |
byte | B | 8 bits |
kilobyte | kB | 1000 bytes |
megabyte | MB | 10⁶ bytes |
gigabyte | GB | 10⁹ bytes |
terabyte | TB | 10¹² bytes |
petabyte | PB | 10¹⁵ bytes |
Si usamos potencias de 2 (IEC): kiB ("kibibyte"), MiB, GiB...
Se suele expresar en bits por segundo
kilobits por segundo | kbps | 1000 bits por segundo | audio |
megabits por segundo | mbps | 10^6 bits por segundo | internet |
gigabits por segundo | gbps | 10^9 bits por segundo | redes |
megabytes por segundo | MBps o MB/s |
10^6 bytes por segundo | aplicaciones |
Estoy fascinado con la idea de que la genética es digital. Un gen es una larga secuencia de letras codificadas, como la información de la computadora. La biología moderna se está convirtiendo en una rama de la tecnología de la información.
Richard Dawkins
Representar números con solo dos símbolos (0/1) es inconveniente para humanos. Podríamos usar decimal, pero es más sencilla la conversión usando una base múltiplo de 2 como ser 16. Con 16 símbolos:
0000 | 0 |
1001 | 9 |
1010 | A |
1111 | F |
Para evitar confusiones se suele agregar un " 0x":
0000 1111 ₂ == 0x0F == 15 ₁₀
Utilizada para realizar codificación de binario a texto, representado con 64 caracteres ASCII.
RFC 3548. También usado Base64 (RFC 4648).
Delivered-To: bernardo.alba@unservidor.com Return-Path: <alicia@uba.ar> MIME-Version: 1.0 Received: by 10.107.46.7 with HTTP; Thu, 28 Sep 2017 06:14:11 -0700 (PDT) X-Originating-IP: [157.92.3.166] From: Alicia <alicia@uba.ar> Date: Thu, 28 Sep 2017 10:14:11 -0300 Subject: Ejemplos para las clases To: Bernardo Alba <bernardo.alba> Content-Type: text/plain; charset="UTF-8"
Les envio lo prometido para trabajar en las próximas clases.
Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
<div><font color="#1F1F1F">Les envio lo prometido para trabajar en las clas= es</font></div>
Content-Type: application/msword; name="ejemplos.doc" Content-Transfer-Encoding: base64
UEsDBBQAAAgAABOBjElexjIMJwAAACcAAAAIAAAAbWltZXR5cGVhcHBsaWNhdGlvbi92bmQub2Fz aXMub3BlbmRvY3VtZW50LnRleHRQSwMEFAAACAAAE4GMSSJYob2WKQAAlikAABgAAABUaHVtYm5h jEkAAAAAAAAAAAAAAAAaAAAAAAAAAAAAAAAAADFGAABDb25maWd1cmF0aW9uczIvc3RhdHVzYmFy L1BLAQIUABQACAgIACqBjEm092jSBQEAAIMDAAAMAAAAAAAAAAAAAAAAAGlGAABtYW5pZmVzdC5y ZGZQSwECFAAUAAgICAAqgYxJc1inaywBAAChBAAAFQAAAAAAAAAAAAAAAACoRwAATUVUQS1JTkYv bWFuaWZlc3QueG1sUEsFBgAAAAASABIAqgQAABdJAAAAAA==
Responda si es verdadero o falso
Problemas
Arrojable por la ventana
Turing
von Neumann
CPU
Entrada
Memoria
Salida
Conversión analógico-digital
Instrucciones a
procesar
Datos a
procesar
Datos
procesados
RELOJ
Procesador
Intel C8086, 5 MHz
1978-1990s
<- con tapa sin tapa -> por dentro | v
Memoria utilizada para datos de tal forma que futuros pedidos por parte del procesador de esos mismos datos puedan ser satisfechos rápidamente.
Estos datos pueden ser el resultado de un cálculo previo o el duplicado de un dato guardado en otra parte, como ser la memoria principal.
Conversión digital-analógica
El hardware eventualmente falla,
el software eventualmente funciona
Michael Hartung
Power Supply Unit (PSU)
Alimentación de
dispositivos
Alimentación del motherboard
G
S
D
Unos 3 mil millones en un celular actual.
Responda si es verdadero o falso
Problemas
Conexiones
CPU ↔ Memoria
Corriendo por las venas de la computadora
Debajo de la superficie de la máquina, el programa se mueve. Sin esfuerzo, se expande y contrae. En gran armonía, los electrones se separan y reagrupan. Las formas en el monitor no son más que ondas en el agua. La escencia permanece invisible debajo.
Master Yuan-Ma, The Book of Programming
Bootstrapping: Desde que encendemos la computadora hasta que podemos utilizarla suceden varias cosas
UEFI/BIOS (un firmware)
POST (Power On Self Test): Software de bajo nivel que inicializa y verifica que esté todo bien.
Busca dispositivo iniciable (booteable)
Le pasa el manejo al sistema operativo
Bootloader (por ej GRUB)
Sistema operativo → Kernel
Espacio de usuario
Aplicaciones
Sistema operativo
Espacio de kernel
Administrador de procesos, memoria, archivos, I/O
Hardware
Luego se inicializan drivers, el administrador de ventanas y demás procesos del sistema.
Antes de poder usar una memoria no volátil hay que prepararla. A este proceso se le llama formato.
Software o conjunto de programas de un sistema informático que gestiona los recursos de hardware y provee servicios a los programas de aplicación.
Tanenbaum, A. (1992) Modern Operating Systems, Englewood Cliffs: Prentice-Hall;
Usuario
aplicaciones
Sistema operativo
Kernel
Hardware
(CPU, memoria, dispositivos)
Metadatos de archivo
File: 'manejar.py' Size: 140 Blocks: 32 IO Block: 4096 regular file Device: 34h/52d Inode: 1179711 Access: (0664/-rw-rw-r--) Access: 2018-03-30 22:45:05.297124216 -0300 Modify: 2018-03-30 22:38:13.999571917 -0300 Change: 2018-03-30 22:45:05.289124184 -0300 Birth: -
Codificaciones de caracteres más comunes
binario | decimal | hexa | caracter |
---|---|---|---|
100 0000 | 64 | 40 | @ |
100 0001 | 65 | 41 | A |
100 0010 | 66 | 42 | B |
100 0011 | 67 | 43 | C |
100 0100 | 68 | 44 | D |
100 0101 | 69 | 45 | E |
100 0110 | 70 | 46 | F |
100 0111 | 71 | 47 | G |
... | ... | ... | ... |
Cuando "hacemos Alt+64" estamos indicando "ingresar el caracter nº 64 de la tabla ASCII".
Un archivo que contenga los caracteres "ABC@" se vería en hexa...
La palabra "Wikipedia" representada en binario y luego en código ASCII. Cada uno de los 9 caracteres utiliza 1 Byte (totalizando 72 bits).
57 | 69 | 6b |
---|---|---|
69 | 70 | 65 |
64 | 69 | 61 |
Los mismos caracteres en hexa
LF: line feed
avance de línea
0x0A, 10
CR - carriage return
vuelta de carro
0x0D, 13
LF: Sistemas basados en Unix como ser Linux (Android), Mac OS X, etc.
CR+LF: Sistemas no basados en Unix como ser DOS, Microsoft Windows, etc.
Mapeo entre símbolos y números (básicamente)
¡UTF-8 es la solución!
¡Le garantizamos será su codificación favorita!
¨Cansado de lidiar con problemas
de codificaci¢n de caracteres?
Comienzo de espacio publicitario...
Unicode Transformation Format
Ventajas
Desventaja
percent-encoding, URL encoding
Utilizado para escribir URIs. Permite codificar caracteres reservados, no reservados, o incluso información binaria.
https://duckduckgo.com/?q=c%C3%B3digo%20uri
https://duckduckgo.com/?q=código uri
RFC 3986
Multipurpose Internet Mail Extensions
Permite saber cómo interpretar un conjunto de datos, como por ejemplo un archivo.
Se lo utiliza ampliamente en internet, particularmente en el protocolo HTTP.
También conocido como
Media Type o Content-Type
Se compone de un tipo, un subtipo
y cero o más parámetros opcionales.
Ejemplo: Un archivo HTML podría designarse como
text/html; charset = UTF-8.
text es el tipo
html es el subtipo
charset = UTF-8 es un parámetro opcional que indica la codificación del caracteres.
Algunos de los tipos más usados
extensión | MIME type |
---|---|
.txt | text/plain |
.xml | text/xml |
.json | application/json |
.html | text/html |
.mp3 | audio/mpeg3 |
.png | image/png |
.jpg | image/jpeg |
.doc | application/msword |
application/pdf |
Esencialmente un programador escribe archivos de texto plano. Estos luego se traducirán en archivos binarios con instrucciones que la computadora puede entender (código de máquina).
El Tao engendró al lenguaje de máquina. El lenguaje de máquina engendró al ensamblador.
El ensamblador engendró al compilador. Ahora existen diez mil lenguajes.
Cada lenguaje tiene su propósito, aunque sea humilde. Cada lenguaje expresa el Yin y el Yang del software. Cada lenguaje tiene su lugar dentro del Tao.
Pero no programes en COBOL si puedes evitarlo.
Geoffrey James (1987). El tao de la programación
Compilador (traductor)
Mediante APIs
Application
Program
Interface
La interfaz de usuario del desarrollador.
En la web se utiliza un caso particular llamada API REST
Cinco capas de software:
Esta es una de las formas de esquematizar en capas
el software, datos y su interacción con el usuario,
con Internet como contexto.
Responda si es verdadero o falso: I
Responda si es verdadero o falso: II
Problemas: I
Problemas: II
Lightbot : Code Hour: Aprender a programar jugando
Escribinos un email