Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
xlwings
xlwings is a Python library that makes it easy to call Python from Excel and vice versa. It works with Excel on Windows and macOS as well as with Google Sheets and Excel on the web.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
I figured out how to do this years ago, even before I worked at Microsoft (and pitched it while there a number of times).
It wasn't easy, and there was a lot to figure out, but the end result is starting to look pretty simple:
https://youtu.be/vn2aJA5ANUc?t=145
https://github.com/publicdomaincompany/copypaster
People are all talking about how it's useful for quick stuff with datasets, but it goes far beyond that. It's useful for quick anything you might want a database for. Imagination is the limit.
For example, if any of you play D&D online, you might be familiar with dndbeyond's character sheets. They're a fantastic way to onboard new players who might not have the inclination to spend hours with the rule books before they even start playing. It does all the calculations for you and gives you some buttons for like "roll athletics" and doesn't let you add more spells than your character can have with their stats.
I recently persuaded some friends to give FATE a try and built analogous push-button character sheets with google sheets [0]. It was quick and simple. With conditional formatting, you highlight bad states (rules say you can't have more of X than Y!). With the script editor, you can add full on buttons for dice rolls and other state changes with whatever logic you want (anything you can code up!). Checkboxes are obvious but super useful. And the transparency of the calculations is helpful for teaching people the system (this stat is "min(A4, B1+C5)").
To build a stateful, database backed, live collaborative GUI that can be added to and customized without google sheets would have been a serious endeavor. With it, it was a quick fun afternoon hack. Excel/google sheets is an amazing piece of technology.
[0] Screenshot of the "app": https://github.com/imh/public_images/blob/main/Screen%20Shot...
I'm less familiar with the R ecosystem, but there are tools in the Python world to go that direction -- https://xlsxwriter.readthedocs.io/
Nice product, I noticed that you are updating the next Jupyter cell; what was your solution to doing that reliably since `set_next_input` is so damn flakey?
I personally grew so frustrated with the state of GUI development in Jupyter that I tried to fix it in such a way that would allow proper message passing between cells and python code (because you can't wait on Comm events).
> https://github.com/ipython/ipykernel/pull/589
But sadly the priorities of big open source projects don't always match your own. So I had to extract that logic into my own kernel.
Related posts
- Advice on ETL and Data Sharing work process
- Python in Excel: Combining the Power of Python and the Flexibility of Excel
- Python for Excel: A Modern Environment for Automation and Data Analysis
- Running python from excel
- Streamlining Data Export to Excel: A comprehensive guide to using Python, Nodejs, PHP.