Sobre Bitcoin la era de las criptomonedas.

Hola Colegas!

Recientemente me puse a investigar para estar al día con esta nueva tendencia y donde visualizo que mucha de la actividad económica en todo el sentido de la palabra tiende a expandirse y poco a poco profundiza en diferentes mercados.; de qué estamos hablando!; de las criptomonedas y propiamente de la que más popularidad y por ende más valor ha ganado.

El Bitcoin es una criptomoneda que si la hubiese comprado hace 10 años (cuando un amigo/colega de trabajo) me dijo, Mau! compremos esto es el futuro; bueno hoy fuese otra historia, en fin… no fue así; El bitcoin se define como un tipo de activo digital que se puede comprar, vender o transferir de  manera segura por medio de la internet, sin requerir los servicios de un tercero. Existen dos maneras de describir un bitcoin. El primero “Un activo en el que invertir”, dos un tipo de moneda digital.

Si lo vemos desde el punto de vista de inversión es usado para acumular valor, es decir ahorrar, esto viene siendo a comprar oro/plata, si lo ves desde el punto de vista como moneda, te sirve para comprar productos, pagar servicios, y/o intercambiar valor electrónicamente. Claramente bajo este concepto no existen ni monedas ni billetes en forma tangible, también importante mencionar que para efectuar una transacción no es necesario un banco o tercero, ya que la transacción se da bajo el concepto “peer to peer”.

El bitcoin si bien es cierto debe trabajar sobre una infraestructura o tecnología, y esto es el “Blockchain”, o cadena de bloques. Un Blockchain es como un libro mayor de contabilidad que crece constantemente y mantiene un registro de todas las transacciones que suceden minuto a minuto, y todo esto se hace de manera segura (por su mecanismos de criptografía asimétrica SHA256), cronológica e inmutable, esto es que una vez realizada la transacción no existe manera de “eliminarla” o como comúnmente le llamamos un “Rollback”.

Existen varias formas de obtener un bitcoin, una de ellas es “comprando”, o bien que alguien te dé/brinde bitcoins a cambio de un servicio, es decir bajo una relación “cliente-proveedor”,  y la que más difícil hoy por hoy es bajo la minería del bitcoin, esta última es conocida como el famoso “Rol de minero del bitcoin”; y bueno se preguntaran…. pero ¿qué es minar?….esto tiene su “formula/matemática/procedimiento”, como lo quieran ver…. simplemente es crear una nuevo bloque de transacción con una fórmula “especial”; y créeme hoy por hoy no es fácil, el minar tiene costo de “ENERGIA”, un computador donde el consumo de CPU es extremadamente alto; entonces creo que es más el gasto que la ganancia si quieres minar; a menos de que compres/adquieras un equipo especial que ya hoy por hoy, los venden… como por ejemplo un “10 GH/sg Bitcoin Miner” o bien un “AntMiner S7”, esto es Hardware, sin embargo existen servicios “Cloud” que juntan por un costo mensual “famoso fee” y forman un grupo de mineros, que cuando logran “romper el bloque”, se reparten las ganancias, se gana poco pero se gana….

Ahora bien, empiezan a surgir las preguntas y dudas…. como por ejemplo y como me pasan un bitcoin o que necesito. Lo primero que necesitas es abrir un monedero, esto viene siendo como tu número de cuenta bancaria,  que es una llave (cadena de texto) algo largo, algo como esto: “3KC8N287Asq7r7RAmHBbtHSFgSuf86BxV2” (ojo que este es falso). Existen tipos de monederos como por ejemplo monederos para computadora de escritorio, móvil (Android/Iphone), o Web. Puedes usar el que gustes, cuando hayas abierto tu monedero te va a dar un URI bitcoin, este último es el que compartes para que te realicen transferencias de bitcoins o satoschis (que es el equivalente a centavos de dólar). Una vez con tu monedero listo, ya puedes adquirir bitcoins.

Te comparto varios recursos para que puedas profundizar sobre el tema:

https://blockexplorer.com/
https://blockchain.info/

Which Bitcoin Wallet Is Best? Desktop Choices


https://www.bitcoin.org/
https://coinmarketcap.com/
https://aprendacomousarbitcoin.com/

TODO LO ANTERIOR LO APRENDI de un curso muy valioso con George Levy en Udemy, les comparto el curso por si desean profundizar más del tema.

https://www.udemy.com/como-usar-bitcoin/learn/v4/overview

Buena Suerte.

 

¿Que es planeación estratégica?

Hola! comparto esta definición que en lo personal me gustó bastante, la encontré respondiendo una encuesta de una universidad y pues bien; me la robe:.

¿Que es planeación estratégica?

La Planeación estratégica, es crear un sistema flexible e integrado de objetivos y sus correspondientes estrategias que nos sirva como punto de referencia tanto para visualizar en qué grado alcanzamos los objetivos de corto plazo y cómo nos encaminamos a los de medio y largo plazo, con coherencia entre el esfuerzo de las personas y el valor relativo de cada meta. La planeación estratégica no está encaminada a eliminar riesgos (asumir riesgos es esencial para el progreso) sino en asegurar que éstos se detecten y una vez detectados, aceptar los que sean oportunos en el momento adecuado.
Así mismo orientan el desarrollo de la planeación con una serie de factores que obligan a planificar, entre ellos tenemos:
•    Las expectativas de los consumidores cambian al ritmo del cambio exponencial en el conocimiento.
•    La información, y especialmente la explosión del conocimiento y su correcta utilización, están creando organizaciones completamente distintas a las convencionales.
El planificar será una forma de reducir la inseguridad, de ejercer la autonomía, de responsabilizarse del propio futuro, y de aprovechar el riesgo del cambio como un factor de oportunidad para el desarrollo de las TIC´s en mi organización.

Fuente: desconocida.

Wordfence Security un puglin de Seguridad para su Web en WordPress.

Hola Colegas!

Comparto el siguiente post para los que desean reforzar su seguridad de su Sitio en WordPress

Wordfence el plugin de wordpress que te puede librar de muchos dolores de cabeza!, este plugin es un plugin de seguridad bastante efectivo para tu sitio de WordPress, el mismo ofrece una serie de opciones y/o características disponibles que monitorizan, escanean compara los archivos modificados por atacantes contra los originales liberados por la comunidad de WordPress, bloquea ataques, muestra tráfico online, entre otros.

Wordfence cuenta con dos modalidades la Free disponible para tu Sitio Web y la de pago para antispam y publicidad no deseada.

Comparto algunas pantallas y el link para que lo instalen en su sitio Web y puedan prevenir algun desastre en su Sitio Web.

Más información: http://www.wordfence.com/learn/

SQL Joins

Hola Colegas,

Muy util para nuestros labores de consultas a nivel de Bases de datos.

 

visual_sql_joins_orig

 

 

Fuente:http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins

Convertir formato fecha dd/mm/yyyy en nuestro Excel a yyyy-mm-dd para nuestro MySQL.

Hola Colegas,

En ocasiones tenemos que nuestros clientes nos envían un archivo en Excel y topamos con la suerte de que el formato enviado de una fecha X de ese lote de información, viene en dd/mm/yyyy, y necesitamos INSERTAR esos registros que pueden ser miles en nuestra base de datos MySQL, y dicho campo tiene formato yyyy-mm-dd.

Pues la solución es muy sencilla!, adicionamos una columna en nuestro Excel ( junto a la fecha) y aplicamos la siguiente fórmula:

= TEXT(DATE(RIGHT(G2,4),MID(G2,4,2),LEFT(G2,2)),"YYYY-MM-DD")

Nuestra nueva columna debería quedar con el formato: yyyy-mm-dd  y lista para cargar a nuestra tabla.

Una forma muy sencilla para algo que a veces nos quiebra la cabeza.

formatofecha

Buena suerte.

Sobre Seguridad.

Hola, Colegas,

Recientemente liberaron una nueva versión del sistema operativo llamado Kali Linux 2016.2, una distribución de Linux en Debian ( código abierto ) diseñado para ayudar a los hackers éticos y profesionales de la seguridad con una amplia gama de herramientas para pruebas de penetración , análisis,  piratería. Todo esto en un solo paquete.

De manera que antes de liberar el desarrollo de tu sitio Web lo puedes someter a pruebas de seguridad, garantizando una mejor calidad en el producto que vas a entregar.

Tambien puedes instalarlo en una maquina virtual y crear tu propia herramienta de Testing.

Para mas información puedes visitar el sitio https://www.kali.org/kali-linux-documentation/  y para descargar el ISO en https://www.kali.org/downloads/ 

Como programar una tarea automática FTP en nuestro PC en 4 Pasos (Backup FTP)

Hola amig@s!

Comparto una interesante forma de programar una tarea automática en nuestro PC, para respaldar nuestros sitios Web o sincronizar cambios recientes realizados en nuestro archivos HTML. PHP, entre otros;  ya sea de forma remota a nuestro local o viceversa. aunque existen muchas formas y documentacion de hacer esto, yo les comparto mi ejemplo.

Para el siguiente POST voy a indicar los pasos para descargar desde el servidor a nuestra máquina local. Esto nos funciona como una tarea de respaldo.

Paso 1: Instalar un programa llamado WinSCP ( https://winscp.net/eng/download.php  )

Paso 2: Elaborar un script puede ser un .txt que debe llevar las instrucciones de lo que queremos realizar: si el descargar ( download) o el subir (upload), recuerda crear un standard del nombre del script para identificar si tienes varias tareas o varios sitios que sincronizar, las instrucciones básicas de nuestro script.txt deben ser las siguientes:

##
# Script para sincronizar los Archivos Remotos a Nuestro LOCAL DIR.
# En caso de existir cambios actualiza nuestra copia LOCAL con los cambios realizados.
##

option batch abort
option confirm off
# Si deseamos excluir de nuestro proceso alguna ruta o archivos colocamos 
# la siguiente instruccion:
option exclude /var/www/html/[nombre_de_carpeta]/*

# Establecemos la conexion con nuestro Server (  recuerda cambiar los parentesis cuadrados por tus valores)
open sftp://[usarioFTP]:[claveFTP]@[IP_DEL_SERVER_NOMBRE_DOMINIO] -hostkey=""

# Establecemos la sincronizacion con nuestro Server ( recuerda cambiar los parentesis cuadrados por tus valores)
synchronize local C:\DOCUMENTOS\[DIRECTORIO_LOCAL_SITIOS_WEB]\[DOMINIO]\ /var/www/html/
exit;

Paso 3: Confeccionar un archivo .bat con el nombre que gustes, solo recuerda el standard para identificar que pertenece al dominio respectivo. Lomejor es que su archivo .txt y su archivo .bat lleven el mismo nombre pasa asociarlos con la tarea automática. Las instruccciones del archivo .bat deberia ser las siguientes:

cls
echo "Sincronizando Archivos de mi Sitio mauricioAlpizar.com a mi LocalPC"
C:\DOCUMENTOS\util\winscp.exe /console /script="C:\DOCUMENTOS\util\WinSCP\mauricioalpizarRemoto2Local.txt"
pause

Paso 4: En su Windows y depende de la version, debes buscar el Task Scheduler  y agendar la periodicidad de la tarea automatica, esta configuración es muy sencilla porque por si solo el windows es muy intuitivo, lo que debes saber es que el action del  “Task Scheduler” debe ser la dirección de tu archivo .bat, que a su vez este llama al .txt para ejecutar la sincronización respectiva

Con estas instrucciones ya puedes tener tu propio BackUp en tu PC.

Buena Suerte!.

Cambiar el botón de “add to cart” por un boton de “Read More”

Recientemente tuve la necesidad de cambiar en un WooCommerce el botón de “Add to Cart” por un botón de “Read More“, en los listados de productos, listados de Categorías del WooCommerce, investigando se debe utilizar los filtros que permite habilitar o deshabilitar dicha funcionalidad.

Esto lo podemos adicionar muy fácilmente, comparto el script que para mi funcionó muy bien.

Primeramente nos vamos al panel de administración de WordPress, ingresamos a la opción de “Appearance/Apariencia“, Luego a buscamos la opción de “Editor/Editor“, En esa pantalla buscamos a lado derecho el script llamado “functions.php” de nuestro template o bien; el template que estamos trabajando en ese momento y en el TextArea ingresamos el siguiente código PHP.

/*Paso #1 - Eliminar el "ADD TO CART BUTTON" de nuestro Shop/tienda  */

function remove_loop_button(){
	remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
}
add_action('init','remove_loop_button');


/*Paso 2 -Agregamos el Boton que linkea a la pagina de detalle del producto, de cada ITEM*/

add_action('woocommerce_after_shop_loop_item','replace_add_to_cart');
function replace_add_to_cart() {
	global $product;
	$link = $product->get_permalink();
	echo do_shortcode('<a href="'.$link.'" class="button addtocartbutton">Read More</a>');
}

Espero les ayude en algún momento de su configuración con WooCommerce.

Buena Suerte!

Elaboración de Store Procedure en MySQL – Números Aleatorios

Buenas Colegas,

Esta semana tuve que implementar un requerimiento y me pareció interesante compartirlo, ya que muchas veces nos puede ser mas sencillo implementar el algoritmo a nivel de Base de datos.

El caso es el siguiente: debía confeccionar un formulario para ingresar los datos de la persona en mi sistema, en un input de ese registro/formulario se debía especificar cantidad de cupones (números aleatorios) que se debian crear en función de ese registro que ingresaba al sistema, entonces pensé!, esto no lo voy hacer por un script de programación, voy a buscar otra alternativa, y opté por generarlo a nivel de un STORE PROCEDURE en base de datos y así no modifiqué mucho mi código del sistema.

Les comparto el algoritmo en lenguaje SQL-STATEMENT a nivel de MySQL.

---------------------
BEGIN

 DECLARE contador INT UNSIGNED DEFAULT 0;
 DECLARE numCupon BIGINT SIGNED DEFAULT 0;
 DECLARE cantidaEncontrado INT;

 #TRUNCATE table cupones;

 START TRANSACTION;

 WHILE contador < CantidadCupones DO
 /* Esta es mi funcion que genera el Numero Aleatorio*/
 SET numCupon = numero_aleatorio();

 SET cantidaEncontrado = (SELECT COALESCE(COUNT(*),0) FROM cupones WHERE numCupon = codigo_cupon);

 IF (cantidaEncontrado = 0) THEN
 /*
 El SP recibe por parametro 2 variables/parametros:
 Letra: Quiero generar mis numeros aleatorios y le contacteno un a letra.
 IdActivacion: Es la llave Forenea al registro de la persona.
 */
 INSERT INTO cupones (codigo_cupon,fk_activacion) VALUES ( CONCAT(numCupon,Letra),IdActivacion);

 SET contador=contador+1;
 
 END IF;

 END WHILE;

COMMIT;

END
--------------------------

Por otro lado esta es mi función llamada numero_aleatorio() para crear el numero random.

BEGIN
	/* Es una función y retorna un INT*/
	RETURN FLOOR((1111+RAND()) * (9999-1111)) + 100;

END