top | item 9969890

Blockspring: Do anything in a spreadsheet

170 points| robzyb | 10 years ago |a16z.com

78 comments

order
[+] minimaxir|10 years ago|reply
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 ) 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... ) requires you to input a Amazon Product Access Key and a Amazon Product Secret Key as parameters.

[+] lmg643|10 years ago|reply
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#.

[+] fiatjaf|10 years ago|reply
These are not normal parameters, they are "Secrets", a special kind of parameters that are saved internally in Blockspring and automatically applied to functions that use them, after the account owner has set them.
[+] sanowski|10 years ago|reply
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|10 years ago|reply
Sounds right. They need permission to display your files back to you, or to others if you want them to.
[+] onion2k|10 years ago|reply
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|10 years ago|reply
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).

[+] Nate75Sanders|10 years ago|reply
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|10 years ago|reply
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.

[+] Dwolb|10 years ago|reply
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|10 years ago|reply
> 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.

[+] phantom_oracle|10 years ago|reply
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|10 years ago|reply
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|10 years ago|reply
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|10 years ago|reply
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|10 years ago|reply
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

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

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

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

[+] spinlock|10 years ago|reply
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|10 years ago|reply
So they made PowerQuery that you have to pay for?
[+] anonfunction|10 years ago|reply
I'm not familiar with PowerQuery but after a quick search I think a huge difference is that blockspring has an open marketplace of data APIs.
[+] le_clochard|10 years ago|reply
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 (haven't tried it.)

[+] tarr11|10 years ago|reply
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|10 years ago|reply
Huge market.. e.g. look at Domo. Same idea.
[+] mizzao|10 years ago|reply
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|10 years ago|reply
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|10 years ago|reply
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...

[+] noblethrasher|10 years ago|reply
"Everyone should learn to write, but not everyone should be a professional writer."

But, it's not that we want "everyone to learn to code"; what we really want is for everyone to learn how to use computers to build powerful simulations so that they can test and explore interesting and complicated ideas.

Certain issues, like climate change, become much more tractable to discuss once you start using Excel rather than Word.

[+] serve_yay|10 years ago|reply
You learn to code that way or you learn to code this way, either way you're gonna pay the piper.
[+] drumdance|10 years ago|reply
I started learning to code via spreadsheets (anyone remember Borland Quattro Pro?!)
[+] fiatjaf|10 years ago|reply
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|10 years ago|reply
You've been able to do this in Google Sheets for years with a tiny bit of JS programming.
[+] fiatjaf|10 years ago|reply
I tried, and it is impossible. Google Apps Script is awfully slow and limited.
[+] normloman|10 years ago|reply
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|10 years ago|reply
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.

[+] hermanmerman|10 years ago|reply
Isn't it exactly the opportunity at hand? No matter how much you don't want them to, people will still use spreadsheets, and the reasons why don't even matter. Instead of getting in another lost battle (Hypercard), just give people what they want, and combine their love of spreadsheets with their need for data connectivity.
[+] eykanal|10 years ago|reply
That was exactly my first thought as well. The LAST thing any company needs is more excel sheets—unprotected, easily lost, bloated, no-backup excel sheets.

Leaving alone the observation that, in many companies, the rank-and-file don't even know how to insert a new row in a spreadsheet, let alone muck with functions..

[+] rossdavidh|10 years ago|reply
I think a better idea would be an easier way for those people who built a spreadsheet (that was supposed to be temporary but then became permanent, and then became critical) to transition to a database (that lives on your own machine) would be a better idea. More data lives on spreadsheets than databases in a typical office environment, and part of the reason why is data entry speed, but another part of the reason why is that it's hard to get people to transition to the database.
[+] zekevermillion|10 years ago|reply
I would love to see a modern Hypercard. Use http to share plain text info; use "Supercard" if you want to build a complicated visual presentation with bells and whistles (rather than cobbling together from html, css, js, etc.). There has got to be some demand for this.