« first day (3243 days earlier)      last day (127 days later) » 

1:47 AM
posted on September 17, 2019 by lucindamichele

[Reddit] Hello all. Tell us: what's the best way to format CSV data? Red supports many different balances of speed vs. size. Read about your options here on our latest blog post. Also in that post: A shout-out to community members; an AI scenario using Red's DSLs to refine image or sound recognition; and Red hits 4,000 stars on GitHub!

5 hours later…
7:12 AM
@pekr Just the task of reading up on HF's posts is already to much for my available time ;) Let alone reading up all chatrooms that might have a hint at upcoming features for a language that disqualifies on all points that make it a serious contender for considering real development work.
(and back to business again, trying to keep up on REN-C)
6 hours later…
12:49 PM
posted on September 17, 2019 by transcend3r

ren-c/scripts/prot-http.r Line 546 in 42dca36 new-uri/scheme "://" new-uri/host new-uri/path new-uri/scheme is quoted, so this arg3: as url! unspaced [ new-uri/scheme "://" new-uri/host new-uri/path ] generates a url wich starts with a quote mark. Changing the line

2 hours later…
3:00 PM
I was demo'ing Ren-C yesterday and just how easy it is to write COLLECT came up.
collect: function [code [block!]] [
    data: copy []
    generator: func [keep] code
    keeper: specialize 'append [series: data]
    generator keeper
    return data
And of course you can just get fancier and fancier with it. REEVALUATE (a.k.a. REEVAL) means you don't need to put the function in a variable.
collect: function [code [block!]] [
    data: copy []
    reevaluate func [keep] code specialize 'append [series: data]
    return data
Also, you can ELIDE things and the previous expression falls out.
collect: function [code [block!]] [
    data: copy []
    elide reevaluate func [keep] code specialize 'append [series: data]
    ; data implicitly returned
@iArnold On that note, the above COLLECT has KEEP/DUP, KEEP/ONLY, KEEP/LINE...
@rgchris ^-- art.
3:34 PM
If we're going to take this further with the proposed auto-specializing lambdas, which IIRC @ingo is a fan of:
collect: function [code [block!]] [
    data: copy []
    elide reevaluate func [keep] code (=> append data)
But that's probably clearer if written as:
collect: function [code [block!]] [
    reeval func [keep] code (=> append data: copy [])
But I'm going to reiterate that we need to lose the implicit SET-WORD! locals. They're bad mojo, and we have enough experience to know that. Hence.
collect: function [code [block!]] [
    let data: copy []
    reevaluate function [keep] code (=> append data)
This assumes that if you say (let data: 10) print [data] it would not work, because the binding limit of these variables would follow the evaluator wavefront, and terminate at the end of their block/group; hence you'd have to lift it out to the scope of applicability there.
Are we impressed yet? (Answer: no, not until LET and => do the above... but when they do, be impressed.)
1 hour later…
4:50 PM
@giuliolunati I think you can appreciate this test and that it works now... this means httpd is more robust, and you won't have to restart the rebol-server as often! cc: @rgchris
1 hour later…
6:01 PM
Note for those who don't know the Functional Programming terminology, things like (=> append data) above as a shorthand for specialize 'append [series: data] is called point-free, and @ingo and I have discussed e.g. append10: (=> append _ 10) as a way of saying specialize 'append [value: data].
But the idea is that you can omit the blanks for terminal arguments, so (=> append data) is interpreted as (=> append data _).
^-- Er, that should have been specialize 'append [value: 10]. But you get my meaning.
Having just spent a week mucking with Travis (annoying but necessary) and shoring up PORT! design inadequacies, I might like to take a crack at that.
1 hour later…
7:20 PM
What is the best place to read up on the javascrupt api? (What is ArgR, ArgQ how do I return from javascript back to ren-c, especially if the return value might or might not be void)?
Sorry, down with a cold, and thinking doesn't work right.
Does anyone else have problem to read from the wasm console on firefox linux?
read https://raw.githubusercontent.com/metaeducation/ren-c/master/README.md
** Error: TypeError: NetworkError when attempting to fetch resource.
‌** Where: read-url-helper if read main
‌** Near: [... text! CORSify-if-gitlab-url source ~~]
‌** Line: 334
The same works well on chronmium on the same machine.
(I have closed and restarted firefox, just in case)
2 hours later…
9:57 PM
@ingo The non-Asyncify build on firefox (e.g. with shared memory on in about:config) isn't running at all currently on a linux VM, nor reporting an error. It just hangs. Hmph. :-( But the asyncify build is running and I am able to read that URL.
10:57 PM
@ingo return reb.Void() is a synonym for return with no argument from a js native or awaiter.
That's what I get on boot.
Has SharedArrayBuffer => true
Has Threads => true
Use Asyncify => false
@HostileFork So I'll have to check the return value inside the js, and then use either reb.Void() or reb.Value(...)
11:18 PM
@ingo hmph, my vm isn't running with that. Try going to about:config and turning off the shared memory, exit and restart, see what that does
@ingo a reb.Value call can return void and that should be fine
@ingo btw, if you're following my Travis kick, if you have anything you think you could still care about in 2021 (matrix.org chat client?) I would like to get it all up and maintained continuously.
I will reiterate that I see no successful path without paying this tax. Might as well do it right now.
@HostileFork Starts for me, but can't read from cors enabled sites.
@ingo grumble. if you can repro in a fresh virtualbox vm give me the install url for the distribution etc.
@Edoc still waiting for your code ^--
@HostileFork With all those changes in ren-c and matrix land, it's a bit outdated. After I got it back in a usable state, maybe with some use of the web-console, I will submit it.
@HostileFork Well, it's 1:30 am for me, so my bed is calling. I'll see wether I can set something up tomorrow.
See you later.
11:40 PM
@ingo if you put it up in a non working state I will code review it and in the process probably fix it. Of course it helps if you can do a pre-pass over it, but I'd rather attack it myself--now--if having it not happen is a risk
I still haven't been at a place with a comfortable setup for doing video editing (VNCing into a mac and trying to edit on a laptop is rather awful--I put up with it long enough to get that rough cut of my main talk). I had planned on being back in Florida with my monitor and such--but have gotten a bit sidetracked on that route.
But like I've said, I don't see much point in a marketing push before things are set up to enable growth. We've seen Red floundering a bit on that angle, and DocKimbel complaining about how trying to attend to new users when something isn't ready may hurt more than help. So I don't think having the videos come out when the console launches is any big problem.
I showed my rough cut to an engineer I met here in Akron; and he gave some pretty good feedback (more than anyone else has given, actually). This helped me clarify there are three audiences: (1) people who've never heard of Rebol, (2) people who have and weren't at the conference, and (3) the webassembly folks who are following developments in Emscripten.
Group #2 is small and irrelevant to be editing for. @GrahamChiu has suggested just releasing the raw video feeds on private links for them--if they want to pretend they were there, but keep that unedited material off public channels.
Group #3 is who should be pitched to before Group #1, as potential early-adopters or early-curious folks. e.g. the people who are building old .MOD players into browsers. These folks may be more or less scripting-language-agnostic, and interested in seeing great work and teaming up.
So my next edit of my talk will basically abandon the idea of presenting a reality of "what happened at the conference" and cater to 1 and 3, possibly inserting extra slides (e.g. I never introduced myself, but this was seen as disorienting to people who have no clue who I am). A 15-second slide explaining "I am basically the world's leading authority on what I'm about to talk about" (not necessarily in so many words) would provide context.
