[HN Gopher] Launch HN: Neptyne (YC W23) - A programmable spreads...
       ___________________________________________________________________
        
       Launch HN: Neptyne (YC W23) - A programmable spreadsheet that runs
       Python
        
       Hi HN! We are Douwe and Jack, founders of https://neptyne.com.
       Neptyne is a programmable spreadsheet that runs Python. It's like
       Google Sheets, but for software engineers and data scientists. If
       you have three minutes, go to https://neptyne.com/neptyne/tutorial
       and it gives you a taste.  The world runs on spreadsheets, and for
       good reason: they are a universal data canvas. But building on top
       of and around the spreadsheet is clumsy: limiting scripting
       environments, APIs and file formats get in the way of making the
       spreadsheet a part of a broader application. Excel workbooks become
       monolithic and unmaintainable. Google Sheets data become static and
       stale.  Both Excel and Google Sheets offer some level of
       programmability but we have yet to find any user who liked the
       experience. It's harder than it should be, using programming
       languages that are more limited than you expect. With Excel you've
       either got VBA or an extension like pyxll to deal with. With Google
       Sheets, your options are AppsScript or the REST API. These tools
       are mediocre but the need for programmable spreadsheets is such
       that people use them anyway.  With Neptyne, the spreadsheet itself
       runs in the Python runtime, so you can write to it or read from it
       like an in-memory data structure, because that's exactly what it
       is.  Neptyne primarily solves problems that exist at the boundaries
       of what other spreadsheet tools can do. We make Python a first-
       class citizen of spreadsheet-land, meaning you don't need a clumsy
       integration or extension to make your code work with spreadsheets.
       You can use standard off-the-shelf Python libraries to build on top
       of an Excel-like spreadsheet environment to build collaborative
       applications. You mix Excel style cell addresses (A1, C3) and
       ranges (B2:B20) with Python code (e.g. `A1 = "foo" if B2 > 0 else
       "bar"`, or `for num in B2:B20:`).  Before starting Neptyne we
       worked at Sidewalk Labs, where we built models in Python that would
       typically be shared or used via spreadsheets on an
       interdisciplinary team. The final step of many pipelines was "write
       a .csv with the results", which was a great way to share data but
       only in one direction. What we really needed was a way for users to
       interact with our Python models through a spreadsheet: tune inputs,
       see results, make quick aggregations. After making some version of
       this work with the Google Sheets API, we knew this could be better.
       What we wanted was basically a Jupyter notebook embedded in our
       spreadsheet, that could give us the full power of Python while
       keeping the accessibility of a spreadsheet. We built a proof of
       concept, found some interest in it, and formed Neptyne.  Neptyne
       differs from lots of modern takes on the spreadsheet tool in that
       we really wanted to preserve the "data canvas" nature of a true
       spreadsheet. While there is value in making spreadsheets more like
       SQL databases with column-based types and formulas, Neptyne gives
       you the freedom to structure your spreadsheet as you would with
       Sheets or Excel. Mix and match data types, table dimensions,
       graphs, charts, and buttons as freely as you might with those
       tools.  Neptyne behaves exactly like a spreadsheet but is secretly
       an alternative frontend to a Jupyter Notebook that has an embedded
       spreadsheet engine. Because it runs a Jupyter kernel, we support
       anything you can run in a Jupyter notebook, including all the
       expected visualization packages (matplotlib, plotly, etc.). This is
       not merely scripting using Python--you can use any (stateful)
       Python framework to get serious work done.  Things users have built
       with Neptyne so far include a Twitter bot, a private spaceflight
       schedule optimizer, and a CRM that pulls from several different
       data sources.  Neptyne's basic tier is free to use. As we add more
       capabilities to the product, certain features will be introduced at
       paid tiers. For individuals building interesting stuff to be shared
       with the community it will always be free. For teams that need
       private documents, sharing and custom images, we will charge a team
       fee.  Here's a link to some videos:
       https://www.youtube.com/@neptynehq that show how Neptyne works. If
       you really want to get a sense of the product, the best way is try
       out our three minute tutorial:
       https://neptyne.com/neptyne/tutorial.  We'd love to hear about
       things you've built in spreadsheets and what new things might be
       possible with a native Python integration! Fire away!
        
       Author : dosinga
       Score  : 274 points
       Date   : 2023-02-16 14:02 UTC (8 hours ago)
        
       | jimmoores wrote:
       | I've seen a bunch of companies do this. The problem is always
       | that it isn't Excel. This means usually things like XLWings,
       | Excel-DNA, etc. are actually more useful.
        
         | hummus_bae wrote:
         | Neptyne supports XLWings, the codes can be preserved in the
         | xlwings format and be transferred to Excel.
         | 
         | https://www.neptyne.com/ephemera/xlwings
        
           | dosinga wrote:
           | Hmm, Neptyne doesn't support XLWings and that link doesn't
           | resolve. Where did this come from?
        
             | zamfi wrote:
             | I think GPT-3-bots are trolling HN now...
        
               | dosinga wrote:
               | Right? It looks exactly like what GPT3 would say!
        
       | jjoe wrote:
       | Traditionally the business is the source of spreadsheets (data
       | comes from the biz side of the equation). The data analyst then
       | has to make sense of the data.
       | 
       | So to convince a BA to input their data on Neptyne because the DA
       | might need to python script it at some point is maybe premature
       | optimization.
       | 
       | That's an uphill battle... But I definitely see it a good case
       | for me personally as someone who both originates data (nothing
       | fancy) and needs to process it further...
       | 
       | Will definitely check it out!
        
         | dosinga wrote:
         | (co-founder of Neptyne) - It's definitely not the easiest
         | market to break in, I am sure you are right there. The Python
         | side of things does allow for easy import of data from anywhere
         | though - you can just go:
         | 
         | A1 = requests.get(SOME_URL).json()
         | 
         | to make a REST API call for example. Right now that's often
         | done by running some script that produces a .csv that then gets
         | emailed around and imported into a spreadsheet.
        
       | ricklamers wrote:
       | Wow this is cool! I created a similar thing over the summer but
       | never took it anywhere because I felt GSheets would just add
       | Python.
       | 
       | https://github.com/ricklamers/gridstudio
       | 
       | Rooting for you guys
        
         | dosinga wrote:
         | Nice. Any learnings that we got profit from?
        
           | ricklamers wrote:
           | Get the shortcuts right hehe
           | 
           | In all seriousness, what I'd worry about the most is
           | Sheets/Excel is a Swiss army knife and it's used for tens if
           | not hundreds of different use cases. Find out which use
           | case/persona this programmability angle is super useful for
           | and go after that crowd ruthlessly. Strip away anything that
           | could be a distraction, if not you'll be pulled in all
           | directions.
           | 
           | You don't eat GSheets all at once, you go bite by bite.
        
           | ricklamers wrote:
           | Also, given how many startups have waged war with
           | spreadsheets probably best to watch
           | https://youtu.be/GMIawSAygO4 for an introduction to the
           | concept of "tar pit ideas".
           | 
           | Then at least you know what you're getting yourselves into :)
        
       | smugma wrote:
       | I had three minutes, clicked tutorial and got a modal asking me
       | to sign up.
       | 
       | Left the page.
        
         | [deleted]
        
         | nvln wrote:
         | With pay-per-use services propping up around AI, I'm sensing
         | that asking users to sign up before trial will become
         | inevitable.
         | 
         | 1. Is this a HN only phenomenon or is there a significant drop-
         | off in general because of the signup requirement?
         | 
         | 2. If the drop-off is general, how are you planning to handle
         | AI pay-per-use credit tracking without signup?
        
           | sporedro wrote:
           | I think they are referring to the fact you can't even try it
           | without signing up. I don't think people mind signing up and
           | paying if they feel they will use it.
           | 
           | So much stuff is released every day, I don't want to be
           | bothered creating an account and giving my info to everything
           | on the internet. Give me a good demo and if I'm interested
           | I'll sign up.
        
         | zamfi wrote:
         | I hate email signups as much as the next guy, but the truth
         | is...if you find their value proposition so weak that you won't
         | even enter an email address or click through a Google login
         | button?
         | 
         | Then maybe you're not who they want as a first customer anyway.
         | 
         | Perhaps this is just successful self-selection, rather than
         | merely a user-hostile behavior?
        
           | MaxPengwing wrote:
           | no this is just user hostile and a bad sales funnel. Even
           | Googles Tutorials are not login gated, however it expects you
           | to get a 14 day free account to test Google Apps if you want
           | to do the practice material.
           | 
           | Show what you have, then gently nudge people in to the sales
           | funnel. Dont body slam them in to i.
        
         | jackamadeo wrote:
         | We hear you and we do want to make it possible to try the
         | tutorial without signing up for an account. We're working on
         | making that possible shortly. I'll update here when that's
         | possible
         | 
         | EDIT: this should work now. Just click the new button that says
         | "Skip signup and let me try it out first"
        
         | thatfunkymunki wrote:
         | same, what a sad tease.
        
         | vaporary wrote:
         | I didn't even get three minutes; as soon as the page opened, I
         | couldn't do anything without signing into Google or creating an
         | account. Closed the tab.
        
           | moneywoes wrote:
           | Don't studies show that you have to make users do something
           | that requires friction to boost conversion? Otherwise they're
           | not valuable leads
        
           | jacobsimon wrote:
           | Ugh fine I'll take the bait. If you all don't want to create
           | an account, don't expect to try anyone's products! It doesn't
           | even make sense from a software perspective: A spreadsheet
           | needs to belong to a user. You can't edit a google doc or
           | sheet without being logged in. Sure, they could create a
           | sandbox demo of their product that works without an account,
           | but that's kind of an unreasonable feature expectation to
           | thrust onto every website.
        
             | znt wrote:
             | Jupyter online test page, no login:
             | https://jupyter.org/try-
             | jupyter/retro/notebooks/?path=notebo...
             | 
             | Online python REPL, no login:
             | https://replit.com/languages/python3
             | 
             | Another generic online REPL service, with pandas example,
             | no login: https://onecompiler.com/python/3x7an28pr
             | 
             | ReactJS online playground, no login:
             | https://playcode.io/react
        
             | metalliqaz wrote:
             | I already had a google account when it came time to try
             | Google Docs.
             | 
             | I'm not going to make a new account somewhere just to demo
             | what they offer. I have to be convinced _before_ I enter my
             | personal info
        
             | MaxPengwing wrote:
             | You can still read the tutorial without getting a Google
             | Account, and that can be more than enough to get a feel for
             | the product. At least enough to decide if you want to get a
             | test account.
             | 
             | Here the Tutorial is Login Gated. That's just going to turn
             | people who are curious and have 2-3 min to look at it,
             | away.
        
             | discordianfish wrote:
             | "Sign up to save" is a quite common pattern these days and
             | what I would suggest they are doing here as well.
        
           | ragnarsson wrote:
           | Modern problems require modern solutions. I keep a separate
           | gmail id just for this. Also I signed in using gmail and
           | redirect didn't work in firefox.
        
         | qhwudbebd wrote:
         | It doesn't do a verification flow on the address provided, so
         | you can just use <randomstring>@sharklasers.com or similar to
         | try it out.
        
         | llaolleh wrote:
         | Thanks for letting us know. I won't even bother clicking on the
         | link.
        
       | yawnxyz wrote:
       | Wow this is so cool!
       | 
       | I'm trying the app tutorial out and some of the calculations
       | (e.g. the sum() step) is taking maybe 30-60 seconds to complete
       | -- is that usual, or are you getting hugged by HN?
        
         | dosinga wrote:
         | Eh, yeah, I think we are experiencing some slow downs all over
         | the place. Sorry about that? It usually should take about the
         | time of a round trip to the server (plus whatever time Python
         | takes to execute the sum, but that should be fast). Sorry about
         | that!
        
       | avinassh wrote:
       | Looks cool! Since you mentioned all the magic happening in the
       | backend, how does it run? How do you ensure I am not running
       | malicious Python code, like infinite for loop or never-ending
       | recursion? Also, disabling file or network IO?
       | 
       | Did you also explore running Python in the browser using wasm?
        
         | dosinga wrote:
         | Good questions!
         | 
         | So it runs all in a container. If you want to crash that
         | container, you can! You can't (we really hope) escape from that
         | container though. You have full access to the local file system
         | and you can access network IO - without those you would hardly
         | have a full Python environment. The container runs a Jupyter
         | kernel with a spreadsheet run time. You can break the
         | spreadsheet run time if you want. But it will just kill your
         | own thing.
         | 
         | We've looked at wasm, but we want to solve one thing at the
         | time and running Jupyter kernels in containers is a fairly well
         | understood way to do things. Plus you do want to support server
         | side calculations for a number of reasons. Let me know if you
         | have more questions!
        
       | leemelone wrote:
       | Please no
        
       | nvln wrote:
       | This is neat. Congrats on the launch. Having a python repl next
       | to spread sheet will be handy for a lot of user cases.
        
       | alskfkks wrote:
       | I don't know what to make of the fact that reactivity doesn't
       | seem to be discussed in the docs or the tutorial. I am a fan of
       | ObservableHQ's reactive JavaScript notebooks, in which blocks of
       | code get rerun when their inputs change. This is reactivity in
       | the same sense as spreadsheets are reactive, and it's pretty
       | neat. One nice feature of ObservableHQ is that you can use free
       | variables when writing code blocks, and they will get their
       | values (reactively) from the environment. That is very powerful
       | and it seems to me that plugging a scripting language into a
       | spreadsheet should work that way as well.
        
         | jackamadeo wrote:
         | (Neptyne cofounder here)
         | 
         | That's probably something we should dig more into in the docs,
         | yeah. Neptyne works like a ipython/Jupyter notebook in that
         | everything is in scope all the time. So you can write your code
         | in an imperative way (e.g. `B10 = some_value`) within a
         | function, or you can do use a functional style.
         | 
         | We handle spreadsheet-style reactivity by building the
         | dependency graph out of any cell addresses mentioned in the
         | cell itself. So if you have `=my_func(A1)` in one cell, it will
         | re-run when A1 changes. But if my_func reads from, say, B1, it
         | will not automatically re-run when B1 changes.
        
       | [deleted]
        
       | senand wrote:
       | Interesting! Congrats on the launch.
       | 
       | I tried it out, and just first feedback:
       | 
       | - I often use the "Home" and "End" key to go the start/end of the
       | line when I'm editing a cell. It scrolls to start/end of the
       | whole spreadsheet, however. Since I'm not a spreadsheet user, I'm
       | not sure if that's expected.
       | 
       | - The handlers like "on_dropdown_change" should receive an
       | argument for the cell it's coming from, so you can e.g. change
       | the cell that's next to it. Or how else is this supposed to be
       | done?
       | 
       | It's quite cool :-) I suppose one problem could be integration
       | with existing Google Sheets / Excel sheets?
        
         | dosinga wrote:
         | Home/End : Oh that feels like a bug. Stop propagate that event
         | already!
         | 
         | > The handlers like "on_dropdown_change" should receive an
         | argument for the cell it's coming from
         | 
         | They do! If you define a function that does not take a
         | parameter it is all fine, but we introspect if you do and if
         | so, pass on an event object:
         | 
         | def on_dropdown_change(value, event):
         | event.cell.set_background_color(value * 50 + 100, 100, 100)
         | 
         | would change the cell with the drop down's background color
         | based on the value selected
        
       | benfa94 wrote:
       | Good job! i really like the idea and also the implementatino is
       | really good for something totaly new! But as much as i would love
       | to see this as the new MS excel i can't immagine this replacing
       | it. I wish you good luck and i hope more ppl will start using
       | this instead of MS excel
        
       | klankschap wrote:
       | does this neptyne also work off-cloud? e.g. now way that i'll
       | upload my data into the void.
        
       | elforce002 wrote:
       | How is this different from other solutions such as this one:
       | https://equals.app?
        
         | jackamadeo wrote:
         | (cofounder of Neptyne here)
         | 
         | Equals is a great product -- I'm a fan!
         | 
         | The main technical difference between us and something like
         | Equals is that we give you a full Python environment (in the
         | form of a Jupyter kernel running in a Docker container) for
         | maximum programmability and flexibility. This means that you,
         | as a Neptyne user, can connect to virtually any data source by
         | importing the appropriate package and setting credentials. And
         | of course you can use Python in the actual functioning of your
         | spreadsheet, not just as a one-way data import step.
        
       | joshcsimmons wrote:
       | Pricing info? Maybe I'm missing it but I don't see it on the
       | site.
        
         | cl0ckt0wer wrote:
         | "Contact for pricing" => "What can you afford?"
        
         | dosinga wrote:
         | It's free so far and will be free for personal use. We'll add a
         | team based priced layer as we add more features
        
       | alfor wrote:
       | Questions:
       | 
       | This is a platform as a service?
       | 
       | How does the frontend work with the backend, it's all backend and
       | magic stuff to reflect it on the frontend?
        
         | dosinga wrote:
         | > This is a platform as a service? That is correct
         | 
         | > How does the frontend work with the backend, it's all backend
         | and magic stuff to reflect it on the frontend?
         | 
         | All the logic is happening the backend, yeah. The Jupyter
         | kernel runs Python, but the Python is processed in a way that
         | it understands spreadsheet expressions like A1, B3:C8 and has
         | the Excel functions available. The frontend reflects the state
         | of the backend at all times and syncs over a websocket. This
         | setup gets you multi user for free.
        
       | 6gvONxR4sf7o wrote:
       | Looks cool, but the get started --> skip signup to try now -->
       | empty tyne flow is broken. When I click "empty tyne", it just
       | reloads the page and blocks you with "empty tyne" again and
       | again.
       | 
       | Also, I'm curious if it supports live collaborative editing like
       | google sheets/docs/etc do?
        
         | jackamadeo wrote:
         | Hmm, sorry about that broken flow. We added some last-minute
         | things today to get the skip-signup thing working that might
         | have some bugs :)
         | 
         | If you go straight to https://neptyne.com/neptyne/tutorial that
         | should work.
         | 
         | We do support live collaborative editing, though it isn't all
         | built out yet. If two people are working on the same tyne,
         | you'll see the presence of other collaborators and you'll see
         | their changes reflected live, but the code panel updates with
         | last-writer-wins at the moment. We're working on making that
         | better.
        
       | version_five wrote:
       | This sounds like a really good idea - combining spreadsheet
       | convenience with being able to do programmatic manipulations with
       | python can be really value for people who are using spreadsheets
       | to do modeling (e.g financial). I think (especially based on some
       | other comments) a big challenge will be just getting people out
       | of their current bubble. If you do financial modeling, you might
       | be entrenched in excel, and if you so data science in python, you
       | might never dream of using spreadsheets.
       | 
       | My unsolicited advice (that's probably on your radar anyway)
       | would be to try and get a management consulting firm on board
       | with this. The flexibility this has would be well used there, and
       | you've got lots of people who are engineers stuck using
       | spreadsheets that would be on board with trying something like
       | this.
        
         | jackamadeo wrote:
         | (co-founder of Neptyne here)
         | 
         | Our biggest challenge as you say is definitely the fact that
         | lots of users will be entrenched in Excel. Our goal right now
         | is to appeal not to those who are happy in Excel today, but to
         | those who have grown disillusioned: lots of users today build
         | up amazingly complicated things in Excel and grow frustrated by
         | the difficulty of maintaining that complexity. Python can be a
         | much better fit in many cases for a lot of that complexity.
         | 
         | And as a platform for data science, we've found Neptyne really
         | nice for sharing results. I was surprised at how often I heard
         | from users: "well, we usually do everything in Jupyter, but
         | then whenever management wants to see the output, they ask for
         | it in a spreadsheet".
        
       | trinovantes wrote:
       | How does it interact with libraries that need the file system?
       | e.g. Can I use requests-cache?
        
         | dosinga wrote:
         | Yes. You can use whatever you want. We do ship with a bunch of
         | useful things installed (requests, pandas, plotly) but you can
         | pip install whatever you want.
        
         | jackamadeo wrote:
         | It should work. I haven't tried requests-cache exactly but in
         | Neptyne you're running with a Jupyter kernel in a Docker
         | container backend, so you do have a filesystem to work with.
         | That file system is mostly ephemeral though -- when you leave
         | and come back, you'll get a new container, so anything you need
         | to persist should live in the spreadsheet itself.
        
       | cameron_b wrote:
       | Very Excited.
       | 
       | I'm likely very close to the ideal user. I don't program for work
       | but make CSV-consuming tools from Python here and there to work
       | on giant exports of data when they get outside of Excel's built-
       | in magic.
       | 
       | Most recently the exact task was to consume a Zoom user export,
       | filter with RegEx, and transform the table for upload to Zoom as
       | a CSV again, but with different fields. This would translate very
       | well to Neptyne if it supported 70k rows.
        
         | jackamadeo wrote:
         | (Neptyne cofounder here)
         | 
         | That does sound like a fitting use case. Technically speaking
         | it should be OK with 70k rows, but we've got some optimizations
         | that might need to go out before it performs well. Ideally, you
         | should be limited only by the memory allocated to the Python
         | kernel, but today there are some other limitations that get in
         | the way.
        
       | Vaslo wrote:
       | Very cool but what's to stop Microsoft from doing this in Excel
       | and making it instantly integrated into the software that
       | millions of us already use?
        
         | hiccuphippo wrote:
         | In that case, mission accomplished.
        
         | noisy_boy wrote:
         | Excel -> Alt+F12 -> Embedded VSCode Python editor
        
         | pbreit wrote:
         | Microsoft already has an identical offering (VBScript in Excel)
         | so we can all see how good Microsoft is at developing such a
         | thing.
        
         | etothepii wrote:
         | The not built here bias is very strong. It would almost
         | certainly be cheaper to buy Neptyne than to rebuild.
        
       | a-bit-of-code wrote:
       | I believe Google Sheets supports programmability using Javascript
       | these days. Is your product fundamentally different? Thanks and
       | all the best.
        
         | [deleted]
        
         | jackamadeo wrote:
         | (co-founder of Neptyne here)
         | 
         | With Google Sheets you get a flavor of JS called Apps Script, a
         | flavor of JS with some limitations. Some ways in which our use
         | of Python differ are:
         | 
         | - run Python directly in the spreadsheet cells, not just as an
         | "extension"
         | 
         | - a full runtime in a Jupyter kernel, so you can import and use
         | effectively any Python package, as long as it runs on Linux
         | 
         | - an interactive REPL that gives you a nice test environment,
         | but also a command line of sorts for working with your
         | spreadsheet. (e.g. you can say `A1 = requests.get(URL).json()`)
         | to do a one-off fetch of some data from an API.
         | 
         | Generally speaking we hope to give you a much more
         | powerful/seamless integration between spreadsheet/Python than
         | what you get with Sheets/JS
        
           | npsomaratna wrote:
           | First: congratulations. I love the premise.
           | 
           | You've hit the nail on the head: While Google Sheets supports
           | Javascript, the integration feels clunky. You have to switch
           | from the spreadsheet you're working on, to the Apps Script
           | editor. This is awkward enough that I tend to avoid this
           | functionality, even in use-cases where a few lines of
           | Javascript code would probably save me time (vis-a-vis
           | engaging in gymnastics in a bunch of spreadsheet rows/columns
           | or a separate tab).
           | 
           | In comparison, Neptyne makes Python feel like a first-class
           | citizen.
           | 
           | That said, you might want to consider slight changes to the
           | UX so that users conditioned on Google Sheets/Excel's UX
           | paradigms can use it with their "muscle memory." For example,
           | when I select a cell and press the '=' key, I expect to be
           | able to start typing in a formula. Both Google Sheets and
           | Excel behave this way. In Neptyne, I had to double-click on
           | the cell first. The closer the experience to the two
           | "biggies", the easier it'll be to convince folks to switch.
        
             | dosinga wrote:
             | Agree with making it as much the same where it can be the
             | same. In this case it should work the way it works with the
             | other spreadsheets though. Click a cell and start typing
             | should work and for me just did when I tried. Can you
             | reproduce this? Thanks!
        
       | dmitrykoval wrote:
       | This is really cool and promising product! So many times when I
       | was getting a google docs spreadsheet from non-engineering folks
       | I was wondering if only I can embed a small jupyter notebook with
       | a few python cells and a nice looking pandas chart, using this
       | data.. Congrats on the launch!
        
         | dosinga wrote:
         | Thanks! We like it too :)
        
       | spaceman_2020 wrote:
       | Just some feedback: the landing page dimensions are all out of
       | order. There's a horizontal scrollbar under the "sneak peak"
       | section. Never a good thing. The spacing between the heading and
       | the hero image is far too wide.
        
         | jackamadeo wrote:
         | Thanks, appreciate the feedback! You make good points. We'll
         | have a look at how we can improve the landing page.
        
       | layer8 wrote:
       | Why do you require a login for the tutorial? I backed out because
       | of it.
        
         | jackamadeo wrote:
         | We just added a button to let you skip the sign-in for the
         | tutorial: https://neptyne.com/neptyne/tutorial
        
         | [deleted]
        
       | kdeldycke wrote:
       | The concept of Python-based spreadsheets was explored by Resolver
       | One[1], a defunct proprietary desktop app that was discontinued
       | ~10 years ago[2].
       | 
       | It seems a web version of the app has been published in open-
       | source[3] but that too has been EOL.
       | 
       | [1]
       | https://web.archive.org/web/20120211201410/http://www.resolv...
       | [2] https://www.resolversystems.com [3]
       | https://github.com/pythonanywhere/dirigible-spreadsheet
        
         | jackamadeo wrote:
         | (cofounder of Neptyne here)
         | 
         | Thanks for mentioning this! I came across Resolve One recently
         | in another HN thread. Were you a user yourself? What did you
         | think of it?
        
           | meekaaku wrote:
           | I did try it, but that was ages ago. I remember going wow!
           | and thinking this is the future of spreadsheet. Alas it didnt
           | pan out that way. One thing it had if I recall waell, was
           | defining a function without having to go full VBA style
           | scripting. It was more like a lambda you define in a cell.
        
         | hiccuphippo wrote:
         | I remember this from the book IronPython in Action. The book
         | teaches IronPython (Python for .Net) by having you build a
         | spreadsheet application. The author worked on Resolver One.
        
         | [deleted]
        
       | next_xibalba wrote:
       | This is impressive. It seems like you really understand the
       | requirements of the audience that uses spreadsheets AND data
       | centric Python! The REPL, in particular, is a nice touch.
       | 
       | My biggest concern with a tool like this is that the power-iest
       | power users who would love it tend to work at big enterprises
       | where they're locked into productivity suite bundles with
       | Microsoft or Google. Additionally, if you get traction, Google
       | and Microsoft would be very likely to clone your features for
       | Sheets and Excel.
        
       | pbreit wrote:
       | Good opportunity to highlight Google "Apps Script" which is one
       | of the most powerful but unknown tools in the web:
       | https://developers.google.com/apps-script/guides/sheets
       | 
       | Includes easy fetching: https://developers.google.com/apps-
       | script/reference/url-fetc...
       | 
       | I suppose python could be better for this use case but javascript
       | seems to work fine. And it's all built righ in to Google Sheets.
        
         | [deleted]
        
         | jackamadeo wrote:
         | (cofounder of Neptyne here)
         | 
         | We see Apps Script is a strong signal that this kind of thing
         | is useful. Apps Script adds so much power to Sheets but it
         | could be so much easier to use. With Neptyne, since your
         | spreadsheet engine runs in a Jupyter kernel, you get an
         | interactive REPL and a very straightforward bidirectional API
         | for reading/writing data.
        
         | [deleted]
        
         | beenpola wrote:
         | I feel like I should plug something I've been helping with for
         | a while- it's not documented well yet, nor fully CRUD capable,
         | but if you want to interface with Google Sheets a little better
         | (and get things out in arrays of objects) this might be a good
         | start:
         | 
         | https://github.com/texas-mcallen-mission/sheetCore
        
       | btown wrote:
       | Very cool! Does it allow real-time multi-person editing? (It's
       | not very clear from the landing page.)
       | 
       | If so - how do you handle multiple people editing the code area
       | at the same time?
       | 
       | Would be a killer feature if this was robust!
        
         | dosinga wrote:
         | Thanks! Multi user should work out of the box, but right now it
         | is last writer wins, which seems fine for the sheet side of
         | things. We have a prototype of concurrent editing for the code
         | area, but it's not launched yet. We'll prioritize depending on
         | how many people ask for it.
        
       | Rovoska wrote:
       | Forced signup to even test it? Hard pass
        
         | jackamadeo wrote:
         | Thanks for calling that out! We made it possible to skip the
         | sign-up to try our tutorial.
         | https://neptyne.com/neptyne/tutorial should now let you do that
        
       | buzzy_hacker wrote:
       | I like this idea. If I'm doing anything more than a trivial
       | formula in Excel or Google Sheets then it's a pain to look up the
       | proper syntax. Just being able to use Python sounds great.
        
       | e12e wrote:
       | > You mix Excel style cell addresses (A1, C3) and ranges (B2:B20)
       | 
       | Well, that's unfortunate for "power" users - I'd imagine they'd
       | want what excel calls r1c1 mode:
       | 
       | https://learn.microsoft.com/en-us/office/troubleshoot/excel/...
       | 
       | One of the many valuable lessons from Joel Spolsky "You suck at
       | Excel" (around 8:30 mark): https://youtu.be/0nbkaYsR94c
        
         | dosinga wrote:
         | You _can_ access stuff in a different way of course. Each sheet
         | is also a python object, so you can just go Sheet1[20, 20] or
         | Sheet1[10:20] if you like that way better
        
           | e12e wrote:
           | I suppose that means you can reference eg the cell "above" by
           | doing some kind of self+/-offset?
           | 
           | For what I mean see: https://excelchamps.com/formulas/r1c1/
        
           | dexwiz wrote:
           | Sheet1[10:20] looks like the list slicing syntax. Are there
           | any issues there?
        
             | dosinga wrote:
             | You are correct, that is the slicing syntax. We to
             | carefully interpret the ":" in the right way. For example:
             | 
             | sort(l, lambda A:F1(A)) doesn't invoke
             | 
             | Sheet1[10:20] just returns the 10 to 20s row of that sheet,
             | which I think is the most reasonable thing to do here
        
               | michaelmior wrote:
               | I assume you mean rows 11 to 20 like the Python syntax
               | would do or is it different because spreadsheet row
               | numbers start at 1 instead of 0?
        
               | dosinga wrote:
               | Ah, yes, sorry, just Python based slicing. It follows the
               | numpy rules
        
       | bitcoinmoney wrote:
       | Looking for something like this exactly. Is it possible to
       | install on site? No way my company would want prop data on a
       | cloud.
        
         | dosinga wrote:
         | Sorry, not right now. Obviously something we plan to do
         | eventually ...
        
       | short_sells_poo wrote:
       | This looks fantastic, and sadly completely misses the mark on a
       | huge industry that uses excel every day: investment management,
       | hedge funds, etc. Why? Because this is yet another cloud only
       | solution with no self hosting possibility.
       | 
       | These firms are very-very rich and would pay good money, but a
       | very small %-age will be willing to give you their data. It
       | doesn't matter how many certifications you quote about data
       | treatment, we will simply not trust you with our data, full stop.
       | 
       | You say pyxll is a mediocre tool, but IMO they understand how
       | this industry works.
       | 
       | Really sad, because the tool itself looks fantastic...
        
         | sullivanmatt wrote:
         | If they had built this so they handled the SaaS part, but could
         | persist the data in your organization's own AWS / GCP / Azure
         | blob storage, would that be enough to get the solution past the
         | line for acceptance? I'm in security, but in tech, where SaaS
         | solutions are usually much more accepted.
         | 
         | The challenge with on-prem software of course is just how much
         | support it takes to maintain. At my last gig, we deployed new
         | microservices every 5 minutes; I can't imagine how much it
         | would have sucked to worry about maintaining on-prem installs.
         | 
         | I'm wondering if this kind of shared model could make it
         | workable.
        
         | jackamadeo wrote:
         | Thanks! We've talked to a lot of people in hedge funds and
         | investments, and you're right that a lot of them care about a
         | self-hosted solution. This is definitely on our radar as a
         | potential future path for the product.
        
       | aarondia wrote:
       | Congrats on the launch! I'm the cofounder of Mito[1], an open-
       | core spreadsheet extension to Jupyter that generates the
       | equivalent Python code every time you edit your data. We also
       | think that combining the intuitiveness of spreadsheet UI with the
       | repeatability and large-data-handling-abilities of Python is
       | going to unlock a bunch of Excel-first analysts to save
       | themselves tons of time by automating repetitive reports.
       | 
       | One difference in our approach is that the Mito spreadsheet goes
       | from Spreadsheet -> Python code, instead of the other way. For
       | every edit you make in the Mito spreadsheet, we generate the
       | equivalent Python code for you.
       | 
       | In practice, this has been really important for us for few
       | reasons:
       | 
       | 1) A lot of our users are early in their Python journey. They
       | might've taken a Udemy course or done some Kaggle classes, but
       | generally they are not yet comfortable writing a Python script
       | from scratch. Since they already have a ton of work on their
       | plates, if the option is do the report manually in Excel for 2
       | hours today or spend the next 2 days writing a Python script to
       | automate their work and save them those 2 hours a day each month
       | going forward, they will probably choose to do it manually. By
       | giving them the Python code for the edits that they make, its
       | more like build the report for 2 hours today in Mito and get the
       | Python script automatically so you don't ever have to build the
       | report again.
       | 
       | 2) There are 1 million and 10 things that users want to do in a
       | report, so by giving the user the equivalent Python code, they're
       | able to use the code they've generated as a starting point, not
       | the finish line. For example [2], one really common use case
       | we've seen is Excel workbooks with the following tabs:
       | input_data, Jan 2020, Feb 2020, ..., Dec 2022, .... In each case,
       | the month tab corresponds to the same sort of filtering and
       | transformations of the input data. These users get a huge amount
       | of value out of actually having access to the Python code that
       | they generated. The user will use the Mito spreadsheet to
       | generate tab Jan 2020, turn the Mito generated code into a
       | function, and then apply the function to generate Feb 2020 ...
       | December 2022.
       | 
       | [1] https://www.trymito.io [2]
       | https://blog.trymito.io/automating-spreadsheets-with-python-...
        
       | jejeyyy77 wrote:
       | "Supercharge your spreadsheets with Python and AI"
       | 
       | lol, threw in the AI there just in case
        
         | dosinga wrote:
         | Yeah, we do actually have some decent AI integrations:
         | https://www.youtube.com/watch?v=GfQVtNCdwzc - for the HN
         | discussion we wanted to just really focus on the Python
         | Programmable Spreadsheet
        
       | chillbill wrote:
       | or just use pivot table.
        
       | danuker wrote:
       | > Drag the corner from F7 to F9 to compute the total cost for
       | each unit.
       | 
       | I do that.
       | 
       | > Server connection error: failed to connect to server
       | 
       | I get that the system is overloaded, but if every small action
       | requires a network, and I can't use it with intermittent network
       | let alone offline, I'm not too thrilled.
        
         | dosinga wrote:
         | You have a right to be not all that thrilled because of this.
         | Unfortunately you seem to have hit a bug that we sometimes see
         | and haven't been able to pin down. Normally if the network is
         | flaky or the server slow, it should just reconnect when
         | possible in a fairly seamless way
        
       | matt3210 wrote:
       | This seems like an amazing idea probably because I know python
       | pretty well... People who can't use python probably won't be into
       | it.
        
         | jackamadeo wrote:
         | It is true that the people who are most productive today in
         | Neptyne are those who are pretty familiar with Python. Part of
         | our long-term goal is to make this kind of programming more
         | accessible to beginners, and we talk to a lot of people who
         | wouldn't call themselves "programmers" but are familiar with
         | spreadsheets. Our hypothesis is that if you give these people a
         | frictionless way to incorporate programming into their
         | workflows, they'll learn quickly and reap the benefits.
        
       | jdoss wrote:
       | Very cool idea. Since it is based on Jupyter Notebook, can I self
       | host this for my needs?
        
         | jackamadeo wrote:
         | We don't have a self-host option at the moment. We wanted to
         | build Neptyne as a collaborative platform first, where users
         | could build together and share their work.
         | 
         | I wouldn't rule it out for the future though -- a lot will
         | depend on where we see Neptyne being used.
        
       | wittrock wrote:
       | Congratulations on the launch! I'm very excited to try replacing
       | my hacked-together AppScript with this.
        
       | yubiox wrote:
       | Is there an api or cli interface so I don't have to use the web
       | ide?
        
         | dosinga wrote:
         | Sorry, not yet! I suppose we could allow editing the code pane
         | using an external editor, but the spreadsheet would be tricky I
         | think. Or do you have an idea of how that would work?
        
           | yubiox wrote:
           | I don't really know. Maybe something as simple as using a git
           | remote, I then edit in my editor of choice, commit, push to
           | remote, then pull in the gui to get the latest. I'd rather do
           | all that than have to use a different editor. Just something
           | to think about. Thanks.
        
       | telarson wrote:
       | I know python, don't really know VBA. This will open up a new
       | world for me. Excited to try it out.
        
         | dosinga wrote:
         | Let us know how that goes and if there is anything we can help
         | with
        
       | codesnik wrote:
       | I yet to understand a reason for cell to be addressed by A1 or
       | C1R1 style. put it in a table, give a column a name. Numbers got
       | it right.
        
       | Invictus0 wrote:
       | Cool idea but not ready for primetime. The very first thing in
       | the demo didn't work: couldn't drag the cell and couldn't use
       | command+C to copy the data.
        
       | danielmarkbruce wrote:
       | On the surface this seems like an impossible market to penetrate.
       | But you must know this. What is the deeper insight that one who
       | thinks this is missing?
        
       | photochemsyn wrote:
       | LibreOffice Calc combined with python's pandas and numpy modules
       | meet all needs I have for spreadsheets, with matplotlib and
       | seaborn for visualization. The Ipython shell is the optimal IDE
       | for this approach IMO. My desktop reference is:
       | 
       | "Python for Data Analysis 2nd ed" (Wes McKinney, 2018)
        
         | jackamadeo wrote:
         | (Neptyne cofounder here)
         | 
         | All great tools to be sure! I am a huge fan of numpy and pandas
         | especially. For plotting in Neptyne I usually opt for plotly
         | over matplotlib/seaborn. Agreed too on the shell -- that's why
         | we built one into our product.
         | 
         | I am curious though, do you typically share/collaborate on
         | these spreadsheets with others? Do you have a neat way of
         | packaging up the spreadsheet+Python code?
        
         | sgt wrote:
         | And it's something that'll literally last forever. Not
         | dependent on a company or pricing.
        
         | anigbrowl wrote:
         | Somewhat same, but I'm not sure what you need Calc for, I can't
         | remember the last time I deliberately opened a spreadsheet.
         | 
         | On the other hand, while Matplotlib and its ecosystem of add-
         | ons and close imitators is fantastic, it's _not_ friendly to
         | most people, and making it interactive is a massive pain. If
         | you want to wiggle sliders and watch your charts change in real
         | time, you need to use pyplot or something instead.
        
       | linhvn wrote:
       | I remembered Alphasheets was acquired by Google a couple of years
       | ago for doing similar thing (they programmed in Haskell which is
       | really cool) https://medium.com/bloated-mvp/alphasheets-mvp-
       | review-ec328e...
        
       | DavidFerris wrote:
       | Very cool! I constantly struggle trying to do things in
       | spreadsheets that are easy in Python. But I/O makes it annoying
       | to write one-off scripts for a 30 second op. This would solve
       | that pain point!
       | 
       | I would love a Google Sheets integration, since that's where I
       | already live with most of my CSV/Sheets data + it would
       | seamlessly fit into my workflow. If this was a Chrome extension I
       | would have installed it today.
       | 
       | As is, I don't see myself using another spreadsheet app.
        
         | dosinga wrote:
         | Switching tools is hard, that's something we understand. You
         | can import sheets fairly easily of course into Neptyne. Would a
         | two way sync (where a certain region of a Neptyne document and
         | a certain region of a Google Sheet would automatically be kept
         | in sync) make you have another look?
        
       | b1zguy wrote:
       | What's are the costs? Couldn't find it on the site.
        
       | Oras wrote:
       | I can't understand how this will improve the work. I see the
       | value of having python instead of sheets formulas for python
       | developers, but developers would work on totally different
       | toolsets (like Jupyter notebook, as you mentioned), or something
       | like StreamIt or https://gradio.app/
       | 
       | This would be useless for spreadsheet users (those who use sheet
       | formulas) as they have to learn python.
       | 
       | I'm not in the target audience, so I might be completely wrong
       | about the use cases.
        
         | jackamadeo wrote:
         | (co-founder of Neptyne here)
         | 
         | You're spot on in that, if you're a Python developer, you're
         | probably using Jupyter and/or Streamlit, gradio, etc. and
         | spreadsheet users are most comfortable with Excel-style
         | formulas. What we've done with Neptyne is create an environment
         | where teams of both types can be productive in a shared
         | environment: the usual spreadsheet formulas are there, and so
         | is a full Python/Jupyter runtime.
         | 
         | As with any tool that attempts to combine the best of multiple
         | great tools, there's always the risk that it falls short of one
         | or the other. Our aim is to make Neptyne a better alternative
         | to both standard spreadsheets and Jupyter notebooks.
         | 
         | One more thing that surprised me a bit: in talking to
         | spreadsheet power users, you see a lot of interest in using
         | more Python. Neptyne is a great way to start off with a
         | spreadsheet and gently incorporate more Python into your work!
        
       | fernandohur wrote:
       | Congrats on the launch. Building a product of this complexity is
       | no easy feat! Out of curiosity: given the old adage that a
       | product needs to be 10x to overcome switching costs, how do you
       | prove users that you are 10x better than Google Sheets or Excel?
        
       | grvdrm wrote:
       | This is really cool. There was another recent post about
       | something similar: https://news.ycombinator.com/item?id=34805132
       | 
       | One question/thought: what's your security like? Inevitably,
       | people treat spreadsheets like databases for better or worse.
       | That means they often contain lots of things that might be better
       | stored elsewhere - sometimes PII, sometimes a proprietary
       | formula, set of factors as inputs to a process, etc.
       | 
       | So, I think many spreadsheet-heavy businesses will avoid
       | something that doesn't obviously sit inside the fortress of
       | security they've approved. Of course, someone can just
       | accidentally email a spreadsheet to the wrong person or store it
       | somewhere with no security. It happens all the time, I'm under no
       | illusion.
       | 
       | Point is: I would be more likely to give it a shot given a base
       | level of confidence about the security of storing anything in
       | these sheets.
       | 
       | Interested to hear your take!
        
       | derekisnt wrote:
       | hey not sure if intended but the hero section looks odd at bigger
       | screen sizes (https://imgur.com/a/j7QH8kJ)
        
         | dosinga wrote:
         | thanks! that's helpful
        
       | duckqlz wrote:
       | FYI There is PyXLL which is an add on for Microsoft excel that
       | gives this functionality without a need to log into any thing.
        
         | etothepii wrote:
         | PyXLL is great but installing on users machines can be
         | difficult. The problem that VBA _actually_ solves in my opinion
         | is that it allows technicalish users to build software without
         | any controls. Most enterprise companies lock down the dev
         | experience so much it is impossible to do anything but in VBA
         | you can have direct access to the kernel.
        
       | CurtHagenlocher wrote:
       | Reminds me a little of the long-defunct "ResolverOne" for which
       | the only reference I could find was
       | https://www.python.org/about/success/resolver/
        
       | gverrilla wrote:
       | I may be wrong, but most people that know python have already
       | understood there's better ways to code than spreadsheets. Also,
       | at least where I live, not even Google could undermine Excel's
       | dominance.
       | 
       | PS: I'm convinced I was indeed wrong after reading replies,
       | because I didn't consider the interaction of coders with no
       | coders, and this tool may indeed be useful. Nevertheless I
       | maintain these cultural changes are very hard, and wish the
       | company good luck!
        
         | kapilkale wrote:
         | Is the argument here that "if you know how to code,
         | spreadsheets aren't useful to you?"
         | 
         | If so, that's false. Spreadsheets are a fantastic way to
         | present visual data and analysis in a way that's auditable by
         | anyone, regardless of technical competence. They are visual
         | programming!
         | 
         | This also makes them a better way to do lightweight data
         | processing. One of my most common workflows is to dump
         | production data into a CSV so I can analyze it and build charts
         | off it. This is perfect for business-as-usual questions, like
         | basic segmentation analyses. Pivot tables!
         | 
         | A major issue with Google Sheets is that the DSL is terrible.
         | Like, try to do _any_ sort of string manipulation (extract the
         | first two words)[1], and you 'll see how bad it is. Adding
         | native python support helps solve this.
         | 
         | I'm just a random HN-er who saw this, but I'm very excited
         | about this product.
         | 
         | ---
         | 
         | [1] https://www.spreadsheetclass.com/extract-text-or-numbers-
         | fro...
        
         | Vaslo wrote:
         | I can't pass something with Python onto my team. I have to work
         | within the constraints of Excel. My team sees the value of
         | Python but none of them want to learn it, and none will
         | maintain it after I go. They do however know spreadsheets (even
         | complicated ones) so those I can.
         | 
         | EDIT: Sorry I see you changed your mind - so what I wrote maybe
         | wasn't necessary but I'll leave it here. To be clear I wish my
         | team would learn Python, but most of them get promoted and
         | richer without learning it.
        
         | idiotsecant wrote:
         | I think there's a real use case here if you can convince the
         | people who write python and the people who write excel
         | spreadsheets to work in the same environment. Like other people
         | have mentioned though, it's easier to add python to excel then
         | it is to change everyone's workflow to some totally different
         | thing.
        
           | gverrilla wrote:
           | You convinced me (and I edited my post). Thanks :)
        
       | wiremine wrote:
       | I like the idea: I was actually looking at an open source tool
       | that does something similar: combine spreadsheets with python.
       | 
       | I do have a question: Similar tools tend to fall down after the
       | code grows to a certain size. Modularity, unit tests, etc. become
       | more useful at this point. I'm wondering if Neptyne will (or
       | does?) support these sorts of features?
       | 
       | Edit: Here's a link to the developer docs:
       | https://docs.google.com/document/d/1zLOXBoy-nf05SU3d5sZ7lDDg...
        
         | dosinga wrote:
         | Having multiple code panes (files) is a recurring feature
         | request that hopefully we'll get to at some point. Similarly we
         | have some ideas around testing - automated testing for
         | spreadsheets seems like it could be very useful! You can pip
         | install anything you want though, so having your orgs libraries
         | separately installable is one way to go about it.
        
         | swyx wrote:
         | open source data spreadsheet + python tool - were you looking
         | at https://www.quadratichq.com/ ? or something else?
        
       | tribaal wrote:
       | I'd like to try - it's quite a cool idea. But the interface seems
       | broken.
       | 
       | Is that the HN hug of death, or my corporate netowrk playing up?
        
         | dosinga wrote:
         | What exactly are you seeing that is broken? Can you share a
         | screenshot?
        
       | barbazoo wrote:
       | This looks really cool.
       | 
       | When I try to get started on https://neptyne.com/neptyne/_new
       | though, I get a HTTP 403 for the POST to
       | https://neptyne.com/api/tyne_new and it brings be back to the
       | selection screen.
        
         | dosinga wrote:
         | Sorry, we were doing a redeploy to make it possible to access
         | the tutorial without signing up - by popular demand
        
       | mcdonje wrote:
       | Very cool. I've done plenty of work supporting non-technical
       | users who primarily interact with spreadsheets. This would
       | definitely make my life easier.
       | 
       | Is it going to be cloud-only, or are you planning on making a
       | desktop app? If it's cloud-only, you can grab some (hopefully
       | many) Google Sheets users, but most Excel users will probably
       | pass.
        
         | jackamadeo wrote:
         | Thank you! I do hope you find it useful.
         | 
         | To answer your question, it's cloud-only -- we wanted to build
         | Neptyne as a collaborative platform where teams of programmers
         | and non-programmer types could get things done together. I
         | think you're right in that this will mean it doesn't work for a
         | certain class of user, but for now at least, we're focused on
         | Neptyne as a web app.
        
       | jedberg wrote:
       | Hey, this is awesome! As someone who primarily codes in Python, I
       | love that it's first class with a REPL! Nothing frustrates me
       | more then when I have to figure out Javascript for scripting in
       | Google Sheets.
       | 
       | I ran through your demo and I have some feedback:
       | 
       | - Tab completion in the REPL would be great.
       | 
       | - When I change code in the editor, it doesn't update the cell
       | where that code is used until I click on the cell, click away,
       | and click back.
       | 
       | - When I ran the append function, it worked, but if I look at the
       | array in the cell, it's unchanged. If I click on the cell and hit
       | enter, it wipes out the append. I'm honestly not sure what the
       | right behavior here is, I can see use cases on both sides. But
       | initially I did expect the cell with the array to update with the
       | new array.
       | 
       | - When I tried to do autocomplete on the capitals, it failed
       | silently. I assume the API failed to fetch the capitals? It
       | worked on the second try (but took a while).
       | 
       | - When I add a column into the sheet, it breaks all the code that
       | has cell references. I'd expect the code with cell references to
       | get updated unless my references are $F$4 for example, just like
       | in the sheet itself.
       | 
       | Overall though this is a great start!
        
         | dosinga wrote:
         | Thanks, this is excellent feedback:
         | 
         | * The REPL is supposed to do autocomplete where it makes sense.
         | If you enter A1. it should show you a list of things you can do
         | there. That always feels better than asking for it explicitly.
         | Let me know if that doesn't work.
         | 
         | * Yeah, code changes don't rerun the affected cells. It is
         | something we've debated, and maybe we should? It feels like it
         | could also cause unexpected things to happen. Hmm. Maybe we
         | should though.
         | 
         | * This is tricky. Spilling from a function, doesn't fill the
         | cells and then append does. Open for suggestions on how to make
         | this better.
         | 
         | * We call the OpenAI API - they don't always answer these days
         | :-(
         | 
         | * That's a good point. We should fix that!
        
           | mcdonje wrote:
           | Excel has an option for formula calculation, automatic vs
           | manual. The default is automatic. There is also a 'calculate
           | now' button to use for if you have manual calculations set. I
           | would expect that if automatic calculations set, then my code
           | changes would trigger calculations on affected cells. I can't
           | speak for Sheets, but most Excel users would probably expect
           | that behavior.
        
             | dosinga wrote:
             | Maybe? The closest analog in Excel would be to define a VBA
             | function call it from a sheet, go back to the VBA editor,
             | change the definition and see the function be run
             | automatically everywhere with the new code. That does not
             | happen, I just tried
        
           | jedberg wrote:
           | For the tab completion, I think I tried typing the beginning
           | a function name (hello) and then hit tab and it didn't
           | complete.
           | 
           | > Yeah, code changes don't rerun the affected cells. It is
           | something we've debated, and maybe we should? It feels like
           | it could also cause unexpected things to happen. Hmm. Maybe
           | we should though.
           | 
           | You know your customers better than I do. :). But generally
           | when I use spreadsheets I expect bidirectional connections
           | and updates.
           | 
           | > This is tricky. Spilling from a function, doesn't fill the
           | cells and then append does. Open for suggestions on how to
           | make this better.
           | 
           | I honestly don't know. Depends on your user's use cases. Even
           | just for me I can see cases where I would want the cell
           | updated and others where I wouldn't. Heck maybe even just ask
           | the user "Do you want to update the cell?"
           | 
           | > We call the OpenAI API - they don't always answer these
           | days :-(
           | 
           | That's fine, just tell the user it failed. :)
        
           | nvln wrote:
           | > We call the OpenAI API - they don't always answer these
           | days :-(
           | 
           | Yikes. That's worrying. Is this rate limiting or API timeouts
           | that need some retry logic wrapped around?
        
       | MaxPengwing wrote:
       | This looks very useful, I can see this being used in schools and
       | universities for a plethora of studies.
       | 
       | However I am European in EU, and while your Privacy policy is
       | eminently readable, I don't think it can be used in EU school
       | settings as you do not specify who your 3rd party service
       | providers ar, what their privacy policys are or where data is
       | hosted (thank you for making it human non lawyer readable).
       | 
       | Schools/Universities in EU are not allowed to use services that
       | are not hosted in EU.
       | 
       | Im not sure if you use Google Analytics but please know that the
       | legality of using GA in EU has been questioned in both
       | Netherlands and Ireland. I'm not up to speed on the proceedings
       | but I believe the Netherlands found it to be in violation of GDPR
       | since the data was not stored or processed in EU. EDIT: Add
       | Austria, France, Italy, Denmark, and now Finland to the list...
        
         | dosinga wrote:
         | Oh, thanks. That's very helpful. Schools do seem like a good
         | area to roll this out and in fact we did a pilot with a Swiss
         | university (I know, not in the EU). We should look into this.
        
       | WillAdams wrote:
       | Why choose this over pySpread?
       | 
       | https://pyspread.gitlab.io
        
         | jones1618 wrote:
         | That looks useful. Of course, one big difference is Neptyne is
         | "in the cloud" versus an app you have to do download.
        
           | dspillett wrote:
           | _> versus an app you have to do download_
           | 
           | For some, an advantage rather than just a difference.
           | 
           | Different strokes for different folks, of course.
        
             | michaelmior wrote:
             | > For some, an advantage rather than just a difference.
             | 
             | And for others, a disadvantage, rather than just a
             | difference.
        
         | dosinga wrote:
         | PySpread is really nice! However it is the Pythonic-ist
         | approach to spreadsheet imaginable. It makes no attempt to also
         | support the Excel way of working. Also personally I think
         | having an actual code pane and REPL integrated right into the
         | app makes it a lot easier to write and test code
        
       | slotrans wrote:
       | can it handle a million rows? 10M?
       | 
       | believe it or not this is my biggest problem with Sheets, and
       | while Excel does better it's still capped at 1M
        
         | idiotsecant wrote:
         | Once you hit a million rows wouldn't it be easier to just make
         | it a proper database? Maybe there are some use cases where this
         | is not true, but I can't imagine what they are.
        
         | tomxor wrote:
         | Since manually scrolling through 10M rows is not likely... at
         | that point isn't it better to just use an SQL DB rather than a
         | spreadsheet?
         | 
         | SQlite could be enough, and it's comparable to a spreadsheet in
         | that it is well suited to a single-file single-user local-DB
         | scenario, yet can still handle large quantities of data.
        
         | dosinga wrote:
         | Currently it cannot. However we find that many millions of row
         | use cases don't actually need those millions of rows to be in
         | the spreadsheet - you just want to be able to process that
         | amount of data. So connect to a SQL database from the python
         | side of things, read in 10 million rows, aggregate them into
         | something succinct and write that to the spreadsheet is to sort
         | of thing we're seeing.
        
       ___________________________________________________________________
       (page generated 2023-02-16 23:00 UTC)