I'll use this opportunity to plug the one-liner I use all the time, which summarizes the "structure" of a doc in a jq-able way: https://github.com/stedolan/jq/issues/243#issuecomment-48470... (I didn't write it, I'm just a happy user)
For example:
$ curl -s 'https://ip-ranges.amazonaws.com/ip-ranges.json' | jq -r '[path(..)|map(if type=="number" then "[]" else tostring end)|join(".")|split(".[]")|join("[]")]|unique|map("."+.)|.[]'
.
.createDate
.ipv6_prefixes
.ipv6_prefixes[]
.ipv6_prefixes[].ipv6_prefix
.ipv6_prefixes[].network_border_group
.ipv6_prefixes[].region
.ipv6_prefixes[].service
.prefixes
.prefixes[]
.prefixes[].ip_prefix
.prefixes[].network_border_group
.prefixes[].region
.prefixes[].service
.syncToken
(except I have it aliased to "jq-structure" locally of course. also, if there's a new fancy way to do this, I'm all ears; I've been using this alias for like... almost a decade now :/)In the spirit of trying out jqfmt, let's see how it formats that one-liner...
~ echo '[path(..)|map(if type=="number" then "[]" else tostring end)|join(".")|split(".[]")|join("[]")]|unique|map("."+.)|.[]' | ~/go/bin/jqfmt -ob -ar -op pipe
[
path(..) |
map(if type == "number" then "[]" else tostring end) |
join(".") |
split(".[]") |
join("[]")
] |
unique |
map("." + .) |
.[]%
~
Not bad! Shame that jqfmt doesn't output a newline at the end, though. The errant `%` is zsh's partial line marker. Also, `-ob -ar -op pipe` seems like a pretty good set of defaults to me - I would prefer that over it (seemingly?) not doing anything with no flags. (At least for this sample snippet.)I'm a big fan of jq, having written my own jq wrapper that supports multiple formats (github.com/jzelinskie/faq), but these days I find myself more quickly reaching for Python when I get any amount of complexity. Being able to use uv scripts in Python has considerably lowered the bar for me to use it for scripting.
Where are you drawing the line?
Another major for on-heap caches that wasn't mentioned their portability: for us that matters because they can compile to WebAssembly.
Code: https://github.com/SalesforceAIResearch/CRMArena
Data: https://huggingface.co/datasets/Salesforce/CRMArenaPro (8,614 rows)
Here's one of those JSON files loaded in Datasette Lite (15MB page load): https://lite.datasette.io/?json=https://huggingface.co/datas...
I had Gemini 2.5 Pro extract the prompts they used from the code:
llm install llm-gemini
llm install llm-fragments-github
llm -m gemini/gemini-2.5-pro-preview-06-05 \
-f github:SalesforceAIResearch/CRMArena \
-s 'Markdown with a comprehensive list of all prompts used and how they are used'
Result here: https://gist.github.com/simonw/33d51edc574dbbd9c7e3fa9c9f79e...But when it comes to confidentiality, having fine-grained authorization securing your RAG layer is the only valid solution that I've seen in used in industry. Injecting data into the context window and relying on prompting will never be secure.
This repository houses the command-line interface which is powered by containerization[0], the Swift framework wrapping Virtualization.framework to implement an OCI runtime.
I now live in NYC, and my local Home Depot rents out power tools for $20-30/day. The typical tool would pay for itself in 2 days at these rates, but it's still worth it to me as these 2 days are often 2-3 years apart and I'd rather not store these tools in my cramped 1BR.
What I would love is a community-run tool rental service where we can donate a tool + pay a nominal membership fee, and borrow tools for free. I am happy to donate a $120 circular saw/impact driver if I can rent 10x different tools once each for $5/mo for the next year. The closest thing I have now is my local hackerspace, which is great, but I often have to work on my projects at the space, which limits the kind of home DIY I can do.
[1]: https://www.quantamagazine.org/teenager-finds-classical-alte...