<InPhase>
teepee: I have a fast and efficient plan for our seeds that will work for us covering all cases, so I'll do that. (Just been getting tired in the evenings for the past week after finishing up other stuff, so I didn't finish it yet.) But if ever you need reliable true entropy without depending on unreliable system guarantees, feel free to steal the GetEntropy() function I developed on line 238 here:
<InPhase>
https://rcolyer.net/RCLib/docs/RND_8h_source.html I put a lot of work into reasoning that out and characterizing it carefully. It effectively dynamically adjusts its own parameters on the fly while it's running to pretty reliably extract true entropy, takes some conservative estimates on over-sampling estimates, and shuffles the results as it goes along with the same byte lookup hash table used in AES
<InPhase>
and Whirlpool.
<InPhase>
The vector and time-grabbing function are from elsewhere in the library, but those could trivially be swapped out without loss of the principle.
<InPhase>
A program in use for one psych experiment at work uses that as part of its seed (which is massive overkill for that purpose). But, it was there, so I used it. :) I originally wrote it while working on some custom cryptography stuff that needed higher guarantees of true random values.
Jack21 has quit [Ping timeout: 256 seconds]
pah_ has quit [Ping timeout: 240 seconds]
pah has joined #openscad
pah has quit [Ping timeout: 256 seconds]
pah has joined #openscad
pah has quit [Ping timeout: 240 seconds]
pah has joined #openscad
arebil has joined #openscad
arebil has quit [Quit: My keyboard has gone to sleep. ZZZzzz…]
<othx>
teepee linked to YouTube video "Look Mum no wires! These wireless LEDs will blow your mind!" => 1 IRC mentions
arebil has joined #openscad
Jack21 has quit [Quit: Client closed]
Jack21 has joined #openscad
pa has quit [Ping timeout: 260 seconds]
<Jack21>
teepee: throwies near broadcasting tower will never go out
linext__ has joined #openscad
linext_ has quit [Ping timeout: 240 seconds]
pah has joined #openscad
pah has quit [Ping timeout: 240 seconds]
pah has joined #openscad
<teepee>
yeah, ancient news article of some hobby gardens being suspicously lit near a radio station ;-)
ochafik has quit [Remote host closed the connection]
ochafik has joined #openscad
<Jack21>
i found a circuit plan for an old "radio in a soap box" took me a while to figure that it was powered wireless
pah_ has joined #openscad
pah has quit [Ping timeout: 240 seconds]
ochafik has quit [Ping timeout: 250 seconds]
pah_ has quit [Ping timeout: 240 seconds]
pah has joined #openscad
ochafik has joined #openscad
arebil has quit [Quit: My keyboard has gone to sleep. ZZZzzz…]
PovilasCNC has quit [Read error: Connection reset by peer]
<Joel>
Ok, here's a gotchya
<Joel>
echo((3 + 1/2) + (3 + 1/2)); - Why does this come back 7?
<Joel>
version 2021.01
<Joel>
oh, I can do math *facepalm*
pah is now known as pa
jonasbits has quit [Quit: No Ping reply in 180 seconds.]
Guest16 has joined #openscad
Guest16 has quit [Client Quit]
jonasbits has joined #openscad
arebil has joined #openscad
mhroncok has quit [Ping timeout: 264 seconds]
mhroncok has joined #openscad
ochafik has quit [Ping timeout: 256 seconds]
pah has joined #openscad
pa has quit [Ping timeout: 240 seconds]
pah has quit [Ping timeout: 240 seconds]
pah has joined #openscad
mhroncok has quit [Ping timeout: 240 seconds]
pah has quit [Ping timeout: 256 seconds]
mhroncok has joined #openscad
mhroncok has quit [Client Quit]
pah_ has joined #openscad
ochafik has joined #openscad
<InPhase>
Joel: :)
<InPhase>
include <caffeine>
ToAruShiroiNeko has quit []
<InPhase>
Jack21: That inability to support $fa=90 is weird, yes. Especially since $fn=4 and $fn=3 are well defined.
<InPhase>
Jack21: I'd call that a bug.
<InPhase>
It's not really what $fa is intended for conceptually, but it should still work.
<Jack21>
it is used if fn is not defined and so small circles are pentagons if you didn't define $fn
teepee has quit [Remote host closed the connection]
ToAruShiroiNeko has joined #openscad
<Jack21>
and as some use scad with "inch" you end up with pentagons very often - instead of triangles - as $fa define a limit and not a max - so i assume someone defined a max so you didn't end with squares when calling circle(); which might confuse new user
<InPhase>
This is the broken line, calc.cc get_fragments_from_r on line 45.
<teepee>
oh, it limits to 5, right
<InPhase>
The two lines right above limit to 3.
<InPhase>
I think that 5 should simply be a 3.
<InPhase>
The question is, is there someplace else that depends unwisely on that being a 5?
<teepee>
but then... why not just use $fn in those cases?
ali1234 has quit [Remote host closed the connection]
<InPhase>
I mean, depends on it never being less than 5 if $fn is not set.
ali1234 has joined #openscad
<InPhase>
Probably not. It would be a weird assumption.
<InPhase>
Jack21: I need to get back to some work stuff as I have a meeting coming up soon. I remember you have a github account now. Can you PR that change?
<Jack21>
you mean issue or?
furrymcgee has quit [Quit: leaving]
<teepee>
creating a PR for this change would be trivial via the github web gui, not even need for cloning the repo
<teepee>
I don't see a huge need to change it, but I guess it should be ok to do it anyway :)
<Jack21>
didn't i need to have the code line for a PR .. (remember iam new to git)
<teepee>
InPhase: mentioned the file name calc.cc
<teepee>
so in the github web gui you can just do "find file"
<teepee>
sorry "Go to file"
<teepee>
click the file and then the edit button
<Jack21>
ah ok .. (on pull request new i only get to compare branches)
<teepee>
yep, as that's based on a dedicated branch
<teepee>
but they have that nice feature to do tiny edits on files directly and that will do all the stuff for creating the PR automatically
<Jack21>
so hope this is correct .. seems i now also have a fork
<Jack21>
if you have an arc with a fix fn and different angles - the $fa can be used to match the fn number (as $fn is not constant on rotate_extrude with different angles)
<teepee>
cool, lets see if the test suite picks it up, but I would assume that's not the case
arebil has quit [Quit: My keyboard has gone to sleep. ZZZzzz…]
<Jack21>
now got several mails that PR run failed
<teepee>
yeah, I did not expect that, looks like it might not be that easy a change
<InPhase>
lol. Well now I'm suspicious about what wonky tests were being run.
<Jack21>
maybe as the rotate_extrude with angle<360 can have cases were some 2D like is created with $fn=3
<Jack21>
although rendering didn't gave any error
<InPhase>
That's a lot of tests... I guess someone went wild with creating tests with tiny circles and now they have a different geometry?
<Jack21>
did the test really run for ~40min
<Jack21>
rotate_extrude(angle=180,$fn=3)square(50); how can this be an 3D object?
<dalias>
?
<InPhase>
Oh, I see the problem. circles of radius 1 become squares, because default $fs is a gigantic value of 2.
<InPhase>
Which is because default $fs is unreasonably large.
<InPhase>
So someone patched that by forcing circles to be pentagons so they aren't mistaken for squares when the common radius of 1.
<InPhase>
The correct solution is probably to stop using silly values of $fs that are much larger than the common resolution scales desired.
<dalias>
wha???
<dalias>
default $fs is ?!
<InPhase>
Defaults are $fa=12; $fs=2;
<dalias>
i knew it was bad but wow
<InPhase>
Yeah, those are some giant low-poly chunks.
<dalias>
i always use 0.1 or lower
<InPhase>
I think it's overall bad because it makes the program by default look like it can't do anything nice.
<dalias>
yes
<InPhase>
People will mistake it for a toy.
<Jack21>
that was my assumption why someone did that ..
<dalias>
:/
<Jack21>
yeah without redefine these values - geometry look shit
<InPhase>
I will advocate again, defaults should be $fa=1; $fs=0.4; and people should then optimize from there and raise them when they need faster performance for something low poly.
<Jack21>
pupils say " i want't an cylinder not that "
<InPhase>
With this setting, circles of radius 1 have 16 sides, and look like circles.
<Jack21>
that would even be acceptable if the units are taken for inches
<Jack21>
.oO and this was the point in time were suddenly a lot thingiverse uploads looked a lot nicer
<dalias>
i kinda think the default for $fs should be 0 if allowed (fully scale-invariant)
<dalias>
since it only makes sense with a particular unit in mind
<dalias>
$fa=1 is unusably slow tho for anything beyond very simple projects :(
<Jack21>
and for small circles you don't need that resolution (it also slow your slicer and depending on resolution settings slow down your printer)
<dalias>
indeed, but 0.4 mm is way too large
<dalias>
and rather than slowing down your printer, finer resolution speeds up your printer
<Jack21>
a chord of .4 is not so bad depending the circle it is a very low diviation
<dalias>
at $fs=0.4, a d=4mm circle is 31 segments, so >10° turn at each corner
<dalias>
that means the speed will be limited to ~8*scv, so maybe 40-80 mm/s
<Jack21>
finer resolution can create very big gcode files and slow down 16bit/ Mhz boards
<dalias>
with marlin :-p
<dalias>
sucks to be using marlin :-p
<dalias>
with angle down to 5° at each turn you can go a lot faster
<Jack21>
didn't most of <400¥€$ printer use that
<Jack21>
i think the turning speed is not limiting the printer it is the gcode lines per second
<dalias>
if you're running marlin on slow microcontrollers then yes
<dalias>
if you're running klipper, no. the number of lines of gcode doesn't matter at all
<Jack21>
which was why the G2 G3 arc comands were needed in early CNC
<dalias>
the microcontroller only processses step timings
<dalias>
and anyone with a printer where this can matter is running klipper because you need input shaper to be able to go fast without serious ringing and vibrations that destroy your printer :-p
<Jack21>
G5 can do bezier and some formats also allow curves to reduce triangles but that isn't something scad can handle
<dalias>
the arc commands aren't really helpful imo
<Jack21>
no slicer is using them - they were intended to get μm resolution on a mill 40 years ago
<Jack21>
btw: these old tech is the reason why most CAD can only fillet with a radius and not using a hyp like in generative design
<Jack21>
with 3Dprinting engineers/designer need a new set of rules for design
<dalias>
i wish openscad could do it at all :-p
<Jack21>
Ü
<Jack21>
FreeCad is converting oSCAD objects into curves when importing scad code
<InPhase>
teepee: When you requested our OSS allotment here, were you able to get a renewable allotment like per month?
<InPhase>
teepee: If so, what process did you follow?
<InPhase>
(I need to know for a work project.)
<teepee>
InPhase: I don't remember doing that, I think kintel asked for that (we are talking CircleCI / MacOS?)
<teepee>
Jack21: AMF is dead and the curved triangles are pretty useless in my totally personal opinion
<Jack21>
3mf can replace most of it - but if resolution is getting into μm get really big files - i assume no program was using this but with a 5 level recursion you get 1000× better resolution
<Jack21>
at the moment this is only working for some mm height - but maybe in future
Guest85 has joined #openscad
<Joel>
Any way to trigger an exit/die/abort kind of behavior? I have a module where folks can pass values, I'd like to die if people pass in a bad value
<teepee>
assert()
<Jack21>
or replace them in case they are out of range
<Jack21>
value=value<0?0:value;
<Jack21>
or use min(max());
<InPhase>
teepee: I'm referring to the struggle that occurred back some time ago when travis-ci.org shut down, projects were migrated to travis-ci.com, and the new OSS allotment system started up where you had to request them to be renewed.
<InPhase>
teepee: I remember you had gone through some sort of support request process to get that.
<teepee>
well, that's not resolved yet, they still seem to demand a credit card
<teepee>
although the last email is a bit confusing, as it may indicate some other check for open source project might work
<InPhase>
Stuff is building though, so we must have some sort of allotment. :)
<teepee>
nope, not on travis
<InPhase>
Oh.
* teepee
goes checking to be sure...
<teepee>
> "We are unable to start your build at this time. You exceeded the number of users allowed for your plan. Please review your plan details and follow the steps to resolution."
<InPhase>
Okay. So basically you abandoned travis entirely after being unable to sort it out, and focused on circleci?
<Joel>
teepee thanks! will play with assert, docs make it exactly what I need
<teepee>
I'm not sure it's worth the discussion but I might try to continue on the support ticket
<teepee>
but I don't have much hope that goes anywhere
<teepee>
right now we build binaries on CircleCI and OBS and run most tests via Github-CI
<InPhase>
teepee: Okay. Then I guess I'm a step ahead on the work project. I'll let you know if we get it working with travis.
<InPhase>
We were trying to sort out how to construct the request to get something that would actually function.
<teepee>
the travis.yaml probably still would work, it's likely only the missing "payment plan" selection
<teepee>
coming from github?
<Joel>
I'm hoping, perhaps naively, that at some point I can put github actions to work turning my code into images which I can then export a png and check back in
<Joel>
Anyone else doing this, have a sample repo I can look at?
Jack21 has quit [Quit: Client closed]
ur5us has joined #openscad
<teepee>
I think there's even a github action for that
<teepee>
InPhase: then what I would expect is 1) installing the travis app on the repo 2) setting up travis.yaml
<InPhase>
teepee: Yeah, we have all that. We got to: "Builds have been temporarily disabled for public repositories due to a negative credit balance. Please go to the Plan page to replenish your credit balance or alter your Consume paid credits for OSS setting."
<InPhase>
Apparently we finally blew through the first 10,000 minute build credit.
<teepee>
from what I've read they get added to monthly but the wording was confusing and different depending on which page it was explained on
<teepee>
maybe it's one-time 10000 minutes and needs additional open source activation
<InPhase>
Yeah, it seemed like they changed their mind after outcry and tried to pretend they were always at war with Eurasia.
<InPhase>
But the resolution process is not clearly described anywhere.
<InPhase>
But, we opened a support ticket and made our best case. We'll see.
<teepee>
let me dig out that ticket
<InPhase>
I guess we'll look into switching to circle-CI if this doesn't work.
Jack21 has joined #openscad
<teepee>
github actions are currently very generous, with time limit of 6 hours and including macos
<teepee>
and obviously they do have some benefits in regard to easy integration
<InPhase>
So it is conceivable to you that it could be a full replacement for CircleCI?
<teepee>
yes
<InPhase>
Ok.
<teepee>
all eggs into one basket :)
<InPhase>
I'll have my people do a comparison then. We're probably only going to want to maintain one at a time, for labor reasons.
<InPhase>
(If Travis doesn't yield good support results on our request, since we already have that "setup".)
<teepee>
yep, that makes sense, travis did work quite well, only a bit behind with the platform updates - not sure if that is better now
<InPhase>
We're probably more on behind than them with platform updates, so that's fine. :) We have 3.5 full time programmers and 66 repositories, with maybe 9 actively undergoing significant development efforts.
<InPhase>
So, triage happens a lot.
Guest85 has quit [Quit: Client closed]
<teepee>
in that case the main effort is on the repo setup anyway, regardless of what CI it's going to be
<teepee>
I have not checked if any support things like seed jobs on jenkins