Arquitectura de memoria para Agentes de IA: Estrategias para mantener contexto persistente sin costos exponenciales

El problema no es que tu agente olvide lo que dijo hace cinco minutos, es que recordarlo todo le cuesta 40 dólares por hora a tu empresa. La arquitectura de memoria para Agentes de IA se ha convertido en el diferenciador técnico entre un prototipo de juguete y un sistema escalable en producción. Mientras los modelos multiplican sus ventanas de contexto hasta 128k o incluso 200k tokens, enviar la conversación completa en cada llamada es económicamente suicida. Aquí no vamos a reinventar LangChain: te explico cómo funciona la memoria bajo el capó para que optimices lo que ya usas o construyas tu propia solución sin caer en trampas de diseño que duplican tus costos de inferencia.

El problema real: obesidad del contexto y «lost in the middle»

Los grandes modelos de lenguaje sufren de dos dolencias crónicas cuando les envías demasiado texto. La primera es económica: los precios de API escalan linealmente con los tokens de entrada. Si mantienes un historial de 20 mensajes de 500 tokens cada uno, estás pagando por 10k tokens de «contexto muerto» antes de que el modelo escriba una sola palabra.

La segunda es de atención: el fenómeno «lost in the middle» demuestra que la precisión del modelo decae dramáticamente cuando la información relevante está en el medio de un contexto masivo, incluso con ventanas de 128k tokens. Más contexto no es mejor contexto; es solo contexto más caro y más ruidoso.

Jerarquías de memoria: diseño en capas

Un agente productivo no tiene una sola «memoria», sino tres sistemas especializados que operan a diferentes escalas temporales y económicas.

Working Memory: ventana deslizante por tokens, no por mensajes

El error clásico es usar deque(maxlen=10) y luego recortar por tokens. Es contradictorio: si limitas físicamente a 10 mensajes, ¿por qué validar tokens? Si cada mensaje tiene 2k tokens (aproximadamente 1,500 palabras en español), esos «solo 10 mensajes» explotan tu presupuesto.

La solución es un límite exclusivo por tokens, sin restricción de cantidad de mensajes. En español, un token aproxima a una palabra (no uses la regla inglesa de 0.75 palabras/token ni la obsoleta de 4 caracteres/token). Para precisión quirúrgica, usa tiktoken o el tokenizer específico de tu modelo.

import tiktoken
from typing import List, Dict

class WorkingMemory:
    def __init__(self, max_tokens: int = 4000, model: str = "gpt-4"):
        self.messages: List[Dict] = []  # Lista simple, sin maxlen arbitrario
        self.max_tokens = max_tokens
        self.encoding = tiktoken.encoding_for_model(model)
    
    def add_message(self, role: str, content: str):
        self.messages.append({"role": role, "content": content})
        self._enforce_token_limit()
    
    def _enforce_token_limit(self):
        """Recorta desde el inicio manteniendo los mensajes más recientes."""
        total = 0
        for i, msg in enumerate(reversed(self.messages)):
            # Conteo real de tokens, no aproximación por caracteres
            tokens = len(self.encoding.encode(msg["content"]))
            total += tokens
            if total > self.max_tokens:
                cutoff = len(self.messages) - i - 1
                self.messages = self.messages[cutoff:]
                break
    
    def get_context(self) -> List[Dict]:
        return self.messages

Este diseño garantiza que nunca excedas los 4k tokens de ventana reciente, sin importar si fueron 3 mensajes largos o 50 mensajes cortos.

Memoria Semántica: retrieval cuando el pasado importa

No todo lo antiguo merece estar en el prompt activo. Para conocimiento factual persistente (preferencias del usuario, documentos subidos, historial de compras), usa una base vectorial. Convierte interacciones pasadas a embeddings y recupera solo los top-k relevantes vía búsqueda por similitud cuando el agente lo solicite explícitamente.

Esta estrategia transfiere el costo de O(n) tokens a O(1) tokens + costo fijo de embedding (barato) y retrieval (casi gratuito).

Memoria Episódica: compresión progresiva

Cuando la conversación es larga pero no puedes descartarla (ej. negociaciones complejas), implementa summarization condensado. Cada N interacciones, genera un resumen de los puntos clave y descarta el raw text. Tu Working Memory mantiene solo el resumen + los últimos mensajes crudos.

class EpisodicMemory:
    def __init__(self):
        self.summaries: List[str] = []
        self.recent_raw: WorkingMemory = WorkingMemory(max_tokens=2000)
    
    def compress_if_needed(self, llm_client):
        if self.recent_raw.token_count > 3000:
            summary = llm_client.summarize(self.recent_raw.get_context())
            self.summaries.append(summary)
            self.recent_raw = WorkingMemory(max_tokens=2000)
    
    def get_full_context(self):
        return {
            "historical_summaries": self.summaries,
            "recent_messages": self.recent_raw.get_context()
        }

Estimación de tokens: precisión vs velocidad

Nunca uses len(text) // 4 para estimar tokens en español. Un texto técnico en español genera aproximadamente 1 token por palabra (ligeramente más si hay muchos signos de puntuación o código). Para producción, integra siempre el tokenizer oficial:

  • OpenAI: tiktoken
  • Anthropic: API de conteo propia o heurística de 1.2 tokens/palabra
  • Open source (Llama, Mistral): transformers.AutoTokenizer
  • Un error común es asumir que «40k tokens por interacción» es normal. En escenarios conversacionales reales, un mensaje de usuario rara vez supera los 200-500 tokens. Si estás procesando documentos masivos, hazlo por chunks, no cargues PDFs completos en el contexto de chat.

    En producción: ¿Construir o adoptar?

    No reinventes la rueda a menos que tengas restricciones de latencia extremas o lógica de negocio muy específica.

  • LangChain ofrece ConversationBufferWindowMemory (limita por mensajes) y ConversationSummaryMemory (limita por tokens con resumen). Úsalos como punto de partida.
  • LlamaIndex es superior para arquitecturas RAG complejas donde la memoria semántica es el componente dominante.
  • Custom (como el código anterior) solo cuando necesites control granular sobre el recorte (ej. priorizar mensajes del sistema sobre mensajes del usuario) o cuando estés optimizando costos en escala masiva donde cada token cuenta.

Conclusión

La arquitectura de memoria eficiente se reduce a tres principios: recorta por tokens reales, no por cantidad de mensajes; mueve el conocimiento histórico a sistemas de retrieval, no al prompt; y comprime progresivamente lo que no cabe en tu ventana de trabajo. Los modelos con 200k tokens de contexto son una trampa seductora: te permiten ser perezoso, pero te cobran por esa pereza en cada inferencia.

Antes de optimizar código, mide tu consumo real de tokens por sesión de usuario. Si estás por encima de los 8k tokens de entrada promedio, tienes un problema de arquitectura, no de modelo.

¿Dónde está el cuello de botella en tu agente? Revisa tu última factura de API y dime cuántos tokens estás enviando de contexto histórico vs. cuántos generas de respuesta. Si la proporción está desbalanceada, es hora de rediseñar tu memoria.

Cómo evitar que tu agente LLM olvide conversaciones críticas: guía de memoria a largo plazo en producción

Tu agente recuerda perfectamente lo que le dijiste hace cinco minutos, pero ignora instrucciones clave del onboarding que hiciste ayer. Si te suena familiar, estás enfrentando el problema de contexto limitado inherente a los transformers. Cuando implementamos patrones de memoria a largo plazo en producción, no estamos solo guardando historiales de chat: estamos diseñando sistemas que evitan la degradación del rendimiento por recuperación de documentos irrelevantes y el fenómeno documentado como lost in the middle (donde los LLMs ignoran información ubicada en el centro de contextos extensos).

El problema real: más allá del límite de tokens

Los modelos actuales soportan ventanas de 128k o 200k tokens, pero la capacidad efectiva de razonamiento sobre todo ese contexto no escala linealmente. Investigaciones de Stanford y Anthropic demuestran que el accuracy cae significativamente cuando la información relevante se encuentra en medio de un contexto extenso, especialmente al superar los 20k tokens.

Esto se agrava cuando tu sistema RAG recupera documentos semánticamente similares pero conceptualmente irrelevantes. Un retrieval naive puede saturar el contexto con ruido, haciendo que el modelo «olvide» restricciones críticas de seguridad o preferencias del usuario establecidas en interacciones previas.

Arquitectura de tres capas: más allá del simple historial

Basándonos en taxonomías formalizadas por proyectos como [MemGPT](https://memgpt.ai/) (Packer et al., 2023) y los módulos de memoria de LangChain, una arquitectura robusta de producción separa la memoria en tres capas distintas:

Memoria semántica (conocimiento externo)

Vector stores como Pinecone, Weaviate o pgvector almacenan embeddings de conversaciones pasadas, documentos y hechos persistentes. Sin embargo, el simple cosine similarity no es suficiente: necesitas estrategias de reranking (como Cohere Rerank o cross-encoders) para filtrar falsos positivos semánticos antes de inyectar al prompt.

Memoria procedural (aprendizajes codificados)

Son reglas explícitas derivadas del comportamiento del usuario que modifican la ejecución del agente. A diferencia de la semántica, aquí almacenamos código ejecutable o configuraciones estructuradas:

def actualizar_estilo_usuario(user_id: str, feedback: dict) -> None:
    """
    Actualiza preferencias de comunicación basadas en interacciones previas.
    """
    preferencias = {
        "tono": feedback.get("formalidad", "neutral"),
        "longitud_respuesta": feedback.get("verbosity", "conciso"),
        "tecnologias_frecuentes": feedback.get("stack", [])
    }
    
    prompt_sistema = f"""
    Eres un asistente técnico. Reglas estrictas para este usuario:
    - Tono: {preferencias['tono']}
    - Longitud: {preferencias['longitud_respuesta']}
    - Contexto técnico priorizado: {', '.join(preferencias['tecnologias_frecuentes'])}
    - NUNCA sugieras soluciones fuera de su stack sin consultar primero
    """
    
    guardar_en_redis(user_id, prompt_sistema, ttl=86400)

Memoria episódica (historial reciente)

El buffer de ventana deslizante de las últimas N interacciones. Crítico para mantener coherencia en la conversación actual, pero volátil por diseño.

Estrategias de recuperación inteligente

Filtrado estricto por usuario (context contamination)

Un error común en producción es no aislar los vectores por user_id o session_id. Recuperar memorias de usuario A cuando conversas con usuario B genera context contamination, filtraciones de privacidad y alucinaciones cruzadas. Implementa metadata filtering obligatorio en tus queries vectoriales:

# Query segura con namespace isolation
results = index.query(
    vector=embedding,
    filter={"user_id": {"$eq": current_user_id}},
    top_k=5,
    namespace=f"user_{current_user_id}"
)

Reranking antes del prompt

Incluso con buenos embeddings, recuperar 10 documentos donde solo 2 son relevantes satura el contexto. Utiliza modelos de reranking para reordenar por relevancia real:

import cohere

co = cohere.Client(api_key)

def rerank_documents(query, documents, top_n=3):
    results = co.rerank(
        model="rerank-english-v2.0",
        query=query,
        documents=documents,
        top_n=top_n
    )
    return [documents[r.index] for r in results.results]

Esto mitiga el lost in the middle al reducir la cantidad de ruido que llega al modelo.

Implementación práctica y costos

Para la capa semántica, Pinecone en modo serverless es una opción popular, aunque debes verificar precios actualizados según tu región AWS/GCP y volumen de consultas. Nota: Los precios varían significativamente entre modo serverless (por GB almacenado y consultas) versus pods dedicados (por hora). La cifra orientativa de ~$0.10 por millón de vectores puede fluctuar según dimensiones y región; valida siempre la calculadora oficial antes de escalar.*

Patrón de sincronización híbrida

Combina las tres capas en tu pipeline:

  • Pre-procesamiento: Recupera preferencias procedurales de Redis/PostgreSQL (sub-10ms)
  • Retrieval semántico: Query vectorial con metadata filtering estricto
  • Reranking: Filtra a máximo 3-5 documentos altamente relevantes
  • Construcción de prompt: Inyecta memoria procedural primero (reglas duras), luego contexto episódico reciente, finalmente documentos rerankeados
  • async def build_context(user_id: str, current_message: str):
        # 1. Memoria procedural (alta prioridad)
        system_rules = await redis.get(f"user:{user_id}:preferences")
        
        # 2. Memoria episódica (últimos 3 turnos)
        recent_chat = await get_recent_history(user_id, limit=3)
        
        # 3. Memoria semántica con reranking
        raw_docs = await vector_search(current_message, user_id=user_id, top_k=10)
        relevant_docs = rerank_documents(current_message, raw_docs, top_n=3)
        
        return {
            "system": system_rules,
            "context": recent_chat + relevant_docs
        }
    

    Conclusión

    Implementar memoria a largo plazo no es solo «guardar todo en una base vectorial». Requiere arquitectura disciplinada: aislamiento estricto de usuarios para evitar contaminación, reranking para combatir el ruido del retrieval, y separación clara entre conocimiento factual (semántico), reglas de ejecución (procedural) y contexto conversacional (episódico).

    Aprendizaje clave: Un agente con 100k tokens de contexto pero sin filtrado inteligente performa peor que uno con 8k tokens y recuperación curada. La calidad del contexto siempre supera a la cantidad.

    ¿Ya implementaste algún patrón de memoria avanzada? Comparte tu arquitectura en los comentarios o sígueme para el próximo post sobre evaluación automatizada de retrieval en RAG pipelines.

    La importancia de tu primer trabajo y como define tu carrera

    El primer trabajo definirá tu carrera por los siguientes años, y si no peleas por el cambio, por el resto de tu vida.

    Yo tuve mi primer trabajo a los 17 años, salí del bachillerato, listo para enfrentar al mundo laboral, no había logrado entrar a la universidad así decidí buscar trabajo para no perder un año sin hacer nada en mi casa. Me tope con que nadie contrata a menores de edad. Supongo que por posibles implicaciones legales y demás. Busque varios procesos y el ultimo que me quedó donde si contrataban menores fue pizza hut.

    Trabaje un año en pizza hut, de mesero, de lavaplatos, de limpia mesas, de hacer masa, de hacer pizza, de «barista», de hacer el corte y servir los platos, de armar pasta. Pase por casi todas las areas. Fue duro el trabajo, tocaba trabajar días de feriados o descanso que mi familia tenía y yo no. Era trabajar más de 12 horas seguidas los fines de semana. Si te toca cierre era trabajar hasta la 1 o 2 de la mañana.

    En esta etapa fue la primera vez que lo escuche de un compañero: «El problema que ahora solo de esto vas a poder trabajar» me dijo, y yo con un futuro totalmente diferente planeado en mi cabeza le pregunte porque. Me respondió: «si porque de esto tienes experiencia, si vas a buscar de bodeguero o en oficina te van a decir que no tienes experiencia, que mejor aplique a servicio al cliente, si vas a un Mcdonalds o algo así si te darán porque ya tienes esta experiencia«

    En ese momento solo pensé, hell no, mi futuro tiene que ser mas que esto. Ganar Q700 quincenalesNo que tenga nada de malo trabajar en un restaurante. Respeto mucho la profesión y conocí grandes amigos y personas ahí. Pero yo soñaba con más, con mucho más.

    Seguía sin ganar la entrada a la universidad, por lo que entre a un programa para prepararme para entrar. Otro año mas, aprendiendo lo que tuve que haber aprendido hace años. Tuve la fortuna de poder entrar a la universidad el siguiente año. Pasaron los 5 años, largos y tormentosos por momentos. Hasta que tuve que volver a solicitar trabajo. Ahora como futuro ingeniero en sistemas.

    El primer trabajo en tecnología

    Mi familia no estaba pasando por un mal momento financiero así que me apresure a buscar trabajo, pero no era una búsqueda enfocada, era lo primero que saliera y me aceptaran. No tenía experiencia laboral. Era un trabajo de Jr. por lo tanto es complicado también. Un día un amigo me dice yo tenía entrevista aquí pero ya me salió trabajo, prueba aplicar. Lo hice y me aceptaron.

    Este trabajo era usando PHP un lenguaje de programación que es usado por el 70% de la web, pero que tiene mala fama entre programadores y mamadores de la tecnología. A mí no me importo, trabajo es trabajo dije yo.

    php for web development
    https://w3techs.com/technologies/details/pl-php

    Pasaron los año ya, tengo 5 años de estar trabajando profesionalmente con Php y otras tecnologías y ya tengo una experiencia que podría decirse ser de Sr. Pero esta experiencia solo aplica a trabajo en Php, si quisiera un mejor sueldo en otra tecnología, no tengo la experiencia para aplicar en ellos, en especial como Sr pues piden experiencia.

    Viendo para atrás debí escoger mi primer trabajo con mas cuidado. Puede que tengas suerte y te toque una empresa o un jefe que te ponga el path para trabajar en diferentes areas y logres experiencia en otras. Puede que tengas suerte y te puedas mover entre areas internas de la empresa sin mayor problema. Pero también puede ser que no, y te quedes atorado en la misma tecnología, por varios años si no estas consciente de ello.

    También puedes leer https://alanhurtarte.com/eso-nunca-funcionara-la-historia-de-netflix/

    La historia de Netflix: Eso nunca funcionará.

    Netflix

    Eso nunca funcionará fue la respuesta de la esposa de Marc Randolph, el fundador de netflix, cuando le contó la idea renta de películas por correo.

    Estos son mis aprendizajes del audiolibro https://www.beek.io/libros/eso-nunca-funcionara.

    Marc narra cómo nació la idea. Estuvo buscando ideas en su viaje diario al trabajo junto Reed, a quien quería convencer para invertir e iniciar su idea.

    En sus ideas iniciales estaba:

    • Comida de perro personalizada
    • Bates de béisbol personalizados
    • Shampo personalizado

    Ninguna convenció a Reed, el problema de lo personalizado es que no es escalable, cada solución es única y no se podría llevar a producción masiva, aparte imagina se muere un perro con la comida. Todo el problema de PR que podría haber.

    La idea del bate de béisbol es porque su hijo estaba en las ligas menores y en etapa de crecimiento, no todos los bates funcionaban para todos.

    El inicio de Netflix

    La historia que cuentan del inicio de netflix es que Reed encontró una película (vhs) en su casa y cuándo la devolvió tuvo que pagar una multa de $40. Mas adelante cuenta que no fue tan así, pero que la mantuvieron porque era mágica, era corta y concisa. Permitía a cualquier identificarse con la marca.

    Inicialmente era demasiado caro enviar un vhs, pesaba demasiado y peleaban contra gigantes, no era rentable. El DVD era un formato no tan conocido pero hacía bulla. Así que la estrategia fue empezar a comprar todos los dvd’s que hubieran en el mercado para poder decir que tenían todos. Y así tener un ventaja competitiva contra blockbuster.

    Lograron alianzas con fabricantes de dvd’s para que incluyeran un sticker de 10 rentas gratis al registrar su código único por reproductor. Algo que fue difícil de conseguir debido a que esas empresas grandes y llenas de burocracia no eran tan flexibles a cambios como una startup. Esto lo vemos hoy en día con stickers de Netflix de dispositivos.

    Cualquiera pensaría que al tener una alianza con Sony y toshiba ya sería un gran paso. Resulto que no funciono tan bien, los códigos iban afuera del empaque y cualquiera con una pluma y un papel podría copiar los códigos y canjear sus películas gratis.

    No había retención de clientes

    El otro gran problema que encontraron es que la gente no regresaba como cliente, no tenían retención. Al inicio vendían y alquilaban dvd’s, y las ventas eran muchos mayores que los alquileres, pero Marc sabia que ese era un callejón sin salida. En el momento que amazon, walmart y cualquier otro gigante del retail vendiera dvd’s les iba a matar el negocio. Netflix quería ser el servicio de renta, no de venta.

    Hicieron varias pruebas de envíos al día siguiente. Cuenta que alguien metía todos los pedidos hasta las 3:30pm en su auto, manejaba media ciudad, para luego bajar con una carreta todos los pedidos y llevarlos a la oficina postal para que pudieran ser entregados al día siguiente.

    Netflix fue el primero: La clave fue el plan de subscripción

    Lo que hizo que resultara la renta de dvd’s fue el plan de subscripción. En un momento desesperado y de no mas tiempo para probar ideas, decidieron probar 3 ideas al mismo tiempo. Recordemos que en esos tiempos no existían subscripciones mensuales, no había streaming ni plataformas para hacerlo.

    • no limites de tiempo de renta
    • pagos único mensual y ver todo lo que puedas
    • y no recuerdo la tercera

    El libro es una maravilla narrada, parece un historia de ficción. Si tienen la oportunidad léanlo o escuchen.

    El escándalo de Bill Clinton y una película porno

    Cuenta la historia de cómo quisieron subirse a la ola del escándalo de Bill Clinton y Monica Lewinsky. Y terminaron enviando una película porno a sus clientes. Se resumen en correr literal para encodear y grabar el juicio de Bil en tiempos record, noche de no dormir y ahorrar tiempo en etiquetas. Enviaron los dvds equivocados. Emitieron un comunicado de disculpa, y que cubrirían el retorno de la película porno. Curiosamente, nadie retorno la película porno.

    Otros puntos importantes:

    • En un momento inicial Amazon los quiso comprar pero Reed no le pareció la oferta.
    • Blockbuster les negó la compra cuando estaban pidiendo ser rescatados porque los números no funcionaban.
    • Tuvieron que despedir a mucha de gente inicial porque ya no se podia mantener.
    • Cuando lograron hacer rentable los dvd’s llego el stream. Ya había internet de altas velocidades y accesible para muchos. Tuvieron que tirar todo su sistema de renta y adaptarse. Solo imagen eso.
    • Su cultura se basa en la responsabilidad. Tienen personas adultas y confían en ellos. No importa cómo o cuándo trabajes, pero lo tienes que hacer.
    • Nadie sabe nada. Hay que probar todas las ideas.

    Gracias por tomarte el tiempo de leer. No olvides subscribirte y ver otros de mis posts como:

    La espiritualidad y la religión

    Crecimos en hogares religiosos, hablando de Guatemala, hogares cristianos, católicos o protestantes en su mayoría, y nuestros padres, abuelos y demás generaciones anteriores no tienen separados los criterios de espiritualidad y religión es lo mismo para ellos. No ven cómo podrían vivir sin la religión, cuando ahí han encontrado fortaleza para los tiempos difíciles, amor incondicional en un ser superior, orden y perdon.

    Todo esto por vivir en una burbuja impuesta desde sabe cuando, quizas desde la conquista española a nuestras tierras y la imposición del catolisismo a la fuerza. Los miedos y tradiciones se heredan.

    La globalización afecta no solo los trabajos, productos y bienes, también afecta el acceso a la información. Somos una generación que creció con el internet en sus manos, que ante la duda se googlea, se compara y se concluye en cuestión de minutos. Tenemos las opciones y diferencias a un teclado de distancia. Y creo que esta gran muestra de opciones no le ha favorecido nada a la religión tradicional. Solo muestra la incongruencia y desactualización de la misma. Crecimos con algo que nuestros padres y abuelos no: opciones e información.

    Entendimos que la espiritualidad es más que seguir ciegamente los mandatos de dos milenios escritos y manipulados por el hombre a antojo y conveniencia. Es encontrar ese lugar que nos de paz, y nos ayude a sobrellevar la incertidumbre del futuro. No tiene que ser un lugar físico, basta que le de paz a nuestra mente. Ese lugar es para nuestros antepasados la religión, el lugar donde un ser superior todopoderoso, nos ama, protege y tiene todo planeado.

    La espiritualidad es de mucha importancia, pero importa mas que la escojas y te sientas bien con ella. Si ya la encontraste, no importa donde, si en los grupos de tu iglesia local, al servir a tu dios, o con un grupo de hippies. Cuidala, cuida a tu mente y cuerpo, que al final es lo que único que tenemos.

    No creer en Dios es para valientes y el futuro de la religion

    La idea de tener un espiritualidad fuerte es algo que creo más cada día. Hay personas que encuentra esta espiritualidad en la religión, y en mi caso crecer en una familia que practica una religión cristiana como la católica.

    Pero es un problema que te fuercen a practicar y creer enseñanzas dirigidas, escritas y promulgadas por hombres para hombres y que cuando preguntas el porqué de las cosas no te pueden explicar. La religión cristiana esta desactualizada y cada vez mas las nuevas generaciones tienen más problemas para identificarse con la problemática expuesta, más todavía con ese lenguaje arcaico que es la traducción de la interpretación del cuento oral escrito facil 100 años después de que paso.

    La fe cristiana te enseña que tienes un propósito, que hay alguien que te ama y te diseño para algo, que si te portas bien tendrás una vida eterna con todo lo bueno, pero para eso tienes que sufrir ahorita.

    Cuando eliges no creer en la religión, escoges renunciar a la idea del propósito y amor incondicional, también renuncias al castigo eterno. Cuando escoges entender que somos intransigentes, que no tenemos propósito real, que en realidad la vida no se trata de nosotros sino somos meros espectadores de lo que pasa. Que la vida se acaba en un parpadea y ahí queda, no hay mas. Entendemos que no tienes deuda con nada ni nadie.

    La gente dice que cree en dios pero no en la religión, pero creen en un dios descrito por la biblia, un texto creado por hombres, escrito años después que pasaran los sucesos y basado en cuentos orales. Todos hemos jugado teléfono descompuesto y sabemos cómo termina, no?

    La religión cristiana debería reinventarse, actualizar sus textos y tradiciones. Adaptarse a nuevas generaciones. La ley de la vida es eso, adaptarse o morir. Probablemente yo no alcanse a ver morir el cristianismo, pero estoy seguro que un dia lo hara sino deciden actualizarlo. La cuestión ahí se vuelve interesante y estoy seguro quebrantaria la fe de muchos, porque quien estaría a la altura de modificar tradiciones y escrituras antiguas? Eso partiria la fe de muchos y fragmentaria muchos mas a sus creyentes, así que no veo un futuro prometedor a la religión convencional.

    De seguro surgirá algo nuevo, con otro nombre pero más de lo mismo. Porque es una industria trillonaria, quien dejaría ir ese dinero y el control sobre los pobres y desamparados.

    Todos necesitamos un refuerzo de que no estamos solos y nos aman. Asi sea mintiendonos a nosotros mismos, incapaces de explicar las bases de lo que creemos, pero eso nos da paz mental y es suficiente. Yo no me considero superior por ni un poco al no creer en la religión o el dios cristiano, solo no encontré paz ni confort en esas creencias, solo encontre promesas de tormento e incongruencias contra la naturaleza humana. Si tu espiritualidad esta ahí, en el cristianismo, te felicito, se fuerte y construye más sobre ella. Lo que te haga bien, esta bien.

    Como lograr un sitio web que sea responsive

    Habrás escuchado la palabra responsive muchas veces. Es pocas palabras te lo explico, es la habilidad de tu sitio web se adapte a cualquier tamaño de pantalla sin romperse (tanto visual como funcionalmente).

    ¿No te ha pasado que entras a un sitio web desde el celular y parece que rompiste algo en el sitio web, o algo no funciona, o algún botón o element se sobre pone? Ese sitio la falla algo a su responsiveness.

    ¿Porque es algo deseado? Cubres dos necesidades de un solo producto. Desarrollas un sitio para computadores, laptops o pantallas grandes en general y un sitio que se adapte a pantallas pequeñas, celulares, ipads, kioskos, etc. Esto es algo necesario hoy en día, tomando en cuenta que el mayor trafico de tus clientes potenciales viene de un móvil.

    Entonces te preguntaras, ¿Cómo hago el mío responsive? Manera fácil: contrata a un experto como yo 🙂

    Manera difícil: aprende css, diseño, ux ,etc. Si ya sabes todo eso, se te hará mas fácil, tu fiel amigo sera un componente del lenguaje css llamada **media querys**. Esto te permite delimitar o especificar un tamaño de pantalla especifico y aplicar reglas de diseño (Css) especificas para ese tamaño de pantalla. Claro los medias querys te pueden servir para muchas cosas más complejas.

    Así que ya lo sabes, cuando te pregunten que es responsive, ahora ya lo sabes.

    Próximamente hare un tutorial mas técnico con ejemplos de cómo se puede llevar a cabo esto. Suscribete al news letter

    LinkedIn
    Share
    Instagram
    WhatsApp