The healthiest people in the world don't go to the gym - <AUTHOR> https://qz.com/quartzy/1452630/the-healthiest-people-in-the-world-dont-go-to-the-gym/ <comment><USER2> This is not just about personal choices though but also about how society is structured. E.g. when I lived in the US I found it hard to be healthy other than going to the gym because there was little opportunity for natural exercise as all of society is built around car usage and consumption of fast- food.

In contrast when I lived in the Netherlands I found it VERY easy to be healthy. Life is organized around biking there: it is safe, easy and convenient to do. I probably biked around 1 hour every day, just from doing errands, meeting friends, going to university etc.

If I wanted to grab some food, there was usually a lot more healthy options available. E.g. even in tiny stores in the Netherlands they have great vegetarian options.

A lot of this is not stuff as an individual you can decide on. It depends on zoning laws, building of bike lanes and a multitude of policies and traditions you cannon easily change without collective action.

<comment> rv-de I heard that in many places in the US walking somewhere - especially at night - is considered suspicious and one risks being approached by police.

<comment><USER3> It's suspicious because it's generally dangerous to walk around alone at night in large cities.

It also depends on the area, though. And I would also say just because you're approached by the police doesn't mean you're being suspicious. I've been pulled over by police before just because they wanted to let me know it was a dangerous area (I wasn't from the area).

Edit: I really hope that downvote came from a European or non-American. /s

As an American (and been here my entire life), what I posted above is very accurate to what I have observed.

Maybe in other parts of the country it's different but in the cities I'm most intimate with (Atlanta, Memphis, Jackson), this is definitely the case.

<comment><USER4> This is very accurate. I've been approached by police twice in Miami, letting me know that I am entering a dangerous nieghbourhood - which I thought it was the city center.

Another time they didn't let me drive further, when they saw that we were a bunch of clueless europeans.

<comment><USER5> So the no-go zones are actually in the US not in Europe ?

</comment></comment></comment></comment></comment><comment><USER6> Healthiest != longest-living != "best."

Going to the gym, running marathons, and other strenuous activities are generally done for the challenge, difficulty, or achievement of completing them. Personally, I'd take 60 years of a challenging, but meaningful life over 90 years of relaxation and low stress.

 _The secret of realizing the greatest fruitfulness and the greatest enjoyment of existence is: to live dangerously! Build your cities on the slopes of Vesuvius! Send your ships out into uncharted seas! Live in conflict with your equals and with yourselves! Be robbers and ravagers as soon as you cannot be rulers and owners, you men of knowledge! The time will soon pass when you could be content to live concealed in the woods like timid deer._

\- Nietzsche

<comment><USER7> > Personally, I'd take 60 years of a challenging, but meaningful life over 90 > years of relaxation and low stress.

This reads like satire.

<comment><USER6> Do you have a real criticism, or are you just being flippant with the middlebrow dismissal?

Not everyone is trying to live the most comfortable, stress-free existence. Many philosophers, religious leaders, and thinkers throughout history have posited (correctly, in my opinion) that a challenge-free life is not a particularly meaningful one.

<comment><USER7> There's plenty of meaning to be found in all sorts of endeavours, including going to the gym. I just think you sound defensive when you imply there's no meaning in a life full of relaxation and no stress.

I also find it a bit amusing that you bring up a Nietzsche quote in your edit. AFAIK Nietzsche didn't go to the gym or run any marathons. He did, however, go for a long walk every morning.

<comment><USER8> The long walks were not very effective: "Nietzsche resigned in 1879 [at the age of ~34] due to health problems that plagued him most of his life; he completed much of his core writing in the following decade. In 1889 at age 44, he suffered a collapse and afterward, a complete loss of his mental faculties."

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

<comment><USER9> Correlation != causation.

We know from actual studies (not a single anecdote) that long walks are very effective in improving health.

We also know that Nietzsche had prior health issues, the kind that long walks wont fix.

</comment></comment></comment></comment></comment></comment><comment> nils-m-holm Anecdatum: my dad never did any sports and never did any physical work that was harder than carrying a shopping bag to the first floor. He lived up to 90, was never seriously ill, and never experienced any back pain in his entire life. He did enjoy hiking, though, and ran many errands on foot or on his bicycle.

<comment><USER10> So plenty of low-grade cardio and, reading between the lines, maintaining a healthy weight? Sounds like a recipe for decent health.

<comment><USER11> Also, what's the p-value?

</comment></comment></comment><comment><USER12> The people who are actually old in these blue zones were around literally before gyms or recreational running became a thing. I'd like to compare that against someone who has been going to the gym their entire life in those blue zones and see if they live even longer.

</comment><comment><USER13> Pointing out people in blue zones are consistently active even if they don't run marathons or go to the gym is a very weak argument against marathons and exercise. Instead of the tortured analogy the author could have tried looking at data directly related to the topic:

[https://www.outsideonline.com/2358586/dont-worry-about- exerc...](https://www.outsideonline.com/2358586/dont-worry-about-exercising- too-much)

<comment><USER14> Was it _meant_ to be an argument against marathons and other deliberate and/or high intensity exercise? Saying that X achieves a particular goal better than Y doesn't mean that Y is bad.

</comment></comment><comment><USER15> "...the best work commute you can have is a 15-minute walk each way..."

Interesting ... and sadly laughable considering modern cities.

I wonder if my 15 minutes walk to the station each way counts!

<comment><USER16> > modern cities

Modern _US_ cities.

<comment><USER17> Eh, I live in a relatively large European city and only around 5% of people that I know are within a 15 minute walk from their work or university. I was actually closer when I lived in SF, which seemed denser, but that's an exception among US cities.

</comment></comment></comment><comment><USER18> Maintaining a healthy lifestyle is easier when moving is built into your daily activities. You might go to the gym and run marathons in your 20s and 30s but it's nearly impossible to keep up with that routine for 30-40 years.

The title of the article makes it sound like walking is better than gyming and is misleading, just like most Quartz articles these days. Sigh, I live in a world where Quartz is becoming Buzzfeed, and Buzzfeed is becoming Quartz.

</comment><comment><USER19> The healthiest people are those who don't go to hospital. Hospitals are full of people with health problems.

</comment><comment><USER20> Survivor-bias logical fallacy.

Focusing on the outliers doesn't really prove a thing.

<comment><USER9> They're not some outliers, they're whole societies of healthier people.

</comment></comment><comment><USER21> No talk about averages and medians... that's weird... Oh, I see, it's just hasty generalization. Ohhhhh it's on Medium, should have guessed

</comment><comment><USER22> So is walking frequently throughout the day better than lifting weights and HIIT (for a long healthy life)?

</comment><comment><USER23> No, the gym comes to them.

</comment><comment><USER24> walking to school and then walk to work only if you have the privilege to pay for a decent house or apartment, not an option for the people living far away from the downtown areas

</comment><comment><USER25> I prefer grappling it's a full workout and more stimulating than lifting iron or pounding the treadmill.

Any BJJ people here?

</comment><comment><USER26> healthy == longest lived ?

</comment><comment><USER27> 40% of my friends go to gym.

Out of them:

90% of my male friends go to gym to build aesthetic bodies, it helps them attract females.

Out of them:

97% of them take whey protein, fish oil, vitamin D, creatine, withania smonifera

70% of them take anabolic steroids.

30% still end up with escorts and hookers.

That said these are my Dutch friends in Amsterdam.

So i would say very few actually go to gym for longetivity.

Particular my male friends, smoke and do drugs, they all say they wanna live a short but exciting life where they get everything they want, let it be money or girls.

<comment> man-and-laptop Interesting. How many weight-lifters in general take steroids? I use creatine, the occasional whey shake. Progress is slow :(

<comment><USER27> I only take whey and creatine.

My 23andme report says that I've disproportionately high amount of fast twitch muscle fiber.

And I am gaining muscle faster than my friends, sometimes even faster than the ones who take steroids.

I am not cacassian. 20% North European, 30% South East Asian, 20% Siberian, 30% Arab.

You might find this useful: [https://www.t-nation.com/training/truth-about- bodybuilding-g...](https://www.t-nation.com/training/truth-about-bodybuilding- genetics)

<comment><USER28> "Gaining muscle faster" depends a lot on how much muscle you already have.</comment></comment></comment></comment>


Steve Job's monument dismantled in Russia after Tim Cook's announcement - <AUTHOR> https://translate.google.com/translate?hl=en&sl=ru&tl=en&u=http%3A%2F%2Flenta.ru%2Fnews%2F2014%2F11%2F03%2Fjops%2F

<comment><USER2> That's pretty funny, presumably Apple hasn't endorsed that lumbering piece of garbage, and the homophobes are inadvertently helping Apple protect their brand identity.</comment>


Popcoin – Let's get you paid - <AUTHOR> https://popcoin.ws/ <comment><AUTHOR> I'm so excited and proud to announce the launch of my latest side project Popcoin, a usage based billing service built to be the best way to get paid for just about anything It's built on top of the Stellar SDK and utilizes Stripe Connect. It was built as part of this year's 3rd Stellar Build Challenge.

== What does it do? == At it's core Popcoin is a usage based billing service. You identify users within your product and then create micro charges within that product to slowly (or quickly) use up individual user's credits. Things like, "view this page, charge 1 credit", "call this API endpoint, bill 0.17 credits", "download this song, spend 13 credits", "every month, burn 100 credits", "read this article, expense 7.65 credits". It's completely up to you how, when and why credits are burned for users as it's just API charge calls to the Popcoin network. As soon as a user attempts to take an action that would put them below a threshold you've set within Popcoin we'll send out a customizable refill email. Once that invoice is filled we'll reload the user's credit, slip out our fees and pass the rest on to you.

== What does it cost? == Popcoin has a fixed fee of 5% per invoice. This added on top of Stripe's already low fees of 2.9% + 30¢ per transaction will leave you with loads of cash for the piggy. As an example if a user were to clear a $10 invoice, Stripe would take 59¢ and Popcoin would take 50¢, leaving you with $8.91.

== How does it work? == Popcoin operates on three core services. Stellar, Stripe and the Popcoin API.

Stellar acts as the financial undergirding for Popcoin. Providing a tokenization engine much like Bitcoin or Ethereum. Within their network Popcoin creates and maintains a network of accounts which give and receive a token unique to Popcoin. Stellar acts as the financial ledger keeping track of who has what and how much.

Stripe acts as the currency platform allowing Popcoin to move from tokens, cryptocurrencies and computers to cold hard cash in your bank account. Their service Stripe Connect is a top notch tool allowing Popcoin to safely, securely and in a controlled, maintained environment move money from your users to you. All without you ever having to really do much of anything beyond creating an initial connection.

The Popcoin API is the last piece of the puzzle and while it might sound tricky or feel like black magic at times. It's actually just simple, smart and straightforward. You give us a user and then begin spending their credit balance.

</comment><comment><USER2> Seems like there should be a threshold so the end user doesn't lose service.

<comment><AUTHOR> It's up to the developer to decide what it means when an user's account has been overspent. The API will just return a 402. They don't have to disable service for that 402.

</comment></comment><comment><USER3> why convert to coins ? why not just use stellar directly ?

<comment><AUTHOR> It does use Stellar directly. The real question is why use Stripe at all, and the reason being because for now Stellar doesn't have enough connected Federation servers that can translate coins directly to native fiat currencies. Or in other words I can't get the Stellar currencies out of Stellar and into your bank accounts without Stripe. This is hopefully only temporary though. Once more banks become federation endpoints and are issuing native fiat currencies on the platform the need for Stripe will go away.

<comment><USER3> It was my understanding that Stripe would be used primarily for credit cards payments to convert to this coin.

<comment><AUTHOR> Sure, that happens, but not because of Stripe or through Stripe. Stripe just acts as a means of transferring a user's coin balance into a fiat currency that can move into a devs bank account from a users bank account. Stellar acts as the ledger for the coin or token system. Stripe facilitates a means to do something with that system that actually moves real money around.</comment></comment></comment></comment>


The Paradox of the Elephant Brain - <AUTHOR> http://nautil.us/issue/35/boundaries/the-paradox-of-the-elephant-brain <comment><USER2> Sigh. Certainly the human brain is the most optimized (so far!) for being a human and the elephant's the most optimized for being an elephant. Clearly you need more neurons than a few to get higher functions, but above some (probably tiny) threshold structure dominates. It's like deriving function and performance by counting the number of transistors on a chip.

We see Apple's A9 is currently the peak performer ($/W, $/FLOPS) for a mobile device with a big screen... but is still very very far away from Intel's general purpose chips. Does that mean one is "better"? No, they just picked different optimization points.

Far more interesting is why a chihuahua with a walnut-sized brain is just as smart as an irish wolfhound that has a brain that masses about as much as a whole chihuahua!

<comment><USER3> The human brain is better than the elephant brain. The fact that the elephant faces extinction at the hands of human brains and is only being saved from extinction by the work of other human brains is evidence at least at some level.

<comment><USER4> The elephant brain is better than the human brain. The fact that the elephant faces extinction at the hands of human brains and is only being saved from extinction by the work of other human brains is evidence at least at some level.

<comment><USER5> You could as easily say that snails' brains are better than human brains because some humans try to save snails. It doesn't mean anything about the snails or elephants, it just means the human brains don't all agree on this one topic.

</comment></comment></comment></comment><comment><USER6> It doesn't seem to talk about the plausible explanation that the _ratio_ (of brain mass to body) also matters. So elephants have a bigger one but also loses a lot of its processing power to a greater number of neural signals (which probably increase linearly with weight).

According to this page, humans have the highest ratio except for a few species that have very small brains in absolute size, which probably miss out on benefits to scale.

[https://en.wikipedia.org/wiki/Brain-to- body_mass_ratio#Compa...](https://en.wikipedia.org/wiki/Brain-to- body_mass_ratio#Comparisons_between_groups)

I would also suggest that they're very disadvantaged in not having developed the tools for more wide scale intergenerstional transmission of cultural knowledge.

</comment><comment><USER7> > With three times as many neurons, why doesn't the elephant brain outperform > ours?

Maybe it does. Maybe they're philosophers.

<comment><USER8> Hard to be a philosopher while having to invent philosophy in your head without hearing or speaking with anyone or reading anything. How good of a mathematician can someone become if they have to invent mathematics on a silent island with no books or even their parents teaching them to count? Without language, this is the situation an elephant-philosopher is in...

I heard an interesting argument for what a chance occurrence language is in humans: after all we talk by using the organs we chew with, fashioning our lips and tongues into phonemes.

If the freak "language gene" were given to elephants (spliced into DNA etc) so that they can develop phonemic values over generations using whatever speechlike abilities their mouths do have, it would be interesting to note whether they can develop philosophy then.

But man had modern brain and speech abilities for tens of thousands of years before our cultural situation and heritage became interesting. You likely wouldn't be impressed with the philosophical world view of members of an isolated hunter-gatherer tribe tens of thousands of years ago who had no writing. Interesting, surely, but as an curiosity. Would speaking elephants left to their own devices be the same? Or do humans have higher cognitive processes they cannot match, in addition to lacking our language skills? So that they would not be put at a prototypical human level, but insteqd forever stuck at the elephant level, their new language ability notwithstanding...

</comment></comment><comment><USER9> I'd be interested to see how crows and dolphins fit in this ordering.

<comment><USER10> Strictly speaking birds don't even have a cerebral cortex. That is, cortex evolved in mammals after the split with the last common ancestor of mammals and birds. So in that sense, birds would be at the very back of the ordering, along with reptiles, fish and the other vertebrates that lack a cortex. That said, birds do have a well developed pallium that seems to play a similar role as cortex does in mammals, even though it is structurally quite different. If you let pallium stand in for cortex, crows would probably do okay.

It seems likely that avian pallium performs similar computations as cortex, despite having a different implementation. The more interesting question, in my opinion, is not who has the most neurons of any particular type, but how those cells enact computations. Does the avian pallium have _representations_ that are similar to mammalian cortex. In other words, does it solve problems in similar ways/using similar algorithms as cortex or did its early divergence allow it to find different solutions?

<comment><USER11> To me it seems our ability to preserve and share knowledge is far more important for our intellectual pursuits than the individual brain is. E.g. it took hundreds of thousands of years for someone to think up the number 0, and then it spread like wildfire (after the authorities stopped resisting).

What I find curious is that parrots can vocalize at least as well as humans, they show some pretty solid reasoning ability, their tongue is practically an opposable thumb, and yet they don't seem to have developed complex spoken language or technology.

I wonder what's missing from bird brains that would help them with language. Actually, I just had a flash of memory about some part of the brain involved with putting ideas into linear sequences, as we do with words. Maybe that plays a part.

</comment></comment></comment><comment><USER12> The elephant has a bigger brain, but it also has a much larger body it has to monitor and control which takes brain power. The sperm whale has an even bigger brain, and an even larger body.

It all comes down to the relative brainsize / bodysize. This wikipedia article describes it: [https://en.wikipedia.org/wiki/Encephalization_quotient](https://en.wikipedia.org/wiki/Encephalization_quotient) And as you can see in that article, our quotient is far the highest of all animals. I find it weird that the authors of the article don't mention these things and do not seem to be aware of this.

</comment><comment><USER13> Another factor is that body mass is highly correlated to brain mass:

[https://www.cfa.harvard.edu/~ejchaisson/cosmic_evolution/doc...](https://www.cfa.harvard.edu/~ejchaisson/cosmic_evolution/docs/images/imgs_sml_ver3/7_13.gif)

<comment><USER14> Except when it isn't. Dinosaurs had much smaller brains than humans, not just relative to body mass but absolutely. A big body does not necessarily require a proportionally large brain.

<comment><USER13> It's usually found when looking within mammals and is only a first approximation at best, but it seems to be a useful one at least:

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

</comment></comment></comment><comment><USER15> Related podcast:

[http://rationallyspeakingpodcast.org/show/rs-157-dr- herculan...](http://rationallyspeakingpodcast.org/show/rs-157-dr-herculano- houzel-on-what-made-the-human-brain-spec.html)

</comment><comment><USER16> They seem to skip the obvious explanation of why we tend to be smarter than Elephants is that our brains have in some ways a better design. It's not all about how many kilos of neurones you have or cows would be discussing metaphysics. Evolution works by random DNA mutations and quite likely we just got lucky in hitting some good ones.

</comment><comment><USER17> How disappointing. The thing I most wanted out of this article was to learn what was so significant and powerful about the elephant cerebellum. Surely, that means elephants have superior abilities in the aspects relevant to the cerebellum. I want to hear about the amazing things elephants can do that this enables.

<comment><USER18> They have a long nose that they can use to grab things, and they can even spray water with that nose!

<comment><USER17> Their nose is amazing, of course. Is all the mass of their cerebellum connected to using their noses??

</comment></comment></comment><comment><USER19> Superiority is the wrong word. The author should say human like behavior is correlated with a higher number of neurons in the cerebral cortex.. Additionally, I remember dolphins had more neurons in overall in their cerebral cortex..

</comment><comment><USER20> So what do elephants use all those neurons for?

</comment><comment><USER21> I wonder how much information brain can store, especially in context of people with "photographic memory".</comment>


Managing Technical Debt (2012) - <AUTHOR> http://queue.acm.org/detail.cfm?id=2168798 <comment><USER2> Technical debt's main difference from financial debt is that it can't really be quantified, because it's hard to really identify. Most software has a lifetime, initiatives don't maintain economic value indefinitely.

At the end of that lifetime, the lights get shut off and the code mothballed, never to see the light of day again. At that point, the balance sheet hits zero and you never have to pay it back.

Software where this doesn't happen eventually has the kinks filed away. Old Fortran codebases and the like have fixed maintenance costs and are worked on by savvy greybeards who are excellent at providing their own job security. Nobody wants to rock that boat, and nobody does. The greybeards are the ones who pay off the debt because it's their livelihoods that get threatened by instability. Management just keeps happily writing checks, devoting their attention to squeakier wheels.

So it's a tradeoff. Initial greenfield development by one dev or a small team eventually gives way to the bread-and-butter of keeping projects responsive to economic needs. What we call technical debt is really just architectural problems made both from inexperience, and from not specifying the requirements of the project well enough.

Decisions made by the greenfield team add to the friction that the maintainers experience in steering the ship. The problems need to be identified and corrected in the course of the maintenance. Unfortunately most devs are not really capable of remaining productive while fixing architectural issues, so management perceives this as prioritizing the needs of the devs over the needs of the business and so tend to balk at putting resources into paying off debt.

<comment><USER3> The article uses an infrastructure example. That's a much more predictable type of technical debt.

Even then, orgs are terrible at managing risk and costs.

In my first job, I was a DBA managing a big reservation system somehow (the how is a funny story too). They had an issue where someone fubared the initial database config, leaving us with a time bomb. Critical tables were beyond the number of tablespace extents supported, and there was a 100% probability that the database would essentially freeze up to avoid data loss.

We came up with a plan that would eliminate the risk, but would require an extended maintenance window, which translates into a 4-hour SLA hit. Cost:$20k or less. The SVP said no, there's no budget for an SLA hit, wait for Christmas holiday downtime (6 months away).

Two weeks later, on the busiest business day of the year, database is frozen at 9AM. It took us 48 hours to restore as we needed to restore everything and fix some corruption. Each hour of downtime cost $7,000/hr in wasted labor in the business, and the SLA penalty was harsh.

It's an egregious example, but I've seen lots of similarly dumb decision making in my career.

<comment><USER2> > someone fubared the initial database config

Utter incompetence. Developers seem to have this almost-magical ability to blame management for their fuck-ups. Guess I can't blame them too much, there's practically no decent software engineering training anymore. All we get is irrelevant science-y shit.

> We came up with a plan that would eliminate the risk,

You don't call it a risk if there's a 100% chance. Managers are not going to understand scenarios you put in front of them, you have to guide the conversation. You say, "this is going to happen if we don't fix this right effing now." Then you threaten to quit if they don't take you seriously. But again, professional pride is something nobody teaches developers.

<comment><USER4> I would say that the threatening to quit because they don't take you seriously kind of re-inforces their view point why they don't you take you seriously in the first point.

<comment><USER2> If that's the case then they're only hiring you for grunt labor and you should quit anyway.

</comment></comment></comment></comment></comment><comment><USER5> I worked on team once where tech debt was "avoided" at all cost. It actually had a weird effect on the code base. We had a practice of writing a pull request 3 times before shipping it, kind of refactoring everything before we merged it.

We ended up with a really complicated codebase as a result. It was tricky to dive into the project because everything seemed so layered with complexity.

Now a days I try to take the most naïve approach to a bug or feature, that way if something breaks it's straightforward to fix. I only abstract when a process has slowed me down a few times.

This is all done with your normal tech debt fighting tools though, like linting, style guides, CI and unit tests.

<comment><USER6> This is part of the problem with quantifying "technical debt", that is, what some people think is "good code" is overengineering.

</comment></comment><comment><USER7> The problem with the "debt" terminology is that debt is actually fairly predictable and easy to manage. But bad code tends to have very volatile effects–often the cost of working with it is 0, and sometimes it's enormous. "Unexploded Land Mines" might be a better analogy.

<comment><USER8> Debt is predictable, but perhaps not the ability to pay. My company may know how much it has to pay each month for the next 20 years, but it won't know the financial conditions then.

I find the hard quantification part is explaining it to non-technical executives. Saying "You can't have feature X because of long term investment Y" is very hard. The one thing I've seen work is telling engineering "You can use 25% of your time and resources to pay this back"

<comment><USER9> The key thing about technical debt is quantifying its interest rate. If you tell an executive "I have a method for the business to take out a huge loan, expedite time to market, and has no observable interest rate", of course they'd take it.

Declaring technical debt bankruptcy and requesting a do-over is rarely persuasive, particularly for a profitable service or product. If proponents of technical debt want to win these corner office debates, they need to start developing quantitative models for predicting the size of the debt, and the interest rates. And it may well be impossible, because it's not clear cut that the next design will actually be better. I've seen simple user account management shell scripts replaced with piles of error prone Java, requiring a large set of new DAOs for every new integration.

<comment><USER10> There's a good chance that the do-over will be subject to "second-system syndrome": All the unicorns and rainbows that were put into the backlog suddenly become part of your MVP.

</comment></comment></comment></comment><comment><USER11> Several points are fairly obvious but seldom practiced in the real world:

      Technical debt can be viewed in many ways and can be caused by all levels of an organization.

      Of particular importance is helping nontechnical parties understand the costs that can arise from mismanaging that debt.

On a lighter note, as @sadserver says [0]:

      you cannot pay off technical debt with tears

[0] [https://twitter.com/sadserver/status/723504636615778305](https://twitter.com/sadserver/status/723504636615778305)

</comment><comment><USER12> My biggest problem with technical debt is that sometimes very simple things get really hard to do. And as a consequence it is really hard to explain to my boss (who can do a little programming himself) that it is so difficult. Ugh.

</comment><comment><USER13> One of my favourite technical debt essays is the one by Denise from Dreamwidth about how they cleaned up the LiveJournal codebase - suitable for non- technical readers: [https://denise.dreamwidth.org/57248.html](https://denise.dreamwidth.org/57248.html)

</comment><comment><USER14> Technical debt is a code smell.

Refactoring happens sometimes, but if you are accruing technical debt every cycle, there's a problem and you should spend your retrospective trying to figure out how to fix it.

<comment><USER15> So, write your best code first or else you're below standard?</comment></comment>


Show HN: Rating places using Emojis instead of stars/text - <AUTHOR> https://yobo-app.com/places/57763c1a03131e25087082d2 <comment><AUTHOR> Hey HN,

my name is Tobi. We´ve build a simple local guide app using the whole range of emojis to rate places instead of text and star reviews.

All emojis are collected in a cloud which tells you everything you need to know about a places. The bigger an emoji the more relevant it is.

Would be great to hear your feedback. Cheers, Tobi</comment>


French inventor soars above Champs-Élysées on flyboard at Paris parade - <AUTHOR> https://www.france24.com/en/20190714-french-inventor-soars-above-champs-elysees-flyboard-paris-parade <comment><USER2> They mention military connotations with the device but honestly I can't imagine that being a good idea in terms of safety or logistics

<comment><USER3> I think military application of any technology is unsafe, at least for someone.</comment></comment>


How Apple Influenced the Labels to Shut Down My Startup - <AUTHOR> https://medium.com/@492727ZED/steve-jobs-made-warner-music-sue-my-startup-9a81c5a21d68

<comment><USER2> Same tactics: [http://www.theverge.com/2015/5/4/8540935/apple-labels- spotif...](http://www.theverge.com/2015/5/4/8540935/apple-labels-spotify- streaming)</comment>


A Periodic Table of Visualization Methods - <AUTHOR> http://www.visual-literacy.org/periodic_table/periodic_table.html

<comment><USER2> This table is something, but its not periodic.</comment>


Why the United States have the best hackers. T or F - <AUTHOR> http://www.infoworld.com/article/2984927/security/american-ingenuity-why-the-united-states-has-the-best-hackers.html <comment><USER2> Please don't use HN titles to editorialize or add your own commentary to a story. Instead, the guidelines ask you to use the original title unless it is misleading or linkbait. If you want to comment on the story, please do so in the thread like everyone else.

</comment><comment><AUTHOR> Sure, I felt the article was very interesting, but was advised the title could be offensive. Fair enough</comment>


Review my website: Geolisto.com - <AUTHOR> http://www.geolisto.com

<comment><USER2> Nice implementation. Empty database. Building a market is tough. Good luck.

PS- maybe get rid of the CAPTCHA until you really need it.

<comment><AUTHOR> Thank you for your feedback, IanDrake.</comment></comment>


Lark Suite - <AUTHOR> https://www.larksuite.com/ <comment><USER2> Looks cool but sad to see the chat system isn't threaded/topic-based to make it more async-friendly like how Zulip or forums do.

IRC/Slack-style channels make remote work on different timezones really difficult because all the convos are mixed together in big blender channels instead of having each conversation labeled separately.

</comment><comment><AUTHOR> Has anyone been using Lark Suite? How does it compare with GSuite?</comment>


Hello World - <AUTHOR> hello, i am brand new to this platform and uhh, i don't know what too expect <comment><USER2> Lurk for a while and learn the vibe, I guess.

Also read the guidelines, as it'll put you above half the people that work here: [https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)</comment>


Reminiscing About the Stacks of Books - <AUTHOR> http://www.sebastianmarshall.com/?p=371

<comment><USER2> thanks for posting this- I am the same way about books, and it's nice to feel a little justified about it.</comment>


Turbulence Ahead: Delta Computer Outage Is Just the Start, Say Experts - <AUTHOR> http://www.fastcompany.com/3062831/turbulence-ahead-delta-computer-outage-is-just-the-start-say-experts <comment><USER2> _" Good IT talent is really hard to find," he says. "And if you're a superstar, are you gonna work for Delta because you get free flights now and then, or are you gonna work for Google or Facebook, or a billion dollar startup that is giving you stock options?"_

Delta made $4.5 billion in net profits on $41 billion in revenues in 2015[1]. If IT talent was the key to their ongoing profitability, surely they could attract some top-notch talent if they were willing to spend a couple of billion dollars on higher salaries. (If you have billions of dollars to spend, you can match the total value of Google's compensation package. The value of Google stock options is easily matched by giving Delta employees extra cash that they can invest in the tech stocks of their choice.)

[1] [http://finance.yahoo.com/quote/DAL/financials?p=DAL](http://finance.yahoo.com/quote/DAL/financials?p=DAL)</comment>


Advice to budding programmers: Grow organically - <AUTHOR> http://www.kamaldshah.com/2008/12/advice-to-budding-programmers-grow.html <comment><USER2> I'd agree. My first job out of college was for a retail technology start up and within 18 months we turning over 60M Euro (though margin for us was <3%). I started as the first tech person in the company and I was working pretty much every waking moment and within that 18 month period I was managing a couple of developers, a couple of sys. admin and an analyst. After four years I left, without having established a solid dev. background and still too inexperienced to get another senior position.</comment>


Understanding Map Reduce - <AUTHOR> http://openmymind.net/2011/1/20/Understanding-Map-Reduce

<comment><USER2> Thank you times a thousand.

From the PHP world, I can relate to mapping like this:

      $map = array()
      $map["$gameid_$year_$month_$day"][]['count'] = 3;
      ...
      $map["$gameid_$year_$month_$day"][]['count'] = 1;

Then $arr gets reduced with another few steps of script.

</comment><comment><USER3> I've been learning mongodb for the past week, so I may be wrong. But unless his application logic added a condition on the hits collection, his last line when called repeatedly will duplicate existing counts. He'd need something like this where value is the last time he ran map_reduce.

      db['hits'].map_reduce(map, reduce, {query: {date:{$gt:value}}})

Alternatively, he could map_reduce the entire collection and instead of using upserts and inc, merge the result into the daily_hits collection.

      db['hits'].map_reduce(map, reduce, {out: {merge: 'daily_hits}})

See mongo mapreduce docs: <http://www.mongodb.org/display/DOCS/MapReduce>

<comment><AUTHOR> No, you are right. I updated the article to include the missing step. It was original left out because I didn't think it really had to do anything with map and reduce...but then that's pretty silly, especially ince most of the article doesn't.</comment></comment>


Former KGB general: Snowden is cooperating with Russian intelligence - <AUTHOR> http://venturebeat.com/2014/05/22/former-kgb-general-snowden-is-cooperating-with-russian-intelligence/

<comment><USER2> Another factless, speculative PR-Hit, brought to you by Friends of the Deep State, LLC.

I kid. The KGB General in question has been in exile in the US since the 1990s according to the article. What he knows is around 20 years out of date, no? Why would currently in the know Russian security types leak information to him? How would they leak info to him? This totally doesn't make sense. It's rumor-mongering at best.</comment>


NASA Kepler Telescope in Emergency Mode - <AUTHOR> http://www.cnn.com/2016/04/10/tech/nasa-kepler-emergency-mode/index.html <comment><USER2> Kepler has been _such_ an amazing mission. I really hope they can fix this soon.</comment>


The Theory of American Decline - <AUTHOR> https://en.wikipedia.org/wiki/American_decline <comment><USER2> I research particle accelerators. Even over just the past five years that I have been attending international conferences, there has been a broad feeling that the US is no longer the best place in the world for what I study.

In particular, China's budget for accelerator R&D literally has another zero at the end of it compared to the US. They are building their own competing facilities to the ones in the US such as x-ray free electron lasers, synchrotron light sources, and ion colliders. In my own speciality, china has probably one of the top three groups in the world for ultrafast electron diffraction.

I have also seen researchers who came to the US from china return to their home country to take advantage of the better funding situation. Interestingly, we in the US are prohibited from collaborating with them because accelerators are considered advanced technology related to national defense. With how fast they are growing, I absolutely believe that they could become the center of scientific research for the next few decades.

Plus, outside of China, the US is competing with top groups across Europe. Speaking with some of those researchers, people just are not incentivized to make the trip to the US and set up their research here anymore.

<comment><USER3> What kind of long term applications do particle accelerators bring?

<comment><USER2> Most of the public is only familiar with colliders like the large hadron collider at CERN. However, most accelerators are much more common/practical than what is going on there.

In terms of research impact, accelerators are our most powerful probes of matter. If you're a chemist, a materials scientist, a biologist, a medical researcher, or any other number of specialists, then you probably want to use an accelerator for your work. Think of them as kind of the foundation of all modern research going on in these fields. It's to the point that one in three Nobel prizes in medicine, chemistry, and physics in the past ~fifty years benefited from an accelerator in some way.

If you want to know what a protein looks like, it's done at an accelerator. If you want to get time resolved structural information about a chemical reaction, accelerators are how it's done. If you're a company or the military and want to optimize a new super-alloy, you do that at a particle accelerator. Most modern research where you want to know what matter looks like on an atomic scale is done at particle accelerators. Not just for pure science, but for industry.

I work at a synchrotron light source and our facility is over-subscribed to the point where we only accept something like 10% of users. Part of that is also industry users who travel from across the world to our facility. During the Covid-19 shutdown, my facility was still operating and being used to study candidate treatments and vaccines.

Besides R&D, accelerators are used in industry, medicine, and security/defense. Food sterilization is done with accelerators. Future semiconductor fabs are expected to rely on accelerators to produce the XUV light needed for advanced photolithography. Most modern ICs use ion implantation at particle accelerators. Accelerators are being studied for fusion/fission power generation. They're used to treat cancer and are also a predominant source of some medical radio-isotopes.

The reason accelerators are important and every major region in the world has one or is building one(including unexpected places like Africa and South America) is because a surprising amount of research and development across many fields can not be done without them.

<comment><USER4> Very interesting info. Never thought it has so much use outside science at CERN.

</comment></comment></comment></comment><comment><USER5> America needs to start investing seriously in infrastructure and research. Infrastructure and research are both essentially social safety nets that also happen to make the country better.

Look what infrastructure spending has done for Asia.</comment>


Study finds half of most popular VPN apps linked to China - <AUTHOR> https://www.google.com/amp/s/amp.ft.com/content/e5567d8a-ee65-11e8-89c8-d36339d835c0 <comment><USER2> Title suggests google.com, but link is an amp redirect to a paywall.</comment>


2FA Notifier – Know when a site supports 2FA - <AUTHOR> https://2fanotifier.org/ <comment><USER2> The problem here is that it uses twofactorauth.org

I submitted two PRs for sites that have 2FA that they didn't have.

One they argued about whether it's a big enough site to include (a commercial vps/server hosting company across ~5 countries) and never approved, the other they complained that the site doesn't document it well enough so it must not exist (despite me using it).

I gave up when they then got a bad reply from the company in question (saying they only support sms) and _changed_ my PR despite me telling them it's wrong (because customer service reps never get anything wrong?)

<comment><USER3> "they argued about whether it's a big enough site to include"

Wow. That sounds ridiculous. But if you try and track that site ...

From [https://twofactorauth.org/](https://twofactorauth.org/) "Made with tea by Josh Davis..." Then you follow this "Josh Davis" link to [https://joshldavis.com/](https://joshldavis.com/)

... and you find this:

" Splootysplotty: Open Source Alternative to Lewis Carroll's Jabberwocky"

" 'Twas haplex and kuffle problem. Projects Dalo and Jotts voluck. It's not folazy as Lablem, But merely fosts toontruck. "

...interesting.

<comment><USER2> > Wow. That sounds ridiculous.

Tell me about it. They literally just had to click "Merge PR", but instead chose to go looking at the sites rank on Alexa.

When I suggested that they should codify their "only top 200K on Alexa" guideline, I got zero response, predictably.

</comment></comment></comment><comment><USER4> We need some guidelines for proper 2FA implementation. The Instagram 2FA has a quirk were they don't prompt the user to write the phone number registered on the account before sending the SMS. This means I get like 20 password resets on my phone daily. In an ideal world I would use a token 2FA instead of SMS but that is not supported also. If anybody from Facebook/Instagram can pass this feedback along, it will be appreciated.

<comment><USER5> > We need some guidelines for proper 2FA implementation.

I could not agree more. I write a lot about 2FA on my site, All Things Auth [1], and do teardowns of 2FA implementations for sites.

In March, we featured Zapier [2] in a screencast episode and a 5 post series digging deep into their 2FA implementation and related topics. I highlighted some things they are doing well and also made suggestions on how they could improve.

I plan to continue doing teardowns for 2FA implementations from many different types of sites. I plan to create a definitive guide to aggregate 2FA implementation best practices.

[1] [https://www.allthingsauth.com/tag/2fa/](https://www.allthingsauth.com/tag/2fa/)

[2] [https://www.allthingsauth.com/zapier](https://www.allthingsauth.com/zapier)

</comment></comment><comment><USER5> Hey everyone! I created 2FA Notifier with my friend, Ray.

We noticed that many people enable 2FA after they realize the services they already use support it! So, we made 2FA Notifier [1], an open source web extension that notifies you when sites you visit support 2FA. Anytime you visit a site that supports 2FA, you'll get a notification. Click it to go straight to the docs that explain how to enable 2FA!

Let me know if you take it for a spin! Any and all feedback is helpful to improve the functionality and UX.

Shout with questions and I'll do my best to answer!

[1] [https://2fanotifier.org](https://2fanotifier.org)

<comment><USER6> Nice idea! Will you add support for Firefox?

<comment><USER5> I am in the process of getting into the FF store as we speak! Stay tuned!

<comment><USER5> The extension is now accessible in the Firefox store [1]!

Please shout if there are any weird bugs in FF. I do test it in Firefox before publishing, but Chrome is my main browser so I catch things there more quickly.

[1] [https://addons.mozilla.org/en-US/firefox/addon/2fa- notifier/](https://addons.mozilla.org/en-US/firefox/addon/2fa-notifier/)

</comment></comment></comment></comment><comment><USER7> A few examples of sites that do have 2FA but the extensions cannot tell for "silly" reasons:

mycompany.slack.com: "No 2FA here :(" inbox.google.com: "No 2FA here :(" docs.google.com: "No 2FA here :("

<comment><USER5> Thanks for the feedback!

Clean data is definitely going to be a challenge for this project moving forward. I've discussed several ideas in other comments in this thread, so check those out if you are interested.

It does look like inbox.google.com is missing from our data set. We have an open issue to make sure that all of the Google products are added [1].

The messaging that is currently shown there is definitely wrong too because inbox.google.com does support 2FA. We have another issue for handling the "unknown" state when the domain simply is not in our data set [2].

What type of messaging and UI do you expect to see when the extension is unsure whether a given site supports 2FA or not?

Feedback from the community will really help improve the extension! Thanks for sharing your thoughts!

[1] [https://github.com/conorgil/2fa- notifier/issues/61](https://github.com/conorgil/2fa-notifier/issues/61)

[2] [https://github.com/conorgil/2fa- notifier/issues/39](https://github.com/conorgil/2fa-notifier/issues/39)

</comment></comment><comment><USER8> Can you indicate more than only yes/no for a measure of how secure the 2FA can be?

The choice of some site's 2FA implementations are known to be problematic, such as SMS only (easily hijacked), or supporting TOTP and/or HOTP, but also requiring you to allow SMS or "security questions", reducing the degree of security.

<comment><USER5> That is a great idea! I am 100% in favor of helping the users understand the security tradeoffs between the 2FA methods.

We definitely have it on the roadmap to update 2FA Notifier to include more educational content. Thanks for the feedback!

I am currently writing a series on 2FA on my site All Things Auth [1] that gets into the details explaining how each method works and exploring the security and usability tradeoffs of each. I want to put together a summary and/or infographic highlighting the main takeaways and hopefully like to something like that from 2FA Notifier.

Currently, we use the data from twofactorauth.org [2] as our main data feed. I definitely encourage you to check out their community on GitHub and propose your idea there too!

[1] [https://www.allthingsauth.com/tag/2fa/](https://www.allthingsauth.com/tag/2fa/)

[2] [https://github.com/2factorauth/twofactorauth](https://github.com/2factorauth/twofactorauth)

<comment><USER9> Great thing the blog posts. I wrote about security keys working on ios recently, feel free to grab material if you need.

[http://medium.com/@0x0ece/googles-advanced-protection- progra...](http://medium.com/@0x0ece/googles-advanced-protection-program-with- iphone-and-ipad-5f30802885e7)

<comment><USER5> Thanks for the positive feedback! There are 2 main articles in the 2FA series left to write (Push 2FA and U2F/WebAuthN), but there are a ton of other posts I have bouncing around in my head. Join the email list if you're interested in getting updates!

I'll definitely give your post a read too!

Have you found it effective publishing on Medium vs your own blog? I've been considering cross posting my articles for additional exposure. Curious to hear your thoughts.

<comment><USER9> Medium infinitely, Linkedin is also gaining popularity if you want/need to boost your network.

Feel free to write me via email if you'd like to talk more, but between hn and hackernoon, with medium any of my posts gets at least a thousand reads. This one is currently at 4.6k views/1.9k reads. There's no way I'd get this reach with my own blog.

</comment></comment></comment></comment></comment><comment><USER10> Great idea for an extension.

One thing I noticed straight away that I thought was worth mentioning is that a notification doesn't popup when visiting the regional Amazon websites like Amazon.co.uk/.de/.es/.it, despite it being possible to enable 2FA for these sites through Amazon.com.

Screenshot: [https://vgy.me/UaHJm1.png](https://vgy.me/UaHJm1.png)

This is also mentioned on twofactorauth.org...

 _Enabling on Amazon.com activates 2FA on other regional Amazon sites, such as UK and DE._

<comment><USER5> Thanks for the feedback! We use the data from twofactorauth.org as our main data feed, so that is where we pick up the domains.

I am definitely open to augmenting those entries, but trying to think about ways to either automate (ideal) or crowdsource contributions on the data side.

Any thoughts? Would you be interested in contributing data updates like this?

<comment><USER10> Do you think twofactorauth.org would be willing to list the regional Amazon websites separately so that your extension can pick them up automatically?

<comment><USER5> I am not a core committer for twofactorauth.org (yet! I hope to become one!), so I cannot say whether they will accept a PR like that. However, there is an open issue discussing this topic that is worth reading over [1].

2FA Notifier has a bit of an easier job since we don't have to render anything or make it searchable (as of today). I would happily review any PRs along these lines! The data is currently hard coded in a Typescript file, which makes it really easy to update [2].

I plan to document criteria for contributing data to 2FA Notifier like this, but just haven't had the time. One entry per PR would be ideal if you are motivated to contribute!

[1] [https://github.com/2factorauth/twofactorauth/issues/1025](https://github.com/2factorauth/twofactorauth/issues/1025)

[2] [https://github.com/conorgil/2fa- notifier/blob/master/src/typ...](https://github.com/conorgil/2fa- notifier/blob/master/src/typescript/utils/dataService.ts)

</comment></comment></comment></comment><comment> coastal-fiesta I like this idea, it's definitely missing a few major sites though. google.com, facebook.com for example.

<comment><USER5> Thanks for the feedback! I just released an update that correctly supports www.google.com and www.facebook.com.

</comment></comment><comment><USER11> Nitpick: "2FA Notifier let's you know"

That should be "lets".

<comment><USER5> Whoops! Good catch. Fixed.

<comment><USER12> I also fixed it on the chrome store description as well. :) Thx for catching that!

</comment></comment></comment><comment><USER13> This addon is useless:

No 2FA here :( But you can better protect your inbox.google.com account if you follow these steps:

Create a unique password Use a password manager

<comment><USER5> It does look like inbox.google.com is missing from our data set. We have an open issue to make sure that all of the Google products are added [1].

The messaging that is currently shown there is definitely wrong too because inbox.google.com does support 2FA. We have another issue for handling the "unknown" state when the domain simply is not in our data set [2].

What type of messaging and UI do you expect to see when the extension is unsure whether a given site supports 2FA or not?

Also, have you had the chance to see the UX for a site that does support 2FA? We currently have over 1,000 domains in our data set, so there is bound to be a service that you use. Feedback from the community will really help improve the extension! Thanks for sharing your thoughts.

[1] [https://github.com/conorgil/2fa- notifier/issues/61](https://github.com/conorgil/2fa-notifier/issues/61)

[2] [https://github.com/conorgil/2fa- notifier/issues/39](https://github.com/conorgil/2fa-notifier/issues/39)

</comment></comment><comment><USER14> LastPass + Duo = MFA Everywhere :-)</comment>


PHP – An Annoying Tryst - <AUTHOR> http://www.prahladyeri.com/2014/06/php-an-annoying-tryst/

<comment><USER2> This essentially boils down to the fact that your development environment and production environment were running completely different software. This isn't a PHP-specific problem.

> the designers' strategy to break code compatibility between PHP versions > only for aesthetic reasons (array(a,b,c) vs [a, b, c]) is bound to lose the > confidence of its users sooner or later.

This is not a backwards-compatibility issue. You used features which were introduced in 5.4, and expected them to work in 5.3.

<comment><AUTHOR> @wldlyinaccurate - I never said anything about backwards-compatibility, its just a matter of compatibility between versions backward or not.

>>You used features which were introduced in 5.4, and expected them to work in 5.3. Yes, that can happen sometimes, especially when you are working between dev and production environments. But basic things like improvising array De- referencing syntax should not be done this late in time, don't you agree?

Other languages do have innovations but they are in advanced things - C# improvisations were in introducing LINQ library and the parallel task library. Python has a standard way of doing basic things like array De-referencing since the 90s!. Then why is PHP changing such basic language constructs today? 5.3 was released in 2009. Language constructs ought to have been standardized by then.

<comment><USER2> Just to be clear: PHP didn't _change_ these language constructs. The old constructs are still available. You made a conscious choice to use new language features and are now (understandably) frustrated that they don't work in a 5-year-old version of the language.

> 5.3 was released in 2009. Language constructs ought to have been > standardized by then.

Absolutely not. By this logic, no languages would ever evolve. The PHP core team are making an effort to evolve PHP into a better, modern language. If you want to take advantage of this, then do. If you want to write code that runs on your clients' older servers, then write backwards-compatible code and don't expect to be able to use new language features.

</comment></comment></comment><comment><USER3> Okay why are we still being worked up by simple things such as array initialization ? [] vs Array() ? I don't see what code you're writing and how fast, that this shorthand comes into effect and makes any difference to you?

<comment><AUTHOR> @kostko - Obviously, I can't disclose the entire client-confidential code on this forum. But suffice it to say that short-hands are typically used in different languages. But that doesn't mean that you suddenly introduce shorthands in a particular language and thus break working code.

</comment></comment><comment><USER4> If something introduced in newer version doesn't run in the older, how it's breaking backward compatibility? It would've been if the PHP5.3 version of your code didn't work in 5.4.</comment>


How I got fired from the job I created - <AUTHOR> http://aroundtheworldin80jobs.com/how-i-got-fired-from-the-job-i-invented/

<comment><AUTHOR> Hopefully the company that did this will be taken down.

</comment><comment><USER2> Link seems broken.</comment>


When Kickstarters Fail - <AUTHOR> http://www.makeuseof.com/tag/kickstarters-fail-feature/

<comment><USER2> The big example of a failed project was a tower defense game? These things are a dime a dozen (when they're not free) - why would anyone throw their money behind maybe getting a new one developed when half the would-be game designers in the world are already writing them for free?

</comment><comment><USER3> "We reached our $15,000 goal in 3 days, and once you launch a project you can't cap it. You can only keep it or cancel it. It became a little overwhelming."

Is there a conflict of interest at work here?

For projects delivering physical goods, the more backers there are the more revenue Kickstarter generates, but the greater the risk of the project not meeting its targets (or goals).

While more orders may mean production discounts and economies of scale, it also means more administrative, support, and other overhead costs that were not factored into the original financial plan.

<comment><USER4> You can easily create limits on the # of people you allow on each reward tier.

You can also add extra tiers that are identical except for a later delivery date.

Kickstarter should consider making use of # limits mandatory for non-media projects (art, software, film music), or at least more strongly encourage their use.

<comment><USER5> Yes, and you can even add limits to existing reward tiers while the kickstarter is running, so you don't need to know things in advance.

</comment></comment></comment><comment><USER6> An additional resource is The Kickback Machine [0], which tracks successful and unsuccessful projects, and CanHeKickIt [1], which graphs funding progress.

[0]: <http://www.thekickbackmachine.com/>

[1]: <http://canhekick.it/>

<comment><USER7> See also KickTraq, for fun graphs and prokections. e.g. [http://www.kicktraq.com/projects/trammel/the-official- settle...](http://www.kicktraq.com/projects/trammel/the-official-settlers-of- catan-gaming-board/)

</comment></comment><comment><USER8> Two points that indicate that the author doesn't really know what he's talking about:

1\. "Estimating the number of failed projects is difficult because of these tactics, but most independent attempts to pinpoint the figure have landed at 50% or more."

Response: Kickstarter has a statistics page [1] that gives this information. It's not hard to find. And the failure rate is much higher than 50% in most categories.

2\. "Retrovirus enjoyed a steady trickle of contributions towards its modest $75,000 goal."

Response: Actually looking at the statistics [2], 75,000 is on the high end for Kickstarter projects (more specifically, it's the 98th percentile for all projects, and the 99.4th percentile for successfully funded projects across all categories; if we look just at games, the percentiles are 93rd overall, and 96.8 for projects that actually made their goal), and carries with it a low funding rate (about 20% overall, slightly less than that for projects in the Games category)

So while it may be a "modest" goal as far as the costs of game development are concerned, it isn't modest for Kickstarter.

[1] <http://www.kickstarter.com/help/stats> [2] currently unpublished data scraped from kickstarter.com; I'm nearly finished writing up my analysis though.

<comment><USER9> The page you linked to gives statistics for successful funding, not successful delivery.

<comment><USER8> Yes, because it's clear from the context of the article that's what the author meant:

"Kickstarter intentionally makes failure a hard thought to stumble on. Its website does not show failed projects unless they're specifically asked for and the company directs search engine crawlers away from them."

This statement is only true if one interprets the word "failed" as Kickstarter does, that is, "failed to receive funding."

and

"And what about Kickstarters that succeed? Do they deliver, or is it just the beginning of a path full of challenges?"

This statement wouldn't make sense if the author meant "successful delivery" when he said "success."

</comment></comment></comment><comment><USER10> I found the wording of the title ambiguous. I assumed this would be about projects that meet their funding goal but fail to materialize, rather than projects that fail to meet their funding goal in the first place.

<comment><USER11> Kickstarter has always used "success" and "failure" to refer to the fundraising effort, not the deliverables. So the title was at least consistent with that usage.

<comment><USER12> It actually uses 'funded' or 'funding unsuccessful', not failure. To me, failure says 'funding successful but failure to deliver product (by a set time/at all).

</comment></comment></comment><comment><USER13> Personally I'm more than a little annoyed at their journal-type "quotes", especially because they put the quote directly under the paragraph they just quoted, so you're basically just reading the exact same sentence twice, one after the other. And they do this _9 times_. It's just... horrible.

</comment><comment><USER14> Where Kickstarters go when they succeed > <http://outgrow.me/>

</comment><comment><USER15> TMA;DR (Too many ads, didn't read.)

</comment><comment><USER16> One word: Pebble</comment>


How Distributed Systems Respond to Degraded Hardware - <AUTHOR> http://danluu.com/limplock/ <comment><USER2> In an interesting bit of synchronicity, "sometimes slow is worse than dead" was one of the very first points I made in a presentation today. This article could not have come at a better time. Thanks, Dan!</comment>


Why does WebAssembly need the relooper algorithm, instead of gotos? (2019) - <AUTHOR> http://troubles.md/posts/why-do-we-need-the-relooper-algorithm-again/ <comment><USER2> "There is one thing that may have been a major factor to the decision not to adopt arbitrary CFGs for WebAssembly control flow. I believe that V8 is an exception to most compilers in that it doesn't represent code as a CFG at all - it maintains roughly JS-compatible control flow all the way from front-end to codegen. In order to support this V8 would have to be converted to use CFGs, they'd have to implement something like Relooper internally, or they'd have to write a new WebAssembly runtime from scratch. Google was and is a major roadblock to getting this implemented as they have multiple people on the committee in charge of WebAssembly who have veto power."

<comment><USER3> > they have multiple people on the committee in charge of WebAssembly who have > veto power

Note that even if Google did not have people on that committee, they'd just not implement the feature in their browser, and the feature would be dead in the water. Outside of niche cases where browser choice is controlled, no web dev would adopt features that > 70% of users can't use. So the committee only reflects power dynamics that exist in the greater browser sphere. In fact, non-Google browsers probably have more seats than they have influence by raw market share.

<comment><USER4> > So the committee only reflects power dynamics that exist in the greater > browser sphere.

It doesn't _only_ reflect them, but also amplifies them. Quietly nobbling things in committee is surely a lot easier than having to field questions about why you aren't implementing Web standards (insert quotation marks as desired). There's also the danger of being embarrassed when someone writes a library which runs slowly on your browser and fast on others.

</comment></comment></comment><comment><USER5> WebAssembly makes a number of strange choices that seemingly fly in the face of convention; this is one of them. It would be really nice if it someone took some time it make a FAQ on the website to answer questions like "why doesn't WebAssembly do x like everything else", because otherwise it just seems that they're just doing things differently because they can…

<comment><USER6> A lot of those bad WebAssembly decisions are carried over from Emscripten/Asm.js and don't have any real rationale behind them beyond that.

Obviously, since JS doesn't support arbitrary control flow, Emscripten/Asm.js would need to convert to some simplified form of control flow (although not necessarily fully structured). It seems that this solution was carried over to WebAssembly without much deep thought given.

There does seem to be some backwards association with Java's bytecode verification complexity issues (which are the result of a bad design, not unstructured control flow). In the big GitHub Issue ([https://github.com/WebAssembly/design/issues/796](https://github.com/WebAssembly/design/issues/796)) on the topic, one of the core V8 developers even claims that the Java experience justifies the WebAssembly decision. However, the funclets proposal for WebAssembly ([https://github.com/WebAssembly/funclets/blob/master/proposal...](https://github.com/WebAssembly/funclets/blob/master/proposals/funclets/Overview.md)) shows that you can support arbitrary control flow with linear time verification if you choose a different design than Java.

<comment><USER7> WASM is a typed bytecode format where the stack state must be validatable at compile-time, guaranteeing that no validated program can mess up the stack at runtime. Having unstructured control flow would make it pretty much impossible to do that, wouldn't it?

<comment><USER6> To get linear time validation, you need conditions at each control flow transfer that can be checked locally but together imply that stack usage in the function is well-formed.

The funclet approach (in more ordinary terminology) is to ensure that the stack difference from function invocation upon entry to a basic block is the same across entries to that basic block, and that those additional stack entries all have the same (statically specified) type in each invocation. This is very natural when generating code from an SSA optimizer.

Java bytecode traditionally didn't contain any of this branch target or type information, and required the bytecode verifier to do an iterative combined control/data-flow analysis. Even now that they added some of that type information with stack maps, it's still more complicated than it needs to be due to the historical legacy of this approach.

</comment></comment></comment></comment><comment><USER8> META: I don't understand why some authors go out of the way to obscure important pieces of information:

* Who wrote this article?

* When was this written?

Was lucky to find this pieces of information in Github [1].

1: [https://github.com/Vurich/troubles.md/blob/master/content/po...](https://github.com/Vurich/troubles.md/blob/master/content/posts/why- do-we-need-the-relooper-algorithm-again.md)

<comment><USER9> It's a common problem with news articles too - you get linked something and you don't know whether it relates to a current event or something interesting 3 years ago.

</comment></comment><comment><USER10> Something this article doesn't appear to spell out is that the structured format WASM is constrained to means that program CFGs will never contain irreducible loops. As noted, this approach can make it harder for the AoT compilers (they have to untangle the knots to generate valid WASM bytecode), but it makes it much easier for the JIT compilers to perform analysis and transformations at runtime. In that context, it seems like a sensible engineering decision.

</comment><comment><USER11> The article says about the Stackifier algorithm: "no link for the latter, it's only mentioned by this name in LLVM internal discussions".

Since the release of this article, I wrote a blog post explaining how Stackifier works, for those who are interested:

[https://medium.com/leaningtech/solving-the-structured- contro...](https://medium.com/leaningtech/solving-the-structured-control-flow- problem-once-and-for-all-5123117b1ee2)

<comment><USER12> Thanks! I used your article to successfully implement Stackifier.

<comment><USER11> I am glad it helped somebody :)

</comment></comment></comment><comment><USER13> _sigh_

I am partly responsible for why WebAssembly is this way. You can thank/blame me for the if-else bytecodes. They are indeed, a form of compression, as they don't add expressive power. I measured carefully and they make a big difference in code size. That's why they're there!

The structured control flow requirement is to benefit _all consumers_. It is only a burden on producers that come from CFGs, not from ASTs and other tree- like IRs. If you have a dominator tree, then you can generate structured control flow in linear time. LLVM does this a particular way, but there are straightforward algorithms.

No, this wasn't Google throwing around its veto power or something like that. There is a good reason why control flow is structured, as hinted in comments here.

1\. Structured control flow rules out irreducible loops. Irreducible loops cause problems for _all_ JIT compilers in all browser engines, not just V8, and even in JVMs. Things get really complicated, particularly in register allocation. [1]

2\. Structured control flow guarantees a stack discipline for the use of labels, mirroring the stack discipline for values. This is not only a nice symmetry, it means that a consumer that needs to allocate space per label can reuse that space as soon as a control construct is closed. That is essentially optimal for use of consumer space resources.

[1] No kidding. If you have an irreducible loop in Java bytecode, which is possible, you will never be JITed and will get stuck running 100x slower in the interpreter. We thought this through very carefully in V8. If you allow irreducible loops in Wasm, you force all engines to either stick to their lowest execution tier and run 2-100x slower, do relooping themselves, or handle the general case of irreducible loops spending multiple person-years complicating their optimizing tiers' backends for a case that is _incredibly rare_ (and probably introducing lots of bugs). In V8 we would have probably gone for the relooper option because the other two options are bad. So that's a lose, because now the engine is more complicated, doing a rewrite of the code that could as well be done better and more efficiently offline by a producer. And there is no benefit because the engine's code would be no better than what the producer would have come up with. So we'd choose the lesser of the complexity options, but get no performance benefit, in order to avoid the absurdly bad performance hit of not being able to use the optimizing tier. Bad tradeoff now matter how you slice it, IMHO.

I am fully convinced we made the right choice here.

We should have communicated better and the relooper algorithm and tools should textbook, off-the-shelf stuff.

<comment><USER14> It's bizarre to me that there are complaints about the if-else bytecodes. You can call them "weird" but they're very easy to reason about, make it easy to write toy examples, are easier to generate from a compiler, and are easier to read and understand in disassembly. At the point where the author started talking about customized compression to recover the size gains they should have realized why the bytecodes exist! Early on in the spec process it was very, very useful to have them.

Anyone questioning whether the lack of goto was the result of an invocation of veto power can look at the design repo and see that lots of control flow consideration and discussion happened in the open before the group finally agreed upon a solution. Many of the players involved were not Google employees at the time of the decision (I don't know if they are now):

[https://github.com/WebAssembly/design/issues/33](https://github.com/WebAssembly/design/issues/33)

[https://github.com/WebAssembly/design/issues/44](https://github.com/WebAssembly/design/issues/44)

I definitely recall that people had disagreements about how control flow should work and had different goals or priorities but it was a pretty detailed and drawn-out decision-making process. I don't think it was really possible for everyone to walk away from the table happy.

<comment><USER15> As context, at the time of those issues, the control-flow restrictions were a compromise to help get the "MVP" off the ground, with the understanding that "more expressive control flow" was expected to be added later:

[https://github.com/WebAssembly/design/blob/master/FutureFeat...](https://github.com/WebAssembly/design/blob/master/FutureFeatures.md#more- expressive-control-flow)

</comment></comment></comment><comment><USER16> Interestingly I came up with a similar algorithm like Relooper when I translated C to Python code. First I translate all C code to mostly equivalent Python code but including some gotos, and then I get rid of those gotos by introducing some more loops. The current solution is simple but the resulting function could be slow.

[https://github.com/albertz/PyCParser/blob/080a7b0472444fd366...](https://github.com/albertz/PyCParser/blob/080a7b0472444fd366006c44fc15e388122989bd/goto.py#L102)

</comment><comment><USER17> Could someone reduce the GOTO complaints to the arguments why it is harmful. (Preferably without the considerations?)

</comment><comment><USER18> The article cites Dijkstra's "considered harmful" essay, which asserts that "goto" should be removed from "higher level" languages, not "machine language".

Without reading the remainder of the article, this would seem to undermine any further assertions.

UPDATE: after reading the article, it seems the opposite is being shown. my bad.

<comment><USER5> It's brought up to prove the opposite. I would suggest reading it through, it's quite good.

<comment><USER18> Yeah, I figured that might be happening, once I started reading further. Blame the reader.

</comment></comment></comment><comment><USER19> Unpopular opinion: GraalVM is what should have been webassembly.

Reasons: * True polyglotism * existing, feature complete implementation * compatibility with the existing JVM platform, and through polyglotism compatibility with almost any platform/library.

<comment> c-cube how is Graal more polyglot than wasm?! Does it support low level languages as well? Besides, it's only one implementation (controlled by Oracle) and will probably remain so forever — who would want to risk a lawsuit by reimplementing it, I wonder.

wasm is already in all major browsers. It's succeeding where no JVM-based approach ever could.

<comment><USER20> Graal is licensed under the GPLv2. It's free software!

<comment><USER21> GPLv2 isn't free enough to be used in a commercial browser.

<comment><USER22> Nitpick: I assume you meant "GPLv2 isn't free enough to be used in a _proprietary_ browser".</comment></comment></comment></comment></comment>


Ask HN: How much revenue should we give to content creators? - <AUTHOR>

I cofounded a yet-to-be-released web application with a friend. It's yet another music streaming service for independent artists.
So far we've agreed that we should distribute 70% of the revenue generated from song sales to artists.
I don't think this is enough though -- I think we should distribute some specific percentage of our total revenue (including song sale revenues and advertising revenues) -- maybe 50% or more -- to artists. But my partner disagrees. He says that doing so would be generous, but wouldn't make sense financially. He argues that it would be absurd to pay artists more than the business is making itself.
I think that it wouldn't make sense not to pay artists more than the business is making, since the only reason artists and users would use our site would be to share and discover new music, something our business takes no part in creating. I think it's in our best interest to be fair to artists because they'll reward us with loyalty to our service.
Anyways, it's difficult to find a balance between how much revenue we're pulling in and how much we're willing to pay out. We host the music files for free (maybe not a good idea), we offer song downloads for less than half of the industry standard, and we offer a good recommendation system to help users filter through all of the music.
Any ideas about what we should do? <comment><USER2> "So far we've agreed that we should distribute 70% of the revenue generated from song sales to artists.

I don't think this is enough though -- I think we should distribute some specific percentage of our total revenue (including song sale revenues and advertising revenues)"

>not important

"Anyways, it's difficult to find a balance between how much revenue we're pulling in and how much we're willing to pay out."

>this is the real issue. forget your first question.

</comment><comment><USER2> i think you should do a cost analysis from a user standpoint of competing services. once a "fair" or "market" rate has been established, i'd then adjust your price significantly below that (of course you can't forget to maintain sufficient cash flow to stay afloat). then market the hell out of your service (make sure your service is on par with that of your competition). once you've established yourself as a leading marketplace for online music, develop a significant competitive edge and you'll be free to adjust your pricing structures upwards, as long as you monitor your attrition rates to make sure the market believes your tax increases to be "reasonable". keep in mind your competitive edge could be something as simple as "well, we've made ourselves the largest marketplace for online music". etc, etc, hire me as a consultant and give me an equity stake. etc, etc.</comment>


Why a hipster, vegan, green tech economy is not sustainable - <AUTHOR> https://www.aljazeera.com/indepth/opinion/hipster-vegan-green-tech-economy-sustainable-190605105120654.html <comment><USER2> You can take the most eco friendly thing in the world, as soon as capitalism gets hold of it and start mass marketing it it just becomes another facet of the same disgusting monster.

They pull the same shit with new social movements, especially with the lgbt community & the clothing industry, not a single company cared until it was a profitable market. "Save the planet! Be yourself! Love yourself! Progress! but more importantly C O N S U M E !"

The epitome of virtue signalling.

[https://www.youtube.com/watch?v=YvxYoatz- Tw](https://www.youtube.com/watch?v=YvxYoatz-Tw)

[https://www.youtube.com/watch?v=koPmuEyP3a0](https://www.youtube.com/watch?v=koPmuEyP3a0)</comment>


App Review rejection 10.6 - <AUTHOR> http://www.stefankendall.com/2013/10/app-review-rejection-106-fuck-you.html <comment><USER2> You chose to develop on a platform that has unaccountable bureaucracy with arbitrary rules controlling your access to the platform and can turn all your work into garbage on a whim, with no recourse to you. So you shouldn't be surprised too much when it happens to you - that's what they do.

I'd just make a website and be done with it. Unless you want to sell it, and then they own the market - it's their rules. You either play by them or don't get into the market.

<comment><USER3> I don't like your "you chose this so don't bitch about it now" viewpoint, because I think that bitching about things is something that effects change, but I agree with you on one thing: Why the hell isn't this a site? It sounds like it would take ten minutes to convert the info to a single HTML page, and you wouldn't have to go through the app store.

Not to mention that Google would give you instant visibility to everyone for your chosen search terms, if there's no other page with this info.

<comment><USER4> +1 to this idea. If it's simple enough, it shouldn't be a big deal to turn it into a mobile website.

</comment></comment></comment><comment><USER5> Here's a link to the app on Github: [https://github.com/stefankendall/pokemon- type-calculator](https://github.com/stefankendall/pokemon-type-calculator)

This is exactly what I was looking for when playing through Pokemon X/Y! My current method of searching on google to grab the bulbapedia article then scrolling through to find type information (which isn't always there for brand new pokemon) was far too slow. I'll probably keep this running on my iPhone simulator when I play X/Y.

Personally I would have preferred this in website form, but that's only because I'm always in front of a laptop.

Things that would improve the app:

1\. A status bar on the main listing. I like having the status bar there if possible to see battery and time and such, but more importantly it would allow the tap to scroll to the top shortcut.

2\. Slight bug on the detail-page: you can select a type (e.g. 'bug') but it doesn't go anywhere.

3\. Color labels on the types, like most pokemon websites have. Right now I find it a little hard to scan the type listings because it's all text.

4\. Maybe make the details page title the name of the pokemon? I think that would make it alot more obvious what I'm looking at (not a concern when you're coming from the search page, but when you've left the app on the details page it's a bit disorienting).

5\. This is a much bigger feature request, but seeing type weaknesses would be great, too. When deciding whether or not to use or catch a pokemon it's useful to see strengths/weaknesses.

I'm almost done with X, so I'm not sure if I'll use this much (have been thinking about doing a Nuzlocke run); if I end up using it I'll submit some pull requests. Thanks for making it open source!

Edit: Critical bug

a. If you click the search bar, then tap on the table view before the search bar animation completes, the search bar disappears: [https://s3.amazonaws.com/uploads.hipchat.com/1658/151914/gkv...](https://s3.amazonaws.com/uploads.hipchat.com/1658/151914/gkvXZyMr297PEPQ/iOS+Simulator+Screen+shot+Oct+26%2C+2013%2C+5.09.05+PM.png)

b. It looks like Aurorus doesn't have any type information provided

<comment><AUTHOR> This is the most intense v1 review I've ever received. If I get approved, I'll definitely incorporate this feedback.

I had some issues with the data. I pulled 1-649 from Wolfram, but it was missing a handful of pokemon that I had to enter by hand by regexing an HTML page from Bulbapedia.

I've been playing _kind of_ competitively with my friends, and scanning bulbapedia wasn't cutting it (and it's missing the type weaknesses for some pokemon for whatever reason)

<comment><USER6> It's possible your app got rejected entirely because you didn't provide a launch image (formerly known as Default.png).

I'd echo the concern that the status bar should be visible in your app.

Another polish item: rows in the detail view controller get a selection highlight when you tap them, but don't do anything.

Apple also looks to see if there's a way to provide user feedback within the app, so you might want to add something for that.

</comment></comment></comment><comment><USER7> I had this happen on an app I worked on before, but it was accepted on appeal.

From what I have seen in the App Store, I think standard procedure is to reject "basic" looking apps like this as a matter of process. The thinking is that rejecting them weeds out the spammers who won't bother appealing the rejection, and people who actually appeal are obviously more emotionally invested in the app, which leads to a higher chance of being accepted.

<comment><USER8> I think this is the best way to think about it. Just don't take it personal and appeal / resubmit.

</comment></comment><comment><USER9> They are actively trying to discourage "10 minute to write fart apps"

It looks like you may have looked like you fit in the category of "copied a web page into a tableview, hit publish"

<comment><USER10> It's a very bland looking app. Add a few more features, give it a nice colour theme, throw some icons in there.

</comment></comment><comment><USER11> Get used to it. As a developer for iOS, you have to be ready for seemingly arbitrary rejection. It's part and parcel of the App Store submission process.

</comment><comment><USER12> This seems like a good example of where a website targeted for mobile interfaces would have been best.

<comment><USER13> Unless the user might find this information useful without an internet connection?

<comment><USER14> Websites can work off-line.

This type of webapp is simple enough to use AppCache without trouble: [https://developer.mozilla.org/en/docs/HTML/Using_the_applica...](https://developer.mozilla.org/en/docs/HTML/Using_the_application_cache)

<comment><USER3> This type of Web app is simple enough to not require any storage at all, really...

</comment></comment></comment></comment><comment><USER15> I am constantly surprised by people who don't understand it is in Apple's and their customer's interests to keep the pool of applications on the iTunes Store as small as possible.

At this point, to prevent quality from being lost in the long tail, Apple's default response should be rejection, and only the most novel of applications should be accepted.

</comment><comment><USER16> Was Stefan's app actually rejected by Apple or something? That's what's implied by the title but the post itself makes no mention of it.

<comment><USER17> > App rejection. Sometimes it's legitimate, and then sometimes it's this

That is the first line of his post. I guess this means his app got rejected.

<comment><USER16> The 'this' he's referring to is a quote from Apple's submission guidelines. I'm not just nitpicking; I was hoping there'd be some interesting information here, like maybe an account of his interaction with Apple regarding the rejection, but what I actually read was a vague post about how Pokemon apps shouldn't play Pokemon sounds or something.

</comment></comment></comment><comment><USER18> This is just some web view type data copied into a table view. And if we're going to trot out f-words, let's just note that it's fugly. I'm not surprised it was rejected.

<comment><USER19> Besides, why bother with submitting this as an "app" considering it could just as easily be a webapp..

<comment><USER20> My thought was the same, but the I assume the point is that if you're playing somewhere without an internet connection, this could be handy.

</comment></comment></comment><comment><USER21> I recently had an App rejected too under 10.6 because they said it needed to use more of iOS' features.

I replied back letting them know, that the App was greatly enhanced by the multitouch interface, and asked if they had any suggestions. The App Store reviewer was actually very nice (almost excited that I wrote back?) and reasonable. Their biggest concern was actually relating to lack of iPad specific features/views on the iPad version. It seems Universal apps are reviewed a little more harshly.

I think they have a lot of rules, and sometimes it's hard to keep up the manual review process when they don't see the immediate value of the app. In general, they are quite nice however and will let you know what they are thinking.

For what it's worth I opened sourced the rejected app anyway [https://github.com/dmitric/tap-pad-ios](https://github.com/dmitric/tap-pad- ios)

</comment><comment><USER22> You know, there really should be a better way of contesting rejections. I'm surprised at how often we hear this same type of story of rejection.

</comment><comment><USER23> OK, hold on... Stefan is offended by Apple's frank language, and then calls a competing app a "steaming pile of trash"? At least Apple is somewhat impartial.

</comment><comment><USER24> I'm glad Apple rejects on a quality basis, and feel they should be even stricter.

I say this as someone who has gone through over 30 Apple rejections, including some due to really bad policy. But in the end I feel it made my apps better, and led me to respect my customers more.

Edit: that said, this app doesn't look bad, but it is using entirely default settings — perhaps just using a custom tintColor on the window would have got it through.

<comment><USER25> Yes. Changing some background colours seems like it would add a lot of value to the app...

<comment><USER24> Not even the background colour — just the tint colour, which is supposed to be chosen to suit your app. The OP has left the default blue tint colour in his app.

Giving an app a key colour adds value in the same way a unique and distinctive icon adds value.

I understand that you may view apps as purely functional, but I don't believe Apple views them this way. Given the vast number of apps, both functionality and design quality are important. I happen to agree that they should reject poorly (or undesigned) apps from their store, I only wish they would be more picky.

</comment></comment></comment><comment><USER26> From the review guidelines:

* If your app is rejected, we have a Review Board that you can appeal to. If you run to the press and trash us, it never helps.

...just sayin :-)

</comment><comment><USER27> I made an app called "Foto Lock" which allows a user to choose a photo from their camera roll and disabled the ability to swipe to the next photo -- which would prevent those awkward moments of someone seeing a taboo photo.

Apple rejected it under the guidelines it provided no value or was too simple. I don't have the exact verbiage, but I can get it when I'm back at home.

They suggested I add more features... Yes my app was simple, but it solved the exact problem many people have.

Here's a video of it: [http://www.fotolockapp.com/](http://www.fotolockapp.com/)

</comment><comment><USER28> FYI: it was posted a fews days (weeks?) ago but Wolfram|Alpha has Pokemon data now. Example:

[http://www.wolframalpha.com/input/?i=charzard](http://www.wolframalpha.com/input/?i=charzard)

<comment><AUTHOR> It has holes, and it stops at 649. If you check out my other repo, you can see how I pulled out a lot of the type information.

[https://github.com/stefankendall/pokemondatacollector](https://github.com/stefankendall/pokemondatacollector)

There's an API limit of 2k requests/month, which worked just about perfectly for my ~800 API hits while grabbing the data :)

</comment></comment><comment><USER29> It looks like your app only displays data that is probably copyrighted by the pokemon company (heh, I didn't even know that company existed). I doubt that it was rejected due to simplicity.

<comment><USER30> Facts can't be copyrighted, and the trademarks of pokemon names can be used w/o permission if properly acknowledged.

<comment><USER29> I'm not a pokemon expert, but I think they are the product of a human's creative work. If pokemons were real there would be facts about them. I'm not a lawyer either, but I think creative works are covered by copyright law.

<comment><USER30> It doesn't matter if the facts are about reality or fiction. If I say 'There are 1234 notes in that Beatles song, and C-F-G-C chords are often seen there' then it doesn't matter that the song is product of a human's creative work, the facts are not that creative work.

If I say 'hobbits in Tolkien's work have hairy feet' then again, Tolkien made that fact up, it didn't exist before his writing, but it's still not copyrighted or 'copyrightable'.

Copyright is about copying the actual prose or drawings from Pokemon, but stating the facts about that prose or drawings is allowed.

<comment><USER29> "Name Charizard, Types fire/flying, electric 2x rock 4x water 2x" etc. don't at all sound like "facts" to me. They seem to be the core of an individual pokemon, they are what makes that pokemon a unique creative work. This sounds more like publishing the chords of a song, it's melody and lyrics, but not using the cover art.

Anyway, the fact that there's even a discussion about this is proof enough that apple did good to reject the app. It's not apple's job to have a team of lawyers review apps with regard to the intricacies of copyright law.

</comment></comment></comment></comment></comment><comment><USER31> I bet if you add some graphics such as the pokemon and add a background, you'd get accepted.

<comment><USER14> or rejected for alleged copyright infringement.

<comment><USER31> LOL maybe! Nintendo isn't really that big on tracking that stuff down though.

<comment><USER32> That's not the Nintendo I've known over the decades. They are very big on stopping copyright infringement and piracy. Just look at the recent Full Screen Mario copyright claim.

<comment><USER31> Oh I didn't know they acted on that.

</comment></comment></comment></comment></comment><comment><USER33> Does Bulbapedia not work very well on a mobile or something?

[http://bulbapedia.bulbagarden.net/wiki/Charmander#Type_effec...](http://bulbapedia.bulbagarden.net/wiki/Charmander#Type_effectiveness)

</comment><comment><USER20> That Pokedex app is $1.99 when I checked. Not $26.

<comment><USER34> > That Pokedex app is $1.99 when I checked. Not $26.

You need to look at the IAP:

* Kanto region Pokémon $5.99

* Sinnoh region Pokémon $5.99

* Hoenn region Pokémon $5.99

* Johto region Pokémon $5.99

Those, combined with the initial price, equals $25.95.

<comment><USER20> Aha, my bad. Sneaky!

Still, it could have been made a little more obvious. Some people may only care about Kanto. That still means it's $8, but anyway.</comment></comment></comment>


Is it possible for kids to socialize well online? - <AUTHOR> A lot of kids have been feeling really isolated during this time of social distancing. And it is impacting their mental health. At my company, we're working on ways to build meaningful connections for kids online during this time of social distancing. I'm wondering if any parents here have found good ways for their children to socialize online? Or if anyone's teacher has taken a good approach to this? Would love any examples of how you've made this work that I can share with other families who are really struggling with this right now. <comment><USER2> For what it is worth, the best online socializing I have seen my kids do was in zoom calls after formal lessons had ended and the teacher had left.

These after parties could sometimes last an hour after formal lessons had ended and I could hear kids talking and laughing together in an organic way. Something I never hear when my kids video chat with one other friend "head to head".

So, my recommendation is find a way for kids to interact in organic groups.

<comment><AUTHOR> Thank you so much. That's great. How many kids were there in the "after party" call?

<comment><USER2> My kid's classes of 22 or so probably regularly had 15 or so kids attend the online version (the fact that so many kids did not attend online classes is a disturbing aside)

After the teacher had done their lesson and left, my guess is between 8 and 12 kids regularly stayed to goof off.

</comment></comment></comment><comment><USER3> A video stream of some sort while kids are playing a game together, like Minecraft or Animal Crossing, seems to work well. The game takes the place of blocks/toy for them to interact with and takes the stress away from them having to give full attention to each other which younger kids aren't really equipped to do.

*ymmv, but it seemed to work reasonably well for my kid and his friends 6-9 yr old age range.

<comment><USER4> My kid (6 yo) does fine without the video streaming. It's also good because it teaches her to practice writing. But she goes on rants on why people don't know how to spell "your" and "please".

We have to carefully monitor her screen time because online socializing is very addictive, especially for children. They can spend morning until midnight on their phones if you let them. On the plus side, it's a good way to train discipline - they can look at their phones after homework, a shower, cleaning the dishes, and only until 10 PM. Just sneak a new chore in there every month once they do the previous chores automatically.</comment></comment>