Hacker Newsnew | past | comments | ask | show | jobs | submit | Jnr's commentslogin

I think Immich (Google photos alternative) uses pgvector. And while you can't really call it a "production" system, because it is self hosted, I have about 100,000 assets there and the vector search works great!

It was a smooth experience for me. Just start the cloudflared container with the provided key in the environment and you are done. I also don't have ipv6 but it is not required and if I remember correctly I did not have to specify any endpoints, just the key.

In a large project with decent code structure there can be quite a bit of boilerplate, convention, testing required. Also we are not talking about a 10-line change. More like 10k line feature.

Before LLMs we simply wouldn't implement many of those features since they were not exactly critical and required a lot of time, but now when the required development time is cut signifficantly, they suddenly make sense to implement.


Except many new cars are locked down in software, for example not allowing to release rear parking brakes without authorized service subscription, keeping the electronic keys for each VIN unique and stored in the cloud. Yes, there are workarounds on releasing the brakes manually but it is a burden.

Also similarly as with iPhones, many cars require connecting to the authorized service to change headlights and other parts since they are paired with the MCU.

I know how to work on my car but I am not able to because someone decided to lock it down.


I don't follow. Every time I drive my car I release the parking brake. On the cars with electronic brakes, you use a button rather than a lever. I'd do it the same way to service the brakes.

A lot of electronic parking brakes do have a service mode. For most modern Fords, there is a procedure, as one example of many:

> https://www.brakeandfrontend.com/quick-answer-electronic-par...

You typically need the piston fully retracted to replace pads, which very rarely happens just by disengaging the park brake.

If you are old enough to have changed a manual handbrake pad, you normally had to screw the piston back in before you could fit the thicker new pad with a "caliper rewind tool" even if the handbrake was off, the electronic parking brake service mode essentially does this for you, or unblocks the piston permitting a rewind tool to work.

> https://www.thedrive.com/guides-and-gear/how-to-use-a-brake-...

FWIW, I've never found an electronic parking brake I couldn't rewind myself after a few minutes on google.


Huh. Interesting. I've never replaced the parking brake mechanism or (separate) pads myself, though I've done a handful of brake jobs.

On the cars I've worked on, the hand brake did not actuate the primary caliper so retracting the piston wasn't an issue.


It took a while for me to fully set up Nextcloud with STUN/TURN, Office server, etc. in a properly containerised setup. It clearly felt like it was built before containers and modern devops approaches were a best practice.

And while community is great, I don't think Nextcloud developer community is that big and active. Their plugin system is basic, archaic, lots of things there are begging for rework.

So while Nextcloud is decent once set up, I am happy to see some fresh OSS projects solving similar issues appear. Maybe their approach will be better.


I have been actively using all of them - Linux, Windows and macOS for the past 15-20 years and currently Linux has the best desktop environments possible. macOS is still stuck in 2010 and it is quite painful to work with my Macbook even with all the tweaks and modifications. Sure, you can live with it, but there is always something annoying about it and you can't do anything about it. Apple has the best laptops but the worst desktop environment that does all the window management, etc.


I don't care about the UX of the specific applications, most of them work on Mac/Windows/Linux anyway. What I care about is the window manager and macOS has a terrible window manager. That is why I am using Aerospace on macOS, and it makes things better, but it's still far from what Linux has to offer.


I had a brief hiatus of not using macs for work and gave linux a spin on a framework laptop. Tried sway / wayland since everyone at work was either using sway or i3. It was alright at first and i got in the groove of things but became unusable with apps with odd ui toolkits like ghidra/java awt, etc. Also too much time is wasted in customisation and organising or curating your windows.

Switched back to mac after about a year, and i can't say i miss tiling window management one bit. I've learned that i am quite content with the chaotic style of window management that mac offers, and find it much easier to work with since you're not wasting brain cycles perfecting your layout every time a new window is opened. I do use macos out of box tiling / snapping on the rare occasion i need side by side layout but that's really it.


Just install Gnome and be done with it. You don't install Sway or Hyprland unless you specifically want to tinker with it a lot.


I'll have to agree on that, I'm quite unhappy with the macOS window manager.

On the other hand, I'm yet to find a Linux word processor or spreadsheet with a UX nearly as good as Apple's Pages or Numbers.


All good, but did you know that Next.js is a full stack framework? You can have backend and frontend in the same code base. You don't need Laravel if you use Next.


Next.js is still missing lots of backend stuff. Background jobs, cron jobs, queues, etc.


BEAM / Erlang / OTP / Elixir feels different:

- no JS (well a tiny bit ships with Phoenix but I never have to look at it), no NPM, nothing that breaks every week

- the whole system lends itself to executing on multiple cores

- GenServers BEAM processes in general are amazing


> You don't need Laravel if you use Next

But you do need to solve a lot of stuff that Laravel already solves for you.


that’s true, next.js does a great job offering a full stack experience. the difference with phoenix is that it’s built on the beam, which gives you concurrency, fault tolerance, and real-time capabilities out of the box. liveview also lets you build interactive frontends without managing separate api layers or client frameworks, keeping everything unified and fast.


It states it is "peak performance". Probably in a very specific use case. Or maybe it reaches the peak for an extremely short period of time before it drops the performance.


As someone who has modeled in 3DSMax and Blender using the mesh modeling approach and in Fusion360 and FreeCAD using the CAD modeling approach, for 3D printing I really recommend learning CAD modeling in FreeCAD.

The ability to make models precise, constrained and and parameterised more easily allows going back to previous steps to make adjustments.

For 3D printing it is very helpful to be able to change a defined variable and have the whole model recalculated. I often use variables for clearance, screw hole diameters, etc.

Recently FreeCAD has become very good and I have switched to it. And there are a lot of great FreeCAD tutorials on Youtube.


Since blender has Geometry Nodes (and especially the more recent versions of those) I make all my parametrized models in blender.

True, it's a bit more hassle to setup and way less standardized. And it's not really the right tool for the job. And the models are less re-usable.

But.... I use blender a lot for other stuff and it's a joy to use. Freecad otoh feels like a confusing mess to me (probably because I don't use it often enough, but still...)

I'd love if Freecad would go through it's own 'blender 2.5 release' phase where someone would prune the UI.


They only recently (a year ago) released v1 of FreeCAD.

Blender 2.5 came out ~15 years ago, and as I was learning Blender in 2010/2011 it did not feel nearly as good as it does now. I believe that something similar could happen with FreeCAD, as I tried it some years ago and it was unusable in my opinion, but now I can work with it without any major issues. And the more attention they get, the better it will become.


I think GP is referring to the 2.9 release (or was it 2.8 or 3.0?) that had a major UI overhaul a few years back, I would say that the real explosion of Blender usage co-incided with that release.

Coming from 3ds, 3dsmax and Lightwave mainly (some Maya), I had previously tried Blender a couple of times and usually rage-quite within 15 minutes due to the flaky-feeling UI.

After actually using that big UI release I went back to the previous major release to see what I had missed.

The general context (mesh mode->mesh edit->vertices) that in newer releases is placed somewhat in a sane order, was placed so that your major context was selected in the _middle of the screen_, then secondary was at the top and tertiary somewhere else.

That's just a big no-no in terms of UI design but had probably made some sense when Blender evolved and people who got used to Blender had probably internalized it (and staunchly defended it).


No they probably do mean the jump between the interface in 2.49 which was somewhat unique and very, very different to the current UI, to that in 2.5 which the current interface mostly resembles. 2.8 was a smaller jump that introduced left click select as the default, along with various cosmetic enhancements and a rework of the depsgraph.No idea what you're talking about with contexts being selected in the middle of the screen etc. I suspect you're using "context" in a way unique to you


No it was definitely Blender 2.8, and honestly the buzz around 2.8 was substantial in gamedev circles that hadn't talked much about Blender before (rather complained about the Autodesk monopoly).

Just compare the 2 videos below,

2.8, here the layout/modelling/sculpting/UV-edit/animation,etc workload tabs are on top (main workload context), to the top-left inside the viewport you notice object mode (that can change to mesh,mode,etc), in mesh-mode iirc the vertex/line/face selection will then appear inside the viewport to the right of the mode selector (so reading workload/mode/option goes top->down, left->right and all contained in the upper part of the UI).

https://www.youtube.com/watch?v=ILqOWe3zAbk&list=PLa1F2ddGya...

Now let's go back to 2.7, here you notice that object/mesh-mode selector (2nd level context) is at the bottom just above the timeline view.

Heck knows where the workload and vertex/line/face modes are (was it windows presents or smth like that?), but I distinctly remember being dumbfounded by their relative locations when I realized where they were when I went back to research why I hated blender previously.

https://www.youtube.com/watch?v=lY6KPrc4uMw

Now if you consider that cosmetic, sure you were probably a fan from before and managed by key shortcuts, but from a general UI perspective that makes the difference from being stumped by random locations of things to being able to get things done from the get-go with previous 3d modelling knowledge without reading the entire manual.


You are right that 2.8 was another major improvement. But imo the process started with 2.5, when the conscious decision was made to fix the UI.


Au contraire... FreeCAD has a confounding UI, except for the sketcher.


For me the problem is less the UI but weird bugs / unimplemented cases in its modeling kernel. Some lofts and tubes just refuse to work for no apparent (to me, a non-expert in CAD) reason. Even worse, simple fillets sometimes don't work as expected on moderately complicated bodies. Maybe if you're an expert you can avoid these case, but it's extremely frustrating to spend several hours successfully modeling the general shape only to be unable to apply simple dress-up features.

I'd really like to use it and master it further, but CAD is not something I need often, and in F360 any geometry I've needed just works.


Yea the open cascade kernel underpinning freecad (and python libraries like build123d and cadquery) has a number of rough edges. Many can be avoided, but that unfortunately requires a bit of experience.

IMO, lofts are often not the best tool for many jobs, but planning around fillet issues can be a pain.


It is far from perfect, but it is quite usable now. https://i.imgur.com/4CezlnJ.png


This is not a release version, though, is it? Or has some additional extensions on top of it?

I've had bad experiences on the latter, as in a lot of breakage occurred :/.


Looks like a dev build of the 1.1 release


I do have FreeCAD Ribbon addon, but I think the rest is as is. Indeed, it is the development version and it is stable, but I'll probably switch to 1.1 stable once it is released, just so that I automatically get the package from my distro.

...which is Arch, by the way :D


to be fair, I did do exactly as you described, and im glad I had both under my belt. But the amount of bs you can get when doing exactly that, "going back and changing a previous step" can be very annoying. Changing dimensions or previous sketches is usually fine, but anything more complicated often results in everything in your stack breaking with strange errors, leading it to just be easier to re-create the model. For many of my more complex mechanisms, ive made the entire thing three or more times


I use OpenSCAD for parametric stuff and it has served me very well, even if it has a learning curve and some serious limitations. The trick is to stop thinking interactively and to treat the shapes you want to make in a more generative manner. For instance, you could try to fillet or chamfer an edge, or you could create that edge using a sphere or a shape tracing a path and then tying it all together with a hull. But it can take a while before you become adept at seeing how shapes decompose into simpler shapes.


If you like to code, OpenSCAD is really the best for simple shapes and my go-to tool for these situations, stuff like making a project box for an electronic contraption.

OpenSCAD however fails spectacularly for any kind of complex filetting situation when compared to tools like Fusion or even FreeCAD (FreeCAD's UI is an abomination though).

The morphological ops in OpenSCAD (minkowski type stuff) are a very poor substitute to real fillets, and are extremely slow (underlying algos are all polynomials in number of triangles) when your objects get complex, and they are global operations, it is extremely hard to limit their action to a localized part of your object.

Even Blender, which was truly never designed for this type of operations can sometimes do better than OpenSCAD for fillets.

Another thing that's a real pain in OpenSCAD: you cannot "probe" (measure) your existing object at a certain stage, grab the result of that measurement and re-use it in the rest of the code. MAJOR limitation.


>OpenSCAD however fails spectacularly for any kind of complex filetting situation when compared to tools like Fusion or even FreeCAD (FreeCAD's UI is an abomination though).

build123d[1] is based on the same kernel as FreeCAD and has full support for complex filleting situations. Furthermore it also has first class support for 1D and 2D primitives which enable a more flexible design approach.

> The morphological ops in OpenSCAD (minkowski type stuff) are a very poor substitute to real fillets, and are extremely slow (underlying algos are all polynomials in number of triangles) when your objects get complex, and they are global operations, it is extremely hard to limit their action to a localized part of your object.

Agreed.

> Another thing that's a real pain in OpenSCAD: you cannot "probe" (measure) your existing object at a certain stage, grab the result of that measurement and re-use it in the rest of the code. MAJOR limitation.

This is another area where build123d excels. You can create a line and query its length. You can create a face and query its area, position, size, bounding box, etc. You can select parts of a solid and perform operations on them (like a chamfer/fillet, or use them as a reference for positioning). You can query the geometric type of any topological entity; e.g. is this curve linear, a circular arc, elliptical, or a spline?

build123d is IMHO easily one of the most powerful CAD packages that are not well known by a wide audience (owing in part to its ~3 year history). OpenSCAD is a fantastic tool; it was my introduction to CodeCAD and I used it for years. Therefore, my objection isn't to OpenSCAD itself, but to the limitations inherent in any single tool -- and in this case, those limitations are quite significant.

[1]: https://github.com/gumyr/build123d and docs https://build123d.readthedocs.io/en/latest/


I've long imagined something comparable in use to OpenSCAD, but where the primitives are tool-paths rather than shapes; you specify the cuts (or prints) the machine will make, and get a render of how the material will look afterwards.

This would, of course, be a great hassle to use, but I think I'd really enjoy being able to eg preview the texture different tool heads / cut patterns would leave. I imagine thinking in terms of "how the machine will cut this" would also improve my ability to reason about the machine.


Sounds like you just want to write GCode? There are some helpers to make it a little less tedious, like FullControllGcode. Gcode, especially for printers, is really 2 commands, G0 and G1, so writing your own helper is also pretty easy.


There is a lot more to it than that. For instance, for overhangs and bridges you need fairly fine control of the fan in relationship to the movement of the extruder head. You'll need to do circular interpolation in such a way that the toolhead does not slow down too much or you'll get really crappy corners and seams and other joints can be really hard to do properly if you are just using naive point-to-point moves rather than lots of little tweaks to get partial overlap between the two adjacent paths. And then there is control of the extruder retraction and pressure advance, which are pretty complex and difficult to get right for even a subset of the most common use cases, especially if you want to have a range of speed options. "pretty easy" does not match my experience so far, but then again, I am only using this when the regular slicer can't cope so there is a chance that the problem is me.


I want to _generate_ gcode (using a high-level language), then run it through a simulator which can show me what the results will look like (for a given tool head).


I never understood why this is such a deal breaker. I just export The stl from Openscad then do fillets in Fusion. It's another step but usually only a few mins of clicking.


Let me translate this to software engineering: "I never understood why people have such a problem with Windoze".

The answer to your question in the context of CAD modeling:

Fusion is closed-source.

Their model files are closed-source (specs aren't public)

AutoDesk is one of the worst company in the world when it comes to inter-operability, and this by design. It's just in the DNA of that company.

Their customers is their enemy, they know it full well, but they don't care because the walls of the prison are made of steel and one meter thick.

Your object construction pipeline is guaranteed to become obsolete at some point in the future.

Good luck grabbing an object you built 10 years ago and doing some light editing on it.

Good luck grabbing a parametric design and exporting it to something else, either another CAD package or something to do visualization and do further work on the model in there.

Fusion is a real nice tool. First taste is free. Then you're on the AutoDesk hook for ever.

You may not care about these things, especially in a commercial setup.

But lots of people do.


> OpenSCAD however fails spectacularly for any kind of complex filetting situation when compared to tools like Fusion or even FreeCAD (FreeCAD's UI is an abomination though).

I've never had a problem with this, but I build up from the ground with the edges the way I want them to be. The reason many people struggle with this is that they start from 'hard' primitives such as cubes and triangles and then they want to process the edges once the rough shape is there. That's all but impossible. But you don't have to do it that way at all.

> The morphological ops in OpenSCAD (minkowski type stuff) are a very poor substitute to real fillets, and are extremely slow (underlying algos are all polynomials in number of triangles) when your objects get complex, and they are global operations, it is extremely hard to limit their action to a localized part of your object.

That's because they're used as 'after the fact' tools. It's a bit like trying to change the shape of a folded piece of metal after the fact. It's much easier to shape it right the first time than to 'fix' it later on.

When I start working on a shape like that I use a truncated cube rotated 45/45/0, place copies of that cube on the vertices of the shape I want and then cover the whole thing with a hull. Instant chamfer. If I want to use fillets I'll use a sphere. That's much easier than to first create an arrangement of cubes and other primitives and then to decide where I want the fillets to go. Picking those initial shapes for the corners is the tricky part, after that it is very quick to make (and change) objects. I've done some pretty complex shapes like this, fully parametric that would have cost me days with a traditional workflow.

> Another thing that's a real pain in OpenSCAD: you cannot "probe" (measure) your existing object at a certain stage, grab the result of that measurement and re-use it in the rest of the code. MAJOR limitation.

Yes, agreed, this kind of second order primitive is not possible. I understand the reason for it (and the reason why you can't change variables on the fly) and it is a serious drawback. This makes it very hard to relate two non-trivial shapes to each other. Interactive CAD programs are better for things like that, but there - usually - the kind of change that takes a second in OpenSCAD means a whole pile of manual work. So my recipe is to stick to OpenSCAD for those things that I think I can make with it and to use an interactive tool for everything else.

One thing that OpenSCAD excels at is remixing stuff based on existing STLs, I've yet to find another tool that allows me to do that so easily and with such versatility. Before my 'serious' cad tools have imported a mesh the OpenSCAD workflow is already printing the remixed result. As with everything: the right tool for the job is the key.


> When I start working on a shape like that ... [goes on to explain CAD methodology]

Your way of building objects require a ton of very hard thinking.

Most folks I know doing CSG modeling don't think (or often: can't) this way.

The typical way folks model with CSG is the age-old "roughing-out then refine" technique, building a rough idea of the object with cubes spheres and cylinder in a CSG tree, and then adding details iteratively. A bit like folks who draw cartoons operate: start with drawing potatoes and then add the details.

In this approach fillets come in at the last step, when the object is "complete" and hard edges simply need to be softened.

Most people are incapable (I certainly know I am) of designing fillets in from the onset, especially if the object is going to be complex.

I don't dislike OpenSCAD, quite the contrary, it's just that all of the things I built with it always ended up with a fillet related headache.


Did I solve all problems that OpenSCAD might have? Compared to FreeCAD. Me myself think I did: https://youtu.be/eG5lhLYvihQ?si=yA00IYVU4_Zemdxi


Echoing a sibling comment. OpenSCAD is DEFINITION LANGUAGE and while it feels kindof like a programming language it's wildly not. Here's a comment in a (lengthy) issue that describes in more detail.

https://github.com/openscad/openscad/pull/4478#issuecomment-...

My main complaint was you can't say with OpenSCAD:

   translate(makePen().cap) ; translate(makePen().body)
   # ...to decompose/modify returned parts of complex objects
...and woefully, you cannot say:

   pen := new Pen(q,r,s,t); box := new Box( pen.L, pen.W, pen.H )
   # ...to be able to make boxes for arbitrary pens
...so it's MATHEMATICALLY parametric, not PROGRAMMABLY parametric, which led me down other CAD-language (eg: CadQuery), or you could use `*.scad` as a _rendering_ language rather than a _development_ language.


Yes, and it is something that many people that try to use OpenSCAD for some reason do not seem to clue in to.


>Changing dimensions or previous sketches is usually fine, but anything more complicated often results in everything in your stack breaking with strange errors, leading it to just be easier to re-create the model.

This is usually the result of design workflows and how you avoid it is going to vary based on the CAD package. It definitely requires being pretty deliberate in design, which can make it harder to draft out an initial design. And the path of least resistance is often one that's more likely to break.

One example would be in Fusion, using projected faces in sketches is far more fragile than projecting a body -- but Fusion will happily project faces by default.

Which constraint types you use where are another common cause of breakage.

The thing that makes it frustrating is that none of this is really well documented anywhere and largely ends up being best practice wisdom passed from one person to another, since a lot of this stuff is really non-obvious. And it's confounded yet again by people cargo culting best practices from one CAD package to another that then gets repeated third and fourth hand.

All that said, as you work with it more and delve into more complex designs, you'll end up settling into workflows that result in more resilient models if you're deliberate about it. The "scrap it and start over" cycle is part of the learning experience, IME, as frustrating as it is at the time.


Going back in history works better in Fusion360 than FreeCAD currently, but...

In FreeCAD it works but you have to think a bit how you approach it. For example, if you reference an edge that you later on go back and delete, of course it will break things. Also if everything is not correctly constrained and you go back and edit it, it will likely break things. And then there are some bugs as well, but it's free and open source so I am not complaining. :)

Similarly as with mesh modeling, where correct modeling style is needed for smoothing not to break things, with CAD you also have to get used to certain approach to modeling, you can't be as chaotic.

But the more you do it, the better you will become and in my opinion learning proper CAD modeling approach is easier than proper mesh modeling in Blender.


I think this depends what you're 3D printing. I'm almost always making utilitarian things with specific purposes so CAD modelling makes sense, I know what dimensions I need, and what constraints exist, if I were modelling figures for a tabletop RPG it would be an absolute nightmare though. As ever, right tool for the job.


I found FreeCAD more difficult to learn than other 3D CAD programs, but the 1.0 release that came out about a year ago has improved things a lot. It also looks like 1.1 (being stabilized for release right now) is going to add a lot of nice features.

It seems like the product is having a bit of a renaissance. I'm not sure how much of that is coasting on the work that Ondsel (now defunct) did over the past few years, and how much is sustainable momentum. Hopefully more the latter.

The boundary representation kernel that FreeCAD uses (OpenCASCADE) has some limitations, and it's unlikely that those will be resolved. They make for a bumpy ride sometimes.

I think FreeCAD is almost becoming usable enough that it's reasonable to try to learn it if you want to use free software, or want to create models that you can use commercially.

If you don't care about commercial use, or you are willing to pay, I think OnShape is more powerful and significantly easier to learn and use. It uses the Parasolid kernel, which is more robust than OpenCASCADE. It's free for non-commercial use with the caveat that your models have to be publicly visible. https://www.onshape.com/en/products/free

If you want to learn FreeCAD, here's what I recommend doing:

- Install OpenTheme and OpenPreferences. https://old.reddit.com/r/FreeCAD/comments/1j82svt/i_really_w.... These fix a lot of the sub-optimal defaults that FreeCAD ships with.

- Increase the marker, font, and line sizes in sketcher and display preferences.

- Watch Mango Jelly and Joko Engineering videos on YouTube to learn how to do things. Focus on videos about FreeCAD 1.0.

Good luck!


Another to check out is Solvespace. It's a much smaller simpler CAD modeling program than FreeCAD; doesn't do nearly as much, but I find it much easier to use, more intuitive, and more stable than FreeCAD.


What particular advantages do you feel FreeCAD has over Fusion, aside from the obvious? (price and ethos)


It runs on Linux. I wanted to get rid of dual boot and Windows partition. And also the UI interface performance is much better in FreeCAD.


Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: