Konfy
Konfy
  • 235
  • 242 089
Ivan Gromakovskii - Exceptions and concurrency
Special thanks to the Haskell Foundation for supporting the production of this video!
Haskell Love 2021 schedule: emamo.com/event/haskell-love
Haskell Love twitter: _haskellove
While Haskell is pretty much different from mainstream imperative languages like C++ and Java, its notion of exceptions (and their handling) resembles exceptions in imperative languages quite closely. While you are in the `IO` monad, you can throw exceptions of any type (having `Exception` instance) from any place and they can be caught at higher level of the call stack. But the more we delve into the details, the more nuances and differences we will spot. One more of them comes from Haskell's purity: in Haskell, pure functions can throw exceptions, but this mechanism is quite different from exceptions in `IO`. Another source of caveats is concurrency: dealing with exceptions gets more complicated when your application uses multiple threads.
We will start with essential basic facts about exceptions in Haskell and then discuss architecture of full-blown applications using multiple threads.
Переглядів: 563

Відео

Alejandro Serrano Mena - All You Wanted to Know About Type Classes
Переглядів 1 тис.Рік тому
Special thanks to the Haskell Foundation for supporting the production of this video! Haskell Love 2021 schedule: emamo.com/event/haskell-love Haskell Love twitter: _haskellove This talk focuses on one important slice of the Haskell language, type classes, from the beginning to the myriad of extensions related to it. The goal is to understand the two axes in which type classes make ...
Ryan Orendorff - Functional Programming + Dependent Types ≡ Verified Linear Algebra
Переглядів 1,3 тис.Рік тому
Special thanks to the Haskell Foundation for supporting the production of this video! Haskell Love 2021 schedule: emamo.com/event/haskell-love Haskell Love twitter: _haskellove Linear algebra is the backbone of many critical algorithms such as self driving cars and machine learning. Modern tooling makes it easy to program with linear algebra, but the resulting code is prone to bugs ...
Anton Kholomiov - Sound design with Haskell
Переглядів 418Рік тому
Special thanks to the Haskell Foundation for supporting the production of this video! Haskell Love 2021 schedule: emamo.com/event/haskell-love Haskell Love twitter: _haskellove [Csound-expression](hackage.haskell.org/package/csound-expression) is a mature and concise library for sound design and music. It's available on Hackage. It's designed for artists with basic knowledge of Hask...
Rebecca Skinner - Make It Purple: An Introduction To Type Level Programming
Переглядів 2,3 тис.Рік тому
Special thanks to the Haskell Foundation for supporting the production of this video! Haskell Love 2021 schedule: emamo.com/event/haskell-love Haskell Love twitter: _haskellove Type level programing is fun, but it has a certain divisive mystique. Type level programs aren't simple haskell, and when you're learning how to write code at the type level you might find yourself force to c...
Dmitrii Kovanikov - One way and another
Переглядів 368Рік тому
Special thanks to the Haskell Foundation for supporting the production of this video! Haskell Love 2021 schedule: emamo.com/event/haskell-love Haskell Love twitter: _haskellove Handling of JSON, YAML, TOML, Protobufs, etc. became an essential part of modern web development. Data processing involves parsing, decoding, encoding, and printing. And usually, the code behind the logic for...
Noon van der Silk - Quantum Computing and Haskell - A Linear Love Story?
Переглядів 696Рік тому
Special thanks to the Haskell Foundation for supporting the production of this video! Haskell Love 2021 schedule: emamo.com/event/haskell-love Haskell Love twitter: _haskellove We will discuss the existing landscape for programming quantum computers, and the challenges. We'll review some research around how to deal with these problems and complexities, and finally we will see how in...
Andrew Boardman - The Historical Futurism of Haskell
Переглядів 483Рік тому
Special thanks to the Haskell Foundation for supporting the production of this video! Haskell Love 2021 schedule: emamo.com/event/haskell-love Haskell Love twitter: _haskellove Andrew from the future talks about the history of Haskell, with an emphasis on developments between the past's (present) experience and the current (future).
Jan Christopher Vogt - Software like Lego - how Haskell naturally delivers on a decades old dream
Переглядів 424Рік тому
Special thanks to the Haskell Foundation for supporting the production of this video! Haskell Love 2021 schedule: emamo.com/event/haskell-love Haskell Love twitter: _haskellove We long dreamed of creating software like Lego, assembled easily from re-usable blocks. Main stream languages have failed here. After 3 years of industry Haskell, I am stunned that out-of-the-box Haskell quit...
Veronika Romashkina - Haskell LOL
Переглядів 1,3 тис.Рік тому
Special thanks to the Haskell Foundation for supporting the production of this video! Haskell Love 2021 schedule: emamo.com/event/haskell-love Haskell Love twitter: _haskellove Robustness, determinism, strongly typed code, predictable behaviour, correctness, compile-time guarantees, safety. These all are the things we love as functional developers. And they are the reasons why we ch...
Thomas Tuegel - Strict Haskell
Переглядів 757Рік тому
Special thanks to the Haskell Foundation for supporting the production of this video! Haskell Love 2021 schedule: emamo.com/event/haskell-love Haskell Love twitter: _haskellove Lazy evaluation is one of the features that sets Haskell drastically apart from other mainstream languages. Because it is so alien, it is often a stumbling block for beginners. Yet among advanced practitioner...
Andrew Lelechenko - Tasty-bench: featherlight benchmark framework
Переглядів 242Рік тому
Special thanks to the Haskell Foundation for supporting the production of this video! Haskell Love 2021 schedule: emamo.com/event/haskell-love Haskell Love twitter: _haskellove The talk is about architecture, UI and UX of hackage.haskell.org/package/tasty-bench, which is a new benchmark framework with an API mimicking `criterion` and `gauge`. Despite its young age, `tasty-bench` has...
Brent Yorgey - Competitive Programming in Haskell
Переглядів 2,8 тис.Рік тому
Special thanks to the Haskell Foundation for supporting the production of this video! Haskell Love 2021 schedule: emamo.com/event/haskell-love Haskell Love twitter: _haskellove Competitive programming is an exciting mind sport where competitors race to solve difficult programming tasks as quickly as possible, either individually or as part of a team. It requires sharp problem-solvin...
Chris Penner - Alternative by example - A typeclass for parsing, concurrency, logic programming
Переглядів 1,8 тис.Рік тому
Special thanks to the Haskell Foundation for supporting the production of this video! Haskell Love 2021 schedule: emamo.com/event/haskell-love Haskell Love twitter: _haskellove This talk is a deep-dive on the Alternative typeclass from `Control.Applicative`, which provides a monoid over applicative functors, we love monoids, and we love applicatives, what do we get when we combine t...
Gergo Erdi - Executable, Synthesizable, Human Readable: Pick Three
Переглядів 435Рік тому
Special thanks to the Haskell Foundation for supporting the production of this video! Haskell Love 2021 schedule: emamo.com/event/haskell-love Haskell Love twitter: _haskellove The great thing about Clash is that it is just Haskell. In this talk, we explore *why* this is great, by showing a simple hardware circuit developed using high-level Haskell abstractions: * Separation of mode...
Gershom Bazerman - The Best Reliable Software Technique You've Never Used: Unions
Переглядів 483Рік тому
Gershom Bazerman - The Best Reliable Software Technique You've Never Used: Unions
Jeremy Gibbons - Continuation-passing style, defunctionalization, and associativity
Переглядів 2,7 тис.Рік тому
Jeremy Gibbons - Continuation-passing style, defunctionalization, and associativity
Joseph Morag - Open Strings
Переглядів 181Рік тому
Joseph Morag - Open Strings
Marcin Szamotulski - Protocol pipelining in Typed-Protocols
Переглядів 276Рік тому
Marcin Szamotulski - Protocol pipelining in Typed-Protocols
Mikael Tonnberg - Knowledge as code - why we use Haskell at a fast growing startup
Переглядів 935Рік тому
Mikael Tonnberg - Knowledge as code - why we use Haskell at a fast growing startup
Stephanie Weirich - How to Implement the Lambda Calculus, Quickly
Переглядів 1,8 тис.Рік тому
Stephanie Weirich - How to Implement the Lambda Calculus, Quickly
Adam Fraser - Solve Your Concurrency Problems With ZIO STM
Переглядів 1,3 тис.2 роки тому
Adam Fraser - Solve Your Concurrency Problems With ZIO STM
Alex Archambault - Scala CLI a more powerful Scala command to get rid of build tools
Переглядів 9252 роки тому
Alex Archambault - Scala CLI a more powerful Scala command to get rid of build tools
Alfonso Roa Redondo - Fast and furiously safe: type safe programming with Spark DataFrames
Переглядів 3872 роки тому
Alfonso Roa Redondo - Fast and furiously safe: type safe programming with Spark DataFrames
Arseniy Zhizhelev - Relational Algebra in Scala3 - how is it possible?
Переглядів 5432 роки тому
Arseniy Zhizhelev - Relational Algebra in Scala3 - how is it possible?
Holden Karau - Practical Spark Encoders + Teaching Kids Apache Spark
Переглядів 5432 роки тому
Holden Karau - Practical Spark Encoders Teaching Kids Apache Spark
Jacob Wang - Difflicious - Readable and Flexible diffs for your tests
Переглядів 1842 роки тому
Jacob Wang - Difflicious - Readable and Flexible diffs for your tests
Josep Prat - Preparing Apache Kafka for Scala 3
Переглядів 4852 роки тому
Josep Prat - Preparing Apache Kafka for Scala 3
Juan Manuel Serrano - To type or not to type: a matter of logic
Переглядів 3162 роки тому
Juan Manuel Serrano - To type or not to type: a matter of logic
Kacper Korban - Scala 3, but I have trust issues
Переглядів 3052 роки тому
Kacper Korban - Scala 3, but I have trust issues

КОМЕНТАРІ

  • @AlexRodriguez-gb9ez
    @AlexRodriguez-gb9ez 8 днів тому

    It seems that in Haskell you have to learn several languages rather than just one, you have to see the program, the program written at the type level, the program written using tacit style, the program using the different type classes... Haskell the terminology is completely alien from all other languages and often deliberately misleading like return for wrapping into a monad instead of wrap, join instead of flatten, bind for >>=. Lets not add that names like semigroup, magma, monad, monoid, cartesian closed categories, kleisi arrow, profunctor, mean very little until you learn them. I have an idea of naming Haskell things by their "type/code" like afa for return/liftM0, aifafi for map/liftA, aiufafifu for zipWith/liftA2, =<< would be amiami, $ would be aiai.

  • @ChristopherVogt1
    @ChristopherVogt1 Місяць тому

    Yeah, sorry for the sound. In order to record the screen and merge audio from microphone and the game I fed both audio streams through a mixer. It seems like the game engine's CPU usage sometimes took priority over the mixer, so the mixer started messing up the audio.

  • @aoeu256
    @aoeu256 Місяць тому

    Haskell has to compete with Scala(too complex), swift, Julia, Rust, Ocaml, reasonml, Python, Clojure, Racket, Eff language. If Haskell moves to the Jvm, Python byte code, web assembly, hmm

  • @aoeu256
    @aoeu256 Місяць тому

    We need a good Haskell ide that shows data flowing through your functions, can easily apply rewriting rules to code so you can see the various different ways that code can look like, we also need automatic ways to rewrite your program so that monads and extra arguments are automatically threaded through your program. Haskell also needs a solver to help you code sort of like Agra and ide is. Also haskell should merge with hose languages. Another thing is Haskell should come with template haskell macros that can do trace rewriting so that people can visualize Haskell code easily.

  • @DrBartosz
    @DrBartosz Місяць тому

    I never thought of Kan extenstions this way, but it makes a lot of sense. Great food for thought!

  • @paulfunigga
    @paulfunigga 2 місяці тому

    Yes. Kotlin is definitely way better than Scala. I'd like to see Kotlin as the official API language for Spark.

  • @jonathanwinandy
    @jonathanwinandy 2 місяці тому

    It's nice to go back to this talk! Thanks a lot for the presentation.

  • @MrDejvidkit
    @MrDejvidkit 3 місяці тому

    This is the best explanation of the effects system ever. I was trying to explain it to my colleagues and this is the talk they need ! Thx you you ROCK!

  • @ZelenoJabko
    @ZelenoJabko 5 місяців тому

    ZIO is slow like a snail, trashes the GC by generating a ton of garbage objects for even the simplest computations, and has a ton of pointer redirections that bust the cache. Keep your (mutable) Actors, you are going to get 3x performance.

  • @ZelenoJabko
    @ZelenoJabko 5 місяців тому

    ZIO is basically a bunch of leaky abstractions in one library.

  • @pick-pock
    @pick-pock 6 місяців тому

    Very useful sugar explanation! 🔥🔥🔥

  • @pick-pock
    @pick-pock 6 місяців тому

    🔥🔥🔥

  • @justinhj1
    @justinhj1 7 місяців тому

    Another banger, thanks man

  • @donwinston
    @donwinston 7 місяців тому

    At first I thought this cli feature would be great for our very large cli system. We are seriously considering converting all our TCL code to Scala/Java. But now I don’t think so. We should use Maven and target all our Scala and Java code to native binary files and run each file with a simple ./xyz -arg1 -arg2 … Shouldn’t we be able to do this without any shell scripting?

  • @TJ-hs1qm
    @TJ-hs1qm 7 місяців тому

    This video could have been so much better if it had focused on topics that everyone could relate to. I had to think hard about the last time I had to program a memoize operator, and I probably never have. I don't even know what a memoize operator is. Now I'm forced to learn about memoize and operators just to follow along? There are so many other interesting topics and problems that could have been the backdrop of this talk, ones that people actually have to solve without all the quantum physics operatot jargon. I don't understand why the Scala community, by and large, is so cerebral. Sorry for the rant, but if everyone wonders about Scala's decline, that's a big chunk of the problem. Meager 1.1k views after 1 year speaks for itself.

  • @jonnmostovoy2406
    @jonnmostovoy2406 8 місяців тому

    I am really rigorously trying to stay away from the value-type dichotomy. So at around 14:00, I would say "Vec N is a dependent type because it depends on members of other types, in this case natural numbers which are members of type Nat". I think that presenting value-type dichotomy is the single biggest roadblock when it comes to practitioners understanding dependently type languages.

  • @EricKolotyluk
    @EricKolotyluk 8 місяців тому

    I would love to see this presentation revamped in light of Java 21 Virtual Threads, Structured Concurrency, and Scoped Values...

    • @MrDejvidkit
      @MrDejvidkit 3 місяці тому

      This talk is already talking about this.

    • @MrDejvidkit
      @MrDejvidkit 3 місяці тому

      And it talks about it. The runtime system of effects system has more features that loom is offering. I also see loom as not bringing values to Effect System usage. The loom can be exploited in the runtime implementation of the effect system.

    • @ulutiu
      @ulutiu 2 місяці тому

      @@MrDejvidkit too bad cala is DOA

  • @VivekGupta-xg5ds
    @VivekGupta-xg5ds 9 місяців тому

    Really great presentation. I just loved it.

  • @Filaxsan
    @Filaxsan 10 місяців тому

    8:30 bless this man...bless this man!

  • @christianbrolin1482
    @christianbrolin1482 Рік тому

    I thought the factorial problem would check for huge enough numbers so people cheating with an arbitrary large integer data type would fail due to inefficiency. Note that: H> (\k -> product [1..k] `mod` 10 :: Integer) <$> [0..] [1,1,2,6,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0..]

  • @user-wd8wx5md5z
    @user-wd8wx5md5z Рік тому

    I only hate how bad is the caption in broken French. I need to translate it back to English to guess the intented meaning. I usually do not have this problem on other YT channels. An example: The French phrase "calculs de compilateur basés sur la pile que je connais" is probably meant to refer to the "the stack-based compiler computation that I know", while it actually means "compiler computation based on the stack that I know". Like if the guys knows a precise stack and he based his computation on it ? In French as in English. the definite article "the" changes everything, and it looks likes the model misinterpreted the expression "the stack-based x" as meaning the same thing as "x that is based on the stack" instead of "x that is based on a stack".

  • @johnwalker7422
    @johnwalker7422 Рік тому

    Thanks for a great talk! Do you have a recording of the last topics you had to skip over anywhere?

  • @takumicrary4396
    @takumicrary4396 Рік тому

    Great talk

  • @johnwalker7422
    @johnwalker7422 Рік тому

    Thanks for a great !talk

  • @thiru53
    @thiru53 Рік тому

    Auto wiring of JobScedular is not working

    • @user-fd5tw9hp1u
      @user-fd5tw9hp1u Рік тому

      you should update version your jonrunr in maven\gradle to 5.x.x and more

  • @thiru53
    @thiru53 Рік тому

    getting following error, what can i do ? Description: Parameter 0 of constructor in com.example.demo.JobController required a bean of type 'org.jobrunr.scheduling.JobScheduler' that could not be found.

  • @NB4X-hz1fn
    @NB4X-hz1fn Рік тому

    A great demonstration, thank You!

  • @user-mu4uw2sr3g
    @user-mu4uw2sr3g Рік тому

    terrible speaker

  • @flowname
    @flowname Рік тому

    Half of the screen is dedicated to a white background and the "Haskell Love conference" branding. Really? Who was the genius who decided that only one-third of the available space should be enough for the code section in a presentation about competitive programming?

  • @archimail
    @archimail Рік тому

    Is it possible to integrate jira with gitbucket?

  • @Timjstewart
    @Timjstewart Рік тому

    I was intrigued by the speaker's book before seeing this but now I have to read it and learn how to better weild the type system. Amazing talk.

  • @uneewk
    @uneewk Рік тому

    Good overview

  • @cynocephalusw
    @cynocephalusw Рік тому

    Great work. You created an interesting DSL, that is complex enough to make generalisations for other domains. I'm waiting eagerly for your book.

  • @thatonegoblin7051
    @thatonegoblin7051 Рік тому

    🤮

  • @urbanmonkey9457
    @urbanmonkey9457 Рік тому

    Interesting intro to making sounds in Haskell. Very unfortunate that the talk is abruptly cut at the end...

  • @AnthonyAlaribe
    @AnthonyAlaribe Рік тому

    For people watching on small screens, could you make the slides larger in the future?

    • @TankorSmash
      @TankorSmash Рік тому

      On mobile, they added zooming, which made this easier, but yeah larger text would have gone a long way. Great talk!

  • @gongfei
    @gongfei Рік тому

    Thank you for the insight!

  • @wisuthantanong1927
    @wisuthantanong1927 Рік тому

    Love this! also this remind me of Haskell Love 2020 video, ua-cam.com/video/wppzFzzD4b8/v-deo.html

  • @davidcrosson
    @davidcrosson Рік тому

    Thank you for this great keynote, and you've described and summarized perfectly the pathway (by chance and experimentation) I've followed this past two years :)

  • @rezwydd
    @rezwydd Рік тому

    Esto on top lowz K

  • @3ombieautopilot
    @3ombieautopilot Рік тому

    At last we get to see Haskell Love 2021

  • @DerekMahar
    @DerekMahar Рік тому

    At 8:55, you said that the compiler didn't freak out when using an IsLabel instance and an ambiguous reference to a field name, but GHC 9.4.2 complains about an ambiguous reference when I define such an instance.

  • @noomade
    @noomade Рік тому

    Is there any chance we will get to watch these videos?

  • @designernasser
    @designernasser Рік тому

    I missed this. Is there a way to watch it now?

  • @sgomezj_
    @sgomezj_ Рік тому

    Such a knowledgeable guy

  • @noomade
    @noomade Рік тому

    any chance we can see this vid?

  • @jonaskoelker
    @jonaskoelker 2 роки тому

    One may note that wordle is 26-color mastermind with a whitelist of guesses and solutions.

  • @pinakinchaudhari95
    @pinakinchaudhari95 2 роки тому

    from the recent experience with some of these libraries i am finding DL4J more useful as compared to other as well as more functional. DJL has great document but still makes it very difficult to follow if you are working on very different data source. or having complex structure etc.

  • @mhhilpert1342
    @mhhilpert1342 2 роки тому

    What about job dependencies? As long as each job can run self-sustaining, it's no problem. But what if a job should only run if another job is finished? And what if the rules are not that simple, e.g. do not start job A if there is at least another job B has a specific parameter value?

  • @NaveenSiddareddy
    @NaveenSiddareddy 2 роки тому

    "all nodes exist". nice idea