RE: a cabal/database lib experience (was: [Haskell-cafe] Trivialdatabase access in Haskell)

2006-12-12 Thread Bayley, Alistair
 From: [EMAIL PROTECTED] 
 [mailto:[EMAIL PROTECTED] On Behalf Of Claus Reinke
 
 That situation seems to be slightly embarrassing (if only because we
 are tempted to think that we have no time for the traditional README 
 and INSTALL files - after all, all darcs/cabal stuff is 
 self-explanatory, 
 isn't it, and has been discussed to death somewhere, hasn't 
 it, and the 
 library does the obvious thing, doesn't it, and isn't quite 
 ready for prime 
 time yet anyway, at which time it is going to be carved in stone and 
 documented thoroughly by a team of Pulitzer-price-winning authors?-)


I guess I should comment, as one of the Takusen authors.

Yes, this is embarrasing. We have made a number of assumptions which
Paul exposed:
 - users should know to do darcs get, then runhaskell Setup.hs
configure/build/install
 - users should know to look for Haddock docs
 - users should know how to look for and install dependent libraries
(Cabal-1.1.6.1, in this case)

If you're an experienced Haskell programmer then these assumptions are
valid, so yes, we do need to do more for the novice.

It is nice to actually get some kind of feedback, even if negative. It
means we can make our library nicer to install and use, which hopefully
will encourage more users to install and use it...


 + add a dedicated command cabal, which does nothing more
 than runhaskell Setup, but is more memorable and suggestive

Did you mean an executable that comes with cabal or the compiler (i.e.
in ghc's bin), or something provided by the library author? From my POV
(as a library author) I could provide a cabal.bat (for Windows users)
and a cabal.sh (for everyone else), but that seems a bit messy.


 - cabal/darcs/haddock are no replacement for minimal help texts:
 cabal should require the existence of a README (darcs should
 complain if there is a *.cabal, but no README..).

Yes. I will create one of these.


 - sample code for trivial queries (aka, I know about 
 databases, but
 I need to see the way this particular library handles 
 things, so that I
 can figure out whether it is the right one for me) is 
 not obvious to find

We have made a reasonable effort in Takusen to document the API
extensively, and give example code. The problem seems to be that the
documentation is too well hidden:
  http://darcs.haskell.org/takusen/doc/html/Database-Enumerator.html

The best thing I can think of now is to put a reference to this in the
README file. Any other ideas? I wanted to keep the documentation in
Haddock (so that it stays close to, and hopefully consistent with, the
source) but maybe that's not the best idea for this kind of
documentation, which is really a HOW-TO manual.


 - distributions are bare-boned:
  Option 2, Takusen, leads to a file listing, but no 
 downloadable package.

My fault for not providing a proper release. I'm still learning about
darcs, so the instructions in
 
http://www.haskell.org/haskellwiki/How_to_write_a_Haskell_program#Releas
es
are quite valuable.

If you have any further Takusen-specific questions, don't hesitate to
contact me. Also, if you're having trouble installing or chasing down
dependent libraries then I should be able to help.

Alistair
*
Confidentiality Note: The information contained in this message,
and any attachments, may contain confidential and/or privileged
material. It is intended solely for the person(s) or entity to
which it is addressed. Any review, retransmission, dissemination,
or taking of any action in reliance upon this information by
persons or entities other than the intended recipient(s) is
prohibited. If you received this in error, please contact the
sender and delete the material from any computer.
*
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: a cabal/database lib experience (was: [Haskell-cafe] Trivialdatabase access in Haskell)

2006-12-12 Thread Paul Moore

On 12/12/06, Claus Reinke [EMAIL PROTECTED] wrote:

 if you're using Haskell at all, you *are* the Haskell community.

 [..lots of I searched, I found, I tried, I got this error, I thought,
I tried this workaround, I got to this point, now I'm stuck here..]

I just wanted to comment that I find this kind of experience report
very helpful, especially if someone does not give up at the first hurdle,
and goes through the trouble of writing up all the frustrating steps and
thoughts rather than summarizing (it didn't work/I got it to work
after some fiddling) - thanks!


Thank you! That's exactly the sort of report I was trying to give,
although (from my point of view) it's pretty hard to report this sort
of thing without feeling like you're giving a complaining and
ungrateful impression. It's nice to have the reassurance that I got my
message across.

On 12/12/06, Bayley, Alistair [EMAIL PROTECTED] wrote:

Yes, this is embarrasing. We have made a number of assumptions which
Paul exposed:


It's hardly embarrassing - as Claus pointed out, the developers of any
package are *always* too close to the problem to see this sort of
issue.


 - users should know to do darcs get, then runhaskell Setup.hs
configure/build/install
 - users should know to look for Haddock docs
 - users should know how to look for and install dependent libraries
(Cabal-1.1.6.1, in this case)


Yes, those are probably the key ones I tripped up on.


If you're an experienced Haskell programmer then these assumptions are
valid, so yes, we do need to do more for the novice.


One thing that (from my POV as a Windows user) helped enormously in
the Python community was adding the ability to distutils (their Cabal
equivalent) to build Windows binary installers. With that, it became
relatively easy for developers to package up binaries of their
libraries, which made the Windows experience a simple download and
run one.

I've no idea if that is a practical or useful goal for Cabal, and I
anticipate it being a long time before I'm at a level of understanding
where I could help in implementing it, but it may be something to
think about.


 - sample code for trivial queries (aka, I know about
 databases, but
 I need to see the way this particular library handles
 things, so that I
 can figure out whether it is the right one for me) is
 not obvious to find

We have made a reasonable effort in Takusen to document the API
extensively, and give example code. The problem seems to be that the
documentation is too well hidden:
  http://darcs.haskell.org/takusen/doc/html/Database-Enumerator.html


Yes, I suspect that's the case.


The best thing I can think of now is to put a reference to this in the
README file. Any other ideas? I wanted to keep the documentation in
Haddock (so that it stays close to, and hopefully consistent with, the
source) but maybe that's not the best idea for this kind of
documentation, which is really a HOW-TO manual.


Something as simple as here's how to issue a query and print the
results in the README would have been enough for me. When I get to
that point, I'll write a few lines and let you see what you think.


If you have any further Takusen-specific questions, don't hesitate to
contact me. Also, if you're having trouble installing or chasing down
dependent libraries then I should be able to help.


Thanks for the offer. As others have pointed out, the level of help
available from the community is excellent - it's just that needing
to ask for help puts off those of us who work on a let's just play
with this Haskell stuff while my backup runs basis :-)

The backup has finished now, so I must run. Thanks again!
Paul.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: a cabal/database lib experience (was: [Haskell-cafe] Trivialdatabase access in Haskell)

2006-12-12 Thread Paul Moore

On 12/12/06, Donald Bruce Stewart [EMAIL PROTECTED] wrote:

bulat.ziganshin:
 there is a great wikipage on creating your own library, thanks to Donald,
 who is started it. but there is no even simpler page about using libraries.
 while we don't have cabal-get it will be great to setup such page

The wiki can be edited by anyone! Start now!


My plan is to write up what I end up doing (plus some notes on my
false starts, if they seem helpful) on the wiki. I'll probably add a
new page off the Libraries and Tools page - does that sound
reasonable?

I have to admit that I haven't found the obvious place on the wiki for
this yet - I'm familiar with wikis in general, but the structure of
the Haskell wiki is a bit hard to get to grips with. That's not a very
helpful comment, because I can't articulate *why* I feel this :-( As a
data point, the old Haskell wiki felt a bit easier to navigate - maybe
because it was less structured in some way.

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


Re: a cabal/database lib experience (was: [Haskell-cafe]Trivialdatabase access in Haskell)

2006-12-12 Thread Claus Reinke

We have made a number of assumptions which Paul exposed:
- users should know to do darcs get, then runhaskell Setup.hs
configure/build/install
- users should know to look for Haddock docs
- users should know how to look for and install dependent libraries
(Cabal-1.1.6.1, in this case)


and there you have the beginnings of your README file!-)

If you're an experienced Haskell programmer then these assumptions 
are valid, so yes, we do need to do more for the novice.


the difference, as far as it is relevant for getting going, is often just 
context, which can be rectified by surprisingly small steps, such as

collecting  the assumptions in one obvious-to-find file.


+ add a dedicated command cabal, which does nothing more
than runhaskell Setup, but is more memorable and suggestive
Did you mean an executable that comes with cabal or the compiler 


yes, part of the cabal infrastructure, not something from the library author.

as Simon has pointed out, cabal-setup is going to do the job, and with
a more descriptive name.

thanks,
claus

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


Re: a cabal/database lib experience (was: [Haskell-cafe]Trivialdatabase access in Haskell)

2006-12-12 Thread Paul Moore

On 12/12/06, Claus Reinke [EMAIL PROTECTED] wrote:

the difference, as far as it is relevant for getting going, is often just
context, which can be rectified by surprisingly small steps, such as
collecting  the assumptions in one obvious-to-find file.


Indeed. I can now confirm that it's *not* hard to get takusen set up -
it's just a bit hard to find out it's not hard :-)

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


Re: a cabal/database lib experience (was: [Haskell-cafe]Trivialdatabase access in Haskell)

2006-12-12 Thread Kirsten Chevalier

[trimmed replies]
On 12/12/06, Paul Moore [EMAIL PROTECTED] wrote:

On 12/12/06, Claus Reinke [EMAIL PROTECTED] wrote:
 the difference, as far as it is relevant for getting going, is often just
 context, which can be rectified by surprisingly small steps, such as
 collecting  the assumptions in one obvious-to-find file.

Indeed. I can now confirm that it's *not* hard to get takusen set up -
it's just a bit hard to find out it's not hard :-)



If you generalize from takusen there, I think you'll understand a
lot about Haskell :-)

Cheers,
Kirsten

--
Kirsten Chevalier* [EMAIL PROTECTED] *Often in error, never in doubt
Dare to be naive.--R. Buckminster Fuller
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe