{{articleTitle}}
{{articleComment}}
Aquí recopilo artículos que me resultan útiles o interesantes.
Hace algún tiempo comencé a recopilar distintos artículos y recursos que encuentro en internet en mi día a día y de los que aprendo algo nuevo. Me pareció que podía ser interesante compartirlos y ese es el objetivo de este proyecto: Compartir.
Pueden filtrar, ordenar o buscar recursos de temáticas especificas desde mi Notion.
{{articleComment}}
Cuando sirves imágenes en tu sitio, deberías utilizar el elemento picture para poder elegir qué tamaño de archivo cargar en cada pantalla. Aquí tienes un ejemplo de cómo utilizarlo: normalmente tengo dos fuentes, una para móviles y otra para el resto. La primera etiqueta de origen tiene una anchura máxima de 600px, por lo que todo lo que esté por debajo de 600px cargará la imagen ex-services1-m.webp y todo lo que esté por encima de 601px cargará la imagen de tamaño normal ex-services1.webp. La etiqueta de imagen al final es donde se colocan la carga perezosa (lazy loading) y los atributos de altura y anchura, así como la imagen de reserva en caso de que algunos navegadores (tosi tosi, safari...) no los admitan completamente. Ahora, en las pantallas móviles se cargará la imagen mucho más pequeña, lo que mejorará drásticamente la velocidad de tu página y los tiempos de carga. Ahora que hemos configurado nuestras imágenes correctamente en HTML, podemos empezar a hacer los recortes de ellas. Cuando estés viendo el boceto de diseño en Figma, Adobe XD o incluso si está en un sitio terminado, obtén las dimensiones exactas del tamaño de pantalla de la imagen. Al pasar el cursor sobre la imagen en el sitio, podemos ver que se muestra a 551px de ancho y 250px de alto. Por lo tanto, el tamaño óptimo para escritorio de esta imagen sería dos veces el tamaño de visualización. Este es el tamaño óptimo de visualización para tener en cuenta todas las posibles pantallas y densidades de píxeles. Por lo tanto, esta imagen debería recortarse a un ancho de 1102px y una altura de 500px. Cuando vayamos a la versión móvil y comprobemos el tamaño allí, veremos que sus dimensiones son más pequeñas: 292px de ancho y 213px de alto (aproximado). Por lo tanto, tendríamos que hacer un recorte móvil de la imagen a un ancho de 584px y una altura de 424px. Guarda esta imagen con el mismo nombre pero agrega una "m" al nombre. Así que si esta imagen se llamaba kitchen.jpg, tendrías una imagen kitchen-m.jpg para la imagen móvil. Es mejor hacer estos recortes mientras construyes el sitio y guardar las fotos de esa manera para que no se sienta tan engorroso al finalizar la construcción.
Estas técnicas protegen un enlace clickeable que abrirá el cliente de correo del usuario (por ejemplo, el correo electrónico). Se espera que el texto del enlace sea genérico; si aparece la dirección de correo electrónico en el texto del enlace, entonces la dirección de correo electrónico también se expone como texto plano, y necesitarás agregar técnicas de ofuscación de texto plano. Bloqueado el 100% de spam. Bloqueado el 50% de spam. Bloqueado el 17% de spam.
Este curso está diseñado para aquellos nuevos en el rendimiento web, un aspecto vital de la experiencia del usuario. Cubre conceptos clave y técnicas para mejorar el rendimiento web.
El desarrollo web avanza a una velocidad impresionante. Aunque existen herramientas modernas como Angular, VueJS, React, Solid y Svelte, aún debemos lidiar con el Document Object Model (DOM). Conocer las APIs del DOM del navegador y cómo utilizarlas es crucial para el desarrollo web. Un sitio web que presente estas APIs, destaque problemas comunes y proporcione respuestas a preguntas populares puede ser increíblemente útil. Es por eso que he recopilado esta colección de recursos. Prepárate para dominar la manipulación del DOM con JavaScript puro. Cambia dinámicamente el favicon basado en las preferencias de esquema de color del usuario. Selecciona una línea determinada en un área de texto.
Tengo la sospecha de que OKRs, como Objetivos y Resultados Clave, son en realidad un dispositivo inteligente utilizado por Google para desviar a las startups. La atracción de los OKRs radica en su percebida simplicidad: cualquier problema, grande o pequeño, organizacional o técnico, se puede resolver mediante el establecimiento cuidadoso de objetivos claves. Sin embargo, en la práctica esto nunca funciona como se promete y las startups se preguntan por qué no pueden implementar un sistema aparentemente sencillo.
Como desarrollador de software ocasionalmente competente, me encanta la buena documentación. Explica no solo cómo funcionan las cosas, sino también por qué funcionan de la manera en que lo hacen. En su mejor momento, la documentación es mucho más que una guía. Es una declaración de principios y mejores prácticas, brindando a las personas la información que necesitan para no solo entender, sino también creer.
Has invertido semanas de arduo trabajo en construir tu sitio web, ¡y ahora por fin está listo para ser publicado! Sin embargo, para asegurarte de que tu sitio web funcione de la mejor manera posible, hay algunas cosas de las que debes ocuparte. En este artículo, exploraremos diversas formas de optimizar tu sitio web para lograr una mejor experiencia de usuario y tiempos de carga más rápidos, lo que se traduce en un mejor posicionamiento en los motores de búsqueda. Cuando el navegador solicita una página web, primero recibirá un documento HTML. El navegador analizará el documento y cuando el analizador encuentre un archivo externo, el navegador enviará otra solicitud para recuperarlo. Por ejemplo, imagina que tienes un sitio web con la siguiente estructura: Para renderizar el archivo index.html, tu navegador tendría que hacer un total de 12 solicitudes, incluyendo 1 archivo HTML, 3 archivos CSS, 3 archivos JavaScript y 5 imágenes. Este proceso consumirá una gran cantidad de tiempo y recursos, lo que resultará en un mal rendimiento del sitio web. Afortunadamente, existen algunas formas de mejorar la velocidad de carga de este sitio web, como combinar y minimizar los archivos estáticos, optimizar las imágenes, almacenar en caché los recursos, y muchas más. Exploraremos todas estas técnicas en este artículo. Pero primero, comencemos con las imágenes. Para empezar, las imágenes de este sitio web están en formato JPG o PNG, que tienden a tener tamaños de archivo más grandes y un mal rendimiento en comparación con los formatos modernos como WebP y AVIF. Hay muchas herramientas y sitios web basados en la nube que pueden convertir tus imágenes, pero el problema con estas herramientas es que generalmente tienes que cargar los archivos para que sean procesados, y algunos de sus servicios no son gratuitos. En este artículo, me gustaría presentarte un software llamado FFmpeg, que te permite convertir las imágenes localmente con un simple comando. Si estás utilizando Mac, puedes instalar FFmpeg con Homebrew: Si estás utilizando Windows, utiliza Winget en su lugar: Alternativamente, simplemente puedes descargar el instalador desde el sitio web oficial de FFmpeg.
Aunque en teoría los usuarios no deberían necesitar conocer las URLs, en la práctica muchas veces acceden a sitios web o páginas individuales a través de mecanismos que exponen las URLs en su forma original. Por lo tanto, es importante asegurarse de que un sitio sea accesible y usable incluso para aquellos usuarios que no estén familiarizados con las direcciones URL.
Este artículo presenta una lista de hacks útiles y no obvios para aprovechar al máximo el depurador de tu navegador. Utilizando expresiones con efectos secundarios en lugares inesperados, podemos obtener más funcionalidad de características básicas como los puntos de interrupción condicionales. Por ejemplo, podemos utilizar console.log en puntos de interrupción, y también se pueden utilizar console.count y console.log en el panel de observación. Además, se menciona que ahora todos los navegadores principales admiten directamente logpoints y tracepoints.
Este ejemplo de Panelbear es un portal de facturación al cliente que funciona muy bien para las SaaS que solo tienen algunos planes, aunque no sería escalable para tiendas en línea con miles de productos individuales. No es necesario agregar ningún agente de registro a mi código, ya que simplemente registro en stdout y Kubernetes recolecta y rota automáticamente los registros por mí. Además, puedo inspeccionar los registros fácilmente utilizando stern, una herramienta CLI para Kubernetes que hace que seguir los registros de la aplicación en múltiples pods sea muy sencillo.
Un excelente recurso de código abierto que combina principios tradicionales de UNIX con las actualizaciones necesarias para escribir mejores programas de línea de comandos en la era moderna.
La elección de nombres es complicada, incluso en CSS. En este artículo se presentan diversas ideas relacionadas con la nomenclatura de las propiedades personalizadas de CSS, las cuales pueden ser de utilidad, aunque no se consideren la única forma correcta de nombrar las variables en CSS.
"El desarrollo de tus habilidades técnicas es adecuado, pero es necesario que mejores en tu comunicación", comentó tu jefe. Esta es una de las críticas más difíciles de escuchar para un ingeniero de software. ¿Por qué? Porque probablemente pensaste que como ingeniero de software solo necesitarías comunicarte a través de código. Pero no, enfocarse únicamente en el código puede limitar tu potencial de crecimiento y ascensos. Centrarse solo en las habilidades de programación hace que alcances un límite. La comunicación desbloquea más potencial. Inspirado en la publicación de Caleb Mellas. Aunque hay muchos aspectos de la comunicación, este post se centra en la habilidad de hablar en público. Específicamente, cubriremos: Estos conceptos se pueden aplicar a: [lista de áreas o situaciones en las que se puede aplicar la comunicación efectiva].
Este capítulo introduce y desarrolla el estilo arquitectónico de Transferencia de Estado Representacional (REST) para sistemas distribuidos de hipermedia, describiendo los principios de ingeniería de software que guían a REST y las restricciones de interacción elegidas para retener esos principios, contrastándolos con las restricciones de otros estilos arquitectónicos. REST es un estilo híbrido derivado de varios estilos arquitectónicos basados en redes descritos en el Capítulo 3 y combinados con restricciones adicionales que definen una interfaz de conector uniforme. El marco de arquitectura de software del Capítulo 1 se utiliza para definir los elementos arquitectónicos de REST y examinar ejemplos de procesos, conectores y vistas de datos de arquitecturas prototípicas.
Las animaciones fluidas durante la navegación en una aplicación móvil llevan existiendo desde hace tiempo. Sin embargo, lograr el mismo efecto en la web ha sido todo un desafío, a menudo requiriendo enfoques complejos y únicos, hasta ahora. Entra en escena la API de Transiciones de Vista, una solución sencilla y directa basada en el navegador. En este artículo, explicaré qué es esta API y cómo funciona. Aprenderemos a crear transiciones suaves y simples entre estados y páginas. También exploraremos cómo la API de Transiciones de Vista se combina con meta frameworks como Astro y Nuxt. Prepárate para un paseo divertido y emocionante con las transiciones.
¡Hola! Estoy trabajando lentamente en explicar git. Uno de mis mayores problemas es que, después de casi 15 años de usar git, me he acostumbrado mucho a las idiosincrasias de git y es fácil para mí olvidar lo confuso que puede ser. Así que pregunté a la gente en Mastodon: recibí muchas RESPUESTAS GENIALES y trataré de resumirlas aquí. Aquí hay una lista de los términos.
En este artículo se explora la importancia de sentirse cómodo en producción y cómo esto requiere habilidades diferentes a las de escribir código. Se menciona la necesidad de contar con un mentor y de cambiar la forma de pensar para asegurarse de que los cambios en la función sean monitoreados positivamente.
Bear Blog tiene algunas limitaciones de diseño en cuanto a velocidad, eficiencia y estabilidad. Aunque existen muchas plataformas de análisis de código abierto y centradas en la privacidad, decidí construir una propia para Bear. Una de las restricciones que impuse para Bear es no utilizar JavaScript del lado del cliente, lo cual aplica también al sistema de análisis. Aunque el JavaScript del lado del cliente puede ser ajustado para determinar la autenticidad del tráfico a una página y determinar parcialmente si se trata de tráfico de bots o no, lo cual es muy útil para el análisis, la principal desventaja es que la mayoría de los bloqueadores de anuncios también bloquean scripts de análisis. Y no solo los malos, como Google Analytics. Incluso Fathom y Plausible Analytics tienen dificultades para registrar la actividad en navegadores con bloqueadores de anuncios.
En los Estados Unidos, decirle a la gente qué hacer no funciona fuera de las organizaciones tradicionalmente jerárquicas. Es importante adoptar estilos de gestión que fomenten la participación activa de los miembros del equipo y permitan la toma de decisiones colectiva para lograr un mayor éxito y satisfacción de los empleados.
Este artículo presenta evidencia sólida sobre el impacto de la contaminación del aire en la salud humana, destacando la necesidad de implementar medidas urgentes para reducir las emisiones y proteger el bienestar de las personas.
En Agile Product Management, las métricas juegan un papel fundamental para tomar decisiones basadas en datos. Existen nueve categorías de métricas que representan aspectos clave del aporte e impacto de nuestro producto. En el siguiente extracto del libro "gestionagildeproductos.com", encontrarás una selección de tres métricas por categoría, excepto en la categoría de "impacto", ya que estas métricas varían según el producto específico.
Cuando programas, es fácil sobrevivir con una comprensión superficial de muchas cosas. Puedes engañarte fácilmente pensando que estás programando cuando estás copiando y pegando códigos de Stack Overflow o de algún artículo al azar que encontraste. La codificación Base64 era uno de esos temas que me molestaba durante algún tiempo. A menudo me encontraba con imágenes o URL codificadas en Base64, y no tenía idea de lo que significaba o por qué se usaba. Finalmente, decidí investigar para llenar esa brecha de conocimiento, y pasé el domingo leyendo el RFC 4648 (mi idea de un fin de semana divertido). Lo siguiente es todo lo que aprendí sobre la codificación Base64.
Aviso: Hasta octubre de 2023, todavía estoy trabajando en convertir el contenido del libro a markdown. Todo está aquí (a través de un conversor automático de .doc a .md), pero la formato está desordenado y necesita mucho trabajo de limpieza, disculpen el desorden en el ínterin. Bienvenidos: ¡Hola, gracias por visitar el Manual del CTO de Startups! Este repositorio tiene la versión más reciente del contenido del libro. Estás invitado y animado a contribuir con problemas o solicitudes de extracciones para añadir/adiciones/cambios/sugerencias/críticas a ser incluidas en futuras ediciones. Si lo haces, no dudes en agregar tu nombre a los AGRADECIMIENTOS. El Autor: Linkedin / Sitio Web / Correo Electrónico. Licencia: Ver el archivo de LICENCIA, pero en resumen, puedes hacer copias, cambios, redistribuir, etc., siempre y cuando no estés revendiendo, mantengas mi nombre/atribución adjunto y mantengas las versiones futuras abiertas bajo una licencia similar/la misma.
Durante mucho tiempo, encontré frustrante trabajar con un CEO que fuera un micromanager. A menudo aparecían de la nada, criticaban mi trabajo sin comprender las compensaciones y luego desaparecían cuando quería explicar mis decisiones. En esos momentos, deseaba que confiaran en mí basándose en mi historial de hacer un buen trabajo.
En eventos de networking, no necesitas ser el más ruidoso o impresionar a todos. Lo importante es ser genuino, interesarte en los demás y establecer conexiones significativas. No se trata de cantidad de personas con las que hablas, sino de la calidad de las relaciones que construyes.
El patrón repository se utiliza frecuentemente para encapsular lógica de consulta simple y a veces bastante compleja. Sin embargo, también se ha transformado en el manejo de la persistencia y se utiliza a menudo como otra capa de abstracción de su capa de mapeo de datos. Este artículo de blog te muestra cómo reducir y simplificar tus repositorios o posiblemente eliminarlos por completo mediante el uso de objetos de consulta.
Ya sea que te estés preparando para una entrevista de diseño de sistemas o simplemente quieras entender cómo funcionan los sistemas por debajo de la superficie, esperamos que este repositorio te ayude a lograrlo al explicar sistemas complejos mediante imágenes y términos simples.
Los talleres de liderazgo de Management 3.0 se centran en prácticas tangibles para ayudar a los gerentes, líderes de equipo, mandos intermedios y ejecutivos de nivel C a aumentar la participación de los empleados y fomentar el cambio transformacional dentro de sus organizaciones. La comunicación efectiva y empática juega un papel crucial en el lugar de trabajo, especialmente al fomentar la colaboración, el compromiso y la productividad del equipo.
htmx es una excelente biblioteca que mejora la capacidad de respuesta de los sitios web renderizados en el servidor. Sin embargo, el manejo de errores sigue siendo un tema en el que se debe trabajar. Cuando se utiliza htmx, los errores de conexión o de solicitud se registran en la consola, pero el usuario se queda con un botón que no tiene ningún efecto visible. Como diseñador de UI, debes decidir cuándo y cómo mostrar los errores a tus usuarios.
Este artículo explora los argumentos a favor y en contra de una función API monolítica Lambda (conocida como Lambdalith) en comparación con funciones Lambda de un solo propósito por ruta de API. Desafía las "mejores prácticas" y argumenta que en muchos casos una función Lambda monolítica es mejor cuando se trata de una API. Sin embargo, es importante tener en cuenta que este debate solo es aplicable a la función Lambda que enfrenta a la API, para todo lo demás se deben utilizar funciones de un solo propósito. Cabe destacar que este es un tema controvertido y la opinión presentada se respalda en años de experiencia.
Desde que comenzamos PostHog en 2020, hemos aprendido mucho sobre lo que funciona y lo que no funciona cuando se trata de marketing para ingenieros. Los anuncios pagados son una área un poco aterradora porque es muy fácil desperdiciar mucho dinero en cosas que no funcionan. Y la mayoría de las veces no funcionan. Este artículo comparte consejos específicos y prácticos para startups en etapas iniciales que desarrollan herramientas para desarrolladores en particular. Supongo que ya has decidido que correr anuncios pagados es algo que tiene sentido para tu empresa.
Aquí tienes un consejo rápido sobre cómo gestionar múltiples identidades en Git (por ejemplo, personal, trabajo, cliente1, cliente2). Organizo mis repositorios en tres niveles. Mis proyectos personales están en el directorio ~/sources. Todos mis proyectos de trabajo están en ~/work. Eso es el primer nivel. El segundo nivel es el cliente, por ejemplo, ~/work/client1. Naturalmente, el tercer nivel es el repositorio del proyecto: ~/work/client1/foo-api.
En este proyecto se ha realizado un refactorizado que ha cambiado la forma en la que se agregan los middleware a las rutas, pasando de utilizar el constructor del controlador a utilizar el archivo de rutas. Aunque algunos middleware duplicados en los controladores no han sido eliminados, esto no representa un problema ya que Laravel elimina automáticamente los middleware duplicados para ser ejecutados solo una vez.
Una de las cosas que tal vez no sepas sobre mí es que en 2021 me uní a la plataforma Plato como mentora. Desde entonces, he realizado más de 300 sesiones con personas de todo el mundo. ¡Este año, Plato está trayendo de vuelta la conferencia presencial Plato Elevate - "La conferencia de liderazgo en ingeniería sin tonterías", y fui invitado como ponente! Mi tema este año es... ¡redoble de tambores... "Cómo construir una organización tecnológica anti-burnout". Si quieres asistir, Plato amablemente me ha dado un código del 40% de descuento para que cualquier lector de Caring Techie lo use: ELEVATE2023-IRINA. Reserva tus entradas utilizando el código aquí. Ahora volvamos al artículo.
En el último año en Tanda, hemos pasado de ser una compañía de un solo producto a lanzar varios nuevos productos que funcionan muy bien juntos. Esto me ha llevado a reflexionar sobre las diferentes fases de estrategia de producto en la última década, desde no tener producto hasta convertirnos en líderes de mercado. Si te resulta interesante, es posible que también disfrutes de los 11 años de alojamiento de un SaaS.
El Árbol de Soluciones de Oportunidades brinda una forma clara y eficiente de visualizar posibles caminos y enfoques para abordar oportunidades y lograr los resultados deseados. Su combinación con la tipología de cartas llamada Value Agile Blackjack amplifica su efectividad al tipificar diferentes valores que pueden contribuir al éxito.
Trabajar solo tiene sus dificultades. Por un lado, mi ingreso está en cierta medida ligado a mi productividad, y mi productividad se correlaciona con mi estado mental. Además, no puedo contar con colegas en la trinchera. Y finalmente está la capacidad de no hacer nada, lo cual puede resultar confuso y peligroso si no se gestiona adecuadamente. Una de las ventajas de tener un empleo es que al despertar, ya sabes lo que harás. Vas a trabajar. La elección ha sido tomada. La estructura de ese trabajo y el propósito subyacente lo establecen otros y solo tienes que hacer que suceda. Sí, hay una gran variedad de ocupaciones, pero en general, un empleado tiene que ir a trabajar, recibir instrucciones y ser productivo. Sin embargo, cuando trabajas solo, no hay una tarea específica que debas hacer. No hay una ruta preestablecida que seguir. Si decido no trabajar hoy, nadie lo notará. Pero si continúo haciéndolo durante demasiados días, las cosas comenzarán a desmoronarse. Lentamente al principio, luego rápidamente, hasta que todo lo que he construido se derrumbe a mi alrededor. A continuación, se enumeran algunas formas en las que intento mantenerme motivado como creador solitario: Este es el punto más importante para mí, y tal vez el más difícil de cumplir. Cuando estoy en las primeras etapas del desarrollo de un producto, la pregunta principal en mi mente es: "Si este proyecto tiene éxito, ¿quiero pasar los próximos años trabajando en él?" Si la respuesta es sí, genial. Sigo adelante. Si la respuesta es no... probablemente no tenga éxito de todos modos. Personas más inteligentes que yo han escrito extensamente sobre cómo encontrar un trabajo interesante, por lo que no profundizaré demasiado en ese tema. Sin embargo, puedo recomendar 80,000 Hours para aquellos interesados en el tema de encontrar un trabajo significativo y estimulante. Como no tengo un jefe que garantice que dedique las horas necesarias, debo elegir hacer el trabajo. Esto es sorprendentemente difícil a veces, especialmente cuando tengo que ocuparme de cosas menos interesantes (declaraciones de impuestos/informes de errores/solicitudes de reembolso). Y así, mi día tiene una estructura bastante simple pero dinámica.
El artículo proporciona información detallada y precisa sobre los efectos del cambio climático en los ecosistemas marinos, destacando la importancia de tomar medidas urgentes para proteger y preservar estos ecosistemas vitales.
Este artículo es el primero de una serie de artículos sobre Arquitectura de Software. En ellos, se habla de lo que he aprendido sobre Arquitectura de Software, cómo la pienso y cómo utilizo ese conocimiento. Llamo a esta serie de artículos "Las Crónicas de la Arquitectura de Software", no porque me considere un gran escritor, sino porque encuentro el nombre bastante cursi de una manera divertida.
Para fomentar prácticas asincrónicas más fuertes en su equipo, lo más importante que puede hacer es ser intencional en la creación de un ambiente de seguridad psicológica. Esté abierto a recibir retroalimentación, admita sus errores y muestre vulnerabilidad. Al cultivar un ambiente inclusivo en el cual los miembros de su equipo se sientan seguros para correr riesgos, compartir ideas, expresar preocupaciones y brindar retroalimentación, sin temor a represalias, los empoderará para que trabajen de manera más independiente según el horario que les funcione mejor, sin tener que esperar su aprobación. Además, ser abiertos y poder discutir los temas difíciles entre nosotros significa que siempre estaremos creciendo y mejorando.
Mi conclusión es que las migraciones de bases de datos son un problema molesto y complejo para los ingenieros de software. Aunque existen frameworks y herramientas que facilitan el proceso, aún hay muchos factores a considerar y posibilidades de errores que pueden generar ansiedad y problemas de consistencia de datos. Además, la necesidad de realizar migraciones sin tiempo de inactividad agrega aún más complejidad a esta tarea.
El artículo ofrece una visión objetiva y equilibrada de un tema complejo, presentando argumentos sólidos respaldados por evidencia confiable. Es un recurso valioso para aquellos interesados en profundizar en el tema y formarse una opinión informada.
Este artículo proporciona una visión interesante y perspicaz sobre el tema en cuestión. Los datos y opiniones presentados ayudan a ampliar el entendimiento del lector y a generar una reflexión profunda.
"Don't bring me problems, bring me solutions" es un mensaje común que uno imagina a un CEO estereotípico diciéndole a su equipo. Aunque esta frase literal no es particularmente común en la vida real, está arraigada en algunas verdades profundas sobre la comunicación con los ejecutivos. En este artículo, analizaremos esta frase como una forma de analizar cómo comunicarse eficazmente hacia arriba, ya sea hacia un gerente senior, jefe de función o CEO.
En este artículo se aborda la importancia de contar con un mapa de productos claro y estratégico, que conecte las iniciativas diarias con la visión y misión de la empresa. Se destaca la necesidad de que los líderes de producto sean capaces de explicar cómo se llega al estado o resultado deseado, y de contar con una estrategia bien definida para el producto.
En el desarrollo web, a menudo necesitamos dar estilo a los elementos para indicar visualmente el estado en el que se encuentran. Sin embargo, los lectores de pantalla no pueden percibir los estilos visuales como colores o bordes, lo que crea una brecha de accesibilidad. Para solucionarlo, podemos usar atributos ARIA junto con las clases CSS para proporcionar tanto la apariencia visual como la información accesible necesaria.
Escribí un Restablecimiento Moderno de CSS hace casi 4 años y, bueno, no ha envejecido demasiado bien. Lo vi vinculado nuevamente hace unos días y pensé que probablemente sería una buena idea publicar una versión actualizada. Sé que también tengo un pésimo historial con el mantenimiento de código abierto, así que pensé en archivar el original y simplemente publicar esto en su lugar. ¡Haz con él lo que quieras! Para ser muy claro, este es un restablecimiento que funciona para mí, personalmente y para nosotros en Set Studio. Cuando me refiero a "nosotros", me refiero a eso. Como es tradición, vamos a desglosarlo: esta regla es bastante autoexplicativa, pero en resumen, estoy configurando todos los elementos y pseudo-elementos para que utilicen el border-box, en lugar del content-box predeterminado para el dimensionamiento. Ahora nos estamos enfocando más en permitir que el navegador haga más trabajo con diseños flexibles, con tipo de letra y espacio fluído, esta regla no es tan útil como solía ser. Pero, es raro que un proyecto no tenga algún tipo de dimensionamiento explícito en algún lugar, por lo que aún tiene un lugar en el restablecimiento. La mejor explicación para esto es la de Kilian. También explica por qué todavía necesitamos esos prefijos feos. Siempre prefiero eliminar los estilos de margen de los agentes de usuario a favor de definir el flujo y el espacio a un nivel más macro. Con las propiedades lógicas, ahora estoy eliminando el margen final en lugar de todos los lados en el restablecimiento anterior. Parece que funciona bien en producción. Safari hace algunas cosas locas, que incluyen esto: si eliminas la estilización de listas, ellos eliminarán la semántica para VoiceOver. Algunos dirán que es una característica y otros dirán que es un error. Yo digo que es absurdo, pero para asegurarme de que se agregue un rol, elimino la estilización de listas de manera predeterminada como una pequeña recompensa.
El final del año es una oportunidad para limpiar y reiniciar para el próximo semestre. Sin embargo, el acto nostálgico de ordenar mis marcadores antiguos me llevó a la desesperación, ya que muchos enlaces han desaparecido y se hace cada vez más difícil mantener contenido independiente en la web.
Hola, Este libro de 70 páginas es una guía para crear un sitio de portafolio que destaque ante los posibles empleadores. Si estás buscando entrar en la industria, mi esperanza es que este libro te brinde una ventaja seria. Tu sitio de portafolio puede ser un arma secreta.
En este artículo se menciona la importancia de utilizar CSS reset para mejorar la experiencia del usuario y la escritura de CSS. Además, se explica cómo el ancho de un elemento .box se determina por el ancho de su padre y se aplica al cuadro de contenido por defecto.
La cultura de una empresa es el reflejo de todo lo que ha sucedido en los últimos 50 días. Desde cómo tratan a las personas, a quiénes han contratado o despedido, cómo ayudan a los demás, hasta cómo se apoyan mutuamente y cómo se han relacionado con los clientes. Es un relato no ficticio que se va escribiendo por sí mismo.
En este artículo, se explorarán los componentes de una arquitectura orientada a eventos, sus características clave, las tecnologías relevantes, los patrones de implementación y los posibles desafíos. El enfoque en las arquitecturas orientadas a eventos ha crecido considerablemente en las últimas dos décadas, especialmente con las cargas de trabajo intensivas en datos y la computación en la nube.
En CSS, los márgenes adyacentes pueden superponerse a veces. Esto se conoce como "margin collapse" y tiene fama de ser bastante retorcido.
Tener una reputación en el trabajo como un solucionador de problemas habilidoso es frecuente que las situaciones extrañas lleguen a mi escritorio después de que otros ingenieros habilidosos hayan pasado por ellas. Decir que mi trabajo consiste en solucionar problemas extraños no sería una exageración y estoy aquí para ello. Mi enfoque es sistemático y se centra en comprender primero y ante todo.
En primer lugar, tenía planeado llamar a este artículo "Dominando el arte de las estimaciones: Una guía definitiva para desarrolladores", pero después, ¿quién soy yo para decirte cómo estimar proyectos? Solo puedo darte algunos consejos y describir algunas cosas que me han funcionado bien a lo largo de los años. Así que eso es exactamente lo que haré, darte algunas reglas generales para facilitarte la vida. ¡Ah, las estimaciones de software, la pesadilla de muchos desarrolladores y la plaga de los gestores de proyectos en todas partes! Una batalla constante de "dime cuánto tiempo te llevará" y "dame una descripción clara de la tarea primero". Estoy aquí para traer un poco de realidad a las complejidades del desarrollo real. He tenido mi parte de estimaciones en ambos lados de la moneda. Lo he visto todo. Y estoy aquí para darte las crudas verdades sobre las estimaciones de software, así que prepárate. Y para los desarrolladores junior ahí fuera, presten mucha atención: esto marcará la diferencia entre una carrera exitosa y una vida llena de plazos incumplidos y compañeros de trabajo frustrados.
Esta aplicación es una guía de estilo o biblioteca de patrones en vivo, generada a partir de estilos documentados en KSS...con un enfoque en accesibilidad. No importa tu nivel de desarrollo o experiencia en accesibilidad, hay formas de ayudar a contribuir a la guía de estilo a11y.
Si deseas aprender más sobre cómo diseñar e implementar sitios web totalmente accesibles, has llegado al lugar correcto. Todos nuestros contenidos se basan estrictamente en las Pautas de Accesibilidad al Contenido Web (WCAG 2.1) del W3C. Nuestro objetivo es brindarte las mejores prácticas más simples y efectivas sobre cómo diseñar, implementar y probar sitios web teniendo en cuenta la accesibilidad.
Como diseñador web, te enfrentas a decisiones difíciles a la hora de equilibrar estética y rendimiento. El contenido, diseño, imágenes e interactividad son esenciales para captar la atención de tu audiencia, y cada uno de estos elementos tiene un gran impacto en el tiempo de carga de la página y la experiencia del usuario final. En este libro práctico, Lara Callender Hogan te ayuda a enfocar tus proyectos teniendo en cuenta la velocidad de carga, mostrándote cómo probar y medir qué decisiones de diseño son más críticas. Lara está donando todas las ganancias del libro a diversas organizaciones benéficas que se centran en apoyar a personas marginadas en el ámbito tecnológico, como Girl Develop It, Women Who Code, Black Girls Code, #YesWeCode, Latinas in STEM, Hack the Hood y proyectos en DonorsChoose como "Growing Girls with Gadgets" y "Girls Can Code, Too!". Así que si te gusta el libro, por favor considera comprarlo.
FamilySearch es un sitio de genealogía mundial construido y mantenido por equipos dedicados a diferentes secciones del sitio. Después de darse cuenta de que el sitio ya no estaba unificado debido a los estilos únicos creados por cada equipo, decidieron crear una guía de estilo para solucionar el problema y limpiar el código de CSS.
El cambio climático es una preocupación global que requiere una acción inmediata y coordinada de todos los países para reducir las emisiones de gases de efecto invernadero y preservar nuestro planeta para las futuras generaciones. Es fundamental que se implementen medidas concretas y se promueva la concienciación sobre este tema tan importante.
Desarrollar una nueva característica, solucionar un bug o iniciar un nuevo proyecto se parece a algo así: la solución inicial es exploratoria, con una hipótesis de cómo se comporta el sistema y el objetivo de encontrar el camino más rápido hacia una solución. Después de la primera iteración, entiendo qué refactorizaciones se necesitan para que el cambio encaje en el código actual y en iteraciones posteriores, mi cambio puede ser más preciso y, en la mayoría de los casos, necesito cambiar menos código de lo que originalmente pensaba, haciendo el cambio más pequeño y fácil de entender.
La legibilidad a menudo se trata como algo subjetivo. Cuando alguien dice que el código es más legible, lo que realmente quieren decir es que pueden leerlo más fácilmente. Sin embargo, hay un criterio muy objetivo: tenemos un conjunto de trabajo limitado. Para crecer y mantener programas de manera eficiente, el código que se lee junto debe escribirse junto.
En este artículo se presentan tres plantillas y técnicas potentes que se aplican en la etapa estratégica del Agile Product Management: el círculo dorado de S. Sinek, la técnica del Product Vision Board de R. Pichler y el Business Model Canvas de A. Osterwalder. Estas herramientas permiten definir y comunicar de manera clara y concisa la visión de un producto o negocio. Que la Agilidad os acompañe.
En este artículo, se discuten algunos de los principios fundamentales del diseño de software que generalmente son aplicados por los diseñadores de manera invisible. La arquitectura de software representa el resultado de una secuencia de decisiones de diseño que ocurren a medida que aumenta la complejidad del sistema de software. Para evitar la acumulación de deuda técnica, es importante abordar la erosión del software a través de elecciones de arquitectura que describan claramente las restricciones sobre cómo los componentes pueden intercambiar información. Estas restricciones se definen mediante límites claros de los componentes, ocultando los datos internos y funcionalidades a otros componentes de la arquitectura. Además, las interacciones entre componentes deben ocurrir en áreas de intercambio de datos restringidas a través de límites de componentes, conocidas como interfaces. Estas interfaces indican las restricciones claras sobre qué información de datos se permite entrar y salir de los componentes correspondientes. Por ejemplo, en una arquitectura de capas, cada componente está restringido a utilizar únicamente la información proporcionada por el componente inmediatamente inferior. Cualquier componente de código fuente que no cumpla con esta restricción representa una violación de los límites de la arquitectura, que debe corregirse lo antes posible.
Tengo un proyecto secundario que, al igual que la mayoría de buenos software, utiliza un registrador estructurado. Inicialmente usé logrus, luego zap y luego encontré zerolog, que he utilizado durante varios años. ¿Cómo cambié de registrador varias veces sin causarme dolores de cabeza? Fácil, mantuve una interfaz de Logger simple: en cada lugar del código que tiene la mínima necesidad de registrar, utilizo este tipo de Logger. Esto contrasta con la mayoría del código profesional que he escrito, que utiliza un *zap.Logger específico de dependencia en todas partes. Cuando quise usar zap en lugar de logrus, simplemente escribí una implementación de zap de la interfaz anterior y la utilicé en lugar de la de logrus. Son envoltorios muy simples; aquí está cómo se ve WithValue para la implementación de zap, por ejemplo: la forma en que la aplicación invoca una instancia de Logger es mediante un objeto Config específico de registro, que tiene un método para proporcionar un registrador: tener las cosas configuradas de esta manera hace que sea trivial cambiar entre instancias de registro. Puedo cambiar una línea de configuración y hacer que todo el comportamiento de registro de la aplicación cambie en respuesta. Recientemente, Go 1.21 introdujo el paquete slog, que es la implementación de la biblioteca estándar de un registrador estructurado como los que mencioné anteriormente. Inmediatamente quise aprovecharlo (y creo que incluso tendría sentido en algún momento eliminar mi interfaz y simplemente usar un *slog.Logger en su lugar). Para aprovecharlo por el momento, pude comenzar a usar slog en mi aplicación mediante: un PR rápido y toda la aplicación usa ahora slog. No se detiene en el registro. Tengo interfaces similares para:
Este artículo se enfoca en las mejores prácticas para sitios web minimalistas que se centran principalmente en el texto, poniendo énfasis en el diseño inclusivo y la compatibilidad con diversas formas de acceso al contenido. También aboga por un enfoque de mejora restrictiva en lugar de mejora progresiva, priorizando las mejoras que resuelven problemas de accesibilidad, seguridad, rendimiento y usabilidad para usuarios distintos del autor.
En este artículo, se introduce un selector CSS de tres caracteres peculiar y llamativo, conocido como el "selector del búho lobotomizado". Aunque pueda parecer extraño e inútil, el autor demuestra cómo este selector puede reducir el exceso de código, acelerar el desarrollo y ayudar a automatizar el diseño de contenido arbitrario y dinámico.
Hola! Quisiera recomendar el libro "Atomic Design" que explora este tema en más detalle y está disponible en formato ebook. A medida que el diseño web evoluciona, estamos reconociendo la necesidad de desarrollar sistemas de diseño pensados, en lugar de simplemente crear colecciones de páginas web. Muchos han hablado sobre la creación de sistemas de diseño, enfocándose en establecer fundamentos como el color, la tipografía, las cuadrículas, la textura, entre otros. Aunque esto es importante, personalmente me interesa más saber cómo están compuestos nuestros interfaces y cómo podemos construir sistemas de diseño de manera más metódica. De esta forma, podemos descomponer los interfaces completos en bloques de construcción fundamentales y trabajar a partir de ahí. Esto es lo básico de la metodología del diseño atómico. El diseño atómico tiene cinco niveles distintos.
En este artículo se presentan una serie de consejos y estrategias para poder concentrarse en las tareas más importantes. Se sugiere utilizar estas herramientas de manera selectiva, adaptándolas a cada situación, y utilizarlas de forma responsable para evitar el agotamiento.
En este blog post, analizaremos y explicaremos cada parte del meme "The SQL Iceberg", ya que queremos enfocarnos en el PostgreSQL y cómo se relaciona con esta imagen detallada. Aunque originalmente fue creado por los desarrolladores de CockroachDB, es interesante ver cómo se aplica a otros sistemas de gestión de bases de datos.
Hablemos de un tema importante y algo controversial: lo que significa tener presencia ejecutiva y cómo puedes desarrollarla. La presencia ejecutiva se define como un conjunto de comportamientos que influirán en los demás para que te escuchen plenamente. Puedes tener siempre la razón y ser el trabajador más duro de la empresa, pero para ser efectivo, las personas deben juzgar tus ideas por sus propios méritos. Esto es especialmente importante cuando tienes un equipo grande o necesitas trabajar de manera interfuncional, ya que lograr las metas requiere que las personas escuchen tus perspectivas. La presencia ejecutiva se vuelve mucho más importante a medida que asciendes en una organización, y para los líderes senior es vital.
Uno de los comportamientos más perjudiciales que he observado en un liderazgo ineficaz es la tendencia a agregar caos cuando alguien entra a una habitación. El caos puede presentarse de muchas formas: se llegó a una decisión sobre una importante pregunta de arquitectura hace semanas, pero de repente alguien insiste en volver a visitar los objetivos fundamentales del proyecto en el último momento. Un ejecutivo insiste en que su proyecto es el más importante y lo incluye en la hoja de ruta. O tal vez sales de una reunión productiva sin pasos concretos a seguir y vuelves al punto de partida en una semana. Nadie se emociona cuando este tipo entra a la habitación. Mi prueba de fuego para un liderazgo efectivo: cualquier habitación a la que ingreses debería tener más certeza y un plan más sólido para cuando la dejes. Los buenos líderes pueden entrar en una situación en la que las personas han perdido de vista sus objetivos y logran que todos se alineen en un camino claro hacia adelante. Eliminan detalles irrelevantes, destilan situaciones complejas a su esencia y hacen que la persona adecuada tome una decisión, incluso si no son ellos. Son capaces no solo de detener planes malos antes de que sea demasiado tarde, sino de hacer que vuelvan a avanzar en la dirección correcta. Por lo general, el comportamiento que causa caos es involuntario y proviene de un buen lugar. A menudo, las personas simplemente carecen de contexto o no han desarrollado un ritmo para asegurarse de que los proyectos y planes se mantengan organizados. En casos raros, puede surgir por razones menos dignas: alguien quiere imponerse a los demás desviando la conversación hacia un tema favorito o forzando un cambio de planes. He sido culpable de causar mi parte de caos innecesario y siempre me he arrepentido. Sin embargo, tuve la suerte de contar con varios compañeros de equipo que no dudaron en señalarme esto a lo largo de los años. Desde entonces, he construido una caja de herramientas de prácticas para mejorar.
Lograr tus metas, en su forma más básica, puede ser un proceso muy simple. La receta es: personas, equipos y empresas alrededor del mundo fallan en esto todos los días, constantemente, desastrosamente, al no seguir esta simple ecuación. La principal razón por la que las metas fallan es simplemente la falta de uno de los elementos mencionados anteriormente, es decir, tener metas malas o malas revisiones. Metas malas son las siguientes: tu velocidad de sprint aumentó, completaste todos los tickets, lograste el 70% de tus OKRs en lugar del 62% - ¿a quién le importa? Sin otro contexto, estos son simplemente números que no tienen nada que ver con el valor comercial. Las metas valiosas tienen resultados obviamente valiosos. Cuantas más personas, equipos y empresas se centren en resultados de segundo orden, más se encamina tu empresa hacia una burocracia donde se valora más la narración que el impacto. Deberías tener una constante inquietud existencial que solo puede satisfacerse al confirmar que tus metas realmente importan. Revisar que tus metas importen es a menudo más rápido de lo que piensas, y es tiempo bien invertido. Otro problema principal en el establecimiento de metas es elegir metas que en realidad no son una prioridad.
Esta guía visual proporciona una visión clara de los selectores CSS más populares. Con ella, podrás entender y aplicar estilos a elementos HTML específicos, incluyendo tanto selectores tradicionales como pseudo-clases y pseudo-elementos.
El artículo se enfoca en el uso de GNU grep y algunas alternativas más modernas para buscar archivos y solucionar problemas relacionados con la búsqueda de información en ellos. Además, se menciona la importancia de tener instalado GNU grep, ya que ofrece más funcionalidades que otras herramientas similares.
En la creación de casos de prueba, es importante recordar mantener la simplicidad. De esta manera, se facilita la identificación y solución de problemas cuando surjan. Por lo tanto, cada prueba debe contener solo un caso de prueba y estar enfocada en probar una funcionalidad o característica específica.
El reenvío de puertos local en SSH te permite crear un puerto local que se reenvía a un puerto remoto. Esto es útil cuando quieres acceder a una página web alojada en un servidor remoto que solo es accesible a través de la interfaz de bucle local. Con el reenvío de puertos local, puedes acceder a ese servidor desde tu máquina local. En el caso del reenvío de puertos remoto, es lo contrario: puedes acceder a un servidor remoto desde una máquina local que no tiene acceso directo a ese servidor, utilizando otro servidor como intermediario para establecer la conexión.
Las reglas de especulación se pueden utilizar para precargar y prerrenderizar las navegaciones a páginas posteriores, lo que permite cargas de página mucho más rápidas, e incluso instantáneas, mejorando en gran medida los Core Web Vitals para estas navegaciones adicionales. Depurar las reglas de especulación puede ser complicado, especialmente para las páginas prerrenderizadas, ya que estas se renderizan en un renderizador independiente, como una pestaña oculta en segundo plano que reemplaza la pestaña actual cuando se activa. Por lo tanto, las opciones habituales de DevTools no siempre se pueden utilizar para depurar problemas. El equipo de Chrome ha estado trabajando duro para mejorar el soporte de las DevTools para la depuración de reglas de especulación. En esta publicación, verás todas las diferentes formas de utilizar estas herramientas para entender las reglas de especulación de una página, por qué pueden no estar funcionando y cuándo los desarrolladores pueden utilizar las opciones más familiares de DevTools, y cuándo no. Hay muchos términos con "pre-" que pueden ser fácilmente confundidos, así que vamos a empezar con una explicación de estos. Para más detalles, consulta este documento del panorama tecnológico de precarga. Las reglas de especulación se pueden utilizar para precargar el documento de la próxima navegación. Por ejemplo, al insertar el siguiente JSON en una página, next.html y next2.html serán precargados. Las reglas de especulación utilizadas para prefetches de navegación tienen algunas ventajas sobre la antigua sintaxis , como una API más expresiva y los resultados almacenados en la memoria caché en lugar de la caché de disco HTTP.
El Tao de Go implica trabajar en armonía con el lenguaje y el problema en lugar de intentar forzarlos a adaptarse a nuestras necesidades. Es escribir código con amabilidad y compasión, pensando en los seres humanos que lo utilizarán y facilitándoles la vida a través de un diseño cuidadoso y detalles bien pensados. Además, implica ser generosos con aquellos que leerán nuestro código, creando nombres descriptivos, abstracciones profundas y brindando claridad y simplicidad en nuestras implementaciones.
La estimación ágil es una disciplina llena de desafíos que desempeña un papel fundamental en el éxito de los proyectos. Es importante recordar la importancia de establecer plazos realistas y evitar caer en la tendencia de sobre estimar o subestimar, ya que esto puede llevar a retrasos y pérdida de calidad en el producto final.
¡Esta nueva forma de implementar y utilizar Shadow DOM directamente en HTML es increíblemente innovadora! Proporciona a los desarrolladores una mayor flexibilidad y control sobre la estructura y los estilos de los elementos web, lo cual es muy beneficioso.
In situaciones como esta, es importante comunicar de manera clara y amable que, si bien no podemos ofrecer soporte telefónico, estamos disponibles para ayudar a través de otros canales de comunicación para resolver sus problemas de la mejor manera posible. Nuestro objetivo principal es garantizar la satisfacción del cliente y encontrar una solución adecuada a sus necesidades.
A menudo se sigue un enfoque convencional para crear una estrategia tecnológica, que sugiere comenzar con el estado actual, determinar el estado futuro y construir el plan para llegar allí. Sin embargo, este enfoque a menudo resulta en una lista de deseos de todas las cosas que podrían hacerse. Una estrategia tecnológica poderosa se trata tanto de lo que se excluye como de lo que se incluye.
El autor de este artículo cuenta su experiencia al intentar encontrar una solución para recargar un documento HTML sin perder los parámetros de consulta en la URL. A pesar de su búsqueda, no encontró una respuesta sin JavaScript y también reflexiona sobre cómo es común recibir respuestas en línea que sugieren utilizar JavaScript en todo momento.
Los sistemas de gestión del tiempo son marcos diseñados para ayudarte a gestionar mejor el tiempo de tus empleados y reducir costos. Si no tienes un sistema efectivo de gestión del tiempo dentro de tu conjunto de tecnologías, no estás aprovechando al máximo el potencial de tu equipo. Los sistemas de gestión del tiempo van desde simples rastreadores de hábitos de productividad hasta sistemas complejos de grado empresarial. De cualquier manera, te ayudarán a tomar el control de tu tiempo y aumentar tu productividad. No tienes nada que perder y mucho que ganar. Con una serie de técnicas de gestión del tiempo a tu disposición, seguramente habrá una que sea perfectamente complementaria a tu trabajo. Prueba un sistema, incorpora algunos métodos de productividad o crea tu propio sistema personalizado de gestión del tiempo utilizando una combinación de diferentes enfoques. ¡Vamos a conocer los diferentes enfoques! "Una lista de tareas mejorada" - The Muse. La Regla 1-3-5 te anima a abordar una tarea grande, tres de tamaño mediano y cinco pequeñas al día. Alex Cavoulacos, cofundador y director de operaciones de The Muse, inventó este sistema para mantenerse organizado. Muchos de sus compañeros de trabajo en The Muse ya han adoptado este método. Su simplicidad atraerá a muchos otros.
La estrategia verdaderamente efectiva es aquella que aborda la realidad de sistemas complejos, aprovecha las fortalezas de la naturaleza humana y justifica y explica las decisiones que llevan al resultado deseado. No se trata del formato del documento, sino de cómo se comunica "cómo vamos a ganar".
El artículo proporciona una perspectiva interesante sobre el tema y presenta evidencia convincente para respaldar su argumento. Es una lectura informativa que amplía el entendimiento de la situación.
Un registro de decisiones de arquitectura (ADR) es un documento que captura una decisión de arquitectura importante junto con su contexto y consecuencias.
Después de aprender un poco más sobre la accesibilidad web el año pasado, he estado explorando algunos de los elementos HTML menos comunes y realizando cambios en este sitio web, como envolver el texto de las publicaciones de este blog en etiquetas y agregar una etiqueta en las plantillas de diseño del sitio web (este sitio web está construido con Eleventy). Anteriormente, ya había realizado algunos trabajos para asegurarme de que los elementos y estuvieran bien estructurados para las imágenes con subtítulos asociados, y me había impresionado la implementación de diferentes notas al pie o notas al margen de varios Recursantes, por lo que había estado pensando que sería interesante ver qué otros diseños interesantes eran posibles solo con HTML.
Los Git Hooks son una función incorporada de Git que permite a los desarrolladores automatizar tareas y hacer cumplir políticas a lo largo del flujo de trabajo de Git. Al escribir scripts personalizados que Git pueda ejecutar en puntos clave del proceso de desarrollo, los Git Hooks permiten a los desarrolladores optimizar su flujo de trabajo, garantizar la calidad del código y hacer cumplir políticas específicas del proyecto. En esta guía, exploraremos los Git Hooks y te mostraremos cómo utilizarlos de manera efectiva.
Construir una carrera exitosa requiere tiempo, aprendizaje y mucho trabajo duro, al igual que Roma no se construyó en un día y ningún CEO se convirtió en CEO de la noche a la mañana. Si no quieres arriesgar el desarrollo profesional de tus empleados, necesitas contar con un sólido plan de desarrollo profesional. En este artículo te brindamos 7 pasos prácticos para escribir uno, así como ejemplos de un plan de desarrollo profesional para cualquier industria y puesto. Los planes de desarrollo profesional son documentos dinámicos y cambiantes que reflejan las habilidades y metas de cada empleado individual, y que evolucionan a medida que adquieren nuevas habilidades y continúan su educación para alcanzar sus objetivos profesionales. Puede parecer mucho trabajo para tu equipo de recursos humanos, ¿pero por qué deberías considerar crear uno para tus miembros del equipo? Aquí tienes algunas buenas razones.
Este artículo proporciona información valiosa sobre el impacto de la contaminación plástica en los océanos y la importancia de tomar medidas urgentes para combatirla.
Si quieres dominar las expresiones regulares y entender cómo funcionan en JavaScript, este libro es para ti. Las expresiones regulares pueden ser intimidantes al principio, pero este libro te enseñará de manera clara y concisa cómo utilizarlas no solo en herramientas de prueba de regex, sino también en JavaScript. Además, podrás aplicar lo aprendido en otros lenguajes de programación como Python y PHP. ¡Disfruta de la lectura!
Me encantan las visualizaciones como esta: ese era mi modelo mental de las URL hasta que indexé los enlaces de mi blog y me di cuenta de que hay más en "dominio" de lo que se ve a simple vista.
A partir del Manifiesto GNU de Richard Stallman en los años 80, se considera como el texto primordial del software libre y abierto. A lo largo del tiempo, se han expandido y codificado los principios enunciados en la Definición de Software Libre y han sido adoptados en diferentes grados por distintas organizaciones. Sin embargo, es importante señalar que estas definiciones expresan derechos individuales y no colectivos, lo cual refleja la mentalidad individualista y capitalista que subyace en el movimiento del software libre.
Durante las últimas semanas he visto a algunas personas tuitear o escribir sobre la carga que implica ser mantenedor de código abierto o ser una persona pública en una comunidad de programación. El tema de las responsabilidades de mantenimiento del software de código abierto ha crecido en los últimos años y, habiendo experimentado agotamiento en mi propio trabajo de código abierto, considero importante hablar sobre el estrés que supone para las personas que contribuyen en su tiempo libre. Como mantenedor de código abierto, recibo mi parte justa de correos electrónicos y mensajes directos en Twitter pidiendo ayuda con problemas específicos. Durante muchos años, solía responder algo similar, que proporciono solo software libre y no soporte gratuito. Tal vez esto sea útil para otros y un estímulo para mantenerse firme: Esto está formulado de manera intencional para evitar menospreciar al que pregunta por pedir ayuda a un mantenedor de código abierto en privado, ya que es posible que no estén al tanto de mis limitaciones de tiempo o del código abierto y el soporte. Eso está bien, nadie puede saberlo todo. En cambio, mi principal argumento es trasladar el soporte a un foro público, para que la comunidad de usuarios libres de mi software puedan ayudarse mutuamente y proporcionar algo "gratis" a cambio. Además, esta fraseología "amable y defensiva" es sólida para casi cualquier tipo de mensaje y rara vez necesito ajustarla después de copiarla en un correo electrónico o un mensaje directo en Twitter.
El libro Advanced Web Application Architecture (AWAA) de Matthias Noback es excelente en su totalidad. Deberías comprarlo y seguir sus consejos. Es un maravilloso compañero o continuación de mi propio libro Modernizing Legacy Applications in PHP, que aún es gratuito, aunque por supuesto estaré encantado de recibir tu dinero.
Los equipos autoorganizados se basan en la confianza, la colaboración y el empoderamiento de los individuos. Estos equipos tienen la capacidad de tomar decisiones, definir sus propios procesos y trabajar de forma autónoma, permitiendo a cada miembro contribuir con sus habilidades y experiencia únicas. A través de este artículo, espero inspirar y capacitar a los lectores para explorar nuevas formas de gestionar equipos y promover el éxito sostenible en un mundo en constante cambio.
Me alegra ver que el proyecto simpy cuenta con una Defensa de Diseño (DoD). Todos los lenguajes y proyectos tienen características peculiares que pueden no tener sentido a primera vista, pero en muchos casos existen razones válidas detrás de estas decisiones de diseño. Es importante comprender que los diseñadores no son tontos, sino que están resolviendo problemas específicos o trabajando dentro de ciertas restricciones.
Las lecciones sobre la calidad del código comienzan en las primeras semanas de aprendizaje de programación, cuando a alguien nuevo en el campo se le enseñan los conceptos básicos de la nomenclatura de variables y se le explica por qué los lenguajes de programación tienen comentarios. Continúan en innumerables publicaciones de blogs y en cada debate sobre una solicitud de extracción. La formación en calidad de código impregna toda la carrera de una persona, pero es muy fácil perder de vista el motivo.
Los sistemas de IA cada vez más poderosos se están lanzando a un ritmo cada vez más rápido. Esta semana vio el debut de Claude 2, probablemente el segundo sistema de IA más capaz disponible para el público. Sin embargo, aún ninguna empresa de IA parece haber proporcionado documentación para el usuario, en su lugar, las únicas guías de usuario disponibles parecen ser hilos de influenciadores en Twitter. La documentación por rumor es una elección extraña para organizaciones que dicen estar preocupadas por el uso adecuado de sus tecnologías, pero aquí estamos.
Recientemente he estado intentando usar correo electrónico y simplemente no sé cómo debería sentirme al respecto. Hay muchos problemas fundamentales con él que parecen filtrarse en cada parte del protocolo, experiencia de usuario y todo esto simplemente me deja incierto acerca de su futuro.
He estado escribiendo recientemente sobre servidores e infraestructura de internet. Mucha de esta escritura se basa en ejecutar software de servidor en una máquina virtual o en una máquina física, en lugar de utilizar una solución más "en la nube", lo cual es algo impopular en estos días. Sin embargo, creo que es una forma bastante razonable de hacer las cosas y no es tan difícil como muchas personas piensan. Este artículo describe de forma sencilla cómo ejecuto la mayoría de los servidores que opero. Principalmente describe el funcionamiento del software de servidor que he escrito yo mismo, ya que esto me permite hacerlo mucho más robusto y fácil de implementar que la gran mayoría del software disponible en el mercado. Este describe aproximadamente la configuración para thoughts.page, hanabi.site, cgmserver, phonebridge y otros servicios. Estas aplicaciones se ejecutan en máquinas virtuales de DigitalOcean, en el nivel de $5/mes. (Algunas de ellas están en la misma máquina virtual, otras en máquinas virtuales diferentes, pero hablaré más de eso más adelante). Las máquinas virtuales utilizan Debian 10. El software de servidor está escrito en Rust. Está enlazado estáticamente y todo el html, css, configuración, secretos, etc. están compilados en el binario. Logro esto con rust-musl-builder y rust-embed. Lo que significa que la implementación solo requiere copiar un solo archivo al servidor. Se pueden lograr cosas similares en lenguajes como Go, C++, etc., y probablemente en otros, aunque no conozco los detalles exactos de cómo hacerlo en esos lenguajes. Si estás utilizando un lenguaje que no te permite hacer esto fácilmente, una buena alternativa sería construir un contenedor Docker como artefacto de compilación, lo que también te dará un solo archivo para implementar. Utilizo systemd para asegurarme de que el binario se inicie cuando se inicie el servidor. La mayoría de mis archivos de unidades de systemd tienen 9 líneas y son extremadamente básicos. systemd en sí mismo es bastante complicado, pero simplemente iniciar un servidor al iniciar no te expone a la mayor parte de esa complejidad. Utilizo un simple script de implementación que copia el binario al servidor y reinicia el servidor, teniendo un poco de cuidado para permitir deshacer cambios y asegurarme de que siempre haya una versión válida en ejecución, incluso si se interrumpe la conexión mientras estoy implementando. Los programas que requieren una base de datos utilizan SQLite, lo que significa que todo el estado de la aplicación se guarda en un solo archivo. Tengo dos soluciones de respaldo redundantes: diariamente, se realiza una copia de seguridad a través del comando .backup de SQLite, y se guarda en Tarsnap. El script para hacer esto se ejecuta mediante cron. También uso Litestream para transmitir una copia de la base de datos al almacenamiento de DigitalOcean Spaces cada segundo, con capturas de pantalla cada 6 horas. Esto me da mucha confianza de que incluso en los casos más desastrosos, es poco probable que pierda una cantidad significativa de datos, y si quisiera estar más seguro, podría aumentar la frecuencia de las copias de seguridad de Tarsnap. Todos mis servidores se ejecutan detrás de nginx como proxy inverso. La principal ventaja de esto es que nginx puede terminar el TLS, lo que significa que mis aplicaciones no necesitan preocuparse por HTTPS en absoluto. Obtengo mis certificados HTTPS de Let's Encrypt a través de certbot, que se encarga de la renovación automática para que yo no tenga que hacer nada para mantenerlo funcionando. Así es como se ve mi configuración de Nginx para hanabi.site. Nginx también funciona muy bien para servir archivos estáticos, simplemente puedes usar scp o rsync para copiarlos desde tu computadora al servidor. Esta es una configuración simple y extremadamente robusta. Todo el software en el camino de los servicios (excepto las aplicaciones en sí) ha existido durante décadas y ha sido ampliamente probado en batalla. Prácticamente no hay mantenimiento involucrado en mantener un sitio como este en funcionamiento, siempre y cuando siga pagando mis facturas de DigitalOcean, seguirá funcionando. Las únicas veces que mi monitoreo ha detectado problemas con estos sitios han sido problemas transitorios de conexión en DigitalOcean. Debo hacer actualizaciones ocasionalmente: Debian tiene 5 años de soporte, por lo que deberé actualizar a Debian 11 en aproximadamente dos años y medio, y si (cuando) vuelva a ocurrir algo como Heartbleed, tendré que parcharlo. Sin embargo, eventos como esos son bastante raros. Una queja sobre esta configuración es que pagar $5/mes por cada servicio que deseas ejecutar es mucho. Esto es ciertamente molesto, pero es bastante factible ejecutar varios servicios en la misma VM. Para proporcionar aislamiento, ejecuto cada servicio como su propia cuenta de usuario de Unix. Esta forma de aislamiento ha existido desde los inicios de Unix y parece ser bastante robusta. Si deseas tener más aislamiento, también puedes usar systemd-nspawn o firejail. Normalmente no me molesto, si algo es realmente importante para mantenerlo seguro, simplemente pagaré los $5/mes adicionales para ejecutarlo en su propia VM. Entonces, el proceso para configurar un nuevo proyecto se ve así: [Translation ends]
Este artículo ofrece una perspectiva interesante sobre el impacto de las redes sociales en la sociedad actual, destacando tanto los aspectos positivos como los negativos que esta tecnología conlleva. Invita a reflexionar sobre cómo estamos utilizando estas plataformas y cómo podemos encontrar un equilibrio saludable en su uso.
Me encanta el diseño web y la tipografía de los sitios web es una parte clave de eso. Muchas personas piensan que la tipografía simplemente se refiere a la fuente (o familia de fuentes) que eliges para tu sitio web, pero es mucho más que eso. Es el peso del texto, el ancho de las líneas, los espacios entre esas líneas. Básicamente, es cada aspecto del texto en tu sitio.
En este artículo, Kaz Nejatian, VP de Producto y COO de Shopify, habla sobre cómo enfocarse en la artesanía del producto y evitar la acumulación de reuniones a medida que la empresa crece. El objetivo de Shopify es convertirse en el paraíso de los artesanos, eliminando obstáculos para que puedan hacer su mejor trabajo y ser recompensados por ello.
Cuando me encuentro con un nuevo producto, una de las primeras cosas que viene a mi mente es cómo implementaron el CSS. Esto no fue diferente cuando me encontré con Threads de Meta. Rápidamente exploré la aplicación móvil y me di cuenta de que podía previsualizar publicaciones públicas en la web. Esto me brindó la oportunidad de investigar más a fondo. Me encontré con algunos hallazgos interesantes, los cuales discutiré en este artículo. ¡Vamos a sumergirnos! Uno de los casos de uso más destacados de CSS Grid en una aplicación de producción se encuentra en Threads. CSS Grid se utiliza para construir el diseño de las publicaciones. Echa un vistazo: Un dato curioso: la primera columna de la cuadrícula se llama --barcelona. Me gustaría saber la razón detrás de esta elección. El diseño de las publicaciones consiste en una cuadrícula de 2 columnas * 4 filas. No hay un contenedor principal; cada elemento dentro de la publicación se coloca manualmente utilizando las propiedades grid-column y grid-row. El avatar se posiciona en la primera columna y abarca las dos primeras filas. Vale la pena mencionar la presencia de padding-top. Aunque no pude encontrar una razón específica en el código de producción, parece afinar la alineación de la interfaz de usuario. Aquí hay una comparación antes y después de un avatar con y sin el tratamiento de padding-top.
En mi experiencia como investigador y trabajador de la industria, he descubierto que el proceso de diseño basado en la abstracción es eficaz para resolver problemas complejos tanto en entornos de investigación como en entornos de producción. Este enfoque permite manejar la complejidad de manera organizada y facilita la consecución de los objetivos de producción de manera rápida y segura.
Al buscar a un gran líder, es importante encontrar a alguien que pueda llevar a cabo una visión y obtener resultados. Algunos de los habilidades clave de liderazgo incluyen la capacidad de comunicación, la toma de decisiones, la motivación y la resolución de problemas.
En la última década, el éxito del cliente (CS) ha ganado popularidad como una categoría emergente, pero muchas empresas se están dando cuenta de que no saben qué resultados únicos debe lograr el CS en primer lugar. Sin embargo, cortar el CS no es necesariamente la solución, en su lugar, es importante mantener un enfoque claro en la salud del cliente como indicador principal de los ingresos y productos de la empresa.
Regex obtiene una mala reputación por ser muy complejo. Eso es justo, pero también creo que si te enfocas en un subconjunto clave de regex, no es tan difícil. La mayoría de la complejidad proviene de varios "atajos" que son difíciles de recordar. Si ignoras esos atajos, el lenguaje en sí es bastante pequeño y portátil en diferentes lenguajes de programación. Vale la pena conocer regex porque puedes hacer MUCHO con muy poco código. Si intento replicar lo que hace mi regex utilizando código procesal normal, a menudo es muy detallado, con errores y significativamente más lento. A menudo lleva horas o días hacerlo mejor que un par de minutos escribiendo regex.
Recientemente charlé con un experimentado consultor de TI. Mucha experiencia. ¿Su consejo? Nunca poner fechas en un plan. Creo que eso suena familiar para muchas personas. Porque sucede: en una organización disfuncional, algunas personas utilizan las fechas para castigar y culpar. Pero lo que me sorprendió es la sumisión como reacción. A veces, los actores maliciosos utilizan una pieza esencial de información, por lo que responden ocultándola a todos. No lo compro. No lo hacemos en Amazon. No lo hicimos en mi última empresa, ni en la empresa anterior a esa (o la anterior). Y no es porque estos lugares fueran iluminados. Es porque las personas en las trincheras construyendo cosas tienen las herramientas para superar a los acusadores. Intentaré explicar estas herramientas aquí, y cómo es tomar el control de tu plan, compartir con confianza las fechas que posees y ajustar el plan según sea necesario sin disculparte.
identificar y comprender las necesidades, deseos, dolores y emociones de tu cliente ideal, lo que facilita la creación de estrategias efectivas para satisfacer sus demandas y establecer una conexión emocional con ellos.
He encontrado una herramienta visual que está cambiando profundamente la forma en que los equipos trabajan. Funciona tan bien que me siento compelido a escribir un libro al respecto. Pero eso llevará tiempo y quiero que lo tengan hoy, así que voy a dar una introducción en esta publicación de blog. Sospecho que tendrán una de dos reacciones. O leerán este artículo por encima, concluirán que es obvio y que ya lo hacen, y se perderán el punto por completo. O quedarán con ganas de más. Para aquellos en el primer grupo, les animo a que se detengan y busquen lo nuevo aquí, y lo prueben. He estado entrenando a equipos de productos durante tres años en descubrimiento moderno de productos y este cambio único ha tenido un impacto mayor en la forma en que los equipos trabajan que todo lo demás que hago con ellos combinado. Para aquellos de ustedes en el último grupo que quedarán con ganas de más, estoy escribiendo lo más rápido que puedo. Espero tener el libro listo a principios de 2017 y estaré publicando pequeños fragmentos en el camino. Sigamos adelante. Por favor, ténganme paciencia, ya que esto tomará un poco de preparación. Todo comenzó hace unos meses... Varios equipos, en una o dos semanas, empezaron a decirme que aunque estaban aprendiendo mucho en nuestras sesiones juntos, les costaba ver el panorama general. Pasaríamos de revisar guías de entrevistas una semana a discutir resultados de experimentos la siguiente. Cada parte por sí misma era útil, pero los equipos no estaban aprendiendo cómo unirlo todo por su cuenta. Siempre tenía que decirles qué hacer a continuación. Mi objetivo como entrenador es hacer que los equipos hagan descubrimiento continuo por sí mismos lo más rápido posible. Así que sabía que algo tenía que cambiar. Seguía preguntándome, ¿cómo decido qué sigue? Y, lo que es más importante, ¿cómo enseño esto a los equipos? Comencé intentando ser más explícito acerca de qué es el descubrimiento de productos moderno. Eso llevó a este video.
Participé en un ejercicio de lluvia de ideas basado en el lienzo de producto de Roman Pichler mientras vivía en Sydney. Este taller ayudó a dar forma a la dirección de nuestro desarrollo de productos futuros. En ese momento, creo que no entendí completamente el valor de nuestra lluvia de ideas. Sin embargo, el artefacto de ese taller resultó ser increíblemente útil para alinear a nuestro equipo y comunicarnos con los interesados. A lo largo de los años, me he inspirado en ese taller y en plantillas relacionadas de gestión de productos, y he desarrollado mi propia versión del lienzo de visión del producto (desplázate hacia abajo para ver alternativas). Cada sección del lienzo proporcionará los estímulos para un taller que puedes facilitar con tu equipo. Cuando hayas terminado, tendrás una clara visión del producto con evidencia de apoyo que se puede utilizar con tu equipo y los interesados desde el descubrimiento hasta la entrega y el crecimiento. Creo firmemente que este taller es como una navaja suiza para los equipos de producto. El mismo formato y estímulos se pueden adaptar para enmarcar el desarrollo de funciones futuras, brainstorming de una nueva idea de producto o llevar a cabo un ejercicio de visión a 3 años. Tu taller se puede realizar en persona, utilizando una pared grande, cinta washi y algunas notas adhesivas, o en línea utilizando una herramienta de pizarra virtual como Miro o Mural (obtén la plantilla de Miro). Me gusta bloquear 4 o 6 horas para que la actividad no se sienta apresurada. Esto proporcionará suficiente tiempo para trabajar en grupos pequeños, discutir, compartir, mapear afinidades y luego llegar a un acuerdo. Además, me gusta combinar este taller con otras actividades para crear una semana de inicio perfecta (hay una lista de ideas al final de este artículo). Si estás realizando este taller de forma virtual, recomiendo dividir tu facilitación en una lluvia de ideas asincrónica y una sincronización de retroalimentación. Puedes permitir que los participantes hagan lluvias de ideas anticipadamente utilizando tu herramienta de pizarra virtual, o para reducir el sesgo, puedes recopilar respuestas a los estímulos utilizando una herramienta como Google Forms. Antes del taller, mapea las notas adhesivas agregadas y etiqueta los grupos por tema. Al comienzo de tu taller, da a los participantes suficiente tiempo para leer las respuestas y agregar nuevas notas adhesivas para construir sobre lo que ya está allí. Enfoca tu tiempo de sincronización en discutir secciones sin una alineación clara. Independientemente del formato de facilitación, tu lluvia de ideas comenzará con la declaración del problema. A continuación, pasa a tu público objetivo, sus necesidades y características que podrían satisfacer esas necesidades. Luego, mira la propuesta de valor única de tu producto, cómo medirás el éxito y cómo sonarían los usuarios satisfechos. Termina creando principios de experiencia y tu declaración de visión del producto.
Una vez te conviertes en un ejecutivo de ingeniería, comienza a correr un cronómetro invisible en segundo plano. Tic, tic, tic. En algún momento, ese cronómetro sonará y alguien se acercará apresuradamente a ti exigiendo una estrategia de ingeniería. No quedará claro lo que quieren, pero lo necesitarán de verdad, mucho. Si tan solo tuviéramos una estrategia de ingeniería, te suplicarán con la mirada, las cosas estarían bien. Durante mucho tiempo, esa mirada suplicante me acechó, porque simplemente no sabía qué darles: ¿qué es una estrategia de ingeniería? Desde las Magnitudes de exploración, que describían el enfoque aspiracional de Stripe para equilibrar la estandarización técnica y la exploración, hasta la redacción de la estrategia de ingeniería del ingeniero del personal (que reescribí cuatro veces desde cero), seguí iterando mi definición. Al operar en el rol ejecutivo, finalmente he podido solidificar mi punto de vista sobre lo que una estrategia de ingeniería debe lograr y cómo un ejecutivo de ingeniería puede guiar la creación de esa estrategia. Comenzando desde donde estaba hace unos años, sin saber muy bien qué era una estrategia de ingeniería, trabajaremos a través de: Si bien la organización de ingeniería puede tener muchas estrategias, solo hay una estrategia de ingeniería general. Este documento, a menudo implícito y nunca escrita, es tu documento constitucional para dirigir la ingeniería y escribirlo es una de las cosas más valiosas que harás como ejecutivo de ingeniería. Estoy comenzando con un ejemplo de estrategia para demostrar los conceptos que trabajaremos en este fragmento. Si prefieres terminar con este ejemplo, te animo a saltar esta sección y volver después de leer el resto. Los principales factores que queremos abordar en nuestra estrategia son (por ejemplo, nuestro diagnóstico de nuestras circunstancias):
El diseño de interacción puede parecer que no tiene ciencia, solo intuición y sensación. Incluso los investigadores tienen dificultades para fundamentar las prácticas de diseño de interacción en la ciencia, tratándolas inherentemente como una caja negra misteriosa. Sin embargo, a través de la reflexión y la experimentación, se pueden descubrir detalles invisibles que crean experiencias fluidas y satisfactorias para los usuarios.
El autor de este artículo explica cómo tmux, conocido como un "multiplexor de terminales", es una herramienta útil para manejar varias ventanas y divisiones en una sola ventana de terminal. También destaca su utilidad cuando se trabaja con servidores remotos o Raspberry Pi a través de SSH.
Si estás creando GitHub Actions a través de la interfaz de GitHub y utilizando el URL https://github.com///actions/new, ten en cuenta que la plantilla para configurar la construcción está dañada. Afortunadamente, todos los problemas pueden solucionarse. Consideremos una plantilla sencilla generada por GitHub para construir código en Python y mejorémosla.
Durante la segunda mitad de la década de 2010, el movimiento DevOps ganó impulso masivo en la industria de SaaS. Montado en esta ola y respaldado por los esfuerzos de marketing de LaunchDarkly, los feature toggles se convirtieron rápidamente en una herramienta esencial para las operaciones de ingeniería utilizadas por prácticamente todas las empresas de SaaS. En el contexto de DevOps, las feature flags son especialmente útiles para la implementación continua. Al separar la publicación de la implementación, permiten que el marketing y la ingeniería operen de forma independiente, lo que facilita a los ingenieros implementar continuamente características en progreso. Sin embargo, desde el principio, se hicieron evidentes algunas desventajas. Algunos problemas comunes se pueden observar a medida que la adopción del patrón de feature toggle se ha extendido en la industria.
La mayoría de los consejos empresariales suelen sufrir de este sesgo de supervivencia. Leemos sobre los éxitos, pero ¿qué hay de los negocios que "nunca llegaron a casa"? ¿Podría el fracaso contener más lecciones que el éxito?
En este artículo se habla sobre el proceso en el cual los experimentados reciben a los inexpertos bajo sus alas e iluminan el camino por delante. A lo largo de mi carrera he sido mentor y mentorizado y puedo decir que mayormente ha sido una experiencia satisfactoria. El mentorazgo es parte integral del crecimiento personal y profesional, tanto para el mentor como para el mentorizado, y marca la diferencia en equipos y personas exitosas.
En este artículo se dan algunos consejos para una migración de datos exitosa. Se recomienda utilizar motores de base de datos modernos que incluyan mejoras en el rendimiento de las operaciones DDL, así como realizar modificaciones en horarios de baja actividad y considerar migraciones lentas para tablas muy grandes.
Si eres como yo, es posible que hayas pasado por alto este atributo en el pasado, asumiendo que no son más que la salida del editor de gráficos vectoriales favorito de tu diseñador. Aunque eso puede ser cierto, también es una simplificación excesiva. Verás, entender el funcionamiento interno de este atributo resultó ser una gran ventaja para mis habilidades de front-end; me permitió hacer cosas que nunca pensé posible, como hacer esta animación de un cuadrado flexible. Esta guía es una inmersión interactiva en el atributo "d", también conocido como datos de trayectoria. ¡Es el artículo que desearía haber tenido cuando aprendí por primera vez sobre las trayectorias SVG! A lo largo del camino, aprenderemos sobre los diferentes tipos de comandos de trayectoria y cómo usarlos para dibujar diversos íconos. ¡Comencemos! Aunque el atributo "d" puede parecer una especie de encantamiento mágico, en realidad es una serie de comandos que le dicen al navegador cómo debe dibujarse la trayectoria. Esto se vuelve un poco más obvio si limpiamos un poco el atributo "d".
La representación más caricaturesca del mejoramiento progresivo es pensar que significa hacer que todo funcione sin JavaScript. No. El mejoramiento progresivo significa asegurarse de que la funcionalidad principal funcione sin JavaScript.
El trabajo en pareja se ha adoptado ampliamente en el desarrollo de software desde que se hizo popular con el surgimiento de la Programación Extrema y otros enfoques ágiles de desarrollo. Esta práctica, en la que dos desarrolladores trabajan en la misma máquina y la misma tarea, tiene ventajas muy interesantes en comparación con trabajar en solitario. Trabajar en pareja resulta en una mayor calidad, difunde el conocimiento entre los miembros del equipo y, en última instancia, aumenta la satisfacción.
¡Bienvenidos al curso! Espero que este curso brinde una gran experiencia de aprendizaje. La diseño del sistema es el proceso de definir la arquitectura, interfaces y datos para un sistema que cumpla con requisitos específicos. El diseño del sistema satisface las necesidades de tu empresa u organización a través de sistemas coherentes y eficientes. Requiere un enfoque sistemático para construir e ingeniar sistemas. Un buen diseño del sistema nos exige pensar en todo, desde la infraestructura hasta los datos y cómo se almacenan.
Uber's corporate value "Let Builders Build" can have its challenges when it comes to decision-making within the company, as highlighted in a discussion between an infrastructure engineering employee and a product engineering manager. While values alone may not magically transform a company's culture, they can be beneficial in consolidating cultural changes that have already been made.
Si dos ejecutivos amigables se encuentran para cenar, es probable que comiencen intercambiando lo desordenadas que están las cosas en el trabajo. Las iniciativas están atrasadas, los despidos están ocurriendo en todas partes, el equipo está en desorden. Luego se reirán y cambiarán de tema. A veces, uno de los ejecutivos no puede hacer ese cambio y seguirá quejándose durante toda la comida. Tener problemas es parte de ser un ejecutivo, pero cuando eres ese segundo ejecutivo que no puede apagar la frustración, es hora de empezar a pensar en irse. Dejar un trabajo ejecutivo es mucho más complicado que dejar un puesto de contribuyente individual y afectará significativamente al equipo y a la empresa a tu alrededor. También puede tener un impacto potencial en tu currículum; frecuentemente hablo con ejecutivos que odian su trabajo, pero no quieren irse porque les preocupa cómo se verá. "Si solo llego a dos años, se verá genial". Las apariencias son reales, y entiendo por qué las personas se envuelven en ellas. Yo mismo me he visto envuelto en mis propias apariencias en ocasiones. Dicho esto, cuanto más avanzo en mi carrera, más convencido estoy de que debemos pensar en dejar roles en el contexto de gestionar nuestra propia energía. Repasaremos: Finalmente, terminaremos con una discusión sobre cómo manejar el aspecto más difícil de todos, la indecisión. Al final, tendrás un marco para tomar la decisión de irte y una estructura para coordinar tu partida. En un sentido literal, decidir dejar tu trabajo es el primer paso para partir. Sin embargo, en una partida sin contratiempos, el primer paso ocurre años antes: construir el equipo para apoyar tu eventual transición fuera del negocio. Incluso si tienes la intención de quedarte en tu empresa actual para siempre, la vida puede sorprenderte rápidamente. Ciertamente, nunca imaginé que tendría un derrame cerebral en mis treinta y tantos años, con un bebé en casa, pero así sucedió. Tuve la suerte de liderar un equipo colaborativo que trabajó bien juntos en mi ausencia, pero eso no fue un accidente, fue el resultado de una planificación de sucesión continua. Esta planificación no necesita ser algo complicado:
Wow, Janet seems like a really interesting and useful language. Its simplicity and compatibility with different systems make it a great option for text-wrangling and scripting. Plus, the fact that you can distribute the programs without the need for additional installations is definitely a convenient feature.
En este artículo se discute la importancia de la construcción de marca en el ámbito de la ingeniería, tanto a nivel personal como organizacional. Aunque se enfatiza que el valor de construir una marca puede estar sobrevalorado, se destaca la importancia de mejorar el prestigio y se ofrece un plan de acción para aumentar el prestigio propio y de la organización. Al final del artículo, se le ofrece al lector herramientas para tomar la decisión de invertir en estas áreas.
El Libro Conciso de TypeScript ofrece una visión completa y concisa de las capacidades de TypeScript. Ofrece explicaciones claras que cubren todos los aspectos de la última versión del lenguaje, desde su poderoso sistema de tipos hasta características avanzadas. Ya seas un principiante o un desarrollador experimentado, este libro es un recurso inestimable para mejorar tu comprensión y habilidad en TypeScript. Este libro es completamente gratuito y de código abierto. Bienvenido al Libro Conciso de TypeScript. Esta guía te proporciona conocimientos esenciales y habilidades prácticas para el desarrollo efectivo en TypeScript. Descubre conceptos clave y técnicas para escribir un código limpio y robusto. Ya seas un principiante o un desarrollador experimentado, este libro sirve tanto como una guía completa como una referencia útil para aprovechar el poder de TypeScript en tus proyectos. Simone Poggiali es un experimentado Desarrollador Front-end Senior con pasión por escribir código de calidad profesional desde los años 90. A lo largo de su carrera internacional, ha contribuido en numerosos proyectos para una amplia gama de clientes, desde startups hasta grandes organizaciones. Empresas destacadas como HelloFresh, Siemens, O2 y Leroy Merlin han beneficiado de su experiencia y dedicación. Puedes contactar a Simone Poggiali en las siguientes plataformas: [list of platforms]
Lamentablemente, no puedo realizar comentarios sobre el contenido en este momento, ya que soy una Inteligencia Artificial y no tengo acceso directo a los artículos. Sin embargo, estoy aquí para ayudarte en cualquier otra consulta o duda que tengas.
Un ejemplo sería entender que cuando alguien compra un taladro, en realidad está contratando la capacidad de hacer agujeros en sus paredes o muebles, no solo el producto en sí. Esto permite a las empresas crear productos y servicios que satisfagan esas necesidades específicas de los clientes y así tener mayor éxito en el mercado.
En este artículo, el autor comparte su experiencia como Ingeniero de Plataforma en Sotheby's y las lecciones que ha aprendido sobre cómo hacer que la Ingeniería de Plataforma funcione. Destaca la importancia de la velocidad, la estabilidad y una mentalidad de producto en este tipo de trabajo.
CS 242 explora modelos de computación, tanto antiguos, como la programación funcional con el cálculo lambda (circa 1930), como nuevos, como la programación segura en memoria con Rust (circa 2010). El estudio de los lenguajes de programación es igualmente teoría y sistemas, observando cómo una comprensión rigurosa de la sintaxis, estructura y semántica de la computación permite el razonamiento formal sobre el comportamiento y las propiedades de sistemas complejos del mundo real. A la luz de la explosión cámbrica de nuevos lenguajes de programación de hoy en día, este curso también busca proporcionar una claridad conceptual sobre cómo comparar y contrastar la multitud de lenguajes de programación, modelos y paradigmas en el panorama de la programación moderna. Ver el cronograma abajo para una lista completa de temas. Prerrequisitos: 103, 110. Iteraciones anteriores de este curso: Otoño 2017.
Este artículo presenta una perspectiva valiosa y bien fundamentada sobre los desafíos que enfrentan los países en desarrollo en relación con la vacunación contra la COVID-19. Es importante tener en cuenta los obstáculos políticos, económicos y sociales que pueden obstaculizar la implementación exitosa de los programas de vacunación en estas regiones.
Este artículo habla sobre cómo el XML fue considerado como la solución para todos los problemas de programación, pero resultó ser una deuda técnica y útil solo para ciertas cosas. La lección aprendida es que no hay una bala de plata, cada herramienta debe evaluarse desde el punto de vista de sus pros y contras, y todo tiene un costo y compromisos implícitos.
En este artículo se cuestiona el método de los 5 porqués y se sugiere una alternativa para una retrospectiva más efectiva que permita recopilar múltiples y diversas perspectivas. Se argumenta que preguntar "por qué" puede llevar a respuestas irrelevantes o simplistas, mientras que preguntar "cómo" resulta más útil para identificar las condiciones que permitieron que se produjera un evento y proporcionar datos operativos ricos.
RSS sigue siendo un protocolo activo y en uso, aunque no está en el mainstream y muchas personas no saben cómo usarlo. Este post explica cómo dar estilo a los feeds RSS para educar a los lectores y hacerlos más atractivos al mismo tiempo.
El modelo "Perro, Vaca, Estrella" puede ser una herramienta útil para priorizar funcionalidades o productos en una empresa, pero es importante recordar que las soluciones deben estar acordes a los problemas y que las situaciones cambian constantemente. Es esencial conocer y entender el problema antes de plantear cualquier solución, independientemente de si se trata de una metodología ágil o no.
Los equipos de ingeniería pueden mejorar a largo plazo su velocidad de desarrollo al reducir la velocidad a corto plazo. El término "deuda técnica" puede generar debate, pero es importante entender que implica una elección consciente en el desarrollo del producto, y no solo una etiqueta para los problemas que los ingenieros se enfrentan en el camino.
Este artículo ofrece un tip útil para hacer que tus scripts de bash sean más resistentes, garantizando que se realicen las operaciones de limpieza necesarias, incluso si ocurre algo inesperado. La clave es usar el pseudo-signal EXIT proporcionado por bash para atrapar comandos o funciones que se deben ejecutar cuando el script se cierra por cualquier motivo.
El artículo presentado ofrece una exploración interesante sobre la relación entre el tiempo libre y la felicidad de los trabajadores. Las conclusiones destacan la importancia de promover una mayor equidad en la distribución del tiempo libre y el cuidado de la salud mental de los empleados.
En este artículo, se presenta una técnica llamada "cambio cíclico" que permite seleccionar un valor de una lista en CSS a través de una única propiedad personalizada. Esta técnica se basa en el popular "cambio de espacio" y se pueden pasar los valores a través de múltiples métodos, tales como un pseudo-elemento o una API adicional.
La capacidad de adaptarse y cambiar decisiones en el futuro es más importante que la perfección en cada decisión tomada al diseñar sistemas. Aunque cada decisión individual es importante, enfocarse en la facilidad de modificar decisiones en lugar de lograr la perfección en cada momento es más prudente para adaptarse a los requisitos cambiantes y reducir la incertidumbre en el dominio del problema.
Este artículo explica cómo el color de un párrafo puede variar dependiendo de la prioridad de las capas y la importancia de los estilos en cascada. Incluso un selector universal puede tomar precedencia si está en una capa superior.
El autor comparte su experiencia personal sobre cómo se enganchó con Neovim y cómo quiere enseñar a otros cómo empezar con él y personalizarlo para mejorar su flujo de trabajo y convertir su IDE en un PDE. Pese a los desafíos, el esfuerzo vale la pena y se puede lograr un gran editor de código personalizado.
La pandemia ha traído consigo la normalización del trabajo remoto, pero también plantea un desafío en cuanto a las expectativas de los empleadores sobre la propiedad que creen tener sobre sus trabajadores bajo contrato. La noción de "trabajo a tiempo completo" a menudo se utiliza para capturar la atención, el tiempo y la energía de una persona durante las horas de trabajo, pero con el trabajo remoto, esta dinámica cambia y las empresas luchan por el control de sus empleados.
Este artículo plantea cómo el mercado del software ha pasado de la tendencia de descomponer tareas específicas para que sean abordadas por startups especializadas, a una nueva tendencia en la que se construyen empresas compuestas que ofrecen soluciones múltiples en un solo producto. Esta transición se debe al surgimiento de nuevas tecnologías que simplifican la entrega de software y al aumento de inversión de capital de riesgo en el mercado del software.
Ink, un proyecto de código abierto, no genera ingresos y esto es algo que afecta a muchos otros proyectos también. Las donaciones individuales pueden ser una forma de expresar gratitud, pero no son una fuente de ingresos estable. Los mantenedores de proyectos de código abierto deben considerar establecer relaciones comerciales con empresas que se benefician de su trabajo.
En este artículo se destacan las habilidades necesarias para ascender de Senior a Staff Software Engineer, donde la capacidad para identificar el alcance propio de un Staff es tan importante como la ejecución efectiva. Se presentan dos enfoques para encontrar este tipo de trabajo, tanto a través de la cadena de liderazgo como de persuasiones propias.
El artículo explica cómo el proceso de seguir las mejores prácticas en el desarrollo de software, eventualmente termina en romperlas y transcenderlas. El autor utiliza el concepto japonés Shuhari para explicar este proceso y cómo puede ser confuso para los principiantes en la industria. Finalmente, sugiere que se deben seguir las mejores prácticas de código limpio pero también saber dejarlas ir.
Un buen Senior Developer no es solo alguien que conoce los frameworks más recientes, sino que sabe cómo pensar y tomar decisiones estratégicas. En este artículo, se presentan nueve modelos mentales que ayudarán a los desarrolladores a enfocarse en lo que realmente importa y lograr resultados significativos.
Es recomendable que los nuevos gerentes realicen regularmente una reunión de todo el equipo. Es importante tomar en cuenta que estas reuniones deben ser limitadas en tiempo y enfocadas en comunicar asuntos importantes para toda la audiencia, sin usar diapositivas que distraigan del contenido.
Este artículo trata sobre la nueva tendencia de los perros de terapia digitales y la posibilidad de utilizarlos en entornos como los hospitales. Es interesante ver cómo la tecnología puede ser utilizada para mejorar la salud mental de las personas.
El término "deuda técnica" se ha utilizado mucho y a menudo se confunde con "código que no me gusta" o "código que preexistía". Sin embargo, la deuda técnica hace referencia a diferentes tipos de "código problemático" que pueden dificultar el desarrollo futuro y cuyo valor no es fácilmente cuantificable. Es importante entender y abordar de manera específica cada tipo de problema para solucionarlo adecuadamente.
El uso de palabras innecesarias en la escritura, como "obvio", "claramente" o "simple", no añade valor y puede incluso restarle. Es importante ser claro y conciso en la comunicación escrita, utilizando palabras selectas y explicaciones precisas.
Este artículo demuestra la relación directa entre los problemas de escalabilidad móvil, la arquitectura técnica y los equipos. Identifica dos problemas comunes en el desarrollo de aplicaciones móviles de grandes empresas y presenta la arquitectura modular como una solución, pero señala que para que su implementación tenga éxito, también es necesario respetar los límites de dominio de la aplicación y la experiencia de los desarrolladores.
Contribuciones no técnicas en software abierto, como documentación, localización, marketing, diseño gráfico, pruebas y administración, son cruciales para el éxito del proyecto. Aunque las contribuciones de código pueden parecer más glamorosas, las no técnicas pueden ser igual de gratificantes y ofrecen oportunidades para desarrollar habilidades técnicas y no técnicas.
El autor comparte una versión adaptada de su presentación sobre cómo CSS ha mejorado en los últimos años y su impacto en el mundo real, destacando 5 nuevas características relevantes para el desarrollo. Además, comparte un artículo interesante para ejemplificar estos avances en la práctica.
La documentación es la columna vertebral de una organización efectiva. Desde el inicio de una startup, compartir información y conocimiento puede ser fácil, pero a medida que la empresa se expande, la cantidad de personas, proyectos y complejidades aumentan exponencialmente. La documentación puede ser una fuente de verdad universal que capture y preserve la sabiduría colectiva, y así ayudar a todo el equipo a solucionar problemas que antes eran imposibles de resolver.
Es importante elegir sabiamente entre "Maximizar" o "Satisfacer" al momento de tomar decisiones. Aunque los maximizadores suelen tomar decisiones más acertadas, los satisfactores disfrutan más de sus elecciones y ahorran tiempo y estrés al no buscar la perfección. Es necesario saber cuándo maximizar y cuándo satisfacer, y en muchos casos la velocidad y la satisfacción son más importantes que la perfección.
El autor del artículo comparte su experiencia como ingeniero de backend y cómo, al principio de su carrera, trabajó con sistemas monolíticos, sin conocer el término de sistemas distribuidos hasta que un compañero lo mencionó. Después de investigar y estudiar el tema durante algunos años, ahora comparte su conocimiento sobre sistemas distribuidos. Advierte que la discusión de los temas puede ser avanzada para programadores principiantes y da algunas recomendaciones para estar preparados.
El uso de un mapa de Wardley es una herramienta útil para visualizar la evolución y relaciones entre los diferentes aspectos de tu producto o servicio, permitiendo identificar fortalezas y debilidades competitivas, áreas de innovación o externalización y tomar decisiones estratégicas basadas en la posición competitiva y necesidades del usuario.
El estudio muestra cómo la naturaleza puede ser un factor clave en la salud y el bienestar de las personas, especialmente en áreas urbanas. Es importante seguir trabajando en la creación de espacios verdes accesibles y habitables para todos.
Esta guía comparte estrategias y tácticas para obtener mejores resultados de los GPT. Se alienta a la experimentación para encontrar los métodos que funcionen mejor para cada uno y se sugiere considerar un modelo más capaz en caso de que el actual no funcione para una tarea en particular. Además, se recomienda proporcionar textos de referencia para ayudar a los GPT a proporcionar respuestas más precisas.
El artículo plantea la necesidad de evolucionar la organización del código acorde a Domain Driven Design, para lograr un diseño más sólido y una mejor comprensión del dominio, y proporciona un plan estructurado para lograrlo.
Este artículo explica cómo una persona está comprando infraestructura en AWS para poder configurar un sitio de WordPress funcional, ya que es la forma más popular de crear y publicar contenido en línea y conectar con el software de marketing en línea. El autor argumenta que la compra de infraestructura es solo un medio para un fin y el verdadero objetivo es tener un sitio web exitoso. Además, el autor sugiere que esta estrategia puede ayudar a posicionar el producto de esta persona como más valioso en comparación con sus competidores.
El coronavirus ha afectado severamente a las industrias del turismo y la aviación, lo que ha resultado en una disminución significativa en los vuelos y los ingresos económicos relacionados con el turismo. Los expertos predicen que la recuperación total puede tardar años.
Gerald Weinberg destaca en su libro "The Secrets of Consulting" que, sin importar cómo se vea en un principio, siempre se trata de un problema de personas. Cuando se une a una startup como CTO, a menudo se enfocan en tecnología y procesos, descuidando la composición del equipo. Es importante considerar la construcción del equipo desde el punto de vista del CTO al desarrollar software.
En este artículo se destaca la importancia de que los desarrolladores solucionen problemas como la parte más importante y difícil de su trabajo, ya que incluso si su código es perfecto, no tendrá utilidad si no resuelve el problema que estaba destinado a solucionar.
El estudio muestra que los dueños de mascotas tienen menos probabilidades de sufrir enfermedades cardiovasculares y que tener un perro es particularmente beneficioso para la salud del corazón. Estos hallazgos sugieren que los animales pueden tener un efecto positivo en la salud física de las personas.
El patrón de Repositorio ha vuelto a resurgir en publicaciones y tweets recientes, pero muchas veces se malinterpreta su uso y se plantean preguntas irrelevantes que obstaculizan su implementación. Este artículo aclara los hechos alrededor de este patrón y su importancia en la capa de dominio de la arquitectura de software.
El estudio de la Universidad de California ha descubierto que el cambio climático está provocando un declive acelerado de la especie de salamandras en el noreste de Estados Unidos. Los investigadores afirman que esto podría afectar el ecosistema de la región y tiene implicaciones más amplias para la biodiversidad y la salud del planeta.
Las retrospectivas pueden ser una herramienta muy efectiva para mejorar la dinámica y la eficacia del equipo, pero a menudo caen en la trampa de repetir los mismos elementos y discutir de manera vaga los puntos de acción. Para hacerlas más productivas, es necesario explorar técnicas de facilitación como las que ofrece Liberating Structures, que van más allá de las dinámicas comunes y se enfocan en aprovechar al máximo el conocimiento colectivo del grupo.
Para crear un producto exitoso es importante contar con un líder excepcional y un equipo empoderado e involucrado. Se necesita más que buenas ideas para mantener un producto en el camino correcto. La adopción de un estilo de liderazgo democrático puede apoyar este proceso al fomentar la participación y opinión de todos los miembros del equipo.
GitHub Universe es un evento global para desarrolladores y clientes que regresa en persona y en línea este año el 8 y 9 de noviembre. Si estás pensando en asistir, ¡asegúrate de marcar la fecha en tu calendario! Además, si tienes una idea de sesión sobre IA, seguridad o experiencia de desarrollador, ¡no dudes en enviarla para tener la oportunidad de ser seleccionado como orador!
El patrón de porcelana es una forma ingeniosa de agregar funcionalidad a una capa de desarrollo existente sin crear una capa envolvente adicional. En lugar de agregar nueva fontanería, se agrega una herramienta de porcelana diseñada específicamente para una necesidad particular, lo que lo hace más fácil de probar y mantener.
La realización de reuniones 1 a 1 es una práctica común entre los gerentes, pero pocos lo hacen bien. Los buenos gerentes se centran en las cuestiones más críticas para los reportes y ofrecen ayuda y apoyo mientras que los malos gerentes se enfocan en triviales asuntos superficiales y evitan temas reales.
El patrón de diseño modelo-vista-controlador (MVC) sigue siendo relevante en las aplicaciones web, a pesar de ser un patrón antiguo. Cada componente de este patrón, incluyendo modelos, vistas y controladores, tiene una función y comportamiento específicos para construir una arquitectura de software sólida y separar las preocupaciones en la aplicación.
En este artículo se presentan los cuatro pasos principales del proceso de diseño UX: investigación de usuarios, diseño, pruebas y desarrollo, y se destaca la importancia de la iteración en este proceso. Además, se enfatiza la necesidad de priorizar a los usuarios y de utilizar la empatía para entender sus necesidades y errores. Finalmente, se menciona que los diseñadores pueden personalizar el proceso de diseño a sus propias necesidades y objetivos.
Según un reciente estudio, el 85% de los pacientes diagnosticados con COVID-19 experimentaron síntomas neurológicos, como dolores de cabeza, confusión y fatiga. Este hallazgo destaca la importancia de seguir investigando los efectos de la enfermedad más allá de los síntomas respiratorios.
El enfoque común para lograr revisiones de código continuas rápidas es a través de Pair Programming o Ensemble Programming. Sin embargo, este artículo presenta un enfoque menos común utilizando Non-Blocking Reviews. El autor comparte su experiencia coaching a un equipo novato en trunk-based development y cómo implementaron revisiones de código constantes a través del peer reviewing sin imponer el pairing.
En este artículo se describe el proceso de una reunión previa al retiro llamada Radar, en la cual se analizan distintos puntos importantes relacionados con el crecimiento y el porvenir de 10Pines. A través de distintas actividades, el equipo genera ideas y reflexiona sobre qué temas específicos enfocarse y cómo afrontar nuevos desafíos.
Los papercuts son pequeñas molestias en un software que no impiden su funcionalidad, pero que deberían ser arreglados. Aunque son irritantes, no necesariamente significan una mala experiencia de usuario, ya que el software puede seguir brindando valor a pesar de estos errores menores.
Por un lado, es una forma efectiva de lograr una cobertura de tests rápida en códigos problemáticos y refactorizarlos con seguridad. Por otro lado, se necesitan realizar múltiples pruebas para asegurar que se recorren todos los posibles flujos de ejecución del código, lo que puede ser un problema de combinatoria.
Este artículo comparte algunas lecciones importantes para aumentar la efectividad en el desarrollo de software, incluyendo la importancia de asegurarse de estar resolviendo el problema correcto y de obtener retroalimentación temprana del usuario. También se destaca la idea de que el mejor código muchas veces es ningún código, y se mencionan algunas prácticas populares como YAGNI y KISS.
El artículo relata la experiencia de una persona que tuvo que adaptarse al trabajo remoto debido a la pandemia. Destaca cómo la comunicación asincrónica permitió continuar con las actividades laborales a pesar de la distancia física.
El rol del CTO es fundamental en la intersección entre los negocios y la tecnología, y es necesario tener claros los objetivos específicos que debe perseguir en este ámbito. El aporte del artículo es esclarecedor para una mejor comprensión de esta función.
La resolución de problemas de productos a menudo está conectada a varias causas fundamentales, lo que significa que no se puede simplemente apuntar con el dedo hacia una sola causa. Realizar un análisis de causa raíz puede ayudar a identificar las causas subyacentes de un problema y brindar soluciones valiosas y más efectivas.
El menú hamburguesa en las páginas web suele ser poco accesible y comprometer la experiencia del usuario. A pesar de esto, muchos desarrolladores lo siguen utilizando en sus diseños. Una alternativa efectiva y simple es utilizar un mapa del sitio en el pie de página de la página web.
El artículo destaca la importancia de las métricas funcionales del producto para el éxito en proyectos ágiles. Estas métricas capturan información sobre cómo los usuarios interactúan con la aplicación y son fundamentales para saber si se avanza en la dirección correcta o no. Además, se debe tener en cuenta la importancia de elegir las métricas correctas para obtener información relevante y no perderse en un mar de datos.
El artículo trata sobre la importancia de definir claramente la intención detrás de un producto y mantener el enfoque en ella, incluso cuando surgen obstáculos imprevistos en el camino. El autor utiliza el concepto de Intención del Comandante del ámbito militar para ilustrar este punto.
El mito de que todos conocen y comprenden la importancia de nuestro trabajo es falso, según el fenómeno psicológico conocido como "efecto de la luz de foco". Es importante que comuniquemos y hagamos saber a los demás el valor de nuestro trabajo para evitar malentendidos y problemas a largo plazo en nuestras carreras.
En este artículo, el autor presenta la complejidad de realizar estimaciones precisas en el desarrollo de software y ofrece algunas pautas para hacer más fácil este proceso. Aunque las estimaciones pueden resultar incómodas, son necesarias para que los proyectos sean aprobados y se asignen recursos adecuados.
El autor propone el término "nube soberana" para describir la transición hacia la propiedad independiente de hardware en lugar de su alquiler en proveedores en la nube, frente a la popularidad del término "nativo de la nube". El autor enfatiza que la transición no es tan difícil como algunos puedan pensar, y que la mayoría de las habilidades son útiles independientemente de dónde se ejecuten las aplicaciones.
El diseño de consultas bien estructuradas es otro requisito para un alto rendimiento en MySQL. Incluso un esquema bien diseñado no funcionará bien si las consultas son malas. La optimización de la consulta, la optimización del índice y la optimización del esquema son tres aspectos clave para alcanzar un rendimiento eficiente.
La API del historial web es una herramienta de gestión de estado subestimada por los desarrolladores. Es la única herramienta de gestión de estado integrada en el navegador y es compatible con todos los navegadores, sin necesidad de bibliotecas o marcos adicionales.
Los Web Workers son una característica poderosa del desarrollo web moderno y fueron introducidos como parte de la especificación HTML5 en 2009. Permiten la ejecución de código JavaScript en un hilo separado para mejorar el rendimiento y la capacidad de respuesta de las páginas web sin bloquear el hilo principal. Además, se ejecutan en un entorno aislado con acceso limitado a los recursos del sistema y sin acceso al DOM o la UI.
El Triángulo de Hierro, también conocido como Triple Restricción, es una herramienta probada y efectiva para mantener cualquier proyecto en el camino correcto. Sin embargo, los proyectos de desarrollo de software son notoriamente difíciles de planificar correctamente, lo que hace que la desescala sea la herramienta definitiva para mantener el presupuesto bajo control. En proyectos de precio fijo, los márgenes son clave para cubrir el alto riesgo que asume el desarrollador y garantizar el éxito del proyecto.
El código "inteligente" puede ser beneficioso si se basa en un conocimiento profundo del problema a resolver en lugar de simplemente explotar peculiaridades del lenguaje o del ambiente operativo. Sin embargo, el código insightful también es más frágil y puede ser difícil de entender y mantener por aquellos que no comparten el mismo conocimiento especializado.
Si eres un nuevo gerente de ingeniería que lucha por controlar su propio tiempo, aquí hay algunos consejos que pueden ayudarte. La implementación de un bucle de eventos puede ser una herramienta efectiva y estructurada para organizar tus responsabilidades y administrar tu tiempo de manera efectiva, aunque es importante tener en cuenta sus pequeñas desventajas, como una posible sobrecarga de calendario.
En este artículo, el autor destaca los beneficios de enfocarse en menos proyectos para lograr un mayor progreso y éxito. En lugar de dispersarse en demasiadas tareas y contextos diferentes, el autor recomienda reducir los niveles de participación en algunos equipos para permitir una mayor concentración y confiar en otros para hacer un buen trabajo en sus respectivas áreas.
El experto en tecnología Peter Van Hardenberg propone cambiar el paradigma actual de los programas que se ejecutan en la nube, al que se ejecuta en dispositivos móviles y envía datos a la nube para su durabilidad o accesibilidad. Esta perspectiva considera que la nube es una mejora opcional y adicional para las aplicaciones. ¡Un cambio paradigmático muy emocionante!
El libro de cocina OpenAI comparte ejemplos de código para llevar a cabo tareas comunes con la API de OpenAI. Para ejecutar estos ejemplos, necesitarás una cuenta de OpenAI y una clave API asociada (crea una cuenta gratuita). La mayoría de los ejemplos de código están escritos en Python, aunque los conceptos pueden aplicarse en cualquier lenguaje.
Este proceso brinda una guía paso a paso para aprender y aplicar prácticamente cada aspecto de Domain-Driven Design (DDD), desde orientarse en torno al modelo de negocio de una organización hasta la codificación de un modelo de dominio. La utilización de este proceso lo guiará a través de cada uno de los pasos esenciales en el diseño de un sistema de software con la mentalidad de DDD, para que pueda centrarse en los desafíos de su negocio sin abrumarse al mismo tiempo al aprender DDD.
La filosofía de la informática se preocupa por las cuestiones ontológicas y metodológicas que surgen tanto dentro de la disciplina académica de la informática, como en la práctica del desarrollo y despliegue de software comercial e industrial. Los sistemas computacionales son objetos de análisis teórico en la filosofía de la informática, y se buscan definir a través de dos enfoques principales: a través de una ontología distinta para hardware y software, o mediante una jerarquía de niveles de abstracción que incluye elementos de diseño y usuarios.
El artículo habla sobre la dificultad de encontrar y añadir enlaces relevantes al escribir un artículo en la web. El escritor ha desarrollado un script llamado Linkoln que busca enlaces en la web para cada wiki link utilizado en su texto.
Millones de palabras se han escrito sobre el valor del "flujo" para ingenieros y otros trabajadores del conocimiento, un tipo de trabajo en el que eres capaz de mantener múltiples conceptos complejos y abstractos en tu cabeza simultáneamente y progresar rápidamente hacia un objetivo. Permanecer en el estado de flujo es importante y es por eso que los buenos equipos de ingeniería mantienen alejadas las distracciones (Slack, correos electrónicos, reuniones, etc.) para maximizar la duración de estos estados de flujo.
Esta guía es una gran herramienta para aquellos que buscan explorar la teoría, ciencia y percepción del color y el contraste de una manera exhaustiva. Es una lectura muy instructiva e informativa.
El Frontend tiene un problema de ingeniería a pesar de haber forjado uno de los ecosistemas de herramientas más envidiables en términos de crecimiento y liderazgo de pensamiento, pero no se traduce en aplicaciones más accesibles y funcionales para el usuario ni en mayor velocidad y productividad para el desarrollador. Esto lleva a cuestionar si hemos creado más problemas con nuestras herramientas de los que hemos resuelto.
En este artículo se discute si Agile es o no la metodología adecuada para producir software de alta calidad. Aunque algunos detractores argumentan que Agile no permite una buena arquitectura, la realidad es que en Agile se definen requerimientos y especificaciones para cada iteración, lo que garantiza la calidad del software producido.
Este artículo se encuentra en estado de borrador y busca recibir comentarios y reflexiones. Además, señala la importancia de identificar los motivos por los cuales muchas startups fracasan a pesar de proponer soluciones a problemas reales, y plantea un modelo para evitar dicho fracaso.
El equipo técnico menciona la creación de "shitlists" como una solución efectiva para manejar el código deprecado en proyectos grandes. De esta forma, se permite el uso del código ya existente y se prohíbe la creación de nuevos caminos de código deprecados con una prueba bien definida.
El artículo discute uno de los tradeoffs más importantes en ciencias de la computación: la representación de datos. Si un sistema puede representar más cosas, es menos probable que toda afirmación sobre ese conjunto tenga una contraejemplo. Por lo tanto, los sistemas más capaces son menos tratables, mientras que los sistemas más tratables son menos capaces.
El "mimicry" es una técnica en la que se reimplementa una característica fundamental de un software, pero con algunas propiedades faltantes. Aunque esta técnica tiene sus desventajas, como la falta de adaptabilidad del código, también puede resultar una elección pragmática para hacer una herramienta más adecuada para su uso.
The Blub Paradox highlights the tendency of programmers to only appreciate language features they understand, leading to a preference for languages that support the patterns they use. Some argue that this is not necessarily a bad thing, as machines should fit humans rather than the other way around. Additionally, the paradox also relates to the difficulty of adopting new paradigms and the importance of experience in recognizing the value of different tools.
BEIPA toma un enfoque equilibrado al asignar el control de la propiedad intelectual creada por un empleado, permitiendo a este mantener el control exclusivo de las creaciones realizadas fuera de su trabajo y no relacionadas con los negocios de la empresa. Este enfoque fomenta la autonomía del empleado y un equilibrio entre su vida laboral y personal.
El enfoque común con las Iteraciones acotadas en Tiempo es asignar tantas Historias de Usuario como sea posible a cada iteración para maximizar la utilización del personal involucrado, pero la política de Slack consiste en dejar deliberadamente tiempo no asignado para historias y usar ese tiempo para trabajar sin planificar. Aunque esto parece ineficiente, suele mejorar significativamente la productividad de un equipo.
La ingeniería de plataformas se presenta como una posible respuesta para facilitar a los desarrolladores de software la implementación de mejores prácticas. Esta disciplina busca ofrecer herramientas y flujos de trabajo que permitan a los desarrolladores escribir, probar y lanzar su código de manera más rápida y segura, sin tener que preocuparse tanto por la infraestructura subyacente.
Este proyecto proporciona una guía para Ingenieros y Gerentes de Confiabilidad de Infraestructura que están comenzando un turno de guardia o respondiendo a un incidente. GitLab ofrece servicio de guardia las 24 horas del día para garantizar que los incidentes se respondan de manera rápida y se resuelvan lo antes posible. Utilizan PagerDuty para gestionar el horario de guardia y la alerta de incidentes.
El uso de microservicios en la arquitectura de una aplicación puede resultar atractivo, pero deben considerarse los trade-offs. Usar microservicios dificulta el desarrollo y aumenta la complejidad operativa, además de requerir documentación adicional y capacitación cruzada para todo el equipo. La falta de monitoreo de un solo microservicio puede tener consecuencias graves.
El Prompt Engineering, también conocido como In-Context Prompting, se refiere a métodos para comunicarse con LLM para dirigir su comportamiento hacia resultados deseados sin actualizar los pesos del modelo. Es una ciencia empírica y el efecto de los métodos de ingeniería de prompts puede variar mucho entre modelos, lo que requiere de una experimentación y heurísticas intensivas. Este artículo se enfoca únicamente en la ingeniería de prompts para modelos de lenguaje grandes y no aborda la generación de imágenes ni modelos de multimodalidad.
La iniciativa del Laboratorio de Seguridad de GitHub es una oportunidad para aprender a asegurar el código de forma práctica en su repositorio, lo que puede ser muy beneficioso para aquellos interesados en la seguridad informática.
El lenguaje PHP es dinámicamente tipado y hasta el año 2015 no contaba con soporte para tipos declarados estáticamente. Aunque en PHP 7.0 se agregaron las declaraciones de tipos escalares y de retorno, el lenguaje sigue admitiendo tipos dinámicos y la mezcla de ellos.
En proyectos que manejan fechas o números aleatorios, es importante considerar que trabajar con el reloj del sistema puede ser impredecible y afectar los tests. Una solución es crear un Clock Service que encapsule el reloj del sistema y lo reemplace con uno personalizado para adaptarse a las necesidades de los tests.
Este artículo ofrece una estrategia para preparar los repositorios de código de manera efectiva y sostenible antes de comenzar a trabajar en ellos, a fin de evitar problemas técnicos y de organización. Esta técnica puede ser útil para cualquier desarrollador que trabaje en múltiples proyectos.
La atención al detalle es una cualidad altamente valorada en las descripciones de trabajo de todas las industrias y niveles jerárquicos, y un candidato orientado a los detalles podría ser un activo valioso para su equipo. Descubra cómo evaluar si un candidato está orientado a los detalles.
El artículo discute sobre las preferencias en la programación utilizando composición o herencia, y cómo utilizar "final" puede evitar problemas. Sin embargo, los programadores que realizan pruebas pueden encontrar inconvenientes al utilizar clases finales. Se sugieren algunas opciones alternativas para estos casos.
Si tienes un blog sobre IT por más de un año, existe una alta probabilidad de que estés difundiendo información obsoleta. Esto puede llevar a que tus lectores consideren esa información como verdadera, aunque en realidad no lo sea. Por lo tanto, es fundamental mantener la calidad del contenido para evitar la propagación de noticias falsas.
El código de código abierto tiene una mayor calidad que el de código cerrado, ya que rara vez es reescrito desde cero y se invierte mucho tiempo y esfuerzo en la primera versión. Los valores y aprendizajes sociales que se ven naturalmente en el código abierto, se pueden implementar en proyectos privados de alta calidad mediante el uso de estándares y automatización.
El artículo presenta los resultados de un estudio que sugiere que las personas que comen una dieta rica en frutas y verduras tienen menos probabilidades de sufrir depresión. Es importante seguir una dieta saludable no solo por razones físicas, sino también por el impacto que tiene en nuestra salud mental.
El artículo explica la diferencia fundamental entre un Roadmap y un Plan de Releases en la planificación estratégica de productos y servicios. Mientras que el Plan de Releases es táctico y enfocado en la entrega de funcionalidades concretas en fechas específicas a corto plazo, el Roadmap es estratégico y se centra en una visión más amplia y a largo plazo, enfocado en los resultados a largo plazo basado en la Visión del producto.
El concepto de tener equipos de plataforma en las organizaciones se ha vuelto muy común en los últimos años. Estos equipos tienen la responsabilidad de proporcionar un producto interno que acelere la entrega de trabajo de los equipos alineados a la corriente de trabajo, mejorando la experiencia del usuario final y manteniendo una priorización adecuada de la lista de tareas.
El libro "Reconsiderando los fundamentos técnicos y pedagógicos de la ciencia de la computación y la educación en ciencias de la computación" propone una reflexión crítica sobre los valores explícitos que conlleva la disciplina, y ofrece métodos de enseñanza para fomentar la conciencia crítica de estudiantes en la computación, con el objetivo de promover un futuro más equitativo y justo. Agradecen a todos los que han leído y compartido sus comentarios sobre el libro, el cual fue apoyado por la National Science Foundation y regalos no restringidos de Google.
En este artículo, Javier Bonnemaison comparte su experiencia con la deuda técnica y cómo usarla como una ventaja competitiva. En un mundo digital, las decisiones técnicas son decisiones empresariales y la estrategia técnica se ha vuelto una parte esencial de la estrategia empresarial, pero la elección de la deuda financiera como analogía para la deuda técnica ha llevado a cierta confusión en cuanto a la importancia y los riesgos de retrasar ciertas tareas técnicas.
El proceso de entrevista no sólo se trata de entender las fortalezas y debilidades técnicas de un candidato, sino también de conocer su personalidad. Todo se reduce a hacer las preguntas correctas. Preguntas personales en entrevistas ayudan a comprender la vida personal y profesional del candidato y son una excelente manera de comparar candidatos con habilidades similares y seleccionar aquellos que se adapten mejor a la cultura de su empresa.
¿Cómo pueden los equipos de ingeniería de software hacer frente a los cambios organizativos? A través de una clara comunicación con su equipo y de la implementación de un plan para manejar los cambios complejos en la organización, se puede evitar la resistencia al cambio. El modelo de Manejo de Cambios Complejos de la Dra. Mary Lippitt es una herramienta efectiva para guiar a cualquier tipo de organización a través de los cambios complejos.
La gestión de la deuda técnica es una actividad continua e integral en el ciclo de vida del desarrollo de software y existen varias estrategias para mantenerla bajo control, como minimizar, identificar, visibilizar, dimensionar, priorizar y planificar. Es importante contar con conocimientos y habilidades necesarias en el equipo y definir y aplicar buenas prácticas de ingeniería para evitar tanto la deuda técnica inadvertida como la deliberada.
La creación de comunidades de práctica puede traer enormes beneficios a una organización al unir a expertos y entusiastas para explorar nuevas tecnologías y formas de trabajo que vayan más allá de las estructuras organizativas existentes. Estas comunidades pueden motivar a los empleados, romper silos y establecer consistencia en los procesos y tecnología utilizados por toda la empresa.
En este artículo se identifican las diez características clave de los ingenieros de software efectivos, y se destaca la importancia de centrarse en lo que realmente importa en lugar de perderse en los detalles. Esto permite que los ingenieros demuestren su valor al equipo y aumenten las oportunidades de ascenso en sus carreras.
El Chief Technology Officer (CTO) es responsable de la representación de la función de tecnología en la alta dirección de la empresa. Este trabajo requiere una comprensión de cómo la tecnología puede impulsar la organización hacia adelante, el desarrollo de políticas y procedimientos para el uso de la tecnología y la toma de decisiones importantes sobre proyectos tecnológicos dentro de la empresa. La relación entre el CTO y el Chief Information Officer (CIO) puede variar, dependiendo del tamaño y complejidad de la empresa, así como de las personas involucradas.
En este artículo, el autor comparte su experiencia en su primera posición de gerente de ingeniería y cómo se sintió abrumado por sus responsabilidades de gestión de personas. Destaca la importancia de la autoconciencia en el crecimiento personal y profesional, y comparte su método único para proporcionar comentarios continuos a su equipo, superando las limitaciones de los procesos de retroalimentación tradicionales.
En estos tiempos, los beneficios de escribir pruebas unitarias son enormes. Sin embargo, muchas veces observamos proyectos recién iniciados sin este tipo de pruebas, lo cual es un problema puesto que las pruebas unitarias son esenciales en aplicaciones empresariales con mucha lógica de negocio para asegurar que la implementación sea correcta de forma instantánea. Este artículo ofrece consejos sobre cómo escribir buenas pruebas unitarias para maximizar sus beneficios.
El costo del hardware es una de las principales objeciones a proporcionar recursos informáticos más potentes a los equipos de desarrollo, ya sea que estemos hablando de hardware físico en racks, proveedores de nube gestionados o recursos informáticos basados en software como servicio (SaaS). Pero, ¿cuál es el costo real de la compra de hardware más potente cuando consideramos el impacto en la productividad de los desarrolladores?
Las organizaciones de ingeniería necesitan un enfoque más efectivo de gestión de riesgos, uno basado en la ingeniería de fiabilidad de sitios web. En lugar de presupuestar el riesgo y asumir que algo saldrá mal, deberían elaborar un plan de emergencia detallado y utilizarlo como herramienta para prevenir desastres.
El aprendizaje es fundamental en el trabajo de los ingenieros, pero a menudo se hace difícil encontrar tiempo para ello debido a la demanda de trabajo y obligaciones personales. Aunque puede ser tentador creer que se necesita un bloque de tiempo largo para aprender algo, en realidad es mejor hacerlo en pequeñas dosis y desarrollar la habilidad de aprender a largo plazo.
Este artículo ofrece estrategias para que los equipos de ingeniería puedan adquirir mayor autonomía y, a su vez, que los líderes puedan delegar la toma de decisiones en ellos. Shopify utiliza un sistema donde los equipos tienen la libertad de elegir cómo trabajar, siempre y cuando se comprometan a cumplir metas significativas en ciclos de seis semanas.
En la cultura de Radical Candor, es fundamental distinguir entre el desarrollo de habilidades y la gestión del rendimiento, aunque a menudo se confunden. Las conversaciones espontáneas de orientación deberían centrarse en cómo hacer más de lo que es bueno y menos de lo que no lo es, mientras que las revisiones de rendimiento deberían ser anuales y enfocadas en la compensación y las perspectivas de promoción o terminación.
El artículo argumenta que muchos startups cometen un error al dar el título de CTO a su líder técnico, ya que existen diferentes habilidades de liderazgo necesarias en diferentes etapas del crecimiento de un equipo. Además, dar títulos inflados como cebo para retener talentos puede generar problemas en el futuro. El artículo aborda las diferencias entre títulos como Technical Lead, Head of Development, Engineering Manager, VP of Engineering y CTO, y sugiere que el crecimiento del equipo debe ser orgánico y basado en las necesidades de la empresa.
La salud del código puede afectar en gran medida la efectividad de la ingeniería y la calidad del producto final. Los líderes de ingeniería pueden promover la mantenibilidad, seguridad, automatización y análisis del código para mejorar la salud del código y fomentar una cultura sostenible de excelencia en la entrega de productos de software.
En Go, la filosofía Unix se refleja en su biblioteca estándar y muchos sugieren que no se utilice un framework en absoluto, ya que estos tratan de cubrir todos los casos de uso posibles sin tener en cuenta otros elementos del ecosistema de la programación. En cambio, se favorece la construcción de pequeños programas independientes que hagan una sola cosa bien.
El nuevo hallazgo de restos de la cultura Maya en una cueva submarina de México demuestra la importancia de seguir explorando los sitios arqueológicos de la región para descubrir más sobre esta fascinante civilización antigua.
Antes de que te comprometas a reescribir un sistema antiguo, aquí hay algunas razones por las que casi siempre es una mala idea. Aunque nunca se debe decir nunca, existen varios motivos por los que reescribir un sistema antiguo no es una buena solución, por lo que se debe tomar precaución y analizar a fondo la situación antes de tomar cualquier decisión.
Los sistemas de información digitalizados son un concepto relativamente nuevo que ha evolucionado a lo largo de la historia. A medida que la tecnología del transistor ha mejorado la precisión de procesamiento de la información, el almacenamiento digital se ha quedado atrás, lo que a su vez ha llevado a sistemas de información optimizados para una pequeña cantidad de información en línea. Sin embargo, con el aumento del almacenamiento en línea en décadas recientes, hemos llegado a un momento en el que ya no tenemos que comprometer la eliminación de información y podemos mantener un registro de todo lo que ha sucedido en un sistema, lo que resulta en sistemas más confiables mediante la especificación por ejemplo.
Este artículo explica cómo Shopify logró resolver uno de los mayores problemas en la comunidad React Native: el bajo rendimiento de listas. Con su biblioteca de listas React Native, FlashList, lograron obtener un gran éxito en Github, y en este post, explican cómo lo lograron y cómo otros pueden usar su experiencia para lanzar sus propios proyectos open source.
Según un estudio reciente, la contaminación del aire puede aumentar el riesgo de desarrollar enfermedades mentales como la ansiedad y la depresión. Es importante tomar medidas para reducir la contaminación del aire y proteger la salud mental de las personas.
Mejorando la forma en que se trabaja, se añade al rendimiento del equipo. Mejorando la forma en que todos trabajan, se multiplica el rendimiento del equipo. Siendo un multiplicador te hará notar y promover. Aquí te mostramos 16 maneras comprobadas de hacerlo.
Crear un presupuesto de proyecto puede ser un verdadero arte para muchos gestores de proyectos. Sin embargo, es esencial para hacer un seguimiento de los costos estimados y reales, así como para controlar el gasto y evitar quedarse sin recursos o exceder el presupuesto. Este artículo ofrece consejos útiles para crear y gestionar un presupuesto de proyecto ganador.
La resolución de problemas es esencial para individuos y organizaciones porque nos permite controlar todos los aspectos de nuestro entorno empresarial. En un mundo VUCA, todas las empresas necesitan habilidades y herramientas efectivas de resolución de problemas en todos los niveles, desde individuos y equipos hasta líderes y gerentes. La gestión 3.0 proporciona herramientas y principios efectivos para construir un sistema de resolución de problemas efectivo y fomenta el aprendizaje continuo y la colaboración para el éxito en economías y entornos cambiantes.
El Método Socrático se ha utilizado con éxito desde los albores de la filosofía occidental y hoy en día sigue siendo una herramienta invaluable para el pensamiento crítico y la toma de decisiones. Los cambios en el mundo laboral y de liderazgo han llevado a una mayor necesidad de habilidades de comunicación y transparencia, y este método puede ayudar a las organizaciones a hacer frente a la diversidad de pensamiento y llegar a consensos sólidos.
Los encuentros con saltos de nivel, también conocidos como "skip-level meetings", son una buena manera de fomentar una cultura de "Radical Candor". Estas reuniones se realizan sin la presencia del jefe directo y buscan hacer que los empleados se sientan cómodos para dar retroalimentación a sus jefes. Sin embargo, es importante tener cuidado para evitar que estos encuentros se conviertan en una sesión de quejas y siempre se debe buscar apoyar al jefe directo.
Trabajar en equipos que abarcan diferentes zonas horarias puede ser un desafío, pero no tiene que ser difícil si se planifica de manera adecuada. Al compartir actualizaciones de progreso, mensajes claros y documentación detallada, los equipos pueden trabajar juntos de manera efectiva y avanzar en proyectos de manera constante.
Un proceso de entrevista completo no está completo sin al menos un par de preguntas difíciles de entrevista conductual. Hacer que los candidatos expliquen su proceso de pensamiento, hablen de un proyecto en el que fallaron o compartan su enfoque para priorizar tareas es revelador, y cada entrevistador quiere aprovechar este conocido truco. Aunque las entrevistas no son la etapa más importante en el proceso de contratación (somos grandes defensores de contratar según habilidades), hacer preguntas de entrevista conductual es una forma segura de comprender las fortalezas, debilidades y peculiaridades de los candidatos.
El llamado "burnout" o síndrome del trabajador quemado es un problema cada vez más frecuente en el mundo laboral actual. Este artículo comparte algunos consejos para evitar este problema, entre ellos establecer límites, decir "no" a compromisos innecesarios y priorizar los intereses personales.
Los arquitectos de software favorecen contextos específicos y desconfían de leyes generales en el campo de la arquitectura de software. Sin embargo, están de acuerdo en la importancia y poder de la Ley de Conway, la cual hace referencia a cómo la arquitectura de un sistema de software se asemeja a la organización del equipo de desarrollo que lo construyó, y su afectación en la comunicación humana y en la planificación de la estructura de los equipos de desarrollo para lograr un mejor diseño de la arquitectura del software.
La transición de ingeniero a gerente de ingeniería es bastante grande, requiere un cambio en la forma de medir el éxito y en la manera en que se experimentan las recompensas. Es importante entender que el éxito ya no radica en el trabajo individual, sino en el éxito del equipo, lo que significa que se necesitan muchas más manos para sentir el mismo sentido de logro y puede tomar mucho tiempo antes de que se experimenten los efectos del trabajo.
Tener reuniones individuales regulares con cada uno de tus reportes directos probablemente sea lo más importante que hagas como gerente. No es lo único que haces, por supuesto, pero las reuniones individuales son las reuniones que no puedes perder. Son tu mejor oportunidad para escuchar realmente a las personas de tu equipo y asegurarte de entender su perspectiva sobre lo que funciona y lo que no funciona.
Según investigaciones realizadas por varios académicos, los introvertidos representan una gran proporción de empleados, por lo que el contenido siguiente podría mejorar su camino de liderazgo, independientemente de si usted es una persona introvertida o no. Cabe destacar que en términos cotidianos se confunde la introversión con la timidez o la reclusión, pero la introversión no es sinónimo de timidez. Según Myers y Briggs, un introvertido se energiza por sus ideas, imágenes y recuerdos, es decir, su mundo interior, mientras que los extrovertidos se enfocan más en lo que ocurre externamente.
En lugar de revisar cada pull request, es importante empoderar a los desarrolladores para que realicen revisiones de código de manera efectiva. La documentación y la comunicación clara de las expectativas son clave para establecer estándares y compartir conocimiento en todo el equipo.
Para evitar agotar a los ingenieros de guardia, es crítico que tengan acceso rápido a los datos que necesitan para resolver problemas y aplicar soluciones a largo plazo. Aunque todas las plataformas de observabilidad brindan alguna ayuda, las más populares tienen limitaciones que requieren a los ingenieros estar conectando los datos manualmente, lo que puede aumentar su estrés y el tiempo para resolver problemas.
El artículo ofrece consejos para aquellos que están manejando gerentes por primera vez en su carrera y explica cómo identificar fortalezas y debilidades en sus reportes para ayudarlos a mejorar. Se enfatiza la importancia de agregar herramientas de gestión a su "caja de herramientas" para ahorrar tiempo y mejorar la eficiencia.
En entornos laborales remotos e híbridos, es crucial que los objetivos de la empresa, el equipo y los individuos sean claros y medibles. Esto ayuda a evitar la "paranoia de productividad" descrita por Microsoft, que implica el miedo de los líderes a que sus empleados trabajen menos productivamente desde casa. Es importante que los líderes se centren en el impacto, no en la actividad, y establezcan objetivos medibles para recompensar el trabajo efectivo.
En un equipo, la efectividad está determinada por el plan. Los líderes en tecnología deben ser conscientes de que si modifican el plan sin dar contexto al equipo, este se sentirá abrumado y poco motivado para trabajar en él. Es importante encontrar maneras de permitir que los equipos trabajen con autonomía y generen entregables más pequeños.
El mentoring es una gran forma de impulsar tu carrera, pero es importante diferenciarlo de otras disciplinas como el coaching o patrocinio. En el caso de la ingeniería, tener varios mentores expertos puede ayudar al alumno a sobresalir en diferentes áreas y mejorar su red profesional. Las reuniones de mentoría pueden ser tanto presenciales como virtuales y existen distintas categorías según la organización.
El artículo explica cómo la mayoría de veces, Scrum funciona y eso no suele gustar en la industria tecnológica debido a que prefieren inventar sus propias metodologías aunque, en la mayoría de los casos, resulten en un fracaso catastrófico. El autor comparte algunas formas de sabotear Scrum y de cómo hacer que algo que funciona bien, deje de hacerlo.
Este artículo ofrece consejos para prepararse y superar los desafíos del manejo de proyectos, incluyendo el problema común del aumento del alcance del proyecto. El aumento del alcance puede traer consecuencias graves para el presupuesto y el éxito del proyecto, pero siguiendo los consejos ofrecidos, los gerentes de proyectos pueden mitigar este riesgo.
La gestión efectiva se basa en la capacidad de seleccionar entre muchas actividades de aparente importancia similar, aquellas que proporcionan un mayor rendimiento y concentrarse en ellas. Para mejorar como gerente se requiere de compromiso, humildad para aceptar los errores propios y un sistema repetible para medir el progreso y tomar decisiones basadas en datos concretos.
Este documento describe el tipo de equipo de ingeniería que somos y en algunos casos, aspiramos a ser. Es importante escribirlo para poder lograr y perpetuar nuestro objetivo, utilizándolo como base. Tácticamente, debería cubrir ciertos aspectos.
Según un nuevo estudio, la comunicación y el comportamiento social de las abejas se ven afectados negativamente por la contaminación acústica del tráfico. Esta investigación destaca la necesidad de reducir el ruido en los entornos naturales y urbanos para proteger la vida silvestre.
Según un estudio de la Universidad de California, San Diego, el alcohol podría ayudar a mejorar la función cognitiva en personas mayores. Los investigadores encontraron que el consumo moderado de alcohol, en comparación con la abstinencia total, se asoció con un menor riesgo de deterioro cognitivo en adultos mayores. El consumo moderado de alcohol podría tener beneficios para la función cognitiva en personas mayores, según un estudio de la Universidad de California, San Diego.
El mantenimiento ad-hoc de la ingeniería de confiabilidad del sitio puede ayudar a los desarrolladores a mantener el código en producción, pero para mantenerlo a largo plazo se necesita una estructura organizativa adecuada. Este artículo explora las diferentes topologías de equipos de SRE para organizar con éxito la práctica de SRE.
Este artículo explora cómo las empresas crean procesos y por qué estos deben desaparecer cuando dejan de ser útiles. Es interesante reflexionar sobre cómo los procesos pueden ser el resultado de errores pasados y cómo pueden convertirse en una carga en lugar de mejorar la eficiencia.
En "Automate the Boring Stuff with Python" aprenderás cómo utilizar Python para escribir programas que automatizan tareas tediosas en cuestión de minutos. Con instrucciones paso a paso y proyectos prácticos al final de cada capítulo, este libro te llevará de cero a héroe en programación.
Este curso cubre los fundamentos del desarrollo de Progressive Web Apps de manera clara y fácil de entender. Aprenderás los diferentes aspectos para crear una aplicación web progresiva, desde el diseño hasta la integración con el sistema operativo, además de contar con demos interactivas y evaluaciones para poner en práctica lo aprendido.
Este curso es ideal para diseñadores y desarrolladores principiantes e intermedios que quieran aprender todos los aspectos del diseño responsive. Desde la historia de esta tendencia hasta la creación de diseños que se adapten a diferentes tamaños de pantalla, este curso cubrirá todo lo que necesitas saber para hacer sitios web que se vean y funcionen bien para todos.
Este curso sobre formularios HTML te ayudará a mejorar tu expertise en desarrollo web. Los módulos están divididos de una manera fácil de entender y cada uno contiene demostraciones interactivas y autoevaluaciones para que puedas poner en práctica tus conocimientos. Es adecuado tanto para principiantes como para desarrolladores HTML avanzados.
El curso de accesibilidad digital está dirigido tanto a desarrolladores web principiantes como avanzados y está diseñado para ayudar a crear sitios web y aplicaciones web que sean accesibles para personas con discapacidades. Aprenderás prácticas y pruebas de accesibilidad, pero es importante escuchar a los usuarios con discapacidades para entender sus necesidades específicas.
El autor del artículo comparte su propia experiencia acerca de cómo decir que no a solicitudes de última hora le permitió tener una vida más saludable y satisfactoria. Con tres pasos sencillos, el autor logró aprender a decir no sin afectar su relación con los demás.
El "Value Proposition Canvas" es una herramienta muy útil para los Product Owners y Managers, ya que les ayuda a entender las necesidades de los clientes y asegurarse de que el producto o servicio se ajusta a ellas. Esta herramienta fue creada por Alexander Osterwalder, Yves Pigneur y Alan Smith, los mismos creadores del "Business Model Canvas".
Este artículo expone la importancia de tomar en cuenta la fatiga en las operaciones de base de datos. Se destaca la necesidad de mejorar en cuanto a la forma en que la industria valora y maneja la fatiga, considerando que muchos errores en producción pueden ser causados por esta condición. Además, se insta a no permitir que se tomen decisiones en sistemas de producción sin haber descansado adecuadamente.
El equipo de Spotify ha implementado con éxito los 'Team Health Checks' para mejorar la autoconciencia de los equipos y detectar oportunidades de mejora. Aunque han ejecutado miles de health checks, también reconocen que siempre existe el riesgo de una experiencia insatisfactoria en el equipo.
El uso del modo oscuro es una elección personal, pero sin duda es una opción que cada vez más personas prefieren debido a sus beneficios para la vista y la duración de la batería. ¡Y esta técnica para hacer que los sitios web también cambien a modo oscuro es impresionante! Gracias por compartirlo.
¡Esta nueva funcionalidad de módulos de CSS es increíble! Ahora podemos cargar hojas de estilo CSS con declaraciones import, ¡tal y como lo hacemos con los módulos de JavaScript! Y no solo eso, también se pueden aplicar a documentos y a shadow roots de una manera más conveniente y eficiente que con otras formas de importación y aplicación de CSS. Aunque aún no está disponible en todos los navegadores, espero que pronto sea una característica común en todos ellos. ¡Gracias por compartir esta información!