Frenos

Hace poco tuve un problema en el sistema de frenado del coche, un Renault Captur. Es por ello que voy a dejar anotado algunas cosas que aprendí y quizá a alguien le pueden ser de interés.

Investigando un poco vi que mi modelo en particular tiene dos tipos de freno diferentes:

Frenos traseros

En el eje trasero monta unos frenos de tambor, que se pueden ver fácilmente a través de las llantas de las ruedas traseras.

Aquí podéis ver a un señor desmontándolo, una vez quitada la rueda.

Por dentro, el freno de tambor se ve así. En este caso, la fuerza la hacen las zapatas cuando se mueven es hacia el exterior (se ve más abajo).

Aquí un diagrama de cómo actúa este sistema de frenado. El líquido de freno mueve los émbolos, que desplazan las zapatas hacia el exterior, produciendo el rozamiento y por tanto el frenado. Un sistema de muelles devuelve las zapatas a su posición inicial.

Frenos de disco (delanteros)

Los frenos que parecen recibir más desgaste son los delanteros y que, por este motivo, se suelen cambiar antes. En la parte delantera los frenos son de disco. Estos funcionan ejerciendo presión a través de unas pastillas de freno sobre un disco.

El proceso de frenado es el siguiente:

  1. Al presionar el pedal de freno, un émbolo empuja en líquido de freno, que transmite la fuerza hacia un pistón en los frenos
  2. El líquido empuja el pistón
  3. Si se pisa un poco el freno, el pistón al moverse mueve la pastilla derecha, que toca con el disco y por rozamiento lo frena.
  4. Si se sigue presionando, el pistón hace tope y la pastilla izquierda también toca el disco y, entre las dos pastillas, ejercen mayor presión

Todo este sistema está instalado en una mordaza que se coloca alrededor del disco.

Aquí podéis ver el disco en cuestión.

Sobre el freno presionan las pastillas de freno (brake pads), que podéis ver aquí. Son dos pastillas para la rueda izquierda, y dos para la rueda derecha.

Por otro lado, existen unas placas antirruido que sirven como indicador sonoro de que la pastilla se está desgastando en exceso.

Publicar nuestra web en github

Vamos a publicar nuestros archivos en una página web. Para ello necesitamos un espacio en algún servidor conectado a internet. Utilizaremos para ello el que nos presta github. Github es una plataforma que nos permite guardar programas en la nube, llevar el control de los cambios, colaborar con otras personas, etc.

Nosotros únicamente lo utilizaremos para publicar nuestra página web. Para ello sigue los siguientes pasos:

  1. Asegúrate de que la página principal se llama index.html (tal cual, en minúsculas). De lo contrario, habrá que escribir el nombre de la página posteriormente, lo cual es un poco más engorroso.
  2. Revisa que los archivos no tengan espacios ni acentos:
    1. premios oscar.html (mal)
    2. premiosóscar.html (mal)
  3. Ve a github.com y crea una cuenta.

A partir de aquí sigue los pasos y registrate con la cuenta del instituto:

El password tiene que ser complejo, para que te salga en verde. De lo contrario, no te dejará continuar. Al menos ocho caracteres que incluyan un número y una letra minúscula

Crea un repositorio nuevo (botón verde). Los repositorios son como carpetas donde guardaremos nuestros proyectos.

El nombre que le tienes que poner es el de tu usuario, seguido de github.io:

Esta dirección es la que tendrás que poner en el navegador posteriormente para poder entrar en tu página web desde cualquier dispositivo conectado a internet.

Posteriormente, haz click en create repository.

Ahora tienes que subir los archivos que has creado a este proyecto.

Para ello vamos a buscar la carpeta en la que están, y seleccionarlos todos:

Por último, guardamos los cambios:

Si lo has hecho todo bien, en unos minutos tu página debería estar disponible. Para ello, deberás escribir en un navegador la dirección url que escogimos cuando creamos el repositorio:

Si tienes un archivo index.html no hace falta que escribas nada más. En caso contrario, deberás poner también el nombre de la página web que quieras abrir.

Pegasus y el espionaje

Los móviles y nuestra intimidad

A medida que los teléfonos móviles continúan estando estrechamente integrados en nuestra vida personal y laboral.

Algunas empresas están creando aplicaciones sofisticadas que pueden ejecutarse en los dispositivos de las víctimas sin que ellas sepan de la presencia de la amenaza o de la intención de los actores.

Esto se puede ver en la diversidad de amenazas que tienen como objetivo los dispositivos móviles:

  • Las que tienen una motivación financiera, como el adware, los troyanos bancarios y el fraude por SMS
  • Las que buscan información personal o intelectual corporativa.
    propiedad.

¿Qué es el spyware?

Se trata de una aplicación maliciosa diseñada para recopilar y recuperar información de un dispositivo infectado sin la conocimiento de la víctima.

Enrte la información que pueden extraer se encuentran:

  • Mensajes SMS de la víctima
  • Detalles de contacto, o grabar sus llamadas
  • Registros de llamadas
  • Activar de forma remota el micrófono y la cámara de un dispositivo para capturar de forma subrepticia audio, video, y contenido de la imagen.

¿Qué es Pegasus?

Pegasus es un spyware que se creó para espiar sistemas operativos (iOS y Android). Pegasus es el principal software espía del grupo NSO.

Pegasus fue descubierto en agosto de 2016. Una persona recibió un mensaje sobre la revelación de secretos a través de un enlace. Él envió el link al citizen lab de la universidad de toronto, que lo investigó.

¿Quién es NSO?

Se trata de una empresa de ciberseguridad con sede en Israel fundado en 2010. Esta empresa desarrolla y vende software de vigilancia de teléfonos móviles a gobiernos de todo el mundo.

NSO afirma que proporciona el spyware a las agencias autorizadas de los gobiernos de manera legal para combatir el terrorismo y el crimen, pero varias veces se ha descubierto que su spyware se ha utilizado para espiar a activistas humanos, periodistas, etc.

El nombre NSO viene de sus creadores:

  • N-Niv Carmi.
  • S-Shalev Hulio
  • O-Omri Lavie

Funcionamiento de un ataque

El funcionamiento es el de un virus del tipo troyano. Al tener acceso al dispositivo, se conecta remotamente para descargar otros programas, instalarlos, y transmitir información a través de internet sin que el usuario se de cuenta.

En los ataques de un clic, el ataque comienza cuando el atacante envía un URL del sitio web (a través de SMS, correo electrónico, redes sociales o cualquier otro mensaje) a un objetivo identificado.

El usuario solo tiene que hacer clic en el enlace. Entonces, el software ejecuta silenciosamente una serie de exploits contra el dispositivo de la víctima para poder instalar los paquetes de software de espionaje.

El software de espionaje contiene códigos maliciosos, procesos y aplicaciones que se utilizan para espiar, recopilar datos e informar de lo que hace el usuario en el dispositivo.

Ataques que necesitan de la interacción del usuario

  • Fase 1: se incluye la parte de la URL que apunta a un archivo HTML. Este archivo explota una vulnerabilidad.
  • Fase 2: se descarga más código en un paquete ofuscado y encriptado. Este contiene el código necsario para explotar el kernel y un loader que descarga y desencripta un paquete para la fase 3.
  • Fase 3: se descarga el software de espionaje, daemons y otros procesos que se usan cuando el dispositivo ha sido jailbreakeado.
  • Se instalan para ello unos hooks en las apps que se quieren espiar. Las apps no se sustituyen por otras, sino que siguen siendo las originales.
  • También comprueba si el dispositivo ha sido jailbreakeado previamente y cancela el acceso.
  • En esta fase se despliegan una serie de tarballs, cada uno con una finalidad concreta.

El jailbreak es una técnica que permite eliminar restricciones sobre lo que podemos o no instalar en nuestro móvil. Haciendo jailbreak conseguimos tener acceso a comandos y funciones del sistema operativo, que nos permitiría alterar o reemplazar aplicaciones, archivos y ejecutar programas que requieren permisos de administrador.

Ataques sin interacción del usuario

Las versiones más nuevas han desarrollado capacidades como ataques de clic cero (zero-click).
Estos ataques no requieren ninguna interacción por parte del propietario del teléfono para tener éxito. Explotan las vulnerabilidades de «día cero» en el sistema operativo, que aún no han sido identificadas.

En 2019 Whatsapp reveló que Pegasus había explotado una vulnerabilidad relacionada con hacer una llamada perdida en whatsapp, por ejemplo.

Hacia 2020, Pegasus cambió hacia exploits sin clic y ataques basados en la red. Estos métodos permitieron a los clientes entrar en los teléfonos de destino sin requerir la interacción del usuario y sin dejar rastros detectables.

El caso español

En 2022, a partir de una investigación se hace público que varios teléfonos de políticos en España se habrían visto comprometidos por el uso de este software.

Existen sospechas sobre quién habría contratado los servicios para utilizar Pegasus. Entre ellas está el CNI, un organismo que se integra dentro del Ministerio de Defensa, y entre otras cosas asesora en cuestiones de seguridad e inteligencia. Proporciona información al Gobierno y a su presidente que permitan prevenir y evitar peligros, amenazas o agresiones contra la independencia y la integridad del pais.

A día de hoy es un asunto que todavía se está investigando.

Cine

En este tema vamos a tratar el tema de creación de vídeo orientado al cine. Para ello, en primer lugar estudiamos conceptos sobre planos y técnicas de filmación.

En general:

  • Las películas están hechas de secuencias.
  • Las secuencias están hechas de escenas
  • Las escenas están hechas de tomas

Vimos los diferentes planos que podemos utilizar.

Vimos que cada plano tiene un propósito concreto, que tendremos que tener en cuenta según lo que queramos mostrar:

También hemos aprendido a crear un guión, utilizando diferentes técnicas y el trabajo colaborativo.

También trabajamos las angulaciones.

La angulación determina el grado de inclinación de la cámara con respecto a la normal
Las posiciones más extremas son la cenital y la nadir

Técnicas cinematográficas

Aprendimos acerca del travelling y el paneo.

  • Los travelling son movimientos realizados sobre alguno de los propios ejes de la cámara y que, por lo tanto, no conllevan un desplazamiento de la misma.
  • Son movimientos realizados sobre alguno de los propios ejes de la cámara y que, por lo tanto, no conllevan un desplazamiento de la misma.

Los tres de arriba (dolly, boom o jib y truck) serían travellings, mientras que los 3 de abajo (pan, tilt y roll) serían paneos.

Travelling

El travelling nos puede servir para:

  • Establecer una relación entre un sujeto (al que se sigue con dicho movimiento) y un destino final (el lugar al que se aproxima).
  • Mostrar un descubrimiento (se inicia el paneo mostrando unos elementos y se termina mostrando nuevos elementos/escenas)

Travelling acercamiento/alejamiento

  • Movimiento que consiste en alejarte y/o acercarte a un sujeto. 
  • Crea tensión, intriga y otras emociones (dependiendo de en qué situación se utilice).

Travelling horizontal y vertical

  • Para seguir a un sujeto realizando un movimiento muy lineal 
  • Para descubrir nuevos elementos.

Travelling circular

Travelling zoom

  • Es un tipo de movimiento de cámara que da una sensación de agobio, ansiedad, miedo, etc. 
  • Consiste en alejar o acercar la cámara del sujeto mientras cambias la distancia focal (haciendo zoom). 
  • Sujeto no varía su tamaño, pero se ve más o menos fondo debido al cambio del ángulo y la distorsión de la imagen.

Paneo

Permiten mostrar:

  • Relación entre un sujeto (al que se sigue con dicho movimiento) y un destino final (el lugar al que se aproxima).
  • Un descubrimiento (se inicia el paneo mostrando unos elementos y se termina mostrando nuevos elementos/escenas)

Barridos

  • Los paneos rápidos que se usan a modo de transición se llaman barridos
  • No permiten que se visualiza detalladamente nada 
  • Se genera un desenfoque de movimiento en la imagen.

Plano fijo

  • En el plano fijo no cambia la posición y orientación de la cámara en toda la escena.

Duración del plano

Hemos visto como el plano puede ser más corto o más largo, y eso nos permite mostrar diferentes cosas:

  • Las tomas con una duración más larga pueden hacer que una escena tenga un ritmo más lento e introspectivo
  • Escenas formadas por planos de una duración más corta crean un ritmo más rápido y trepidante.

Punto de vista

La posición de la cámara respecto al protagonista nos permite distinguir entre dos o más tipos de plano. Vamos a verlo con dos ejemplos de la película El resplandor.

  • El plano subjetivo, en el que la cámara muestra el punto de vista del protagonista.

  • Plano semisubjetivo, en este caso se sitúa un poco por detrás del protagonista, pero también da una visión objetiva.

Plano y contraplano

También nos hemos fijado en como se mostrarían diferentes planos en el caso de una entrevista o conversación entre dos personas.

  • En general, intentaríamos tener la fuente de luz principal en el lado contrario del que enfocan las cámaras.
  • Existe una regla en la que se dice que todas las cámaras y luces se colocarán en un lado (180º) de la línea imaginaria que uniría a los dos protagonistas.

Interpelar. Rompiendo la cuarta pared

Una técnica muy llamativa es aquella en la que un actor mira a la cámara como si conversara con el espectador. Esto se conoce como interpelar o romper la cuarta pared.

Plano secuencia

Consiste en hacer una toma completa sin cortes durante un tiempo prolongado, más largo de lo habitual.

Pantalla dividida

Permite la representación de acciones simultáneas o que suceden en paralelo.

Estabilización
Un factor muy importante a la hora de grabar es mantener la cámara estable, bien sea con ayuda de un trípode, gimball o estabilización interna de la cámara por software.

Guión

En este web, vimos que autogeneraba guiones a partir de ciertos parámetros: plot generator

A partir de este vídeo, generamos ideas para escribir el guión:

Registrar una solicitud online para una administración pública

En ocasiones, necesitamos realizar algún trámite online, bien porque nos obliga la administración en cuestión o bien por practicidad. En cualquier caso, vamos a ver como realizar una solicitud para cualquier administración por internet.

1) Conseguir un certificado digital

En primer lugar, necesitaremos un certificado digital. Es como nuestro DNI en internet. Cualquier cosa que podamos conseguir mostrando nuestro DNI en una oficina de una administración pública lo podremos conseguir desde casa a través de internet.

Una vez obtenido nos durará 4 años, y podremos demostrar nuestra identidad para poder realizar el registro.

Este paso solo lo haremos una vez y nos valdrá para todos los trámites futuros. Para ello hay que hacer una serie de pasos y acudir a una oficina a acreditar nuestra identidad.

2) Descargar programa autofirma

Cuando hacemos una solicitud, la firmamos a mano. En intertnet la firma es digital, y para ello necesitaremos un programa que nos ayude.

Autofirma es un sotfware que nos firmará las solicitudes con nuestro certificado digital. Este método equivale a firmar algo a mano y presentar nuestro DNI presencialmente.

Para ello yo utilizo el programa autofirma, que nos permite firmar un documento que hayamos creado utilizando el certificado digital.

3) Registro online (red sara)

En segundo lugar, podemos utilizar la web de red sara para registrar la solicitud. Se trata de un registro online. Gracias a esta página podemos realizar una solicitud para cualquier administración española (autonómica o estatal). Es como si fuera una ventanilla única, solo que en internet.

En esta web, podemos iniciar sesión utilizando el certificado digital que habremos instalado previamente en el ordenador. Para esto tenemos que haber instalado el certificado en este ordenador con anterioridad.

4) Rellenar la solicitud

A parti de aquí, podremos rellenar los datos expongo y solicito, y los datos de comunicación. Es decir, no tendremos que redactar un documento word o escribirlo todo a mano para escanearlo.

A continuación podemos elegir a qué administración nos queremos dirigir.

5) Firmar digitalmente la solictud

Por último, tendremos que firmar digitalmente la solicitud. Para ello en pasos posteriores nos pedirá abrir el programa autofirma para realizar la firma del documento y terminar la solicitud.

A partir de aquí, nos generará un documento final y nos darán un código de registro que podremos guardar para realizar un seguimiento del estado de nuestra solicitud en caso de necesitarlo.

Juegos con Unity

Estos días estamos dedicando las sesiones a trabajar el desarrollo de videojuegos. Para ello utilizamos el motor Unity, que nos permite crear proyectos 2D y 3D.

Hemos seguido los tutoriales del usuario Luiscanary, para poder desarrollar los proyectos de Pong y un juego de plataformas 2D. A través de estos proyectos hemos aprendido a:

  • Crear objetos de sprite 2D y colocarlos en escena
  • Programar scripts que, asignados a los objetos, controlen su comportamiento
  • Utilizar controles de teclado para mover los objetos
  • Asignar componentes rigidbody para agregar respuesta a físicas en nuestros sprites
  • Agregar colliders a los objetos para controlar las colisiones entre ellos y modificar el comportamiento del juego en

En el juego de plataformas nos permite aplicar físicas de gravedad y saltos, así como utilizar paquetes de assets prediseñados con los que poder trabajar.

Errores en Python con las variables

Existen muchos errores asociados a los diferentes tipos de variables y sobretodo a cómo los utilizamos, principalmente cuando queremos hacer operaciones con variables de diferente tipo.

Recordemos que en programación existen diferentes tipos de variables, según lo que queramos almacenar: números, letras, textos, valores booleanos, etc.

En Python las variables no son de un tipo determinado por defecto. Es decir, una variable llamada edad puede contener un número entero, texto, decimal, etc. en cualquier momento. Por tanto, nosotros somos los que tenemos que pensar qué tipos de datos contienen.

Veamos un ejemplo:

edad = input()
if edad > 18:
  print("Mayor de edad")

En este caso vamos a tener un error del siguiente tipo:

Traceback (most recent call last):
File "main.py", line 2, in
if edad > 18:
TypeError: '>' not supported between instances of 'str' and 'int'

Vemos que en la línea 2, donde hay la comparación para saber si edad es mayor que 18, tenemos un error porque la operación «>» no tiene sentido entre un texto (str) y un número (int). Es como pretender coparar si «pepe» > 40. No tiene sentido, puesto que esta operación solo se puede hacer entre dos números.

Cualquier cosa que entre a través de un input() entra como texto, aunque escribamos números. Por ello, si nosotros escribimos 20, eso se guarda como «20» (las comillas indican que es un texto o string (str), y no un número. Es decir, los caracteres (o letras) 2 y 0.

La solución pasa consiste pues en transformar este texto en un número. Esto lo podemos hacer del siguiente modo:

edad = int(input())

Ahora, lo que entremos por input se va a intentar convertir en un número sin decimales (int), y luego guardarse dentro de la variable edad. Digo intentar, porque esto también puede dar problemas. Imaginemos que escribimos algo que no es un número entero, por ejemplo: 18.5. Pues tendremos el siguiente error

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    edad = int(input())
ValueError: invalid literal for int() with base 10: '18.5'

Este error nos dice que hemos intentado pasarle a la función int() algo que no es un número entero (sin decimales). Como no sabe como convertir este decimal en un entero, se para el programa y da un error. Sucedería lo mismo si en lugar de escribir un número decimal ponemos texto, como por ejemplo «patata». En este caso es más obvio que una palabra no se puede transformar en número, obviamente.

ValueError: invalid literal for int() with base 10: 'patata'

¿Cómo convertimos un texto que contiene un número decimal entonces? La función int no nos sirve, porque no admite decimales un int. Para ello podemos utilizar el tipo float, que sí admite decimales.

edad = float(input())
if edad > 18:
  print("Mayor de edad")

Ahora sí, poniendo «18» o «18.5» en el input, funciona. «18» se transforma en el float 18.0, mientras que «18.5» en 18.5, así que todos contentos.

Problemas con operaciones

Las operaciones también dan otro tipo de problemas. Pongamos como ejemplo la operación +. Esta operación puede significar varias cosas:

  • Concatenar o unir textos: «bob»+»esponja» dara como resultado «bobesponja»
  • Sumar números: 20 + 23 dará 43. Pero ojo: «20» + «23» dará 2023 (porque son letras)

Si esta operación la hacemos con variables del mismo tipo, todo perfecto. Pero, ¿que pasa si mesclamos varios? Veamos el ejemplo:

edad = input()
print(edad + 4)

Recordemos que lo que entra por input siempre será texto, por lo que edad contendrá, por ejemplo, «20». Cuando hacemos en la siguiente línea edad + 4, realmente estamos haciendo «20»+4. Un texto y un número. El ordenador piensa, ¿que hago, sumo como números, o concateno como caracteres? Como no lo sabe, para y muestra un error

Traceback (most recent call last):
  File "main.py", line 2, in <module>
    print(edad + 4)
TypeError: can only concatenate str (not "int") to str

Como el primer parámetro era un texto, intenta concatenar, pero al ser el segundo un número, pues no puede. Solo se puede con dos textos. ¿Qué sucede si cambiamos el orden de la operación y ponemos primero el número, es decir:

edad = input()
print(4+edad)

Ahora el primer operando es un número, y el ordenador entiende que el + ahora significa sumar números. Al encontrar que el segundo operando es un texto, decide que no se pueden sumar números y letras y da un error al no sabe qué hacer:

Traceback (most recent call last):
  File "main.py", line 2, in <module>
    print(4+edad)
TypeError: unsupported operand type(s) for +: 'int' and 'str'

Nos dice que no se puede usar el operando de sumar + entre un número y un texto, obviamente. Tanto en el caso anterior como en este, la solución pasaría por convertir edad entero, con la función int(), bien sea antes de almacenarla en la variable edad, o directamente dentro del print, antes de la suma.

Como vemos, Python deja en nuestras manos comprobar que las variables que vamos usando son del tipo necesario para poder efectuar las diferentes operaciones, por lo que tenemos que pensar nosotros qué contiene cada variable en cada momento: un número entero, un decimal, un booleano, etc.

Breve historia de Bitcoin. Transacciones, bloques, hashes y recompensas

Bitcoin es un conjunto de tecnologías, así como el nombre de la moneda, basados en la tecnología blockchain. Bitcoin se basa en un libro de cuentas distribuido entre múltiples nodos repartidos por Internet, en forma de una cadena de bloques llamada Blockchain.

Los nodos comparten información y crean bloques, manteniendo toda la estructura de bitcoin

Los bitcoin

  • La moneda se llama bitcoin. Existen unidades más pequeñas que un bitcoin
  • Las monedas se van creando poco a poco. Cada vez que se crea un bloque se generan bitcoin
  • Actualmente cada 10 minutos se crean 6.25 bitcoin, que se ingresan en la cuenta del minero que crea el bloque correcto
  • En 2140 se estima que se habrán creado todos los bitcoin
  • El máximo de monedas que habrá serán 21.000.000 de bitcoin. Ni más ni menos.
  • Un satoshi es equivalente a 0.00000001 bitcoins
  • Podemos comprar bitcoin con nuestro dinero, y venderlo a cambio de dinero.
  • La cantidad de euros a que equivale el bitcoin cambia con el tiempo.
  • Los bitcoin no existen, solo existen como anotaciones en el libro de cuentas
  • Las personas que minan un bloque con éxito, se «autotransfieren» una cantidad fija de la nada

Las cuentas

  • Cada persona crea al menos una cuenta, identificada con un código
  • Esta cuenta está protegida con claves criptográficas únicas, que solo tiene el dueño
  • En ningún momento se asocia esta cuenta con unos datos reales
  • Si se pierden las claves, se pierde el acceso a la cuenta y, por tanto, el acceso al dinero
  • Estas cuentas se guardan en billeteras o wallets. Estas no contienen dinero alguno, solo las claves.
  • Podemos tener claves de varias criptomonedas en una misma billetera.

Las transacciones

  • Cada cuenta tiene una dirección pública, aunque no se asocia a una persona públicamente.
  • El dinero se mueve de una cuenta a otra mediante transacciones
  • Las transacciones son movimientos de dinero entre varias cuentas.
  • Las transacciones son públicas, y cualquiera puede verlas
  • Deben ser confirmadas para que tengan efecto.
  • Al hacer una transacción, parte del dinero pagado se descuenta para luego repartirse como recompensa (como una comisión)

Los bloques

  • Cuando se tiene un conjunto de transacciones, se crea con ellas un bloque con ellas
  • Los mineros compiten por crear un bloque válido.
  • Cada diez minutos de media se crea un bloque válido
  • Una vez se crea un bloque válido, se agrega a la cadena de bloques existente.
  • El 3 de enero de 2009 se crea el primer bloque.
  • Los bloques tienen un número que los identifica. El bloque original es el bloque 0.
  • En este bloque, la primera transacción es una cantidad de bitcoins creados nuevos a su cuenta
  • Si su bloque sale adelante, las transferencias de dentro se confirman, y se lleva la recompensa.
  • Las recompensas van disminuyendo cada 4 años (50,25, 12.5, 6.25, etc).
  • A día de hoy (octubre de 2021) existen alrededor de 700.000 bloques creados

La cadena blockchain

  • Los bloques se apilan uno encima del otro, formando una pila.
  • Cada bloque que se apila está formado a partir del anterior, con parte de su información
  • Esta cadena de bloques se llama blockchain
  • Toda esta información, que ocupa actualmente 400 GB, se guarda en múltiples ordenadores
  • Estos ordenadores se llaman nodos, y se van intercambiando la información
  • Bitcoin existe mientras todos estos nodos guardan copias de la información

Las recompensas

  • El sistema se sostiene gracias a recompensas. Las transacciones y los bloques dan recompensas.
  • Los mineros dedican potencia de ordenadores a crear bloques, a cambio de la posibilidad de ganar dinero
  • Para este minado se necesita cada vez más potencia de computación

Los hashes

  • El sistema intenta que los bloques se vayan creando regularmente cada 10 minutos de media
  • Para ello, pone un reto de dificultad que tarde un tiempo en poder resolverse
  • Este reto consiste en crear un código utilizando criptografía llamado hash
  • Este hash se genera a partir de información del bloque actual, y del anterior
  • Cada hash identifica un bloque, y se calcula con el hash del bloque anterior.
  • Crear un código hash requiere muy poco tiempo
  • Para complicar la tarea, se pone una condición que el hash debe cumplir
  • Se tienen que hacer muchas pruebas hasta allar un hash válido
  • Este cálculo es más rápido a medida que la potencia de los ordenadores aumenta
  • Por ello, la dificultad se va ajustando poniendo una condición más estricta
  • El nonce es el parámetro que hay que variar hasta conseguir un hash válido.

Tinkercad Codeblocks o bloques de código

Tinkercad nos permite crear diseños figuras en 3 dimensiones a partir de objetos simples en 3 dimensiones, combinándolos de diferentes formas. Estos diseños se pueden automatizar mediante programación.

Un programa es un conjunto de instrucciones, como una receta. Estas instrucciones le dicen a la computadora qué hacer. Los informáticos diseñan nuevos programas informáticos, estudian y resuelven problemas y crean nuevas formas de utilizar la tecnología.

El pensamiento computacional también se puede aplicar a una amplia gama de carreras más allá de la programación informática, como el diseño industrial, la ingeniería y la arquitectura.

¿Qué podemos hacer con Tinkercad codeblocks?

Tinkercad codeblocks, también llamado «bloques de código» nos permite utilizar piezas de programación. Esto es especialmente útil cuando queremos reproducir ciertos patrones muchas veces.

Los patrones son diseños que se repiten o secuencias de elementos recurrentes. Estos patrones no tienen que ser siempre exactos, sino que pueden ir variando en cada repetición.

Si suponemos que tenemos unos conocimientos mínimos de cómo se crea un programa, los elementos más importantes que debemos tener en cuenta son:

  • Los bucles o loops, que me permiten repetir una acción todas las veces que quiera
  • Las variables, que pueden contener información que puedo cambiar cuando quiera

Ejemplo de programa creado con Tinkercad codeblocks

Aquí podemos ver un ejemplo de programa. En lugar de escribir texto, nos dan unas «piezas» o bloques ya creados que se pueden conectar entre ellas, como si de un puzzle se tratara, al estilo de scratch. Se lee el programa y se siguen las instrucciones de arriba a abajo, una por una (a excepción de los bucles u otras estructuras de control)

Los colores nos identifican el tipo de «pieza» del que se trata. En este ejemplo:

  • Los violetas son movimientos
  • Los verdes son variables, que se pueden poner en ciertos «huecos» que hay en otros bloques.
  • Los azules colocan nuevas piezas
  • Los naranjas son bucles o estructuras que cambian el orden normal del programa, u hacen que se repitan ciertas acciones.

Una vez diseñado el programa lo podemos arrancar e irá creando el diseño que nosotros le hayamos dicho, paso por paso, hasta terminar todas las instrucciones. Podemos cambiar incluso la velocidad, e ir parando el programa en cualquier momento para poder ver como se va desarrollando. Si algo no nos gusta o no funciona, podemos cambiar instrucciones o valores de variables y volver a ejecutarlo.

An Introduction to Tinkercad Codeblocks | Custom | Maker Pro

Versiones de documentos en Google Drive

Al comienzo, si subíamos un documento a Google Drive con el mismo nombre que otro ya existente en esa carpeta, sobreescribía el original. Es decir, se borraba el que ya existía y se sustituía por el nuevo.

Ahora, al subir un archivo que ya existe con el mismo nombre (se supone que es el mismo documento), se crea una nueva versión. Esto es:

  • El archivo original pasa a ser la versión 1 de ese archivo
  • El archivo nuevo (el que subimos) pasa a ser la versión 2.

Solo veremos un archivo, el de la última versión que hemos subido. Pero, y aquí viene lo importante, siempre tendremos a disposición las versiones anteriores. Gracias a esto, podremos recuperar el archivo tal como lo teníamos antes. Esto es especialmente útil si queremos recuperar información que habíamos borrado, o simplemente recuperar el documento original por algún motivo.

Veamos un ejemplo: subimos por primera vez el archivo:

Supongamos que en nuestro PC hemos ido añadiendo cosas al archivo, y lo volvemos a subir más tarde. Al haber cambios en el archivo, se trata de una nueva versión. Veremos aque al terminar de subir nos permite:

  • Guardarlo como otro archivo separado (le cambiará el nombre)
  • Guardarlo como una versión nueva del archivo:

Ahora tendremos dos versiones de este archivo. Si queremos ver las versiones del archivo, tendremos que hacer clic derecho encima del archivo y seleccionar la opción gestionar versiones.

Consultar y gestionar las versiones de un archivo

Aquí podréis ver todas las versiones del archivo, cuándo se crearon y quien las subió.

Conservar una versión antigua de un archivo para siempre

Fijaos que tenéis hasta 100 versiones. Al pasar 30 días las versiones antiguas pueden eliminarse, y para evitarlo tenemos que seleccionar conservar para siempre en el menú