Zoffix | perl -wlnE 'say "$.:$_"; close ARGV if eof' foo bar # Perl 5 | 04:42 | |
perl6 -MLN -ne 'say "$*LN:$_"' foo bar # Perl 6 | |||
:) step aside, Perl 5 :) | |||
Wonder if we can pass options along with `-MSomeModule` like you can in p5 | 04:44 | ||
samcv | Unicode Grant Status Update 1 is up cry.nu/perl6/grant-status-update-1/ | 05:00 | |
Zoffix | samcv++ | 05:08 | |
BenGoldberg | samcv, There's a broken link in the doc, which goes to "perl6/unicode-property-names" but should go to "/perl6/unicode-property-names" | 05:19 | |
samcv | thanks! | 05:20 | |
BenGoldberg, can you check the link now? should work | |||
BenGoldberg | Yup, looks good | 05:21 | |
Zoffix | $ p6 -Ilib -MLN -e 'say $*ARGFILES.ln' | 07:19 | |
(Int:D) | |||
lulz? A :D that ain't a :D :S | |||
m: role Foo { has Int:D $.ln = 0 }; (42.^mixin: Foo).ln.say; (42 does Foo).ln.say | 07:22 | ||
camelia | (Int:D) 0 |
||
Zoffix | Ah; `does` also does `obj.^mixin($role).BUILD_LEAST_DERIVED({});` | 07:24 | |
[Tux] | This is Rakudo version 2017.05-353-g36bc41022 built on MoarVM version 2017.05-25-g62bc54e9 | 08:03 | |
csv-ip5xs 2.830 | |||
test 12.950 | |||
test-t 4.406 - 4.515 | |||
csv-parser 12.827 | |||
Zoffix | m: say '' ~~ <0> | 08:09 | |
camelia | True | ||
Zoffix | m: say '' ~~ '0' | ||
camelia | False | ||
Zoffix | Kinda annoying. Gonna have to do a bunch of special-casing for this in my code :/ | ||
I think I'm too deep in the yak shaving :) I started this weekend wanting to finish the Toaster and I haven't even started on the actual Toaster :/ | 08:15 | ||
Benched two pieces of code and surprised just how faster one version is than the other: gist.github.com/zoffixznet/30ba2fb...c9486bb157 | 08:54 | ||
I guess istype op is so cheap assignment and addition dwarfs it | 08:55 | ||
ZofBot: not sure if istype is too faster or assignment is too slow | |||
ZofBot | Zoffix, my class X::Bind::ZenSlice is X::Bind::Slice { "Cannot bind to {$ | ||
Zoffix | well, s/assignment/binding/; | 08:57 | |
.tell AlexDaniel Present: dd <00> vs. dd <00.0+0i> vs. dd <00+0i> | 09:18 | ||
yoleaux | Zoffix: I'll pass your message to AlexDaniel. | ||
Zoffix | ZFOVM: Files=1253, Tests=138338, 124 wallclock secs (23.57 usr 3.75 sys + 2551.96 cusr 157.57 csys = 2736.85 CPU) | 09:22 | |
ZOFVM: Files=1253, Tests=138338, 124 wallclock secs (23.57 usr 3.75 sys + 2551.96 cusr 157.57 csys = 2736.85 CPU) | |||
Wonder what commit made stuff slow :/ | |||
buggable: speed 12 | |||
buggable | Zoffix, ▁▁▄▄↑▃▂▂▆▆▂▃ data for 2017-05-31–2017-06-05; range: 4.364s–4.807s; 3% slower | ||
Zoffix | buggable: speed 40 | ||
buggable | Zoffix, ▂▃▂▂▁▁▆▇▂▂▁▁▃▂▃▄▂▆▇▄▆▅▃▃▄▃▄▇▃▃▆▆↑▅▄▄██▄▆ data for 2017-05-18–2017-06-05; range: 4.225s–4.807s; 5% slower | ||
Geth | rakudo/nom: 8a0b7460e5 | (Zoffix Znet)++ | src/core/allomorphs.pm Fix allomorph smartmatching Currently, we always fall to Numeric smartmatch, which gives incorrect results when a string is smartmatched against the allomorph. Fix by implementing own .ACCEPTS in allomorphs that matches as follows: Allomorph ~~ Allomorph => check Numeric part only Numeric ~~ Allomorph => check Numeric part only Str ~~ Allomorph => check Str part only Any ~~ Allomoprh => check both Str and Numeric parts |
10:07 | |
roast: 4f48067cc5 | (Zoffix Znet)++ | S02-literals/allomorphic.t Spec allomorphic smartmatching Rakudo impl: github.com/rakudo/rakudo/commit/8a0b7460e5 |
10:08 | ||
Zoffix | .oO( wonder if it's illegal to kill pigeons... ) |
10:13 | |
Damn vermin. Harrasing me by landing on my AC and scratching the crap out of it. | |||
Geth | roast: 9db1e70a54 | (Elizabeth Mattijsen)++ | S03-operators/union.t Fix comment copypasto |
11:20 | |
roast: 4e5c102f3c | (Elizabeth Mattijsen)++ | S03-operators/intersection.t Add thorough intersection testing Includes 3 starred out tests that fail at the moment, which need further investigation. |
12:03 | ||
[Coke] | . | 12:04 | |
Geth | rakudo/nom: 6c6bf36d83 | (Elizabeth Mattijsen)++ | t/spectest.data Add thorough set intersection testing |
||
[Coke] | there is a place to send security tickets, very similar to the p5 setup, that never got documented. moritz & I have the keys to it, let me get you the email addy. | 12:07 | |
lizmat | afk until later today& | 12:09 | |
moritz | [Coke]: oh, I think I tested it once, and it didn't work; I think I have to re-test evventually | 12:11 | |
[Coke] | I see your test email in the queue. | ||
I gave zoffix the address (I think), we'll see if it shows up. | |||
Zoffix seent a test mail | 12:28 | ||
Just to clarify for those who didn't backlog in entirety: there's no security bug. IO::Path.mkdir just takes umask into account, but to me it at first looked like the set chmod was broken, so dir with requested chmod 0o000 might've ended up with 0o777 | 12:30 | ||
[Coke] | news.perlfoundation.org/2017/06/per...posal.html | 12:33 | |
This travel grant falls outside the grants committee process and is being handled directly by the board. | 12:34 | ||
AlexDaniel | Zoffix: so which one is wrong? ‘dd <00>’ for not showing the warning? | 12:43 | |
m: say 0000.5 | |||
camelia | 0.5 | ||
AlexDaniel | so dd <00.0+0i> is somewhat consistent, dd <00+0i> warns like it would if you just had a 00 literal somewhere, and <00> doesn't warn but should? | 12:44 | |
Zoffix | AlexDaniel: IMO kinda none should warn. It's a IntStr. What if I *want* it to have extra zeros? | 12:45 | |
AlexDaniel | who said that it is an IntStr | 12:46 | |
m: dd WHAT <00.0+0i> | |||
camelia | Complex | ||
AlexDaniel | m: dd WHAT <00+0i> | ||
Zoffix | m: dd WHAT <00> | ||
camelia | Potential difficulties: Leading 0 has no meaning. If you meant to create an octal number, use '0o' prefix; like, '0o0'. If you meant to create a string, please add quotation marks. at <tmp>:1 ------> 3dd WHAT <007⏏5+0i> Complex |
||
IntStr | |||
Zoffix | well s/IntStr/allomorph/; | ||
Ah, THAT's why it warns | |||
Ok, never mind then. | 12:47 | ||
m: $ = <00/2> | |||
camelia | Potential difficulties: Leading 0 has no meaning. If you meant to create an octal number, use '0o' prefix; like, '0o0'. If you meant to create a string, please add quotation marks. at <tmp>:1 ------> 3$ = <007⏏5/2> |
||
AlexDaniel | oh, right | ||
Zoffix | OK. Now it makes sense to me :) | ||
AlexDaniel | it does | ||
so if you don't have a WhateverStr, it will warn for integers with leading zeros | 12:48 | ||
Zoffix | k, $*NL thing is done: github.com/zoffixznet/perl6-LN | 12:53 | |
Toaster time \o/ \o\ |o| /o/ | |||
I mean $*LN thing | 12:54 | ||
:) | |||
timotimo | of course perl6 IO is slow if it has to go through the netherlands for everything | 13:11 | |
Zoffix | .oO( that was a random comment... ) |
||
Geth | nqp/master: 12 commits pushed by pmurias++ review: github.com/perl6/nqp/compare/0ea63...d5a8007cc2 |
14:03 | |
nqp: 39d165dc49 | pmurias++ | src/vm/js/nqp-runtime/core.js [js] Setup a variable for use by eval |
14:06 | ||
nqp: 329246667c | pmurias++ | .eslintrc.js [js] Make the .eslintrc really lax, it will be made more strict once we fix known classes of violations |
14:10 | ||
nqp: c27c99f3da | pmurias++ | src/vm/js/nqp-runtime/io.js [js] Remove debugging leftover |
|||
nqp: 6d0f60068a | pmurias++ | src/vm/js/nqp-runtime/io.js [js] Tiny bit of stylistic comformance |
|||
rakudo/nom: ac8b4714fd | (Zoffix Znet)++ (committed using GitHub Web editor) | t/harness6 Fix shebang |
14:18 | ||
nqp: 7b7b776391 | pmurias++ | src/vm/js/nqp-runtime/io.js [js] The exit status of nqp::shell needs to be shifted |
|||
nqp: b62e21514d | pmurias++ | t/nqp/086-pipes.t [js] Test nqp::closefh_i with a exit status we expect |
|||
nqp: ccdbeb8649 | pmurias++ | 2 files [js] Run the now passing pipe test |
14:19 | ||
rakudo/js: 2d1fb3fd1e | pmurias++ | tools/build/NQP_REVISION Bump NQP for js backend fixes |
14:21 | ||
[Coke] | moritz, Zoffix: test email/ticket rec'd. | 14:48 | |
Zoffix | sweet | 14:49 | |
Geth | rakudo/proc-using-proc-async: fd3ef6f842 | (Jonathan Worthington)++ | src/core/Proc/Async.pm Give Proc::Async support for merged output. Available through the `.Supply` method, which feels fairly natural. In IO::Socket::Async, .Supply is how you get the data received over the socket; `.Supply` on a process can be seen as "get me the output" without caring which output. Added as part of work towards re-working Proc in terms of Proc::Async, which means giving Proc::Async the features that Proc has. However, as it turns out :merge was busted and disabled for Proc, this counts as a bonus, I guess. |
15:09 | |
AlexDaniel | MasterDuke: should we start changing whateverable according to this ↑ ? | 15:11 | |
jnthn ponders how, in terms of API, binding Proc::Async stdin/stdout/stderr to a file handle should look | |||
AlexDaniel | moritz: I think you were interested in this thing also ↑ | 15:12 | |
jnthn | Overloading stdout and stderr to take IO::Handle feels a tad smelly | ||
Since in that case they'd not return a Supply | 15:13 | ||
And there'd be a discontinuity with stdin too | |||
Maybe should have explicit .bind-stdin, .bind-stdout, and .bind-stderr or so | |||
Will leave that here for pondering | 15:15 | ||
And maybe implement it tomorrow :) | 15:16 | ||
In the meantime, I'll go find my Windows box and see how syncfile changes are there, and perhaps merge that branch if all's good. | |||
(That's a Moar branch, fwiw, that gets file handles off using libuv) | 15:17 | ||
Zoffix | Is there any reason why making X::Method::NotFound.message slower would get significant performance loss in stresstest? github.com/rakudo/rakudo/commit/2500e50 | 15:26 | |
m: say (121-118)/121 | |||
camelia | 0.024793 | ||
Zoffix | And by significant I mean 2.5% loss | ||
buggable: speed 20 | 15:27 | ||
buggable | Zoffix, ▄▃▁▁▂▁▃▅▁▁▄▄↑▃▂▂▆▆▂▄ data for 2017-05-28–2017-06-05; range: 4.344s–4.807s; ~0% difference | ||
Zoffix | buggable: speed 10 | ||
buggable | Zoffix, ▄▃▇▂▁▁▅▅▁▃ data for 2017-06-01–2017-06-05; range: 4.400s–4.807s; 1% faster | ||
jnthn | Wow, that's a lot... | 15:29 | |
Zoffix | prolly should come up with a comprehensive bench to make hunting stuff like this easier. The randomness in stresstest is LTA | 15:33 | |
Zoffix tries using spectest instead | 15:35 | ||
Geth | rakudo/js: 683728bb58 | pmurias++ | tools/build/NQP_REVISION Correct NQP bump |
15:36 | |
rakudo/js: 2a64d2f2f2 | pmurias++ | t/spectest.js.data [js] Correct passing spectest list |
|||
nqp: e624c72e92 | jnthn++ | t/nqp/019-file-ops.t Correct left-behind use of nqp::tellfh. Should just be .tell on an NQP file handle object. |
15:51 | ||
Zoffix | Well, based on my experiment. looks like the ~2.6% stresstest/spectest loss is due to commit github.com/rakudo/rakudo/commit/2500e50 | 16:00 | |
Not 100% sure why. Gonna rewrite it in NQP now and see if it'll make that 2.6% go down | 16:01 | ||
jnthn | Odd. It even only does the work if .message is called to actually get the error | 16:02 | |
Zoffix | Yeah | 16:03 | |
zoffix@VirtualBox~/CPANPRC/rakudo/t/spec (master)$ grep -FR 'X::Method::NotFound' | wc -l | 16:04 | ||
58 | |||
And barring loops, there isn't that many of them being tested | |||
jnthn | I wonder if something triggers it accidentally somewhere | ||
Zoffix | m: use nqp; my $sug := nqp::hash; nqp::bindkey_i($sug, 'foo', 1); | 16:17 | |
camelia | MVMHash representation does not support native type storage in block <unit> at <tmp> line 1 |
||
Zoffix | How do I get one that does? | ||
grepping for bindkey_i suggests only lexpad is that... /me goes with regular nqp::hash | 16:19 | ||
japhb | Zoffix, re: gist.github.com/zoffixznet/30ba2fb...c9486bb157 either my eyes are failing me (totally possible), or the old code does 'nqp::istype(b, Numeric)' twice, meaning the only possible values of the add_i are 0 or 2, so the outer nqp::if will always take the true branch. | 16:23 | |
Zoffix | japhb: a yeah. Indeed it has a mistake. Though, with it fixed, I still get "NEW version is 52.16x faster" | 16:27 | |
Well, this was a waste of time. | 17:19 | ||
Filed my results: rt.perl.org/Ticket/Display.html?id=131515 | 17:30 | ||
Giving up with it. | |||
TimToady | do we know if there are going to be any hackathons around the Amsterdam conference? (starting to think about plane tickies...) | 18:13 | |
lizmat | TimToady: I think there will be | 18:21 | |
what would be best for you? Before or after the conference ? | |||
TimToady | the after ones tend to be slightly more productive in my experience, since before people tend to be writing their talks, or attending classes, which tend to be before | 18:42 | |
but either would work for us | 18:43 | ||
lizmat | ok, I'll make sure we discuss this tomorrow at the amsterdam.pm meeting, should have some more info after that :-) | 18:44 | |
TimToady | thanks, ticket prices will go up soon... | 18:45 | |
Geth | nqp: 0ac9b4f06f | (Elizabeth Mattijsen)++ | tools/build/MOAR_REVISION Bump Moar to get the latest delibuvied goodies |
19:03 | |
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...9-gf17adad | |||
Zoffix | m: say 1, 2, 3 …^ 4, 5, 6 | 19:08 | |
camelia | (1 2 3 5 6) | ||
Zoffix | There can be more than one endpoint... | ||
ehhe... I have 2017.05-320-g8ec1810 installed on a box and a module install just failed, telling me my perl6 is too old :) | 19:10 | ||
ZofBot: now that's what I call bleeding edge! | |||
ZofBot | Zoffix, It involves the "serialization" of code and data | ||
Geth | rakudo/nom: 05f3e9a010 | (Elizabeth Mattijsen)++ | tools/build/NQP_REVISION Bump NQP version to get latest MoarVM Specifically because synchronous file I/O now no longer uses libuv. |
19:15 | |
rakudo/nom: version bump brought these changes: github.com/perl6/nqp/compare/2017....5-g0ac9b4f 8efffb1d13 | (Zoffix Znet)++ | src/core/Rakudo/Internals.pm …when end points are excluded. Range.minmax already returns points with excluded parts excluded. Also, it can't be called on non-int Ranges. Fix by using .min/.max instead (the excluded end already get subtracted) |
|||
[Coke] wonders if he can host an albany conference just to get people to swing by. :) | 19:28 | ||
Zoffix | ZOFVM: Files=1254, Tests=138733, 120 wallclock secs (22.25 usr 3.47 sys + 2434.76 cusr 167.69 csys = 2628.17 CPU) | 19:39 | |
roast: a5d933fcef | (Zoffix Znet)++ | S32-io/io-path-extension.t Test IO::Path.extension with excluded Range as parts Rakudo fix: github.com/rakudo/rakudo/commit/8efffb1d13 |
|||
lizmat | Zoffix: re 8efffb1d1326663d7e81 , wonder how that works on 32bit systems | 19:44 | |
Zoffix | Wouldn't islt_I take any Int? | 19:45 | |
Wonder where -2**63 came from actually | 19:46 | ||
m: say -2**64 | |||
camelia | -18446744073709551616 | ||
Zoffix | oh "# we have isbig_I, but it tells whether the value is above max int32 value" | ||
Yeah, probably needs fixing. I'll check next time I'm at my 32-bit box | 19:47 | ||
I'll go over the whole .extension code. It's noob-Zoffix NQP code :) | 19:48 | ||
BTW that +> ticket was kinda forgotten it seems: rt.perl.org/Ticket/Display.html?id...et-history | 19:53 | ||
dogbert17 | hmm, is getting SEGV's on two spectest files | 19:57 | |
t/spec/S17-procasync/no-runaway-file-limit.t and t/spec/S17-procasync/many-processes-no-close-stdin.t | 19:58 | ||
Program received signal SIGSEGV, Segmentation fault. | 20:01 | ||
0xb7c7594c in gc_mark (tc=0x804c458, st=0x8095b78, data=0xa87e438, worklist=0xa87b7e0) at src/6model/reprs/MVMCallCapture.c:54 | |||
54 if (flag_map[flag] & MVM_CALLSITE_ARG_NAMED) { | |||
Zoffix | I noticed more flapping in all the module tests recently. | ||
ZOFFLOP: t/spec/S11-modules/require.t | |||
dogbert17 | I ran my spectest with some debug thingies turned on and with a smaller nursery. Haven't seen these asplode earlier though | 20:03 | |
Zoffix | buggable: tags | 20:05 | |
buggable | Zoffix, Total: 1623; BUG: 1064; UNTAGGED: 375; LTA: 168; NYI: 95; JVM: 60; RFC: 57; REGEX: 56; CONC: 55; UNI: 30; SEGV: 28; PERF: 26; TESTNEEDED: 25; IO: 23; REGRESSION: 23; NATIVECALL: 22; POD: 21; @LARRY: 20; TODO: 18; PRECOMP: 13; BUILD: 11; OO: 11; TESTCOMMITTED: 11; STAR: 10; OPTIMIZER: 9; BOOTSTRAP: 5; REPL: 5; GLR: 4; MATH: 4; OSX: 4; WEIRD: 4; SPESH: 3; WINDOWS: 3; MOAR: 2; RT | ||
Zoffix | 1623... ~500 more than when I came to Perl 6. | ||
dogbert17 | and the doc repo had like 70 issues at the start of 2016, now it's like 260 | 20:06 | |
Zoffix | heh | ||
Guess having no tickets is worse, so I shouldn't complain. | 20:07 | ||
AlexDaniel | .help | 20:38 | |
yoleaux | AlexDaniel: I'm yoleaux. Type .commands to see what I can do, or see dpk.io/yoleaux for a quick guide. | ||
AlexDaniel | .in 1.5y What about 1000 open tickets? “<Zoffix> Guess having no tickets is worse, so I shouldn't complain.” | 20:39 | |
yoleaux | AlexDaniel: I'll remind you on 5 Dec 2018 08:39Z | ||
ugexe | Zoffix: zef#171 seems to be specific to tap::harness6 | 21:00 | |
Zoffix | ugexe: in what way? | 21:05 | |
ugexe | it doesn't happen if i use --/tap-harness | ||
so i'm either passing in the paths wrong or somewhere in tap::harness it executes a proc without including CURFS repos in $*REPOs | 21:06 | ||
Zoffix | yeah, same here. don't happen with --/tap-harness | 21:07 | |
ugexe | my guess is github.com/perl6/tap-harness6/blob...#L943-L945 isn't doing what they want it to | 21:08 | |
Geth | tap-harness6: 65d021cfe1 | (Zoffix Znet)++ (committed using GitHub Web editor) | lib/TAP.pm Use correct way of stringifying IO::Path |
21:10 | |
ugexe | I'm passing in the includes the same as prove6, so it must be in TAP::Harness | ||
lizmat tests whether HARNESS_TYPE=6 now updates TAP.pm6 :-) | 21:11 | ||
whee! | 21:12 | ||
(it does) | |||
Zoffix | \o/ | ||
Ah | 21:15 | ||
ugexe: I think the problem is in my test script actually. I'm running $*EXECTUABLE and passing it -Ilib but it's not getting whatever temp path Digest is unpacked at | 21:16 | ||
ugexe | oh, yeah that will do it | 21:18 | |
m: say "-I" <<~<< $*REPO.repo-chain.map(*.path-spec) | 21:20 | ||
camelia | (-Iinst#/home/camelia/.perl6 -Iinst#/home/camelia/rakudo-m-inst-2/share/perl6/site -Iinst#/home/camelia/rakudo-m-inst-2/share/perl6/vendor -Iinst#/home/camelia/rakudo-m-inst-2/share/perl6 -Iap# -Inqp# -Iperl5#) | ||
Zoffix | wond | 21:22 | |
wonder how prove makes it work | 21:23 | ||
Yup. The fish thing fixes the issue | 21:27 | ||
ugexe | not just prove, perl6 | ||
Zoffix | Fish == «~« | ||
ugexe | if you do --/tap-harness --/prove it will do `perl6 -I... t/whatever.t` which also works | 21:28 | |
Zoffix | ugexe: so should I close the issue or do you think it should be possible to make it work without needing changes in my code? | ||
ugexe | i cant figure out why it worked for --prove | 21:29 | |
Zoffix | .oO( set PERL6LIB to fish thing in TAP::Harness inc thing ) |
||
ugexe | you can close the issue, but i would have expected prove to fail before adding the fish thing. | 21:30 | |
lizmat | and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/06/05/...illed-tap/ | 21:40 | |
good night, #perl6-dev! | 21:44 | ||
Zoffix | night | 21:45 | |
jnthn | 'night | ||
timotimo | cool, night lizmat | 21:46 | |
Zoffix | lizmat++ # good weekly | 21:50 | |
AlexDaniel | oh no… now we have File::Temp and Temp::path | 22:03 | |
Temp::Path* | |||
jnthn | Isn't there something built in for that too? :) | ||
Zoffix | AlexDaniel: yeah, but File::Temp is shit | 22:17 | |
AlexDaniel | Zoffix: well, I created an issue for that | 22:18 | |
Zoffix closes it | 22:19 | ||
AlexDaniel is confused | 22:20 | ||
Zoffix | AlexDaniel: the module's code is not written for Perl 6 IO. I'm guessing it was written before a billion changes were made for Perl 6 IO. It has awful interface that forces you to close filehandles all the time, without even giving a hint that in Perl 6 it's necessary to do so, and it gives you a Str for a path, instead of proper IO::Path. It takes its arguments as positionals, instead of letting you use | 22:33 | |
nameds. It doesn't document the template must have at least 4 asterisks. Its code doesn't use proper Perl 6 IO and instead uses $*SPEC. Its code will crash on deleting all the rest of the files if a single dir fails to delete (e.g. when its perms don't program read its contents). And to crown it with a cherry on top. Here's a very simple demonstration of it deleting an imporant customer file (I shortened | |||
the template so I could use a single customer data file, but imagine a directory with some letters, e.g. "jack-bowers".. as that's a possible template name): gist.github.com/zoffixznet/b37aea3...d53e0a7049 | |||
And I'm not going to write a paragraph in my docs, slugging off another module. I don't advise using it. If that's not good enough for you, go ahead and use it. I wouldn't care. | 22:34 | ||
AlexDaniel | well, you already say “I advise against using it”. I just think that if you're saying this, why not give some reasons why | 22:35 | |
Zoffix | I'm just gonna remove that section entirely. | 22:37 | |
Now I'm sad. | 22:43 | ||
Toaster successfully toasted a first batch of 20 modules \o/ | 22:46 | ||
Just need to hook it up to an SQLite DB and bolt a web front end onto it and done. | |||
Zoffix calls it day | |||
timotimo | that sounds like good stuff,zoffix | 23:14 | |
also, good rest! |