Curso de Programación Funcional con Scala

Curso de Programación Funcional con Scala

Instruido por:
Carlos Daniel Sanchez
Carlos Daniel Sanchez
Básico
4 horas de contenido
Curso de Programación Funcional con Scala

Curso de Programación Funcional con Scala

Progreso del curso:0/36contenidos(0%)

Contenido del Curso
Tutoriales de estudiantes
Preguntas de estudiantes

Progreso del curso:0/36contenidos(0%)

Introducción a Scala y configuración del entorno de desarrollo

Material Thumbnail

Introducción al curso y presentación de los objetivos

04:34 min

Material Thumbnail

Scala en la historia

05:41 min

Material Thumbnail

Instalando JVM, SBT y editores

05:35 min

Instalación de las herramientas

02:54 min

Fundamentos de Programación Funcional

Tipos de datos básicos

02:10 min

Material Thumbnail

Colecciones: Secuencias, Conjuntos y Mapas

15:00 min

La función de copy y el concepto de Lences

01:30 min

Conceptos básicos de Programación Funcional

Fundamentos teoricos

Material Thumbnail

Funciones totales y parciales

03:26 min

Razonamiento inductivo

01:37 min

Material Thumbnail

Razonamiento con tipos

06:06 min

Material Thumbnail

Tipos de datos algebraicos

05:53 min

Material Thumbnail

Evaluación peresoza (Lazy)

04:13 min

Material Thumbnail

Disyunciones: Option

10:14 min

Material Thumbnail

Disyunciones: Either, try

06:14 min

Proyecto de Backend

Material Thumbnail

Introducción e iniciación del proyecto

05:44 min

Modelo por Actores

02:03 min

Configuración de Slick

07:54 min

Material Thumbnail

Controladores: Cómo obtener información de la base de datos

09:32 min

Material Thumbnail

Controladores: Crear, actualizar y eliminar información de la base de datos

11:47 min

Computación paralela, asíncrona y concurrente

04:08 min

Material Thumbnail

Manejo de errores en el proyecto

13:24 min

Material Thumbnail

Exportación del proyecto

10:03 min

Conclusiones

nuevosmás votadossin responder
Jenyfer Picasso
Jenyfer Picasso
Estudiante

Hola, estoy un poco confundida, ¿Este método es igual al principio de inducción matemática?

1
Jonathan Fernando Santana Quispillo
Jonathan Fernando Santana Quispillo
Estudiante

Y todos los plugins vienen incluidos si se instala metals para visual studio code?

0
Fabricio Orrala
Fabricio Orrala
Estudiante

Cuado intento ejecutar el POST para insertar una nueva movie, me bota éste error:

Unauthorized
You must be authenticated to access this page.

Y el estado es 403

0
David Alberto Rodriguez Muñoz
David Alberto Rodriguez Muñoz
Estudiante
no me quedo muy claro, qué es el modelo de datos entonces?
0
J. Fernando Zuñiga Ortiz
J. Fernando Zuñiga Ortiz
Estudiante

Una pregunta, el 1l en el foldleft es únicamente para determinar el valor inicial o también el tipo de valores que recibirá la función?

1
Desarrollo Tralix
Desarrollo Tralix
Estudiante

Por que mandas como parámetro el id: String si movie: Movie ya lo trae?
aparte que en filter haces una doble validación en donde los dos parámetros de entrada (id y movie) deben de contener el id.

2
greenbibamgroup
greenbibamgroup
Estudiante

Tengo un problema con este controller me da la siguiente excepción No instance of play.api.libs.json.Format is available for scala.Option[java.sql.Timestamp]

  1. Estoy usando postgres y use el codeGenerator de slick para que me generara todos los case class de las tablas y las tablasQuery etc dentro de models

  2. Dentro cree un package repositories y ahi cree un repository para que interactue con la DB con una de las tablas

  3. Escribi un controller para la dicha tabla la inyecte etc. hasta alli todo bien.

Pero cuando compilo me da el error mencionado

case class userRow(id: Int, name: String, email: Option[String] = None, creationDate: Option[java.sql.Timestamp])```

implicit val serializator = Json.format[CompanyRow]

def companies = Action.async {
companyRepository.getAll.map(companies => {
val companiesRS = Json.obj(“data” -> companies)
Ok(companiesRS)
})
}

1
Jesus Rodriguez
Jesus Rodriguez
Estudiante

Tuve problemas con el Csrf. Me hubiese gustado que explicaras una manera de como manejarlo correctamente. A la final encontre como hacerlo funcionar pero deshabilitando el csrf para algunas rutas lo cual obviamente no es buena practica. Si alguien mas tiene este problema vayan aca https://stackoverflow.com/questions/44872603/play-framework-csrf-error-csrf-check-failed-because-no-token-found-in-headers repito, no es la mejor solucion pero para que puedan continuar probando con postman, sirve.

2
cvasquez89
cvasquez89
Estudiante

Buenas tardes, por favor su ayuda con este error que me sale al intentar correr la imagen de Docker que creé localmente con docker:publishLocal (No se casi nada de docker):

MacBook-Pro-de-Jorge:play-scala-seed jorgeisaacvasquezsanchez$ docker run -p 9001:9000 -it platzi-video:1.0-SNAPSHOT
19:07:10,207 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
19:07:10,207 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
19:07:10,207 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/opt/docker/conf/logback.xml]
19:07:10,245 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set19:07:10,246 |-INFO in ch.qos.logback.core.joran.action.ConversionRuleAction - registering conversion word coloredLevel withclass [play.api.libs.logback.ColoredLevel]
19:07:10,246 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender oftype [ch.qos.logback.core.FileAppender]
19:07:10,251 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [FILE]
19:07:10,257 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming defaulttype [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
19:07:10,281 |-INFO in ch.qos.logback.core.FileAppender[FILE] - File property issetto [./logs/application.log]
19:07:10,282 |-ERRORin ch.qos.logback.core.FileAppender[FILE] - Failedtocreateparent directories for [/opt/docker/./logs/application.log]
19:07:10,282 |-ERRORin ch.qos.logback.core.FileAppender[FILE] - openFile(./logs/application.log,true) callfailed. java.io.FileNotFoundException: ./logs/application.log (No such fileordirectory)
	atjava.io.FileNotFoundException: ./logs/application.log (No such fileordirectory)
	atatjava.io.FileOutputStream.open0(Native Method)
	atatjava.io.FileOutputStream.open(FileOutputStream.java:270)
	atatjava.io.FileOutputStream.<init>(FileOutputStream.java:213)
	atat ch.qos.logback.core.recovery.ResilientFileOutputStream.<init>(ResilientFileOutputStream.java:26)
	atat ch.qos.logback.core.FileAppender.openFile(FileAppender.java:204)
	atat ch.qos.logback.core.FileAppender.start(FileAppender.java:127)
	atat ch.qos.logback.core.joran.action.AppenderAction.end(AppenderAction.java:90)
	atat ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:309)
	atat ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:193)
	atat ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:179)
	atat ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:62)
	atat ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:165)
	atat ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:152)
	atat ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:110)
	atat ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:53)
	atat ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:75)
	atat ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:150)
	atat org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84)
	atat org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)
	atat org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
	atat org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
	atat org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412)
	atat org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357)
	atat org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383)
	atat play.api.Logger$.<clinit>(Logger.scala:264)
	atat play.api.Configuration$.<clinit>(Configuration.scala:147)
	atat play.core.server.ProdServerStart$.readServerConfigSettings(ProdServerStart.scala:102)
	atat play.core.server.ProdServerStart$.start(ProdServerStart.scala:42)
	atat play.core.server.ProdServerStart$.main(ProdServerStart.scala:29)
	atat play.core.server.ProdServerStart.main(ProdServerStart.scala)
19:07:10,282 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender oftype [ch.qos.logback.core.ConsoleAppender]
19:07:10,283 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [STDOUT]
19:07:10,283 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming defaulttype [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
19:07:10,284 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender oftype [ch.qos.logback.classic.AsyncAppender]
19:07:10,285 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [ASYNCFILE]
19:07:10,285 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [FILE] to ch.qos.logback.classic.AsyncAppender[ASYNCFILE]
19:07:10,285 |-INFO in ch.qos.logback.classic.AsyncAppender[ASYNCFILE] - Attaching appender named [FILE] to AsyncAppender.
19:07:10,285 |-INFO in ch.qos.logback.classic.AsyncAppender[ASYNCFILE] - Setting discardingThreshold to5119:07:10,286 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender oftype [ch.qos.logback.classic.AsyncAppender]
19:07:10,286 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [ASYNCSTDOUT]
19:07:10,286 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [STDOUT] to ch.qos.logback.classic.AsyncAppender[ASYNCSTDOUT]
19:07:10,286 |-INFO in ch.qos.logback.classic.AsyncAppender[ASYNCSTDOUT] - Attaching appender named [STDOUT] to AsyncAppender.
19:07:10,286 |-INFO in ch.qos.logback.classic.AsyncAppender[ASYNCSTDOUT] - Setting discardingThreshold to5119:07:10,286 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting levelof logger [play] to INFO
19:07:10,286 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting levelof logger [application] to DEBUG
19:07:10,286 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting levelof ROOT logger to WARN
19:07:10,286 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [ASYNCSTDOUT] to Logger[ROOT]
19:07:10,286 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Endof configuration.
19:07:10,287 |-INFO in [email protected]396e2f39 - Registering current configuration assafe fallback point

Oops, cannot start the server.
java.nio.file.AccessDeniedException: /opt/docker/RUNNING_PID
	at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
	at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
	atjava.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:434)
	atjava.nio.file.Files.newOutputStream(Files.java:216)
	at play.core.server.ProdServerStart$.createPidFile(ProdServerStart.scala:146)
	at play.core.server.ProdServerStart$.start(ProdServerStart.scala:45)
	at play.core.server.ProdServerStart$.main(ProdServerStart.scala:29)
	at play.core.server.ProdServerStart.main(ProdServerStart.scala)
MacBook-Pro-de-Jorge:play-scala-seed jorgeisaacvasquezsanchez$ ```
1
kevinenriquearciniegaschacon
kevinenriquearciniegaschacon
Estudiante

Hola, la petición por metodo POST me saca 403, la traza que me arroja es esta:

p.a.m.DefaultUrlEncodedCookieDataCodec  Cookie failed message authentication check
play.filters.CSRF  [CSRF] Check failed because no token found in headers for /api/movie

Creo que falla en la autenticación, pero me pregunto ¿cuál autenticación?.

1