際際滷shows by User: hermannhueck / http://www.slideshare.net/images/logo.gif 際際滷shows by User: hermannhueck / Sat, 01 May 2021 16:58:45 GMT 際際滷Share feed for 際際滷shows by User: hermannhueck A Taste of Dotty /slideshow/a-taste-of-dotty-247491558/247491558 taste-of-dotty-210501165845
This presentation is an introduction to Dotty / Scala 3. It covers the features which I deem most important for Scala developers. For detailed information see the [Dotty documentation](https://dotty.epfl.ch/docs/index.html). ]]>

This presentation is an introduction to Dotty / Scala 3. It covers the features which I deem most important for Scala developers. For detailed information see the [Dotty documentation](https://dotty.epfl.ch/docs/index.html). ]]>
Sat, 01 May 2021 16:58:45 GMT /slideshow/a-taste-of-dotty-247491558/247491558 hermannhueck@slideshare.net(hermannhueck) A Taste of Dotty hermannhueck This presentation is an introduction to Dotty / Scala 3. It covers the features which I deem most important for Scala developers. For detailed information see the [Dotty documentation](https://dotty.epfl.ch/docs/index.html). <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/taste-of-dotty-210501165845-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> This presentation is an introduction to Dotty / Scala 3. It covers the features which I deem most important for Scala developers. For detailed information see the [Dotty documentation](https://dotty.epfl.ch/docs/index.html).
A Taste of Dotty from Hermann Hueck
]]>
139 0 https://cdn.slidesharecdn.com/ss_thumbnails/taste-of-dotty-210501165845-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
What's new in Scala 2.13? /slideshow/whats-new-in-scala-213/217987153 new-in-scala-2-200109224003
This presentation shows the feature updates from Scala 2.12 to 2.13. The list of features is not comprehensive, but it is my personal selection of favorites. I will focus on those which IMO impact/ease the programmers live most. I will look at 5 feature areas: compiler, standard library, language changes, Future and finally the most important change the redesigned collections library. I will not only show the new features of 2.13. In many cases I will show how the new features of 2.13 can be backported to 2.12 und be used in mostly the same way as in 2.13. Finally I'll give some guide lines for the migration from 2.12 to 2.13 and for a cross version project which compiles a code base with both compiler versions.]]>

This presentation shows the feature updates from Scala 2.12 to 2.13. The list of features is not comprehensive, but it is my personal selection of favorites. I will focus on those which IMO impact/ease the programmers live most. I will look at 5 feature areas: compiler, standard library, language changes, Future and finally the most important change the redesigned collections library. I will not only show the new features of 2.13. In many cases I will show how the new features of 2.13 can be backported to 2.12 und be used in mostly the same way as in 2.13. Finally I'll give some guide lines for the migration from 2.12 to 2.13 and for a cross version project which compiles a code base with both compiler versions.]]>
Thu, 09 Jan 2020 22:40:03 GMT /slideshow/whats-new-in-scala-213/217987153 hermannhueck@slideshare.net(hermannhueck) What's new in Scala 2.13? hermannhueck This presentation shows the feature updates from Scala 2.12 to 2.13. The list of features is not comprehensive, but it is my personal selection of favorites. I will focus on those which IMO impact/ease the programmers live most. I will look at 5 feature areas: compiler, standard library, language changes, Future and finally the most important change the redesigned collections library. I will not only show the new features of 2.13. In many cases I will show how the new features of 2.13 can be backported to 2.12 und be used in mostly the same way as in 2.13. Finally I'll give some guide lines for the migration from 2.12 to 2.13 and for a cross version project which compiles a code base with both compiler versions. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/new-in-scala-2-200109224003-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> This presentation shows the feature updates from Scala 2.12 to 2.13. The list of features is not comprehensive, but it is my personal selection of favorites. I will focus on those which IMO impact/ease the programmers live most. I will look at 5 feature areas: compiler, standard library, language changes, Future and finally the most important change the redesigned collections library. I will not only show the new features of 2.13. In many cases I will show how the new features of 2.13 can be backported to 2.12 und be used in mostly the same way as in 2.13. Finally I&#39;ll give some guide lines for the migration from 2.12 to 2.13 and for a cross version project which compiles a code base with both compiler versions.
What's new in Scala 2.13? from Hermann Hueck
]]>
2582 0 https://cdn.slidesharecdn.com/ss_thumbnails/new-in-scala-2-200109224003-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Pragmatic sbt /slideshow/pragmatic-sbt/158857641 pragmatic-sbt-1-190729150344
This presentation gives a pragmatic introduction to SBT - the Scala Build Tool - in 7 examples. Each example is a build in it's own root directory: ./example?? Beginning with very simple sbt examples the later examples are becoming more structured and more complex showing multi-project builds, cross version builds, packaging and publishing, custom Settings and Tasks and the integration of the Ammonite REPL into your build. We also look at InputTasks, Commands and plugin development.]]>

This presentation gives a pragmatic introduction to SBT - the Scala Build Tool - in 7 examples. Each example is a build in it's own root directory: ./example?? Beginning with very simple sbt examples the later examples are becoming more structured and more complex showing multi-project builds, cross version builds, packaging and publishing, custom Settings and Tasks and the integration of the Ammonite REPL into your build. We also look at InputTasks, Commands and plugin development.]]>
Mon, 29 Jul 2019 15:03:44 GMT /slideshow/pragmatic-sbt/158857641 hermannhueck@slideshare.net(hermannhueck) Pragmatic sbt hermannhueck This presentation gives a pragmatic introduction to SBT - the Scala Build Tool - in 7 examples. Each example is a build in it's own root directory: ./example?? Beginning with very simple sbt examples the later examples are becoming more structured and more complex showing multi-project builds, cross version builds, packaging and publishing, custom Settings and Tasks and the integration of the Ammonite REPL into your build. We also look at InputTasks, Commands and plugin development. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/pragmatic-sbt-1-190729150344-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> This presentation gives a pragmatic introduction to SBT - the Scala Build Tool - in 7 examples. Each example is a build in it&#39;s own root directory: ./example?? Beginning with very simple sbt examples the later examples are becoming more structured and more complex showing multi-project builds, cross version builds, packaging and publishing, custom Settings and Tasks and the integration of the Ammonite REPL into your build. We also look at InputTasks, Commands and plugin development.
Pragmatic sbt from Hermann Hueck
]]>
1194 3 https://cdn.slidesharecdn.com/ss_thumbnails/pragmatic-sbt-1-190729150344-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Implementing the IO Monad in Scala /hermannhueck/implementing-the-io-monad-in-scala implementing-the-io-monad-190213130641
With my simple implementation I wanted to demonstrate the basic ideas of th IO Monad. My impl of the IO Monad is just a feasibility study, not production code! When coding my impl of IO I was very much inspired by cats.effect.IO and monix.eval.Task which I studied at that time. Both are implementions of the IO Monad. The API of my IO is very similar to the basics of Monix Task. This IO implementation also helped me to understand the IO Monad (of cats-effect) and Monix Task. Interop with Future is also supported. You can convert IO to a Future. Vice versa you can convert a Future to an IO. The development of my impl can be followed step by step in the code files in package iomonad.]]>

With my simple implementation I wanted to demonstrate the basic ideas of th IO Monad. My impl of the IO Monad is just a feasibility study, not production code! When coding my impl of IO I was very much inspired by cats.effect.IO and monix.eval.Task which I studied at that time. Both are implementions of the IO Monad. The API of my IO is very similar to the basics of Monix Task. This IO implementation also helped me to understand the IO Monad (of cats-effect) and Monix Task. Interop with Future is also supported. You can convert IO to a Future. Vice versa you can convert a Future to an IO. The development of my impl can be followed step by step in the code files in package iomonad.]]>
Wed, 13 Feb 2019 13:06:41 GMT /hermannhueck/implementing-the-io-monad-in-scala hermannhueck@slideshare.net(hermannhueck) Implementing the IO Monad in Scala hermannhueck With my simple implementation I wanted to demonstrate the basic ideas of th IO Monad. My impl of the IO Monad is just a feasibility study, not production code! When coding my impl of IO I was very much inspired by cats.effect.IO and monix.eval.Task which I studied at that time. Both are implementions of the IO Monad. The API of my IO is very similar to the basics of Monix Task. This IO implementation also helped me to understand the IO Monad (of cats-effect) and Monix Task. Interop with Future is also supported. You can convert IO to a Future. Vice versa you can convert a Future to an IO. The development of my impl can be followed step by step in the code files in package iomonad. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/implementing-the-io-monad-190213130641-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> With my simple implementation I wanted to demonstrate the basic ideas of th IO Monad. My impl of the IO Monad is just a feasibility study, not production code! When coding my impl of IO I was very much inspired by cats.effect.IO and monix.eval.Task which I studied at that time. Both are implementions of the IO Monad. The API of my IO is very similar to the basics of Monix Task. This IO implementation also helped me to understand the IO Monad (of cats-effect) and Monix Task. Interop with Future is also supported. You can convert IO to a Future. Vice versa you can convert a Future to an IO. The development of my impl can be followed step by step in the code files in package iomonad.
Implementing the IO Monad in Scala from Hermann Hueck
]]>
1297 4 https://cdn.slidesharecdn.com/ss_thumbnails/implementing-the-io-monad-190213130641-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Future vs. Monix Task /hermannhueck/future-vs-monix-task future-vs-monix-task-190213124247
scala.concurrent.Future is familiar to nearly all Scala devs. This presentation first talks about referential transparency and the IO Monad in general. (Monix Task is an impl of the IO Monad.) Then it compares Future Monix 3.x Task with their Pros and Cons. Interop with Future: As Scala's Future is used in many environments and libraries, we look at the conversion from Task to Future and - vice versa - from Future to Task. I will also take a look at Task evaluation, cancelation and memoization as well as tail recursive loops and asynchronous boundaries. The presentation will include a comparative discussion on ExecutionContext (required for Future) and Scheduler (required for Task, but only to run it). Often recurring on the valuable Monix Task doumentation at https://monix.io/docs/3x/eval/task.html the presentation can also be seen as an introduction to Monix Task. ]]>

scala.concurrent.Future is familiar to nearly all Scala devs. This presentation first talks about referential transparency and the IO Monad in general. (Monix Task is an impl of the IO Monad.) Then it compares Future Monix 3.x Task with their Pros and Cons. Interop with Future: As Scala's Future is used in many environments and libraries, we look at the conversion from Task to Future and - vice versa - from Future to Task. I will also take a look at Task evaluation, cancelation and memoization as well as tail recursive loops and asynchronous boundaries. The presentation will include a comparative discussion on ExecutionContext (required for Future) and Scheduler (required for Task, but only to run it). Often recurring on the valuable Monix Task doumentation at https://monix.io/docs/3x/eval/task.html the presentation can also be seen as an introduction to Monix Task. ]]>
Wed, 13 Feb 2019 12:42:47 GMT /hermannhueck/future-vs-monix-task hermannhueck@slideshare.net(hermannhueck) Future vs. Monix Task hermannhueck scala.concurrent.Future is familiar to nearly all Scala devs. This presentation first talks about referential transparency and the IO Monad in general. (Monix Task is an impl of the IO Monad.) Then it compares Future Monix 3.x Task with their Pros and Cons. Interop with Future: As Scala's Future is used in many environments and libraries, we look at the conversion from Task to Future and - vice versa - from Future to Task. I will also take a look at Task evaluation, cancelation and memoization as well as tail recursive loops and asynchronous boundaries. The presentation will include a comparative discussion on ExecutionContext (required for Future) and Scheduler (required for Task, but only to run it). Often recurring on the valuable Monix Task doumentation at https://monix.io/docs/3x/eval/task.html the presentation can also be seen as an introduction to Monix Task. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/future-vs-monix-task-190213124247-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> scala.concurrent.Future is familiar to nearly all Scala devs. This presentation first talks about referential transparency and the IO Monad in general. (Monix Task is an impl of the IO Monad.) Then it compares Future Monix 3.x Task with their Pros and Cons. Interop with Future: As Scala&#39;s Future is used in many environments and libraries, we look at the conversion from Task to Future and - vice versa - from Future to Task. I will also take a look at Task evaluation, cancelation and memoization as well as tail recursive loops and asynchronous boundaries. The presentation will include a comparative discussion on ExecutionContext (required for Future) and Scheduler (required for Task, but only to run it). Often recurring on the valuable Monix Task doumentation at https://monix.io/docs/3x/eval/task.html the presentation can also be seen as an introduction to Monix Task.
Future vs. Monix Task from Hermann Hueck
]]>
1407 4 https://cdn.slidesharecdn.com/ss_thumbnails/future-vs-monix-task-190213124247-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Use Applicative where applicable! /hermannhueck/use-applicative-where-applicable use-applicative-where-applicable-190213123802
Most Scala developers are familiar with monadic precessing. Monads provide flatMap and hence for-comprehensions (syntactic sugar for map and flatMap). Often we don't need Monads. Applicatives are sufficient in many cases. In this talk I examine the differences between monadic and applicative processing and give some guide lines when to use which. After a closer look to the Applicative trait I will contrast the gist of Either and cats.data.Validated (the latter being an Applicative but not a Monad). I will also look at traversing and sequencing which harness Applicatives as well.]]>

Most Scala developers are familiar with monadic precessing. Monads provide flatMap and hence for-comprehensions (syntactic sugar for map and flatMap). Often we don't need Monads. Applicatives are sufficient in many cases. In this talk I examine the differences between monadic and applicative processing and give some guide lines when to use which. After a closer look to the Applicative trait I will contrast the gist of Either and cats.data.Validated (the latter being an Applicative but not a Monad). I will also look at traversing and sequencing which harness Applicatives as well.]]>
Wed, 13 Feb 2019 12:38:02 GMT /hermannhueck/use-applicative-where-applicable hermannhueck@slideshare.net(hermannhueck) Use Applicative where applicable! hermannhueck Most Scala developers are familiar with monadic precessing. Monads provide flatMap and hence for-comprehensions (syntactic sugar for map and flatMap). Often we don't need Monads. Applicatives are sufficient in many cases. In this talk I examine the differences between monadic and applicative processing and give some guide lines when to use which. After a closer look to the Applicative trait I will contrast the gist of Either and cats.data.Validated (the latter being an Applicative but not a Monad). I will also look at traversing and sequencing which harness Applicatives as well. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/use-applicative-where-applicable-190213123802-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Most Scala developers are familiar with monadic precessing. Monads provide flatMap and hence for-comprehensions (syntactic sugar for map and flatMap). Often we don&#39;t need Monads. Applicatives are sufficient in many cases. In this talk I examine the differences between monadic and applicative processing and give some guide lines when to use which. After a closer look to the Applicative trait I will contrast the gist of Either and cats.data.Validated (the latter being an Applicative but not a Monad). I will also look at traversing and sequencing which harness Applicatives as well.
Use Applicative where applicable! from Hermann Hueck
]]>
260 1 https://cdn.slidesharecdn.com/ss_thumbnails/use-applicative-where-applicable-190213123802-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
From Function1#apply to Kleisli /slideshow/from-function1apply-to-kleisli/131618355 from-function1apply-to-kleisli-190213121555
Different Ways of Function Composition in Scala: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Fine-grained composability of functions is one of the core advantages of FP. Treating "Functions as Data" means that we can store, manipulate, pass functions around and compose them in much the same way we do with data. This talk demonstrates different ways of function composition in Scala. The focus lies on scala.Function1, because due to tupling and currying we can regard any FunctionN (except Function0) as a Function1. Curried functions are easier to compose. Starting with the composition methods of scala.Function1: apply, compose and andThen, we will investigate folding a Seq of functions. We can also define a pipe operator |> as in F# in order to 'pipe' values through a pipeline of functions. Defining a Monoid for Function1 allows us to combine two or more functions into a new one. A function can also be seen as a Functor and a Monad. That means: Functions can be mapped and flatMapped over. And we can write for-comprehensions in a Function1 context just as we do with List, Option, Future, Either etc. Being Monads, we can use functions in any monadic context. We will see that Function1 is the Reader Monad. The most powerful way of function composition is Kleisli (also known as ReaderT). We will see that Kleisli (defined with the Id context) is the Reader Monad again.]]>

Different Ways of Function Composition in Scala: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Fine-grained composability of functions is one of the core advantages of FP. Treating "Functions as Data" means that we can store, manipulate, pass functions around and compose them in much the same way we do with data. This talk demonstrates different ways of function composition in Scala. The focus lies on scala.Function1, because due to tupling and currying we can regard any FunctionN (except Function0) as a Function1. Curried functions are easier to compose. Starting with the composition methods of scala.Function1: apply, compose and andThen, we will investigate folding a Seq of functions. We can also define a pipe operator |> as in F# in order to 'pipe' values through a pipeline of functions. Defining a Monoid for Function1 allows us to combine two or more functions into a new one. A function can also be seen as a Functor and a Monad. That means: Functions can be mapped and flatMapped over. And we can write for-comprehensions in a Function1 context just as we do with List, Option, Future, Either etc. Being Monads, we can use functions in any monadic context. We will see that Function1 is the Reader Monad. The most powerful way of function composition is Kleisli (also known as ReaderT). We will see that Kleisli (defined with the Id context) is the Reader Monad again.]]>
Wed, 13 Feb 2019 12:15:55 GMT /slideshow/from-function1apply-to-kleisli/131618355 hermannhueck@slideshare.net(hermannhueck) From Function1#apply to Kleisli hermannhueck Different Ways of Function Composition in Scala: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Fine-grained composability of functions is one of the core advantages of FP. Treating "Functions as Data" means that we can store, manipulate, pass functions around and compose them in much the same way we do with data. This talk demonstrates different ways of function composition in Scala. The focus lies on scala.Function1, because due to tupling and currying we can regard any FunctionN (except Function0) as a Function1. Curried functions are easier to compose. Starting with the composition methods of scala.Function1: apply, compose and andThen, we will investigate folding a Seq of functions. We can also define a pipe operator |> as in F# in order to 'pipe' values through a pipeline of functions. Defining a Monoid for Function1 allows us to combine two or more functions into a new one. A function can also be seen as a Functor and a Monad. That means: Functions can be mapped and flatMapped over. And we can write for-comprehensions in a Function1 context just as we do with List, Option, Future, Either etc. Being Monads, we can use functions in any monadic context. We will see that Function1 is the Reader Monad. The most powerful way of function composition is Kleisli (also known as ReaderT). We will see that Kleisli (defined with the Id context) is the Reader Monad again. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/from-function1apply-to-kleisli-190213121555-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Different Ways of Function Composition in Scala: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Fine-grained composability of functions is one of the core advantages of FP. Treating &quot;Functions as Data&quot; means that we can store, manipulate, pass functions around and compose them in much the same way we do with data. This talk demonstrates different ways of function composition in Scala. The focus lies on scala.Function1, because due to tupling and currying we can regard any FunctionN (except Function0) as a Function1. Curried functions are easier to compose. Starting with the composition methods of scala.Function1: apply, compose and andThen, we will investigate folding a Seq of functions. We can also define a pipe operator |&gt; as in F# in order to &#39;pipe&#39; values through a pipeline of functions. Defining a Monoid for Function1 allows us to combine two or more functions into a new one. A function can also be seen as a Functor and a Monad. That means: Functions can be mapped and flatMapped over. And we can write for-comprehensions in a Function1 context just as we do with List, Option, Future, Either etc. Being Monads, we can use functions in any monadic context. We will see that Function1 is the Reader Monad. The most powerful way of function composition is Kleisli (also known as ReaderT). We will see that Kleisli (defined with the Id context) is the Reader Monad again.
From Function1#apply to Kleisli from Hermann Hueck
]]>
265 2 https://cdn.slidesharecdn.com/ss_thumbnails/from-function1apply-to-kleisli-190213121555-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Composing an App with Free Monads (using Cats) /slideshow/composing-an-app-with-free-monads-using-cats/104056062 composing-an-app-with-free-monads-180703101432
In this talk I will explain what Free Monads are and how to use them (using the Cats implementation). After having shown the basics I build a small app by composing several Free Monads to a small program. I discuss the pros and cons of this technique. Finally I will demonstrate how to avoid some boilerplate with the FreeK library. ]]>

In this talk I will explain what Free Monads are and how to use them (using the Cats implementation). After having shown the basics I build a small app by composing several Free Monads to a small program. I discuss the pros and cons of this technique. Finally I will demonstrate how to avoid some boilerplate with the FreeK library. ]]>
Tue, 03 Jul 2018 10:14:32 GMT /slideshow/composing-an-app-with-free-monads-using-cats/104056062 hermannhueck@slideshare.net(hermannhueck) Composing an App with Free Monads (using Cats) hermannhueck In this talk I will explain what Free Monads are and how to use them (using the Cats implementation). After having shown the basics I build a small app by composing several Free Monads to a small program. I discuss the pros and cons of this technique. Finally I will demonstrate how to avoid some boilerplate with the FreeK library. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/composing-an-app-with-free-monads-180703101432-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> In this talk I will explain what Free Monads are and how to use them (using the Cats implementation). After having shown the basics I build a small app by composing several Free Monads to a small program. I discuss the pros and cons of this technique. Finally I will demonstrate how to avoid some boilerplate with the FreeK library.
Composing an App with Free Monads (using Cats) from Hermann Hueck
]]>
3023 9 https://cdn.slidesharecdn.com/ss_thumbnails/composing-an-app-with-free-monads-180703101432-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
From Functor Composition to Monad Transformers /slideshow/from-functor-composition-to-monad-transformers-104047202/104047202 from-functor-composition-to-monad-transformers-180703082818
In a List[Option[A]] or Future[Option[A]] we want to access the value of type A conveniently without nested mapping and flatMapping. We can avoid nested mapping with composed Functors. Functors compose, but Monads do not! What can we do? Monad transformers to the rescue! After going through Functor composition I show how 2 Monads are bolted together with a Monad transformer and how to use this construct. I demonstrate this with the Option transformer OptionT and will end up with best practices.]]>

In a List[Option[A]] or Future[Option[A]] we want to access the value of type A conveniently without nested mapping and flatMapping. We can avoid nested mapping with composed Functors. Functors compose, but Monads do not! What can we do? Monad transformers to the rescue! After going through Functor composition I show how 2 Monads are bolted together with a Monad transformer and how to use this construct. I demonstrate this with the Option transformer OptionT and will end up with best practices.]]>
Tue, 03 Jul 2018 08:28:18 GMT /slideshow/from-functor-composition-to-monad-transformers-104047202/104047202 hermannhueck@slideshare.net(hermannhueck) From Functor Composition to Monad Transformers hermannhueck In a List[Option[A]] or Future[Option[A]] we want to access the value of type A conveniently without nested mapping and flatMapping. We can avoid nested mapping with composed Functors. Functors compose, but Monads do not! What can we do? Monad transformers to the rescue! After going through Functor composition I show how 2 Monads are bolted together with a Monad transformer and how to use this construct. I demonstrate this with the Option transformer OptionT and will end up with best practices. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/from-functor-composition-to-monad-transformers-180703082818-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> In a List[Option[A]] or Future[Option[A]] we want to access the value of type A conveniently without nested mapping and flatMapping. We can avoid nested mapping with composed Functors. Functors compose, but Monads do not! What can we do? Monad transformers to the rescue! After going through Functor composition I show how 2 Monads are bolted together with a Monad transformer and how to use this construct. I demonstrate this with the Option transformer OptionT and will end up with best practices.
From Functor Composition to Monad Transformers from Hermann Hueck
]]>
328 3 https://cdn.slidesharecdn.com/ss_thumbnails/from-functor-composition-to-monad-transformers-180703082818-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Type Classes in Scala and Haskell /slideshow/type-classes-in-scala-and-haskell/101297228 typeclasses-180608100431
After a recap of implicits I introduce the type class mechanics in Scala. Then I have a look at ways for good non-intrusive type class design. The main focus of this presentation are type classes in Scala. In the last chapter I show the Haskell implementation of my example.]]>

After a recap of implicits I introduce the type class mechanics in Scala. Then I have a look at ways for good non-intrusive type class design. The main focus of this presentation are type classes in Scala. In the last chapter I show the Haskell implementation of my example.]]>
Fri, 08 Jun 2018 10:04:30 GMT /slideshow/type-classes-in-scala-and-haskell/101297228 hermannhueck@slideshare.net(hermannhueck) Type Classes in Scala and Haskell hermannhueck After a recap of implicits I introduce the type class mechanics in Scala. Then I have a look at ways for good non-intrusive type class design. The main focus of this presentation are type classes in Scala. In the last chapter I show the Haskell implementation of my example. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/typeclasses-180608100431-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> After a recap of implicits I introduce the type class mechanics in Scala. Then I have a look at ways for good non-intrusive type class design. The main focus of this presentation are type classes in Scala. In the last chapter I show the Haskell implementation of my example.
Type Classes in Scala and Haskell from Hermann Hueck
]]>
1370 3 https://cdn.slidesharecdn.com/ss_thumbnails/typeclasses-180608100431-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Reactive Access to MongoDB from Scala /hermannhueck/reactive-access-to-mongodb-from-scala 2016-08reactivemongoaccessfromscala-160907124436
This talk describes how to access MongoDB reactively from Scala using different drivers and different access strategies/technologies.]]>

This talk describes how to access MongoDB reactively from Scala using different drivers and different access strategies/technologies.]]>
Wed, 07 Sep 2016 12:44:36 GMT /hermannhueck/reactive-access-to-mongodb-from-scala hermannhueck@slideshare.net(hermannhueck) Reactive Access to MongoDB from Scala hermannhueck This talk describes how to access MongoDB reactively from Scala using different drivers and different access strategies/technologies. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/2016-08reactivemongoaccessfromscala-160907124436-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> This talk describes how to access MongoDB reactively from Scala using different drivers and different access strategies/technologies.
Reactive Access to MongoDB from Scala from Hermann Hueck
]]>
3112 5 https://cdn.slidesharecdn.com/ss_thumbnails/2016-08reactivemongoaccessfromscala-160907124436-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Reactive Access to MongoDB from Java 8 /slideshow/reactive-access-to-mongodb-from-java-8/62237288 2016-06reactivemongoaccessfromjava8-160520182225
This talk describes how to access MongoDB reactively from Java 8 using different drivers and different access strategies/technologies.]]>

This talk describes how to access MongoDB reactively from Java 8 using different drivers and different access strategies/technologies.]]>
Fri, 20 May 2016 18:22:25 GMT /slideshow/reactive-access-to-mongodb-from-java-8/62237288 hermannhueck@slideshare.net(hermannhueck) Reactive Access to MongoDB from Java 8 hermannhueck This talk describes how to access MongoDB reactively from Java 8 using different drivers and different access strategies/technologies. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/2016-06reactivemongoaccessfromjava8-160520182225-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> This talk describes how to access MongoDB reactively from Java 8 using different drivers and different access strategies/technologies.
Reactive Access to MongoDB from Java 8 from Hermann Hueck
]]>
8817 7 https://cdn.slidesharecdn.com/ss_thumbnails/2016-06reactivemongoaccessfromjava8-160520182225-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Implementing a many-to-many Relationship with Slick /slideshow/implementing-a-manytomany-relationship-with-slick/62236598 2016-01-19implementing-a-many-to-many-relationship-with-slick-160520175807
This talk demonstrates how to implement a many-to-many relationship in a relational database with Slick in Scala.]]>

This talk demonstrates how to implement a many-to-many relationship in a relational database with Slick in Scala.]]>
Fri, 20 May 2016 17:58:07 GMT /slideshow/implementing-a-manytomany-relationship-with-slick/62236598 hermannhueck@slideshare.net(hermannhueck) Implementing a many-to-many Relationship with Slick hermannhueck This talk demonstrates how to implement a many-to-many relationship in a relational database with Slick in Scala. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/2016-01-19implementing-a-many-to-many-relationship-with-slick-160520175807-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> This talk demonstrates how to implement a many-to-many relationship in a relational database with Slick in Scala.
Implementing a many-to-many Relationship with Slick from Hermann Hueck
]]>
4631 8 https://cdn.slidesharecdn.com/ss_thumbnails/2016-01-19implementing-a-many-to-many-relationship-with-slick-160520175807-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
https://cdn.slidesharecdn.com/profile-photo-hermannhueck-48x48.jpg?cb=1619556752 Backend Developer - Scala, Haskell, Cats, Akka, Play https://www.xing.com/profile/Hermann_Hueck https://cdn.slidesharecdn.com/ss_thumbnails/taste-of-dotty-210501165845-thumbnail.jpg?width=320&height=320&fit=bounds slideshow/a-taste-of-dotty-247491558/247491558 A Taste of Dotty https://cdn.slidesharecdn.com/ss_thumbnails/new-in-scala-2-200109224003-thumbnail.jpg?width=320&height=320&fit=bounds slideshow/whats-new-in-scala-213/217987153 What&#39;s new in Scala 2.13? https://cdn.slidesharecdn.com/ss_thumbnails/pragmatic-sbt-1-190729150344-thumbnail.jpg?width=320&height=320&fit=bounds slideshow/pragmatic-sbt/158857641 Pragmatic sbt