El documento presenta una introducción a la programación web con Haskell. Explica tres enfoques principales: HAppS, un framework para desarrollar servicios web; Network.CGI para crear aplicaciones web siguiendo el modelo tradicional; y HSP, que permite incrustar código Haskell en páginas HTML. También discute ejemplos y usos reales como hPaste y pass.net.
Erlang/OTP - Altenwald - CodeMotion Madrid 2013Manuel Rubio
Erlang/OTP: Un Mundo Concurrente, charla dada el 19 de octubre de 2013 a las 15:15h en el Track Programming de CodeMotion 2013 de Madrid. La charla hace un repaso de la base del Lenguaje Erlang, el framework OTP y las ventajas que ofrece su plataforma.
http://altenwald.org/2013/10/21/codemotion-2013/
The Hacking Madison presentation from the Madison, WI Neighborhood Conference of September 2014
http://www.cityofmadison.com/neighborhoods/Neighborhoodconference/
Erlang/OTP - Altenwald - CodeMotion Madrid 2013Manuel Rubio
Erlang/OTP: Un Mundo Concurrente, charla dada el 19 de octubre de 2013 a las 15:15h en el Track Programming de CodeMotion 2013 de Madrid. La charla hace un repaso de la base del Lenguaje Erlang, el framework OTP y las ventajas que ofrece su plataforma.
http://altenwald.org/2013/10/21/codemotion-2013/
The Hacking Madison presentation from the Madison, WI Neighborhood Conference of September 2014
http://www.cityofmadison.com/neighborhoods/Neighborhoodconference/
IONIC, el framework para crear aplicaciones híbridas multiplataformabetabeers
En esta charla, Juan nos va a enseñar los conceptos básicos para crear una aplicación móvil multiplataforma usando el framework "IONIC". Aprenderemos cómo instalar las herramientas básicas para su uso, haremos una breve aproximación a los distintos plugins que nos ofrece "Cordova" y aprenderemos un poco de la arquitectura interna de IONIC (basado en un patrón MVC, el cuál usa AngularJS, Typescript y CSS (bajo SASS).
IONIC, el framework para crear aplicaciones híbridas multiplataformabetabeers
En esta charla, Juan nos va a enseñar los conceptos básicos para crear una aplicación móvil multiplataforma usando el framework "IONIC". Aprenderemos cómo instalar las herramientas básicas para su uso, haremos una breve aproximación a los distintos plugins que nos ofrece "Cordova" y aprenderemos un poco de la arquitectura interna de IONIC (basado en un patrón MVC, el cuál usa AngularJS, Typescript y CSS (bajo SASS).
En este documento analizamos ciertos conceptos relacionados con la ficha 1 y 2. Y concluimos, dando el porque es importante desarrollar nuestras habilidades de pensamiento.
Sara Sofia Bedoya Montezuma.
9-1.
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaAMADO SALVADOR
Descubre el catálogo general de la gama de productos de refrigeración del fabricante de electrodomésticos Miele, presentado por Amado Salvador distribuidor oficial Miele en Valencia. Como distribuidor oficial de electrodomésticos Miele, Amado Salvador ofrece una amplia selección de refrigeradores, congeladores y soluciones de refrigeración de alta calidad, resistencia y diseño superior de esta marca.
La gama de productos de Miele se caracteriza por su innovación tecnológica y eficiencia energética, garantizando que cada electrodoméstico no solo cumpla con las expectativas, sino que las supere. Los refrigeradores Miele están diseñados para ofrecer un rendimiento óptimo y una conservación perfecta de los alimentos, con características avanzadas como la tecnología de enfriamiento Dynamic Cooling, sistemas de almacenamiento flexible y acabados premium.
En este catálogo, encontrarás detalles sobre los distintos modelos de refrigeradores y congeladores Miele, incluyendo sus especificaciones técnicas, características destacadas y beneficios para el usuario. Amado Salvador, como distribuidor oficial de electrodomésticos Miele, garantiza que todos los productos cumplen con los más altos estándares de calidad y durabilidad.
Explora el catálogo completo y encuentra el refrigerador Miele perfecto para tu hogar con Amado Salvador, el distribuidor oficial de electrodomésticos Miele.
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaAMADO SALVADOR
Distribuidor Oficial Ariston en Valencia: Amado Salvador distribuidor autorizado de Ariston, una marca líder en soluciones de calefacción y agua caliente sanitaria. Amado Salvador pone a tu disposición el catálogo completo de Ariston, encontrarás una amplia gama de productos diseñados para satisfacer las necesidades de hogares y empresas.
Calderas de condensación: Ofrecemos calderas de alta eficiencia energética que aprovechan al máximo el calor residual. Estas calderas Ariston son ideales para reducir el consumo de gas y minimizar las emisiones de CO2.
Bombas de calor: Las bombas de calor Ariston son una opción sostenible para la producción de agua caliente. Utilizan energía renovable del aire o el suelo para calentar el agua, lo que las convierte en una alternativa ecológica.
Termos eléctricos: Los termos eléctricos, como el modelo VELIS TECH DRY (sustito de los modelos Duo de Fleck), ofrecen diseño moderno y conectividad WIFI. Son ideales para hogares donde se necesita agua caliente de forma rápida y eficiente.
Aerotermia: Si buscas una solución aún más sostenible, considera la aerotermia. Esta tecnología extrae energía del aire exterior para calentar tu hogar y agua. Además, puede ser elegible para subvenciones locales.
Amado Salvador es el distribuidor oficial de Ariston en Valencia. Explora el catálogo y descubre cómo mejorar la comodidad y la eficiencia en tu hogar o negocio.
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...AMADO SALVADOR
El catálogo general de electrodomésticos Teka presenta una amplia gama de productos de alta calidad y diseño innovador. Como distribuidor oficial Teka, Amado Salvador ofrece soluciones en electrodomésticos Teka que destacan por su tecnología avanzada y durabilidad. Este catálogo incluye una selección exhaustiva de productos Teka que cumplen con los más altos estándares del mercado, consolidando a Amado Salvador como el distribuidor oficial Teka.
Explora las diversas categorías de electrodomésticos Teka en este catálogo, cada una diseñada para satisfacer las necesidades de cualquier hogar. Amado Salvador, como distribuidor oficial Teka, garantiza que cada producto de Teka se distingue por su excelente calidad y diseño moderno.
Amado Salvador, distribuidor oficial Teka en Valencia. La calidad y el diseño de los electrodomésticos Teka se reflejan en cada página del catálogo, ofreciendo opciones que van desde hornos, placas de cocina, campanas extractoras hasta frigoríficos y lavavajillas. Este catálogo es una herramienta esencial para inspirarse y encontrar electrodomésticos de alta calidad que se adaptan a cualquier proyecto de diseño.
En Amado Salvador somos distribuidor oficial Teka en Valencia y ponemos atu disposición acceso directo a los mejores productos de Teka. Explora este catálogo y encuentra la inspiración y los electrodomésticos necesarios para equipar tu hogar con la garantía y calidad que solo un distribuidor oficial Teka puede ofrecer.
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Programacion Web con Haskell
1. Introducci´n
o
Acercamientos
Ejemplo
Conclusiones
Programaci´n Web con Haskell
o
Federico Builes
28 de junio de 2007
Federico Builes Programaci´n Web con Haskell
o
2. Introducci´n
o
Acercamientos Introducci´n
o
Ejemplo Motivaci´n
o
Conclusiones
Introducci´n
o
Algo de Wikipedia para empezar:
“In software engineering, a Web application or webapp is an
application that is accessed via web over a network such as the
Internet or an intranet”
.
Por aplicaciones web para esta presentaci´n nos referimos a
o
aplicaciones accesibles a trav´s de un browser.
e
Federico Builes Programaci´n Web con Haskell
o
3. Introducci´n
o
Acercamientos Introducci´n
o
Ejemplo Motivaci´n
o
Conclusiones
Introducci´n
o
Las aplicaciones web son populares gracias a:
La posibilidad de tener el cliente en todos lados, en cualquier
momento.
La posibilidad de poder actualizar y modificar aplicaciones al
instante, sin depender de una cadena de distribuci´n para el
o
producto.
Ejecuci´n multi-plataforma desde el comienzo, sin
o
requerimientos en el lado del cliente (s´lo se necesita un
o
browser medianamente moderno).
Federico Builes Programaci´n Web con Haskell
o
4. Introducci´n
o
Acercamientos Introducci´n
o
Ejemplo Motivaci´n
o
Conclusiones
La web como plataforma
335 millones de usuarios solo en el continente Americano.
Federico Builes Programaci´n Web con Haskell
o
5. Introducci´n
o
Acercamientos Introducci´n
o
Ejemplo Motivaci´n
o
Conclusiones
La web como plataforma
335 millones de usuarios solo en el continente Americano.
Servicios, nada de software empaquetado.
Federico Builes Programaci´n Web con Haskell
o
6. Introducci´n
o
Acercamientos Introducci´n
o
Ejemplo Motivaci´n
o
Conclusiones
La web como plataforma
335 millones de usuarios solo en el continente Americano.
Servicios, nada de software empaquetado.
Word of Mouth = Publicidad efectiva y gratis.
Federico Builes Programaci´n Web con Haskell
o
7. Introducci´n
o
Acercamientos Introducci´n
o
Ejemplo Motivaci´n
o
Conclusiones
¿Por qu´ Haskell?
e
Comodidad
Productividad
Correctitud
Federico Builes Programaci´n Web con Haskell
o
8. Introducci´n
o
Acercamientos Introducci´n
o
Ejemplo Motivaci´n
o
Conclusiones
¿Por qu´ Haskell?
e
Comodidad
Productividad
Correctitud
ACID, STM, Paralelismo, Concurrencia, Unit Testing, y una
lista gigantesca de cosas horribles.
Federico Builes Programaci´n Web con Haskell
o
9. Introducci´n
o
HAppS
Acercamientos
Network.CGI
Ejemplo
HSP
Conclusiones
Diferentes formas de pensar
Los ingenieros de software: Aplicaciones 3-tier, bases de datos,
MVC, escalabilidad horizontal y vertical.
Los acad´micos: Software Transactional Memory (STM),
e
aplicaciones como servidores web, memoria
compartida, sistemas de archivos virtuales.
Federico Builes Programaci´n Web con Haskell
o
10. Introducci´n
o
HAppS
Acercamientos
Network.CGI
Ejemplo
HSP
Conclusiones
HAppS
Haskell Application Server, un framework para desarrollar servicios
web r´pidamente, sin preocuparse por el pegante de las capas
a
inferiores (servidores web, de correo, bases de datos, etc).
Federico Builes Programaci´n Web con Haskell
o
11. Introducci´n
o
HAppS
Acercamientos
Network.CGI
Ejemplo
HSP
Conclusiones
ACID
Atomicity: Garantiza que cada una de las transacciones sea
exitosa (o en caso de fallo, que ninguna se realice).
Consistency: Garantiza que el sistema est´ en un estado v´lido
e a
antes y despu´s de la transacci´n.
e o
Isolation: Garantiza que todas las operaciones se ejecuten
isoladas del resto.
Durability: Garantiza que despu´s de una operaci´n exitosa, su
e o
valor se quedar´ en el sistema por tanto tiempo como
a
sea necesario (no desaparecer´ del sistema en caso de
a
fallos). Esto es manejado por MACID (Monad ACID)
que se encarga de mantener un log de todas las
operaciones, desde donde puede reconstruir el estado
del sistema).
Federico Builes Programaci´n Web con Haskell
o
12. Introducci´n
o
HAppS
Acercamientos
Network.CGI
Ejemplo
HSP
Conclusiones
Persistencia, Concurrencia y ACID
HAppS garantiza estas tres caracter´ısticas, integradas de base,
as´ que el desarrollador no debe preocuparse por esto.
ı
HAppS trata todas las operaciones como transacciones
at´micas, y a trav´s de MACID guarda un registro de estas.
o e
Se encarga de ordenarlas para hacer el manejo de concurrencia
autom´tico y garantiza la persistencia a trav´s de
a e
checkpoints, de nuevo, usando MACID.
Federico Builes Programaci´n Web con Haskell
o
13. Introducci´n
o
HAppS
Acercamientos
Network.CGI
Ejemplo
HSP
Conclusiones
Un ejemplo de HAppS
import HAppS
helloWorld = respond quot;Hello Worldquot;
main = stdHTTP (debugFilter : noState : [h () GET $
ok hello ])
Federico Builes Programaci´n Web con Haskell
o
14. Introducci´n
o
HAppS
Acercamientos
Network.CGI
Ejemplo
HSP
Conclusiones
Network.CGI
CGI (Common Gateway Interface) es una forma de comunicaci´n o
entre aplicaciones y servidores web. Esta interfaz permite que
cuando un usuario intente acceder a un sitio web, el servidor se
encargue de ejecutar un programa, tomar la salida y devolverla al
usuario a trav´s de su browser como un archivo HTML est´tico.
e a
Todos los cambios din´micos se hacen dentro del ejecutable.
a
Federico Builes Programaci´n Web con Haskell
o
15. Introducci´n
o
HAppS
Acercamientos
Network.CGI
Ejemplo
HSP
Conclusiones
Network.CGI
Esta librer´ permite acceder a las variables usando los
ıa
m´todos GET y POST, y al unirla con HaskellDB o HDBC se
e
puede lograr una aplicaci´n completa de tier-3.
o
El transformador para la m´nada CGI permite mantener una
o
separaci´n entre los datos que recibe la aplicaci´n ( a trav´s
o o e
de IO()) y el programa en s´ı.
Soporta cookies, headers, ByteStrings, y FastCGI.
Federico Builes Programaci´n Web con Haskell
o
16. Introducci´n
o
HAppS
Acercamientos
Network.CGI
Ejemplo
HSP
Conclusiones
Network.CGI
Esta librer´ permite acceder a las variables usando los
ıa
m´todos GET y POST, y al unirla con HaskellDB o HDBC se
e
puede lograr una aplicaci´n completa de tier-3.
o
El transformador para la m´nada CGI permite mantener una
o
separaci´n entre los datos que recibe la aplicaci´n ( a trav´s
o o e
de IO()) y el programa en s´ı.
Soporta cookies, headers, ByteStrings, y FastCGI.
Sigue el modelo tradicional de desarrollo para aplicaciones
web, sin usar nada novedoso pero a la vez proporcionando
todo lo que necesita un desarrollador experimentado con web
para poder crear una aplicaci´n de manera r´pida y eficaz.
o a
Federico Builes Programaci´n Web con Haskell
o
17. Introducci´n
o
HAppS
Acercamientos
Network.CGI
Ejemplo
HSP
Conclusiones
Ejemplo CGI
import Network.NewCGI
import Text.XHtml
page :: Html
page = body << h1 << quot;Hello World!quot;
cgiMain :: CGI CGIResult
cgiMain = output $ renderHtml page
main :: IO ()
main = runCGI $ handleErrors cgiMain
Federico Builes Programaci´n Web con Haskell
o
18. Introducci´n
o
HAppS
Acercamientos
Network.CGI
Ejemplo
HSP
Conclusiones
HSP
HSP (Haskell Server Pages) es una extensi´n al Haskell regular
o
donde, haciendo uso de XML y un DSL (Domain Specific
Language) se puede incrustar c´digo Haskell dentro de p´ginas
o a
HTML.
Federico Builes Programaci´n Web con Haskell
o
19. Introducci´n
o
HAppS
Acercamientos
Network.CGI
Ejemplo
HSP
Conclusiones
Inconvenientes
Para empezar, la ultima modificaci´n al proyecto se hizo en
´ o
mayo 2005. Este proyecto fue empezado por Niklas Broberg
como tesis de Maestr´ en Chalmers, as´ que toda la
ıa ı
documentaci´n y ejemplos solamente se encuentran en su
o
tesis.
Para poder ejecutar un proyecto en HSP se necesitan plugins
para un servidor web actual (no existen) o un servidor web
modificado (como HWS). Aunque este ultimo existe en el
´
c´digo de la tesis, no soporta im´genes u otro tipo de
o a
contenido web.
No tiene soporte para m´todos POST, sesiones o una
e
documentaci´n completa.
o
Federico Builes Programaci´n Web con Haskell
o
20. Introducci´n
o
HAppS
Acercamientos
Network.CGI
Ejemplo
HSP
Conclusiones
Traducci´n
o
En espa˜ol, el proyecto no es medianamente util, y sin que nadie lo
n ´
tome y se encargue de trabajarlo, no lo ser´ nunca. De todas
a
formas, de los tres ejemplos, puede ser el mas eficaz a la hora de
convertir adeptos a Haskell usando aplicaciones web.
Federico Builes Programaci´n Web con Haskell
o
21. Introducci´n
o
HAppS
Acercamientos
Network.CGI
Ejemplo
HSP
Conclusiones
Ejemplo HSP
<%
import System.Time
%>
<html>
<head><title>Pagina de Ejemplo</title></head>
<body>
<h1>Esto es HTML comun y corriente, nada magico.
<br />Son las: <% getClockTime %>
</body>
</html>
Federico Builes Programaci´n Web con Haskell
o
22. Introducci´n
o
HAppS
Acercamientos
Network.CGI
Ejemplo
HSP
Conclusiones
Bases de Datos
La persistencia de los datos es tal vez la parte m´s importante de
a
todo este proceso, Haskell ofrece las siguientes posibilidades:
HDBC : Capa de abstracci´n entre programas y la base de
o
datos por medio de una librer´ tiene drivers para
ıa,
MySQL, PostreSQL, SQLite y muchos m´s. a
HaskellDB : Librer´ para expresar querys y otras operaciones
ıa
relacionales de manera declarativa, todo es procesado
por medio de Haskell y no son necesarios querys SQL
(poco mantenimiento).
Federico Builes Programaci´n Web con Haskell
o
23. hPaste
Introducci´n
o pass.net
Acercamientos Hope
Ejemplo HWS
Conclusiones Flippi
HaXR
¿D´nde se esta usando?
o
Federico Builes Programaci´n Web con Haskell
o
24. hPaste
Introducci´n
o pass.net
Acercamientos Hope
Ejemplo HWS
Conclusiones Flippi
HaXR
hPaste
Federico Builes Programaci´n Web con Haskell
o
25. hPaste
Introducci´n
o pass.net
Acercamientos Hope
Ejemplo HWS
Conclusiones Flippi
HaXR
pass.net
Federico Builes Programaci´n Web con Haskell
o
26. hPaste
Introducci´n
o pass.net
Acercamientos Hope
Ejemplo HWS
Conclusiones Flippi
HaXR
Hope
Federico Builes Programaci´n Web con Haskell
o
27. hPaste
Introducci´n
o pass.net
Acercamientos Hope
Ejemplo HWS
Conclusiones Flippi
HaXR
HWS
Federico Builes Programaci´n Web con Haskell
o
28. hPaste
Introducci´n
o pass.net
Acercamientos Hope
Ejemplo HWS
Conclusiones Flippi
HaXR
Flippi
Federico Builes Programaci´n Web con Haskell
o
29. hPaste
Introducci´n
o pass.net
Acercamientos Hope
Ejemplo HWS
Conclusiones Flippi
HaXR
HaXR
HaXR es una librer´ para escribir aplicaciones XML-RPC en
ıa
Haskell. RPC (Remote Procedure Call) es una tecnolog´ que
ıa
permite llamar una funci´n a trav´s de la red, y usando XML se
o e
puede interactuar entre dos espacios de direcciones (memoria)
totalmente diferentes.
Esto permite la creaci´n muy f´cil de APIs para aplicaciones en
o a
Internet, sin tener que recurrir a SOAP o REST. Es la base de
muchos de los servicios de Internet.
Federico Builes Programaci´n Web con Haskell
o
30. Introducci´n
o
Acercamientos ¿D´nde est´n?
o a
Ejemplo ¿Qu´ hace falta?
e
Conclusiones
¿D´nde est´n?
o a
Federico Builes Programaci´n Web con Haskell
o
31. Introducci´n
o
Acercamientos ¿D´nde est´n?
o a
Ejemplo ¿Qu´ hace falta?
e
Conclusiones
¿Qu´ hace falta?
e
Federico Builes Programaci´n Web con Haskell
o