{"action":"created","issue":{"url":"https://api.github.com/repos/lambdaconf/winter-retreat-2017/issues/10","repository_url":"https://api.github.com/repos/lambdaconf/winter-retreat-2017","labels_url":"https://api.github.com/repos/lambdaconf/winter-retreat-2017/issues/10/labels{/name}","comments_url":"https://api.github.com/repos/lambdaconf/winter-retreat-2017/issues/10/comments","events_url":"https://api.github.com/repos/lambdaconf/winter-retreat-2017/issues/10/events","html_url":"https://github.com/lambdaconf/winter-retreat-2017/issues/10","id":179819115,"number":10,"title":"Guide: Daniel Spiewak","user":{"login":"djspiewak","id":752,"avatar_url":"https://avatars.githubusercontent.com/u/752?v=3","gravatar_id":"","url":"https://api.github.com/users/djspiewak","html_url":"https://github.com/djspiewak","followers_url":"https://api.github.com/users/djspiewak/followers","following_url":"https://api.github.com/users/djspiewak/following{/other_user}","gists_url":"https://api.github.com/users/djspiewak/gists{/gist_id}","starred_url":"https://api.github.com/users/djspiewak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/djspiewak/subscriptions","organizations_url":"https://api.github.com/users/djspiewak/orgs","repos_url":"https://api.github.com/users/djspiewak/repos","events_url":"https://api.github.com/users/djspiewak/events{/privacy}","received_events_url":"https://api.github.com/users/djspiewak/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2016-09-28T16:17:23Z","updated_at":"2016-12-30T00:05:13Z","closed_at":null,"body":"Hi, I'm Daniel Spiewak.  I… do a lot of Scala stuff.  I've been using Scala for almost exactly 10 years now, and have been on my FP journey for almost exactly as long.  Along the way I've worked in academia, learned a bunch of other random languages, pioneered algorithms and data structures, and acquired far more knowledge than I ever wanted on the topic of achieving performance on the JVM.\n\nIn more recent years, I've been strongly interested by the problem of building scalable abstractions.  In my view, an abstraction that imposes a serious performance cost (for some problem-specific definition of \"serious\") is not a useful abstraction.  Interesting, maybe, but not useful.  But at the same time, higher-order abstractions are incredibly helpful in structuring reasonable software for solving complex problems.  My interest is in having my cake and eating it too.  I'm never happier than when I'm writing incredibly messy, ugly, imperative code that supports a pure, lawful and safe abstraction with extremely high performance.\n\nIn less recent years, I've worked extensively in distributed systems at scale, parsing algorithms, compiler design, type theory, theory of computation, attribute grammars, distributed real-time optimistic concurrency, database design and implementation, stochastic modeling and optimization of video games, functional data structures, and even UI design and framework implementation.  I'm still interested in basically all of these things, I'm just not working on them as much of late.\n\nI'm happy to present on any of these topics, or other things that I've completely forgotten about.  Off the complete top of my head, some ideas that might be cool:\n- **Functional Concurrency**.  A deep dive into the `Task` monad's motivation and implementation, with a taste of all the amazing things we can build on top of this primitive.\n- **Parsing with Derivatives**.  Derivative parsing has had a (well deserved!) resurgence of interest lately, coinciding with the discovery that it is in fact O(n^3) with low constant factors, making it easily the simplest and most elegant practical generalized parsing algorithm.\n- **Ideal Functional Streaming**.  Describing a pie-in-the-sky ideal pure functional abstraction for performing streaming computation and modeling real-world distributed systems in a lawful and tractable fashion.\n\nOr, you know… other stuff.\n\n**Please post your suggestions for me below! Vote on ideas by using the thumbs up / thumbs down emojis. Thanks in advance for all of your feedback, and I look forward to being a guide at LambdaConf Winter Retreat 2017!**\n"},"comment":{"url":"https://api.github.com/repos/lambdaconf/winter-retreat-2017/issues/comments/269713045","html_url":"https://github.com/lambdaconf/winter-retreat-2017/issues/10#issuecomment-269713045","issue_url":"https://api.github.com/repos/lambdaconf/winter-retreat-2017/issues/10","id":269713045,"user":{"login":"djspiewak","id":752,"avatar_url":"https://avatars.githubusercontent.com/u/752?v=3","gravatar_id":"","url":"https://api.github.com/users/djspiewak","html_url":"https://github.com/djspiewak","followers_url":"https://api.github.com/users/djspiewak/followers","following_url":"https://api.github.com/users/djspiewak/following{/other_user}","gists_url":"https://api.github.com/users/djspiewak/gists{/gist_id}","starred_url":"https://api.github.com/users/djspiewak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/djspiewak/subscriptions","organizations_url":"https://api.github.com/users/djspiewak/orgs","repos_url":"https://api.github.com/users/djspiewak/repos","events_url":"https://api.github.com/users/djspiewak/events{/privacy}","received_events_url":"https://api.github.com/users/djspiewak/received_events","type":"User","site_admin":false},"created_at":"2016-12-30T00:05:13Z","updated_at":"2016-12-30T00:05:13Z","body":"## Primary: Functional Async on the JVM\r\n\r\nIn this talk, we will take a clean-slate approach to designing a reasonable abstraction for async and parallel functional programming in Scala.  We will examine some of the formal and informal foundations for such abstractions, and pay special attention to the unique and fundamental constraints imposed on us by the JVM.  We'll look at not only how to derive and implement this stuff ourselves, from scratch, for fun and profit, but also how our unicorn solution compares to the various solutions available in Scala today.\r\n\r\nBring a laptop!  If you enjoy following along as your \"speaker\" stumbles through live-coding and things that don't compile because he forgot punctuation, you're in for a treat.  Alternatively, that laptop works just as well as a means of distraction from the disaster you accidentally walked into.\r\n\r\n**Languages**: Scala, with a *touch* of Haskell and Scheme\r\n\r\n## Secondary: Fun with Parsing\r\n\r\nThis talk will take a step back and look at parsing as an abstract field.  We will walk through the conceptual weeds that lead us to various algorithms and implementations, ideas both good and bad, until we finally find ourselves rethinking things with an exciting new frontier algorithm: derivative parsing.  This talk is less about functional programming and more about \"cool algorithms and shiny fun problems\".\r\n\r\nWe're going to cover a lot of conceptual ground here.  If it works the way I hope, you should all come away with a pretty solid understanding of *every* parsing algorithm in existence.  If it doesn't work, uh… you may just come away very very confused through no fault of your own.  Which will it be?  Let's find out together!\r\n\r\n**Languages**: Whiteboard"}}
{"actor":{"display_login":"djspiewak"}}