Qué Códigohttps://www.quecodigo.com Agencia de Marketing y Desarrollo Wed, 29 Apr 2020 06:03:06 +0000 es hourly 1 https://www.quecodigo.com/wp-content/uploads/cropped-favicon-32x32.pngQué Códigohttps://www.quecodigo.com 32 32 ¿Qué es y cómo se usa el .htaccess?https://www.quecodigo.com/que-es-y-como-se-usa-el-htaccess/ https://www.quecodigo.com/que-es-y-como-se-usa-el-htaccess/#disqus_thread Thu, 26 Mar 2020 15:00:07 +0000 https://www.quecodigo.com/?p=4166 Un archivo .htaccess (hypertext access) o archivo de configuración distribuida es un archivo en formato ASCII como el que cualquiera puede crear con el bloc de notas, popularizado por el Servidor HTTP Apache, que es el más usado en el mundo cuando hablamos de servidores Web. Permite definir diferentes directivas de configuración para cada directorio (con sus respectivos subdirectorios) sin necesidad de editar el archivo de configuración principal de Apache.

Cuando hablamos de “directivas” nos referimos a la terminología que usa Apache para los comandos que se usan para los archivos de configuración.

Los archivos .htaccess son usados frecuentemente para especificar restricciones de seguridad para un directorio en particular, de aquí el sufijo “access“. Los servidores suelen usar el .htaccess para reescribir URLs largas y complejas, en otras más simples y fácilmente recordables, permiten bloquear a usuarios por su dirección IP y/o dominio, bloquear bots y arañas web. También permite controlar las páginas de errores cuando estos ocurren del lado del servidor.

Expresiones regulares (regex) disponibles en .htaccess
#
Una # le dice al servidor que ignore la línea, que no la ejecute. Se usa para incluir comentarios. Debes tener claro que cada línea de comentarios requiere su propio carácter # así que si quieres añadir mucho texto recuerda poner una # al principio de cada línea. Suele ser recomendable usar solo letras, números, guiones y guiones bajos, para evitar posibles errores de llamadas no deseadas al servidor.

#Comentario_de_archivo_htaccess

[^]
especifica la clase de NO inclusión de caracteres. e. [^xyz] coincidirá cualquier caracter que no sea x, y ni z.
[a-z]
un guión (-) entre dos caracteres dentro de una clase de caracteres ([]) denota el rango de caracteres entre ellos. ej. [a-zA-Z] coincide con todas las letras mayúsculas y minúsculas de la a la z.
()
Se usa para agrupar caracteres entre ellos, debiéndose considerar como una unidad. ej. (perecedero)?prensa coincide con prensa, con o sin el prefijo perecedero.
^
denota el inicio de una cadena de prueba regex (regex = regular expression = expresión regular). ej. comienza el argumento con el carácter precedente.
$
denota el final de una cadena de prueba regex (regex = regular expression = expresión regular). ej. finaliza el argumento con el carácter previo.
?
declara como opcional el caracter precedente. ej. monzas? coincidirá con monza o monzas, mientras que mon(za)? coincidirá con mon o monza. ej. x? coincide con una o ninguna x.
!
declara una negación. ej. “!cadena” coincide con cualquier cosa salvo con “cadena”.
.
un punto (o periodo) indica cualquier carácter arbitrario único.

instruye “NO” reescribir la dirección URL, como en “…domain.com.* – [F]”.
*
coincide con cero o más caracteres precedentes. ej. usa “.*” como un comodín.
|
declara un operador lógico “or”. Por ejemplo, (x|y) coincide con x o y.

escapa caracteres especiales ( ^ $ ! . * | ). ej. usa “.” para indicar/escapar un punto literal.
.
indica un punto literal (escapado).
/*
cero o más barras.
.*
cero o más caracteres arbitrarios.
^$
define una cadena vacía.
^.*$
el modelo estándar para hacer coincidir todo.
[^/.]
define que no sea barra o punto.
[^/.]+
define cualquier número de caracteres que no sean ni barra ni punto.
http://
esta es una afirmación literal — en este caso, la cadena literal de caracteres “http://”.
^dominio.*
define una cadena que comienza con el término “dominio”, que pueden ir seguidos por cualquier número de caracteres.
^dominio.com$
define la cadena exacta “dominio.com”.
-d
comprueba si la la cadena es un directorio existente.

Preparando el archivo “.htaccess”

El archivo .htaccess nos permite pasarle información al servidor Apache para que cumpla ciertas reglas de configuración en la carpeta que lo contenga, por tal motivo debemos copiar este archivo en la carpeta que contengan los archivos php en los cuales realizaremos los cambios de URL:

RewriteEngine on

#4 variables
Rewriterule ^miphp/(.*)/(.*)/(.*)/(.*)$ miphp.php?$1=$2&$3&$4

#3 variables
Rewriterule ^miphp/(.*)/(.*)/(.*)/$ miphp.php?$1=$2&$3

#2 variables
Rewriterule ^miphp/(.*)/(.*)$ miphp.php?$1=$2

#1 variable
Rewriterule ^miphp/(.*)/$ miphp.php?$1

En la primera línea nos aseguramos de que esté activado el mod_rewrite en el Apache (si esto no funciona deberá comunicarse con su administrador para que active el módulo en el servidor).

NOTA: Si estas usando LocalHost puedes activarlo en httpd.conf

En las líneas 3, 5, 7 y 8 se establecen las reglas que nos permitirán transformar nuestras URL extensas en amigables. Analizaremos aquella que permite transformar dos variables, las demás son similares:

Rewriterule ^miphp/(.*)/(.*)/$ miphp.php?$1&$2

La expresión (Rewriterule) es la que nos permitirá escribir la regla en el Apache. La cadena (^miphp/(.*)/(.*)/$) permite escribirá la URL amigable, inicia desde el caracter ^ hasta el $. Y finalmente la cadena (miphp.php?$1&$2) es nuestro URL extenso. La transformación se hará de la siguiente manera:

De URL extensa: miphp.php?categoria=monitores&productoID=12345

De URL amigable: miphp/monitores/12345/

Como se puede apreciar la regla tomara el nombre del script y le quitara la extensión “.php” para tomarlo como un directorio (nótese la parte en negritas).

Como ya se habrá dado cuenta, los valores antecedidos por el símbolo dólar ($) en la parte de las URL extensas reemplazan a los (.*) de las URL amigables.

Bueno ya tenemos el archivo .htacces que nos permitirá lograr los resultados que deseamos a nivel del servidor, ahora procederemos a crear el script php que nos permita cambiar nuestras URL extensas en amigables sin tener que hacer ninguna modificación directa en los “N” enlaces que posea nuestro sitio web.

Creando el archivo PHP

En este script usaremos el metodo $_GET para que nos muestre las varibles y una imagen, si esta correcto los valores.

En este script pondremos dos valores que si cumple uno mire cumple el otro, y así mostrar la imagen correspondiente.

<?
    //Llamamos las variables con $_GET.
    $categoria = $_GET["categoria"];
    $productoID = $_GET["productoID"];

    if(isset($categoria)){//miramos que la variable "categoria" no este vacia.
        if(isset($productoID)){//miramos que la variable "productoID" no este vacia.
            switch ($categoria) {//hacemos un "switch" para mirar la categoria.
                case 'monitores':
                    echo "El id del producto es" .$productoID." con la categoria ".$categoria;
                    echo '<img src="https://www.quecodigo.com/'.$productoID.'.png">';//abrimos la imagen con el id
                break;
                case 'teclados':
                    echo "El id del producto es" .$productoID." con la categoria ".$categoria;
                    echo '<img src="https://www.quecodigo.com/'.$productoID.'.png">';//abrimos la imagen con el id
                break;				
            }
        }else{//Lanzamos un errror si no hay id
            echo "Debes especificar un id del producto";
        }
    }else{//Lanzamos un errror si no hay categoria
        echo "Debes especificar una categoria del producto";
    }
?>

]]>
https://www.quecodigo.com/que-es-y-como-se-usa-el-htaccess/feed/ 0
¿Cómo reparar el malware de puerta trasera wp-vcd en WordPress con Functions.php?https://www.quecodigo.com/como-reparar-el-malware-de-puerta-trasera-wp-vcd-en-wordpress-con-functions-php/ https://www.quecodigo.com/como-reparar-el-malware-de-puerta-trasera-wp-vcd-en-wordpress-con-functions-php/#disqus_thread Tue, 24 Mar 2020 20:00:47 +0000 https://www.quecodigo.com/?p=4165 Hace poco nos encontramos con la sorpresa de que uno de nuestros clientes fue infectado con un Malware en WordPress generando una puerta trasera a un sitio web que arrastraba todos los datos de acceso, nosotros siempre preocupados con la seguridad de nuestros clientes analizamos periódicamente el sitio en busca de alguna anormalidad.

En este caso en el desarrollo de uno de nuestros plugins, por haber descargado un complemento que nos mandaron para analizar (Sin saber la procedencia del mismo), este contenía este código malicioso lo cual infecto nuestro plugin y themes del sitio de prueba que pronto fue llevado a producción.

¿Pero como sabemos si un sitio esta infectado?

Esto es muy fácil, gracias a que WordPress es un elemento de código abierto hay muchas herramientas que pueden comparar los archivos de nuestro sitio con los del repositorio oficial, dando así con el código el cual no pertenece a nuestro sitio.

Una de estas herramientas es: Defender Security.

Es una herramienta muy potente en su versión Free que nos permitirá hacer un escaneo del sitio y sus archivos como lo muestra la imagen, ojo este solo escanea elementos que se encuentran en el repositorio oficial de WordPress.

¿Cómo eliminamos este malware?

Una vez que hallamos detectado que nuestro sitio tiene un código malicioso con Defender el nos da la opción de restaurar el código original de la core de WordPress, esto lo haremos más adelante.

NOTA: Recuerda hacer un backup diario así tienes mayor facilidad de prevenir estos ataques.

De caso contrario puedes seguir estos pasos:
– Entra en tu cPanel o administrador de tu Hosting.
– Haz una copia de seguridad de tu base de datos y de la carpeta upload sin que tenga archivos .php
– Elimina plugins de dudosa referencia, recientemente activados o Nulled desde FTP.

NOTA: (Ojo, deja solo los necesarios y de repositorios oficiales), ya que el ataque puede venir de alguno de ellos.

– Analizaremos nuestro archivo con Defender Security.

– Descargar Advanced Database Cleaner.

– Una vez hallamos descargado y instalado Advanced Database Cleaner nos iremos a Herramientas->WP DB Cleaner
– Ir a la pestaña Options, y vamos a eliminar las opciones relacionadas con los cron.

– Ir a la pestaña Cron Jobs, buscar todo lo relacionado con “wp_vcd” NOTA: no en todos aparece.

– Una vez realizado esto nos vamos a Defender y restauramos los archivos originales.
– Ahora todo theme y plugin Premium que tengamos, lo descargamos nuevamente y los volvemos a instalar.

¿Qué hago si esto no funciona y sigue mostrándome error de Defender?

– Volvemos a hacer todo el procedimiento anterior con Advanced Database Cleaner, una vez hecho esto no vallamos a recargar o hacer alguna otra opción en nuestro sitio.
– Ahora elimina todos los archivos de WordPress desde FTP, excepto:

wp-config.php, wp-content/uploads/, wp-content/plugins/

– Abrimos el archivo wp-config.php y vamos a desactivar el Cron.

define('DISABLE_WP_CRON', true);

-Subimos de nuevo toda la Core de WordPress, Themes y plugins
– Analizar de nuevo el sitio para comprobar ficheros. (Ya no debería aparecer el archivo)
– Actualizar traducciones de la Core.
– Actualizar traducciones de los plugins y temas.
– Puedes activar de nuevo el Cron.

]]>
https://www.quecodigo.com/como-reparar-el-malware-de-puerta-trasera-wp-vcd-en-wordpress-con-functions-php/feed/ 0
Pasarelas de Pago en Colombiahttps://www.quecodigo.com/pasarelas-de-pago/ https://www.quecodigo.com/pasarelas-de-pago/#disqus_thread Mon, 16 Mar 2020 19:00:04 +0000 https://www.quecodigo.com/?p=4162 ¿Cuáles son las pasarelas de pago que tenemos en Colombia? Hoy analizaremos un poco de ellas para saber cuál es la que mejor se adecua a nuestra empresa.

Colombia es un país que poco a poco ha estado migrando a alternativas digitales y más cuando hablamos de pagos. Muchas herramientas de pagos como PSE, Efecty, Baloto han ido surgiendo al pasar de los años y han ayudado a que más personas tomen la iniciativa de probarlas para agilizar los procesos de compra.

Uno de los mayores miedos que siempre se han tenido es el hecho de la seguridad al poner información financiera dentro de una web, cuando hablamos de pagos en línea, por lo que empresas como Paypal, que llevan tantos en el mercado, ha estado luchando para generar mayor confianza en las personas.

Sin embargo, no fue hasta el hecho de las Criptomonedas que se comenzó a generar más confianza en las personas y cada vez más empresas se preguntaban lo que eran las pasarelas de pago para implementarlas dentro de su página web.

Actualmente, y poco a poco, aparecen más empresas locales que prestan servicios para recibir pagos en tiendas online dentro de Colombia. Esto es importante, porque muestra que se generan más alternativas confiables y, en su mayoría, son regidas por entes controladores del país que facilitan aún más los procesos de transparencia.

Cada vez tenemos más alternativas confiables con las cuales podemos contar para realizar pagos seguros.

¿Qué son las pasarelas de pago?

Para poder hablar de las opciones que tenemos en Colombia primero debemos hablar de lo que son las parelas de pago para poder entenderlas.

Una pasarela de pago no es más que el servicio que se presta para permitir la recolección de pagos (digitales) de manera automática sin necesidad de tener que depender de alguna persona para que pueda ser validado.

Esto último es bastante valioso, porque no tendremos la necesidad de poner a un miembro del equipo para estar pendiente de si el dinero ha ingresado, o no. Además, la mayoría de pasarelas de pago integran demasiadas medidas de seguridad en sus procesos para prevenir la suplantación de identidad.

La seguridad se ha estado tomando en serio durante los últimos años para el proceso de pagos en línea.

PayPal

Comenzamos con PayPal, una pasarela que tiene varios años en el mercado, siendo la pionera de la modalidad y que a pesar de ser internacional se puede trabajar en Colombia siendo una empresa. Con PayPal vale resaltar que no podremos utilizar el peso colombiano, sino que deberemos aceptar pagos en otras divisas.

Esta una de las soluciones mas interesantes a la hora de realizar pagos online, actualmente se encuentra en la mayoría de los países y es muy fácil de configurar en las diferentes plataformas, cuenta con su propio Checkout, generador de botón de pago, SDK y una solución REST API para poder realizar cualquier tipo de integración con el leguaje de programación de nuestra preferencia.

Con PayPal podremos recibir pagos de tarjetas como MasterCard, Visa, American Express, DinersClub.

El dinero recaudado por medio de PayPal, si estas en Colombia, solo es posible retirarlo por medio de una entidad bancaria como Davivienda o Nequi (para personas) gracias a un convenio realizado hace poco el cual cobra una mínima comisión por realizar esta transacción. De otra manera no sería posible de manera directa y tendrías que buscar la manera de retirarlo en alguna cuenta bancaria en el exterior, como Estados Unidos.

Las comisiones son por transacción exitosa, por lo cual no tendrás que pagar por la instalación del servicio, y actualmente se encuentra en 5.4% + 0.30 USD.

Mercado Pago

Mercado Pago surgió gracias al impulso de Mercado Libre que es la plataforma de compras online más popular en América Latina. Este es el servicio de pago encargado de realizar la mayoría de las transacciones en Mercado Libre lo cual le da un excelente respaldo. Además, gracias a sus convenios con empresas de transportes se posiciona como una de las mejores soluciones actualmente porque podemos vincular varios servicios en uno y no simplemente el de recibir pagos en nuestra página web.

El costo de cada transacción en Mercado Pago es de 3,29% + $800 por cada pago acreditado; es decir, no hay que pagar dinero por instalación del servicio. También vale mencionar que tienen un segundo modelo donde tienen una comisión del 2,99% + $800 por transacción exitosa, pero donde no podrás retirar el dinero hasta 14 días después de que se procese la compra.

Con Mercado Pago podremos recibir pagos desde tarjetas MasterCard, Visa, Diners Club, Codensa o American Express, Efecty, Vía, Davivienda, 4/72 y PSE.

Puedes hacer uso de las diferentes herramientas como SDKs, APIS de pagos, tarjetas de pruebas, link de cobros entre otros que encontrarás en la página de desarrolladores.

Epayco

Epayco también se suma a las opciones de recaudo y pago en línea. Una de sus premisas es pagar por lo que se utiliza. La empresa “paisa” tiene su sede principal en Medellín, Antioquia, y es una StartUp que nació sobre el 2011.

La empresa ha crecido bastante brindando un servicio bastante agradable y sumando marcas de valor a su portafolio de clientes. Ellos incorporan varios métodos de pago en los cuales pueden permitirse ser totalmente digital o incluso puntos físicos.

Actualmente, brindan una comisión de 2,99% + $900 para cuentas de cualquier banco del país, pero una comisión de 2,68% + $900 para empresas en la cual su banco es Davivienda. En ambos casos se cobra solo por transacción realizada.

Con Epayco podremos recibir pagos desde tarjetas MasterCard, Visa, American Express, Diners Club, PayPal, PSE, Banco de Occidente, Davivienda, DaviPlata, DaviPay, Efecty, Baloto, Gana, RedServi, PuntoRed o SafetyPay.

Epayco cuenta con diferentes tecnologías a la hora de recaudar como Web Checkout, API, SDK, link de pago, datafono virtual. Es una de las más completas en cuanto integraciones y tienen un soporte bastante cómodo y personalizado.

PayU

PayU es uno de los gigantes en Colombia por su trayectoría en el país. Muchas de las empresas principales actualmente tienen todos sus pagos vínculados con esta plataforma por lo cual nos muestra su solidez como empresa.

Actualmente la comisión es de 3,49% + $900 que se puede negociar si se factura más de $100 millones mensuales. La comisión es como las demás, por transacción exitosa.

Con PaU podremos recibir pagos desde tarjetas MasterCard, Débito Visa, Visa, Codensa, American Express, Diners Club, SuRed, Efecty, Baloto, Davivienda, Banco de Bogotá, Bancolombia, PSE.

Brindan integraciones totalmente personalizables o también cuentan con desarrollos ya diseñados para muchas plataformas de comercio en línea para acelerar procesos.

Otras pasarelas de pago en Colombia

En Colombia también existen otros métodos de pago como lo son Payvalida, PlacetoPay, Wompi (de Bancolombia), Nequi y algunos otros que quizá no hemos mencionado, pero que han ido ganando fuerza al pasar de los años.

Pasarelas de pago internacionales

A nivel intercional contamos con empresas como Stripe, Squareup y 2Checkout que tienen bastante experiencia procesando pagos, pero donde dependerá mucho de los objetivos o de los tipos de pagos que se quieran recibir porque están pensadas en pagos con tarjeta, en su mayoría, más no con medios locales de Colombia.

Incluso, algunas de ellas necesitan que la empresa tenga sede legal en Estados Unidos para poder permitirse aceptar pagos, aunque muchas veces sus comisiones pueden ser más competitivas y sus niveles de seguridad y gestión mayores.

Conclusiones

¿Cuál es mejor? Eso dependerá mucho de los objetivos finales de tu empresa. Si solo buscas vender y que te paguen con tarjetas, puedes elegir alguna que sea enfocado en ello, mientras que si quieres permitirte recibir pagos de personas por Internet generando recibo para pagar en puntos físicos (efectivo) deberás pensar en alguna que lo brinde así.

También vale mencionar que muchas de las pasarelas de pago mencionadas brindan desactivar ciertos métodos cuando no se usan, pero todo dependerá finalmente de las necesidades. Es bueno consultarlos más a fondo antes de tomar una decisión.

¿Tienes experiencia con alguna de las pasarelas de pago mencionadas o conoces alguna que no hayamos mencionado? Escríbenos en los comentarios.

]]>
https://www.quecodigo.com/pasarelas-de-pago/feed/ 0
¿Cómo instalar LAMP en Subsytem Ubuntu de Windows 10?https://www.quecodigo.com/como-instalar-lamp-en-subsytem-ubuntu-de-windows-10/ https://www.quecodigo.com/como-instalar-lamp-en-subsytem-ubuntu-de-windows-10/#disqus_thread Thu, 12 Mar 2020 23:00:47 +0000 https://www.quecodigo.com/?p=4161 Hace poco decidí instalar Windows 10, pero no podía dejar que mi servidor local no funcionara correctamente, ya que he tenido varios problemas con las ultimas herramientas que uso en mis sitios para la seguridad, he probado WAMP, AppServ y AMPS pero todos me lanza error en los archivos que tenía en Ubuntu y nunca me dio error, recordé que hace unos años Windows implemento Subsytem de Ubuntu 18.04 y me puse a pensar, será que puedo trabajar con el mismo instalando LAMP como ya lo había hecho en “[Guia completa] Como instalar LAMP en Ubuntu 18.04, 18.10 y 19.04“, pero no funciona al 100%, sin otros comandos.

NOTA: No se recomienda para espacios de trabajo o de producción ya que este consume demasiados recursos que son tan necesarios y puede ocasionar muchos problemas, y puedes perder más tiempo tratando de corregirlo. Te recomendamos mejor mirar otras opciones o tener dual boot.

Esto es lo que te explicare el día de hoy.

Introducción

LAMP hace referencia a un grupo de diferentes programas de código abierto que típicamente son instalados en conjunto, con el objetivo de habilitar a un servidor como prestador de los servicios de páginas web dinámicas. De hecho, este término es el acrónimo de:
– Linux
– Apache
– MySQL
– PHP.

En esta guía, instalaremos LAMP con PHPMyAdmin en un Subsytem Ubuntu 18.04.

Instalar el subsistema de Windows para Linux

Antes de instalar cualquier distribución de Linux para WSL, debe asegurarse de que la función opcional “Subsistema de Windows para Linux” esté habilitada:

– Abra PowerShell como administrador y ejecute:

$ Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

– Reiniciamos la computadora para guardar los cambios.
– Ahora vamos a la Microsoft Store y buscamos Ubuntu

Lo instalamos y después buscamos nuestra distro favorita, en este caso Ubuntu 18.04. Buscamos la Ubuntu en nuestro menú y nos abrirá la Consola.

Instalación de LAMP

Antes de empezar con la instalación debemos tener actualizado el sistema para ello usamos la terminal e ingresamos el siguiente comando:

$ sudo apt update && sudo apt upgrade

Como éste es un comando sudo, estas operaciones son ejecutadas con los privilegios de superusuario. Te preguntará por la contraseña de tu cuenta regular para verificar tus intenciones.

Paso 1: Instalar Servidor HTTP Apache

El servidor web Apache es uno de los más populares en el mundo. Se encuentra muy bien documentado.

$ sudo apt install apache2 apache2-utils

apt te informará cuáles paquetes se instalarán y cuánto espacio en disco será requerido. Digita “Y” y después “Enter” para continuar, así, la instalación procederá.

Ahora debemos añadir 2 lineas al archivo /etc/apache2/apache2.conf:

$ sudo nano /etc/apache2/apache2.conf

Las añadimos al final:

Servername localhost
AcceptFilter http none

Reiniciamos Apache:

$ /etc/init.d/apache2 restart

Ajuste del cortafuegos para permitir el tráfico web

Para permitir el tráfico de entrada HTTP y HTTPS para este perfil, ingresamos el siguiente comando:

$ sudo ufw allow in "Apache Full"

Una vez que se complete la instalación, ingrese la dirección IP pública en su navegador 127.0.0.1 o localhost. Debería ver la página web predeterminada de Apache como se muestra a continuación:

Si viste esta página, entonces tu servidor web se encuentra instalado correctamente y es accesible a través del cortafuegos.

Paso 2: Instalar MySQL

Ejecute el siguiente comando en la terminal para instalar MYSQL:

$ sudo apt install mysql-server

Aquí es donde tuvimos problemas en el post anterior y en este no es la excepción y es un poco más complicado, casí que no encuentro una solución ya que si ingresamos el código como en el anterior para iniciar sesión nos da un error en ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2). lo que debemos hacer es ejecutar los siguientes comandos.

$ sudo /etc/init.d/mysql start
$ sudo service mysql start

Ahora ya podemos iniciar sesión en MySql para establecer una contraseña:

$ sudo mysql -u root -p

Pedirá la contraseña del usuario root, dejamos en blanco y damos “ENTER” :o, ahora asignamos una contraseña al usuario root con el siguiente comando:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'tu_contraseña';

NOTA: Cambiar lo que está dentro de las comillas simples ” por tu contraseña, generalmente se usa la contraseña ‘root’ en un servidor local de pruebas pero si vas a usar un servidor de producción ingresa una contraseña segura.

Paso 3: Instalar PHP

Ahora, vamos a instalar PHP, cuya versión predeterminada es PHP 7, y otros módulos para implementaciones web usando el siguiente comando. Ingresamos la letra “S” para confirmar la descarga e instalación de PHP y sus complementos.

$ sudo apt-get install php libapache2-mod-php php-common php-mysql php-gd php-cli

En la mayoría de los casos, desearás modificar la forma mediante la cual Apache sirve archivos cuando un directorio es solicitado. En este momento, si un usuario solicita un directorio del servidor, Apache buscará, en primera instancia, un archivo llamado index.html. Nosotros queremos que el servidor web le dé prioridad a los archivos PHP sobre cualquier otro archivo. Para lo cual haremos que el Apache busque el archivo index.php en primer lugar.

Para lograrlo, digita el siguiente comando para abrir el archivo dir.conf en un editor de texto con privilegios de superusuario:

$ sudo nano /etc/apache2/mods-enabled/dir.conf

Debería verse semejante a esto:

<IfModule mod_dir.c>
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

Y lo modificaremos, poniendo en primer lugar index.php después de la especificación DirectoryIndex, debería verse similar a:

<IfModule mod_dir.c>
    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

Cuando termines, graba y cierra el archivo presionando las teclas “Ctrl + X“. Confirma los cambios presionando “Y“, y a continuación pulsa la tecla “Enter” para verificar el lugar de grabación del archivo.

Una vez que PHP haya sido instalado, será posible probar la configuración de PHP creando una página simple info.php en la raíz del documento del servidor web, ejecutando el siguiente comando:

$ echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

Cuando termines, graba y cierra el archivo.

Reiniciar Apache

$ /etc/init.d/apache2 start

Ahora ya puedes probar si tu servidor web se encuentra habilitado para desplegar correctamente contenido PHP. Para hacerlo, visita una página web específica en tu navegador, necesitarás tu dirección pública de nuevo.

La dirección que deberás visitar es:

http://your_server_ip/info.php || http://localhost/info.php || http://127.0.0.1/info.php

La página que deberías estar viendo debe ser similar la siguiente:

Esta página provee información básica sobre tu servidor, recogida desde la perspectiva de PHP. Es útil cuando necesites hacer algún tipo de seguimiento o para verificar que la configuración deseada ha sido aplicada de manera correcta.

Si pudiste ver esta página en tu navegador, tu PHP está trabajando según lo esperado.

Ahora para poder tener acceso a los archivos de LocalHost para nuestros proyectos debemos hacer un enlace simbólico de carpetas entre Windows y Subsystem Ubuntu, esto ya lo habíamos visto en el anterior articulo para PHPMyAdmin, el de PHPMyAdmin lo haremos después.

Lo que tenemos que hacer es eliminar la carpeta principal de HTML, ubicada en /var/www/, esto lo hacemos con el siguiente comando:

$ sudo rm -r /var/www/html/

Una vez hecho esto debemos crear una carpeta llamada “HTML”, en el “C:”, lo realizamos con el siguiente comando:

$ sudo mkdir /mnt/c/html/

Y ahora creamos el enlace simbolico para nuestra carpeta:

$ sudo ln -s /mnt/c/html /var/www/

Paso 4: Instalar PHPmyAdmin

Ahora, vamos a instalar phpMyAdmin con el fin de administrar bases de datos MySQL / MariaDB desde un navegador web, para ello vamos a ejecutar el siguiente comando:

$ sudo apt install phpmyadmin

Importante: Durante la instalación preguntará para qué servidor web configurar, elegir apache2 con “Espacio” y continuar (para navegar entre las opciones usar la tecla “TAB“, para continuar solo da “ENTER“).

Ahora nos preguntará si queremos configurar la base de datos para phpMyAdmin con dbconfig-common y contestamos que Sí.

En el siguiente paso se nos pregunta por la contraseña del usuario root de MySQL. Esta contraseña ya la configuramos anteriormente.

Al final creamos un enlace simbólico de la carpeta de phpmyadmin para poder acceder en el mismo, esto lo hacemos en la siguiente ruta /var/www/html:

$ sudo ln -s /usr/share/phpmyadmin /var/www/html

Entonces podemos ingresar a phpmyadmin desde la siguiente ruta en el navegador: http://localhost/phpmyadmin el usuario es “root” y la contraseña es la que se configuró anteriormente.

Ahora, necesitamos activar el archivo .htaccess, para poder configurar nuestro sitio, para activarlo vamos a ejecutar el siguiente comando, seguido con reiniciar el apache:

$ a2enmod rewrite
$ sudo systemctl restart apache2

Para algunos programador, que utilizan los Short Codes de php <? y ?>, estos vienen desactivados por defecto para activarlos hay que editar nuestro archivo php.ini,

La ubicación la encontramos en el info.php que creamos anteriormente.

Para editarlo utilizamos el siguiente comando:

$ sudo nano /etc/php/7.2/apache2/php.ini

Buscamos el la siguiente linea:

short_open_tag=Off

Y la cambiamos por:

short_open_tag=On

O esta puede estar comentada con un “;“, simplemente lo eliminanos

;short_open_tag = On

Listo, reiniciar apache:

$ sudo systemctl restart apache2

¡Genial! Ya tenemos un servidor funcional.

]]>
https://www.quecodigo.com/como-instalar-lamp-en-subsytem-ubuntu-de-windows-10/feed/ 0
(Guía) ¿Cómo instalar LAMP en Ubuntu 18 o más?https://www.quecodigo.com/guia-como-instalar-lamp-en-ubuntu-18-o-mas/ https://www.quecodigo.com/guia-como-instalar-lamp-en-ubuntu-18-o-mas/#disqus_thread Mon, 02 Mar 2020 19:00:19 +0000 https://www.quecodigo.com/?p=4156 Se que hay muchos tutoriales en los cuales enseñan esto, pero hace poco volví a instalar Ubuntu ya en su ultima versión estable 18.04, 18.10 y su actualización a 19.04, yo siempre seguía los tutoriales de Digital Ocean, siempre mantienen un tutorial actualizado con cada una de las distros que sale.

Pero en esta ocasión me fallo!! :(, el programa me lanzaba un error al instalar PHPMyAdmin otras veces con el PHP, y me toco batallar mucho para poder encontrar la solución más adecuada y que quedara 100% funcional.

Por eso decidí dejar mi guía completa, para que puedan instalar su servidor de manera rápida y sin tanto problema.

Introducción

LAMP hace referencia a un grupo de diferentes programas de código abierto que típicamente son instalados en conjunto, con el objetivo de habilitar a un servidor como prestador de los servicios de páginas web dinámicas. De hecho, este término es el acrónimo de:
– Linux
– Apache
– MySQL
– PHP.

En esta guía, instalaremos LAMP con PHPMyAdmin en un servidor Linux 18.04.

Instalación

Antes de empezar con la instalación debemos tener actualizado el sistema para ello usamos la terminal e ingresamos el siguiente comando:

$ sudo apt update && sudo apt upgrade

Como éste es un comando sudo, estas operaciones son ejecutadas con los privilegios de superusuario. Te preguntará por la contraseña de tu cuenta regular para verificar tus intenciones.

Paso 1: Instalar Servidor HTTP Apache

El servidor web Apache es uno de los más populares en el mundo. Se encuentra muy bien documentado.

$ sudo apt install apache2 apache2-utils

apt te informará cuáles paquetes se instalarán y cuánto espacio en disco será requerido. Digita “Y” y después “Enter” para continuar, así, la instalación procederá.

Ajuste del cortafuegos para permitir el tráfico web

Para permitir el tráfico de entrada HTTP y HTTPS para este perfil, ingresamos el siguiente comando:

$ sudo ufw allow in "Apache Full"

Una vez que se complete la instalación, ingrese la dirección IP pública en su navegador 127.0.0.1 o localhost. Debería ver la página web predeterminada de Apache como se muestra a continuación:

Si viste esta página, entonces tu servidor web se encuentra instalado correctamente y es accesible a través del cortafuegos.

Paso 2: Instalar MySQL

Ejecute el siguiente comando en la terminal para instalar MYSQL:

$ sudo apt install mysql-server

Aquí es donde tuve varios problemas.

Ahora con el comando sudo mysql_secure_installation asignará una contraseña al usuario root, pero… ¡esto no funciona!. Si accedemos al comando sin ser superusuario con: mysql_secure_installation pedirá la contraseña del usuario root pero nunca podremos acceder por que no hay una contraseña asignada.

Para resolver esto hay que crear una contraseña al usuario root accediendo al servidor mysql con el siguiente comando:

$ sudo mysql -u root -p

Pedirá la contraseña del usuario root, dejamos en blanco y damos “ENTER” :o, ahora asignamos una contraseña al usuario root con el siguiente comando:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'tu_contraseña';

NOTA: Cambiar lo que está dentro de las comillas simples ” por tu contraseña, generalmente se usa la contraseña ‘root’ en un servidor local de pruebas pero si vas a usar un servidor de producción ingresa una contraseña segura.

Paso 3: Instalar PHP

Ahora, vamos a instalar PHP, cuya versión predeterminada es PHP 7, y otros módulos para implementaciones web usando el siguiente comando. Ingresamos la letra “S” para confirmar la descarga e instalación de PHP y sus complementos.

$ sudo apt-get install php libapache2-mod-php php-common php-mysql php-gd php-cli

En la mayoría de los casos, desearás modificar la forma mediante la cual Apache sirve archivos cuando un directorio es solicitado. En este momento, si un usuario solicita un directorio del servidor, Apache buscará, en primera instancia, un archivo llamado index.html. Nosotros queremos que el servidor web le dé prioridad a los archivos PHP sobre cualquier otro archivo. Para lo cual haremos que el Apache busque el archivo index.php en primer lugar.

Para lograrlo, digita el siguiente comando para abrir el archivo dir.conf en un editor de texto con privilegios de superusuario:

$ sudo nano /etc/apache2/mods-enabled/dir.conf

Debería verse semejante a esto:

<IfModule mod_dir.c>
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

Y lo modificaremos, poniendo en primer lugar index.php después de la especificación DirectoryIndex, debería verse similar a:

<IfModule mod_dir.c>
    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

Cuando termines, graba y cierra el archivo presionando las teclas “Ctrl + X“. Confirma los cambios presionando “Y“, y a continuación pulsa la tecla “Enter” para verificar el lugar de grabación del archivo.

Una vez que PHP haya sido instalado, será posible probar la configuración de PHP creando una página simple info.php en la raíz del documento del servidor web, ejecutando el siguiente comando:

$ echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

Cuando termines, graba y cierra el archivo.

Reiniciar Apache

$ sudo systemctl restart apache2

Ahora ya puedes probar si tu servidor web se encuentra habilitado para desplegar correctamente contenido PHP. Para hacerlo, visita una página web específica en tu navegador, necesitarás tu dirección pública de nuevo.

La dirección que deberás visitar es:

http://your_server_ip/info.php || http://localhost/info.php || http://127.0.0.1/info.php

La página que deberías estar viendo debe ser similar la siguiente:

Esta página provee información básica sobre tu servidor, recogida desde la perspectiva de PHP. Es útil cuando necesites hacer algún tipo de seguimiento o para verificar que la configuración deseada ha sido aplicada de manera correcta.

Si pudiste ver esta página en tu navegador, tu PHP está trabajando según lo esperado.

Instalar el Driver PDO

Si tienes aplicaciones que usan PDO de PHP para conectar a MYSQL darán el siguiente error: could not find driver, pues el componente PDO no está instalado, para ello debemos instalar con el siguiente comando:

$ sudo apt install php7.3-mysql

A continuación, deberá asegurarse de que el módulo esté habilitado:

$ sudo phpenmod pdo_mysql

Listo, reiniciar apache:

$ sudo systemctl restart apache2

Ahora podemos observar que en nuestro archivo info.php en la información de PDO hay lo siguiente:

Paso 4: Instalar PHPmyAdmin

Ahora, vamos a instalar phpMyAdmin con el fin de administrar bases de datos MySQL / MariaDB desde un navegador web, para ello vamos a ejecutar el siguiente comando:

$ sudo apt install phpmyadmin

Si por alguna razón este comando nos da error y que no encuentra el paquete, instalamos la siguiente ruta:

$ sudo add-apt-repository ppa:phpmyadmin/ppa
$ sudo apt update
$ sudo apt install phpmyadmin

Ayuda externa https://mecazero.com/instalando-lamp-y-phpmyadmin-en-ubuntu-19-10-eoan-ermite/

IMPORTANTE: Durante la instalación preguntará para qué servidor web configurar, elegir apache2 con “Espacio” y continuar (para navegar entre las opciones usar la tecla “TAB“, para continuar solo da “ENTER“).

Ahora nos preguntará si queremos configurar la base de datos para phpMyAdmin con dbconfig-common y contestamos que Sí.

En el siguiente paso se nos pregunta por la contraseña del usuario root de MySQL. Esta contraseña ya la configuramos anteriormente.

Al final creamos un enlace simbólico de la carpeta de phpmyadmin para poder acceder en el mismo, esto lo hacemos en la siguiente ruta /var/www/html:

$ sudo ln -s /usr/share/phpmyadmin /var/www/html

ntonces podemos ingresar a phpmyadmin desde la siguiente ruta en el navegador: http://localhost/phpmyadmin el usuario es “root” y la contraseña es la que se configuró anteriormente.

Ahora, solo nos falta dar permisos de escritura a nuestra carpeta HTML, para poder poner nuestros archivos, para ello vamos a ejecutar el siguiente comando:

$ sudo chown Nuestro_usuario /var/www/html
$ sudo chmod 777 /var/www/html
$ sudo chown -R www-data:www-data /var/www/html

Ahora, necesitamos activar el archivo .htaccess, para poder configurar nuestro sitio, para activarlo vamos a ejecutar el siguiente comando, seguido con reiniciar el apache:

$ sudo a2enmod rewrite
$ sudo systemctl restart apache2

Para algunos programador, que utilizan los Short Codes de php <? y ?>, estos vienen desactivados por defecto para activarlos hay que editar nuestro archivo php.ini,

La ubicación la encontramos en el info.php que creamos anteriormente

Para editarlo utilizamos el siguiente comando:

$ sudo nano /etc/php/7.3/apache2/php.ini

Buscamos el la siguiente linea:

short_open_tag=Off

Y la cambiamos por:

short_open_tag=On

O esta puede estar comentada con un “;“, simplemente lo eliminanos

;short_open_tag = On

Listo, reiniciar apache:

$ sudo systemctl restart apache2

¡Genia!

Ya tenemos nuestro servidor completamente funcional.

Fuentes:
Digital Ocean
Solo Linux
InfinitUbuntu
Solvetic
JuanchoRua

Errores posibles:
No activa correctamente .htaccess: Solución
Error en PHPMyAdmin en sql.lib.php: Solución
Error en PHPMyAdmin en Warning in ./libraries/plugin_interface.lib.php#532: Solución
Nota: Fijarse en el numero de linea, no siempre son iguales.

]]>
https://www.quecodigo.com/guia-como-instalar-lamp-en-ubuntu-18-o-mas/feed/ 0
¿Qué es un servidor web o hosting?https://www.quecodigo.com/servidor-web-o-hosting/ https://www.quecodigo.com/servidor-web-o-hosting/#disqus_thread Wed, 26 Feb 2020 14:00:21 +0000 https://www.quecodigo.com/?p=4158 Un servidor web o hosting es un servicio que se ofrece en Internet para tener alojado un sitio web y su información; para que aparezca 24/7. Sin embargo, un hosting no solo sirve para alojar un sitio web, sino también para hospedar todo tipo de información, como pueden ser aplicaciones, correos, archivos, bases de datos, videojuegos, entre otros.

Si vamos a confiar toda esta información a un proveedor externo que nos ofrezca estos servicios, hay que saber elegir que es lo que necesitamos para no entrar en sobrecostos innecesarios o para no perder información valiosa de la web.

¿Servidor web o hosting?

Hosting Compartido (Shared Hosting): Es el servicio en el cual compartimos las funcionalidades y el hardware con otras personas. Son servicios muy económicos porque se compensa costo con volumen de clientes por servidor. No es un servicio fácilmente escalable y tiene planes prestablecidos generados por la empresa prestadora del servicio.

Nosotros, te recomendamos dos hostings:

Cloud Hosting: Es la nueva tecnología que reemplaza el modelo tradicional de hosting compartido. Este modelo tiene asignación dedicada de hardware por lo cual el cliente no se afecta por malos “vecinos”. Es una tecnología que si permite escalabilidad.

DigitalOcean – The developer cloud

Hosting Dedicado: El cliente no comparte el servicio, ni los recursos de hardware con nadie más. Recomendado cuando al cliente le preocupa la seguridad y cuando requiere un mejor nivel de servicio. Permite escalabilidad.

Conclusiones

En todos los casos es bueno tener un pequeño conocimiento técnico para saber lo que estamos comprando. Una mala decisión puede afectarnos el rendimiento o la seguridad de nuestra página web o, simplemente, hacer que esta no funcione.

]]>
https://www.quecodigo.com/servidor-web-o-hosting/feed/ 0
¿Necesito una página si tengo redes sociales?https://www.quecodigo.com/necesito-una-pagina/ https://www.quecodigo.com/necesito-una-pagina/#disqus_thread Tue, 18 Feb 2020 20:00:59 +0000 https://www.quecodigo.com/?p=4155 Esta es una pregunta bastante común a la cual estamos constantemente respondiendo, por lo cual, queremos aclarar todas las dudas cuando nos referimos a la presencia en Internet. ¿Necesito una página web? ¿Qué beneficios puede traer? La verdad, para hacer una primera respuesta vagamente, tanto una página web como las redes sociales son importantes y ninguna sustituye la otra.

Uno de los errores que veo en las estrategias digitales de Marketing es sólo estar presente en las Redes Sociales. Existe una serie de clientes que nos dicen: “Sólo queremos estar en Facebook, no necesitamos nada en nuestra página web, está bien como está“. Esta percepción es por el auge que han tenido las Redes Sociales con sus estadísticas impresionantes en materiales virales, el número de usuarios y las cantidades billonarias en las que se compran y venden las empresas y sus acciones.

Pero no todo es tan bueno con ellas, puesto que muchas veces tenemos necesidades puntuales o queremos medir y automatizar procesos de venta para poder generar un mayor impacto en las personas que podemos alcanzar como posibles clientes.

¿Necesito una página web?

Es cierto que no todas las empresas necesitan una página web. En todos los casos no es necesario, pero depende de las categorías y objetivos de cada uno de ellas.

Normalmente, cuando solo planeas vender por WhatsApp a clientes locales o de tu sector, sería mejor enfocarte en redes sociales, pero cuando planeas generar una expansión que pueda abarcar más terreno en tu ciudad, o incluso, poder conectar con otros mercados, es mejor tener una página web propia donde se tenga control total del contenido.

Con varios clientes nos hemos dado cuenta que el mayor problema de las redes sociales es que el contenido, técnicamente, no es tuyo, pues todo lo que publicas -en la mayoría de casos- debe acoplarse con las políticas de la red social a la cual estás publicando.

Además, tener una página web no limita a no tener redes sociales. Lo ideal siempre es combinar ambas para generar un mayor alcance como marca y con buenas estratégias de incrementar la cantidad de conversiones finales.

¿Cuáles son sus diferencias?

Como mencionaba anteriormente, es mejor tener presencia en ambas -dependiendo de los objetivos- para así lograr tener un mayor impacto sobre los potenciales clientes, pero esto te lo quisiera detallar con lo siguiente:

  • Lo que publicas en las Redes Sociales estará disponible dentro de esa red y al ser un sitio tan concurrido este pronto pasará al olvido pero si publicas en el blog de tu Sitio Web estará disponible en los resultados de búsqueda de Google.
  • Con las Redes Sociales puedes tener mayor interacción y contacto con los usuarios; con el Sitio Web podrás convertir esos usuarios en potenciales clientes.
  • Con el Sitio web puedes dar a conocer la información del servicio o producto de tu empresa, dando así credibilidad y confianza… mientras que con las redes sociales podrás dar mayor difusión a tu información.
  • En las Redes Sociales puedes publicar contenido pero debes seguir ciertas reglas; con tu Sitio Web tendrás todo el control sobre tu página y tu contenido.
Tanto las redes sociales como tu propia página web son indispensables para tu empresa con una correcta aplicación de estrategias.

Como ves ambas son indispensables, y su real beneficio vendrá de la correcta aplicación de estrategias, planificación y uso de estas herramientas.

Incluso, dentro de tu propio sitio web podrás implementar muchos métodos de pago que pueden ayudar a que tu empresa crezca alcanzando clientes que antes tenían esa limitación al no contar con muchas opciones.

Como bien lo menciona RD Station en su artículo: “Por qué tu empresa necesita de un sitio web para sobrevivir en el mercado”. Las empresas no deberían aplazar tanto su proceso de migrar a entornos digitales propios donde puedan tener un control total y logren generar un impacto diferente sobre sus clientes y prospectos.

¿Sabías qué…?

Todo lo que publicas en Facebook en teoría le pertenece a Facebook. Claro está si es la primera ves que lo publicas. Si lo has publicado antes en otros lados llevas las de ganar con esta regla. Así que si sólo publicas en Facebook y algún día quieres recuperar tu material y publicarlo en otros lados, cabe la posibilidad de que legalmente no lo puedas hacer. Imagina todo el esfuerzo que es generar contenidos para regalárselo a otros.

Todo lo que construyen alrededor de su cuenta en Twitter (“followers”) y Fan Pages de Facebook (“me gusta”) NO pertenece a su cliente, pertenece a las redes sociales. La información que publican en redes sociales es suya, pero también “pertenece” a las redes sociales, pues al aceptar crear una cuenta en ellas, están otorgándoles una licencia amplísima para usar la información como ellos quieran y cuando ellos quieran.

Conclusiones

Necesito una página si quiero ampliar mis estrategias de crecimiento podría ser la lección final. Recuerda que hay muchas empresas compitiendo por un lugar allí fuera por lo cual es importante construir una buena imagen de marca respaldada de mucha confianza.

¿Haz tenido página web alguna vez? ¿Tuviste una mala experiencia? Cuéntanos en los comentarios cuál ha sido tu proceso con respecto a esto.

]]>
https://www.quecodigo.com/necesito-una-pagina/feed/ 0
Github ahora deja tener repositorios gratishttps://www.quecodigo.com/github-ahora-deja-tener-repositorios-gratis/ https://www.quecodigo.com/github-ahora-deja-tener-repositorios-gratis/#disqus_thread Wed, 12 Feb 2020 21:00:00 +0000 https://www.quecodigo.com/?p=4151 Si eres usuario de GitHub Free y usabas GitLab por sus repositorios privados gratuitos.. !Esta noticia es para ti!

GitHub siempre ofrecía cuentas gratuitas, pero la advertencia era que su código tenía que ser público. Para obtener repositorios privados, tenías que pagar. A partir de hoy, esa limitación se ha ido. Los usuarios de GitHub gratis ahora obtienen proyectos privados ilimitados con hasta tres colaboradores.

Seguimos con esa pequeña limitación, pero para proyectos pequeños es un gran avance.

Esto se siente como un signo de buena voluntad en nombre de Microsoft, que cerró su adquisición de GitHub en octubre pasado, con el ex CEO de Xamarin, Nat Friedman, asumiendo el cargo de CEO de GitHub.

Algunos desarrolladores estaban bastante nerviosos por la adquisición (aunque parece que la mayoría lo han aceptado). También es razonable suponer que el modelo de GitHub para monetizar el servicio es un poco diferente al de Microsoft.

Microsoft no necesita tratar de obtener dinero de equipos pequeños, no es de donde proviene la mayor parte de sus ingresos. En cambio, la compañía está más interesada en lograr que las grandes empresas usen el servicio. 

El anuncio de repositorios privados gratuitos probablemente tomó a algunos de los competidores de GitHub por sorpresa, pero esto es lo que escuchamos del CEO de GitLab.

GitHub anunció hoy el lanzamiento de repositorios privados gratuitos con hasta tres colaboradores. GitLab ha ofrecido colaboradores ilimitados en repositorios privados desde el principio. Creemos que Microsoft se está enfocando más en generar ingresos con Azure y menos en cobrar por el software DevOps. En GitLab, creemos en un futuro de múltiples nubes donde las organizaciones usan múltiples plataformas de nube pública.

Sid Sijbrandij.
]]>
https://www.quecodigo.com/github-ahora-deja-tener-repositorios-gratis/feed/ 0
Crear notificaciones web HTML con JavaScripthttps://www.quecodigo.com/crear-notificaciones-web-html-con-javascript/ https://www.quecodigo.com/crear-notificaciones-web-html-con-javascript/#disqus_thread Sat, 08 Feb 2020 18:00:10 +0000 https://www.quecodigo.com/?p=4150 En esta ocasión quería llevar un tema que hace mucho realicé y que por alguna razón en su momento encontré muy poca información.

Estamos hablando de las típicas Notificaciones de escritorio, últimamente ya toda aplicación tiene estas notificaciones de escritorio, más que todo las vemos en la aplicación de WhatsApp Web.

Para implementar esta API en nuestro sitio web, primero tenemos que conocer cuales navegadores soportan esta característica y en cuales versiones del navegador podemos usarlo. En este sentido contamos con Caniuse.

Al ser esta característica propia de JavaScript no necesitamos incluir ninguna librería.

Ahora vamos a conocer cómo implementarlo con pocas líneas de código.

Primeros pasos de la implementación.

Primero debemos verificar si el navegador del usuario soporta esta característica con una simple condicional podemos saberlo.

if (!("Notification" in window)) {
    alert("This browser does not support desktop notification");
}

Ahora que conocemos que es soportado por el navegador, procedemos a solicitar permiso al usuario para enviarle la notificación. Es muy importante este paso, pues sin la autorización del usuario no podemos hacer uso de las notificaciones.

if (Notification.permission !== 'denied') {
    Notification.requestPermission(function (permission) {
        // Acción si el usuario acepta.
    });
}

Ya vimos como solicitamos permisos al usuario, y dentro de este vimos una condicional que pregunta si el usuario no ha negado la solicitud, ahora si el usuario la acepta se haría de la siguiente manera.

if (Notification.permission === "granted") {
    // Si está bien vamos a crear una notificación.
}

Las notificaciones son un objeto en JavaScript bajo el nombre “notification”, por lo tanto, inicializamos el objeto, utilizando la sentencia de declaración “new” y como el mismo tiene varios métodos, es recomendable inicializar el objeto cargándolo a una variable de referencia para hacer uso, de una forma estructurada.

// Vamos a ver si ya se han concedido permisos de notificación
if (Notification.permission === "granted") {
    // Si está bien vamos a crear una notificación
    // Primero vamos a crear una variables las 
    // cuales forman nuestra norificación
    var body = "Hola";
    var icon = "https://www.quecodigo.com/img/qc_logo.jpg";
    var title = "Notificación";
    var options = {
        body: body,      //El texto o resumen de lo que deseamos notificar.
        icon: icon,      //El URL de una imágen para usarla como icono.
        lang: "ES",      //El idioma utilizado en la notificación.
        tag: 'notify',   //Un ID para el elemento para hacer get/set de ser necesario.
        dir: 'auto',     // izquierda o derecha (auto).
        renotify: "true" //Se puede volver a usar la notificación, default: false.
    }
    // Creamos la notificación con las opciones que pusimos arriba.
    var notification = new Notification(title,options);
    // Cerramos la notificación.
    setTimeout(notification.close.bind(notification), 5000);
}

Como vimos al objeto “notification” le pasamos parámetros, en este caso dos: el primero es el título de nuestra notificación que será presentada al usuario y el segundo es otro objeto que contiene las propiedades con las cuales personalizamos nuestra notificación.

El método de notificaciones recibe los siguientes parámetros.

body: Contenido de la notificación.

icon: Url del icono (imagen).

tag: ID de la notificación, como nuestro identificador.

dir: Dirección del texto (izquierda, derecha o auto).

sound: Sonido al lanzar la notificación [No soportada]

Puedes leer más en: Notification#Propiedades_de_Instancia

Las notificaciones de escritorio aceptan los siguientes eventos.

onclick
Al hacer click dentro de la notificación, podemos determinar que acción tomar, desde alertar al usuario hasta redirigirlo a una url.

onerror
Este evento nos permite realizar una o varias acciones en caso de que se produzca un error al intentar notificar al usuario. Por ejemplo, que algún parámetro no sea correcto o error de sintaxis al programar.

onshow
Permite realizar una acción inmediatamente se muestre la notificación al usuario.

onclose
OnClose nos permite realizar una acción cuando el usuario haga click sobre la x para cerrar la notificación. Por ejemplo, presentar otra notificación.

Aquí les dejo un código completo, personalizado con sonido.

<html>
    <head>
        <meta charset="UTF-8">
        <title>Notificaciones JavaScript</title>
        <script charset="UTF-8">
        function notifyMe() {
            //Vamos a comprobar si el navegador es compatible con las notificaciones
            if (!("Notification" in window)) {
                alert("This browser does not support desktop notification");
            }
            // Vamos a ver si ya se han concedido permisos de notificación
            else if (Notification.permission === "granted") {
                // Si está bien vamos a crear una notificación
                var body = "Hola";
                var icon = "https://www.quecodigo.com/img/qc_logo.jpg";
                var title = "Notificación";
                var options = {
                    body: body,
                    icon: icon,
                    lang: "ES",
                    renotify: "true"
                }
                var notification = new Notification(title,options);
                var audio = new Audio('https://www.quecodigo.com/sounds/notificacion.mp3');
                audio.play();
                notification.onclick = function () {
                    //action
                };
                setTimeout(notification.close.bind(notification), 5000);
            }
            // De lo contrario, tenemos que pedir permiso al usuario
            else if (Notification.permission !== 'denied') {
                Notification.requestPermission(function (permission) {
                    // Si el usuario acepta, vamos a crear una notificación
                    if (permission === "granted") {
                        var notification = new Notification("Gracias, Ahora podras recibir notifiaciones de nuestra página");
                    }
                });
            }
            // Por fin, si el usuario ha denegado notificaciones, y usted
            // Quiere ser respetuoso no hay necesidad de preocuparse más sobre ellos.
        }
        </script>
    </head>
    <body>
        <button onclick="notifyMe()">Notificame!</button>
    </body>
</html>

Esperamos te animes a realizar tu propio notificar.

¿Tienes alguna pregunta? Escríbenos en los comentarios.

]]>
https://www.quecodigo.com/crear-notificaciones-web-html-con-javascript/feed/ 0
Hacker se infiltra en routers e instala parches de seguridadhttps://www.quecodigo.com/hacker-se-infiltra-en-routers/ https://www.quecodigo.com/hacker-se-infiltra-en-routers/#disqus_thread Thu, 30 Jan 2020 16:00:18 +0000 https://www.quecodigo.com/?p=4149 ¿Sabías que un hacker se infiltra en routers del mundo? Aunque la cultura se ha encargado de que la palabra “hacker” sea relacionada con actos delictivos, infiltraciones y en contra de la seguridad, aunque muchas veces los hackers se encuentran del otro lado del espectro, como en este caso.

Un hacker ruso, llamado Alexey en la red, ha encontrado un pasatiempo muy interesante, infiltrarse en routers vulnerables de todo el mundo, aunque no para espiar a sus usuarios o infectar computadoras, sino para aplicarles los parches de seguridad lanzados por las mismas empresas que eviten que otros hackers puedan acceder.

Hace un par de meses, por la red circuló la noticia de una vulnerabilidad de los routers del fabricante MikroTik que entre otras cosas permitía que invitados no deseados accedieran a las computadoras conectadas a través del router. Una vez adentro, los infiltrados podrían controlar la PC u obtener toda la información disponible dentro de el.

Hacker se infiltra en routers…

El fabricante lanzó un parche de seguridad al poco tiempo de conocerse este fallo, pero muchas personas no lo han instalado, ya sea por falta de conocimiento o desinformación, por lo que Alexey ha decidido hacerlo por ellos y ayudarles en su proceso.

Alexey ha hablado de su hazaña en un foro ruso y ha mencionado que ha accedido a más de 100,000 routers de MikroTik con el único fin de parcharlos, agregando también una serie de reglas para bloquear futuros accesos indebidos, dejando el mensaje.

Tu router tenía una vulnerabilidad y la he arreglado.

Alexey.

El hacker ruso menciona que al menos 50 personas lo han contactado, algunos de ellos le han reclamado por haberse infiltrado en sus routers, pero otros cuantos le han agradecido. También indica que ha entrado en muchos routers ya infectados por que los hackers que entraron antes no se molestaron en “cerrar la puerta” para que otros no pudieran entrar, por lo que era más fácil acceder a estos.

Hacker se intrilfra en routers e instala parches de seguridad para prevenir que otros atacantes accedan a ellos.

Por supuesto, hay una pregunta en la cabeza de todos: ¿Es esto un acto de vandalismo? Si bien, Alexey jura no haber infectado ningún router, técnicamente acceder a ellos sin permiso es una ilegalidad, sin importar las razones.

Conclusiones

La seguridad es algo que todos debemos tomarnos en cuenta al máximo posible, puesto que están expuestos nuestros datos personales y financieros en muchos de los casos, por lo cual puede ser algo complicado.

Con todo esto: ¿Crees que fue bien realizado el acto? ¿Alguna vez has sufrido algún ataque de seguridad? Escríbenos en los comentarios tus experiencias.

]]>
https://www.quecodigo.com/hacker-se-infiltra-en-routers/feed/ 0
Los 3 lenguajes de programación más usadoshttps://www.quecodigo.com/los-3-lenguajes-de-programacion-mas-usados/ https://www.quecodigo.com/los-3-lenguajes-de-programacion-mas-usados/#disqus_thread Fri, 24 Jan 2020 22:00:30 +0000 https://www.quecodigo.com/?p=4147 Todos los años Github presenta, en su Octoverse, las estadísticas generales sobre la programación a nivel global. En este caso te traemos los 3 lenguajes de programación más usados en todo el mundo, pero dentro del mismo se presentan datos sobre los lenguajes, las tecnologías, proyectos y empresas, entre otras cosas, por un ránking el cual mide el impacto generado a nivel de uso.
Resultados Octoverse

En el gráfico anterior podemos mirar un poco el impacto generado por cada uno de los lenguajes que hacen parte de los 10 primeros más usados, pero en este caso nos vamos a enfocar los 3 primeros para profundizar un poco en ellos.

Los 3 lenguajes de programación más usados

Dentro de los tres primeros lugares observamos lenguajes que han estado allí durante mucho tiempo generando grandes aportes a toda la comunidad. Estos lenguajes se han mantenido firmes entre los programadores y se caracterizan por ser de buenas capacidades.

  1. JavaScript: No es una sorpresa encontrar a JavaScript como el primero en la lista. Este lenguaje que comenzó como un sencillo lenguaje de scripting en el navegador y hasta el día de hoy este permite crear aplicaciones de del lado del servidor, aplicaciones de escritorio, videojuegos, realidad virtual, realidad aumentada e incluso robótica.
  2. Python: Este año ha sido la gran revelación al destronar a Java quedándose así con el segundo lugar. Python a sido constante, y en los últimos años su uso ha estado en crecimiento y cada vez es más solicitado. Además, se caracteriza por ser bastante fácil de leer y que se recomienda cuando apenas se aprende a programar.
  3. Java: El poder de este lenguaje es innegable. Lleva 21 años con nosotros aportando muchísimas funcionalidades. Es usado en aplicaciones corporativas, bancos y grandes empresas. permitiendo crear webs, aplicaciones móviles nativas, realidad virtual, videojuegos y hasta software de escritorio.
JavaScript sigue siendo el líder de la programación.

En las demás posiciones tenemos a PHP, C#, C++, TypeScript, Shell, C y Ruby, respectivamente, obteniendo también algunas sorpresas con algunos de ellos dentro de la lista debido a su crecimiento exponencial en tan poco tiempo.

Vale mencionar que el crecimiento de Python se ha visto en crecimiento por ser bastante fácil de entender, como lo habíamos mencionado, y se perfila como uno de los de mayor crecimiento por encima de muchos otros que tienen más años de experiencia.

Conclusiones

Una de las buenas decisiones, si todavía no sabes programar, es aprender Python por su gran flujo de peticiones a nivel de proyectos que está teniendo. Cada vez es más solicitado dentro de las empresas top a nivel global.

Ya que conoces los 3 lenguajes de programación más usados: ¿Qué te ha parecido el nuevo ránking? De mi parte quedé sorprendido con algunas posiciones, pero me agrada saber que muchos de los lenguajes mejor trabajados siguen allí.

]]>
https://www.quecodigo.com/los-3-lenguajes-de-programacion-mas-usados/feed/ 0
Google+ muere tras error en su APIhttps://www.quecodigo.com/google-muere-tras-error-en-su-api/ https://www.quecodigo.com/google-muere-tras-error-en-su-api/#disqus_thread Tue, 14 Jan 2020 13:00:34 +0000 https://www.quecodigo.com/?p=4115 Google+ muere después de varios años en el mercado. Su lucha por meterse en el mercado de las redes sociales había sido una apuesta que habían hecho, pero el poco éxito de años después no les ayudó a tener el gran impacto planeado.

¿Recuerdan cuando recién salieron al mercado con la intención de destruir a Facebook y, que a pesar de todo, tuvo una enorme acogida en su lanzamiento sobre 2011?

Toda esa primera emoción que generaron se fue desvaneciendo al poco tiempo, y para colmo, hace poco Alphabet Inc., matríz de Google, informó que Google+ muere después de que el medio americano, Wall Street Journal, publicara un artículo sobre “un bug en la API de Google+ había permitido el acceso a los datos de 500 mil usuario (Ingles)” en marzo de este mismo año, pero donde Google decidió no informar al público hasta hoy.

La empresa estadounidense, Google, optó por no revelar la falla por la preocupación que generaría una reacción reguladora, especialmente, a raíz de las críticas contra Facebook por sus fallas de privacidad, según el Wall Street Journal, que inicialmente publicó la noticia.

Por otra parte, Facebook, ha recibido meses de duras críticas por permitir que un desarrollador retirara información de los usuarios y la pasara a una firma política que trabajó en 2016 para la campaña electoral de Donald Trump.

¿Por qué Google+ muere?

En un comunicado publicado en su blog minutos después de que se revelara la noticia, Google dijo que planea cerrar G+ para los consumidores e introducir nuevas herramientas de privacidad que restringen la forma en que los desarrolladores pueden usar la información de productos que van desde el correo electrónico hasta el almacenamiento de archivos.

En el blog, Google dijo que a lo largo de los años han recibido comentarios de que las personas desean comprender mejor cómo controlar los datos que eligen compartir con las aplicaciones en Google+.

Los datos afectados se limitan a campos estáticos y opcionales del perfil de G+, como el nombre, la dirección de correo electrónico, la ocupación, el género y la edad, dijo Google.

El gigante de Internet descubrió la falla en marzo durante una extensa revisión de privacidad y seguridad, señaló Ben Smith, vicepresidente de Ingeniería de Google, en el comunicado. El error fue arreglado de inmediato en aquel momento, agregó.

G+ nunca se popularizó como una red social. Aun así, muchos usuarios técnicamente aún tienen un perfil que contiene información personal. Google lo cerrará durante los próximos 10 meses para los consumidores, pero mantendrá una versión para empresas. Sin embargo, nosotros creemos que en definitiva Google+ muere después de hacer sus últimos intentos con empresas.

La pregunta es, ¿si nadie lo quería, lo querrán las empresas? ¿Obligarán a sus empleados a usarla? ¿O ya no tiene sentido existiendo herramientas como Slack o Microsoft Teams?

Álvaro Felipe, EDteam.

La batalla de las redes sociales finalmente deberá inclinarse por otros lugares, porque Google de alguna manera, con esta noticia, da a entender que saldrá del camino para dejarlo a otros competidores después de su gran fracaso con una plataforma que trataron de “imponerla” a todos sus usuarios.

A pesar de que actualmente tienen otras aplicaciones que están tratando de posicionar, no logran tener un gran éxito entre los consumidores y, con esta noticia, quedan un poco en el “ojo del huracán”.

Conclusiones

Esto nos muestra un poco que cualquier sistema puede ser vulnerable y que nada en Internet está 100% seguro. Anteriormente, hemos hablado sobre el por qué aprender a programar es una necesidad y esto es porque una de las especializaciones es la seguridad informática que se ve bastante bien en un futuro con tantos ataques.

Además, recuerda que dentro de Qué Código tenemos algunos artículos que pueden educarte en cosas básicas para implementar en tu empresa.

¿Qué crees que sucederá con Google en el futuro? ¿Lograrán tener impacto con algún servicio social que destrone a Facebook? Cuéntamos en los comentarios.

]]>
https://www.quecodigo.com/google-muere-tras-error-en-su-api/feed/ 0