miércoles, 28 de noviembre de 2018

Hackear el Sistema: Áreas y control sobre las mismas.

Hackear el sistema tiene como requerimiento entender primero el nivel de control que tenemos sobre el mismo. Dicho de otra manera, tenemos que entender los distintos niveles de potestad que tenemos sobre las distintas áreas que lo conforman.

Dividamos el sistema en dos subsistemas: el interno y el externo.

El interno es todo lo que ocurre dentro de uno, por ejemplo esa vocecita que te lee esto, vos la escuchas pero nadie más la escucha. Esta vocecita es parte del sistema interno, el cual tiene muchas más cosas y lo iremos desentrañando de a poco. El externo, sería todo lo que ocurre fuera de uno.

Con respecto al control, dice la leyenda que tenemos la potestad de tener total control sobre lo que pasa a nivel interno. Lograr este control requiere mucho conocimiento y práctica. Mientras más cercano estemos del mismo, más fácil será hackear al sistema. A nivel externo, mi comprensión es que del mismo no tenemos ningún control, pero a éste lo rigen leyes las cuales podemos utilizar a nuestro favor si las conocemos. Y deberemos hacerlo si queremos hackear al sistema. Llamaremos a estas leyes, Leyes Universales.

Entre las leyes que controlan al sistema voy a mencionar dos: la ley de lógica y la ley de causa y efecto. Estas leyes son simples, la ley de lógica dice que todo lo que ocurre es lógico. La ley de causa y efecto dice que todo acto tiene un consecuencia; también dice que todo evento tiene una causa. Otra cosa importante para mencionar es que todas las leyes operan siempre y en conjunto. Por ejemplo, si uniéramos las dos leyes mencionadas podríamos decir que todo acto tiene una consecuencia lógica.

Una advertencia con respecto a las leyes, las mismas siempre funcionan y apreciar y entender como operan las mismas requiere (mucho?) conocimiento e información. Supongamos que tenemos una calculadora en la cual ingresamos muchas sumas y los resultados son correctos siempre. Hacemos un nueva prueba ingresando una suma distinta a todas las anteriores: 2 + 2. Un interlocutor nos pregunta cual será el resultado que arroje la calculadora, obviamente diremos 4. Tocamos el boton = y vemos un 5. ¿Es ilógico lo que paso? Yo diría que sí, pero si le hago la misma pregunta a un experto en calculadoras, que tuvo la oportunidad de revisarla, tal vez me responda: 'No, no lo es. Revisando la calculadora ví que la misma tiene un error. Siempre que le ingresan la suma 2 + 2 da como resultado 5'. Luego, el resultado es lógico, no el esperado, pero sí lógico.

Es decir que al momento de generarse un efecto, pueden actuar muchas causas las cuales pueden estar fuera de nuestra esfera de conocimiento. Por esta razón muchas veces pensamos que las cosas son ilógicas cuando en realidad hay una lógica la cual no conocemos.

Otro ejemplo. Un grupo de personas se juntan para llevar adelante una tarea. Todos acuerdan trabajar en conjunto y poner la mejor voluntad para lograr el objetivo. En este escenario lo lógico sería que el objetivo se logre. Error. Lo deseable, lo esperable sería que el objetivo se logre. Lo lógico es que el objetivo se logre si las personas logran los requerimientos necesarios para el mismo y esto sobrepasa un acuerdo inicial y mucha buena voluntad.

Ejercicio: Adaptar el último ejemplo a una pareja.

miércoles, 21 de noviembre de 2018

Hackear el Sistema.

¿Qué es un hack? para responder esto copio una definición en inglés que me parece apropiada:

1. A clever or elegant technical accomplishment, especially one with a playful or prankish bent. A clever routine in a computer program, especially one which uses tools for purposes other than those for which they were intended, might be considered a hack. Fuente.

Ahora una segunda pregunta: ¿Qué Sistema deberíamos preocuparnos por hackear? Si fuera un sistema informático la pregunta no sería tan interesante....

El sistema que deberíamos hackear es la propia vida. Esta tarea se torna de suma importancia cuando la vorágine de la misma, de a poco, se va colmando de actividades que no nos reportan tantas satisfacciones y nos roban recursos para realizar otras actividades que nos resultarían más beneficiosas en lo personal.

¿Cómo se hackea el sistema/la propia vida? Buena pregunta.

viernes, 16 de noviembre de 2018

Testing sobre execpciones.

Cómo testear que una función ejecuta una exception particular en python. Lo cool: hay que wrappear la funcion que arroja la exception, sino la misma arroja el error de forma directa. En el post dos soluciones al problema.