Re: [Haskell-cafe] [web-devel] Automatic error traces

2013-07-16 Thread Greg Weber
That's great. We should collaborate on this. I wrote the file-location
package and Michael Snoyman wrote monad-logger: both of these give file
location information. I also added command tracing to Shelly (which could
also benefit from this kind of thing) and recently released rollbar for
error notification and would like to have as much line info as possible for
that.


On Tue, Jul 16, 2013 at 5:45 AM, Alberto G. Corona wrote:

> It is important to have execution traces in case of error. specially in
> server applications that run 24/7 such are web applications
>
> Thanks to the wonderful package monadloc by Pepe Iborra, now MFlow can
> generate a complete execution trace in case of error.
>
> The control-monad-exception uses monadLoc to generate stack traces, but
> MFlow makes use of his backtracking mechanism to generate a complete
> execution trace.
>
> Here I explain what and how:
>
>
> http://haskell-web.blogspot.com.es/2013/07/automatic-error-trace-generation-in.html
>
> The MFlow version that implements this is in gitHub. Not in hackage yet.
>
> https://github.com/agocorona/MFlow
>
> I´m quite proud of it since it is one of the things closest to magic that
> I have done.
>
> Feedback?
>
> I do not want to keep MFlow as a single person development. I think that
> it has many unique and nice features not available in other languages and
> frameworks, and it can be raised to a serious exploitation level by
> the Haskell community. This will attract people working in Industrial Web
> development to Haskell thanks to the edge in expressiveness and safety
> necessary for creating industrial solutions that Haskell has over other
> languages.
>
> It uses most other Haskell web developments  blaze, wai, hamlet etc
> and there are many other things to come.
>
> monadLoc : http://hackage.haskell.org/package/monadloc
>
> --
> Alberto.
>
> ___
> web-devel mailing list
> web-de...@haskell.org
> http://www.haskell.org/mailman/listinfo/web-devel
>
>
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Shake, Shelly, & FilePath

2013-03-09 Thread Greg Weber
Shelly is using system-filepath which was created as an improvement over
using a simple String. For a build system in which you name all your files
you may not care about the upside.
If you want a version of Shelly that uses String you can try Shellish, its
predecessor. Otherwise the shim should be written for Shake to use
system-filepath.

Greg Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] default instance for IsString

2012-04-22 Thread Greg Weber
so how can I update the documentation? I asked some of the most
experienced Haskell users at the Hackathon about this, and looked
through any documentation I could find and there was nothing
indicating I could do what you sent in your last message.

On Sun, Apr 22, 2012 at 8:15 AM, Markus Läll  wrote:
> The core of it is in the GHC docs' overloaded strings section [1].
>
> It could be clearer though -- reading about defaulting in the reports,
> in the type defaulting section of GHC docs and in [1] can be a bit
> confusing.
>
> [1] 
> http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#overloaded-strings
>
> On Sun, Apr 22, 2012 at 4:54 PM, Greg Weber  wrote:
>> Thanks Markus, I think you have saved the day!
>> Even after googling for this extension and searching in the manual I
>> am still coming up pretty blank.
>> Is there somewhere I missed where this is documented or somewhere I
>> can contribute documentation?
>>
>> On Sun, Apr 22, 2012 at 4:47 AM, Markus Läll  wrote:
>>> ExtendedDefaultRules
>
>
>
> --
> Markus Läll

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] default instance for IsString

2012-04-22 Thread Greg Weber
Thanks Markus, I think you have saved the day!
Even after googling for this extension and searching in the manual I
am still coming up pretty blank.
Is there somewhere I missed where this is documented or somewhere I
can contribute documentation?

On Sun, Apr 22, 2012 at 4:47 AM, Markus Läll  wrote:
> ExtendedDefaultRules

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] GSOC Proposal 2012 : HDBC

2012-04-04 Thread Greg Weber
Hi Pranjal,

We are glad you are interested in the GSoC.
Please take a look at persistent: http://www.yesodweb.com/book/persistent
It performs queries and serialization based on Haskell records.
It also uses native drivers rather than HDBC.
I created a proposal outline [1] and there is a student submission for it [2]

[1] http://hackage.haskell.org/trac/summer-of-code/ticket/1605
[2] http://hackage.haskell.org/trac/summer-of-code/ticket/1605

Let me know if you are interested in that or need help coming up with a proposal

Thanks,
Greg Weber

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] A Modest Records Proposal

2012-04-01 Thread Greg Weber
Obviously Gregory is not familiar with Homotopy. In fact, its
isomorphism predicts that if someone named Greg is involved in a
discussion, someone named Gregory will also become involved.

Or that is what I get for responding to an e-mail without reading it
on April 1st :)

On Sun, Apr 1, 2012 at 7:40 AM, Gregory Collins  wrote:
> Whoosh? :-)
>
> On Sun, Apr 1, 2012 at 3:54 PM, Greg Weber  wrote:
>>
>> Hi Gershom,
>>
>> This sounds very interesting even if I have no idea what you are
>> talking about :)
>> Please create a proposal linked from this page:
>> http://hackage.haskell.org/trac/ghc/wiki/Records
>> The first thing you should probably do is explain the programmer's
>> point of view. That ensures that we are all going through the
>> requirements phase correctly.
>> I can assure you that haskell prime would not accept a records change
>> until it is first implemented in GHC or another Haskell compiler.
>>
>> Thanks,
>> Greg Weber
>>
>> On Sat, Mar 31, 2012 at 11:14 PM, Gershom B  wrote:
>> > The records discussion has been really complicated and confusing. But
>> > I have a suggestion that should provide a great deal of power to
>> > records, while being mostly[1] backwards-compatible with Haskell 2010.
>> > Consider this example:
>> >
>> >    data A a = A{a:a, aa::a, aaa :: a -> A (a -> a)}
>> >    data B a = B{aaa :: a -> A (a -> a), a :: A}
>> >
>> > Now what is the type of this?
>> >
>> >     a a aa = a{a = a, aaa = aa}
>> >
>> > Using standard Haskell typeclasses this is a difficult question to
>> > answer. The types of  for A and B do not unify in an obvious way.
>> > However, while they are intensionally quite distinct, they unify
>> > trivially extensionally. The obvious thing to do is then to extend the
>> > type system with extensional equality on record functions.
>> >
>> > Back when Haskell was invented, extensional equality was thought to be
>> > hard. But purity was thought to be hard too, and so were Monads. Now,
>> > we know that function existentionality is easy. In fact, if we add the
>> > Univalence Axiom to GHC[2], then this is enough to get function
>> > existensionality. This is a well-known result of Homotopy Type
>> > Theory[3], which is a well-explored approach that has existed for at
>> > least a few years and produced more than one paper[4]. Homotopy Type
>> > Theory is so sound and well understood that it has even been
>> > formalized in Coq.
>> >
>> > Once we extend GHC with homotopies, it turns out that records reduce
>> > to mere syntactic sugar, and there is a natural proof of their
>> > soundness (Appendix A). Furthermore, there is a canonical projection
>> > for any group of fields (Appendix B). Even better, we can make "."
>> > into the identity path operator, unifying its uses in composition and
>> > projection. In fact, with extended (parenthesis-free) section rules,
>> > "." can also be used to terminate expressions, making Haskell friendly
>> > not only to programmers coming from Java, but also to those coming
>> > from Prolog!
>> >
>> > After some initial feedback, I'm going to create a page for the
>> > Homotopy Extensional Records Proposal (HERP) on trac. There are really
>> > only a few remaining questions. 1) Having introduced homotopies, why
>> > not go all the way and introduce dependent records? In fact, are HERP
>> > and Dependent Extensional Records Proposal (DERP) already isomorphic?
>> > My suspicion is that HERP is isomorphic, but DERP is not. However, I
>> > can only get away with my proof using Scott-free semantics. 2) Which
>> > trac should I post this too? Given how well understood homotopy type
>> > theory is, I'm tempted to bypass GHC entirely and propose this for
>> > haskell-prime. 3) What syntax should we use to represent homotopies?
>> > See extend discussion in Appendix C.
>> >
>> > HTH HAND,
>> > Gershom
>> >
>> > [1] To be precise, 100% of Haskell 2010 programs should, usually, be
>> > able to be rewritten to work with this proposal with a minimal set of
>> > changes[1a].
>> >
>> > [1a] A minimal set of changes is defined as the smallest set of
>> > changes necessary to make to a Haskell 2010 program such that it works
>> > with this proposal. We can arrive at these changes by the following
>> > procedure: 1) Pick a change[1

Re: [Haskell-cafe] A Modest Records Proposal

2012-04-01 Thread Greg Weber
Hi Gershom,

This sounds very interesting even if I have no idea what you are
talking about :)
Please create a proposal linked from this page:
http://hackage.haskell.org/trac/ghc/wiki/Records
The first thing you should probably do is explain the programmer's
point of view. That ensures that we are all going through the
requirements phase correctly.
I can assure you that haskell prime would not accept a records change
until it is first implemented in GHC or another Haskell compiler.

Thanks,
Greg Weber

On Sat, Mar 31, 2012 at 11:14 PM, Gershom B  wrote:
> The records discussion has been really complicated and confusing. But
> I have a suggestion that should provide a great deal of power to
> records, while being mostly[1] backwards-compatible with Haskell 2010.
> Consider this example:
>
>    data A a = A{a:a, aa::a, aaa :: a -> A (a -> a)}
>    data B a = B{aaa :: a -> A (a -> a), a :: A}
>
> Now what is the type of this?
>
>     a a aa = a{a = a, aaa = aa}
>
> Using standard Haskell typeclasses this is a difficult question to
> answer. The types of  for A and B do not unify in an obvious way.
> However, while they are intensionally quite distinct, they unify
> trivially extensionally. The obvious thing to do is then to extend the
> type system with extensional equality on record functions.
>
> Back when Haskell was invented, extensional equality was thought to be
> hard. But purity was thought to be hard too, and so were Monads. Now,
> we know that function existentionality is easy. In fact, if we add the
> Univalence Axiom to GHC[2], then this is enough to get function
> existensionality. This is a well-known result of Homotopy Type
> Theory[3], which is a well-explored approach that has existed for at
> least a few years and produced more than one paper[4]. Homotopy Type
> Theory is so sound and well understood that it has even been
> formalized in Coq.
>
> Once we extend GHC with homotopies, it turns out that records reduce
> to mere syntactic sugar, and there is a natural proof of their
> soundness (Appendix A). Furthermore, there is a canonical projection
> for any group of fields (Appendix B). Even better, we can make "."
> into the identity path operator, unifying its uses in composition and
> projection. In fact, with extended (parenthesis-free) section rules,
> "." can also be used to terminate expressions, making Haskell friendly
> not only to programmers coming from Java, but also to those coming
> from Prolog!
>
> After some initial feedback, I'm going to create a page for the
> Homotopy Extensional Records Proposal (HERP) on trac. There are really
> only a few remaining questions. 1) Having introduced homotopies, why
> not go all the way and introduce dependent records? In fact, are HERP
> and Dependent Extensional Records Proposal (DERP) already isomorphic?
> My suspicion is that HERP is isomorphic, but DERP is not. However, I
> can only get away with my proof using Scott-free semantics. 2) Which
> trac should I post this too? Given how well understood homotopy type
> theory is, I'm tempted to bypass GHC entirely and propose this for
> haskell-prime. 3) What syntax should we use to represent homotopies?
> See extend discussion in Appendix C.
>
> HTH HAND,
> Gershom
>
> [1] To be precise, 100% of Haskell 2010 programs should, usually, be
> able to be rewritten to work with this proposal with a minimal set of
> changes[1a].
>
> [1a] A minimal set of changes is defined as the smallest set of
> changes necessary to make to a Haskell 2010 program such that it works
> with this proposal. We can arrive at these changes by the following
> procedure: 1) Pick a change[1b]. 2) Is it minimal? If so keep it. 3)
> are we done? If not, make another change.
>
> [1b] To do this constructively, we need an order. I suggest the lo
> mein, since noodles give rise to a free soda.
>
> [2] I haven't looked at the source, but I would suggest putting it in
> the file Axioms.hs.
>
> [3] http://homotopytypetheory.org/
>
> [4] http://arxiv.org/
>
>
> *Appendix A: A Natural Proof of the Soundness of HERP
>
> Take the category of all types in HERP, with functions as morphisms.
> Call it C. Take the category of all sound expressions in HERP, with
> functions as morphisms. Call it D. Define a full functor from C to D.
> Call it F. Define a faithful functor on C and D. Call it G. Draw the
> following diagram.
>
> F(X)F(Y)
> |          |
> |          |
> |          |
> G(X)G(Y)
>
> Define the arrows such that everything commutes.
>
>
> *Appendix B: Construction of a Canonical Projection for Any Group of Fields.
>
> 1) Take the fields along the homotopy to an n-ball

[Haskell-cafe] good lightweight web-framework like sinatra?

2012-03-21 Thread Greg Weber
WAI has CGI handlers, so you should be able to deploy a WAI-based
framework like Yesod to CGI. If you want a simple framework, you can
just use WAI directly. Scotty is a WAI framework that mimics Sinatra.

Greg Weber

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Summer of Code idea: Haskell Web Toolkit

2012-03-07 Thread Greg Weber
On Wed, Mar 7, 2012 at 11:47 AM, Alejandro Serrano Mena
 wrote:
> I agree with you that maybe this proposal is vague for a GSoC, but I don't
> think that websockets is a good option either, because not all browsers
> support them.

We already have a websockets library, but like you say it is not very
useful by itself because it may not be supported in all browsers. The
GSoC proposal is to create a library that will use appropriate
fallbacks on all browsers, which is how websockets are normally used.

>
>
> 2012/3/7 Greg Weber 
>>
>> This is obviously a great concept. However, it may not be appropriate
>> for a GSoC. The design space is far too open, and it is not clear if
>> anything in that space will end up beating plain old javascript.
>>
>> I think my proposal for an awesome websockets library [1] shows that
>> this is putting the cart before the horse. For some of the potential
>> javascript solutions, websockets is a dependency anyways. Without
>> being able to hold open a connection to the server, required server
>> interaction will be too slow.
>> Yesod has been successful by explicitly avoiding any new radical
>> paradigms, but by instead just trying to get the basics of web
>> development established correctly. Without websockets, we don't have
>> the basics down for fluid client-side interaction.
>> The groundwork for this ticket has been laid: it should be easy to
>> accomplish with time left over.
>> So we are guaranteed a clear win for the community. With the time left
>> over, a solution to the javascript problem can be attempted. But there
>> is no burden for it to be solved within the summer. Next year the
>> landscape will be more mature and we can try to come up with a solid
>> proposal for the javscript problem if the community hasn't already
>> created a solution.
>>
>> [1] http://hackage.haskell.org/trac/summer-of-code/ticket/1607
>
>

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Summer of Code idea: Haskell Web Toolkit

2012-03-07 Thread Greg Weber
This is obviously a great concept. However, it may not be appropriate
for a GSoC. The design space is far too open, and it is not clear if
anything in that space will end up beating plain old javascript.

I think my proposal for an awesome websockets library [1] shows that
this is putting the cart before the horse. For some of the potential
javascript solutions, websockets is a dependency anyways. Without
being able to hold open a connection to the server, required server
interaction will be too slow.
Yesod has been successful by explicitly avoiding any new radical
paradigms, but by instead just trying to get the basics of web
development established correctly. Without websockets, we don't have
the basics down for fluid client-side interaction.
The groundwork for this ticket has been laid: it should be easy to
accomplish with time left over.
So we are guaranteed a clear win for the community. With the time left
over, a solution to the javascript problem can be attempted. But there
is no burden for it to be solved within the summer. Next year the
landscape will be more mature and we can try to come up with a solid
proposal for the javscript problem if the community hasn't already
created a solution.

[1] http://hackage.haskell.org/trac/summer-of-code/ticket/1607

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Subject: A universal data store interface

2012-02-14 Thread Greg Weber
Hi Deian,

Thanks for bringing this to our attention - this is a neat project! It
actually looks *exactly* like persistent - I can't actually discern a
meaningful difference, although likely your internals are slightly
simpler if you only support MongoDB. If your goals are to support
multiple backends then it seems your goals are *exactly* the same as
Persistent. Lets collaborate on this off of the mail list.

The url listed on hackage for the git repo points to Stanford, not github.

Greg Weber


On Tue, Feb 14, 2012 at 11:17 AM, Deian Stefan  wrote:
> On Mon, Feb 13, 2012 at 11:52, Greg Weber  wrote:
>> That being said, I would like to have a Template Haskell interface
>> instead of just a QQ interface. The reason why we haven't bothered
>> with doing that ourselves is because the record name-spacing issue
>> makes the current QQ interface much more convenient. I am actively
>> working to solve the namespace issue. This all brings up a great point
>> though: as part of the GSoC we should create a Template Haskell
>> interface (similar to acid-state as you mention). Given the structure
>> of things that Michael has already pointed out, and that we are
>> already using Template Haskell with the DSL, this should only be a few
>> day's work.
>
> I'm joining this thread slightly late, but thought I point to a
> similar TH approach:
>
> http://hackage.haskell.org/package/structured-mongoDB
>
> The implementation is very much MongoDB-specific, but we're working on
> targeting different backends (package is on github, so we welcome other
> hackers).  Of course, some of the issues that have been
> brought up (e.g., no support for projection) still exist in
> structured-mongoDB, but our goals have been more relaxed:
> 1) provide a type-safe interface to MongoDB, 2) to avoid QQ DSL
> approach if possible, and 3) support a HaskellDB-like query interface.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] How do I get official feedback (ratings) on my GSoC proposal?

2012-02-13 Thread Greg Weber
http://hackage.haskell.org/trac/summer-of-code/report/1
There is a column 'Priority'. And there are now several unrated proposals.

On Mon, Feb 13, 2012 at 3:40 PM, Johan Tibell  wrote:
> On Mon, Feb 13, 2012 at 3:20 PM, Greg Weber  wrote:
>>
>> Other than changing the status myself, how do I get a priority
>> attached to my GSoC proposal?
>
>
> What priorities are you referring to?
>
> -- Johan
>

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] How do I get official feedback (ratings) on my GSoC proposal?

2012-02-13 Thread Greg Weber
Other than changing the status myself, how do I get a priority
attached to my GSoC proposal?

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Subject: A universal data store interface

2012-02-13 Thread Greg Weber
>> This proposal is vague and we would need to work with you to narrow
>> things down a bit.
>
> Yes, that would be cool :-) Since I'm not familiar with Persistence at
> all (unfortunately :-( ), do you have some suggestions for me to start
> with?
>
> I've found this http://www.yesodweb.com/book/persistent and I'm going
> to get familiar with it in the first place.  I hope it won't take me
> much longer than a couple days.

That is definitely the best place to start. If you want to look at
more example usage code you can look at the test suite in the
persistent-test folder of the repository.
Perhaps you have a Haskell program that could benefit from persisting
data (and maybe already does in a flat file) and you could try
integrating Persistent with it.

> I am rather far away from Web programming, so, unfortunately, I am not
> sure whether it would be relevant if I volunteered to contribute to
> Yesod directly.  In my perspective, there are possibilities for a
> non-Web programmer to contribute to Yesod, though, so, if I am not too
> much off with my perspectives, I'll be glad to work on Yesod as well.

I also opened up a GSoC ticket for making Haskell ready for the
"real-time" web. This is also another somewhat self-contained project
that does not really require web development experience. More and more
programs would like to have a web interface or at least speak some
HTTP at some point. Most web programmers don't have a great
understanding of the internals of web development that they are
abstracted from. I wouldn't shy away from something web related
because you are afraid you won't be able to hack it. The only problem
would be that you might not be able to judge the project well before
starting the project.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Subject: A universal data store interface

2012-02-13 Thread Greg Weber
ith you to
> Greg> narrow things down a bit.
>
> Greg> I am biased, but I believe the Yesod project is one of the most
> Greg> compelling in the Haskell ecosystem. There are a lot of different ways
> Greg> a GSoC project could help make things even better besides improving
> Greg> the associated Persistent library, and we would really like to mentor
> Greg> at least one GSoC student. I would open more tickets for this in the
> Greg> system, but I am not sure how helpful it will be. It seems that we
> Greg> need to reach out to more students like yourself, but I am not sure
> Greg> how to do that unless I see messages like these first.
>
> Greg> Greg Weber
>
> --
>  Paul

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Subject: A universal data store interface

2012-02-13 Thread Greg Weber
Persistent is a database abstraction layer with no dependencies on
Yesod. Those that need a persistence layer have the same needs to
interface with the database in a type-safe way, regardless of whether
their program presents a web interface.

Have you tried using Persistent? We have never heard a report from a
user that the Persistent DSL schema syntax is confusing. These
complaints always seem to be from someone that hasn't actually tried
it but is adverse to quasi-quoting. The DSL is basically the exact
same as Haskell record syntax. I am not sure who the mythical users
are that can figure out Haskell but can't understand dead-simple
DSL's.

That being said, I would like to have a Template Haskell interface
instead of just a QQ interface. The reason why we haven't bothered
with doing that ourselves is because the record name-spacing issue
makes the current QQ interface much more convenient. I am actively
working to solve the namespace issue. This all brings up a great point
though: as part of the GSoC we should create a Template Haskell
interface (similar to acid-state as you mention). Given the structure
of things that Michael has already pointed out, and that we are
already using Template Haskell with the DSL, this should only be a few
day's work.


On Mon, Feb 13, 2012 at 11:40 AM, Tom Murphy  wrote:
> It seems that all tutorials and resources for Persistent use Template
> Haskell along with several Yesod specifics.
>
> But, I could be wrong, or new tutorials could be written.
>
> Tom
>
> On 2/13/12, Michael Snoyman  wrote:
>> Actually, Persistent is fully usable without any special syntax, DSLs,
>> or Template Haskell. In fact, Persistent itself has no
>> template-haskell dependencies, specifically so that it can be built on
>> ghc-iphone. Additionally, the Persistent DSL syntax is completely
>> separate from any other Yesod DSL syntaxes that exist, so it's not
>> like you have to learn five new things to get the automatic code
>> generation.
>>
>> On Mon, Feb 13, 2012 at 9:30 PM, Tom Murphy  wrote:
>>>     With respect, I don't think that Persistent is a natural choice
>>> as the go-to tool for Haskell users, simply because it requires
>>> knowledge of a lot of Yesod-EDSL syntax.
>>>     The set of users with persistent data needs seems a very
>>> different set than that of those who are familiar with Yesod, and I
>>> think the syntax is quite confusing without fuller understanding of
>>> Yesod.
>>>
>>>     The syntax of acid-state (not familiar with this one), and
>>> swapper (https://github.com/roman-smrz/swapper/blob/master/test/) seem
>>> to have a much more linear learning curve for an intermediate Haskell
>>> user.
>>>
>>> amindfv / Tom
>>>
>>> On 2/13/12, Greg Weber  wrote:
>>>> Hi Sergiu,
>>>>
>>>> Thanks you for your interest in that proposal. I rushed it off a year
>>>> ago. Since then we have made a lot of improvements to Persistent and
>>>> the library forms a basic building block for most Yesod users and
>>>> other Haskellers. Persistent offers a level of type-safety and
>>>> convenience not available elsewhere (except perhaps for libraries like
>>>> acid-state that are limited to in-memory storage). That being said,
>>>> there are still a lot of improvements that could be made. With the
>>>> effort of a GSoC volunteer we could probably get it to the point of
>>>> being the go-to data storage library for Haskellers, at least those
>>>> planning on using the subset of backends (likely SQL) with great
>>>> support. This proposal is vague and we would need to work with you to
>>>> narrow things down a bit.
>>>>
>>>> I am biased, but I believe the Yesod project is one of the most
>>>> compelling in the Haskell ecosystem. There are a lot of different ways
>>>> a GSoC project could help make things even better besides improving
>>>> the associated Persistent library, and we would really like to mentor
>>>> at least one GSoC student. I would open more tickets for this in the
>>>> system, but I am not sure how helpful it will be. It seems that we
>>>> need to reach out to more students like yourself, but I am not sure
>>>> how to do that unless I see messages like these first.
>>>>
>>>> Greg Weber
>>>>
>>>> ___
>>>> Haskell-Cafe mailing list
>>>> Haskell-Cafe@haskell.org
>>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>>
>>>
>>> ___
>>> Haskell-Cafe mailing list
>>> Haskell-Cafe@haskell.org
>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Subject: A universal data store interface

2012-02-13 Thread Greg Weber
Hi Sergiu,

Thanks you for your interest in that proposal. I rushed it off a year
ago. Since then we have made a lot of improvements to Persistent and
the library forms a basic building block for most Yesod users and
other Haskellers. Persistent offers a level of type-safety and
convenience not available elsewhere (except perhaps for libraries like
acid-state that are limited to in-memory storage). That being said,
there are still a lot of improvements that could be made. With the
effort of a GSoC volunteer we could probably get it to the point of
being the go-to data storage library for Haskellers, at least those
planning on using the subset of backends (likely SQL) with great
support. This proposal is vague and we would need to work with you to
narrow things down a bit.

I am biased, but I believe the Yesod project is one of the most
compelling in the Haskell ecosystem. There are a lot of different ways
a GSoC project could help make things even better besides improving
the associated Persistent library, and we would really like to mentor
at least one GSoC student. I would open more tickets for this in the
system, but I am not sure how helpful it will be. It seems that we
need to reach out to more students like yourself, but I am not sure
how to do that unless I see messages like these first.

Greg Weber

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Some thoughts on Type-Directed Name

2012-01-27 Thread Greg Weber
Hi guys,

There is an effort underway to make Haskell's Records better. The
discussion is ongoing on the ghc-users mail list, feel free to join,
or at least read on gmane. The wiki pages are up to date. Please note
that we are moving in the direction of making the most minimal changes
possible to achieve some simple record name-spacing.

Thanks,
Greg Weber

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] [web-devel] [ANNOUNCE] First release of crypto-conduit

2012-01-07 Thread Greg Weber
great!

I am wondering if you can provide even higher-level APIs for the common
case:

hash <- runResourceT $ hashFile "my-file"

and possibly something that runs the ResourceT transformer:

hash <- runHashFile "my-file"

On Sat, Jan 7, 2012 at 12:16 AM, Felipe Almeida Lessa <
felipe.le...@gmail.com> wrote:

> Hello!
>
> I'm pleased to announce the first release of crypto-conduit [1]!  The
> crypto-api [2] package provides APIs for many cryptographic
> operations, such as cryptographic hashes and block ciphers.  This new
> crypto-conduit package allows you to use many of these operations with
> conduits [3], giving you safe I/O using constant memory and no leaks.
>
> As an example, here's how you could get the SHA1 hash a file:
>
>  import Crypto.Conduit -- from crypto-conduit
>  import Crypto.Hash.SHA1 (SHA1) -- from cryptohash
>  import Data.Conduit -- from conduit
>  import Data.Conduit.Binary (sourceFile) -- from conduit
>
>  main = do
>hash <- runResourceT $ sourceFile "my-file" $$ sinkHash
>print (hash :: SHA1)
>
> The code snippet above, despite having only "sourceFile ... $$
> sinkHash" on its core, guarantees that the file handle is not kept
> open and uses a constant amount of memory.  Sweet!
>
> Please break this package!  Although it comes with a test suite, it
> has just seen the light of the day.
>
> Cheers, =)
>
> [1] http://hackage.haskell.org/package/crypto-conduit
> [2] http://hackage.haskell.org/package/crypto-api
> [3] http://hackage.haskell.org/package/conduit
>
> --
> Felipe.
>
> ___
> web-devel mailing list
> web-de...@haskell.org
> http://www.haskell.org/mailman/listinfo/web-devel
>
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] ANNOUNCE: hxournal-0.5.0.0 - A pen notetaking

2011-12-27 Thread Greg Weber
yes it worked after your updates shortly after this. Thank you very much
for checking up, and also for continuing to develop this - I may be able to
replace xournal with it now.

On Tue, Dec 27, 2011 at 10:03 AM, Ian-Woo Kim  wrote:

> Hi, Greg,
>
> Sorry that I just missed to read your reply.
> Since hxournal has a configuration file to specify input device and
> also is activated on the toggle menu item "Use X Input," you should be
> able to experiment pen drawing now.
>
> Did you succeed in using the latest version of hxournal?
> I appreciate your report.
>
> Thanks very much.
>
> best,
> Ian-Woo
>
> On Tue, Dec 13, 2011 at 5:22 AM, Greg Weber  wrote:
> > I got the program installed after creating the libstdc++.so symlink.
> > No ink shows up from my drawing though. I am on a Thinkpad X201 Tablet
> and
> > xournal works.
> >
> > I am glad you are experimenting with window splits. I think the worst
> part
> > of xournal is it constrains you to a notebook-width piece of paper.
>
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] ANNOUNCE: hxournal-0.5.0.0 - A pen notetaking

2011-12-13 Thread Greg Weber
I got the program installed after creating the libstdc++.so symlink.
No ink shows up from my drawing though. I am on a Thinkpad X201 Tablet and
xournal works.

I am glad you are experimenting with window splits. I think the worst part
of xournal is it constrains you to a notebook-width piece of paper.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] How to get a file path to the program invoked?

2011-12-06 Thread Greg Weber
In addition to argv[0]
http://hackage.haskell.org/packages/archive/system-argv0/0.1/doc/html/System-Argv0.html

There is also this package:
http://hackage.haskell.org/packages/archive/FindBin/0.0.5/doc/html/System-Environment-FindBin.html

System-Argv0 has special cases for windows- FindBin may not work there.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] ANNOUNCE: Chell: A quiet test runner (low-output alternative to test-framework)

2011-08-11 Thread Greg Weber
I am confused also, as to both what output you don't like that motivated
chell and what exactly hspec silences :) Suffice to say I am able to get a
small relevant error message on failure with hspec. I am adding the hspec
maintainer to this e-mail- he can answer any of your questions.

On Thu, Aug 11, 2011 at 8:03 AM, John Millikin  wrote:

> On Thu, Aug 11, 2011 at 07:52, Greg Weber  wrote:
> > It silences HUnit's output, but will tell you what happens when there is
> a
> > failure- which I think is what you want. There are a few available output
> > formatters if you don't like the default output, or you can write your
> own
> > output formatter.
>
> I'm a bit confused. From what I can tell, HUnit does not output
> *anything* just from running a test -- the result has to be printed
> manually. What are you silencing?
>
> > BDD is really a red herring. Instead of using function names to name
> tests
> > you can use strings, which are inherently more descriptive. In chell you
> > already have `assertions "numbers"`, in hspec it would be `it "numbers"`.
> > The preferred style it to remove `test test_Numbers and the test_Numbers
> > definition` which are redundant in this case, and instead place that
> inline
> > where you define the suite, although that is optional.
> > So I really can't tell any difference betwee "BDD"  and "pass/fail
> > assertions". You still just use assertions in hspec.
>
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] ANNOUNCE: Chell: A quiet test runner (low-output alternative to test-framework)

2011-08-11 Thread Greg Weber
It silences HUnit's output, but will tell you what happens when there is a
failure- which I think is what you want. There are a few available output
formatters if you don't like the default output, or you can write your own
output formatter.

BDD is really a red herring. Instead of using function names to name tests
you can use strings, which are inherently more descriptive. In chell you
already have `assertions "numbers"`, in hspec it would be `it "numbers"`.
The preferred style it to remove `test test_Numbers and the test_Numbers
definition` which are redundant in this case, and instead place that inline
where you define the suite, although that is optional.
So I really can't tell any difference betwee "BDD"  and "pass/fail
assertions". You still just use assertions in hspec.

On Thu, Aug 11, 2011 at 7:36 AM, John Millikin  wrote:

> I have, but it's not quite what I'm looking for:
>
> - I don't want to silence HUnit's output, I just don't want anything
> to show on the console when a test *passes*. Showing output on a
> failure is good.
>
> - I'm not interested in BDD. Not to say it's not useful, but it
> doesn't match my style of testing (which uses mostly pass/fail
> assertions and properties).
>
> On Thu, Aug 11, 2011 at 07:18, Greg Weber  wrote:
> > Hi John,
> > I am wondering if you have seen the hspec package? [1] It seems to solve
> all
> > the problems you are with chell, including that it silences Hunit output.
> We
> > are using it for all the Yesod tests now.
> > Thanks,
> > Greg Weber
> > [1]:
> http://hackage.haskell.org/packages/archive/hspec/0.6.1/doc/html/Test-Hspec.html
>
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] ANNOUNCE: Chell: A quiet test runner (low-output alternative to test-framework)

2011-08-11 Thread Greg Weber
Hi John,

I am wondering if you have seen the hspec package? [1] It seems to solve all
the problems you are with chell, including that it silences Hunit output. We
are using it for all the Yesod tests now.

Thanks,
Greg Weber

[1]:
http://hackage.haskell.org/packages/archive/hspec/0.6.1/doc/html/Test-Hspec.html
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Announce: file-location 0.2.4

2011-08-10 Thread Greg Weber
I realized I should have made a bigger version bump: Announcing version
0.3.0
http://hackage.haskell.org/package/file-location

On Wed, Aug 10, 2011 at 5:53 PM, Greg Weber  wrote:

> Were you excited when Simon Marlow announced he might be able to add stack
> traces to Haskell? Would you settle for just the first line of the stack
> trace? It is a little known fact that template haskell exposes the file and
> line number information.
>
> file-location contains common debugging/error/exception functions and
> template haskell versions that give file location information.
>
> > $(err "OH NO!")
> main:Main main.hs:16:1 OH NO!
>
> > debug [1,2,3]
> DEBUG: [1,2,3]
> [1,2,3]
>
> > $(dbg) [1,2,3]
> DEBUG main:Main main.hs:1:3 [1,2,3]
> [1,2,3]
>
> ($(thrwIO) AException) `catch` \e -> putStrLn ("Caught " ++ show (e ::
> AException))
> Caught AException "main:Main test/main.hs:25:6"
>
>
> Don't like the exception dependency? Use version 0.2.3 for now until the
> exceptions are split into a separate package.
> Just want the debug helpers (like the debug function) but not interested in
> the template haskell? The library is already split into modules based on
> dependencies. The near future plan is to separate this into separate
> packages, including one with the non-TH debug helpers.
>
> Also see the github README for more examples:
> https://github.com/gregwebs/FileLocation.hs
>
> I think haskell could use a few more debug helpers. Perhaps some of these
> could be pushed back into the standard distribution.
>
> Thanks, and I am looking forward to your feedback,
> Greg Weber
>
>
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Announce: file-location 0.2.4

2011-08-10 Thread Greg Weber
Were you excited when Simon Marlow announced he might be able to add stack
traces to Haskell? Would you settle for just the first line of the stack
trace? It is a little known fact that template haskell exposes the file and
line number information.

file-location contains common debugging/error/exception functions and
template haskell versions that give file location information.

> $(err "OH NO!")
main:Main main.hs:16:1 OH NO!

> debug [1,2,3]
DEBUG: [1,2,3]
[1,2,3]

> $(dbg) [1,2,3]
DEBUG main:Main main.hs:1:3 [1,2,3]
[1,2,3]

($(thrwIO) AException) `catch` \e -> putStrLn ("Caught " ++ show (e ::
AException))
Caught AException "main:Main test/main.hs:25:6"


Don't like the exception dependency? Use version 0.2.3 for now until the
exceptions are split into a separate package.
Just want the debug helpers (like the debug function) but not interested in
the template haskell? The library is already split into modules based on
dependencies. The near future plan is to separate this into separate
packages, including one with the non-TH debug helpers.

Also see the github README for more examples:
https://github.com/gregwebs/FileLocation.hs

I think haskell could use a few more debug helpers. Perhaps some of these
could be pushed back into the standard distribution.

Thanks, and I am looking forward to your feedback,
Greg Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Github support for cabal files

2011-07-23 Thread Greg Weber
I think the haddock description field is a great barrior to documentation. I
don't want to clutter my cabal file with lengthy documentation.
Michael Snoyberg and I could not figure out how to document the Hamlet
syntax because there is no way (as far as I know) to have literal
unescaped, uninterpreted text. [1]
When I go to a github repo, I expect that I can scroll down to the README
and I will get a good overview. When I go to hackage, I expect nothing more
than a synopsis, and I hope I can follow several links to find the
information I am looking for.

It is suggested that the description field should point to a top level
module with all the documentation, but although haddock is good for
documenting code, it is not an ideal overview style, and not all packages
lend themselves well to having one top-level module.

I would like a description field that just points to an external (README)
file. Cabal could either use the pandoc library, or to avoid that dependency
directly it could use the pandoc executable (that would have to be installed
first by those of us that want this feature). Alternatively it could just
allow an html file for the description and make me responsible for writing a
script that runs pandoc and then invokes sdist.

[1] http://hackage.haskell.org/package/hamlet
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Haskell and Databases

2011-07-01 Thread Greg Weber
Hi Tobias,

Have you seen DSH [1]? You might also be interested in Persistent [2], but
it sounds like it has different goals than what you are after.

[1] http://hackage.haskell.org/package/DSH
[2] http://www.yesodweb.com/book/persistent
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] haskellwiki slow/unresponsive

2011-06-06 Thread Greg Weber
>
> Those are definitely valid concerns. Has anyone made a wiki-like site with
> Yesod? I hadn't heard of Yesod until I joined this mailing list, but I've
> seen quite a bit of buzz around it since then. If a large enough chunk of
> the community is backing a framework and focusing on making it secure and
> reliable, then it should be possible to build applications with it (wikis,
> blogs, etc.) that draw on the framework's strength and security. You may
> still have security issues, but if they're continually addressed and
> maintained at the framework level it benefits everyone building
> applications
> on top of that framework. I'm still relatively new to the Haskell
> community
> so I apologize if much of this has been addressed before!


It is dead-simple to deploy a fast haskell web app, so haskell *might* have
a chance at solving the problem, but likely it can be fixed much faster by
doing a better job configuring the server or adding more resources.

I think that security issues are a bit of a red herring. You can go through
potential security issues one-by-one and basically make them impossible in a
web/wiki framework (as we are doing in Yesod). Of course this is easier to
do with a type system in Haskell. And of course some security is outside the
scope of the software and needs to be established by procedure (admin server
access should only be through ssh key, etc).
Gitit uses darcs or git to store data, but through the command line
interfaces. Unfortunately to my knowledge darcs does not expose a library
interface. Gitit could be made faster and more secure by interfacing with
libgit2.
Even though it is may not be socially acceptable to state it, it is likely
that gitit or any haskell library would be more secure in practice because
it is more obscure. And the kind of security we really care about in the
wiki- the wiki page content- can be easily replicated and restored.

I definitely agree that the hard and boring part of switching to a haskell
wiki is converting existing MediaWiki content and configuration to a new
system- that would have to be investigated first.

Unfortunately this is probably all bike-shedding and my original question of
how can the community speed up the wiki hasn't been answered :)

Greg Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] haskellwiki slow/unresponsive

2011-06-03 Thread Greg Weber
I have been trying to make a few edits to the haskell wiki and find it an
excruciating process when I press save and then have to wait a long time to
see if the save will go through. I just clicked on the introduction page and
it may have took an entire minute to load.

Can we put at the top: this wiki written in php, not haskell!

Seriously though, the wiki has performed poorly for a long time now. It
gives a bad impression to newcomers and deters contributions. Can I (and
others!) donate money so someone can make the wiki responsive?

Thanks,
Greg Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Light and fast http server

2011-03-12 Thread Greg Weber
>
> snap or warp/yesod. maybe in a few years we will have a winner for the

platform...


> --dons


> On Friday, March 11, 2011, Vo Minh Thu  wrote:

> 2011/3/11 Victor Oliveira :

>> Hi cafe,

>>

>> There are a lot of http servers in hackage. I didn't have used none.

>> I would like to know if one of them is something closer of the nginx.

>> I need some light and fast. It don't need support all http, just the
> basics is fine.

>> Suggestions?

>

> Snap and Warp come to mind. Have a look at this reddit thread:

>
> http://www.reddit.com/r/programming/comments/flpao/the_haskell_high_performance_server_shootout/

 >

> Cheers,

> Thu


To be clear, Yesod and Snap are web frameworks.

If you want just a web server, then your main options are snap-server or
Warp as has been pointed out.
The happstack framework also has a server, but they are planning on
switching it out in the future.
As for speed, warp is at least twice as fast as snap-server.
As for lightness-
* snap-server and Warp support a similar feature set, with some differences
that might be important, depending on your needs.
* Warp has a much smaller code base
* lightness may be a perception of how you interface with the server.
I don't know how you would interface with snap-server except through the
Snap framework.
Warp can be used with Yesod, but runs on the WAI interface.
The WAI inteface allows you to change your mind and deploy to a different
server in the future.
Hopefully it will also allow you to use different frameworks in the future,
although this is not the case yet.
But just as important, it is also designed to support easy and re-usable
low-level web programming.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] cabal dependency on code repositories.

2010-12-20 Thread Greg Weber
On Sun, Dec 19, 2010 at 5:01 PM, Duncan Coutts  wrote:

> On 19 December 2010 17:44, Greg Weber  wrote:
> > Michael Snoyman and I were discussing the need for beta releases of Yesod
> > and he encourage me to post this to the cafe. Beta releases could be
> built
> > into the hackage system. However, this can be viewed as a more general
> > problem of distributing multiple versions of code (stable vs.
> experimental,
> > forks, etc). This is a problem that has been largely solved by version
> > control, but in this instance just needs some integration with an
> installer
> > system.
>
> The first system I want to add is to allow cabal-install to install
> from tarballs identified by a URL, e.g.
>
> cabal install http://example.org/~me/foo-1.0.tar.gz
>
>
> As you know, .cabal files can specify source repos so in principle one
> could write a tool to install from a source repo. In practice there
> are a number of things to solve involving how you manage local caches
> of remote repos etc. The easiest thing to get working first is
> installing from tarball URLs, but I would welcome patches for the
> source repo feature, in particular a specific plan for how users
> interact with the system.
>
> Duncan
>

Being able to install a tarball is a great first step and would provide a
mechanism for taking care of some of the use cases.

In terms of specific user interaction plans for installing from a repo, I
would point again to ruby's Bundler as a starting point. Basically instead
of putting in a version number constraint one can put in a git url. That url
points to a repo with a gemspec (.cabal file) which has the version number.
It is important to note that Bundler operates and a project-focused manner.
Bundler also creates a file 'Gemfile.lock' which lists every package being
used for the project and its exact version. This helps when working in a
team or deploying- by checking in this file one can ensure that everyone
else (and the production server) is using the *exact* same versions of
packages. For library development it is not recommended to check in the lock
file. Changing the Gemfile (cabal file) and installing (cabal configure)
will update the lock file.

This functionality is similar to the tool capri in some ways, but instead of
having a project private package set it just has a lockfile that specifies
exact versions. I think haskell may require a project private repo because
it compiles packages instead of interpreting them. For a project private
package set in Ruby there is a tool called RVM which has a feature called
'gemsets'. The main purpose of RVM though, is actually to be able to easily
switch between multiple versions of Ruby (and it does this amazingly well by
operating at the shell level).

I am rambling now, but the end user interaction is essentially just editing
the Cabal file with the proper git url and re-compiling. The releaser does
not have to do anything either- they don't even have to change the version
number in the cabal file. Ruby Gems and Bundler use the git hash of the repo
as the version number. However, Bundler still knows the package version
number for dependency resolution.

Greg Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] cabal dependency on code repositories.

2010-12-19 Thread Greg Weber
Michael Snoyman and I were discussing the need for beta releases of Yesod
and he encourage me to post this to the cafe. Beta releases could be built
into the hackage system. However, this can be viewed as a more general
problem of distributing multiple versions of code (stable vs. experimental,
forks, etc). This is a problem that has been largely solved by version
control, but in this instance just needs some integration with an installer
system.

In the ruby world there is a tool called bundler that is now the standard
installer- basically bundler combined with rubygems it is like cabal
combined with hackage. In addition to referencing a published library
version, with bundler one can reference a git repository, and even reference
a particular branch or revision. Essentially with beta releases you are
trying to release multiple branches of your repository. This is also very
useful for dealing with multiple forks of a package. If I have problems with
a package I can look at the github repo and look for forks with bug fixes,
and then point the Gemfile (cabal file) to that repo. The repo must have a
gemspec (cabal file).

Essentially this removes the step of the code writer of needing to edit the
cabal file or publish to hackage. This is good because many code writers do
not want to publish their minor variations of packages on hackage or do not
want to publish new packages that they feel are of low quality. This is also
good from the perspective of the code user- I normally don't want to see
minor variations on hackage. If I am interested in minor variations I will
go to the github repo and look at the different branches and forks where it
will be clear to me what the difference is- it would be difficult to
accurately portray this information on hackage.

Productivity in modern programming is largely about code re-use, and I only
see this as becoming more important. Type safety and Cabal do a great job
facilitating code re-use. I think we can make cabal even more useful here.
Has this ability been discussed before for cabal? t would be great if it
could at least be worked on for the next Google Summer of Code.

Sorry if I offended anyone by exclusively mentioning git, but that is the
only version control system used by Rubyists :)
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe