// ==================== // // Blog Data // ==================== // const blogPosts = [ { id: 1, title: "Introducción a JavaScript Moderno: ES6 y más allá", excerpt: "Descubre las características más importantes de JavaScript moderno, desde arrow functions hasta async/await, y cómo pueden mejorar tu código.", date: "2024-12-10", tags: ["javascript", "web"], image: null, content: `
ECMAScript 6 (ES6), también conocido como ECMAScript 2015, fue un gran salto en la evolución de JavaScript. Introdujo características que hacen el código más limpio, legible y mantenible.
Las arrow functions proporcionan una sintaxis más concisa para escribir funciones:
// Función tradicional
function suma(a, b) {
return a + b;
}
// Arrow function
const suma = (a, b) => a + b;
Permiten crear strings de manera más flexible:
const nombre = "RuVaz";
const saludo = \`Hola, \${nombre}! Bienvenido al blog.\`;
Facilita la extracción de valores de arrays y objetos:
const usuario = { nombre: "RuVaz", edad: 25 };
const { nombre, edad } = usuario;
Simplifica el trabajo con código asíncrono:
async function obtenerDatos() {
try {
const response = await fetch('https://api.ejemplo.com/datos');
const data = await response.json();
return data;
} catch (error) {
console.error('Error:', error);
}
}
JavaScript moderno ofrece herramientas poderosas que mejoran significativamente la experiencia de desarrollo. Estas características no solo hacen el código más elegante, sino también más fácil de mantener y debuggear.
` }, { id: 2, title: "Python para Data Science: Primeros Pasos", excerpt: "Una guía práctica para comenzar con Python en el mundo del análisis de datos, incluyendo pandas, numpy y visualización.", date: "2024-12-08", tags: ["python"], image: null, content: `Python se ha convertido en el lenguaje preferido para ciencia de datos gracias a su simplicidad y el ecosistema de bibliotecas especializadas.
import pandas as pd
# Crear un DataFrame
datos = {
'nombre': ['Ana', 'Luis', 'María'],
'edad': [25, 30, 28],
'ciudad': ['Madrid', 'Barcelona', 'Valencia']
}
df = pd.DataFrame(datos)
print(df.head())
import matplotlib.pyplot as plt
# Crear un gráfico simple
edades = [25, 30, 28, 35, 40]
plt.plot(edades)
plt.title('Distribución de Edades')
plt.xlabel('Índice')
plt.ylabel('Edad')
plt.show()
Una vez domines estas herramientas básicas, podrás explorar análisis más avanzados, machine learning y visualizaciones interactivas con bibliotecas como Plotly.
` }, { id: 3, title: "Desarrollo Web Responsivo: Guía Completa", excerpt: "Aprende las mejores prácticas para crear sitios web que se vean perfectos en cualquier dispositivo, desde móviles hasta pantallas grandes.", date: "2024-12-05", tags: ["web", "javascript"], image: null, content: `El diseño responsivo es una técnica de desarrollo web que permite que los sitios se adapten automáticamente a diferentes tamaños de pantalla y dispositivos.
Comenzar diseñando para móviles y luego expandir a pantallas más grandes:
/* Estilos base para móvil */
.container {
width: 100%;
padding: 1rem;
}
/* Tablet */
@media (min-width: 768px) {
.container {
max-width: 720px;
margin: 0 auto;
}
}
/* Desktop */
@media (min-width: 1024px) {
.container {
max-width: 960px;
}
}
Herramientas modernas para layouts responsivos:
/* Grid responsivo */
.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 1rem;
}
/* Flexbox */
.flex-container {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
<img
src="proxy.php?url=https%3A%2F%2Fruvaz.github.io%2Fimagen-small.jpg"
srcset="imagen-small.jpg 480w,
imagen-medium.jpg 768w,
imagen-large.jpg 1200w"
sizes="(max-width: 768px) 100vw, 50vw"
alt="Descripción"
/>
Git es el sistema de control de versiones más popular, permitiéndote rastrear cambios, colaborar con otros y mantener un historial completo de tu proyecto.
# Inicializar un repositorio
git init
# Añadir archivos al staging
git add .
# Crear un commit
git commit -m "Descripción del cambio"
# Ver el estado
git status
# Ver el historial
git log --oneline
# Crear una nueva rama
git branch feature-nueva
# Cambiar a la rama
git checkout feature-nueva
# O crear y cambiar en un solo comando
git checkout -b feature-nueva
# Fusionar ramas
git checkout main
git merge feature-nueva
# Clonar un repositorio
git clone https://github.com/usuario/repo.git
# Añadir un remoto
git remote add origin https://github.com/usuario/repo.git
# Subir cambios
git push origin main
# Obtener cambios
git pull origin main
GitHub Pages te permite alojar sitios web estáticos directamente desde tu repositorio, ¡como este blog!
` } ]; // ==================== // // DOM Elements // ==================== // const blogGrid = document.getElementById('blog-grid'); const filterTags = document.querySelectorAll('.tag'); const articleCount = document.getElementById('article-count'); // ==================== // // Functions // ==================== // // Render blog posts function renderBlogPosts(posts) { blogGrid.innerHTML = ''; posts.forEach(post => { const card = createBlogCard(post); blogGrid.appendChild(card); }); // Update article count with animation animateCounter(articleCount, posts.length); } // Create blog card element function createBlogCard(post) { const card = document.createElement('article'); card.className = 'blog-card'; card.dataset.tags = post.tags.join(','); const imageHtml = post.image ? `