
Blockspring: Do anything in a spreadsheet - robzyb
https://a16z.com/2015/07/29/blockspring/
======
minimaxir
The "Suddenly any financial analyst in your company, _given the right
permissions_ " comment is telling. The companies that would be most likely to
use a service like Blockspring would be the types of companies that would
_never_ be willing to give and trust data access and processing to a random
third party. The Privacy policy does not help alleviate these concerns (tl;dr:
we keep everything). It is also unclear if the business offering
([https://www.blockspring.com/business](https://www.blockspring.com/business)
) offers self-hosting.

Case in point, one of the example scripts in the blog post
([https://open.blockspring.com/pkpp1233/get-amazon-new-
price-b...](https://open.blockspring.com/pkpp1233/get-amazon-new-price-by-
product-id) ) requires you to input a _Amazon Product Access Key_ and a
_Amazon Product Secret Key_ as parameters.

~~~
lmg643
I recently discovered the joys of ExcelDNA, which lets you do spreadsheet
extensions using C#. One of the first things I did was spin up a plugin that
allows users to request data elements from CSV files hosted on a server,
essentially a giant remote VLOOKUP. The product uses TCP/IP so it can run
anywhere - client self-hosted, or remote over the internet. Throughput was
pretty high - 70k elements per second over a network. This, and I'm a novice
programmer.

So I look at Blockspring, and my first thought is that I don't quite get it,
although if they ran on proprietary, internal data sources, it would make
sense. (Do people really download Amazon listings into Excel? I suppose). Or,
if they could get a company like Factset or Bloomberg to let them do direct
data pulls from their databases, then you'd get masses of high quality data to
analyze.

In terms of the core "into excel" functionality - maybe I am understating my
novice capabilities, but ever since I discovered ExcelDNA it seems like you
can do almost anything with Excel and C#.

~~~
barretts
> if they could get a company like Factset or Bloomberg to let them do direct
> data pulls from their databases

this exists. bloomberg has a plug-in that lets you pull much of its data
directly into excel using normal-looking formulas. the catch is you have to
pay $20,000/year.

------
sanowski
[https://www.blockspring.com/about/privacy](https://www.blockspring.com/about/privacy)

User Content. We collect your personal information contained in any User
Content you create, share, store, or submit to or through the Service, which
may include photo or other image files, written comments, information, data,
text, scripts, graphics, code, and other interactive features generated,
provided, or otherwise made accessible to you and other Users by Blockspring
via the Service in accordance with your personal settings.

~~~
ChrisClark
Sounds right. They need permission to display your files back to you, or to
others if you want them to.

------
onion2k
This is pretty awesome, and it's exactly the sort of product that makes me
wonder if the "in the future everyone will need to code" predictions are going
to pan out. With better tools that can 'intelligently' help a non-coder[1] use
APIs and algorithms, the coding bit of coding becomes somewhat redundant.
We'll still need the problem solving and analytics skills, and some of the
organisation but actually sitting and typing in syntax could well vanish. It's
feasible that a suitably easy to use programming language would make coding so
trivial it actually stops being a 'skill', in the same way that wordprocessors
and printers have made copy typists redundant.

[1] As a caveat to that I would also argue that a competent Excel user
actually is a coder, just with a higher level macro language than most other
developers, but still.

~~~
digi_owl
This gets me thinking.

I wonder if why spreadsheets become something like programming-lite is that it
allows for rapid prototyping and iterating.

This because the user can manipulate the content of variables directly, and
watch the result change as they do. This then allows them to test smaller
parts of the logic before aiming the result at another piece of logic and thus
building a larger structure piece by piece.

The problem with using spreadsheets for this is that as you move stuff around
the logic parts break.

So what if we had something like a variable grid and a logic sheet? So that
any variable read or written was up in a grid like that of a spreadsheet, for
easy reference and manipulation, while the logic was of somewhere else. Thus
moving things around to make room for more logic didn't influence the
variables etc.

And to take a step back, i wonder if this ease of prototyping was one of the
things that made micro-computers so potent. This because they booted directly
into a Basic interpreter (prototyping), while at the same time there was no
persistent storage you could screw up with crap code (just flick the power and
get back to it).

~~~
notduncansmith
I think flow-based programming was supposed to be something like that. As
spreadsheets show us, we haven't really figured out how to scale this approach
to more complex applications.

~~~
swsieber
Spreadsheets show us that 2d grids and a lack of other programming concepts
make it very hard - it's a distinct subset of flow programming:

A unit of code an take an arbitrary number of inputs from a 2d grid and give
you 1 output. Real Flow programming lets you have multiple inputs and outputs
and aren't constrained to 2d. I think the biggest constraint is representing
the dimensionality and interaction ... but we have classes and deep package
structure in Java, so it's probably more of a effect than cause, but still a
blocker to wide adoption.

------
Nate75Sanders
The code in spreadsheets is always a 2nd-class or 3rd-class citizen. It makes
it ridiculously hard to both test and review and there are essentially no good
checks on what output you're getting from the input.

I've worked in orgs where C-level execs without a technical background were
writing crazy complicated spreadsheets and nobody had any idea how they worked
or if they were correct. When you bury the code, you bury the necessary
processes around the code.

This is dangerous.

~~~
rahimnathwani
Why is everyone hating on Excel, and spreadsheets in general? They are such
easy tools for creating, displaying and auditing calculations (like financial
models), manipulating rows of similar data, and generating regular charts and
reports.

Sure, their ease of use makes them popular with, and accessible to, people who
don't think like we do. This doesn't mean they are bad tools for everyone.
Python's duck typing may horrify Java programmers, but it doesn't mean that
all Python code is bad or has type errors.

~~~
AdieuToLogic
> Why is everyone hating on Excel, and spreadsheets in general?

Speaking for myself, because spreadsheets are intrinsically "information
silos." Traditionally, this has been due to the data being locked up in the
spreadsheet's proprietary files. This offering only exacerbates the issue by
incorporating data from external sources which lack data management guarantees
available in other solutions.

> They are such easy tools for creating, displaying and auditing calculations
> (like financial models), manipulating rows of similar data, and generating
> regular charts and reports.

When their use is restricted to this, spreadsheets do provide value. The
problem is that many times the spreadsheets start off as a data integration
scratch pad (as it were) and then become the "system of reference."

Used as a tool which enables one-off types of value it's hard to argue against
them (so I won't :-)).

> Python's duck typing may horrify Java programmers, but it doesn't mean that
> all Python code is bad or has type errors.

This is a false dichotomy[1], or a straw man[2] if you prefer, as both Python
and Java are general purpose programming languages.

Excel is not a general purpose programming language. It is not a programming
language. It is a program which allows people to use a _very specific DSL_ to
benefit from it in novel ways. And when they do, any chance of autonomous
integration is lost.

1 - [http://www.philosophy-index.com/logic/fallacies/false-
dilemm...](http://www.philosophy-index.com/logic/fallacies/false-dilemma.php)

2 -
[https://en.wikipedia.org/wiki/Informal_fallacy](https://en.wikipedia.org/wiki/Informal_fallacy)

------
Dwolb
I think this concept has far reaching effects on optimizing white collar
operations if you're able create social features based on the data.

I'd want to know who else in the company is using this data? Who has used it
on the past? Have they done work that is similar or even a duplication of the
work I'm doing?

These information management issues are currently hidden, but result in lost
productivity. Just this past month my friend at Google found out another
person had already done his analysis and he could learn from the previous
work. Just knowing someone had previously used the same dataset could have
saved him 7 weeks of work.

~~~
minimaxir
> _Just knowing someone had previously used the same dataset could have saved
> him 7 weeks of work._

Information about data is not black-and-white in the corporate world. Even in
the same company, internal data is usually on a need-to-know basis, with
necessary NDAs. A service that tells you who else is using the data would
defeat the purpose.

As an extreme example, what would happen if a service allowed data-sociality
with HIPPA-protected data? Not good things.

~~~
rjurney
I don't think open access lists for HIPAA data would be a bad thing. Why do
you? In fact, it sounds like a great idea. Shine some light on who is
accessing what data.

~~~
dublinben
The fact that a certain specialist has accessed a patient's records would
reveal something about their health. Even the frequency of general access
conveys information about your health.

~~~
rjurney
I'm thinking more internally, non-doctor users.

------
phantom_oracle
A nice hack for someone who wants to use this tool (granted that it is free
for non-corporate customers):

If you are a data-scientist and would like to extract public-data from 1 of
the APIs they provide, you can use this tool, pull that data (take it in raw
form) and then export as both a spreadsheet and as CSV.

You can then use the CSV with your data-analysis toolset (Python probably has
support), and voila! You've saved yourself the headache of wrangling APIs.

Apart from that, I'm going to go with the opinion of the other comments made
that you probably don't want to be putting your private Excel info on another
acquisition-driven startup.

------
Havoc
I doubt anyone with hardcore spreadsheet data would trust a third party
plugins. My employer rolls most software (incl Excel plugins) in-house for
that exact reason - can't let outsiders near the data.

------
state
This is such an interesting angle on making technical tools more accessible. I
can't say I have a use for including functions in spreadsheets — but when I
imagine where this could go it's exciting.

------
anonfunction
[https://open.blockspring.com/browse](https://open.blockspring.com/browse)

For anyone who wants to view the actual blockspring UI/UX along with what APIs
are available.

I personally prefer seeing the product rather than reading marketing
materials. In many cases (not specific to blockspring) they're completely
different in terms of design, messaging and stated features.

~~~
anonfunction
As an early user of blockspring I was excited to login and add another one of
my APIs (bitcoin related) that would be perfect for having in spreadsheets.
Unfortunately I couldn't find any obvious way to add an API. Naturally I
hacked it by going to one of my existing APIs (thanks google, I couldn't find
a URL from the UI otherwise) and cloning it. Here's the UI of the create API
page[1] for anyone who's interested.

[1] [http://i.imgur.com/wQoyhT1.png](http://i.imgur.com/wQoyhT1.png)

Edit: You can create new APIs on blockspring by going directly to a route[2]
which still works. I saw Alexa had an API but it needed authentication
credentials, and since I already had found Alexa's undocumented API[3] I added
it to blockspring[4] just for fun.

[2]
[https://open.blockspring.com/blocks/new](https://open.blockspring.com/blocks/new)

[3]
[http://data.alexa.com/data?cli=10&url=news.ycombinator.com](http://data.alexa.com/data?cli=10&url=news.ycombinator.com)

[4] [https://open.blockspring.com/montanaflynn/alexa-
rank](https://open.blockspring.com/montanaflynn/alexa-rank)

~~~
orliesaurus
Wow great lenghts but in the footer you can just click "Create block" :)

------
spinlock
How does this differ from building plugins? Excel already has a programming
interface and I'm pretty sure you can script Sheets with python. Is it just
easier?

------
gnrlist
So they made PowerQuery that you have to pay for?

~~~
fiatjaf
You don't need PowerQuery when you can have full SQL inside Excel, and in a
very elegant way: [http://thingiequery.com/](http://thingiequery.com/)

------
le_clochard
There was Resolver One, which apparently got acquired by PythonAnywhere, which
allowed Python scripted spreadsheets. It was AWESOME when I tried it, but tad
too slow and no takers in the office because spreadsheets get passed around
and need to be verified/rerun by people who do not know any programming. Even
VBA at times.

Their OSS version is apparently still available at
[https://github.com/pythonanywhere/dirigible-
spreadsheet](https://github.com/pythonanywhere/dirigible-spreadsheet) (haven't
tried it.)

------
bliti
How much does this cost to use? I was not able to find a pricing page on their
website.

~~~
bfstein
$7/user/month for team of $50/user/month for enterprise (extra admin support
and training).
[https://open.blockspring.com/organization/setup](https://open.blockspring.com/organization/setup)

------
tarr11
Feels narrow and I don't see the payout.

"They just need an easier on-ramp to their internal database to do things like
comparing projected revenue to actual revenue in order to close out this
month’s financials."

This is a small gap. On one side, you have people copy-pasting CSV files into
excel and doing it one-off.

On the other side, you have specialized SaaS products for business workflows.
(Wouldn't you rather just use some accounting software to run your companies
financials, rather than muck around in Excel?)

In the middle, you have people writing either code or Excel Macros to automate
some of this. Looks like BlockSpring is meant to automate that group away.
Just having spent 3 minutes with blockspring, there's friction. (Log into this
service, fiddle with the parameters, clean up data, remove mess, etc)

I can see the IFTTT / Zapier comparisons but this is a lot more work and far
less reward. Those tools give immediate results.

At the end of my integration with Blockspring, I'm left with a table of data
that I STILL have to analyze in Excel.

~~~
sjg007
Huge market.. e.g. look at Domo. Same idea.

------
mizzao
Goldman Sachs already has a lot of financial and internal data available in
spreadsheet plugins via Slang, and it's generally very useful for financial
models (at least when I was there). This just seems like a way to generalize
that for the masses and for other types of data.

------
dpweb
Does everybody need to learn to code?

One's health is pretty important to one's staying alive - not everyone learns
to be a doctor.

Finance and accounting is the lifeblood of a business, not everyone learns to
be an accountant.

Everyone can do it, you should - no you must - do it too. I think it devalues
the profession.

~~~
morsch
Basic skills in medicine and accounting are useful to have and sort of
prevalent. I'm sure you put on a band-aid before. Basic skills in automating
certain computer tasks seem to be valuable to many people -- almost all office
workers, I'd wager.

I don't see how that devalues the profession. There's a huge difference
between what people can achieve using stuff like this and what I do every day.

Maybe basic skills in stuff like this will even translate to a better
appreciation of what professional developers do. A guy can dream...

~~~
vacri
When it comes to programming, 'putting on a band-aid' is analagous to
'entering user/pass credentials'. Yes, everyone can put on a band-aid, just
like everyone can log on to something. Neither take skill or understanding,
and both are 'just things you do'.

On a tangent, a great many people have positively woeful understanding of
biology. I think biology should be a mandatory subject in high school. After
all, the one thing that absolutely every human has and uses throughout their
entire life is their body; that can't be said of pretty much any other high
school subject.

------
serve_yay
You learn to code that way or you learn to code this way, either way you're
gonna pay the piper.

~~~
drumdance
I started learning to code via spreadsheets (anyone remember Borland Quattro
Pro?!)

------
fiatjaf
I don't think "anything" is a good term. Its good use cases are only of read-
only data. Reading (and preprocessing) data from your services/databases
inside a spreadsheet is quite awesome.

------
harryh
You've been able to do this in Google Sheets for years with a tiny bit of JS
programming.

~~~
fiatjaf
I tried, and it is impossible. Google Apps Script is awfully slow and limited.

------
normloman
No no no. People at my company already use spreadsheets where they don't
belong (in the place of databases, note taking apps, regular expressions, and
one time someone tried to do page layout with it). The last thing we need is
for these bozos to program with it. I see the need for an intermediate
entryway into programming (Hypercard), just don't tack it on to an already
bloated program like excel.

~~~
TeMPOraL
I think you need to sit down next to those "bozos" for a day or two and see
their actual workflow. I've seen and worked closely with people using Excel
instead of databases; hell, myself I used it as a map editor for a 2D game
(for page layout I prefer PowerPoint).

The reason Excel is so popular is not because non-coders are dumb. It's
because "tools" provided by IT department are usually piece of crap that makes
work more difficult for people using them. Take using Excel instead of
databases - why spreadsheet is better? Because it has easier data entry, and
it's free-form. When you need to modify your workflow to include some
additional notes, you don't have to write to the manager of the manager of the
internal procedures to maybe consider updating the schema somewhen before next
decade. You just add a new column and you're done.

I'm sure when someone creates a program that actually solves the problems
those people encounter every day, they'll gladly switch to using it. But it's
easier to say that users are stupid instead of actually caring about what
their needs are.

~~~
EvanAnderson
I don't think the users of spreadsheets are dumb. I think they don't have an
appreciation for organization of data to allow for efficient machine-
readability. Your use of a spreadsheet as a game editor shows that you're one
of the exceptions that proves the rule.

The free-form nature of spreadsheets, in my experience, almost always makes
for human readable repositories of data that are nearlyuseless from an
automated processing perspective. I cringe when I'm asked to export data from
a database into a spreadsheet for users to edit, because I know I'm going to
get back an unparsable mess that I'm going to have to invest time in to make
usable again.

The spreadsheet is, effectively, shifting the user's inability to understand
why data needs to be organized well off to a programmer (or some other grunt)
who ends up fixing all the data up. (Or, alternatively, nobody fixes it up and
the business ends up making bad decisions based on garbage data that came from
a spreadsheet that's a disorganized mess.)

Edit: Grammar.

~~~
danso
> _I don 't think the users of spreadsheets are dumb. I think they don't have
> an appreciation for organization of data to allow for efficient machine-
> readability._

Well said...it's that concept of machine-readability that is so core to
efficient data investigation and interoperability with other enterprises (such
as web apps)...theoretically, such a concept is learnable without a decent
jump into the computer science/programming waters...but honestly, I haven't
run into many lay persons who have figured it out well enough for themselves.

------
kuni-toko-tachi
I've yet to see a product that turns non software engineers into software
engineers. These types of products only make salespeople commissions and then
sit unused. Crystal Reports is a prime example. I've seen it sold many times
to people at companies who buy into the notion that software engineers can be
replaced by drag and drop tools. The people who buy into the sales pitch lack
the desire or discipline to learn it. Software engineering is difficult work
and requires patience, which is often lacking in people who think a half-assed
design document written in MS Word is anywhere equivalent to writing bug free
scalable code that needs to run 24/7.

------
curiousjorge
Can you explain the tech behind this? How do you go about building an excel
and google docs plug-in with custom formulas?

~~~
orliesaurus
A good starting point: [https://developers.google.com/apps-
script/quickstart/docs](https://developers.google.com/apps-
script/quickstart/docs)

~~~
curiousjorge
what about for excel?

------
anotherangrydev
>What is your exit strategy?

>Acquisition by Google.

~~~
bpodgursky
Please don't quote unless it's an actual quote.

~~~
anotherangrydev
>Please don't quote unless it's an actual quote. - bpodgursky

