Experimental IRC log happs-2007-11-28

Available formats: content-negotiated html turtle (see SIOC for the vocabulary)

Back to channel and daily index: content-negotiated html turtle

These logs are provided as an experiment in indexing discussions using IRCHub.py, Irc2RDF.hs, and SIOC.

00:03:29<Saizan>yes
00:03:51<perspectivet>can you see a problem with runtime aRCH_ENDIAN determination
00:04:30<perspectivet>like this:
00:04:31<perspectivet>if (runGet getWord16host (runPut $ putWord16be (0x0001::Word16))) == 0x0001 then
00:04:59<Saizan>compile time is a mess?
00:05:08<perspectivet>no, I just thought run-time might be nicer
00:06:10<Saizan>i think it's ok, if it doesn't get inlined
00:07:18<Saizan>did it work on ppc?
00:07:56<perspectivet>haven't had the chance to try it yet. Was a bit busy on monday and I had to get the mac up and running with ghc 6.8.1 and spread.
00:08:08<perspectivet>That's done now so I should be able to do it quickly tomorrow.
00:08:21<Saizan>ok, fine
00:09:37<perspectivet>The reason I like the run-time is that it doesn't require a mapping for a given HOST_ARCH (can't find an endianness precomp flag)
00:10:53<Saizan>regarding the license, i don't know how to behave wrt the spread one
00:12:49<perspectivet>AFAICT it just requires this: All advertising materials (including web pages) mentioning features or use of this software, or software that uses this software, must display the following acknowledgment: "This product uses software developed by Spread Concepts LLC for use in the Spread toolkit. For more information about Spread see http://www.spread.org"
00:13:28<perspectivet>though perhaps not because the client impl is original.
00:14:28<Saizan>yeah, that was my doubt
00:15:05<Saizan>but putting that disclaimer in a README doesn't sound honerous :)
00:15:50<perspectivet>no, true, though as soon as multi-master spread is completed happs.org would need an aknowledgement as well
00:16:12<perspectivet>if one decides that hspread is bound by the above clause
00:18:48<perspectivet>on a related question are you thinking of putting this up on hackage or just making it part of happs?
00:19:19<Saizan>it would probably go on hackage
00:19:53<perspectivet>cool. I'm down with more exposure
00:20:12<perspectivet>So are you going to look at a native haskell server?
00:23:03<Saizan>mmh, i'd like something resembling a testsuite first, but maybe it would be easier to write once you have server part..
00:24:59<perspectivet>Yeah, I was going to expand on hspflooder for a more comprehensive set of tests
00:25:21<perspectivet>different message lengths, failure modes, etc.
00:25:42<perspectivet>ordering tests
00:29:09<kaol>< perspectivet> no, true, though as soon as multi-master spread is completed happs.org would need an aknowledgement as well
00:29:34<kaol>that doesn't sound like something that could be included in Debian anymore :-(
00:30:21<perspectivet>hmmm, yeah, that could be a problem
00:30:37<Saizan>why not?
00:32:41<perspectivet>http://www.debian.org/social_contract#guidelines
00:33:29<perspectivet>spread requirements might run into problems with 9
00:34:07<kaol>I'd say more like DFSG6
00:34:13<kaol>No Discrimination Against Fields of Endeavor
00:34:28<perspectivet>however, spread is already included in debian, so...
00:34:33<perspectivet>I think we're in the clear
00:34:37<kaol>it needs to be usable in software that has no user interface
00:35:07<kaol>it shouldn't be, with that license
00:37:31<Saizan>well, if we don't implement the server happs will definitely fall in that license
00:38:14<Saizan>but i think it could still use a normal BSD3 for its own license?
00:39:54<perspectivet>I'd be tempted to pass this question on to the debian legal guys.
00:43:02<Saizan>heh
00:45:35<perspectivet>Saizan: so has the spread multi-master work started?
00:47:09<kaol>I'm asking for a second opinion regarding spread's license right now
00:47:10<Saizan>not yet
00:48:23<Saizan>it will start after the next proper release, afaik
00:49:09<perspectivet>ie, when 0.9.1 is properly released?
00:50:49<Saizan>it seems :)
00:51:55<perspectivet>anyone know when that's likely to happen?
00:53:21<Saizan>it should be soon, alexj is probably the best person to ask it
00:54:18<perspectivet>yeah, not a big deal
00:54:24<perspectivet>just curious
00:54:24<Saizan>(i think i got the grammar wrong on that last sentence?)
00:54:37<kaol>well, others saw nothing wrong with Spread's license regarding Debian... Sorry for the fuss.
00:54:45<perspectivet>sweet
01:09:56<Saizan>the ruby binding uses the perl artistic licence and python's one the standard FSF, so i think we're quite to use BSD
01:10:06<Saizan>s/quite/free/
01:33:23<perspectivet>excellent. later.
17:37:26<shapr>hiya!
17:37:41<bakert>hello shapr
17:37:48<bakert>what gives?
17:41:13<shapr>I'm hacking up a wiki for the new code, what's up with you?
17:41:39<bakert>i am chickening out of writing an ircbot-wiki-website combo in haskell and probably doing it in ruby instead
17:41:44<shapr>ah well
17:42:00<bakert>weak
17:42:32<bakert>it would be a great learning experience to do it in haskell but not sure it would ever get finished given my level of haskell knowledge :)
17:42:57<bakert>plus i couldn't bear to do the website/wiki in anything other than happs ... which would make me even slower as i really don't get happs
17:54:34<shapr>Well, I'm working on a high level overview now.
17:55:14<shapr>"Since function calls cannot be serialized, matching data constructors are created for each function."
17:56:40<shapr>"To peel your data types out of submitted data, you can create a FromData instance that automatically turns part of a POST into that type."
17:57:51<shapr>"To show your own data types in the browser you can use xslt to format HAppS' automatic xml output, turn them into XML in your Haskell code, or write a ToMessage instance for more control."
17:58:16<bakert>sounds good
17:58:27<shapr>Any specific points you think I should cover?
17:59:08<shapr>Hopefully I can demonstrate all of these points with the wiki code.
18:01:25<bakert>for me the only important thing is the basics :)
18:01:40<shapr>What qualifies as the basics to you?
18:03:41<bakert>"hello world"
18:03:52<bakert>- how to put some static html at a particular url
18:04:01<bakert>- how to write a form to the response
18:04:07<bakert>- how to read the values submitted in a form
18:04:16<bakert>- how to deal with state/database/things
18:04:25<bakert>that would be long strides from where i am now!
18:05:46<shapr>ah
18:05:52<shapr>I can do that.
20:09:14<perspectivet>just went through a quick test on a ppc mac.
20:09:21<perspectivet>hspread doesn't work there currently.
20:09:29<perspectivet>haven't looked into why yet.
20:10:46<Saizan>having changed ARCH_TYPE?
20:14:09<perspectivet>yeah
20:16:23<Saizan>i'd try using the old value, also, however let me know the details when you can :)
20:16:42<perspectivet>I've tried that as well.
20:17:26<Lemmih>What's an example use of hspflooder?
20:17:29<perspectivet>initially I got a "hspflooder: connect: does not exist (Connection refused)"
20:17:42<perspectivet>hspflooder -h for usage
20:18:47<perspectivet>then I switched the "localhost" to "192.168.1.102" and got
20:19:55<perspectivet>"hspflooder: <socket: 3>: hPutBuf: illegal operation (handle is closed)"
20:20:18<Saizan>mh
20:20:31<perspectivet>I'm going to put some debug statements in and try to get a bit more info later this aft.
20:21:02<Saizan>the log of the server is often useful
20:21:48<perspectivet>I'll take a look at that too. thanks.
20:22:10<Saizan>with these flags DebugFlags = { EXIT PRINT SESSION }
20:22:34<perspectivet>I'll add that and email you the log
20:23:12<Saizan>k
20:27:42<perspectivet>sent
20:27:52<Saizan>actually it's quite weird, there's nothing endian related in connect.
20:28:54<perspectivet>I get past the connection problem by specifying the ip address instead of localhost
20:29:16<Saizan>ah
20:29:25<Saizan>so that happens after sending a message?
20:29:55<perspectivet>client: "hspflooder: <socket: 3>: hPutBuf: illegal operation (handle is closed)"
20:30:13<Saizan>ah ok, so joining.
20:30:15<perspectivet>you have the server log from the above client error
20:30:26<perspectivet>yeah.
20:31:05<perspectivet>I guess lots of the happs devs are using macs, right?
20:31:52<Saizan>i have no idea, i'm not
20:35:43<Lemmih>I think Alex is the only one.
20:36:00<perspectivet>he's probably on an x86 mac, too, right?
20:36:28<Saizan>are you suggesting to drop support for big-endian archs?:)
20:36:47<Lemmih>Saizan: What's an example use of hspflooder?
20:36:48<perspectivet>no, I'm just letting my laziness evaluation my options
20:37:02<perspectivet>*evaluate
20:37:36<perspectivet>Lemmih: "hspflooder"
20:37:41<Saizan>Lemmih: hspflooder just sends messages to the "flooder" group and quits, so ./hspflooder is an example
20:37:56<perspectivet>default args should work given the default spread.conf
20:38:12<Lemmih>hspflooder: connect: does not exist (Connection refused)
20:38:31<perspectivet>Lemmih: are you on a bigendian machine?
20:38:47<perspectivet>ugh, scratch that
20:38:58<perspectivet>Lemmih: what type of system are you running?
20:39:20<Lemmih>Dual core amd64.
20:39:35<perspectivet>os?
20:39:41<perspectivet>distro?
20:39:56<Saizan>maybe the server is just not configured to not listen on localhost?
20:40:11<Saizan>(one not too much)
20:40:32<perspectivet>a firewall would put a damper on spread functioning correctly
20:41:01<perspectivet>but the issue with the join message is an endian problem
20:41:15<Lemmih>Ubuntu.
20:41:26<Saizan>yes, but that's an error from Network.connecTo
20:41:48<Saizan>Lemmih: the server is on the same machine? configured to use localhost?
20:42:36<Saizan>it may be better if hspflooder could take the server address as an argument
20:42:44<Lemmih>Saizan: What server?
20:42:57<perspectivet>yeah, in the same way as the existing spflooder
20:43:08<perspectivet>forgot to add that.
20:43:09<perspectivet>sorry
20:43:14<Saizan>Lemmih: the spread server
20:43:49<Lemmih>Ah, so running 'hspflooder' isn't the whole deal.
20:44:14<Saizan>no, that's just a client, sorry i didn't thought to tell you that
20:44:21<perspectivet>that might cause a connection error ;)
20:44:45<Saizan>you've to install and run the server from the tarball on spread.org
20:46:22<perspectivet>Lemmih: use version 4.0.0
20:46:34<perspectivet>Saizan: looks like we need a README
20:46:55<Lemmih>Hm, Ubuntu only has version 3.17.3
20:47:19<perspectivet>4.0.0 should compile from source in short order
20:48:05<Saizan>perspectivet: have you tested it with 3.x? it doesn't work?
20:48:41<perspectivet>I haven't, no
20:48:44<Saizan>ah
20:48:53<perspectivet>http://www.spread.org/news/news-Spread4Release.html
20:49:07<Lemmih>Ew, spread.org wants my name and email.
20:49:43<perspectivet>Saizan: can you add a download link on happs.org?
20:49:54<perspectivet>just to circumvent that crap
20:50:59<Lemmih>What's the server called? I have spuser, sptuser, spflooder and flush_user.
20:51:56<Saizan>it's called spread, but it's in sbin
20:52:29<Saizan>i had to pass it -n localhost
20:53:12<Lemmih>There we go.
21:04:23<kaol>Spread's license might be ok for Debian but it's still going to be GPL incompatible... /me doesn't like that either.
21:05:16<perspectivet>yeah, more incentive to do a haskell spread compatible daemon
21:06:01<kaol>ACTION should do something too once in a while and not just grumble about licenses
21:07:59<perspectivet>Saizan: any idea where the join message type is getting flipped?
21:10:17<Saizan>not yet, i haven't started to work on it
21:10:39<perspectivet>ok, I took a cursory look, but nothing jumped out at me.
21:46:28<shapr>Hiya alexj
21:46:57<alexj>hiya shapr
22:25:35<perspectivet>Saizan: I've got a patch for hspflooder. It add spread server selection using the spread naming convention
22:28:50<perspectivet>Also tested a little endian hspflooder against a bigendian spread server. A slightly higher level of success than be -> be, but not much
22:31:42<Saizan>i may have found the problem
22:34:03<perspectivet>ok
22:37:07<perspectivet>patch is in the mail
22:37:23<Saizan>pushed mine
22:37:33<perspectivet>I'll pull and test
22:43:58<perspectivet>join is working be -> be and le -> be, but I'm getting the following msg on the server log
22:43:59<Saizan>when darcs record asks for the patch name you should use a descriptive name, because it will be used in the repo when pulling etc.. file.patch was only a dummy name for the file to send to me
22:44:14<perspectivet>ok, will do
22:44:29<perspectivet>sorry
22:44:34<Saizan>no problem
22:44:53<perspectivet>server log msg
22:45:36<perspectivet>"Sess_read: queuing message of type 2 with len 0 to the protocol"
22:46:50<perspectivet>hmmm, maybe that's not actually a problem, spflooder produces the same
22:47:09<Saizan>yes, that's the normal output when you send a join message i think
22:47:23<perspectivet>this is during the test send loop
22:47:46<perspectivet>post-join, pre-leave
22:47:58<Saizan>ah, yes
22:48:19<Saizan>in fact you send reliable messages, which have a type of 2
22:48:28<perspectivet>ah, ok
22:49:26<perspectivet>I'll add checking of the return message contents the non-selfDiscard case at some point over the next couple of days
22:50:01<perspectivet>and add an option to randomize the message contents
22:51:35<perspectivet>that'll give me a little more confidence that the round trip is happening successfully
22:53:17<Saizan>yup
22:54:02<Saizan>i'm thinking that all these record-types should have strict fields, we don't use the laziness anyway
22:55:08<perspectivet>you mean the message types?
22:55:44<Saizan>yes, InMsg,OutMsg,Raw and maybe Connection
22:57:37<perspectivet>does strictness buy us anything?
22:57:57<perspectivet>(I'm new to laziness), from a language standpoint, anyway
22:59:11<Saizan>with {-# UNPACK #-} it should use a little less memory and maybe a level of indirection, so it's just premature optimization :)
22:59:43<Saizan>wrt semantics once you know the constructor is there you know that the fields are not bottoms
23:03:07<perspectivet>Yeah, I guess the first could be a win, but won't we do better with the current version if we lazily construct messages and for whatever reason, not send them?
23:05:48<Saizan>well until you inspect the constructor (e.g. using seq on it) nothing will be force
23:05:51<Saizan>d
23:07:13<perspectivet>Might be worth saving. Don't we have enough to do? ;)
23:07:31<Saizan>data Foo = Foo !Int, Foo undefined `seq` () == undefined, but e.g. (Foo undefined,Foo undefined) `seq` () == ()
23:08:20<Saizan>heh :)
23:08:55<perspectivet>I'd like to get people using things asap to know if we need/want a higher level api.
23:09:17<perspectivet>I've got my eyes on the same erlang-killing feature set as alexj
23:09:30<perspectivet>I think
23:11:33<sjanssen>Saizan: in xmonad, I've found strict record fields to be a major win
23:11:40<sjanssen>and not for the performance implications
23:11:49<sjanssen>it smashes the possibility for space leaks
23:12:13<sjanssen>and GHC will give a compile-time error if you forget a strict record field during construction
23:15:35<Saizan>yup. so the user can't send us an undefined bomb
23:16:07<Saizan>well, after we inspect the contructor..
23:16:14<sjanssen>right
23:17:02<Saizan>i'm trying to see what problems could this give

Back to channel and daily index: content-negotiated html turtle