6.2.10 released! xrl.us/hxnb | geoffb's column (/. ed): xrl.us/hxhk | pugscode.org | pugs.kwiki.org | paste: paste.lisp.org/new/perl6 or sial.org/pbot/perl6 | www.geeksunite.net
Set by integral on 25 October 2005.
svnbot6 r7741 | luqui++ | Fixed ().perl 00:11
luqui ?eval [] 00:14
evalbot_7741 []
luqui hooray
?eval [3]
evalbot_7741 [3,]
theorbtwo ?eval () 00:20
evalbot_7741 ()
theorbtwo ?eval [[], []]
evalbot_7741 [[], []]
stevan putter: dont go anywhere
putter: I have to take the dog out, bbiab, but dont leave :) 00:22
putter: ping # im back 00:25
luqui ?eval (()) 00:35
evalbot_7741 ()
luqui ?eval [[]]
evalbot_7741 [[],]
luqui ?eval [[[[[[]]]]]]
evalbot_7741 [[[[[[],],],],],]
luqui ?eval [[[[[()]]]]]
evalbot_7741 [[[[[],],],],]
luqui ?eval sub id (*@_) { @_ } [[[[[id()]]]]] 00:36
evalbot_7741 [[[[[],],],],]
luqui ?eval sub id (*@_) { @_ } [[[[[item id()]]]]]
evalbot_7741 [[[[[],],],],]
luqui ?eval sub id (*@_) { @_ } [[[[[item ()]]]]]
evalbot_7741 [[[[[],],],],]
stevan hey luqui 00:50
putter ;) hi stevan
stevan putter!!!!!!
putter L)
err, :) 00:51
stevan LOL
hey putter,.. so your back,..where yah been?
putter life...
stevan ah
putter perhaps a bit burned out on pugs...
stevan yeah that can happen 00:52
putter remember the spring... "trade tests for bug fixes"... 00:54
stevan yeah
putter ah well.
stevan so are you back,.. or just dropping by?
luqui hi stevan
stevan hey luqui 00:55
whatcha doing will all the [[]]]] stuff?
luqui oh, [].perl was throwing a bad error
so I fixed it
and then I was just playing
stevan was hoping for a tuple type or something
luqui once Larry weighs in all his thoughts on the tuple, it will be in 00:56
for the moment, I'm hacking perl6.vim
putter mmm... tuples... 00:58
svnbot6 r7742 | luqui++ | Added the c| sigil to perl6.vim. 00:59
stevan putter: I have to run in a sec, but good to see you back 01:01
If you are up to it, I would like to work out some object space details
if you havent already, I recommend reading the PyPy docs,... they are very interesting so far 01:02
I like their approach
putter thanks stevan, sure, I can be around for an hour or so.
hmm, I haven't looked at pypy in about 9 months or so. any changes?
but later.
stevan I dunno, I only really looked at it recently
putter: i got 10 minutes now if you do? 01:03
putter sure. 01:04
what's our objective?
stevan well I read over the P6::V/C stuff
putter ok
stevan the thing that I was worried about was that the metamodel and the native stuff was so intertwined
putter yes
stevan I think they should be at different ends (as in my drawing) 01:05
so that I can build the metamodel with the natives and then we can wrap
I am currently taking the native bits in P6::Value and tweaking them a bit
putter what aspect of interwined is of concern? 01:06
stevan well, I cannot build the metamodel with a class which is implemented with the metamodel
but the metamodel should (eventually) return boexed types
so when I say MyClass.meta.name 01:07
I should get back a Str instance
where Str is a wrapper around the native 'str' type
which means the metamodel needs to use a 'str' (at least intially)
putter hmm... so this is not a problem for things which the metamodel doesnt need to be working during its own bootstrap, yes? 01:08
stevan the 'str' may get autoboxed into a 'Str', or we may need to wrap Class in some way to implement that autoboxing behavior
yes
the metamodels methods are black boxes 01:09
however, they must take in and return (at a minimum) native runtime types
putter do you have a feel for what the "needs to be working during bootstrap" list looks like?
stevan str, num, bit (or bool), closure, list and hash
closure will have a pad/environment with it too 01:10
I have str, bit and num so far
putter no boxed types. so Str and and Array and P6::V aren't really at issue? just the absence of any str, num, bit, etc?
stevan they are very simple really
no boxed,.. these are runtime types,.. may be exposed as unboxed types later,.. 01:11
well Str and Array should be built using these runtime types
Str should wrap str
this ends up being really low level stuff,.. so str really wont do too much 01:12
putter hmm... so currently, the unboxed types are unembelished p5 things...?
stevan most of the real Perl 6 functionality will be in Str
putter: they are very simple p5 objects
objects
putter currently?
stevan I have some hacked together,.. based on the ones in Perl6::Value 01:13
putter ah. but prior to that, they were p5 values, rather than objects. what motivates the change?
stevan oh you mean in the metamodel?
yes they were just plain old p5 strings and stuff 01:14
putter (approaching original conversation timeout)
stevan the motivation for the change was that I wanted to explore the object space thing :)
and to try and get the Syn12.5 written
but all this required figuring out where my strings were coming from 01:15
putter ... and... you wanted the unboxed types to respond to method calls??
stevan well, I like OO, so I implemented them using OO
they may or may not be exposed to the user as unboxed types
that is not my descision or concern right now 01:16
this does mean the dispatch mechanism in the metamodel will change
actually what I am doing is re-implementing Chaos.pm
in a sense
but my time is up,... so I have to go
read the PyPy docs,.. i think they are probably much further along now
it is very intersting stuff
putter hmm. I'm still confused on a core point. the old unboxed things were p5 values. they are changing to simple p5 objects. I'm still unclear on why. 01:17
ok. nice talk. perhaps see you later.
stevan because if we are going to make a p5 runtime,.. we have to draw a line somewhere
for the metamodel to be portable, it needs to sit on the same foundation
that foundation is really just thin wrappers over native str, num, bit, list, hash, code 01:18
but I gotta run,.. and feel free to rant,.. I will backlog later &
putter stevan: i'm off. perhaps back in ~1/2 hr. one possible conversation looks like "so, what are the objectives of the mm? ... any areas of uncertainty? ... given those objectives towards those clients - in what ways does the existing implementation not meet those objectives? ... what is the intended change? ... how will the objectives met change? any areas of uncertainty?" yada yada. ;) 01:56
questions motivated in part, for example, by my being unclear on what flavors of portability are desired. 01:58
fglock hi stevan putter 02:04
qnetjoe can anyone help with a small perl problem? 02:15
buu no 02:18
eric256_ hello 02:26
fglock hi eric256_ 02:29
02:29 eric256_ is now known as eric256__
eric256__ ?? 02:29
i tried /nick eric256 and it added an extra _ how rude ;)
eric256__ tries to figure out how to use line and colum numbers to ouput test files with highlighted tests. ;) 02:42
fglock stevan: there are p5 objects for str/int/bit in the Perl6::Value::* namespaces - they are in the second half of Value.pm. Hash and Array are also implemented as p5 objects, and then wrapped in the metamodel 02:47
putter: nice cleanup - thanks!
putter hi fglock! 03:13
are you going to be around for a bit? 03:14
(and by implication, are you around now?:)
fglock putter: hi - I was distracted :) I'll be around for an hour 03:19
putter great :) bbiab 03:30
ahhhh. ok. fglock: ping? 03:44
mrborisguy eric256: any way you can get the code pages to use a standard template like the other three types, instead of using treebuilder? 03:45
fglock pong
putter hi, it's been a while. how goes?
eric256__ the code pages load code.tmpl 03:47
and insert the code into the pre tag
so as long as you leave the pre tag its all good..
in short..not yet. directly
fglock I'm helping organize YAPC::SaoPaulo - it will be in less than 2 weeks
I've not worked much in Pugs
but I have some ideas for Array optimization 03:48
putter ah, neat. the boston yapc proposal folks have tried to get me to help, but i just dont have the tuits for something like that.
fglock next year we will have YAPC::SouthAmerica - we already have people from Brazil and Argentina working on it - very nice :) 03:50
mrborisguy eric256: I tried to put an XML prefix on the template, and TreeBuilder must have stripped it off.
which reminds me... are you opposed to formatting the pages in strict XHTML?
putter I'm puzzling over development path. Have you had any thoughts on say the interaction between P6::V/C and MM stuff? Or a P6::V/C cleanup pass? 03:52
eric256__ xhmtl if fine. if you can get TreeBuilder to work with it
Blicero how do you access the last element of an array in perl6
Khisanth @foo[-1] doesn't work anymore?
putter oh, right, yapc takes a region modifier. ;) re yapc::sa, neat! i think the boston proposal is for yapc::na.
hmm, is there a yapc::a? 03:53
eric256__ gtg for now.
Blicero thanks
fglock maybe YAPC::World some day - but the cost of travelling would be high for everyone. Local, smaller YAPCs make it very affordable 03:54
mrborisguy I'll just leave the code pages for now 03:55
putter Basically I managed to break P6::V/C in the course of the rewrite everything. Which was expected, but I'm sort of out of tuits to finish the P6::V/C part. So if you were planning on dusting P6::V/C, or doing something combined with stevan, I'd just punt and wait for a bit. If not, perhaps I should just do a very minimal stripped down version of p6vc, get everything sort of working and committed, and punt there. 03:57
committed as P6::Run::OnPerlyada yada. pilrun would stay the same, so your current development stuff would be unaffected. 03:58
svnbot6 r7743 | eric256++ | catalog_tests.pl - updated templates some more.
putter pictures perl communities chartering aircraft. and the effect of a accident. 03:59
fglock how about separating the p5 objects in a separate file? maybe this would help stevan's work
re Array: it's just about the algorithm - once it works, it can be ported to the working files 04:01
putter I'd love to see a "travel cost show as distance" map of the world. have to be 3-d of course. I'm not sure how to deal with oddities like one direction is more expensive than the other. 04:03
not sure one can do a general map. might need to do "starting point specific" maps. but hopefully not. 04:04
re files...
fglock you have to take politics into account too - visa problems, currency evaluation ...
putter oh, good point.
basically I'm trying to get the overhaul to the point of working well enough that folks would rather fix it than deal with pilrun. but that requires leaving the p6vc part of things in a form you would be comfortable using. and it's not clear to me its there yet. 04:08
fglock would it be possible to move p6vc into the p6 prelude, with the low level parts written in p5? (not sure if PIL would support this) 04:11
putter another posibility is toss the overhaul up as a carcass in misc/, and let folks scavange at will. having done this several times already, I'm rather hesitant to add the "stink" of another one.
re "move ...",
you mean the src/perl6/Prelude.pm ?
fglock no, the p6 part of pil-run Prelude 04:13
putter basically, if pil supported oo, I'd suggest writing a p6 implementation of everything, generate ... oh.
fglock but that's probably a too-big project
anyway, I found that having everything in a big file makes it more readable 04:14
putter that's basically what pil2js does. it's slightly complicated by the objects themselves not making it through pil, but the methods do.
re big file, oh, neat. I was worried that would be one contributor towards "fglock wont want to work on it in this form". 04:15
fglock :) 04:16
we could move all methods to multisubs 04:17
putter re stuffing everything through p6... yes, one could do that. absent pil2, one still needs to play games to get the object information directly from the code. or take pil2js's approach of explicitly coding it, though I lack the patience with clutter to be happy with it in that form. sigh. one approach is to simply punt and wait for pil2. 04:21
fglock did you include Match and Junction too? 04:24
putter re methods vs multisubs, both should be getting through pil fine. so there is not need to change there. basically one can say class C { method m ($n) { magicname('p5 code')($n) } } like pil2js does. or create that from a class C { method m ($n) :p5 { p5 code } } 04:25
re M&J, yes, but at somepoint I ripped/commented out Junctions with a rationale of "I'm having trouble getting even say 'hi' to work. simplify, simplify, and add stuff back once things are working again". 04:27
fglock moving things to p6 will make it even less readable - maybe it's not a good idea at this point. But after PIL2 it would be a nice experiment 04:29
putter err, moving things to p6 doesnt need to make things less readable. we are already paying the complexity cost of doing source filtering, so moving to p6 can be invisible. pil2js just made the quite plausible choice that the complexity of filtering wasnt worth increase in code clarity. 04:32
fglock you have a mini-p6 implemented in a source filter, right? would it be possible to make it even more p6-like? 04:35
putter actually, perhaps my largest reservation about the overhaul is the complexity of the filter which grovels over the big all-in-one prelude file. it's rather larger than the couple of lines used by pilrun's primp5.
ah, yes. I think that boils down to "can one preprocess p6 code in order to fake having pil2". I think the answer is yes, and I intermittantly wonder if I should have taken that approach. didnt. 04:38
fglock yes - can it evolve into a partial implementation of p6? use MM for the objects, and p5 for almost everything else (this is just for the Prelude) 04:39
putter yes. one of the reasons I didnt go down the fake-pil2 path was a minimal-p6 approach had a much faster edit-test loop. but once things were basically working, it was nice to be able to flexibly choose p5 or p6, depending on which was easier. 04:44
on a function by function basis.
re "can it evolve", that's basically what the overhaul does. 04:46
getting late.
fglock nice - so we are going in the right direction, I think 04:47
putter if there was someone interested in taking over the runtime core, I'd just do a handoff with them. but no-one has expressed interest. pilrun is a bit clunky for this next phase of things. so the question is how to keep you and steven supported. of course, if stevan's MM2.1 ?:) combines with P6::V/C, then that's less of a problem. I can just add the overhauled runcore, and we're all set. 04:50
fglock that's a good plan, imo 04:52
putter beyond supporting you and stevan, I'm not sure what the objective of the p5 backend should be. with pil2, a lot of this gets much simpler. if pil2 were to be available in a few weeks, I'd suggest waiting. if not for another half year, one might consider trying to evac from haskell pugs. but the best bet there would be more something like piljs linked with perl as a boostrap platform, rather than the p5 backend. a better p5 backend 04:56
would be a good source of attention, but I'm not sure we want that kind of attention until we get a better handle on oo.
s/attention/attention from the world/
in between, one thinks about preprocessing p6 code with regexps to work around pil1 limitations. 04:58
fglock re the objective: a "readable" p5 backend can help hackers that are scared of learning haskell :) 04:59
putter though there is a different "big picture" flavor of approach. basically doing P6::V/C and the runcore like the existing p5 Perl6:: modules. like stevan's start at a MM cpan module. do the p5 backend piecemeal on cpan. 05:00
re hackers, 05:01
true. my (fuzzy) thought is, we're still critically dependent on pugs/hs parsing, typechecking, and compiling. witness the current issue with objects. that only goes away once p5 has rules and objects, and can host a p6 bootstrap. but pugs/hs is a better place to do that. so... 05:06
fglock 3am here - time to sleep 05:07
putter so it feels kind of like we are starving, sitting between to piles of food, but unable to decide which to eat. if pugs ...
yeah. 1am here. good night fglock. it's been good to touch base with you. 05:08
basically, if pugs/hs was going away, we could probably get a kludge of piljs, perl5, and prolog running in a few weeks. but that would be a silly waste of effort if pugs/hs development is going to pick up again. but it hasn't yet. so things are sort of in limbo. 05:10
fglock keeping reasonable expectations helps avoid burnout - we are doing some useful prototype work, which will be useful for pugs/hs too 05:12
good night 05:13
putter very true. and a good point. I'm definitely in a expectation-reality disonnance. I keep expecting pugs to have, or any-moment-now get back to having, a clock speed like it did in the Spring. good point. thanks. 05:15
good night fglock &
stevan: sorry we didnt get your second conversation this evening. I'll try to wander by later in the week. tomorrow, err, later today, probably wont happen. but perhaps thurs. 05:20
random thought: just as vc was a problem for parrot (cvs, so pugs-like anarcism was too scary), I wonder if pugs/hs is being constrained by our svn central-archive model. ie, rather than a linux-kernel-like multiple threads of development, with curational aggregation. pugs/hs is so central to everything, that it can't afford to stay broken for long. and there's only one of it. so patches either work, or get roled back. there is no 05:27
collaborative not-quite-working-yet pugs/hs reengineering. (ie, new features can afford to not quite work, and folks can work off-achive, using svk say, but havent yet I don't think).
for a while things worked by "it's ok to break pugs/hs, because, wost case, autrijus can quickly glance at the problem and fix it". if things stay broken for days, rather than minutes or hours, that changes the development dynamic. hmm, though windows folks apparently quietly lived with pugs being broken for them for a long time (a week or few). perhaps we are simply being too conservative, and pugs should be spending more time broke 05:35
n? ;)
end of random thought.
g'night &
mrborisguy talking to yourself? ;)
putter that tends to be the only option this time of day. folks backlog, so it ends up being an asyncronous conversation. I'll probably pick up stevan's reply to me hours or even a day after he writes it. 05:37
irc as bullitin board
s/ and folks can work off-achive/ and folks can work collaboratively off-achive/ 05:39
there's an experiment for a lambda camel - do some agressive development on pugs/hs, which leaves it not quite working, and see if we can collectively cope. if not, perhaps we need to fiddle with the vc model. 05:40
cheers & 05:41
good night mrborisguy ;)
autrijus Perl made me bleed :/ 06:56
autrijus just cut the middle finger of left hand
...caused by the amsterdam.pm camel award
07:03 wcting is now known as whiteg
brother gives autrijus the Purple Sigil 07:17
gaal autrijus: what *was* the the amsterdam camel award? 07:58
autrijus gaal: eh... see use.perl 08:14
autrijus needs to nap a bit now... bad night train with babbling crowd
www.sppn.nl/nieuws/nieuws-20051020.html
gaal Ah, I gathered it had a hump, I just never hear of a black one being awarded before. 08:19
And thanks to the translate extension, I know why they're called Black now. :) 08:21
nothingmuch why are they called black?
ref to black magick?
gaal they were made by someone called Cynthia Black 08:22
nothingmuch ah 08:23
gaal addons.mozilla.org/extensions/more...php?id=181 # excellent 08:25
autrijus naps... but finally got stable net 08:28
bbiab :)
(massive tcp/ip withdrawl)-- 08:29
nothingmuch had a massive seriousness withdrawl this week
spent all of my free time doing one of:
just sitting
playing dumb games on the playstation
drinking, smoking, eating salty foods
and hiking 08:30
s/one/at any given time, at least one/
oh, and we also had a big cooking thing, we made lovely food, and then people ate it
i think overall I wrote less LOC than I do in a normal day ;-) 08:31
gaal: thanks for the Lisa Germano pointer
i got some from emusic
i'm having fun
gaal cool, which album? 08:33
nothingmuch Geek the Girl 08:39
gaal I don't know that one. If you can, try Lullaby for Liquid Pig. 08:45
sanxiyn You may want to read codespeak.net/pypy/dist/pypy/doc/dr...ation.html 11:01
Juerd obsessive /last $self -- 11:17
The previous /last output was still visible.
xinming hmm, anyone here can tell me if he can open the link planet.pugscode.org/ 12:39
kolibrie opened right up 12:40
xinming :-S
The damn GFW...
Greate FireWall..
seen autrijus 12:41
!seen autrijus 12:42
seenbot isn't up. :-(
gugod jabbot was offline due to some network problem :/
theorbtwo Any paid livejournal users about? 12:50
theorbtwo would like to subscribe to planetsix.perl-foundation.org/rss20.xml || planetsix.perl-foundation.org/rss10.xml
rafl_ autrijus: ping 12:52
12:52 rafl_ is now known as rafl
xinming hmm, by the way, in perl 5, we use ` ` to capture the output from the command we run, how about perl 6? q:x ? 12:58
kolibrie xinming: that's what it looks like, from S02 13:04
gaal kolibrie: ping 13:21
rafl gaal: ping
gaal rafl: pong
rafl gaal: Could you please try the -4 packages at perlcabal.org/~rafl/debian/ ? Especially libghc6-pugs-dev. 13:22
gaal rafl: only in about 6 hrs.
(sorry)
rafl gaal: That's fine. Thanks. I doubt that version will already be uploaded until then ;-) 13:23
gaal heh, if feather ran Xen you'd be able to test there ;-)
rafl Well, I'm able to test there. It run's debian. 13:24
I'm simply not sure if I screw up the current pugs installation with that.
kolibrie gaal: pong 13:37
gaal kolibrie: hi, you were looking for me a while ago on feather?
kolibrie days ago
gaal yes
kolibrie I was having IRC problems, all figured out now
gaal rafl: Xen gives you a really virtual machine 13:38
kolibrie: okies :)
kolibrie thanks :)
gaal np :)
rafl gaal: I know. How mature is it yet?
gaal I haven't used it myself, but have it from reliable sources that it's very good :) 13:39
rafl Well, convince Juerd then. :-) 13:42
But I think a simple chroot would be enough. But I'm too lame.
gaal It isn't without work for him ;-) 13:50
rafl But without work for you, just bug him till he installs it! :-) 13:52
gaal hahaha, well, you'll be the primary enjoyer of this, as is my duty to remind you, which itself is even less work for me. ;-) 13:53
rafl You have no idea how lazy I am, do you? :-) 13:55
Is kane doing IRC? 13:56
(The 6pan guy autrijus refered to somewhere)
Juerd rafl: On magnet, yes. 14:02
15:42 < gaal> rafl: Xen gives you a really virtual machine
15:47 < rafl> But I think a simple chroot would be enough. But I'm too lame.
Yes, very probably a chroot is enough.
I'm not going to use hardware sharing thingies any time soon 14:03
rafl Juerd: magnet -v
Juerd Their impact on overall system performance is much greater than programs running in a chroot, and the security risks are greater than those of a standard password scheme
rafl: irc.perl.org 14:04
rafl Thanks.
Juerd This is where #parrot lives, too
rafl Jos Boumans, right?
Juerd Yep
Those questions are always easily answered by CPAN: 14:05
search.cpan.org/~KANE/
Has the full name in large, somewhat friendly letters
rafl Ah, the CPANPLUS guy. I remember.. 14:06
Jooon rafl: he gave a good talk on CPANPLUS and package managers and described the proof of concept project debian.pkgs.cpan.org/ 14:26
integral hmm, would be neat to run dpkg+apt on non-deb systems just to manage perl modules 14:28
rafl Indeed.
integral hmm, I'm sure I've heard someone else suggest this, but I can't remember who 14:31
Juerd There's more than one way to not care. -- lwall 14:35
theorbtwo Oooh, debian.pkgs.cpan.org/ looks nice. 14:36
Supaplex looksies 14:37
humm, nice alternative to dh-make-perl --build --cpan my::module ; dpkg -i libmy-moduleperl*.deb 14:39
suprized he didn't mention that part 14:40
xinming hmm, can class attribute has initial value assign to it? 14:49
just lile `class A { has $.x = 3; };`
wolverian yes
xinming if so, then, `my A $o .= new( x => 7 );` which value should x be? 3 or 7? 14:50
integral 7 hopefully...
or an error
xinming Ok, going to write the test. :-)
integral hmm, it should be the former, for the latter you could just make it $:x 14:51
xinming ingy: hmm, In my opinion, It should be 7, and if we declare a attribute as `has $.x is ro =3`, this might raise the error
well, why I use dot here, is because we wish to get the value outside... 14:52
errr.... might be wrong, the default public attribute is ro by default... 14:53
:-s
cognominal seen autrijus 15:05
jabbot cognominal: autrijus was seen 6 hours 36 minutes 11 seconds ago
xinming hmm, lives_ok { class A { has $.a = 1 } }, " ... "; this will abort the test.... 15:11
anyone have a clue?
autrijus ever said lives_ok is used for testing if the "feature" is working in pugs... 15:12
But...
:-(
svnbot6 r7744 | yiyihu++ | Test for class attribute initializement, It's not implemented and not specified, will finish the test in the future. 15:50
wolverian Supaplex, except -dh-make-perl doesn't do dependencies automatically, I think 16:07
Supaplex, (from CPAN, anyway.)
theorbtwo I think it does, but I don't know. 16:08
debian.pkgs.cpan.org/ does, though.
wolverian right 16:12
Jooon dh-make-perl figures out dependencies by checking for debian packages that you have installed, so if you build and install everything in the right order of the dependencies, it will sort of figure them out 16:21
Supaplex it behaves pretty well in my experience, but I haven't been very demanding of it. 16:24
rafl Juerd: ping 16:28
stevan fglock__: ping 16:53
Juerd rafl: pong 17:46
rafl Juerd: I just talked to kane. Kind of nice. We want to create website/wiki/mailinglist for 6pan. May we use perlcabal/feather for that? 17:48
Juerd rafl: Until it uses substantial resources, of course, go ahead.
Do note that there currently are no backups. 17:49
You will want to synch with at least one other source.
source/target
rafl: The name of the box is feather, by the way
rafl Juerd: OK. I don't want an own webserver for it. Is it OK to modify your apache config to serve 6pan.perlcabal.org/6pan.feather.perl6.nl? 17:50
Maybe you want to change it yourself?
nothingmuch rafl: ping ingy about this stuff 17:51
rafl nothingmuch: Why?
nothingmuch he has freepan going
he has code that can be shared
and experience