The first rule of Lua - <AUTHOR> http://www.goplexian.com/2010/02/first-rule-of-lua.html

<comment><USER2> The reason Lua has a small standard library is because making it substantially larger would undercut one of its major strengths. (Look at the difficulties people have with embedding Python.)

There are quite a few semi-standard libraries (such as LPEG, LuaSocket, LuaDoc, lfs, Lanes, etc.), but they can evolve outside of the core language. It's always easier to add libraries than remove libraries people assume you have.

If you want a "batteries-included" setup, there's Lua for Windows (<http://luaforwindows.luaforge.net/>), LuaRocks (to automatically install packages), etc. I'm going to post several new/updated OpenBSD ports related to Lua once the ports tree is out of lock for release, too.

</comment><comment><USER3> Posted previously:

<http://news.ycombinator.com/item?id=1130389>

</comment><comment><USER4> Lua seemed very 'correctness over convenience' to me, similar to the mzscheme or haskell mindset, and I just can't get enthusiastic about language/communities like that.

<comment><USER5> "Lua seemed very 'correctness over convenience' to me, similar to the mzscheme or haskell mindset, and I just can't get enthusiastic about language/communities like that."

Interesting. The notion of correctness, that there are a set of core properties for a language that are always true, is appealing to me. It's one of the things I like about Haskell[0]. I'd much rather be able to deduce some property or behavior from a set of principles than have to memorize a set of one-offs and special cases.

In fact, that "correctness" ends up being a major convenience, especially when compared to languages that follow the idea of "These are the rules, except when they aren't".

[0] To the extent I know Haskell. It may well be that, as with many languages, this purity is put aside for certain pragmatisms. But what seems to be an effort to keep things consistent is a win for me.

<comment><USER6> You'll love K / Q (unfortunately, not open source -- but you can download a copy from the kx developer site). You have to know 20 orthogonal functions/concepts, and everything else combines from there; There's no standard library to speak off, because there is hardly a need for one; Most "library functions" in other language are idiomatic expressions in K which are shorter than the name of the function they describe: +/ is "sum" (left fold +), (+/x)%#x is average (sum of x divided by length of x). maximum running sum is |/0(0|+)\

No magic; All semantics derived from very basic blocks.

(not affiliated with Kx in any way -- just like the idea)

<comment><USER2> Are you familiar at all with J? I've done some of the labs, and I'm getting fascinated with it. J and K are closely related, I'm wondering if someone more familiar with both could compare them.

<comment><USER6> (sorry for taking so long to reply)

Yes, I'm familiar with J, and it is indeed closely related to K -- J was inspired, and in many ways evolved from A - an APL interpreter written by Arthur Whitney in one afternoon (see <http://www.nsl.com/papers/origins.htm> for more details).

J tries to be complete and nice in the mathematical sense, e.g. having forks and trains, and functional inverses, as part of the language.

K tries to be the simple practical language, rather than the philosophically consistent one: e.g. like APL and J, it is left-of-right long-right-scope, meaning 1+2+3+4+5 parses 1+(2+(3+(4+5))). However, the fold/over operator associates left - thus, +/ 1 2 3 4 5 actually computes (((1+2)+3)+4)+5 which seems inconsistent but is much more useful in practice.

K (conceptually) has 3 data classes: atom (int, float, char, symbol), list (data indexed by sequential integers) and dict (data indexed by data -- an associative array); Everything else is an implementation detail (and these matter -- they make K blindingly fast -- but you can ignore them when trying to grok k). Multidimensional arrays are implemented as "list-of-lists" or "list-of-lists-of-lists ...." etc. (thus no "boxing" is needed).

All list/dict access is done by indexing. Compress/expand are replaced by the "where" function which converts a list of booleans to their indices -- e.g. to zero all elements less than 3 you can do:

        x[where x<3]:0    / use : for assignment

K has a much simpler base (which is surprisingly sufficient in practice), and the symbols make more sense to me. YMMV

<comment><USER2> Thanks, that's helpful. J and K do some sort of cache-friendly dataflow analysis (not just lazy evaluation), yes?

I've seen that draft J interpreter before - It crashes immediately now, but I spent most of a Saturday morning with GDB picking it apart. That convinced me there's deep ideas there, not just a brainfuck-ish obfuscated thing.

<comment><USER6> Actually, they don't. They just have cache-friendly primitives, and a compact interpreter that mostly sits within the i-cache of modern processors.

It makes a world of a difference -- staying in the i-cache and doing mostly sequential access is easily 10 times faster than random, non-i-cache-friendly access.

<comment><USER2> Again, thanks.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> Don't talk about Lua!</comment>


SaaS-Founder and not Good at Math? Go learn it. - <AUTHOR> http://usersnap.com/blog/3-tips-for-saas-startups

<comment><USER2> I found this interesting: "this advice is printed on real paper and motivates us to eliminate our weak spot every single day." Does this ever work against you in terms of demoralizing your team?

<comment><AUTHOR> It's not like that we papered all our walls with negative advice. We do this well balanced (having positive and negative feedback).</comment></comment>


When Your Amazon Purchase Explodes - <AUTHOR> https://www.theatlantic.com/technology/archive/2019/04/lithium-ion-batteries-amazon-are-exploding/587005/ <comment><USER2> What strikes me from this article is that they spend so much time on the batteries and less time on the fact that Amazon is untrustworthy. At this point, I don't buy anything from Amazon that is more complicated than a spatula, and even then I'm not 100% confident I won't get one made of lead and covered in asbestos. When they say that 50% of Amazon sales come from the marketplace, I take that to mean 50% of Amazon's sales are of fake or counterfeit products.</comment>


Google Compute Engine Is Down - <AUTHOR> https://status.cloud.google.com/incident/compute/15045 <comment><USER2> Google Cloud Platform is a cluster, in the [http://www.urbandictionary.com/define.php?term=Cluster&defid...](http://www.urbandictionary.com/define.php?term=Cluster&defid=1424405) sense.

Amazon eats their own dogfood with AWS services, while Google does not, and no amount of marketing is going to make up for that. Every time I give it a try, I find random bugs everywhere, and I know there are not enough internal engineers feeling the pain to get those bugs fixed.

<comment><USER3> AWS had its own share of massive outage. I had a look at AWS and GCE incidents history and it looks the frequency and magnitude of incidents is quite similar. Do you have any factual information that contradicts this?

<comment><USER4> AWS asks you to design your architecture for failure and work across multiple availability zones. Its complicated and expensive but you can avoid that. With google from the other end you can't. and that's the price you pay when you choose PaaS over IaaS

<comment><USER5> Google Compute Engine is also an IaaS. You can also design your architecture for failure and work across multiple availability zones by using GCE. GCE is not GAE.

<comment><USER6> GCE had a multi region outage so multi zone within a region wouldn't have helped in this case.

<comment><USER3> I agree. This is the reason why this outage is more serious than others.

</comment></comment></comment></comment></comment></comment><comment><USER7> We found that we could still go into their console, SSH into the boxes (from the browser-based thing), and reboot the boxes from there. When they came back up, they worked. May have just been good luck, just happening to come back up on hardware that's not behind the bad routers or whatever it is.

Edit: Also, we found that our instances were reachable (they mostly provide a JSON-based API over HTTP), in the sense that they were getting the incoming HTTP/HTTPS traffic that they normally do. But the responses were not getting back out to whoever requested them... lost on the way back out or something.

<comment><USER8> This worked for me too, about an hour ago. So not just good luck it seems :-)

</comment></comment><comment><AUTHOR> All our status VMs are unreachable: [https://cloudharmony.com/status-for- google](https://cloudharmony.com/status-for-google)

</comment><comment><USER9> I was going to ask them If they will give compensations, but I can't contact them as I don't have "silver support" :/

</comment><comment><USER10> On any post incident reports - shall we ever come out of using the most common and ambiguous technology lingo "network issue". If it were identified a network issue (Route black hole, prefix hijacking, resources depletion or consistency issues etc) then you probably know enough to elaborate on the specifics.

</comment><comment><USER11> Preliminary cause is described here: [https://status.cloud.google.com/incident/compute/15045](https://status.cloud.google.com/incident/compute/15045)

</comment><comment><USER12> "Incident began at 2015-02-19 15:59"

Is that in future or am I missing something?

<comment><USER13> I believe it's a typo as all other references seem to point to 22:59 Feb 18 2015.

It's 22:59 Feb 18 2015 also for Google Cloud SQL [https://status.cloud.google.com/incident/cloud- sql/17006](https://status.cloud.google.com/incident/cloud-sql/17006)

Edit: It turns out this was the case. Updated now.

</comment></comment><comment><USER8> Ssh'ing from the gce web console seemed to make my instances reachable. Afterward ssh from terminal and web access worked.

</comment><comment><USER14> 0:30 passed and no update?

Who would have guessed that? Anyone?

<comment><USER15> There are updates and clear times for when to expect the next update.

<comment><USER14> Right, when I posted it said the next update would occur at 0:30, but it was after 0:30 and there was no update.

</comment></comment></comment><comment><USER16> The page says that all issues are resolved now.</comment>


Apple is rejecting Coronavirus apps from the App Store - <AUTHOR> https://forums.developer.apple.com/thread/129290 <comment><USER2> Good for you Apple as sadly many people can not handle data responsibly and fear spreads far faster and has more impact than any virus.

Looking at HN new and recent spike in submissions about this human malware. I wished we could all make sure just tech related ones get thru and discuss the tech aspect instead of falling foul of the usual tangents as politics is starting to creep in upon many threads now.

Me, I'd be happy to filter out all human malware articles as the level of debate in many is akin to being upon twitter, with the same mentalities playing out and I quit twitter to get away from such toxic dramalama mentalities.

Be well, and above all - Don't panic.

</comment><comment><AUTHOR> This isn't an isolated case – I made a corona virus tracker over the weekend, and was rejected for the same reason as in the thread.</comment>


Indigenous Maize: Who Owns the Rights to Mexico's 'Wonder' Plant? - <AUTHOR> https://e360.yale.edu/features/indigenous-maize-who-owns-the-rights-to-mexicos-wonder-plant <comment><USER2> I'm quite against the private ownership of biological lifeforms, whether the owner is Monsanto or an indigenous village.

<comment><USER3> A simple upvote is not enough of a show of agreement for this perspective. Genetics should not be own-able.

<comment><USER4> Genetics is information. Do you believe information should not be ownable? I think we should not be able to own any information. Information is like fire. It takes no space and costs nothing to replicate. Taking the concept ownership developed with physical objects and applying it to information is ridiculous. It's like owning clouds.

<comment><USER5> There is a difference between information naturally occuring and created by someone.

<comment><USER6> Information is always created by someone. Creation does not necessarily mean ownership.

<comment><USER7> Wait... Who created the information in DNA?

How does that tie to ownership?

<comment><USER8> Nobody created it, the argument makes no sense in the case of naturally occurring DNA.

<comment><USER4> Physical objects are not the same as information. We create all information. Hard drives are just atoms arranged a particular way and how we interact and process those atoms adds the information layer on top. Same goes for DNA.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Discussion in Farm Progress.[1] The maize plant in Mexico requires a 9-month growing season, so it's only useful in near-tropical climates. Work is progressing to see if the trick that plant uses can be adapted to something that grows faster.

For a plant to fix its own nitrogen carries an energy cost. So the plant grows slower. There's a tradeoff here.

[1] [https://www.farmprogress.com/biotechnology/nitrogen- fixing-c...](https://www.farmprogress.com/biotechnology/nitrogen-fixing-corn- farming-s-holy-grail-when)

</comment><comment><USER10> Previous post on the 'discovery' for reference: [https://news.ycombinator.com/item?id=17721741](https://news.ycombinator.com/item?id=17721741)</comment>


Foods for healthier people and a healthier planet [pdf] - <AUTHOR> https://www.wwf.org.uk/sites/default/files/2019-02/Knorr_Future_50_Report_FINAL_Online.pdf <comment><USER2> It's worth noting for anyone that advocates this sort of diet that it is a luxury. Many people mention that you can make good food on such a diet, but it is doubtless time-consuming. What of those who work by the hour? And the ingredients are expensive. Many of the fancy foods on here come from Whole Foods, not HEB. Even if they become affordable, the time aspect is still important; most don't want to spend 2 hours cooking regularly.

Honest question for those who follow such a diet: how do you not feel hungry? If I don't have meat, I tend to stay hungry. I regularly eat lots of meat for this reason, and am still very slim (no health issues), so it's not like it's hurting me. I tried not eating meat for a month or so, and I perform measurably worse (comparing my output on days when I ate meat vs not). Maybe it just doesn't work for everyone?

<comment><USER3> Meat is very calorie dense due to the fat content -- if you don't eat it, you need to substitute a plant food that is also relatively calorie dense (like beans, lentils, or potatoes) but also, probably just eat more of it. I found that I needed to eat more when I became a vegan, and even more now that I'm trying to put on muscle mass.

Also, beans are a good substitute because they tend to dampen blood sugar swings, due to the way they feed our gut flora. And a sudden drop in blood sugar is a big reason for feeling hungry. This property of beans is known as the "second meal effect".

Note that just because you are slim and not having health issues, does not mean that meat is not gradually harming your health. There is rather overwhelming evidence that the cholesterol and saturated fat in meat is harmful to our circulatory health, and also that meat protein intake is linked to cancer growth by triggering the body to create IGF-1 (Insulin-like Growth Gactor 1).

Many people feel like (or are told) that they are craving protein, when in reality what they are craving is just more calories. Consider that most of us have had a lifetime to figure out what works for us with a meat-based diet, and were taught by our parents -- switching to a different diet isn't trivial. There are lots of good resources out there, but unfortunately, also lots of misinformation.

<comment><USER2> > you need to substitute a plant food that is also relatively calorie dense > (like beans, lentils, or potatoes)

I tried this; not much help. I was used to a diet of essentially no carbs (and had found it beneficial for me), and actually switched because I had a friend who would not shut up about not eating meat and wouldn't stop until I did. I can indeed eat more, but occasionally I would get full and still not feel "full".

> meat is harmful to our circulatory health

I'm not so sure about this one. I've read about the adverse effects of IGF-1 with respect to cancer, but that seems to be more because it is a growth hormone. Is it any wonder a growth hormone can cause caner to grow? IGF-1, by keeping new cells forming, could help mitigate things like lower bone density and lower muscle tone with age.

I've tried replacing protein-calories with carb-calories. I gained a good amount of weight doing so, and didn't feel nearly as good. I'm much happier and healthier back on my old diet. Lots of meat (mostly white)/eggs/fish, a good amount of veggies, some fruit, lots of nuts, lots of dairy. Almost no sugar/soda/fried stuff/other such junk.

Maybe different people do best on different diets, and we should recognize that what's good for one is not always good for another. What irritates me is when people get sanctimonious about it and say that I'm evil if I don't eat their diet, even when my quality of life, health, and productivity is significantly better doing it my way.

<comment><USER4> > I tried this; not much help. I was used to a diet of essentially no carbs > (and had found it beneficial for me), and actually switched because I had a > friend who would not shut up about not eating meat and wouldn't stop until I > did. I can indeed eat more, but occasionally I would get full and still not > feel "full".

The question I ask when people bring this up is always: what type of carbs? Generally you know you're eating junk carbs when the ratio of carbohydrates to fiber is greater than 5 to 1 [0]. Processed carbs will help you pack on the weight fast, especially since most processed carbs are all coming from non- whole grains.

A lot of my friends/colleagues like to claim they're on a low/no carb diet. When posed with the question of how they get fiber or critical vitamins/nutrients they're failing to understand that all plants have carbs. A cup of kale has 6 grams in fact. The better approach should be to look at what type of carbs you're consuming vs eating less of all of them. The SAD consumer is often getting very little dietary fiber, unfortunately and even more so now with a lot of the misinformation about how carbs are blanket bad.

[0] [https://nutritionfacts.org/2018/05/08/follow- the-5-to-1-rule...](https://nutritionfacts.org/2018/05/08/follow- the-5-to-1-rule-for-packaged-foods/)

<comment><USER2> > what type of carbs?

When I say carbs, I mostly mean grains, potatoes. I know most everything contains at least some, but it's a bit of a colloquialism and hard to avoid. Some occasional beans, oats, etc. I tried eating more of these as part of a diet, and beans were somewhat of a help, but I still didn't feel the same.

> A cup of kale has 6 grams

I hate kale. Everyone pushes it as a superfood, but the texture is disgusting. Also, a recent report showed it had tons of pesticides. I can't help wondering if people eat it out of the same mentality that makes us think medicine should taste bad.

> dietary fiber

I think I put this above, but I ate beans, nuts, some oats, and fruits and veggies. I just had a lot of meat as well (as in, half to three-fifths of my plate). I wasn't on the typical Western-pattern diet by any means.

I honestly believe a plant-based diet just doens't work for everyone. And I will continue eating what works best for me, though I'm always open to trying something that could be better (the entire reason I tried plant-based in the first place).

<comment><USER5> Kale is really nice if you freeze it, boil it then put it in mashed potatoes. Throw a smoked sausage and a bit of bacon in and you're sorted.

[https://coquinaria.nl/en/dutch-winterfare/](https://coquinaria.nl/en/dutch- winterfare/)

<comment><USER2> And we're back to the time issue. Also, I'm not sure I should have to do that much to food (destroy the internal structure, cook it, and cover it up) just to make it palatable.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> (Side note: that is one gorgeous document.)

After watching the excellent documentary "Eating You Alive", I have mostly switched to a whole-food plant-based diet and feel fantastic, although I do eat the occasional pair of eggs. The big difficulty with the diet is avoiding all the refined oils that permeate our packaged food culture. Luckily, my wife is a professional cook and still cooks at home.

That said, this document already has some of my favs and has added a ton of new ideas. This crazy diet is really difficult just from a "finding foods I can actually eat" sense. As such, I have lost a few pounds but one thing I notice for sure is that my skin is in much better shape now. The beautiful thing about the diet is that I find that my body can handle cheat foods much better and I feel happy to get back on the diet right after.

Of all the things I miss, I miss cheese the most, but coffee with oat milk is just fine. Ultimately, I think the beauty of this diet is that I am forced to eat things like beans, tubers, tofu and whole grains for lack of anything else to eat. And I'm usually so dang hungry that I love them, thanks to my wife's efforts.

Oh, and the diet is actually much less expensive, especially when you buy dry beans.

<comment><USER7> Did I miss something in this comment? I don't understand the downvotes.

<comment><USER6> Thanks for asking the obvious, but I sure don't know and the only people who do have a clue (i.e. those who did the downvoting) probably don't have the guts to explain themselves because it would likely prove their pettiness.

That we live in a world full of cowards is the sad-ass truth.

</comment></comment></comment><comment><USER8> Knorr Future 50 Report? Title should be changed to inform that it's not WWF report alone.

<comment><USER9> I scanned the report for Knorr's involvement and nothing seemed fishy to me. There was this paragraph:

 _This was assessed by Knorr cross-functional teams of marketers, nutritionists, chefs, and product developers spanning across Asia, Africa, North America, South America, Europe and Australia, who answered the assessment questions with yes /no/maybe for every ingredient. The data were collated and assessed to determine which foods should potentially be eliminated based on responses. If more than half of the countries answered 'no' to one of the questions, the ingredient was eliminated. The relative nutrient density scores (NRF) were considered when choosing between foods with similar input, ensuring the foods in the final list would be nutritious._

Then later near the bottom:

 _Knorr and WWF have joined forces with other leaders in nutrition and sustainability to develop Future 50 Foods_

 _In writing this report, Knorr, WWF and Adam Drewnowski are grateful for input and review from experts at Bioversity International, Crops For the Future, EAT Foundation, Edelman, Food and Land Use Coalition (FOLU), Food Reform for Sustainability and Health (FReSH), GAIN, Global Crop Diversity Trust, Gro Intelligence, Oxfam GB, SDG2 Advocacy Hub, Wageningen University and Yolélé Foods. This report ultimately reflects the views of Knorr, WWF and Adam Drewnowski. The creation of this report was led by Dorothy Shaver, Registered Dietitian and Global Knorr Sustainability Lead. It was published in February 2019._

</comment></comment><comment><USER10> In case you decide to experiment with some things on the list...saffron milk cap mushrooms turn your urine reddish orange. Harmless, but a potential scare if you aren't aware.

</comment><comment><USER11> Fava beans. You can make a very good falafel out of them and they're cheap. I believe falafel is the future

<comment><USER12> I admit I've never had flafel - a quick google does make them look tasty. I'm going to definintly look into cooking some.

<comment><USER13> I've had falafel and don't understand why non-vegetarians/vegans rarely eat it. It's tasty like any other food (and more tasty than some of the stuff we do commonly eat like bread!).

</comment></comment></comment><comment><USER14> Of the five Guiding Principles on page 52 only about 1.5 of them are primarily concerned with the nutrition content of the food. The rest are mostly focused on their environmental impact.

Not that there's anything wrong with that. And clearly that's aligned with the mission of the WWF. But I think you'd get a much different list if it was just about maximizing the health of the eater. E.g. meat.

When I choose food at the grocery store I'm focused on which are better for me, not Earth. If I were convinced that there is a genuine discrepancy between those goals, I'd likely still choose me. Am I the bad guy?

<comment><USER15> Is anybody the "bad guy?" Is anybody _not?_

The Earth will fix itself, eventually, no matter what we do to it. It's seen worse. I mean it apparently went from a ball of lava pelted with meteorite- nukes to the only verdant garden we have ever known, and it has already been through at least a few cataclysms.

Even if the planet disappears overnight, the universe at large will still go on as if we never existed.

You choose the scale you want to care about, and some levels require some sacrifice on other levels.

<comment><USER16> >The Earth will fix itself...

I suppose this depends on your definition of "fix," but this sounds suspiciously like the Gaia hypothesis:

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

Which is closer to wishful thinking than science. Sure, Earth will go on, because Earth doesn't care. But humans are facing a climate catastrophe if they do not course-correct their impact on the planet, and that is what we mean by "good for the Earth" \-- that is, good for the maintaining the planet as a place where we want to live.

</comment></comment></comment><comment><USER17> I think the problem for most people not eating healthier is lack of knowledge in preparation, cooking and storing. Recently I purchased an instant pot and it makes cooking healthy food extremely easy with decreasing prep & cleaning time. I just throw everything into this pot with water, hit a few buttons and wait 30mins to an hour. All goes into containers in the fridge and can be reheated in the microwave. I can make a good week worth of food in a few hours. I'm still trying to perfect different meals since I never used to cook.

</comment><comment><USER18> Why are all 50 items on the list "SNAP INTO A SLIM JIM!"? What do you mean the "other" WWF?

<comment><USER19> Came here for this comment. For me there is no other WWF, damn it!

</comment></comment><comment><USER20> > Eating less common varieties of vegetables... drives demand which will > increase the variety of types of crops grown, which, in turn, makes the food > system more resilient

I _get_ this, but it seems fundamentally at odds with economies of scale which surely the natural market would gravitate towards. Seems like government intervention would be necessary here to overcome the externalities that growing a single variety at extreme quantities creates?

<comment><USER21> Growing a single variety is likely too risky. While you may be able to minimize the risk with artificial watering, pest control etc, if it strikes, you'll end your company. Most companies don't aim for a series of all-or- nothing-bets even if the odds are in their favor on each one, they hedge their bets.

<comment><USER20> This might be true, but there are plenty of cases where this is exactly the case (e.g. bananas, rubber). Also, as the article points out, there are "heirloom" crops which would surely mitigate this danger somewhat but would presumably still be perfect for economies of scale - e.g. due to the reduced marginal cost for R&D to build machines etc. appropriate for harvesting?

<comment><USER21> Bananas are an example of a local single-crop bet, and they are hedged by planting different crops elsewhere. There certainly is a desire to reduce variety, but it's likely to come down to a few dozen plants (out of thousands, and for each one, there have been hundreds of variations and sub-types), not to a single one - too risky, and regional conditions are too different to have a one-size-fits-all-crop.

</comment></comment></comment></comment><comment><USER22> I bookmarked this a couple weeks ago, to help with your own note-taking, here's the list:

# Algae

Laver seaweed

Wakame seaweed

Beans & Pulses

Adzuki beans

Black turtle beans

Broad beans

Bambara groundnuts

Cowpeas Lentils

# Cacti

Nopales

# Cereals & Grains

Amaranth

Buckwheat

Finger millet

Fonio

Knorasan wheat

Quinoa

Spelt

# Fruit Vegetables

Pumpkin flowers

Okra

Orange tomatoes

# Leaf Greens

Beet greens

Broccoli rabe

Kale

Moringa

Pak-choi

Pumpkin leaves

# Mushrooms

Enoki mushrooms

Maitake mushrooms

Saffron milk cap mushrooms

# Nuts & Seeds

Flax seeds

Hemp seeds

Sesame seeds

Walnuts

# Root Vegetables

Black salsify

Parsley root

White icicle radish

# Sprouts

Alfalfa sprouts

Sprouted kidney beans

Sprouted chickpeas

# Tubers

Lotus root

Ube (purple yam)

Jicama

Red Indonesian sweet potato

<comment><USER23> It looks like you left out the # next to Beans and Pulses.

</comment></comment><comment><USER24> So my depression, anxiety and adhd went away when I stopped eating plants. I have one sack of plastic waste per month and I buy locally and I spend about 16€ / week on meat and a few bucks more on cheese and eggs.

<comment><USER25> What qualifies you to extrapolate this single case into a global policy suggestion (as you seem to be implying)?

</comment></comment><comment><USER26> Maybe we should eat foods native to our culture and region. Being from Louisiana, I eat plenty of meat (I have no ethical qualms with animals dying so I can eat meat, its apart of life), vegetables that can grow in the region, starches that also grow in the region e.g.,, converted Louisiana white rice, and take in a good portion of dairy. I don't need my food imported from around the world, I eat what is grown and raised here. Couple that with an active lifestyle and I don't see any need to change.

<comment><USER13> > I have no ethical qualms with animals dying so I can eat meat

Of the people I know that do not eat meat, including myself, they don't not eat it because of religion or animal pity...

</comment></comment><comment><USER13> > The Bambara groundnut is considered 'complete food' because of the balance > of macronutrients accompanied by the amino acid and fatty acid content.

Is a "complete food" a food that supplies most of what we need? I've heard one could almost live on potatoes, with only some vitamin supplements, is that also a 'complete food'?

<comment><USER27> > I've heard one could almost live on potatoes, with only some vitamin > supplements, is that also a 'complete food'?

Yes. Here's an article about it, and some one actually tried it for a while [1].

[1] [https://www.popsci.com/nutrition-single-food- survival](https://www.popsci.com/nutrition-single-food-survival)

</comment></comment><comment><USER28> The tone of the comments in this thread terrify me. We have exchanged one set of preachers trying to tell us how to live with a new set of preachers telling us how to live and it is just as bad or worse. Always a group of people trying to suppress your freedom and advertise their virtue.

<comment><USER29> What does your comment even mean? "Here's 50 foods that reduce impact and feed more people"

"STOP OPPRESSING ME!"

Really? Like, if you don't think these foods are worth your time, maybe just do your own thing? These foods are already widely eaten by a whole range of people, cultures, and socieconomic statuses.

<comment><USER28> I will happily do my own thing, until the do goodies decide my hamburger is destroying the environment and adding to national health costs and decide to tax it into oblivion. The article wasn't bad, I was more offput by the comments. I will edit my post to remove the reference to the article.

<comment><USER30> Well are you disputing the damage inflicted to the environment by meat consumption, or are you saying you should be allowed to harm the environment with no limitation or consequence whatsoever?

<comment><USER28> Yes to both. Certified climate change skeptic right here.

</comment></comment></comment></comment></comment><comment><USER31> Looks yummy.

</comment><comment><USER32> So... a Vegan diet?

No thanks.

<comment><USER33> This list recommends many foods that are rare in common western diets. You can eat none of the foods, some of the foods, or exclusively all the foods listed.

</comment></comment><comment><USER34> This is a joke, right? Call me when they sell this at my local groceries' (for cheap).

<comment><USER35> Many of the items on this list are very cheap today.

<comment><USER36> This. Western world has a bit skewed view of food anyway, since most distribution is handled by large companies that optimize for their own profit, and this applies to producers as well. We couldn't survive without modern "food chains", but that does not mean the crops used by the modern processes are the only viable ones. Rather, they are the most popular ones for which the processes have been optimized for.

<comment><USER37> >Western world has a bit skewed view of food anyway, since most distribution is handled by large companies that optimize for their own profit

Where in the world is food distributed by non-companies for no profit? Venezuela? Cuba?

<comment><USER11> Venezuela is actually capitalist, almost everything is privately owned and not government run.

<comment><USER37> >Venezuela is actually capitalist,

Really? Source? Because the government took over and controls the means of production. So you can see how I am confused by you saying that Venezuela isn't "really" socialism.

Or you can answer the topic at hand. Where is food distuributon successful where "companies optimizing for profit" is not the case.

<comment><USER11> The government has intervened to bring food to the poorest people, who have been cut off by corporations which do actually control the food supply. The government never took over the means of production.

</comment></comment></comment></comment></comment></comment></comment><comment><USER38> > FOCUS ON PLANT-BASED FOODS

A great idea if you want to save the planet by having people die out from exploding (pun intended) obesity.

<comment><USER29> What's the pun? And what's the connection between a diet primarily built around plants and obesity?

</comment></comment><comment><USER39> First thought- HELL YAH I'M READY TO SNAP INTO A SLIM JIM. Second- disappointment :/</comment>


Encouraging interviewees to say "I don't know" improves performance - <AUTHOR> http://morehappy.me/2013/10/08/encouraging-interviewees-to-say-i-dont-know-improves-performance/ <comment><USER2> I think part of this conditioning from taking tests in school. For twelve or more years of your life, in any situation where you are asked to demonstrate your knowledge, a null response is treated in the same negative fashion as an incorrect response, and getting outside help is disallowed. No wonder we try and guess, we've literally been trained for years that it's the best approach! Compounding that, an interview is the one situation in "the real world" that most resembles a testing situation from grade school, which will bring back all those bad habits.

<comment><USER3> Actually, the SAT (American college entrance exam) penalizes wrong answers more than non-answers. A non-answer gets you no points, but a wrong answer gets points subtracted.

<comment><USER4> Barely. IIRC it's 0 points if blank, -0.25 if wrong, so if you eliminate 1 choice it's worth it to guess. I'd like to see it be -5 points if wrong, since this is more reflective of the real world. When I entered the industry as an electrical engineer this was a difficult transition for me. In school, you're incentivized to guess and BS. But in the real world, the penalty for being wrong is HUGE.

<comment><USER5> > in the real world, the penalty for being wrong is HUGE

In _some_ situations (committing an integrated circuit design to manufacture probably being one), the cost of being wrong is pretty big.

Other situations where there's a tight feedback loop and you can make/propagate changes quickly (say, most web app software development), it's less so.

<comment><USER4> True. But generally the cost of guessing and doing something wrong is much higher than saying "I don't know" and asking someone else or Googling the result. School, through homeworks and especially exams, trains us to do our best without outside help. I would argue that this behavior is maladaptive to engineering in the real world.

</comment></comment></comment></comment></comment><comment><USER6> Some commenters, and possibly the author, want this advice to extend to job interviews, but the reason an interviewer is pushing you to answer a question isn't that they want you to be right or wrong. A good interviewer wants to get a look into how you think and how you approach a problem.

An even better interviewer will make that clear, by telling you "there's no trick here", "I don't know the answer myself, let's see what we can figure out", or "there's no one right answer, I just want to know what you can see here". A trick I've employed a fair bit lately to get a reserved interviewee to start working with a question is "What is the worst solution we could provide to attack this problem?" I'll even possibly go as far as offering my own horrible solution, and asking them where we fo to improve on this.

And I do mean worst. I haven't met a candidate yet who can't at least throw out ideas on how to improve my horrible solutions, and at that point the ball is rolling.

<comment><USER7> > _" And I do mean worst."_

I am not convinced that throwing INTERCAL at a candidate is a good way to roll. ;)

But seriously, I think that you are spot-on with this approach. Interviewing, done effectively, is about getting a fleshed out idea of the capabilities of the candidate, not just getting correct answers. Perhaps the best response to give or expect, when the interview gets stuck, is _" I don't know, but..."_ Even on questions that aren't coding questions, these are often good responses: _" I don't know, but [this is how I would find out]"_ or _" I don't know, but [this is a topic or problem that I believe is related]"_ .

<comment><USER8> For what it's worth, my 'worst solutions' always involve a guy with a van driving around hassling people in person. Somehow people never accept my proposed solution, so I haven't been able to test it.

</comment></comment></comment><comment><USER9> I have long suspected this to be true. That's my argument against mandatory voting, because if people can choose not to vote, they can express they don't know and hopefully leave the result on people who feel they do know.

However, it's a bit unclear how this ties together with Dunning-Kruger effect (which is also used as an argument against democracy). The D-K effect would suggest that if you allow people to express doubt, the experts will doubt more, and overall performance will decrease.

It would be interesting if someone did a psychology experiment on that. (I am actually in favor of doing these kinds of demonstrations in high school, because it's in my opinion important for people to understand how democratic voting works, for example the fact that voting won't get you a simple average of the results - which is usually used as an argument against democracy.)

<comment><USER10> > Dunning-Kruger effect (which is also used as an argument against democracy)

Democracy isn't about having an efficient system, it's about having a stable system. Democracy is an awful way of getting things done, it's just a reasonably good way of stopping very bad things from happening.

<comment><USER11> Favorite quotation from Kelly Johnson, former head of the Lockheed Martin Skunk Works:

> Voting on everything prevents anything very stupid from happening, but also > anything very brilliant.

You can guess who called the shots in his aircraft design teams. He did, because he _was_ truly fucking brilliant.

<comment><USER10> Yes, exactly. It's inefficient, that's the point of it.

He didn't have the same control over things as a dictator would. You can do these things in business more safely because it's less likely to kill large numbers of people.

<comment><USER11> Yeah, that's the value of a "benevolent dictator" in business. Skunk Works had one, Apple, Python, Ubuntu, and SpaceX too, and all blazed incredible trails in their fields.

</comment></comment></comment></comment></comment><comment><USER12> When reading the title, I assumed this was talking about job interviews, a much different type of interview. How do these ideas apply to job interviews? Is it a good idea for an interviewer in a job interview to encourage interviewees to say I don't know, and should you be more ok with saying I don't know and then elaborating in a job interview?

<comment><USER13> On the job interview point:

I'm always as truthful as possible in a job interview - especially technical ones. My background is not in tech, however I'm an autodidact with programming and whenever technical questions are asked that I may not know, I'll say it. And then I'll say how I think it should/would be done, or the steps I'd take to figure out the answer and solve the problem. Not sugarcoating some of my technical inability has faired me well so far. And then after I hear the question, think about the steps to do it, and/or get coached by the interviewee - I know the answer, and am ready to use it in my technical/creative arsenal. I feel like it's a win-win to not bullshit about something I don't know.

</comment></comment><comment><USER14> I'll usually ask at least one question in an interview to see if the candidate _will_ answer with "I don't know" or ramble on incoherently making something up. Guess which I prefer.

</comment><comment><USER15> One of my best technical interviews was from a lead engineer who simply asked more and more difficult questions until he found your limit (believe me, he knew more than anyone he would interview). His interest wasn't in what you knew so much as how you reacted when you hit the limits of your knowledge.

There's a lot of value in that approach. I don't use it myself when interviewing people, but I do try to accomplish the same end.

<comment><USER16> >believe me, he knew more than anyone he would interview

He wouldn't really need to. By asking questions about very domain-specific knowledge, he could still achieve the same effect with anyone who didn't have a freakishly similar set of expertise.

</comment></comment><comment><USER17> Corollary: "There's no such thing as a stupid question", because you're not afraid to be wrong. All creative and innovative people are like this, without exception, IMO. As Richard Feynman said in the title of an autobiography: "What do you care what other people think?"

Everybody wins when people leave their egos behind.

<comment><USER18> Sure. But its not so hard to come up with a question that sounds pretty stupid. What is Monday? Can I eat your shoe for lunch? Why do you have to interview me before hiring me?

</comment></comment><comment><USER19> I've found that the ease with which someone answers "I don't know" has a positive correlation with their wisdom in general. (Of course, if they answer "I don't know" to everything, they probably just don't care, and that's a separate problem.)

<comment><USER20> I don't necessarily disagree with you. I think it is true that having too many I don't know means the person is probably not familiar with the area he's facing. The I don't care part is probably a bit rare. You probably have to look at body language (i.e. facial expression, for example).

</comment></comment><comment><USER21> One thing i always ask on that chat before the trivia questions, is what tech news sites the candidate read. And where he usually goes to were he wants to know the correct argument order of a function he does not use too often.

That usually gives me a better grasp of how he will solve a real world problem than the trivia questions.

But when hiring for teams that need to get specific work done fast, i do not underestimate the value of the trivia questions as it will show me the ramp up time to get that work done. Of course i apply that on top of the other means to get an idea if the candidate is a good fit overall.

There is no silver bullet for hiring.

</comment><comment><USER22> The answers may get better, but don't you want to find out which candidates are more likely to bluff when they're wrong? The point of the interview isn't for candidates to give you answers that are as correct as possible. If this were the case, you'd mail them a list of questions, and ask them to get back to you in a week. One goal of interviews is to find out how people behave when they don't know. This is why I try to take people to the end of their knowledge, no matter where that end is.

</comment><comment><USER23> In an interview i have never had a problem saying that I don't know something or that I do know about something but can't recall the specific answer.

I normally try and turn that scenario into a quick discussion where I hopefully let the interviewer display their vast knowledge and insight. Assuming the question is relevant I am always geniuenly interested in finding out about something I don't know. Seeing that I am not being paid to take the interview I feel it is only fair that I get something out of it.

</comment><comment><USER20> Nice study. I think it's quite intuitive. When you are forced to spell you are force to say something. So by saying "I don't know" it is natural to continue with "I don't know but I think" and then it continues with more words.

Whereas to tell someone in advance "don't you dare to tell me I don't know" the person will just hold on to the thoughts until he or she has to spell that thought out (because he or she has to say something to get out of the misery).

</comment><comment><USER24> This is obvious. See also the child abuse panic of the 80s, where kids were pressured to make up stories of abuse. And the general fact that eyewitness testimony is unreliable.

</comment><comment><USER25> Being comfortable with saying "I don't know" a lot is something I had to kind of train myself to do. It's part of realizing that this is a truly enormous field that we're in, and nobody could possibly know more than a fraction of it. Anyone who doesn't say it much is either spending all of their time in a subset of the field that they know very well, or is throwing around bullshit, either from fear or bravado.

</comment><comment><USER26> How about just ditching contrived interview questions because companies have no good science or data to establish the correlation with hiring the best people?

It seems past performance would be more reliable. What have you created and what was your role in it? Can you articulate your passion for the problems we are solving? Can you show that your colleagues respected your work and benefited from collaborating with you?

</comment><comment><USER27> A good interview question should give space for exploration - it shouldn't involve esoteric questions or things that are easily google-able. Good interview questions will give you insight into the candidate's thought process, not what they've memorized beyond fundamentals. So the results of this study seem irrelevant.

</comment><comment><USER28> It's a nice idea, and it makes sense, but the sample size – 26 people per group, multiplied by 2 for two experiments – is too small to reach any definite conclusions.

</comment><comment><USER29> lucidity as the fastest path to clarity ?</comment>


An FPGA Is an Impoverished Accelerator - <AUTHOR> http://homes.cs.washington.edu/~asampson/blog/fpga.html <comment><USER2> What a useless article.

The big problem is software people thinking that they have any concept of actual hardware design.

If they understood hardware, they would understand that an FPGA is the least efficient way to accomplish anything.

Routing is sparser than any chip. You burn 10-100x the transistors to do the same task. FPGA's are hot and slow.

Even for signal processing, an FPGA is going to be quite hard pressed to beat a 2.0GHz ARM with Neon extensions unless it is _very_ expensive and your algorithm is very dataflow oriented. How many ARM's can I put on a board for $10,000-$100,000 (the very highest end FPGA's)?

You use an FPGA because you have a low-volume application that you can't do any other way, and your application has enough margin that you can eat the cost of the FPGA. And you are always looking to wipe out that FPGA and replace it with a microprocessor because it is so much cheaper and easier to deal with.

<comment><USER3> "FPGA is the least efficient way to accomplish anything" Define 'efficient'. If you're talking about cost, it costs far less than an asic below a certain volume, and it certainly costs less in tooling and development.

"FPGA's are hot and slow" \- compared to a full custom IC? Sure. FPGA's improve with every process generation (like all silicon devices) and an ASIC design won't intrinsically take advantage of those advances; an FPGA design that didn't meet it's power or thermal envelope 5 years ago might easily do so now, without incurring the NRE of the ASIC - add to that the fact that the first stage of the ASIC design can be prototyped via the FPGA, and you have a viable product without the risk of a bad ASIC.

I've been involved in converting several Virtex-2 designs to newer devices - the huge reduction in power and increase in available logic has led to some extremely impressive gains. There is work to do in such a conversion, but it is understood work - there's no real mystery to updating the CoreGen components.

Agree it is a useless article though, because digital logic design is not programming (it is architectural work). There is no 'abstracting' that away - all attempts thus far have failed miserably (Vivado HLS, for example, turns out designs that work but are HUGE compared to what even a passable designer can do).

<comment><USER4> >There is no 'abstracting' that away

While hardware design often has awkward constraints that make generalised abstractions tricky, there is still a _lot_ that can be done to improve over Verilog or VHDL. I've been working in Bluespec for a couple of years now, and the difference is night and day. Having a modern type system in our HDL makes experimentation and iteration so much easier.

</comment></comment></comment><comment><USER5> I've heard several computational physicists make this complaint to NVIDIA sales reps. The standard response, which I'm sure is correct, goes as follows.

Designing a fast processor is very expensive, far beyond the means of the research community. The only way anyone can afford it is to sell millions of the things to gamers. To put $1 of special hardware on your numerical card, we have to put it on 1000 graphics cards too, so you'd have to pay $1000 for it. Bad luck: scientists are destined to hack hardware that was designed for larger markets.

<comment><USER6> Yet somehow AMD manages to consistently offer better hardware (wrt double floating point performance) for a lower price. I'm sure it's because the fine folks at AMD are silicon wizards and not because of NVIDIA's cozy monopoly position due to shrewd marketing of CUDA + their early-mover advantage in academic markets.

<comment><USER7> The tools are more valuable than raw performance, which can be bought with time and money.

<comment><USER6> Absolutely true, but there's better overlap between tooling required for the game industry and tooling required for academic compute than there is between the respective hardware (double vs single (or lower) float performance).

<comment><USER8> Well, buy AMD then...

But yeah, for games, maybe fp is going to make more sense than fixed-point with time, as things like ray-tracing, etc, begin to be used.

<comment> Tuna-Fish Games are basically 100% floating point on the graphics side already. Even the color shading is done on floating point quantities on modern engines.

The problem isn't that games are not FP, it's that for games, 32-bit precision is good enough, and for most problems actually way more than they need.

<comment><USER8> Yes, it's hard to justify a 48bit fpu or 64bit fpu when you can have 1.5x or 2x the number of computing units (approximately)

Still, "not as fast as we wanted" is a "modern researcher problem" ;) Some years ago they would have been converting it to run in integers so that it's not unbelievably slow.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> > FPGAs are legacy baggage in the same way that GPGPUs are.

I hoped the author would expand on this point.

It is also my impression that GPGPU are just "a hack": they should had been normal coprocessors to the main CPU, just like the FPU and the vector units are. It seems that now we are finally reaching that model (in Linux the graphics device is almost completely separated from the computational device, although they are on the same physical device most of the time) but we are still far from the "Comprocessor extension" opcode space of MIPS processors or to the "brain and arms" of CELL (1 generic CPU, many specialized coprocessors).

</comment><comment><USER10> FPGAs would be more attractive if they weren't so over priced... good thing that patents are around to almost completely eliminate competition in that space.

<comment><USER11> Or from the other view, reduce entering the market from an extremely lengthy and risk R&D venture into a known fee. Which you can account for and drastically lowers risk.

</comment></comment><comment><USER12> I wish he would comment more on what he finds wrong with HDLs?

I fail to understand why using a HDL for a digital ASIC is fine, but using one for a FPGA in the context of acceleration is not.

<comment><USER6> He's annoyed that the HDL doesn't describe the entirety of a typical FPGA "program". Some things just can't be emulated efficiently by the FPGA fabric (or they are common enough patterns that it would be wasteful to do so) and the workaround that has become the de-facto standard is to include "ASIC chunks" in the middle of all the programmable gates. For instance, you might have a serial output that runs at 10Gbps while the rest of the FPGA runs at 500MHz. To bridge the gap between the slower programmable logic and the fast transceiver you need a shift register. The way you specify this in code is by importing a vendor-specific "library" \-- except it's not really a HDL library at all, it's a black box that the proprietary back-end hooks up to to the "ASIC chunks" at compile time.

It's like compiling against a binary library, except that the binary isn't another piece of software, it's an etched pattern on your FPGA's wafer. Even if you did have the "source code" it wouldn't do you any good unless you have a foundry in your backyard :-)

I'm skeptical of the calls for a higher level of abstraction. How are you going to abstract away the fact that the FPGA has exactly 2 embedded memory controllers that have precisely A, B, and C inputs and X, Y, and Z outputs? Either you come up with a solution that's effectively just as ugly as what we have now (because it exposes the FPGA's resources explicitly) or you come up with a solution that hides these details and as a result becomes enormously fragile because it's easy to accidentally change something that prevents the compiler from inferring which embedded ASIC chunk you meant to use. You need to be aware of limitations to work within them, and the limitations seem to be stuck with us for the foreseeable future.

<comment><USER13> The same way we have 3D printers now, I would dream to have a foundry in my backyard.

<comment><USER6> Me too, brother. Me too.

</comment></comment></comment></comment><comment><USER14> Are there any attempts out there to build a better open standard than FPGA? I'd be interested to look into them if there were.

<comment><USER15> I believe menta licenses fpga cores(LUT architectures). But FPGA's have so much that isn't LUT which is critical for performance.

</comment></comment><comment><USER16> Yes, RTL level of abstraction is a way too low, even for most of the ASIC things. Yes, we need higher level HDLs (more abstract than the said Chisel and Bluespec). I'm working on it, stay tuned.

But what I cannot get from this article is what is exactly wrong with the current FPGAs design? They've got DSP slices (i.e., ALU macros), they've got block RAMs and all the routing facilities one can imagine. For the dataflow stuff it's more than enough.

Of course it would have been much better if the vendors published the detailed datasheets for all the available cells and the interconnect, for the bitfile formats, etc. - to make it possible for the alternative, open source toolchains to appear. Yes, their existing toolchains are, well, clumsy. But it is still quite possible to abstract away from the peculiarities of these toolchains.

<comment><USER15> Best of luck for your project. I'm curious about it and i'll wait.Instead i'll ask: what are your opinion regarding embedded/mcu software tools? do you see something better than rust that can automate the dev process ?

<comment><USER16> Thanks. I've been a Forth fan, but recently, looking at the advances in the static code analysis, I'd suspect that the higher level languages have a chance to become very useful in the mcu limited resources environment too. Rust is a nice attempt, and there is also a possibility that something doing a proper region analysis can kick in (looking at languages like Harlan, I would not say it's impossible).</comment></comment></comment>