by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
bferris413
@bferris413
Howdy, any updates or roadmap for when port! type will be generally implemented/usable? I check the website regularly and drop in here from time to time to see the latest, haven't seen much about it though
Nenad Rakocevic
@dockimbel
@bferris413 Hey, port! type is already present in the master branch, but low-level I/O networking is still a WIP. We have a working async TCP and TLS ports implementation (both client and server-side), but they still require more work to cover all the target platforms. Once we have UDP and DNS, we can push the code into a branch on the red/red repo, so that people can play with them. No ETA for that yet, as we have several related sub-tasks to complete first (like some memory management improvements for I/O).
bferris413
@bferris413
Sounds good @dockimbel , thanks for the update and work involved :+1:
Nenad Rakocevic
@dockimbel
@bferris413 You're welcome. We'll publish more info about it when it will be more usable.
Nikita Korotkin
@TheHowdy_gitlab
@bferris413 just to prevent confusion, I'm by no means
in the red-team, just a curious visitor of this gitter :). So I can't give u that kind of info.
bferris413
@bferris413
Ah, "howdy" is an american-english way of saying "hello" (which is how I meant it) =)
GiuseppeChillemi
@GiuseppeChillemi
@dockimbel How is the RED team composed ? I mean either how many are the members of the team and which is their respective role. I think you have never talked about this. It would be good to know about all of you.
Gregg Irwin
@greggirwin

@GiuseppeChillemi, there are now 6 of us dedicated full time to Red, and another 6 or so that contribute regularly but have other primary jobs. Then there is a wider circle in the community with some deep work done. e.g. @rcqls on GTK and @hiiamboris on tickets requiring deep analysis and R/S skills. Respective roles, in general:

  • Nenad is the leader, for language vision and design, overall direction, and deep core dev
  • Qingtian is his right hand in all that, and figuring out how to make it all work across platforms
  • I focus on management, business, logistics, community, high level design/dev, "and stuff"
  • Bitbegin is Core, fixes and features, Wallet, VSCode, and support for Nenad and Qingtian
  • ToomasV leads thinkering and has internal tasks related to tools, education, and examples
  • Lucinda heads PR, which includes many channels, blog, docs, and work on new web sites

Warp, Rebolek, Peter, Harald, Semseddin, GregT, Gabriele work on many things, because so much support is needed. Infrastructure, testing, research, codecs, blockchain R&D, docs, deep design. I wish I could name everyone and list their contributions, because they (you) all deserve it, but that's yet another task I'd have to put on my list. ;^)

Vladimir Vasilyev
@9214
@greggirwin I think @meijeru's work on Red specification deserves a dedicated mention as well.
Gregg Irwin
@greggirwin
Indeed! And Mike and Arie for red-by-example.
Petr Krenzelok
@pekr
Thanks for the info, Gregg, appreciated. Hope that new website will carry the Team section, would be nice to see those core ppl dedicated to the project. It would imo help to generally improve the project perception. Just my opinion, of course ....
Nikita Korotkin
@TheHowdy_gitlab
@pekr imho this is a much needed idea. Many people not watching red closely enough may not even be aware of the team (even mby thinking that it is a one-man project) or the Red Foundation.
Jose Luis
@planetsizecpu
There are good news, I see @TheRedTeam growing, so I want to encourage you, it still a long road to 1.0 and a plenty of things to solve, so stay tuned and push hard.
GiuseppeChillemi
@GiuseppeChillemi
@greggirwin Could I write the team composition on my WIP wiki (... this reminds me someone...) programming.red ?
Gregg Irwin
@greggirwin
@GiuseppeChillemi best to point people back to us here, or where we post team info in the future.
GiuseppeChillemi
@GiuseppeChillemi
@greggirwin So you are suggesting a link to your gitter post ?
Gregg Irwin
@greggirwin
Sure. Or just tell people there is a small team and if they come here, they'll meet some of us. :^)
GiuseppeChillemi
@GiuseppeChillemi
Of course ! The best part of life is being together and not reading a web page with no people around.
Palaing
@Palaing
@greggirwin thanks, that (CSV codec) will certainly be better than the one I made!
Petr Krenzelok
@pekr
@rebolek Where should I report findings and/or questions towards the CSV codec? First - when I try to use the delimiter parameter ";" all I get is an empty block. Second - load-csv/with #";" returns an error stating, that delimitercan't be a char! type, though its help string states otherwise. And lastly - why some lines are enclosed in quotes, whereas most of the lines are enclosed in {}?
Another question - why default mode returns block, whereas load-csv/header returns a map?
Boleslav Březovský
@rebolek
@pekr thanks for report! I'm on phone now, so I look at it in the evening and let you know. Delimiter can't be char error looks very strange, there are tests for it and they pass.
If you can send me your CSV privately, it would really help.
Petr Krenzelok
@pekr
Btw, the difference between the "" and {} is there even with read/lines. I am on the phone right now too ....
Btw, is there any plan to prettify console output of help on objects?
Gregg Irwin
@greggirwin

"" vs {} came up not long ago. It's Rebol's design, and confuses people. Beyond 50 chars the runtime molds strings with {} instead of "". If, for example, truncated console output always added a closing } that would be useful, because you could persist console sessions.

Object help alignment looks like a bug/regression. @bitbegin, I hate to say it, but it was your recent help changes that caused it.

Good catch @pekr.
Gregg Irwin
@greggirwin

why default mode returns block, whereas load-csv/header returns a map?

The rationale here is that /header means it should be used, not just that it exists. If you want the default format, and to separate the header, we (you? ;^) can add an example like this to the wiki page:

>> s: {a,b,c^/1,2,3^/4,5,6}
== "a,b,c^/1,2,3^/4,5,6"
>> data: load-csv s
== [["a" "b" "c"] ["1" "2" "3"] ["4" "5" "6"]]
>> hdr: take data
== ["a" "b" "c"]
>> data
== [["1" "2" "3"] ["4" "5" "6"]]
Petr Krenzelok
@pekr
I can tell you just one thing and most probably you might agree - there's always a tradeoff between the simplicity and the features offered. I gave codec a try, found some bugs or inconsistencies with just few tries. Well, bugs might get fixed, but I don't want to even think, why should I get a block vs the map. What for? To think just about that aspect is probably more complex than it might be useful to me.
Worked with CSVs for 15 - 20 years with Rebol. Never ever had I to use more than just few lines of code, and it was alway consistent: `data: read/lines %file.csv, remove first dataif there is header present ... and then finally the loop foreach row data [items: parse/all data ";" ....].... done ....
Gregg Irwin
@greggirwin
It's still open for discussion, and is a tough call. If you get back a block of blocks by default, and user /header, what do you expect to get back?
Petr Krenzelok
@pekr
I will surely give it more try. The truth is that I never faced other delimiter than semicolon. Constructing resulting converted CSV was once again a foreach loop with write/append applied ....
OTOH I have also faced a space delimited data. Fields of certain length and missed the default R2 left pad funciton back at those times ...
Gregg Irwin
@greggirwin
I noted at one point that I've almost always taken the low level approach myself, because that's all we had, and it wasn't worth writing higher level mappings when you're trying to get a single job done, just for you. With this design we're trying to save lots of people effort over time.
Looking at past projects, there were 2 big ones where these features would have helped me a lot, and I probably should have taken the time to implement them. One was data aggregation and analysis (column model), the other was a data scraping system that mapped data to records. In the latter case, whether you use "records" or just blocks depends on what you're tying to. e.g. a SQL model for DB or a grid UI that takes blocks, or a CRUD system.
Petr Krenzelok
@pekr
The problem is/was, that Rebol's low level aproach, was flexible enough to get things done in just few lines of code :-)
Gregg Irwin
@greggirwin
And you still can.
That's even the default.
Gregg Irwin
@greggirwin
Another argument for the extended features being standard is that it facilitates data exploration and verification, including generic tools we can offer.
Having concrete examples is great @pekr, so if you have old code you port to use the codec, and can post both examples, that's helpful.
Boleslav Březovský
@rebolek

The truth is that I never faced other delimiter than semicolon.

CSV is comma separated values, so comma is used as default separator. Anyway, loading data with semicolon should be as easy as load-csv/with data #";". If it doesn't work, there may be a bug. We have tests for it, but I could have overlooked something, that's possible.

>> load-csv/with {a;b;c^/1;2;3^/4;5;6} #";"
== [["a" "b" "c"] ["1" "2" "3"] ["4" "5" "6"]]

Anyway, what you describe parse data #";" is simply not enough, you were lucky if it worked always for you, or you had used very simple data.

>> to-csv/with [["@pekr" {convert this ; with your "parse loop"}]["@pekr" "I think it won't work"]] #";"
== {@pekr;"convert this ; with your ""parse loop"""^/@pekr;"I think it won't work"^/}
Petr Krenzelok
@pekr
SCV name might suggest that, but comma is the last value, which is used by default. That's just my experience, always semicolon. It works without the /with refinement, and returns an error with one :-)
I work with company enterprise dat, always check for the length of the parse operation and return an error, if not of the same value thru the whole data set. I know, call me just lucky :-)
Boleslav Březovský
@rebolek
@pekr as shown above, it works with /with refinement. If you have an example where it doesn't work, I'll be happy to see it and improve the codec.
Petr Krenzelok
@pekr
I can not provide you with the whole dataset - company employee data from the HR system, but here is a sample:
>> data: load-csv/with ";" "12345;Krenzelok;Petr;;19.12.2018;;19.12.2018;19.12.2018;"
== [[""]]
>> data: load-csv/with #";" "12345;Krenzelok;Petr;;19.12.2018;;19.12.2018;19.12.2018;"
*** Script Error: load-csv does not allow char! for its data argument
*** Where: load-csv
*** Stack: load-csv
shouldn't both cases work? Or am I doing something incorrectly?
Vladimir Vasilyev
@9214
@pekr you do realize that arguments are mixed up in your example?
So codec actually behaves as expected.