Jump to content

Gustavo 'Gus' Carreno

Members
  • Content Count

    43
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Gustavo 'Gus' Carreno

  1. Hey Y'All, Added a section named Differences From Original to the README.md file to frame the context when doing comparison with the original challenge. Cheer, Gus
  2. Hey Y'All, We are officially in the 16 to 17 seconds: $ time ./bin/sbalazs /tmp/measurements-1_000_000_000.txt 32 {...} real 0m16.422s user 3m46.669s sys 1m29.654s Only 15 to 16 seconds to go Cheers, Gus
  3. Hey Y'All, Okies, since the repository is the de facto central place for all things related to the challenge, I've opened the Discussion tab on it. Cheers, Gus
  4. Hey Cornelius, We are coordinating, live, on Discord. I'm not sure you're a Discord person, or even if you're into online chat things, but I thought you should have that piece of info. We are assembling on these: The "Delphi Community" Discord server on the events channel The "Unofficial Free Pascal" Discord server on the off-topic channel( mainly, because the server owner did not create a channel for the event ) Cheers, Gus
  5. Hey Cornelius, Indeed. But expected, right? When the out of the box is missing, the FOSS side of things kinda fills the void, right? Okidokes, merged!! On my system, into the SSD I was doing ~1m, but was doing 30s into /dev/null. Those are still quite impressive values. But paweld did do a wonderful job at optimising the code that is shared between Delphi and Free Pascal a lot. Quite proud of his work!! Cheers, Gus
  6. Hey Cornelius, I was actually considering this one: VSoft.CommandLineParser That one seems to be a self contained thing without dragging much more. But also had these in the back burner: rcmdline FDC.CommandLine.pas GpCommandLineParser.pas But now I need to add that one to my list since I don't have it 😃 Thanks !! Cheers, Gus
  7. Hey Cornelius, I was gonna make that version myself using a package to take care of the command line params. But then my brain entered stooopid mode, someone else offered to make it and I just went with it. The fact that Free Pascal has TCustomApplication that has inbuilt params parsing and checking makes it a breeze to use out of the box. I'm just sad that Delphi hasn't invested in something like that out of the box and leaves the programmer a bit in the lurch to do the same boilerplate stuff every time. I'll be waiting for your PR!! Cheers, Gus
  8. Hey Cornelius, Had a look at your fork and if you feel that your changes make more sense in the Delphi side of things, I'm quite happy to merge the PR and push a v1.1 tag. Sorry to use this channel to convey that, but you don't have Issues or Discussions active on your fork. Cheers, Gus P.S.: The README had an update to include the input file SHA256 hash and a list of the generator usage.
  9. Hey Cornelius, Absolutely!! Correctomundo!! You are correct. As any well behaved Linux command, well at least I made an effort on the Lazarus side, if you run it with the `-h` or `--help` param it will print it's usage. The Delphi one also has the same behaviour. And we also made an effort to make the Delphi and Lazarus side of things match in terms of generation. The main objective of having a generator is the fact that anyone can practice with the exact same content. The other objective is simply the fact that the file that contains the full 1 billion rows is ~16GiB. No way we were going to store that on a free GitHub repository. $ ./bin/generator -h Generates the measurement file with the specified number of lines USAGE generator <flags> FLAGS -h|--help Writes this help message and exits -v|--version Writes the version and exits -i|--input-file <filename> The file containing the Weather Stations -o|--output-file <filename> The file that will contain the generated lines -n|--line-count <number> The amount of lines to be generated ( Can use 1_000_000_000 ) The input and output files are needed. As is the number of lines to generate. The input file being the one you mentioned having the ~44K entries. The output file is of your choice. The number of lines can be in the normal base 10 format, or use underscores for the thousands separator, as shown on the usage printed above. Most have been running on test files of about 100 million rows, but this is just an example. You're more than welcome !! Hope you can make the time to participate and have a ton of fun while doing it!! Cheers, Gus
  10. Hey Brian, Okydokes, I get it!! I completely forgot to account that I'm a 53 year old person that lives in an era where the average attention span is... oopsss, it's gone!! And for that I deeply apologise !! I shoulda known better, cuz I do have 2 kids that show those symptoms and I completely forgot about that fact. Sorry!! Cheers, Gus
  11. Hey Dummzeuch, I really enjoyed the way you laid it out, that I really enjoyed, truly. Just that last paragraph did put the flame on my short fuse. If you just said something along: Nice thing to have a go, if ever I had the time for it. I would just be beaming with content and would never shoot off my big mouth. I would be quite grateful for your input and gone to do something else. The end... Cheers, Gus
  12. Hey Brian Evans, I was only trying to be brief, since the README file on the GitHub repository has all the needed information, plus the necessary attributions. I left the correct trail to be followed for the ones that would have the interest of getting to the bottom of it all. I don't think that me leaving a breadcrumb trail is to be used as an excuse to just dismiss the hole thing entirely. But again, maybe due to my short fuse, while it did take more than a couple of hours to actually come back and write a less honourable post, I will apologise for the type of wording I used. But not for the content itself!! Cheers, Gus
  13. Hey Attila, I am know to go off in tangents and angry rants, sometimes, for not much. I'm also involved in a bunch of other communities like Telegram(English and Portuguese, Lazarus and Delphi), Discord( 3 Servers of Lazarus and Delphi) and the Lazarus Forums. In none of those have I ever had such a response. In all of the above I try really hard to welcome the padawans that wander in with the most devilishly incomplete and weird questions, trying to hang on to the patience of a saint. Heck, I even got made MVP by Ian because of that alone!! When I come to a new place and I'm greeted this way, welp, my short fuse did get lit, consumed and passed the spark to the gun powder!! I probably need to apologise for the words I've used. But I'm not apologising for the message conveyed! Cheers, Gus
  14. Hey dummzeuch, BTW... Writing 5 paragraphs with a conjecture of how to do it and then dismissing the entire thing as being "not much of a challenge" is a bit of a crappy dismissal, no? Instead of just resting on your thought experiment, why don't you put your money where your mouth is and prove what you claim? Shooting from the hip is rather easy, but making an entry and proving your chops is something entirely different, right? I'm a bit miffed and my choice of words may seem harsh, but the lack of usefulness or any point in the answers I got just gave me a very bad brogrammer machismo vibe that I've only seen in Stack Overflow. If this is the type of welcome you peeps extend to a newcomer... I dunno... It's pretty toxic... Even in the case that this could not be the type of thing that the regulars here have an interest in, at least a sense of community is the least to expect, no? I deeply regret the thought I had of attempting to post here! I just hope that name calling and dumb shaming is not the next thing I'm to be dealt... Cheers, Gus
  15. I'm performing tests on both an SSD and an HDD and the results reflect that: https://github.com/gcarreno/1brc-ObjectPascal#results I'm using hyperfine to run the program 10 times. This will give the system ( Ubuntu 23.10 64b ) the opportunity to cache what it needs to cache. The specs of my machine are listed on the GitHub repository. The input file has 1 (American Billion) 1.000.000.000 lines and has the size of ~16GiB. Yeah, sorry, don't have the necessary knowledge to even comment on that 😅 Yeah, agreed! Depends on the opinion you have about using threads and their implicit complexity. But yeah, the real challenge is to make it as blazing fast as you can!! And the time to match, or beat, is one second. This from the results of the original challenge made in Java. Cheers, Gus
  16. Hey Attila, Thank you very much !!! I don't see that as an issue. I see that as a fact of life, like everyone has a personal life. Then you chose to make the time for it or not, and that depends on your schedule and your will to participate. I'm not putting a gun on anyone's head, just proposing a fun, and quite optional, exercise in programming. Cheers, Gus
  17. Welp, has to be a command line program I can time with hyperfine, as stated on the rules. Needs to output to STDOUT, as stated on the rules. Needs to be pure Object Pascal with no external libs or package dependency, as stated in the rules. Must I go on 😉 ? Cheers, Gus
  18. Hey Alexander, I quite like your sense of humour 😁 !! Doesn't quite satisfy the rules, and a line of SQL is still a line, but yeah, good one !! Cheers, Gus
×