CoinBLAS
pg-mem
CoinBLAS | pg-mem | |
---|---|---|
3 | 14 | |
21 | 1,802 | |
- | - | |
1.8 | 6.6 | |
almost 3 years ago | 10 days ago | |
Jupyter Notebook | TypeScript | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
CoinBLAS
-
The "missing" graph datatype already exists. It was invented in the '70s
When you consider that a graph and a matrix are isomorphic, doing vector matrix multiplication takes a vector with a set value, say row 4, and multiplies it by a matrix where row 4 has values present that represent edges to the nodes that are adjacent to it (ie "adjacency" matrix). The result is a vector with the next "step" in a BFS across the graph, do that in a loop and you step across the whole graph.
A cool result of this is, for example, taking an adjacency matrix and squaring it is the "Friend of a Friend" graph. It takes every node/row and multiplies it by itself, returning a matrix that are adjacent to the adjacencies of each node, ie, the friends (adjacencies of the adjacencies) of friends (adjacencies) of the nodes.
Deeper traversal are just higher nodes, a matrix cubed are the friends of the friends of the friends.
A picture is worth a thousand words, see figure 7 of this paper:
https://arxiv.org/pdf/1606.05790.pdf
Also check out figure 8, this shows how incidence matrices can work to represent hyper and multi graphs. An pair of incidence matrices reprsent two graphs, one from nodes to edges and the other from edges to nodes, these are n by m and m by n. When you multiply them, you get a square adjacency matrix that "projects" the incidence into an adjacency. This can be used to collapse hypergraphs into simple graphs that use different semirings to combine the multiple edges.
For some pretty pictures of this kind of stuff, check out CoinBLAS (note I am not a crypto-bro, it was just a very handy extremely large multi-graph that I could easily download in chunks to play with):
https://github.com/Graphegon/CoinBLAS/
-
Ask HN: What Are You Working On?
Python wrapper around The GraphBLAS API:
https://github.com/michelp/pygraphblas
For an upcoming paper we've open sourced using pygraphblas to analyse the bitcoin graph using the GAP benchmarks on a server with 1TB of RAM:
https://github.com/Graphegon/CoinBLAS
- Show HN: CoinBLAS – Bitcoin Analysis with the GraphBLAS
pg-mem
- Setting up PostgreSQL for running integration tests
-
Show HN: I open-sourced the in-memory PostgreSQL I built at work for E2E tests
I've used pgmem https://github.com/oguimbal/pg-mem for the last couple of years for the same thing.
-
Ask HN: How do you test SQL?
I was wondering the other day how to classify tests that use a test double like pg-mem, which isn't a mock but isn't the Dockerized test DB either :
https://github.com/oguimbal/pg-mem
-
How to test nestjs modules?
In my case, I use TypeORM with PostgreSQL, and there's pg-mem to run an instance in memory, it supports most of the common functionality of PostgreSQL but you will need to do some adjustment to your code to be within the limits.
-
Working with offline data
Postgres in the browser is possible through pg-mem: "pg-mem is an experimental in-memory emulation of a postgres database" but it also suffers from no persistence. If you can persist to a file somewhere then read it in on startup (and if your local data isn't huge) this might work.
- Pg-mem: An in-memory re-implementation of PostgreSQL in JavaScript
-
Haskell as a first timer - Am I missing something ? Or is something broken ?
Dont get me wrong: I am trying to contribute to opensource as well, so I get that supporting small projects can be demanding. There's nothing wrong in not spending your weekends on OS. But not asking for help, nor specifying that a project is unmaintained, nor even answering issues & pull requests for years feels just wrong.
-
Ask HN: What Are You Working On?
A pure Javascript in memory emulation of Posgres, to help writing better node tests https://github.com/oguimbal/pg-mem
-
pg-mem, an in memory postgres DB instance for your unit tests, is now bound to multiple libraries (Knex, Typeorm, Slonik, pg, pg-promise) ... suggestions for the next one ?
Okay, I had a bit of spare time,I've implemented that, and it is now available with [email protected]
-
Zero delay development & unit testing iterations
To get a glimpse of what I'm talking about, you can clone this repo and follow "Development" instructions (by the way this is a small OS lib I maintain, I wrote about it here)
What are some alternatives?
Tasker - A commitment tracker desktop app that tracks the progress of your tasks with mouse, keyboard and audio hooks.
NeDB - The JavaScript Database, for Node.js, nw.js, electron and the browser
covid_status
Prisma - Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB
roost - Proof of Concept for Eventsourced backend
Lowdb - Simple and fast JSON database
suncalc - A tiny JavaScript library for calculating sun/moon positions and phases.
typescript-clean-architecture - It is my attempt to create Clean Architecture based application in TypeScript.
osmosis-js - JS reference implementation of Osmosis, a JSON data store with peer-to-peer background sync
maplibre-gl-js - MapLibre GL JS - Interactive vector tile maps in WebGL2
slam-crappy - Navigation project for an indoor robot using a Raspberry Pi, Arduino by combining a camera/OpenCV and physical measurements from ultrasonic and single point lidar sensor.
database-js - Common Database Interface for Node