Files
delphistudio-website/public/formacion/cursos/cursos.html
Alessio Molinaro a6f764245d First Commit
Setup repo and website
2024-11-21 09:29:25 +01:00

753 lines
42 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- logo -->
<link rel="apple-touch-icon" sizes="57x57" href="/img/logo.ico/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/img/logo.ico/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/img/logo.ico/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/img/logo.ico/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/img/logo.ico/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/img/logo.ico/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/img/logo.ico/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/img/logo.ico/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/img/logo.ico/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/img/logo.ico/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/logo.ico/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/img/logo.ico/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/img/logo.ico/favicon-16x16.png">
<link rel="manifest" href="/img/logo.ico/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="img/logo.ico">
<meta name="theme-color" content="#ffffff">
<!-- logo fine -->
<title id="title"></title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400">
<!-- Google web font "Open Sans" -->
<link rel="stylesheet" href="/font-awesome-4.5.0/css/font-awesome.min.css">
<!-- Font Awesome -->
<link rel="stylesheet" href="/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="/slick/slick.css" />
<link rel="stylesheet" type="text/css" href="/slick/slick-theme.css" />
<link rel="stylesheet" href="/css/tooplate-style.css">
<link rel="stylesheet" href="../formacion.css">
<!-- tooplate style -->
<script>
var renderPage = true;
if (navigator.userAgent.indexOf('MSIE') !== -1
|| navigator.appVersion.indexOf('Trident/') > 0) {
/* Microsoft Internet Explorer detected in. */
alert("Please view this in a modern browser such as Chrome or Microsoft Edge.");
renderPage = false;
}
</script>
</head>
<body>
<!-- Loader -->
<div style="z-index:999999999" id="loader-wrapper">
<div id="loader"></div>
<div class="loader-section section-left"></div>
<div class="loader-section section-right"></div>
</div>
<div class="container">
<section class="tm-section-head" id="top">
<header id="header" class="text-center tm-text-gray">
<div>
<a href="#top"><img class="logo" src="/img/logo-trasparent.png"></a>
</div>
<h1 id="heading"></h1>
<h6 class="subtitle"></h6>
<div id="navigation-bar"></div>
</header>
</section>
<section class="tm-section-5" id="tm-section-5">
<div class="row">
<div class="col-ds-2 col-tb-12 col-mb-12 col-lg-12" id="course">
</div>
</div>
</section>
<hr>
<section class="tm-section-6" id="tm-section-6">
<div class="row">
<div class="col-lg-7 col-md-7 col-xs-12">
<div class="contact_message">
<form action="https://formspree.io/f/mqkwvjlz" method="post" class="contact-form">
<div class="row mb-2">
<div class="form-group col-xl-6">
<input type="text" id="contact_name" name="contact_name" class="form-control"
placeholder="Nombre" required />
</div>
<div class="form-group col-xl-6 pl-xl-1">
<input type="email" id="contact_email" name="contact_email" class="form-control"
placeholder="Correo electrónico" required />
</div>
</div>
<div class="form-group">
<textarea id="contact_message" name="contact_message" class="form-control" rows="6"
placeholder="Escribe aquí tu mensaje." required></textarea>
</div>
<button type="submit" class="btn tm-btn-submit float-right btn-big">Enviar</button>
</form>
</div>
</div>
<div class="col-lg-5 col-md-5 col-xs-12 tm-contact-right">
<div class="tm-address-box">
<h2 class="mb-4" id="cnt-section">Contacto</h2>
<address>
<a class="no-link" href="https://www.google.it/maps/place/Carrer+de+les+Garrigues,+17,+46001+Val%C3%A8ncia,+Spagna/@39.4712608,-0.3784316,17z/data=!4m5!3m4!1s0xd604f4c1c838a5d:0x8e12d7a464472964!8m2!3d39.4710745!4d-0.3793221"
target="_blank">
<i class="fa fa-map-marker" aria-hidden="true" style="margin-left: 0.1em"></i></a>
<a class="no-link" href="https://www.google.it/maps/place/Carrer+de+les+Garrigues,+17,+46001+Val%C3%A8ncia,+Spagna/@39.4712608,-0.3784316,17z/data=!4m5!3m4!1s0xd604f4c1c838a5d:0x8e12d7a464472964!8m2!3d39.4710745!4d-0.3793221"
target="_blank">
Carrer de les Garrigues, 17</a>
<br>46001 Valencia
<br>España
<br>Teléfono: +34 960130674
</address>
</div>
</div>
</div>
</section>
<footer class="mt-5">
<p class="text-center">Copyright © 2021 DELPHI STUDIO <a href="http://www.delphistudio.es/politica-de-privacidad/" target="_blank" rel="noopener noreferrer">AVISO LEGAL Y POLÍTICA DE PRIVACIDAD</a></p>
</footer>
</div>
<!-- load JS files -->
<script type="text/javascript" src="/js/jquery-1.11.3.min.js"></script>
<script src="/js/popper.min.js"></script>
<!-- https://popper.js.org/ -->
<script src="/js/bootstrap.min.js"></script>
<!-- https://getbootstrap.com/ -->
<script type="text/javascript" src="/slick/slick.min.js"></script>
<!-- Slick Carousel -->
<script type="text/javascript">
window.onresize = function () {
calculateMediaQuery();
}
$(document).ready(
calculateMediaQuery()
);
function calculateMediaQuery() {
if (window.matchMedia('(min-width: 1200px)').matches) {
this.mediaQueryInUse = 'desktop';
} else if (window.matchMedia('(min-width: 992px) and (max-width: 1199px)').matches) {
this.mediaQueryInUse = 'desktop';
} else if (window.matchMedia('(min-width: 768px) and (max-width: 991px)').matches) {
this.mediaQueryInUse = 'tablet';
} else {
this.mediaQueryInUse = 'mobile';
}
if (this.mediaQueryInUse != 'mobile') {
document.getElementById("navigation-bar").innerHTML = `
<nav class="navbar navbar-expand-sm bg-light navbar-light">
<!-- Brand -->
<!-- <a class="navbar-brand" href="#">
alt=""></a> -->
<!-- Links -->
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="/index.html">Inicio</a>
</li>
<!-- Dropdown -->
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbardrop" data-toggle="dropdown">
Tecnología
</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="/tecnologia/aplicacionesmoviles.html">Aplicaciones Móviles</a>
<a class="dropdown-item" href="/tecnologia/arduino.html">Arduino</a>
<a class="dropdown-item" href="/tecnologia/bottelegram.html">Bot Telegram</a>
<a class="dropdown-item" href="/tecnologia/delphi.html">Delphi</a>
<a class="dropdown-item" href="/tecnologia/elkstack.html">ELK Stack</a>
<a class="dropdown-item" href="/tecnologia/machinelearning.html">Machine Learning</a>
<a class="dropdown-item" href="/tecnologia/python.html">Python</a>
<a class="dropdown-item" href="/tecnologia/raspberrypi.html">Raspberry Pi</a>
<a class="dropdown-item" href="/tecnologia/restsoap.html">Rest y Soap</a>
<a class="dropdown-item" href="/cs/bpm.html">BPM</a>
</div>
</li>
<li class="nav-item">
<a class="nav-link" href="/formacion/formacion.html">Cursos</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#cnt-section">Contacto</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/index.html#sn-section">Sobre Nosotros</a>
</li>
</ul>
</nav>
`;
} else {
document.getElementById("navigation-bar").innerHTML = `
<i class="fa fa-bars mobile-btn" aria-hidden="true" data-toggle="modal" data-target="#exampleModal2"></i>
<div style="z-index: 100000000;" class="modal fade" id="exampleModal2" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel2" aria-hidden="true">
<div class="modal-dialog modal-dialog-slideout modal-sm" role="document">
<div class="modal-content">
<div class="modal-header">
<h3 class="modal-title" id="exampleModalLabel">Menu</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<ul class="navbar-nav">
<li class="nav-item">
<h5>
<a class="nav-link no-link" href="/index.html" target="_self" >Inicio</a>
</h5>
</li>
<!-- Dropdown -->
<li class="nav-item dropdown">
<div id="accordion" role="tablist" aria-multiselectable="true">
<div class="panel">
<h5 class="panel-heading" data-toggle="collapse" data-target="#collapseAvail" data-parent="#accordion" href="#collapseOne"
aria-expanded="true" aria-controls="collapseAvail" role="tab" id="headingOne">
<a data-toggle="collapse" data-target="#collapseAvail" data-parent="#accordion" href="#collapseOne"
aria-expanded="true" aria-controls="collapseAvail" class="d-block no-link">
<i class="panel-heading fa fa-chevron-down pull-right"></i> Tecnología
</a>
</h5>
<div id="collapseAvail" class="collapse" role="tabpanel" aria-labelledby="headingOne">
<div>
<div class="col-xs-12">
<a class="col-xs-12 no-line-link" href="/tecnologia/aplicacionesmoviles.html">
Aplicaciones Móviles
</a>
</div>
<div class="col-xs-12">
<a class="col-xs-12 no-line-link" href="/tecnologia/arduino.html">
Arduino
</a>
</div>
<div class="col-xs-12">
<a class="col-xs-12 no-line-link" href="/tecnologia/bottelegram.html">
Bot Telegram
</a>
</div>
<div class="col-xs-12">
<a class="col-xs-12 no-line-link" href="/tecnologia/delphi.html">
Delphi
</a>
</div>
<div class="col-xs-12">
<a class="col-xs-12 no-line-link" href="/tecnologia/elkstack.html">
ELK Stack
</a>
</div>
<div class="col-xs-12">
<a class="col-xs-12 no-line-link" href="/tecnologia/machinelearning.html">
Machine Learning
</a>
</div>
<div class="col-xs-12">
<a class="col-xs-12 no-line-link" href="/tecnologia/python.html">
Python
</a>
</div>
<div class="col-xs-12">
<a class="col-xs-12 no-line-link" href="/tecnologia/raspberrypi.html">
Raspberry Pi
</a>
</div>
<div class="col-xs-12">
<a class="col-xs-12 no-line-link" href="/tecnologia/restsoap.html">
Rest y Soap
</a>
</div>
</div>
</div>
</div>
</div>
</li>
<li class="nav-item">
<h5>
<a class="nav-link no-link" href="/formacion/formacion.html" aria-label="Close">Cursos</a>
</h5>
</li>
<li class="nav-item">
<h5>
<a class="nav-link no-link" href="#cnt-section" data-dismiss="modal" aria-label="Close">Contacto</a>
</h5>
</li>
<li class="nav-item">
<h5>
<a class="nav-link no-link" href="/index.html#sn-section">Sobre Nosotros</a>
</h5>
</li>
</ul>
</div>
<div class="modal-footer"></div>
</div>
</div>
</div>`
}
}
</script>
<!-- <script src="../https://cdnjs.cloudflare.com/ajax/libs/slideout/1.0.1/slideout.min.js"></script> -->
<script>
$(document).ready(function () {
if (renderPage) {
$('body').addClass('loaded');
}
// https://css-tricks.com/snippets/jquery/smooth-scrolling/
// Select all links with hashes
$('a[href*="#"]')
// Remove links that don't actually link to anything
.not('[href="#"]')
.not('[href="#0"]')
.click(function (event) {
// On-page links
if (
location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '')
&&
location.hostname == this.hostname
) {
// Figure out element to scroll to
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
// Does a scroll target exist?
if (target.length) {
// Only prevent default if animation is actually gonna happen
event.preventDefault();
$('html, body').animate({
scrollTop: target.offset().top + 1
}, 1000, function () {
// Callback after animation
// Must change focus!
var $target = $(target);
$target.focus();
if ($target.is(":focus")) { // Checking if the target was focused
return false;
} else {
$target.attr('tabindex', '-1'); // Adding tabindex for elements not focusable
$target.focus(); // Set focus again
};
});
}
}
});
});
</script>
<script>
const courses = {
elastic: {
title: 'Curso ELK Stack (Elasticsearch, Logstash, Kibana)',
duration: {
days: '2',
price: '900'
},
paragraphs: {
Requisitos_previos: `Los estudiantes necesitarán una computadora portátil equipada con Linux o Windows
7+,
al
menos 5 GB de espacio libre,
la versión de Java 1.7u55 o más nueva y Google Chrome.`,
Descripción: `Este curso proporciona una introducción al uso de la pila ELK (Elasticsearch,
Logstash,
Kibana) para leer,
normalizar, procesar, indexar y mostrar datos y series temporales. Se presentarán
los
componentes fundamentales
de la suite Elastic, con un enfoque práctico y ejercicios, analizando sus
aplicaciones
y
examinando casos de uso reales
que para cada componente ejemplifican su configuración y funcionalidad.
Elasticsearch,
el
producto principal de la suite,
es un motor de búsqueda profesional capaz de administrar Big Data de manera
efectiva en
cualquier aplicación / sitio web.
Hoy en día parece ser el motor de búsqueda más difundido en el mundo. Elasticsearch
soporta
de forma nativa agrupaciones y
arquitecturas distribuidas, proporcionando capacidades de búsqueda de texto
completo
con
una interfaz REST,
que es independiente del lenguaje de programación con el que se consume, utilizando
JSON
para la representación de
datos y HTTP como protocolo de comunicación. Elasticsearch se puede utilizar para
buscar
cualquier tipo de documento
y proporciona un sistema de búsqueda escalable, casi en tiempo real con soporte de
multitenencia.
Kibana es la herramienta de la suite que le permite navegar y ver los datos
contenidos
en
los índices de Elasticsearch.
Aprovechando las capacidades y la velocidad de búsqueda y agregación de datos
ofrecidos
por
Elasticsearch, Kibana le
permite crear gráficos y paneles para el análisis de Big Data de una manera
sencilla e
intuitiva.
Logstash es el componente de pila que se ocupa de recuperar, filtrar, normalizar y
enviar
datos de fuentes heterogéneas
a Elasticsearch. Su arquitectura de complementos le permite trabajar con diferentes
fuentes
de datos con un mínimo
esfuerzo.`,
Introducción: ` Descripción Elastic Stack (ELK)`,
Elasticsearch: `¿Qué es y cuándo usarlo?<br>
Terminología: Documentos, Índices, Fragmentos, Nodos, Clústeres;<br>
Configuración e instalación;<br>
Distribuir datos en múltiples nodos;<br>
Backup.`,
Logtash: `¿Qué es y cuándo usarlo?<br>
Configuración<br>
Input, filtro y output<br>
Instalación y configuración<br>
Backup y recu<br>
Cómo importar automáticamente datos desde una base de datos relacional<br>
Cómo importar datos desde un registro casi en tiempo real<br>
Mejores practicas`,
Kibana: `Ajustes de configuracion<br>
Investigación y filtros<br>
Las vistas Descubrir, Visualizar y Tablero<br>
Instalación y configuración<br>
Copia de seguridad y recuperación de datos<br>
Integrar las vistas de Kibana en aplicaciones web y de escritorio<br>
Best Practices<br>`,
A_quien_se_dirige: `El curso está dirigido a desarrolladores y arquitectos de software que necesitan crear
sistemas
de
búsqueda en tiempo real y soluciones de análisis, incluso de big data.`
}
},
linuxDelphi: {
title: 'Desarollo Linux con Delphi',
duration: {
days: '1',
price: '399'
},
paragraphs: {
Requisitos_previos: `Conocimiento de Delphi y HTTP`,
Descripción: `Si desea desarrollar finalmente en el sistema operativo mas difundido en ambiente
servidor,
este curso es para usted. En este curso intensivo, analizaremos los fundamentos del
sistema operativo Linux GNU
necesario para el desarrollo nativo con Delphi. ¡Los servicios RESTful y servidores de
todo tipo finalmente pueden
ejecutarse en el sistema operativo del pinguino con la familiaridad y el rendimiento de
Delphi!
Nota: El curso se basa en la última versión de Ubuntu LTS. Necesitará tener una máquina
virtual VirtualBox ejecutándose
con la última versión de Ubuntu Desktop LTS.`,
Contenido: `<ul>
<li>Introducción a Linux</li>
<li>La Shell de Linux</li>
<li>Los comandos principales</li>
<li>Administración basica</li>
<li>Manejar los deamon</li>
<li>Configurar Apache</li>
<li>Instalar Firebird / MySQL</li>
<li>Desarrollo Delphi</li>
<li>Configuración del entorno</li>
<li>El PAServer</li>
<li>Crear servicios TCP / IP</li>
<li>Utilizar webbroker</li>
<li>Conocer DelphiMVCFramework para Linux</li>
<li>Diseñe una API RESTful con DelphiMVCFramework para Linux</li>
<li>Depuración de server como aplicaciones de consola.</li>
<li>Crea un formulario apache.</li>
<li>Estrategias para el deploy y actualización.</li>
<li>Optimizar el rendimiento con REDIS</li>
</ul>`
}
},
delphi1: {
title: 'Delphi 1',
duration: {
days: '2',
price: '600'
},
paragraphs: {
Cursos_relacionados: `<ul>
<li>
<a href="delphi2.html">
Curso Delphi Parte 2
</a>
</li>
<li>
<a href="dmvcFramework.html">
DelphiMVCFramework
</a>
</li>
<li>
<a href="backendDelphi.html">
BackEnd Delphi
</a>
</li>
</ul>`,
Descripción: `Un curso clásico, uno de los más apreciados por los programadores de Delphi.
No te pierdas la actualización a Delphi 10.3 Rio, una de las mejores versiones de la
historia.`,
Contenido: `<ul>
<li><b>IDE</b>
<ul>
<li>
Project Options
</li>
<li>
Project Manager
</li>
<li>
Project Configuration Manager
</li>
<li>
IDE Insight
</li>
<li>
Code Formatting
</li>
<li>
Multi platform designer
</li>
</ul>
</li>
<li><b>Regular Expressions</b>
<ul>
<li>
¿Que cosa son?
</li>
<li>
¿Cuándo usarlos?
</li>
<li>
¿Como usarlos?
</li>
</ul>
</li>
<li><b>¿Qué es Unicode?</b>
<ul>
<li>
El Standard Unicode
</li>
<li>
Los tipos de cadenas Unicode.
</li>
</ul>
</li>
<li><b>Los genéricos</b>
<ul>
<li>
¿Qué son los genéricos?
</li>
<ul>
<li>
Uso
</li>
<li>
Sintaxis
</li>
<li>
Crear un tipo genérico
</li>
<li>
Aplicabilidad
</li>
</ul>
<li>
Soporte en RTL
</li>
<li>
Generics y Generics.Collections
</li>
<li>
Reglas de compatibilidad entre tipos;
</li>
<li>
Clases con los genéricos;
</li>
<li>
Constraints
</li>
<ul>
<li>
Clase Costraints
</li>
<li>
Interfaz Costraints
</li>
</ul>
<li>
Generic Containers
</li>
<ul>
<li>
TList, Tqueue, TStack, TDictionary
</li>
<li>
Contenedores y métodos anónimos.
</li>
</ul>
<li>
Interfaces genéricas
</li>
<ul>
<li>
Utilice TComparer, TEqualityComparer, etc.
</li>
</ul>
</ul>
</li>
<li><b>Métodos anónimos</b>
<ul>
<li>
¿Qué son los métodos anónimos?
</li>
<ul>
<li>
Sintaxis y semantica
</li>
<li>
Utilizar métodos anónimos como variables.
</li>
<li>
Métodos anónimos como parametric.
</li>
<li>
Métodos anónimos y variables locales (visibilidad y duración).
</li>
<li>
Reference Types
</li>
<li>
métodos anónimos y hilos(threads)
</li>
</ul>
</ul>
</li>
<li><b>Enumerator</b>
<ul>
<li>
for-in loop
</li>
<li>
Enumerators
</li>
</ul>
</li>
<li><b>Sobrecarga del Operador por Registros</b>
<ul>
<li>
Clase Helpers
</li>
<li>
Record Helpers y Record Helpers para SimpleTypes
</li>
</ul>
</li>
<li><b>Extended RTTI</b>
<ul>
<li>
Unidad RTTI
</li>
<ul>
<li>
Inspecting types
</li>
<li>
Clase TValue
</li>
</ul>
</ul>
</li>
<li><b>Atributos</b>
<ul>
<li>
Clase TCustomAttribute
</li>
</ul>
</li>
</ul>`
}
},
python: {
title: 'python',
duration: {
days: '1',
price: '300'
},
paragraphs: {
Descripción: ``,
Related_courses: ``,
Contenido: ``
}
},
pythonFlask: {
title: '',
duration: {
days: '1',
price: '400'
},
paragraphs: {
ciao: 'sonoio',
Descripcìon: `Independientemente de la plataforma, es necesario crear API para servir datos entre
diferentes aplicaciones Client
y los Endpoint. Se necesitan buenas API para los proyectos web y móviles, especialmente
con enfoques como mobile-first.
Este curso de capacitación proporciona los conocimientos fundamentales necesarios para
hacer posibles interacciones
altamente interconectadas entre las aplicaciones utilizando API RESTful.`
}
}
}
</script>
<script>
$(window).ready(() => {
const url = window.location.href;
const course = url.split('#')[1];
document.getElementById('title').innerText = courses[course].title;
document.getElementById('heading').innerText = courses[course].title;
document.getElementById('course').innerHTML = `
<div class="media media-center ml-padding">
<p class="mb-0" id="tm-section-4">
<br><b>Duración</b>: ` + courses[course].duration.days + ' ' + (courses[course].duration.days > 1 ? 'días' : 'día') + ` | <b>Precio</b>: ` + courses[course].duration.price + `
</p>
</div>
`;
Object.keys(courses[course].paragraphs).forEach((paragraph) => {
paragraph_title = paragraph.replace(/_/g, ' ');
document.getElementById('course').innerHTML += `
<div class="media media-center ml-padding">
<div class="media-body tm-box-5">
<h2>
` + paragraph_title + `:
</h2>
<p class="mb-0" id=tm-section-4>
` + courses[course].paragraphs[paragraph] + `
</p>
</div><br>
</div>
`;
});
});
</script>
</body>
</html>