Primer commit, volcado de todos los archivos

This commit is contained in:
Admin de hacklab 2025-11-04 15:07:37 +01:00
commit 2f96306686
109 changed files with 4567 additions and 0 deletions

470
eventos.html Normal file
View file

@ -0,0 +1,470 @@
<!-- eventos.html -->
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>Hacklab la Raíz — Eventos</title>
<link rel="icon" type="image/png" href="imagenes/hacklab.jpeg">
<link rel="stylesheet" href="subpages.css">
</head>
<body class="page-eventos-wide">
<div class="wrapper">
<!-- CABECERA -->
<header class="sub-header">
<div class="inner">
<h1>HACKLAB LA RAÍZ</h1>
<p class="tagline">Agenda // Próximos // Históricos</p>
<nav class="crumbs">
<a href="index.html">home</a> · eventos
</nav>
</div>
</header>
<!-- CONTENIDO -->
<main class="content">
<!-- NAV RÁPIDO -->
<section class="panel" aria-label="Navegación rápida">
<p style="text-align:center;">
<a href="index.html" class="button">Home</a>
&nbsp;&nbsp;
<a href="eventos.html" class="button">Events</a>
&nbsp;&nbsp;
<a href="projects.html" class="button">Projects</a>
&nbsp;&nbsp;
<a href="hacker_types.html" class="button">Tribes</a>
</p>
</section>
<!-- CALENDARIO MENSUAL (AUTO) -->
<section id="agenda" class="panel" aria-label="Calendario mensual">
<h2>Calendario</h2>
<div class="cal-controls" role="group" aria-label="Navegación de mes">
<button class="button cal-prev" type="button" aria-label="Mes anterior">&larr;</button>
<div class="cal-title" aria-live="polite"></div>
<button class="button cal-next" type="button" aria-label="Mes siguiente">&rarr;</button>
</div>
<div class="cal" id="cal-root">
<!-- JS insertará aquí el calendario -->
</div>
<p class="cal-legend">
<strong>Viernes:</strong>
<span class="badge">1º OPEN DAY</span> ·
<span class="badge">2º ARTLAB</span> ·
<span class="badge">3º CRAFT NIGHT</span> ·
<span class="badge">Último DÍA EN BLANCO</span>
</p>
<!-- Posters destacados (2 arriba, 1 abajo) -->
<div class="poster-grid">
<figure class="poster-card">
<img src="imagenes/open_day.png" alt="OPEN DAY">
</figure>
<figure class="poster-card">
<img src="imagenes/craft_night.png" alt="CRAFT NIGHT">
</figure>
<figure class="poster-card poster-span">
<img src="imagenes/art_lab_glitch.png" alt="ART LAB">
</figure>
</div>
<script>
(function(){
const monthNames = ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];
const weekdayNames = ['L','M','X','J','V','S','D']; // lunes primero (ES)
const IMAGES = {
OPENDAY: 'archivos/calendarios/openday.jpg',
ARTLAB: 'archivos/calendarios/artlab.jpg',
CRAFT: 'archivos/calendarios/craftnight.jpg',
BLANCO: 'archivos/calendarios/dia_en_blanco.jpg'
};
const root = document.getElementById('cal-root');
const title = document.querySelector('.cal-title');
const btnPrev = document.querySelector('.cal-prev');
const btnNext = document.querySelector('.cal-next');
let view = new Date(); // hoy
view.setDate(1); // primer día del mes
function buildCalendar(date){
// limpiar
root.innerHTML = '';
const year = date.getFullYear();
const month = date.getMonth();
title.textContent = monthNames[month] + ' ' + year;
// semanas empiezan en lunes
const first = new Date(year, month, 1);
let startIndex = (first.getDay() + 6) % 7; // convertir domingo=0 a final
const daysInMonth = new Date(year, month + 1, 0).getDate();
// encontrar todos los viernes del mes (viernes = 4 si lunes es 0)
const fridays = [];
for (let d = 1; d <= daysInMonth; d++){
const wd = (new Date(year, month, d).getDay() + 6) % 7;
if (wd === 4) fridays.push(d);
}
const firstFri = fridays[0];
const secondFri = fridays[1];
const thirdFri = fridays[2];
const lastFri = fridays[fridays.length - 1];
// cabecera de días
const head = document.createElement('div');
head.className = 'cal-row cal-head';
weekdayNames.forEach(w => {
const cell = document.createElement('div');
cell.className = 'cal-cell cal-head-cell';
cell.textContent = w;
head.appendChild(cell);
});
root.appendChild(head);
// grid de días (6 filas x 7 cols para estabilidad)
let day = 1 - startIndex;
for (let r = 0; r < 6; r++){
const row = document.createElement('div');
row.className = 'cal-row';
for (let c = 0; c < 7; c++){
const cell = document.createElement('div');
cell.className = 'cal-cell';
if (day >= 1 && day <= daysInMonth){
const num = document.createElement('span');
num.className = 'cal-daynum';
num.textContent = day;
cell.appendChild(num);
// etiquetar eventos de los viernes
const isFriday = ((new Date(year, month, day).getDay() + 6) % 7) === 4;
if (isFriday){
let kind = '';
if (day === firstFri){ kind = 'OPENDAY'; }
else if (day === secondFri){ kind = 'ARTLAB'; }
else if (day === thirdFri){ kind = 'CRAFT'; }
else if (day === lastFri){ kind = 'BLANCO'; }
if (kind){
cell.classList.add('cal-event');
cell.dataset.kind = kind;
cell.style.setProperty('--bgimg', `url("${IMAGES[kind]}")`);
const label = document.createElement('span');
label.className = 'cal-label';
label.textContent = (
kind === 'OPENDAY' ? 'OPEN DAY' :
kind === 'ARTLAB' ? 'ARTLAB' :
kind === 'CRAFT' ? 'CRAFT NIGHT' :
'DÍA EN BLANCO'
);
cell.appendChild(label);
}
}
} else {
cell.classList.add('cal-empty');
}
row.appendChild(cell);
day++;
}
root.appendChild(row);
}
}
function shiftMonth(delta){
view.setMonth(view.getMonth() + delta);
buildCalendar(view);
}
btnPrev.addEventListener('click', () => shiftMonth(-1));
btnNext.addEventListener('click', () => shiftMonth(1));
buildCalendar(view);
})();
</script>
</section>
<!-- PRÓXIMOS EVENTOS (3 huecos vacíos) -->
<section class="panel" aria-label="Próximos eventos">
<h2>Próximos eventos</h2>
<ul class="event-list">
<li class="event">
<h3 class="title">TBA #1</h3>
<img class="poster" src="imagenes/" alt="Evento por anunciar">
<div class="meta"><span class="datetime">por anunciar — 2025</span></div>
</li>
<li class="event">
<h3 class="title">TBA #2</h3>
<img class="poster" src="imagenes/" alt="Evento por anunciar">
<div class="meta"><span class="datetime">por anunciar — 2025</span></div>
</li>
<li class="event">
<h3 class="title">TBA #3</h3>
<img class="poster" src="imagenes/lel.jpeg" alt="Evento por anunciar">
<div class="meta"><span class="datetime">por anunciar — 2025</span></div>
</li>
</ul>
</section>
<!-- EVENTOS REALIZADOS (del más reciente al más antiguo) -->
<section class="panel" aria-label="Eventos realizados">
<h2>Eventos realizados</h2>
<ul class="event-list">
<!-- 2025 -->
<li class="event">
<h3 class="title">CRYPTOPARTY — El arte del cifrado</h3>
<img class="poster" src="imagenes/" alt="Cryptoparty">
<div class="meta"><span class="datetime">Mayo 2025</span></div>
</li>
<li class="event">
<h3 class="title">Sistemas operativos — abre el capó de tu Linux</h3>
<img class="poster" src="imagenes/" alt="Sistemas operativos Linux">
<div class="meta"><span class="datetime">Mayo 2025</span></div>
</li>
<li class="event">
<h3 class="title">Bienvenidas a vuestro OASIS — INSTALL PARTY</h3>
<img class="poster" src="imagenes/" alt="Install party OASIS">
<div class="meta"><span class="datetime">Mayo 2025</span></div>
</li>
<li class="event">
<h3 class="title">OpenWrt — ¡haz tu Wi-Fi libre!</h3>
<img class="poster" src="imagenes/" alt="OpenWrt Wi-Fi libre">
<div class="meta"><span class="datetime">Abril 2025</span></div>
</li>
<li class="event">
<h3 class="title">CINEFORUM</h3>
<img class="poster" src="imagenes/" alt="Cineforum">
<div class="meta"><span class="datetime">Abril 2025</span></div>
</li>
<li class="event">
<h3 class="title">Fontanería de Linux — SSH y certificados</h3>
<img class="poster" src="imagenes/" alt="Fontanería Linux">
<div class="meta"><span class="datetime">Abril 2025</span></div>
</li>
<li class="event">
<h3 class="title">Self-hosting de mensajería — Taller final (Matrix &amp; SimpleX)</h3>
<img class="poster" src="imagenes/xmpp.jpeg" alt="Self-hosting mensajería">
<div class="meta"><span class="datetime">AbrilMayo 2025</span></div>
</li>
<li class="event">
<h3 class="title">IA libre — Autómatas y entrenamiento propio (Taller 2)</h3>
<img class="poster" src="imagenes/charla_ia.jpg" alt="IA libre taller">
<div class="meta"><span class="datetime">AbrilMayo 2025</span></div>
</li>
<li class="event">
<h3 class="title">KAFETA CYBERPUNK 2</h3>
<img class="poster" src="imagenes/cyberpunk2.jpg" alt="Kafeta cyberpunk 2">
<div class="meta"><span class="datetime">Enero 2025</span></div>
</li>
<!-- 2024 -->
<li class="event">
<h3 class="title">Proxmox install party!</h3>
<img class="poster" src="imagenes/proxmox.jpeg" alt="Proxmox install party">
<div class="meta"><span class="datetime">Diciembre 2024</span></div>
</li>
<li class="event">
<h3 class="title">Introducción a la inteligencia artificial libre</h3>
<img class="poster" src="imagenes/charla_ia.jpg" alt="Introducción IA libre">
<div class="meta"><span class="datetime">Diciembre 2024</span></div>
</li>
<li class="event">
<h3 class="title">Cineforum: HACKERWARS</h3>
<img class="poster" src="imagenes/cineforum.jpeg" alt="Hackerwars cineforum">
<div class="meta"><span class="datetime">Noviembre 2024</span></div>
</li>
<li class="event">
<h3 class="title">Install party — ¡fuck systemd!</h3>
<img class="poster" src="imagenes/charla33.jpg" alt="Install party systemd">
<div class="meta"><span class="datetime">Noviembre 2024</span></div>
</li>
<li class="event">
<h3 class="title">Libera y securiza tu teléfono</h3>
<img class="poster" src="imagenes/charla_moviles.jpg" alt="Privacidad en teléfonos">
<div class="meta"><span class="datetime">Noviembre 2024</span></div>
</li>
<li class="event">
<h3 class="title">Federa y libera tus comunicaciones — Fediverso + XMPP</h3>
<img class="poster" src="imagenes/fedi_fun.jpeg" alt="Fediverso y XMPP">
<div class="meta"><span class="datetime">Noviembre 2024</span></div>
</li>
<li class="event">
<h3 class="title">Taller de webs estáticas en HUGO</h3>
<img class="poster" src="imagenes/hugo.jpeg" alt="Taller HUGO">
<div class="meta"><span class="datetime">Octubre 2024</span></div>
</li>
<li class="event">
<h3 class="title">Día de bienvenida</h3>
<img class="poster" src="imagenes/bienvenida.jpg" alt="Día de bienvenida">
<div class="meta"><span class="datetime">Septiembre 2024</span></div>
</li>
<li class="event">
<h3 class="title">Fiesta Julian Assange</h3>
<img class="poster" src="imagenes/julian.jpeg" alt="Fiesta Julian Assange">
<div class="meta"><span class="datetime">3 de julio de 2024</span></div>
</li>
<li class="event">
<h3 class="title">Cineforum: Running with the Devil (John McAfee)</h3>
<img class="poster" src="imagenes/" alt="McAfee cineforum">
<div class="meta"><span class="datetime">27 de junio de 2024</span></div>
</li>
<li class="event">
<h3 class="title">Taller de autodefensa digital para activistas</h3>
<img class="poster" src="imagenes/autodefensa.jpeg" alt="Autodefensa digital">
<div class="meta"><span class="datetime">22 de mayo de 2024</span></div>
</li>
<li class="event">
<h3 class="title">Taller de ganzuado y cerraduras esenciales</h3>
<img class="poster" src="imagenes/ganzuando.jpeg" alt="Ganzuado y cerraduras">
<div class="meta"><span class="datetime">4 de mayo de 2024</span></div>
</li>
<li class="event">
<h3 class="title">Kaffeta: &gt;_ CYBERPUNK ;-)</h3>
<img class="poster" src="imagenes/cyberpunk.jpeg" alt="Kafeta Cyberpunk">
<div class="meta"><span class="datetime">19 de abril de 2024</span></div>
</li>
<li class="event">
<h3 class="title">Taller de privacidad y seguridad — sesión 3</h3>
<img class="poster" src="imagenes/defensa_personal3.jpeg" alt="Privacidad y seguridad 3">
<div class="meta"><span class="datetime">5 de abril de 2024</span></div>
</li>
<li class="event">
<h3 class="title">Interceptando llamadas de aplicaciones Android</h3>
<img class="poster" src="imagenes/apis_moviles.jpeg" alt="APIs móviles / Android">
<div class="meta"><span class="datetime">Marzo 2024</span></div>
</li>
<li class="event">
<h3 class="title">Taller de impresiones 3D</h3>
<img class="poster" src="imagenes/llaves.jpeg" alt="Impresiones 3D">
<div class="meta"><span class="datetime">Marzo 2024</span></div>
</li>
<li class="event">
<h3 class="title">Rebelión de los artefactos</h3>
<img class="poster" src="imagenes/lols.jpeg" alt="Rebelión de los artefactos">
<div class="meta"><span class="datetime">Marzo 2024</span></div>
</li>
<li class="event">
<h3 class="title">Cineforum: El Quinto Poder (Julian Assange)</h3>
<img class="poster" src="imagenes/julian_cineforum.jpeg" alt="El Quinto Poder">
<div class="meta"><span class="datetime">1 de marzo de 2024</span></div>
</li>
<li class="event">
<h3 class="title">HACKELARRE</h3>
<img class="poster" src="imagenes/hacklab_foto.jpeg" alt="Hackelarre">
<div class="meta"><span class="datetime">Febrero 2024</span></div>
</li>
<li class="event">
<h3 class="title">Taller de privacidad y seguridad (Ordenadores)</h3>
<img class="poster" src="imagenes/defensa_personal2.jpeg" alt="Privacidad Ordenadores">
<div class="meta"><span class="datetime">2 de febrero de 2024</span></div>
</li>
<li class="event">
<h3 class="title">Taller de privacidad y seguridad (Teléfonos)</h3>
<img class="poster" src="imagenes/defensa_personal3.jpeg" alt="Privacidad Teléfonos">
<div class="meta"><span class="datetime">15 de marzo de 2024</span></div>
</li>
<li class="event">
<h3 class="title">Cineforum: Aaron Swartz (The Internet's Own Boy)</h3>
<img class="poster" src="imagenes/internet_boy.jpeg" alt="Aaron Swartz cineforum">
<div class="meta"><span class="datetime">19 de enero de 2024</span></div>
</li>
<li class="event">
<h3 class="title">Thinktank: Dinámica de grupo, cacharreo HARD-WARES</h3>
<img class="poster" src="imagenes/primer_taller.jpeg" alt="Thinktank cacharreo">
<div class="meta"><span class="datetime">5 de enero de 2024</span></div>
</li>
<li class="event">
<h3 class="title">Nos vamos juntas al fediverso (Mastodon)</h3>
<img class="poster" src="imagenes/fediversoi.jpeg" alt="Nos vamos al fediverso">
<div class="meta"><span class="datetime">Enero 2024</span></div>
</li>
<li class="event">
<h3 class="title">Charla: Antropología hacker</h3>
<img class="poster" src="imagenes/charla33.jpg" alt="Antropología hacker">
<div class="meta"><span class="datetime">Enero 2024</span></div>
</li>
<li class="event">
<h3 class="title">Taller 2 — creación de webs estáticas con Hugo</h3>
<img class="poster" src="imagenes/hugo.jpeg" alt="Hugo estáticas">
<div class="meta"><span class="datetime">Enero 2024</span></div>
</li>
<li class="event">
<h3 class="title">Taller Proxmox</h3>
<img class="poster" src="imagenes/proxmox.jpeg" alt="Taller Proxmox">
<div class="meta"><span class="datetime">Enero 2024</span></div>
</li>
<!-- 2023 -->
<li class="event">
<h3 class="title">Cineforum: Hackerwars &amp; taller sencillo de Linux</h3>
<img class="poster" src="imagenes/cineforum.jpg" alt="Hackerwars & Linux">
<div class="meta"><span class="datetime">22 de diciembre de 2023</span></div>
</li>
<li class="event">
<h3 class="title">Cineforum: Anonymous — The Story of Anonymous Hacktivist</h3>
<img class="poster" src="imagenes/" alt="Anonymous cineforum">
<div class="meta"><span class="datetime">8 de diciembre de 2023</span></div>
</li>
</ul>
</section>
</main>
<!-- FOOTER -->
<footer class="sub-footer">
<div class="inner">© Hacklab la Raíz — CC BY-NC-SA 4.0</div>
</footer>
</div>
</body>
</html>