I love these kind of stories, and I appreciate the effort to write these histories down.
I do think the interview could use a bit more editing, it now reads more like a literal transcript and that is somewhat exhausting to read. Take this excerpt:
>> "Like it just fit my brain. It’s one of those where I don’t have to think about it, it just automatically makes sense to me. Much more than any other programming language. Even though I quite like C, I quite like all the pitfalls in C, I’m very comfortable in C and C++ and pretty comfortable in Java and PHP, but Python is just fun and it’s enjoyable and it makes sense. And this was the Usenet days, of course. I think the Python list, yeah, the email list gateway existed as well. So I think I just subscribed to Python-List and learned a lot about Python just from using it, following along."
I sometimes help out at a hobby vineyard of 0.7 hectare; weeding in the row is a lot of manual labour. Your platform seems like a good fit. I like tinkering and robotics, what kind of price point are you aiming for?
a simple ride on mower with a diy inter row disc (basically just a belt and pulley with a spring) may be enough. probably just get sonebody with a tractor and inter row disc weeder to do the job for you.
What's the plan for using an engraving laser in open air without blinding a neighbor? Does the bot fully roll over the target area before firing or something?
I fondly remember finding and exploiting a buggy slot machine on the night the Euro got introduced. A classmate (I never played slot machines) made some money but didn't understand what was going on. I observed and it became apparent (in my slightly intoxicated state) the machine would pay out 2 Euro coins where is should pay out 20 cents. And when playing a 1 Euro game, you would often "win" 80 cents. Pay-out immediately and you got 8 Euro. Of course after a few rounds, the 2 Euro coins ran out and it would do some RNG to pay out 1 Euro with 80% chance. Don't know if I tried feeding it back the 2 Euro coins, I recall just made enough to have a free new years eve
That reminds me of a vending machine ran into as a little kid. It was in a private place and it had an out of order sign posted. Being hungry and young, I plugged it back in so I could take my chances. Every time I put in a quarter, three or four would fall into the coin return. When it was time to leave, all of the pockets on my cargo shorts were bulging so much that I had to hold my shorts up.
that was possibly just some attendant accidentally messing up which hopper they refilled (or with which coins), or someone screwed up the assignment on the control board which hopper was connected to which bus identifier.
Reminds me I gotta eventually write up what I found reverse-engineering the one armed bandit in my basement LOL
The real problem is that BREP CAD kernels are hard. A few of proprietary kernels dominate the scene: Parasolid powers NX, SolidWorks, Fusion, and Onshape, while ACIS (owned by Dassault) is used by Inventor and BricsCAD. Catia uses Dassault's own CGM kernel. The open-source world relies mostly on OpenCASCADE, which is unfortunately a lot less capable than any of these.
Fillets and chamfers are a good example. They seem simple but are geometrically non-trivial, and OCC will fail on cases that Parasolid handles without complaint. You can push either kernel to its limits if you try hard enough, but OCC hits that ceiling much sooner. So any CAD tool built on top of it inherits that ceiling too.
> Fillets and chamfers are a good example. They seem simple but are geometrically non-trivial, and OCC will fail on cases that Parasolid handles without complaint.
A long time ago I interviewed at one of the large CAD companies. I remember getting an office tour and the person showing me around pointed into a corner with six desks and said "that is the team that does fillets".
Open source tools can handle some cases, but to handle the full complexity of real world problems is a huge extra step that I doubt they will manage any time soon.
That's one of the real problems. The other real problem is an active resistance to UI improvement simply because another CAD package did something similar.
FreeCAD doesn't resist those comparisons anymore. They happen regularly. Implementing change is just slow, and purely copying how xyz cad built their UI isn't always compatible with FreeCAD, so a lot of careful consideration goes into things before concepts from other software get implemented. Not to mention that developers seem to really dislike doing frontend work.
Aaaaah! No! You're doing it too! I am not talking about copying how xyz cad built their UI. I am not talking about consciously implementing concepts from other software. I'm talking about this crazy tendency to assume that the reason someone wants UI feature X is because xyz cad does it, not because it's a natural, intuitive thing to want to do. Natural, intuitive things tend to get independently invented; more than once I've made a suggestion and had "this isn't Fusion 360, you know" thrown back at me, despite the fact I've never used F360 to know what comparison they're making.
I wasn't implying you were doing that. I don't play the 'this isn't fusion or xyz cad' argument when someone brings a suggestion. I'm only stating that not every idea will work properly in the context of FreeCAD, but comparisons are considered when such suggestions are made.
The thing you are complaining about is the immediate dismissal the forum used to shoot back at people with ideas. Most likely a conditioned (and very toxic) response from receiving a lot of equally non-constructive feedback using things like F360 as their litmus.
Either way, there is the Design Working Group which evaluates ideas and feedback with a fair lens about what will work in context of FreeCAD and what is feasible to implement without causing unnecessary disruption to existing users. It is a complex social paradox to deal with.
Do you think this is why CAD software UI/UX is often so clunky? The kernels are complicated and error-prone given the incalculable number of edge-cases, which puts error reporting at a disadvantage, leads to counter-intuitive feature wizards with some having way too many parameters and others being very single-purpose?
I recently gave CadQuery (a Python wrapper around OpenCASCADE) and its Jupyter and VSCode integrations another try. Two years ago installation was a mess across conda, Docker, and pyenv, and the API itself felt like a dense, bespoke DSL you had to fight.
This time everything just installed, and Claude Code turned out to be pretty good.
Designing with code is sometimes more work upfront, but iteration is so much better. You get proper abstractions: functions, encapsulation, loops. You can drop in a SAT solver to optimize part placement or grab data from an excel sheet. No more clicking through a GUI that crashes and loses your session. I've spent time with Fusion, SolidWorks, NX, OnShape, FreeCAD, and Rhino, and each has its merits, but none of them can benefit from the LLM revolution the way a code-first tool can.
I asked Claude Code to generate a set of Lego bricks in various sizes, apply a nice color palette, and pack them optimally into a grid. It needed some steering, but all in all I was impressed
I believe there's a cadquery workbench for freecad, I messed around with it about a year ago but ran into similar struggles as you describe. I'll have to give it another try.
Set it up today and I am really liking build123d in general. I've always wanted something code-based for CAD and I can't believe I missed something this promising.
Frankly even the visualization tools that you can plugin like OCP Cad viewer mean that outside of complex assemblies you can do everything in your editor of choice.
I'm playing with this now too and it's really wonderful. I'm hoping that I can use build123d 100% for modelling individual parts and then FreeCAD for assemblies, simulations, etc.
not really. cadquery started as a freecad workbench, but moved out a long while ago. So current cadquery isn't usable inside freecad (which is a shame).
I just set this up the other day, and I got my ping to drop from 16 to 10ms, and my bandwidth tripled, when connecting from a remote natted site to a matter desktop my house. Together with Moonlight/Sunshine I can now play Windows games on my Linux desktop from my MacBook, with 50mbps/10ms streaming. So far so good!
Not a single port forwarded, I just set my router up as peer node.
Agreed with OP. It's very handy. I made the switch after trying to tinker with running third party utilities to do this and running into issues. I found Apollo and it all just worked. Now I can stream in 4K HDR to my living room TV (which is not even what my physical PC display is). It's compatible with all the regular clients too which is nice.
Neat use case. But in fairness, you've simply 'offloaded' NAT traversal/port forwarding to automagic helper protocols over which you have no control even if you wanted it.
I recently tried whitelisting IPv6 prefixes at the network border and running straight IPv6 traffic from end to end.
It works really well so long as there's an encrypted transport, although I'm a little annoyed that the routes are very different and the ping times are different too. Although at the moment I can't remember if they're worse ¯\_(ツ)_/¯
That seems really exciting! If you wanted to share game streaming to a general public would they have to install tailscale on their device/login? How does that work? Am I right in assuming that tailscale is built mostly for sharing resources with people you trust instead of the general public?
I'm confused.
I wanted to do this too with an OpenWRT router, but I was under the impression I still had to open a 40000 port so my NAT devices can see it. Wouldn't it still be on the exposed public Internet?
Ah, perfect. The Mikrotiks weren't as straightforward earlier but maybe it's easier now. Glad to know it works on EdgeOS. Did you just use this? https://github.com/jamesog/tailscale-edgeos
There are several ports open (you dont open them, Tailscale does), including for peer relay. Some are vpn ports, but the ports for relay servers are not for VPN so my guess is that the software that listens to those ports is a lot less secure (compared to Wireguard or OpenVPN).
Yes my router has open ports, but it does not do any port forwarding. So I can 'directly' connect any device behind my router without my router needing to know any specifics of which device that is. And I don't need to do any port forwarding of anything on my network and thus expose them to the whole internet; I just expose them to the users of my tailscale network (only me)
Within my risk appetite on trusted network segments. I have bigger issues if malware is operational within the trust boundary, it can do what it needs using outbound connections just fine (recon, lateral movement, etc). Your risk appetite might differ.
malware. Got any no-name IOT devices on your network? Got some Huawei built hardware anywhere? Playing some new indie game from developers in romania?
I had to install openwrt on my router so that I could restrict access to upnp by mac address just to my gaming pc (imo this should be standard on any router as an advanced setting, most are just upnp yes/no) so that I can still play online games.
The sharpest (and scariest) analysis I've encountered is this: the administration governs as though no government will ever follow. The blanket pardons for January 6th insurrectionists, the revocation of Secret Service protection for political enemies—these are not the actions of someone who expects to face accountability from a future administration. And that's precisely the point. Trump is not governing recklessly; he is governing with a specific end in mind: to be president for the rest of his life.
That project requires dismantling the judiciary, hollowing out independent institutions, muzzling the press, and having his own goon squad. By all appearances, he is on schedule.
My baseline (as an outside observer) is still that they are too stupid and uncoordinated to do a facist take-over. But that a significant possibility even exists that there will be a facist take-over is awful.
(The main ingredient for a facist take-over is control over the military and media and he is not creating many loyalists in either)
The abduction of Maduro was not about naming his crimes, but about ignoring them. The worst thing that Maduro did is just what Trump is beginning to do: killing civilians and blaming them for their own deaths. After Minneapolis, Maduro’s lies are being repeated: in American English, by American authorities.
The thousands of extrajudicial killings in Maduro’s Venezuela were carried out by organized death squads. These actions were described as defensive. The Maduro regime claimed that the people they murdered were resisting government authority, and that the men who pulled the trigger had been provoked by those whom they murdered.
Minneapolis has just witnessed an extrajudicial killing, at the hands of ICE, which looks more and more like a presidential paramilitary organization.
The action was, horribly, excused by the president, the vice-president, and the director of homeland security, using the same lies as those told by Maduro’s Venezuelan regime.
The victim was resisting government authority, they said.
The man who pulled the trigger had been provoked, they said.
It was not the killer who was a terrorist. It was the mom who had just dropped off one of her six-year-old at school.
Also, the proposed expansion of the White House doesn't align with the interests of Trump leaving at the end of his second term as it would have barely been finished by then. He does not seem like the type of person who would do something that only benefits someone else.
(My conspiracy-inspired theory is that they are working on the underground bunker there with the understanding that it may soon be in use when war breaks out)
Instead you should prompt it to come up with suggestions, look for inconsistencies etc. Then you get a list, and you pick the ones you find promising. Then you ask Claude to explain what why and how of the idea. And only then you let it implement something.
The friction to try it out is already really low, I like that! But it could be even lower if instead of an image the interactive version is served right on the landing page. Great project!
- In terms of data, this is nothing compared to any site serving a bunch of images. The compute would differ, but loading speed shouldn't be an issue if you can render the HTML first, and hydrate it after page load. This static HTML would then also serve as fallback when Javascript is disabled.
- For a quick demo, I doubt you will lose people by embedding an older version. Serving a version of a few months ago seems like 80% of the work, with 20% of the effort, in terms of deployment.
Anyhow, nice to see government funds put to a good cause!
I use Firefox as my daily browser. If i have a website that fails to work, I might try chrome maybe once every two months. And then it usually also doesn't work. So for all browsing I do on the internet, Firefox works like a charm
Get the OneTab extension. It'll save and close all those tabs. That way you won't have Firefox crashing during startup once you exceed the number of tabs it can handle (a few thousand).
Tip: the crashing is caused by certain extensions such as OneTab and All Tabs Helper which for some reason seem to cause all the tabs to load, just when restoring a session. Temporarily disable these extensions before restoring, then you can reenable.
I do think the interview could use a bit more editing, it now reads more like a literal transcript and that is somewhat exhausting to read. Take this excerpt:
>> "Like it just fit my brain. It’s one of those where I don’t have to think about it, it just automatically makes sense to me. Much more than any other programming language. Even though I quite like C, I quite like all the pitfalls in C, I’m very comfortable in C and C++ and pretty comfortable in Java and PHP, but Python is just fun and it’s enjoyable and it makes sense. And this was the Usenet days, of course. I think the Python list, yeah, the email list gateway existed as well. So I think I just subscribed to Python-List and learned a lot about Python just from using it, following along."
reply