miércoles, 21 de agosto de 2019

Wordpress: cómo modificar el texto de copyright y créditos del theme de pie de página o footer

Te encuentras en la necesidad de cambiar el texto que viene por defecto en la parte inferior o pie de página y no sabes ni por dónde cambiarlo, ya que en la parte de personalización del tema no tiene esa opción explícita de modificar el texto clásico "Creado con Wordpress"

Te voy a mostrar cómo cambiar dicho texto utilizando el plugin: "real-time find and replace" y sin necesidad de meternos con el editor de texto ni el css.

Vamos a bajar, instalar y activar el plugin.
Wordpress: cómo modificar el texto de copyright y créditos del theme de pie de página o footer
Wordpress: cómo modificar el texto de copyright y créditos del theme de pie de página o footer 

Wordpress: cómo colocar un enlace externo y que abra en una nueva pestaña en el menú principal

Resulta que necesitas personalizar un elemento, que sea externo, del menú principal de Wordpress y que además se abra en una nueva pestaña.

Para ello, sigue los siguientes pasos.

Ve a la sección de personalización del menú, la cual se encuentra en Apariencia / Menús.
Para personalizar el menú con Wordpress, hay que ir a la sección "Apariencia" y luego a "Menús"
Para personalizar el menú con Wordpress, hay que ir a la sección "Apariencia" y luego a "Menús"

Mejores frases del libro biografía de Steve Jobs por Walter Isaacson

Me encuentro leyendo el libro biografía de Steve Jobs y estas son las mejores frases con las que me he topado hasta ahora:
Mejores frases del libro biografía de Steve Jobs por Walter Isaacson
Mejores frases del libro biografía de Steve Jobs por Walter Isaacson

Infancia

  • Según su padre, era importante darles un buen acabado a las partes traseras de los armarios y las vallas, aunque fueran a quedar ocultas. "Le encantaba hacer bien las cosas. Se preocupaba incluso por las partes que no se podían ver".

viernes, 16 de agosto de 2019

PhpMyAdmin error al restaurar una base de datos de MySQL:Fatal error: Maximum execution time of 300 seconds exceeded in C:\xampp\phpMyAdmin\libraries\classes\Dbi\DbiMysqli.php on line 213

Te encuentras restaurando una base de datos en PhpMyAdmin a partir de un archivo .sql y después de una larga espera te sale el siguiente error:

Fatal error: Maximum execution time of 300 seconds exceeded in C:\xampp\phpMyAdmin\libraries\classes\Dbi\DbiMysqli.php on line 213


PhpMyAdmin MySQL - Fatal error: Maximum execution time of 300 seconds exceeded in C:\xampp\phpMyAdmin\libraries\classes\Dbi\DbiMysqli.php on line 213
PhpMyAdmin MySQL - Fatal error: Maximum execution time of 300 seconds exceeded in C:\xampp\phpMyAdmin\libraries\classes\Dbi\DbiMysqli.php on line 213

La solución radica en ir a la carpeta en donde tienes instalado tu PhpMyAdmin. Típicamente en la siguiente ubicación (para el caso de un Windows 7)

miércoles, 14 de agosto de 2019

Cómo paginar la salida de git status

Resulta que, cuando aplicas este comando, para visualizar los nuevos archivos de tu git:

$ git status

Te muestran un montón de archivos y no puedes ver los primeros archivos, ya que son tantos que tu terminal ya no te los muestra.

Por suerte existe la paginación en git.

Puedes probar con el siguiente comando:

$ git -p status

Para salir de la lista de resultados, simplemente presiona la tecla "q" (de "quit").

Referencias


lunes, 12 de agosto de 2019

Wordpress: cómo dividir el contenido de una entrada con paginación

Digamos que en Wordpress deseas escribir un artículo muy largo, por ejemplo un tutorial, una investigación o un ensayo.

Seguramente te habrás dado cuenta de lo incómodo que puede ser para un visitante mover hacia abajo la rueda del ratón hacia abajo y hacia abajo durante un largo rato.
Wordpress: cómo dividir el contenido de una entrada con paginación
Wordpress: cómo dividir el contenido de una entrada con paginación

Para poder hacer la lectura más fácil y cómoda, Wordpress nos ofrece la posibilidad de dividir un largo contenido de una entrada en varias partes.

Por qué son útiles los comentarios en tu sitio web en Wordpress

En un tutorial de Wordpress que estaba viendo en Youtube, se afirmaba que los comentarios pueden volverse problemáticos debido a que suelen acumularse mucho, hay que revisarlos para su aprobación (si ponen groserías, cosas fuera de lugar, etc.) y luego, posiblemente responder y aprobar su publicación.
Por qué son útiles los comentarios en tu sitio web en Wordpress
Por qué son útiles los comentarios en tu sitio web en Wordpress

De dónde obtener ilustraciones o fotografías libre de derechos de autor (con sus créditos correspondientes)

Hemos visto que una tal compañía "Copytrack", de origen alemán, anda nada más cazando a través de Internet a todo aquel que publique en blogs o sitios web, fotografías reportadas, en su plataforma, como de propiedad intelectual.

Es decir, que si eres típicamente un fotógrafo, vas y te metes y registras a la página de CopyTrack y subes tus fotos que son de  tu autoría, que te pertenezcan, lo que hace Copytrack es buscar en toda la Internet si tus fotos han sido publicadas en algún otro blog o sitio web.

jueves, 8 de agosto de 2019

laravel troubleshooting: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'users' doesn't exist

Esto se debe básicamente a que no se encuentra la tabla especificada, en este caso, la de usuarios `users`.

Prueba a ejecutar el siguiente comando, a través de la consola o terminal dentro de tu Laravel Homestead o servidor web y posicionándote en la carpeta raíz de tu proyecto:

$ php artisan migrate

Lo que hace este comando es crear la base de datos de tu proyecto y más específicamente, la tabla `users`.

Saludos.

miércoles, 7 de agosto de 2019

Cómo eliminar un paquete específico de Laravel usando Composer

Digamos que tienes la necesidad de eliminar un paquete que habías instalado en Laravel utilizando Composer.

Esto rara vez puede ser delicado, ya que luego puede generar errores el composer al momento de actualizar tu proyecto de laravel con $ composer update. Así que te recomiendo respaldar, preferentemente con git.

En fin, primero debes tener a la mano cómo se llama el paquete exactamente (véase "Cómo listar los paquetes instalados en una aplicación de Laravel")

Una vez que tienes el nombre del paquete, procede a eliminar el paquete con el siguiente comando:

$ composer remove vendor/paquete

en donde debes sustituir el nombre del "[vendor]" y el del "[paquete]".

Referencias


https://stackoverflow.com/a/27440198/1883256

🍸

Cómo listar los paquetes instalados en una aplicación de Laravel

¿Deseas obtener una lista de los paquetes que se han instalado en tu aplicación de Laravel?

Para ello debes meterte a tu máquina virtual, típicamente Laravel Homestead, vía consola o terminal.

Debes posicionarte en la carpeta raíz de tu proyecto y ahora sí, aplicar el siguiente comando:

$ composer show -i

Quizás también te interese

Cómo eliminar un paquete específico de Laravel usando Composer

🍷

martes, 6 de agosto de 2019

Cómo insertar más de dos columnas en Wordpress

En el editor de Wordpress estaba yo queriendo introducir tres columnas, para lo cual utilizamos del menú del editor la opción de "columnas" de la sección de elementos de diseño, tal y como se muestra en la siguiente ilustración:


Cómo insertar columnas dentro del editor de Wordpress
Cómo insertar columnas dentro del editor de Wordpress

lunes, 5 de agosto de 2019

Wordpress: ¿Cuál es la diferencia entre una página y una entrada?

¿Cuál es el rol de una página y el de una entrada en Wordpress?

Digamos que tenemos la siguiente estructura para un sitio web hecho con Wordpress.
¿Cuál es la diferencia entre una página y una entrada en Wordpress? - Photo by Web Hosting on Unsplash
¿Cuál es la diferencia entre una página y una entrada en Wordpress? - Photo by Web Hosting on Unsplash

Cómo insertar una imagen junto a un texto o párrafo en Wordpress

¿Te encuentras con la necesidad de poder alinear una imagen junto a un párrafo de texto en Wordpress? Para lograrlo debes hacer lo siguiente:

La opción de "medios y texto" de Wordpress sirve para colocar una imagen, junto a un párrafo de texto.
La opción de "medios y texto" de Wordpress sirve para colocar una imagen, junto a un párrafo de texto.

Cómo evitar que otros que utilizan mailtrack sepan si ya leíste mensajes de correo electrónico

Puede que te sientas incómodo por cualquier razón de que el remitente de un correo electrónico esté al pendiente de si leíste o no su mensaje y a qué hora abriste ese mensaje de correo electrónico que recibiste.
Mailtrack para Google Chrome es una extensión muy utilizada por la gente para rastrear si efectivamente ya leíste los correos que te mandaron, así como la hora a la que los abriste. Si no quieres que te rastreen, entonces instala la extensión que se llama "Email Privacy Protector".
Mailtrack para Google Chrome es una extensión muy utilizada por la gente para rastrear si efectivamente ya leíste los correos que te mandaron, así como la hora a la que los abriste. Si no quieres que te rastreen, entonces instala la extensión que se llama "Email Privacy Protector".

Cómo insertar una imagen integrada junto a un párrafo en Wordpress

Estaba siguiendo un tutorial de Wordpress en donde se mostraba cómo insertar una imagen junto al texto, pero como Yoney tiene su Wordpress en inglés, él seleccionaba la opción de agregar "inline image",  dentro de la sección de "Inline elements".

Insertando una imagen integrada junto a un párrafo en Wordpress.
Insertando una imagen integrada junto a un párrafo en Wordpress.


domingo, 4 de agosto de 2019

Qué significa que una contraseña sea débil

Básicamente una contraseña débil es aquella que puede ser fácilmente adivinada por otra persona.

Por otro lado, a un nivel mayor, significa que puede ser descubierta por sistemas informáticos extremadamente fácil y en pocos segundos.
Qué significa que una contraseña sea débil. Photo by Matthew Brodeur on Unsplash
Qué significa que una contraseña sea débil. Photo by Matthew Brodeur on Unsplash

¿Cómo saber si mi contraseña es lo suficientemente fuerte?

Cada vez más existen sitios web que te alertan, al momento de registrarte como usuario, si tu contraseña es débil, si es medianamente fuerte o si es muy fuerte o robusta.

¿Para qué sirve el documento política de privacidad de los sitios web y aplicaciones en internet en general?

Seguido he escuchado a gente, ajena a profesiones relacionadas con la informática, que siempre quieren exigir su "anuncio de privacidad", como si eso ya asegurara la privacidad y el tratamiento de tus datos.
Reflexión sobre el anuncio de privacidad o política de privacidad. Créditos: Make the open office open to more de unsplash.com. Photo by ROOM on Unsplash
Reflexión sobre el anuncio de privacidad o política de privacidad. Créditos: Photo by ROOM on Unsplash

Sin embargo, por lo que he visto, de nada sirven esos documentos de política de privacidad o, más bien, la gente en general ha malinterpretado para qué sirve un documento de política de privacidad en realidad.

De acuerdo a la Ley General de Protección de datos personales en posesión de sujetos obligados (LGPDPPSO), de la República de los Estados Unidos Mexicanos, en su artículo 3, fracción II, se define al aviso de privacidad como el "Documento a disposición del titular de forma física, electrónica o en cualquier formato generado por el responsable, a partir del momento en el cual se recaben sus datos personales, con el objeto de informarle los propósitos del tratamiento de los mismos;"

Cómo hacer una captura de pantalla en Mac

Casi todo mundo sabe que, para hacer una captura de pantalla en la Mac es por medio del conjunto de teclas: cmd + shift + 4, en donde verás que el puntero de tu mouse te indica que ya puedes marcar una área para la captura de tu pantalla.

En donde la tecla "shift" es aquella que tiene una flecha hacia arriba y que está del lado izquierdo en tu teclado.

Pero hay un mejor conjunto de caracteres que te abre una especie de asistente para realizar una captura de pantalla más personalizada, es decir, poder definir exactamente el área a la que le quieres tomar una captura de pantalla, pero además dicha función te indica el tamaño de la imagen en píxeles.

jueves, 1 de agosto de 2019

Cómo actualizar rápidamente laravel homestead (Windows y Mac)

Actualizar Laravel Homestead en años pasados era un dolor de cabeza. Ahora que lo he hecho miles de veces, ya le he agarrado el modo, tanto para Windows como Mac.

* Para los que usan Windows, les recomiendo ampliamente que utilicen como terminal de comandos a "cmder", para poder seguir sin problemas este tutorial y aplicar los comandos tal cual.

Cmder es una consola de linux o mac en tu Windows ¡pero más intuitiva!

martes, 30 de julio de 2019

Cómo hacer respaldos o copias de seguridad de tu sitio web en Wordpress

El respaldar tu sitio web significa que estás guardando una copia del mismo en una fecha y hora determinadas, de tal forma que si tu sitio web sufre daños o cambios no deseados, simplemente puedes restaurarlo y así recuperar todo tu sitio o que todo vuelva a la normalidad.

Es por eso que se recomienda ampliamente respaldar tu sitio web Wordpress y aquí está un listado del por qué.
Cómo hacer respaldos o copias de seguridad de tu sitio web en Wordpress
Cómo hacer respaldos o copias de seguridad de tu sitio web en Wordpress

lunes, 29 de julio de 2019

Wordpress: ¿Cuál es la diferencia entre categorías y etiquetas?

Cuando hablamos de taxonomía nos referimos principalmente a las entradas (posts). De ahí hay dos maneras de clasificación: las categorías y las etiquetas.

Cada una de ellas tiene una funcionalidad relativamente diferente en donde la diferencia es la funcionalidad que permitirá a los visitantes acceder a contenido mucho más ordenado y fácil de encontrar.

Las categorías permiten agregar más información, especialmente porque Wordpress permite también la creación de subcategorías (anidar más categorías), cosa que no se puede en el caso de las etiquetas, ya que éstas últimas se manejan como elementos únicos.

En México los grandes empresarios no son hombres de verdad, sino parásitos

Qué decepción escuchar en las noticias -alternativas- que, citando asimismo al Dr. Alfredo Jalife, los empresarios mexicanos son unos parásitos.

Es decir, que, para hacer una fortuna, necesitas forzosamente ser corrupto: sobornar, no pagar impuestos, cobrar caro, mandar tu dinero a paraísos fiscales, ser amigo del Poder Judicial, destruir el medio ambiente, etc.

Qué lástima que estos empresarios no han sido hombres de verdad: con principios, que de veras sean fregones para innovar, que hagan su fortuna a pesar de pagar muchos impuestos, de invertir en el cuidado del medio ambiente ... claro, seguramente con sus justas excepciones.

Detrás de un gran hombre, hay una gran mujer

De acuerdo a la filosofía MGTOW y al libro "el arte de tratar a las mujeres" de Arthur Schopenhauer, las mujeres ven al hombre como aquel esclavo que gana dinero y que ellas, su única misión en la vida, es gastarlo.

Habrá que analizar qué tanto influyeron las madres (al igual que sus esposas, hermanas e hijas) de estos corruptos, tanto empresarios como políticos.

Para finalizar


Es hora de que en México surjan hombres y mujeres emprendedores de verdad y no parásitos.

¿Qué nos está diciendo ahora la 4T? Pues que si quieres ser millonario, debes ser realmente fregón para innovar y ganarte todo el dinero que quieras de manera honesta y humanista.

miércoles, 24 de julio de 2019

Mejores frases del libro "El arte de tratar a las mujeres" de Arthur Schopenhauer

Estoy leyendo este libro y estas son las frases que me han parecido más interesantes, si no es que más reveladoras:

El arte de tratar a las mujeres de Arthur Schopenhauer en Amazon MX
El arte de tratar a las mujeres de Arthur Schopenhauer en Amazon MX

* Las mujeres son [...] que desde todo punto de vista es inferior al sexo masculino. Por ello, hay que respetar la debilidad de la mujer. Sin embargo, es extremadamente ridículo profesar veneración a las mujeres. Ello nos rebajaría incluso a los propios ojos de ellas.

No-break ideal para proteger tu computadora, teléfono inalámbrico y el módem para asegurar la continuidad del servicio de Internet cuando se vaya la luz

Seguramente te ha pasado que, cuando se va la luz, muchos aparatos eléctricos importantes dejan de funcionar, tales como el módem para el servicio de Internet,  el DVR, tu teléfono inalámbrico, tus cámaras de seguridad y la TV; y encima si estabas cargando tu celular y la computadora (que siguen con la batería baja) ya te quedas sin poder hacer nada.

martes, 23 de julio de 2019

Mejores canciones de desamor para hombres (no debes hacer caso de las letras).

Viendo ciertos videos relacionados con MGTOW, me he acordado de varias canciones que la verdad les quedan a los hombres que se desviven 🙄 (humillan) por las mujeres.

Sin más preámbulo ¡venga el playlist! 🤣

Playlist pagafanta mangina

* "Si no te tengo a ti" - Hombres G
* "Por volverte a ver" - Aleks Syntek
* "Hasta siempre Bye bye" - Grupo G
* "No podrás" - Cristian Castro
* "Tengo todo, excepto a ti" - Luis Miguel
* "Corazón de piedra" - Grupo Caliente
* "Tú sin mí" - Yenddi
* "No puedo estar sin ti" - Moenia
* "Tu forma de ser" - Alberto y Roberto
* "Háblame de ti" - Banda MS
* "Un hombre normal" - Espinoza Paz
* "Yo quisiera" - Reik. <- a="" canci="" dedicada="" friendzone="" la="" n="" p="">*

Consecuencias

Ahora las siguientes canciones hablan de las consecuencias de terminar mal con una mujer (divorcio, abandono, etc.)

* "Inocente" - Romeo Santos
* "Recordarás que fui yo" - Leny
*

Canciones que reflejan la realidad - hombres maltratados por las mujeres

* "Trucos de mujer" - José Montoro
* "La copa rota" - Jashel
*

Hombres ignorados por las mujeres (en los antros, afroparty, discotecas, bares con música)

*

Quizás también te interese leer:


"El arte de tratar a las mujeres" de Arthur Schopenhauer

Continuará ... vuelve pronto

Mejores frases del libro "Amor líquido" de Zygmunt Bauman

Me encuentro leyendo el libro "amor líquido - Acerca de la fragilidad de los vínculos humanos" de Zygmunt Bauman y estas son las frases que me han parecido interesantes hasta ahora:
Amor líquido de Zygmunt Bauman
Amor líquido de Zygmunt Bauman

Cómo eliminar el paquete cups en Linux Mint

Había decidido eliminar ese paquete, ya que hace que tenga abiertos puertos de más en mi sistema, tales como el 631.

De hecho tú mismo puedes comprobarlo con el siguiente comando:

$ sudo netstat -ltupn

Por lo que la información arrojada son todos los puertos abiertos en los que está "escuchando" tu servidor y que pueden ser sujetos a explotación de vulnerabilidades, por no decir, hackearlo.

y bueno, para eliminarlo, simplemente ejecuta:

$ sudo apt-get remove cups

y luego

$ sudo apt-get autoremove

Reporting issues when using mariadb:latest for evertramos/docker-wordpress-letsencrypt "error establishing a database connection"

I have just solved the "error establishing a database connection" for all of my wordpress sites, just after updating docker by using "yum update" on CentOS 7.

The update coincide with probably a docker-compose restart, which actually upgrades or updates the versions of both Wordpress and MariaDB, due to the "latest" tag.

When I was paying attention to the error logs, I noticed a lot the word "bionic" for MariaDB which was causing lots of errors, such as access denied, connection refused, and so on.

Somehow I visited the MariaDB official docker hub documentation (https://dockerheart.com/_/mariadb) and there I noticed that the latest versions have the "bionic" word in their tags
"bionic", "10-bionic", "10.4.6-bionic", etc.

So I changed the docker-compose.yml where it says
"image: mariadb:latest"
for
"image: mariadb:10.4"

saved and executed

$ sudo docker-compose down -v
$ sudo docker-compose up -d

and the website went back to normal!!!

I also want to mention that with the "10.4.6" I still got trouble.

So this is how I solved it.

domingo, 21 de julio de 2019

bitbucket git clone fatal: Unable to create temporary file 'objects/pack/tmp_pack_XXXXXX': Permission denied

En mi caso me encontraba yo clonando un proyecto a mi computadora local 💻, de Laravel Homestead, utilizando el comando
$ git clone miProyecto.git

Pero me salió el siguiente error:

remote: Counting objects: 100, done.
remote: Compressing objects: 100% (100/100), done.
fatal: Unable to create temporary file '/home/vagrant/code/myLaravelApps/.git/objects/pack/tmp_pack_XXXXXX': Permission denied

fatal: index-pack failed 😱

Entonces me di cuenta de que me faltó agregar sudo al comando.

$ sudo git clone miProyecto.git

Listo, ya se pudo clonar el proyecto 😅.

viernes, 12 de julio de 2019

Después de aplicar composer remove y luego composer update recibo el error: Parse error: syntax error, unexpected '>', expecting end of file in /vendor/composer/autoload_psr4.php on line 65

Instalé un nuevo paquete de laravel utilizando composer require vendor/package, en donde, evidentemente, vendor/package corresponde al nombre del paquete que deseas instalar.

Luego lo quise borrar porque no me sirvió y apliqué el comando composer remove vendor/package. Entonces, ya cuando ejecuto composer update, me salió el siguiente error:


Parse error: syntax error, unexpected '>', expecting end of file in /home/vagrant/code/tuProyecto/vendor/composer/autoload_psr4.php on line 65

Entonces, lo que tienes que hacer para solucionarlo es abrir ese archivo "autoload_psr4.php" y buscar

Referencias

https://stackoverflow.com/a/38349963/1883256 

Mejores frases del libro "Vida líquida" de Zygmunt Bauman

Estoy leyendo el libro titulado "Vida líquida" de Zigmunt Bauman
"Vida líquida" de Zygmunt Bauman
"Vida líquida" de Zygmunt Bauman

y estas son las frases que me han parecido muy interesantes:

domingo, 30 de junio de 2019

Laravel Blade: cómo desplegar el nombre del usuario en la etiqueta título del html de la página

Para poder acceder a los datos del usuario y desplegarlos dentro de la etiqueta HTML "title" desde Laravel blade, aplica el siguiente código:

@section('title','- Hola, '. Auth::user()->name )

Saludos.

martes, 25 de junio de 2019

Laravel homestead git pull origin master: error: insufficient permission for adding an object to repository database .git/objects

Estás dentro de tu proyecto de Laravel Homestead y vas a actualizar tu proyecto actualizando a tu desarrollo local con el siguiente comando:

$ git pull origin master

y te sale este error:

error: insufficient permission for adding an object to repository database .git/objects
fatal: failed to write object

fatal: unpack-objects failed

Entonces lo que debes hacer agregar sudo al comando git pull como se muestra a continuación:

$ sudo git pull origin master

O si te da flojera repetir todo el comando sólo para agregarle sudo:

$ sudo !!

¡Saludos!

Quizás también te pueda interesar:

Laravel git: error: Your local changes to the following files would be overwritten by merge: .idea/workspace.xml

Laravel logout error al momento de cerrar sesión The GET method is not supported for this route. Supported methods: POST.

Resulta que en mi proyecto Laravel quise hacer la prueba de cerrar sesión a partir de la URL, es decir, colocar la diagonal logout /logout al final de la URL inicial de mi proyecto Laravel, es decir:

http://miProyectoLaravel.local:8000/logout

(Te invito a que lo intentes)

Y me salió el siguiente error de whoops!!!

The GET method is not supported for this route. Supported methods: POST.

PhpMyAdmin: Cómo obtener las sentencias SQL utilizadas para insertar los datos a una tabla

En el artículo previo vimos como se obtiene la consulta SQL para la creación de una tabla (ya existente) con PhpMyAdmin.

Ahora necesitamos las consultas para llenar esos datos, lo primero que hay que hacer es seleccionar y visualizar la tabla de la base de datos que deseamos, dentro de PhpMyAdmin

lunes, 24 de junio de 2019

Laravel git: error: Your local changes to the following files would be overwritten by merge: .idea/workspace.xml

De entrada este error se refiere a que no se ha sincronizado correctamente el archivo ".idea/workspace.xml".

En mi caso este archivo es utilizado por PhpStorm en el cual va guardando en una especie de sesión los archivos que tengo abiertos. Es por eso que, cuando cierro phpStorm y luego lo vuelvo abrir otro día, me pone los archivos que tenía abiertos e incluso la posición del curso de la vez pasada. Toda esa información queda guardada en el archivo workspace.xml que, además, se encuentra e una carpeta oculta llamada .idea.

miércoles, 19 de junio de 2019

Cómo obtener la consulta para la creación de una tabla en una base de datos de MySQL utilizando PhpMyAdmin

Me ha pasado que necesito crear una misma tabla de una base de datos en otra y sé que lo más fácil es ejecutar una consulta, en vez de crear de nuevo toda una tabla en el modo gráfico de PhpMyAdmin.

Lo que hay que hacer es seleccionar la BD en donde está la tabla.
Phpmyadmin, seleccionando una base de datos.
Phpmyadmin, seleccionando una base de datos.

viernes, 14 de junio de 2019

Laravel: cómo clonar un proyecto

Para poder clonar un proyecto Laravel y hacer que funcione, hay ciertos pasos cruciales que hay que seguir.

Después de haber aplicado el comando "git clone"

$ git clone https://github.repo/mi/repo.git

Hay que seguir estos pasos adicionales:

Vamos al documento raíz de nuestro proyecto recién creado

miércoles, 12 de junio de 2019

Cómo eliminar la leyenda "Proudly powered by Wordpress" - a nivel del servidor

Si por alguna necesidad quieres quitar el texto "Proudly powered by Wordpress" que está en el footer de tu Wordpress, puedes intentar varias formas existentes.

Primera opción

Una, que no abordaré en este post, es que vayas a la sección "personalizar" o algo que tenga que ver con la personalización del "theme" que está activo. De ahí debes buscar una sección que se llame "footer". Si con todo esto en tu "theme" no está disponible esa opción, como ocurrió en mi caso habrá que intentar la segunda opción.

Segunda opción

Dos, es que en el menú vayas al menú "Apariencia" y luego a "Theme editor". Luego das clic en el botón "entendido".

martes, 11 de junio de 2019

💻MacOS cómo instalar Typescript y conocer la versión instalada

Para instalar typescript, recomiendo instalar y utilizar primeramente "homebrew".

Una vez instalado, hay que instalar nodejs.
$ brew install node
Ese comando además instalará "npm".
Finalmente procedemos a instalar Typescript.

$ sudo npm install -g typescript
Entonces, para conocer la versión, simplemente tecleamos.

$ tsc -v

Referencias


💻MacOS npm -v Error: Cannot find module '../lib/utils/unsupported.js' [solucionado]

En la Mac 💻 utilizo homebrew para la instalación de paquetes, tales como node, npm y demás.

En la terminal teclee el siguiente comando para conocer la versión de node:

$ node -v

Y todo bien.

Pero cuando teclee el siguiente comando para conocer la versión de "npm"

$ npm -v

Me salieron los siguientes mensajes de error:

HTML listas ordenadas por letras y números romanos

En ocasiones requiero poner listas ordenadas con letras o números romanos, en vez de números romanos o puntos negros, con HTML.


  1. Elemento 1
  2. Elemento 2
  3. Elemento 3
  • Elemento 1
  • Elemento 2
  • Elemento 3

Lista ordena por letras

Para ello, sabemos que contamos con la etiqueta
(lista ordenada u ordered list), entonces, para especificarle que queremos ordenamiento por letras minúsculas, simplemente utilizamos: , en donde el valor de "type" indica el tipo de valor a desplegar en la lista ordenada. Entonces, si se desea una lista con letras mayúsculas, se pone a mayúscula la "a":
  1. Elemento 1
  2. Elemento 2
  1. Elemento 1
  2. Elemento 2

Lista ordena por números romanos

De manera similar, para los números romanos con minúsculas, se especifica la letra "i" y, para las mayúsculas, se emplea la letra mayúscula i "I".
  1. Elemento 1
  2. Elemento 2
    1. Elemento 1
    2. Elemento 2

    Referencias





    sábado, 8 de junio de 2019

    Crear un sistema de roles y permisos con PHP y MySQL

    Si estás utilizando Laravel, existe un paquete de Spatie que ya lo resuelve.

    Si no es así, entonces puedes generarlo tú mismo basándote en el paquete mencionado.

    En mi caso, lo hice casi desde cero.

    Diseño de las tablas para la base de datos

    A grandes rasgos, los permisos y los roles los organice en tablas distintas. Las tablas son las siguientes:

    • `roles`
    • `permissions`
    • `role_user`
    • `permission_user`
    • `permission_role`

    Con este enfoque se puede desarrollar un sistema de roles y permisos de manera muy granular, es decir, a alto detalle y flexible.

    Para poder aplicar la verificación de los roles y permisos, es necesario implementar un middleware o usar el que te ofrece el framework que estés utilizando.


    viernes, 31 de mayo de 2019

    Cómo insertar más de un registro en una sola consulta con MySQL

    Normalmente para crear un nuevo registro en una base de datos de MySQL la consulta que se aplica es la siguiente:

    Sabemos que, la sintaxis para eliminar un registro de la base de datos es la siguiente:

    INSERT INTO `MiTabla` (`id`, `Columna_1`, `Columna_2`, `Columna_N`) VALUES (Valor_1, 'Valor_2', 'Valor_3', 'valor_N');

    Pero ahora ¿cómo hacerle para insertar varios registros de una sola vez en MySQL?

    La consulta ahora se extiende como sigue:

    INSERT INTO `MiTabla` (`id`, `Columna_1`, `Columna_2`, `Columna_N`) VALUES (Valor_1, 'Valor_2', 'Valor_3', 'valor_N'), (Valor_1, 'Valor_2', 'Valor_3', 'valor_N'),('...','y','así','sucesivamente');

    Saludos

    miércoles, 29 de mayo de 2019

    Cómo eliminar varios registros al mismo tiempo con MySQL

    Sabemos que, la sintaxis para eliminar un registro de la base de datos es la siguiente:

    DELETE FROM NombreDeLaTabla WHERE id = 66;
    En donde el 66, es un mero ejemplo del ID que en realidad vas a borrar.

    Seguramente sucede que quieres borrar varios registros específicos. Para poder borrar varios registros a la vez en MySQL, lo que debes hacer es, cambiar el operador "=" por la sentencia IN:
    DELETE FROM NombreDeLaTabla WHERE id IN (1,2,3,...,254);

    martes, 28 de mayo de 2019

    Laravel blade: cómo inicializar una variable

    Por alguna razón, dentro de tu motor de plantillas Blade de Laravel, requieres inicializar y actualizar algún valor de la nueva variable creada.

    Para poder inicializar una variable dentro de blade lo que tienes que hacer es lo siguiente:
    @php
    $miVariableNueva = 0;
    @endphp
    
    Saludos.

    Referencias
    https://www.quora.com/How-can-I-set-a-variable-inside-Laravels-blade-template

    lunes, 27 de mayo de 2019

    Laravel Homestead Maximum execution time of 30 seconds exceeded [Solucionado]

    Me ha pasado que, por alguna razón un script de PHP en Laravel Homestead debe ejecutarse por unos minutos y me sale ese error:
    Laravel Homestead Maximum execution time of 30 seconds exceeded
    Laravel Homestead Maximum execution time of 30 seconds exceeded

    domingo, 26 de mayo de 2019

    Cómo obtener el id del Usuario autentificado en Laravel

    En diversas ocasiones necesitamos obtener el ID del usuario que está autentificado, por ejemplo, para los casos en los que se desea almacenar el 'user_id' en la BD o para guardar parámetros relacionados con el $user en las sesiones.

    Típicamente la manera de hacerlo es la siguiente:
    use Illuminate\Support\Facades\Auth;
    //...
    // Primero obtenemos la información del usuario que está autentificado...
    $user = Auth::user();
    // Para obtener el ID:
    $user->id;
    
    Pero existe una manera todavía más simplificada:
    use Illuminate\Support\Facades\Auth;
    //...
    // Simplemente obtener el ID de usuario que está autentificado...
    $id = Auth::id();
    

    Nota

    Hay que asegurarse de que, en la parte superior de nuestro archivo php, esté incluido también la inclusión del Facade Auth:
    use Illuminate\Support\Facades\Auth;
    
    Saludos.

    Referencias

    Cómo verificar si un usuario es invitado o guest en Laravel Blade

    Verificar si un usuario es un invitado corresponde a la forma inversa de verificar si un usuario está autentificado o no.

    Desde este punto, el programador busca mostrar cierto contenido o elementos de un menú para cuando un usuario no está autentificado.

    En Laravel Blade existen directivas que nos facilitan varias tareas.

    Una primera forma es verificar directamente si el usuario es invitado:
        @if(auth()->guest())
            // El usuario no está autentificado.
        @endif
    
    De la misma manera, esto se puede verificar de manera más sencilla:
        @guest
            // El usuario no está autentificado.
        @endguest
    
    Además, se puede utilizar las directivas a manera if-else:
        @guest
            // Sección para usuarios que no tienen cuenta.
        @else
            // Sección para usuarios registrados y que ya iniciaron sesión de su cuenta.
        @endguest
    

    Saludos.

    Referencias

    https://laravel-news.com/five-useful-laravel-blade-directives

    Cómo verificar si un usuario está autentificado o no en Laravel Blade

    Siempre es útil conocer qué directiva de blade nos puede simplificar la tarea de verificar si el usuario ya ha iniciado sesión o no.

    Un ejemplo que me viene a la mente es desplegar el menú con ciertos elementos cuando un usuario ya ha iniciado sesión u ocultar dichos elementos cuando el usuario ha cerrado sesión o no está autentificado.

    Una primera solución, es verificar si la variable $user es nula o no:
         @if(auth()->user())
           // El usuario ya ha iniciado sesión. Mostrar aquí el contenido correspondiente.
         @endif
    
    La mejor solución es
        @auth
           // El usuario ya ha iniciado sesión. Mostrar aquí el contenido correspondiente.
        @endauth
    
    Saludos.

    Referencias

    viernes, 24 de mayo de 2019

    Programar autorecuperación o auto arranque de MariaDB cuando el servicio ha sido detenido o matado en CentOS 7

    Ha sucedido en ocasiones que, en CentOS, el servicio de MariaDB es detenido (killed) por otro proceso (pendiente de mencionar aquí), cuando hay escasez de recursos de CPU o el servidor tiene una sobrecarga y lo primero que hace es matar a un proceso, en este caso, el de MariaDB.

    Requisitos

    Tener acceso root.

    jueves, 23 de mayo de 2019

    wp theme list: Error: This does not seem to be a WordPress installation.

    Si estás intentando listar los temas o themes de Wordpress con WPCLI y te encuentras con el siguiente error:

    Error: This does not seem to be a WordPress installation.

    Pass --path=`path/to/wordpress` or run `wp core download`.

    Lo que pasa es que: o no estás en el directorio raíz de tu sitio wordpress o te ha faltado especificar la ruta de dicho directorio.

    Es decir, puedes ejecutar:

    $ wp theme list --path=/var/www/webservertutorials.icu/public_html/

    Saludos 🍸.

    laravel storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied

    Cuando sale este error, significa que hay que configurar los permisos pertinentes de las carpetas correspondientes en el servidor.

    Lo que debes hacer es posicionarte en la carpeta raíz de tu proyecto y aplicar los siguientes comandos (probablemente requieras de privilegios de root, por lo que usaremos "sudo")

    Primero, establecer el dueño de los archivos o las carpetas, para ello puedes listarlo con

    $ ls -lah

    miércoles, 22 de mayo de 2019

    Laravel Blade: cómo mostrar el año actual en el que estamos

    Hay ocasiones en que necesitas desplegar el año actual en la vista utilizando Laravel Blade.

    Un ejemplo que se me viene a la mente es la de mostrar un texto de derechos reservados en la sección del footer o pie de página, como por ejemplo:

    © 2019 Mi Organización. Todos los derechos reservados.

    Entonces, con Laravel Blade lo despliegas de la siguiente manera:

    {{ now()->year }}


    {{ now()->year }}

    También puede ser:

    {{ date('Y') }}

    Es todo. Saludos.

    martes, 21 de mayo de 2019

    ¿Cómo salir del editor VIM sin guardar los cambios?

    Para salir del editor y no guardar los cambios, lo que tienes que hacer es lo siguiente:

    Presionar la tecla "ESC",

    luego presionas la tecla "q" y el signo de admiración y luego "enter",

    es decir:

    q!


    Saludos

    ¿cómo programar correos electrónicos o email para que se envíen a una hora y fecha especificada con Gmail?

    Programar envío de correos.

    El botón de "enviar" tiene un submenú o flechita hacia abajo que, al pusarla, muestra la opción de "programar envío"

    viernes, 17 de mayo de 2019

    Mariadb falla al arrancar después de modificar la variable innodb_log_file_size en my.cnf

    Resulta que, después de seguir las recomendaciones del software "mysqltuner" en CentOS 7, procedí a modificar el archivo /etc/my.cnf en donde coloqué la siguiente variable, justo al final de la sección de [mysqld]


    #innodb_log_file_size = 16M


    Entonces, al reiniciar

    $ sudo systemctl mariadb restart

    Me da el siguiente error:


    Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.

    La solución en mi caso es:

    jueves, 16 de mayo de 2019

    Digital Ocean - cómo cambiar el dominio para que apunte a otro droplet

    Me he encontrado en la situación en la que tengo un dominio que apunta a un droplet con una dirección IP específica y ahora quiero que ese dominio apunte a otro droplet.

    Parece que la tarea es sencilla.

    martes, 14 de mayo de 2019

    Laravel Homestead Nginx 502 Bad Gateway - posible solución

    Te encuentras una vez, como cualquier otro día, iniciando tu servidor local con

    $ vagrant up

    Tu servidor arranca aparentemente con normalidad, accedes a tu proyecto Laravel

    http://laravel-app.local:8000

    Y resulta que te topas con el siguiente error

    502 - Bad Gateway  Nginx

    A mí esto me ha pasado con cierta frecuencia. Por lo que la solución provisional que me ha funcionado es simplemente reiniciar el servidor:

    $ vagrant reload

    Intento de nuevo abrir mi app y ya funciona todo con normalidad.

    sábado, 11 de mayo de 2019

    MacOS 💻 no se puede cambiar el nivel del brillo del teclado

    Teclado con brillo en la MacOS 💻
    Si de repente necesitas modificar el brillo del teclado de la mac y resulta que no se puede y te sale el siguiente símbolo del brillo prohibido,

    Cómo agregar un repositorio con código ya existente a un repositorio nuevo en bitbucket

    Digamos que ya creaste un proyecto, una aplicación Laravel php u otra cosa que deseas pasarlo a control de versiones con Git en Bitbucket.

    Entonces, primero ve a tu cuenta de Bitbucket y haz clic sobre el símbolo de + "create"
    Bitbucket, creando un nuevo repositorio

    Laravel Homestead The following SSH command responded with a non-zero exit status.


    Después  de simplemente actualizar mi Laravel homestead en Mac 💻 me aparecieron varios errores al intentar hacer 
    $ vagrant up
    --------------------------------------------------------------------------------

    viernes, 10 de mayo de 2019

    Comprar dominio de Internet barato y direccionarlo a Digital Ocean

    Voy a mostrarles brevemente dónde adquirir dominios de Internet a bajo precio y colocarlos en una página web para su visualización utilizando Digital Ocean.

    Namecheap

    En este caso vamos a utilizar una (de tantas) empresa que se dedica al registro de dominios, la cual se llama Namecheap.

    En namecheap.com se pueden comprar dominios de Internet a muy bajo precio

    ssh WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! [cómo solucionar]


    Estás intentando conectarte a tu servidor por medio de SSH y resulta que te salen los siguientes mensajes de error:

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

    @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
    Someone could be eavesdropping on you right now (man-in-the-middle attack)!
    It is also possible that a host key has just been changed.
    The fingerprint for the ECDSA key sent by the remote host is

    Add correct host key in /var/root/.ssh/known_hosts to get rid of this message.

    Offending ECDSA key in /var/root/.ssh/known_hosts:7
    ECDSA host key for xxx.xxx.xxx.xxx has changed and you have requested strict checking.
    Host key verification failed.

    Lo que debes hacer es, dependiendo lo que te diga el mensaje de error, respecto a la localización del archivo, es editar el archivo /.ssh/known_hosts

    En mi caso (de acuerdo a lo que especifica el mensaje de error), el archivo se encuentra en:

    $ sudo nano /var/root/.ssh/known_hosts

    Dentro de ese archivo, localiza la IP a la que te quieras conectar, ponte en esa línea con el cursor. Ahora lo que debes hacer es borrar esa línea. Para ello, lo puedes hacer rápidamente con el juego de teclas "ctrl + k". Guardas los cambios con "ctrl + o" , le dices que sí, y cierras con "ctrl + x".

    Ahora, intentas conectarte de nuevo a esa IP o dominio vía SSH y te va a salir el siguiente mensaje:

    The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
    ECDSA key fingerprint is SHA256:U4mcWdRqeuheehjgQm8H6434ejbynpqDjZ/tGflOs.

    Are you sure you want to continue connecting (yes/no)?

    Por lo que respondes que sí, con "yes" y enter.

    Listo, ya debes poder conectarte de nuevo con normalidad! 😎

    miércoles, 8 de mayo de 2019

    Cómo saber cuál es la versión de Laravel

    Para conocer la versión de Laravel que estás utilizando en tu aplicación, puedes aplicar el siguiente comando.

    $ php artisan --version

    Cabe destacar que ese comando debes ejecutarlo en dentro de la carpeta raíz de tu aplicación, ya que de otra manera, es probable que te salga el siguiente error:

    php artisan --version could not open input file

    Referencias:



    martes, 7 de mayo de 2019

    Cómo calcular la edad a partir de la CURP (México)

    Cabe destacar que, momentáneamente, esta serie de funciones ayudarán a calcular la edad para aquellos nacidos antes del año 2000. Ya que a partir de ese año, en esa parte de la CURP se les asigna letras en vez de números. Este punto lo dejaré como pendiente.

    Mientras tanto, pondré una serie de código con varias funciones que ayudarán a calcular la edad a partir de la CURP.
    
    function validate_curp($valor) {     
         if(strlen($valor)==18){         
            $letras     = substr($valor, 0, 4);
            $numeros    = substr($valor, 4, 6);         
            $sexo       = substr($valor, 10, 1);
            $mxState    = substr($valor, 11, 2); 
            $letras2    = substr($valor, 13, 3); 
            $homoclave  = substr($valor, 16, 2);
              if(ctype_alpha($letras) && ctype_alpha($letras2) && ctype_digit($numeros) && ctype_digit($homoclave) && is_mx_state($mxState) && is_sexo_curp($sexo)){ 
                return true; 
            }         
        return false;
         }else{
             return false; 
        } 
    }
    
    function is_mx_state($state){     
        $mxStates = [         
            'AS','BS','CL','CS','DF','GT',         
            'HG','MC','MS','NL','PL','QR',         
            'SL','TC','TL','YN','NE','BC',         
            'CC','CM','CH','DG','GR','JC',         
            'MN','NT','OC','QT','SP','SR',         
            'TS','VZ','ZS'    
        ];     
        if(in_array(strtoupper($state),$mxStates)){         
            return true;     
        }     
        return false; 
    }
    
    function is_sexo_curp($sexo){     
        $sexoCurp = ['H','M'];     
        if(in_array(strtoupper($sexo),$sexoCurp)){         
           return true;     
        }     
        return false; 
    }
    
    function fecha_de_nacimiento_desde_curp($la_curp){
        //primero validamos la curp
        if(validate_curp($la_curp)){
            $numeros    = substr($la_curp, 4, 6); 
            $anio=substr($la_curp,4,2);
            $mes=substr($la_curp,6,2);
            $dia=substr($la_curp,8,2);
            $fecha_de_nacimiento = $dia."-".$mes."-19".$anio;
            
            return calcula_edad($fecha_de_nacimiento);
        }else{
            return null;
        }
    }
    
    $la_curp = 'BADD760313HCMLNS09';
    //Validar la Curp
    if(validate_curp($la_curp)){
     echo '

    La CURP '.$la_curp.' es válida

    '; }else{ echo '

    La CURP '.$la_curp.' es inválida

    '; } function calcula_edad($fecha_de_nacimiento){ $hoy = date("Y-m-d"); $diff = date_diff(date_create($fecha_de_nacimiento), date_create($hoy)); return $diff->format('%y'); } $fecha_de_nacimiento = "30-08-1984"; //dd-mm-aaaa $hoy = date("Y-m-d"); $diff = date_diff(date_create($fecha_de_nacimiento), date_create($hoy)); echo 'La edad es '.$diff->format('%y'); echo '
    Ahora calculando la edad para '.$la_curp; $edad_curp = fecha_de_nacimiento_desde_curp($la_curp); echo "
    La edad desde la curp es $edad_curp"; ?>
    Este código lo puedes probar en intérpretes en línea, tales como phpfiddle.org.
    Saludos.

    miércoles, 1 de mayo de 2019

    Cómo calcular la edad a partir de la fecha de nacimiento con PHP


    La forma más simple para calcular la edad con PHP es la siguiente:
    $fecha_de_nacimiento = "30-08-1984"; //dd-mm-aaaa
    $hoy = date("Y-m-d");
    $diff = date_diff(date_create($fecha_de_nacimiento), date_create($hoy));
    echo 'La edad es '.$diff->format('%y');
    

    Puedes probar este código al instante en tohtml.com.

    Asimismo, si utilizas la librería Carbon, la edad se puede calcular como sigue:
    $edad = Carbon::createFromDate(1975, 5, 21)->age;
    
    echo 'La edad es '.$edad;
    Queda pendiente demostrar esto en línea, cuando el sitio http://phpio.net/tools/carbon vuelva a estar disponible.

    Referencias

    https://www.codexworld.com/how-to/calculate-age-from-date-of-birth-php/

    Quizás también te interese



    Adicionalmente,


    martes, 30 de abril de 2019

    Código de descuento y de promoción para viajar gratis con Didi

    Didi está resultando más barato que Uber y todavía te ofrece descuentos con mucha frecuencia con hasta 40% de descuento.

    Si aún no lo has probado, abre tu cuenta con Didi y aplica este código de promoción para que recibas de regalo $100 pesos MXN en tu primer viaje:

    MX8B3698

    Aplica ese código y ya está!

    Utiliza este Código Promo Didi MX8B3698 y recibe hasta $100 pesos MXN de descuento.

    Utiliza este Código Promo Didi MX8B3698 y recibe hasta $100 pesos MXN de descuento.
    Utiliza este Código Promo Didi MX8B3698 y recibe hasta $100 pesos MXN de descuento.


    Saludos

    lunes, 22 de abril de 2019

    Programas alternativos a Putty en Windows

    He visto en diversos tutoriales, tanto en posts de blogs como en video tutoriales que, para conectarse a un servidor de manera remota o a uno de máquinas virtuales en VirtualBox, recomiendan utilizar Putty.

    Resulta que, en muchos casos, sólo requieres conectarte al servidor de una manera ágil y segura como si estuvieras utilizando una terminal o consola de Linux o MacOS.

    sábado, 20 de abril de 2019

    Cupón de promoción para Vultr. Obtén $50 USD en crédito gratis!

    Vultr es parte de la competencia de Digital Ocean.

    Vultr tiene disponible Servidores VPS de tu sabor preferido: Ubuntu, CentOS, openBSD, freeBSD, Debian, Fedora, CoreOS ¡desde los $2.50 USD al mes!
    Vultr es la competencia de Digital Ocean, en donde algunos de sus servicios y servidores VPS son más baratos que en Digital Ocean. Pruébalo ya y recibe $50 USD en crédito registrándote con esta liga de referencia: https://www.vultr.com/?ref=8042807-4F
    Vultr es la competencia de Digital Ocean, en donde algunos de sus servicios y servidores VPS son más baratos que en Digital Ocean. Pruébalo ya y recibe $50 USD en crédito registrándote con esta liga de referencia: https://www.vultr.com/?ref=8042807-4F

    Cupón de promoción para Digital Ocean. Obten $100 USD gratis en crédito!

    Digital Ocean es una excelente plataforma en la nube que te permite tener a la mano tu propio servidor, generalmente, linux con el cual tú puedes tener alojamiento web para tus sitios de Wordpress o aplicaciones web con PHP y Laravel.

    Hay muchísimos servicios y precios para todos los presupuestos desde $5USD al mes: crea VPS, volúmenes, bases de datos, kubernetes y mucho más:
    http://www.digitalocean.com/?refcode=0b8e5b72595d de Digital Ocean y obtén gratis crédito de $100 USD para que pruebes todo lo que se ofrece.
    Aplica esta liga de referencia http://www.digitalocean.com/?refcode=0b8e5b72595d de Digital Ocean y obtén gratis crédito de $100 USD para que pruebes todo lo que se ofrece.

    Diseño de base de datos para Laravel

    He encontrado una buena herramienta online para el diseño de bases de datos, de manera gráfica, para Laravel.

    Una vez que has definido las tablas y sus relaciones, columnas y tipos de datos, dicha herramienta te permite exportar el diseño a manera de archivos de migración ¡tal y como los generas típicamente con php artisan make:migration!

    La herramienta se llama Laravel Schema Designer.

    Laravel Schema Designer: herramienta online para el diseño de bases de datos, de manera gráfica, para Laravel.


    Saludos.

    miércoles, 17 de abril de 2019

    Instalar varios sitios Wordpress usando Docker Compose en CentOS en un VPS de Vultr

    En este tutorial te voy a mostrar cómo implementar un sitio en Wordpress o varios con la tecnología de contenedores de Docker.

    Para ello, vamos a hacerlo en un servidor privado virtual (VPS) de Vultr con el sistema operativo CentOS 7.

    Material necesario

    Para llevar a cabo esta práctica (seguir este tutorial) lo que necesitamos es lo siguiente:
    • Tener un servidor o VPS. Contar con una cuenta en Vultr o cualquier otro servicio en la nube tales como Digital Ocean o infraestructura local (on-premises).
    • Tener un dominio disponible. Puedes adquirir uno de manera gratuita en Freenom o adquirir otro más acorde a tus necesidades por un precio más barato con Namecheap.

    jueves, 11 de abril de 2019

    phpmyadmin Fatal error: Maximum execution time of 300 seconds exceeded in C:\xampp\phpMyAdmin\libraries\classes\Dbi\DbiMysqli.php

    Lo que hay que hacer, es ir a la siguiente carpeta, dentro de la del phpmyadmin, "libraries\config.default.php" y ahí buscar la línea de código que dice:

    $cfg['ExecTimeLimit']

    normalmente ahí tiene el valor de 300, por lo que le puse dos ceros más: 30000 y ya funcionó.

    Referencias:

    https://stackoverflow.com/a/23985739/1883256

    martes, 9 de abril de 2019

    CentOS 7 Nginx bug Failed to read PID from file /run/nginx.pid: Invalid argument

    Acabas de instalar Nginx en CentOS 7 con el siguiente comando y lo habilitaste:


    $ sudo yum install nginx


    $ sudo systemctl start nginx && sudo systemctl enable nginx

    Y ahora, cuando revisas el estatus del servicio de Nginx

    Failed to read PID from file /run/nginx.pid: Invalid argument

     

    Tags