Saltar al contenido

Categoría: Planetas

unserialize(): Error at offset X of X bytes en PHP

Hace unos días tuve un problema al obtener datos serializados almacenados en una base de datos MySQL. Los datos se guardaban con serialize()  (se que con JSON es mejor pero se necesitaba guardar el objeto PHP) pero al momento de cargar el arreglo de objeto con unserialize() me arrojaba el siguiente error:

yii\base\ErrorException: unserialize(): Error at offset 579 of 664 bytes

Luego de varias horas intentando solucionar el error. Encontré en stack overflow que el problema ocurre con la codificación de los campos de texto (text) en la base de datos. Cuando se obtiene la información, si la codificación usada por PHP es diferente con la de la BD el número de bytes indicado por serialize() no coincide y la lectura se hace mal, ocasionando el error mencionado.

Solución al problema

La forma de solucionar el problema es cambiar la codificación del campo tipo texto, por ejemplo, en mi caso estaba con utf_general_ci y tuve que cambiarla a utf8_general_ci:

ALTER TABLE nombre_de_tabla
MODIFY tu_columna VARCHAR(255) CHARACTER SET utf8 
COLLATE utf8_unicode_ci;

¡Listo!, con esto no deberías presentar el problema de nuevo.

Deja un comentario

Consejos para que tu paquete llegue a su destino sin problemas

Para que los envíos que realicemos lleguen a su destino sin problemas, hay que escoger el embalaje dependiendo de las necesidades, escoger una compañía de mensajería de confianza y escribir correctamente todos los datos.

Enviar un paquete a cualquier parte puede ser algo que, como nos resulta cotidiano, no le prestamos demasiada atención. Pero, si lo pensamos un momento, nos daremos cuenta de que es más importante de lo que pensamos. Por ejemplo, ¿cómo nos sentimos cuando estamos esperando algo y no llega? Es una gran desilusión. Pues si enviamos un paquete a alguien y nunca llega a su destino también nos sentiremos mal, tanto por la persona que no lo ha recibido como por nosotros, en especial si el paquete es un regalo.

Envoltorio de regalo

Enviar un paquete es algo que hay hacer con cuidado y, sobre todo, si el envío es internacional. Aunque enviar paquete a Alemania no sea una tarea difícil, pero seguir unas recomendaciones nos ayudará a que el paquete llegue a su destino sin problemas.

El embalaje ideal

Dependiendo del tipo de objeto que se mande, será necesario un embalaje u otro. Existen diferentes tipos para escoger el más adecuado.

Si el paquete es grande una caja de iguales dimensiones puede ser lo más adecuado. Siempre hay que tener cuidado de que no tenga ningún tipo de rotura para que no sufra algún percance durante el viaje.

Para objetos pequeños y con cierta fragilidad, los sobres que están acolchados en su interior son la mejor alternativa. Y si lo que se envían son documentos, para que esté asegurada su privacidad, los sobres rígidos hechos de cartón son la elección perfecta.

Cómo enviar el paquete

Para el envío del paquete se puede hacer mediante la oficina de correos y también por empresas de mensajería.

Las empresas de mensajería como ParcelABC te garantizan la seguridad del envío que realizas. Lo entregan directamente a la persona y hace envíos por todo el mundo. Existen comparadores de envíos de paquetes que te ofrecen la oportunidad de escoger entre varios para que puedas obtener la mejor oferta para tus envíos.

Es muy importante que puedas saber en todo momento por dónde se encuentra el envío. Hoy ya es normal poder realizar un seguimiento de los paquetes mediante localizadores gps. Con este servicio podrás saber si el paquete llega o no a su destino. Al contratar una empresa de mensajería, no está de más, asegurarse de que disponen de este servicio así estarás más tranquilo porque sabrás que pasa con el envío.

La importancia de que los datos sean correctos

En ocasiones ocurre que un paquete no llega a su destino. Casi siempre se le echa la culpa a la empresa que los lleva porque lo han extraviado o lo han roto. Pero no siempre la culpa de los demás. A veces, sin darnos cuenta, puede que nos falte colocar alguno de los datos que se necesitan para que el envío llegue en perfecto estado a su destinatario.

Es importante que todos los datos, tanto del destinatario como del remitente, estén claros, bien visibles y que sean los correctos. A veces olvidarnos de poner una letra o un número importante, puede significar, que el envío no llegue a su destino. Aunque parezca tonto escribir de manera legible es necesario. Si el trabajador de la empresa no entiende lo que pone, no sabrá donde tiene que llevar el paquete. Las letras “de médico” mejor dejarlas para otra ocasión. Escribir en mayúsculas siempre es la mejor manera de conseguir que todo el mundo entienda lo que está escrito.

Ya lo he enviado ¿y ahora qué?

Una vez envíado el paquete, solo hay que esperar a que llegue a su destino sin problemas. Ahora puedes relajarte descargando el juego geometry dash gratis, tanto en su versión normal como Lite que ya está disponible.

Deja un comentario

¿Qué es el desarrollo web?

Desde hace unos años escuchamos bastante el término de desarrollo web y probablemente se pregunten o han escuchado: ¿Qué es eso? ¿No es lo mismo que programación? Simplificando, desarrollo web consiste en crear soluciones tecnológicas que se ejecutarán dentro de un navegador (como Firefox/Chrome/Edge o Safari). Por este motivo es diferente a otro tipo de programación porque un navegador funciona de una forma particular y la información debe viajar a través de una Intranet o Internet. En otras palabras, crear todos esos programas y sitios web que vemos dentro de un navegador.

El uso del término desarrollo implica tareas mas allá de la programación: análisis de requisitos, conceptos de usabilidad, seguridad de la información, ingeniería de software, programación del lado del servidor y cliente, entre otros. Cuando alguien te diga que es desarrollador, implica que no solo codifica programas sino va mas allá y realiza mas tareas.

¿Que sé debe conocer para el desarrollo web?

Primero debes conocer los conceptos básicos de programación web:

  • HTML: es el lenguaje de marcado que permite estructurar el contenido que ves en un navegador. Es el esqueleto de la parte visual de la aplicación. En mi opinión aprender HTML es el primer paso para aprender desarrollo web, pues solo necesitas un editor de texto y un navegador para empezar a crear tus primeras páginas.
  • CSS: permite definir como va a lucir el HTML dependiendo del dispositivo. Indica al navegador los colores, tipos de letra, posición y tamaño al contenido del HTML. Su curva de aprendizaje es mediana pero dominar la tecnología requiere mucha experiencia.
  • JavaScript: es el lenguaje de programación que permite definir eventos, realizar tareas, acciones. Se ejecuta tanto en el lado del cliente (a través del navegador) como del servidor (para realizar cálculos, obtención de datos, entre otros). Si solo quieres hacer páginas web sencillas, no es necesario que aprendas esto por los momentos. Sin embargo, tarde o temprano te toparas con JavaScript a medida que vayas haciendo sitios mas complejos. Pues necesitaras agregar interacciones y automatizar acciones.
  • Lenguaje de programación del lado del servidor: las tecnologías anteriores permiten realizar páginas web que se muestran en el navegador. Pero cuando necesitamos interactuar con el servidor: iniciar sesión, subir archivos, descargar información. Necesitamos programar las acciones que debe realizar el servidor donde está alojada la página para saber que debe responder. Esto se hace mediante lenguajes de programación del lado del servidor. Entre los mas comunes suele ser PHP, JavaScript, Ruby, Java, Python, entre otros.

¿Qué aprender luego?

El siguiente paso es hacerte experto en estas 4 tecnologías, e ir en todo el ecosistema alrededor de ellas. Por ejemplo, todo sitio web se aloja en un servidor, entonces debes aprender como se configurar y optimizar uno. La información se almacena en base datos por lo que aprender a diseñarlas y consultar información  a través de ella te ayudará a ser mejor profesional. Conocer como obtener buenos resultados en los buscadores, visualizar correctamente el contenido en cualquier dispositivo. Aplicar técnicas de usabilidad en las interfaces para mejorar la interacción con los visitantes.

Pero no todo es tecnología, pues existen cosas importantes para desarrollador web: redactar correos para conversar correctamente con clientes. Aprender cuánto cuesta una web para saber cuanto cobrar por el trabajo. Elaboración de manuales, entre otros.

¡Parecen muchas cosas!

Aunque parece mucha cantidad de información, poco a poco iras aprendiendo. Ser desarrollador web requiere muchos conocimientos y años de experiencia. Pero con paciencia y práctica lograrás convertirte en uno.  A mi me parece una excelente rama de la informática, cada año va en auge y se puede trabajar desde cualquier parte del mundo.

Espero que les haya gustado esta introducción, recuerden comentar cualquier aporte, sugerencia u opinión sobre el desarrollo web.

Happy coding!

Deja un comentario

SQL para migrar la configuración del tema en WordPress

Desde hace unas versiones WordPress ofrece Customizer, una herramienta para pre-visualizar y configurar un tema en tiempo real. Si se te ha perdido la configuración, esta entrada te explicará como migrar la configuración del tema desde la base de datos. ¿Por qué hacerlo por base de datos y no por un plugin? Pues existen escenarios donde no puedes recrear la configuración manualmente:

  • Vas a lanzar un nuevo tema hijo a producción. No puedes perder tiempo en mostrar un sitio mal configurado a las personas.
  • El tema posee una configuración muy compleja o  grande. Tomando mucho tiempo en recrear la visualización del sitio.
  • El tema esta codificado en otro idioma (escenario que me inspiró esta entrada) y no entiendes la configuración seleccionada.

¿Por qué se pierde la configuración del tema?

Esta configuración se guarda en la base de datos asociada al tema, ocasionando que si cambias a una plantilla hija o una copia de la misma, todas las personalizaciones se pierden. Inclusive, algunos desarrolladores comenten el error de colocar la versión a la carpeta del tema y al cambiar la versión, se pierden los datos de personalización.

SQL para  migrar la configuración del tema en WordPress

La configuración del tema se guarda en la tabla wp_options bajo el nombre de theme_mods_NOMBRE_CARPETA_DEL_TEMA. Por ejemplo, si tienes activado el tema twentynineteen, los ajustes del tema estarán bajo el nombre theme_mods_twentynineteen.

Para migrar la configuración, del tema cuyo nombre de carpeta en /wp-content/themes/ se llame original a un nuevo tema (hijo o con otro nombre) llamado nuevo solo debes ejecutar esta sentencia:

INSERT `wp_options` (option_name, option_value) 
VALUES (
  'theme_mods_nuevo',
  (
    SELECT `option_value` FROM `wp_options` 
    WHERE `option_name`='template_mods_original'
  )
);

¡Listo! Ya con estos pasos deberías tener la misma configuración del tema padre (u otro tema si es compatible) con la plantilla cuyo nombre es nuevo (recuerda cambiarlo por el nombre de tu tema). De esta forma ahorras tiempo en recrear toda la configuración automáticamente y luego activar el tema. No perderás tiempo configurando cosas o renombrando carpetas.

Espero que les sirva este comando SQL y recuerda comentar si conoces un mejor método o como optimizar este. ¡Feliz desarrollo!

Deja un comentario