This document provides an overview of the history and development of spreadsheet software, beginning with VisiCalc in 1979 and continuing through various iterations including EtherCalc, wikiCalc, SocialCalc, and Sheetnode. It discusses the goals and technical approaches of these different spreadsheet platforms, including making spreadsheets collaborative, web-based, and supporting large numbers of cells. The document also covers the use of spreadsheets on the OLPC project and integration with mesh networking capabilities. Overall it traces the evolution of spreadsheets from early desktop programs to modern web-based collaborative applications.
33. 1978 ā 1979
A B C D
1 10 20 30
2 =SUM(A1,B1,C1) 60
34. 1978 ā 1979
A B C D
1 10 20 30
2 =SUM(A1,B1,C1) 60
Bob & Dan
35. 1978 ā 1979
A B C D
1 10 20 30
2 =SUM(A1,B1,C1) 60
ā£ Dan prototypes in BASIC
Bob & Dan
36. 1978 ā 1979
A B C D
1 10 20 30
2 =SUM(A1,B1,C1) 60
ā£ Dan prototypes in BASIC
ā£ Bob codes in 6502 ASM
Bob & Dan
37. 1978 ā 1979
A B C D
1 10 20 30
2 =SUM(A1,B1,C1) 60
ā£ Dan prototypes in BASIC
ā£ Bob codes in 6502 ASM
ā£ 700,000 copies in 6 years
Bob & Dan
38. 1978 ā 1979
A B C D
1 10 20 30
2 =SUM(A1,B1,C1) 60
ā£ Dan prototypes in BASIC
ā£ Bob codes in 6502 ASM
ā£ 700,000 copies in 6 years
ā£ The !rst āKiller Appā Bob & Dan
61. wikiCalc, 2005
ā Plain text, HTML & Wiki syntax
ā References cells on other servers
ā Keeps all operations for auditing
62. wikiCalc, 2005
ā Plain text, HTML & Wiki syntax
ā References cells on other servers
ā Keeps all operations for auditing
ā Revert to any revision
63. wikiCalc, 2005
ā Plain text, HTML & Wiki syntax
ā References cells on other servers
ā Keeps all operations for auditing
ā Revert to any revision
ā Open Source! (GPLv2)
165. WebSocket Channels
SpreadsheetControl
multiserver.pl
Web::Hippie
ScheduleScheetCommand
set A1 value n 2046 Plack
RenderSheet
Feersum
EV/libev
166. WebSocket Channels
SpreadsheetControl
multiserver.pl
Web::Hippie
ScheduleScheetCommand
set A1 value n 2046 Plack
RenderSheet
Send Feersum
EV/libev
167. WebSocket Channels
SpreadsheetControl
multiserver.pl
ScheduleScheetCommand
Web::Hippie Relay
set A1 value n 2046 Plack
RenderSheet
Send Feersum
EV/libev
168. WebSocket Channels
SpreadsheetControl
multiserver.pl
ScheduleScheetCommand
Web::Hippie Relay
set A1 value n 2046 Plack
ScheduleScheetCommand
RenderSheet
Send Feersum set A1 value n 2046
(isRemote = true)
EV/libev
RenderSheet
185. YAPC::NA, 2006
āI think, but I cannot prove, that by
the next year JavaScript 2.0 will
bootstrap itself, complete self
hosting, compile back to JavaScript,
and replace Ruby as the Next Big
Thing in all environments. ā
187. YAPC::NA, 2006
āJavaScript will become the common
backend for all dynamic languages,
and so you can write Perl to run in the
browser, on the server, and inside
databases, all with the same set of
development tools. ā
216. Zappa: Lazy Node.js
āIf you can describe it
in 495 characters,
why on earth should
Maurice
it take 879?ā
Machado
zappajs.org
217. require('zappa') -
@view layout: -
html = body = @body
@get '/': - @render 'index'
@view index: - for name, value of {
wiki: Wiki to HTML
html: HTML to Wiki
}
form method: 'post', =
p = textarea {name}
p = input {type: 'submit', value}
218. require('zappa') -
@view layout: -
html = body = @body
@get '/': - @render 'index'
@view index: - for name, value of {
wiki: Wiki to HTML
html: HTML to Wiki
}
form method: 'post', =
p = textarea {name}
p = input {type: 'submit', value}
219. require('zappa') -
@post '/': - -
@view layout:
if @data.wiki? @body
html = body =
@send w2h @data.wiki
@get '/': - @render 'index'
else if @data.html?
@send h2w @data.html
@view index: - for name, value of {
else redirect '/'
wiki: Wiki to HTML
html: HTML to Wiki
}
form method: 'post', =
p = textarea {name}
p = input {type: 'submit', value}
263. EtherCalc
The person who associated a work
with this document has dedicated
the work to the Commons by
waiving all of his or her rights to the
work worldwide under copyright law
and all related or neighboring legal
rights he or she had in the work, to
the extent allowable by law.
Works under CC0 do not require
attribution.
ethercalc.tw