Hacker News new | past | comments | ask | show | jobs | submit login
EtherCalc: Open-source web spreadsheet (ethercalc.org)
245 points by sheetjs on Aug 3, 2014 | hide | past | favorite | 26 comments



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

2) Open this link to install EtherCalc: https://demo.sandstorm.io/install/100cdd4f5eb0ad2110b98a81c5...

(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 .)

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.


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."


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?


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

[2]: 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


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


"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


Just read the following snippet from her Linkedin Profile.

"I'm entirely self-educated, having quit the school system at 14."

Kudos on achieving so much!


audreyt was also the principal contributor to pugs [1], a Perl 6 implementation written in Haskell (partly).

[1]: https://github.com/perl6/Pugs.hs


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!


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 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.


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!


Please, please, please integrate this into OwnCloud?

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


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


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.


It seem to me a web app like this enables a re-think of the file and sheets organizational structure, which is really a compromise due to the limitations of a local file based application. It's simulating being able to link different spreadsheets together by putting them all in the same file.

For a web app, linking to other independent sheets should be the way to go. You'd need a convenient way to define links to other sheets (perhaps defining an alias for links to the other sheet), browse linked sheets and open them in another browser tab. Browsers already have multiple tabs, so there's no need to have a tab based structure for this inside a browser tab.

Just throwing it out there, I've not thought the consequences through really, but it seems a shame to just blindly recreate a file based metaphor.


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... — 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!


One of these days (or months) I'll try to take a look at it. The first things i'd like to do are:

* understand how event bubbling works (so that you can put something more complex than a html button in a html cell, maybe a select menu)

* disable dynamic rendering (where cells get reinstantiated upon each redraw)

* possibly implement both by using a specific th cell subtype

By the way I've been able to bake in extended excel formula support from the formulajs project by hacking inside the SocialCalc.CalculateFunction function.. Bit of a kludge but it's handy to support some of them more arcane xl functions.


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.


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!


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?


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


Thank you! (i feared as much)


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


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#... — Looking forward to pull requests!


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


"Download as PDF" would be extremely nice.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: