Vista de todas las páginas
Número total de páginas: 76
Arquitecturas Orientadas a Servicios - Redes y Computación Distribuida
20-01-2025
Las arquitecturas orientadas a servicios (SOA) intentan mejorar la interoperabilidad de los servicios para que sean independientes del lenguaje de programación y se puedan usar para modelos de datos diferentes.
Agentes - Redes y Computación Distribuida
19-01-2025
Introducción a los agentes: definición y sus características. Veremos los tipos de entornos en los que los agentes suelen operar y algunas arquitecturas comunes. A continuación, se comentarán los protocolos y lenguajes de comunicación de FIPA ACL, definición de ontologías; y para terminar, implementación de agentes en la plataforma de JADE.
Redes P2P - Redes y Computación Distribuida
16-01-2025
Introducción a las Redes Peer-to-Peer, con algunos ejemplos notables: Napster, Gnutella, Kazaa y Freenet. También se discutirán redes P2P estructuradas, con la implementación más sencilla: Chord.
Decidibilidad y Complejidad - Compiladores e Intérpretes
14-01-2025
Lenguajes generados por las máquinas de Turing. Análisis de la complejidad de una máquina de Turing y las clases de complejidades P y NP. Decibilidad y el problema de la parada.
Máquinas de Turing - Compiladores e Intérpretes
13-01-2025
Definición de una máquina de Turing y algunas de sus variaciones. Demostración de que dichas variaciones son equivalentes a la máquina de Turing estándar. Máquina de Turing Universal. Computación de funciones y la tesis de Church-Turing. Autómatas Linealmente Acotados.
Autómatas de Pila - Compiladores e Intérpretes
13-01-2025
Autómatas de Pila por vaciado de pila, estados finales o deterministas. Cómo pasar de APN a APF y viceversa. Equivalencia con gramáticas independientes del contexto. Lema del Bombeo para lenguajes independientes del contexto.
Gramáticas - Compiladores e Intérpretes
13-01-2025
Definición de una gramática y sus diferentes tipos. Derivaciones y los lenguajes que generan. Árboles sintácticos. Las diferentes formas normales de una gramática.
Lenguajes Regulares - Compiladores e Intérpretes
12-01-2025
Definición de los lenguajes regulares y del álgebra expresiones regulares. Cómo construir autómatas finitos que aceptan expresiones regulares y cómo obtener la expresión regulare de un autómata. El lema del bombeo.
Autómatas Finitos - Compiladores e Intérpretes
11-01-2025
Autómata Finitos Determinitas, No Deterministas y No Deterministas de cadena vacía. Equivalencia entre varios tipos y minimización de autómatas.
Introducción - Compiladores e Intérpretes
11-01-2025
En este artículo de introducción a la Teoría de Autómatas y Lenguajes Formales, veremos los conceptos básicos y notación alfabetos, lenguajes, gramáticas y autómatas. La parte más importante de este campo es comprender la relación entre estos últimos tres conceptos.
Módulos del Kernel y Servicios - Linux
09-01-2025
Sistemas Conexionistas - Algoritmos y Estructuras de Datos
06-01-2025
Conceptos básicos sobre redes neuronales artificiales. El Perceptrón. Aprendizaje automático supervisado, no supervisado, aprendizaje por refuerzo.
Admininistración de Sistemas - Linux
05-01-2025
Algunas tareas que un buen administrador de sistemas debería hacer.
Instalación de Software - Linux
04-01-2025
Post sobre las diferentes formas de instalación de Software en Linux, incluyendo gestores de paquetes y la compilación desde el código fuente.
Sistemas Basados en Conocimiento - Algoritmos y Estructuras de Datos
02-01-2025
Los Sistemas Basados en Conocimiento, simulan el razonamiento de un humano experto para resolver problemas complejos en dominios especializados. Emplean conocimiento explícito y reglas predefinidas, aplicadas mediante motores de inferencia. Discutiremos su razonamiento lógico, redes semánticas y métodos explicativos, ofreciendo soluciones precisas en áreas donde los algoritmos tradicionales no son viables.
Búsqueda en Espacios de Estados - Algoritmos y Estructuras de Datos
01-01-2025
En los problemas de optimización es necesario encontrar una solución que cumpla unas condiciones. Sin embargo, existen muchos estados posibles, por lo que se necesitan estrategias y algoritmos eficientes para abordar problemas complejos.
Instalación - Linux
31-12-2024
Post sobre la instalación de Linux, esquemas de particionado del disco y cómo obtener información del hardware para comprobar que la instalación fue correcta.
Sistemas de Mensajes: RabbitMQ - Redes y Computación Distribuida
30-12-2024
Con el propósito de transferir información entre sistemas heterogéneos, se crearon los sistemas de mensajes, que reciben los mensajes y los almacenan en colas hasta que los receptores están disponibles.
Llamadas a métodos remotos y Objetos Distribuidos - Redes y Computación Distribuida
28-12-2024
En este artículo aumentamos el nivel de abstracción respecto al paso de mensajes. Veremos el paradigma de Remote Proceduce Call (RPC) y su equivalente orientado a objetos, los Objetos Distribuidos. Nos centraremos principalmente en Java RMI.
Hilos en Java - Redes y Computación Distribuida
28-12-2024
Repaso rápido de cómo funcionan los hilos de Java y cómo gestionar las posibles carreras críticas.
Paso de Mensajes - Redes y Computación Distribuida
23-12-2024
En este artículo se discutirá el paradigma de la Computación Distribuida de más bajo nivel: paso de mensajes. En UNIX, se implementa mediante la API de Sockets.
Paradigmas de la Computación Distribuida - Redes y Computación Distribuida
22-12-2024
Tema introductorio a la Computación Distribuida. Se discutirán los temas principales que se tratarán en posteriores artículos.
Sistemas Operativos Distribuidos - Sistemas Operativos
28-05-2024
La tendencia actual del desarrollo del Hardware es incrementar el número de procesadores totales, dado que se ha llegado al límite de mejora de un solo núcleo. En este artículo, discutiremos algunas arquitecturas y luego cómo se debe enfrentar el Sistema Operativo a eso.
Sistemas Operativos en tiempo real - Sistemas Operativos
27-05-2024
En este artículo se definirá lo que es un Sistema Operativo en Tiempo Real y cómo se soluciona su mayor problema: la planificación de procesos para llegar a tiempo.
Interbloqueos - Sistemas Operativos
26-05-2024
Cuando se trabaja con varios procesos y recursos compartidos, es habitual utilizar semáforos y mutexes para proteger su acceso. Sin embargo, su uso despreocupado puede causar que varios procesos se queden bloqueados entre sí. En este artículo veremos en detalle las causas y diferentes estrategias para tratar con los interbloqueos.
Comunicación y Sincronización de Procesos - Sistemas Operativos
24-05-2024
Con frecuencia, es necesario pasar información entre varios procesos que se ejecutan de forma concurrente, o también sincronizarlos para ejecutar una tarea de forma correcta. En este artículo se discutirá qué mecanismos se utilizan y los problemas que emergen.
Shell y Bash - Linux
09-02-2024
En este artículo se hará un overview del uso de la shell, más concretamente Bash. Algunos temas a tratar serán comandos, expansiones, redirecciones, tratamiento de caracteres especiales…
Grafos - Algoritmos y Estructuras de Datos
18-01-2024
Cómo representar grafos en un computador y algunos algoritmos interesantes, como encontrar caminos mínimos, maximizar el flujo, encontrar las componentes conexas, etc.
Árboles - Algoritmos y Estructuras de Datos
16-01-2024
Las estructuras de datos no lineales organizadas de forma jerárquica, o árboles, son muy útiles en computación porque suelen tener complejidad logarítmica, a diferencia de las estructuras lineales. En este artículo se muestran algunos tipos de árboles junto a sus características.
Herencia y Composición. Polimorfismo - Programación Orientada a Objetos
15-01-2024
En este artículo se tratan los aspectos de la Herencia y el Polimorfimo en Java. Se verá el concepto de Clase Abstracta e Interfaz.
Conjuntos de Datos - Programación Orientada a Objetos
15-01-2024
Una buena parte de la programación se dedica a las estructuras de datos, y es algo que afecta directamente al rendimiento de un programa. En este artículo se da una visión general sobre las colecciones que provee Java.
Referencias - Programación Orientada a Objetos
13-01-2024
En este artículo se trata en detalle el Aliasing otros detalles importantes sobre la gestión de memoria que realiza la Máquina Virtual de Java.
Encapsulación - Programación Orientada a Objetos
13-01-2024
En este primer artículo, se verá el concepto de Encapsulación, Clase y Objeto. Además, se explorarán los constructores, getters, setters y métodos funcionales.
Entrada/Salida - Sistemas Operativos
08-01-2024
Además de crear abstracciones para los procesos, la memoria y los archivos; el Sistema Operativo es el encargado de manejar los dispositivos de Entrada/Salida. Debe pasarles comandos, captar interrupciones y manejar errores.
Sistema de Archivos - Sistemas Operativos
06-01-2024
Cuando el proceso termina, se pierde todo lo que se había almacenado en memoria. Además, los discos solo permiten dos operaciones: lectura y escritura, lo que presenta muchos problemas. Para solucionarlo, el Sistema Operativo crea la abstracción del Sistema de Archivos.
Memoria - Sistemas Operativos
02-01-2024
La memoria principal es un importante recurso del ordenador, y debe gestionarse con cuidado para obtener un buen rendimiento, ya que las CPUs son mucho más rápidas que las memorias. Para ello, se creó la jerarquía de memoria, y el administrador debe llevar registro de qué partes están en uso y de asignarlas a los procesos cuando la necesiten.
Arranque y Proceso Hardware - Sistemas Operativos
28-12-2023
Pasos que realiza el Sistema Operativo cuando se inicia y su funcionamiento normal, llamado proceso hardware.
Procesos e Hilos - Sistemas Operativos
26-12-2023
El concepto más importante en cualquier Sistema Operativo es el proceso, una abstracción de un programa en ejecución. Todo lo demás depende de este concepto. En este post se definirá qué es un proceso, cómo se crean, cómo terminan y cómo el Sistema Operativo los maneja.
Introducción - Sistemas Operativos
26-12-2023
El Sistema Operativo es el software encargado de gestionar los recursos del ordenador y de proporcional una interfaz amigable para su uso. Probablemente sea el software más importante que se ejecuta, dado que da soporte al resto de programas. En este artículo, se comentará brevemente los retos a los que se debe enfrentar.
Usuarios - Linux
30-09-2023
Cómo crear/modificar/eliminar usuarios en Linux. Grupos de usuarios. Uso básico de los comandos passwd, useradd, groupadd, su, sudo y otros. Los archivos /etc/passwd, /etc/shadow, /etc/groups y /etc/gshadow.
Programación Estructurada en C - C/C++
16-07-2023
Uso de estructuras básicas para el control del flujo del programa.
Sintaxis básica - C/C++
07-07-2023
En este post se trata la sintáxis básica de C/C++: comentarios, sentencias y bloques.
Introducción - C/C++
05-07-2023
Introducción a la programación: lenguajes de programación, nivel de abstracción de un lenguaje de programación, traducción a código máquina y errores en la programación.
Teoría de Grafos - Mates Discretas
02-07-2023
Grafos es un tema muy útil para la informática y que ayuda a entender determinados problemas y estructuras de datos.
Preprocesador - C/C++
27-06-2023
Cómo usar las directivas del preprocesador en C/C++, aquellas que comienzan por un #.
Recursividad - Mates Discretas
15-06-2023
Definiciones recursivas y cómo resolver relaciones de recurrencia.
Estructura de directorios - Linux
13-06-2023
La estructura de archivos de Linux es bastante diferente a la de Windows, y quizás un poco contraintuitiva; pero en este post se explica con detalle qué es cada carpeta y qué se debería almacenar en ella.
El Binomio Newton y el Triángulo de Pascal - Mates Discretas
12-06-2023
El binomio de Newton y el multinomio de Leibniz. La identidad y el triángulo de Pascal. El principio de inclusión-exclusión.
Combinatoria - Mates Discretas
11-06-2023
Combinatoria es la rama de las matemáticas que estudia la enumeración, construcción y existencia de propiedades de configuraciones que satisfacen ciertas condiciones establecidas. También estudia las ordenaciones o agrupaciones de un determinado número de elementos. En este artículo se comentarán principios básicos y sencillos de esta disciplina.
Criptografía - Mates Discretas
10-06-2023
Introducción a la criptografía básica. Claves simétricas y asimétricas. Cifrado RSA.
Aritmética Modular - Mates Discretas
07-06-2023
Números - Mates Discretas
07-06-2023
Números enteros, divisibilidad, el algoritmo de división y números primos.
Algoritmos - Mates Discretas
05-06-2023
Introducción al análisis de algoritmos y diferentes tipos de algoritmos. N vs NP.
Shell, Bash y Bashrc - Linux
31-08-2022
Guia breve sobre Bash, diferencias con Shell, terminal, consola y prompt.
tmux - Herramientas
29-08-2022
tmux, un programa de terminal que permite crear otras terminales dentro de él: pestañas, divisiones. Así puedes ser mucho más productivo.
Vim y Neovim - Herramientas
26-07-2022
Una pequeña overview de las principales funcionalidades de Vim con sus comandos
Instalación y compilación - C/C++
30-07-2021
Guía de como instalar un compilador de C/C++. También se aportan algunas directrices de compilación de librerías así como su importación.
Memoria - Rust
Un resumen del sistema de ownership y borrowing, tipos de memoria (Stack y Heap), lifetimes, Smart Pointers y otros detalles importantes para entender cómo funciona Rust gestiona la memoria a diferencia de C o C++.