
ANN filestore 0.1 We are pleased to announce the first release of a new library, filestore. What is it? filestore provides a uniform, abstract, generic interface for storing versioned files on disk. It allows calling programs to use generic commands to store strings or binary data and perform various queries, such as 'what files are in this repository?' or 'what were the contents of this file at revision XXXXXXX?' or 'give me a diff of this file between revision XXXXXXX and revision YYYYYYY.' Because the interface is abstract, the calling program is insulated from the messy details of the backend (which might be a VCS or a database). What backends are supported? Darcs and Git are fully supported. There are plans for a SQLite backend. What is this good for? Currently it is used by two wikis, Gitit and Orchid. We hope it will see use in other applications as well that need to version data and would like the various advantages of DVCSs (such as easy collaboration, advanced merging, etc.). Where can you get it? Your local cabal-install, Hackage at http://hackage.haskell.org/cgi-bin/hackage-scripts/package/filestore and of course you can do 'darcs get http://johnmacfarlane.net/repos/filestore' for the very latest. filestore was written by John MacFarlane, Gwern Branwen, and Sebastiaan Visser -- gwern

Hello Gwern, Sunday, January 25, 2009, 2:56:07 AM, you wrote: my usual complaint: it will be great to see all announces duplicated in main haskell list
ANN filestore 0.1
We are pleased to announce the first release of a new library, filestore.
What is it? filestore provides a uniform, abstract, generic interface for storing versioned files on disk. It allows calling programs to use generic commands to store strings or binary data and perform various queries, such as 'what files are in this repository?' or 'what were the contents of this file at revision XXXXXXX?' or 'give me a diff of this file between revision XXXXXXX and revision YYYYYYY.' Because the interface is abstract, the calling program is insulated from the messy details of the backend (which might be a VCS or a database).
What backends are supported? Darcs and Git are fully supported. There are plans for a SQLite backend.
What is this good for? Currently it is used by two wikis, Gitit and Orchid. We hope it will see use in other applications as well that need to version data and would like the various advantages of DVCSs (such as easy collaboration, advanced merging, etc.).
Where can you get it? Your local cabal-install, Hackage at http://hackage.haskell.org/cgi-bin/hackage-scripts/package/filestore and of course you can do 'darcs get http://johnmacfarlane.net/repos/filestore' for the very latest.
filestore was written by John MacFarlane, Gwern Branwen, and Sebastiaan Visser
-- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com

Bulat Ziganshin wrote:
my usual complaint: it will be great to see all announces duplicated in main haskell list
Thanks for mentioning it.. at some point I unsubscribed from the main list in thunderbird and forgot about it. I guess it's best practice to send announcements to both, then.

Bulat Ziganshin wrote:
Hello Gwern,
Sunday, January 25, 2009, 2:56:07 AM, you wrote:
my usual complaint: it will be great to see all announces duplicated in main haskell list
I always only announce things on haskell-cafe. What list is the “main haskell list”? /M -- Magnus Therning (OpenPGP: 0xAB4DFBA4) magnus@therning.org Jabber: magnus@therning.org http://therning.org/magnus Haskell is an even 'redder' pill than Lisp or Scheme. -- PaulPotts

On Sun, 2009-01-25 at 09:32 +0000, Magnus Therning wrote:
Bulat Ziganshin wrote:
Hello Gwern,
Sunday, January 25, 2009, 2:56:07 AM, you wrote:
my usual complaint: it will be great to see all announces duplicated in main haskell list
I always only announce things on haskell-cafe. What list is the “main haskell list”?
This is the description of the Haskell mailing list: "haskell@haskell.org (read & search via gmane) Announcements, discussion openers, technical questions. haskell@haskell.org is intended to be a low-bandwidth list, to which it is safe to subscribe without risking being buried in email. If a thread becomes longer than a handful of messages, please transfer to haskell-cafe@haskell.org." All announcements should go to haskell@haskell.org if nowhere else. In practice, it is probably best to post to both haskell and haskell-cafe and this is what most people do.

All announcements should go to haskell@haskell.org if nowhere else. In practice, it is probably best to post to both haskell and haskell-cafe and this is what most people do.
I would suggest that posting announcements *only* to haskell@, but with followups set to haskell-cafe@, is the ideal way to keep everyone informed, whilst minimising the amount of unnecessary duplicate mails people receive. (And on the topic of duplicate mails, it would reduce _so_ much irritation if all the haskell-related mailing lists could set the Reply-To header to the list, instead of defaulting to the original poster. I already have enough email to deal with without having 3 or sometimes 4 copies of every message in every thread that I participate in.) Regards, Malcolm

At Sun, 25 Jan 2009 10:02:28 +0000, Malcolm Wallace wrote:
(And on the topic of duplicate mails, it would reduce _so_ much irritation if all the haskell-related mailing lists could set the Reply-To header to the list, instead of defaulting to the original poster. I already have enough email to deal with without having 3 or sometimes 4 copies of every message in every thread that I participate in.)
The duplicate messages will have the same Message-ID, can't your email client hide the duplicates for you? You might have to enable an option or something? I am pretty sure Reply-to munging has been discussed on this list before (mostly because it will eventually be discussed on every mailing list). The usual consent is that many people hate it, it violates the standards set by the IETF, it results in people accidently sending private messages to the list. I think one reason why people don't like Reply-to munging is that many people filter the haskell-cafe mailing list into a separate folder that they only read occasionally. So, if they post a message they *want* the reply to go to their main inbox as well as the mailing list folder. Otherwise they would have to keep checking the mailing list folder to see if they had any replies, instead of just checking their inbox. I believe there are two solutions to your problem: 1. set the Reply-to header yourself to specify how you want people to reply to messages you post. If you only want them to do to the list, then set that. Some email clients can be configured to do this automatically when posting to specific mailing lists. 2. use (or configure) a mail client that can hide duplicate messages. http://www.unicom.com/pw/reply-to-harmful.html http://woozle.org/~neale/papers/reply-to-still-harmful.html -j

* Jeremy Shaw
I believe there are two solutions to your problem:
1. set the Reply-to header yourself to specify how you want people to reply to messages you post. If you only want them to do to the list, then set that. Some email clients can be configured to do this automatically when posting to specific mailing lists.
2. use (or configure) a mail client that can hide duplicate messages.
3. Set Mail-Followup-To: and hope people replying onlist have a mail client that respects that header. -- mithrandi, i Ainil en-Balandor, a faer Ambar

The duplicate messages will have the same Message-ID...
if they post a message they *want* the reply to go to their main inbox as well as the mailing list folder.
Maybe I am just stupid, or maybe my email client is inadequate, but I cannot work out how to filter the same email such that different copies go into different boxes. For me, all 3 or 4 copies of a cross- post get filtered into the same box. I have not yet managed to find a reliably distinguishing set of headers to separate them. As for Reply-to: munging - I agree that _changing_ an existing header would be bad, but would be very happy if mailing lists were to _introduce_ one on messages where none already existed. (I _am_ aware of the general polemic against using a default Reply-To: header in mailing lists, e.g. http://www.unicom.com/pw/reply-to-harmful.html but disagree fundamentally with many of the implicit assumptions and explicit arguments therein.) Regards, Malcolm

On Sun, Jan 25, 2009 at 11:17 PM, Malcolm Wallace
The duplicate messages will have the same Message-ID...
if they post a message they *want* the reply to go to their main inbox as well as the mailing list folder.
Maybe I am just stupid, or maybe my email client is inadequate, but I cannot work out how to filter the same email such that different copies go into different boxes. For me, all 3 or 4 copies of a cross-post get filtered into the same box. I have not yet managed to find a reliably distinguishing set of headers to separate them.
I've always had success using List-Id for this purpose. /M -- Magnus Therning (OpenPGP: 0xAB4DFBA4) magnus@therning.org Jabber: magnus@therning.org http://therning.org/magnus identi.ca|twitter: magthe

Malcolm Wallace wrote:
As for Reply-to: munging - I agree that _changing_ an existing header would be bad, but would be very happy if mailing lists were to _introduce_ one on messages where none already existed.
That would IMO be the worst of both worlds, as people might use Reply-To for reasons entirely unconnected with the mailing list. So you'd end up with a confusing situation where the default target of replies varied depending on some completely irrelevant factor. Ganesh ============================================================================== Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html ==============================================================================

Malcolm Wallace
The duplicate messages will have the same Message-ID...
if they post a message they *want* the reply to go to their main inbox as well as the mailing list folder.
Maybe I am just stupid, or maybe my email client is inadequate,
If your email doesn't have the option to hide or sort out duplicate messages, another option might be to use procmail - googling for "procmail filter duplicates" might give you some recipes.
As for Reply-to: munging - I agree that _changing_ an existing header would be bad, but would be very happy if mailing lists were to _introduce_ one on messages where none already existed.
I've been following many lists who choose to add a Reply-To header, and they invariably get cluttered by mail intended to be private accidentally being posted to the list. Usually it isn't too embarassing, but sometimes it is. I'd err on the side of caution. Of course, the right solution would be for Mailman (or other list processing software) to let subscribers choose individually how to set headers in the email they receive. -k (carefully deleting the @cs.york address from the "To" field) -- If I haven't seen further, it is by standing in the footprints of giants

On Sun, Jan 25, 2009 at 10:47 AM, Derek Elkins
On Sun, 2009-01-25 at 09:32 +0000, Magnus Therning wrote:
Bulat Ziganshin wrote:
Hello Gwern,
Sunday, January 25, 2009, 2:56:07 AM, you wrote:
my usual complaint: it will be great to see all announces duplicated in main haskell list
I always only announce things on haskell-cafe. What list is the "main haskell list"?
This is the description of the Haskell mailing list: "haskell@haskell.org (read & search via gmane) Announcements, discussion openers, technical questions. haskell@haskell.org is intended to be a low-bandwidth list, to which it is safe to subscribe without risking being buried in email. If a thread becomes longer than a handful of messages, please transfer to haskell-cafe@haskell.org."
All announcements should go to haskell@haskell.org if nowhere else. In practice, it is probably best to post to both haskell and haskell-cafe and this is what most people do.
Hmm, interesting, I've never bothered subscribing to that list. I assumed it was a moderated announcement list that I wouldn't be able to post to myself, i.e. it would be a one-way list only. My assumption was most likely based on my experience with Debian announcement lists. I have a hard time seeing a point in having that list: - there should be no discussions on the list, and - people suggest that announcements be X-posted to haskell-cafe. Hmm, so what is posted to haskell@haskell.org that a subscriber to haskell-cafe would be inerested in? /M -- Magnus Therning (OpenPGP: 0xAB4DFBA4) magnus@therning.org Jabber: magnus@therning.org http://therning.org/magnus identi.ca|twitter: magthe

On Sun, 2009-01-25 at 23:09 +0100, Magnus Therning wrote:
On Sun, Jan 25, 2009 at 10:47 AM, Derek Elkins
wrote: On Sun, 2009-01-25 at 09:32 +0000, Magnus Therning wrote:
Bulat Ziganshin wrote:
Hello Gwern,
Sunday, January 25, 2009, 2:56:07 AM, you wrote:
my usual complaint: it will be great to see all announces duplicated in main haskell list
I always only announce things on haskell-cafe. What list is the "main haskell list"?
This is the description of the Haskell mailing list: "haskell@haskell.org (read & search via gmane) Announcements, discussion openers, technical questions. haskell@haskell.org is intended to be a low-bandwidth list, to which it is safe to subscribe without risking being buried in email. If a thread becomes longer than a handful of messages, please transfer to haskell-cafe@haskell.org."
All announcements should go to haskell@haskell.org if nowhere else. In practice, it is probably best to post to both haskell and haskell-cafe and this is what most people do.
Hmm, interesting, I've never bothered subscribing to that list. I assumed it was a moderated announcement list that I wouldn't be able to post to myself, i.e. it would be a one-way list only. My assumption was most likely based on my experience with Debian announcement lists.
I have a hard time seeing a point in having that list:
I think the point is in subscribing to haskell@haskell.org, but *not* to haskell-cafe. Or filtering haskell-cafe and reading it less regularly, but reading all of haskell. Or other things along the same lines. jcc

On Sun, 2009-01-25 at 23:09 +0100, Magnus Therning wrote:
On Sun, Jan 25, 2009 at 10:47 AM, Derek Elkins
wrote: On Sun, 2009-01-25 at 09:32 +0000, Magnus Therning wrote:
Bulat Ziganshin wrote:
Hello Gwern,
Sunday, January 25, 2009, 2:56:07 AM, you wrote:
my usual complaint: it will be great to see all announces duplicated in main haskell list
I always only announce things on haskell-cafe. What list is the "main haskell list"?
This is the description of the Haskell mailing list: "haskell@haskell.org (read & search via gmane) Announcements, discussion openers, technical questions. haskell@haskell.org is intended to be a low-bandwidth list, to which it is safe to subscribe without risking being buried in email. If a thread becomes longer than a handful of messages, please transfer to haskell-cafe@haskell.org."
All announcements should go to haskell@haskell.org if nowhere else. In practice, it is probably best to post to both haskell and haskell-cafe and this is what most people do.
Hmm, interesting, I've never bothered subscribing to that list. I assumed it was a moderated announcement list that I wouldn't be able to post to myself, i.e. it would be a one-way list only. My assumption was most likely based on my experience with Debian announcement lists.
I have a hard time seeing a point in having that list:
- there should be no discussions on the list, and - people suggest that announcements be X-posted to haskell-cafe.
Hmm, so what is posted to haskell@haskell.org that a subscriber to haskell-cafe would be inerested in?
Some announcements, discussion openers, technical questions may not be posted to haskell-cafe@haskell.org. However, the idea (now at least) is that if you are subscribed to haskell-cafe@haskell.org, you should (may as well) be subscribed to haskell@haskell.org. However, if you don't want tbe drink from the firehose that is haskell-cafe@haskell.org you can still keep track of announcements and such in haskell@haskell.org.

Maybe, we should have another command in cabal-install, something like "cabal announce", that would post an announcement to haskell@haskell.org? On 26 Jan 2009, at 01:09, Magnus Therning wrote:
On Sun, Jan 25, 2009 at 10:47 AM, Derek Elkins
wrote: On Sun, 2009-01-25 at 09:32 +0000, Magnus Therning wrote:
Bulat Ziganshin wrote:
Hello Gwern,
Sunday, January 25, 2009, 2:56:07 AM, you wrote:
my usual complaint: it will be great to see all announces duplicated in main haskell list
I always only announce things on haskell-cafe. What list is the "main haskell list"?
This is the description of the Haskell mailing list: "haskell@haskell.org (read & search via gmane) Announcements, discussion openers, technical questions. haskell@haskell.org is intended to be a low-bandwidth list, to which it is safe to subscribe without risking being buried in email. If a thread becomes longer than a handful of messages, please transfer to haskell-cafe@haskell.org."
All announcements should go to haskell@haskell.org if nowhere else. In practice, it is probably best to post to both haskell and haskell- cafe and this is what most people do.
Hmm, interesting, I've never bothered subscribing to that list. I assumed it was a moderated announcement list that I wouldn't be able to post to myself, i.e. it would be a one-way list only. My assumption was most likely based on my experience with Debian announcement lists.
I have a hard time seeing a point in having that list:
- there should be no discussions on the list, and - people suggest that announcements be X-posted to haskell-cafe.
Hmm, so what is posted to haskell@haskell.org that a subscriber to haskell-cafe would be inerested in?
/M
-- Magnus Therning (OpenPGP: 0xAB4DFBA4) magnus@therning.org Jabber: magnus@therning.org http://therning.org/magnus identi.ca|twitter: magthe _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

back to the original topic of the thread.. cool project, id be interested ina pure-FS backend as well, as the overhead of a git/hg add/commit is a bit too much for eg a single 'field' of data plus you can also verison via new URIs and/or a subtree-versioning FS like BTRfs...

On 26 Jan 2009, at 06:17, carmen wrote:
back to the original topic of the thread..
cool project,
id be interested ina pure-FS backend as well,
Indeed, very cool! Can I make another feature request – generalize how diffs are created, so that I could in theory parse the file contents, and then diff the CSTs rather than diffing text. Bob

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On Mon, Jan 26, 2009 at 5:35 AM, Thomas Davie wrote: -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEAREKAAYFAkl9zdAACgkQvpDo5Pfl1oKpawCdGc/rC5JOavHiUw/vpnrAkaqw KmsAoJf7NgTWJyXMag7OH3uzA5JOpUa6 =kU/4 -----END PGP SIGNATURE-----
On 26 Jan 2009, at 06:17, carmen wrote:
back to the original topic of the thread..
cool project,
id be interested ina pure-FS backend as well,
Indeed, very cool!
Can I make another feature request – generalize how diffs are created, so that I could in theory parse the file contents, and then diff the CSTs rather than diffing text.
Bob_______________________________________________
Well, if you look you see that 'diff' is in the Generic module; that is, diff can be defined using the basic operators provided by the backend. In this case, you 'diff' two versions by retrieving a specific revision, storing it, and then retrieving the other specific revision, storing it, and then filestore calls the Diff package on the two Strings. Nothing stops you from copying this approach and adding in a parsing step and then passing it to a custom diff - as long as the backend supplies 'retrieve', you're good. -- gwern

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On Mon, Jan 26, 2009 at 12:17 AM, carmen wrote:
back to the original topic of the thread..
cool project,
id be interested ina pure-FS backend as well,
as the overhead of a git/hg add/commit is a bit too much for eg a single 'field' of data
Well, for high-performance we expect people to use Data.Binary and roll their own subset of version-controlling capabilities. If you wouldn't use git or darcs for something to begin with, filestore isn't going to help much.
plus you can also verison via new URIs and/or a subtree-versioning FS like BTRfs...
Going through a versioning FS sounds like a good idea, although I wouldn't want to implement some of the more complex functions like a history changelog. Patches are welcome. (Versioning plain files vie new names sounds very inefficient to me, though; I wonder if such a system would be worse than just using darcs/git.) - -- gwern -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEAREKAAYFAkl9zDEACgkQvpDo5Pfl1oI98ACfdt7jic+VccLSVaBBvuvAHBJ6 3UwAn365v53Zzm2mK2CCWCaRbCxT+Kum =LJol -----END PGP SIGNATURE-----

On Mon, 2009-01-26 at 01:14 +0300, Miguel Mitrofanov wrote:
Maybe, we should have another command in cabal-install, something like "cabal announce", that would post an announcement to haskell@haskell.org?
There is an RSS feed of hackage uploads of course. We could work on making that more informative. Duncan

I wonder if Bulat Ziganshin's FreeARC software could serve as a back- end to the filestore API, and if it did what sort of time and space performance it would have. And if it was good, then I wonder if it could then be used by darcs. :-) Regards, Zooko On Jan 24, 2009, at 17:19 PM, Bulat Ziganshin wrote:
Hello Gwern,
Sunday, January 25, 2009, 2:56:07 AM, you wrote:
my usual complaint: it will be great to see all announces duplicated in main haskell list
ANN filestore 0.1
We are pleased to announce the first release of a new library, filestore.
What is it? filestore provides a uniform, abstract, generic interface for storing versioned files on disk. It allows calling programs to use generic commands to store strings or binary data and perform various queries, such as 'what files are in this repository?' or 'what were the contents of this file at revision XXXXXXX?' or 'give me a diff of this file between revision XXXXXXX and revision YYYYYYY.' Because the interface is abstract, the calling program is insulated from the messy details of the backend (which might be a VCS or a database).
What backends are supported? Darcs and Git are fully supported. There are plans for a SQLite backend.
What is this good for? Currently it is used by two wikis, Gitit and Orchid. We hope it will see use in other applications as well that need to version data and would like the various advantages of DVCSs (such as easy collaboration, advanced merging, etc.).
Where can you get it? Your local cabal-install, Hackage at http://hackage.haskell.org/cgi-bin/hackage-scripts/package/filestore and of course you can do 'darcs get http://johnmacfarlane.net/repos/filestore' for the very latest.
filestore was written by John MacFarlane, Gwern Branwen, and Sebastiaan Visser
-- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
--- Tahoe, the Least-Authority Filesystem -- http://allmydata.org store your data: $10/month -- http://allmydata.com/?tracking=zsig

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On Mon, Jan 26, 2009 at 1:52 PM, zooko wrote:
I wonder if Bulat Ziganshin's FreeARC software could serve as a back-end to the filestore API, and if it did what sort of time and space performance it would have.
And if it was good, then I wonder if it could then be used by darcs. :-)
Regards,
Zooko
I'd say there're a few roadblocks before this route is pursued any further. For example, looking at the FreeArc website, I see that there is apparently no 64-bit version. Which is an issue. - -- gwern -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEAREKAAYFAkl+HIwACgkQvpDo5Pfl1oKHuQCfSJk9mNHfBEmwcNorNANOdsZ0 MZsAmgJlkCGC5ehagUX9/hmCcbkJfoIX =NhqH -----END PGP SIGNATURE-----
participants (16)
-
Bulat Ziganshin
-
carmen
-
Derek Elkins
-
Duncan Coutts
-
Gwern Branwen
-
Jeremy Shaw
-
Jonathan Cast
-
Ketil Malde
-
Magnus Therning
-
Malcolm Wallace
-
Miguel Mitrofanov
-
Simon Michael
-
Sittampalam, Ganesh
-
Thomas Davie
-
Tristan Seligmann
-
zooko