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

Haskell performance tuning book proposal #9

Closed
wants to merge 4 commits into from
Closed

Haskell performance tuning book proposal #9

wants to merge 4 commits into from

Conversation

soupi
Copy link
Contributor

@soupi soupi commented Aug 9, 2021

Copy link
Contributor

@emilypi emilypi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First pass, it's shaping up, but I think we can really flesh this proposal out to include more detail


- Writing this book should be a **community-driven** effort
- This book should focus on writing **idiomatic Haskell** code that is fast rather than advanced state-of-the-art techniques
- The book should cover the **principles and mindset** of performant Haskell code as well as provide concrete examples of debugging and tuning the performance of a Haskell project using **case studies**
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would add to this list that the desired goals also lead to the need for the book to describe the following:

  • A modern "best-practice" toolset used to generate data for examining a program's characteristics
  • Methods for analyzing and understanding the characteristics of a program using that data. (This may be folded into "principles").

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added. Let me know what you think.

## Motivation

One motivation for this book is that it can help **drive the adoption** of Haskell in professional settings by providing knowledge regarding what to do when debugging and tuning performance is necessary, and help **improve the confidence** of practitioners and would-be practitioners.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you mind providing a little more background on the motivation here? I think it's important to talk about the historical tooling, methodologies, complaints from industry, and the road to learning that exists today, and in particular what places we can help with this book

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added a bit more background, mainly about the current learning path. I'm not so much exposed to complaints from industry so if you or @myShoggoth would like to elaborate further that'd be great.

proposals/003-perf-book.md Show resolved Hide resolved
- **Subject matter expert**(s): directing the “spirit of the book” and/or sharing knowledge with writers
- **Writer**(s): writing the content of the book
- **Reviewer**(s): providing feedback and corrections
- **Editor**(s): quality assurance for the book
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Who are these people going to be concretely? It sounds like we need to put out a call for resources

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder whether this People section is helping or hurting. That is, the HF should decide what we want to accomplish regardless of who is going to perform the work. Having known volunteers definitely reduces the expense of a project, but I don't think we should necessarily require the volunteers before agreeing that the project is worth supporting.

Copy link
Contributor Author

@soupi soupi Aug 17, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've removed this section in favor of "Help from the Haskell Foundation" which pretty much already covers the same thing. Let me know what you think.


## Timeline

## Outcomes
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Outcomes should include

  1. A shiny new book, available in and accessible via , maintained by
  2. All of the accoutrements of building the book itself (a repo + instructions is a deliverable!)
  3. Content that handles
  4. Resulting in a

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would love this section to include a description of how the community would access the book. I presume it would just be hosted on a website somewhere. But it would be nice to say.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added a few points with your feedback.

- Finding an **expert advisor** (or more than one) who could direct the “spirit” of the book
- Finding a **editor** (or more than one) and potentially paying them to ensure the quality of the text
- Paying for **design resources** for graphics and overall look and feel in case those are needed
- Asking for **feedback and/or contribution** from specific people or companies to ensure the quality and validity of the information and solutions presented in the book
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Copy link
Collaborator

@goldfirere goldfirere left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this would make for a very nice contribution to the Haskell ecosystem. Thanks @soupi for pushing this forward! :)

- **Subject matter expert**(s): directing the “spirit of the book” and/or sharing knowledge with writers
- **Writer**(s): writing the content of the book
- **Reviewer**(s): providing feedback and corrections
- **Editor**(s): quality assurance for the book
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder whether this People section is helping or hurting. That is, the HF should decide what we want to accomplish regardless of who is going to perform the work. Having known volunteers definitely reduces the expense of a project, but I don't think we should necessarily require the volunteers before agreeing that the project is worth supporting.


## Timeline

## Outcomes
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would love this section to include a description of how the community would access the book. I presume it would just be hosted on a website somewhere. But it would be nice to say.

@emilypi emilypi mentioned this pull request Aug 17, 2021
@soupi
Copy link
Contributor Author

soupi commented Aug 17, 2021

@emilypi @goldfirere thank you for the feedback. I've updated the document.

@doyougnu
Copy link
Contributor

doyougnu commented Jan 5, 2022

Hello, what is the current status of this proposal? We (the GHC dev experience team at IOHK) had some discussions of crafting a similar internal document and thought synchronizing that effort with this one would be good.

Some questions:

  1. I see this hasn't been merged yet. What are the blocking items and is it possible for me to unstick them?
  2. @soupi how do I contribute or support the effort? I'm open to even drafting the Contributing.md file and have already drafted a table of contents for our internal document. I was about to start that work before I became aware of this proposal. So I'm eager to get this unstuck.
  3. What is the best way to communicate and coordinate effort on this project?

Thanks for all your efforts!

@soupi
Copy link
Contributor Author

soupi commented Jan 5, 2022

@doyougnu As stated in the proposal, all of the material I worked on including a contribution guide, TOC, scaffolding/ci with mdbook, etc can be found in this repository.

I don't know why this proposal has stalled and hasn't been reviewed, and I'm willing to pass the baton to someone else who'd be interested in championing this proposal and effort.

@gbaz
Copy link
Collaborator

gbaz commented Jan 5, 2022

I was under the impression that the proposal was not ready for review and stalled for external reasons -- not that it was pending review by the committee. Apologies! Is this proposal ready for review then? And, if reviewed and accepted, @soupi, are you willing to be the lead on this effort, with the HF attempting to provide resources and help as best it can?

@gbaz
Copy link
Collaborator

gbaz commented Jan 5, 2022

Actually @doyougnu are you interested in being a co-lead on this, or doing so with the ghc dev exp team? If so I think that's enough to drive this forward...

@doyougnu
Copy link
Contributor

doyougnu commented Jan 5, 2022

I am interested in leading this (professionally and personally), but I don't want to give a direct confirmation until I have approval from my team lead. Should know by tomorrow :)

@soupi
Copy link
Contributor Author

soupi commented Jan 6, 2022

I wish you best of luck in case you are picking this up @doyougnu, I will be closing this proposal for now so that you are able to champion this project and create a new proposal as you see fit. Feel free to reuse this proposal and the material/infrastructure I provided if you'd like.

@soupi soupi closed this Jan 6, 2022
@doyougnu
Copy link
Contributor

doyougnu commented Jan 6, 2022

@gbaz, I will championing/shepherding this. I'll open a new proposal for this in the next few weeks after I have a good draft.

@gbaz
Copy link
Collaborator

gbaz commented Jan 6, 2022

Great news! We discussed some in our HFTT meeting yesterday some general thoughts. I encouraged people to comment on the ticket, but nobody did, so I'll convey a few overall things. First: the ability of the HF to solicit and encourage haskeller's volunteer effort exists but only goes so far. But there's necessarily genuine ability to pay for small things to smooth along a process of putting out a high-quality publication. So if the raw material is there, part of what the HF might be able to commit to vis-a-vis an HFTT is i.e. hiring a copyeditor, assistance with graphic design and formatting for publication, etc.

Also there was a concern that we encourage code that is good as well as performant -- i.e. that we not encourage unreadable code for the sake of making every last addition explicitly unboxed and unpacked, etc.

Finally, if generating the material all at once is too daunting, splitting it up and soliciting blogposts on particular topics might be a way to drive forward some of the content generation to be assembled.

None of this is to mandate what a proposal must do or not -- I just thought they were helpful ideas, each to be taken with a potential grain of salt.

@gbaz
Copy link
Collaborator

gbaz commented Feb 2, 2022

@doyougnu how's the proposal draft coming, just checking in.

@doyougnu
Copy link
Contributor

doyougnu commented Feb 3, 2022

Hey @gbaz thanks for the ping! I've started putting my notes into a proposal here, but I've really only just started due to blocking items. I lost two weeks moving from Oregon to New York (West Coast to East Coast of the US, it was a 42 hour drive!) and then lost another week due to getting started in a new city and then I had to close out this GHC merge request which took a lot longer than I anticipated.

I also want to include decent sections on working conventions and scope to outline how the project will proceed and provide a discrete list of tasks (in the spirit of @Ericson2314's comment here). I expect this to be similar in form to this project outline, but I haven't put it to paper yet.

So I have only just started! But my internal goal is to get the proposal up sometime next week for comment.

@doyougnu
Copy link
Contributor

FYI the new proposal is up: #26

I plan to reuse a lot of @soupi repo setup to initialize the book repo. But this is not done yet.

doyougnu added a commit to doyougnu/tech-proposals that referenced this pull request Feb 11, 2022
Follow up proposal to haskellfoundation#9 which stalled and never came to
fruition.

Introduction: rough draft done

fix footnotes

motivation

Goals

project plan up to and including phase 1

working conventions

timeline

Resources

some whitespace cleanup

more table of contents

phase 0 and phase 1 expansion

finished risk section

cleanup

ToC formatting

fix risk section
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

Successfully merging this pull request may close these issues.

None yet

5 participants