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

Just ask the slop machine to translate the binary to every platform.

https://www.sphinx-doc.org/

Your slop generator should check if a name exist before claiming it.


Just wait until you learn about https://en.wikipedia.org/wiki/Sphinx


Software and myths are different indeed


    The Rust Security Response Team was notified that Miri stores all environment variables to target/,
    allowing secrets to persist in caches.
Then proceed to blame Github Actions.

All CI platform that provide caching and would naturally cache the build folder that is target/ would have this security hole. The culprit is cargo miri, not Github Actions.


  Location: Lille, France
  Remote: yes
  Willing to relocate: no
  Technologies:
    - Devops: Kubernetes, Docker, Ansible, Terraform, Netbox, GCP, AWS, ...
    - Backend: Python (Django, FastAPI, ...), Go, Rust, C, C++, Elixir
    - Frontend: TypeScript (React, Vue), HTMX
    - Databases: PostgreSQL, MongoDB, FoundationDB
    - MQ: RabbitMQ, Kafka, Amazon SQS
    - Monitoring: Prometheus, Grafana, Nagios/Icinga, Zabbix, FlowG, Splunk, Datadog
    - CICD: Jenkins, Github Actions, Gitlab CI, ...
  CV: https://linkdd.github.io
  LinkedIn: https://linkedin.com/in/linkdd
  Email: [email protected]
10+ years of experience as a Software Engineer and DevOps engineer, 20+ years as a hobbyist.

I'm passionate by big challenges and available immediately.


  Location: Lille, France
  Remote: yes
  Willing to relocate: no
  Technologies:
    - Devops: Kubernetes, Docker, Ansible, Terraform, Netbox, GCP, AWS, ...
    - Backend: Python (Django, FastAPI, ...), Go, Rust, C, C++, Elixir
    - Frontend: TypeScript (React, Vue), HTMX
    - Databases: PostgreSQL, MongoDB, FoundationDB
    - MQ: RabbitMQ, Kafka, Amazon SQS
    - Monitoring: Prometheus, Grafana, Nagios/Icinga, Zabbix, FlowG, Splunk, Datadog
    - CICD: Jenkins, Github Actions, Gitlab CI, ...
  CV: https://linkdd.github.io
  Email: [email protected]
10+ years of experience as a Software Engineer and DevOps engineer, 20+ years as a hobbyist.

I'm passionate by big challenges and available immediately.


Location: France

Remote: Full Remote only

Willing to relocate: No

Technologies:

  - Development: Python, Javascript/Typescript, Go, C, C++, ...
  - Automation: Ansible, Terraform, Gitlab CI, Github Actions, ...
  - System: Linux, FreeBSD, Docker, Kubernetes, ...
  - Cloud: GCP, AWS, Azure, OVH, DigitalOcean, ...
CV: https://linkdd.github.io

Email: [email protected]

Software Engineer and System Operator, self-taught, with 10+ years of experience professionally, and near 20 as a hobby.

Looking for remote freelance missions in development, or devops.


I do apprehend this kind of ideas. It would make it easier for models to be trained to bypass that filter, making it even harder for humans to detect slop.


This is not about detecting AI generated content but detecting HN posts which mention/discuss AI.


This is not Wave Function Collapse. This is a constraint solver.

The goal of the original algorithm ( https://github.com/mxgmn/WaveFunctionCollapse ) is to infer the constraints from a sample, and then run a constraint solver.

Hard-coding the constraints skips the whole point of the algorithm (which is also badly named by the way).


I didn't want to nitpick terminology, but yes, the tile-placement algorithm here is just a way of solving constraint satisfaction problems with DFS using a "minimum remaining values" heuristic [0]. The original use case for generating textures [1] is different in that the constraints are implicit in the input bitmap, but this project is a more straightforward tile placement with explicit constraints.

I think this algorithm is more efficient for generating maps with only local (adjacency) constraints, but setting this up as an integer linear program and plugging it into a constraint solver is more generalizable (say, if you wanted to enforce a constraint that rivers had to flow across the whole map and could not loop).

But I agree "wave function collapse" is not really the best name, for two reasons:

- the original repository mentions "it doesn't do the actual quantum mechanics, but it was inspired by QM", but it implies something QM-related.

- as an ORIE major in college that loved optimization, I think constraint satisfaction problems are really cool and actually somewhat approachable! So calling the heuristic something else like "wave function collapse" might limit people from finding previous work and known improvements (e.g. forward checking).

[0] https://www.cs.cornell.edu/courses/cs4700/2011fa/lectures/05...

[1] https://github.com/mxgmn/WaveFunctionCollapse


Colloquially this is what gamedevs mean when they refer to WaveFunctionCollapse (though the constraints may or may not be inferred from tiles or 3D models, depending on the implementation). It may not match the academic terminology exactly


Note that the original algorithm is model synthesis. WFC is just a minor tweak on it


Last-Write-Win CRDTs are nice, but I wish the article talked about where CRDT really shine, which is when the state truly converge in a non-destructive way, for example:

1) Counters

While not really useful, they demonstrate this well:

  - mutations are +n and -n
  - their order do not matter
  - converging the state is a matter of applying the operations of remote peers locally
2) Append-only data structures

Useful for accounting, or replication of time-series/logs with no master/slave relationship between nodes (where writes would be accepted only on a "master" node).

  - the only mutation is "append"
  - converging the state is applying the peers operations then sorting by timestamp
EDIT: add more

3) Multi Value registers (and maps)

Similar to Last-Write-Win registers (and maps), but all writes are kept, the value becomes a set of concurrent values.

4) Many more...

Each is useful for specific use cases. And since not everybody is making collaborative tools, but many are working on distributed systems, I think it's worth it to mention this.

On another note, the article talks about state based CRDTs, where you need to share the whole state. In the examples I gave above, they are operation based CRDTs, where you need to share the operations done on the state and recompute it when needed.

For example, in the Elixir ecosystem, we have Horde ( https://hexdocs.pm/horde/readme.html ) which allows distributing a worker pool over multiple nodes, it's backed by DeltaCrdt ( https://hexdocs.pm/delta_crdt/DeltaCrdt.html ).

Delta-CRDTs are an optimization over state based CRDTs where you share state diffs instead of the whole state (described in this paper: https://arxiv.org/pdf/1603.01529 ).


You would have a process handling the calls to the postgres.

That process has as local state the database connection and receive messages that are translated to SQL queries, here 2 scenarios are possible:

1) The query is invalid (you are trying to inert a row with a missing foreign key, or wrong data type). In that case, you send the error back to the caller.

2) There is a network problem between your application and the database (might be temporary).

You just let the process crash (local state is lost), the supervisor restarts it, the restarted process tries to connect back to the database (new local state). If it still fails it will crash again and the supervisor might decide to notify other parts of the application of the problem. If the network issue was temporary, the restart succeeds.

Before crashing, you notified the caller that there was a problem and he should retry.

Now, for the caller. You could start a transient process in a dynamic supervisor for every query. That would handle the retry mechanism. The "querier process" would quit only on success and send the result back as a message. When receiving an error, it would crash and then be restarted by the supervisor for the retry.

There are plenty of other solutions, and in Elixir you have "ecto" that handles all of this for you. "ecto" is not an ORM, but rather a data-mapper: https://github.com/elixir-ecto/ecto


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

Search: