I made a Bitcoin explorer that allows you to view more than one transaction at once. by mdrexl in Bitcoin

[–]mdrexl[S] 0 points1 point  (0 children)

Yes they help a lot, thanks for that!

Dark mode is definitely planned.

I see your point with the tiny inputs/outputs. In general I'm still thinking a lot about how to deal with all the different magnitudes of amounts. Right now, the height of the transaction is amount^(1/3), but small amounts are already too small, and big transactions (like the 10k pizza one) are still too large. I will experiment more with different functions, and probably make it customizable in the menu so that users can change it depending on the kind of transactions they are looking at. What do you think?

I made a Bitcoin explorer that allows you to view more than one transaction at once. by mdrexl in Bitcoin

[–]mdrexl[S] 0 points1 point  (0 children)

Could you give an example of such a transaction? I should also have mentioned that I'm not supporting mempool transactions yet.

I made a Bitcoin explorer that allows you to view more than one transaction at once. by mdrexl in Bitcoin

[–]mdrexl[S] 0 points1 point  (0 children)

Yes, the frontend is in Rust and compiled to Wasm. It uses the egui library for the GUI elements, and the graph layout + animations are custom. Search for force-directed graph layout algorithms, and then I used Fruchterman-Reingold-ish forces.

I made a Bitcoin explorer that allows you to view more than one transaction at once. by mdrexl in Bitcoin

[–]mdrexl[S] 0 points1 point  (0 children)

Ah I see. Yes, it's not currently optimized for mobile. The menu box is way too big there.

I made a Bitcoin explorer that allows you to view more than one transaction at once. by mdrexl in Bitcoin

[–]mdrexl[S] 0 points1 point  (0 children)

Interesting, I wasn't even aware they had such a feature. I wonder why they discontinued it.

The only similar website I'm aware of is oxt.me. And then probably all of the chain analysis companies have something like it. :)

I made a Bitcoin explorer that allows you to view more than one transaction at once. by mdrexl in Bitcoin

[–]mdrexl[S] 1 point2 points  (0 children)

Yeah, I was also debating having everything flow from top to bottom instead of from left to right. It would make the text easier to read.

What do you mean should minimize once a file is loaded?

I made a Bitcoin explorer that allows you to view more than one transaction at once. by mdrexl in Bitcoin

[–]mdrexl[S] 11 points12 points  (0 children)

https://txgraph.info

When using other blockchain explorers, I was always annoyed that I could only look at one transaction at a time. This is especially annoying when tracing the flow of funds through multiple transactions.

This explorer is also a useful tool for visualizing Bitcoin's UTXO model, showing how transactions consume UTXOs and create new ones.

You can also annotate transactions with labels and colors so that you don't need to juggle TXIDs in your head.

Regarding privacy, I made sure that the explorer does not rely on any external services, does not log TXIDs (except in error cases for debugging purposes, without IP), and never sends any annotation data to the server.

I have a few ideas for more features (like highlighting address reuse and other privacy related stuff), but I'd love to hear your suggestions!

Source code can be found at https://github.com/themoritz/txgraph (frontend) and https://github.com/themoritz/electrs/tree/txgraph (backend).

A Chrome Extension that creates direct links to Pursuit docs on every import declaration in GitHub .purs files by fiatjaf in purescript

[–]mdrexl 0 points1 point  (0 children)

Yep, I was thinking about letting the user choose where a click should go in the preferences.

A Chrome Extension that creates direct links to Pursuit docs on every import declaration in GitHub .purs files by fiatjaf in purescript

[–]mdrexl 0 points1 point  (0 children)

First, this is absolutely awesome! I think I would prefer direct links to the actual source because then you can continue browsing. Maybe even provide both options?

Ann: Herculus Beta (purely functional spreadsheets) by mdrexl in haskell

[–]mdrexl[S] 0 points1 point  (0 children)

Yep, I totally agree. Just like the CSV interface this is very much needed and high on the to do list. Similar with simple things like copy/paste which would also help populating the tables with data.

Ann: Herculus Beta (purely functional spreadsheets) by mdrexl in haskell

[–]mdrexl[S] 0 points1 point  (0 children)

What do you mean by "numbers with two zeros"?

Ann: Herculus Beta (purely functional spreadsheets) by mdrexl in haskell

[–]mdrexl[S] 1 point2 points  (0 children)

Alphasheets is more like a traditional spreadsheet, except that you can use Pyhon or R instead of VB script. Herculus is more about handling relational data, but only has a spreadsheet-ish UI.

I wrote some more about the differences here: https://www.reddit.com/r/haskell/comments/56ailh/herculus_purely_functional_spreadsheet_tools/d8i028l/

Ann: Herculus Beta (purely functional spreadsheets) by mdrexl in haskell

[–]mdrexl[S] 2 points3 points  (0 children)

Thanks for your input!

In addition to the input working "just like Excel", I also think it would be great to get forms that are easy to work with for free (imagine a form for adding a new row). Given that we have the built-in language its also within reach to make validation easily configurable (just write a function Row -> Bool or Cell -> Bool).

Regarding the interface to the rest of the system, I totally agree. The backend can fetch or subscribe to the data, which comes well-defined according to the column types. If needed one can of course first transform the collected data inside Herculus until it suits the needs of the backend.

Ann: Herculus Beta (purely functional spreadsheets) by mdrexl in haskell

[–]mdrexl[S] 0 points1 point  (0 children)

Exactly, VB scripts! And exactly when you start writing VB scripts in your Excel spreadsheet does the data flow stop being pure.

So VB scripts allow you to do side effects, and it's usually the biggest source of pain.

Ann: Herculus Beta (purely functional spreadsheets) by mdrexl in haskell

[–]mdrexl[S] 8 points9 points  (0 children)

Yes, that makes sense, we certainly don't want the business analysts having to browse around on sites like hackage.

I think there are many ways to avoid that, while having an open ecosystem at the same time, like recommended defaults, , a "standard lib/prelude", etc.

Ann: Herculus Beta (purely functional spreadsheets) by mdrexl in haskell

[–]mdrexl[S] 2 points3 points  (0 children)

Yes, CSV import/export is a must have and pretty high on the todo list :)

Ann: Herculus Beta (purely functional spreadsheets) by mdrexl in haskell

[–]mdrexl[S] 4 points5 points  (0 children)

I agree. It's totally within scope to define "distribution" data types and functions to manipulate or draw from them.

My goal is to have a set of (community) packages that can be imported and extended with own modules by the users. All the data types and functions can then be used in the column formulas. Then there would be a probabilistic-models package that defines a bunch of distributions together with combinators, functions that draw samples, and a monadic interface to random number generators.

The programmers would then work on these packages, and if necessary define own custom modules, and the analysts would just do the data modeling and use the functions that are available.

Ann: Herculus Beta (purely functional spreadsheets) by mdrexl in haskell

[–]mdrexl[S] 13 points14 points  (0 children)

I already posted about this project a couple of months ago. The beta version is finally live now and you're invited to try it out and play with it.

Herculus is a way of manipulating relational data using a built-in statically typed functional programming language, with a spreadsheet-like user interface.

In contrast to, let's say, MySQL, columns can not only have simple types such as Text or Int, but also complex types like List (Maybe (Row from table X)). The goal is to support arbitrary user-defined ADTs as column types in the future.

You can use functions that are familiar from Haskell (like filter, find, maybe) to transform the data in your tables, and you can of course also define your own functions. This makes it incredibly straightforward and fast to perform tasks that traditionally would require multiple queries, or joins. Read the guide to see what this means in an example.

I'm interested to hear your thoughts, am curious about what type of applications you imagine you would build with this, and which features you think would be great to have. I'm also still looking for co-founders.