Pouring Wine on Haggadot: A Passover Exception - <AUTHOR> https://blogs.bl.uk/asian-and-african/2019/04/pouring-wine-on-haggadot-a-passover-exception.html <comment><USER2> The real pity of it is that given the rate of catastrophic spills, as opposed to character adding stains, someday there won't be any more of the one true haggadah—-the Maxwell House version.

<comment><USER3> Jokes aside, The Maxwell House Haggadah is one of the oldest examples of free ad-supported content decimating the market for quality content while expanding access. Everyone had MH's free Hagaddah, so most people never bothered to seek out an alternative that better suits their spiritual values, and probably turned off a segment of a generation of people from being interested in Passover and Judaism, but people who weren't going to pay ever still got _something_ to sustain their Jewish practice. All this beyond the fundamental tackiness of a major religious artifact having corporate branding.

<comment><USER2> I was playing the original comments for laughs, but the MH haggadah is want I want out of a haggadah and am I fairly sad that it or something nearly identical doesn't exist anymore.

I don't want huge swaths cut out; I like the archaic English (the Hebrew is archaic); I don't want little asides about how the story of the exodus rings true today because it's just like the Jews stuck behind the iron curtain or apartheid South Africa or oppressed racial minorities in the US.

I just want more or less the same haggadah that my ancestors used with a translation so I can follow along in a language I understand. If we aren't getting a lot of value out of a discussion of how and an extra comma means one hundred plagues at the red sea, we can choose to skip that part ourselves.

</comment></comment></comment><comment><USER4> Haroset, being made from wine, definitely contributes to the stains. YMMV.

<comment><USER5> This is the primary culprit in my experience and is what is responsible for the small, pea sized stains as it never seems to want to stay together precisely as you're transporting it to your plate.</comment></comment>


Ask HN: How can I onboard myself in my new company? - <AUTHOR> I've been working for a tech startup for 2 months. Things currently going very well for the company. The company is growing with investments. They started employing new ones.
The product excites me. However, there is a problem, I feel inactive.The reasons that makes me feel inactive are:
- They don't apply scrum. (They just do dailies and retrospectives, however scope changes during the sprint and we don't make estimation points for our tasks.)
- Tasks are just one sentences on our scrum board, no explanation for any task.
- Product manager and team generally talk during lunch and breaks and decide what to do and how to do. I can't follow them all the time.
etc.
I try to express myself in retrospective meetings however, it feels like I am just the man who criticizes and judges the team. It seems like they feel comfortable about that, but they never apply anything more, it goes how they do before. We don't apply decisions we made in retrospective meetings.So it also effects me mentally. I feel insufficient and can't express myself self-confidently. It effects my personal life very bad. I've been a pessimist.
I don't want to leave my job, because I love the product and the c-level people.So what I supposed to do in a situation like this? <comment><USER2> Implement what you can from the retros. This shows you are interested in improving things rather than complaining. For instance, when I joined a company a few years back, I just started writing unit tests for my code. No permission needed.

Even if you can only do one retro item every sprint, at the end of a few months you should be more effective and will have proven yourself a team player. Hopefully then you can make suggestions that will not be perceived as critical.

<comment><AUTHOR> The retro items we decided on actually about the behaviour of the team. For example, "start explaining tasks written", "stop discussing out of the meetings". This is not an implementable thing that I can do myself.

<comment><USER2> Is there nothing you can do yourself? Maybe something you could suggest at the next retro

<comment><AUTHOR> I am trying to catch a task while they are talking. Then I say "let me do this, ok?" for the tasks that I have no idea. Then I start asking questions people around. I think it is very hard to maintain this.</comment></comment></comment></comment>


Marissa Mayer's Pay Tied to Another Company's Performance - <AUTHOR> http://dealbook.nytimes.com/2014/04/29/yahoo-chiefs-pay-tied-to-another-companys-performance/

<comment><USER2> Am I the only one who thinks adding "Ms." before her name every time it is mentioned is a ridiculous journaling practice? It just screams "this executive is a woman, evaluate her through that lens." If "Michael Mayer" was the CEO of Yahoo instead of "Marissa Mayer," they would've said "Mayer," not "Mr. Mayer."

<comment><USER3> No, the NYT would have said Mr. Mayer. It's part of their style guide.</comment></comment>


Beautiful and simple sparklines with source code - <AUTHOR> http://vccv.posterous.com/playing-with-sparklines

<comment><USER2> Terrible examples. He says "Sparklines (...) are small infographics designed to convey large amounts of information "inline" with the text" and then shows a big graph. He then continues "From the general shape the graph, the reader is able to get a sense for the general trend (upwards)" which is absolutely not true. The graph is too wide to see the upwards trend easily and since there are no horizontal guide lines I say most people don't notice it.

There is some news site that embeds tiny sparklines of company's stock history actually inline with the text. That's good use of them.

</comment><comment><USER3> I'm sure there's great uses for these things, but currently they're a solution in search of a problem. This is wishful thinking:

 _"The last data point, annotated with text and a dot tells the reader the value, allowing them to intuitively set the scale for the rest of the graph."_

If the HTTP return codes is the killer application for sparklines, I couldn't say. I'd have to wonder, though, if this were a mission critical issue: Would you do the same thing?

</comment><comment><USER4> Having only 1 point annotated means that you can't tell the scale of the graph. Are those little tiny changes over time, or extremely massive ones?

I can't imagine anything I would find this useful for, and if I tried to use it for something for management, they'd ask the scale as their first question.

</comment><comment><USER5> Hey guys, thanks for the feedback. I've added in code that will also annotate the first point. See:

[http://img.skitch.com/20100917-c7yqhxg74hq6tr97sfubshc441.pn...](http://img.skitch.com/20100917-c7yqhxg74hq6tr97sfubshc441.png)

</comment><comment><USER6> Kind of useless without the actual source code, isn't it?</comment>


We asked aspiring women coders what they thought of the Google memo - <AUTHOR> https://www.vox.com/first-person/2017/8/10/16119334/female-coders-tech-students-respond-sexist-google-memo <comment><USER2> It was obviously worded in a way that was easy to misunderstand.</comment>


Why Some Succeed Wildly  - <AUTHOR> http://www.nytimes.com/2008/06/28/technology/28online.html?_r=1&ref=technology&oref=slogin

<comment><USER2> In May, Mr. Gladwell wrote that scientific discoveries are not necessarily the product of singular genius. He ticked off example after example of discoveries and ideas that occurred at the same time, independently. "Newton and Leibniz both discovered calculus," he wrote. "Charles Darwin and Alfred Russel Wallace both discovered evolution."

In other words, great ideas are often, as the title of the article put it, "in the air," and true genius often lies with the people — whether mathematicians or musicians — who are able to snatch them down at the right time. \</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>-----

 _"ideas that occurred at the same time"_ so they are not genious because of the idea they thought because both thought at the same time

and then he sais

 _"snatch them down at the right time."_ a genious is someone who makes an idea a reality at the right time.

thats a contradiction! what a waste of time to write such a bad article</comment>


Ask HN: Help... I just can't get excited about data structures. - <AUTHOR>

I have an interview with a large Bay Area company coming up. They are big on asking data structure and algorithm questions (I've heard). I come from a physics background so I never learnt them in the first place and never had to in a couple of decades of programming.
I've just spent the last twenty five minutes studying data structures and algorithms and I'm bored out of my mind.
Can anyone suggest any materials that bring to light the inner beauty of data structures and algorithms (over and above explaining the theory)? <comment><USER2> It's common to be bored studying material that you have no background in, and no motivation for. These things seem unmotivated, disconnected, and completely arbitrary.

In general, I find the best way to study these sorts of things is to have a puzzle to solve, to work through it, and then have a mentor demonstrate a little piece of magic that makes me feel stupid for not having thought of it. Here's an example that you may not know, but most people here will.

In the Pollard Rho method of factoring you compute f(x) repeatedly, and need to find somewhere that it repeats. So you start with x[0] = x0, then compute x[n+1]=f(x[n]). Question - find i and j such that x[i]=x[j].

You can think of this as an implicit linked list between integers, and you're given a starting point and asked to find a loop. How can you do this with fixed, limited additional storage?

Yes, there is an algorithm to do that.

Here's another. Suppose you have a vector of key/value pairs and you need to sort on the key. More, if two keys are equal, their positions in the result must be the same as their positions in the original. Can you do that? Many library sorts don't offer that option - can you find a way?

Having found some of these sorts of problems in the real world and puzzled over them, only to find that (a) they've been done, (b) they've been done better than you thought possible, and (c) there is a touch of magic about the answer, then you might become more engaged with the topic.

Otherwise, maybe the job isn't really for you.

<comment><AUTHOR> Hi Colin, thanks for your advice.

Especially:

> In general, I find the best way to study these sorts of things is to have a > puzzle to solve, to work through it, and then have a mentor demonstrate a > little piece of magic that makes me feel stupid for not having thought of it

(Actually, I could quote your entire comment, thanks, very much appreciated!)

</comment></comment><comment><USER3> If you have enough time, the Robert Sedgewick's course[1] could be the answer you're looking for. It's much more engaging to watch video lectures and discuss the material with other students than it is to read articles on Wikipedia or some boring textbook.

[1] [https://www.coursera.org/course/algs4partI](https://www.coursera.org/course/algs4partI)

</comment><comment><USER4> Since you have a physics background, you might be interested in this book: Think Complexity [http://www.greenteapress.com/compmod/](http://www.greenteapress.com/compmod/)

The book teaches concepts of Algorithm and Data Structure in the context of Complex System Sciences.

Though it's a bit light-weight, but it might be a good starting point.

</comment><comment><USER5> In addition to vukmir's suggestion of Robert Sedgewick's Coursera video lectures (which have some animations to help visualize the data structures operations), I find "The Algorithm Design Manual" very useful for interviews. The chapters dealing with data structures are concise and contain just enough information to be useful during an interview.

</comment><comment><USER6> I think this is one of those things you either care about or you don't. Personally I don't - I'm quite happy to let smarter/insaner/beardier people do the proper deep worrying about data structure and algorithms; I'll just use what they suggest when they're done.

[edit: not particularly helpful, sorry!]

</comment><comment><USER7> In their book The Practice of Programming, Kernighan and Pike explain the really important stuff in about 30 pages, chapter 2 in the book. They cover four data structures: array, list, tree and hash table, and two kinds of algorithms: sorting and searching. They say that just these are enough for most common situations.

</comment><comment><AUTHOR> Thanks everyone here for taking time out to post suggestions, very much appreciated.</comment>


Overstock Unit Starting an Exchange for Digital Coin Trading - <AUTHOR> https://www.bloomberg.com/news/articles/2017-09-27/overstock-unit-starting-an-exchange-for-digital-coin-trading <comment><USER2> Overstock worked earlier on their T0 [1] initiative to support settling equities trades in T=0 Days'. Currently, a stock or equity transfer takes three days. The days of the wild west exchanges is over. While distributed or atomic swap transfers will expand in the future. The ability to take fiat for a crypto or deposit fiat to trade will be handled by regulated companies. This is the value proposition of Bitcoin and the blockchain that it has currently. Innovation will continue, we certainly will see new tokens in the future and this will take this technology to the next stage of Blockchains as a technology.

[1] [https://tzero.com/](https://tzero.com/)</comment>


Introducing GitHub Enterprise - <AUTHOR> https://github.com/blog/978-introducing-github-enterprise <comment><USER2> Someone joked that they'd sell a lot more at $4995.

I second that! People, don't under-estimate the issue of signature limits! My old signing limit at one job was $5000, meaning that I needed to get my boss to approve something like this, whereas if it were a dollar cheaper, I could approve it myself.

So it's no joke.

<comment><USER3> Also $4995 (or even $4990) is better than $4999 as several large companies audit purchases that are very near the limit.

</comment></comment><comment><USER4> As I am not "enterprise", these questions are more out of curiosity than anything else:

1\. How often do you get updates? One of the things I love about GitHub is the constant stream of new features. Do these make it into github:enterprise fairly soon after?

2\. What happens after your "subscription" runs out? That is to say, if I pay for a year, then don't pay next year, do I simply not get any more updates/support? Or is there some kill switch and I lose my content too? I'm sure the answer to this is similar to all enterprise products, but again, I've never experienced anything in the enterprise.

<comment><USER5> 1\. Very frequently. The reason this launch took so long was in large part due to reconfiguring how we merge the differences between .com and the installable (FI/Enterprise). Previously, it was painful and slow and lagged embarrassingly behind. But now it should be no more than a week or a month at most behind .com so long as you upgrade your instance.

2\. The instance will lock you out (no web interface, cannot push to repos) but you own all your data so you will never lose your content.

<comment><USER6> How are the updates delivered? New OVF?

<comment><USER5> The OVF will be updated infrequently — there is a software package you upload in a management interface that installs the new software and configures your instance with the updates. It's pretty seamless — download a file, upload it, wait a few minutes for install and you've got an updated version of GitHub Enterprise.

</comment></comment></comment></comment><comment><USER7> I love felixge's comment on a bug he found with the price estimator:

[https://github.com/blog/978-introducing-github- enterprise#co...](https://github.com/blog/978-introducing-github- enterprise#comment-15008)

</comment><comment><USER8> I like Github and use it every day but as a longtime advocate of Fog Creek's software I'm a little sad to see Github continuing to move in on Fogbugz/Kiln territory (not to mention competition from the Australians) with not much response from Fog Creek to compete on the lower end of the market. Github enterprise Pricing/features are about on par with the Fog Creek offering. Git vs. Mercurial but it's still DVCS and though I would consider Fogbugz/Kiln a bit more advanced as far feature implementation all the major types of features are in both products.

<http://www.fogcreek.com/kiln/for-your-server.html>

What I would REALLY love to see is Fog Creek compete a bit more in Githubs space with their hosted service. I think there is room in the market for a Fogbugz/Kiln lite product and the competition would do everyone, especially the users, a lot of good. I think Joel even wrote an article on pricing and market segmentation [1] unfortunately they may have already figured out the sweet spot with their current price points putting the prices in the range of me being able to get the bank I used to work for to use their product but not the little bootstrapped company where I currently work.

[1] [http://www.joelonsoftware.com/articles/CamelsandRubberDuckie...](http://www.joelonsoftware.com/articles/CamelsandRubberDuckies.html)

<comment><USER9> Fogbugz/Kiln financially scales way better after 40 users.

E.g., if you have a 200-user company, that's still a flat rate of 15K initial & 5K/year for Fog Creek's stuff (plus maintenance).

But for github, that's 50K/year.

Github is a high-quality product, no question about it. But the price is steep compared to Kiln/Fogbugz, IMO.

<comment><USER10> > Fogbugz/Kiln financially scales way better after 40 users.

I don't agree with how you're using the word _scales_. It actually scales fine, as a percent of their budget per employee. It's flat.

With GitHub Enterprise it's approximately 250 * (n + n % 20) dollars per year. For companies they're targeting, $250/yr is less than a percent of their total budget per employee (including salary, benefits, workspace, etc). If it saves each employee fifteen minutes a week it's worth it.

<comment><USER9> Disagree. Fogbugz gives a greater and greater savings per employee as your employee count goes up.

Here's a Perl script I wrote to visualize the idea. Feed the output into gnuplot and you'll see what I mean.

       use warnings;
       use strict;
       use 5.010;
       use POSIX qw(ceil floor);

       # Let's start at 100 employees and walk up by 25.
       for(my $count = 100; $count < 1000; $count+=25)
       {
           # Flat rate for fogbugz/kiln.
           my $fb = 15000 / $count;
           # ceil(number of users / 20) * blocks of 20-seats to buy.

           my $gh = (ceil($count / 20) * 5000) / $count;
           say "$count $fb $gh";
       }

This asymptotically trends towards about $20/employee for Fogbugz; GitHub hangs around $250 per. At no point in these calculations is GitHub cheaper per than FogBugz.

Now, in the < 100 employee range where the different FogCreek pricings apply, I am not sure who wins, I'd guess it trades off back and forth depending on the # of employees.

edit: awkward formatting. Also, if I've biffed my formulas, let me know and I'll update it!

edit2: forgot to comparatively do analysis

<comment><USER10> Nice graph, but why does it need to be so much cheaper per seat as the business gets larger? Many items in the budget don't get much cheaper per seat as the business grows. A company that buys 1000 MacBook Pros doesn't pay half as much per MacBook Pro as a company that buys 10.

<comment><USER9> Well, if you _want_ to not be fiscally efficient...

</comment></comment></comment></comment></comment></comment><comment><USER11> For those concerned about the total costs: Don't worry. Looks like there's a bit of a discount at the higher levels. <http://i.imgur.com/8A9Dx.png>

</comment><comment><USER12> How do they ensure that their code is not stolen? Any insights on that?

<comment><USER13> Firewall Install used JRuby to precompile our models and controllers; GitHub Enterprise uses code obfuscation with MRI.

<comment><USER14> Why didn't you choose to go the JRuby route again?

<comment><USER13> A lot of reasons, but the largest was that part of the big push for Enterprise was to mimic our github.com environment as much as possible. Every difference between the two is a real cost to support. A different Ruby interpreter definitely falls into the "big difference" category. :)

<comment><USER15> Curious then.. Do you run the obfuscator in production as well?

<comment><USER13> Nope, just in Enterprise.

</comment></comment></comment></comment></comment></comment><comment><USER16> What we're not really talking about is how good github is as a product. As far as I'm concerned, it's a 10x improvement over other ticketing and SCM systems.

I don't think they're charging enough. Congrats guys!

</comment><comment><USER17> This news comes just hours after I finished installing Gitorious on my company's own server. I'm glad I went through that trouble because $5k is crazy for a startup to pay for a self-hosted git web interface.

Heck, I'll install your own Gitorious on Rackspace Cloud Server for $99 for anyone who requests. Host your own code.

<comment><USER18> This isn't for startups. It's for companies that want to use GitHub but can't, because people are afraid of letting the code outside their walls.

<comment><USER19> Or they are legally required to by their clients and or government regulation.

</comment></comment></comment><comment><USER20> I hope they're going to offer pro rata on seat volumes between multiples of 20. If I have just 25 users it's $10,000 (assuming their pricing widget is completely accurate).

<comment><USER21> If you have 25 devs, you're going to spend a minimum of 1.5/2 millions a years on salaries. Does a $5,000 difference really matters at that point ?

<comment><USER22> If two of those devs decided to throw their workstations off the roof once a year, would the $5000 make a difference?

Spending money you don't have to is always a bad idea, so while the unused license space may not make a huge dent on the bottom line, a company that pays attention to those things will likely outperform one that doesn't.

</comment></comment></comment><comment><USER23> Interesting to see they are forwarding links from the Firewall Install page (fi.github.com) to this.

Edit: _We first launched the precursor to GitHub Enterprise, GitHub Firewall Install, over two years ago._

Same pricing, but better branding. I wonder what else has changed?

<comment><USER5> Notably:

\- Enterprise is delivered in an OVF, which means it's a fully contained VM. This simplifies deployments astronomically from the previous FI architecture.

\- We've spent a lot of time on the runtime and packaging of Enterprise in relation to how it runs the code. It's now _much_ faster.

\- We've changed how we merge the two codebases (.com and FI/Enterprise). Effectively, they are the same now. This means new features that come to .com will come to Enterprise quickly/immediately. Previously we had to do hard, manual merges which meant new features got to FI very late (3, 6, 8 months later).

<comment><USER24> I'm a huge fan of apps released as VM images. I've seen this used extensively in testing and development, but not for production applications. Do you know of other companies who follow the same "our default install is an OVF" strategy?

I first heard the idea from Jeff Atwood in 2006 [1], neat to see the idea taking root with a high-profile product.

[1] [http://www.codinghorror.com/blog/2006/01/our-virtual- machine...](http://www.codinghorror.com/blog/2006/01/our-virtual-machine- future.html)

<comment><USER25> Squiz switched to distributing a free VM for the trial and production versions of their CMS: <http://squiz.com.au/products/squiz-cms>

(Previous versions were a tarball of PHP code and a lot of brittle install scripts.)

</comment></comment></comment></comment><comment><USER26> >> "GitHub Enterprise is priced at $5,000 per 20 users"

How does this fare against other enterprise hosted scm/version control products?

<comment><USER27> Not exactly analogous, but FishEye from Atlassian is less money/user and LOTS less money for teams less than 10. <http://www.atlassian.com/software/fisheye/pricing>

Obviously, the feature set is pretty different, but I think it still falls into the Enterprise SCM category.

<comment><USER28> Fisheye is $800 for 10 users, $1200 for 20, plus the required JIRA install, which is $1200. Add a Wiki component (Confluence) and you can add another $800. The proper code reviewing tool (Crucible) is $800/$1200. Thats (roughly) the feature set of Github, without the source hosting/ssh-key-management stuff.

So summed up: 10 Users: $3600 20 Users: $4400

So, they are definitely cheaper, but I'd say that $5000 for 20 users is a competitive price for such a huge infrastructure.

<comment><USER29> Atlassian also has bitbucket, which is a direct competitor to github and priced at $10/month for 10 developers or $25/month for 25 developers. So, it's only $240 a year for 20 developers (<https://bitbucket.org/plans>). It may not have all the features of github, but they provide basic git hosting, wiki, and issue tracking. Do the extra features of github justify 20x higher price?

They also have a free plan for up to 5 developers.

<comment> X-Istence Is Bitbucket something I can install on my own hardware behind my corporate firewall?

</comment></comment></comment></comment></comment><comment><USER30> I wonder if this pricing includes things like read-only users (analysts, QA staff, etc.) and deployment activities in the user count. It would suck to have to pay for a license to deploy from GHE using Capistrano. :/

<comment><USER31> At least for FI, all users count towards your user cap. I've asked about this before because it really sucks. For 100 projects we might have 200+ users that don't really need access, but could use it. Since the prices don't get better at the higher levels, it creates and incentive to limit access which reduces the usability of GH in the first place.

</comment></comment><comment><USER32> I like that it is distributed as an OVF, but is there any thought to doing an AMI as well? I know it isn't meant for public use, but in my case I don't want it in the internal datacenter, nor is it easy to bridge subnets in remote offices. An AMI for EC2 deployment behind a VPN would be really nice.

<comment><USER33> If you're OK with an externally hosted Github, why can't you use Github itself?

<comment><USER32> I never said I was. You can run a private EC2 infrastructure and it is sometimes more handy than having your own hypervisor server.

<comment><USER34> Every "private EC2 infrastructure" I've seen is a bunch of hypervisor servers.

<comment><USER32> Yes, but I'm trying to avoid corporate IT :)

</comment></comment></comment></comment></comment><comment><USER30> My first thought is who needs "social" features in an enterprise VCS? I love GitHub and think it's biggest benefit is the ability to {easily} fork and watch projects. Does this really translate to the enterprise? I can't imagine a corporation where its a good think to have two groups disagreeing on a direction and causing a fork. Management would have a cow!

The bottom line is what does GitHub Enterprise buy my over something like Redmine or Gitorious? GHE is probably easier to install but I still have to manage my own hardware & drive space. And with the open source alternatives I don't have to worry about licensing and can crack it open to add adapters to other software (#include "standard open source header").

<comment><USER35> So on a team I manage, we've used github::fi (github enterprise looks to be the next evolution) for the past year. If you don't have an option to put code out onto github.com, then it's great to essentially have github.com inhouse - minus of course all the public repos.

We find it's the developers go-to place, so using the wiki along with where the source is hosted, is fantastic. As a dev team manager, I love the browsing the codebase via the web browser, reviewing what's going on in the code base instead of pulling down code locally.

From a customer, if you've got the funds, and can't go with github.com hosted, then it's the next best thing. It's been rock solid.

<comment><USER30> Yea, but my point stands that something like Redmine would fulfill your requirements _and_ be open source. It has a wiki that is tied into the Git repo, and a (better) issue tracking system, and browser access to source, etc.

I guess I'm just missing why an Enterprise would spend $$$ when they can get everything they need without $$$. Then again, I'm not a bean counter and I guess I just don't understand how budgets work. :/

<comment><USER35> A big part of it, is everyone is familiar with github.com, it's exactly the same experience with github::fi. Just business as usual in-house. For development teams that are open source based, pretty much everyone knows github, so the 'feel at home' factor is there. VS getting yet another tool in the mix that you have to get people upto speed on.

</comment></comment></comment></comment><comment><USER36> I'm having a hard time finding comparable Team Foundation Licensing costs for a team of 20. Does anyone have an idea how this compares?

</comment><comment><USER37> We've been using a demo of this at my day job for a few weeks now. It's been pretty awesome, we use an internal IRC server (which could never talk to the outside world) and using the hooks it provides is super useful.

We also have a complex code pushing system, and integrating with github enterprise will be a bit easier than raw git.

</comment><comment><USER38> This sounds like a support nightmare. I hope GitHub has learned from the mistakes that SourceForge ran into when they tried packaging their product for the enterprise.

<comment><USER39> GitHub has been selling "Firewall Install" for a couple years. Any mistakes they've learned from were on their own.

</comment></comment><comment><USER40> I wonder if it has anything to do with release of <http://gitlabhq.com>

<comment><USER41> Considering GitHub:FI has been around for a really long time, no.

</comment></comment><comment><USER42> Interesting. $20/month/user seems pretty damn cheap.

<comment><USER43> And that includes support.

</comment></comment><comment><USER44> I love GitHub and all, but the whole Enterprise label is kind of a joke. You slap "Enterprise" on a service, make a few nominal features available to the people who buy into the ploy and then charge them out the nose for it.

<comment><USER45> It's a product distribution strategy that fills a need in the enterprise marketplace. I wouldn't marginalize OVF as a "nominal feature" or the value of offering a secure, localized version for clients.</comment></comment>


Dollar tumbles as Fed rescues China in the nick of time - <AUTHOR> http://www.telegraph.co.uk/finance/economics/12141369/Dollar-tumbles-as-Fed-rescues-China-in-the-nick-of-time.html <comment><USER2> This is conceptual nonsense. From the article:

> The central banks of Europe and Japan discover that it is impossible to > stave off deflation by debasing their currencies when everybody is playing > the same game

> A more dovish Fed and a weaker dollar is a bitter-sweet turn for the Bank of > Japan and the European Central Bank as they try to push down their > currencies to stave off deflation. Their task has become even harder.

It's apparently a common mistake, but while it's certainly true that the yen and the dollar can't mutually weaken _against each other_ , it's not at all true that they can't both weaken at the same time. If oil is $31 / barrel and you want it to be $50 / barrel, the price of a barrel of oil in yen is not relevant to that.

Inflation and deflation are not measured in exchange rates.

<comment><USER3> What did the author mean by "stave off deflation by debasing their currencies"? How does the latter lead to the former?

<comment><USER2> > How does the latter lead to the former?

Debasing your currency is, by definition, inflation. Debasing your currency means that the value of the currency drops, such that the same amount of currency buys a smaller amount of whatever (for example, if $30 will get you a barrel of oil today, but only 60% of a barrel tomorrow, the dollar has been debased). Inflation means that the same thing costs more money (for example, if a barrel of oil costs $30 today, but $50 tomorrow, we're seeing inflation in the dollar, as reflected in the oil price). As you might notice, those are two different ways to frame exactly the same pricing information.

(The reason we have two terms is (at least in part) that they arose from different historical circumstances -- debasing a metal currency meant, e.g., taking what were supposed to be gold coins and mixing a base metal into them, so that your new coins weighed just as much as they should but were worth less (since they contained less gold).)

So, the mechanism is: they are the same thing.

<comment><USER3> Thank you.

</comment></comment></comment></comment><comment><USER3> What is the mechanism by which "debasing a currency" leads to "staving off deflation"??

<comment><USER4> "Debasing a currency" is a dysphemism for effecting inflation, and inflation is the opposite of deflation.

So the lead-in reads in plain English that Europe and Japan aren't able to cause inflation by causing inflation when everyone is trying to cause inflation.

<comment><USER3> I learned a new word today!... "dysphemism".

The article author seems to have a case of delusions of grandeur. This is the third article I've read from him over the last 2 years or so, and all of them look like concerted efforts to make simple things extremely complex sounding.</comment></comment></comment>


Launch HN: Fintual Inc. (YC S18) – Automated Wealth Manager for Latin America - <AUTHOR> Hello HN!! I'm Agustin, founder of Fintual Inc, from YC's S18 batch. We're building an automated passive investment platform for Latin Americans (https://fintual.com). I come from a computer science + business background so when we first started discussing this idea I didn't have much experience on finance or investment other than what I had learned by playing around with Bitcoin. Since I graduated I knew I wanted to become an entrepreneur, but not having any work experience led me to pretty standard ideas like a music streaming website or a food ordering app. I realised rather late that I needed to join experienced partners to find better business insights and opportunities.
After many conversations with my current business partner Omar, who had been 8 years working for the largest wealth manager in LATAM, I was shocked to understand how Latin American people, including people around me, were unfairly paying enormous amounts of money to banks who offered very expensive and many times overly complex investment solutions to retail / uninformed long term investors. After investigating how Betterment, Wealthfront and passive investment strategies in general had been changing the landscape for Americans, we were motivated to do whatever it took to solve this problem in LATAM starting from our own country Chile which, despite being a tiny country, has more than 60 billion dollars allocated in Mutual Funds by itself.
We started by building a responsive website using AngularJS and Ruby on Rails as quickly as we could to get user feedback soon, we mostly copied the onboarding process directly from Betterment. At the beginning we thought automating every step of the investment process was the most important challenge, but now, after some experience and several conversations with YC partners, we have come to realize the real problem to solve is none other than distribution: how to reach millions of users in an economically viable way. Banks already have the clients, while we have to explain and convince people there's a better way. At first we tried to find an incumbent to work with us, but after a year trying we decided to get our own license (the equivalent to a FINRA Series 6 license) which took a large part of the seed round and 8 months of work, but finally got it. We've been growing at a healthy 10% week over week since March now thanks mainly to word of mouth, but we know we need to have a better handle on this growth for the future.
I'm very excited to be at this point, I have been reading HN for 10 years now and I only dreamed about making a YC launch post. As I said, we need to find a more consistent approach on growth, If any of you has any new idea or has heard of approaches of how could we get more people to realize they're overpaying (some even pay 7% annual fees!) and get them to know and trust our solution, that would be awesome, but anyway, I'm eager to read and respond to whatever this great community has to say. <comment><USER2> Congrats on the launch and good luck!!

Apparently not for Brasil yet, but definitely a product we need here. I would use something like it, but the only option in the space is a new startup ([https://oiwarren.com/](https://oiwarren.com/)) with horrible UX (every form emulates a natural language chat bot, which makes muuuch longer to fill out simple fields that a regular <form> would take seconds).

Other than that, only brokers with very user-unfriendly online interfaces.

Easy, simple, wealth management is very much needed in here. I hope you do well enough in Chile to consider a expansion here.

<comment><AUTHOR> We don't have short term plans to get in Brazil. We met Luciano from Magnetis ([https://magnetis.com.br](https://magnetis.com.br)) here in Palo Alto a couple of weeks ago and he seems to be doing great there, perhaps you might want to take a look at it.

<comment><USER2> Thanks, heard about Magnetis. I still believe there is room for much more of this kind of service around here.

</comment></comment></comment><comment><USER3> I think this is great. Hispanic families in the US would also benefit highly from non-predatory financial products. I spent a few months learning about investing and tried my best to pass that knowledge on to my family but it was challenging communicating the value of savings. Hope you have great success in Chile and are able to expand to other markets.

<comment><USER4> In New Mexico Hispanic population frequents Indian Casinos. Both groups might better invest than waste time and money. I have tried to interest Hispanic and Native friends in investing in health care (Health Care Mutual funds avg. 16% over 40 yrs). The rate of diabetes in Native and Hispanic populationsis 30%. 40% of hospital costs is now in ICU for chronic disease. 1/3 State and US budget Medicare.

<comment><USER4> If Hispanic investors are victims of diabetes by eating processed foods as in US and Mexico. Investing will simply force them to spend their wealth on health as is happening in US and Mexico. If behavior in wealth is not matched with health the result is simply spending all the saved money on chronic disease.

</comment></comment></comment><comment><USER5> Passive funds have decades of experience selling low-cost products. In general, their awareness-raising focuses on bemoaining the compound effect of high fees - how paying 2% more in fees per annum can result in you having 60% less savings over a 40 year people, for instance.

A lot of ETF funds here play a bit of an educational mission. They have regular commentaries and features on financial media, often around 'demistifying investing' and always talk to how passive is so much better than active+fees.

I've often been shocked at how low the level of financial literacy is amongst even highly educated people. The standard passive marketing pitch appeals to them because it's so much less opaque than active approaches.

I've long wanted to do something similar in South Africa. I think the key is ease of setup and building in scheduled contributions. If your customers are putting in a set amount each month then your revenue grows year on year even if your market share stalls.

<comment><AUTHOR> Yes, I agree. And to improve financial literacy has proven to be a very hard, there's just too much noise when talking about money. We've seen mutual funds in LATAM charge up to 7% and for some reason nobody seems to care. We are currently tackling the highly educated tier as you say, they care and want to understand, and we believe that this niche might help us expand further.

<comment><USER5> Is it legal in Chile to show synthetic returns? If so, you could backtest your passive strategy and plot that on a chart along with the median mutual fund return. Heck, in South Africa only 18% of mutual funds beat the market over 5 years. Break the mutual fund returns down into returns before fees and returns after fees to show just how dramatic the effect is. With that single chart you can point to anyone, regardless of education, and say, 'see that wedge, labeled fees? That's what is financing your fund manager's yacht.'

<comment><AUTHOR> Legally, we cannot say "see, this is Fintual" when referring to the backtest, but we could definitely do the comparison and show how a passive strategy beats most of those yacht hungry managers. Great idea. We have done a simple chart that shows how fees eat people's lunch here [https://fintual.com/simulador](https://fintual.com/simulador) but we still need to iterate on top of that.

</comment></comment></comment></comment><comment><USER6> Wow, congratulations! Happy to see a HN'er rocking the conservative boat of Chilean financial institutions!

Though I feel like 1.19% is a bit too much: I'm currently using Renta4.cl for ETF IPSA from Itaú (CFMITNIPSA, 0.6%) and Interactive Brokers for Irish All- World ETF from Vanguard (VWRD, 0.25%).

<comment><USER7> Regarding the IPSA ETF : 0.2% entry comission + 0.6% ETF Fee + 0.2% exit commission ...the 1.19% seems quite reasonable, besides your are buying an assets which has a quite poor risk return profile (if you buy a solid corporate debt fund you obtain broadly the same return but half the risk). I believe Fintual pricing seems reasonable for the benefits of having a more solid portfolio.

<comment><USER6> Renta4's commission is 0.15% but I use it only for Bolsa de Santiago. Most of my portfolio is in Vanguard's ETFs that are significantly cheaper. I understand that Fintual's offer is still much better than any "fondo mutuo" from a local bank but hopefully they will be able to reduce the fees in future.

Anyway, I'm just picky because I have a choice. Meanwhile, the average person in Latin America definitely needs better instruments for investing. Best of luck to the team!

</comment></comment></comment><comment><USER8> Nice post. Best of luck in what you're doing!

My thought is people are averse to fees - but there needs to be a bit more of an impetus for someone to switch to your platform. Will you be using ETFs to gain exposures? If so, a lot of the marketing could be focused on diversity of investment or saving for retirement.

A lot of the reason the robo's have taken off is that some provide "fractional ownership". So you can invest as little as $1. There is some legal and compliance issues you would need to iron out in your home country. The "Acorns" approach is a good one in my opinion. Helps you get many small accounts quickly.

Ultimately, performance is what a lot of people go by. You need 5 years. Once you have 1 though - with 7% fees - you can easily start showing expense ratio drags on portfolios...

<comment><AUTHOR> Thanks for your thoughts! Cool insights there. In fact, we do use global ETFs so we do offer diversified exposure. As a regulated entity we are able to allow investment for as low as US$1. We haven't conducted our marketing as Acorns' does, though, because we feel the biggest problem (opportunity) right now is the one that relatively successful professionals in their 30s face: they are able to save money but they have no time to invest it right. You may be right suggesting that getting many small accounts quickly can be a good strategy though, thanks for that idea, will think it through.

About performance, I agree, it will take some time until regular people start noticing the difference.

</comment></comment><comment><USER9> Hey, I just went through your signup questionnaire to test it out (I work in a similar space in the US). It felt very long to me in comparison with most services I've looked at. I'm not sure what the regulations in Chile require you to ask, but for what it's worth, Betterment entirely skips doing a risk questionnaire and let's you immediately choose a goal/portfolio. The signup funnel for financial services is long and brutal due to all of the PII you have to collect, so making it shorter is usually a big win.

Overall very impressed though! Awesome to see this sort of stuff launching in markets outside of the US.

<comment><AUTHOR> Thanks! well even though the answer is 'yes the law does require a risk questionnaire' what we've seen with our users is that they actually enjoy answering these questions about themselves. Almost like personality quiz or something ;) You might still be right though, I guess once we get a wider upper funnel we will be able to test this further.

</comment></comment><comment><USER10> Hola Agustin, muy interesante la propuesta de Fintual. Me gustaria preguntarte como logran realizar inversiones en ETFs fuera del mercado de Chile, ustedes hacen la conversion de pesos a USD? El portafolio es en pesos chilenos o en USD?

</comment><comment><USER11> Hi Agustin! First of all, congrats! I think I must have been one of the first 100 or so users of Fintual and am constantly pitching how cool the onboarding is and how simply you explain the service. On that regard, I'm sure I have pushed 5 of my close friends and colleagues to invest in the platform and the first feedback I get is how stable their investments seem to be. I do get a lot of un faithful responses from people who don't trust online services with their money... they compare it to bitcoins and crypto markets... here's my first feedback, I think you need to work on explaining how and where your funds are being invested. I have experience on traditional banking investments and I see the same pdf document my bank used to pitch their funds at me. You should work on that.

Another I miss, and have to start tracking on my own is the fluctuations of my investment. I am a bit of a control freak and keep an spreadsheet with the percentage earned each day. It be great to have that info within the platform. Every time I show it to my friends they seem to trust the platform a bit more. That's another... more data, easier it is to influence others to join.

Sorry if this seems like a feature request! :P

</comment><comment><USER12> Agustin, congratulations and good luck on your wonderful journey! Passive investment is something I've been following closely in Canada and hoping you can really help people secure their finances.

I have been in financial services strategy for quite a while now in various parts of the retail banking world and have been leading customer acquisition for both cards and retail banking in general. You're right - distribution is a big challenge but another big challenge is getting people to trust you with their money.

For me, you can either build the trust on your own (hard) or rely on your existing customers to help funnel the trust (i.e. referral schemes). Case studies, online calculators, customer videos speaking about the product, partnerships (have to be careful that this is a win-win) are some tactics you can think about.

Other questions for thought: \- Does the government in Chile provide deposit guarantees? (i.e. if you go bankrupt, does the govt pay back the depositors a certain percentage?) \- Can you convince people to move just a small percentage of their savings? Are you expecting people to use your platform for 100% of their investments or can you get people to consider you as part of their wider investment strategy? \- Can your existing customers help in some way or form (i.e. referral scheme, communities, etc.)?

Wealthsimple is a great company that you can look to emulate as they do automated investments for Canadians.

Monzo is another great one. Based in the UK, their acquisition growth has been incredible with minimal marketing. Effectively, relying on word of mouth and a great product experience.

If you wanted to discuss more, happy to talk it through my experiences in Canada and the UK

</comment><comment><USER13> For non chileans, in the 'preguntas frecuentes' page, could you use CLP$ to distinguish it clearly from US$?

<comment><USER14> Didn't notice it was in CLP until I read your comment. :(

Also this is available for Chile only? I'm in Bolivia, will be able to invest?

The site needs communication work.

<comment><AUTHOR> We launched Chile in March 2018, we plan to reach some milestones first and then move to tackle the next countries. About communication work, sure, we are editing our FAQ just now, so thanks for your feedback. If you find anything else that needs clarification please let us know!

</comment></comment></comment><comment><USER15> Hey Agustín, Nico Goles here.

Just wanted to write here to congratulate you and your team. I've been following what you guys have been doing for many, many years, and you have never ceased to impress me.

Since I've been living here in San Francisco, I've gotten quite into personal finance and retirement investment. I've wondered many times why my family there in Chile can't have access to some of the tools available here. Having read your post and done a bit of research the reasons seem pretty clear to me.

Thanks for working on such a meaningful solution, I've already recommended it to several family members.

Good luck to you and the team, and if I can help with anything don't hesitate and reach out :)

Best, Nicolás

<comment><AUTHOR> Thanks for recommending our solution to your family! What you say is definitely true. It is really surprising that investment culture and knowledge is so different between countries that in other aspects are not that far appart.

</comment></comment><comment><USER16> Hi Agustin, living in Colombia it has been impossible for me to purchase selected US stocks/index, even with a large-ish 100K account I got, too much hassle too high fees. I will be looking forward for your launch in Colombia.

Additionally, I am working with a SF based e-lender www.pimes.com whose primary market is LATAM (Starting with Colombia, expanding to Chile and Peru soon), perhaps we could talk about some partnership opportunities there. My profile has my personal email if you feel like talking more about it.

<comment><AUTHOR> Thanks! I can't see your personal email in your HN profile, please email anything to firstname.lastname@example.com to get your contact! Thanks again!

</comment></comment><comment><USER7> Congrats on the project, I believe that your website removes most of the frustration I had with other players in Chile, specially on the sign up process, the investment, specially withdrawals needs some work, but is a small detail. Agustin, do you expect more competition, specially from incumbent , I saw that Larrain Vial, BICE and Principal launched a quite similar service and I know there is at least another one preparing to launch their own robot.

<comment><AUTHOR> Yes, we're aware current incumbents appear to have interest in getting into this space, in fact, people working in some of them have directly gotten in touch with us regarding potential partnerships. Without even mentioning these companies typical technological capacity/skills, my main doubt is how would they solve their ambivalences, because having a roboadvisor of their own would strongly cannibalize their current profit.

</comment></comment><comment><USER17> Who are your target users?

My understanding is that Betterment and Wealthfront are primarily aimed for upper middle-class millennials who have some savings but are not extraordinarily wealthy so as to have their own family office or dedicated wealth management team in Morgan Stanley / Goldman Sachs / JP Morgan / etc.

Since the upper middle-class in LATAM is significantly smaller than that of the US due to greater inequality, are you going after higher net worth individuals?

<comment><AUTHOR> We are going after that same middle-class group to start. It is for sure smaller in purchasing power than the US middle class in total, but competition for this market is also way less, which may allow us to grow faster than a roboadvisor in the US, specially if you take into account that the middle class here is growing.

Anyway, we know we will be able to expand from this market to higher net worth individuals because a good part of them are also being ripped off by banks.

</comment></comment><comment><USER18> Will this only work for Chileans? +1 for localization. I got confused with the amounts and currencies. Great work though!

Also, I'm getting a 422 error when trying to sign up. The error page doesn't say much, just:

¡Ouch! El cambio que intentaste hacer fue rechazado. A lo mejor trataste de cambiar algo para lo que no tienes acceso.

<comment><AUTHOR> It currently works for Chileans and foreigners that have at least a bank account there. We might get good news from the "Alianza del Pacífico" treaty this year though. Otherwise, we will expand once we get to certain milestones in the current base.

</comment></comment><comment><USER4> Has this approach been tried with Native American tribes? Tribes now have Casinoes and solar farms for revenue. But tribal members lack local banking. Tribes are the fastest growing population in Canada. How canwealth management help this population?

</comment><comment><USER19> What advantage latin americans get for this be based on chile? There are other countries with much more population (your main self proclaimed challenge) and/or less tax burdens.

<comment><AUTHOR> Chile is a good starting point for us because it has a higher GDP per capita and is highly digitalized. There's a pending treaty called "Pasaporte de fondos" that would in theory allow us to serve people in Colombia, Mexico, and Peru without additional regulation.

About taxes, I think Chile is on the lower-burden side of Latin American countries, but I'm open to hear if you have deeper insights.

</comment></comment><comment><USER20> i see you guys are hiring. i'm a us national with interests in emigrating to latin america. i doubt your rates are competitive with us rates but i'm curious what they are anyway (since you seem to have yc funding?). how can i reach you? y por supuesto hablo espanol (como un gringo pero sin embargo hablo).

<comment><AUTHOR> Yes we are, thanks for your interest! Please take a look at [https://fintual.com/steve](https://fintual.com/steve) to see open positions and application instructions. Cheers!

<comment><USER21> Can we know you rates? :)

</comment></comment></comment><comment><USER22> Are you, or do you have reason to believe you might be in the future, hiring in Mexico?

<comment><AUTHOR> Probably yes. If you are interested, we are too! Please apply to get to know you. [https://fintual.com/steve](https://fintual.com/steve)

</comment></comment><comment><USER23> Hola Agustin. Este es un mercado que necesita soluciones urgentes.

Entiendo la mayoria de las decisiones que tomaron ya, desde el diseño hasta el armado de perfil de usuario.

Se vienen varios problemas a mente, que me pregunto como resolvieron: el costo de transferencias entre bancos desde sudamerica a estados unidos para los montos que se transfieren terminan comiendos e mucha rentabilidad. (i.e. no podes depositar de a 500 dolares por mes, por ej). Otro gran problema es lo legal: argentina por ejemplo siempre termina poniendo restricciones de algun tipo. Hay mucho riesgo monetario tambien entre que se deposita en la cuenta y se compran los correspondientes ETF.

Mi pregunta es: mas alla de posicionamiento de mercado, como van a lograr ser competitivos considerando todas estas desventajas de infraestructura? Donde esta la innovacion?

Porque no usar fondos al estilo Vanguard de una? Super low costo y revender esos paquetes?

Muy bueno igual, y voy a estar mirandolos.

<comment><AUTHOR> Buenas preguntas, gracias! Para hacer frente a los costos fijos de transferencia lo que hicimos fue juntar el dinero de la gente en 3 fondos:

\- Fondo Mutuo Fintual Risky Norris \- Fondo Mutuo Fintual Moderate Pitt \- Fondo Mutuo Fintual Conservative Clooney

Y asignarle a cada cliente una combinación de estos tres. De esta manera, se pagan comisiones como si fuera un gran cliente. Esto compite muy bien con las alternativas: al menos en Chile estamos listados como la solución retail más económica según El Mercurio Inversiones.

El gran costo inicial que tuvimos que asumir con este approach es el de la regulación, pues como creadores de Fondos Mutuos debemos cumplir con una serie de exigencias, y justamente ahí está la innovación: somos capaces de cumplir con ella sin arrastrar con el costo operativo porque automatizamos casi todos los procesos y la generación de los documentos que requiere la autoridad en nuestro caso no depende de personas.

<comment><USER24> Hola Agustín, primero que nada felicitaciones por el tremendo proyecto que están sacando adelante, muy interesante y en deuda hace tiempo para el mercado chileno. Tengo un par de consultas:

\- ¿Porqué Fondos Mutuos y no Fondos de Inversión? ¿Fue para dar mayor liquidez a los clientes? (Entiendo que los Fondos de Inversión tienen un beneficio tributario que no existe en FFMM).

\- Al parecer sólo invierten en ETF de USA, específicamente del S&P 500 para el fondo riesgoso ¿Planean cambiar ésto en un futuro?

\- Si cobran 1,19% de remuneración fija ¿Cómo es que en sus folletos informativos sale un monto menor de tasa anual de costos? Me imagino que los costos bancarios por transferencia + de administración de ETF + transaccionales deberían influir en dar un TAC mayor.

-¿Existe un proceso automatizado de inversión desde el punto de vista cliente? (Por ejemplo un cobro automático bancario todos los meses a la misma fecha)

Nuevamente felicitaciones por el proyecto!

<comment><AUTHOR> Gracias por la buena onda!

Respondiendo punto por punto:

\- Usando fondos mutuos podemos pagar rescate de las inversiones en 3 días habiles, fondos de inversión tiene que ser sobre 10 días. Tanto fondos mutuos como de inversión tienen beneficios tributarios, creemos que los que aplican a fondos mutuos responden mucho mejor a inversiones de patrimonios menores a US$500k (en nuestro caso, beneficios como 57 LIR, 108 LIR y APV).

\- Tendremos carteras diversificadas (no expuesto a ninguna empresa particular más de 3% por ejemplo), y vamos a ir diversificando más geográficamente a medida que vayamos aumentando la parrilla de ETFs. En la parrilla actual hay ETFs de acciones emergentes, deuda emergente, acciones globales, etc, y el algoritmo de asset allocation es el que elige cual entra y cual no. No han entrado ETFs fuera de US porque probablemente tengamos que aumentar la parrilla con ETFs que cubren zonas más puntuales o correlacionan muy distinto con el mercado de US.

\- Cobramos hasta 1,19% de remuneración, puede ser menos. Nosotros cubrimos costos bancarios por transferencia y costos de transacciones de ETFs (corretaje). Lo único que no cubrimos es el management fee de los ETFs contenidos dentro de las carteras, que usualmente es muy bajo.

\- Lo que sugerimos es agendar una transferencia programada desde el banco de cada cliente, nosotros detectamos las transferencias y las asociamos automáticamente cuando llegan.</comment></comment></comment></comment>


Functional programming in JavaScript is an antipattern - <AUTHOR> https://hackernoon.com/functional-programming-in-javascript-is-an-antipattern-58526819f21e <comment><USER3> Funny, but HN oldsters probably remember when functional programming wasn't at all tied to immutable data structures, and when Lisp and derivatives where considered enough functional programming, without every discussion of the topic requiring strictly requiring purity and immutability -- just first class functions, map, fold, and the like.

<comment><USER4> I was taught in university that functional programming means using functions as first-class-values, so function can get other function as a parameter. That's all. You can write functional code with assembler if you want. Immutability is just another design choice with its pros and cons.

<comment><USER5> I've always thought that functional programming is about structuring your program in functions and their composition (as opposed to classes) - <USER2> to do with immutability either.

As for JS, I've read "Javascript: The good parts" one day and realized that I can do everything I want using just functions and closures - it's really elegant imo. (even use this approach in Python sometimes)

</comment></comment></comment><comment><USER6> I've been doing FP in JavaScript fulltime for a few years now. I find it much easier than the OOP approach.

My advice to the author is: choose ImmutableJS, Ramda, OR lodash. Don't choose all three.

I think that is his anti-pattern.

> I could be more productive if I didn't have to wonder things like ... > "Should I mutate this variable?"

If you're doing FP the answer is likely 'No.'

<comment><USER7> Or?

Ramda doesn't even have the same functionality as Lodash.

<comment><USER6> Excuse the overstatement -- there are sane ways to use the libraries in the same project. The point was the 3 libraries all prescribe a certain model of structuring and operating on data. One cannot reasonably expect to use all 3 without some cognitive overhead.

<comment><USER7> I see.

I was just reminded of last week, when I needed a utils lib. I read many good things about Ramda, but then I wanted to debounce a function and it failed me, haha.

</comment></comment></comment></comment><comment><USER8> I wouldn't go as far as to call it an anti-pattern, but the lack of native persistent data structures does make functional programming a decidedly second-class citizen in the JS world.

We can either choose to use a library like ImmutableJS instead of regular JS objects and suffer the impedance mismatch and exponential increase in verbosity, or use regular JS objects and make full copies every time we want to change any piece of data.

It's a very unfortunate blemish on an otherwise surprisingly pleasant experience (functional programming in JS), especially when paired with a nice utility library like Ramda [1].

I tried to look into if native persistent data structures was on the roadmap for a later version of ECMAScript, but this random proposal on GitHub [2] was the only thing I could find, and I'm not familiar enough with the standardization process to be able to gauge how much traction that proposal is getting.

If anyone else is aware of similar efforts, I'd love to hear about them.

Until something like this makes it into JS proper, I'll be putting my weight behind ClojureScript.

[1] [http://ramdajs.com/docs/](http://ramdajs.com/docs/)

[2] [https://github.com/sebmarkbage/ecmascript-immutable-data- str...](https://github.com/sebmarkbage/ecmascript-immutable-data-structures)

</comment><comment><USER9> I like Javascript. As a language. It's fun, enjoyable, and I'm productive in it. There I said it.

I don't mind exploring interesting avenues like immutability, jsx, typescript, declarative or functional styles. I like that JS has enough flexibility to make all of these possible.

I get the fatigue about the endless stream of new frameworks, libraries, approaches, and "new hotness". But I became much more relaxed about it all when I realised it's all completely optional. I can just stick with vanilla JS if I want to, and cherry-pick interesting things as they whizz by. It's the sushi train of programming environments :)

LISP in JS sounds great, I might give it a try. But this does raise a conundrum... if LISP is the ultimate programming language because you can write all the others in LISP, then the fact that this is a LISP written in JS makes it...what?

<comment><USER10> unfortunately this approach does not scale past single developer or multiple klocs of code unless you're really disciplined, but then wouldn't that cognitive effort be better spent elsewhere?

<comment><USER11> I've seen multiple klocks of code written in Java and C that are taking minutes to handle database operations, unable to process parallel network requests, and choking on errors. Watching new features get added is exciting in the same way it's ensorcelling to watch someone assemble a house of cards.

I'd love a tool that enabled me to spend my cognitive currency how I want to, but so far all I've found are tools that have disguised their expenses in new and interesting ways, like tranches of a collateralized debt obligation.

<comment><USER10> i don't think i disagree with you and (i think) neither does the author. argument (as i understand it) is that rather than piling on features that don't really fit and have complex interference you could use a better tool.

</comment></comment></comment></comment><comment><USER12> I hate the arrogance of announcing that thousands of developers' work is an antipattern. This post contains valid discussion of some of the shortcomings of FP-in-JS, and presents alternatives. That's fine. But everyone has their own priorities and tradeoffs. The downsides of adopting Clojurescript in my current situation would outweigh the benefits.

> Clojure compiles to Javascript... So any Javascript job could be a > Clojurescript job

That's not how it works.

<comment><USER13> Maybe it's arrogant to call out valid criticism as attacking the work of others, rather than just the paradigm.

</comment></comment><comment><USER14> >Functional programming in JavaScript is an antipattern

The article then shows ClojureScript as _an_ alternative.

In the comment section Ken Aguilar mentions two other alternatives: PureScript and Elm.

But there are more! Bloomberg's BuckleScript (which is OCaml; possible used on onjunction with Facebook's Reason), GHCJS (Haskell), are two other FP langs that compile to JS. These two have the added bonus of being strong langs for performant server-side programming as well.

[http://www.purescript.org/](http://www.purescript.org/)

[http://elm-lang.org/](http://elm-lang.org/)

[https://github.com/BuckleScript/bucklescript](https://github.com/BuckleScript/bucklescript)

[https://facebook.github.io/reason/](https://facebook.github.io/reason/)

[https://github.com/ghcjs/ghcjs](https://github.com/ghcjs/ghcjs)

<comment><USER15> Elm is nice. Really really nice. It make it very intuitive and straightforward to write well architectured front end code. The compiler tells you straight away when something is wrong.

I have recently started playing with Bucklescript and am _really_ loving it. There is bucklescript-tea which is a port of the Elm architecture to OCaml. So not only do you get the goodness from Elm - intuitively well architectured applications, but you can do it in a language that can be used everywhere - not just on the server.

Another worth mentioning is Typescript. Having discovered the joy of types through Elm and Bucklescript it was a real pain having to go back to maintain a fairly large javascript code base. My initial thought was to rewrite the whole thing in OCaml, but that would take months if not years. Instead I have started moving it across to Typescript. No code needs rewriting, I can just slowly one file at a time start adding typing information in. I have found a lot of subtle bugs and bugs I knew existed but was tearing my hair out about just easily presented themselves via compiler messages.

I will never go back to raw javascript again.

<comment><USER16> Curious question: Why did you choose Typescript over Flow? Flow's type system is better designed. Also, Flow's annotations are _really_ optional, as in: Generating JS from Flow means throwing away the annotations. Nothing else, no code generation at all.

<comment><USER15> I struggled to get Flow working on FreeBSD. Typescript worked straight away, so I just went with it.

</comment></comment></comment></comment><comment><USER17> Not well reasoned. Mostly of the complaints boil down to 'not knowing' whether a given piece of data is mutable or not.

If you're doing FP with immutable data, there is no ambiguity: you never mutate. Doesn't matter which language you're in, nor whether the data- structure is mutable or not (e.g Redux mostly uses normal mutable JS objects, with the spread operator to avoid mutation when returning a new state).

</comment><comment><USER18> In my opinion the top rated comment is right on point there: "I'd say that ImmutableJS is your anti-pattern here, not FP in JavaScript as a whole."

<comment><USER19> I agree - I use ImmutableJS in one of my projects and the pros vs cons are substantial - it's hard to keep track of when something is Immutable or not and it has been slowly infecting more and more of my codebase.

I would be interested in hearing strategies of mitigating this, my first step has been to let Immutable creep through the project, but adopt a convention of creating a layer through which guarantees JS output - anything that is logic related in my redux layer is Immutable, anything which is in my presentational react layer is JS.

The difficulty then, is at input points where I need to always remember to deal with nested data structures too.

It feels like a type checker would be of great use here to add additional guarantees about any data

<comment><USER20> Interesting you should say that. I wrote a Reddit comment about a year ago listing reasons why I generally advise against use of Immutable.js, and the "infectious" API is exactly one of the reasons that I listed ( [https://www.reddit.com/r/javascript/comments/4rcqpx/dan_abra...](https://www.reddit.com/r/javascript/comments/4rcqpx/dan_abramov_redux_is_not_an_architecture_or/d51g4k4?context=3) ).

Also worth noting that if you are going to do Immutable -> POJO conversions, you should avoid using `toJS()` as much as possible. The conversion process is expensive, _and_ it always creates new object references. Either use `getIn()`, or use memoized selectors to ensure the conversion only happens when the data actually changed.

<comment><USER19> Yep memoized selectors was on my list of things to look at - great tip!

My philosophy is when providing the POJO from the immutable data structure is to select the absolute minimum from the bigger object, which I suppose is in line with your advice on using getIn

</comment></comment></comment></comment><comment><USER21> This post struck home with me. But I realized that the root cause for the problem is the many _ways_ to do FP (and, notably, immutable) in JS. What doesn't help here is that all ways have some major downsides. ImmutableJS has a huge API that works pretty different from everything else. Ramda changes all the time. Lodash, by virtue of _not_ changing all the time ever since underscore was first released, has some pretty weird and unexpected function names and behaviors.

If JS had more builtin functional primitives (i.e. well beyond Array.prototype.map and friends) this problem would be much smaller.

Similarly, I think another way out of this antipattern is to settle with the team on a single way to do FP. This disqualifies ImmutableJS by definition, because 3rd party apis tend to want arrays and objects. But most other options are open, I guess.

</comment><comment><USER22> It's an anti-pattern to call some "overly broad category of things" an anti- pattern.

</comment><comment><USER23> The author asks WHY hasn't clojure caught on if it is great.

I think I have a better answer than his conclusion that it aint popular because people shun things that aren't popular.

(1) coding when EVERYTHING is immutable by default is a royal pain in the arse.

(2) Coding directly in Abstract Syntax Trees is not pretty, there is a reason why most programming languages don't look like lisp.

<comment><USER24> Coding in nearly the cleanest possible notation for abstract syntax trees is simply breathtaking.

The reason a lot of programing languages don't look like Lisp is that most programming languages don't have anything interesting _semantically_ going on. Their authors' primary source of intellectual pride is the work that went into the syntax.

Part of it is CS education. It is drilled into the heads of CS undergraduates that programming language design involves tokenizing, and parsing with LALR(1) or what have you. The idea that you're going to have those pieces there if you design any language for any purpose is deeply ingrained, like the idea that no matter what you will be coding, you're going to have modules with functions that have local variables, and that there will be a edit-compile-debug cycle, and so on.

</comment></comment><comment><USER25> Seems like the author discovered the curse of the excluded middle: [http://queue.acm.org/detail.cfm?id=2611829](http://queue.acm.org/detail.cfm?id=2611829)

<comment><USER26> Interesting article, but I think F# (and other impure FP languages) show pretty clearly that you can have "mostly functional" programming without causing chaos.

</comment></comment><comment><USER27> Previously [https://news.ycombinator.com/item?id=14602448](https://news.ycombinator.com/item?id=14602448)

It was widely panned in the comments then, too.

EDIT: looks like it was posted even earlier and nobody payed attention: [https://news.ycombinator.com/item?id=14590127](https://news.ycombinator.com/item?id=14590127)

</comment><comment><USER28> What has happened to Javascript is the same thing that happened to other fundamental high-level languages before them. It has changed from a high-level language to an assembly language just like C and Java.

Of course you canb choose to live in the past and keep on hand-rolling your Javascript just like others do with C and Java, but the world has changed. In today's world we write our code in a high-level language and have an optimizing compiler emit the assembly/machine code that our compute engine executes. The details are a bit different for different compute engines.

For C, the high-level compiler might use the same backend as the C compiler to emit machine code for x86 or ARM, but it will make integrating C libraries easy to do. For Java, the high=level compiler may emit Java class files directly but it will make integrating Java libraries easy to do. For Javascript you have Scala.JS and Clojurescript emitting optimized Javascript because the compute engine executes that directly.

As a developer it is worthwhile knowing all these low level details of internals because you will need to debug issues with that level of knowledge. But your main job should be to implement tested stable functionality for the users of your application. No matter how much you like C or Java or Javascript, it is always faster, more efficient and more reliable to write in a truly high-level language that incorporates the best knowledge of the latest research in Computer Science.

As a Javascript expert you may find that Clojure slows you down at first. That is the investment period. Then you start picking up the tempo, enter the payback period, and people start whispering about you being a rocket scientist or 10x developer.

Of course you could just stick woth Javascript but others who know how to roll with the punches will change with the times and win the 10X crown. Not because they are better, but because a true 10x developer is just a person who uses the best tools. They used to say that the suit makes the man. Nowadays it is the tools that make the 10X developer.

<comment><USER29> > It has changed from a high-level language to an assembly language just like > C and Java.

Neither C nor Java are assembly languages. What are you trying to express here?

> No matter how much you like C or Java or Javascript, it is always faster, > more efficient and more reliable to write in a truly high-level language > that incorporates the best knowledge of the latest research in Computer > Science.

> always faster, more efficient > truly high-level > best knowledge > latest > research

I uh.... what?

</comment></comment><comment><USER30> I have a few large React apps that have been using mostly Immutable.JS from the very beginning, so I rarely run into issues where I need to think whether what I'm dealing with is an Immutable.JS object or plain JS objects. I can see an issue if you are incrementally converting an app to Immutable.JS and dealing with a mix of plain JS objects though.

I have heard criticisms of lisp macros as making it a write-once language. If you're not working on a team then maybe it's fine, but other people aren't gonna want to figure out how your macros work.

<comment><USER28> This is why a professional developer needs to document their code. If they don't do that, then they are NOT a professional.

Plus they are selling themselves short. If you want to fully learn something you must teach it. By documenting your code you are teaching the other developers on the team and this will lead you to much deeper understanding than the hackers who churn out code all day.

</comment></comment><comment><USER31> Just a note on immutability, I feel like this is pretty straightforward in ES6 (map, spread operator, and Object.assign) and will be more so with spread- operator for objects in ES7. Am I missing something?

I mean, you still have to THINK about whether you need to keep something immutable or not, but that's the difference between a junior developer and a more seasoned engineer, right?

<comment><USER32> This is the C++ trap - you keep piling on more features to the language and then you can answer some criticisms by saying "just use this subset". But this is not how the usage of programming languages pans out. Programmers can't agree even with themselves (=consistency) about what subset to use, or have accidents with it. And libraries / practices in that PL's culture can't rely on those conventions and subsets, so they can't really leverage the benefits. It's basically inventing your own mini-language with borders drawn in the sand and not enforced by any tooling.

</comment></comment><comment><USER33> Coming from Clojure to ClojureScript, I must say I have had some hard times with the dynamic, mutable, APIs that a lot of js libraries have.

Even though interop is possible and not difficult, I am so much more comfortable using cljs wrappers (there are a lot) or in my part of the world (cljs - land). One reason is that the clojure way (tm) is to use immutable data and pure functions. It bugs me to enact stateful changes.

One way out is to have a datastructure that stores the state of the entire browser (what url am i on, what's in local storage?) and change the datastructure while some unspeakable side effecting function observes and updates either localstorage, or browser history, or etc.

In Clojure 90% of my code is datastructures, manipulating them, and sending them back. Partly because servers tend to be way less stateful than UIs, and partly because it feels like there is more to explore in Clojure without going into java, compared to cljs/js.

</comment><comment><USER32> There are so many JS/Node developers now, and I have worried that JS will ruin dynamic languages for a lot of people, so it's encouraging to hear this written about ClojureScript: "As an average Javascript/Node developer, it hasn't been difficult for me to learn the language or the ecosystem"

</comment><comment><USER34> I think the biggest weakness in the ecosystem is that it's cumbersome to map between different approaches to immutability. I'd like to be able to use clojurescript for some stuff, reason/bucklescript for other stuff, and immutable.js for still other stuff without having to jump through hoops when passing immutable data around.

Are there immutability constructs in flow or typescript that would allow libraries to conform to a type interface for conversion?

</comment><comment><USER35> Don't use immutability in JS. Though, use Ramda, since it's much better than plain JS.

This, then, would solve almost all of the problems mentioned in the article, yet remain functional friendly.

Ramda functions never mutate the object by always returning a new object, this is very simple to reason about, and it's pretty close to immutable programming without the overhead yet only one API.

</comment><comment><USER36> One of the most annoying JS FP antipatterns is when people use fancy 3rd-party currying when a simple ES6 fat-arrow would suffice.

"_.curry(f,0)" instead of "x => f(0,x)"

</comment><comment><USER37> Don't use a weakly typed language use instead my dynamically typed language!

</comment><comment><USER38> The flagged comment was accurate - post claims FP in javascript is an antipattern, but then says FP is the most sane way to write javasript.

Ergo author is claiming javascript is an antipattern, tldr clojurescript. /shrug

<comment><USER10> that's a misrepresentation. post claims FP in javascript is an antipattern, so use FP language that transpiles to javascript instead.

<comment><USER38> From the post:

        Basically, write Javascript without functional programming techniques. That doesn't seem like a good solution.

So . . . what am I misrepresenting?</comment></comment></comment>


AsciiFlow Infinity: Powerful In-Browser ASCII Art Editor - <AUTHOR> http://asciiflow.com/ <comment><USER2> Nice. Would be great if it could "anti-alias" the lines you draw! Using other ASCII characters, I mean.

I remember nfo files sometimes having quite impressive & inventive use of various characters :)

</comment><comment><USER3> Dupe of [https://news.ycombinator.com/item?id=7085133](https://news.ycombinator.com/item?id=7085133).

<comment><USER4> The app, which was pretty basic and lacked of functionalities such as infinite drawing space, easily movable objects, easy save... has been updated recently. It probably deserves a HN post again, since it turned into a lot more usable tool.

<comment><USER3> It's great to see people working hard on projects, but HN doesn't have enough space to tolerate most reposts for feature upgrades.

In this case, there was a major thread just 80 days ago, so marking the current post a dupe isn't really a hard call. Sorry to disappoint.

</comment></comment></comment><comment><USER5> Super brilliant. Really really cool.

</comment><comment><USER6> coolest thing I have seen lately, Über nerdy!

</comment><comment><USER7> Great work!</comment>


How to Answer Interview Questions - <AUTHOR> http://answerinterviewquestions.net/ <comment><USER2> This looks like spam to me.</comment>


iOS Apps for Dealing with Anxiety - <AUTHOR> https://www.freeramble.com/news/2019/10/10/4-apps-to-help-deal-with-anxiety/ <comment><USER2> I used an amazing app to deal with anxiety, for me was awesome, try it. Download it In Iphone: [http://bit.ly/Mind_plus](http://bit.ly/Mind_plus) and in google play: [http://bit.ly/app_MindPlus](http://bit.ly/app_MindPlus)

</comment><comment><USER3> AutoSender looks nice, but I'd be wary about data collection. Their privacy policy ([https://www.freeramble.com/doc/FreeRamble_Privacy_Policy.htm...](https://www.freeramble.com/doc/FreeRamble_Privacy_Policy.html)) states it's anonymized but days like these I'm not convinced...</comment>


Apple Said to Be Exploring Switch From Intel Chips for the Mac - <AUTHOR> http://www.bloomberg.com/news/2012-11-05/apple-said-to-be-exploring-switch-from-intel-chips-for-the-mac.html <comment><AUTHOR> Sorry, I didn't link to the source originally and it looks like I can't change the URL, but here's the (longer, more interesting) Bloomberg article: [http://www.bloomberg.com/news/2012-11-05/apple-said-to-be- ex...](http://www.bloomberg.com/news/2012-11-05/apple-said-to-be-exploring- switch-from-intel-chips-for-the-mac.html)

</comment><comment><USER2> Curiously, I would almost have believed Microsoft to have been the first to make a move like this. They have already been preparing their developer ecosystem for an architecture independent target for years with .NET and CLR/MSIL. As more software is developed in C#, switching CPU architecture is just a matter of supplying a new .NET VM bundled with the OS, and all your legacy software should continue to run - at full speed, even. (Incredibly, they decided that their ARM version of Windows 8 should be called "Windows RT" and be rather limited! What a missed opportunity!)

Meanwhile, Apple's developer tools are still churning out x86, x86_64, and/or arm assembly from Objective-C, so all existing software would at the very least need a recompile (hope your vendor is still around and has written portable code!) Or they could do another Rosetta, translating x86_64 to ARM. Doesn't sound like an efficient solution, though. And after a few years they'd drop the emulator from the OS anyways :P

<comment><USER3> I might be running more .NET software than I realize, but it seems to me that .NET isn't anywhere _close_ to becoming the majority "instruction set" of software shipped on Windows.

<comment><USER2> You can't blame them for lack of trying to push it though, no? :)

<comment><USER3> Agreed. Although Office staying Win32 sure doesn't send the signal to others that its worth the effort to move software like that to .NET. Anyway, I'm always surprised how few things seem to be .NET, here nearly 11 years after it was introduced.

</comment></comment></comment></comment><comment><USER4> It seems risky to invest so much in your own chip design without owning a fab too. If they really want to go down this route, I'd expect a purchase of TSMC or similar. And you're not going to stay competitive for long unless you invest heavily, at least on the scale Intel is. Apple users have watched their computers slip behind before with PowerPC, I'm not sure if they'd have the patience to see that happen again.

<comment><USER5> A problem with that approach is that owning a top-of-the-line fab is expensive because you have to buy a new one every few years. Every next generation is more expensive than the one before it.

I would think owning a fab just for the production of chips used in Apple products would be too expensive to consider. Owning a fab and selling chips to others, to me, looks to go way too much against Apple's culture.

 _"Apple users have watched their computers slip behind before with PowerPC"_

I think that is exactly why Apple has a _backup_ plan to move to ARM. If Microsoft is successful at moving to ARM with Surface, they will have to follow.

<comment><USER4> Putting aside the fact that the fab takes a healthy chunk of profit, the question is one of capacity. A fab is under no obligation to provide Apple with chips, and given a choice between one big contract with Apple or diversifying and having a dozen smaller contracts with other manufacturers and I know what I'd pick.

The problem then, for Apple, is that they can't just turn around and get their chips made somewhere else. There just aren't enough fabs in the world to produce them at the quantity Apple needs, especially using latest-generation processes.

<comment><USER5> Which one would you pick? The one with AAA rating that pays half up front that pays well for state of the art stuff, or the dozen smaller ones that seem more concerned about your pricing than about the quality of your products? Yes, I probably am exaggerating, but I do not think the choice is as clearcut as you indicate. There is risk in taking on a customer that is larger than you, but there also is a lot of potential profit there.

</comment></comment></comment></comment><comment><USER6> For Apple, leaking news like this makes sense for a few key reasons:

1) They obviously are eager to take another step towards complete vertical integration, giving them even greater profit margins 2) Apple made it known wanted to make their Macbook pros as thin as their Macbook airs earlier this year, but the (relatively) high TDP of intel's mobile chips would've scorched users laps. 3) It's an obvious message(and challenge) to intel that they have to do even better. Apple will likely continue their growth to the largest PC maker (if they aren't already) and Intel needs their business. They're giving Intel 5 years to show them something special.

</comment><comment><USER7> There is no question in my mind that Apple will gradually switch from Intel to ARM. I don't think it will happen until 2014, when the first 64-bit ARM designs come out. At the current rate of improvement, ARM processors in two years will offer roughly 4X what today's chips offer (with a better power consumption profile than current low-end Intel designs). By that point, ARM performance will probably be "good enough" for lower-end machines (such as the MBA) to use ARM rather than Intel.

I also think it's possible that iOS will eventually become the successor to Mac OSX.

<comment><USER8> One thing in favor of the move is customization. Intel has done an amazing job of removing the customization options from the x86 eco-system. No NVIDIA chipsets and no hooking into the faster bus on Intel motherboards. This has to be a problem for a company like Apple trying to build something non-stock.

Also, I cannot imagine the whole "Intel paying people to clone the MacBook Air" was well received in Cupertino.

</comment></comment><comment><USER4> Betting against Intel in the long term doesn't seem to be a good idea. That said, I'm sure Apple's got their eye on the world's first 24-hour laptop, and I'm sure ARM could help them get there.

<comment><USER9> Intel hasn't been doing to hot lately; wall street is definitely betting against them now, and I think they are taking a long term outlook because Intel still has good profits.

What makes you think Intel will eventually stop the slide and get its mojo back?

<comment><USER4> Just sheer force of will. Intel has the engineering talent, the experience, the motivation and the capital. If they can't do it, who can? Apple has a lot to prove here, and so far all they've achieved is purchasing a few smaller chip design firms and managing to adapt existing ARM cores for their own SoCs. They have a long way to go to be able to be competitive in this area. The one thing going for them is that they have the capital to burn, and I can't think of a better way to use it.

<comment><USER10> Note that as of the A6/X, they have now designed their _own_ ARM instruction set cores (as opposed to using ARM-designed cores).

<comment><USER4> Ah, I wasn't aware of this, thanks. I thought they were still packaging ARM- designed cores. For anyone else who'd missed it, here's a good article on it on Anandtech: <http://www.anandtech.com/show/6330/the-iphone-5-review/5>

</comment></comment></comment></comment></comment><comment><USER11> There's no need to assume that a switch for some Macs will be a switch for all Macs. Multi-architecture binaries were standard for several years during the x86 transition. As they move to an App-Store model, it will be relatively simple to download the right binary based on architecture. Signed binaries could be required to be multiplatform. The minority of users who want to install software that's not Apple-approved will have to deal with potentially higher amounts of complexity.

</comment><comment><USER12> See this report on Apple's CapEx spending in the last quarter: <http://www.asymco.com/2012/10/31/hey-big-spender/>

It's seen a big spike up and is ~ 30% more than Intel's $2.6 billion/quarter. And it spent three times in Q3 than Google, 4.8x Microsoft and 3.8x Amazon.

Speculation in the comments are that Apple is paying an as yet unnamed firm, probably TSMC, to build/tool/operate one or several ARM SoC fabs.

</comment><comment><USER13> I know things have changed a lot since the PPC days, but it seems like this might not be the best idea, and that Apple's history might point this out.

I can see it for iOS devices, but for a legacy computer part of what's attractive to me about Macs is the base compatibility with commodity PC hardware. Of course, I also am not the hugest fan of the move toward merging iOS features into the desktop OS, so maybe I'm just being old fashioned about this.

</comment><comment><USER14> My speculation (completely not based on any knowledge - just what I would have done had I been in Apple's place)

1\. Buy AMD (or Cyrix or one of the other companies that has a working AMD64/x86 chip)

2\. Build a laptop that has both an acceptably strong AMD64 for the time, and a ridiculously strong (but scalable) ARM - say, a 16-core or 64-core 64-bit ARM core, which can scale its power.

3\. Politely ask app developers to ship 3-arch fat binaries: AMD64+ARM64+LLVMIR (politely ask might mean refuse in the Mac app store otherwise). Well, the first two are actually optional, but recommended. Or the last one is optional but recommended.

4\. Introduce a laptop with an OLED/color eInk (or other very low power) display, which can run either ARM64 or AMD64 or both, and can scale the number of cores. And an API that would let an app switch seamlessly between those modes.

5\. Tell people "your laptop can do 24 arm-core-hours (so, 2 hours using 12 cores, or 24 hours using one core), or 6 amd-core-hours. You pick the software, you choose.

6\. Watch as people (hopefully) prefer the amd64 mode thanks to its long life.

No company except Apple is in a position to pull such a thing. Maybe Apple can't either - but if anyone can, it is Apple.

</comment><comment><USER15> I could definitely see them going ARM in the MacBook Air line, but I think they'll keep Intel for a while for their desktops (power usage isn't a concern) and the MacBook Pro ("pro" users will need the extra power and compatibility of the Intel chips, at least in the near term).

</comment><comment><USER16> Sounds like Apple and Intel are in the midst of renegotiating their agreement(s).

</comment><comment><USER17> I don't think they are moving away from intel chips but doing something similar to Microsoft's approach with the Surface/Surface Pro versions.

</comment><comment><USER18> I'd be surprised if Apple hasn't been investigating alternatives to Intel chips since the day they switched. Not necessarily out of any dislike for Intel, (I think the switch has worked out quite well for Apple), but rather to remain nimble and be able to jump ships if Intel ever ran aground like the PowerPC consortium did.

</comment><comment><USER19> realistically ARM currently lacks the raw power intel chips provide. you can argue about battery life but most work is still done in offices where power sockets are not an issue.

it might change in the future but.. i don't think arm will catch up with x86 for at least a couple of years - in the meantime intel won't sit around doing nothing.

<comment><USER20> Apple doesnt historically pander to the enterprise market. They're eyeing their consumer laptops.

<comment><USER19> it was in the past appealing to creatives, designers, video producers, the publishing industry etc I believe those are processor-intensive applications that don't fall in the enterprise sector.

I understand even though apple tried to move out of the server market, every creative company offices i have visited they mostly work with apple products.

</comment></comment></comment><comment><USER21> I am wondering if Apple should not just go ahead and acquire AMD in order to further vertical integration.

<comment><USER22> Using AMD/ATI would be a setback in terms of component quality and TDP.

<comment><USER21> With AMD jumping in the ARM game, I thought it might make sense.

</comment></comment></comment><comment><USER23> I wouldn't doubt it. I think that Apple's going to move to control the entire stack from bottom to top.

<comment><USER19> ultimately apple doesn't want to be dependent on suppliers. I guess CPUs and displays are the next obvious things. not necessarily a good thing - this will lead to de-standardization of components, more undocumented hardware and drivers.

</comment></comment><comment><USER24> Apple should migrate from x86 to LLVM IR. Then JIT down to native code upon program installation. That way they can switch the underlying architecture as much as they like.

I'm surprised they haven't adopted this scheme with iOS already when they deprecated GCC.

<comment><USER25> Consider that having effectively banned jits from iOS, they have made the binary translation problem much easier.

</comment></comment><comment><USER26> I'd be surprised if they _weren't_ exploring it. But that doesn't mean they're going to make the switch; it only means that they're keeping their options open.

</comment><comment><USER27> Wild speculation:

Compiling for Apple's custom chip would require using a proprietary version of LLVM/Clang, and resulting binaries could only be distributed via the Mac App Store.

<comment><USER28> It doesn't matter because they've already locked it down on the demand side. You can distribute iOS apps anyway you want, but people won't be able to install them.

<comment><USER27> Things are locked down on iOS but not (yet) on Mac OS X. My gut feeling is that this trend will continue.

For example, APIs are already being leveraged. You can only use iCloud if your Mac app is distributed through the App Store.

In the near future, Apple could switch Gatekeeper's default setting to Mac App Store only, raising another barrier to independent vendors.

Moving to a new processor would provide Apple a great opportunity to round up the laggards and force them into the App Store.

</comment></comment></comment><comment><USER29> "In fact, the sources said such a move was years away, potentially not happening till 2017."

So this article is about something may or may not happen in 2007.

<comment><USER25> No, it's about something that may or may not happen in 2017.

<comment><USER29> Sorry about that.

</comment></comment></comment><comment><USER30> Guess I'll have to buy the White Album again …

Or something like that.</comment>