digitalmars.D - Some tools for D
- Downs (37/37) Aug 21 2007 -----BEGIN PGP SIGNED MESSAGE-----
- Jari-Matti =?ISO-8859-1?Q?M=E4kel=E4?= (4/6) Aug 21 2007 A bit OT, but since you started signing your messages, is the public key
- Downs (71/73) Aug 21 2007 -----BEGIN PGP SIGNED MESSAGE-----
- Stephen Waits (4/14) Aug 21 2007 You might be interested in checking out S/MIME.
- =?ISO-8859-1?Q?St=E9phan_Kochen?= (22/23) Aug 22 2007 -----BEGIN PGP SIGNED MESSAGE-----
- Downs (26/26) Aug 23 2007 -----BEGIN PGP SIGNED MESSAGE-----
- Bill Baxter (4/7) Aug 23 2007 Downs, man, come back from the future and hang out with the rest of us
- Downs (14/24) Aug 23 2007 -----BEGIN PGP SIGNED MESSAGE-----
- Bill Baxter (9/26) Aug 23 2007 I'm not sure it's the server's fault.
- Bruno Medeiros (6/36) Aug 23 2007 Using the threaded view also makes the conversation appear in the right
- Downs (15/15) Aug 23 2007 -----BEGIN PGP SIGNED MESSAGE-----
- Walter Bright (5/8) Aug 25 2007 Thanks for making these tools available. But I strongly suggest posting
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Here's a collection of useful, generic tools code that extends the D language. Originally written for Phobos, it should be easily adaptable to Tango. Includes: * tools.tests: Some simple test functions for unittests, used throughout the package itself * tools.iter: Iterator templates, including some useful default iterators such as the classical map, reduce, filter and zip as well as concat * tools.mrv: Multiple Return Values implementation, consisting of a TupleStruct and a MultiVariableHolder based on pointers (I've posted this one before, I believe) * tools.ext: Combines tools.iter and tools.mrv into TSzip, a zip iterator using tuple structs. Also allows chaining of delegates. Example (identity function): chain~(int e) { return e*2; }~(int e) { return e/2; } Furthermore, a Loop template based on chain, ifIs and mustBe, which simplify testing for an object's type. Example: class A { } class B : A { } A foo=new B; // evaluates to true ifIs(foo, (B b) { return true; }, { return false; }); Furthermoar, an Integers iterator, used like Integers[5..50]. * tools.threadpool: A really simple threadpool class. Also allows distributed foreach over an iterator. Do not be disturbed by the total lack of comments - most of it is fairly straightforward code which I simply didn't see any need to annotate. Have fun! --downs -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGyx6EpEPJRr05fBERAls7AKCWtOA/gDafE8iwCOHOHhM2FayhgwCfaKSE KoEYFlbXpQRGpCK+b8kiOBM= =6EOM -----END PGP SIGNATURE-----
Aug 21 2007
Downs wrote:-----BEGIN PGP SIGNED MESSAGE-----...-----END PGP SIGNATURE-----A bit OT, but since you started signing your messages, is the public key available somewhere? Could you send it e.g. to public key servers?
Aug 21 2007
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Jari-Matti Mäkelä wrote:A bit OT, but since you started signing your messages, is the public key available somewhere? Could you send it e.g. to public key servers?Eh, that was primarily because I happened upon a Thunderbird build with OpenPGP in, and it has signing switched on by default, so instead of bothering to find out how to disable it I decided to simply set it up and use it .. then in the course of that I found out how to disable it after all, but at that point I was already well into setting it up, so I just went on. Apart from that, public key is appended to the end of the message. Have fun! --downs - -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.7 (GNU/Linux) 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 sdc5e6etAIU= =1+cp - -----END PGP PUBLIC KEY BLOCK----- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGy0GopEPJRr05fBERAu/uAJ9xyU7pYKcGGSYPGQDtMfOlgxKHQQCfYKdA Rv/USrlm6JUJWuDmpcGhEJk= =6STY -----END PGP SIGNATURE-----
Aug 21 2007
Downs wrote:-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1[snip]-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGy0GopEPJRr05fBERAu/uAJ9xyU7pYKcGGSYPGQDtMfOlgxKHQQCfYKdA Rv/USrlm6JUJWuDmpcGhEJk= =6STY -----END PGP SIGNATURE-----You might be interested in checking out S/MIME. --Steve
Aug 21 2007
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Stephen Waits schreef:You might be interested in checking out S/MIME.That came out of nowhere. PGP is more popular among communities because it uses a trust system based on a web trust. (This signature belongs to that person because: I've met this person and trust him, OR 'x' other people I know trust him.) S/MIME is more popular in corporations because it's certificates are based on a hierarchy of certificate authorities. (This signature belongs to that person, because the certificate was issued by Company, and Company's signature was in turn signed by Thawte, for example.) Not having any kind of authority works well for community projects. It's worth a discussion in itself, but I don't see a reason to have that here. I personally use PGP, and think it works well enough in Thunderbird with the Enigmail extension. - -- Stéphan -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFGzBfvcFUq0gzqDwQRAgQnAJsE9MV8iIDqSYsoNQG3u2fuXpYy4wCZAZgU autiV8vmEcN4MNJ6KGQMlX4= =38kD -----END PGP SIGNATURE-----
Aug 22 2007
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Here's a patch that introduces a vastly simplified map/reduce/filter syntax for small functions. Also allows you to use functions instead of delegates. Example: * Previous version: * Integers[0..10]~ tszip(Integers[10..20])~ map((TupleStruct!(Pair!(int)) ts) { return ts.values[0]*ts.values[1]; })~ reduce((ref int a, int b) { a+=b; }) * Patched Version: * Integers[0..10]~ tszip(Integers[10..20])~ maps!("_.values[0]*_.values[1]")~ reduces!("+=_") --downs -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGzVFxpEPJRr05fBERAhJTAJ4tUJ1c/3OrEvQ+0kVtea8oCGufYgCfRSiY wAnW+sjfL3tRkb50urH0luM= =G/82 -----END PGP SIGNATURE-----
Aug 23 2007
Downs wrote from an hour in the future:...Here's a patch that introduces a vastly simplified map/reduce/filter syntax for small functions. Also allows you to use functions instead of delegates.Downs, man, come back from the future and hang out with the rest of us here. Or at least give us some stock market tips. --bb
Aug 23 2007
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Bill Baxter wrote:Downs wrote from an hour in the future:Sorry, my system clock was set to local time. It should be fixed now. Apropos, is it really a good idea for the news server to trust the client with the message time? --downs -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGzUy4pEPJRr05fBERApNdAJ45FzsAOlFRRiFRR1ELTvBMoNyaZACgokxy 9DOYx+2rtIFz/2PvqpRrJ+E= =SSye -----END PGP SIGNATURE-----...Here's a patch that introduces a vastly simplified map/reduce/filter syntax for small functions. Also allows you to use functions instead of delegates.Downs, man, come back from the future and hang out with the rest of us here. Or at least give us some stock market tips. --bb
Aug 23 2007
Downs wrote:-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Bill Baxter wrote:I'm not sure it's the server's fault. Actually I just discovered thunderbird has a way to sort by "order received" which uses the message number rather than date. Also the messages all have a header like: NNTP-Posting-Date: Thu, 23 Aug 2007 09:01:01 +0000 (UTC) in addition to the listed date. So maybe it's more a newsreader issue. --bbDowns wrote from an hour in the future:Sorry, my system clock was set to local time. It should be fixed now. Apropos, is it really a good idea for the news server to trust the client with the message time? --downs...Here's a patch that introduces a vastly simplified map/reduce/filter syntax for small functions. Also allows you to use functions instead of delegates.Downs, man, come back from the future and hang out with the rest of us here. Or at least give us some stock market tips. --bb
Aug 23 2007
Bill Baxter wrote:Downs wrote:Using the threaded view also makes the conversation appear in the right order. -- Bruno Medeiros - MSc in CS/E student http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#D-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Bill Baxter wrote:I'm not sure it's the server's fault. Actually I just discovered thunderbird has a way to sort by "order received" which uses the message number rather than date. Also the messages all have a header like: NNTP-Posting-Date: Thu, 23 Aug 2007 09:01:01 +0000 (UTC) in addition to the listed date. So maybe it's more a newsreader issue. --bbDowns wrote from an hour in the future:Sorry, my system clock was set to local time. It should be fixed now. Apropos, is it really a good idea for the news server to trust the client with the message time? --downs...Here's a patch that introduces a vastly simplified map/reduce/filter syntax for small functions. Also allows you to use functions instead of delegates.Downs, man, come back from the future and hang out with the rest of us here. Or at least give us some stock market tips. --bb
Aug 23 2007
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I made a rather stupid mistake in ifIs that would make the program crash hard. Sorry. Here's the patch for the fixed version against the original post (also includes the other patch). Also, just to make it clear - I don't think any of this stuff is copyrightable on account of being too trivial. So take what you need. --downs -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGzVhSpEPJRr05fBERAv4TAJ9phEOvzG1xyozrvdIrexijW8eb/wCeKp3t EwG2Gr9+9qLD9TlavbeEOT4= =JW2B -----END PGP SIGNATURE-----
Aug 23 2007
Reply to Downs,-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I made a rather stupid mistake in ifIs that would make the program crash hard. Sorry. Here's the patch for the fixed version against the original post (also includes the other patch). Also, just to make it clear - I don't think any of this stuff is copyrightable on account of being too trivial. So take what you need. --downsWoudl you like to put this in scrapple?-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux)Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGzVhSpEPJRr05fBERAv4TAJ9phEOvzG1xyozrvdIrexijW8eb/wCeKp3t EwG2Gr9+9qLD9TlavbeEOT4= =JW2B-----END PGP SIGNATURE-----
Aug 23 2007
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 BCS wrote:Reply to Downs, I made a rather stupid mistake in ifIs that would make the program crash hard. Sorry. Here's the patch for the fixed version against the original post (also includes the other patch). Also, just to make it clear - I don't think any of this stuff is copyrightable on account of being too trivial. So take what you need. --downsSure, thanks for the offer :D --downs -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGzaWppEPJRr05fBERAoFGAJwNaRRmwe1JTuFPAGwA108rlzzY2wCfbdfF H1ZxIDWM8/49R6OlPdkzoAk= =hgIg -----END PGP SIGNATURE-----Woudl you like to put this in scrapple?
Aug 23 2007
Reply to Downs,-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 BCS wrote:sned me a dsource username and I'll add you as a dev.Reply to Downs, I made a rather stupid mistake in ifIs that would make the program crash hard. Sorry. Here's the patch for the fixed version against the original post (also includes the other patch). Also, just to make it clear - I don't think any of this stuff is copyrightable on account of being too trivial. So take what you need. --downsSure, thanks for the offer :Woudl you like to put this in scrapple?
Aug 23 2007
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 BCS wrote:Reply to Downs,Thanks; I'm FeepingCreature :) --downs -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGzykYpEPJRr05fBERAmkTAJ9YDk6ZcI9Lv4GHr1Nq2NJEP3Y5egCeMP5W nXF06nFSUm5TpyeJlhLl8wk= =TgL9 -----END PGP SIGNATURE----------BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 BCS wrote:sned me a dsource username and I'll add you as a dev.Reply to Downs, I made a rather stupid mistake in ifIs that would make the program crash hard. Sorry. Here's the patch for the fixed version against the original post (also includes the other patch). Also, just to make it clear - I don't think any of this stuff is copyrightable on account of being too trivial. So take what you need. --downsSure, thanks for the offer :Woudl you like to put this in scrapple?
Aug 24 2007
Reply to Downs,your in, have funsend me a dsource username and I'll add you as a dev.Thanks; I'm FeepingCreature :) --downs
Aug 25 2007
Downs wrote:Here's a collection of useful, generic tools code that extends the D language. Originally written for Phobos, it should be easily adaptable to Tango.Thanks for making these tools available. But I strongly suggest posting them on http://www.dsource.org, which is designed for hosting projects, and then post an announcement here that links to them. The newsgroups make for a terrible source code repository.
Aug 25 2007