CoinBLAS
Tasker
CoinBLAS | Tasker | |
---|---|---|
3 | 8 | |
21 | 8 | |
- | - | |
1.8 | 6.4 | |
almost 3 years ago | 23 days ago | |
Jupyter Notebook | C++ | |
- | GNU General Public License v3.0 only |
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
Tasker
-
Ask HN: Who is using C++ as the main language for new project?
I almost exclusively use C++ for my projects. Especially modern C++. When it makes sense(especially for dev tools), I use Python since for those I'm not so worried about distribution and long-term robustness.
Anyway here they are:
Qt desktop app written in C++:https://github.com/thebigG/Tasker
Simple GPIO front-end for linux GPIO driver(could definitely use some improvement) written in C++ and uses boost:https://github.com/thebigG/simple_gpio
WebApp I JUST started working on(This will be a frontend for a YOCTO/FPGA project I'm working on; guitar pedals), and yes it uses good old C++ and runs on the browser:
https://github.com/thebigG/wPedals
And while I'm at it, might as well mention my custom plugins for Godot Game Engine(C++):https://github.com/thebigG/godot-3.x-modules
I have found that C++ is the best compromise for me between performance and elegance ifI do say so myself.
-
C++ Show and Tell - April 2022
That's really cool that you have it in one of the official repos! Sadly I'm an Ubuntu user myself so it might not be that straightforward to get as far as I know. Though I was able to easily build it from source. Some of these can come down to personal preference, but I'm a big fan of AppImages. If you would like to see an example of a Qt application may be turned into an AppImage. I have an example here: https://github.com/thebigG/Tasker/blob/main/.github/workflows/linux_build.yaml
-
Cant compile on windows
Here's an example of me using this on GitHub Actions:https://github.com/thebigG/Tasker/blob/win_compile/.github/workflows/ci.yaml
-
Do Things, Tell People
https://github.com/thebigG/Tasker
It's an app that allows you to accurately track your commitments via hardware hooks(audio, mouse and keyboard). The UI can definitely use some work, but figured some people mind find as useful as I do.
-
Packaging a project
Shameless plug:https://github.com/thebigG/Tasker/blob/main/Tasker/build_AppImage.py
-
[Weekly] What is everybody working on? Share your progress, discoveries, tips and tricks!
Been working on this little project for a bit now:https://github.com/thebigG/Tasker
-
Ask HN: What Are You Working On?
Tasker - Create Commitments and track your progress through hardware hooks(Mic, Keyboard, Mouse)
https://github.com/thebigG/Tasker
What are some alternatives?
covid_status
Librum - The Librum client application
roost - Proof of Concept for Eventsourced backend
seer - Seer - a gui frontend to gdb
suncalc - A tiny JavaScript library for calculating sun/moon positions and phases.
avendish - declarative polyamorous cross-system intermedia objects
osmosis-js - JS reference implementation of Osmosis, a JSON data store with peer-to-peer background sync
Tic-tac-toe - This is the official repo for the TIC-TAC-TOE project (if you can call it a project)
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.
Typesense - Open Source alternative to Algolia + Pinecone and an Easier-to-Use alternative to ElasticSearch ⚡ 🔍 ✨ Fast, typo tolerant, in-memory fuzzy Search Engine for building delightful search experiences
knatter - An unclack-style mute-when-typing for windows
libfive - Infrastructure for solid modeling