Show HN: Dtab – Spreadsheet for Data Science
dtab.io
dtab.io
One thing that I am hoping for however is some kind of notebook-like interface for doing small, ad-hoc data analysis projects. This looks fairly close to that.
Mathematica pioneered "the computational notebook" concept, and now we have similar stuff with R/Rstudio, IPython/Jupyter, matlab, and jmp. Those are all really nice and powerful, but they're somewhat large in scope and very ambitious.
It would be soooo cool to be able to just make notebooks that contain spreadsheets, related manipulation and analysis code and also text that can render to well-formatted html/pdf documents with really nice tables.
This tool looks like it can get there... if it can develop the ability to render documents sort of like Knitr for R.
You can also use those spreadsheets as input for pieces of code so you perform some analysis on their data.
--
[1] - http://orgmode.org/
How about providing numeric cell referencing, jQuery-style:
$(1, 2) // row 1, col 2
Like it's done here: https://github.com/hliyan/magpie/blob/master/lib/gasp.gsEverything about Pandas, IPython(Now Jupyter) and R (And the other data languages) are 100% about performing functions.
Personally, I'm comfortable writing Python, but I bet you'd see more adoption for non-programmer academics who still need to work with data.
Look at Open Refine you might really like it.
http://lemire.me/blog/archives/2014/05/23/you-shouldnt-use-a...
Another shortcoming of spreadsheets is that they don't solve what I consider to be the Fundamental Problem of Programming: How to keep your sanity when your project gets bigger than one screen or one page. Of course programmers have lots of ways to deal with this, by creating named abstractions, subroutines, and so forth. It's why we can write million line programs today. But how it's solved in Excel seems incredibly clumsy by comparison. Of course you can adopt the conventions of programming by using Visual Basic, but that seems to occur quite rarely.
But an edit-able tabular data array (that was also accessible programmatically) would be really super.
import pandas as pd
df = pd.DataFrame() ...loads data...
def modify_column(x): """ modify x"""" return modified_x
df['column_name'].apply(lambda x: modify_column(x))
And, if I understand correctly, this could be rolled into something like Jupyter. Which would be awesome!
I noticed that you're using a web-worker, does all the heavy lifting happen there and the main thread is used for purely rendering?
I'm noticing some lag when I just press enter into a cell twice (once to get into edit, and then again to get out). Any idea what's going on there (I'm interested technically)?
No editbox for the contents of the currently selected cell? (I have to double click to see the formula)
One of the examples suggested I use dl.stdev(D2:D65). I think it actually meant D5, but in any case I noticed that it computed the stdev as if empty cells had zeroes in them, rather than ignore them which would be more the norm with spreadsheets.
I do like the idea of being able to import random javascript, could be very handy.
edit: also the drop down menu headings seem to stay highlighted when you click off them, but you probably knew that. 2nd edit: oh I see, it's if I click off them onto a blank part of the window
{"_id":"560ee464ba6b14a61c74de66","name":"Untitled","data":null,"ownerId":"560ee461ba6b14a61c74de65","javascript":"","__v":0,"opened":"2015-10-02T20:09:09.119Z","modified":"2015-10-02T20:09:08.569Z","created":"2015-10-02T20:09:08.569Z","externalLibraries":[]}
how are you doing that ?
Use Javascript to replace vba in excel
http://blogs.msdn.com/b/officeapps/archive/2013/03/18/excel-...
Use python to replace vba in excel
Also, I know know of plenty of financial institutions that have mod'd Excel with Add-ins to the point where the Worksheet integrity is better than 95% of the RDBMS' I've worked with. Version controlled, full audit trails, access control lists, type validation...
Hell out of the box, you can get an out of the box Excel + SQL Server BI to essentially make an off-the-cuff Line of Business app, completely sync'd, with a Silverlight front similar to (this)[http://www.infragistics.com/uploadedImages/Content/PRODUCTS/...]
- (click) Clean text using regular expression
- Load external lib: https://vega.github.io/datalib/datalib.min.js
- Impossible (because there is no 'load external lib' functionality)What makes this better than Excel (VBA, Python, probably half of the languages on the planet.), Libre Office, Google Spreadsheets, etc., aside from Javascript ? The only point I could see would be integrating this into a page, which is of dubious utility.
But it's branded as a "new kind" of software, so it must be good :^)
Helpful criticism is fine. Asking a question is fine (a real question, not a gotcha one designed to make someone look bad); for example, one could ask "what do you mean when you say this is a new kind of spreadsheet?" Pointing out similarities to other work is fine. All we want to avoid is being dismissive. Since the line isn't obvious (especially to a million readers), simply err on the side of not being.
On HN, new work doesn't need to be useful, just alive. One can't always predict what will turn out to be useful anyhow.
Everybody showing new work deserves a minimal baseline of respect here. If you know more and have done more than someone else has, that's great. That's an opportunity to teach and to share, not put them down.
Edit: since "new kind of spreadsheet" is arguably a bit baity we've changed to the HTML doc title.
But as soon as you put that data into an Excel document and hit Save, it's outdated. Somewhere, somebody in the office has a .xlsx file on their C: drive with the data you need, but that doesn't help you much, does it? Or somebody puts the data into a spreadsheet and emails it to everybody in the office, then a few people make some changes and email again, and now you've got 15 different versions of the same spreadsheet floating around and nobody knows which one is the latest and most truthful.
Or you put that interface on a web page connected to a shared data source and all of those problems disappear.
There's another nuanced advantage to this kind of tool, however: the ability to perform "reproducible" analysis.
With an excel spreadsheet, the person doing the analysis typically pulls in some data (usually by copy/paste), and then performs a series of manipulations on it. These manipulations are NOT recorded. A the end of the analysis the author sends the spreadsheet in an email or maybe copies the spreadsheet into the body of an email. Recipients, if they're going to evaluate the analysis have a lot of work to do over and aren't necessarily able to determine what, exactly, was done to the data.
Something like this puts everything into a console, javascript libraries, and tables-- as long as the author manipulates data from the console and the functions, it should be possible for someone to follow what was done to the data, reproduce results, and go further with the analysis.
I have created summary of comparing spreadsheet with web application using online database at the following link. Major items are security, multi-user experience, encryption/decryption of sensitive data, auditing/change-history, workflow-requirements etc. For simple work in a smaller team environment spreadsheets work fine.
https://mydataorganizer.com/MyDataOrganizerBlog/Employees_HR...
What does this product have that fixes the problem you're talking about here? How does working in a spreadsheet with javascript net you any better benefit than working with Excel with respect to obsolete sheets?
Excel works just fine with dynamic data via SQL and Jason via URL.
You can also embed it as a runtime object in HTML.
But what I can do is provide them with an easy interface for interacting with that data directly, and give them the option to "save" their results within the context of those interactions so that they can share a simple link instead of a static file.
As for embedding runtimes in HTML, ActiveX is dead and I do not mourn it. Our office has finally decided to standardize on a modern web browser, and I couldn't be happier about that.
Creating a better solution is a lot easier than teaching everyone what a database is and why it's useful.
It literally solves nothing.
I can already imagine several good uses for this software in my workplace, so saying it "literally solves nothing" is "literally false".
Either way calling it a "new kind" seems a stretch unless it's not as well described as it appears to be.