From 36cc675558979e9f91afb5ed3eb4ca36caf45507 Mon Sep 17 00:00:00 2001 From: Baitinq <30861839+Baitinq@users.noreply.github.com> Date: Thu, 13 Apr 2023 10:15:59 +0000 Subject: Add initial presentation --- beamerthemesimple.sty | 167 +++++++++++++++++ img/1280px-NixOS_logo.svg.png | Bin 0 -> 46363 bytes img/1366_2000.jpg | Bin 0 -> 108671 bytes img/20230413_10h27m54s_grim.png | Bin 0 -> 117649 bytes img/207px-Home-nixos-logo.png | Bin 0 -> 21402 bytes img/logo1.png | Bin 0 -> 47102 bytes img/map_repo_size_fresh.svg | 1 + presentacion.pdf | Bin 0 -> 938674 bytes presentacion.tex | 392 ++++++++++++++++++++++++++++++++++++++++ 9 files changed, 560 insertions(+) create mode 100644 beamerthemesimple.sty create mode 100644 img/1280px-NixOS_logo.svg.png create mode 100644 img/1366_2000.jpg create mode 100644 img/20230413_10h27m54s_grim.png create mode 100644 img/207px-Home-nixos-logo.png create mode 100644 img/logo1.png create mode 100644 img/map_repo_size_fresh.svg create mode 100644 presentacion.pdf create mode 100644 presentacion.tex diff --git a/beamerthemesimple.sty b/beamerthemesimple.sty new file mode 100644 index 0000000..98cb9b6 --- /dev/null +++ b/beamerthemesimple.sty @@ -0,0 +1,167 @@ +% Copyright 2015 by Facundo Muñoz +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% + + +\ProvidesPackage{beamerthemesimple} + +%\def\beamer@simplecolor{gris} +%\DeclareOptionBeamer{color}{\beamer@simplecolor=#1} +%\ExecuteOptionsBeamer{gris} +%\ProcessOptionsBeamer + +\usepackage{tikz} +\usetikzlibrary{arrows,shapes,trees,positioning,fadings} + +\input xkeyval + +\newcommand<>{\includeoverlaygraphics}[2][] +{ + \begin{tikzpicture} + \alt#3{\node[opacity=1] {\includegraphics[#1]{#2}};} + {\node[opacity=.15] {\includegraphics[#1]{#2}};} + \end{tikzpicture} +} + +% These define macros \KV@setwatermark@hoffset that take one argument +% which is processed by the last piece of codes into braces +\def\@hos{} +\def\@vos{} +\def\@alpha{} % This one does not work. Why? +\define@key{setwatermark}{hoffset}[\def\@hos{.}]{\def\@hos{\hspace*{#1}}} +\define@key{setwatermark}{voffset}[\def\@vos{.}]{\def\@vos{\vspace*{#1}}} +\define@key{setwatermark}{alpha}[\def\@alpha{0.7}]{\def\@alpha{#1}} + +\def\setwatermark{\@ifnextchar[\@setwatermark{\@setwatermark[]}} +\def\@setwatermark[#1]#2{% + \setkeys{setwatermark}{#1}% + \def\@watermark{#2} +} +% \newcommand{\setwatermark}[1]{\def\@watermark{#1}} +\setwatermark{} % Empty initialization + + +\mode + + % define margin + \def\marginsize{0.4cm} + + % http://www.colorcombos.com/color-scheme-275.html + \definecolor{destacado}{HTML}{515151} % gris oscuro + \definecolor{normal}{HTML}{797979} % gris medio + \definecolor{fondo}{HTML}{e6e6e6} % gris claro + + \definecolor{logo}{HTML}{8E8E8E} % el gris del logo + + % para el logo en el footer + \def\logoimage{% + \raisebox{-1.1ex}{\includegraphics[width=3.3ex,trim=2.7 2.7 2.7 2.7]{\inserttitlegraphic}}% + } + + \setbeamercolor{normal text}{bg=white,fg=normal} + \setbeamercolor*{block title}{bg=fondo,fg=destacado} + \setbeamercolor*{block body}{bg=fondo,fg=normal} + \setbeamercolor{alerted text}{fg=black} + + \usetheme{default} +% \usecolortheme[named=gris]{structure} + \usecolortheme[named=destacado]{structure} + \usefonttheme{structurebold} + + % overlays semitransparentes + \setbeamercovered{transparent} + + % customize title page + \def\twitter#1{\def\@twitter{\href{https://twitter.com/#1}{@#1}}} + \newcommand{\inserttwitter}{\@twitter} + + \def\titlecontent{ + \usebeamerfont{title}\usebeamercolor[destacado]{title}\inserttitle + \par + \usebeamerfont{subtitle}\usebeamercolor[destacado]{subtitle}\insertsubtitle + \par + \bigskip + \usebeamerfont{author}\usebeamercolor[normal]{author}\insertauthor + \par + \usebeamerfont{author}\usebeamercolor[normal]{author}\inserttwitter + \par + \bigskip + \usebeamerfont{institute}\usebeamercolor[normal]{institute}\insertinstitute + \par + \usebeamerfont{date}\usebeamercolor[normal]{date}\insertdate + \par + % webpage plug + \usebeamerfont{url}\usebeamercolor[normal]{url}\href{https://gul.uc3m.es}{gul.uc3m.es} + \par + } + + \setbeamertemplate{title page}{% + \hyphenpenalty 10000 + \hspace*{-\marginsize}\parbox[c][\paperheight][c]{\paperwidth}{ + \begin{center} + \begin{tikzpicture} + \node[opacity=0.3] {\includegraphics[height=7cm]{\inserttitlegraphic}}; + \node[align=center, text width=0.95\paperwidth]{ + \titlecontent + }; + \end{tikzpicture} + \end{center} + } + + } + + % footer (contador de diapos, nombre jornadas) + \setbeamercolor{section in foot}{fg=fondo, bg=logo} + \setbeamertemplate{footline}{ + \leavevmode% + \hbox{% + \begin{beamercolorbox}[wd=.023\paperwidth,ht=2.25ex,dp=1ex,left]{section in foot}% + \usebeamerfont{logo in head/foot}\logoimage + \end{beamercolorbox}% + \begin{beamercolorbox}[wd=.377\paperwidth,ht=2.25ex,dp=1ex,center]{section in foot}% + \usebeamerfont{institute in head/foot}\insertshortinstitute + \end{beamercolorbox}% + \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.25ex,dp=1ex,center]{section in foot}% + \usebeamerfont{title in head/foot}\insertshorttitle\hspace*{3em} + \end{beamercolorbox}}% + \begin{beamercolorbox}[wd=.1\paperwidth,ht=2.25ex,dp=1ex,center]{section in foot}% + \usebeamerfont{title in head/foot}\insertframenumber{} / \inserttotalframenumber\hspace*{1ex} + \end{beamercolorbox} + \vskip0pt% + } + + % eliminar íconos de nav. + \setbeamertemplate{navigation symbols}{} + + % bloques + \setbeamertemplate{blocks}[rounded][shadow=false] + + % especificación global para listas + %\beamerdefaultoverlayspecification{<+-| alert@+>} + + % márgenes + \setbeamersize{text margin left=\marginsize,text margin right=\marginsize} + + \setbeamertemplate{background}{ + \parbox[c][\paperheight]{\paperwidth}{% + \vfill \hfill + \begin{tikzpicture} + %\node[opacity=\@alpha] % not working. why? + \node[opacity=.03] + { + \@watermark + }; + \end{tikzpicture} + \@hos + + \@vos + } +} + +\mode + + diff --git a/img/1280px-NixOS_logo.svg.png b/img/1280px-NixOS_logo.svg.png new file mode 100644 index 0000000..1e1b305 Binary files /dev/null and b/img/1280px-NixOS_logo.svg.png differ diff --git a/img/1366_2000.jpg b/img/1366_2000.jpg new file mode 100644 index 0000000..54d63a7 Binary files /dev/null and b/img/1366_2000.jpg differ diff --git a/img/20230413_10h27m54s_grim.png b/img/20230413_10h27m54s_grim.png new file mode 100644 index 0000000..9456783 Binary files /dev/null and b/img/20230413_10h27m54s_grim.png differ diff --git a/img/207px-Home-nixos-logo.png b/img/207px-Home-nixos-logo.png new file mode 100644 index 0000000..3e06ec4 Binary files /dev/null and b/img/207px-Home-nixos-logo.png differ diff --git a/img/logo1.png b/img/logo1.png new file mode 100644 index 0000000..f88a964 Binary files /dev/null and b/img/logo1.png differ diff --git a/img/map_repo_size_fresh.svg b/img/map_repo_size_fresh.svg new file mode 100644 index 0000000..cf4dbd1 --- /dev/null +++ b/img/map_repo_size_fresh.svg @@ -0,0 +1 @@ +Number of packages in repositoryNumber of fresh packages in repository830000057000Gentoo overlay PentooGentoo overlay PentooAmazon Linux 1Amazon Linux 1AlmaLinux 9AlmaLinux 9Amazon Linux 2Amazon Linux 2glaucusglaucusAlpine Linux 3.14Alpine Linux 3.14ALT SisyphusALT SisyphusGNU GuixGNU GuixGoboLinuxGoboLinuxHomebrewHomebrewHomebrew CasksHomebrew CasksHomebrew tap Brewsci/bioHomebrew tap Brewsci/bioArch Linux ARM armv7hArch Linux ARM armv7hHP-UX 11.31HP-UX 11.31ArtixArtixjust-installjust-installKali Linux Bleeding EdgeKali Linux Bleeding EdgeKali Linux RollingKali Linux RollingKaOSKaOSCentOS 7CentOS 7CentOS 8CentOS 8CentOS Stream 8CentOS Stream 8KaOS BuildKaOS BuildCRANCRANcrates.iocrates.ioCRUX 3.4CRUX 3.4CRUX 3.5CRUX 3.5CRUX 3.6CRUX 3.6CRUX 3.7CRUX 3.7KaOS kde-nextKaOS kde-nextDebian 9 BackportsDebian 9 BackportsKDE neon TestingKDE neon TestingKDE neon UnstableKDE neon UnstableKDE neon UserKDE neon UserDevuan 4.0Devuan 4.0DPortsDPortsKDE neon User LTSKDE neon User LTSEntwareEntwareKISS Linux GamesKISS Linux GamesLibregamewikiLibregamewikiLiGurOS stableLiGurOS stableLiGurOS developLiGurOS developFedora 28Fedora 28Linux Mint 17.1Linux Mint 17.1Linux Mint 17.2Linux Mint 17.2Fedora 31Fedora 31Fedora 32Fedora 32Linux Mint 17.3Linux Mint 17.3Fedora 36Fedora 36Fedora 38Fedora 38GentooGentooLinux Mint 18Linux Mint 18Gentoo overlay GURUGentoo overlay GURUGNU ElpaGNU ElpaLinux Mint 18.1Linux Mint 18.1Gentoo Science overlayGentoo Science overlayHackageHackageHaikuPorts masterHaikuPorts masterLinux Mint 17Linux Mint 17Linux Mint 19Linux Mint 19Linux Mint 19.1Linux Mint 19.1Linux Mint 19.2Linux Mint 19.2Linux Mint 20.1Linux Mint 20.1Linux Mint 20.2Linux Mint 20.2Linux Mint 20.3Linux Mint 20.3Mageia CauldronMageia CauldronManjaro UnstableManjaro UnstableMELPAMELPAMELPA StableMELPA StableMidnightBSD mportsMidnightBSD mportsMPRMPRMSYS2 msys2MSYS2 msys2MX Linux MX-19MX Linux MX-19MX Linux MX-19 TestingMX Linux MX-19 TestingMX Linux MX-21 TestingMX Linux MX-21 Testingnixpkgs stable 21.11nixpkgs stable 21.11nixpkgs stable 22.05nixpkgs stable 22.05nixpkgs stable 22.11nixpkgs stable 22.11nixpkgs unstablenixpkgs unstableNOIR Linux MainNOIR Linux MainNpackd Stable64Npackd Stable64Npackd UnstableNpackd UnstableOpenBSD PortsOpenBSD PortsopenEuler 20.03openEuler 20.03openEuler 22.03openEuler 22.03OpenIndiana packagesOpenIndiana packagesopenmambaopenmambaOpenMandriva 4.0OpenMandriva 4.0OpenMandriva 4.2OpenMandriva 4.2OpenMandriva 4.3OpenMandriva 4.3OpenMandriva RollingOpenMandriva RollingOpenMandriva CookerOpenMandriva CookerOpenPKGOpenPKGopenSUSE Leap 42.3openSUSE Leap 42.3openSUSE Leap 15.0openSUSE Leap 15.0openSUSE Leap 15.1openSUSE Leap 15.1openSUSE Leap 15.2openSUSE Leap 15.2openSUSE Leap 15.3openSUSE Leap 15.3openSUSE Leap 15.4openSUSE Leap 15.4openSUSE Leap 15.5openSUSE Leap 15.5openSUSE TumbleweedopenSUSE TumbleweedopenSUSE Education TumbleweedopenSUSE Education TumbleweedopenSUSE Emulators TumbleweedopenSUSE Emulators TumbleweedopenSUSE games TumbleweedopenSUSE games TumbleweedopenSUSE graphics TumbleweedopenSUSE graphics TumbleweedopenSUSE hardware:sdr TumbleweedopenSUSE hardware:sdr TumbleweedopenSUSE multimedia:apps TumbleweedopenSUSE multimedia:apps TumbleweedopenSUSE multimedia:libs TumbleweedopenSUSE multimedia:libs TumbleweedopenSUSE network TumbleweedopenSUSE network TumbleweedopenSUSE science TumbleweedopenSUSE science TumbleweedopenSUSE security TumbleweedopenSUSE security TumbleweedopenSUSE server:irc TumbleweedopenSUSE server:irc TumbleweedopenSUSE shells TumbleweedopenSUSE shells TumbleweedOpenWrt 17.01 x86_64OpenWrt 17.01 x86_64OpenWrt 18.06 x86_64OpenWrt 18.06 x86_64OpenWrt 19.07 x86_64OpenWrt 19.07 x86_64OpenWrt 21.02 x86_64OpenWrt 21.02 x86_64OpenWrt 22.03 x86_64OpenWrt 22.03 x86_64PackMan openSUSE Leap 42.3PackMan openSUSE Leap 42.3PackMan openSUSE Leap 15.0PackMan openSUSE Leap 15.0PackMan openSUSE Leap 15.1PackMan openSUSE Leap 15.1PackMan openSUSE Leap 15.2PackMan openSUSE Leap 15.2PackMan openSUSE TumbleweedPackMan openSUSE TumbleweedPackMan SLE 12PackMan SLE 12PackMan SLE 15PackMan SLE 15pacstallpacstallParabolaParabolaParabola TestingParabola TestingPardus 17Pardus 17Pardus 19Pardus 19Pardus 21Pardus 21PCLinuxOSPCLinuxOSPisi LinuxPisi LinuxPisi Linux ContribPisi Linux Contribpkgsrc currentpkgsrc currentPLD LinuxPLD LinuxpostmarketOS 20.05postmarketOS 20.05postmarketOS 21.03postmarketOS 21.03postmarketOS 22.12postmarketOS 22.12postmarketOS masterpostmarketOS masterPureOS AmberPureOS AmberPureOS landingPureOS landingPyPIPyPIRaspbian OldstableRaspbian OldstableRaspbian StableRaspbian StableRaspbian TestingRaspbian TestingRavenportsRavenportsReactOS rappsReactOS rappsRebornOSRebornOSRocky Linux 8Rocky Linux 8Rocky Linux 9Rocky Linux 9Rosa 2014.1Rosa 2014.1Rosa 2016.1Rosa 2016.1Rosa 2021.1Rosa 2021.1Rosa Server 6.9Rosa Server 6.9Rosa Server 7.3Rosa Server 7.3Rosa Server 7.5Rosa Server 7.5RPM Fusion EL 6RPM Fusion EL 6RPM Fusion EL 7RPM Fusion EL 7RPM Fusion EL 8RPM Fusion EL 8RPM Fusion Fedora 35RPM Fusion Fedora 35RPM Fusion Fedora 36RPM Fusion Fedora 36RPM Fusion Fedora 37RPM Fusion Fedora 37RPM SphereRPM SphereRubyGemsRubyGemsSabayonSabayonSabayon for-gentooSabayon for-gentooSageMath stableSageMath stableSageMath developmentSageMath developmentSalix 14.2Salix 14.2Scientific Linux 7.xScientific Linux 7.xSoftware CollectionsSoftware CollectionsScoopScoopSiductionSiductionSiduction ExperimentalSiduction ExperimentalSlackBuildsSlackBuildsSlackware 14.2Slackware 14.2Slackware 15.0Slackware 15.0Slackware currentSlackware currentSlackware64 14.2Slackware64 14.2Slackware64 15.0Slackware64 15.0Slackware64 currentSlackware64 currentSlackwarearm 14.2Slackwarearm 14.2Slackwarearm 15.0Slackwarearm 15.0SliTaz CookingSliTaz CookingSliTaz NextSliTaz NextSpackSpackSparky StableSparky StableSparky TestingSparky TestingStackage LTS HaskellStackage LTS HaskellStackage NightlyStackage NightlyT2 SDET2 SDETails stableTails stableTails develTails develTermuxTermuxTerra 37Terra 37Trisquel 6.0Trisquel 6.0Trisquel 6.0 backportsTrisquel 6.0 backportsTrisquel 7.0Trisquel 7.0Trisquel 7.0 backportsTrisquel 7.0 backportsTrisquel 8.0Trisquel 8.0Trisquel 8.0 backportsTrisquel 8.0 backportsTrisquel 9.0Trisquel 9.0Trisquel 9.0 backportsTrisquel 9.0 backportsTrisquel 10.0Trisquel 10.0Trisquel 10.0 backportsTrisquel 10.0 backportsTrisquel 11.0Trisquel 11.0Trisquel 11.0 backportsTrisquel 11.0 backportsUBI 8UBI 8Ubuntu 14.04Ubuntu 14.04Ubuntu 14.04 BackportsUbuntu 14.04 BackportsUbuntu 16.04Ubuntu 16.04Ubuntu 16.04 BackportsUbuntu 16.04 BackportsUbuntu 18.04Ubuntu 18.04Ubuntu 18.04 BackportsUbuntu 18.04 BackportsUbuntu 20.04Ubuntu 20.04Linux Mint 18.2Linux Mint 18.2Ubuntu 22.10Ubuntu 22.10Ubuntu 23.04Ubuntu 23.04Ubuntu 23.04 ProposedUbuntu 23.04 ProposedUnitedRPMs Fedora 32UnitedRPMs Fedora 32UnitedRPMs Fedora 33UnitedRPMs Fedora 33UnitedRPMs Fedora 34UnitedRPMs Fedora 34UnitedRPMs Fedora 35UnitedRPMs Fedora 35UnitedRPMs Fedora 36UnitedRPMs Fedora 36VcpkgVcpkgWakeMeOpsWakeMeOpswingetwingetYACPYACPantiX-16antiX-16AIX Open Source PackagesAIX Open Source PackagesAIX ToolboxAIX ToolboxantiX-17antiX-17Linux Mint 18.3Linux Mint 18.3AlmaLinux 8AlmaLinux 8Alpine Linux 3.8Alpine Linux 3.8antiX-19antiX-19Alpine Linux 3.10Alpine Linux 3.10Alpine Linux 3.11Alpine Linux 3.11Linux Mint 19.3Linux Mint 19.3antiX-21antiX-21Linux Mint 20Linux Mint 20Alpine Linux 3.12Alpine Linux 3.12Alpine Linux 3.16Alpine Linux 3.16Alpine Linux 3.13Alpine Linux 3.13Alpine Linux 3.15Alpine Linux 3.15Alpine Linux 3.17Alpine Linux 3.17Alpine Linux EdgeAlpine Linux EdgeLinux Mint 21Linux Mint 21ALT Linux p9ALT Linux p9AOSCAOSCLinux Mint 21.1Linux Mint 21.1Apertis v2021Apertis v2021LMDE 4LMDE 4Apertis v2022Apertis v2022Apertis v2023Apertis v2023LMDE 5LMDE 5LuaRocksLuaRocksAppGetAppGetArchArchArch TestingArch TestingMacPortsMacPortsArch Linux 32 i486Arch Linux 32 i486Mageia 7Mageia 7Arch Linux 32 i686Arch Linux 32 i686Mageia 8Mageia 8Arch Linux 32 pentium4Arch Linux 32 pentium4Arch Linux ARM aarch64Arch Linux ARM aarch64ArchPOWER powerpcArchPOWER powerpcArchPOWER powerpc64leArchPOWER powerpc64leManjaro StableManjaro StableArchPOWER riscv64ArchPOWER riscv64Manjaro TestingManjaro TestingAURAURAtaraxia GNU/LinuxAtaraxia GNU/LinuxBackBox 6BackBox 6BaulkBaulkBlackArchBlackArchBunsenLabs HydrogenBunsenLabs HydrogenBunsenLabs Hydrogen/Jessie BackportsBunsenLabs Hydrogen/Jessie BackportsBunsenLabs HeliumBunsenLabs HeliumBunsenLabs Helium/Stretch BackportsBunsenLabs Helium/Stretch BackportsCarbs LinuxCarbs LinuxCalculateCalculateChocolateyChocolateyConanCenterConanCenterMetaCPANMetaCPANCygwinCygwinDeb Multimedia UnstableDeb Multimedia UnstableDebian 9Debian 9Debian 10Debian 10Debian 10 BackportsDebian 10 BackportsDebian 11Debian 11Debian 11 BackportsDebian 11 BackportsDebian 12Debian 12Debian Janitor - ReleasesDebian Janitor - ReleasesDebian Janitor - SnapshotsDebian Janitor - SnapshotsDebian UnstableDebian UnstableDebian ExperimentalDebian ExperimentalDevuan 2.0Devuan 2.0Devuan 1.0Devuan 1.0Devuan 3.0Devuan 3.0Devuan UnstableDevuan UnstabledistridistriDistroWatch.comDistroWatch.comELRepo el7ELRepo el7Endless OS 4.0Endless OS 4.0Endless OS masterEndless OS masterEPEL 6EPEL 6EPEL 8EPEL 8EPEL 7EPEL 7EPEL 9EPEL 9EuroLinux 8EuroLinux 8EuroLinux 9EuroLinux 9ExherboExherboF-DroidF-DroidFedora 26Fedora 26Fedora 30Fedora 30Fedora 27Fedora 27Fedora 29Fedora 29Fedora 33Fedora 33Fedora 34Fedora 34Fedora 37Fedora 37Fedora 35Fedora 35FreeBSD PortsFreeBSD PortsFedora RawhideFedora Rawhidefreshcode.clubfreshcode.clubApertis v2020Apertis v2020IBM iIBM iOpenMandriva 4.1OpenMandriva 4.1CentOS Stream 9CentOS Stream 9Alpine Linux 3.9Alpine Linux 3.9Adélie Linux currentAdélie Linux currentALT Linux p10ALT Linux p10Astra Orel StableAstra Orel StableBackBox 7BackBox 7CentOS 6CentOS 6DeepinDeepinELRepo el7 TestingELRepo el7 TestingMSYS2 mingwMSYS2 mingwMX Linux MX-21MX Linux MX-21Npackd StableNpackd StableOS4DepotOS4DepotParrotParrotRPM Fusion Fedora RawhideRPM Fusion Fedora RawhideApertis v2024 DevelopmentApertis v2024 DevelopmentUbuntu 20.04 BackportsUbuntu 20.04 BackportsWikidataWikidataUbuntu 22.04Ubuntu 22.04Ubuntu 22.04 BackportsUbuntu 22.04 BackportsVoid Linux x86_64Void Linux x86_64yiffOS KnotyiffOS KnotCPANCPANRPM Fusion EL 9RPM Fusion EL 9 \ No newline at end of file diff --git a/presentacion.pdf b/presentacion.pdf new file mode 100644 index 0000000..3b96e2d Binary files /dev/null and b/presentacion.pdf differ diff --git a/presentacion.tex b/presentacion.tex new file mode 100644 index 0000000..81d6c69 --- /dev/null +++ b/presentacion.tex @@ -0,0 +1,392 @@ +\documentclass[aspectratio=43]{beamer} + +\usetheme{simple} + +\usepackage{lmodern} +\usepackage[scale=2]{ccicons} +\usepackage{hyperref} +\usepackage[inkscapeformat=png]{svg} + +\usepackage[utf8]{inputenc} % No olvides utilizar UTF8, especialmente si tu presentación está en castellano + + +\def\edicion{XXXV} % Edición de las jornadas +\def\fecha{Abril 2023} % Fecha de las jornadas + +\title{NixOS} % Modifica el título de la presentación a tu gusto +\subtitle{Linux dentro de 10 años} % Incluye un subtítulo si lo ves necesario, o bórralo +\author{Manuel Palenzuela Merino} % Cambia el autor de la presentación +\twitter{github.com/Baitinq} % Pon tu Twitter o déjalo en blanco + +% Esto no lo cambies +\institute{\edicion \ Jornadas Técnicas del GUL} +\date{\fecha} + + +% Página principal (no tocar) +\titlegraphic{img/logo1.png} + +\begin{document} + +{ + \setbeamertemplate{footline}{} + \begin{frame} + \titlepage + \end{frame} +} +\addtocounter{framenumber}{-1} + +\setwatermark{\includegraphics[height=8cm]{img/logo1.png}} % Marca de agua (opcional) + +\section{Distribuciones de Linux "tradicionales"} +\subsection{Problemas} +\section{Que es Nix?} +\section{Nix (Lenguaje)} +\subsection{Derivaciones} +\section{Nixpkgs} +\section{Nix (Package Manager)} +\section{NixOS} +\subsection{Highlights} +\subsection{Configuraciones} +\section{El futuro de Linux} +\subsection{Mas informacion} +\section{Preguntas} + +% ------------------------------------------------------------------------------------------ +% La presentación empieza aquí. La primera diapositiva puede dejarse tal cual o sustituirse. +% ------------------------------------------------------------------------------------------ + +\begin{frame} + \frametitle{Antes de empezar} + \begin{enumerate} + \item{Podeis preguntar dudas en cualquier momento} + \item{Cuantas mas preguntas mejor :))} + \item{Tambien se aceptan sugerencias durante la charla (mas alto, explicar algo mas a fondo, etc)} + \item{\href{https://github.com/Baitinq/nixos-presentation}{https://github.com/Baitinq/nixos-presentation}} + \end{enumerate} +\end{frame} + +\begin{frame} + \frametitle{Tabla de contenidos} % Puedes ponerle un título más chulo a la diapositiva con el índice de contenidos o dejar éste + \tableofcontents % Para poblar la tabla de contenidos debes utilizar \section y \subsection apropiadamente (ver demo) +\end{frame} + +\begin{frame} + \frametitle{Distribuciones de Linux "tradicionales"} + \begin{columns} + \column{0.4\textwidth} + Ej: + \begin{itemize} + \item{Arch Linux} + \item{Debian} + \item{Fedora} + \item{Ubuntu} + \end{itemize} + \column{0.4\textwidth} + Que son: + \begin{enumerate} + \item Package manager + \item Repositorios + \item Filesystem structure + \item Etc? + \end{enumerate} + \end{columns} +\end{frame} + +% TODO: Do sections in table of contents +\begin{frame} + \frametitle{Problemas de distros "tradicionales"} + \begin{itemize} + \item Actualizaciones/cambios de configuración modifican destructivamente el estado del sistema (sobrescribiendo archivos en secuencia -\> \textbf{inconsistencia temporal}) + \item Diferentes versiones de un binario + \item Conflictos de paquetes + \item No hay rollbacks + \item No hay gestión de la configuración (dotfiles) + \item\textbf{NO HAY DETERMINISMO} + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Que es Nix?} + + \begin{enumerate}[I] + \item{\href{https://nix.dev/tutorials/nix-language}{Nix (lenguaje)}} + \item{\href{https://github.com/NixOS/nixpkgs}{Nixpkgs}} + \item{\href{https://github.com/NixOS/nix}{Nix (package manager)}} + \end{enumerate} + +\end{frame} + +\begin{frame} + \frametitle{Nix (Lenguaje)} + \begin{itemize} + \item Es un DSL (no un GPL!) + \item Usado para describir \textbf{derivaciones} + \item Dynamically typed (por el momento) + \item Lazy + \item Funcional (no hay side-effects) + \item Turing completo + \end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Nix (lenguaje)} + \begin{block}{} + \begin{verbatim} +let + nombre = "GUL"; + saludar = x: "hola " + x + "!"; +in { + x = saludar nombre; + z = 1; +} + \end{verbatim} + \end{block} + \begin{block}{} + \begin{verbatim} +nix-repl> { x = "hola GUL!"; z = 1; } + \end{verbatim} + \end{block} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Nix (lenguaje) - Derivaciones} + \begin{block}{} + \fontsize{10}{12}\begin{verbatim} +nix-repl> d = derivation { name = "myname"; builder ="mybuilder"; +system = "mysystem"; } +nix-repl> d +«derivation /nix/store/z3hhlxbckx4g3n9sw91nnvlkjvyw754p-myname.drv» + \end{verbatim} + \end{block} +\begin{block}{hello.nix} +\begin{verbatim} +with import {}; +stdenv.mkDerivation { + name = "hello"; + src = ./hello-2.10.tar.gz; +} +\end{verbatim} +\end{block} +\begin{block}{} +\fontsize{10}{12}\begin{verbatim} +$ nix-build hello.nix +/nix/store/6y0mzdarm5qxfafvn2zm9nr01d1j0a72-hello +$ /nix/store/6y0mzdarm5qxfafvn2zm9nr01d1j0a72-hello/bin/hello +Hello, world! +\end{verbatim} +\end{block} +\end{frame} + +\begin{frame} + \frametitle{Nixpkgs (the Nix packages collection)} + \begin{itemize} + \item Repositorio en GitHub (Licencia FOSS) + \item Contiene definiciones de paquetes (derivations) + \item Tambien contiene tests, librerias, etc. + \item Ramas diferentes (rolling: master, stable: release-YY.MM) + \item Compilado y testeado por Hydra (+=y subido al cache binario) + \end{itemize} +\vspace{14} + \begin{itemize} + \item Numero de paquetes $\Rightarrow$ nixpkgs-unstable: \textbf{82918} vs AUR: \textbf{72357} + \item Puesto numero \textbf{12} en lenguajes mas populares en GitHub (en cuanto a PRs) + \end{itemize} +\end{frame} + +\begin{frame} + \includesvg[scale=0.4]{img/map_repo_size_fresh.svg} +\end{frame} + +\begin{frame}[fragile] + \begin{block}{aircrack-ng.nix} +\fontsize{7}{9}\begin{verbatim} +{ lib, stdenv, fetchurl, libpcap, openssl, zlib, wirelesstools +, iw, ethtool, pciutils, libnl, usbutils }: + +stdenv.mkDerivation { + pname = "aircrack-ng"; + version = "1.7"; + + src = fetchurl { + url = "https://download.aircrack-ng.org/aircrack-ng-${version}.tar.gz"; + sha256 = "1hsq1gwmafka4bahs6rc8p98yi542h9a502h64bjlygpr3ih99q5"; + }; + + buildInputs = [ libpcap openssl zlib libnl iw ethtool pciutils ]; + + [...] + + meta = with lib; { + description = "Wireless encryption cracking tools"; + homepage = "http://www.aircrack-ng.org/"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ ]; + platforms = platforms.linux; + }; +} +\end{verbatim} +\end{block} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Nix (package manager)} +\begin{itemize} + \item Un gestor de paquetes puramente funcional (y deterministico) + \item Instalación de paquetes por usuarios sin privilegios + \item Guarda los paquetes en la Nix store (/nix/store por defecto) + \item Cada paquete tiene su propio UUID (/nix/store/\$hash\$version\$name) + \item Permite instalar diferentes versiones de un mismo paquete + \item Elimina totalmente problemas de dependencias + \item Actualizaciones y rollbacks \textbf{atomicos} + \item Instalable en cualquier distro + MacOS (homebrew replacement?) +\end{itemize} +\begin{block}{Ejemplos:} +\begin{verbatim} +$ nix-env -i aircrack-ng +$ nix run vim +$ nix run "github:example/repo#package" +$ nix shell blender-bin#blender_2_83 +\end{verbatim} +\end{block} +\end{frame} + +\begin{frame} + \frametitle{NixOS} + + \begin{center} + Integra profundamente Nix (los 3 tipos) en una distribucion de Linux! + \end{center} + \vspace{20} + \begin{center} + \includegraphics[scale=0.1]{img/1280px-NixOS_logo.svg.png} + \end{center} +\end{frame} + +%TODO: IMAGES + +\begin{frame} + \frametitle{NixOS Highlights} + + \begin{itemize} +\item Actualizaciones atomicas (software & configuration) +\item Actualizaciones fiables (y rollbacks - configuración vinculada a la versión de software correcta + recargas/reinicios del servicio) +\item Rollbacks +\item Reproducible +\item Configuracion del OS \textbf{declarativa} +\begin{itemize} +\item TODO tu sistema operativo en un repositorio git +\end{itemize} +\item \textbf{DETERMINISMO} + \end{itemize} +\end{frame} + +\begin{frame} +\frametitle{Mi Configuracion} + \includegraphics[scale=0.34]{img/20230413_10h27m54s_grim.png} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Configuracion minima de NixOS} +\begin{block}{configuration.nix} +\begin{verbatim} +{ + boot.loader.grub.device = "/dev/sda"; + + fileSystems."/".device = "/dev/sda1"; + + services.sshd.enable = true; +} +\end{verbatim} +\end{block} +\begin{block}{} +\begin{verbatim} +$ nixos-rebuild switch -I nixos-config=configuration.nix +$ nixos-rebuild switch --rollback +$ nixos-rebuild test -I nixos-config=configuration.nix +$ nixos-rebuild build-vm -I nixos-config=configuration.nix +\end{verbatim} +\end{block} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Configuraciones NixOS} +\begin{block}{configuration.nix} +\fontsize{9}{11}\begin{verbatim} +{ config, pkgs, ...} : +{ + imports = [ ./hardware.nix ]; + + environment.systemPackages = with pkgs; [ thunderbird firefox vim ]; + + users.users."alice" = { + isNormalUser = true; + home = "/home/alice"; + extraGroups = [ "wheel" "networkmanager" ]; + }; + + services.xserver = { + windowManager.i3.enable = true; + displayManager.sddm.enable = true; + videoDrivers = [ "nvidia" ]; + }; + + networking.firewall.enable = true; +} +\end{verbatim} +\end{block} +\end{frame} + +\begin{frame} + \frametitle{El futuro de Linux} + \begin{itemize} + \item NixOS tiene problemas + \item Alternativas: + \begin{itemize} + \item Fedora Silverblue? + \item Seguir como estamos? + \end{itemize} + \end{itemize} + \begin{center} + \includegraphics[scale=0.34]{img/1366_2000.jpg} + \end{center} +\end{frame} + +\begin{frame} +\frametitle{Mas informacion} +\begin{center} +\begin{itemize} + \item \begin{center}NixOS modules\end{center} + \item \begin{center}Overriding\end{center} + \item \begin{center}Flakes\end{center} + \item \begin{center}Etc..\end{center} +\end{itemize} +\end{center} +\begin{columns} + \column{0.6\textwidth} +\begin{itemize} + \item \href{https://nixos.org}{NixOS website} + \item \href{https://nixos.org/manual/nixos/stable/}{Nix Manuals} + \item \href{https://nixos.org/guides/nix-pills/}{\textbf{Nix Pills}} + \item \href{https://learnxinyminutes.com/docs/nix/}{Learn X in Y minutes, where X=nix} +\end{itemize} + \column{0.4\textwidth} + \includegraphics[scale=0.4]{img/207px-Home-nixos-logo.png} +\end{columns} +\end{frame} + +\begin{frame} + \frametitle{Gracias por escuchar!} + \begin{center} + \includegraphics[scale=0.4]{img/207px-Home-nixos-logo.png} + \begin{itemize} + \item Preguntas + \item Feedback + \end{itemize} + \end{center} + \vspace{44} + \href{https://github.com/Baitinq/nixos-config}{https://github.com/Baitinq/nixos-config} +\end{frame} + + +\end{document} -- cgit 1.4.1