lunes, 5 de noviembre de 2018

Android App para el Cálculo de Escaleras

Cálculo de Escaleras

Para realizar los cálculos de una escalera, es preciso conocer la altura a la que deseamos acceder, el espacio disponible para colocar la escalera y el tráfico que circulará por la misma. Una vez obtenida esta información, se la introduciremos a un pequeño programa que aplicará las formulas necesarias para determinar la cantidad de escalones, el número de pasos y contra pasos (huellas y contrahuellas).

El número de escalones (E) se obtiene dividiendo la altura entre la contra huella (C) establecida como el estándar  para escaleras o sea 18cm  y se redondea hacia arriba (E = H/C).  Luego el número de escalones obtenidos lo utilizamos en la formula para obtener el valor real que tendrá la contrahuella. (C=H/E). Dependiendo del tráfico  y del espacio disponible este número puede ser mayor a 17CM  para escaleras con poco tráfico o menor para aquellas que tienen mucho tráfico.

Luego de obtener el valor de la huella se utiliza la fórmula conocida como la "Ley de Blondel" que establece lo siguiente  2*contrahuella + huella = 64cm, este último valor no es rígido y puede variar de acuerdo con la legislación de cada país, pero un número entre 60cm y 70cm es bastante aceptado.

El vídeo siguiente demuestra el uso de la App para diferentes tipos de tráfico.

La aplicación la pueden descargar de este link https://drive.google.com/open?id=1pkb8R7SdQVEku1iCwwoY_NwioWaswMnH




viernes, 14 de septiembre de 2018

Porque fallan las App en los teléfonos mobiles

La forma como opera el software con el hardware a veces es algo esotérico, en determinado momento todo funciona a la perfección y de repente sin previo aviso, zas te aparece un mensaje de error de programa o aplicación que intentas utilizar. Estas fallas eran muy típicas es los computadores personales del siglo XX, aunque todavía se aprecia en menor ocurrencia en los actuales.



La tecnología de los mobiles hereda estas características necias de los antiguos PCs, y es por ello que en ocasiones estas usando tu celular y de repente falla una App o peor aun, el dispositivo deja de funcionar completamente, pero a que se debe que esto ocurra, será porque los que crean tales dispositivos son humanos y comente errores o existe alguna otra explicación a este fenómeno.



La razón principal radica en el sistema operativo, dado que una de sus principales funciones es administrar los recursos en los dispositivos en los cuales esta instalado, si aplicamos la máxima de economía que nos dice que los recursos por naturaleza son escasos, entonces podemos imaginar como una pelea de perros (sólo como analogía) el acceso a tan preciados recursos, sean estos de procesamiento, memoria ram, memoria física, u otros.



Los estudiosos e investigadores del tema, aquellos expertos en sistemas operativos dedican capítulos enteros en sus publicaciones para explicar el funcionamiento y acceso a estos recursos, una sección de especial interés es el estudio de los procesos, porque son estos componentes de software los que van a estar en el ring compitiendo por los recursos y el sistema operativo como gran director de orquesta intentará satisfacer la demanda de todos ellos de la manera más óptima.



Los procesos en si no pelean entre ellos, sino que compiten por los recursos, imagine a dos porteros (procesos) de fútbol, cada uno en su arco, el arbitro (SO) coloca un balón (recurso) en la mitad de la cancha y le pide a los porteros que cuando suene el silbato tendrán que tomar el balón para sumar un punto a su equipo, por la forma como fue diseñado el juego es probable que siempre haya un ganador que se quede con el balón ahora, incluya a lo 10 jugadores restantes de cada equipo saliendo a competir desde puntos equidistantes, en estas circunstancias, es probable que dos a mas jugadores tomen el balón al mismo tiempo. Cuando esto ocurre el arbitro interviene y aplica una solución.



Lo anterior explica de manera análoga lo que ocurre en los sistemas operativos, cuando dos o mas procesos intentan en un mismo instante acceder a un recurso el sistema operativo interviene y corrige la situación, en estas circunstancias el usuario ni se entera de que hubo una pelea por un recurso, el problema se presenta cuando por alguna razón alguno de los jugadores no quiere aceptar la solución del arbitro (SO), entonces este lo pone en un estado en el que no participa más, a este proceso se suele llamar un proceso zombi porque aun cuando terminó se negó a morir.



En otras circunstancias, ocurre que un jugador (proceso) mal intencionado pincha el balón (recurso) y este deja de servir, entonces el arbitro (SO) coloca en espera o bloquea a todos los demás jugadores (procesos) que utilizaban ese balón, esta analogía es una característica típica de los virus, dañan el recurso o se lo apropian indefinidamente, aunque también es posible que un proceso bueno dañe o se adueñe de un recurso sin intensión alguna.



Como se solventan estas situaciones, generalmente la solución consistía en apagar y encender el equipo nuevamente, si eso no solucionaba el problema entonces se debía determinar cual era el recurso involucrado y tratar de repararlo, por ejemplo archivos de configuración dañados, en este punto la falla generalmente se solucionaba, pero si persistía entonces la cuestión era de mayor gravedad,  a tal punto que en algunos casos debía reinstalarse el sistema operativo por completo, también se solía limpiar la CMOS y se desconectaban los equipos de la toma eléctrica para asegurarse que toda memoria cache fuese eliminada.



Todo este escrito surge porque un amigo me pidió que revisara su teléfono mobil Samsung J prime en virtud de que la cámara no quería funcionar y le aplique las siguientes acciones con estos resutados





  1. Eliminar los datos y la cache de la aplicación cámara: Resultado la falla persiste.
  2.  Eliminar los datos y la cache de la aplicación cámara y reiniciar el teléfono: Resultado la falla persiste.
  3. Hacer reseteo de fabrica y luego bajar la copia de seguridad: Resultado la falla persiste.
  4. Hacer reseteo de fábrica sin restaurar copia de seguridad: Resultado la falla continua.
  5. Apagar el equipo, quitar la batería por 60 segundos, colocar nuevamente la batería y encender el dispositivo: Resultado el problema se solventó
En el vídeo siguiente se muestra como solventar esta situación, como conclusión podemos realizar el punto 5 y resolver el problema de una vez.








miércoles, 22 de agosto de 2018

Reconversión Monetaria Bolivar Soberano, Petro, Dolar y Bolivar Fuerte

En esta oportunidad utilizaremos un tema netamente económico, de mucha actualidad en Venezuela para hacer uso de las funciones aritméticas en HTML5 sin necesidad de utilizar javascript.

Es importante destacar que se pueden hacer operaciones de suma, resta, multiplicación y división haciendo uso de los atributos oninput y output  en un formulario. A continuación coloco el formulario y luego el código utilizado.

Para convertir Bolívares Soberanos a Petro: 1 ptr = 3600 BsS.
/ = petros
<form method="POST" oninput="petro.value=parseInt(bolivar.value) / parseInt(tasa.value)">
    <input type="number" id="bolivar" value="0"> /
    <input type="number" id="tasa" value="3600"> =
    <output name="petro" for="bolivar tasa"></output> petros
</form>

Para convertir Petros a Dolares USA: 1 ptr = $60.
* = dolares
<form method="POST" oninput="dolar.value=parseInt(petro.value) * parseInt(tasa.value)">
    <input type="number" id="petro" value="0"> *
    <input type="number" id="tasa" value="60"> =
    <output name="dolar" for="petro tasa"></output> dolares
</form>

Para convertir Bolívares Soberanos a Dolar: $1 = BsS. 60.
/ = dolares
<form method="POST" oninput="dolar.value=parseInt(bolivar.value) / parseInt(tasa.value)">
    <input type="number" id="bolivar" value="0"> /
    <input type="number" id="tasa" value="60"> =
    <output name="dolar" for="bolivar tasa"></output> dolares
</form>

Para convertir Bolívares Fuertes a Soberanos: BsS. 1 = BsF. 100000.
/ = bolívares soberanos
<form method="POST" oninput="bss.value=parseInt(bsf.value) / parseInt(tasa.value)">
    <input type="number" id="bsf" value="0"> /
    <input type="number" id="tasa" value="100000"> =
    <output name="bss" for="bsf tasa"></output> bolívares soberanos
</form>

viernes, 10 de agosto de 2018

Como convertir número decimal a Binario

Una breve explicación de como convertir números decimales a binarios.

Lo primero que se debe saber son, las partes que componen una división porque el procedimiento consiste en un conjunto de divisiones sucesivas.

  1. Identifique el numero a convertir, este va a ser el dividendo.
  2. Seleccione la base 2, este número corresponde al divisor
  3. Divida el dividendo entre el divisor (número a convertir entre la base 2).
  4. El cociente de la división del paso 3 sera el nuevo dividendo, el divisor permanece igual a 2.
  5. El resto de la división del paso 3, corresponderá a un dígito binario.
  6. Repita los pasos 3,4 y 5 hasta que el cociente sea igual a cero.
  7. Cuando el cociente sea igual a cero, forme el número binario resultante, comenzando por el último resto obtenido, o sea de abajo hacia arriba.







martes, 22 de mayo de 2018

lunes, 21 de mayo de 2018

Consulta a base de datos desde phpmyadmin

Ejemplos de consulta a base de datos para la visualización y actualización de datos relacionados con el pago de cuotas de condominio





viernes, 23 de marzo de 2018

Internet Protocol v6 (Protocolo de Internet versión 6)

Protocolo de Internet Versión 6 (IPv6)


Protocolo de Internet Versión 6 (Internet Protocol  6), es el estándar definido para la siguiente generación del protocolo IP, en el se establecen las principales mejoras a fin de superar las limitaciones de su antecesor IP v4,  como lo son la cantidad de direcciones IP y los aspectos relacionados con la seguridad. Fue publicado en 1998 bajo el RFC 2460 y ha sido actualizado varias veces, teniendo entre ellas el RFC 4291 que especifica el esquema de direccionamiento y el más reciente de 2017 el RFC 8064 que dicta las recomendaciones para los identificadores de interfaces estables IPv6 .
El Protocolo de Internet versión 6, también denominado como IP próxima generación (IP Next Generation o IPngn por sus siglas en inglés) es un protocolo diseñado para definir el envío de paquetes en redes de comunicación de datos tanto a nivel local como global, muy similar a IPv4, pero este viene a sustituirlo de manera progresiva y no abrupta, porque el proceso de migración no es del todo fácil y transparente, de eso trataremos en otro documento. Por ahora vamos a centrarnos en las características del protocolo como tal haciendo las comparaciones de rigor, cuando sean necesarias con el IPv4.  Algunas de las razones fundamentales para la elaboración de este nuevo protocolo fueron el agotamiento de las direcciones IPv4 públicas y la escasa seguridad que ofrece el protocolo.

Características:

·         Define un espacio de direcciones sumamente amplio, al tener la posibilidad de direccionar  direcciones IP un poco más de 340.000.000.000.000.000.000.000.000.000.000.000.000  se podría otorgar una dirección IP a cada ser humano del planeta para que tenga su propia sub red, incluso en ella, este podría asignar una IP a cada célula de su cuerpo y le sobraría para sus otros dispositivos.
·         Direcciones IP compuestas de 128 bits,  de estos, n bits a la izquierda se pueden utilizar para identificar la red o sub red y el resto 128 -n para la interface. Los primeros 48 bits a la izquierda definen el prefijo de la red, los siguientes 16 la sub red y los 64 restantes identifican la interface.
·         Especifica tres tipos de direcciones IP:
o   Unicast:
§  Global Unicast: cualquier dirección diferente a las siguientes:
Tipo de Dirección
Notación Binaria
Notación IP v6
No especificada
0 0 . . . 0 (128 bits)
::/128
Lookback
0 0 . . . 1 (128 bits)
::1/128
Multicast
11111111
FF00::/8
Link Local Unicast
1111111010
FE80::/10
Documentación y pruebas
0010000000000001:
0000110110111000
2001:0db8::/32

§  Site local Unicast (Obsoleta)
§  Link local Unicast : Toda aquella dirección que inicie con el prefijo FE80
o   Anycast: Cualquier dirección Unicast que se seleccione para tal fin, esta es asignada a diferentes interfaces, las cuales pueden estar en diferentes nodos, en esta situación cualquier paquete enviado a esta dirección le llegará a la interface del nodo que se encuentre más cerca.
o   Multicast: Es un identificador para un grupo de interfaces, generalmente pertenecientes a diferentes nodos. Una interface puede pertenecer a varios grupos multicast.  
·         Utiliza notación hexadecimal, dividido en 8 grupos de 16 bits separados por dos puntos (:), por ejemplo: 2001:0DB8:BA5E:0032:0000:0000:ADD5:1AB0. Para un ejemplo práctico visita https://www.youtube.com/watch?v=PZqeV3_MU7Q&t=167s
·         El esquema de direccionamiento define una estructura jerárquica, esto resulta beneficioso para los algoritmos de enrutamiento, porque sólo tendrán que identificar el prefijo para determinar a donde enviar el paquete, sin embargo este esquema pudiera ser utilizado en guerras cibernéticas de última generación o mecanismos de censura para bloquear todas las comunicaciones de un país con el exterior sea que fuere hecho de forma interna (por el mismo país) o externa  por otro país o grupo de ellos.
·       Especifica una cabecera reducida e incluye nuevos esquemas de seguridad y mejoras en la Calidad de Servicio (QoS)
·       Como está basado en jerarquía no requiere que se dispongan de dos direcciones IP para identificar la red y el broadcast como ocurre con IPv4.
·         Las configuraciones de las interfaces se realiza de forma automática, mediante el uso de los protocolos Neighbor Discovery (ND) e ICMPv6.

 Estructura de una dirección IPv6

La siguiente imagen muestra la estructura en la que se divide una dirección IP v6

El tamaño del prefijo se puede incrementar hasta llegar a los 64 bits, de forma proporcional disminuyen los bits asignados a las sub redes.

viernes, 2 de marzo de 2018

El celular se descarga muy rápido. Solución


Razones y soluciones por las que el celular se descarga muy rápido

Relacionadas con la batería

1.     La batería del celular no fue diseñada para largos periodos de duración. Esto suele suceder  cuando los fabricantes de celulares en intentos por reducir costos de producción (la competencia en este mercado es brutal, sino pregunten a Nokia y RIM) sustituyen baterías de mejor calidad pero de mayores costos por aquellas de menor calidad pero con costos más bajos.
2.     La batería del celular o está completamente nueva o tiene un tiempo prolongado de uso. En ambas situaciones la carga de la batería durará menos de lo esperado, sin embargo en el primer caso esta situación se irá ajustando conforme se vaya utilizando el teléfono, mientras que en el segundo la situación irá empeorando por lo que deberá sustituirla por una nueva batería.
3.     Nunca se debe dejar descargar por completo la batería, esta debe estar como mínimo por encima de un 5% de carga, adicionalmente si no va a utilizar su dispositivo por un tiempo prolongado debería dejarlo apagado pero la batería deberá tener una carga superior al 40% para evitar que los iones se adhieran a las celdas.
4.     No es necesario que la batería se cargue al 100%, sin embargo una vez que esta alcanza su máxima capacidad de carga, se debe desconectar el cargador para evitar problemas de recalentamiento que es una de las principales causas de daños en las baterías.
5.     Utilizar el cargador adecuado, los dispositivos móviles vienen en su mayoría con su cargador, es recomendable tomar nota de los valores de voltajes y amperios de salida por si se daña el cargador y debe utilizar uno de reemplazo, este debe tener los mismos valores que el original, de lo contrario se reduciría el tiempo de vida útil de la batería.

Relacionadas con el dispositivo

1.     Los componentes físicos, mecánicos y electrónicos son los que consumen mayor cantidad de energía, por ello trate de utilizarlos de la mejor manera.
2.     Active el vibrador sólo cuando sea necesario, a menos que tenga un problema auditivo el sonido del equipo le habrá saber cuándo están ocurriendo los eventos en su teléfono móvil.
3.     Utilice el Flash y Led si así lo requiere el lugar donde se encuentre, de lo contrario us solo la luz natural, así el dispositivo no tendrá que gastar energía innecesaria en estos componentes.
4.     Active las conexiones por Bluetooth, cuando requiere transmitir información por este medio, este además de consumir energía puede ser una brecha de seguridad si se mantiene activo.
5.     Si no está utilizando una conexión Wi-Fi lo más recomendable es apagarla y encenderla cuando tenga disponible de nuevo una red inalámbrica.
6.     Apague el teléfono, a menos que desempeñe una función que requiera tener encendido el teléfono las 24 horas del día, manténgalo encendido de lo contrario apáguelo cuando se vaya a dormir eso mejorará la calidad de su descanso y aumentará la vida útil de su dispositivo y su batería.

Relacionadas con el Sistema Operativo

1.     Evite en la medida de lo posible utilizar fondos de pantalla, si por algún motivo requiere de su uso trate en la medida de lo posible que sean en blanco y negro.
2.     Ajuste el nivel de brillo de la pantalla de tal forma que sea fácil su visualización y que a la vez no alcance el 100% de brillo
3.     Desactive la rotación automática. No tendrá ningún problema en girar su mano para darle vuelta al teléfono.
4.     Inhabilite los programas en segundo plano que no sean de vital uso, sobre todos aquellos no deseados como ADS y algunos otros que tampoco son de importancia para el funcionamiento del dispositivo.
5.     Habilite la opción de suspensión de pantalla, al tiempo requerido por usted para que el sistema Operativo suspenda la pantalla y no se quede encendida por mucho tiempo.

lunes, 19 de febrero de 2018

Netstat -seno

El comando netstat de Windows muestra estadísticas de la red, que es de gran utilidad al momento de determinar la cantidad de trafico que entra o sale de nuestras computadoras, en virtud de que las opciones de visualización son varias, se creo un video con las combinaciones de algunas de estas opciones que resultaron en palabras muy comunes y en algunos casos divertidas, las cuales son más fáciles de memorizar.



NETSTAT [-a] [-e] [-n] [-s] [-p protocolo] [-r] [intervalo]
  • -a visualiza todas las conexiones y puertos TCP y UDP, incluyendo las que están "en escucha" (listening).
  • -b en los sistemas recientes, visualiza el binario (ejecutable) del programa que ha creado la conexión.
  • -e estadísticas Ethernet de las visualizaciones, como el número de paquetes enviados y recibidos. Se puede combinar con la opción -s.
  • -n se muestran los puertos con su identificación en forma numérica y no de texto.
  • -o en sistemas Windows XP y 2003 Server, muestra los identificadores de proceso (PID) para cada conexión. Se puede verificar los identificadores de proceso en el Administrador de Tareas de Windows (al agregarlo a las columnas de la pestaña procesos)
  • -p muestra las conexiones para el protocolo especificado; el protocolo puede ser TCP o UDP. Si se utiliza con la opción de -s para visualizar la estadística por protocolo; el protocolo (Proto) puede ser TCP, UDP o IP.
  • -r visualiza la tabla de enrutamiento o encaminamiento. Equivale al comando route print.
  • -s estadística por protocolo de las visualizaciones. Por el valor por defecto, la estadística se muestra para TCP, UDP e IP; la opción -p se puede utilizar para especificar un subconjunto del valor por defecto.
  • -v en sistemas Windows XP y 2003 Server, y usado en conjunto con -b, muestra la secuencia de componentes usados en la creación de la conexión por cada uno de los ejecutables.
  • Intervalo: vuelve a mostrar la información cada intervalo (en segundos). Si se presiona CTRL+C se detiene la visualización. si se omite este parámetro, netstat muestra la información solo una vez.
Utilizar netstat -n (segs) donde segs es el número en segundos que esperará antes de mostrar nuevamente la información
  • /? Help: aparecerán los caracteres y su función.




viernes, 16 de febrero de 2018

Subnetting Subredes IPv4

El vídeo siguiente explica de forma breve la creación de sub redes en IPv4, la parte teórica se puede encontrar en este blog en otros documentos publicados anteriormente.



Espero sirva a su entendimiento.










jueves, 4 de enero de 2018

Concepto de Bitcoin. Aspectos técnicos

Bitcoin Concepto. Aspectos técnicos.

Concepto

¿Qué es bitcoin? Etimológicamente se compone de las palabras bit que es el acrónimo en inglés de Binary Digit o digito binario en español y la palabra coin que se traduce como moneda. En otras palabras un bitcoin es el término utilizado para referirse a una moneda digital.
 “se trata de una red consensuada que permite un nuevo sistema de pago y una moneda completamente digital”, bitcoin.org
Técnicamente un bitcoin es un conjunto de caracteres cifrados con e luso de una clave privada y un algoritmo de encriptación tipo hash como SHA-256 que lo hace único. En la práctica uno de cada 140.000.000.000.000.000.000 hashes es correcto, porque se asume que los hashes mas raros, aquellos que inician con un número significativo de ceros (17 o más), son los elegidos para los bitcoins.

Estructura de un bitcoin

Un bloque de bitcoin esta compuesto por 80 bytes distribuido de la forma siguiente:
Campo
Descripción
Tamaño/bytes
Versión
Versión del bloque, relativo al software que lo creo
4
Digest
Hash del bloque procesado
32
Merkle Root
Hash del nodo raíz al que pertenece el bloque
32
Timestamp
Registro de la fecha y hora de creación del bloque
4
Targuet
Calculo del grado de dificultad del bloque
4
Nounce
Valor utilizado para generar el bloque, permite variar y generar diferentes hashes
4

La siguiente imagen muestra la estructura de un bloque real
Fuente: http://static.righto.com/images/bitcoin/block_diagram_ghash-w550.png

Minar bitcoins

¿Cómo se genera un bitcoin?
Para minar bitcoins, primero se agrupan un conjunto de transacciones en un bloque, posteriormente se le aplica un ciclo repetitivo de la función criptografica hash hasta obtener un hash extremadamente raro, como se mencionó anteriormente.
La siguiente imagen muestra los valores de la aplicación GuiMiner corriendo en la laptop de trabajo donde se está creando este documento.


La velocidad de procesamiento de los bloques se mide en hash/s, haciendo un simple cálculo con los valores de Guiminer, en esta laptop se requerirán de aproximadamente 1545 días ininterrumpidos  para minar un bitcoin, por lo tanto no es aconsejable dedicarse a esta tarea con un equipo de similares prestaciones.
No obstante con los equipos de minería actuales que procesan 14Th/s, el tiempo disminuye a minutos, lo cual es bastante aceptable, pero este sería el lapso más pesimista dado que el equipo tendría que generar todos las combinaciones de hash, la realidad supone que es un proceso aleatorio ya que bloque válido puede ser generado en cualquier iteración por lo que es de suponer que los tiempos serán menores, adicionalmente los mineros cuentan con pools de equipos dedicados exclusivamente a esta actividad. 

Estas cantidades astronómicas son la clave principal para garantizar la seguridad y así evitar que un atacante o grupo de ellos interfieran en el sistema y lo pongan a funcionar para su beneficio.

Referencias

S. Nakamoto, “Bitcoin: A Peer-to-Peer Electronic Cash System”, http://nakamotoinstitute.org/bitcoin/#selection-7.4-9.39. 2008.

K. Shirriff,Mining Bitcoin with pencil and paper: 0.67 hashes per day”, http://www.righto.com/2014/09/mining-bitcoin-with-pencil-and-paper.html. 2014

“Bticoin Developer References”, https://bitcoin.org/en/developer-reference#block-chain. 2017