RFC: GSoC proposal: Improve the Hackage login system

Hello Cafe, Like Matthew and Mateusz, I'm submitting a GSoC proposal as well! The initial draft is here: https://docs.google.com/document/d/1bcDiudULtaz3NFCqTHXD2WU6Ighsm199D7ojfS8q... It's not a long read, so please do. Any comments, suggestions, &c would be appreciated greatly. If all is well, I will submit this in 48 hours. As an aside: would anyone like to mentor this project? Again, apologies for the late response. Thanks Chris

On 18/03/14 08:30, Chris Wong wrote:
Hello Cafe,
Like Matthew and Mateusz, I'm submitting a GSoC proposal as well!
The initial draft is here: https://docs.google.com/document/d/1bcDiudULtaz3NFCqTHXD2WU6Ighsm199D7ojfS8q...
It's not a long read, so please do. Any comments, suggestions, &c would be appreciated greatly. If all is well, I will submit this in 48 hours.
As an aside: would anyone like to mentor this project? Again, apologies for the late response.
Thanks Chris _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Perhaps considering improving your ‘why you think you're the best person for this’ because I know there is another student submitting the proposal about the same topic! -- Mateusz K.

On Tue, Mar 18, 2014 at 11:04 PM, Mateusz Kowalczyk
Perhaps considering improving your ‘why you think you're the best person for this’ because I know there is another student submitting the proposal about the same topic!
Sure thing. I've rewritten that paragraph; it should be better now. Out of curiosity, who's the other student? A cursory search shows nothing.
-- Mateusz K. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

On 18/03/14 22:14, Chris Wong wrote:
On Tue, Mar 18, 2014 at 11:04 PM, Mateusz Kowalczyk
wrote: Perhaps considering improving your ‘why you think you're the best person for this’ because I know there is another student submitting the proposal about the same topic!
Sure thing. I've rewritten that paragraph; it should be better now.
Out of curiosity, who's the other student? A cursory search shows nothing.
-- Mateusz K. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Mateusz Lenik, he goes by ‘mlen’ on IRC. I have his proposal but I'm unsure whether I can post it as the gist is marked as private. -- Mateusz K.

On Wed, Mar 19, 2014 at 11:20:05AM +0000, Mateusz Kowalczyk wrote:
On 18/03/14 22:14, Chris Wong wrote:
On Tue, Mar 18, 2014 at 11:04 PM, Mateusz Kowalczyk
wrote: Perhaps considering improving your ‘why you think you're the best person for this’ because I know there is another student submitting the proposal about the same topic!
Sure thing. I've rewritten that paragraph; it should be better now.
Out of curiosity, who's the other student? A cursory search shows nothing.
-- Mateusz K. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Mateusz Lenik, he goes by ‘mlen’ on IRC. I have his proposal but I'm unsure whether I can post it as the gist is marked as private.
Hello everyone, Here's the URL. I mark most of my gists private, as they have no use for most of the people. This proposal is not private in any way. https://gist.github.com/mlen/543c95cac276a57fee39 I already contacted Chris in private to talk about the case. Best, Mateusz
-- Mateusz K. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

On Thu, Mar 20, 2014 at 12:35 AM, Mateusz Lenik
On Wed, Mar 19, 2014 at 11:20:05AM +0000, Mateusz Kowalczyk wrote:
On 18/03/14 22:14, Chris Wong wrote:
On Tue, Mar 18, 2014 at 11:04 PM, Mateusz Kowalczyk
wrote: Perhaps considering improving your ‘why you think you're the best person for this’ because I know there is another student submitting the proposal about the same topic!
Sure thing. I've rewritten that paragraph; it should be better now.
Out of curiosity, who's the other student? A cursory search shows nothing.
-- Mateusz K. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Mateusz Lenik, he goes by ‘mlen’ on IRC. I have his proposal but I'm unsure whether I can post it as the gist is marked as private.
Hello everyone,
Here's the URL. I mark most of my gists private, as they have no use for most of the people. This proposal is not private in any way. https://gist.github.com/mlen/543c95cac276a57fee39
Thanks for sharing. Since your proposal is quite comprehensive, I've opted to change mine instead. I'm going to focus on the UI -- hopefully that doesn't overlap with (what seems to be) backend work. Chris

On 20/03/14 09:10, Chris Wong wrote:
On Thu, Mar 20, 2014 at 12:35 AM, Mateusz Lenik
wrote: On Wed, Mar 19, 2014 at 11:20:05AM +0000, Mateusz Kowalczyk wrote:
On 18/03/14 22:14, Chris Wong wrote:
On Tue, Mar 18, 2014 at 11:04 PM, Mateusz Kowalczyk
wrote: Perhaps considering improving your ‘why you think you're the best person for this’ because I know there is another student submitting the proposal about the same topic!
Sure thing. I've rewritten that paragraph; it should be better now.
Out of curiosity, who's the other student? A cursory search shows nothing.
-- Mateusz K. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Mateusz Lenik, he goes by ‘mlen’ on IRC. I have his proposal but I'm unsure whether I can post it as the gist is marked as private.
Hello everyone,
Here's the URL. I mark most of my gists private, as they have no use for most of the people. This proposal is not private in any way. https://gist.github.com/mlen/543c95cac276a57fee39
Thanks for sharing. Since your proposal is quite comprehensive, I've opted to change mine instead.
I'm going to focus on the UI -- hopefully that doesn't overlap with (what seems to be) backend work.
Chris
I've read your new proposal and I think you'll definitely need more solid specification on what you aim to do. An example is that you state 3 things for the ‘rewrite the homepage’ aim but the goals are ’rewrite/reword something, move an advertisement, add some links’. While these are perfectly fine goals, they do not fit your timescale at all! Just this aim alone you schedule for nearly a month! It sounds that it could be done in a day instead. By the way, I don't think that moving the advertisement is such a high priority that it needs to go into a proposal: if they're funding Hackage and want their ad on the front page, I don't see the problem. Existing Haskellers will rarely look at the front page and new ones will probably see it a few times. I doubt anyone would click on the About without a good reason to. If you have more things in mind then you should definitely write them down. Your specification of the search work is very lacking too. You don't say what's wrong with current search and how you aim to improve it. I believe Duncan Coutts was working on better search results by using better heuristics. I don't know the details but it's almost certainly worthwhile to contact him about it. Here are two things that I think need attention interface-wise. Note that even with these, you'll probably need to state more stuff: * Better report presentation: at the moment we (sometimes) can get a report log from Hackage about the build status of a package. At the moment one has to manually change the URL to then get to dumped ‘Show’ instance of a Cabal data type. Buttons should be added and the report should be presented in a much nicer way. Maybe even we could have a small indicator whether the build worked or not on Hackage. * Hackage exposes an API that lets us work with it. You can see it at [1]. While it's nice to have, there's functionality there that's only available through the API itself when it really should also be available through friendlier means on the site itself. A big thing that comes to my mind is the documentation uploads. If you search around the web, you'll see that uploading own documentation for a package is quite a mysterious process. It'd be much easier if we had a button which will take us to an upload page which also contains instructions for properly generating the documentation. Implementing a documentation checker (for example to check that cross-package links aren't broken, aren't pointing to local things, checks that index page works, all the common mistakes) could be a side project. Lastly, there are ~90 open bugs on the Hackage issue tracker[2]. Many of those are fairly easy and of pretty great benefit to Hackage users (a.k.a. pretty much everyone). Things like #74[3] could be implemented with relative ease and I feel that if you could propose to close some specific tickets and work on others, your proposal would be much, much stronger. Frankly, I think that moving the ad from the front page is much lower priority than many of the tickets there ;) I actually thing that if one were to concentrate on the tickets themselves and make (some of) the interface work a side goal, nearly all the tickets could be fixed. Of course some tickets are best fixed with interface changes so it's not like that's going on the back-burner. A friendly reminder that there are only about 32 hours to get your proposal in so make sure you don't miss it! Oh, I nearly forgot, did you find a mentor for this new project you're proposing? [1]: http://hackage.haskell.org/api [2]: https://github.com/haskell/hackage-server/issues [3]: https://github.com/haskell/hackage-server/issues/74 -- Mateusz K.

Wow, thank you for the comprehensive critique! I'll respond to your
points individually.
On Thu, Mar 20, 2014 at 11:26 PM, Mateusz Kowalczyk
I've read your new proposal and I think you'll definitely need more solid specification on what you aim to do. An example is that you state 3 things for the ‘rewrite the homepage’ aim but the goals are ’rewrite/reword something, move an advertisement, add some links’. While these are perfectly fine goals, they do not fit your timescale at all! Just this aim alone you schedule for nearly a month! It sounds that it could be done in a day instead. By the way, I don't think that moving the advertisement is such a high priority that it needs to go into a proposal: if they're funding Hackage and want their ad on the front page, I don't see the problem. Existing Haskellers will rarely look at the front page and new ones will probably see it a few times. I doubt anyone would click on the About without a good reason to.
Agreed. On looking further into the Hackage issues list, I found there's a lot more to be done.
Your specification of the search work is very lacking too. You don't say what's wrong with current search and how you aim to improve it. I believe Duncan Coutts was working on better search results by using better heuristics. I don't know the details but it's almost certainly worthwhile to contact him about it.
Sure. He seems to be the go-to guy for everything Cabal/Hackage, so I agree it's a good idea to talk to him.
Here are two things that I think need attention interface-wise. Note that even with these, you'll probably need to state more stuff:
* Better report presentation: at the moment we (sometimes) can get a report log from Hackage about the build status of a package. At the moment one has to manually change the URL to then get to dumped ‘Show’ instance of a Cabal data type. Buttons should be added and the report should be presented in a much nicer way. Maybe even we could have a small indicator whether the build worked or not on Hackage.
* Hackage exposes an API that lets us work with it. You can see it at [1]. While it's nice to have, there's functionality there that's only available through the API itself when it really should also be available through friendlier means on the site itself. A big thing that comes to my mind is the documentation uploads. If you search around the web, you'll see that uploading own documentation for a package is quite a mysterious process. It'd be much easier if we had a button which will take us to an upload page which also contains instructions for properly generating the documentation. Implementing a documentation checker (for example to check that cross-package links aren't broken, aren't pointing to local things, checks that index page works, all the common mistakes) could be a side project.
I admit -- I didn't even know Hackage had either of these before today, when I saw them on your blog ;). Exposing them would be great.
Lastly, there are ~90 open bugs on the Hackage issue tracker[2]. Many of those are fairly easy and of pretty great benefit to Hackage users (a.k.a. pretty much everyone). Things like #74[3] could be implemented with relative ease and I feel that if you could propose to close some specific tickets and work on others, your proposal would be much, much stronger. Frankly, I think that moving the ad from the front page is much lower priority than many of the tickets there ;) I actually thing that if one were to concentrate on the tickets themselves and make (some of) the interface work a side goal, nearly all the tickets could be fixed. Of course some tickets are best fixed with interface changes so it's not like that's going on the back-burner.
Thanks for the suggestion -- the proposal pretty much writes itself now, with each issue mapping to a task in the proposal.
A friendly reminder that there are only about 32 hours to get your proposal in so make sure you don't miss it!
Bring it on. It's Friday here, so I don't need to sleep ;)
Oh, I nearly forgot, did you find a mentor for this new project you're proposing?
Not yet -- but it's not too late to do that, right? I notice the other Mateusz has asked on cabal-devel; I might follow him when I'm more awake. Chris
[1]: http://hackage.haskell.org/api [2]: https://github.com/haskell/hackage-server/issues [3]: https://github.com/haskell/hackage-server/issues/74 -- Mateusz K. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
participants (3)
-
Chris Wong
-
Mateusz Kowalczyk
-
Mateusz Lenik