CoinBLAS
suncalc
CoinBLAS | suncalc | |
---|---|---|
3 | 8 | |
21 | 2,992 | |
- | - | |
1.8 | 0.0 | |
almost 3 years ago | about 1 year ago | |
Jupyter Notebook | JavaScript | |
- | BSD 2-clause "Simplified" 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
suncalc
-
Show HN: Color-scheme-switcher: auto/manual color scheme toggling in React
A really simple, small package to manage React context around color scheme toggling. Specifically, you can switch color scheme manually or automatically, and if the latter you can follow either the system color scheme or the sun.
I based some of this code heavily on a couple Mantine (https://mantine.dev/) hooks and Suncalc (https://github.com/mourner/suncalc), but modified them to either make them simpler and/or, in Suncalc's case, typed.
This is my first open-source package in a while, so I'd greatly appreciate any constructive suggestions! I have been using some form of this in my own projects and figured, when I added it to the most recent one, I should just extract it into its own project. I'm hoping something small like this will motivate me to do more open-source work because I miss it!
-
Show HN: Visualize your day as 144 rectangles
It would be fun to see this with local daylight hours mapped to the squares, so I could get a feel for where my consumption is at within "daylight" vs the whole "day"
SunCalc is a good tool for this, if you're interested: https://github.com/mourner/suncalc
(I've used it on a personal project, and the API was a little awkward but the results are good: https://daylight.website/)
-
How to determine exactly where the sun rises and sets based on latitude
If you want to do some coding for your website, here is the ready-made javascript for calculating what you want about Sun and Moon: Sun and Moon almanac
-
[OC] How long are the nights in Stockholm, New York City, Moscow, Sydney, Jakarta, Reykjavik, Rio de Janeiro, Wellington etc. ? (30 selected cities)
tool: d3.js data: SunCalc the inspiration came from these sunrise and sunset visualizations
-
How to base things from solar noon, or other inputted target time?
Recently I have made a library doing this for myself. Basicly, I re-wrote this Javascript library in C++ for use with microcontrollers: https://github.com/mourner/suncalc
-
Offline version of suncalc.org on pc ?
you need a bit of IT skills wth https://github.com/mourner/suncalc
-
Does adaptive lighting work the way you expected?
I ignore the sunrise/set properties of the Hue bridge. All the calculations are done on the board itself, so it doesn't need an internet connection to keep working. I used the javascript code here https://github.com/mourner/suncalc as a starting point and translated it to c++ to run on an microcontroller.
-
Ask HN: What Are You Working On?
Suncalc [1] is the library I use to calculate the position of the sun. Mapzen [2] host public elevation tile data. This blog post [3] is a good overview of the calculations involved.
[1] https://github.com/mourner/suncalc
[2] https://www.mapzen.com/blog/terrain-tile-service/
[3] http://www.liedman.net/2014/06/25/sunshine/
What are some alternatives?
Tasker - A commitment tracker desktop app that tracks the progress of your tasks with mouse, keyboard and audio hooks.
procedural-gl-js - Mobile-first 3D mapping engine with emphasis on user experience
covid_status
mapbox-gl-js - Interactive, thoroughly customizable maps in the browser, powered by vector tiles and WebGL
roost - Proof of Concept for Eventsourced backend
dflex - The sophisticated Drag and Drop library you've been waiting for 🥳
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.
Oat++ - 🌱Light and powerful C++ web framework for highly scalable and resource-efficient web application. It's zero-dependency and easy-portable.
knatter - An unclack-style mute-when-typing for windows
cratetorrent - A BitTorrent V1 engine library for Rust (and currently Linux)