
EtherCalc: Open-source web spreadsheet - sheetjs
https://ethercalc.org/
======
kentonv
EtherCalc is really impressive! We actually have this running on Sandstorm.io
and were planning to release our port later this week. You can try it now as
follows:

1) Click "start the demo" at:
[https://demo.sandstorm.io](https://demo.sandstorm.io)

2) Open this link to install EtherCalc:
[https://demo.sandstorm.io/install/100cdd4f5eb0ad2110b98a81c5...](https://demo.sandstorm.io/install/100cdd4f5eb0ad2110b98a81c5bf439d?url=http://sandstorm.io/apps/ethercalc.spk)

(You can also install on your own Sandstorm server, if you have one, by
substituting it for demo.sandstorm.io. Instructions for setting up your own
server are at [https://github.com/sandstorm-
io/sandstorm](https://github.com/sandstorm-io/sandstorm) .)

Thanks to Jake Weisz for this port, and of course the EtherCalc people for
developing this and making it open source in the first place.

~~~
gwillen
I swear to god, Kenton, the first thing I thought of when I saw this link was
"hmm, I wonder if they would port this to Sandstorm."

~~~
ocdtrekkie
The way it was already designed, it was incredibly easy to port to Sandstorm.
Like, I think I changed three or four lines of code tops to get it working?

------
tekacs
Looking at the GitHub[1] or LinkedIn[2] pages for the repository author on
this project is a good reminder-to-self (for me, at least) both that:

\- time and dedication/enthusiasm can enable some pretty great things in a
whole range of different circumstances [+]

\- there are a lot of interesting opportunities for work (and people doing
interesting things) out there in the world than that which is readily talked
about

[1]: [https://github.com/audreyt](https://github.com/audreyt)

[2]:
[http://www.linkedin.com/in/tangaudrey](http://www.linkedin.com/in/tangaudrey)

[+]: some would at this point say 'and so we should not pre-judge' \- pre-
judging can be a helpful general-purpose heuristic, though - more useful
advice might be to avoid 'final judgement' of anyone

~~~
sheetjs
Audrey also wrote a very nice section in the Architecture of Open Source
Applications: [http://www.aosabook.org/en/posa/from-socialcalc-to-
ethercalc...](http://www.aosabook.org/en/posa/from-socialcalc-to-
ethercalc.html)

~~~
rektide
_" So we created webworker-threads, a cross-platform implementation of the Web
Worker API for Node.js."_

The AOSA article is a great read. Further, the result of that EtherCalc work
is one of the coolest projects around- an implementation of Web Workers for
Node.js using native threading:

 _" This module provides an asynchronous, evented and/or continuation passing
style API for moving blocking/longish CPU-bound tasks out of Node's event loop
to JavaScript threads that run in parallel in the background and that use all
the available CPU cores automatically; all from within a single Node
process."_

[https://github.com/audreyt/node-webworker-
threads](https://github.com/audreyt/node-webworker-threads)

------
comeonnow
I'm really impressed, by far the best open source web based implementation of
spreadsheets that I've come across.

An area which I'm struggling with is the formatting; and this was because I
didn't see the 'Save to: A1:A20' at the top, I expected the button to be below
or expected it to save when I changed the values.

Other than that, it's really good!

~~~
audreyt
Nice catch, thank you!

I've styled the cell/sheet save buttons so it stands out better as of
[https://github.com/audreyt/ethercalc/commit/1e819ebf](https://github.com/audreyt/ethercalc/commit/1e819ebf)
and released to npm as of 0.20140804.1 — Shift-refresh on the ethercalc.org
site to see the highlighted buttons in the format tab.

------
sidcool
This is impressive, very smooth and responsive. Most importantly, it is open
source. I am going to dig through the code like a gold digger. Thanks!

------
jvdh
Please, please, please integrate this into OwnCloud?

OwnCloud already has document support, but with this it would make it a killer
Google Docs replacement.

~~~
ocdtrekkie
You can't really integrate this into ownCloud well, since it's an entirely PHP
based piece of software. And a lot of places ownCloud currently works
(shared/reseller hosting) won't work with EtherCalc.

Check out sandstorm.io though. (There's another comment about it above.) I got
EtherCalc working on it pretty easily, and I think it really IS a killer
Google Docs replacement. :D

------
gboudrias
While the "Ether" functionality is awesome, I don't like personally like
SocialCalc. I was hoping for something better to be honest, as ergonomy-wise
it's just years behind.

The main problem for our use case is that you can't have multiple sheets for
one "document" (as far as I can tell). There are other small but important
problems such as the weird formatting interface. All things combined make
SocialCalc about twice as slow as LibreOffice for me so far. I still have to
use it since there's nothing better at the moment, but I'm not really happy
about it.

~~~
audreyt
Yes, we really need UX assistance. :-)

Tracy Ruggles helped getting a better formatting UI (modeled after CKEditor at
that time) for Socialtext — screenshot at [https://www.socialtext.net/help-
en/socialcalc_move_source_ex...](https://www.socialtext.net/help-
en/socialcalc_move_source_example) — but something more touch-friendly and
intuitive (post-bootstrap) would be awesome.

Please get in touch on ethercalc repo or write me if you know a UX designer
interested in revamping our UI!

~~~
rmorabia
I'm not sure if this is very helpful, but my two big issues were the lack of
pages, of course, but mostly--the lack of text formatting for each cell. It
makes the actual spreadsheet hard to read.

I've still going to use it because yes, it's very necessary to have a social
spreadsheet platform that is open-source and that you can host on your own
servers. Thanks for the work you put in.

~~~
audreyt
Glad you like the social collaboration part!

Re UI, each cell supports basic WikiText, and clicking the "Format" tab next
to the default "Edit" shows the Format:Text dropdown that one can change to
"HTML" and then click the top-left "Save to: CellCoordinate". That allows
arbitrary HTML in cell presentations.

Alignment, font, etc can also be adjusted in the same tab.

If you'd like to use HTML formatting for all cells by default, the third
button on that tab "Show sheet settings" allows sheet-wide formatting
customizations. Hope this helps!

------
theophrastus
stupid naive user (on linux xmonad firefox) question:

    
    
      "Drop a CSV or an Excel XML (.xlsx) file here to import it"
    

what sort of left-mouse/middle-mouse or ctrl-C/ctrl-V does "Drop" refer to in
the above?

~~~
Sir_Cmpwn
Drag and drop a file from a file manager to the browser. Thunar is a pretty
lightweight file manager that supports drag and drop.

~~~
theophrastus
Thank you! (i feared as much)

~~~
Sir_Cmpwn
Send them a pull request that adds an option to click to browse for a file,
too.

~~~
audreyt
Yup, making the "drop" a click-to-upload FileReader handler on line 214 would
be great. The place to patch is here:
[https://github.com/audreyt/ethercalc/blob/master/start.html#...](https://github.com/audreyt/ethercalc/blob/master/start.html#L215)
— Looking forward to pull requests!

------
qmaxquique
Hey! I just made a Terminal.com snapshot with EtherCalc. You can take a look
on it at:
[https://terminal.com/tiny/Kw4sdNWtUu](https://terminal.com/tiny/Kw4sdNWtUu)

------
VikingCoder
"Download as PDF" would be extremely nice.

