Shopify to raise $100M in Toronto, New York IPO - <AUTHOR> http://www.cbc.ca/news/business/shopify-to-raise-100m-in-toronto-new-york-ipo-1.3033009 <comment><USER2> CEO Profile, [http://www.theglobeandmail.com/report-on-business/rob- magazi...](http://www.theglobeandmail.com/report-on-business/rob- magazine/meet-our-ceo-of-the-year/article21734931/)

 _"..luck brought the sudden, coincidental appearance of a new framework for using Ruby, called "Ruby on Rails," devised by Danish programmer David Heinemeier Hansson. ..because Ruby on Rails was so new, Lütke's work gained notice. He began sharing some of the software components he was creating with the Rails community (a way to process credit cards, for example), and quickly became one of a select group of core Rails developers.

..Lütke took the burden of this stress entirely on himself. He told no one at the company. "I was sitting in meetings," he remembers, "talking with my peers about building things that would take us a year, when I knew we didn't have four weeks of money left. And I could not let anyone know that." He knew the minute he did, their focus would naturally shift to the short-term, to work on things for immediate benefit. For Shopify to succeed, he needed them to keep thinking long-term."_

<comment><USER3> Interesting. In Ben Horowitz's book _The Hard Thing about Hard Things_ , he recalled doing the opposite at Opsware/Loudcloud. He made sure that all his employees knew that they were in trouble.

For six months, Loudcloud employees worked long hours and were under constant stress, but were able to stay afloat on less money (keeping them alive longer). I think transparency trumps secrecy in most cases. Bad news spreads quickly and good news spreads slowly.

<comment><USER2> Horowitz also told that story in his Pando interview, [https://www.youtube.com/watch?v=sqI7fa04atc](https://www.youtube.com/watch?v=sqI7fa04atc)

</comment></comment></comment><comment><USER4> Not the sexiest stock but as someone who has built their company off Shopify I cant say I have worked with a better product/ company in my life. The way they handle third party developers, designers, and stores is exceptional. They really get what it takes to build a platform. I have no doubt thats Tobi vision of building the platform for all commerce will come true. As a developer building off Shopify excited to see what they do next.

<comment><USER5> I had a different experience. I played with Shopify, and canceled my account.

They kept charging me for years. I eventually noticed, and asked for a refund on the completely empty, completely unused account which was being charged to an expired and canceled card (something I didn't even know was possible until this incident).

Support said no, and offered a discount if I wanted to use Shopify in the future. I said I'd have to resort to a chargeback and I'd let my credit card company see if they agreed with my interpretation of the situation or not. The head of support literally yelled at me the moment I used the word chargeback, revoked his previous offer, and said they had no need to return my money, even though they hadn't earned it.

I wound up in touch with their VP Revenue who agreed that he didn't want to take any money they hadn't earned. But instead of refunding my money, he just dropped contact with me and never responded again.

If they were to respond to this publicly, they'd say I was angry with them. And that's true. I became angry after their _head_ of support yelled at me. I still can't believe that happened, it was the worst customer service experience of my life. My blood pressure goes up a little just remembering how I was treated.

So basically, I'm glad you're happy with them, but they stole a couple hundred bucks from me and lied about their intention to give it back. My experience makes me believe that anybody who had good experiences is, almost certainly, just lucky. That or I'm in the .001% of supremely bad luck.

If I'm truly in the .001%, their vp revenue can circle back and give me the money he promised (I'd be easy to identify on their side, since if they never yell at customers, and never lie to customers, then it should be super-easy to remember a time that they yelled at and then lied to a customer).

<comment><USER6> I'm aware that they are going through an overhaul of their customer service systems, process and probably the people. Its tough to grow as fast as they are, especially in this area. It is exceptionally hard to find great people, maintain culture and values while still providing great support. I'm not making excuses for them, except to say that I am certain they are aware of the issues they have had had in this area and are working on getting better.

<comment><USER7> > I'm not making excuses for them

Yes you are. If the OP story is true, you just don't yell at your customer. It doesn't make me want to try Shopify if they really use these kind of practices. Only shady pornsites do that stuff.

<comment><USER8> Have you ever actually worked as a customer service agent? Getting low-paid employees to consistently be courteous to angry customers is actually _really_ hard to get right.

You probably aren't; but lots of customers are assholes. Lots of people become utilitarians when they're dealing with customer support: when they want an outcome all means to that end become justified. I can't tell you how many insults I've had hurled at me during my few years as a support rep.

And as far as this customer is concerned; my guess is that he never got the chance to speak to the 'head of customer support.' He got pissed off at one employee; asked for the supervisor and was transferred to the support rep sitting next to him.

That shit happens all the time; heck I've been the 'supervisor' several times and had it work. Call it a 'social hack' support reps often use.

Now the guy should never have yelled and the VP should've followed up on his promise but downvoting someone who politely advocates cutting Spotify some slack based on a single report isn't fair either.

/ex-customer-support-rep-rant

</comment></comment></comment></comment></comment><comment><USER9> I've been a Shopify customer for about 5 years. What impresses me most is how much they've ramped up product development in the past 18 months. They're building new features at an aggressive pace and continuing to maintain a high degree of polish and ease of use.

</comment><comment><AUTHOR> The F-1 filing with the SEC is here:

[https://www.sec.gov/Archives/edgar/data/1594805/000119312515...](https://www.sec.gov/Archives/edgar/data/1594805/000119312515129273/d863202df1.htm)

<comment><USER10> Interesting: OMERS Ventures is one of the bigger shareholders in Shopify, to the tune of 6%. They are run as part of massive pension fund in Canada.

And the Canadian Gov't is also part of this round through a few levels of indirection:

[http://www.techvibes.com/blog/canadian-tech-sector-poised- fo...](http://www.techvibes.com/blog/canadian-tech-sector-poised-for-increase- in-ipo-activity-2015-01-19)

<comment><USER11> I know nothing about the investment world, but find this government-driven investment interesting. Last week the Canadian Pension Plan Investment Board, in participation with Permira, agreed to take Informatica private [0]. Two large tech investments by Canadian pension funds, and likely many more to which I'm unaware. Is this a proactive move to mitigate future pension crises [1], or just the way most governments operate? I suppose I'm not accustomed to thinking of governments investing in this manner.

[0] [http://www.nytimes.com/2015/04/08/business/dealbook/informat...](http://www.nytimes.com/2015/04/08/business/dealbook/informatica- agrees-to-5-3-billion-buyout.html?_r=0)

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

<comment><USER12> CPPIB and OMERS are at arms-length from the government. They have a free hand to invest in anything that meets their objectives and at least for CPPIB, any implication that the government had meddled in investment decisions for political reasons would be a huge scandal. Until recently, the Ontario Teachers' Pension Plan owned the Toronto Maple Leafs, one of the most profitable pro sports teams in the world.

In Canada, if it makes money, the pension plans are in on it. It's not political - just business.

</comment></comment></comment></comment><comment><USER13> Glad to see a Canadian tech company going public, but has an investor, I'm not thrilled by the following:

"Its total revenues have doubled from $23.7 million in 2012, to $50.3 million in 2013 and to $105 million in 2014. However, it experienced net losses each year, losing $22.3 million in 2014"

I looked in the F-1 form and saw:

"We had net losses of $1.2 million in 2012, $4.8 million in 2013, $22.3 million in 2014"

The losses quadrupled in 2012-2013, while revenue doubled, and increased almost fivefold in 2013-2014, while revenues only doubled.

</comment><comment><USER14> This is straight from the prospectus. The first bullet alone makes me want to buy shares.

Culture and Employees

If you have ambitious goals, you need an equally ambitious team. Shopify is composed of hundreds of highly talented, deeply caring individuals all working on making commerce better for everyone. Our culture is continuously being redefined with every person that joins our company, but, at our core, we value people who:

     	•	 	Get shit done

     	•	 	Build for the long-term

     	•	 	Focus on simple solutions

     	•	 	Act like owners

     	•	 	Thrive on change

</comment><comment><USER15> Here is a nice article written by Lütke himself about how he got into computers and how his then boss Jürgen was probably the most important thing that happened to him in his professional life.

[http://tobi.lutke.com/blogs/news/11280301-the-apprentice- pro...](http://tobi.lutke.com/blogs/news/11280301-the-apprentice-programmer)

Really enjoyed reading this piece. I can partly see myself in his story except all the achievements. We'll see.

</comment><comment><USER16> I looked at their pricing page and it looks like their $29 offering does have unlimited products now. I could have sworn it was much more limited about 2 years ago.

I keep looking for an inexpensive shopping cart solution for a friend who owns a handmade crafts retail store and not finding a good one. Meanwhile he keeps paying $50 a month for a proprietary shopping cart and gets maybe 20 online sales a year.

<comment><USER17> Get them onto Shopify, the untold story of Shopify is the ease a layperson can work with the back-end. He can adjust all sorts of things, upload pictures, and edit text without having to contact you.

I like Shopify, they are going to have customer service growing pains as they ramp up to handle customer loads, but going public means it is sink or swim time.

</comment></comment><comment><USER18> A friend of mine pointed out: 68% growth in # of merchants using the service last year, yet losses doubled. Could this mean their VCs actually want some money back?

Aside: I have used Shopify to develop e-commerce sites and its lack of local development frustrated me a huge amount. Saying that, I also appreciate what they are trying to do and have a lot of respect for them as a company.

</comment><comment><USER19> Nice to see more TSX listings!

</comment><comment><USER20> As a developer, does it make sense to build shopify apps? Curious to hear about shopify apps and its ecosystem

<comment><USER21> As a one-time Shopify user, I'd think so. The default model is recurring billing and Shopify's features are super bare bones with the "there's an app for that" fallback that keeps the platform viable. The apps on offer are very hit or miss and many are simply poorly designed or thought out, and there seems to be room (in conjunction with some marketing) to carve out a good space there for quality interoperable apps.

</comment></comment><comment><USER22> Who is their main competition?

In this the online store and retail POS space I'm aware there are other operators, but Shopify is the only one I can name.

Square I guess in the POS space?

<comment><AUTHOR> Some competitors:

Magento / Magento Go oscommerce woocommerce etsy squarespace prestashop opencart Wordpress has shopping chart as well.

There are a ton of existing POS providers for stores, more than one can name.

<comment><USER23> Magneto and OSCommerce are nowhere near competitors IMO, at least in terms of using them as a developer. I still get fever dreams about Magento...

</comment></comment></comment><comment><USER24> Congrats to the Shopify team.

</comment><comment><USER25> it's good to see the founder still own 14% of the business

</comment><comment><USER26> Does this make Shopify the largest Ruby IPO to date?

<comment><USER27> I don't know about an IPO but I was talking to a Shopify employee at Pycon and he said it's the largest Rails app in the world.

<comment><USER28> Definitely one of the oldest - Shopify is on Rails 4 now, initial commit was on the release day of Rails 0.5!

</comment></comment></comment><comment><USER29> Refresh?

</comment><comment><USER30> I'm not a financial expert so I'm really not sure, but I'm extremely distrustful of this JOBS Act and "IPO-Lites." Not Shopify specifically, but it's going to open the door to a lot of smaller companies that have a lot less scrutiny on them to IPO and I worry that it will allow VCs to dump their weaker companies on the public, and turn a potential private equity bubble into something bigger.

I worked for a startup that I know is in shaky grounds. While I hope they recover and do great, they also suddenly have freelance "journalists" writing positive things about them in the press, and I'm 99% sure it's paid PR via VC connections (especially given that I know for a fact the publication - TheStreet.com - has ties to the NYC VC community). Meanwhile, because it's not a super well known company, there's not a lot of opinions out there one way or the other on it so when you Google its name you just read these few very positive pieces about it. Now, this may be just paranoia, but we as an industry should be vigilant that VCs don't try to run pump-and-dumps on their weaker holdings. It will benefit nobody but bad VCs and will harm the public and the industry's reputation, and due to lockups it's unlikely it will benefit the typical employee with common shares anyway.

I read an article about these mini-IPOs in the WSJ and it's saying "Democrats like it because it empowers the little guy, Republicans like it because it removes regulation." They also tried to spin it as "VCs HATE this! Average investors can take over instead now!" I don't trust Wall Street and I don't trust the SEC's ability to regulate them, so when the rules change I assume that Wall St is getting their way rather than the reverse. If the Republicans, Democrats, and Wall St all love a new piece of regulation, I assume the public's about to get screwed.

<comment><USER31> Shopify is not a shaky company at all. It's a top notch company, top place to work, top product. It's like a recipe of everything done well.

So I don't really understand why you say that.

<comment><USER30> I am not talking about Shopify specifically, the reason it's relevant is because they are IPOing using a new set of rules based on the JOBS act. This IPO would not have been possible even two months ago. Read the filing and read more about the JOBS act and "IPO-lites." Even if Shopify is not a bad investment, the point stands that smaller companies under less scrutiny being sold to the public opens up big avenues for fraud and pump-and-dumps.

<comment><USER2> Could you provide a pointer to the section of their filing which identifies the new rules?

<comment><USER30> Just search for JOBS in the filing itself, I've quoted it a few times in other comments.

Here's a link talking about the regulatory change:

[http://ww2.cfo.com/regulation/2015/03/sec-approves-new- rules...](http://ww2.cfo.com/regulation/2015/03/sec-approves-new-rules-for- ipo-lite-offerings-regulation-a/)</comment></comment></comment></comment></comment>


Electric vehicles emit more CO2 than diesel ones, German study shows - <AUTHOR> http://brusselstimes.com/business/technology/15050/electric-vehicles-emit-more-co2-than-diesel-ones,-german-study-shows <comment><USER2> This study (if you could call it that) has already been shown to be heavily biased and misleading.

Here's an article with comments from Norwegian fact checking site: [https://www.faktisk.no/artikler/NKl/forskere-mener-tysk- elbi...](https://www.faktisk.no/artikler/NKl/forskere-mener-tysk-elbil- rapport-er-uvitenskapelig-og-grovt-villedende)

One flaw is that it does not account for energy used and emissions related to extraction of oil and production and distribution of diesel.

Another flaw is that the estimate for CO2 emissions in the production of the battery makes assumptions that we know are false in the case of Tesla.

But the whole premise is also bogus. The point of EVs isn't to cut a few percent of CO2 emissions. It's to build towards a future where we cut ALL emissions. And it's the only technology (possible alongside fuel cell tech, which is a branch of EVs as far as I'm concerned) that can plausibly do that for the land transportation sector. Sure you need to clean up production emissions and the grid too. But that's problems we have to solve anyway, and _are_ improving on every year.

We can't _just_ go toward whatever leads to the most CO2 decreases at a given time. We need a long term plan that actually builds towards cutting _all_ emissions. Studies like this completely miss this point, and so does people thinking their hybrid or EV is personally saving the planet for that matter.. but hey they help drive investments that actually matter so they help even if they miss the point

<comment><USER3> > One flaw is that it does not account for energy used and emissions related > to extraction of oil and production and distribution of diesel.

If you wanted to go that far, you'd need to account for all of the fuel used in transporting Tesla parts, right?

<comment> village-idiot Yes.

This is a standard form of emissions measurement called "wheel to wheel" measurement. It includes the cost of making the raw material, transport, manufacturing, and fuel production.

But the trick is that the frame of an EV really isn't all that different than the frame of an ICE vehicle from an emissions standpoint. So all that you really need to measure is the difference in drivetrain production and operation.

<comment><USER3> and when that "wheel to wheel" measurement is made given the similarities and differences you called out, is a Tesla that much better for the environment than say... a 40mpg sedan?

<comment> village-idiot Depends on power generation, and it therefore depends on the state. In a place like Kentucky or Alabama that uses a lot of coal it will be close. In a place like California or Iowa the EV will win hands down.

</comment></comment></comment></comment></comment><comment><USER4> "When all these factors are considered, each Tesla emits 156 to 180 grams of CO2 per kilometre, which is more than a comparable diesel vehicle produced by the German company Mercedes, for example."

Well, since they are considering all factors, the next step would be to consider the costs of diesel, too, starting with oil drilling, transport, etc. culminating in the subsequent burning of diesel in the engine.

<comment><USER5> there's always bunker fuel (a few transport vessels pollute more than all the cars in the world)

<comment><USER6> Please stop to think when you read such things on Twitter or wherever.

Here's what you should think: If a few map to all the cars in the world, then one really big vessel maps to the cars in Europe, perhaps? That fuel was chosen because it's cheap and a tankful can propel a giant loaded ship from Shanghai to Rotterdam, and that tank is small enough to leave most of the ship's space for payload. Is it plausible that something that fits in one tank can pollute as much as all the cars in Europe? Or is there something fishy about the computation or comparison?

<comment><USER5> I believe when I read this, the pollutant was sulfer. So it's not CO2.

</comment></comment></comment></comment><comment><USER7> The analysis assumes the energy used for battery production is typical grid energy, whereas in reality the Gigafactory where they are made is mostly solar-powered.

<comment><USER8> Do you have a source for this claim? As far as I know, that was just a plan that was not yet executed, and the building is largely uncovered:

[https://www.teslarati.com/tesla-gigafactory-1-solar- panels-m...](https://www.teslarati.com/tesla-gigafactory-1-solar-panels- model-3-battery-production/)

<comment><USER8> Back of the napkin calculations:

From the photo, I'll assume 5% of the Gigafactory is covered.

5.5 million square feet across 3 floors [1]

=> 151k sqm of footprint

=> 7550 sqm of solar panels

=> 2.3 MW @ 31% capacity factor [2]

=> 20.1 GWh per year

Tesla Model 3 production @ 252k/yr [3]

=> 80 kWh per Model 3 produced

Enough to fill up a high end Model 3 once...

[1] [https://www.theverge.com/transportation/2018/11/30/18118451/...](https://www.theverge.com/transportation/2018/11/30/18118451/tesla- gigafactory-nevada-video-elon-musk-jobs-model-3) [2] [http://energy.nv.gov/uploadedFiles/energynvgov/content/Synap...](http://energy.nv.gov/uploadedFiles/energynvgov/content/Synapse%20Nevada%20RE%20Report%20w%20Disclaimer%20and%20Comments%20112812.pdf) [3] [https://ir.tesla.com/news-releases/news-release- details/tesl...](https://ir.tesla.com/news-releases/news-release- details/tesla-q1-2019-vehicle-production-deliveries)

</comment></comment></comment><comment><USER9> In a hurry, so unfortunately I can not translate key arguments, but there were some German publications which actively criticised this study. Summary article can be found here: [https://www.electrive.net/2019/04/20/experten-entlarven- elek...](https://www.electrive.net/2019/04/20/experten-entlarven-elektroauto- studie-von-hans-werner-sinn-als-unwissenschaftliche-meinungsmache/)

It links to articles [0] and [1]. Most notably, though, this isn't at all a scientific or peer reviewed publication.

Hans-Werner Sinn is a well known German economist, Christoph Bruchal is a material physicist and Hans-Dieter Karl seems to be a former employee of Sinn's economic institute (ifo) who isn't mentioned in any common research publication platform.

[0]: [https://www.focus.de/auto/elektroauto/studie-zu-klima- folgen...](https://www.focus.de/auto/elektroauto/studie-zu-klima-folgen-ifo- institut-rechnet-e-autos-schlecht-und-macht-dabei-viele- fehler_id_10611851.html)

[1]: [https://www.wiwo.de/technologie/mobilitaet/ist-das-e-auto- ei...](https://www.wiwo.de/technologie/mobilitaet/ist-das-e-auto-ein- rueckschritt-was-hans-werner-sinn-bei-seiner-elektroauto-studie-uebersehen- hat/24237236.html)

</comment><comment><USER10> "The CO2 given off to produce the electricity that powers such vehicles also needs to be factored in".

They seem to be assuming that electricity production is always going to be based off of burning fossil fuels. Also, the whole argument reeks of reductio ad absurdum.

<comment><USER11> Even if it is mostly fossil fuels right now, the big win is decoupling fuel from vehicle so that the source of power can be changed without the vehicles having to change.

</comment></comment><comment><USER12> The original study in German is here: [http://www.cesifo- group.de/DocDL/sd-2019-08-sinn-karl-buchal...](http://www.cesifo- group.de/DocDL/sd-2019-08-sinn-karl-buchal-motoren-2019-04-25.pdf)

Can anyone with German proficiency please clarify whether they took into account the carbon footprint of producing and transporting petrol, diesel, etc.?

<comment><USER6> They quote someone who else who did, and add a factor of 21% on top of the vehicle's own fuel use to account for production and transport of the fuel.

They didn't add anything to account for the engine, though. They compute the carbon footprint of producing an electric engine and silently assume that the carbon footprint of producing a petrol/diesel engine is zero.</comment></comment>


Let's go and work remotely for couple of weeks? - <AUTHOR> I'm living in Estonia and I really like it here. Except for the weather. Ok, we have some nice summers after every five years or so, but most of the time it's too cold for me.
I've been thinking to go and live somewhere else for a couple of months a year.
We could:
- find a nice place with some sun (> in Estonia)
- rent some places not too far from each other, so we can meet up sometimes
- work from coworking places
- organize small get-togethers to talk about what we're working on
Necker Island would be great for this... Richard you here?
Does it make sense? Let's go and work remotely? We could start with couple of weeks or so. <comment><USER2> There are communities in the "digital normad" scene who travel around the world while working. You should be able to find like-minded people there. E.g. [https://nomadlist.com/forum/](https://nomadlist.com/forum/) or find a co- working space, e.g. [https://www.sun-desk.com/](https://www.sun-desk.com/), [http://www.punspace.com/](http://www.punspace.com/)</comment>


How turning down an acquisition feels like.. - <AUTHOR> http://durga-ydydt.posterous.com/how-turning-down-an-acquisition-feels-like

<comment><USER2> It's too early for him to tell "what it feels like".</comment>


Ask HN:  What is entry level in the web development world? - <AUTHOR>

Bear with me, this might be a little long winded . . .
I have been doing freelance & startup work for almost two years and been mildly successful -- two companies I've been involved with (one heavily, one lightly) have been acquired, and I've got really good references.
Despite this, circumstances have me looking around for a full-time gig. Being both an HN and Rails enthusiast, most jobs I see tend to be of the startup-style, "wear a lot of hats and hit the ground running or else things break" variety.  The problem is, over the last couple years I've found that I value a little security and time-cushion to learn and grow more than these jobs seem to have room for.
Out of college, I went to work for a Big 4 accounting firm in an IT specialty group.  I had no idea what they even did when I was hired, but in two years I was a high performer.  This was almost entirely due to the training and mentorship programs that existed within the company.
The hacker ethos exalts the autodidact.  I taught myself everything I know about web development up to this point, but I'm now frustrated because my pace of growth is so much slower than I know it would be with a good mentor. I am a mediocre autodidact but a top tier learner in a classroom or mentorship situation.  In the Big 4 Co., I got to where I did by asking tons of in-person questions every day.  The web-forum/ Stack Overflow / IRC method of getting help pales in comparison.
So after all that, here are my questions:
Is it possible to get this kind of experience as a developer?
If so, is it possible to get it and work with cool tech?
How much is a lack of CS degree going to hurt me?  I'm guessing that credentials are more important the more "secure" the job is.
How much should I study up on verbal CS interview puzzles, which I loathe and suck at?
To sum it all up:  what exactly is an entry level position in web development, and where are the best places to work that actually have them? <comment><USER2> > Is it possible to get this kind of experience as a developer?

yes, but it depends on the company. tough to say which companies would give you this type of experience without insight from an insider.

> If so, is it possible to get it and work with cool tech?

same answer as #1.

> How much is a lack of CS degree going to hurt me?

less and less as you gain more experience. a degree is important, but if you can show someone doing hiring that you're an intelligent, successful, experienced employee, then you won't have as big of a problem.

> How much should I study up on verbal CS interview puzzles, which I loathe > and suck at?

as much as you think they'll come up in your interview.

> To sum it all up: what exactly is an entry level position in web > development, and where are the best places to work that actually have them?

again, depends completely upon the company as to what will be expected of you. finding a good company, though, is tough. the better ones are usually smaller, although you probably already know the best big ones.</comment>


How cities can fix tourism hell - <AUTHOR> https://techcrunch.com/2018/11/17/how-cities-can-fix-tourism-hell/ <comment><USER2> At risk of being labeled a "neoliberal idealist," why isn't the answer here simply taxing tourists more?

Pigovian taxes have been a thing for fifty years, yet they are still seldom used. It seems like such an obvious solution to me that the fact it's not used more often (ex: towns banning airbnb vs taxing it) suggests to me that I'm missing something obvious.

<comment><USER3> How would you differentiate a local vs. a tourist?

Edit: is that even legal?

<comment><USER4> It's typically a tax on accommodation, rather than anything else.

<comment><USER3> That's what I thought. Unfortunately that also affects locals, which diminishes the benefit.

<comment><USER5> Locals who stay at hotels? Usually these taxes are only on short term accommodations like hotels and Airbnb

<comment><USER3> Yes, if the destination is say a city, then those who live even just an hour away want to come and stay sometimes. Same is true for beaches and lakes, near ski resorts, ect.

<comment><USER6> They're tourists, so they pay the tax

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> I work in urban planning and have to say theres a lot of empty puff that comes under 'smart cities'. Sensors and IoT can help with some things but are more about efficiency or informing of issues rather than solving the issues themselves. The title here is quite ridiculous for the articles content

<comment><AUTHOR> >more about efficiency or informing of issues rather than solving the issues themselves

Isn't identifying issues a prerequisite for solving them?

<comment><USER7> Sure but many are reasonably well identified already. In a small town with a tourist event everyone knows which streets get full on which days already. And hotel managers will advise their customers what to do. Adding a network of sensors isnt going to change much in most of these scenarios.

</comment></comment></comment><comment><USER8> I'm a far cry from an economist, but I'm curious if the sharp rise in tourism over the last couple of decades is an indication that people have much more disposable income than we previously had access.

As the article mentions, travel and lodging has definitely gotten cheaper, however I still feel like, due to stronger economy and more disposable income, world travel is no longer limited to the obscenely wealthy.

If my read on history is correct, world travel just wasn't available to so many people as it is now.

Is this simply better economics or has our new(ish) interconnected and open world also made travel less scary? Like, since we interact online and trade with people from all over the world, do their different cultures no longer terrify us?

I mean, I try to make it to at least one new country a year, and when I travel it terrifies my Midwestern grandparents. It seems that in their generation, foreign countries and foreign cultures are so distant and extremely scary—I don't want to imply as if they're bad people, just that the world was much much bigger and out of reach to their generation for whatever reasons.

[edit] clarification.

<comment><USER9> The narrative nowadays heavily encourages people to #yolo and live on credit. When everyone around you is getting into debt via epic trips, getting into debt no longer seems like a major problem.

<comment><USER6> It's not. It takes two to get in debt, the borrower and the lender. Lenders are lending money and don't see a problem, and it's their money at risk.

As millennials get more power and reach a majority, entering their 40s with no monetary assets to speak of, many debts, but still have income, they'll push for policies to increase inflation and keep interest rates low. This means the debt they owe reduces, their salaries increase, cost of living increases, but only those with cash investments lose out.

This is a failure of the previous generations to ensure that the wealth is spread widely.

When you're dribbling in a nursing home the millions of dollars you've saved aren't going to wipe your ass, it's the downtrodden youth.

</comment></comment></comment><comment><USER10> Gadgets? No thanks. The fundamental problem with tourism isn't crowds (although they are unpleasant), it's inflation - tourists have more money to spend and businesses will naturally align themselves to suck up that money. Compare with situation of huge student populations in small towns in UK: their interests don't align with the incumbent community, therefore tension ensues. The effect is two-fold: increased prices for consumers and increased rent for businesses (with useful places like hardware shops, local pubs and locksmiths being pushed out by Steak and Lobster and Angus Steak House). Using IoT to spread tourists around the city (however that's supposed to work) just brings the problem to more and more communities. London turning into the next Venice isn't going to be stopped by some techies in SV (who, incidentally, ruined up San Francisco in a similar manner to the way tourists are doing so here).

<comment><USER11> That's like thinking that a city exporting its goods to a foreign market with high income consumers causes inflation in the city.

The businesses that cater to this influx of tourist spending employ locals, which pushes up local wages and spending. The goods/services produced are also not scarce. They can be increased in supply. In fact higher volume retail shops result in more economies of scale, which can reduce local prices.

<comment><USER12> This is simply not true. Look at Santa Barbara for example: high tourism, high prices and locals are forced to distant outskirts. Local spending doesn't increase because prices simply go up and locals shop at cheaper places outside of tourist hub. I doubt their wages are any higher either.

<comment><USER11> Why do you assume that local businesses generating more revenue doesn't contribute to local incomes? It does, almost by definition.

In a housing supply restricted market, tourism can contribute to higher housing costs, but that can be fixed by removing constraints on housing supply, like zoning. And even when this effect is present, its effect on quality of life is counter-acted by the positive effect of tourism spending on local incomes.

<comment><USER13> > Why do you assume that local businesses generating more revenue doesn't > contribute to local incomes?

Local businesses do not always generate income from tourists. For example, some of the destinations complaining about overtourism are upset at cruise ships, where the tourists do all their eating, drinking, and sleeping on the boat, and they only walk through the city during the day without spending any significant amount of money.

<comment><USER11> The reports I've seen all give a very high average spending level for tourists. I don't think there's any credible argument that they don't inject massive consumer spending into the local economy.

</comment></comment></comment></comment></comment></comment><comment><USER14> How about a resident discount? A reverse tax - you can keep prices high, but locals with a resident ID get a discount - it could be subsidized by the local government.

</comment><comment><USER15> Tax the tourists and companies like AirBnB.

</comment><comment><USER16> back in the day, the number of hotel rooms in a city was capped to a reasonable number that was somewhat in line with the amount of available tourist services. Counting AirBnB listings towards the hotel cap would go a long ways to preventing "overtourism"

</comment><comment><USER17> I say cram them in. Keep them in the cities. A tourist does less damage, and spends more money, in times square than in a forest. In my area, tourists are wrecking our parks, our wild places. Dog bans (to cut back on dog _walkers_. Dog feet do little damage in comparison) and the closing of trails are being applied to counter the tourist wave. Im for whatever it takes that keeps them on the pavement.

Our city put up new signs in a wooded area that never had signs before. Tour companys now post material on these signs. Locals are chopping down the signs. Keep the woods dark imho.

If one more of them asks me where the twilight house is . .. google that to see of where i speak.

<comment><USER18> Hmm, so it's the sheer volume of people? What makes you different? Why are you more deserving to walk in those woods than "tourists"? Because you were there first? :)

<comment><USER19> Is 'deserving' the right thing here? Or is it just because he happens to live there and has a longer term interest in the place than visitors for a day or a week?

</comment></comment></comment><comment><USER20> How about educating people on the overlap between colonialism and tourism?

What if tourism wasn't solely focused on one's own experiences, as though such things exist in a vacuum, and was a spiritual practice in connecting with and respecting other cultures?

Maybe what we need to fix tourism hell is cultivating global cultures of interdependence, respect,community, and service?

Educate tourists to make their effects less hellish; trying to control people is old school management-oriented nonsense. It's time to start respecting people's autonomy more than that.

</comment><comment><USER21> The webpage crops out a striking part of the header image (unless yr zoom is set to 200%)

[https://techcrunch.com/wp- content/uploads/2018/11/GettyImage...](https://techcrunch.com/wp- content/uploads/2018/11/GettyImages-468660868.jpg?w=730&crop=1)

</comment><comment><USER22> Leave it to the techies to think "tech can solve it" is the answer to any question mankind can ask.

</comment><comment><USER23> Can somebody explain what problems tourists are creating?

I live in Toronto and was surprised to hear that the population doubles during the summer, because of a large number of tourists.

Having spent most of my life here, and some of it right next to the biggest tourist attractions - I never thought any of it was a problem. It hasn't affected my quality of life in any way that I'm aware of.

<comment><USER24> The tourist hell mostly affects European cities, which at the same time are usually denser and have a more problematic transport.

In some European cities, native people can't pay the rent to live in reasonable places because tourists will pay more. This has been a problem in Spain (Barcelona & Madrid) and both municipalities are working on it, but it's difficult. At the same time, a lot of stores became tourist specific. In the end, you have two cities at the same time, the old and beautiful for tourists, and an outside city for native people, which native people who lived and worked in the old city, don't like.

<comment><USER25> > The tourist hell mostly affects European cities, which at the same time are > usually denser and have a more problematic transport. In some European > cities, native people can't pay the rent to live in reasonable places > because tourists will pay more.

Interesting, as a born and raised American, I find it odd that I keep seeing people praise europe about how great their public transportation and living wages are and yet you claim both suddenly fail when you get some tourists who spend money in your town?

<comment><USER26> Obviously, the public transportation system was implemented based on the number of local residents.

I imagine that the influx of tourists is well above that number.

<comment><USER25> Do european cities change population sizes that little that you never really have to adapt your public transportation?</comment></comment></comment></comment></comment>


Show HN: GenderRecognizer- Plain Face Detector and Gender Recognizer - <AUTHOR> https://github.com/MinhasKamal/GenderRecognizer <comment><USER2> The name of this program is Gender Recognizer, but it says it attempts to recognize male/female faces. Quick lesson:

Gender: boy, girl, etc. (some cultures have more than two of these[0], and others do not identify with either of those two)

Sex: male and female

In other words, if your goal is to try to determine if someone is XX or XY, "gender" is not the word to use.

Regardless, I would tread lightly with this, because this could presumably be used on pictures of transsexuals and transgender people. Also, incorrect matches for something like this would be very not cool.

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

<comment><AUTHOR> Oh! I did not considered this part at all, I simply concentrated on the program. Thanks very much for your advice.

I have learned one very basic aspect about software project. That was really wonderful. Thank you. :)</comment></comment>


EPFL's student solves a 100-year-old physics enigma - <AUTHOR> https://actu.epfl.ch/news/epfl-s-student-solves-a-100-year-old-physics-enigm/ <comment><USER2> Better title (extracted from the abstract) "Why gas bubbles in narrow vertical tubes seem to remain stuck?"</comment>


Scala == Effective Java? - <AUTHOR> http://grahamhackingscala.blogspot.com/2011/01/does-scala-equal-effective-java-bloch.html?utm_source=twitterfeed&utm_medium=twitter&utm_campaign=Feed%3A+blogspot%2Fvnby+%28Graham+Hacking+Scala%29 <comment><USER2> It's not that Scala is Effective Java, it's that "Effective Java" (the book) is a good set of patterns of software developments in many other object oriented languages. You'll note much of the same discussed in Design Patterns (unfortunately, in a more rigid and less accessible form) and visible in well written pieces of software in Java, C++ and many other languages. That's why I highly suggest reading Effective Java even if you hate Java the language / Java the culture, the latter symbolized by horridly designed and implemented frameworks like Spring which have turned design patterns into a set of buzzwords to liberally sprinkle.

<comment><USER3> I agree that the Java culture is significantly poisoned by the 'enterprise architect' culture, but Spring if anything has been the saviour of Java.

Compare IoC (Spring setter injection), with J2EE+EJB2.x - it's night and day - and I know which I would prefer to code using. Spring introduced POJO programming and explicitly called out the crappy J2EE design patterns in favour of simplicity.

Now, Spring has accumulated so much cruft (and become much more commercial with the vmware buyout), that it is becoming the new J2EE.

I've been doing some android programming recently, and working with Java without IoC is simply unbearable.

<comment><USER2> > I've been doing some android programming recently, and working with Java > without IoC is simply unbearable.

Can't you use Guice with Android? I'd be surprised if you can't.

<comment><USER3> I'm looking into Guice + Roboguice (which seems to be the way to go), but I really need to understand Guice semantics first - Guice != Spring and I have a fair bit of 'unlearning' to do

</comment></comment></comment></comment><comment><USER4> related: Norvig's presentation on how many design patterns are unnecessary in dynamic languages <http://norvig.com/design-patterns>

</comment><comment> brown9-2 Isn't this a bit of an unfair comparison?

Java the language is at least 8 years older than Scala the language. Scala had the benefit of learning from previous language's mistakes.

<comment><USER5> > Isn't this a bit of an unfair comparison?

No, because it's not like Java was the first language to ponder about these, and it _did not_ learn from previous languages (mistakes or successes). Pretty much all of Scala's improvements over Java predate Java itself by decades.

Java simply refused to learn from previous language's mistakes.

To some extent, C# did as well by starting out as a slightly improved Java instead of an actually good language, which means even with all the improvement they're doing since they're not deprecating and removing old crud the language is now chock-full of crap and far more complex than it could (and used to) be.

<comment><USER6> You're a little unfair in regards to C#.

Since C# 1.1 they've only added features that are mostly orthogonal to the existing ones. Secondly, the features they've added aren't half-baked. Sure there's room for improvement, but they behave as you expect them to, and the designers specifically leave room for improvement all the time.

Sure, I hate that everything I want to do still has to be specified within a class / static method; that's Java-related legacy done probably because of marketing reasons, but C# has 2 things I wish for whenever I'm working with Scala ...

\- the ability to get the expression tree of a closure. There was a plugin for Scala at some point, but it's dead.

\- dynamic typing, which structural typing cannot really replace.

You say chock-full of crap, but IMHO language designers should learn from its evolution, because it was a good one.

<comment><USER5> > Since C# 1.1 they've only added features that are mostly orthogonal to the > existing ones

Yes. Like delegates (1.0), anonymous delegates (2.0) and lambdas (3.0). Or `for`, `foreach` and List.ForEach. Orthogonalith, schmortogonality.

> Secondly, the features they've added aren't half-baked.

Though I disagree with your statement (C#'s properties are crummy, its Nullables are half-assed if even that, the collections are a mess, the enumeration suck goats, arrays are covariant, implicit conversions are terrible ideas, extension methods are a half-assing of open classes, tuples are painfully awful, out parameters everywhere is a gigantic joke, and I'm not even actually looking for these things), I didn't state they were half-baked. Me thinks the lady protests too much.

> Sure there's room for improvement, but they behave as you expect them to

Which is irrelevant to the point and completely uninteresting.

> IMHO language designers should learn from its evolution, because it was a > good one.

There was nothing good about it. Trying to make a small but crappy language into a good language by accretion is not "good evolution".

edit: let's make this clear: I understand the constraints of the C# team (at least some of them) and I understand they weren't (and aren't) out to create a _good_ language, let alone a revolutionary one. Doesn't mean I have to agree with that.

<comment><USER6> Delegates (1.0) are types specifying method references, anonymous delegates (2.0) are anonymous code-blocks making usage of delegates, and lambdas (3.0) are just defined delegates with generic variables.

"for" is different than "foreach", and "for" is there because the language being named "C#" it had to have some heritage from C. Also all ForEach methods are built on top of IEnumerable.

I.e. features are built on top of each other.

For the record I think implicit conversions are a great idea, that properties are OK, and extension methods are cleaner than open classes.

Not to mention, there's stuff you can do with extension methods / implicit conversions that you cannot do with open classes (and viceversa).

<comment><USER5> > Delegates (1.0) are types specifying method references, anonymous delegates > (2.0) are anonymous code-blocks making usage of delegates, and lambdas (3.0) > are just defined delegates with generic variables.

Delegates are references to code blocks, anonymous delegates are references to code blocks, lambdas are references to code blocks. They're three features which do _the same thing_ , meaning they are _not_ orthogonal (and they could have been build from lambdas up and I'd have said the same thing).

> "for" is different than "foreach"

Yes, one has 3 more letter than the other one. Any usage pattern of `for` can be replicated by `foreach` and the right enumerables, and vice versa. Not only are they not orthogonal, they're fully redundant.

> and "for" is there because the language being named "C#" it had to have some > heritage from C. Also all ForEach methods are built on top of IEnumerable.

This is completely irrelevant to my point and absolutely uninteresting.

> I.e. features are built on top of each other.

These features also fundamentally do the same thing i.e. they're not orthogonal. Your original claim was the following:

> Since C# 1.1 they've only added features that are mostly orthogonal to the > existing ones

I gave you 4 features which are anything _but_ orthogonal to preexisting features.

> that properties are OK

Goodness gracious, stockholm syndrome much?

</comment></comment></comment></comment></comment></comment><comment><USER7> Are there any plans to have the Scala compiler emit native code?

An LLVM front-end would make it much more appealing for general use. Perhaps as a sane (?) alternative to C++ in the high performance computing arena.

<comment><USER8> You'd need a pretty hefty support library to add the JVM-provided features Scala relies on. Garbage collection is obviously a major one, but there are also the pieces of the standard Java libraries that Scala builds on top of (though I'm not sure how deep those dependencies run).

GCJ attempted to do this for straight Java; I don't believe many people consider it a success.

</comment></comment><comment><USER9> More about his Item 11 on cloning. Writing a case class gives you a "copy" method which is an abstraction of clone where you can write something like

val newFoo = oldFoo.copy(bar = someBar)

</comment><comment><USER10> I switched from Java to Scala and I'm not looking back.

</comment><comment><USER11> Does scala have that many third party libraries ala java ? Because these days for web application most of us use Java with Spring or apache commons.

<comment><USER12> Anything you can use in Java is available in Scala.

<comment><USER13> What about annotations?

<comment><USER14> You can use them too.

</comment></comment></comment></comment><comment><USER13> What is up with the dodgy numbering? I hope he didn't get a Scala program to do the list!!!

I am always deeply suspicious of any appeal for using a language that uses as it's initial premise that the language is shorter or saves keystrokes.

Personally, I'd take one of his examples and make it 'worserer' by enbiggening it.

      new RunningReporter();

      public class RunningReporter extends Thread {
        public void run() {
          System.out.println("Running");
        }
      }

And then I'd redesign it to something useful, e.g.

      public class RunningReporter extends Thread {
        public void run() {
          System.out.println("Running");
          doSomething();
        }
        public void doSomething() {}
      }

So then subclasses of running reporter would spit out Running to System.out.println and then go and do their funky thing.

But even that isn't as useful as it could be, it should really be something like:

      public class RunningReporter extends Thread {
        String message = "";
        public RunningReporter(String s) {
          super();
          message = s;
        }
        public void run() {
          System.out.println(message);
          doSomething();
        }
        public void doSomething() {}
      }

Okay, so now you can customise the message, so that you can tell these threads apart if you're doing stuff:

e.g.

      new BluetoothRunningReporter("Spp fix");

So we've passed through shorter, and gotten bigger, but the line that would be used in the program conveys enormously much more information.

I find that upon examination, in a properly and well designed Java system almost all of the anonymity disappears... which makes me uncomfortable with that example of how Scala is better than Java, because in the real world, if you were doing it properly, you wouldn't do it that way in Java anyway.

<comment><USER15> The numbering is based on the "Tip" Numbers from the Effective Java book. Each tip is numbered and indexed, and it is common to use the tips during code reviews.

</comment></comment><comment><USER16> Shouldn't the headline here be Scala.compareTo(Java)?

<comment><USER17> Or: Scala compareTo Java ? :)

</comment></comment><comment><USER18> I'm not familiar with Scala but I don't understand how it could eliminate the need for Item 14: Use public accessors methods rather than public fields. The point of using accessor methods is so that you can change the underlying implementation if necessary. If the getters and setters are compiled automatically for you it doesn't seem like you'll be able to change the underlying implementation without also changing the types of the methods.

<comment><USER19> Here's how it works. When I say:

      class Kitty {
        val purrVolume: Int;
      }

What Scala actually produces in Java bytecodes is something like this Java equivalent:

      public class Kitty {
        private int purrVolume;
        public void setPurrVolume(int purrVolume) {
          this.purrVolume = purrVolume;
        }
        public int getPurrVolume() { return purrVolume; }
      }

Later, if you decide that you need to change it to do some special calculations in the getters and setters, you can add that to the Scala code. External users of the class will not need to be recompiled, because under the covers Scala was never actually exposing the public member variable.

<comment><USER20> I think you mean var, not val.

If you were using val you would do:

      class Kitty(val purrVolue: Int)

which would turn out to be in Java:

      public class Kitty {
        private final int purrVolume;
        public Kitty(final int purrVolume) {
           this.purrVolume = purrVolume;
        }
        public int getPurrVolume() { return purrVolume; }
      }

<comment><USER21> On the Java version you forgot equals() and hashcode(). Scala's case classes give you that for free.

</comment></comment></comment></comment><comment><USER22> It looks like Groovy satisfies many of these checklist items too. Any reason beyond personal preference to go with Scala vs Groovy or JRuby?

<comment><USER23> Speed. Scala beats both Groovy and JRuby pretty handily.

<comment><USER22> groovy++ seems to beat scala, at least in some tests:

[http://groovy.dzone.com/articles/why-scala- actors-15-20-time...](http://groovy.dzone.com/articles/why-scala- actors-15-20-times)

</comment></comment></comment><comment><USER24> I used Scala for some small projects. I absolutely loved much of it, although I found I got caught up in experimenting with syntax to learn "better" ways to the point of distraction.

These days I use mostly ruby and have started on node.js. Ruby programmers don't seem to understand the importance of encapsulation and typing, which is quite frustrating and leads to much head banging. I yearn for the day Scala or something similar is broadly adopted.

Interestingly, many of the best features of scala mentioned here are veey new to the language. Named parameters and built in copy for case classes were not available until a year ago. It's great to see a language implementing prudent improvements quickly - here's looking at you Java.

<comment><USER25> _Ruby programmers don't seem to understand the importance of encapsulation and typing_

Interesting juxtaposition. I wonder if it's a concrete benefit of static typing to make you more aware of encapsulation: that does resonate with my experience. Because functions and object methods have to have types that fit together, you're forced to think about what goes into and comes out of a given component, so you're thinking about component boundaries more often.

I know when writing a Ruby method it's all too easy to just return the first intermediate result that makes sense, subconsciously thinking "let the caller process this result, and if it's messy I'll refactor it later". In Java, I have to write the return type _and also_ return something, and if I planned to return an Iterable<String> but I'm tempted to return a List<Object>, the redundancy catches me out. I have to consciously make the decision: should I change the contract of this method by changing the return type, or should I instead massage the results into the form I planned to return?

(I think the same holds for Scala, where I might not have to _write_ the return type because it's inferred: if anything actually calls my method, the compiler will still remind me that the assumptions made at the call site don't line up with the assumptions made in the method. In Ruby, although I'll still have to change the caller if I change the return type, I'm more likely to do it mechanically, in a "I changed that so I have to change this" mindset, rather than stepping back a level and thinking "which one of these is actually right?".)

<comment><USER24> You are largely correct about Ruby I think, although it's broader than that. Functional programming is popular because mutable data is a major cause of bugs, is hard to debug, and creates unnecessary complication. In Ruby, all data INCLUDING the executable code itself, is mutable and regularly mutated. Integration and extension, including throughout the Rails codebase, is accomplished by changing object prototypes. This means that you can never rely on an object behaving in a certain way or following a certain code path, and your code or any third party code can easily be broken by a single line of rouge code from a library - and yes this happens often.

Regarding Scala, I don't think type inference means that you stop thinking about types, particularly when writing in a functional style where the returned value is the only thing that matters.

<comment><USER25> _Regarding Scala, I don't think type inference means that you stop thinking about types_

I didn't mean to imply that it did - quite the opposite in fact (that even if you didn't _write_ the type, you'd still be encouraged to think about it, because of the compile-time checking).</comment></comment></comment></comment>


Announcing Docker ToolBox - anand-s https://blog.docker.com/2015/08/docker-toolbox/ <comment><AUTHOR> Nice one. However, VirtualBox's shared-folder support is so god-awfully slow, that here at work we all swapped out the regular boot2docker setup for boot2docker-xhyve[0] which is so much faster at nearly everything that it's not even a comparison.

Now, with ailispaw's dockeroot-xhyve you can even get a VM root image that can be grown on the fly, so you never run out of space on your VM when building large Docker images.

In addition, I'd never recommend Docker Compose to web developers that rely on databases, as quirks with it have caused many a volume-only container to be destroyed and rebuilt, thus defeating the purpose.

[0] [https://github.com/ailispaw/boot2docker- xhyve](https://github.com/ailispaw/boot2docker-xhyve)

<comment><USER2> Docker under OSX is a real pain to solve ASAP.

I've set Docker on my Linux machine and it's working like a charm. Then I had to do the same for my coworkers running OSX, the vbox shared folders are definitely unusable.

Now it's been few days that I'm trying to find the best way to have a two-way sync in order to sync back changes from docker to the OSX folder (eg. when you upload a file and it's saved in the /public folder, otherwise it'll be lost)

So far I've used docker-osx-dev[0] for 1 way sync (with rsync) and it's working nicely.. they also plan to add the support to unison for a 2way sync

I've also found docker-unison[1] but I haven't found a way to have it working correctly

I'd like to try with boot2docker-xhyve, but it only runs on Yosemite and later

[0] [https://github.com/brikis98/docker-osx- dev](https://github.com/brikis98/docker-osx-dev)

[1] [https://github.com/leighmcculloch/docker- unison](https://github.com/leighmcculloch/docker-unison)

<comment><USER3> There's [https://github.com/codekitchen/dinghy](https://github.com/codekitchen/dinghy) if you want to mount the Mac host volumes inside boot2docker via NFS. We have a Vagrantfile that does this, but dinghy packages it all up nicely.

At the end of the day though, Docker as a development environment is really bad on OS X until a VM vendor fixes file share performance. I really wish Docker would make it a priority to have decent Mac support.

<comment><USER4> VMware Fusion has fine performance on shared folders. I use it all the time with docker-machine.

</comment></comment></comment></comment><comment><USER5> Great release!

I bought a new MacBook 2 days ago, and setting it up has never been easier.

Almost all of my development takes place in a Docker environment now, and the Docker ToolBox makes installing that a breeze.

Less XCode, Homebrew, rubygems, npm. More Docker.

</comment><comment><USER6> This looks cool, although for the Windows install I'd have hoped that there would be an option to integrate Hyper-V with it instead of Virtualbox, seeing as Hyper-V is available on all Windows 8.1/10 pro/enterprise systems, and having multiple virtualization platforms active on a system is generally a bad idea...

<comment><USER7> There is a hyper-v driver for docker-machine. You can use it like so:

        docker-machine create -d hyper-v vmname

<comment><USER8> nice, thanks!

</comment></comment></comment><comment><USER9> Hi all. We know the experience of using Docker on OSX is not perfect today. The default virtualbox configuration for file sharing is slow and buggy. You need to use 3 different CLIs (`docker`, `docker-machine`, `docker-compose`) which are not well integrated. 3d-party clients need to reimplement everything themselves. The standard clients are not configurable or customizable enough.

We plan on solving all of this. There is a new team at Docker focused entirely on solving "Developer Experience" problems. This initial release of Toolbox is a starting point: a convenience packaging of existing tools. But we are going to update it with more and more improvements.

In short: we are going to work hard to make the experience of using Docker to develop on Mac OS X (and Windows) much, much better.

<comment><USER10> Hi Solomon,

It is great to hear you guys are working on that. I find Hyper is pretty interesting to run Docker on Mac [https://hyper.sh/blog/post/2015/07/30/running-containers- fro...](https://hyper.sh/blog/post/2015/07/30/running-containers-from-mac- os-x.html).

<comment><USER9> I think Hyper is interesting as a backend for Docker in production use cases where you need to extra isolation of VMs... But in development in doesn't make much sense to run each container in a separate VM. So I'm not convinced we need this extra layer of abstraction.

</comment></comment></comment><comment><USER11> I really, really, don't understand the docker fixation, but maybe I'm missing something.

The most important function of docker, IMHO, is that it standardizes the creation of a VM using Virtualbox across platforms.

Unless Amazon AWS, DigitalOcean, GoogleCompute, etc. allow a docker image (aka a VirtualBox image) to run directly on their base virtualization platform (without me putting together an AMI or whatever on their platform), this just adds another layer of virtualization that I can do without. Do they do this already?

If and when they do that, docker would be tremendously useful because I wouldn't need to rebuild my image for that particular platform (AWS/DO/GC).

And if they do that already, then why aren't they just accepting existing popular VM images (VMWare/VirtualBox)?

<comment><USER12> You're misunderstanding what Docker does.

The most important function of Docker is dependency management (allowing you to pack your own runtime with your apps with consummate ease), followed by standardising image distribution and deployment across environments.

A Docker image is not a VM image - it doesn't have a kernel, for starters, and is not designed to be booted in the usual sense (i.e., kernel+init+scripts) - it just has a Linux userland (often quite restricted) and will run _a single process_ by design[1].

Also, AWS and Google Cloud already allow you to run Docker images (on EC2 Container Service and Kubernetes).

Cloud providers won't accept existing VM images in the sense that large-scale hypervisor platforms usually use different formats and they don't need the hassle involved in building and supporting VM conversion services.

It's pointless to have those as a service when anyone can grab Packer or a similar tool and convert a .vbox/.vmdk to an AWS AMI or an Azure Hyper-V image - and support the resulting images themselves (which is another reason why providers make a clear distinction between certified/tested images and third- party ones).

[1]: of course you can launch supervisord and a bunch of stuff underneath it, but if you're doing that, you're doing it wrong.

<comment><USER11> Ok, this is starting to clear things up for me.

When you say that it runs a single process by design, does it mean that if my application creates a fork(), the image will be unable to handle scheduling of the additional process?

Let's say I have an application that talks to MySQL. What is the right way in docker? Should I have two separate docker images, one running the application and the other running MySQL, with them talking to each other across the host OS? Or can they be configured in a single docker image?

<comment><USER13> > Should I have two separate docker images, one running the application and > the other running MySQL, with them talking to each other across the host OS?

Yes.

> Or can they be configured in a single docker image?

They _can_ , but it's an anti-pattern and there are hurdles to overcome if you try managing processes using an init system.

<comment><USER14> People differ on this point. Discourse, for example, ships a single Docker container which runs the Rails-based webapp, a database server (PostgreSQL), and a key-value store (Redis). They have been using this same setup in production for quite a while now.

<comment><USER15> So how do they run multiple application servers to scale horizontally? Or a cluster of Redis servers?

</comment></comment></comment></comment></comment></comment><comment><USER16> I gave up setting up my mac for Docker. It's just way easier to set up another dev machine with Linux since it can be used as dev machine these days.

</comment><comment><USER17> Just use GNU/Linux already!

<comment><USER18> It's true. Docker Just Works™ on GNU/Linux. I'm a Linux guy myself for anything in development. However, unless I'm mistaken, part of the goal of Docker is to provide identical environments to an engineering team and production.

I always advocate for Linux use (in addition to principles, most things are easier as well), but everyone has their preferred environment.

</comment></comment><comment><USER19> You can stand up Joyent's Triton[1] service locally for development with Docker. The hardware is very affordable, and I think that they have a very underrated product on their hands.

[1] [https://www.joyent.com/blog/spin-up-a-docker-dev-test- enviro...](https://www.joyent.com/blog/spin-up-a-docker-dev-test-environment- in-60-minutes-or-less)

</comment><comment><USER20> Anyone have any idea how to configure this with a proxy in OSX? It seems to be ignoring the HTTP_PROXY env variable

</comment><comment><USER21> Or, just run docker directly on Linux?

</comment><comment><USER22> I appreciate the Toolbox suite as I use most of them. But I am concerned though not surprised how this make the "batteries included but removable" motto more insignificant as it becomes more unlikely that people will use alternatives.

</comment><comment><USER23> I use Vagrant+Docker for development, no problems to install. First, I tried to use boot2docker but I didn't like it. Vagrant has a Docker provisioner or there's a plugin for Vagrant for Docker Compose.

</comment><comment><USER24> Does anyone have any idea how to get the Docker Quickstart Terminal app to use iterm2/zsh instead of Terminal/bsh?

<comment><USER25> If you look at the contents of the .app, you can edit main.scpt in AppleScript Editor, but it's really just doing two things, creating the VM if necessary:

docker-machine create -d virtualbox --virtualbox-memory 2048 default

and populating environment variables for docker:

eval $(docker-machine env default)

Passing --shell zsh to docker-machine env doesn't seem to change its output. Does zsh understand commands like the following?

export DOCKER_MACHINE_NAME="default"

<comment><USER26> Yep, `docker-machine env` should work fine in zsh (I am a daily zsh and docker-machine user).

</comment></comment></comment><comment><USER27> Sadly no support for Parallels.

<comment><USER28> The docker team completely ignored the great work the parallels team put into creating a parallels driver instead telling them to wait for the plugin architecture to be finished.

Reference: [https://github.com/docker/machine/pull/939](https://github.com/docker/machine/pull/939)

<comment><USER9> It was a tough decision, and "completely ignored" is an unfair way to put it.

The Machine maintainers are overwhelmed by pull requests adding new drivers. They are worried about maintenance load, and its impact on the quality of drivers over time. So instead of making promises they can't deliver on, they're investing the time on a plugin architecture, so that everyone can create and add their own drivers without depending on the bottleneck that is the core maintainers.

</comment></comment></comment><comment><USER29> boot2docker was working fine... Docker Toolbox is broken</comment>


Ask HN: Web Developers - How do you manage your charts? - <AUTHOR>

...or specifically Fusion Charts? We have tons of fusioncharts embedded in dozens on web apps where I work.
The problem is - everytime you want to display data from the database as a new chart in the web application, you have to "code the middle tier". We use java so it involves JDBC and rowset iteration and creating Fusion Chart XML for the chart.
How do you manage this better? I am surprised that there is no "middle tier" software that complements Fusion Charts and I am thinking of building one.
Basically a UI where you enter your query, map it, save the config and reference it in your web UI via ID. Will also help "centralize" and manage all the chart configurations across webapps.
Thoughts? (This is my first post but feel free to beat me.) <comment><AUTHOR> _bump_</comment>


Ask HN: What solutions have you devised to effectively limit or stop robocalls? - <AUTHOR> <comment><USER2> I never answer calls from numbers not in my contacts unless I know it is a pre-scheduled call. I also keep my phone primarily on silent.

</comment><comment><USER3> Nothing. There is no hope.</comment>


Paint of Persia by dunin - <AUTHOR> https://dunin.itch.io/ptop <comment><USER2> This is cool! Thank you.</comment>


Forget Freemium - <AUTHOR> http://blog.priceintelligently.com/blog/bid/159885/Forget-Freemium-Why-It-s-Killing-Your-Pricing-Strategy

<comment><USER2> I've written about freemium here before: [http://www.layeredthoughts.com/startups/the-psychological- di...](http://www.layeredthoughts.com/startups/the-psychological-difference- between-freemium-free-trial-plans)

The best advice I can give regarding when it's appropriate to use freemium and free trials:

-Use Freemium when: your per user usage costs are trivial (Examples: Evernote, Basecamp, Freshbooks...sites that don't incur transactional usage costs like having to pay for data access to other systems or have high royalties to pay like Pandora)

-Use a Free Trial when: It costs you a non-trivial amount of money for someone to use your product (this also helps prevent free account abuse) or if your trial is able to answer someone's question that is preventing them from directly converting. An example would be that if your product's code benefit is that it creates beautiful reports for clients, you might offer a free trial to prove to product leads just HOW beautiful those reports are before committing to a purchase.

The problem I see with Freemium plans (and I have actual hard data to back this up that I plan on blogging in the future) is that they cause a fundamental shift in your customer's mentality which often times leads them to not convert to a paying customer. When a customer gets the seed planted in their mind that there is possibly a way to get your product for free (even if it's crippled in features or usage limits), they will morph their own needs to match the freemium plan rather than the other way around.

TL;DR: you can't just slap a freemium plan on your product and assume success, you need to look at your customer data and design it perfectly to fit in with historical trends (which is what the OP is arguing for here actually). Freemium can be detrimental if not designed and applied correctly and in my opinion should be avoided most of the time by SaaS startups.

<comment><USER3> I think "often times" is an understatement. If you have a 3% conversion rate from your freemium users, you're doing a great job. Secondly, the people using your service for free are _users_ not customers. A customer pays you.

Finally, if I'm a customer and you have a freemium offering, I'm very likely subsidizing the usage of upwards of 50 other users. Is that fair?

<comment><USER2> 3% conversion rate in this context is an empty statement. Conversion rate is entirely subjective to the product, its price, and the margins on the backend.

EDIT: I agree that a non-paying customer is just a user (duh) but the goal of a product is to grow your customer base (to meet the real goal of increasing your profit). So anyone using your product for free needs to be doing so as a means to an end: Either they will convert to a paying customer at some point, or they will refer paying customers.

If you're building a fun side project, free users are groovy. But if you're trying to grow a profitable company, and your free users aren't working for you in one way or another, they're just a liability.

<comment><USER3> > Conversion rate is entirely subjective to the product

Actually, conversion rate is completely objective - it is the percentage of users you have who 'convert' and become customers.

What that means for your company might be different from product to product and industry to industry, but a 3% conversion rate for freemium is awesome.

<comment><USER2> I suppose I was unclear, I meant the value from a 3% conversion rate for a product is subjective to that product or niche.

<comment><USER4> That isn't what the word "subjective" means. For each market, there are objective numbers to be researched and acted upon.

You mean 3% conversion being awesome "is relative to"/"varies by" a given product or niche.

<comment><USER2> "For each market, there are objective numbers to be researched and acted upon." and "A 3% conversion rate being awesome is subjective to the niche or product" are compatible statements.

EDIT: "subjective" is traditionally used when someone's opinions or biases are influencing a decision or conclusion, so I see where the confusion is here and the fault is mine for using that word. My main point is that there is no one- size-fits-all "good" conversion percentage, it's entirely dependent on the product and market.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> These numbers are non-sense. He drops the price from $49 to free, then assumes you'd have exactly the same number of customers, and says how much money you lost. But if you made the service free you'd have a hell of a lot more customers at the lowest tier.

It doesn't matter because he made up a % for the amount that upgrade to higher plans, which would be the paying plans if free was the lowest, and that % would be completely different for free users vs. already paying users. You can't just change one number like this.

Google has released stats that apps that moved over to in-app payments from paid apps make 20x the amount they did previously. Making people pay to enter is not good business.

<comment><AUTHOR> Hey...I'm the author of the post. You're completely right. The numbers are non-sense. We wanted to outline a quick example of the impact of freemium with all things being equal. Of course, things would change, especially with differing market forces. We probably could have been a bit clearer about that or explained it in a much different manner. Additionally, we could write a follow on post with a real world example based off white labeled data to prove the point much more efficiently.

In terms of making people pay to enter, I think it really depends. As we explained, if you're not in a position to truly move folks from a value limited free taste of a product to a premium tier, then I'd say you're better off growing slowly before opening up the floodgates. Take a look at Wistia or MailChimps approach. Of course, there are great counterexamples, as well.

Thanks for the feedback!

<comment><USER6> Forgive me, but that's fundamentally intellectually dishonest – if you make an argument with completely fictitious numbers and know its seriously flawed but still put it forward as if it's genuine, you're simply lying to support your argument.

If you have real numbers, use them.

If you don't, this all sounds a lot like the sort of "numerical" support for anti-piracy measures made by record companies. The interconnection between the marketing role of a free option and its numerical effect on sales is going to be highly nuanced.

Further, there are clear-cut reasons that "Big customer databases" are valuable even if "they're [not all] ponying up cash."

The first, discussed elsewhere here, are network effects. Dropbox gets more and more valuable for paying users every time a free user signs up because it makes it all the more likely that the next person they need to share a file with will be able to easily handle a DB share.

Second, building a big user-base of devoted users, even if a large percentage are free users, potential builds a barrier to entry for any possible competitors – thus protecting the revenue from the existing paid users and encouraging future paid users.

Still, I believe that underlying your whole post is the important point that you must have a solid business plan and understand just how you are going to drive profits – be it freemium or otherwise and that's a very important point, so thank you for calling it out.

</comment></comment></comment><comment><USER7> Maybe there is a successful model to be had here, with some changes. Think about games -- the big trend over the last year or two has been toward bundling. Consider these sites:

<http://bundle-in-a-box.com/>

<http://www.indiegala.com/>

<http://www.indieroyale.com/>

<http://www.gamemusicbundle.com/>

Most of the time, the problem with freemium is that the conversion rates tend to be low. My company has talked with hundreds of app developers over the last year, many of them working with a freemium model. We know that even successful games get conversion rates that are usually less than 1% (that is, more than 99% use it for free, less than 1% of the users pay). With conversion rates that low, only a handful of companies will have success with the model. But there are variations on this model that might work very well. Bundling helps with the "first penny" problem -- some users need a very large temptation to make a payment. A subscription model would be especially useful -- and something like a subscription model is what companies like App.net are trying to do (and my own company too). If you can build a base of users who pay a regular subscription to support a bundle of apps, something like the Freemium model becomes a bit easier to manage. User's who would not pay to get a particular app might be more willing to pay if they are getting a bundle of, say for instance, 10 apps that all have some interest to the subscriber. In theory, you can make a lot more money by getting a small amount of money from 50% of your users, or even 100% of your users, then you can get by charging 1% of your users a medium amount. And, to be sure, the app developers that we have talked to have all offered huge discounts to put their stuff in a bundle, because for most of them, even getting $0.50 cents from 50% of their users would bring them a lot more money than trying to get $4.99 from .05% of their users. An elaboration on this argument is here: [http://www.youtube.com/watch?v=zkGRHI7xnjo&list=UU4AWURx...](http://www.youtube.com/watch?v=zkGRHI7xnjo&list=UU4AWURx82e_hl5dQALXJxXw&index=2&feature=plcp)

</comment><comment><USER8> This is a bit nitpicky, but the math in that example makes no sense. If you're losing 10% of your customers each month and only gaining 30% each year, you are _bleeding_ customers. Not sure how you're coming out ahead in this situation.

<comment><USER9> Even if the math was fixed it is bullshit because the numbers are made up.

I can think of a few companies who lost out on my business because I was able to test out their competitor, for free, before handing over all of my billing info. If someone wants to know the impact of killing their free plans, then they can easily test it.

Each company has its own math formula for what works, and that formula will change, if not by the day, then by the month, as the market evolves. In the case of most start ups, it is going to change very rapidly.

My rule: offer just enough to free so a customer can see the value, but not enough that they can do "damage" (e.g. derive a massive amount of sustained value to their own business.)

<comment><USER10> Agreed.

The best use of a 'free' pricing tier is for an extremely-limited version of your product - one that someone can't use on a regular basis and get what they need out of it. You have to stack your features in tiers that _encourage_ users to upgrade in order to gain the features/scale/whatnot they need to gain sustained value from your product.

If you're giving away the basic plan product for free, you stand a lackluster chance of converting free users to paying users. But if you look at the free tier as part of the conversion funnel, it becomes a useful part of the path on the way to gaining more and more paying customers.

(The big difference is that a lot of users - myself included - are wary of free trials. But we'll definitely go ahead and sign up for something that doesn't cost us anything, with the intention of kicking the tires. And once we've signed up, we're now prime candidates for continued encouragement to upgrade.)

</comment></comment></comment><comment><USER11> "Download your free e-book now" red button is a dead link/typo.

Here is the corrected link for anyone who wanted to download the ebook. [http://www.priceintelligently.com/?hsCtaTracking=920c607f-4f...](http://www.priceintelligently.com/?hsCtaTracking=920c607f-4f4b-4f03-adfe-1f7cea0702e8|cf61b233-c813-4d5b-b940-4b99766302d3)

That link does break their click tracking though. So if possible, click the red button, and fix the typo yourself after by placing an 'e' between the c and i in price intelligently. Then I presume they will still get their valuable data.

<comment><AUTHOR> All updated. Thanks for the find. No worries on the clicks, we're more than happy to just make sure we provide some valuable content all around. :)

</comment></comment><comment><USER12> An asterisk in the title? I think this is unnecessary. For me, it set the wrong tone as I was dismissing things until I knew what the asterisk was.

[Edit] Looks like he removed it. Good call.

<comment><AUTHOR> Yea, thanks for the advice. :)

Totally set the wrong tone by undermining the argument before we even presented it.

</comment></comment><comment><USER13> It comes down to conversion rates from free -> paid users. Is there an itch that your customer must scratch and is willing to pay for ? As long as that motivator exists you will see good conversion rates. However if the idea is to sell 'cool' things that add bling to a service / app, it is less likely to sustain profit.

<comment><AUTHOR> Boom. Great summary/point.

</comment></comment><comment><USER14> It's worth noting that Facebook and LinkedIn both benefit from network effects: every new user increases the value of their offering. This can help serve as a justification for the existence of a free tier.

<comment><AUTHOR> Completely agree, especially when used correctly. Dropbox is also a phenomenal example we spoke briefly about in the article. Every "sharing" feature they make you do to get more storage space has a value that should be considered in the "free" plan. Unfortunately, a lot of folks just look at freemium as a norm, rather than tool that needs to be sharpened and precisely used.

</comment></comment><comment><USER15> The author is specific about Saas. Does this apply to apps /games on a Marketplace like Google Play or Apple's app store? Just curious.

<comment><AUTHOR> Hey. Really depends on the approach to the revenue model. It's more common in the Web App world to sell for free or $0.99 (to limit spammy downloads) and then really double down on providing a lot of value to move folks up to a higher priced tier. In app purchases are also a great move if you can get them to work, but these take time to optimize. All of that being said, there are some phenomenal apps that are defending a price point, rather than giving away the farm.

A cool hybrid example of free to paid is Speech4Good (pretty specific market though). They're free app shows you all the features you could have with the premium app (they're greyed out while you're using the free version). The big note here though is that their free features are only marginally useful.

<comment><USER15> Thank you for your detailed insight, and for the examples too!

</comment></comment></comment><comment> dumb-dumb Doesn't Dropbox use the freemium model?

I generally agree with dchuk's comments.</comment>


Using Haskell to Find Unused Spring MVC Code - <AUTHOR> https://tech.small-improvements.com/2016/11/01/using-haskell-to-find-unused-spring-mvc-code/ <comment><USER2> > Putting too many functions that are relatively complex in the where clause > is a bad idea, because you lose the explicit type signature…

Note that it's possible to give type signatures for definitions in "where" clauses:

        twice :: Int -> Int
        twice x = two * x
          where
            two :: Int
            two = 2

However, you may need the ScopedTypeVariables extension[1] in order to be able to express the correct type signature. (This extension will probably be standardised at some point.)

The biggest real problem I've found with large "where" clauses is that they tend to have a lot of implicit dependencies on variables from the enclosing scope. Sometimes you want that for convenience, readability, or performance, but lifting local definitions out into top-level definitions can also help make them more explicit and reusable.

[1]: [https://ocharles.org.uk/blog/guest- posts/2014-12-20-scoped-t...](https://ocharles.org.uk/blog/guest- posts/2014-12-20-scoped-type-variables.html)

<comment><USER3> >The biggest real problem I've found with large "where" clauses is that they tend to have a lot of implicit dependencies on variables from the enclosing scope.

For me it's always a toss up. I like to make things local where possible to give some indication that the definitions need not be looked over with a fine- toothed comb -- they aren't used extensively. On the other hand, it does often lead to implicit dependencies. It would be nice to have scope highlighting - color every identifier based on the distance from the scope it's defined in. This idea shamelessly stolen from Doug Crockford in [https://www.youtube.com/watch?v=b0EF0VTs9Dc](https://www.youtube.com/watch?v=b0EF0VTs9Dc)

<comment><USER4> Dr Racket has a nice feature where it draws arrows between a variable and its binding site, and between a binding and its use sites; it would be nice to use a similar thing in Haskell.

[https://docs.racket- lang.org/drracket/buttons.html#%28idx._%...](https://docs.racket- lang.org/drracket/buttons.html#%28idx._%28gentag._9._%28lib._scribblings%2Fdrracket%2Fdrracket..scrbl%29%29%29)

<comment><USER5> I think something like eclipse's definition window would do a better job.

</comment></comment></comment></comment><comment><USER6> > Putting too many functions that are relatively complex in the where clause > is a bad idea, because you lose the explicit type signature (you should > always specify it for top-level functions).

You can give functions in the where clause type signatures. It isn't as common, but it might be preferable to breaking out code into separate functions, depending on how well the function makes sense outside the context of its "parent" function.

</comment><comment><USER7> Great post, I remember when I first picked up a functional language (it was OCaml for me) I was perplexed by the sheer number of concepts that were all new to me. Currying, tail recursion, higher order functions, combinators, functors, lenses, the list goes on and on. These concepts can be translated outside of the functional realm to a certain extent but the way that many of these functional languages embrace these ideas as part of the paradigm was refreshing to say the least.

Since you were collecting comments/suggestions: I urge you to take a look at the zipper data structure if you haven't already, they are applicable to what you are working on and are a good intellectual exercise on their own :) In addition, I haven't had the time to go over all of your code but I don't see you mentioned circular dependencies for your tool, is that a feature that is yet to be implemented? In fact this project can probably benefit from drawing ideas from garbage collection techniques since conceptually I think they are very similar.

</comment><comment><USER8> > I had a quick look at Hackage and noticed that someone already has written a > parser for Java in Haskell

The author of "corrode"[1] wrote it in Haskell because there already was a C parser available. As always, the importance of libraries.

[1]: [http://jamey.thesharps.us/2016/10/corrode-update-support- fro...](http://jamey.thesharps.us/2016/10/corrode-update-support-from-mozilla- and.html)

</comment><comment><USER9> Cool project. I'm a longtime Haskell skeptic but this article does a great job explaining Haskell's advantages in this useful and otherwise challenging example.

</comment><comment><USER10> I've done similar things using Scala, which has good parser combinator support and interoperates very nicely with a Java stack.

</comment><comment><USER11> > For example in my case I ran into problem when reading all files lazily. > This caused my program to have too many open file handles. It was easily > solved though, by hacking a bit to force the complete file to be read > directly

This kind of thing is exactly what I'm afraid of and makes me not wanting to commit to a purely functional style. IMO FP is simply the wrong tool for handling expensive resources - e.g. I/O or large memory regions. This is why I think an imperative shell handling these resources, around a functional core (potentially around another tiny imperative innermost core for handling caches), is overall a cleaner approach for performant code.

<comment><USER12> Laziness (lazy IO, in this case) has nothing to do with a language being functional or not. It has everything to do with a language being strict or lazy. There are strict functional languages. Most are, in fact.

<comment><USER11> Lazy/strict is just one property that can be problematic in a high performance context. The biggest one to me is mutability. Basically it's a simple test: Can I swap pointers? (e.g. 'model_current' and 'model_next_timestep'). If not, I can't use it, it would slow down numerical solvers tremendously to allocate and free the required memory for each step. However, if I can just have the time iteration in an imperative shell that allows pointer swapping, while keeping the interesting mathematics in a purely functional core, that would be an interesting architecture (because it could make use of inherent parallelism in a better way). So far I haven't seen anything like that becoming truly competitive with Fortran/C/C++ in the HPC space, which I find a shame.

Programming for HPC should be like programming in the future, as Alan Kay likes to say, but it seems to me there is a stark (and IMO unnecessary) disconnect between the worlds of HPC and desktop/web programming today.

<comment><USER13> There are various ways get the effect (with similar space and performance chacteristic), but there are different approaches for different FP languages. For example, persistent data structures, non-pure primitives (eg Clojure's atoms), monads, etc. For Haskell, these sound relevant if you're set on using strict dense matrices: [https://wiki.haskell.org/Monad/ST](https://wiki.haskell.org/Monad/ST) [https://hackage.haskell.org/package/bed-and- breakfast](https://hackage.haskell.org/package/bed-and-breakfast)

I suspect HPC will always be more gnarly than elegant, since by definition HPC is about spending money on making code go fast in very specialized apps.

<comment><USER11> could you expand on persistent data structures? How do they give me 'free' memory with neither allocation nor mutable data? Or is that outside of pure FP?

<comment><USER13> So persistent data structures are conceptually just an extension of the classic lisp cells: You can have a pointer to (a, b, c) and a pointer to (a, b, c, d) simultaneously, without using twice the memory or time. This can be extended to trees. And you can for example make an efficient tree-backed vector, with chunks of values at the nodes. With some thought you can even get good atomic properties so you can have safe parallel operations on the same persistent vector.

Here's a good start about Clojure's persistent vector: [http://hypirion.com/musings/understanding-persistent- vector-...](http://hypirion.com/musings/understanding-persistent-vector-pt-1)</comment></comment></comment></comment></comment></comment>


Falling Forward- three failures on the road to profitability - <AUTHOR> http://spreadsong.com/failing_forward_three_failures_on_the_road_to_profitability_and_how_we_moved_past_them

<comment><USER2> I'm happy for you guys, and I wish you well. If you ever visit Ecuador, you can get to me via superluc at gmail; starting in December, surf gets good. I'm still in the states, but I'll be back in two weeks -- staying for 10 months this time.

I have a selfish reason for wishing you well: I'm trying to do something similar, starting a business with some friends and some custom software. It's terribly conservative, as I don't have another technical co-founder, but it's something.

It's promising that you're already Plantain Profitable. ;)

<comment><AUTHOR> Perfect! I'm going to be heading to Rio in January, so I might have to make a pitstop at some point in Ecuador. If you get that stuff moving from a beach in Ecuador you'll definitely have the best founding story ever :)</comment></comment>