<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>proyectos | Webmago Dev</title>
	<atom:link href="https://webmago.dev/tag/proyectos/feed/" rel="self" type="application/rss+xml" />
	<link>https://webmago.dev</link>
	<description>Creando codigo desde 1990</description>
	<lastBuildDate>Thu, 15 May 2025 19:24:46 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>La importancia de la calidad del código</title>
		<link>https://webmago.dev/la-importancia-de-la-calidad-del-codigo/</link>
		
		<dc:creator><![CDATA[webmago]]></dc:creator>
		<pubDate>Tue, 01 Dec 2020 15:52:11 +0000</pubDate>
				<category><![CDATA[development]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[calidad]]></category>
		<category><![CDATA[codigo]]></category>
		<category><![CDATA[proyectos]]></category>
		<category><![CDATA[registros]]></category>
		<guid isPermaLink="false">https://webmago.dev/?p=649</guid>
					<description><![CDATA[<p>Durante meses un sitio con miles de visitas al día estuvo trabajando sin caídas en la pagina principal, como medida preventiva implemente monitoreo en las secciones principales, es decir, las de mayor visitas para darme cuenta si alguna de ellas dejaba de responder con el  Código HTTP 200 OK. Posterior a un cambio hecho en [&#8230;]</p>
The post <a href="https://webmago.dev/la-importancia-de-la-calidad-del-codigo/">La importancia de la calidad del código</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></description>
										<content:encoded><![CDATA[<p>Durante meses un sitio con miles de visitas al día estuvo trabajando sin caídas en la pagina principal, como medida preventiva implemente monitoreo en las secciones principales, es decir, las de mayor visitas para darme cuenta si alguna de ellas dejaba de responder con el  <code>Código HTTP 200 OK</code>.</p>
<p>Posterior a un cambio hecho en el código iniciaron las caídas de secciones en cascada y finalmente la página de inicio, el momento en que esto sucedía era aleatorio, el único patrón detectado era la caída de secciones y finalmente la página de inicio.</p>
<p>El equipo externo de desarrollo nos responsabilizaba por qué seguramente habíamos hecho algún cambio no autorizado al sistema de cache; algo que tenia mas de un año sin ser modificado.</p>
<p>Algunos desarrolladores no cuentan con un disciplina para documentar, hacer pruebas unitarias, este era el caso de el equipo externo, incluso había detectado código duplicado o no optimizado en el inicio del proyecto y lo peor, habían silenciado los registros, es decir, si algo mal ocurría simplemente era &#8220;ocultado&#8221; o no registrado, algo que el mismo programador hizo a propósito.</p>
<p>En algún momento trabaje con un equipo ordenado que documentaba y generaba sus pruebas unitarias, al momento de hacer el proceso de integración estas pruebas unitarias validaban en parte que el código no tendría errores, así también la detección de código duplicado entre otros.</p>
<p>Es mi costumbre documentar y tener estadísticas de incidencias, por lo que estuve buscando cómo validar su código y con ello respaldarnos para descartar que era nuestra responsabilidad la caída de secciones y página principal.</p>
<p>En el camino encontré <a href="https://www.codacy.com/" target="_blank" rel="noopener noreferrer">Codacy,</a> una buena opción con muchas características, lamentablemente solicitar una autorización para el incremento del presupuesto tomaría tiempo y nos quedaríamos sin funciones PRO en el corto tiempo, así que opte por <a href="https://www.sonarqube.org/" target="_blank" rel="noopener noreferrer">Sonarqube.</a></p>
<p>Con <a href="https://www.sonarqube.org/" target="_blank" rel="noopener noreferrer">Sonarqube</a> implemente un bash script para escanear el código del proyecto indicado, para mi fortuna Sonarqube cuenta con una versión Docker Comunitaria gratuita la cual puedes tener lista y operando en 5 minutos; esta versión solo te permite escanear la rama <strong><em>master</em></strong> de tu proyecto, si requieres algo mejorado tendrás que optar por la versión de <a href="https://sonarcloud.io/pricing" target="_blank" rel="noopener noreferrer">Sonar Cloud</a> y te cobrara en base a las lineas de código que tenga tu proyecto.</p>
<p>Usando mis estadísticas desde que dejaron de presentarse caídas y al momento de su re-aparición busque en el histórico de Sonarqube y encontré las fechas en las que habían hecho los cambios y Sonarqube nos indicaba la mala calidad del código que había detectado en esos cambios, con ello descartaron que había sido un descuido de nuestro lado al modificar un componente fuera de su alcance.</p>The post <a href="https://webmago.dev/la-importancia-de-la-calidad-del-codigo/">La importancia de la calidad del código</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Sendgrid mi eleccion para envio de correos</title>
		<link>https://webmago.dev/sendgrid-mi-eleccion-para-envio-de-correos/</link>
		
		<dc:creator><![CDATA[webmago]]></dc:creator>
		<pubDate>Mon, 30 Nov 2020 16:43:36 +0000</pubDate>
				<category><![CDATA[devops]]></category>
		<category><![CDATA[infraestructura]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[mta]]></category>
		<category><![CDATA[proyectos]]></category>
		<category><![CDATA[sendgrid]]></category>
		<guid isPermaLink="false">https://webmago.dev/?p=626</guid>
					<description><![CDATA[<p>Imagina que vas caminando por la plaza VIP de tu localidad, el motivo de tu visita es adquirir un par de calzado, confortables, de buen estilo, a tu medida; mientras recorres los pasillos, vas viendo en los aparadores de las diferentes tiendas de calzado algo que te agrade, finalmente uno te ha gustado, entras a [&#8230;]</p>
The post <a href="https://webmago.dev/sendgrid-mi-eleccion-para-envio-de-correos/">Sendgrid mi eleccion para envio de correos</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></description>
										<content:encoded><![CDATA[<p>Imagina que vas caminando por la plaza VIP de tu localidad, el motivo de tu visita es adquirir un par de calzado, confortables, de buen estilo, a tu medida; mientras recorres los pasillos, vas viendo en los aparadores de las diferentes tiendas de calzado algo que te agrade, finalmente uno te ha gustado, entras a la tienda donde lo has visto, preguntas al encargado si puedes verlo y probarlo, a lo que el encargado te dice que debes pagar una cierta cantidad para poder verlo y probarte el calzado. Imagino tu cara de asombro, piensas que por ser una plaza VIP ellos tienen ese derecho.</p>
<p>Finalmente declinas probarte ese calzado y continuas con tu búsqueda, unos metros mas adelante encuentras otra tienda con un calzado similar y con mejores características, como 2 pares de cuerdas extras de color para combinar con tus atuendos, preguntas al encargado si puedes verlos y probártelos, a lo que el te responde que si, de tu experiencia previa preguntas si debes pagar algo por probártelos; el te responde que eso no es necesario, que puedes hacerlo sin un compromiso de compra. Es cierto, acabo de ver tu cara de felicidad.</p>
<p>Algo parecido me ocurrió con Amazon SES, parecía una buena opción, acudí a un partner, AWS me contacto y me puso en contacto con otro partner al que le indique que me gustaría probar y ver el panel de AWS SES para ofrecer un POC a un futuro cliente.</p>
<p>Después de una semana, la respuesta del ultimo partner fue una cotización para poder habilitarme el panel y yo hacer el POC, imagina si el cliente no aprueba contratar el servicio de AWS SES, para mí eso seria reflejado como perdida.</p>
<p>En varios de mis proyectos he usado <a href="https://sendgrid.com" target="_blank" rel="noopener noreferrer">Sendgrid</a>, por las siguientes características:</p>
<ul>
<li>Envío de correo usando API.</li>
<li>Sin limite de envíos por día, solo en paquetes de pago.</li>
<li>Paquete gratuito 100 emails por día.</li>
<li>Cuando contratas un paquete, no tienes limite en el tamaño del envío.</li>
<li>Si excedes de tu paquete en envíos tus excedente serán cobrados en la siguiente factura.</li>
<li>Estadísticas.</li>
<li>Registros  del estatus de cada correo enviado.</li>
<li>Manejo de campañas de marketing.</li>
<li>Manejo de usuarios.</li>
<li>IP dedicada con paquetes PRO en adelante.</li>
</ul>
<p>Por lo tanto, <a href="https://sendgrid.com" target="_blank" rel="noopener noreferrer">Sendgrid</a> es una buena opción si vas empezando con tu proyecto o si deseas lanzarte a lo grande.</p>The post <a href="https://webmago.dev/sendgrid-mi-eleccion-para-envio-de-correos/">Sendgrid mi eleccion para envio de correos</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Desarrollo OctoberCMS &#8211; Proyectos en 5 dias</title>
		<link>https://webmago.dev/desarrollo-octobercms-proyectos-en-5-dias/</link>
					<comments>https://webmago.dev/desarrollo-octobercms-proyectos-en-5-dias/#respond</comments>
		
		<dc:creator><![CDATA[webmago]]></dc:creator>
		<pubDate>Fri, 27 Nov 2020 16:06:29 +0000</pubDate>
				<category><![CDATA[octobercms]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[desarrollo octobercms]]></category>
		<category><![CDATA[proyectos]]></category>
		<category><![CDATA[sitios]]></category>
		<guid isPermaLink="false">https://webmago.dev/?p=608</guid>
					<description><![CDATA[<p>Hace unas semanas nos buscaron con un reto, lanzar un proyecto en 10 dias, en el dia 5 deberia esta el 90% operativo, los temas a resolver fueron: Solo los usuarios que esten dados de alta en una tabla alterna podran registrarse y recibir un codigo unico de acceso en su cuenta de correo. Solo [&#8230;]</p>
The post <a href="https://webmago.dev/desarrollo-octobercms-proyectos-en-5-dias/">Desarrollo OctoberCMS – Proyectos en 5 dias</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></description>
										<content:encoded><![CDATA[<p>Hace unas semanas nos buscaron con un reto, lanzar un proyecto en 10 dias, en el dia 5 deberia esta el 90% operativo, los temas a resolver fueron:</p>
<ul>
<li>Solo los usuarios que esten dados de alta en una tabla alterna podran registrarse y recibir un codigo unico de acceso en su cuenta de correo.</li>
<li>Solo los usuarios pertenecientes a un grupo podran acceder al evento al cual fueron invitados usando su correo y codigo de acceso, en caso de ingresar y no tenga derecho a ver el evento sera re-dirigido a una zona de lobby.</li>
<li>El evento sera una transmision en vivo, visible solo a la hora del evento.</li>
<li>El evento contara ademas con un chat para que los usuarios interactuen con el patrocinador, activo a partir de la hora del evento.</li>
<li>El sitio debera contar con recorridos virtuales en 3D con videos incrustados que se activaran al hacer click sobre cierta zona.</li>
<li>Se debe habilitar un boton 3 minutos antes de finalizar el evento para acceder al recorrido virtual.</li>
</ul>
<p>En el pasado ya habia evaluado varios proyectos para hacer un lanzamiento y mejoras en corto tiempo, algunos requerian de una curvatura de aprendizaje algo grande la cual podria ser mayor si se desconoce el lenguaje de programacion usado.</p>
<p>Por lo tanto opte por usar <a href="https://octobercms.com/" target="_blank" rel="noopener noreferrer">October CMS</a> por su Escritorio en la zona administrativa y lo amigable que es con el usuario sin conocimiento en el tema de desarrollo y la extensebilidad con una gran variedad de plugins.</p>
<h3>Reto 1 y 2, Usuarios y Accesos</h3>
<p>Para resolver esto use el plugin <a href="https://octobercms.com/plugin/keerill-users" target="_blank" rel="noopener noreferrer">KEErill Users</a> con algunas mejoras que realice, la cual buscaba al usuario en la tabla y si lo encontraba le enviaria el codigo unico generado, de lo contrario se le negaba el registro.</p>
<p>Para el envio de los registros via correo electronico use <a href="https://sendgrid.com" target="_blank" rel="noopener noreferrer">Sendgrid</a>.</p>
<p>Para el acceso a la zona del evento se hizo una mejora al componente de autenticacion para validar si el usuario que pertenece al grupo habia sido activado en la zona/pagina, de ser asi, se le permitia el acceso de lo contrario el usuario es re-dirigido a la zona lobby.</p>
<h3>Reto 3 y 4, Video y Chat activos:</h3>
<p>En un proyecto previo ya habia creado un plugin para integrar los enlaces de los videos de youtube y mostrar los 3 videos mas recientes, a partir de este genere una adaptacion para &#8220;activar/desactivar&#8221; el video, adicion de fecha/hora de inicio/fin del evento.</p>
<p>Previo hecho lo anterior se genero un plugin adicional para el Chat con las mejoras del plugin de video.</p>
<p>Finalmente en la parte frontal, la que el cliente accede vera el evento en video y el chat solo si se han activado y durante el lapso de tiempo elegido.</p>
<h3>Reto 5, Recorrido Virtual.</h3>
<p>Este recorrido solo deberia ser accesible a usuarios del evento en turno, se resolvio sin problema usando las mejoras al plugin de usuarios.</p>
<h3>Reto 6, Habilitar Boton 3 mins previos al fin del evento.</h3>
<p>Basado en la fecha/hora de termino del evento del video, se integro un contador hacia atras para que 3 minutos antes de su finalizacion activando dicho boton para proveer acceso al recorrido virtual.</p>
<p>&nbsp;</p>
<h3>Conclusiones.</h3>
<p>El proyecto se lanzo en tiempo y forma, junto con el cliente trabajamos la integracion de las vistas y plantillas de envio de correo electronico. De ultimo minuto nos solicitaron integrar certificados SSL, debido a que trabajamos con <a href="https://docker.com" target="_blank" rel="noopener noreferrer">Docker</a> su integracion no tuvo impacto debido a que trabajamos con nginx proxy.</p>
<p>Durante los 15 dias que duro el evento, el recorrido virtual tuvo varios cambios, mismos que manejamos con rapidez al auto-deplegar en el sitio usando git, lo mas tardado eran los cambios de los archivos de imagenes compuestos por el mismo recorrido.</p>
<p>&nbsp;</p>
<h4>Tecnologia y lenguajes usados.</h4>
<ul>
<li>EC2 AWS</li>
<li>RDS AWS (MySQL)</li>
<li>Route 53, AWS</li>
<li>Bitbucket (git)</li>
<li>October CMS</li>
<li>Javascript</li>
<li>CSS3</li>
<li>HTML5</li>
<li>Vimeo</li>
<li>Chatroll</li>
<li>Sendgrid</li>
</ul>The post <a href="https://webmago.dev/desarrollo-octobercms-proyectos-en-5-dias/">Desarrollo OctoberCMS – Proyectos en 5 dias</a> first appeared on <a href="https://webmago.dev">Webmago Dev</a>.]]></content:encoded>
					
					<wfw:commentRss>https://webmago.dev/desarrollo-octobercms-proyectos-en-5-dias/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
