visortelle / haskell-spotlight

VSCode extension for Haskell
https://marketplace.visualstudio.com/items?itemName=visortelle.haskell-spotlight
MIT License
108 stars 3 forks source link

πŸ“ Notes and Ideas #1

Open visortelle opened 2 years ago

visortelle commented 2 years ago

Ideas

TODOs

TODOs after MVP launch

🎩

Tech debt

visortelle commented 2 years ago

From Gershom B in Slack:

also related though: https://github.com/haskell/hackage-server/issues/986

986 Implement PackageRank from lib.rs

A very impressive amount of research and thought here: https://github.com/rust-lang/rfcs/blob/master/text/1824-crates.io-default-ranking.md It would be useful to add this as an explicit metric to sort by. :thinking_face: https://github.com/haskell/hackage-server|haskell/hackage-serverhaskell/hackage-server | Oct 24th, 2021 | Added by GitHub

visortelle commented 2 years ago

Haddock

On JSON format:

visortelle commented 2 years ago

Hackage

visortelle commented 2 years ago

Some article: https://nunoalexandre.com/2018/02/04/redesigning-haskell-docs

Single Liberal Unified Registry of Haskell Packages

https://mail.haskell.org/pipermail/haskell-cafe/2018-January/128472.html https://github.com/simonmar/ecosystem-proposals/blob/slurp/proposals/0000-slurp.rst https://github.com/tfausak/slurp https://github.com/haskell/ecosystem-proposals/pull/4 https://www.reddit.com/r/haskell/comments/7s58id/slurp_a_single_liberal_unified_registry_of/

ocramz commented 2 years ago

Idea : make the suggested searches clickable, such that one can look them up without typing

visortelle commented 2 years ago

@ocramz, thank you. It's a nice little thing improvement.

Fixed here: https://github.com/visortelle/hackage-ui/commit/ad61c6fa8e6bac93f0b995ccb733b945fdf36259

Please check, is it what you meant.

Edit: one more commit on it: d6d07cc36ae319d63b0afaea70b90027c464dd20

Now it works this way:

https://user-images.githubusercontent.com/9302460/148688145-7fd8e69b-e8cb-44d5-b124-7da69764de08.mov

dpwiz commented 2 years ago

What about readmes and chagelogs?

visortelle commented 2 years ago

@dpwiz will add soon.

Martinsos commented 2 years ago

A bit of feedback (in the right place I hope): When searching for a function by name/signature, I find it a bit problematic that initial result view doesn't show the package from which it originates. I know I can expand, but that feels a bit tedious and actually gives me too much information. I would love to just see the name of the package next to the each function.

Specific case: I was looking for withObject function from Aeson package, and I wrote it into the search bar, but then I wasn't sure which one to pick. But maybe this is a bad use case because I should have gone to Aeson package and tried to find that function there? Still, that would require some digging and searching it like this sounds much nicer.

Hope this helps, but certainly take with a grain of salt!

visortelle commented 2 years ago

@Martinsos I plan to add scoped search and fuzzy text filtering in found items in further releases.

Hope, it will solve such use cases as this one.

Basing on other plans in my backlog, I think it will took about two weeks.

visortelle commented 2 years ago

Consider an idea πŸ’‘

Writing all these articles seems like quite a big amount of work. I can prepare a list first, then start with a brief article each day. More experienced folks can review it.

Maybe it makes sense to take http://dev.stephendiehl.com/hask/ as a basis if the author doesn't mind.

Now it's just an idea. I'm not going to start it tomorrow.

dpwiz commented 2 years ago

Create a list of "scary" scream Haskell terms like Monad, Semigroup, Monoid, Applicative, etc.

So, Typeclassopedia?

For each term, create a short overview article probably with visual illustrations, example problem, and an analogy of how this problem could be solved in JS or Java.

But with braces and semicolons...

Well, but how does that concern Hackage, the Haskell package registry?

visortelle commented 2 years ago

Well, but how does that concern Hackage, the Haskell package registry?

It doesn't. As well, as search using Hoogle or the Community section that I want to implement on the home page.

Relevant question: https://twitter.com/qnikst/status/1480529992425558017?s=20

I started the project as UI for the Hackage two-three weeks ago, but since that, I decided to switch direction toward - what features a Haskell website should have to be useful for developers on a daily basis.

I'll rename the project at some point in time.

So, Typeclassopedia?

It's a great source of information on some topics, but I see how to make the entrance experience more smooth for Haskell newcomers.

Let discuss it when I'll provide example articles for at least several topics. πŸ™‚

Martinsos commented 2 years ago

Well, but how does that concern Hackage, the Haskell package registry?

It doesn't. As well, as search using Hoogle or the Community section that I want to implement on the home page.

Relevant question: https://twitter.com/qnikst/status/1480529992425558017?s=20

I started the project as UI for the Hackage two-three weeks ago, but since that, I decided to switch direction toward - what features a Haskell website should have to be useful for developers on a daily basis.

I'll rename the project at some point in time.

So, Typeclassopedia?

It's a great source of information on some topics, but I see how to make the entrance experience more smooth for Haskell newcomers.

Let discuss it when I'll provide example articles for at least several topics. slightly_smiling_face

Does that mean that the goal is not any more to replace the existing Hackage UI? If so, that is a shame really, I was looking forward to that a lot, since it would make it much more approachable.

If instead you want to re-do the haskelll website, you should probably get in touch with people behind haskell.org (the haskell.org committee) and sync your efforts, since they are also looking into how to improve it, from what I know. Here is an example of an issue I opened there, the discussion shows which ideas they would like to address: https://github.com/haskell-infra/www.haskell.org/issues/136 .

Personal opinion on the articles -> I think the biggest problem is really writing/curating them and then organizing them, while searching through them is a much smaller problem. Once articles/materials are there, it should be easy to organize them into wiki and put a search on top of it. There already exists a Haskell wiki, however it doesn't feel modern / up to date, so it doesn't really distill a lot of confidence as a learning resource (at least to me).

It seems to me like you are really fast and capable with creating the modern UI and improving developer experience, and it would be a shame to potentially loose the change you can do due to getting stuck with writing articles, which are not an easy thing to write, especially for topics such as Monad, Applicative and similar -> education is a much bigger, separate problem, then UI and UX/DX of getting started with Haskell, I think.

I understand these opinions are highly subjective and I don't presume in any way I have the right to suggest what you should direct your passion and time into, consider it just as an alternative view that might or might not bring some useful information to your efforts.

visortelle commented 2 years ago

@Martinsos don’t worry, I won’t stuck with writing articles.

In the my initial idea comment I wrote:

Now it's just an idea. I'm not going to start it tomorrow.

I won’t start it before completing packages and docs UI.

you should probably get in touch with people behind haskell.org (the haskell.org committee) and sync your efforts, since they are also looking into how to improve it, from what I know.

Before starting a discussion on coordinating efforts and involving more people, I’d prefer to have something to show.

I established an initial contact with @myShoggoth and @bodigrim. Both are board members of the https://haskell.foundation/ I think at some point when my project will collect enough useful features, they could coordinate my efforts.

visortelle commented 2 years ago

@Martinsos I didn’t read the discussion you linked yet. On the road now. Will do today. πŸ™‚

visortelle commented 2 years ago

@Martinsos I read the discussion you linked to. Overall I agree with you about the Getting Started stuff on haskell.org.

There is no goal to replace or improve existing haskell.org. It's a separate project and if it will be useful and will take a broad adoption, maybe this topic can be raised.

Does that mean that the goal is not to replace the existing Hackage UI? If so, that is a shame really, I was looking forward to that a lot since it would make it much more approachable.

Did I ever mention that the party was canceled?

My prioritized tasks now:

Next step I see implementing Haskell playground to have the ability to make live examples in package documentation and education materials. Only after that, I'll start the first experiments with the mini-articles.

If you want to help with code or advice on some of the mentioned stuff, you are welcome. πŸ™‚

Martinsos commented 2 years ago

@visortelle sounds good! As I said, don't mind me, you should do whatever you feel you are most excited about, but since you are building this is in public I thought you could benefit from an additional opinion/perspective.

Sounds good to me, and I am really excited to see the results!

I will keep an eye on the project and if you create issues that could be taken by others I will try to find one that I can help with, if time permits.

visortelle commented 2 years ago

if you create issues that could be taken by others I will try to find one that I can help with, if time permits.

@Martinsos there is one issue that doesn't require any coding: https://github.com/visortelle/hackage-ui/issues/8