
Show HN: Dtab – Spreadsheet for Data Science - dnprock
http://dtab.io/
======
angdis
I like!

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.

~~~
toomuchtodo
Have you seen AirFlow before? I hooked a data scientist friend up with it
dockerized, and he raves about it:
[http://nerds.airbnb.com/airflow/](http://nerds.airbnb.com/airflow/)

~~~
samstave
container image please

~~~
kornish
Thanks, Google (first result for "docker airflow"):

[https://github.com/puckel/docker-airflow](https://github.com/puckel/docker-
airflow)

------
hliyan
Quick idea:

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.gs](https://github.com/hliyan/magpie/blob/master/lib/gasp.gs)

------
donpdonp
while i dont have much of an opinion of js in a spreadsheet except "neat!",
the website design and text is spot-on in that I understood in an instant what
the project does! Kudos.

------
eloisius
I'd love to see Jupyter (IPython Notebooks) capable of this kind of thing.
It'd be awesome to be able to select a column of a Pandas DataFrame and apply
a function to it.

~~~
baldfat
Well capable? Yes Pandas can do that but I think what you are talking about is
you want a GUI tool?

Everything about Pandas, IPython(Now Jupyter) and R (And the other data
languages) are 100% about performing functions.

~~~
eloisius
Yeah, I mean more as a GUI enhancement. It might be outside the scope of
Jupyter, but I think it'd be neat to be able to treat DataFrames like a
spreadsheet.

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.

~~~
baldfat
I doubt we will ever see the abandonment of spreadsheets LIKE WE SHOULD.

Look at Open Refine you might really like it.

[http://lemire.me/blog/archives/2014/05/23/you-shouldnt-
use-a...](http://lemire.me/blog/archives/2014/05/23/you-shouldnt-use-a-
spreadsheet-for-important-work-i-mean-it/)

~~~
analog31
I'm of the same mind about Excel, which is why I don't use it any more. I
don't like anything where there are hidden layers of meaning that are easy to
overlook. I like Jupyter because everything is right there in front of you.

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.

------
sswezey
This is already possibly with Google Spreadsheets albeit this is a much nicer
interface.

~~~
niels_olson
> albeit this is a much nicer interface

And, if I understand correctly, this could be rolled into something like
Jupyter. Which would be awesome!

------
codezero
Looks neat, but currently getting a 503 error on one of the scripts in all the
examples: [https://rawgit.com/replit/jq-
console/master/jqconsole.min.js](https://rawgit.com/replit/jq-
console/master/jqconsole.min.js)

~~~
timdorr
It should be on cdn.rawgit.com in production:
[https://rawgit.com/](https://rawgit.com/)

------
OmarIsmail
Nice work!

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)?

------
polskibus
It's nice to see handsontable put to another good use! What other open source
libraries did you use?

------
nebulous1
A couple of things I noticed:

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

------
misiti3780
When i log in and view source I get back a little bit of json only

{"_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 ?

~~~
sangd
Try another refresh. What you're seeing is the sheet data only.

------
SixSigma
While I appreciate the idea....

Use Javascript to replace vba in excel

[http://blogs.msdn.com/b/officeapps/archive/2013/03/18/excel-...](http://blogs.msdn.com/b/officeapps/archive/2013/03/18/excel-
does-javascript-a-vba-developer-s-perspective.aspx)

Use python to replace vba in excel

[http://xlwings.org/](http://xlwings.org/)

~~~
iheartmemcache
Yeah it's not really "new". Lotus Improv was doing this 25 years ago, for
those of us old fogeys who remember. 1-2-3 was for the secretaries, Improv for
the power users.

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/...](http://www.infragistics.com/uploadedImages/Content/PRODUCTS/Silverlight_DV/Controls/Pivot_Grid/silverlight-
pivot-grid-silverlight-business-intelligence-dv.jpg)]

------
raymondgh
This is great! A lot of useful spreadsheet functions are really esoteric and
unintuitive. Would love to see this integrated with Google Sheets

------
comrh
Great UI. I wish it had some sort of import function that could take in the
Excel formulas and not just CSV data though.

------
akhilcacharya
I know a project doing something similar at MIT for finance called
AlphaSheets.

[https://founder.org/company/alphasheets](https://founder.org/company/alphasheets)

------
robochat
This reminds me a lot of pyspread -
[http://manns.github.io/pyspread/](http://manns.github.io/pyspread/)

------
akavel
The "About", "Documentation" etc. links at the bottom (footer) don't work for
me unfortunately; is it just me, or are they so for others too?

~~~
sangd
Sorry, those pages are not there yet. We're working to put in the those pages.
We got excited and decided to show the meat first. We'll have done ready soon.
If you'd like to contact us, go ahead and shoot us an email contact at dtab
dot io

------
markus2012
bug?

\- (click) Clean text using regular expression

\- Load external lib:
[https://vega.github.io/datalib/datalib.min.js](https://vega.github.io/datalib/datalib.min.js)

    
    
      - Impossible (because there is no 'load external lib' functionality)

~~~
sangd
You can go to Settings tab and load this file externally.

------
j2kun
Can I drop in any .js file I want that defines appropriate functions?

~~~
dnprock
Yes, you can load any JS library to call. Check out this example with
moment.js:
[http://dtab.io/sheets/560e138927b2d2da2c44fbce](http://dtab.io/sheets/560e138927b2d2da2c44fbce)

------
zaczac
is there any angular 1.2 bindings?

------
pikzen
Every single spreadsheet software has been able to do this for years, but
using Javascript makes it better amirite?

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.

~~~
Zikes
In a typical office environment, everybody knows how to work with
spreadsheets. They're a common interface and a great way to present and
explore tabular data.

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.

~~~
SixSigma
Im afraid your experience of workflow is stuck in the 90s

Excel works just fine with dynamic data via SQL and Jason via URL.

You can also embed it as a runtime object in HTML.

~~~
Zikes
My experience is stuck in the 90s, as are the coworkers that drive that
experience. Most of them refer to the Chrome browser as "the Google", I
haven't a snowball's chance in teaching them how to connect an Excel document
directly to a central data source.

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.

~~~
SixSigma
Just because your place of work doesn't follow best practice doesn't mean it
is not possible.

~~~
Zikes
I didn't say it wasn't possible, but in my environment it is not as feasible
as the alternative.

Creating a better solution is a lot easier than teaching everyone what a
database is and why it's useful.

~~~
SixSigma
Colaborative spreadsheets using Javascript is not the answer

~~~
Zikes
It's not _your_ answer, and that's okay.

~~~
SixSigma
If you put this product in front of your office colleagues, how much traction
would it get ?

