Scanning the fintech landscape: disruptive models - <AUTHOR> https://www.mckinsey.com/industries/financial-services/our-insights/banking-matters/scanning-the-fintech-landscape <comment><USER2> I didn't see 'cash management accounts' on the list, but I think these are among the best products. They're not too common, but more are appearing now.

There's the classic ones that combine various investment products and slush balance that's insured by a bank sweep in the same interface, and the new ones that abstract completely away from the underlying storage of the money, and provide some familiar features (debit card, bill pay, ACH transfers) and perks (high interest rate, no fees).

The latter kind is a great, low-risk, low-effort store of spending money for people with unpredictable income and/or spending who have little time or cushion to invest in products with higher returns and need the liquidity. It's a compelling alternative to a traditional US checking account at a large bank, where most of this demographic has their money.

<comment><USER3> Can you give some examples by name? I'd like to know more. Thanks

<comment><USER2> "Classic" ones: Schwab [1], Fidelity [2]. Vanguard recently announced they're discontinuing theirs [3].

New ones: Square Cash [4], PayPal Cash Plus [5], SoFi Money [6], Aspiration [7], Simple [8], unreleased and cancelled Robinhood product [9].

These couldn't be more different: one is ripoff-tier, one is so-so, while the rest are pretty good.

[1] [https://www.schwab.com/public/schwab/investing/accounts_prod...](https://www.schwab.com/public/schwab/investing/accounts_products/investment/cash_solutions) [2] [https://www.fidelity.com/cash-management/fidelity-cash- manag...](https://www.fidelity.com/cash-management/fidelity-cash-management- account/overview) [3] [https://www.investmentnews.com/article/20190304/FREE/1903099...](https://www.investmentnews.com/article/20190304/FREE/190309978/vanguard- to-end-its-small-cash-management-service) [4] [https://squareup.com/us/en/legal/cash- ua](https://squareup.com/us/en/legal/cash-ua) [5] [https://www.paypal.com/us/webapps/mpp/ua/legalhub- full](https://www.paypal.com/us/webapps/mpp/ua/legalhub-full) [6] [https://www.sofi.com/faq/#money](https://www.sofi.com/faq/#money) [7] [https://www.aspiration.com/get-account](https://www.aspiration.com/get- account) [8] [https://www.simple.com/help/articles/goals/protected- goals](https://www.simple.com/help/articles/goals/protected-goals) [9] [https://www.marketwatch.com/story/robinhood-quietly-stops- us...](https://www.marketwatch.com/story/robinhood-quietly-stops-users-from- signing-up-for-cash-accounts-amid-scrutiny-from-regulators-2018-12-31)

<comment><USER4> Which ones are the rip-off and so-so platforms, in your opinion? Thanks

<comment><USER2> I'm a SoFi Money customer.

PayPal Cash Plus has a ton of features, but there's lots of fees [1][2]. You earn no interest. It's not a good deal, other than it being familiar.

Square Cash, now known as the 'Cash' app, is a strange hybrid of a P2P payment network and a spendable balance that gives a debit card and you can direct deposit into. You earn no interest. It's odd. It targets a hip young consumer who wants ease and convenience and doesn't know any better. It has... some... virtues? Just not ones that make it worthwhile to use it instead of some rival that earns interest.

Depending on your exact use-case, it will vary which one of these is ripoff- tier and which one is so-so. I have a low opinion on nickel-and-diming fees for convenience features, so I find the PayPal Cash Plus offering the most grievous. Square Cash just has a weird use-case that isn't my use-case.

[1] [https://www.paypalobjects.com/digitalassets/c/website/ua/pdf...](https://www.paypalobjects.com/digitalassets/c/website/ua/pdf/US/en/PayPal_Cash_Plus_Short_Form_Disclosure.pdf) [2] [https://www.paypalobjects.com/digitalassets/c/website/ua/pdf...](https://www.paypalobjects.com/digitalassets/c/website/ua/pdf/US/en/PayPal_Cash_Plus_Long_Form_Disclosure.pdf)

<comment><USER4> Thanks. I use Square Cash to pay the cleaning lady on occasion, so I guess that's one use case. I suppose if I kept more of a balance I would look into interest rates and all of that

</comment></comment></comment></comment></comment></comment><comment><USER5> We [[https://griffin.sh](https://griffin.sh)] are building a bank-as-a- platform in the UK due to the friendlier regulatory environment compared to the US. We see a huge opportunity in this space and most of the existing incumbent institutions have stumbled into the space rather than building a purpose-built company to solve the issues that a platform bank can solve.

<comment><USER6> Your pricing models from what I have found are truly awesome. I've been quoted anywhere from £1 an account a month but needing £150k for setup fees to £250 for an account setup, and more monthly and other setup fees. In other words, very costly!

The only problem is that it's UK/EU only. It would probably be better if you can start adding ibans much like Iban First [0].

If Griffin can do something like:

1) Onboard anyone in the world, using e-kyc.

2) Have the ability to handle 50 other currencies.

3) Remittence funds using either Ripple (XRP) or IBM World Wire.

You would definitely have something special.

I know other companies such as getbabb [1] and railsbank [2] are trying to do something similar. But they are years behind.

[0]: [https://www.ibanfirst.com](https://www.ibanfirst.com)

[1]: [https://getbabb.com](https://getbabb.com)

[2]: [https://www.railsbank.com](https://www.railsbank.com)

<comment><USER5> Thanks! Those are the goals, among others (we also want to make it trivial for companies to issue card products or launch online lenders).

I suspect Getbabb may have difficulty with the crypto angle. Not clear. Railsbank does not intend on becoming a bank and operates with a lighter- weight regulatory framework than we're aiming for.

</comment></comment></comment><comment><USER7> Unfortunately, this post is very US-specific and completely ignored PSD2 and the concept of Third Party Service Providers (e.g. Payconiq).

The whole authentication scheme based on EIDAS is a shot show, though and really very horrible.

<comment><AUTHOR> (I'm the author and the OP)

Agreed! I want to do a much bigger international scan and am working with some colleagues in Europe and Asia.

I know a decent amount about open banking and have been gathering my thoughts (I.e. I keep writing and rewriting without finding the right angle) about it more generally. PSD2 is being perused primarily from a compliance perspective rather than a revenue generating perspective.

<comment><USER8> Hey! I'm from India and investing in the Fintech sector. Would be good to have a chat. Let me know how I can reach you.

</comment></comment></comment><comment><USER9> It's not hard to see what are disruptive models in fintech.

I have 5 bank accounts and you can see, based on the login method, how modern a banking software is.

There is a ton of potential just not be used at all.

Even without much change at the original banking software layer, putting a modern analysis tool upfront would make a huge difference. Just imagine having a secured mobile app which has limited permissions but allows you to perform a few basic things like checking your balance or transfering small amounts of money.

Or just a web ui which doesn't suck. If it doesn't suck, how about income analysis?

<comment><USER10> > _Or just a web ui which doesn 't suck._

I left Wells Fargo for a credit union. The online banking experience the credit union provides is not as nice.

It doesn't matter. I don't need all those features. The product is commodified.

And I'm happy to be gone from a horrible company that actively victimizes its customer base. I don't have to watch my back, and I don't have to regret that my deposits help Wells to build systems which extract maximum wealth from its most defenseless users and funnel that wealth to its executives and shareholders.

Crazy fintech innovation idea: how about just actually serving the customer's interests?

<comment><USER11> >It doesn't matter. I don't need all those features. The product is commodified.

I've encountered a case when it does matter. I tried applying for a bank online through multiple browsers, OSes, VMs, but never managed to get the form to work. Eventually I called them to apply - there was a valuable perk for me - but most customers just won't bother. A good software team would have spotted the drop in conversions instantly.

I told them about it, using the terrible online form. They weren't interested.

<comment><USER12> Heh, I was doing an online payment for a government agency. While my credit union's form asked for my account number for the gov, they really wanted a different sub-account number and kept giving errors.

When I called them to bring it up, they thought I wanted them to change the form just for me. They seemed even more surprised when I said "No, you should make this change for everyone, not just me".

</comment></comment></comment></comment><comment><USER13> don't be put off by the breezy, buzzword-heavy tone, this is a useful, quick glance at the landscape.

</comment><comment><USER14> "Demographic-focused products" or flat out racist products as they are otherwise known. How about we have products for categories that people choose to be part of, like "credit cards for stoner rock fans" rather than "credit cards for people who are Hispanic"! I guess that if that happens it'll only be weeks until someone launches "the card for the everyday Klansman".

Save us all...

<comment><USER15> I previously worked in the fintech space, on a product that provided remittance services to multiple countries – people in America send money home to India, Mexico, more.

The preferences among customers sending to each country were _meaningfully different_. These countries have differing economic climates, which means the people on the receive side have needs that are distinct among nations but fairly uniform among people within those nations. Similarly, people on the send-side tended to cluster into a handful of common industries (and therefore income brackets) depending on where they were sending to. Some demographics were, on average, high earners who were more rate sensitive than time sensitive. Others were lower earners who tended to send in emergencies and were time/delivery-sensitive more than rate sensitive.

Those financial products don't look the same. And it would be a mistake to try and build the average of the two and underserve everybody because you don't want to "look racist" by intentionally accommodating the varied needs of your customers.

It is a fact that many financial products have racist origins or overtones. Bank redlining has a dark history in America, and things like payday loans gouge customers who are desperate and unsophisticated.

But that does not make it racist to build financial products that fit a specific customer segment's needs in a way that _those same people_ find constructive and self-select into. I don't know which products you're speaking about specifically, but abstractly, a service that makes it easier and cheaper for hispanic people specifically to save money or provide for their families is a positive force in the world, IMO.

<comment><USER14> Well, unless said product excludes south asians, africans or, well.. me.. and it's a thin end of a wedge. A pro hispanic app may be a force for good (or not) but the next week you can make a gold plated bet that the best offers would be focused on folks with blue eyes and golden hair.

Offering a product is appropriate; excluding people from using it is wrong.

</comment></comment></comment><comment><USER16> We (RedCarpet.Cash) are also innovating in India on opening up to unbanked to credit (similar to Tala and Branch in Africa). These are typically customers that are new-to-bureau , so underwriting is particularly tricky.

We now have a regulated lending license from our central bank in India. Talk to us if you want to talk banking and credit in India.

</comment><comment><USER17> Does anyone know if anything in the space can allow for P2P microtransactions? Maybe in batches: people send each other a few pennies at time and cash out at the end of the month?

From my review it seemed like this is hard to manage with money laundering regulation but I would love to know if a fintech company can make this work.

<comment><USER18> Could you describe a more specific use case? In the US, P2P is much more difficult than consumer to business.

<comment><USER17> Say i have a platform (like a game) and I would like users to be able to exchange tokens of some kind, like kudos. But i would like those tokens to have actual value. So a user might buy 50 tokens for a dollar, gift them to teammates at end of matches for good team work. At the same time the user is collecting tokens for her good teamwork. At the end of the month the user might have given out 40 tokens but received 200. So she can now withdraw 210 tokens from her account for a value of $4.05. Or maybe those initial 50 tokens cant be withdrawn, only the 200 that were earned are redeemable for cash.

Also, is this possible outside of the US? How would this work for US based users?

<comment><USER18> Not sure about non-US law. In the US, you would need to register as a federal money service business (MSB), as well as in all 50 states (it costs about $150k in state level fees to do so). In addition to this, it is (from my research) incredibly difficult to find a bank that is willing to touch you with a 10ft pole. When they are, they usually charge high account maintenance fees (one bank told me 10k / month) due to the increased record keeping they need to do.

I agree that there is a massive need in this area. It is total non-sense that every online transaction costs 30 cents + 2.9%. I think it is very much a reason why the whole internet is still ad and tracking supported. It is not possible to bill people near the true cost of computation on an incremental basis.

It very quickly turns into a money launderer's dream. So I understand the regulations, however, they are incredibly burdensome and feel anti-competitive (re: banks). The best thing to build it off of is ACH, so if you go this route you're looking for the cheapest ACH provider you can find. It does make sense though, one ACH charge on the deposit and one on the withdrawal, which enable a lot of (free) transactions in between. It could save a lot in the fixed costs (the 30 cents part).

I'm talking to a lawyer next week about some exemptions to see if a C2B play makes sense in this space. P2P is hard (in terms of regulations) and you're probably best served by cryptocurrency. That too may fall under MSB laws, so it is best to talk to a lawyer.

<comment><USER17> Yeh, my research had basically dead ended in MSB regulations as well. I get the money laundering concern but also strongly feel that absence of micro- transactions has destroyed the internet and is now doing terrible things to our brains.

I should look more into ACH, i dont remember why i moved away from that direction.

I considered crypto but it seemed like too much of a bucket of worms at the moment.

I was hoping somewhere in the fintech survey someone was doing something to enable p2p microtransation. But it seems like the quest continues.

</comment></comment></comment></comment></comment><comment><USER19> Maybe I'm missing the whole point but I've never completely understood the concept of fintech. From what I've seen it's just moving banking services online isn't it? There doesn't seem to be much actual innovation in terms of tech

<comment><USER20> As a client of open banking and an employee of a startup in the fintech space, I'd say that its a little more nuanced than that. Token (my employer) provides a platform that enables PSD2 and RTS compliance, open API's, crypto-based security, identity and programmable money amongst others to enable banks and merchants to rapidly adopt open banking and remain complaint with legislation governing the industry.

<comment><USER19> Could you provide some insight into how the company was built up (if you know), how it is managed day to day, and how it is growing? Cause I'd imagine it takes a large team from a wide variety of disciplines to get started. Again it comes back to (to me at least) creating a new bank but with a stronger tech offering

</comment></comment></comment><comment><USER21> A couple things I don't see on here:

-Robo-advisory and asset allocation stuff, like Betterment, Wealthfront, and Personal Capital -They mention API companies, but don't have Plaid and Yodlee, which enable a lot of consumer fintech.

<comment><USER22> Those robo-advisors definitely shook things up, but it seems like the giants (Schwab, Fidelity, etc) have rolled out their own in order to compete. It actually is now a really competitive landscape where the incumbents can offer additional support for a fee which Betterment and Wealthfront aren't able. And a lot of people get comfort from knowing that they can pick up the phone and call someone.

Note: I'm not in that camp, I have multiple Wealthfront accounts (Investment, IRA, and child's accounts) and am really happy with it, but I don't need or want to ask anyone questions about my asset allocation</comment></comment>


Rob Pike on the reasons for Go's success - <AUTHOR> https://changelog.com/posts/5-things-rob-pike-attributes-to-gos-success <comment><USER3> The number one reason for Go's success is that Google backed it.

There are a lot of very nice languages out there. However, if you look at compiled languages, they largely need a company backing them. Java had Sun. C and C++ had AT&T and later Microsoft for C++. Objective-C had Apple. FORTRAN had IBM.

Don't underestimate the amount of resources and press that Google's support brought to Go.

<comment><USER4> I don't think the backing of Go is even comparable to Java.

Also Dart is a counterexample.

I think the biggest reason for Go's success is that is it incredibly accessible. Everything around and in Go is ergonomic, well documented, easy to understand and clean. It is a language that cares about the tooling and social aspects as first class concepts.

<comment><USER5> _" I think the biggest reason for Go's success is that is it incredibly accessible. Everything around and in Go is ergonomic, well documented, easy to understand and clean. It is a language that cares about the tooling and social aspects as first class concepts."_

And most programmers probably wouldn't even know about it having any of those features if it didn't have a famous backer like Google and a famous name like Rob Pike attached to it.

Marketing definitely makes a difference. Whether it made a critical difference in this case is certainly debatable, however, as some languages (like Python) succeeded even before they had buy-in and support from big names. Though, there again, Python had a lot of help from marketing.. it was just that it was marketing of a different kind, from its users rather from any company backing it.

<comment><USER6> > Python had a lot of help from marketing.. it was just that it was marketing > of a different kind, from its users [...]

Perl, Tcl, Python (all scripting, I know) are (iiuc) examples that came to be without a juggernaut behind them, but then to say they had a different kind of marketing behind them is sort of tautological, no? People liked those languages and talked about it. That's just human nature.

<comment><USER5> When mention the effect of marketing by users, I mean to distinguish that from choosing a language based on its technical merits. There's a certain amount of buzz and bandwagon effect that plays in to the success of popular languages, and, yes, languages like Perl, Tcl, and Python had it too.

That's a different sort of marketing, though, from the buzz created by having famous/respected names attached to the languges, like Go had in Google and Rob Pike.

</comment></comment></comment></comment></comment><comment><USER7> I'd say Go's success is almost nothing to do with its design, and everything to do with social factors.

Rob Pike was famous before its creation (within the relevant community). The language was designed within Google, and gained much hype from that. The effort to foster a community paid dividends.

Writing Go code for a living, I find it a very mediocre language. It's largely redeemed by its library ecosystem, which reflects not on the language, but the enormous size of its community and commercial backing.

If anything is noteworthy about its design, it's that it's simple (crucially, to those already familiar with C-like languages), and easy to bring people on board. What is lost for want of features and abstractions, is gained in human resource.

<comment><USER8> I have the perception that Go is more optimized for meeting _organizational needs_ than _programmer needs_ : it's simplicity and limited abstraction make it more difficult to write complex, serpentine code which is difficult to understand without a deep knowledge of the codebases.

For an experienced developer that might feel a bit like handcuffs: like you have to write more redundant code and handle things at a more literal level than you could get away with in other languages.

However, it tends to result in a codebase that's more resilient to turnover: if someone new joins the team there's going to be less specific understanding about the inner workings of the codebase they need to sit down and understand what they're looking at. It also limits the damage a mediocre developer can do through overuse of bad abstractions.

<comment><USER9> I agree with your last paragraph. However, I assert that the virtues you name there are in fact more for meeting organizational needs than programmer needs.

And that's fine. As a software system gets bigger, the organizational issues come to outweigh the programming ones.

<comment><USER8> I think we are in agreement. My assertion is exactly that Go favors organizational needs over programmer needs, and the examples I gave are evidence of that.

I'm not making a value judgement over whether that priority is a good or a bad thing, just an observation about the nature of Go.

</comment></comment></comment></comment><comment><USER10> Don't discount ease of distribution due to creating giant rolled up binaries.

The size of binaries isn't that big of a deal for servers any more. On the other hand, setting up a python or whatever env can be a pain, especially before docker really took off. Being able to push a Go binary and it Just Works is awesome.

<comment><USER8> It amazes me that Python is used in production back-ends. It's a neat language with a lot of nice libraries, but the environment management story feels so janky to me. Not to mention all the money you're spending on just the overhead of a relatively fat, slow interpreted language.

</comment></comment><comment><USER11> One point I would add is how easy it is to onboard people.

With minimal training every programmer can learn go very quickly and be productive in it.

This is very important for companies because you don't hire a Java, C# or whatever dev but someone who is a good fit for the company. And then you have him trained in no time.

That fact alone was the easyest sell I ever made to my boss.

</comment><comment><USER12> The title is a bit confusing, actually means things they attribute Go's success to.

<comment><USER13> _> The title is a bit confusing, actually means things they attribute Go's success to._

As opposed to what? I can't see another possible interpretation of the title.

<comment><USER14> It's backwards. Attributing things to Go's success vs. attributing Go's success to things.

Things someone attributes to Go's success would be things caused by Go's success. For example, the proliferation of stuff written in Go, the number of people making money as Go experts, the appearance of a Go entry in Wikipedia.

Things _to which_ someone attributes Go's success (i.e. so-and-so attributes Go's success to these things) would be things that caused Go's success - <USER2> as the things in the article.

Headline could've been done correctly, but perhaps the problems started with digesting something by Rob Pike and turning it into a listicle. Which then has to have both its listicleness ("five things") and the presence of Rob Pike, advertised in the headline. But I might be being cynical.

</comment></comment></comment><comment><USER15> The reason why Go is successful is because it's a very, very opinionated language, and for the most part its users agree with those opinions. And the opinions that they don't agree with don't detract as much as the opinions that they like.

By being highly opinionated and predictable, it makes it easier to digest. I especially like the reformatting capabilities so everyone's code looks the same. The more people program the same, the more predictably the code behaves and the less overall problems.

</comment><comment><USER16> I think Go is a great "80%" language.

By that I mean it isn't the best in any criteria that you'd use to evaluate a programming language: not the best type system, not the fastest, not the safest, not the best concurrency, not the best package manager, not the largest ecosystem, not the easiest, and so on.

However, it's very good, sometimes great, in many of these criteria. Many languages try to be the best at one thing, while Go is good enough in many things.

I think that's the main reason for its success.

<comment><USER17> That would all be true if Go actually were a success. It might be, someday. But it is still way, way too early to say.

</comment></comment><comment><USER18> Unpopular opinion - the lack of generics helped. That reduced the surface of the language a _lot_ its simplicity was a breath of fresh air.

It made Go a very effective language for "just writing some code".

</comment><comment><USER19> Incidentally the title (and similar line in the body) are incorrect descriptions of the content; these are not things that Rob Pike _attributes to_ Go's success, but things to which Pike attributes Go's success. The current phrasing literally reverses cause and effect.

</comment><comment><USER20> Suggest: "Things Rob Pike Attributes Go's Success to". Dangling preposition, but what we're actually talking about.

</comment><comment><USER21> I reckon Swift is the exact opposite of every point mentioned in the article. Yet it has achieved tremendous success too.

<comment><USER22> Swift has the advantage of being the Javascript of iOS.

<comment><USER23> curious, in what ways is swift the "javascript of ios"?

<comment><USER7> Probably in that it's the language with first-class support on that platform. Adoption of the language is encouraged more by the target platform's support for it, than by its independent merits as a programming language.

I'm not sure I'd agree though; Swift shares this position with its predecessor Objective-C. Swift's success versus Objective-C can be attributed to its relative merits as a programming language.

<comment><USER22> Right, but it's much easier to be a successful language when you're only competing with one other language as opposed the whole field of options.

</comment></comment></comment></comment></comment><comment><USER24> Despite the fact that what's written is the title of the linked article, it seems that these are "[5] Things Rob Pike Attributes Go's Success to" (i.e., the causes of the success), rather than "[5] Things Rob Pike Attributes to Go's Success" (i.e., things caused by that success).

</comment><comment><USER25> A sideways grammar question: shouldn't the title be "Things Rob Pike attributes Go's success to"?

<comment><USER26> In the words of Jack O'Neil, how dare you end a sentence in a preposition?

<comment><USER25> "Things to which Rob Pike attributes Go's success", whatevs. My point is that the direction of attribution according to the title is the other way around from that in the article.

</comment></comment></comment><comment><USER27> For me it's the lack of objects and multiple inheritance that makes the language so simple and thus so inviting.

</comment><comment><USER28> "It doesn't matter how good the language is if nothing's written in it."

Can't emphasize that enough!

</comment><comment><USER29> I think the compilation speed and goroutines/CSP enticed a lot of people, as well. Those are or were Go's unique selling points IMO

</comment><comment><USER30> I find this list a bit disappointing and not particularly insightful. I think that its because a lot of success is timing and luck (in addition to something being good), so it's like asking a startup founder why their startup was successful and not another.

For example:

\- is errors on unused variables/imports really such a bold new stroke or that controversial? \- is a formal spec that unusual? how many Go developers have ever looked at the spec? \- was getting Docker that big of a deal other than having a good dogfooder (vs it being "killer")

I agree with the open source process, kudos for them for allowing the community to help them get things right (well, some things, Go has a bunch of rough edges).

IMHO, its:

\- Good runtime perf \- Great built in libs \- Built in cross-compilation and shrinkwrap binary that does not require a runtime installed on target machines \- Good use of opinionated tooling (go fmt, go test, etc) that take a bunch of concerns off developers plates

</comment><comment><USER31> I don't see much success to begin with.

Thought they did things in the article right.

Having formal spec, and focusing on code stability is important, and puts them apart from 9 out of 10 of every new programming languages, but that is only one item on the long "not suck" list.

The lack of proper package management at the start left too much of a bad aftertaste.

I believe they must have knew that shipping go with git as a makeshift package manager was a bad idea, but for some reason did it anyway. I think this alone turned away half of early adopters.

Then golang went through a long epopeia of making the package ecosystem work outside of a single company deployment, and lost a lot of developers along the way again.

</comment><comment><USER32> He forgot the most important factor to Go's success: ignorance is bliss. Imagine releasing such a mediocre language only a decade ago an still be very popular

<comment><USER33> Can you elaborate?

<comment><USER32> Criticizing Golang here in HN will get me banned for causing flamewar. However, you can find lots of reasonable criticism on Golang just by googling. IMO Golang is one of the worst languages I've ever seen considering it was only started a decade ago.

<comment><USER34> It doesn't seem like you have any genuine complaints about the language, but are merely interested in causing flamewars.

<comment><USER32> Once I listed around 10 technical criticism points here a year ago without insulting and I got banned. I am just not going to waste a day trying to convince anybody with anything while most of the criticism has been stated a million times by a million people all over the internet.

<comment><USER25> Well, I haven't read it, nor have I seen much other criticism of Go. If you post here, it is up to you to make your argument, not for your readers to seek it out.

<comment><USER9> I have seen plenty... but not all that much substance. Much of it had the form of "How could they be so stupid to make those design choices!", as if the author's preferred approach was The Only Right Way. I've seen criticism that said "They _couldn 't_ have known anything about Modula 3 for them to make that choice!", when in fact Rob Pike talked about stealing an aspect of the object file format from Modula 3. Yeah, he knew it, and probably knew it in more detail than the critic did.

Apart from "They should have done it the way _I_ like!", the main criticism I have seen is lack of generics. That's a pretty common complaint, from a lot of different people.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> No matter how much you like Go, this true:

 _It is way, way too early for him to proclaim Go a success._

The time for that is ten years on. Imagine reading something so self- congratulatory, today, if the creator of Ruby had written one back when Ruby was only as old as Go is now. It would be poignant.

Go will be a success when it is complained about as much as other languages, by people who would really rather be using something better. It is nowhere near that point.</comment>


HYPE Framework by Joshua Davis and Branden Hall  - <AUTHOR> http://www.hypeframework.org/

<comment><USER2> Hi! I'm one of the creators (Branden). For folks that are interested - HYPE is a creative-coding framework for ActionScript 3 (Flash). The idea is that there's a lot of power in the language, but there are a lot of designers and other new developers that have a hard time tapping into that power. That's not to say it's just for "n00bs" - HYPE can make many tasks just plain easier for developers of all stripes.

Unlike other frameworks with the same kinds of goals, HYPE doesn't put training wheels on the language. Instead it makes things easier and more consistent. For example, if you're working with time with HYPE, then it's a Rhythm - no matter what kind of "time" frame-based or clock-based. HYPE bridges the different APIs so that you have ONE way to think about time.

Josh and I aren't trying to save the world - we think HYPE is pretty cool and wanted to share. He's globe-trotting high-end designer and I own a software development company that does, well, just about everything. But we met back in 2001 at a Flash conference and the Flash community has always been important to us and our careers. This is our way of giving back to the very vibrant that helped us launch our careers.

As for the folks who see stability - I hate to say it, but I'm fairly sure that's a player issue. I'm kicking around Chrome with the 10.1 beta player and I'm not having any issues.

<comment><AUTHOR> Hello Branden. Kudos for luring me back into ActionScript ;-)

I was wondering, would you guys be interested in having an Open Sound Control implementation in the framework? It's like MIDI but runs over the network. It might prove very handy for hooking up with Arduino and other devices, like control surfaces with OSC support.

Edit: Maybe a mailing list, Google Group or a forum wouldn't be a bad idea. I'll add the suggestion to GitHub as an issue for now, just so you now someone is going at it.

<comment><USER3> Hello. I'm have some experience with OSC in AS3. So, it's really easy to implement OSC support in HYPE framework. I'm just testing some new interactive apps now and using HYPE as frontend for it. If it's needed i can wrote some AS3 classes for it. What do you think about it, Branden?

</comment></comment></comment><comment><AUTHOR> They moved from hype.jushuadavis.com to hypeframework.org today. Seems like this thing is getting ready to take on the world. I wonder if they manage to catch up with Processing. Oh and they're hosting the project at GitHub, fork and commit :-)

</comment><comment><USER4> It would be nice to know what the framework is for rather than who made it.

<comment><AUTHOR> Sorry about that.. Coming from a design background, so Joshua Davis is such a household name to me, that it seemed more straightforward to just attribute authors, rather than compound a short-enough description for the title. These are my first posts, I'll learn :-)

</comment></comment><comment><USER5> Offtopic: It crashes my Chrome tab every time I visit the site :-(

</comment><comment><USER6> This looks really cool. We still do a ton of Flash development and this looks worth playing with.

</comment><comment><USER7> joshua davis is a brilliant guy - i took a class with him a few years back at SVA and the things he was doing with Flash at the time were absolutely mind blowing... Haven't really looked into Hype too much but I'm excited to see where he and it go...</comment>


How Oregon's Second Largest City Vanished in a Day - <AUTHOR> http://www.smithsonianmag.com/history/vanport-oregon-how-countrys-largest-housing-project-vanished-day-180954040/?no-ist

<comment><USER2> As a resident of Portland, I was surprised at the historic levels of racism, though I wasn't surprised at the decreasing population of minorities. We have become a mecca of white hipsters, it's kinda crazy watching the transformation of various neighborhoods in human-scale timelines. We are talking 12 or less months to take a cheap/quiet neighborhood and have it turn into a new hotspot with new multi-story apartment buildings. See Division street for the latest.

Another note: the historic city of Vanport is now a racetrack, owned and operated by the city. PIR circumnavigates the old town perimeter, you can see in these two photos:

[http://www.corvetteracing.com/tracks/trk_img/portland/portla...](http://www.corvetteracing.com/tracks/trk_img/portland/portland.jpg)

[http://thumbs.media.smithsonianmag.com//filer/ac/46/ac46ca81...](http://thumbs.media.smithsonianmag.com//filer/ac/46/ac46ca81-69dc-4edd-9b73-56eeb309a629/vanport006.jpg__800x450_q85_crop_upscale.jpg)

<comment><USER3> How bad is the racism in Portland, Oregon?

My girlfriend is Japanese and doesn't speak a lot of English. We were thinking of moving there, but I'm worried about this. She is a ballet dancer, so I assume artists mostly everywhere (in the US--and Canada--I'm originally from Canada) are more welcoming. But I understand there are less minorities in Portland than where we are right now (Los Angeles).

<comment><USER2> Racism is not apparent unless you are good at picking up subtle/subconscious racism. Meaning overt racism or hostility is very rare.

Essentially it's a non-issue, come enjoy all the good things about the city!

<comment><USER4> Racism is not apparent if you're white, it is probably more accurate to say. You have to really dig to learn about the experiences of people of color, living here. Having such a tiny black population helps reinforce this; there just isn't much chance to see or interact with (or see someone else behave badly toward) someone of color if you're white in Portland.</comment></comment></comment></comment>


Things nobody told me about being a software engineer - <AUTHOR> https://anaulin.org/blog/things-nobody-told-me-about-being-a-software-engineer/ <comment><USER2> Serious question, I've been programming 15 odd years, somewhere around a million people used my code last year, I've written entire sites on my own that happily run today.

I don't write tests. Projects that already had tests, those tests caught a single bug in about 3.5 years of working on that code base.

Yes, 1 bug. We'd have picked it up anyway when actually testing it.

Why do you feel #1 or #16 are actually true?

Am I (and colleagues) a magic snowflake, or are tests a massive waste of time, or is it somewhere in the middle?

<comment><USER3> I'm in the same boat and have thought a lot about it. The biggest correlation I see from automated testing advocates is that they are usually using dynamic languages for non-trivial core business logic. I mean that's pretty much it. If you're using a dynamic language for such things, like anything past 10k lines of code, then I agree, you pretty much need automated tests since they're partially filling in the role of a compiler and type system. It begs the question of why to use dynamic languages for tricky business logic, but that's a whole different flamewar!

If the testing advocates are using something with even a basic compiler/type- system (e.g. Java), then IME it often comes down to not being fluent with the design patterns, tricks, IDE shortcuts/plugins, tools, etc. that compilers and type-systems can provide to work with you to catch bugs at build time. I mention Java because it's a language that allows you to keep writing "dynamic" code and avoid the compiler/type-system to a good degree if you want (and boy do people want to). E.g. passing top-level Object types around and casting, using HashMaps instead of a proper Class, heavy reflection use, "stringly" typing, etc. Unlike say Haskell or Rust which force correctness down your throat to a much higher degree.

Obviously no matter the language choice, their comes a point where automated testing becomes cost-effective (e.g. safety-critical software). At that point however there should be formal methods and such in play also. And I'd say for the majority of us working on CRUD apps, we're not at that cost-effectiveness point.

<comment><USER4> Currently you read a lot about unit testing. Usually used badly (testing solo methods or classes).

What you want is E2E tests: test that your product conforms to its specifications. Automate the test procedure your testers have.

</comment></comment></comment><comment><USER5> > 8\. That having decent people skills makes my technical skills suspect, in > the eyes of some.

I'm questioning how true this is, especially in today's world of whiteboard interviews and open office spaces. My personal experience seems to suggest that better people skills suggest better technical skill, especially to management.

<comment><USER6> Very true. Back when I was trying to become a dev I'd show up in a suit and try to be as socially pleasant as possible. When I started dressing more sloppy, not shaving, etc. and being slightly more awkward (mimicing the interviewer) I actually started getting offers..

<comment><USER5> I think that fits into 4 more than 8. You have good enough people skill to recognize that you're different than the interviewer, and then putting up an facade to convince them you're like them.

People with poor people skills incidentally act similar to other people with poor people skills. People with good people skills can _choose_ to act similar to people with poor people skills.

</comment></comment></comment><comment><USER7> > That my gender or my age or my ethnicity or my sexual orientation or my > weight or my clothes might (will!) have an impact on the perceived quality > of the software I build. (Or, in other words, that this is not really a > meritocracy, and doing a good job is not nearly enough.)

Does there exist any body of proof around this one? Would like to see it and add it to my corpus of knowledge

<comment><USER8> Yes. One typical test is to have people evaluate identical resumes, with the thing being checked for constituting the only difference (e.g. "ethnic" ames vs. "regular" names).

Other data points are gathered by studying success at finding internships. A recent study found a rather staggering difference - names indicating local ethnicity got a place in 1-2 letters, while some other ethnicities had to write over 20 (if memory serves).

You'll want to find studies for the country you're living in, as the parameters inevitably vary (e.g. which ethnicities to compare). I don't think the outcomes cary much, but i didn't do a comparative study on the literature.

<comment><USER9> Maybe names shouldn't be disclosed until the actual hiring is done.

<comment><USER10> It's not that simple since it's essentially impossible to do a true blind hiring process, due to the fact that interviews happen in person (on video, physically, etc.) and so hiding the name can get a foot in the door but biases take over once the interviews start.

</comment></comment></comment></comment><comment><USER4> > why is this not a standard feature of testing frameworks? I want some way to > re-run tests flipping some of the assertions, to make sure they are testing > what I think they are.

That's mutation testing and it the next big thing for tests.

</comment><comment><USER11> The author was maybe the best engineer I've had the pleasure to work with directly in my 13 years in the industry. What a treat to read her internal thoughts on the job. Highly recommend her other posts on e.g. measuring performance of engineers [https://anaulin.org/blog/why-do-we-have-performance- evaluati...](https://anaulin.org/blog/why-do-we-have-performance-evaluations- anyway/)

</comment><comment><USER12> Hand-wringing and debating about how we should use the bug reporting system, triage, sprint planning, user stories, burn-down charts, etc. will keep the leads and PMs busy for decades on end, even if the tools never change.

</comment><comment><USER13> Re #18: It exists, it's called mutation testing, and it's awesome (I only know the Java variant called [http://pitest.org](http://pitest.org))

<comment><USER14> Stryker is a JS version. Google has some interesting whitepapers about their usage of mutation testing as well: [https://ai.google/research/pubs/pub46584](https://ai.google/research/pubs/pub46584)

</comment></comment><comment><USER15> Don't agree with all the rules, some depend on where you work (e.g, we don't have a lot of tests in our ~30 year old codebase) .

However, Rule #2 is true for me. Accidentally pressing those keybindings in a textfield that does not accept them has become common.

<comment><USER16> Try pressing them in other situations and you might be surprised how often they work, Youtube player for example to pause, forward/rewind.

</comment></comment><comment><USER17> > _20\. That it is all people, all the way down. They are as cute as turtles, > but don't have hard shells._

A thousand times this. I used to be amazed by people's intelligence. Now I am amazed by their kindness.

<comment><USER18> This analogy is lost on me. Could you explain?

<comment><USER19> [https://en.wikipedia.org/wiki/Turtles_all_the_way_down](https://en.wikipedia.org/wiki/Turtles_all_the_way_down)

</comment></comment></comment><comment><USER20> Pretty much all of these ring true for me (20+ years in the industry).

</comment><comment><USER21> Frontend programmers are very, very undervalued, I 100% agree. This is because they build the things that your user interacts directly with, where the "rubber meets the road", so to speak. Good FE coders are worth their weight in gold, to any company that has users using their software.

</comment><comment><USER22> On this point about testing... what's still surprising to me after twenty years of doing this is how many errors aren't _technical_ errors, but rather because someone forgot / failed to document / communicate how something was supposed to work. So something fails, fingers get pointed in the direction of the technical team, but the root cause is all too human.

</comment><comment><USER23> Regarding #2, I have a harder time switching between touch screen vs. touch pad than I do between text editor key bindings. I seamlessly shift between vi and emacs throughout the day depending on what I'm editing, but put my laptop and tablet side by side and I am forever trying to touch the laptop screen.

</comment><comment><USER24> > PHP is cool again

Come again?

</comment><comment><USER25> > That you can have more than a 100% base salary difference doing the same > job, depending on if you work at a small startup or one of the large > companies.

Even among and within large companies. Somewhat less so within, usually. But one element of that is the (US?) taboo around sharing compensation info.

</comment><comment><USER26> > That the new Altavista competitor would become a less bad Microsoft Office. > That the new version of My Space would help damage democracies the world > over.

And that programmers would get a reputation almost as bad as bankers ...

<comment><USER27> I think it is more enterpreneurs and startup founders who get all the hate, not so much run of mill programmers.

</comment></comment><comment><USER28> The thing no one told me is the number of requirements folk, like ux, ba's that don't understand their role in agile development and responsibilities in getting solid requirements across to developers

</comment><comment><USER29> Lost me at #13. CSS is not a programming language, nor is it complex..

</comment><comment><USER30> funny how people confuse being told something and integrating it. We're "told" millions of things (more exactly we read all day long), some of it sticks some of it doesn't, it has nothing to do with what we believe is important later in life.

I think we have to stop with those things I wish i was told/nobody told me/I would told my younger self. We just decide some points are salient with experience, and I'm pretty sure the list is different after every decade in life.

</comment><comment><AUTHOR> I'm working in Drupal 8, which makes rule 17 = true.

</comment><comment><USER31> How about: one's abilities count for about 10%, and skill level in high school politics the other 90%.

</comment><comment><USER32> Article full of hyperboles, without-proof points and self-pity. Doesn't bring anything useful.

</comment><comment><USER27> That people who write all those cool blogs/talks and people who write good code or manage projects in great way are different in important ways. Meaning what is good tech/code and what is hip on blogs and forums are two distinct groups. Meaning what is good management is completely different then both feel good and look at me I tough bs you find on blogs.

</comment><comment><USER33> "That my gender or my age or my ethnicity or my sexual orientation or my weight or my clothes might (will!) have an impact on the perceived quality of the software I build."

After nearly three decades writing software, I'd say if that's the case, you're probably at the wrong place. With such circumstances I'd suspect a whole lot of other bad things are probably true, too.

<comment> dj-wonk I interpret this comment as saying: if you find yourself in that kind of situation, look around and try to find other opportunities. In other words, life is too short.

I also can see the other side: life is often not fair, particularly in the short-run. Life constraints such as geography are real barriers for many people.

<comment><USER33> You are not only an excellent interpreter, but an astute reflector.

</comment></comment></comment><comment><USER34> How about: When searching for a new job, your previous years of experience, github repos, personal projects, consulting gigs and all other relevant information about your ability to produce quality software will not matter at all compared to your ability to do leetcode style programming challenges.

<comment><USER20> That depends on the company you are wanting to work at, though. I refuse to work at companies that give those kinds of bullshit puzzle interviews.

<comment><USER35> > I refuse to work at companies that give those kinds of bullshit puzzle > interviews.

Good luck finding a job then. All companies of all sizes and locations do this.

<comment><USER36> Um, no, they don't. I know of at least one exception - the one I work at. And I'm part of the interviews for our team, so I know how they're done.

<comment><USER35> Ah ok. I 've been interviewing bunch of places recently. All of them seem to have identical format.

I remember there a site I saw here HN that listed companies without whiteboard interviews. Can't think of the name.

<comment><USER36> Oh, no, we do whiteboard interviews. But they aren't those kind of stupid puzzles. We just have candidates write a little code, and do a little design. The "write a little code" is _not_ one of those leetcode questions - it's really a simple problem. We just want to watch them code, and to hear what they're thinking as they do it.

<comment><USER37> This is the way to do it. How an applicant applies process to problem solving and communicates their ideas, is way more important than being able to regurgitate bubble-sort.</comment></comment></comment></comment></comment></comment></comment>


Webfs: A Filesystem Built on Top of the Web - <AUTHOR> https://github.com/brendoncarroll/webfs <comment><USER2> Remember WebDAV? It was a similar concept, but never really found its footing and most of the implementations were pretty shaky. I always thought it was a good idea though.

[https://en.wikipedia.org/wiki/WebDAV](https://en.wikipedia.org/wiki/WebDAV)

<comment><USER3> The rfc is _super_ dumb though. For instance, when handling a PROPFIND request (more or less listing files / folders), it's not mandatory for the server to honor the Depth header (how many levels are returned). There is also no mechanism for the server to advertise whether or not it's honoring the Depth header. That means the Depth header is useless because the client has no way to know whether there was only one hierarchy depth or if the server did not honor the Depth header. Therefore, your only option is to always scan the full hierarchy using PROPFIND at each level.

The RFC is full of that kind of crazy gotchas, not to mention the overuse of "MAY" or "SHOULD" which will drive you crazy if you try to implement a client / server.

If you want to go further in insanity, just look at how crazily over engineered the locking mechanism is. I have no words for it.

[https://tools.ietf.org/html/rfc4918#section-6](https://tools.ietf.org/html/rfc4918#section-6)

Unfortunately, even if you _think_ you implemented the whole rfc correctly, your implementation will work with almost nothing as not that much implementations are any good in the wild. A useful WebDAV implementation must be full of vendor-specific workarounds.

<comment><USER2> There was an even worse protocol back then called CMIS. It was an attempt to define a standard API for content management which turned into this absolute enterprise monstrosity that would make SOAP blush. It was also impossible to implement.

It's interesting looking back but I think developing a standard has a higher chance of success coming from some dude's GitHub than it does with $1T of market cap behind it.

</comment></comment></comment><comment><USER4> I am working on a similar idea myself. Here is a video demo from a month ago:

[http://mailmarkup.org/sharefile/demo1.mp4](http://mailmarkup.org/sharefile/demo1.mp4)

<comment><USER5> Watching now.

1\. Thanks for the direct mp4 link.

2\. Consider reducing your desktop resolution for webcasts. I can see that there are dialogues open. I can't for the life of me see what's presented in them.

</comment></comment><comment><USER6> Hey everyone, I'm the author of WebFS. Happy to answer any questions.

<comment><USER5> I'm going to assume you're familiar with Plan9OS's WebFS and 9P Protcol?

[https://en.m.wikipedia.org/wiki/9P_(protoco)](https://en.m.wikipedia.org/wiki/9P_\(protoco\))

I've been kicking around similar ideas (nowhere near implemented) for a while:

[https://old.reddit.com/r/dredmorbius/comments/6bgowu/what_if...](https://old.reddit.com/r/dredmorbius/comments/6bgowu/what_if_the_web_was_filesystemaccessible/)

<comment><USER6> I was not aware of Plan 9's WebFS. It looks like it presents websites in the local file system. IPFS can do something very similar with its content. I have used that before.

The name here comes from using web resources (referred to by url) as building blocks for a file system. I guess "Web for FS" rather than "Web as FS".

<comment><USER5> The notion of remote services accessed via local filesystem dynamics is pretty well established. Among implementations:

\- NFS, particularly with the Solaris-originated concept of automounts over a /net mountpoint.

\- Various virtual filesystems. Midnight Commander ("mc") offers several of these, including archive formats (tar, cpio, afio, rpm, deb) and remote (FTP, SSH).

\- SMB/CFS/Samba

\- Various FUSE filesystems, including again ssh, ftp, and others. These generally require specifying in advance specific mountpoints.

The notion of on-demand access to remote resources over protocols (e.g., http/https, or others), under filesystem dynamics, is interesting -- you can use any general tool, utility, or application for access, mediated through the filesystem by way of drivers, rather than a specific application (e.g., Web browser, FTP client, etc.)

There are numerous issues. In particular, applications tend not to respond well to remote resources disappearing, changing, or failing to return from change requests -- NFS's behaviour with nonresponsive remote hosts is ... notorious.

Consistency, availability, and partition resistance (CAP) are long-standing concerns, and there's no way to solve for all three. I'd add latency as another major consideration.

[https://en.wikipedia.org/wiki/CAP_theorem](https://en.wikipedia.org/wiki/CAP_theorem)

The general notion of managing and tracking changes locally, and pushing them to remote, has merits. I'm _not_ aware of a "gitfs" ... though of course, one does exist, TIL: [https://www.presslabs.com/code/gitfs/](https://www.presslabs.com/code/gitfs/) The notion of using git (or other versioning system) as a mediator for remote/local revisioned access seems to have merits. Obviously not viable for very-high-variability systems, but adequate for many occasionally-modified resources.

I'm not sure if you're looking at using your WebFS itself as a _publishing_ mechanism, though in general I think I'd recommend _against_ doing this. For small-n peer-to-peer distribution that's probably workable, but for large- scale provisioning-and-request systems, relying on HTTP or other established transports is likely more sensible.

One area I've recognised as being particularly fraught is the whole notion of security and privacy. Providing unfiltered local access to remote resources which may change arbitrarily is a great way for allowing malware onto local systems -- your transport layer should probably implement some level of security and mounts deny direct execution of content. The fact that remote content could be copied to an executable mountpoint remains, and would make numerous attacks possible.

Similarly: access, update, write, and/or publishing actions all leak considerable information which could be of concern to specific users or organisations. Hash-based indexing (already addressed in this thread) being only one of several such vectors.

<comment><USER7> SMB/CFS/Samba are not meant to be used directly over the internet. eg. without a tunnel. The best alternative right now is Dropbox unless you are a developer.

<comment><USER5> Neither, really, is NFS.

The point isn't whether or not these are protocols that are utilised on the naked Internet, but that they offer access to network services via filesystem semantics.

That is, rather than use a specific client or API to access remote content, or copying it locally as a separate step, you simply open a file in an existing application, or, within a program, using fopen() or equivalent operators. The networking is ... translucently ... handled in the background by the filesystem interface and/or driver(s).

The _reasons_ SMB is not generally used or advised over the Internet are worth looking at, as this touches on many of the security / privacy concerns of any such service.

</comment></comment></comment></comment></comment></comment><comment><USER8> HTTP is basically a filesystem protocol that supports magical files -- not too unlike sharing named pipes over SMB. Not too unlike what it'd be like if one could open(2) AF_LOCAL sockets on Unix/POSIX systems instead of having to connect(2) to them -- if that had been so in 1982 in BSD, it would be true now, NFS would have supported the same, etc.</comment>


Ask HN: Efficient API to calculate distances? - <AUTHOR>

Google maps seems rather slow for this.
For ~200 displayed fields, need to calculate distance (by road) between a user-input zip and various other zips. Suggestions?
The project in question is finding autocross events within x miles of a user-entered zip, hence the need to do this dynamically, rather than store the data. <comment><USER2> You can trade some accuracy for speed by calculating the straight-line distance and then increasing it by some factor to account for turns and detours. Converting zip codes to latitude/longitude is a trivial process if you have a database (e.g. MaxMind) or API (e.g. SimpleGeo). You can calculate straight-line distance between two lat/lon pairs pretty easily (<http://jan.ucc.nau.edu/~cvm/latlon_formula.html>), and then pad this number to account for geography (e.g. 20 miles as the crow flies is ~27 miles driving).

If you can sacrifice even more accuracy, you can use 50-70 miles per degree latitude/longitude and just find results within a certain range of a given lat/lon pair.</comment>


Jeff Bezos apologizes for 1984-Kindle debacle - <AUTHOR> http://www.amazon.com/tag/kindle/forum/ref=cm_cd_ef_tft_tp?_encoding=UTF8&cdForum=Fx1D7SY3BVSESG&cdThread=Tx1FXQPSF67X1IU&displayType=tagsDetail

<comment><USER2> Actually, I think Amazon did the anti-DRM crowd (myself included) a favor by this whole debacle.

They gave a very public example of the problems with locked/controlled content and how it tends to directly oppose the consumer.

When you make a purchase for the Kindle, you're not buying a book, you're buying the right to view the content of the book in a limited context.

<comment><USER3> _When you make a purchase for the Kindle, you're not buying a book, you're buying the right to view the content of the book in a limited context._

Actually, that's what you do when you purchase _any_ copyrighted work. Copyright law prohibits you from doing a wide variety of things with some things you _buy_ \- copying and creating derivative works being the big ones.

<comment><USER4> Not quite, copyright law prohibits you from doing some things with the presentation of the information such as distributing copies and creating certain types of derivative works.

I am free to do virtually anything with the original including archive for all eternity, loan out relentlessly, sell, or chop into small sections and sell the sections.

I can even copy within certain contexts (archival copies of software, for example) and I can create certain types of derivative works (parodies and certain limited educational uses for instance).

<comment><USER5> > am free to do virtually anything with the original including archive for all > eternity

You are not allowed to show to an audience a movie you bought on a dvd. There may be other examples.

<comment><USER6> You are allowed to watch it with your friends though, of course that might depend on the country you live in. In Germany you are even allowed to give copies to close friends and family members (but you are not allowed to break copy protection).

</comment></comment></comment></comment></comment><comment><USER7> This apology doesn't fly for me. The issue is not with their use of discretion in yanking paid-for content off users' devices. The issue is that they gave themselves that ability to begin with. Once I see that "feature" removed, I'll be happy.

<comment><USER8> I actually think it is a textbook apology - short, no excuses and straight to the customers. I think having a quick apology is more important than presenting some kind of ten point plan as the first step.

But I agree that the end of the matter is the solution, not the apology, and we have yet to see how this ends.

<comment><USER9> If Bezos wanted to fuck around with his apology, he'd have used more cushiony words. "Stupid, thoughtless, and painfully out of line with our principles" doesn't allow for much leeway with how he views Amazon's actions here. He's saying straight out that they made a mistake.

</comment></comment></comment><comment><USER10> I had no idea Jeff Bezos had a real Amazon account which he used to post reviews (guess that shouldn't come as such a surprise.)

Always entertaining to hear a man worth $8 billion call something expensive. :)

[http://www.amazon.com/review/R11KACPP85PGCA/ref=cm_cr_rdp_pe...](http://www.amazon.com/review/R11KACPP85PGCA/ref=cm_cr_rdp_perm)

<comment><USER11> Although he's a billionaire, I doubt his sense of value has changed. Especially since he is so close to retail.

</comment></comment><comment><USER12> It rings a little empty to me -- I mean, it's one thing to say you screwed up, but it's another to make it right. Has there been any actual action taken or is it really just: "Sorry, we shouldn't have done that... but we're not sorry enough to undo it."

<comment><USER13> Undo what? Give people back their illegal files?

<comment><USER14> why not?

any other website, they'd just remove the file from their store, to stop future sales, but wouldn't touch already downloaded files.

For all intents and purposes Amazon "hacked" their customer's private property

<comment><USER13> > why not?

Because that would be illegal? Amazon doesn't own the copyright to 1984 either you know...

The OP wasn't complaining about the handling of the original situation, he was complaining about how Amazon refuses to reverse their action. The answer: they can't.

<comment><USER14> because Amazon sells the legal version of 1984, surely they can cover the cost to give the customers what they paid for

[http://www.amazon.com/Nineteen-Eighty- Four/dp/B002A9JO9W/ref...](http://www.amazon.com/Nineteen-Eighty- Four/dp/B002A9JO9W/ref=sr_1_3?ie=UTF8&s=books&qid=1248388330&sr=8-3)

<comment><USER15> The 99¢ paid would only buy the first chapter of 1984. I'm not sure customers would appreciate getting what they paid for in this instance.

</comment></comment></comment></comment></comment></comment><comment><USER16> Conspicuously absent from this apology is the explicit promise that they won't do it again.

</comment><comment><USER17> Perhaps a little of Zappos' culture is filtering through (though I doubt it). The most important thing that Amazon has not addressed is labeling the kindle versions with clear and concise information as to the DRM that the publisher chose (i.e. number of devices, limitations, "the publisher through us can revoke this copy from you at anytime" blurb, etc..). If they did this then I'd say they have integrity and sales of kindle versions of books would be reflective of the publishers' use of DRM. By not doing this they're trying to play both sides - appeasing the publisher at all cost and then giving a weak apology to the customers with no concrete actions to address the problem (saying "We will use the scar tissue from this painful mistake to help make better decisions going forward, ones that match our mission" is just marketing speak for - we'll continue doing what we're doing since we can't point you to concrete steps that we have taken).

</comment><comment><AUTHOR> Putting into practice "obsess over customers."

<comment><USER14> protecting the customer from themselves

</comment></comment><comment><USER18> _That's_ the best damage control they can come up with? I realize that Bezos probably thinks he slumming when he delivers a personal apology, but I'm less impressed with Bezos than Bezos is.

I would have liked an explanation for what happened. I would have liked to see what steps were being taken to see that it never happens again and that it couldn't happen again. I would like to see what is being done to recompense the customers (have they been shipped complimentary hardcovers of the yanked books yet?).

This apology fails on all three fronts.

</comment><comment> onreact-com It took him a week of bad press to apologize! This means it's not sincere but just an attempt to appease the raging crowds. He just figured out after a week of horrible publicity that no other tactic will work so he had to apologize. Next time apologize immediately so I can believe you are truly sincere.</comment>


How does Opera generate revenues - <AUTHOR> http://www.opera.com/company/investors/faq/#faq3

<comment><USER2> _Adobe and Macromedia are important partners in this segment._

It also mentions a partnership with Canal+, which turns out to be from 2001.

I think this page could use an update, and doesn't really shed much light on Opera's revenue.

</comment><comment><USER3> [1] Mozilla get's it's money from Google Search too.

[2] I wonder how many of us use Opera as their main borwser?

<comment><USER4> Re: [2]

Since Opera got extensions, it doesn't make less sense to me (as a browser "power user") than Chrome or Safari. Fact remains though, Firefox extensions can do a lot more low level changes to the browser than the Chrome/Opera extensions. The level of configurability has its pros, and cons (stability). Tree Style Tab extension ( <https://addons.mozilla.org/en- US/firefox/addon/5890/> ) is one extension I don't want/can't to be without. It would not be possible to achieve the Tree Style tab user experience in Opera/Chrome. At least not today, most likely never.</comment></comment>


Anyone want to try this? – HACK a NARRATIVE CLIP FOR $10 - <AUTHOR> http://mindlit.com/lifelog/

<comment><USER2> bump.</comment>


Ask HN:  What's the state of the web in your (non-English) language? - <AUTHOR>

I'm fluent in Spanish, because I was raised in Central America, but I don't surf the web in spanish, or use any spanish web apps.  And, from talking to family in Mexico, they don't use the web in spanish much either aside from spanish versions of YouTube, local newspapers, etc...
I know that e-commerce really hasn't taken off in countries in Central and South America, because the use of credit cards is not as wide-spread as it is in the US.  The shipping infrastructure in many countries of Central and South America is also very limited.
I'd love to hear perspectives or anecdotes from non-English users of the web.  Do you surf bilingually?  Do you use non-English versions of common web apps, or do you use other sites/applications that aren't in English yet?  What web apps exist in English that you'd love to have in your native language?
What's the state of the web in your native language? <comment><USER2> It seems to me that if you need to get some technical information, you need to understand english. That's the main reason why i learned english. I'm Québécois (Canada). The french web is not bad i think. But it's not the english Web. There's a lot less content in french. But there is still some nice communities and forums in some France-based portals.

</comment><comment><USER3> I'm from the Netherlands and I'd say the Dutch web is very healthy and developed. There are only about 16 million Dutch, but you can pretty much get all you need without visiting an English website.

www.tweakers.net - A big IT-focussed news site with a great community and even better features (e.g. complete price listings of all Dutch electronics webshops for easy comparisons including webshop reviews. Is there an English equivalant to this?).

www.hyves.nl - Our own social networking site that gained popularity before Facebook or MySpace could.

www.nu.nl - Very basic, very popular generic Dutch news site. Everyone I now reads this.

www.uitzendinggemist.nl - Online repeats of recent TV shows.

www.9292ov.nl - THE integrated route-planner for public transport. Combines all trains, trams, buses and ferries timetables to extract the perfect route.

Also every Dutch company or institution has a professionally developed website these days.

</comment><comment><USER4> Im mexican living in Mexico City; Theres a lot of noise in the web in spanish, you find a lot of wannabes and a lot of people discovering the internet and thinking theyre going to magically get rich. I've read blogs about dev/hacker gettogethers here in Mexico, but havent found anything cool yet. If theres someone interested in doing something in Mexico, drop a line.

</comment><comment><USER4> Also, I do almost all of my surfing in english, I buy online a lot, lots of people here in Mexico have credit cards (at least in Mexico City) so theres definitively a big opportunity here. The web here feels like The Web in the US circa 1994, so you pretty much know where are thing going. Thats a great advantage.</comment>


Musl-libc version 1.0.0 released - <AUTHOR> http://www.musl-libc.org/download.html <comment><USER2> I have been using Musl for various purposes for quite some time. I think my favourite things are:

* The team are very helpful, and fix things fast and correctly. You can see some of the detail in this post on race conditions in glibc [http://ewontfix.com/16/](http://ewontfix.com/16/)

* It is very standards compliant, so it is a good portability test for your code. It is a bit like using a BSD libc, except it does have Linux specific syscalls etc.

* Static linking works, which it doesnt properly in glibc. If you want to be like those trendy Go people and provide simple statically linked single file binaries, for running in containers etc then you can. And they will be small: the glibc shared library is 1.8MB (not including rt, pthread etc), while a Musl statically linked copy of Lua for example is only 160k. Static linking is very useful for all sorts of things, my most recent use was cross compiling bianries to run under qemu-user for testing.

* It is BSD licensed so you can use it in completely different projects however you want, eg OSv uses it [http://osv.io/](http://osv.io/)

* The code is small and readable. If you want to know how things work you can just take a look, quickly find the code and understand it. Just finding the code in glibc takes ages. I keep a reference copy just for this purpose.

You can use the "cross compiler" musl-gcc that ships with it to build if your code is happy being cross compiled (should be, most things just work). If you have a lot of dependencies it might be easier to use a distro, I use Sabotage in a chroot usually [https://github.com/sabotage- linux/sabotage](https://github.com/sabotage-linux/sabotage)

<comment><USER3> Not to offend any secondary Musl contributor, but I think that your first favorite thing is all the more impressive that "The team" is essentially one person.

<comment><USER4> It started out that way, but these days we have several other developers who are pretty active. You can see from our stats on ohloh: [https://www.ohloh.net/p/musl/contributors?query=&sort=commit...](https://www.ohloh.net/p/musl/contributors?query=&sort=commits)

Also, without the work of the entire community testing and reporting issues getting various packages to work with musl, it would have taken forever to get this far. Testers and bug reporters are seriously under-appreciated!

</comment></comment></comment><comment><USER4> Hi all. I'm the original author and maintainer of musl, and I'm happy to answer any questions anyone might have about the project. Glad to see so much interest!

<comment><USER5> Did you raise issues with the glibc team and submit patches etc... before deciding to create your own project?

<comment><USER4> At the time the project was started, Ulrich Drepper was the maintainer of glibc and the official response to any bug report was "STFU". So, no.

Aside from that, while a more permissive license was not part of my original goal or vision for musl, it's something that could never have happened by working on improving glibc. Right now we're facing a situation where Linux has been fragmented into a "GNU/Linux" minority made up of hackers' desktop PCs and enterprise servers, and an overwhelming Android majority. The latter is using a grotesquely incompatible, poorly designed, non-standards-conforming libc called Bionic, and if you want to run existing C programs on Android, you have to add heaps of #ifdef hackery to them to make them compatible with Bionic (much like the #ifdef hackery needed to make C programs work on Windows).

musl can provide a real, standards-conforming libc for use on Android that's still light and MIT-licensed (important because Open Handset Alliance members have a contractual obligation to Google not to add copyleft code to the system they distribute). This means, in theory, we can do away with the whole #ifdef mess and just run existing, portable software on Android. In short, it has the potential to free FOSS projects from getting bogged down in the maintenance burden of supporting yet another gratuitously-incompatible system (Android) in order to remain relevant.

<comment><USER6> I would really like Android to switch over to Musl and drop Bionic, and eventually also drop SurfaceFlinger for Wayland and use an upstream kernel. I can dream...

</comment></comment></comment></comment><comment><USER4> A special treat to go with the release, that's not linked on the website yet: in-browser demo setup using jslinux: [http://www.musl- libc.org/jslinux/](http://www.musl-libc.org/jslinux/)

<comment><USER2> Cool, I have never run a C compiler in JavaScript before...

</comment></comment><comment><USER7> Any Linux distro built against musl out there?

<comment><USER4> Yet, there are quite a few. See the wiki: [http://wiki.musl- libc.org/wiki/Projects_using_musl](http://wiki.musl- libc.org/wiki/Projects_using_musl)

A few big names are in the process of adding musl-based variants or switching entirely to musl, but most of these are still experimental. Alpine hopes to finish switching over sometime this year. Aboriginal Linux too. Bedrock Linux is already using musl in their latest release, but due to the way their distro works, they're in the unique situation where they don't have to build a lot of packages against the system libc, so they have it much easier.

</comment></comment><comment><USER2> There is a very minimal Docker build with Musl showing how it can be usd to build a minimal container [https://github.com/mwcampbell/vontainrr](https://github.com/mwcampbell/vontainrr)

<comment><USER8> I get a 404. Maybe this [https://github.com/mwcampbell/docker- muslbase](https://github.com/mwcampbell/docker-muslbase) ?

<comment><USER2> Yes that's the one.. Android paste...

<comment><USER9> So you are saying that there is a bug in the Android copy-paste? :-)

(even though the 2 links are completely different)

<comment><USER2> I think the bug is in my fingers

</comment></comment></comment></comment></comment><comment><USER10> Interesting, great update

</comment><comment><USER11> wait, but I thought premature optimization was evil !

<comment><USER4> musl actually has very little in the way of optimization, premature or otherwise. Most functions are written to be as simple and direct as possible. Often but not always this gives near-optimal size and speed too. The places where more complex approaches are used are _mostly_ situations where the naive solution would have corner cases that fail or corner cases that have pathologically bad performance and could be used as a DoS attack vector. The main exception is things like memcpy, memset, etc.; if they're slow, people are generally very unhappy.

BTW, one difficulty in libc is that it's hard to know what optimizations are "premature" because you can't envision everybody's usage cases without an enormous volume of experience with third-party code.

<comment><USER11> Isn't this implementation targeting embedded platforms ? I read it's reducing its memory footprint by using static linking...</comment></comment></comment>


Chopin's Heart Offers Clues to His Death - <AUTHOR> https://www.nytimes.com/2017/11/06/arts/chopin-heart-tuberculosis.html?rref=collection%2Fsectioncollection%2Fscience&action=click&contentCollection=science&region=stream&module=stream_unit&version=latest&contentPlacement=4&pgtype=sectionfront&_r=0 <comment><USER2> Delightfully precise: "Except for his heart, Chopin's body is buried in at the Père Lachaise Cemetery in Paris."

<comment><USER3> We Poles indeed care a lot of about hearts.

</comment></comment><comment><USER4> Einstein's brain has a similarly tumultuous history. It was carried around in two jars by a Princeton pathologist, sliced in countless pieces and studied by people around the world.

<comment><USER5> Proof that you may have Einstein's brain but that doesn't make you quite as smart.

</comment></comment><comment><USER6> Ah yes, one of the strongest clues that a feller is dead: his heart is pickled in a jar.</comment>


Ask YC: Recommendations on company formation in the UK - <AUTHOR> Because of the much streamlined process of company formation and the fact that potential future investors prefer English over German law (Ltd. vs. GmbH, and EU statutes that allow corporations from one EU member state to have their home office in another) we've decided to incorporate in the UK.
What we're looking for recommendations for now are services / lawyers that some of you might have used in the past and have had good experiences with.
A side point of interest would be a good book on the specific obligations that we'll need to fulfill over time when running an Ltd. <comment><USER2> Here's a useful book: Setting Up and Running a Limited Company: A Comprehensive Guide to Forming and Operating a Company as a Director and Shareholder by Robert Browning (Paperback - 1 April 2003)

As for services, I went with <http://www.eacbs.com/> for financial shortcuts like a printable PDF certificate (print out and frame, for instance), and I used HSBC for my bank account.

Your secretary can be anyone, which again saves money.

[edit] Companies House (the body that runs them in the UK) are great, they send reminders and instructions, and you can do most of it online. IE, when the first year was almost up, they sent me detailed instructions on how to file my accounts.

<comment><AUTHOR> I saw that book when searching but wondered if the 2006 legal reform might have rendered it a bit out of date. Do you know off hand if the differences are significant enough for us to bother paying attention to?

<comment><USER2> The 2006 legal reform hasn't become law yet, and won't for at least a year.

I was going to read the 2006 law but it's a lot to read.

My guess is the basics will still apply, and they'll probably reissue the book WHEN the law changes.

</comment></comment></comment><comment><USER3> I don't know if you'll find this helpful but you might consider looking past the UK to Ireland. Lower corporate tax, common legal history, celtic tiger, etc etc.

<comment><AUTHOR> The problem is, despite the similarities with UK law, most investors, accountants and lawyers aren't familiar with the idiosyncrasies of Irish law. Really, they're just warming to dealing with British corporations.

</comment></comment><comment><USER4> Try <http://www.nationalbusinessregister.co.uk/home.htm> I used them to form a company a couple of months ago, they provided pretty good service. Hope it helps</comment>


Ansible 101 by Jeff Geerling – new series on YouTube - <AUTHOR> https://www.jeffgeerling.com/blog/2020/ansible-101-jeff-geerling-new-series-on-youtube <comment><AUTHOR> In addition to announcing this new streaming series (hope it's helpful if you don't know Ansible yet!), I wanted to also remind anyone who hasn't taken me up on the offer yet: Ansible for DevOps[1] and Ansible for Kubernetes[2] are available free on LeanPub the rest of this month!

[1] [https://www.ansiblefordevops.com](https://www.ansiblefordevops.com)

[2] [https://www.ansibleforkubernetes.com](https://www.ansibleforkubernetes.com)

<comment><USER2> Thank you for your incredible contributions to Ansible. I help maintain an Ansible script for Django applications ([https://github.com/jcalazan/ansible- django-stack](https://github.com/jcalazan/ansible-django-stack)) and your blog and repos have been invaluable. Your blog posts on testing using Molecule, your htpasswd role, and so many others have come in handy.

I'll add these links and your YouTube channel to our README now :).

</comment></comment><comment><USER3> I'm hopping someday people will provide a friendly Python API on top of ansible so that I don't have to write its YAML DSL anymore.

The "it must be idempotent" argument lead to putting conditional into a a language that was never meant to be, doing the whole "store" danse that could be done with simple function calls and whole lot of conventions instead of a proof tested import system.

It's calling python code behind the scene anyway, and nothing reads the playbook apart from ansible itself.

Ansible is a great tool, but I strongly believe the experience would be 100% better without learning, crafting and debugging those twisted .yml.

<comment><USER4> What I find interesting & frustrating with ansible is that it is idempotent, but not everything is reversible (or is it? I am a noob with ansible.)

So how do people test their ansible playbooks if they can't easily reverse their state?

<comment><USER5> Ansible seems to be better at declaring a particular configuration at build time, which should be repeatable and tested, and then perhaps running limited updates in a more controlled fashion later. The destination hosts should be disposable and recreated for any significant changes. If you write playbooks to change existing state frequently you have to be very careful to write in tasks that check the previous state. If you can version the roles and playbooks carefully then you can have some idea of the systems' state. For simple idempotency, like changing an app's config template and restarting a daemon, the modules have you covered, but for more complex dependencies between services it can get hairy. Some unpredictable things can happen. Example story: systemd-tmpfiles on CentOS 7 has a poorly documented behavior of skipping files in /tmp or /var/tmp that are both root-owned and read-only. It's not something in the options or config, just a default behavior (that was removed in later versions). We had a playbook that would clone a git repo into /var/tmp and then copy the required files into their appropriate place. The git module worked fine to update the repo each run, until several weeks passed and systemd-tmpfiles blew away most, but not all, of the repo files. Some files with just read permission remained. The module could handle either all the repo files existing or having the repo disappear just fine, but not a partially deleted repo. It would error out on that task. So now there's a new dependency on a changed systemd-tmpfiles config to skip that directory, and the partially deleted mess must be deleted for a run to work on existing hosts with the old config. There's lots of stuff like that that can accrue.</comment></comment></comment>


Study Confirms That Fox News Makes You Stupid - <AUTHOR> http://www.alternet.org/story/149193/study_confirms_that_fox_news_makes_you_stupid/

<comment><USER2> This article appears to be doing some Fox Newsy reporting itself. It buries highly relevant information — that Fox didn't do that much worse than other networks — at the end in service of its editorial bent. Its point may be wrong or right, but the way the article is written is just misleading.</comment>


Schizophrenic Computer Points to New Theory of Disease - <AUTHOR> http://spectrum.ieee.org/computing/software/schizophrenic-computer-points-to-new-theory-of-disease

<comment><USER3> Back in the 90s, Neal Stephenson wrote a great short story about the implications of such technology: <http://www.vanemden.com/books/neals/jipi.html>

</comment><comment><USER4> I couldn't help but think of a drug user's eagerness to attach deeper meaning to seemingly unimportant events while under the effects of heightened dopamine levels.

<comment><USER5> And drug use is thought to trigger schizophrenia in certain people: <http://en.wikipedia.org/wiki/Schizophrenia#Substance_abuse>

<comment><USER6> Only by a small portion of the psychiatric community. The vast majority believe that the causation runs the opposite direction, that it's self- medication. This has been discussed for years for just about every serious mental illness, in fact. There's no real consensus either way, but most mental health professionals I know agree with this.

(I grew up in a house of mental health professionals, so I've had no dearth of opinions on the matter, to say the least.)

<comment><USER4> Yet another problem that can be reduced to the chicken V egg dilemma.

</comment></comment></comment></comment><comment><USER7> This is truly fascinating, both from a computer perspective as well as a psychological perspective. I have a person very close to me who may be schizo- affective (diagnosing these things can be a bitch!), so I'm all for anything that helps us understand the disorder.

<comment><USER8> You're bang on when you say diagnosing these things can be a bitch. Especially so with schizo-affective disorder where symptoms that are akin to schizophrenia and symptoms that are akin to bipolar are both present. I misdiagnosing twice has happened before landing on schizo-affective.

I had a relative who had this happen. Their symptoms seemed so much like schizophrenia, with bizarre delusions and voices. On the other hand, bouts of depression and bouts of hypomania were common. Before the mood component was fully realised, he was slapped with a Paranoid Schizophrenia diagnosis - <USER2> can particularly life shattering. A year or so later, a diagnosis of Bipolar was slapped on him, which is a bit of improvement because I believe the prognosis for Bipolar is markedly better than Schizophrenia.

Eventually, it was realised Schizo-affective Disorder fit the bill. After a bit of research, it turns out that such a diagnosis fit particularly well. The particular type of delusions commonly experienced by those with Schizo- affective disorder were present in him, amongst other things.

You can probably tell from what I've said above that it is indeed a bitch. It's almost life destroying and he was reduced to a lab rat in the process (finding the right medication is really a case of an educated guess and experimentation). I really am all for this sort of research because the more we advance with it, the less people will have to go through what my relative went through (and relatively speaking, he got off lightly).

</comment></comment><comment><USER9> I can't help but think: no wonder the computer is experiencing schizophrenic symptoms; they never let it sleep!

</comment><comment><USER10> How does assigning greater importance to learning lead to mixing up identities?

There doesn't seem to be a link to the actual paper (if there is one yet) - the DISCERN link is to a 1998 paper. The idea of a "story parser" is interesting...

<comment><USER11> <http://nn.cs.utexas.edu/?grasemann:cogsci11>

I believe this is the paper, from the abstract it seems like hyperlearning is related to greater consolidation of memory, which might imply creation of connections between things that are not really connected

<comment><USER12> The _"connection between things that are not really connected"_ part match my own experience of having schizophrenia very well.

It's not uncommon for me to have thoughts that very much makes sense _and_ is meaningful to me while others simply can't make any sense of it what-so-ever.

This means I'll have to be cautious of my own thoughts and I often doubt them.

Thoughts as well as meanings change over time too. Sometimes I write down ideas I think is brilliant to save for later. Revisiting those writings can be troubling because I might not be able to make a similar sense of what I wrote earlier.

</comment></comment></comment><comment><USER13> I also have a schizophrenic computer, but that points to the fact that I shouldn't have upgraded to OS X Lion.</comment>


How to Make Money from Web 2.0  - <AUTHOR> http://www.slideshare.net/rolfsky/web-20-lies-mystery-and-opportunity

<comment><USER2> Wow. Over 400(!) slides to say: "Identify a problem your customers face and make something worth paying for which resolves it. Don't get distracted by the technology of implementation -- it's the solution customers are looking for, not the tool which implements it."

...or did I miss something while furiously clicking through it all?

<comment><USER3> You did. I don't know if I can sum it up any better than you, but the message was certainly lost in translation.

Let me try anyways:

A persistent pattern can be observed: new tech is created, producing endless amusement for many people but with little practical (i.e. monetary) value. Since it's fun and old guys want to feel hip they just pay for it one way or the other.

This invention frenzy produces a glut of innovation, soutions in search of a problem. Most of them are even worthless ($-wise) but there are few gems to be found, distilled and reused for some practical purpose. Eventually, build up of useful knowledge reaches critical mass and produces a breakthrough, productive innovation that solves real problems in a new, possibly unrelated area.

The author claims that Web 2.0 is one such invention frenzy that has produced a few gems, and one will do well for himself to learn those and build up skill in isolated and combined use. Once so equipped, enterprising hacker will have half of the success in his pocket. Second part will be knowledge of domain areas where people have problems that are waiting for these solutions.

</comment></comment><comment><USER4> It seemed kind of interesting, but I lost my patience after about 100 mouse clicks. What a terrible mode of presentation!</comment>


The Intensional Spreadsheet - <AUTHOR> https://billwadge.wordpress.com/2020/04/20/the-intensional-spreadsheet/ <comment><USER3> Very cool ideas. I'm surprised that the article didn't mention R1C1 mode [0], which seems to be a big step towards the "intensional" view of a formula.

0\. [https://bettersolutions.com/excel/formulas/cell- references-a...](https://bettersolutions.com/excel/formulas/cell- references-a1-r1c1-notation.htm).

<comment><USER4> I was thinking that the article overall felt bit out of touch with what Excel does these days, then I checked the date on the date on the linked original IEEE article and its from 1990, 30 years ago. No wonder it is bit difficult to place in modern context. "A while back" indeed.

<comment><USER5> R1C1 is even older still. It was first released in 1982 as the the cell addressing for Microsoft Multiplan (so we are talking pre-Excel).

Microsoft only later adopted A1 formulas to fall in line with VisCal and Lotus 1-2-3.

</comment></comment></comment><comment><USER6> The multidimensional spreadsheet has been around for a long time. The first product I worked on was one, that competed with others like Lotus Improv, CA- Compete, and one for the Mac that I believe was named FreeBase. That Computer Associates and Lotus were selling them tells you something right away. I believe it was IRI that sold Javelin, a spreadsheet with some time-series capabilities. There are/were many others too. OLAP planning product (of which I've worked on multiple) tend to provide a very spreadsheet-ish outlook on their UI and modeling capabilities, coupled with real data management.

<comment><USER7> So, what happened to all of these? I feel like a multidimensional spreadsheet would be a great alternative to things like MS Access.

<comment><USER8> I've been looking into this space a bit (after one day realizing that what I'm doing at work is essentially reinventing OLAP abstractions). The way I see it, multidimensional spreadsheeting has evolved into expensive, proprietary ERP and BI software, while the ideas from it end up being repeatedly reinvented in various "excel killer"/"more complicated CRUD" startups without ever reaching their full potential (I'm guessing that would kill the business value). The middle doesn't seem to exist (EDIT or maybe it does?[1]) - I don't know of any actual multidimensional spreadsheet that's accessible to regular people.

There was Egeria[0] featured on HN some years ago, but they've seem to have reverted to a closed beta since then.

\--

[0] - [https://news.ycombinator.com/item?id=18656746](https://news.ycombinator.com/item?id=18656746)

[1] - [https://news.ycombinator.com/item?id=22927875](https://news.ycombinator.com/item?id=22927875) points out [https://www.xcubes.net/](https://www.xcubes.net/), which seems like the "middle" I was looking for.

<comment><USER6> The multidimensional spreadsheet is a more complex piece of software than the 2-D, and invites more data that needs to be managed and processed. So it trends to a more database-like system. There might be a niche for small and even-more-complex modeling. It's hard to open-source something that takes the required investment.

</comment></comment></comment></comment><comment><USER9> Love it — a step towards letting people do algebra instead of arithmetic (going up one level of abstraction, basically).

We've implemented almost precisely this in Causal ([https://causal.app](https://causal.app)) — models come with the 'time' dimension as a first-class citizen [1], letting you write a single formula like

       Revenue[t] = Revenue[t-1] * (1 + Growth Rate)

to calculate the Revenue at all points in time. And you can do vectorised operations along the time dimension by writing formulas like this:

       Profit = Revenue - <USER2>

where Revenue and Costs, and therefore Profit, vary over time.

\---

[1]: You can specify the time dimension yourself, e.g. "Monthly, Jan 2018 – Jan 2023" or "Yearly, 2020 – 2030"

<comment><USER10> I'm working with @refrigerator on Causal. We also came up with a similar way of nesting spreadsheets (here's a demo video: [https://www.loom.com/embed/0d7a784308c345e08e72451ed854c590](https://www.loom.com/embed/0d7a784308c345e08e72451ed854c590)).

In Causal any cell (we call them variables) can be computed by another spreadsheet (we call them models). To make this more powerful a model can have input parameters like functions in programming languages. So a model can be composed of reusable submodels.

There's a bunch of spreadsheet templates floating around the internet but there's no way to compose them or update them. Wouldn't it be great to have something like npm for spreadsheet models?

<comment><USER11> yes, that would be great!</comment></comment></comment>