cloudkj
Show HN: Lance-bundle – Portable embeddings to embed once, query forever
https://github.com/cloudkj/lance-bundle
Hello,While experimenting with personal, local RAG app setups, I kept having to (re)generate embeddings and really wanted precomputed embedding datasets that I could quickly pull and use in various environments.I built a library to test out the idea: lance-bundle lets you package precomputed embedding vectors alongside the actual embedding model so that everything can be loaded from a single...
Seems like the core idea is the same, but I took it farther down the Unix philosophy line of thinking and tried to make the individual components small and composable.
Feel free to check it out and compare!
Show HN: Bash is All You Need for a language model REPL
https://github.com/cloudkj/llayer
I’ve recently just started tinkering with using local large language models, focusing on simple, low-dependency CLI setups. I ended up going down a bit of a rabbit hole: I wanted to see if I could build a functional model interaction REPL using exclusively standard command-line building blocks.I tried to abide by the Unix philosophy, breaking the REPL into the composition of a few small,...
Show HN: AI Agents the Unix Way – built with bash, curl, and jq
https://github.com/cloudkj/llayer
While working on an educational exercise tinkering with local models and trying my hand at setting up agents, I went down a rabbit hole: to see how far I could build a custom agent loop using exclusively command-line building blocks and stripping out dependencies wherever possible.It turns out you can get pretty far with pipes, text streams, append only logs, and standard command-line...
Automatic differentiation library in Clojure (https://github.com/cloudkj/lambda-autodiff) - inspired by Karpathy's `micrograd` from a few years ago; dusted it off recently, fixed a few issues, and was able to use it to implement a version of `microgpt` - https://cloudkj.github.io/lambda-autodiff/doc/examples/gpt/
PG&E "Share My Data" self-access library (https://github.com/cloudkj/pgesmd_self_access) - been tinkering with various home automation and monitoring ideas, and was able to get an end-to-end prototype for ingesting and visualizing PG&E meter data using a combination of the (forked) aforementioned library, an old circa 2015 Raspberry Pi, and a handful of dollars spent on AWS services (certificate manager, load balancer) to get the full mTLS PG&E integration working. Probably deserves a blog post to document all the gory details.
Geo data mashups (https://github.com/cloudkj/snowpack) - small frontend utilities to overlay custom data on top of each other; was able to satisfy two recent personal use cases: (1) visualize snow depth across California ski destinations and (2) heat map of national park traffic by entrance. Previously posted at https://news.ycombinator.com/item?id=46649103
REST interface for Gymnasium reinforcement learning (fka OpenAI Gym) (https://github.com/cloudkj/gymnasium-http-api) - simple wrapper around the forked version of OpenAI Gym to allow for language-agnostic development of RL algorithms.
Show HN: REST API for Gymnasium (fka OpenAI Gym) reinforcement learning library
https://github.com/cloudkj/gymnasium-http-api
I was looking through some of my past personal projects tinkering with reinforcement learning, and noticed that the REST/HTTP API for the OpenAI gym available at the time is no longer supported. The API was pretty useful back then since most of ML and deep learning hadn't quite stabilized on the various Python libraries today.gymnasium-http-api is an attempt at bringing back the same type of...
Show HN: Map of California SNO-Parks with current snow depth data
https://cloudkj.github.io/snowpack/examples/ca_sno_parks/
I was looking for a way to quickly overlay geo data (e.g. current snow depth https://www.fs.usda.gov/sites/nfs/files/r05/publication/R5_S...) on top of a map of points of interest, and couldn't find anything straightforward. This proof-of-concept allows for an example workflow of exporting points of interest from Google Maps (either public or your own creation) as KML files, and plotting this...
I'm also interested in starting up something similar for a particular niche, and would like to hear first hand accounts of the return on investment for aggregators such as these.
Can you provide some links to temperature sensors you've tried that work well with an RTL-SDR receiver? I'm also interested in setting something up with a Raspberry Pi.
Mostly a small collection of posts about programming and personal finance. Also been running for around fifteen years.
Most popular post is about currency arbitrage, which seems to have had a small resurgence in interest as of late from various crypto folks: https://www.kelvinjiang.com/2010/10/currency-arbitrage-in-99...
Side note: not sure if it's just a funny coincidence, but it seems like a good number of folks here have been running their sites for around fifteen years. Perhaps the timing just happens to match the typical career arc of software professionals, or maybe it was due to the popularity of blogging fifteen years ago.
Stoicism in the Time of Coronavirus
I personally prefer the Palomar Knot as it is probably the strongest knot that is also easy to tie. The Improved Clinch Knot and its brethren are also handy to know since there are so many variants that have high breaking strength; I typically teach the Improved Clinch Knot to folks new to fishing.
Top PDFs and Papers Submitted to Hacker News in 2019
def parse(text):
stack = []
index = 0
result = None
while index < len(text):
char = text[index]
val = None
if char == '[':
stack.append([])
elif char == ']':
val = stack.pop()
index += 1
if val is not None:
if stack:
stack[-1].append(val)
else:
result = val
return result
Using the test utilities in the repo indicate that the parsing logic can handle arbitrarily nested arrays (e.g. up to the 5,000,000 max in the test script), bound by the limits of the heap.It seems like the main criticism here is against recursive implementations. Or am I missing something?
Wrath of the Amazon Mechanical Turks
I also started off in the same manner of implementation - bash scripts wrapping AWS CLI calls - then stumbled upon the more straightforward, template based approach.
I was mostly going for a DIY solution since I wanted to "own" the bits being deployed while remaining as close to the infrastructure as possible. Providing a hosted service somewhat moves away from the DIY spirit; I suppose additional tools/UIs could be offered to simplify setup and deployment and still run everything directly on AWS, but at that point one might be inclined to just move to one of the other hosted solutions for the simplicity.
I'd definitely like to add more variants of the default stack. At the minimum, I'm sure there are folks that prefer `www` redirects to the apex domain, or removing the `www` subdomain altogether.
docker run --rm -e "JEKYLL_ENV=production" -v $(PWD)/src:/srv/jekyll -it jekyll/jekyll:3.8.5 jekyll build
docker run --rm -itv $(HOME)/.aws:/root/.aws aws-cli aws s3 sync src/_site s3://www.<mydomain>
docker run --rm -itv $(HOME)/.aws:/root/.aws aws-cli aws cloudfront create-invalidation --distribution-id <mydistribution> --paths "/*"The $0.50 is the monthly cost of the Route 53 hosted zone; the CloudFront and S3 costs typically amount to pennies, but of course it depends on traffic.
Show HN: Scar – Static websites with HTTPS, a global CDN, and custom domains
1-click static website on S3 with SSL, custom domain, and a CDN
When I came up with the idea of chaining and piping neural network layers on the command line, I also came across CHICKEN Scheme which promised to be portable and well-suited for translating the Clojure-based implementation I had previously done. As you can probably imagine, the porting process was a lot more involved than I expected, but nevertheless I had a BLASt (pun intended) hacking on it.