Why Canada Is Able to Do Things Better - <AUTHOR> https://www.theatlantic.com/business/archive/2017/07/canada-america-taxes/533847/?single_page=true <comment><USER2> Canada is far from perfect. We too have infrastructure deficits, the city I live in suffers from incompetent city planning (although recently it's gotten better), our house prices are insane, and the cost of living is very high.

That being said, the one thing I think Canada does 100x better is politics. Mainly because Canadians generally don't 'belong' to a political party or movement. Almost everyone here will vote almost any direction, depending on the issues at hand and happiness with the status quo. Identity politics is also non-existent here. This leads to a political class which is somewhat more pragmatic, less ideological, and certainly less extreme.

Also, at lower levels of government, politicians are more likely to be unaligned with any party, and at the provincial level the political parties vary by province and most aren't aligned with the federal parties.

So in general, I'd say Canada's advantage is simply that politics isn't as stratified. But again, while our country is amazing IMO, it's not perfect.

<comment><USER3> Not entirely true. Canada has "conservatives" and "everybody else". We get a lot of american media here which unfortunately poisons a lot of our political debates.

<comment><USER4>
      Canada has "conservatives" and "everybody else".

Not at all. Just because there is only 1 party with the word "conservative" in their name does not reduce it to a binary system with no tangible differences within the different parties. I do agree with the USA's political poisoning - it's a shame when we see "political trends" move home.

</comment></comment></comment><comment><USER5> > "Much of the surrounding road and rail infrastructure is in even worse shape > (the trip from LaGuardia Airport to midtown Manhattan being particularly > appalling). Washington, D.C.'s semi-functional subway system feels like a > World's Fair exhibit that someone forgot to close down. "

Yes, those low tax, anti-government strongholds of NYC and DC are great examples of how more taxes will solve everything.

<comment><USER6> "low tax, anti-government strongholds of NYC and DC"

Compared to the author's Ontario, Canada? Yes, they are.

<comment><USER7> Ontario has the largest non-sovereign debt anywhere. In the world... If you are looking for example for a solid economic policy Ontario should be the farthest thing from.

[http://business.financialpost.com/news/economy/with-twice- th...](http://business.financialpost.com/news/economy/with-twice-the-debt-of- california-ontario-is-now-the-worlds-most-indebted-sub-sovereign- borrower/wcm/30c38ab9-4a3f-4f39-ac95-4d9516013d89)

</comment></comment></comment><comment><USER8> Funny. As a Canadian, I look to (and moved to) America to achieve. I find our government, at many levels, to be very slow moving, averse to change and frequently lags behind the US in allowing innovation. Vancouver's down-right refusal to consider ride-sharing apps is nothing short of corruption. The archaic alcohol laws, including prohibition of transport of booze across borders (except for made-in-Canada wine, gotta protect your favoured industries!) is another example.

Looking north across the border, it's easy to see a greener field, but Canada has suffered a decades of brain-drain and poor multi-factor productivity because of slow, restrictive government policy and a refusal to embrace innovation. It's a shame it takes this long to enact change.

<comment><USER9> I was traveling in Illinois many years ago with some locals and we passed a county were supposedly prohibition is still in effect. So not sure about US being ahead of Canada there. I'm not a big fan of alcohol but it's now sold in supermarkets in BC and there's a million micro-breweries so I don't think we're that much behind in this questionable industry. People here (and in the US) seem incapable of drinking responsibly and that impacts others so not sure why we should worry about providing them with easy/cheap booze.

In Vancouver I'd point to the homeless issue is the biggest problem. After the weather ;)

All in all I think Canada strikes a good balance. Possibly one of the best in the world. If the weather was better we'd be ahead of the US in all parameters ...

</comment></comment><comment><USER10> >Canadians tend not to talk about making their country great again. Canada never was particularly great—at least not in the sense that Trump uses the word. Unlike Americans, Canadians haven't been conditioned to see history in epic, revolutionary terms.

To be fair to Americans... once upon a time, they really were were that far ahead of everyone else. In 1945, it's estimated they constituted over 50% of the global GDP. You _are_ the global economy at that point, and that's going to distort anyone's perception of what constitutes fiscal propriety. Most politicians were born either during this golden age, or a bit after when things were still very rosy. The US still represented 40% (edit: of gdp) even when relatively young politicians, like Barack Obama, came into the world. It's difficult to convince someone he can't just cut taxes to generate more good will with the electorate when, for most of his professional life, the economy was so good he could do just that and not seriously hurt anything.

</comment><comment><USER11> This argument has always interested me:

"Because Canadian entrepreneurs can quit their day jobs without their spouse losing access to dialysis, or their children losing access to pediatricians, such a system allows business-builders more professional freedom."

Does the data show that countries with single payer, or even individual-based (not employer) health care, have greater percentages of entrepreneurs? How about overall entrepreneurial outcomes?

<comment><USER12> _> Does the data show that countries with single payer, or even individual- based (not employer) health care, have greater percentages of entrepreneurs? How about overall entrepreneurial outcomes?_

It's worth noting that the quote from the article and this question are _not at all_ the same thing. National economies are big complicated things.

Aside from the USA, few countries without+ universal healthcare have high rates of what we in the US would consider entrepreneurial activity (e.g., excluding "self-employed" subsistence farmers and the like). But the USA is one of if not the most entrepreneurial country. Again, those two facts tell us basically nothing about the effect of health care systems on entrepreneurship. Trust me, South Sudan's lack of functional universal healthcare is _not_ the reason they haven't usurped SV...

People try to study the actual effect by controlling for other variables. Unsurprisingly, "it's complicated" and also EXTREMELY politicized, so you can find studies on both sides of the issue.

\+ But does the US "not have" universal healthcare? cf Canada/western Europe and the answer is yes, but cf other countries and medicare/medicaide and the answer is more fuzzy.

</comment></comment><comment><USER13> If this article inspires anyone to finally move to Canada, there's lots of startups here in Toronto that are hiring. Also Amazon is hoping to fill 200 more desks this year in their Toronto office and Google is nearby in Waterloo.

Happy to help anyone interested.

<comment><USER3> As an addendum; the bar is extremely low for developers in Canada. If you show up on time, smell nice, and put on a smile, you will be lauded with awards, compliments, raises, and time off.

<comment><USER14> I wouldn't necessarily say the bar is low... but I feel like the work culture is certainly much healthier here.

</comment></comment></comment><comment><USER15> Specifically, it is imagined that even severe and abruptly implemented tax cuts will serve to actually increase government revenue, thanks to the turbo- charging effect on economy growth.

\- a conservative

</comment><comment><USER16> > Denmark, with a tax burden of 49.6 percent, stands atop the OECD index. It > also happens to be a wonderful place to live, with a high standard of living > funded by a diversified, high-tech, export-driven economy.

Denmark is NOT a wonderful place to live. It is a stable society where everyone is equally poor except the tax dodgers. Furthermore, the climate is more bleak than Seattle. This article makes Denmark seem like THE place to be. It clearly is not. Just look at where the economic migrants are flocking to. That would be Germany. Furthermore, this article is a blatant propaganda piece. "More government is good for you" is the overriding mantra here. There is no discussion of the downsides of increasing taxation on the population at all. Instead, it is a pure puff piece which is engineered to make Canada seem great because of taxation. The reality is that the Canadians are functionally isolated from the United States. They decide their own policies. They decide their own cultural norms and laws. If anything, it is the decoupling of that region from the rest of the legislative United States that fosters such a wonderful culture localized to north of the US border. It's not taxation that makes Canada great, but jurisdiction and their right to self-determination.

<comment><USER17> There's basically a single statement about Denmark and it merely an example that a high tax burden isn't universally harmful. A reasonable counterexample would be a country with a high tax rate that is in terrible conditions caused by it rather than pointing out that Denmark isn't perfect (which is a straw man argument in the first place).

There conflation of paying taxes and "more government" is also on display on in this comment that isn't true. You can have a large poor government or a large well funded government.

I think ultimately the article makes a good point about Canadian's attitude towards taxation and services. Canadian's understand that you get what you pay for. If you want _nothing_ then pay nothing but that means you get poor schools, crumbling roads, and crippling healthcare bills.

<comment><USER18> The article doesn't make a point backed up by data, though. For example, the US spends much more than Canada per capita on schools yet performs worse.

[http://www.cbsnews.com/news/us-education-spending-tops- globa...](http://www.cbsnews.com/news/us-education-spending-tops-global-list- study-shows/)

</comment></comment></comment><comment><USER19> The US now has a federal budget of $4 trillion. Lack of money is not the problem.

</comment><comment><USER20> There is a lot of valuable information and,in my opinion, the author's views are well supported by his experience and his research. However, you get the sense he has been paid by the word. I think democratic systems are under threat. I think, as well, that the threats are resulting in lower economic growth and fewer opportunities for evolving generations. This article does not provide an important context as to why this is happening. Society would be better off if everyone knew this stuff. I just wish it was a little more readable.

<comment><USER21> > The health care in Canada is terrible. If I want to see a doctor I have to > wait typically 2+ weeks to get an appointment. Go to emergency room you have > to wait 8+ hours and receive poor treatment.

Oh, how I enjoy first world problems. I'm feeling like I'll love Canada.

<comment><USER20> Of course the power to amend provincial constitutions is restricted to changes in the internal machinery of the provincial government

<comment><USER21> If not so many countries are doing better than them, I think they are doing the best work as it is not easy to manage a country. Outsiders don't do good judgement.

</comment></comment></comment></comment><comment><USER20>
         Nothing that the Canadian Government does is good. All
      government institutions survive through theft, deception
     and immorality. All government programs are dysgenics

programs. All functions of government can be surpassed by regulation free markets. All non-voluntary regulations are implicitly sexist, racist and immoral. All government programs perpetuate abusive relationships. All government workers are bad people. All functions of government should be replaced by regulation free markets.

       Canada is one of the worst places to live in the world

right now, as it on the verge of a complete TechnoMarxist takeover and well on the way to becoming a neo-third-world country. In < 10 years we will have a complete surveillance state, forced labor camps and eugenics programs. The federal government already has apps with points based rewards systems that track all of your behavior and give you tax credits for destroying your country and people.

      To see people praising this obviously paid by the federal

government shill is shocking, here on this website, a website for intellectuals. You utter fools! You're playing right into the hands of the authoritarians.</comment>


Judge rules TSA no-fly procedures unconstitutional - <AUTHOR> http://boingboing.net/2014/01/15/judge-rules-tsa-no-fly-procedu.html

<comment><USER2> > _The DHS engaged in witness tampering (denying Dr Ibrahim and her witnesses > access to the courtroom by putting the on the no-fly list) and argued that > neither Dr Ibrahim nor her lawyers should be allowed to see the evidence > against her_

I was going to write about the gross abuse of power and how we should change the people and the system but I think their thuggery is so obvious we don't have to belabor the obvious and the more appropriate thing to say is: What a bunch of assholes.

<comment><USER3> >What a bunch of assholes.

While it might be true, the sentiment is entirely unhelpful and mirrors a fundamental problem with the reaction to these types of problems: there is nothing special about these people that makes them assholes.

In fact, I'm proposing that any group of people put into these roles would behave exactly the same. When you put people into jobs, the – let's say architecture – of the organization they are put into has a drastic influence on their behavior (see the Stanford prison experiment)

The question that should be asked is what's wrong with the architecture of these organizations that brings out the natural bad qualities of human behavior in average people?

<comment><USER4> Not entirely at odds with the experimentation you quoted, I think it's perfectly within rights to call these people assholes. If they really had any conscience about the matter they would speak up or leave the job, seeing as they don't it's well within rights to refer to these actions as their own and hold them at least partially responsible.

<comment><USER3> Within rights, perhaps... helpful? no. Even prosecution and lawsuits, while necessary doesn't actually solve the problem and that's the point I'm trying to make.

Being upset at individuals, suing and prosecuting, and all things of this sort miss the core of the issue and if you spend all your time concentrating on the superficial causes you'll never fix the actual problem.

</comment></comment></comment></comment><comment><USER5> Despite its imperfections, the US Constitution's very measured and explicit introduction of independent branches of government with checks and balances between them strikes me as one of the greatest political innovations of all time. It's right up there with representative rule.

<comment><USER6> The Constitution also envisioned _limited_ government.

</comment></comment><comment><USER7> Looks like a continuation of [http://news.ycombinator.com/item?id=6850408](http://news.ycombinator.com/item?id=6850408)

</comment><comment><USER8> Am I on USA-Today or Hacker News?

<comment><USER9> HN has a voting system where readers decide what stories get to the top. Apparently a lot of people considered this both newsworthy and relevant to their interests.

<comment><USER8> "Off-Topic: Most stories about politics..." and "If they'd cover it on TV news, it's probably off-topic." If we go with your logic, I would start posting and upvoting news coming from TMZ and the latest Casey Anthony updates.</comment></comment></comment>


Japan, Short on Babies, Reaches a Worrisome Milestone - <AUTHOR> https://www.nytimes.com/2017/06/02/business/japan-population-births.html <comment><USER2> The argument to increase immigration seems like a quick-fix for countries poised to become elderly-heavy, but when those immigrants are uneducated and most likely to perform jobs that will be automated away in 15-20 years (and face enormous linguistic barriers to participate in e.g. japanese society), such immigrants may be as much or more long-term dependents as they would have previously been assets in labor-heavy economies. Weathering the geriatric storm for a generation or two until a new and lower post-industrial carrying capacity is reached could be a smoother long term social and economic proposition for such countries, especially if they aren't immigrant-friendly already.

<comment><USER3> Cap'n Obvious here, but immigration by non-Japanese in face of falling Japanese demographics will ultimately result in a country that's not really Japan anymore. That's probably a fact of life, if you consider societies to be living entities, and thus bound by the same constraints...and yet even as a non-Japanese it feels really sad to recognize that Japan as a unique nation, with a unique culture and society might disappear. Not much to do, though, if they don't want to have kids...

<comment><USER4> Japan's cultural uniqueness is mostly a romantic myth. People act as if the Sakoku period was the norm for Japan and not an exception, but Japan has been just as susceptible to cultural influence as any other country. Much of that "unique culture" was adapted from China, much more of it from the West. That's not in any way calling it illegitimate, a lot of Western countries borrow from one another (or impose cultural change through violence) or crib from the ancient Greeks or Romans. The process of cultural admixture and transformation through trade, religion and violence is the same everywhere. Westerners just seem to ignore the phenomenon as it relates to Japan, I suspect, to maintain some sense of exoticism about the place.

Japan would lose its ethnic homogeneity, but to me that's not something worth caring about or mourning the loss of. The culture would change, but culture always changes.

<comment><USER5> > Japan's cultural uniqueness is mostly a romantic myth

Have you been there? I can't imagine anyone who has spent any amount of time in Japan would claim there is no cultural uniqueness.

<comment><USER4> I may have just been imprecise in my wording. I was addressing andreiw's assertion that Japan would "not really (be) Japan anymore" after cultural influence from immigration. But Japan's culture is _already_ the beneficiary of a great deal of foreign cultural influence, so nothing would happen to it with respect to immigration that hasn't been happening to it since practically the dawn of time.

At best, the rate of cultural transformation might be accelerated, but even then I suspect the doomsday scenario of Japan simply vanishing in a generation (or whatever) due to an influx of immigrants is unlikely. If the Meiji restoration or the American occupation didn't destroy Japan's cultural identity then a few thousand more gaijin won't either.

</comment></comment></comment></comment></comment><comment><USER6> Seems like a completely valid social trajectory. I don't get why it is considered so grim.

> "The government has taken steps to keep older workers in their jobs longer, > and to encourage companies to invest in automation."

> "Individual Japanese will not necessarily be poorer just because the economy > is smaller."

Sure there will be shrinking pains, but it doesn't seem like a catastrophe. Seems like it will ease more responsible use of our space and environment.

<comment><USER7> Young are fewer and fewer, there will be few tax income to pay pension to the old people, thus, the government either slash the pension or raise tax. And it is death spiral anyway.

Japan's good days are indeed numbered. The breakpoint will come, and I would predict an huge exdous of young people leaving Japan, because they don't want to spend their whole life working for older generation then finding there will be no one for themselves.

<comment><USER5> But where will they go as the same thing will be happening to most western countries as their tax base is hollowed out due to the failure of largely trust based basis of their taxation systems, and as more and more economic activity has moved overseas or under the table, and profits stored outside the formal system?

<comment><USER7> There will be countries that will die later.

</comment></comment></comment></comment><comment><USER8> An economy depending on population growth is incompatible with physics. If we care about climate change we should want every country to have a population decline until we can live within our carbon means.

<comment><USER9> The universe is a big place. Moving to other planets isn't only reasonable, people are planning for it. Sustained growth is possible.

<comment><USER10> Anytime I see talk of mass colonization as part of a solution to overpopulation, I direct people to Charles Stross' discussion about the infeasibility of doing so [1] [2]. The TL;DR is: until we find a breakthrough like cheap anti-gravity (like depicted in _Interstellar_ ), moving that much sheer mass of humanity is energetically (with the required specific impulse) not within our civilization's current capabilities.

[1] [http://www.antipope.org/charlie/blog- static/2007/06/the_high...](http://www.antipope.org/charlie/blog- static/2007/06/the_high_frontier_redux.html)

[2] [http://www.antipope.org/charlie/blog-static/2010/08/space- ca...](http://www.antipope.org/charlie/blog-static/2010/08/space-cadets.html)

</comment></comment></comment><comment><USER11> Could this end up being a blessing in disguise? I know traditional theory says that more people => more productivity => bigger economy. But with no people to produce anything, Japan might be forced to lead the world in AI adoption simply because there is no other way. While US or China might be leading in AI technology, they will face severe pushback because of displacement of jobs. Japan on the other hand might actually require general purpose AI to do daily chores. It could be the first big market for general purpose human-level intelligence robots and all the problems it brings.

<comment><USER12> I am under the impression that IT industry is far less active in Japan than US and China. While more old people may demand more automation, more old people also breed more conservatism, hampering the adoption and development of new technology.

<comment><USER13> This is something I never heard of thought of in the context of aging populations but it sounds true. It builds a self perpetuating cycle - if the population pyramid leans older, it leans more conservative, which drives an agenda that limits volatility and thus innovation, which can stagnate an economy that can constrict reproduction if there isn't enough prosperity to justify having children.

</comment></comment></comment><comment><USER14> 'Official efforts to encourage women to have more children have had only modest results, and there is little public support for large-scale immigration — something that has helped to stabilize populations in other wealthy countries with low birthrates. ... "A lot of the things we're used to in Japan are really products of an era of population growth, like single-breadwinner families and mandatory retirement ages," said Takaaki Tahara, research director at the Japan Institute for Labor Policy and Training. "The mind-set will have to change."'

If "the things we're used to" are products of an era of population growth and impossible without it (even with a steady-state population size), then we're basically admitting those aspects were dependent on a ponzi scheme. Might as well let developed countries populations level off, for a number of reasons.

</comment><comment><USER15> I don't buy into everything in this ZeroHedge post, but there's some interesting data regarding birthrate trends in the United States and elsewhere, and its impact on the economy:

[http://www.zerohedge.com/news/2017-06-24/why-next- recession-...](http://www.zerohedge.com/news/2017-06-24/why-next-recession- will-morph-decades-long-depressionary-event-or-worse)

<comment><USER16> It's mildly concerning considering that Europe, Japan and especially China will be facing a _more_ extreme inverted age pyramid than the US 20 years from now. India won't, but it's already straining under the weight of its considerable population.

20 years is a long time though, especially given how much work is getting automated.

<comment><USER17> What exactly is being automated?

Cars to an extent, but I don't see a great deal else. Supermarkets got automatic checkouts a while ago, yet the majority are still normal staffed ones. The airline industry has been pretty far ahead of the game in terms of automation, yet still needs a lot of staff.

<comment><USER15> This post has some good data on that topic:

[https://www.bloomberg.com/graphics/2017-jobs-automation- risk...](https://www.bloomberg.com/graphics/2017-jobs-automation-risk/)

</comment></comment></comment></comment><comment><USER18> Philip Longman explained why depopulation is a problem in this 2004 Long Now lecture[0]. One of the main issues is that infrastructure and social spending is implemented as a pyramid scheme (he didn't put it quite that way IIRC). If you don't have an expanding population, you can't pay for all the programs that have been enacted. Of course, population can not expand indefinitely and there's no political will to avoid passing financial burdens to future generations.

[0] [http://longnow.org/seminars/02004/aug/13/the-depopulation- pr...](http://longnow.org/seminars/02004/aug/13/the-depopulation-problem/)

</comment><comment><USER19> Japan has eschewed immigration in favor of population decline. It'll be interesting seeing how this plays out compared to how the rest of the world is handling an influx of Muslim immigrants.

<comment><USER8> >Up to three quarters of Germany's refugees will still be unemployed in five years' time, according to a government minister, in a stark admission of the challenges the country faces in integrating its huge migrant population.

>Aydan Özoğuz, commissioner for immigration, refugees and integration, told the Financial Times that only a quarter to a third of the newcomers would enter the labour market over the next five years, and "for many others we will need up to 10".

[https://www.ft.com/content/022de0a4-54f4-11e7-9fed-c19e27000...](https://www.ft.com/content/022de0a4-54f4-11e7-9fed-c19e2700005f?mhq5j=e3)

</comment></comment><comment><USER20> Here are a couple things I think societies struggling with birth rates should try.

1\. Provide for the full costs of IVF and egg donation for non-fertile women up to age 50 and letting that fact be well known and encouraged. 2\. Promote platonic co-parenting relationships for those in their 30s.

<comment><USER5> Created some sort of supervised babysitting by seniors service in old folks homes, largely free childcare (most western countries have a childcare crisis at the moment) and a MUCH happier and fulfilling retirement for seniors.

</comment></comment><comment><USER21> One thing I noticed here in Japan that is sort of related is the lack of reasonable access to birth control control. You need to go to a doctor/ clinic to get the pills, and they are not exactly cheap. That is hurdle 1.

Even worse is the morning after pill / emergency pill. You must go to a doctor/clinic for that as well and it costs $200 usd.

They definitely make it scarier / more difficult to have sex here.

<comment><USER17> There are other options for birth control.

</comment></comment><comment><USER22> What's driving this? Why is it happening in Japan, but not other places?

<comment><USER23> It is happening other places (check out lots of countries in Eastern Europe). Making it worse in Japan is their aversion to immigration (as pointed out in the article), and the cultural forces that make Japan extremely unfriendly to working mothers.</comment></comment>


Captive Portal - <AUTHOR> http://en.wikipedia.org/wiki/Captive_portal

<comment><AUTHOR> I never knew the term, but just came across it and thought I would share just in case others were wondering.</comment>


Building the Casper homepage - <AUTHOR> http://destroytoday.com/writings/building-the-casper-homepage/ <comment><USER2> Is it me (my browser) or doesn't the website currently have those animations?

<comment><USER3> It does for me, Chrome on OSX

<comment><USER4> I'm on Chrome OSX. Website matches the final video, however as a user, I don't scroll nearly as smoothly as the demo video does. What I end up seeing is a bunch of products "jitter" as I go down the page.</comment></comment></comment>


Startup Data Trends - <AUTHOR> http://startupdatatrends.com/

<comment><USER2> They've open-sourced it: <https://github.com/bocoup/StartupDataTrends>

</comment><comment><USER3> We have a post on it as well on our blog:

<http://weblog.bocoup.com/startup-data-trends/></comment>


Official Presidential Job Performance Poll - <AUTHOR> https://www.gop.com/rate-trump-job-performance/ <comment><USER2> Yeah he's doing a great job! Just called the third world "shitholes" which is probably accurate but a good way to destroy diplomatic affairs.

</comment><comment><AUTHOR> Most shameless poll ever...</comment>


Ask HN: What is the best way to resolve storyboard (iOS) conflicts? - <AUTHOR>

When a team of programmers working on a storyboard (managed by git), it is rather painful to merge changes. I know people are saying that using multiple storyboards can mitigate this problem.<p>I wonder if there is a better way? <comment><USER2> The best way for this is avoiding Storyboard.

DVCSs are designed for full error-tolerenceable text based source files. It requires the files are fine to be broken (e.g. for compile). This is the premise to merge data files without any issue.

Storyboard/IB data files are zero-tolerence. They always require full integrity for their data files. As the internal data is described as a interconnected graph, there's no effective way to manage Storyboard/IB data files in broken state. Most data files are in this form, and cannot be used in DVCSs.

Then, trying to use zero-tolerance data in a system which require full tolerance doesn't make sense. At least for merging.

</comment><comment><USER3> I don't see any other option beside 1) building the UI in code again 2) break it up into separate storyboards.

The lesson is never to use a storyboard unless your app is a simple collection of screens with a navigation controller.

</comment><comment><USER4> We're having the same problems, pointers welcome.</comment>


Firefox fail: Layoffs kill Mozilla's push beyond the browser - <AUTHOR> https://www.cnet.com/news/mozilla-layoff-firefox-device-relevance/ <comment><USER2> Why was a story from 2017 submitted today?

<comment><USER3> Probably related to today's layoff announcements: [https://news.ycombinator.com/item?id=22057737](https://news.ycombinator.com/item?id=22057737)

Possibly sloppy search / date checking.</comment></comment>


PirateBox-based internet? - <AUTHOR>

Most of us have probably heard of the PirateBox in the last couple of days. (In case you didnt: [wiki.daviddarts.com]
I saw a comment somewhere that you might even be able to inter-connect those boxes. (could be lifehacker, not sure) Could that hypothetically mean that you can set up your own "grassroots internet"?
Anyone you'd want contact with would have to be connected to the same network of course, but if it's something that grows really big, then you don't need isp's etc.
Problem of course is inter-continental contact, but are there any other things which would make this not work? <comment><USER2> Sure, it has and is being done.

GuiFi is a running example of a mesh network in Spain. <http://guifi.net/en>

Friefunk are a number of networking running in Germany <http://wiki.freifunk.net/Kategorie:English>

Village Telco is a project using mesh wifi to provide voice telecoms in remote parts of the world using custom hardware <http://www.villagetelco.org/>

The issues come with a smart mesh protocol. There are many around, 802.11s, oslr, BATMAN, etc. (Village Telco & Friefunk use BATMAN).

See Project Serval for implementation of BATMAN on Android devices. <http://www.servalproject.org/how-it-works>

<comment><AUTHOR> Very interesting, thanks!

Especially the Android-app has huge potential, when people actually use it. Using the situation in Egypt as a case-study, loads of people there could've had an app which inter-connects them and supplies them with a messaging- system, and when the network could handle it, voice-contact.</comment></comment>


Programming and Programming Languages (2018) - <AUTHOR> https://papl.cs.brown.edu/2018/index.html <comment><AUTHOR> Although mostly used in the browser, at [https://code.pyret.org/](https://code.pyret.org/), Pyret (the language used in the book) can run locally on Node.js like this:

        npm install -g pyret-npm
        pyret --help

Assume you have a file named _ahoy.arr_ on your machine:

        check:
            print("Ahoy from Pyret\n")
            "Ahoy " + "World!" is "Ahoy World!"
        end

Compile and run with:

        pyret ahoy.arr

Run the compiled program:

        node ahoy.jarr

</comment><comment><USER2> It's by one of the authors of HtDP: [https://www.htdp.org/](https://www.htdp.org/)

</comment><comment><USER3> A thread about the 2014 edition: [https://news.ycombinator.com/item?id=8750354](https://news.ycombinator.com/item?id=8750354)

</comment><comment><USER4> Any way to download it as a PDF/epub? Something that isn't tiny text in a browser window. :)</comment>


Warner Brothers sued for unauthorized use of Nyan Cat and Keyboard Cat - <AUTHOR> http://arstechnica.com/tech-policy/2013/05/warner-brothers-sued-for-unauthorized-use-of-two-feline-internet-memes/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+arstechnica%2Findex+%28Ars+Technica+-+All+content%29

<comment><USER2> Karma's a bitch.</comment>


My personal review of the year 2018 - <AUTHOR> https://medium.com/sander-gansen/my-personal-review-of-the-year-2018-7e7d315f8db9https://medium.com/sander-gansen/my-personal-review-of-the-year-2018-7e7d315f8db9https://medium.com/sander-gansen/my-personal-review-of-the-year-2018-7e7d315f8db9 <comment><USER2> That link seems to be broken.

[https://medium.com/sander-gansen/my-personal-review-of- the-y...](https://medium.com/sander-gansen/my-personal-review-of-the- year-2018-7e7d315f8db9) worked for me.</comment>


Bill Gates quits Facebook over 'too many friends' - <AUTHOR> http://news.yahoo.com/s/afp/20090725/ts_afp/indiaituspeoplegatesfacebook_20090725140234

<comment><USER2> It's disappointing to think that because your as well known as Bill Gates, you cant have a simple, public page to share with your _actual_ friends.

<comment><USER3> It's tough to feel sorry for the guy

</comment></comment><comment><USER4> The opposite problem of the one he had in high school.

</comment><comment><USER5> People that 'friend' random people or people they wouldn't really call friends on social networking sites don't get my sympathy when they feel it's 'too much' or some sort of information overload.... they brought it on themselves.

It's like writing off candy as being 'sickening' because you ate nothing but candy as food for a week. It has nothing to do with candy in general or the candy industry. It has to do with _your_ lack of planning and/or foresight.

</comment><comment><USER6> Facebook for normal people, twitter for popular ones :)

</comment><comment><USER7> I know I will be downvoted but anyone else had this association? <http://img195.imageshack.us/img195/2051/ss208.png>

</comment><comment><USER8> Flagged; this seems to be random gossip.</comment>


The Physics of Magnetic Monopoles – With Felix Flicker - <AUTHOR> https://www.youtube.com/watch?v=S3xH97Su-KY <comment><AUTHOR> The most exciting discovery in our lifetime. Zero conversations about it on some lame social news platform owned and operated by a bunch of dogmatic capitalists.

Clueless to innovation outside their realm of control.</comment>


How to Get Started with Elixir - <AUTHOR> https://wrestlerman.me/posts/small-tips-for-elixir-beginners/ <comment><AUTHOR> Recently I've been tinkering with Elixir a lot. That's why I decided to share some small tips for learning Elixir. Hopefully someone will find it useful :)

</comment><comment><USER2> These are great tips thanks!</comment>


Late bloomer, not a loser. – 500 Hats - <AUTHOR> https://500hats.com/late-bloomer-not-a-loser-i-hope-ac0ec49a6ddc#.prehhbij4 <comment><AUTHOR> white rich guy doesn't feel successful enough, lol.</comment>


The Problem With Performance Reviews - <AUTHOR> http://andreygoder.com/474/the-problem-with-performance-reviews

<comment><USER2> Poor Andrey. I'm not being insensitive, he's at his first job (Facebook) after getting his masters out of UMich (12/09) and he's complaining that Performance Reviews suck because they aren't actionable. I wonder if it was the first one he got or if he's had more than one since starting at FB. Either way it seems like a pretty small sample set from which to select.

Performance reviews are a tool like a table saw, in the hands of a skilled manager they can help mentor someone to great potential. In the hands of someone who doesn't know how to use them they can do great harm. It doesn't help that the suing your company/manager is popular and so the company goes to great lengths to warn new managers about being too interpretive or too specific.

You should, the employee, should get three things out of a performance review. First and foremost is feedback in the context of the previous one, and if you are newly hired in the context of the job that was offered you. The second is an external analysis of your strengths and weaknesses (this can be hard to hear sometimes) and third a discussion about where you are headed.

The first part is pretty straight forward, "We hired you, Bob, to be the build master. We measure the quality of the build master by their ability to adapt to new build requirements, achieve rapid turn around of builds, and provide accurate and actionable feedback on problems to the source of those problems so that they are quickly resolved." The job has some requirements, the employee is doing the job, they are either not meeting, meeting, or possibly exceeding, against the execution goals of the job (the stuff that has to get done).

Part two is a bit harder, the orthogonal axis to performance is 'fit' which is a combination of how you get things done, and how you react/adapt to changes in the requirements. These vary from job to job but generally they involve group dynamics (can people work with you), ability to make progress in spite of barriers, and your state of mind. Some folks see this as the 'popularity contest' part of a review and it can be, if done poorly, but the real meat is the amorphous concept of teamwork.

The third part is a vector for the review after this one. You and the manager agree on what you're good at, where you are most effective, and how that works (or doesn't) with the company. This part can give you a sense of whether or not continuing to work at the company is the right thing for you to do.

Its important to remember that a review is a conversation between you and the company. They are telling you what they think of your contribution and what they are looking for in the future, and you are evaluating if you still want to work there. When you are both on the same page its great, when you are on different pages, its painful.</comment>


Survey on Standards of Software Professionalism - <AUTHOR> https://docs.google.com/forms/d/e/1FAIpQLSdt1njzfF4Ip4Mtegiq-stZjofRl_XJNzw5KimMH2BAR-2TLQ/viewform?usp=sf_link <comment><AUTHOR> I have been thinking a lot lately about what "professionalism" means in software development. I recently read Clean Coders (Martin, R.), which talks extensively about this issue, and Pragmatic Programmer (Hunt, A.; Thomas, D.), which touches on it as well, and it is clear that this is an issue that evokes strong feelings among many developers. It got me thinking, to what extent are the lessons in these books (and others) actually practiced in the industry? What do today's software professionals have to say about "professionalism"? With the goal of answering that question, I put together a short survey, the results of which I plan to share in a future article. If you're interested, I'd love to get input from fellow HN readers. Thanks very much for your input!</comment>


Ask HN: When did you realize a project has entered "Development Hell"? - <AUTHOR> My company has been developing a project that was supposed to release after 9 months, but it has been over 2 years without anything moving to production. With 1000s of man-hours used and deadline after deadline being missed, I'm worried we are now in development hell. Do any of you have experience with a project on development hell, and what are the signs of development hell? <comment><USER2> I don't want to sound glib, but if you find yourself asking if you're in development hell then the answer is probably yes.

Other than that meta-remark, you can take a look at how the cost and delay estimates evolve after a deadline is missed. Projects slip, but usually each missed deadline gives more visibility into the actual delivery date. If the updated budgets/plannings don't converge, then this means the underlying project hypothèses are false (e.g. the technical complexity was completely underestimated, or the marketing target is moving faster than the project).

</comment><comment><USER3> Development hell is caused by management hell and can't be fixed with person- hours. It always requires new managers. Management will often swap out devs trying to fix it, but I've never seen that work.

Finishing a 9-mo project a little late isn't a great sign. It should at least result in a usable beta because it's such a long timeline. There are many months to change course and narrow the features in a smart way.

2 years for a 9 mo project is a garbage fire. It was in development hell a long time ago.

</comment><comment><USER4> Change departments if possible, or preferably, change employers because it's unlikely to improve and you shouldn't wait around and suffer unnecessarily when other shops exist that are _relatively_ better.</comment>


Ask HN: why do people seem to hate ; that much? - <AUTHOR>

This question has bugged me since the first line of Javascript. Seriously, what is wrong with ; (semicolon)? It is small and enabling. Why do new languages (including functional ones like Scala) keep advertise if their lack of requirement? <comment><USER2> There are two reasons for avoiding semis in JS, and similar languages, to wit:

1) Code clarity. Semis do not aid legibility. All they add is sad little bits of fluff that get in the way of your eyes reading the code

2) Symbol overloading. Some us (Yes I am one) do NOT like symbols being overloaded. I esp. hate the way both semi and comma are overloaded in C, Java, etc.

The result is that inside of a for definition (that is the bit in brackets after the word 'for') semis and commas almost reverse their meanings. I just find that so retarded. So, in JS I never use semis EXCEPT where they are required.

Note, that by doing this when you do come across a semi in my code, you DO notice it. Again, improves code clarity.

Cheers <USER2>
</comment><comment><USER3> _"They_ [semicolons] _are transvestite hermaphrodites representing absolutely nothing. All they do is show you've been to college."_ \--- Kurt Vonnegut.

<comment><USER4> I don't get it, can someone explain what this is supposed to mean?

<comment><USER5> Vonnegut was speaking with regards to the English language. He was arguing that semi-colon in written sentences serve no function beyond pretension.

</comment></comment></comment><comment><USER6> I love it when it's optional like in Ruby. If I accidentally put it in, it's cool.

<comment><USER7> I know what you mean - same in JS. It was a little unnerving for me to write code in JS without semi colons after every line.

It gets to the point where sometimes I'll chat on facebook and after finishing a thought I'll type ';' at the end of a sentence. Weird, I know.

</comment></comment><comment><USER8> The semicolon signifies C syntax, and C syntax signifies arcane, low-level danger. Designing a syntax without semicolons is a way to show that a language is not trying to play in the same space as C.

<comment><USER9> The semicolon is used by Perl, PHP, JavaScript, Java, and C#.

None of those are what I would consider 'low-level' languages.

You can write arcane code in any language.

</comment></comment><comment><USER10> I actually love the semicolon when coding whichever language/script allows me to do.I do not mind it at all.

</comment><comment><USER11> The strongest argument against the semi-colon is readability.

#confession Out of habit, I still use it in most of my code.</comment>


First picture of Coelacanth thought extinct 65M years ago - <AUTHOR> https://www.instagram.com/p/ByX8A3nAyaD/ <comment><USER2> I've seen pictures before. I don't think this is the first picture.

[https://www.nationalgeographic.com/animals/fish/group/coelac...](https://www.nationalgeographic.com/animals/fish/group/coelacanths/)

Still amazing nonetheless.

<comment><AUTHOR> Cool, I wonder if the pics are from the same dive.

The article you link and the IG post are both NatGeo, and the IG post claims it's the first photo (though the claim does read weird, "first photo by a diver").</comment></comment>


Ask HN: Why don't we have federal email accounts? - <AUTHOR> So much of our economy operates over email, and in many ways, email has superseded postal mail.  Many people don't realize that residential mailboxes are federal property[0].  With this in mind, should the government provide every citizen, for a fee, with a virtual mailbox, in the form of a federal email account, in the same way it handles real mailboxes?<p>0. https://www.mailboss.com/mailboxes-federal-property/ <comment><USER2> The pragmatic answer is that, the USPS tried it 2-3 times in its history, but was continually hobbled by private industry lobbyists, until in 2006 when it was finally banned from ever trying anything again: [https://www.bloomberg.com/features/2016-usps- email/](https://www.bloomberg.com/features/2016-usps-email/)

</comment><comment><USER3> I could see the IRS having a secure messaging system specific to the IRS. Each state should probably also have a secure messaging system. I don't check snail mail. Such a system should only be used for government official communications however and must use MFA and have a way for citizens to regain control of their accounts easily and quickly. I would never use such a system for unofficial government communications however.

I've interacted with many government offices and very few of them set up their DNS, SSL certificates and servers properly. It seems like just the other day I had to explain to the DMV that RFC1918 addresses must not be in their MX records. They argued with me. And you don't even want to know which agencies can't install their SSL certificates correctly. Not saying names, they do not handle embarrassment very well.

</comment><comment><USER4> For the same reason you don't have a federal physical address.

You establish your own domicile, and you receive your mail at no charge to you.

You establish your own email address, and you receive email at no charge to you

<comment><AUTHOR> The analogy doesn't hold. The federal government is responsible for the delivery of physical mail messages, up to the termination point. In email, there is no such protection through the federal government. Do you understand why such protection is critical?

</comment></comment><comment><USER5> Oh god no! I would not trust the government to not read every email for "security" reasons. I barely trust Google / Microsoft / etc to not read my email.

<comment><USER6> They kind of do that now using their fiber taps, don't they? Most people are happy enough letting entities like Google have access to their email. If it was _just_ the federal government things might actually be better.

In general if you don't encrypt your email you should expect _someone_ to read it.

</comment></comment><comment><USER7> Oh god no! Who the hell would want to deal with a DMV like organization with your email.

There are so many free email services why would this even be needed.

</comment><comment><USER8> Worst. Idea. Ever.</comment>


Reddit Sells First Product - <AUTHOR> http://www.betabrand.com/mens/socks/reddit-sock-three-pack.html

<comment><USER2> Reddit was selling T-Shirts years ago.

[http://blog.reddit.com/2006/04/more-shirts-new-shirts-and- ev...](http://blog.reddit.com/2006/04/more-shirts-new-shirts-and-even- new.html)

</comment><comment><USER3> Don't forget the hats!</comment>


Ask HN: How to build a Google Sheets/Excel? - <AUTHOR> I'm looking for resources/info related to the fundamentals of building a type of spreadsheet-ing software (e.g., Excel, Google Docs). Can anyone link me to any resources? Not trying to build actual tool like that, just something a bit similar. I'm having trouble finding any resources related to getting started. <comment><USER2> Hi Ralston! I'm building a spreadsheet program myself at the moment (demo and product link at [https://6gu.nz](https://6gu.nz)).

There are two major parts to a spreadsheet app, in my view:

1\. A UI to change sheet layout and formulas, and to view computed values.

2\. A "programming language"-like engine to derive computed values from the formulas and sheet layout.

In (2) you also have to do a bit of topological sorting to make sure you compute things in the right order, but it's not terribly tricky.

A spreadsheet is kinda like a REPL, where the "R" and "P" are the spreadsheet UI and the "E" is the programming language part.

In Excel and Google Sheets (but not in my program) there are some fun data structures you might use to make formulas like `SUM(A:A)` (i.e., sum the whole column) run in a reasonable amount of time. Essentially, data structures that take advantage of the sparsity of the grid. I don't know off-hand the best way to go about something like that, but if you didn't want to invent anything yourself I guess you could just throw everything into an off-the-shelf spatial acceleration structure (an r-tree or a quadtree or something.)

There's quite a big surface area to the problem, if there's something more specific you want to know, please ask! I can't promise to respond quickly, but I should get back sooner or later.

<comment><AUTHOR> The UI looks incredibly good. Is this just implemented in pure JS?

<comment><USER2> Well, thanks. I built it with react and redux starting with the "create react app" package. There are probably frameworks that will help a bit more, but I'm not too familiar with the front-end world so I went with what they used at my last job.</comment></comment></comment>


Ask HN: How did you launch your product? - <AUTHOR> I have been a member on HN for a while and I really enjoy the can-do spirit here and the energy to create something of value. I have been trying to build products on nights/weekends for the past 3 years. Being a software guy technology has always been the easy part for me. For the projects that didn't get traction I kept thinking that the ideas were just not "good enough". Now that I look back, I feel that I got the launches wrong.
Here is my question to you:
Is there any suggested reading you can point me to that will help launch my next product more effectively? If some things have worked for you, can you share your experiences? If you have used a company to help run the launch campaign, can you share your story? <comment><USER2> I'm of the opinion that the "launch" is a highly overrated concept. Unless you have lots of existing traffic or a press embargo, your launch will consist of turning on the product, then watching as nothing happens. Later on, if you're lucky enough to get press somewhere, you'll get a spike of traffic that will be gone the next day.

As an experiment to this end we developed Omniref [1] entirely in public, just to see what would happen. We never hid the thing, even when it was horribly broken (we even had organic search traffic before we were ready!) It made no difference. What works is getting users, one at a time.

The bottom line is that product/market fit trumps everything. Better to just put the product out there and try to get one daily user as soon as possible than to worry about "launching". It's not as gratifying to the ego, but you learn more, and that's the whole game.

[1] [http://www.omniref.com](http://www.omniref.com)

<comment><USER3> This is spot on, and I've seen many a startup fold early on because they bet the farm on launch day.

Each time someone new stumbles upon your marketing site - you've "launched". And if they don't convert, figure out why and you'll get to launch again with the next visitor.

<comment><AUTHOR> I love this analogy. This makes me want to bring back to life the product that we killed after our 12 person private launch didn't get traction!

</comment></comment></comment><comment><USER4> I've launched many products, but most recently I've been doing web games. Our most recent game is Cloudstone - [http://armorgames.com/cloudstone- game/15364](http://armorgames.com/cloudstone-game/15364)

We launched it on Facebook, Kongregate, and Armor Games.

Only one in a million products can truly spread on their own (minecraft, reddit, google...). The rest are often really good products, that can make money, but require unique ways to get users. For us, this meant giving up a percentage of revenue in order to get promoted on various platforms.

One thing is certain - it is nearly impossible to launch an effective web game by itself on a stand-alone site. Our game makes money, but there's no way we can get any decent return on marketing investment if we tried to roll our own. The traffic we received from posting the game on reddit was totally insignificant compared to the traffic we received from partnering with websites that already have users.

I haven't launched any "applications" recently. But I don't think it's much different. Most engineers severely underestimate the importance of proper marketing and user acquisition. If your entire plan is to launch a product website, post it on reddit and hacker news, and see where it goes from there, it's not going to work. This doesn't necessarily mean your product is not viable!

I would recommend not just launching a website and hoping it gets traction. Consider porting whatever you're building to multiple platforms, and consider all of the app stores that you can put your product on. They will promote your product for a percentage of the revenue. And don't feel bad about giving up that percentage - they're providing a valuable service. They're doing the marketing _for you_.

<comment><AUTHOR> Thanks for the candid reply! What I am working now at the moment is using LinkedIn as the authentication mechanism and adds a lot of value to LinkedIn users.

I am thinking that getting the word on LinkedIn via posts and "likes" from my own extended network may be the way to go with this app.

<comment><USER5> might want to check this out. [http://blog.kissmetrics.com/how-mint- grew/](http://blog.kissmetrics.com/how-mint-grew/)

</comment></comment></comment><comment><USER6> I'm in the situation you describe right now. I blogged about it a couple months ago: [http://neat.io/blog/diary-of-a-programmer-with-no-clue- about...](http://neat.io/blog/diary-of-a-programmer-with-no-clue-about- marketing.html). The resulting HN discussion has a lot of good tips: [https://news.ycombinator.com/item?id=6686290](https://news.ycombinator.com/item?id=6686290)

My launch didn't go 'well' to the standards that I constantly see on HN. I got < 10 users and a lot of those were existing beta testers.

Now I'm 2 months in and I have been getting a fairly consistent number of new users each day, however its dropped in the past couple of weeks (I'm blaming the holiday season).

Here's what I've learnt so far:

\- SEO is very important for discovery

\- Keep your product evolving to fit the needs of your current users

\- Keep current users happy

\- Be ultra responsive to support enquiries - this is key to keeping happy users

\- Adjust your pricing model based on feedback

\- Get your site linked to on other sites even if seemingly unrelated - I get a bit of traffic from a design site that has my site in a list of 'beautiful, flat landing pages'

It would have been nice to get a whole slew of users on day 1 but realistically this doesn't happen unless you have an existing captive audience. It does dampen the expected meritocracy that comes with developing your own product.

<comment><AUTHOR> One of the most constructive replies. If you don't mind me asking, how did you get into SEO? Did you get professional help or try to tackle it yourself?

PS: Kudos on the product, you just got yourself a future customer with the Atlassian integration :)

<comment><USER6> I initially launched the site promoting my app as just 1 page. In hindsight knowing what I know now that was ludicrous. (You need more pages, more content and more targeted content.) I went into it here: [http://neat.io/blog/the-bee- website-redesign.html](http://neat.io/blog/the-bee-website-redesign.html)

I still don't really understand SEO and my site is still not ranking for the keywords I want but I'm trying to learn.

I did get one-off semi-professional help from experts that emailed me as a result of my blog post blowing up on HN but end of the day, you're going to have to dig deep and learn about it yourself. This is frustrating because looking for quality content about SEO is ridiculous. Everything out there is so dubious and I don't know what is credible and what isn't.

Today for instance I just got a tip about content placement and how it can be effective for SEO. I Googled around and found this list: [http://www.mywebschool.com/blog/seo/seo-tips-for-keyword- pla...](http://www.mywebschool.com/blog/seo/seo-tips-for-keyword-placement/) so I'm going to try and apply it later tonight. No idea if it will work or if its a waste of time or if the tips in there are good...

\--

Oh and another thing I forgot to mention is that a lot of people asked me to make a video showcasing the app because they wanted to watch something rather than scroll through a list of features. This was a good idea, no idea if its helped with people downloading the trial but I get good feedback on the video and at least it educates people about what my app does. Video blog post here: [http://neat.io/blog/creating-the-bee- video.html](http://neat.io/blog/creating-the-bee-video.html)

</comment></comment></comment><comment><USER7> This is what most likely will happen. Expect a complete dud. After you experience the 'dud' you with either feel the entire thing was a stupid idea and leave, or you will think 'wait .... that can't be right' and scramble to get users to compensate for the wash of insecurity you felt with your impotent "launch". Good luck!

Edit: This wasn't meant to sound mean or directed to you personally. I meant this as a general comment towards the idea of a 'launch'.

</comment><comment><USER8> I didn't launch, unless you count making it available on the internet a launch.

As several others have mentioned here, I was not focused on "launching the product". I was persistent about creating a solid and valuable product, and making it available for the entire world. I researched everything I could about building websites, particularly performance and SEO. The project was a learning project for me - it was technically "launched" since the moment I bought the domain. I continually iterated after learning new things about the web, and after coming up with new ideas. The growth came from a steadily increasing SEO presence and Social Network presence. I never once saw a code or feature iteration cause an immediate flood of attention, even when I gave them a little nudge on social networks. I will admit though, that I never attempted an all out launch of anything.

The project is mainly a fun site, but it has become one of the best tools for creating animated GIFs and memes on the internet. There have been a few big spikes from various press events, or Reddit frontpagers, but the true value has come from continually making the product better and slowly gaining the trust of the internet.

I'm certainly much newer to this than many people here, but my first big project now makes enough profit to support me fulltime, if I were to choose that (I work at another company as well). The site is imgflip.com if you're wondering.

</comment><comment><USER9> Launching is very overrated. I mainly emailed friends, family, and shared [https://www.uncover.com](https://www.uncover.com) via social media. Luckily, it got picked up by Hacker News and some other outlets. We got some great traffic in the beginning, but a "good launch" alone isn't going to make or break you. It's about the longterm value you can offer your customers.

<comment><AUTHOR> Thanks Spencer. It is encouraging to see success stories, especially considering you are around the block from the day job.

<comment><USER9> You're welcome. Happy to answer any q's!

</comment></comment></comment><comment><USER10> Did you get any users during your launches? If so, I'd consider them a success. The idea that you get flooded with users after a single launch event is a myth. I see the process like this:

1) Some kind of press release (TC, Show HN, blog post, etc)

2) Get at least one user

3) Iterate features and establish that the users actually need the product (would they be upset if you quit?)

4) repeat 1-3

<comment><AUTHOR> Yes I did get about 10-12 users on the day of the launch. I suppose I am a bit biased reading the wildly successful launches that get thousands of users on the first day. One can only hope, right? Thanks for your response.

<comment><USER11> I think this only really happens if you have a large existing audience that you funnel into the product, or you're selling it on a platform that delivers either launch traffic, or "Trending" traffic (eg. Google Play, iOS App Store).

What's your process for launching your products?

<comment><AUTHOR> My current project is around providing value to LinkedIn users via an app. I believe LinkedIn itself and the app store are two obvious platforms that make sense for me to focus on.

</comment></comment></comment></comment><comment><USER12> Restaurants learned this ages ago: start with a soft launch, and learn your weaknesses. Iterate. Then "launch."

</comment><comment><USER13> Launch is only part of the equation. You add/remove features and find where your new users are and find a way to get in front of them. Its a process not a one off launch event. I used to think too much on the launch but my experience says its about the consistent marketing effort.

I launched my subscription tshirt service ([https://www.startupthreads.com/monthly](https://www.startupthreads.com/monthly)) on Hacker news and got a little press but it grew after finding companies each month and finding ways to reach new customers. After iterating a bunch you find out what works, as you'll never have the perfect launch strategy to start.

<comment><AUTHOR> My theory so far is that the initial spike during launch is what gives the product the momentum. That is why I asked my question specifically around the launch.

Here is what I have tried so far after the launch with one of my products that has been sold for the code-base.

\- Pre-launch page to collect emails (collected about 400, when emailed only about a dozen people signed up)

\- Tried Google adwords with only 0.0005% conversion rate (which ended up being prohibitively expensive for my budget).

\- Posted on HN :)

\- Emailed about a dozen sites that could potentially have an article about my product.

\- Contracted a 3rd party company to make cold calls.

\- Sent out printed flyers to potential customers.

\- Personally visited some potential customers and pitched the idea.

\- PR web sites where I published a couple of press releases.

Above activities resulted in about a dozen free tier users. Are there any other avenues that you used to bring more traffic to your product after the launch?

</comment></comment><comment><USER14> Hustle. Schlep. Market. Tell people. Get them to sign on the line which is dotted.

There are a lot of things to launching/marketing a product, but it always comes down to hustling and marketing hard consistently over a long period of time. Think 3+ years to be an "overnight success"

</comment><comment><USER15> I loathe launching and talking about my products so Facebook Ads and AdWords are good shortcuts. It will cost you but if the product is any good the word will spread as soon as you have a few customers/users.

</comment><comment><USER16> You need to sell the idea first, then implement. Get some traction without writing any code, write related blog posts about the vertical market, about the topics that your potential customers will be interested in, and keep engaging with them. Talk with them.

<comment><AUTHOR> That is a good idea. Since the product name is not yet 100% set in stone, do you think it makes sense to start a new blog just for this purpose or use the personal blog?

<comment><USER16> I may pick a name that is simple and start from there. We thought about it for a long time, discuss it a lot, etc.. then one day we decided that we are going to find the name, and searched for it relentlessly for the next hour and we find quite okay name for our startup at the time. Just pick a simple name. And buy the domain, create your blog at there.

<yourawesomestartupname>.com/blog

Place all the social buttons, create twitter account, put an RSS feed, create an email list in mailchimp ( create a popup for email subscribers ) etc..

<comment><AUTHOR> Thanks for the detailed reply! I will certainly implement this.

</comment></comment></comment></comment><comment><USER17> Focus on longevity. Work a job. Save and invest. Keep costs low. Find and contact prospects personally. Provide support. Gauge feedback. Improve. Survive. If you need help, I run a platform at webmenu.org that may help you help people. Best regards.

</comment><comment><USER18> I posted a similar thing awhile ago, hopefully this helps.

[https://news.ycombinator.com/item?id=6488822](https://news.ycombinator.com/item?id=6488822)

</comment><comment><USER19> Make growth hacking a main priority. If you can get every user to invite one other user, you'll have a huge site in no time.

<comment><USER20> > If you can get every user to invite one other user, you'll have a huge site > in no time.

The ironic thing about this is that you have to have product/market fit for people to recommend the product to other people. Consider every case (there aren't many) where this strategy was successful.

This does seem to work sometimes in the case of e.g. Kickstarter, but less than half of kickstarter projects reach their funding goals so it's not a great example.

</comment></comment><comment><USER20> Perhaps its your self consciousness at play here, but you haven't told us what any of your products were...

<comment><AUTHOR> I did not want to create a very wordy post with all details.

I have launched 3 products (an appointment scheduling SaaS, a Twitter based sweepstakes management service, a private beta of a social product review/recommendation site) and about a dozen apps. Only the appointment scheduling venture was sold to a third party for the code base which had about a dozen free-tier users at the time of the sale.

The social product recommendation venture did not go further because the co- founder did not want to continue going forward. I still believe it's a great idea but I put it on the back-burner for a while until I can find another co- founder.

At the moment I am working solo on an app first service (subscription based) and would like to have a more successful launch this time around.

PS: If anyone is interested about the social product review and recommendation site let me know.

<comment><USER21> Hi - I would be thrilled to hear more about the social product review & recommendation app! Looking forward to hear from you!

<comment><AUTHOR> Please email me (in profile) I could not find your contact info.</comment></comment></comment></comment>


On Rust Hate-Writing - Ruud-v-A https://graydon2.dreamwidth.org/209581.html <comment><AUTHOR> I am impressed with Rust in many ways.

I briefly considered Rust when shopping for the right language for Snabb Switch [1]. I decided against it in part because the community did a good job of setting my expectations. "They" told me that Rust will especially appeal to hardcore C++ hackers, which is a very different profile to our target group of casual programmers. So I was able to move on quickly from a choice that really would not have suited me, with no ill will along the way.

If for whatever reason I had been pressured to move ahead with Rust then I would have spent a lot of time swearing about the size and compilation time of LLVM, etc, before finally moving on to a tool that is better suited to the peculiar job at hand.

So from my perspective that is great work by the Rust community - defining and communicating who the target user is - and now I would certainly consider Rust for other projects in the future.

[1] [http://lukego.github.io/blog/2012/09/25/lukes-highly- opinion...](http://lukego.github.io/blog/2012/09/25/lukes-highly-opinionated- programming-language-roundup-2012/)

</comment><comment><USER2> Holy hell that title. When did critique become "hate-writing?" I do mostly agree with the article, though.

> If the person is spewing anger, try to minimize the harm done by that anger > by either asking them to stop or removing yourself and others from observing > or participating in it.

The fact that this is thought of the original piece and that people need to be told not to get passionate about a _tool_ is deeply worrying.

> Imagine Rust was a kid you were sending to preschool.

No it's not. It's a tool. The problem here is that people are attaching emotions to tools and code, as though they were their spouse or children. Emotions are an irrational/illogical process, programming is rational/logical - don't mix the two.

Rust is doing just fine, some criticism levied against it is healthy. The tone of the criticism is completely irrelevant. Ignoring that _hurtful_ criticism is merely going to do the _beloved_ tool harm in the long run - no matter how much "<3" was put into it.

<comment><USER3> So, the first thing to recognize is that everybody has feelings. This seems like kind of an obvious and maybe a bit of a condescending thing to say, but the fact of the matter is that when you pour your life into something over 4 years, you're not going to come out of it with a "rational/logical" process—no matter what your ideal of programming is.

Is ignoring criticism a good thing? No, obviously not. But there's a wide gulf between constructive criticism and posts like the one being obliquely referenced here[0]. When an author makes only the most cursory effort to examine a language, and then pronounces it inferior to what they prefer with only very vague (and in many cases flat out incorrect) arguments, I think its safe to assume that they're not doing it out of the kindness of their heart.

[0]: [http://www.viva64.com/en/b/0324/](http://www.viva64.com/en/b/0324/) in case you missed the comment downthread

<comment><USER2> "You are not your code"[1]

When I look at code I wrote in the past I frequently think "what utter horse shit." I'm a better coder than I was 4 years a go and I will be a better coder in 4 years time. The extension of that means that, yes, the code I write today will be terrible by the standards of my future self. So yes, I am right now writing terrible code and it's _fine._ If someone takes the time to critique my code maybe it will be less terrible and in 4 years time I will be proud of it.

This doesn't mean you can't take pride in what you do.

> I think its safe to assume that they're not doing it out of the kindness of > their heart.

Valuable criticism is not determined if it was done by the kindness of someone's heart. Your most valuable critique can often come from your worst enemy. You might have to read between the lines/vitriol but there is gold in there somewhere.

[1]: [http://sstephenson.us/posts/you-are-not-your- code](http://sstephenson.us/posts/you-are-not-your-code) \- [http://www.hanselman.com/blog/YouAreNotYourCode.aspx](http://www.hanselman.com/blog/YouAreNotYourCode.aspx) \- [http://blog.codinghorror.com/egoless-programming-you-are- not...](http://blog.codinghorror.com/egoless-programming-you-are-not-your- job/)

</comment></comment></comment><comment><USER4> > Technical and human pluralism enriches the world. Monocultures do not.

Unlike human culture, tech cultures can't communicate to enrich one-another. (The people _in them_ can, but this is a different thing.)

To explain what I mean: you can't import a Ruby library into a Python program. You _can_ import a C library in a Rust program, or vice-versa—but that's a special case. Even then, you can't _write a patch for_ a C library in Rust, or vice-versa, because the original maintainers of the library you want to contribute to are only going to accept contributions in languages they understand and can maintain directly.

I really believe that fixing this—decoupling "runtime/platform" from "language semantics", and "language semantics" from "syntax"—is the single most important thing that will happen in software engineering in the next 20 years.

Imagine a program somewhat like go-fmt(1), that would run on checkout of a source repo, to transform a base-level AST into the syntactic representation of your choice, and pattern-match-decompile any low-level statements with high-level "shape" into the macro-statements in your chosen language that would generate them[1]. Imagine every library being not only available in every language, but able to be contributed to by programmers who know any language. Etc.

The result would be, in one sense, a "monoculture"—a single ecosystem of libraries, rather than 12 ecosystems between the CRT, the JVM, the CLR, the Erlang VM, etc. But it wouldn't disallow competition between versions of said libraries—just allow obvious winners to win once-and-for-all, instead of limiting their success to their technological "country of citizenship."

\---

[1] Or, better yet, a FUSE server where an underlying directory of AST files gets mounted as syntaxified files. Much cleaner from the rest of the toolchain's perspective.

<comment><USER5> Unfortunately, that's not how languages work. There may be language equivalence classes (that would put, say, Ruby, Python and JS in the same class, C, C++ and Rust in another, and Java, C# and Go in a third), but languages from different classes can't just be translated from one to the other. First, a program written in one language isn't just a description of an algorithm, but a description of the algorithm plus language-specific information that's supposed to help the particular platform execute the algorithm efficiently. Second, there are essential runtime differences that can't be easily ported, such as a threading model and a memory model -- and those may significantly affect the suitability of an algorithm for a certain language. Finally, there are fundamental differences in the appropriateness of certain algorithms; specifically, imperative algorithms can't be automatically translated to pure-functional algorithms without possibly changing their time and space asymptotic complexity.

In short, there's a lot more to a computer program than a description of an algorithm, and even algorithms vary considerably in their suitability depending on the language/runtime executing them. Even if you could solve the first problem, you're still left with the second.

I do agree with the premise, though: unless your new language/runtime is so revolutionary that it reduces development cost _dramatically_ , fracturing the ecosystem is often too high a price to pay for merely a "nice" improvement. The problem is that many languages claim dramatic cost reductions, but it usually takes years to learn whether or not they deliver. The reason for that is not just the number of data points, but the fact that the cost of software is spread across a codebase's lifetime (10 years is about the average lifespan of a production system codebase), and how development looks -- and what activities contribute to costs -- in the first and second year is very different from how it looks in the sixth.

<comment><USER4> > but a description of the algorithm plus language-specific information that's > supposed to help the particular platform execute the algorithm efficiently

Tracing JITs should be able to spit out, as they run, the tables of Bayesian confidences they've built up for various static properties of the code, which can sit along with things like source maps, and be confirmed/rejected by the programmer in their IDE, or just live-reloaded into a new VM ala a Smalltalk image. (Future-tech, remember.) You can see the potential for this in things like Erlang's typer+dialyzer system.

Likewise, static analysis tools should be able to work on foreign code after transpilation. There's nothing stopping you from transforming C code into Rust code in order to get the Rust compiler's opinion on its ownership semantics.

Note that I'm not saying that there's one universal underlying language semantics. Just that language semantics (which consist of such things as a type system, a threading/memory model, etc.) have no reason to be tied to either a particular syntax, or a particular VM. (Effectively, a language semantics forms an _abstract machine_ that executes more or less efficiently on the substrate of any given VM. MRI Ruby is a direct substrate for Ruby semantics; IronRuby is less-clear substrate; etc.)

> those may significantly affect the suitability of an algorithm for a certain > language

This is a problem of transparent distribution. I've been working on an Elixir DSL for writing Haskell "inside" Elixir for efficiency. The result is not a Haskell compiled module getting linked into the Erlang VM, but rather a separate Erlang-VM-managed Haskell "application server" being run as a port program. I foresee much more of this, and much more cleverness about it: writing code that compiles to a bunch of separate modules _for separate VMs_ , which then form a micro-distributed-system all within a Docker container or somesuch.

Again, it's not about eliminating the plurality of runtimes—it's about rendering that plurality _moot_ , abstracting it away from the perspective of the programmer and leaving it up to the implementation to decide how to optimize abstract-machine-to-VM allocation.

There's no reason that you can't have every language semantics available to any library, to use in any combination (this parameterized type system with that green-threading and this other GC, etc.) It's just that, in so doing, you're either transparently importing into your single runtime some virtualization layers for all the other abstract machines you've coded in terms of (somewhat like writing a Windows app on Linux by linking it to Wine), or you've let the Sufficiently Smart Code-generator go beyond the premise of having a single target platform.

<comment><USER5> > Future-tech, remember.

Not so much future tech. The most sophisticated JIT in production use nowadays is HotSpot's optimizing JIT, and next year it's getting this: [http://openjdk.java.net/jeps/165](http://openjdk.java.net/jeps/165) (basically, metadata that the programmer can use to help the JIT with some decisions). HotSpot's next-gen JIT, Graal, takes five more steps forward and allow a full programmer-controlled JITting, that can suggest and improve various speculations on the semantic AST: [https://wiki.openjdk.java.net/display/Graal/Publications+and...](https://wiki.openjdk.java.net/display/Graal/Publications+and+Presentations)

I have full confidence in the general utility of JITs for server-side applications, but JITs themselves are a tradeoff (require warmup or caching, more RAM and more energy).

> There's nothing stopping you from transforming C code into Rust code

Not really, because Rust requires manual type annotations. Either they are added manually -- in which case you may as well translate manually -- or automatically, in which case the tranlator would need to infer the very same properties you want to verify.

> Just that language semantics (which consist of such things as a type system, > a threading/memory model, etc.) have no reason to be tied to either a > particular syntax, or a particular VM.

But they do because it's not just syntax -- the language and runtime are really a part of the algorithm (in fact, most algorithms presuppose a certain execution context like random, constant-time access to memory). The threading/memory model is what determines whether certain algorithms can be implemented at all; functional purity can completely change the complexity (by more than a constant) etc.

> I foresee much more of this, and much more cleverness about it: writing code > that compiles to a bunch of separate modules for separate VMs, which then > form a micro-distributed-system all within a Docker container or somesuch.

The problem with that is that once you go distributed (even on the same machine) there are _tremendous_ performance costs involved. Not only marshalling/demarshalling of data, but fanning-in and then fanning out your concurrency on each end. There's no way you can use, say, a Java parallel stream, whose parallel operation is performed over the wire. There are only very specific places where you can place that boundary.

I do, however, think that a platform such as OpenJDK, with such powerful GCs and JITs, can -- and indeed does -- contribute significantly to the ability to interoperate among various languages -- but certainly not all of them.

<comment><USER4> > But they do because it's not just syntax -- the language and runtime are > really a part of the algorithm.

I don't think you understood my statement above—what you're attributing to the runtime (memory-model et al) is part of the abstract machine specified by the language's semantics, but that's _orthogonal_ to the runtime.

A runtime can be a better or worse _fit_ for a given language's semantics, but any VM can virtualize any abstract machine with enough glue. VMs are Turing machines, after all. (In practice, the overhead can be surprisingly low; you don't have to emulate what you can trace or dynamically recompile. The work around ASM.js is rich in data about how to squeeze performance out of the not- particularly-direct mapping of the C abstract-machine to the JS VM.)

The abstract machine formed by the language semantics can, of course, demand live support machinery of the underlying runtime (like a GC, say) that may have to be "polyfilled." This is what we've been doing forever—a PIT signalling a processor interrupt which is checked for between each cycle is just a polyfill for having concurrent processes on other processors sitting in blocking-sleep for a bounded time, for example. Any hardware emulator is full of these. Usually you can find ways to make them less necessary—IronRuby doesn't contain its own GC with Ruby semantics, it just translates Ruby's GCing requirements into calls to the CLR allocator+GC and the result works "well enough."

> Not only marshalling/demarshalling of data, but fanning-in and then fanning > out your concurrency on each end.

Why are you assuming message-passing distribution? Shared-memory cross-runtime distribution works too. That's how ZeroMQ works, for example.

<comment><USER5> > what you're attributing to the runtime (memory-model et al) is part of the > abstract machine specified by the language's semantics

OK, I see where you're going with this. But now you'll need a "bottom representation", which, even if it is easier to transform than machine instructions, will be pretty hard to decompile to another language. For example, most interesting lock-free algorithms require some sort of garbage collection; how do you describe that GC behavior, which doesn't necessarily need to be general purpose, in a way that can be ported to both C and Go?) Theoretically it may be doable, but in practice the problem is very, very hard.

The big question, then, is why bother? The JVM already provides excellent interoperation with excellent performance that can cover the vast majority of (at least) server-side applications out there, and Graal/Truffle are extending the range of languages that the JVM can provide the fastest implementation for (it's early days and it's already pretty much on par with V8 when running JS, and faster than PyPy for Python). Those applications not within this profile range will use other languages (like C++), but those languages are already more expensive to develop in, and their developers happily pay more for more specialized algorithm implementations.

> Shared-memory cross-runtime distribution works too.

That's true (provided both sides can agree on an ownership and concurrency behavior).

</comment></comment></comment></comment></comment></comment><comment><USER6> For those lacking context, these remarks from Graydon are likely a response to the following post which has been trending today, though it didn't get much traction on HN: [http://www.viva64.com/en/b/0324/](http://www.viva64.com/en/b/0324/) (with some comments at [https://www.reddit.com/r/rust/comments/35pn5a/criticizing_th...](https://www.reddit.com/r/rust/comments/35pn5a/criticizing_the_rust_language_and_why_cc_will/)).

<comment><USER7> Heh. "People are idiots" ... "C++ doesn't restrict programmers".

Seriously though, the article was just negative with not a whole lot of real points. It's also amusing to see C++'s more and more convoluted codegen (see the VS2015+ObjV video) to make up for fundamental mistakes users keep making no matter what.

I can see how this might be discouraging, but I'd take it as a good thing if a poor rant is all they got.

</comment></comment><comment><USER8> "There are 2 types of programming languages, those everyone complains about and those nobody uses..."

I look forward to Rust's version of "Go sucks because Generics"

</comment><comment><USER9> This happens whenever a Go post crops up on HN too, the amount of vitriol some people have over a language they evidently don't want/need to use is shocking.

</comment><comment><USER10> I don't cope well with light text on dark background because it hurts my eyes. And I haven't personally encountered Rust hate-writing yet, as the author describes it.

Apart from that, I recommend this text to everyone. If you find yourself in a situation that feels conflict-shaped, read this text before you crawl up the walls. It's good advice.

</comment><comment><USER11> Awesome post! A minor typo in the first paragraph: change Each to Every.

</comment><comment><USER12> Wonderful as always.</comment>