Suggestions for an MSc Project?

My MSc requires a project dissertation, which is expected to take about 800 hours. I would like to work on something which is of use to the Haskell community. Any suggestions? My interests are in higher-level application programming, rather than low-level libraries or compiler hacking. (This is also the focus of my course.) I don't know whether Haskell is suitable for this (the only significant Haskell programs seem to be its own tool-set), but I had fun learning Haskell and I'd be interested in using it for my project if relevant. The details for the project's requirements are here http://www.ljmu.ac.uk/cmp/onlinemsc/students/97939.htm

John Smith
My MSc requires a project dissertation, which is expected to take about 800 hours. I would like to work on something which is of use to the Haskell community. Any suggestions?
My interests are in higher-level application programming,
What do you mean by this?
rather than low-level libraries or compiler hacking. (This is also the focus of my course.) I don't know whether Haskell is suitable for this (the only significant Haskell programs seem to be its own tool-set),
And darcs, xmonad, pandoc, agda, etc. ... (depending, of course, on your definition of "significant").
but I had fun learning Haskell and I'd be interested in using it for my project if relevant.
Have a look through the wish-list here: http://www.reddit.com/r/haskell_proposals/ -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com

On 04/07/2010 12:00, Ivan Lazar Miljenovic wrote:
My interests are in higher-level application programming, rather than low-level libraries or compiler hacking.
What do you mean by this?
Using web programming as an example, a CMS would be high-level, while a networking library would be low-level. I was thinking of having a go at a web framework, but the space seems to be filled with Happstack.
Have a look through the wish-list here: http://www.reddit.com/r/haskell_proposals/
Thanks, I had a look at the list, but none of it seems to be appropriate for a medium-length academic project with real-world benefits.

John Smith
On 04/07/2010 12:00, Ivan Lazar Miljenovic wrote:
My interests are in higher-level application programming, rather than low-level libraries or compiler hacking.
What do you mean by this?
Using web programming as an example, a CMS would be high-level, while a networking library would be low-level.
I was thinking of having a go at a web framework, but the space seems to be filled with Happstack.
And snap ;-)
Have a look through the wish-list here: http://www.reddit.com/r/haskell_proposals/
Thanks, I had a look at the list, but none of it seems to be appropriate for a medium-length academic project with real-world benefits.
Well, it depends upon what your interests are. What kind of stuff (apart from web frameworks) do you like hacking on? -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com

On 04/07/2010 13:23, Ivan Lazar Miljenovic wrote:
Well, it depends upon what your interests are. What kind of stuff (apart from web frameworks) do you like hacking on?
End-user applications, and high-level frameworks. (I'm not sure how to define high-level, I hope the CMS example gets the point across.)

John Smith
On 04/07/2010 13:23, Ivan Lazar Miljenovic wrote:
Well, it depends upon what your interests are. What kind of stuff (apart from web frameworks) do you like hacking on?
End-user applications, and high-level frameworks. (I'm not sure how to define high-level, I hope the CMS example gets the point across.)
What _kind_ of application though? "end-user application" is rather broad. For example, do you like programming maths stuff? Accounting stuff? Games? A maths example would be a Matlab-like environment (I assume that's "high-level" enough for you?). -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com

On 04/07/2010 14:13, Ivan Lazar Miljenovic wrote:
End-user applications, and high-level frameworks. (I'm not sure how to define high-level, I hope the CMS example gets the point across.)
What _kind_ of application though? "end-user application" is rather broad.
For example, do you like programming maths stuff? Accounting stuff? Games?
A maths example would be a Matlab-like environment (I assume that's "high-level" enough for you?).
All of these would be good, although there would probably have to be some kind of academic challenge for it to qualify. A Matlab clone would be a good idea, although I'm not sufficiently familiar with the maths, and that might take it out of scope. What kind of application, within these constraints, would the community be interested in?

On 4 July 2010 12:03, John Smith
On 04/07/2010 12:00, Ivan Lazar Miljenovic wrote:
My interests are in higher-level application programming, rather than low-level libraries or compiler hacking.
What do you mean by this?
Using web programming as an example, a CMS would be high-level, while a networking library would be low-level.
I was thinking of having a go at a web framework, but the space seems to be filled with Happstack.
It isn't really filled with happstack. Many of us use FastCGI or a straight web server like hyena or Snap, or salvia, etc. People keep writing web frameworks because they're unsatisfied with what's currently available. But yeah, I'd pick something more interesting than a web framework.

On 04/07/2010 13:32, Christopher Done wrote:
It isn't really filled with happstack. Many of us use FastCGI or a straight web server like hyena or Snap, or salvia, etc. People keep writing web frameworks because they're unsatisfied with what's currently available. But yeah, I'd pick something more interesting than a web framework.
A web framework would be interesting enough, if I knew what it is that people want which isn't satisfied by the incumbents.

On Sun, Jul 4, 2010 at 7:03 AM, John Smith
On 04/07/2010 12:00, Ivan Lazar Miljenovic wrote:
Have a look through the wish-list here: http://www.reddit.com/r/haskell_proposals/
Thanks, I had a look at the list, but none of it seems to be appropriate for a medium-length academic project with real-world benefits.
What about [1]? Such a graphical editor could be used, for example, for an EDSL. =D Cheers, [1] http://www.reddit.com/r/haskell_proposals/comments/9n8nc/write_a_scratchlike... -- Felipe.

On 04/07/2010 15:44, Felipe Lessa wrote:
What about [1]? Such a graphical editor could be used, for example, for an EDSL. =D
Cheers,
[1] http://www.reddit.com/r/haskell_proposals/comments/9n8nc/write_a_scratchlike...
Already exists :-) http://mypage.iu.edu/~gdweber/software/sifflet/

Don't you have your own ideas? I have a long line of projects *I'd*
want to work on if I had the time.
On 4 July 2010 20:38, John Smith
On 04/07/2010 15:44, Felipe Lessa wrote:
What about [1]? Such a graphical editor could be used, for example, for an EDSL. =D
Cheers,
[1] http://www.reddit.com/r/haskell_proposals/comments/9n8nc/write_a_scratchlike...
Already exists :-) http://mypage.iu.edu/~gdweber/software/sifflet/
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

None of the frameworks in http://www.haskell.org/haskellwiki/Applications_and_libraries/GUI_libraries#... appear to have a working build in http://hackage.haskell.org/packages/archive/pkg-list.html#cat:gui, except wxFruit. Is there a need that isn't being met for "high-level" GUI libraries? Another suggestion I received in a private reply is to work on data persistence, but it would be tough to evaluate all the dozens of entries in http://hackage.haskell.org/packages/archive/pkg-list.html#cat:database. Is there some database need that isn't being met? I've never done serious Haskell programming (I've played with it a little while doing lots of C# at work), so I'm hoping that more experienced Haskell programmers could identify a potentially useful contribution.

On Mon, Jul 5, 2010 at 1:39 AM, John Smith
None of the frameworks in http://www.haskell.org/haskellwiki/Applications_and_libraries/GUI_libraries#... to have a working build in http://hackage.haskell.org/packages/archive/pkg-list.html#cat:gui, except wxFruit. Is there a need that isn't being met for "high-level" GUI libraries?
Another suggestion I received in a private reply is to work on data persistence, but it would be tough to evaluate all the dozens of entries in http://hackage.haskell.org/packages/archive/pkg-list.html#cat:database. Is there some database need that isn't being met?
I've never done serious Haskell programming (I've played with it a little while doing lots of C# at work), so I'm hoping that more experienced Haskell programmers could identify a potentially useful contribution.
Have you looked over Don's list of suggested summer of code projects? These were the suggested ones by Don: http://donsbot.wordpress.com/2010/04/01/the-8-most-important-haskell-org-gso... Here are the ones that were actually accepted: http://donsbot.wordpress.com/2010/04/26/the-7-haskell-projects-in-the-google... It seems like anything from the original list that isn't being tackled would count as an important contribution. Summer of Code is probably a smaller scope than your MSc, but that doesn't strike me as a problem. Typically in any software project, once you start working on it you can easily find room to expand it in useful directions. Similarly with the need for a research component. If you get creative you should be able to find some aspect that others haven't investigated. One thing I've been wanting lately is a good client / server, meeting scheduling / calendaring / time tracking software. Something along the lines of Meeting Maker or iCal, but open source, extensible, and with the polish of Google Calendar. I've been thinking about it a lot and I have several other usability ideas to throw in to make it really shine. I keep meaning to post my requirements on my blog. Maybe I'll get to that this week. Another thing I'd like, is to augment GHC with a type level debugger. One simple idea I had for that was to have GHC dump out the source code it's type checking with the types it has figured out (and the ones that don't type check, expect vs. inferred) annotated at every term and subterm. This has some technical hurdles, but mainly I think it has usability concerns to address. For example, how to let the user zoom in to the smallest term and see the type while also letting them select larger terms and see the type, all without being overwhelmed. Something that novices can make sense of but experts enjoy using too. Here is another idea. I'd like to see more integration between personal wikis (ones you run on localhost) and email systems. Imagine that an email comes into your inbox and then you can annotate the email by adding notes, sort of like track changes in Word. The email + notes stays in your inbox. It would be nice if you could bookmark those emails too in your web browser or similar. This would be handy for me as I sometimes reference specific emails for a long time and I often want to make notes as I reference them. Currently I paste the email into gitit and go for there. A universal interface / adapter for version control systems would be nice, but I think this one needs more research. We currently have a problem with vcs that each one speaks its own language. To me this is analogous to only being able to email people who use the same email client as you. Quite suboptimal. I hope that helps, Jason

Thanks! A lot of good ideas, although a GUI or database framework look like the most promising possibilities at the moment. I like the email/wiki idea, although it may not meet the University's academic requirements. (Would probably just be an email client running on top of a Wiki.) It may also require a decent GUI/persistence framework, so this would be a good project to bring both of these together! Any further comments from those with experience in GIU/databases on Haskell? On 05/07/2010 23:51, Jason Dagit wrote:
Have you looked over Don's list of suggested summer of code projects?
These were the suggested ones by Don: http://donsbot.wordpress.com/2010/04/01/the-8-most-important-haskell-org-gso...
Here are the ones that were actually accepted: http://donsbot.wordpress.com/2010/04/26/the-7-haskell-projects-in-the-google...
It seems like anything from the original list that isn't being tackled would count as an important contribution. Summer of Code is probably a smaller scope than your MSc, but that doesn't strike me as a problem. Typically in any software project, once you start working on it you can easily find room to expand it in useful directions. Similarly with the need for a research component. If you get creative you should be able to find some aspect that others haven't investigated.
One thing I've been wanting lately is a good client / server, meeting scheduling / calendaring / time tracking software. Something along the lines of Meeting Maker or iCal, but open source, extensible, and with the polish of Google Calendar. I've been thinking about it a lot and I have several other usability ideas to throw in to make it really shine. I keep meaning to post my requirements on my blog. Maybe I'll get to that this week.
Another thing I'd like, is to augment GHC with a type level debugger. One simple idea I had for that was to have GHC dump out the source code it's type checking with the types it has figured out (and the ones that don't type check, expect vs. inferred) annotated at every term and subterm. This has some technical hurdles, but mainly I think it has usability concerns to address. For example, how to let the user zoom in to the smallest term and see the type while also letting them select larger terms and see the type, all without being overwhelmed. Something that novices can make sense of but experts enjoy using too.
Here is another idea. I'd like to see more integration between personal wikis (ones you run on localhost) and email systems. Imagine that an email comes into your inbox and then you can annotate the email by adding notes, sort of like track changes in Word. The email + notes stays in your inbox. It would be nice if you could bookmark those emails too in your web browser or similar. This would be handy for me as I sometimes reference specific emails for a long time and I often want to make notes as I reference them. Currently I paste the email into gitit and go for there.
A universal interface / adapter for version control systems would be nice, but I think this one needs more research. We currently have a problem with vcs that each one speaks its own language. To me this is analogous to only being able to email people who use the same email client as you. Quite suboptimal.
I hope that helps, Jason

Hi John,
As for the academic requirements, try formulating a question which is
answered by the program you write, for instance:
Is it possible to write an efficient [YOUR PROJECT] in a purely
functional setting?
Can the advantages of [PORTED UTILITY] be utilized without relying on
code with side effects?
The question needs to be so specific it isn't answered by any
existing application. You may also have follow-up question to this
basic yes/no question such as "How does this impact performance?".
When you know more exactly what you plan to do I'd be happy to help
you find academic aspects of it.
/Jonas
On 6 July 2010 08:22, John Smith
Thanks! A lot of good ideas, although a GUI or database framework look like the most promising possibilities at the moment. I like the email/wiki idea, although it may not meet the University's academic requirements. (Would probably just be an email client running on top of a Wiki.) It may also require a decent GUI/persistence framework, so this would be a good project to bring both of these together!
Any further comments from those with experience in GIU/databases on Haskell?
On 05/07/2010 23:51, Jason Dagit wrote:
Have you looked over Don's list of suggested summer of code projects?
These were the suggested ones by Don:
http://donsbot.wordpress.com/2010/04/01/the-8-most-important-haskell-org-gso...
Here are the ones that were actually accepted:
http://donsbot.wordpress.com/2010/04/26/the-7-haskell-projects-in-the-google...
It seems like anything from the original list that isn't being tackled would count as an important contribution. Summer of Code is probably a smaller scope than your MSc, but that doesn't strike me as a problem. Typically in any software project, once you start working on it you can easily find room to expand it in useful directions. Similarly with the need for a research component. If you get creative you should be able to find some aspect that others haven't investigated.
One thing I've been wanting lately is a good client / server, meeting scheduling / calendaring / time tracking software. Something along the lines of Meeting Maker or iCal, but open source, extensible, and with the polish of Google Calendar. I've been thinking about it a lot and I have several other usability ideas to throw in to make it really shine. I keep meaning to post my requirements on my blog. Maybe I'll get to that this week.
Another thing I'd like, is to augment GHC with a type level debugger. One simple idea I had for that was to have GHC dump out the source code it's type checking with the types it has figured out (and the ones that don't type check, expect vs. inferred) annotated at every term and subterm. This has some technical hurdles, but mainly I think it has usability concerns to address. For example, how to let the user zoom in to the smallest term and see the type while also letting them select larger terms and see the type, all without being overwhelmed. Something that novices can make sense of but experts enjoy using too.
Here is another idea. I'd like to see more integration between personal wikis (ones you run on localhost) and email systems. Imagine that an email comes into your inbox and then you can annotate the email by adding notes, sort of like track changes in Word. The email + notes stays in your inbox. It would be nice if you could bookmark those emails too in your web browser or similar. This would be handy for me as I sometimes reference specific emails for a long time and I often want to make notes as I reference them. Currently I paste the email into gitit and go for there.
A universal interface / adapter for version control systems would be nice, but I think this one needs more research. We currently have a problem with vcs that each one speaks its own language. To me this is analogous to only being able to email people who use the same email client as you. Quite suboptimal.
I hope that helps, Jason
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

On Sun, Jul 4, 2010 at 10:43 AM, John Smith
My MSc requires a project dissertation, which is expected to take about 800 hours. I would like to work on something which is of use to the Haskell community. Any suggestions?
I'd love to see something like git-gui for darcs. David.

Hi John I am involved in a research project of the Open University in the netherlands. We are working on a tool suite for Rule Based application developement. This is a 100% Haskell project, with lots of oppertunities for a good MSc project, depending on your specific interests. I'd be happy to talk to you about the possibilities. If you are interested, send me a mail with details how I could get in touch: han <dot> joosten <at> atosorigin <dot> com cheers Han. -- View this message in context: http://old.nabble.com/Suggestions-for-an-MSc-Project--tp29067884p29100221.ht... Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.

Excerpts from John Smith's message of Sun Jul 04 10:43:17 +0200 2010:
My MSc requires a project dissertation, which is expected to take about 800 hours. I would like to work on something which is of use to the Haskell community. Any suggestions?
IMHO You'd make many Haskellers happy if you'd start writing something like db4o in and for Haskell. Its like a transactional database operating on objects. Marc Weber
participants (9)
-
Christopher Done
-
David Virebayre
-
Felipe Lessa
-
Han Joosten
-
Ivan Lazar Miljenovic
-
Jason Dagit
-
John Smith
-
Jonas Almström Duregård
-
Marc Weber