CoinBLAS
Papercups
CoinBLAS | Papercups | |
---|---|---|
3 | 19 | |
21 | 5,642 | |
- | 0.8% | |
1.8 | 0.0 | |
almost 3 years ago | 3 months ago | |
Jupyter Notebook | Elixir | |
- | 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
Papercups
-
Linen.dev – Building a chat app with Elixir and NextJS
The best language for the task at hand, when presented with time constraints, is the one that you already know well. OP said in the article that they authored Papercups [1]. Adopting Elixir for a websocket-push service makes a lot of sense, then. However, why don't you learn Elixir, some OTP, and then reconsider that question? You could be missing out.
[1] https://github.com/papercups-io/papercups
-
What Phoenix Elixir Tutorial do you want to see?
https://github.com/papercups-io/papercups - 5.2k stars, uses Phoenix 1.6
-
Complete, Production-Ready Phoenix Reference Applications
Papercups
- Looking for recommendation of OS phoenix app to look at
- Example of an elixir CRUD app in production
- Show HN: Open-source live customer chat
-
Lessons from answering 800 customer support queries in last 2 yrs as a founder
Shameless plug here if anyone is interested in an open source live chat tool check out https://github.com/papercups-io/papercups
- Create a conversation with Elixir with real code examples
-
Ask HN: What novel tools are you using to write web sites/apps?
Phoneix - Elixir
We're a live message tool and it is basically what Elixir is built for https://github.com/papercups-io/papercups.
The Elixir community has been great and incredibly friendly. I originally was worried about the size of the community but that hasn't been an issue the community has been super helpful. I also think the annual stackoverflow usage surveys are very misleading because most of the community's questions get asked in ElixirForum and not on Stackoverflow.
Phoneix is the web framework of Elixir which is very similar to Rails but minus a lot of the magic has been very helpful for our productivity as well.
If I had to built another service that is websocket heavy I would definitely use Elixir. Even if it was a standard crud app I would still most likely choose Elixir.
- Papercups – open-source live customer chat in Elixir
What are some alternatives?
Tasker - A commitment tracker desktop app that tracks the progress of your tasks with mouse, keyboard and audio hooks.
chatwoot - Open-source live-chat, email support, omni-channel desk. An alternative to Intercom, Zendesk, Salesforce Service Cloud etc. 🔥💬
covid_status
SvelteKit - web development, streamlined
roost - Proof of Concept for Eventsourced backend
Gotify - A simple server for sending and receiving messages in real-time per WebSocket. (Includes a sleek web-ui)
suncalc - A tiny JavaScript library for calculating sun/moon positions and phases.
LeapChat - Ephemeral, encrypted, in-browser chat rooms
osmosis-js - JS reference implementation of Osmosis, a JSON data store with peer-to-peer background sync
LibreNews - A free and open breaking news notification platform
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.
PushBits - A simple server for push notifications via Matrix (and a minimalistic alternative to Pushover and Gotify) 🚀📯