Hacker News new | past | comments | ask | show | jobs | submit | mhitza's comments login

> it's how to embed a useful prolog in a 'modern saas microservice' if you will.

Incidentally this is something I've looked at long time ago and things pointed at SWI Prolog https://www.swi-prolog.org/pldoc/man?section=embedded

The target language for my case was embedding within PHP, that would have meant enough expertise to embed the interpreter, hook it into the PHP runtime, and expose it in the language through some interface. Way over my skill level. Should be certainly doable with any language that can interface at the C language level.


The do work, at 10x efficiency. Or maybe I misunderstood the 10x engineer idea all along!

And that efficiency can translate in 10x output, but it's not guaranteed.

My opinion on the 10x engineer principle, always was that these people have their best development/debug environment setup. And they can traverse, run, and explore code faster than most. Like world record pizza makers in under a minute.

Through my career I've seen some engineers that were stumbling their way around their tooling after years of use, and some that weren't even touch typing. Factor that in.


It’s been described before that this mythical unicorn is instead 10% more efficient- as well as works 10% harder, does 10% more of the right things (e.g. less waste), understands everything 10% better… the multipliers stack. You get the idea.

> Any recursive function can be transformed into a tail recursive form, exchanging stack allocation for heap allocation.

You know, I got spoiled by Haskell, doing recursion everywhere without a care, and all I had to think was the evaluation order (when things blew up). Now that I'm doing some OCaml, I have to stop and think "am I writing a tail recursive function". It's easy to write multiple levels of recursion and lose track if you're writing a tail recursive function that the compiler will optimize.

I think recursions are really easy to make unbounded by mistake. Maybe not so much as for loops and off by ones.


Agreed, and this is why some languages have annotations that ask the compiler to check a function is indeed tail recursive.

However I don't think that is the case in Expat. If the algorithm is tail recursive, but accidentally not expressed in that way, its a simple (but perhaps tedious to manually apply) program transform to express it in a way that does not consume unbounded memory (heap or stack). From the scant details on the fix in the article it appears the parsing algorithm itself was completely changed. ("The third variant "Parameter entities" reuses ... the same mechanism of delayed interpretation.") If this is the case the issue is not recursion, as the original parsing algorithm would consume unbounded resources no matter how it was expressed in C.


Ah, I find myself in similar waters. In your experience does the [@@tailcal] annotation not cover enough of the cases?

I'm aware of the tailcall annotation but I didn't have to rely on it yet. For me the benefit of picking up OCaml is that I can do imperative constructs on a first pass (mutation and for loops), and refactor it after to pure code, when needed.

I find contracts through my network and Upwork, the later became slower last x months, as general investments did.

Play the numbers game. If you have a specific speciality you can use platforms like LinkedIn to reach out to companies that might need your service (through decision makers).

You can also connect directly with digital agencies and let them know you are available if they need to offload some work.

The LinkedIn jobs platform itself feels useless for contract work (at least in the EU) as most contract jobs are employee-like contracts disguised as contract work (full-time availability, no subcontracting/delegation).


I wonder how old the S3 bucket was, because at some point AWS made new S3 buckets private by default.

Which means it's either old, or they recklessly opened it up because they couldn't get files uploaded/downloaded to the bucket from their mobile app/services.


Also possible a webdev opened it up so they could use the assets on a website, and didn't think about other private data in the bucket.

I would also guess that Windows 95/98 in high contrast mode had an influence.

And https://github.com/psanford/wormhole-william which is a Go reimplementation of the client. I only want to point this out specifically because an apt-install of magic-wormhole on Ubuntu 24.04 actually results in a program that does not work (the beauty of python dependencies at play?)

It's really amazing to me how successful Python has been given its dependency management and package installation tooling

Pretty sure the snap version of wormhole works. I use it from time to time as well as the go binary.

If someone has ported the server I'll run my own instead of taking the bandwidth.

> 17.5 km range measured at 4 km/h in 30% Eco mode. Actual range may vary due to factors like temperature, altitude, and assistance level.

Probably a third of that at max power usage/support capacity.


Slower? Yes. But my impression was always that it had more features than nginx. Unless you compare it with the enterprise offering?

Openresty distribution of nginx with lua scripting is game changer vs. Apache.

You are right, I'm talking more about features that the average (modern) user would need, like automatic SSL setup.

> I still don’t understand what it brings over putting style= whatever on the element.

You can't put a style for dark mode and one for light mode. Lifting these properties from styles to classes allows you to combine them with media queries and states.


Sounded to me like parent commenter was not advocating for that sort of thing so much.

They said

> Like imagine your company’s main “button” element. It’s got 8 different sizes, optional icons on both sides, animations, styles, each needing to support different color combos. Tailwind is miserable for that. You get giant huge balls of spaghetti classes all over your button, and it’s pretty incomprehensible.

Which to me sounds like they would not use Tailwind for dark mode / light mode things either. But I might be misunderstanding


It sounds like you're saying we need to consider the flexibility and articulation that classes enable when they reflect considerations beyond concrete presentation.

Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: