Ask HN: What would Excel's formula language look like if you invented it today? - <AUTHOR> If you were to invent a language to be used in spreadsheets today, what would it look like?
Would you just jump on the JavaScript bandwagon?
Google Docs clones the Excel formula language for use in cells but allows you to write
extensions/macros (where you would use VBA) in Google Apps Script but what is it really? It looks a lot like JavaScript. The documentation totally sucks, it lives in the Google Apps Script IDE, the debugging is terrible. It can't easily be shared or put on github and it's hard to test.
Why not have a single language for the cells and for extensions? I'm thinking real JavaScript would be interesting, as in is being able to import
external scripts and exporting their globals into the spreadsheet's namespace then being able to set a cell to apply the function and display the output of that function.
So you could set the value of a cell to `=function(i){Math.pow(i,2)}(A2)` this would apply JavaScript's `Math.pow(_,2)` to the value of the cell `A2` or you could let imported functions work directly on the spreadsheet cells and do something like `=Math.pow(A2,2)`
This doesn't solve the problem of JavaScript being a terrible programming language and after re-reading the above, is asking users to write a closure around multiple-argument functions crazy, is polluting the spreadsheet namespace with external functions too crazy? What if a third party JavaScript lib has a function called A2, or even SUM which conflicted with the builtins Perhaps a stack-based programming language would be more appropriate, especially when you start trying to do operations on ranges (lists).
The first thing that comes to mind is Forth but a more modern alternative that plays well with JavaScript is Daimio http://daimio.org/. <comment><USER3> Honestly, I think the bones of Excel's language are fine. It's very natural for anybody who knows highschool math. There are obviously a few features I'd want redesigned - like the inline-if stuff, and a good lambda syntax would be nice. Better Boolean support would be a big thing.

Basically I'd want something like C# or Python.

The big thing is that Excel is for non-coders, so you can't use programmer- centric syntax. That means that C's ternary operators, double-equal-signs equality test, and the ampersand/pipe boolean logic is _right out_.

On the other hand, I like curly braces, and the "BEGIN" "END" keywords of wordy languages seem more confusing than simple braces. Or indent-based since the environment can be trusted to enforce them and make them neat. But curly- braces are good for one-liners, which are important to Excel.

.NET support would also be a huge plus.

Oh, I just designed Boo.

Yeah, Boo (or something very close to it) would be my language for Excel. Except for the silly double-equality thing, screw that, since most variable declarations will be a cell anyways so the assignment operator isn't too useful for Excel and you can make assignment verbose with a "let" keyword.

My biggest problem with Excel isn't the formula language but the muddy- thinking nature of spreadsheets themselves. I'd rather see a middle-ground between a database and a spreadsheet, something like Lotus Improv.

Make the user specifically define the names of their variables they're using and whether they're a scalar, an array, or a 2d array. Make the formulas _visible_ above these things.

<comment><USER4> I think localizing it was a big mistake. I don't even want to know if this is fixed now, but I am fairly certain that stuff written in German Excel didn't work in English installations. =SUM() vs =SUMME()

</comment></comment><comment><USER5> I think the current Excel formula language is perfect for what it does. 99.999% excel users don't really need anything more than sum or sumif.

I work extensively in Excel and we have an in-house programming language that can be run with an eval() type excel function. The code is written directly in the cells and you just have to eval() it to run it. It's brilliant, let's you do all you want without breaking excel in any way. The syntax is a pretty standard C variant with a lot of support for matrices (finance work).

<comment><USER6> open source?

<comment><USER5> The in-house language isn't open source, no.

</comment></comment></comment><comment><USER7> A 2013 spreadsheet formula language would look pretty similar to what we see now. The format is simple and relatively easy for people to understand.

If I were able to change it, I may consider adding a left hand side to the formulas (A3=A1+A2 rather than just =A1+A2), which seems verbose but completely obviates the need for the special array formula type (e.g. `{=A1:A2 * B1:B2}`, which would be naturally expressed as C1:C2=A1:A2 * B1:B2). There are other constructions like range unions and intersections that I probably would change, but no obvious replacement comes to mind.

If you want to explore JS in excel formulae further, there are people trying to implement the formula space in JS: [https://github.com/sutoiku/formula.js](https://github.com/sutoiku/formula.js)

BTW: if your goal is to attack the spreadsheet space by innovating on formulas, you are probably barking up the wrong tree.

</comment><comment><USER8> I would do away with the opaque, error-prone cell references altogether and work exclusively with named columns, cells, etc. Yes, named cells and ranges are supported in most spreadsheet programs, but people don't seem to use them much since it's easy to get started with the cell references. Operating on named column ranges seems safer than "fill-down" etc. which it's easy to go wrong with.

I think this change would be more beneficial than changes to the formula language, though I think the one-liner style the formula languages encourage is quite problematic too.

<comment><USER9> I was helping my bartender friend with a spreadsheet for his per-bottle profits, and it would have been _so_ much simpler if we could have named the columns after each liquor, and the rows for their wholesale-cost, serving- size, bottle-size, serving-charge, etc.

You'd probably need a way to override it to allow certain individual cells to have a unique name, though - constants if you will.

<comment><USER10> Constants should be in a separate sheet named 'config', 'constants', or the like. Alternatively, in Excel, one can define names with values that aren't stored in a cell (one can enter 42 or sin(d3) in the text box where one can edit name values in the 'Name Manager'h

Disadvantage is that such constants won't be visible when looking at formulas in other sheets. That's why Apple's Numbers spreadsheet allows for multiple tables in a sheet.

Excel's solution for that problem is he table ([http://office.microsoft.com/en-001/excel-help/overview-of- ex...](http://office.microsoft.com/en-001/excel-help/overview-of-excel-tables- HA010048546.aspx)) if you are willing to transpose rows and columns, theta might come close to what you want.

</comment></comment></comment><comment><USER11> Scheme is easy to embed and maps well to common spreadsheet operations because it accepts lists of arguments to functions like sum and stdev. It also has a full numeric stack. Modify it to accept ranges of cells and it would be an excellent language for Excel.

<comment><USER12> [http://siag.nu/siag/](http://siag.nu/siag/)

<comment><AUTHOR> that's awesome, looks like the Emacs of spreadsheets

<comment><USER13> Emacs has Org-Mode, which has auto-updating tables [1], which would be the spreadsheet of Emacs.

Here's a demo mileage tracker I did in Org-Mode [2].

\- [http://orgmode.org/guide/Tables.html#Tables](http://orgmode.org/guide/Tables.html#Tables) \- [https://vimeo.com/71364504](https://vimeo.com/71364504)

</comment></comment></comment></comment><comment><USER14> Python.

I actually want to use Python in a spreadsheet program but it's more difficult than it should be, DataNitro is not free and Gnumeric's Python support is not enabled in Windows builds. Pyspread doesn't work quite like a regular spreadsheet program.

<comment><AUTHOR> I remember resolver one doing exactly this but the main problem was that it "wasn't Excel" [http://www.resolversystems.com/products/resolver- one/power.p...](http://www.resolversystems.com/products/resolver- one/power.php)

</comment></comment><comment><USER15> Not sure the language design can really be considered (totally) independently of the UI design. Spreadsheets are not text editors, and what is good for the goose may poison the gander and render it dead.

</comment><comment><USER16> I wouldn't change a lot, perhaps nothing.

VBA is a fuzzy line; a lot of functionality is added through plugins from Bloomberg / Datastream / Reauters (I live in the financial world) through C++ libraries for all kinds of functions.

Integrity of data and calculation... Best not to use Excel for critical, non audited systems. Changing the language will not change the potential to use a dodgy clockwork clock (spreadsheet) to do the job of a digital watch.

I do deeply dislike the visualisation of data. Formatting a chart is simple but tedious. If venturing from bar / line / area / scatter charts i.e. more than an extremely linear presentation of data, then Excel does not excel.

But a vlookup, or a pivot, at the stroke of a few characters, is amazing. Given the >65535 line restriction of earlier versions of excel, it would be very nice these functions could function on larger data groups, the hundreds of thousands of lines Excel now represents in rows.

</comment><comment><USER17>
        pow(A2,2)

seems reasonable.

Please:

        pow = Math.pow.bind(Math)

at least, as typing Math in a spreadsheet is going to get boring.

Not sure if JS is the best choice for a spreadsheet, though, JS has surprising (compared to Python or Ruby) IEEE 754 arithmetic. I don't know that much about the topic so perhaps someone else could elucidate.

</comment><comment><USER18> Most of the trouble I've had with spreadsheets boils down to not knowing the (albeit small) language. Writing =B3/B$1*$A$1 is generally useful, don't get rid of that. Emphasize the formatting as a separate concept from the data (formatting needs its own language). Add type hinting/checking to cells & functions, but don't 'enforce'. Make plots first-class, embeddable in single cells (and mergable into larger areas). Make functions first-class, so a cell can contain a formula. Allow simple access to not just other sheets' cells/fns, but other files' cells. If you're crazy, allow access to remote files' cells/fn over HTTP. If you can define a sane JS FFI, you could import js libraries remotely. It blurs into web development, but what doesn't?

</comment><comment><USER19> I think it'd be neat to get some flowback from the FRP/Cells community which seems to be reinventing spreadsheet computation from first principles.

</comment><comment><USER20>
      $(1,1) = $(1,2) + $(1,3); // cell value ref: $(row, col)

      $('sheet1').onready(function() {
      }); // you get the picture

the spreadsheet programming and the data grid/presentation could be made separate.

replace fill handle based formula extension with parameterized formulae:

      for (int i = 0; i < $('name_range').length(); i++)
        $(1,i) = $(2,i) + $(3,i); // and so on and so forth

write as many functions as necessary.

</comment><comment><USER21> As a simple experiment or learning experience, why not start with the same languages as Light Table, then add R and Julia. (or start with Light Table and add a spreadsheet view)

But if you wanted to raise the bar on spreadsheets in general, you might back away from the scripting end and think about sets, series, logic, and ontologies. Look at CLIPS and Prolog, and try out Protégé.

Also, "Populous is a generic tool for building ontologies from simple spreadsheet like templates." ([http://www.e-lico.eu/populous.html](http://www.e-lico.eu/populous.html))

I would personally enjoy being able to define named streams with Redis-like pub/sub semantics driven by arbitrary generators, composeable as sets (when finite, or as constrained by rules), and having a parametric type system available when it makes sense. Then scripting.

</comment><comment><USER22> > Google Docs clones the Excel formula language for use in cells but allows > you to write extensions/macros (where you would use VBA) in Google Apps > Script but what is it really? It looks a lot like JavaScript.

It doesn't just "look a lot like JavaScript", it -- to quote Google -- "is a JavaScript cloud scripting language that provides easy ways to automate tasks across Google products and third party services and build web applications." [1]

[1] [https://developers.google.com/apps- script/](https://developers.google.com/apps-script/)

> Why not have a single language for the cells and for extensions?

Because programming in the _extremely_ small is different than programming in the large.

With a suitable functional programming language, you could probably find something that would work tolerably well for both.

</comment><comment><USER23> I would base it on Javascript just to give certain people something else to whine about.

</comment><comment><USER24> for what excel is intended to do - the current formula language is actually perfect - I wouldnt trade it for anything else (being someone who does a lot of work in excel - but also spends plenty of time hacking python & js) - <USER2> you really want to do more powerful stuff - you have macros and the like. Theres also Datanitro and other plugins you can add in. Also - if you really just care about using the data in the sheet - just read it into a simple python script and manipulate away. Dont fix something that isn't broken, I say.

<comment><USER6> Wow, never heard of datanitro, thanks for the tip. Something like this but in ruby?

</comment></comment><comment><USER25> As a few others have said, the current language is suitable for the original intended purpose, although a better way of managing if..then..else situations would be appreciated.

If anything, I'd take away some of the non-core mathematical procedures and functions (ie: cell prettifiers) so that people stop using spreadsheets for such diverse purposes as project management (GANTT in spereadsheet columns - ugh!), tabular text reports that should be done in a word processor and anything else where another app would be more suitable.

</comment><comment><USER26> I think Excel language is great: It's fantastic that so many people in the world are unwittingly gaining experience in using a pure functional language, and its conciseness really lends itself to writing in relatively small cells. There are no side effects, it's hard to shoot yourself in the foot.

I do find myself writing fold-like functions by creating a column to hold the accumulator; whereas it might be nice to have that syntax built-in.

It's an intuitive functional language. Well played.

</comment><comment> vertex-four I think that I wouldn't build spreadsheets today. I'd build a tool which allows me to build simple forms which store, edit, and view data, and a separate tool which lets me work on and transform that dataset through a visual programming pipeline.

This would allow me to decouple the storage format, the views, and the transformations from each other, and make for a significantly more maintainable system for most things that spreadsheets are commonly used for.

</comment><comment><USER27> "Make everything as simple as possible, but not simpler." \- Albert Einstein

[http://en.wikipedia.org/wiki/Reverse_Polish_notation](http://en.wikipedia.org/wiki/Reverse_Polish_notation)

[http://old.easyco.com/easydocs/d3/pickref/page1517.htm](http://old.easyco.com/easydocs/d3/pickref/page1517.htm)

(50 year old methods that worked well on the technology of the day would _fly_ today.)

</comment><comment><USER28> Today with the politics at MS? I imagine it would be similar to powershell's syntax or just be powershell with new excel specific functions. I imagine there would be more wizards to help non-techies generate code. Maybe even natural language stuff. "I want to add up everything in column B." or "I want to append [http://](http://) to everything in column C."

</comment><comment><USER29> Something like Haskell seems like a good fit for the brevity of working with sequences using higher order functions, but maybe the type system is too verbose... I'm sure there's some better candidates, but it'd be a nice start and maybe an excuse to look at the work of that one person who turned a Haskell dialect that compiles to javascript into a fulltime job.

</comment><comment><USER30> Firstly : cells + formulas are isomorphic to rule-based (expert) systems in that both are directed graphs (which may contain cycles, which is an error!).

Thus, just a thought experiment, it may be useful to turn the situation on it's head and say / ask : "So, this GUI, with formulas and cell references, is actually a way to visualize a rule-based system..."

</comment><comment><USER31> Build web applications, with formulas. Formulas that build real software, the kind a programmer is able to create. This way: www.cellmaster.com.au/Build.html?hn (2 min video)

</comment><comment><USER32> JavaScript or a language that improves upon it like CoffeeScript, TypeScript, or Dart.

</comment><comment><USER33> > If you were to invent a language to be used in spreadsheets today, what > would it look like?

Lisp. I'd have the cells contain data, and only data. You can type data into the cells like normal. However, when you want to input a formula I'd split the screen horizontally and have it start off with

(cell-name ( ____ ))

Have the user start typing in the middle of the second parenthesis where the underscore is by default - have it default selected to make it clear, slightly grey out the surrounding syntax so they don't immediately have to worry about it but bring it back to the normal colour if they click outside of that.

Clicking a cell back on the cells windows would insert a reference to it.

(cell-name (+ a1))

Dragging across cells would define a group with some syntactic sugar.

(cell-name (+ group a1 b2))

Inserting a graph would show you the code of the graph right there in the code window.

What might I do differently to Lisp? I'd replace the + sign with 'sum-of' and * with 'product-of' to help people get used to the prefix style. So the above would become.

(cell-name (sum-of group a1 b2))

I'd have sum-of inserted when you clicked the + key on your keyboard to make it clearer how it worked.

I think this would be quite intuitive and add a lot of easily seen power. We're used to using parenthesis to group math things, we're used to using variables, we're used to using functions - we just don't tend to think of those things as such.

All your logic would be visible in the code window, finally escaping the horrible black-box style of clicking off the cell and everything vanishing.

Potential problems?

'Ah, but Excel's for non-coders,' you might say. I don't think it is, not really. If you just want to add a range together you have to learn a formula that's quite similar to Lisp to begin with:

=SUM(a1:b2)

And in many ways it's less intuitive than Lisp is. Why is =SUM required to be like that, why do you need to group the references after SUM like that? What is the : meant to signify? And as you go develop more complex things like SUM- IF you're rapidly looking at something that's just a bad programming language.

You can sort of muddle your way into it by messing around - but I don't see that it's not a thing that people have to learn or that it's any easier than Lisp's presentation would be. Have you tried interviewing for admin jobs lately? I have, I try interviewing for jobs I'm not interested in from time to time, and even working some of them, just to keep in contact with the state of offices. Pivot tables and 'macros' are considered advanced excel knowledge - I've been in offices where most of the people working there don't know how to make a drop-down list for a cell, or how to use something as simple as SUM-IF.

Excel's language isn't simple for non-coders already. Where it wins above programming languages that we all are perhaps more familiar with, IMO, is that it gives people an immediate visual hook into a data structure that they can use as a starting point.

Like the REPL - but with a slightly different emphasis.</comment>


Ask HN: Where to put my product: marketplaces or bootstrapped startup? - <AUTHOR>

Long story short: I am working on an appointment/scheduler project that can be used in various industries with very small tweaks (tennis courts, dog daycare, conference room schedule, doctors...basically anything that needs an online scheduler).
Last night I dug more on "my competitors" and saw that some of them never took off, they have no clients, even thought their product looks and works like a charm.
So...should I upload my product to code marketplaces (eg. codecanyon) for a reasonable price ($15-20) or try to run it as a bootstrapped startup and see if it gets traction? <comment><USER2> Why did you start the development in the first place? To scratch your own itch?

I usually start projects to scratch my own itch. And since they are online projects, everyone can use them. Some get traction and for some I am the only user.</comment>


Firefox 13 Beta Turns On the 'SPDY' - <AUTHOR> http://www.webmonkey.com/2012/04/latest-firefox-beta-turns-on-the-spdy/

<comment><USER2> The team behind nginx plan to roll out SPDY support at the end of May [1]. Will align nice with Firefox's support for SPDY!

[1] <https://twitter.com/#!/nginxorg/status/192301063934705665>

</comment><comment><USER3> Microsoft has submitted a proposal that is interesting for a few reasons. The requirement for encryption is optional and also the API/framing is closer to Websockets.

[http://tools.ietf.org/html/draft-montenegro-httpbis-speed- mo...](http://tools.ietf.org/html/draft-montenegro-httpbis-speed-mobility-01)

If encryption is required, I can see many complaining about the burden of certificates. Will this finally drive an alternate solution such as Moxie Marlinspike's Convergence project to help us do away with the certificate authorities? Also, I can see a huge increase in the number of IP addresses unless some serious progress is made with SNI. On the otherhand, that might finally open the floodgates for widespread IPv6 adoption.

<comment><USER4> That proposal has a pile of problems: [http://www.belshe.com/2012/03/29/comments-on-microsofts- spdy...](http://www.belshe.com/2012/03/29/comments-on-microsofts-spdy- proposal/)

<comment><USER3> Yes it does. As does the original proposal and I mentioned some issues in my post.

</comment></comment></comment><comment><USER5> The Tabs-on-demand feature that the article mentions... isn't that the "don't load tabs until selected" feature that has been around since FF9?

<comment><USER6> nah it will load tabs that you open in the background without that option, even in FF13 but if you restart the browser, it won't, ONLY for the tabs it restores at startup.

Means basically if you open a tab via click or contextual menu and u don't have "only load tabs when selected" it WILL load the tab. But when you restart the browser (or start) with your 100tabs, it will only load the first one. Before that itd both be slow if you had a bad connection and be slow (obviously no browser can instant-render 100 pages)

<comment><USER7> I'm currently downloading FF13 only because of that feature. I always have 100+ tabs open, and oftentimes, when a browser is "full" (i.e., too many tabs) I switch to another browser until I have time to clean up the mess. There were situations where Chrome, Safari, and Opera were "full". Really looking forward to this new feature.

</comment></comment></comment><comment><USER8> I'm a little unclear on how SPDY works. Is it correct that it only speeds up HTTPS connections? Does that mean you need to redirect traffic for:

<http://example.com/>

to:

<https://example.com/>

before you know if the client has SPDY support enabled?

<comment><USER9> No. If both the browser and server support SPDY, all http: and https: URLs will go over SPDY, and SPDY is encrypted. So even http: URLs that look unencrypted are actually being secured "by accident".

<comment><USER10> This is not true. Only HTTPS URLs get SPDY. Perhaps you're thinking of HTTP Strict Transport Security, which transforms HTTP URLS to HTTPS on the client. You can see whether you're getting SPDY or not (in Chrome) at chrome://net- internals/#events&q=type:SPDY_SESSION%20is:active

One reason for this is that proxies and other buggy/evil bit-twiddlers in the path of your connection don't understand SPDY, so the only way to punch SPDY through them is to use a protocol they're not allowed to meddle with.

<comment><USER9> I can't find any documentation to corroborate that. The draft 2 spec mentions HTTP several times: "...it should be used in preference to HTTP/HTTPS. ... all HTTP requests can "piggyback" on an existing SPDY session. ... all future http requests to that host port pair should use the SPDY session rather than opening a new HTTP connection." [http://dev.chromium.org/spdy/spdy- protocol/spdy-protocol-dra...](http://dev.chromium.org/spdy/spdy- protocol/spdy-protocol-draft2#TOC-Deployment) (Curiously, the deployment section is completely missing from draft 3 and the IETF version.)

If Chrome does something different, I wonder why.

<comment><USER11> It looks to me like it's just talking about HTTP the protocol, as in GET, POST, etc., and saying that you can reuse a SPDY session instead of opening a new connection — it's not saying you can use SPDY over unencrypted HTTP.

<comment><USER9> As I said, SPDY always runs over TLS. What we're debating here is whether you can request an http: URL over a (secure) SPDY connection. I see no reason why not and it should be faster, yet it appears that this isn't being done.

</comment></comment></comment></comment></comment></comment><comment><USER12> Kinda crummy article to mention that SPDY is actually present in earlier Firefox versions, but just turned off. How about telling us how we can turn it on?

<comment><USER12> I looked it up: In Firefox 11 and newer, punch in about:config in the URL bar, then find network.http.spdy.enabled and turn it on.

<comment><USER13> Basically everything is in about:config, and it has a search function. I don't think it's crummy of the article to not mention the exact details.

</comment></comment></comment><comment><USER14> Shame there isn't a SPDY test site I can find. spdytest.com, by the way, does not run over SPDY. It's a plain HTTP/HTTPS site.

<comment><USER15> Google and its suite of apps all use SPDY. Works great on Firefox Aurora. Get this extension: [https://addons.mozilla.org/en-US/firefox/addon/spdy- indicato...](https://addons.mozilla.org/en-US/firefox/addon/spdy-indicator/)

FWIW, a screenshot: <http://static.deno.pl/pub/hn/spdy-firefox.png>

<comment><USER16> Most of Google apps use SPDY, but for some reason, ipv6.google.com does not.

</comment></comment></comment><comment><USER17> I would love to have an old school version. Slim and "let me design it the way I want".

<comment><USER18> You mean, of the browser? You could try uzbl; the core part doesn't even have an URL bar: <http://www.uzbl.org/></comment></comment>


Hipster (like Path) uploads your address book emails to its servers - <AUTHOR> http://markchang.tumblr.com/post/17244167951/hipster-uploads-part-of-your-iphone-address-book-to-its

<comment><USER2> FourSquare Too.

Here was their response to my complaint.

Subject: Do you store my contacts?

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>- <MYNAME> ✆ via gmail.com

17/07/2011

to privacy Hi.

I recently downloaded the Android Foursquare application. It automatically started scanning the contacts on my phone.

Questions: 1\. Does the application upload my contacts to FourSquare?

2\. If so, does FourSquare store my contacts?

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>- <FOURSQUARE-SUPPORT> ✆

18/07/2011

to <MYNAME> We do not store or upload contacts! It's a one-time search of your phone's contacts to find friends to add on foursquare.

See more information at foursquare.com/privacy/grid and <https://foursquare.com/legal/terms>

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>- <MYNAME> ✆ via gmail.com

19/07/2011

to <FOURSQUARE-SUPPORT> Hi,

I think you must upload my contacts to your servers to identify which ones are on foursquare.

When you upload them, do you send them in plaintext or encrypted?

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>- <FOURSQUARE-SUPPORT> ✆

19/07/2011

to <MYNAME> Right, yes, we do _send_ info to the server but do not save anything. All foursquare pages are encrypted as of April 6. <MYNAME> ✆ via gmail.com

20/07/2011

to <FOURSQUARE-SUPPORT> It's nice to know your pages are encrypted, but my question relates to when you sent all my contacts to your server from your mobile app. Did it use an encrypted connection to do this?

Thanks,

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>- <FOURSQUARE-SUPPORT> ✆

20/07/2011

to <MYNAME> yes, any information sent via any foursquare page, mobile or otherwise, is encrypted.

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>- <MYNAME> ✆ via gmail.com

20/07/2011

to <FOURSQUARE-SUPPORT> Thanks for the confirmation.

One final thing - it would be polite for your app to request permission before scanning my phone and uploading all my contacts to your server. Please consider it a complaint that it did not ask permission.

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>- <FOURSQUARE-SUPPORT> ✆

20/07/2011

to <MYNAME> We totally agree! When you download foursquare, we list the permissions that you are giving us, including scanning your contacts list (which we do not save or store). See here: <http://cl.ly/18433L2s3g1T13070y0X>.

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>- <MYNAME> ✆ via gmail.com

21/07/2011

to <FOURSQUARE-SUPPORT> We don't agree.

It is not made clear that you are going to scan for my contacts and upload them.

You should explicitly make me aware and ask for permission in advance of doing that.

Furthermore, your tone and wilfully ignoring my legitimate complaint is annoying.

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>- <FOURSQUARE-SUPPORT> ✆

21/07/2011

to <MYNAME> <MYNAME>, I'm sorry you feel that way! I have spent time talking to four different engineers (two server engineers about what info is stored and how information is transferred, and two Android developers) about your questions out of respect and concern for you as a user with a valid query. I take all user questions and concerns seriously and as a member of the Product team, pass on this sort of complaint so that we can be sensitive to that fact that if one person is asking/upset about something, there are probably others. Sorry if I did not do a good job of conveying the way I run community and support for foursquare in my tone. Sometimes email is hard in that sense. I hope you know that we care and appreciate your emails.

Best,

<FOURSQUARE-SUPPORT>

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>- <FOURSQUARE-SUPPORT> ✆

21/07/2011

to <MYNAME> Also, since we don't save your contacts in anyway, I'm not sure that we are actually "uploading" them. Is there something else that is bothering you? Perhaps I'm not understanding your concern completely--we aren't telling your contacts that you are using foursquare nor are we automatically adding them as your friends, we're merely searching your phone's contacts for other people you know who are also using foursquare so that you can then decide which of those you'd like to send a friend request to. Can you please let me know what part of this you find troubling so I can pass on your concerns? Thank you! <MYNAME> ✆ via gmail.com

21/07/2011

to <FOURSQUARE-SUPPORT> Uploading means essentially the same thing as sending for the purposes of this complaint.

uploading: present participle of up·load Verb: Transfer (data) to a larger computer system.

As for my concern, I can only repeat myself. It is disappointing that you don't immediately understand why this is a problem.

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>- <FOURSQUARE-SUPPORT> ✆

21/07/2011

to <MYNAME> Thanks for voicing your concern. I'm passing it on.

<comment><USER3> I think they answered your question pretty thoroughly and promptly, despite your intense neckbearding.

Certainly more thoroughly than the Path guys.

<comment><USER4> Stop being such a zuck[1], calling security-consciouness "neckbearding".

[1] A zuck: someone who, due to a combination of ignorance and malice, is dismissive of others' efforts to improve their security and protect their privacy.

<comment><USER5> I believe the "neckbearding" referred to berating this poor support staffer for his/her lack of technical expertise. The guy/gal was pretty clearly doing the best he/she could, and the responses from the "security conscious" user could have conveyed the same message with a lot less condescension.

<comment><USER6> _The guy/gal was pretty clearly doing the best he/she could_

Awww... The little guy was doing his best. Oh, wait. You're not talking about a puppy? but the customer-facing front of a company?

<comment><USER7> Strangely, qualified engineers and security experts keep turning down the consumer-facing support jobs.

</comment></comment></comment></comment></comment></comment><comment><USER8> I wrote a little MobileSubstrate (Jailbroken iPhone) shim to intercept the most common API used to access this data, block its use, and alert the user when it's happening.

<https://github.com/bri3d/AddressBookPrivacy/downloads>

It should be available in the BigBoss repository as "Address Book Privacy" sometime tomorrow.

My tweak catches and displays the use of address book data as it happens, and based on my observations I think the Hipster version of address book theft is a lot less egregious than the Path one. Hipster accesses your address book only when you ask it to "Find Friends" - "Contacts" is selected by default. While this certainly shouldn't be the case, it's nowhere near as bad as Path, which sends all your contacts without asking _every time you log in_ (along with again if you select "Find Friends").

<comment><USER9> ABAddressBookCopyArrayOfAllPeople is implemented as a direct branch to ABCCopyArrayOfAllPeople. Right after that are the ABAddressBookGetPersonWithRecordID and ABAddressBookGetPersonCountShowingLinks functions and they will be wiped out by the closure generated by MSHookFunction. The proper function to hook is ABCCopyArrayOfAllPeopleInSourceWithSortOrdering. See my similar package for an example: <https://github.com/rpetrich/ContactPrivacy>

Kudos to beating me to a release.

<comment><USER8> This version is substantially better than mine - in addition to the correct hook mentioned in the parent comment, ryanpetrich's code uses a private CoreFoundation API rather than UIAlert which is both safe to access from non- main threads and blocking, making the tweak both simpler (no dispatch or blocks) and allowing it to pop up a "yes/no" dialog.

I've updated the README in my GitHub repo to point here and I'm considering ContactPrivacy a better replacement for AddressBookPrivacy at this time.

Here's to hoping Apple does something like this in a future release of iOS.

</comment></comment></comment><comment><USER10> Surprise! Likewise, Instagram uploads your contact list to their servers (phone numbers, names, emails) to help find friends (confirmed with mitmproxy as well). At least you have to click "Find from my contact list" first.

This practice is super-common. The last ordeal around this was a year or so ago with Kik, but then everyone stopped caring. At least Instagram is over https.

<comment><USER11> Uh, if they do it after clicking "Find from my contact list", this is _totally_ different, that's opt-in. I do think it should be possible to opt- out from being findable this way, but that's a separate, if related issue.

<comment><USER12> There is also a difference between "uploads" and "sends".

If they send my address book to their servers, compare it with current users and then discard it that is pretty good for an opt-in process.

A lot of this seems to be they upload the address book to their servers and store it permanently. The fact that they don't state this and don't ask for permission is disturbing.

</comment></comment></comment><comment><USER13> Thank goodness Apple is scrutinizing all these apps. I definitely like my walled garden well curated.

<comment><USER14> Do you really expect Apple to MITM _every_ app (and update) to make sure that every developer in the world isn't sending random stuff to their servers?

Are you really that anti-Apple to believe that?

Blame the developer, not the distributor.

<comment><USER15> I've bitched about how restrictive Apple is with the App Store plenty, but that ship has sailed a long time ago. But once you decided to have a restrictive app store and declare to provide "freedom from programs that steal your private data" (<http://gawker.com/5539717/>), be the best damn restrictive app store you can be and actually provide freedom from programs that steal your private data. Apple has inserted themselves as necessary component in the developer-customer relationship of iOS (and even declared privacy as one of the reasons why they are necessary), so they damn well should take some blame here.

</comment></comment></comment><comment><USER16> As an iOS developer, I've been surprised all along that the SDK gives you full access to the address book without asking for permission (like Core Location and the Apple Push Notification Service). I've always thought that would one day change, and I suspect that posts like this and the one about Path will make that happen.

<comment> k-mcgrady I'm also an iOS developer although I've never needed to use the Address Book API's. I always presumed that some sort of permission was required I'm really surprised it isn't. I actually think this is a bigger privacy concern than location access as not only are you giving away access to your contact details but everyone who has trusted you with theirs.

<comment><USER17> But we are living in a FaceBook World™. And 'contacts sharing' with companies is completely ubiquitous.

I understand the complaints about all this, but isn't there a massive elephant in the room that everyone has temporarily forgotten?

</comment></comment></comment><comment><USER18> Making a prediction: When you wake up tomorrow morning, the front page will be filled with stories like these about every type of app you can think of. It will only get worse from here.

<comment><USER19> Worse is an interesting choice of words .... if a bunch of companies get shamed into respecting people's privacy then that's great, and if it gets the ball rolling and triggers the wrath of app stores ... that's even better.

<comment><USER20> Worse meaning that these two apps are only the tip of the iceberg. The privacy damage is worse than we expect.

</comment></comment></comment><comment><USER21> One has to ask, why don't they upload hashes? This would be sufficient to check for friends (email,telephone).

Why do they upload real data? Do they sell it? What happens when they go bankrupt?

<comment><USER20> It's slightly more work, and devs are lazy?

Hashing doesn't really solve the entire problem, though it does prevent the service from getting addresses it doesn't already know. Allowing an app to see your contact list is an act of faith.

Maybe bloom filters can save us? :)

</comment></comment><comment><USER22> This isn't new or surprising. Working as an iPhone contractor you get asked to do this sort of stuff all the time. Companies that give something away for free want your data. Simple.

If someone was going to audit all the popular social apps in the app store I'm sure that the vast majority would behave in exactly the same way.

</comment><comment><USER23> What the hell, I definitely don't want some random app I installed getting access to my contacts, phone numbers, private notes and more.

FARK.

</comment><comment><USER24> Android's "permissions" in the market aren't looking so bad now are they?

<comment><USER25> I am normally careful to check permissions, but foolishly installed Skype app (I think Skype uploads complete phone address book when first run).

And I wonder how many PhoneGap based applications (iPhone or Android) have XSS flaws that a hacker can springboard to snarf the local address book???!!!

<comment><USER25> XSS flaws like: [http://www.theregister.co.uk/2011/09/20/skype_for_iphone_con...](http://www.theregister.co.uk/2011/09/20/skype_for_iphone_contact_theft/)

</comment></comment></comment><comment><USER26> This is, of course, happening in a lot of apps and websites. I wrote a quick note about making it easier to understand TOS here: [http://clearsignal.posterous.com/do-we-value-our-laundry- mor...](http://clearsignal.posterous.com/do-we-value-our-laundry-more-than- our-privacy). Within minutes, olefoo pointed out that <http://khulaproject.com/> has already tried. Seems like something that could help.

</comment><comment><USER27> Why would you not use HTTPS? At minimum? It doesn't take a genius to figure out how to launch a man in the middle attack and watch traffic from these devices. I'm actually surprised someone hasn't created a tool that just sniffs requests from apps, whilst stripping out important information.

</comment><comment><AUTHOR> Hipster CEO also apologizes for address-book-gate :).

[http://techcrunch.com/2012/02/08/hipster-ceo-also- apologizes...](http://techcrunch.com/2012/02/08/hipster-ceo-also-apologizes- for-address-book-gate-calls-for-application-privacy-summit-guest-post/)

</comment><comment><USER28> PATH = BITCH

</comment><comment><USER29> Unbelievable.

</comment><comment><USER30> I do not understand why anyone is complaining about anything other than perhaps Apple's choice to make this an app-level permission rather than a "one-off" permission.

<comment><USER20> Other reasons: 1\. We are publicly shaming these apps to promote better behavior. 2\. We are educating each other to be careful when using these apps.

</comment></comment><comment><USER31> If apps spelled everything they were doing out for you all as you seem to want, you'd have something equivalent to a TOS to read. Only instead of legal jargon it would be technical jargon. You'd never read it. And then when it came out that the app was doing something that was described in it, you'd bitch and moan and complain just like you are doing now.

I would venture to guess that a large majority of apps in the app store (iOS and Android) do the same thing Hipster, Path and other mentioned in this thread do and you don't even know. I don't even what to know what Google and Apple themselves are doing without telling anyone.

TL;DR: Get over it. Move on.

<comment> k-mcgrady >> "Get over it."

What a stupid response. I'm not a huge privacy advocate but this is a massive breach of trust/privacy. Not only are apps taking your personal contact information but the contact information of everyone you have in your address book. So regardless of your stance on privacy, the privacy of all of your contacts is also at stake.

<comment><USER31> If I thought these companies were going to do something malicious with the data then it would be an issue. These companies aren't spammers. They aren't criminals. They don't plan to do anything malicious with the data. Your privacy, my privacy or any of my contacts privacy isn't at risk. It's not at risk but I don't think someone at Hipster is going through the data and using it in any way.

<comment><USER32> I'll accept the point that maybe hipster or path are not (yet) sifting through the data they obtained, however, sometimes startups go bankrupt and someone buys whatever assets are left over. Address data may get sold to a buyer with a different view of privacy. Servers may get hacked and data gets lost. Keep in mind that if you're using hipster/path you're not only risking your data but also the private data of anyone you have in your address book. It's one thing if friends of mine decide that they hand out their phone number, it's another thing if they decide to hand out mine.</comment></comment></comment></comment>


Would you accept a buyout offer that made you rich but you still felt was undervalued? - <AUTHOR>

I.e., would you turn down an otherwise lucrative offer for pride? <comment><USER2> I was in that situation and turned down the offer. The same buyer came back in a couple days with a fair offer and we accepted it. Had the buyer not come back, we would have been caught in the general market crash and the value of our company would have shrunk. But nobody knew that at the time, and I would not have regretted turning the offer down. I wasn't in a hurry to sell and there would have been other opportunities down the road.

Just like buying a house, you shouldn't get too attached to an offer or buyer until the ink is dry on the signatures. Keep your options open and be ready to walk away even at the last minute; if you don't maintain that perspective you lose control of the process and become vulnerable to last-minute deal changes. Don't let buyers put things in terms of how much money you'll make, keep it focused on what the company is worth and whether it's the right strategic move for the company.

</comment><comment><USER3> Depends on the size of the offer & how undervalued it is.

If it's enough to set you for life, then I'd be inclined to take it and move onto the next challenge in life.

</comment><comment><USER4> It depends on your financial situation. How much money do you think will make you happy? If you hold out for more, even if you make it, will your life significantly improve? What are the chances of ending up with nothing?

I'm a swing for the fences type of guy, but I'd have a hard time passing up any offer that hit my minimum number. That's why I think investors should let founders of companies take money off the table at a certain point. It gives them more desire to go for the big score, knowing that even if they fail, they're still set.

<comment><USER5> this is the crux. will it make your life any better? I'd say the law of diminishing returns applies here. 1 million will make you happy because you don't have to work anymore, 2 million will make you happier, but not twice as happy.

<comment><USER6> Do you really think 1 million means you don't have to work any more? 1 million is 10.000 per month for less than ten years. Unless you invest them I'm not sure you can't stop working forever if you have that amount of money.

<comment><USER7> I do. Put the million in a savings account, move to an affordable area and rent, or purchase a living space and bank the rest, then live (modestly) off the interest. Or if you can tolerate greater risk, pursue investments with higher returns, and/or expatriate yourself.

The question is, could you stop working and retain your sanity? I wonder about people who achieve success too early in life--they have many years ahead of them and much to learn, and wealth in some ways may be a hindrance.

<comment><USER8> People undervalue $1 million (or similar numbers) incredibly. It doesn't mean you don't have to work, but it pays for just about all of the things you end up working the first 15 years of your life for - house, furniture, "stuff". Once you've purchased all that crap, any money you make over and above that actually seems like a lot more because it's not going toward buying couches and bedroom sets.

I made my first million when I was 22, and though it didn't keep me from working ever again, it basically paid for all of the things I needed. Anything beyond that has been incremental gains. It's a lifestyle changing amount of money.

<comment><USER6> Thanks you all for your interesting replies (all comenters replying to my original comment).

</comment></comment></comment></comment></comment></comment><comment><USER9> This goes to an area where economics hasn't caught up to reality yet. If you watch Deal or No Deal, many economists would say contestants are making a mistake (being irrational, unlike the ideal homo economicus) when they accept a deal that is significantly lower than the average value of the cases remaining.

What they miss is that dollars offer diminishing returns at scale, so the decision is rational. Going from 0 to 100,000 dollars is very different life- style wise than 3 million to 3,100,000. Because those first dollars are "worth" so much more, and because the upside of the best outcome is not worth as much proportionally, the decision is rational (although people are often being irrational in other ways in this game).

In your case, I suggest you consider your BATNA (Best Alternative to a Negotiated Agreement) and estimate their interest, then consider countering. You can only negotiate your "best deal" when you're willing to walk away. If you're not willing to walk, you play it safe and "make a deal."

Edit: Keep in mind, if you counter, the worst they can say is no, and you can often still acquiesce to their original offer.

[http://en.wikipedia.org/wiki/Best_alternative_to_a_negotiate...](http://en.wikipedia.org/wiki/Best_alternative_to_a_negotiated_agreement)

<comment><USER10> You're totally right about the phenomenon. But it is well understood in economics - it's called marginal utility and it's in any Economics 101.

<comment><USER9> "The implicit assumption of conventional economics is that the only relevant metric is the magnitude of the absolute change in expenditure." I'm not the first person to say this:

[http://en.wikipedia.org/wiki/Loss_aversion#Can_loss_aversion...](http://en.wikipedia.org/wiki/Loss_aversion#Can_loss_aversion_ever_be_rational.3F)

<comment><USER10> I'm no economist, I just took a few units a while ago, but I'm pretty sure that's not an implicit assumption, because marginal utility is an important part of economics.

In fact the article you linked to says exactly that:

"All of the above effects can be expressed in terms of the utility function of money, and, in particular, not regarding money as a linear measure of utility. In other words, if money has diminishing marginal utility, then each dollar is worth less than the one before it. To use the example before, the first $1000 might be worth $1000 to a person, and the second $1000 worth only $950 (in terms of utility). This would not be "loss aversion" but just a phenomenon adequately explained by economic theory."

<comment><USER9> At that point in the link they're going over counter-arguments to the standard line.

Anyhow, I agree marginal utility is well understood by economists, just disagree that that is the standard way dollars themselves are viewed in classic economic theory. And perhaps I over-reached when I built my straw economist.

</comment></comment></comment></comment></comment><comment><USER11> Personally I wouldn't. I think a lot of entreprenurs get too emotionally attached to their businesses, which is fine if you plan on being around forever and passing it down through the family. For me though, starting a business is about making money and creating new opportunities. A buyout is an stepping stone to my next success.

</comment><comment><USER12> Have you had this conversation with your partners?

This is actually the one sticking point with my partner. He has "mega bucks" on his mind, but if an offer comes through in 6 months for mid 6 figures+, I would be inclined to take it unless we have some serious traction. Not enough to make you rich, but enough to bootstrap you better for the next challenge :)

</comment><comment><USER13> With the numbers I tend to play with, if it's enough to live off the interest comfortably for the rest of my life, sure. Then I can work on whatever I want with my time rather than avoiding projects because of the assumed inattention they would receive.

If the company has more potential than the offer, most likely no.

The real question is... will this buyout impact your life they way you want it to? ...or will you be miserable or somehow transformed into someone you don't want to be as a result?

</comment><comment><USER14> No, I think feeling undervalued will be a constant for anybody who's most interested in innovation. Now, if you are in it for money then sure the possibility exists for you to walk away from a deal someday thinking "Damn, I REALLY robbed 'em blind on that one!" But I don't think those of us that do things with passion because we believe in an idea will ever feel that money can every truly put a full value on our vision.

</comment><comment><USER15> there is only one reason to sell a business, YOU WANT OUT.

if you are profitable and you want out, you have to ask; "will this enable me to do my next activity?" if not, then don't sell yet you are much better off growing your business.

if you are not profitable and you want out, well i would ask; "Will this cover my effort on this project?"

I have a personal number in my head that covers my anticipated yearly expenses, plus has room in there to keep adding to savings. above that amount in wealth i very well may sell my first business, if i will find my next idea more desirable to pursue.

</comment><comment><USER16> I think one way to look at this is from an NPV (Net Present Value) perspective. If you work on a project where your cost to implement it is $x, but the reason you decide to undertake the project is because you think it's value is >$x+$1 and someone comes and offers you (exactly) $x+$1, but still less than you thought you would get, would it be a good sale? From a pure NPV perspective, if there were no other, better offers out there, the $x+$1 sale should be made.

The thing that really happens in life is that in addition to NPV, there's this little thing called pride, and when you think something is worth more that what someone else thinks its worth, it's sometimes hard to step back and say maybe they're right and I'm wrong.

Here's the thing to ask yourself: Do you think there's someone out there that will reasonably pay you more than the $x+$1 you have an offer for. If so, hold out. If not, sell.

</comment><comment><USER17> How much is your pride worth?

All transactions are made on the principle that what you are giving is worth (to you) less than what you are receiving in return. All of them. No exceptions.

If you think that the you are rejecting an offer _just because_ of pride, than it your adding the value of it to the transaction price.

If you do however think that what you have really is worth more than the value offered, you'd refuse.

</comment><comment><USER18> Unless I was dead sure that my company was worth 5x as much, I would take a 'make you rich' offer in a second. Then just rinse and repeat.

</comment><comment><USER19> Plenty of people might "feel" their company is undervalued when the offer may in fact be fair. Decisions like this should be based more on the numbers rather than "your gut feeling" - assuming your goal is to maximize wealth. If your life goals are tied up with the mission of your business, then by all means follow your passion.

</comment><comment><USER20> yes and then off to the races with the next more meaningful endeavor

Unless, of course, you're already working on your life's mission :)

</comment><comment><USER21> It depends entirely on how much you enjoy being a bigshot. Being rich doesn't make you an alpha male, but being an executive, maybe even CEO, of a company does just that.

If it's something you're running out of your mom's basement, well...

</comment><comment><USER22> I guess it all comes down to one's priorities. If you put your ego and pride above all else then I don't think any amount of money will ever be enough to quench your self-obsession.

On the other hand, if you have the chance to become comfortably rich and essentially free then why not?

Of course there is a third (fourth, fifth and so on) variation. Perhaps it has nothing to do with pride or money, perhaps you enjoy the work that you do so much that being rich is not something you can enjoy with the same amount of passion.

I'd probably take the money though.

</comment><comment><USER23> Are there other people involved whose interests might be worth considering?

I'm thinking of someone with a much smaller share. As someone has pointed out, the 100% increase from 50k to 100k is different than the 100% increase from $1M to $2M.

</comment><comment><USER24> Have fun, learn, and make money! If you are doing that with your company, why sell it ? Live long and prosper.

</comment><comment><USER25> well what is the true "economic cost"? :D rather, is it going to set you for a while? how do you define the "true" value (apart form a gut feeling or using made up projection numbers)?

</comment><comment><USER26> YES

</comment><comment><USER27> Colonel Sanders sold KFC cheap. After he said "If someone puts a million dollars in your hand you close your fist."

<comment><USER28> He was 74 when he sold the franchise. Maybe that had something to do with it? <http://www.corbinkentucky.us/sanderscafe.htm></comment></comment>


Mobile App Benefits for Business: Ten Reasons to Invest - <AUTHOR> https://da-14.com/blog/mobile-app-benefits-business-ten-reasons-invest <comment><USER2> nearly 85 percent smartphone app time concentrated top five apps

[https://marketingland.com/nearly-85-percent-smartphone- app-t...](https://marketingland.com/nearly-85-percent-smartphone-app-time- concentrated-top-five-apps-report-191624)</comment>


Cirq: An Open Source Framework for NISQ Algorithms - <AUTHOR> https://ai.googleblog.com/2018/07/announcing-cirq-open-source-framework.html <comment> da-bacon Happy to answer any questions (I worked on Cirq).

There are already lots of great open source frameworks and languages (qiskit, pyquil, q#, among many others). A few things we've tried to do which we think are important for near term algorithms: * Data structures (Circuit, Moment, Operation) with nice control on building and optimizing circuits. Supports device specific constraints. * Qubits tied to a variety of spatial layouts. * Timing control through the Schedule data structure. * Runtime values supplied to circuits parameterized by symbols. One of the few classical operations supported by current hardware.

</comment><comment><AUTHOR> [https://www.technologyreview.com/s/611673/google-wants-to- ma...](https://www.technologyreview.com/s/611673/google-wants-to-make- programming-quantum-computers-easier/)</comment>


The Lazy Susan Is Neither Classic nor Chinese (2014) - <AUTHOR> https://www.smithsonianmag.com/arts-culture/lazy-susan-classic-centerpiece-chinese-restaurants-neither-classic-nor-chinese-180949844/ <comment><USER2> "The pressed duck is right in front of me—and no one's gonna stop me from getting as many pieces as I want"

Can't literally anyone at the table do that, by rotating the table away? Technology like this requires certain societal norms to work effectively, and this attitude seems contrary to the norm.

<comment><USER3> And one might think that if getting as much pressed duck as one desires were so important, one might choose to dine alone to one's heart's content.

<comment><USER4> The quote is talking about eating as kid, so the kid probably couldn't afford or wasn't allowed to have meals on their own. Probably didn't feel like they could speak up and interrupt adults to ask them to pass things as much without a lazy susan too. With the lazy susan it's OK to just rotate yourself as long as no one else is currently spooning.

</comment></comment></comment><comment><USER5> I understood this as Wu designed a table that looked like the modern lazy Susan, so why is it not chinese ?

<comment><USER6> Because Wu's table was never used for eating and is not the origin of the Lazy Susan dining table. The idea of using a rotating table to eat off of originated outside China.

</comment></comment><comment><USER7> I guess I must be so uncultured (or maybe too cultured?) to have never seen a lazy susan in a restaurant.

<comment><USER8> Usually the bigger ones which accommodate receptions and such would have them. Smaller ones, holes in the walls, etc, wouldn't nor would ones in modern, clean freeway-off-ramp strip malls, older ones may.</comment></comment>


Incremental testing: save time and money on CI for monorepo - <AUTHOR> https://ashishb.net/tech/incremental-testing-save-time-and-money-on-ci-for-monorepo/ <comment><USER2> Isn't this exactly what tools like SCons and Bazel are supposed to do? Rather than writing your own

<comment><USER3> Bazel is definitely superior if you can switch to it. If the rest of the teams are using their myriad different tools then it takes time and resources to migrate to Bazel.</comment></comment>


Sticky tape generates X-rays - <AUTHOR> http://www.nature.com/news/2008/081022/full/news.2008.1185.html <comment><USER2> "...The researchers suggest that the high charge density generated by peeling the tape could be great enough to trigger nuclear fusion..."

That quote gets my WTF vote for today.

<comment><USER3> I can see a bunch of arab immigrants getting arrested for mass buying scotch tape.

</comment></comment><comment><AUTHOR> See also video:

<http://www.nature.com/nature/videoarchive/x-rays/></comment>


Pinterest for porn. Share your porn picture. - <AUTHOR> http://techcrunch.com/2012/05/02/sex-com-introduces-a-pinterest-for-porn/

<comment><USER2> This is potentially the best post ever made on TechCrunch.

</comment><comment><USER3> This is not exactly an unbeaten path:

[1] <http://hellokisses.com> [2] <http://beta.lu.scio.us> [3] <http://www.snatchly.com>

</comment><comment><USER4> Now here's a startup idea with legs.

</comment><comment><USER5> Wauw that seem like a waste to use such an expensive domain for that.

<comment><USER6> I'm not sure. I haven't closely followed sex.com except when the domain gets sold and resold for millions of dollars, but outside of domain name novelty other porn sites have already dominated the market.

This seems as a pretty low cost method to increase revenue while not being yet another sex site link farm.

</comment></comment><comment><USER7> Pictures? Is this really a thing anymore?</comment>


Getting Tired of Hearing How Online is Better Than Real Life - <AUTHOR> http://mashable.com/2008/07/11/online-interaction/ <comment><USER2> I'm not convinced that online activities are replacing genuine human interaction. Displacing TV time, sure. But if anything, my human interaction has been expanded due to online activities. A week ago I flew across the country to Los Angeles to see friends I developed online. Next month I'm doing the same again, but this time in Seattle. I met the members of the local Ruby Users Group through its online site.

The human need for in-person interaction is deeply rooted and is not so easily cast aside.</comment>