Friday, February 11, 2022

Show HN: Hardle – Hard Wordle where the color of the hints is not known https://ift.tt/enEDJzH

Show HN: Hardle – Hard Wordle where the color of the hints is not known https://ift.tt/WsxjGEI February 11, 2022 at 02:55AM

Show HN: Lessons learned from my 10 year open source project https://ift.tt/7uGJV5O

Show HN: Lessons learned from my 10 year open source project I've been developing SpiderFoot (an OSINT/recon tool) for 10 years now, so wanted to share my story and try to distill some lessons learned in the hope they might be helpful to others here who might be considering writing/open-sourcing their own tools. Here's the post: https://ift.tt/VteTSIy And the repo if you want to check it out: https://ift.tt/pfMPdcw -- TL;DR version of lessons from the post.. Lesson 1: Writing open source software can be very rewarding in ways you can’t predict Lesson 2: Be in it for the long haul Lesson 3: Ship it and ship regularly Lesson 4: Have broad, open-ended goals Lesson 5: If you care enough, you’ll find the time Lesson 6: No one cares about your unit test coverage Lesson 7: There’s no shame in marketing Lesson 8: Clear it with your employer Lesson 9: Foster community Lesson 10: Keep it enjoyable -- I hope you find it useful and inspires some of you to get your project out there! Feel free to ask me any questions here and I'll do my best to answer. February 11, 2022 at 02:16AM

Show HN: Training synthetic models on highly complex datasets https://ift.tt/yj8U2QR

Show HN: Training synthetic models on highly complex datasets https://ift.tt/s8ti1Eg February 11, 2022 at 01:48AM

Show HN: A Schemaless Data Store Within Your SQL Database https://ift.tt/mcD25Oe

Show HN: A Schemaless Data Store Within Your SQL Database Hi HN, we're Eric and Dean, creators of SchemafreeSQL. Its roots go back to an on-line Web App Development Environment we developed back in 1999. It was comprised of an IDE, Web Server, Object Store, Virtual File System, Template System, and polyglot (Java, JavaScript, and Python). Of course, we named it “.OS”. Then we ended up dropping it. But that's a story for another time. It was the ease of use of the Object Store from .OS that we really missed, which brings us back to SchemafreeSQL. It provides an enhanced API to your SQL Database which allows it to function as a Schemaless Objectstore. Yes, "Schemaless Objectstore" might be an oxymoron if you consider that objects have strict "schemas". So what are we talking about here? It started with a simple goal. We wanted to store data just as simply as one could throw a JSON document into a doc store, but while maintaining the power of the data's relations and references in an object sense. What we ended up with was a JSON over HTTP API (for ubiquitous access from any language), that maps any JSON structure into an optimized, static set of indexed tables in any SQL database (MySQL being our first port). Using it, we can immediately store any data we want, without having to create tables and indexes and optimize them. Inserting data is as easy as sending a JSON doc to a doc store, but in SFSQL all nested relations inherent within that document are stored as objects and primitives. And, with a little extra JSON syntax we can use references and eliminate duplication of data (e.g. "#ref": "oid-goes-here"), all from within the same source JSON doc. There is also no added speed penalty for referencing an object. In fact, all parent nodes in the JSON source data are stored as objects. So any object can be referenced from anywhere, allowing for complex relations (e.g. any-to-any), enabling rapid prototyping of data structures (no tables to create), and enabling unique on-the-fly relations if need be. Queries are issued using JOIN-free SQL query syntax (e.g. SELECT COUNT(*) WHERE $s:person.address.state='NY') that eliminates the verbosity of the standard SQL JOIN, yet still maintains access to the primitive and aggregate functions of the underlying SQL database (e.g. FORMAT(), COUNT(), etc.) which simply get passed through. What it's not? It's not a database on it's own and it's not a horizontally scalable big data store. Although, since it can extend practically any SQL database, it's ability to scale is in large part tied to the scaling ability of the chosen SQL database that it's extending. It's also not an ORM as there is no strict mapping of objects in code to objects in the datastore. And yes, there were trade offs in it's design. One design choice was that every primitive be indexed, which results in better performance than against a straight SQL table without the proper indexes, though slower than a straight SQL table with a composite index tailored to that query. But, the ability to JOIN to an existing SQL table within a SFSQL query is on the roadmap which will allow you have the best of both worlds (custom tables w/custom indexes referenced from within a SFSQL query). As well, there is a situation one encounters in indexing choices (but that you won't encounter with SFSQL) that we like to call the "Index Permutation Limitation". Simply put, there is a real limit to the number of composite indexes that you can create for any table/collection. This is especially a problem when - for instance - you want to give end users the ability to query across any of the possible attributes across the myriad product types that a big online store may carry. We get into detail on this point within our FAQ. So what it is? It's an extension to SQL databases that makes storing and querying and modeling and just generally using a datastore... easier. We're hoping it will stir up some interesting use-cases. Thanks in advance for the feedback! https://ift.tt/XQZ9G13 February 11, 2022 at 01:27AM

Show HN: EdgeDB 1.0 https://ift.tt/3sjKbtM

Show HN: EdgeDB 1.0 https://ift.tt/8NpgqDI February 10, 2022 at 11:43PM

Thursday, February 10, 2022

Show HN: What if Dependabot and Ansible had a child? updatecli.io https://ift.tt/k1rQGz0

Show HN: What if Dependabot and Ansible had a child? updatecli.io What if Dependabot and Ansible had a child? Well for me that could be Updatecli. Updatecli is a project that I started to help maintain the infrastructure of the Jenkins project. I needed something flexible enough to update YAML with whatever information needed. Because let’s say it, everybody loves YAML. YAML is everywhere. Run it from everywhere… Updatecli is a command-line tool written in Golang and available for Windows, Linux, MacOSx, amd64, arm64, thank you Goreleaser All of that to say that it runs from wherever CI or laptop we need. As of today, Updatecli opened over 3000 Pull requests on Github, and it evolved to update automatically Dockerfile, Markdown, Helm Chart, and of course a lot of YAML for tools like Puppet, Kubernetes, or Jenkins. How does it work? Updatecli loads pipeline configurations from YAML(s) or Golang templates then enforce the state defined by the pipeline configuration. A pipeline run as followed: 1. Clone in a temporary location any git repositories used by the pipeline. 2. Fetch information for every *source* defined, and then inject them as entry parameters into condition(s) and target(s). 3. Test that all *conditions* defined succeed otherwise abort the pipeline. 4. Enforce the state for every *target* defined. A state means different things depending on the resource type, more on this later. 5. Commit and open pull requests when needed. 6. Apply next pipeline A Updatecli pipeline relies on resources aka “extension” aka “plugins” to adapt pipeline behavior. By combining them, we can easily automate scenarios for release workflow, GitOps, dependency management, documentation update, etc. A simple scenario could be: * Retrieve the latest Golang version * Test that a docker image with the latest Golang version exist on Dockerhub * If it exists, then bump the version in a YAML file and open a pull request on GitHub with the change As of today, there are 9 extensions for "sources", 8 for "conditions", 6 for "targets", 2 for git repositories, and 1 for pull requests. A very simple pipeline is available on -> https://ift.tt/63a7IAR For more complex pipelines, you can look for directories named “updatecli/updatecli.d” at the root of repositories on https://ift.tt/Ajy5dcH or the Jenkins infrastructure repository such as https://ift.tt/ZvCad19 I maintain a documentation website to document the different configuration. It’s not perfect but it’s available on www.updatecli.io What’s next? Well, it depends on many things. Updatecli is since the beginning, a fun side project, I wanted to practice Golang programming while automating tedious recurring tasks. I built it in a way that I could reuse it across the different projects which I maintain. It’s rather simple to add new resources so I’ll keep adding them based on my needs, I welcome any contributions that would benefit the community. More information on https://ift.tt/UdblDnP https://ift.tt/G9b4KcN February 10, 2022 at 07:29PM

Show HN: Class Variance Authority – type-safe variants for your UI components https://ift.tt/gCBaWcX

Show HN: Class Variance Authority – type-safe variants for your UI components https://ift.tt/1izElrt February 10, 2022 at 03:31PM

Show HN: Do You Know RGB? https://ift.tt/t8kUpbO

Show HN: Do You Know RGB? https://ift.tt/OWhvmMT June 24, 2025 at 01:49PM