Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Guide: Gabriel Gonzalez #7

Open
Gabriella439 opened this issue Sep 1, 2016 · 19 comments
Open

Guide: Gabriel Gonzalez #7

Gabriella439 opened this issue Sep 1, 2016 · 19 comments

Comments

@Gabriella439
Copy link

I'm probably one of the biggest Haskell fanboys alive: I blog about Haskell and also maintain several Haskell packages. I believe mathematics is the future of programming and nothing delights me more than elegant solutions to practical problems.

The best presentations I give are in subjects that I'm only just beginning to learn, because I explain things better to others when I approach them with a beginner's eyes. Some candidate subjects that I've just begun learning where I have cool new things to share are:

  • APIs for data science
  • high-performance lambda calculus evaluators
  • high-performance algorithms based on succinct data structures
  • game programming
  • event sourcing

However, I'm also happy to revisit topics that I've blogged or presented about before, such as:

Please suggest any topics you are interested in, even if they are not listed above.

@jethrolarson
Copy link

I'm interested in techniques for doing high performance game programming without loosing the FP goodness.

@pazthor
Copy link

pazthor commented Sep 2, 2016

I'm interesting in the relevance of category theory to programming (I beginner on FP ) .

@l-d-s
Copy link

l-d-s commented Sep 2, 2016

I won't be attending, but am very interested in your thoughts on APIs for data science.

I'm a big fan of

  • the dplyr and tidyr interfaces to relational/tabular data in R (which I use very regularly), and
  • the idea of LINQ (which I don't use, but AFAIK is extremely close in spirit to GHC's monad comprehensions extension).

I've often wondered how dplyr and tidyr-like APIs for munging data tables might work in Haskell (especially in ghci -- most of my work is done interactively or in notebooks).

The biggest difficulty seems to be the one that F#'s "type providers" aim to solve ("Object-Relational Mapping", I believe). Could Haskell get something like this without TH or dependent types?

See also: this Reddit comment.

@argumatronic
Copy link

I am quite curious about the APIs for data science, personally.

@mudphone
Copy link

mudphone commented Sep 7, 2016

Throwing in my vote for data science and game programming.

@haroldcarr
Copy link

Interested (in the listed order):

  • the relevance of category theory to programming
  • total functional programming
  • high-performance algorithms based on succinct data structures
  • composable folds
  • shell scripting in Haskell

@serras
Copy link

serras commented Sep 14, 2016

I would really like to hear about event sourcing. It seems like a good match for FP, but I have never had the chance to hear how to mix both successfully in a project.

@rezalesmana
Copy link

"high-performance algorithms based on succinct data structures" or "event sourcing" is the topic that will be great to learn about. Hopefully can make it to the winter retreat 2017.

@purefunctions
Copy link

Shell scripting in Haskell, especially for those ones that you only look at once in a while and want it easy to be maintainable!

@nomicflux
Copy link

I'll put in yet another vote for APIs for data science.

@ErrorNullPointer
Copy link

I vote for "APIs for data science"

@LambdaMathematician
Copy link

+1 Relevance of category theory to programming

@Gabriella439
Copy link
Author

Okay, so the final tally (using approval voting) is:

  • Data science - 12 votes
  • Relevance of category theory to programming - 8 votes
  • Event sourcing - 6 votes
  • Shell scripting - 4 votes
  • Game programming - 3 votes
  • Succinct data structures - 3 votes
  • Total functional programming - 2 votes
  • Composable folds - 2 votes

I've been informed that I can split the 2 hour session into several sessions so what I will do is:

  • 1 hour session on "relevance of category theory to programming"
  • 1 hour session on "data science APIs"

I feel that these two topics complement each other nicely because I would like to tie in data science APIs to category theory anyway

If nobody objects then I'll proceed to write up the descriptions for those two sessions

@purefunctions
Copy link

That sounds good Gabriel!

Would you also be available outside of these talks to guide us on / talk about shell scripting? I’m interested in using Haskell for shell scripting and related areas.

From: Gabriel Gonzalez [mailto:notifications@github.com]
Sent: Thursday, November 10, 2016 9:27 AM
To: lambdaconf/winter-retreat-2017 winter-retreat-2017@noreply.github.com
Cc: Siva Jayaraman siva@virtuosic.net; Comment comment@noreply.github.com
Subject: Re: [lambdaconf/winter-retreat-2017] Guide: Gabriel Gonzalez (#7)

Okay, so the final tally (using approval votinghttps://en.wikipedia.org/wiki/Approval_voting) is:

  • Data science - 12 votes
  • Relevance of category theory to programming - 8 votes
  • Event sourcing - 6 votes
  • Shell scripting - 4 votes
  • Game programming - 3 votes
  • Succinct data structures - 3 votes
  • Total functional programming - 2 votes
  • Composable folds - 2 votes

I've been informed that I can split the 2 hour session into several sessions so what I will do is:

  • 1 hour session on "relevance of category theory to programming"
  • 1 hour session on "data science APIs"

I feel that these two topics complement each other nicely because I would like to tie in data science APIs to category theory anyway

If nobody objects then I'll proceed to write up the descriptions for those two sessions


You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com//issues/7#issuecomment-259753039, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AV_jD1H6HbInjBsdsL2lawea3NLWFxqsks5q81PpgaJpZM4JzJk9.

@serras
Copy link

serras commented Nov 10, 2016

It seems that I (#2) will also talk about category theory, but as an introductory course. Maybe we can arrange it in such a way that people get the most from both your talk and my course: ensuring that I cover any notion that you have as prerequisite for your talk, showing the relevance of CT on the last day, and that kind of things.

@Gabriella439
Copy link
Author

My talk focuses more on the relevance and less on advanced concepts. I doubt I will cover anything fancier than categories/monoids, functors, and monads. I will be covering things like how to use category theory to organize proofs and how to simplify APIs and software architecture. You can get an idea of what the first talk will about by reading these posts:

However, I would like to keep the talk self-contained

@serras
Copy link

serras commented Nov 14, 2016

That sounds great! I completely understand that you want to keep it self-contained. But I still think that the schedule can be arranged so that people who are not as familiar with CT can go to the introduction and then have a better base to understand your talk.

@Gabriella439
Copy link
Author

Alright, so the final formal descriptions will be:

Session 1 - Applied category theory and abstract algebra (60 minutes)

The Haskell programming language resembles "executable math" and this mathematical connection challenges us to rethink how we organize our code. We can tackle software complexity by reusing standard interfaces that originate in the fields of category theory and abstract algebra. These interfaces improve code reuse for end-users, and also simplify correctness proofs for library authors.

You should attend this session if you've ever pondered questions such as:

  • "What is the point of category theory?"
  • "Can correctness proofs scale to larger software projects?"
  • "What is the connection between math and programming?"

This session assumes basic Haskell programming literacy (specifically familiarity with type classes) but does not assume a mathematical background so you don't have to know any category theory. I will use Haskell code to motivate and explain all concepts. All examples will be real code that compiles and there won't be any mathematical notation, category theory diagrams, or pseudo-code.

By the end of this session you should understand how to better apply these standard mathematical interfaces in your own code and also understand basic techniques for scaling correctness proofs.

Session 2 - Data science APIs in Haskell (60 minutes)

Data science is one programming area where Haskell's data-driven approach should be a natural fit but hasn't quite taken off just yet. However, the language has recently made several leaps and bounds in this area and most of the lower-level machinery is there, although perhaps not as slick as their counterparts in more mature languages.

This session surveys the existing ecosystem of libraries and tools in order to offer some suggestions for how we might be able to improve upon the user experience. This builds upon my first "Applied category theory and abstract algebra" session by taking inspiration from mathematics to design user-friendly interfaces. However, the other session is not necessarily a prerequisite and familiarity with Haskell's Typeclassopedia would also suffice to follow along.

You should attend this session if you are interested in using Haskell for data science or you are interested in authoring a library or tool of your own. By the end of this session, you should be better equipped to use Haskell for small-scale data science (but not necessarily big data).

cc: @jdegoes

@alexi21
Copy link

alexi21 commented Dec 4, 2016

Sounds great, looking forward to it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

15 participants