What I've Learned About Learning - <AUTHOR> http://raganwald.posterous.com/what-ive-learned-about-learning <comment><USER2> I am exactly the same, in fact, I didn't even finish reading the post before deciding I understand the gist of it and I have learned enough.

For some reason it brings the following quote by Feynman to mind:

I often liked to play tricks on people when I was at MIT. One time, in mechanical drawing class, some joker picked up a French curve (a piece of plastic for drawing smooth curves -a curly, funny-looking thing) and said, "I wonder if the curves on this thing have some special formula?"

I thought for a moment and said, "Sure they do. The curves are very special curves. Lemme show ya," and I picked up my French curve and began to turn it slowly. "The French curve is made so that at the lowest point on each curve, no matter how you turn it, the tangent is horizontal."

All the guys in the class were holding their French curve up at different angles, holding their pencil up to it at the lowest point and laying it along, and discovering that, sure enough, the tangent is horizontal. They were all excited by this "discovery" -even though they had already gone through a certain amount of calculus and had already "learned" that the derivative (tangent) of the minimum (lowest point) of ANY curve is zero (horizontal). They didn't put two and two together. They didn't even know what they "knew".

<comment><USER3> _> They didn't even know what they "knew"._

That reminds me of one of Hegel's better lines, from the preface to _The Phenomenology of Spirit_ : "What is well-known is not necessarily known merely because it is well-known." (This particular translation is Walter Kaufmann's, if I remember correctly.)

<comment><USER4> Sometimes you're not really thinking about what you're thinking about when you're thinking about it.

</comment></comment></comment><comment><USER5> If HN will pardon my humanities showing a bit, I've always found this to be a great quote from TS Eliot:

"In order to arrive at what you do not know You must go by a way which is the way of ignorance."

I came to CS and programming only after a degree in the humanities so every time I learned something new I felt incredibly stupid. I would read books very slowly and carefully, re-reading any tricky parts, and never assuming my prior knowledge in an area was at all relevant to what I was learning. But after every book I read, or topic I learned my mind and understanding of the world really felt expanded.

After a while I started to gain confidence, and the perhaps a bit more than confidence. I remember being proud the first time I opened a technical book and thought "pssh I know most of this already this will be a quick read". But I quickly discovered that whenever I approached a topic this way I only left with a shallow change in my understanding. In fact I realized that I was shaping this new material to what I already new rather than expanding my existing assumptions. I was essentially wasting my time, reinforcing my ego but not really learning much.

So whenever I meet someone who is learning something new and they're angry with themselves for how 'stupid' they are, I remind them that this is actually the peak of learning. And likewise whenever I open a book, even if it's in familiar territory I try to put myself in that mind set of ignorance. It's a pity we, especially in technical fields, associate so much shame with ignorance, when this is a feeling that we should aim for when we sit down to learn.

For anyone familiar with Zen Buddhism you'll probably recognize this idea as a variant on Shoshin or "beginner's mind"

<comment><USER6> Um, "territory"?

<comment><USER5> haha yes, I noticed that and edited appropriately

</comment></comment></comment><comment><USER7> This post is interesting to me on many levels.

I came upon his general idea of not trying to only understand the big picture, but also learn the implications and details of the matter at hand on my own. The reason I say 'on my own' is because I believe reading it in a book helps systematize and possibly take more out of it.

Now, this was a few years ago, and I remember thinking about this a lot. For me, it was like I was more conscious of my entire world and I felt more conscious of everything and more responsible for my actions. This drove me to act in a more practical manner. I remember a friend told me, 'You sound more grounded in reality now' (I wanted to change the literary world before and, thus, be one of the best writers of the 20th century--yes, very humble).

Now, some might say this preface is just an excuse to get to my main point, while others will understand the relationship between what I wrote above with what I will say now.

Kafka once said that every metaphor is meaningless (one of his paradoxes, since he only spoke in metaphor). Now, a metaphor is a type of analogy. And the OP says that 'reasoning by analogy is notoriously unreliable'. He says this in passing, but it stuck with me.

The more I practice a "detailed analysis" or "detailed reading" of things and truly absorb what I read and become conscious of my life, the more it teaches me about other parts of my life. Sometimes I speak to someone and think about another, completely different conversation and think, 'Oh, that's what he meant', by simply talking to another person about something completely different.

Other, seemingly unrelated ideas, help me understand other, seemingly unrelated, ideas.

The things I don't understand I place in a particular part of my brain or in a particular 'thought spot' for later use. I do this consciously. And as I go about my life, I go back to them when I collect a piece of information that helps me better understand it.

Anyway, there is slightly more to it, but I'll keep this short. Plus, this isn't the ideal place to explain all of it, but I wanted to share this idea with everyone.

Great post.

</comment><comment><USER8> I have the opposite problem. I play and play and experiment but rarely get to doing real stuff. I try to go very deep with my understanding before doing anything serious and through this usually discover how actually complex whatever I study is. And this complexity throws me off. The tool that I am studying becomes a subject of study itself.

<comment><USER9> This isn't an overfocus or overstudy problem, it is just a fancy way of getting distracted or procrastinating. You can learn at least as much by diving in to make an 80% solution and then polishing it up - as you can by deferring the work for more study. Maybe more, because there are some things you just don't learn until you actually have something and until you actually finish something.

<comment><USER8> I agree completely. When I find myself in such a situation I usually try to slap myself mentally and go on and actually do something. And from experience I know that I will actually learn more through doing. There is also matter of interning some things through actually working with them. That's why it's important to actually solve differential equations when you are studying them and not just read the theory. And yes, I am a procrastination champion alright.

</comment></comment></comment><comment><USER10> I very much agree. I am reading his post on cognitive therapy now, as it sounded interesting, but I wonder if he could describe some of what he has done to survive/heal this particular pattern. I'm curious about the cognitive habits behind making yourself stick with something until it effects you. Simply telling yourself it's stupid to be so superficial is not as effective as some people might believe.

<comment><USER11> "Feeling Good" by David D. Burns is a good resource. Lots of activities with writing things down.

[http://en.wikipedia.org/wiki/Feeling_Good:_The_New_Mood_Ther...](http://en.wikipedia.org/wiki/Feeling_Good:_The_New_Mood_Therapy)

<comment><USER12> _"Feeling Good" by David D. Burns is a good resource. Lots of activities with writing things down._

Reading this now for the reasons "prescribed" on the cover, but I have discovered that (at least) half of the the self-help and productivity tips that show up here (or lifehacker), are already in this book. Don't let the title fool you; it's not as touchy feely as it sounds (okay, maybe it is in its examples, but the solutions are all along rational lines - see also [http://en.wikipedia.org/wiki/Rational_emotive_behavior_thera...](http://en.wikipedia.org/wiki/Rational_emotive_behavior_therapy) and "A New Guide to Rational Living").

<comment><USER11> Yeah, it's got a really self-helpy title & cover, but it's actually pretty methodical and rigorous.

</comment></comment></comment></comment><comment><USER13> >My weakness is thinking that when I first grasp an idea, I think I'm done.

I must admit that this is what I've been doing all in this time. Maybe because of the Hubris mentioned in the article and limited experience, I believe that it is still might be the better way. You are welcome to disagree. Here's an unorganized mess of what I think:

1) Making mistake is the whole point. At the point where you make a mistake, is where you learn about it most effectively. Reading in depth doesn't give you that experience and its boring. :/ [http://www.psychologytoday.com/blog/radical- teaching/200905/...](http://www.psychologytoday.com/blog/radical- teaching/200905/your-most-embarrassing-mistakes-do-you-the-most-good)

2) There's just so much to learn. When the time calls for you to apply your knowledge, if you have the big idea (or vague if you want to call it) of many things, you can decide most effectively which branch to go deeper into at that particular field. Might also be interpreted as making more mistakes in that field. That's why, experience is weighed more than education.

After few of those encounters, I think you will tend to become an "expert". Probably is the reason why hobby projects are quite healthy to have such encounters.

"An expert is a man who has made all the mistakes which can be made, in a narrow field." – Niels Bohr

And in the end, I'll leave you with <http://www.youtube.com/watch?v=E1RqTP5Unr4>

</comment><comment><USER14> "The map is not the territory," kept coming to mind as I read this.

To me, this is the difference between having a collection of explicit thoughts about a domain (a mental model), and having a deeply embodied understanding of it, a relationship that is less explicit and more intuitive. The former is possible to create very quickly by analogy and understanding related topics, while the latter comes from intimate, repeated, engaged experience.

While explicit mental models are useful for communicating, comparing, and understanding in mechanical terms, the intuitive, embodied understanding that comes from experience is the key to high performance.

</comment><comment><USER15> As a thought experiment to test this idea, you could think about your current programming paradigm and when you first understood certain aspects of it.

The other day I wrote "...you probably need to do a large project to feel the effects of a methodology or programming paradigm. Subclassing didn't make any sense when penguin was a subclass of bird (a subclass of animal). It made sense when I got all the functionality of UIView but could still customize it, and call NSObject methods like [object class] that I wouldn't have thought I'd needed at first."

</comment><comment><USER16> At work I'm always "learning" things so that I can build something. I too was learning Ruby at one point, and it started off as an exercise in learning a new programming language. Trying new things little by little, by the time I got around to working on something real I found out I had a pretty good grasp on the language. This is a different experience than what I'm going through right now. There is more of a rush to learn something new so I can accomplish a task, to complete a project not to gain understanding.

</comment><comment><USER17> There is a balance at work here. While it is true that humility and experience are great ways to learn a subject, there's something to be said for brashly jumping to conclusions, stating those conclusions, and having people tell you why they're wrong. I've learned a great deal by sharing my naive conclusions with people. An anonymous forum such as this even allows you to do it on a regular basis with no fear of being known as an idiot.

</comment><comment><USER18> Same boat here, and another Richard Feynman quote that I keep going back to when I encounter situations like this

"What I cannot create, I do not understand." - Richard Feynman

<comment><USER19> Unfortunately it's not an 'if and only if.'

As a programmer, I create plenty of things that I don't understand.

</comment></comment><comment><USER20> I suffer early lazy diagonalreadingitis, which I would call breadth-first; recenlty I've been more into the depth-first ways of learning.

</comment><comment><USER21> One of the worst "hints" I ever encountered was: To get an idea of what's going on in a paragraph, read the first sentence and the last sentence.

This gave me the illusion that I could understand what was going on in a text by skimming. And you can't do this reliably. [It doesn't work /at all/ with mathematics or serious CS].

A very hard habit to break. I wish I'd never learned it.

</comment><comment><USER22> tl;dr: Anytime you find yourself making an assumption, stop. Educate yourself on that assumption and then move on.

I had a very similar problem when it came to learning. I am very fast at picking things up, so I often skim and assume certain things based on context. This has caused me several problems especially related to large projects and some implementation details. However, I have found a very effective way of getting around it.

When I am reading something and I see something that I can define by the context, I make a point of at least wiki'ing/googling the point in question.

For example, I was doing some embedded Linux stuff and working with some IO using sysfs. I could do what I needed and had a general understanding of how sysfs worked (based on context/assumption). However, once I learned up on sysfs and how it was implemented, it gave me a much greater understanding of what I was doing with the IO and how I should handle it according to my end goal.

</comment><comment><USER23> I like his conclusions, but I find it is easier to learn those little details that make up the bigger whole and "learn the idea" by that very diving in. See: [http://deliberate-software.com/learn-that-new-programming- la...](http://deliberate-software.com/learn-that-new-programming-language-the- start)

</comment><comment><USER24> I think it's often fine to pick up only a shallow understanding on your first time. Go away, try to use what you've learned, make all the silly beginner mistakes. Then, when you come back to the learning material again, you'll find it much easier to understand it properly.

</comment><comment><USER25> That's _a lot_ like my own experience: <http://manuel.kiessling.net/2012/08/04/a-year-of-go/>

</comment><comment><USER26> >My weakness is thinking that when I first grasp an idea, I think I'm done.

That isn't always a weakness. What he was missing was deciding how deeply he needed to learn the subject first. _Depth of Knowledge_ refers to how thoroughly you know and understand what you have been studying.

Sometimes "recognition" is enough, you know it when you see it, the information is familiar and you can relate parts when both are presented separately. Very useful for multiple choice tests and for covering a lot of ground quickly when you mainly want an overview and to be able to look things up easily if you ever need more.

 _Remembering_ information, memorizing lists & facts - building up your internal data bank. Working from memory you can present key facts and relationships that you have studied. This is a necessary foundation for deeper learning. If you cannot remember details, then you cannot reason from them. Too often this step is skimped in modern schooling; rote memorization is often necessary for real learning to take place. The most important thing to remember here is that you must PAY ATTENTION to what you are trying to remember. Repeated exposure is necessary for memorization - but you also have to pay attention to the material. The better you pay attention, the less it will need to be repeated for real learning to take place. Having a theoretical framework for the material to fit will also help since we remember mostly by association, this helps recall that. Recall is best tested by fill-in-the- blank type tests and short essay-type questions.

Because memorization is so time and effort intensive, don't waste your time memorizing things that are not important. First, you must remember the basics - arithmetic, spelling, vocabulary, and grammar. Next, you must remember things that you may need without time or references available when you need them, first aid and various other emergency skills. While learning, you need to memorize things that further learning will depend on, the basic facts and relationships in whatever field you are studying. Finally, when actually working in a field, you need to remember frequently used information that it would waste considerable time looking up repeatedly. These are also important to keep in mind, because to keep things memorized, you need to refresh the memory periodically. The first and last categories you will actually keep refreshed, if you are conscientious in their use by using them. The hardest to keep up on is the second category, emergency skills.

In the third level of knowledge, you _understand_ the material and are able to explain things in your own words. You can draw new relationships between facts. You need to be able to remember details to explain things in your own words - _for a long time I deluded myself that I could understand the material because I could follow along with the explanation easily enough as I read it_. But you do not truly understand something until you can explain it in your own words from memory.

Finally, you can _use_ information in papers and discussions to articulate and defend what you know. You know the subject well enough to do independent, original research. Here you are learning in your subject primarily by working in the field rather than from others.</comment>


Ask HN: Lead dev treated as a regular employee, but filed as a I-1099.  Advice? - <AUTHOR>

I was the first engineer at a tech startup.  My employer treated me as a full-time, permanent employee even though I was I-1099.  I filed an IRS form SS-8 this year but was fired before it could be processed by the IRS.
I am wondering if anyone else has been in this exact situation, and if they have any advice to give.
Will I be blackballed for this action, and when asked why I am looking for a new position, what should I say? <comment><USER2> Have been in a similar situation, including filing an SS-8 (IRS took about 3 years to respond to it).

Everyone's always paranoid about getting blackballed when an otherwise successful stint at a startup ends suddenly and badly; I don't get why. Not like you got caught stealing from the company (that doesn't stop people from applying for jobs; it's amazing what resources a true blackballing requires in this day and age).

New employers (in this industry in particular) don't care near as much about how your last job ended as what you accomplished there and what you could accomplish with a new employer.

A victim of wage theft is not any less hireable than someone who's never been a victim. That is, unless, they're so hung up on it that it dominates any conversation a prospective employer has with them.

What should you say? Simply represent yourself as an asset to the hiring company, like any other candidate, because that's what you are. Interviewers are far too absorbed in more relevant matter (like can you code and can you work with others) than the dynamics of your last week at your last job.

If it somehow comes up, give a one-sentence answer and move on. Don't make this unpleasantness the central point of discussion in your future job negotiations and you might be surprised that it never comes up (nor needs to).

</comment><comment><USER3> You've left out the most important piece of information: Did you negotiate the position as a 1099?

If so, then why are you doing this to them? They held up their end of the bargain, and seemingly more by "treating you as a full time employee". Trying to squeeze benefits out of them after the fact seems like a bad plan. Stick to the terms you agreed to.

If not, then why did you stay more than one pay period? As soon as it was evident that they were not withholding taxes, this would have needed to come to a head before you worked even one more day for them. The fact that it didn't implies that it was in fact that other scenario and now you're just trying to wring extra money out of a company that you had agreed to contract for.

</comment><comment><USER4> "My employer treated me as a full-time, permanent employee" that may be the case from your perspective, but it still might not meet the legal definition of employment as spelled out in the IRS site. As the initial technical team member, seems reasonable that it could be a temporary role. Especially if you didn't get any benefits. Rule of thumb: if you're 1099, try and get paid a little more to compensate.

[http://www.irs.gov/Businesses/Small-Businesses-&-Self- Employ...](http://www.irs.gov/Businesses/Small-Businesses-&-Self- Employed/Independent-Contractor-Self-Employed-or-Employee)

</comment><comment><USER5> It is _very_ hard to have a full-time permanent contractor not be considered an employee under the IRS. You have to be very strict about your dealings with the contractor and your interaction with them on a day to day basis. Most people get away with 1099ing their contractors.

You will not be blackballed. When you're asked why you're unemployed just say "I filed an SS-8 and they fired me." Any good employer wont care.

</comment><comment><USER6> Talk to an employment lawyer. If you were fired soon after you filed your SS-8 then it sounds very much like retaliation. The only people who would blackball you (IMHO) are the sort of people who would like to run this sort of scam themselves.

</comment><comment><USER7> I've not been in this exact situation but your question seems to leave some gaps. Was your firing as part of a retaliation for filing the ss-8 or was it separate? If it was retaliatory you might considered consulting an attorney.

Also, did y have an employment agreement that detailed your status? Being terminated shouldn't prevent the IRS from making a determination of your employment status.

It's unlikely you will be blackballed as employment disputes are not uncommon. That is, unless the pool of employers is very small. If asked why you're looking, be creatively vague. That's usually the best thing regardless of reasons.

<comment><AUTHOR> Thanks for the response, yes it was retaliatory. I was fired soon after I confronted my employer about the situation.

</comment></comment><comment><USER8> Look up "the twenty factors"; sometimes they're called "the twenty questions".

The IRS, and California at least but I expect the other states, consider you an employee or a consultant depending on the nature of your relation with your employer or client.

The factors are whether you provided your own equipment at your own expense, whether you were exposed to the financial risk of failure - that is, would you get paid anyway, even if your code didn't work - whether the employer could tell you when to arrive at work and when to live.

To be perfectly clear: neither your contractual relationship, nor on what form your earnings were reported have any bearing in the IRS' decision.

No one factor determines either way, it is the preponderance of the whole being one way or another.

I say you have grounds for an unlawful termination complaint. If you don't have the cash to hire an attorney, you may be able to find one on spec. If you have the kind of attitude I do, you could represent yourself pro per, that is, without any legal advice, or pro se, in which you speak for yourself but with an advisor who does not speak directly to the court.

[http://www.powells.com/](http://www.powells.com/) has lots of legal texts dirt cheap. [http://www.nolo.com/](http://www.nolo.com/) has very good self- help legal books. Most courthouses have law libraries that are open to the public.

May I, in the most polite, friendly and helpful way, suggest that you write a registered letter, return receipt requested, to the IRS and your state tax board to suggest that your former employer may be guilty of tax evasion.

If the twenty questions come out saying you were an employee, and your employer didn't pay state or federal unemployment insurance, or IRS Form 941 payroll tax withholding, then that could be a felony for which they would do time. This because failing to pay payroll tax, or failure to file the 940 and 941, are regarded as stealing from your own employees.

The simple failure to pay tax is generally not a criminal offense but it is in the case of failing to pay payroll tax.

While I am not an attorney, this is a topic that i am intimately familiar with.

</comment><comment><USER9> Most of the time, whenever somebody asks a question of the form "Something bad happened to me and it's not my fault. Advice?", the answer is usually "Talk to somebody who knows what they're doing (lawyer, accountant, etc)"

We have smart people on this site. This is not a difficult thing. Even if you could get free legal and tax advice on HN, do you really want to trust some random person on the internet with something important like that?

</comment><comment><USER10> You won't be blackballed out of your career, but it is possible that by having this burnt bridge, you may have closed yourself off to some opportunities. It'll depend on the demeanor of your former employer, and connections between your former employer and those you're interviewing with.</comment>


Untold History of United States ( a Doc by Oliver Stone ) - <AUTHOR> https://www.youtube.com/watch?v=tNM9lOFRgCI <comment><AUTHOR> Here is the full 11hr audio book : [https://www.youtube.com/watch?v=W8QZYATaTY4](https://www.youtube.com/watch?v=W8QZYATaTY4)

I recommend that if you are going to just watch one episode, watch this one : [https://www.youtube.com/watch?v=Kc- Xp2DVBjo](https://www.youtube.com/watch?v=Kc-Xp2DVBjo)

I would love to see a thread here on some of the films key assertions. Enjoy!

[edit] his interview with Dan Rather : [https://www.youtube.com/watch?v=-np8sc4IPCg](https://www.youtube.com/watch?v=-np8sc4IPCg)</comment>


Tyson Foods CEO: The Future of Food Might Be Meatless - <AUTHOR> http://www.foxbusiness.com/features/2017/03/07/tyson-foods-ceo-future-food-might-be-meatless.html <comment><USER2> What heartens me is that the shift towards plant-base protein can be gradual while still having a large impact. Ingredients like ground beef make up the majority(?) [1] of beef sold and there are already good plant based simulacra on the market [2] with more coming soon.

I have my doubts we'll see anything marketable and cost competitive that could compete with larger cuts of meat in the next decade, but I could see a near- term future where Taco Bell is using a 50/50 beef/plant "meat" in their food with that ratio shifting away from animal products with time.

[1]: [http://meat.tamu.edu/ground-beef-labeling/](http://meat.tamu.edu/ground- beef-labeling/) [2]: [http://beyondmeat.com/products/view/beefy- crumble](http://beyondmeat.com/products/view/beefy-crumble)

<comment><USER3> I thought taco bell and now subway were only just 50% meat. I'm sure they'd go to more filler if they could legally label it as "meat"

<comment><USER4> You are missing the point of OPs post. The premise would be that we as a society would be accepting of meat alternatives and a company like Taco bell may market this way.

</comment></comment></comment><comment><USER5> This is just shareholder value. Scaling meat has so many problems, but if you can sell fake meat at meat prices suddenly there is so much more profit margin to be returned to shareholders.

I do not believe for 1 second that Tyson cares about health, environments, farmers or the well being of animals.

> "We just got to the point last year where the consumer is demanding [the > elimination of antibiotics in the food chain] and wants transparency."

The only reason your animals need antibiotics is because they're living in overcrowded cells eating the wrong food (they're ruminants, corn/soy is not their food), covered in fecal matter etc. etc. A small number of animals per acre , lots of sunlight (ultraviolet light) and proper waste disposal (bugs, rains, etc).

<comment><USER6> >"I do not believe for 1 second that Tyson cares about health, environments, farmers or the well being of animals."

I haven't followed Tyson - is there something they've done in recent history that has particularly contributed to the skepticism? Or is this more general "all corporations-are-evil" skepticism?

<comment><USER5> As i remember it there was much negativity around them in Michael Pollan's books and the documentary Food Inc.

<comment><USER7> Being in the Food Industry and having deal with Cargrill, Tyson, JBS etc. Tyson was actually not that bad in terms of business practice.

</comment></comment></comment></comment><comment><USER8> if they can make affordable plant based chicken that's as tasty and protein- packed as real chicken and veg beef that's as good as real beef, then I'm 100% in.

the biggest problem with non-meat foods (for me) has always been with their macros. I can get 32g of protein with nearly zero fat or carbs from 4oz of chicken for less than $2 a serving. Last I checked, this was not possible with alternative food.

<comment><USER9> A big part of those 'macros' is farm subsidies. Meat is artificially cheap in the US. Kind of ridiculously so.

<comment><USER10> Can you quantify that at all? How much of a discount is there baked in due to subsidies?

<comment><USER9> Here's a list written by a guy who wrote a book on the economics of meat production in the US. (Yeah, it's on the PETA web site, but somehow the 'i just really like big Macs' crowd doesn't get around to doing research on food in the same way...)

[http://www.peta.org/living/food/10-things-wish-everyone- knew...](http://www.peta.org/living/food/10-things-wish-everyone-knew-meat- dairy-industries/)

His top-line number is that a $5 burger would cost $13 without various subsidies, funded by $38B or year in subsidies to the meat industry.

I also found claims that removing subsidies would eventually lower prices by allowing competition from countries without subsidies. But my guess is there's a limit to bottom price globally given current tech, regulations, tariffs, and land availability. And it's difficult to know where that is relative to subsidizes process in the US...

<comment><USER11> The figure of $13 per $5 burger includes other "externalizing" costs and is almost entirely healthcare: [https://meatonomics.com/2013/06/24/introducing-a- new-book-ab...](https://meatonomics.com/2013/06/24/introducing-a-new-book- about-the-bizarre-economics-of-meat-and-dairy-production/)

The purported subsidies of $38 billion per year divided by the 50 billion burgers per year that everyone seems to think Americans eat (including this author) is less than $1 per burger.

(But the $38 billion/year is wrong too ...)

</comment></comment></comment></comment></comment><comment><USER12> The cost of meat is kept artificially low in the USA because bribed/corrupt polititions keep giving meat producers free or cheap water grants, etc. Ironically, in another article thread on HN it was mentioned that it would cost $50B to repair dams in the USA, and I think that is about what the government gives to meat producers.

Solve the epidemic corruption of public elected officials and a lot of other problems would be resolved.

</comment><comment><USER13> I think this is pretty cool. I don't think it will eliminate meat from diets, but it offers more variety and choices. Most plant-base meat substitutes are pretty terrible. But I'm not even sure why they exist, plants are already pretty great. Consider Chipotle's sofritas, lots of people who swear by meat love it...and that's because it tastes good.

My meal tonight also had no meat in it (another tofu dish), but used some fermentation of the soybeans (Doenjang [1]) to create an incredibly savory and rich soup stock. I'll probably eat a burger tomorrow, but I don't see these other foods as penalty foods and I'll often choose them over the meat foods because they taste good, not for any other reason.

It's a bit like buying a Tesla, it's a no compromises great car, not a penalty box like the market tried to push for years. Great vegetarian food doesn't even have to be labelled as vegetarian, it just has to be great food and people will choose to eat it.

1 - [https://en.wikipedia.org/wiki/Doenjang](https://en.wikipedia.org/wiki/Doenjang)

</comment><comment><USER14> I'm particularly interested in vat grown meat.

As a consumer, I do care about the footprint of my meat based protein, although I don't want to give up eating meat.

As a chef, if they can get marbling in, I'm excited for the different styles we could create.

Note: a plant based reactor (sorry I couldn't remember the term, the seed for the meat to grow with), has been mentioned a few times as becoming close to ready, which would bring the costs down a lot.

<comment><USER15> Price competition from vat grown meat will crater public support government subsidies for farming and ranching.

Much like solar etc tanks coal.

Ranching, in particular, will become niche / artisan endeavors.

<comment><USER14> I don't see the problem with this, considering the methane output and grain requirements. (Note my family use to run a large cattle fa in Australia, I can see how this would effect them. )

</comment></comment></comment><comment><USER16> There's of course the other "meat": insects.

"Because they are cold-blooded, insects are very efficient at converting feed into protein (crickets, for example, need 12 times less feed than cattle, four times less feed than sheep, and half as much feed as pigs and broiler chickens to produce the same amount of protein)."[0]

I'm plenty squeamish but might just be willing to try mealworm flour. Other ideas: [http://news.nationalgeographic.com/news/2013/13/130514-edibl...](http://news.nationalgeographic.com/news/2013/13/130514-edible- insects-entomophagy-science-food-bugs-beetles/)

[0] [http://www.fao.org/docrep/018/i3253e/i3253e.pdf](http://www.fao.org/docrep/018/i3253e/i3253e.pdf)

<comment><USER17> I have tried Crickets and while insects are efficient to raise - their feet are like small toothpicks.

</comment></comment><comment><USER18> Interesting to see if the company actually shifts it's culture.

My wife is vegetarian so I'm exposed to quite a bit of different sources of veggie protein. My concern is that the fake meat stuff is actually kind of expensive compared to meat. If it was cheaper I can see more folks move in that direction.

<comment><USER19> I'm willing to bet that this is for two reasons:

1\. It's expensive because people with more money are more likely to be vegetarian. 2\. We don't pay for the true cost of meat, i.e. green house gas emissions, water usage, transportation costs, etc....

<comment><USER20> How is water and transportation not paid for?

<comment><USER21> In a lot of the Western US, water usage is based on decades-old interstate compacts, where future water rights are based on a use-it-or-lose-it system. I'm not necessarily in favor of the extreme unregulated end of the free market either, but the system as it stands seems to me to be a market distortion that incentivizes people towards heavy water-usage activities (ranching, raising of water-heavy feed crops like alfalfa), rather than what a purely free market would apportion.

See, for example, [https://projects.propublica.org/killing-the- colorado/story/w...](https://projects.propublica.org/killing-the- colorado/story/wasting-water-out-west-use-it-or-lose-it)

</comment></comment></comment></comment><comment><USER22> Definitely forward looking to invest in food intake in general rather than just meat. That being said, I thought the future of meat itself was "lab meat" i.e produced in growing vats, rather than on farms. The other thing is balance, if your source of plant protein is skewed to one thing like Soy, there is the risk of the body not being used to the other things in Soy --it's not like Chinese when they eat anything other than rice, have the protein as the main dish or portion --it's mostly a side dish and not the main source of nutrition.

</comment><comment><USER23> I'll never go meatless, the health benefits of meat are too great.

<comment><USER24> Actually, most science points to the contrary.

<comment><USER23> It's controversial, but it's not not a flat-earth opinion.

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

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

</comment></comment></comment><comment><USER25> All it's going to take is one large-scale prion disease outbreak in the United States and all fast food will be meatless.

I'd be willing to wager it'll happen in my lifetime.

</comment><comment><USER26> According to random people on the internet plant based protein isn't as good your for cat as animal based protein. Why couldn't that be the same for humans?

<comment><USER27> Cats are obligate carnivores. They can't synthesize all the nutrients they need from a plant diet.

<comment><USER28> Actually neither are humans, unless there is some viable way to synthesise B12 in the intestine.

It is likely that early humans were insectivores too. Or there was some way to get B12 synthesising bacteria up in the duodenum.

</comment></comment></comment><comment><USER29> Ignoring the arguments for taste (subjective), animal welfare (agreed to a large extent), and environmental impact (also agreed), there's still the issue of protein bioavailability. Plant-based protein is simply inferior in this regard. I still eat a mostly plant-based diet and look forward to the day when that parity problem is solved.

Incidentally, if anyone has a suggestion for an egg substitute that doesn't taste like crap and has similar nutritional content, I'm all ears. Eggs are pretty ethically dubious in my book, too.

</comment><comment><AUTHOR> Animal agriculture seems to me like one of those things that in 50 to 100 years people will look back on with bewilderment. "You mean you birthed whole animals, let them grow for two years, fed them all the while, just to kill them, chop up their remains, and ship that to people?" Plant based protein and maybe even more so cultured/clean meat (e.g. [http://www.memphismeats.com/](http://www.memphismeats.com/)) seem likely to totally replace how we do things now.

Disclosure: I'm an investor in Memphis Meats

<comment><USER4> "You mean you planted that whole acreage with seed, let them grow, watered and fertilized them all the while, just to cut them down, chop them up and ship that to people?"

<comment><USER30> Hydroponics is actually a ton easier (at scale): [http://www.epicgardening.com/hydroponics-vs- soil/](http://www.epicgardening.com/hydroponics-vs-soil/)

Seems like a good argument.

<comment><USER31> Appreciate you sharing this, I wrote this years ago and am glad to see it's still getting traction :)

</comment></comment></comment></comment><comment><USER32> Seems a certainty to me, assuming that eventually the cost of the carbon footprint gets passed down to consumers.

<comment><USER33> Carbon footprint for meat is significantly higher because you have to grow the plans and feed it to the animals, and moving up a trophic level is usually ~10% efficient. It's much more efficient to consume the plants directly.

<comment><USER34> > It's much more efficient to consume the plants directly.

We can't consume most plants directly, and the ones that we do, we consume only a tiny minority of the plant (most of the time).

<comment><USER35> > and the ones that we do, we consume only a tiny minority of the plant (most > of the time)

So do the animals. The soy and wheat we feed the animals is a tiny portion of the plant... so what? If we have 1000 calories of wheat, it's better to feed that to a human, than a cow; The cow will only produce 100 calories of meat for the same grains that we would have eaten.

<comment><USER34> > So do the animals.

Not really. Cows, goats, sheep raised somewhat naturally eat grass and leaves and twigs, things we cannot digest. They can also eat the parts of the tomato that we don't eat, such as the stalks and leaves.

If you're talking about feeling animals with grains, the way we grow grains is even more problematic, with huge amounts of petroleum and water inputs.

<comment><USER35> > Cows, goats, sheep raised somewhat naturally eat grass and leaves and twigs, > things we cannot digest

That's correct. The problem is, 99% of our animals in america are not raised that way [1]. They are raised eating soy, wheat, and corn. Grass is more expensive, so it's not used.

[1]: [https://farmforward.com/ending-factory- farming/](https://farmforward.com/ending-factory-farming/)

<comment><USER34> > Grass is more expensive, so it's not used.

Nit: grass is less profitable. The expense of grass is nothing, but it takes longer to raise the livestock to pasture weight and the meat is less marbled and gamier in texture, which drives the price down.

</comment></comment></comment></comment></comment></comment></comment><comment><USER36> There will always be exceptions. Meatless? Not for animals in the wild. Not for hunters, either.

<comment><USER37> Now that this has been rectified, what does this correction change going forward?

<comment><USER36> Other than that the future of food will _never_ be meatless? Well, nothing, of course.

</comment></comment></comment><comment><USER38> There's an important difference in conviction and intent between this headline and what he said.

</comment><comment><USER39> The future of food needs to be meatless.</comment>


NODE VOL 02 – A zine featuring open hardware projects and decentralized software - <AUTHOR> https://n-o-d-e.net/nodevol02.html <comment><USER2> Nifty. It has a free download (pdf), and there are lots of interesting projects in this I haven't seen before.

The Open Book ([https://github.com/joeycastillo/The-Open- Book](https://github.com/joeycastillo/The-Open-Book)) is featured in there as well. :)

</comment><comment><USER3> Gives me the feel of when I first read Phrack. Nice work</comment>


Thank You for Using Adblock - <AUTHOR> http://i.share.pho.to/6c7078ab_o.png

<comment><USER2> The hostility between users and ads and the presentation of ads as a penalty for no-charge use must have been borne from the 'make money while you sleep' mentality. Google ads are obnoxious and often try to trick you into clicking fake download buttons to take who 'who knows where?'.

Popup blocking is native on most browsers and it was advertisers that were largely responsible for those.

I often find myself wondering. Why don't content providers put some time into pursuing an advertiser with related services to the content or of likely interest to the viewers and 'make a deal' to present their products or services? And likewise, people wanting to advertise can approach related content providers. They can present the 'ad' as an equal part of the content and no adblocking apps will sort it out.

Maybe they can use promo codes available within the website to receive a deal of some sort. Who knows?

I'm looking forward to more straight forward and honest forms of advertising that I hope will emerge when things like google's adsense etc start to falter due to adblocking.

</comment><comment><USER3> I'm much more of the [http://adblockbar.neocities.org/](http://adblockbar.neocities.org/) mindset, and following the Twittersphere right now, there's a growing front among tech's thought leaders right now that agrees with this.

</comment><comment><USER4> I see that you're able to detect my adblocker. Please feel free to refuse to serve your content to me.

Or STFU.

</comment><comment><USER5> I truly look forward to the day that all people who think something is worth money charge money for it.

</comment><comment><USER6> thats way too snarky.</comment>


Removing support for Emacs unexec from Glibc - <AUTHOR> http://lwn.net/SubscriberLink/673724/5b52c6ab2a339515/ <comment><USER2> First I've heard of unexec() -- while it sounds like a good thing to be rid of, I'd be quite interested to read about its design and perhaps past implementation challenges. Anyone aware of a good tech article on it?</comment>


Ask HN: How similar is the dotcom bubble to the current crypto scene? - <AUTHOR> <comment><USER2> The dotcom bubble had some sense in it: maybe pets.com was massively overvalued, but selling pet food online is a real business, and the web has changed many things.

Cryptocoin scene, in contrast, is based on at best utterly misguided ideas (that markets can exist without regulation—in fact regulation _creates_ markets), at worst it's fraud.

Most of the time I'd say it's just plain fraud: "here, give us money and we'll give you... numbers! special numbers!"</comment>


Ask HN: Writing for Americans - <AUTHOR>

I've recently started writing a tech blog and as a regular reader of Hacker News wanted to ask people's opinions on internationalisation.
As a Brit I spell words like grey, initialise and colour like so. I recently wrote a post entitled "In Defence of Scrumbut" and was wondering what an American audience would make of it. Does it appear to be a typo implying that the post is likely to be poorly written? Or are variations in the spelling on English words well known and it simply isn't an issue?
Clearly I'd rather stick with the British English spellings but I may want to adjust my choice of titles accordingly.
Thanks N <comment><USER2> Maybe I speak for myself, but just like accents, I like reading the English spelling of words--and dare I say prefer it?

I think it is absolutely fine. Now, if your bigger worry is getting the SERP pages on Google, then I can tell you it is very rare that I do a search and come across an English or Australian article in my results with the English spellings.

I know that wasn't your original question, but it is a fascinating one that I just thought of while replying to you.

</comment><comment><USER3> Write in your most natural voice; and with your canonical spellings. The only British-isms that I have trouble getting my head around quickly are the over- casual dropping of place names and neighborhoods in London. But we Americans grow up reading plenty of Dickens and Orwell and Shakespeare and whatnot, so just like a British accent we can handle it as long as it's consistent.

In general, you will do quite well to have even your American audience think, "Here's an well-written Brit."

</comment><comment><USER4> It's not the different spellings of common words (gray/grey), it's the different words (scrumbut?) and different meanings (we call it the hood, not the bonnet) that will interfere with communication.

</comment><comment><USER5> I think if you're writing for an international audience, stick with whatever comes natural to you. I know (I'm Australian) that I use BrE spelling here on HN and around the web.

If I had to think about using AmE then two things would happen: 1) I would almost certainly miss some. If you use the word Defense ten times and spell it Defence once _then_ it looks like a spelling error. 2) It would interrupt the flow of my writing. Anything that interrupts writing is bad. Why let the writing _itself_ get in the way.

But of course, know your target market. I'm working on a product for the US right now, and the extra effort checking for BrE is annoying, but necessary.

</comment><comment><USER6> I tried to google and find your post but could not see it. I would think the word scrumbut is a typo [or perhaps crass], but without seeing the byline or the article I would not know for sure.

Please don't curse in your writing but any local color is very nice! Personally, just as I enjoy hearing foreign accents in real life, I enjoy seeing them on the web. It helps remind me that the web is a many splendored and located place :).

<comment><AUTHOR> Anne, thanks for the feedback. Actually I'm still proof reading the post, so it's not quite ready yet (suddenly realised a few bits needed turning upside down). For the typo I meant 'Defence' vs 'Defense', by Scrumbut I mean 'We do Scrum but..' as in <http://bitsnwidgets.com/2008/04/19/DontBeASCRUMBUT.aspx> N

</comment></comment><comment><AUTHOR> Guys, thanks for the feedback, based on the discussion I've decided to stick with the British approach even with titles, and have submitted the article here.

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

Thanks

Neil

</comment><comment><USER7> As long as they are the standard spellings, it shouldn't make much difference. It's the unexpected spellings, especially the ones that make your readers stop and wonder what you are trying to say that are problems. Anyone who reads much will be as comfortable _reading_ the British spellings as the American. I use some spellings interchangeably - I am more likely to write "grey" than "gray" and I spell "defence/defense" either way (it is possible that I have even mixed them in the same essay - which is generally a bad idea).

</comment><comment><USER8> Don't worry about the spelling. What strikes me as odd about British writing is the scarcity of commas. I feel rather breathless reading British writing, and often it's difficult to parse. (I'm pretty sure most Americans would have put more than one comma in your >100-word question.) Not to worry, though, it just adds flavor.

</comment><comment><USER9> It's better to be consistent. If you try to Americanize (Americanise?) your text, you'll probably miss something, and it _will_ look like a typo.

That said, in some professions, affecting British spelling will make people trust you more.

</comment><comment><USER10> I wouldn't worry too much about spelling. That isn't a big deal. However, you might be careful about some words. For instance, I might have to pause for a second if I read lorrie instead of truck.

</comment><comment><USER11> I think people who read tech blogs are educated enough to know that defence is not a typo (despite firefox trying to spell correct me as I type that).

</comment><comment><USER12> We have an Australian resident in our surgery training program. He's going bald, has bushy eyebrows, and wears glasses. People have been treating him like a professor since day one. Even the faculty revere him.

<comment><USER13> I'm having trouble seeing how this is relevant. Can you provide more context? Thanks.

<comment><USER4> He's pointing out that appearances matter.</comment></comment></comment>


Free WiFi in Amsterdam, Montreal and Toronto Any others? - <AUTHOR> http://thedailyt.com/2011/01/a-positive-trend/

<comment><USER2> Boston has a lot of free wi-fi in "town square" area near Fanueil Hall (Government Center T stop).</comment>


How technological innovation can massively reduce the cost of living - <AUTHOR> https://readplaintext.com/how-technological-innovation-can-massively-reduce-the-cost-of-living-91766dc83691#.ix7fi4kft <comment><USER2> While reading the article, another possibility for reducing the cost of housing crossed my mind: Ways to make small living spaces more livable. Most of the cost of housing is land, and living in cheaper places is not that desirable - young people especially prefer to live in cities.

So I'm not sure what exactly is the best way for making small living spaces more livable. Maybe convenient+cheap laundry services to eliminate the bulk of washing machine & dryer?</comment>


Show HN: GitWay – Sell access to private repositories - <AUTHOR> https://gitway.io <comment><USER2> I was just thinking about this the other day. Cool!

<comment><AUTHOR> Thanks! We've been distributing our code on GitHub for the last year or so, and wanted to put a more formal mechanism in place to manage payments and access control.

I'm still not sure how many people currently use GitHub to distribute proprietary software, but it works very well for us. Clients are able to submit issues and pull requests, and are much more engaged than if we just emailed them a zip file.</comment></comment>


Look ma, no locks - <AUTHOR> http://lucteo.ro/2018/11/18/look-ma-no-locks/ <comment><USER2> This is a confusing article. The main content is a description of how to implement a simple operating system scheduler which effectively is implementing locks using instruction level primitives.

The author has completely neglected the most common cases where either "tasks" require multiple resources (e.g. when copying between two files) or where the ordering of tasks is important. It is these two conditions that lead to deadlocks and livelocks.

<comment><USER3> Most (though not all, see Midori) OSes use preemptive multitasking and threads. These tasks are cooperating coroutines - a different beast. Of course you can use tasks to implement a thread scheduler, but this machinery would probably live in a user-mode runtime.

As for the neglected cases, you can build those out of these primitives: canonical ordering of tasks for multiple resource acquisition; work stealing and/or a DAG executor where ordering is important.

My only criticism is that it's a little redundant to implement both mutexes and semaphores - a mutex is just a semaphore of 1. But the rest is wonderful.

<comment><USER4> Mutex is for resource locking, semaphore is for signaling. This means they have some differences in implementation extending beyond simply limiting semaphore to get a mutex.

<comment><USER5> AFAIK, the only difference between "semaphore of 1" and "mutex" is that a semaphore is definitely able to be signaled by someone who isn't holding a lock, whereas a mutex is sometimes only able to be signaled/unlocked by whoever acquired the lock.

As long as you trust the code running on your machine (if you don't, you have bigger issues to worry about), you'll be fine - nobody signals a semaphore before waiting on it if they're hoping to achieve mutual exclusion

</comment></comment></comment></comment><comment><USER6> I'm expecting someone to come denigrate your approach in the comments, but the fact you made this readable and kept me with you to the end is a real feat of communication. Thanks for putting in all the effort to re-explain, color-code, and consider objections.

</comment><comment><USER7> I believe a number of video game engines use this approach.

There's a talk about this approach in the game Destiny: [https://www.gdcvault.com/play/1022164/Multithreading-the- Ent...](https://www.gdcvault.com/play/1022164/Multithreading-the-Entire- Destiny)

And also in the Uncharted engine: [http://twvideo01.ubm- us.net/o1/vault/gdc2015/presentations/G...](http://twvideo01.ubm- us.net/o1/vault/gdc2015/presentations/Gyrling_Christian_Parallelizing_The_Naughty.pdf)

They go a step further by allowing threads to pause and resume their state by changing the stack pointer.

These sort of systems are useful in games where you basically want to be using all of the cpu all of the time and there's no reason to ever give control back to the operating system's scheduler (with mutexes).

</comment><comment><USER8> I'm not entirely sure that I agree with the section comparing mutexes and task dispatch. It appears that the comparison is actually between a _spinlock_ and task dispatch -- most other kinds of mutexes put a process into an interruptible state that allow the scheduler to run a different process. So I would contend that they act in a very similar fashion in practice. At least, that's how locking works within the Linux kernel (and I think pthreads locks work the same way on Linux).

However, I do quite like this way of thinking about synchronisation. I wonder how many other kinds of synchronisation primitives (I'm thinking about RCU and seqlocks) can be re-thought using this method.

</comment><comment><USER9> Nice article.

A few high performance C++ systems use variants of the dispatcher approach. For example ScyllaDB and I know of a few HFT systems like that. Boost.asio is similar (the serializer is, or used to be, called strand) and so is the dispatcher proposal in C++.

A few systems I have seen strictly map each dispatcher to a thread (which is in turn exclusively pinned to an hardware core), so the serialization is implicit. "Active" objects expose their home dispatcher and to interact with the object one would post a lambda to that object dispatcher. In practice this is a form of async message passing. To get the answer back either a response callback is posted to the original thread or some future/promise abstraction is used.

</comment><comment><USER10> > Here, instead of blocking on the second thread when executing the blue task, > the scheduler picks up a yellow task;

This only works if the second thread's yellow task is independent of its blue task's results. Which is, unfortunately, only 1% of the cases.

</comment><comment><USER11> I think the author eventually came up with what libdispatch already does using queues.

</comment><comment><USER12> Interesting that a 101 style explanation wouldn't tell you that mutex is derived from "mutually exclusive".

Otherwise, a pretty nice overview. The bar charts are helpful.

<comment><USER13> Likely because the target audience is programmers whom use mutexes rather than programmers whom do not write threaded code.

<comment><USER14> Please don't be mad as I'm not trying to provoke, but I believe 'who' goes here, not 'whom', as from what I understand, whom is used when something is being done/given to something. Perhaps I'm simplifying, but it's just like nouns etc. in the accusative case work in languages which have grammatical cases.

<comment><USER15> TL;DR: 'whom' is to 'him' as 'who' is to 'he'.

For whom does the bell toll? It tolls for him (not 'he').

Who is there? He (not 'him') is there.

<comment><USER16> Ooh, now do the predicate nominative!

</comment></comment></comment></comment></comment><comment><USER17> This is kinda the type of model I use my little lock-free SPSC workqueues for: [https://github.com/djcapelis/atomic- ring](https://github.com/djcapelis/atomic-ring)

You just have things do stuff and then toss pointers to threads on the other side of the workqueue. Most things I do this with I basically keep each thread in a different part of the pipeline and they pass the task to the next one. Sometimes this means each thread has a warm cache for the part of the task it's working on, assuming the majority of the working set of each task is more correlated with the stage of the pipeline than the specific data moving through it.

</comment><comment><USER18> Sounds like libdispatch

<comment><USER19> Yep, working in iOS/OS X for 9 years now. The primitives are queues not mutexes.

</comment></comment><comment><USER20> This sounds a lot like going from the Lock/Mutexes/Semaphores paradigm into an Actor system.

OP - i.e. @ingve - it might be interesting to take a look into some strategies - like the pull one - on Actor systems like AKKA

</comment><comment><USER21> The skeleton of the approach suggested reminds me of how the BEAM runs processes: one OS thread per CPU, scheduling many lightweight tasks listening to message queues.

</comment><comment><USER22> If you want to see a practical working implementation of what this article describes: [https://github.com/tinspin/rupy](https://github.com/tinspin/rupy) (Java HTTP Server)

</comment><comment><USER23> What does he mean by "static world", "static task"?

<comment><USER24> They mean that, if you know upfront how long every task takes and the order they need to run in, it's straightforward to lay out a schedule that has no resource contention.

I'm not sure that that's true in general but it's true that it's easier than when you don't know those things.

</comment></comment><comment><USER25> Enqueuing tasks per resource is a very old concept in computer science; this is nothing new and anyone with a computer science degree should have come out of the university with having written such a task scheduler under their belt.

<comment><USER26> Yet, most people with a computer science degree have not come out of the university with having written such a task scheduler under their belt.

<comment><USER27> Also, not all of us have computer science degrees.

<comment><USER25> Then it's high time to get one, otherwise those people have no business being in the IT industry.

<comment><USER27> Cool, so I guess my career is meaningless, then. :)

Getting a degree is something I very much want to do, but it's something I haven't been able to do (due to the time and money required to do it). I ended up jumping straight into the workforce in the hopes that at some point I'll have saved up enough to actually enroll (since my high school grades left much to be desired; it's a miracle I even got my HS diploma).

Really, though, 99.995% of IT (in my experience at least) doesn't actually require a degree (obviously, since I'm doing it right this very moment without a degree and have been doing so for more than half a decade). It _does_ require a lot of background knowledge that, sure, might've come to me faster had I received a formal education in IT, but I've been able to acquire it just fine through real-world work experience (and have been paid for it, to boot).

My interest in getting a degree has more to do with my interest in a lot of the more theoretical concepts. I'm able to stumble through a lot of things via self teaching, but I do feel like I'm missing various critical pieces, so I'd like to fix that. None of those pieces are getting in the way of me doing my current job, but I do feel like my career is prone to stagnation if I don't have those pieces.

<comment><USER25> _Really, though, 99.995% of IT (in my experience at least) doesn 't actually require a degree (obviously, since I'm doing it right this very moment without a degree and have been doing so for more than half a decade). It does require a lot of background knowledge that, sure, might've come to me faster had I received a formal education in IT, but I've been able to acquire it just fine through real-world work experience (and have been paid for it, to boot)._

Unfortunately, that is not true: you can _get by_ twiddling something, but the software you'll write without formal education in computer algorithms and data structures will always be inferior and often unmaintainable. This is from personal experience debugging lots of code over the years written by people without formal computer science education.

You could attempt to make the argument that not everyone needs to be a programmer, but system administration skills of such people are also subpar: sooner or later one needs to automate, and the shell scripts written by such people are always either hacked together or overcomplicated because the knowledge of algorithms, data structures and common solutions (like this enqueuing scheduler) simply isn't there. It's exceedingly difficult to educate oneself on something one isn't even aware exists.

If you really love IT and love what you do, get a computer science degree which provides a quality, required education (and not just for the paper so you can say you have one).

<comment><USER27> I feel like folks who are this elitist about a degree being mandatory (regardless of field) are trying to justify their crippling student debt :)

Yes, an academic background is helpful in IT. Yes, I do see the value in acquiring that formal education, and certainly wish to do so. No, it is not mandatory, and no, it does not magically turn people into good programmers.

And no, I am certainly not going to stop working because some random commentator on Hacker News thinks that having a successful IT career is strictly dependent on having a CS degree despite such an assertion being demonstrably false. Bill Gates and Mark Zuckerberg and Michael Dell managed without. Larry Wall's degree was in the study of languages (of the non- programming variety), and that's what paved the way for him to create Perl.

Besides, CS grads are no more immune against writing bad code, in my observation debugging (and/or working around) code written by people with those degrees. The degree itself is not a reliable indicator of whether or not someone is competent.

<comment><USER25> "I feel like folks who are this elitist about a degree being mandatory (regardless of field) are trying to justify their crippling student debt :)"

However, feelings aren't facts: I paid the remaining 12,000 USD of my student loans to the federal government within months of graduating. The rest of my tuition was covered by scholarships because of my 4.0 grade point average, and the other part by my then employer, minus the IRS taxable parts which I paid fair and square. Those scholarships were free money: all I had to do was maintain a grade point average higher than 3.0 and send in my report card at the end of every semester. That's reality.

As far as immunity to bad code, you really, really need to watch Brian Cantrill's videos; if he doesn't change your mind about that, nothing and noone will.

<comment><USER27> That's great. Not all of us can afford to burn $12k. I certainly didn't have a 4.0 GPA, so it ain't like I would've qualified for any scholarships of significant value. I did qualify for FAFSA, and used that for a semester of community college before I started working full-time. Wasn't much, though.

I'm sure Brian Cantrill is some really smart person who will totally blow my socks off with reasons why I'm a worthless piece of shit because I don't have a college degree. Regardless, considering the sheer amount of terrible software written by thoroughly-educated people, and the sheer number of diploma mills out there that'll graduate anyone with a pulse (and even that's optional), it's patently obvious that a degree is - again - not a reliable indicator of competence.

<comment><USER25> "Not all of us can afford to burn $12k."

Getting an education is never burning money. I could have made the minimum payments of a couple of hundred dollars per month for the next ten years but I wanted to live free so I mercilessly paid it off as fast as I could because freedom is dear to me, I had my entire life ahead of me (I was 21 at the time) and many plans fueled by megalomaniacal ambition. I paid it all off from my salary working in IT.

If you think like you do, then it's no wonder a mere $12,000 USD is a lot of money to you. Not only was I a full time student, but I also worked full time and for about six months I'd rack up another 30 hours working part time every weekend, just in case I lost my first job. I did the bulk of my homework on the bus and then I studied when I got home. 134 miles round trip every day.

Moving on to your comment about Brian: all he is saying is that computer science education is well worth it if one works in the computer industry, and he is qualified to say so because not only is he a computer scientist but also a kernel engineer and exceptionally good at both writing and debugging code. And yes he's super smart.

Finally, I want to touch upon your remark that my comment was _elitist_. I thought about that for quite a while, and I concluded that yes, it _is_ elitist, and there should be no apologies made for that: computer science _is_ hard, and managing to get a degree in it does make one intellectual elite. It's elitist because it's hard and challenging to earn. I studied like crazy, graduated at the top of my class, I applied myself because I lived for computers and therefore I refuse to make any apologies for becoming the elite just as I refuse to feel bad about it.

<comment><USER27> "If you think like you do, then it's no wonder a mere $12,000 USD is a lot of money to you."

$12k is a decent down payment on a small house or condo (at least if you're living outside of a place with grotesquely-inflated property values like the SF Bay Area), or a significant amount of the way toward a new or lightly-used car. It's more than the vast majority of Americans have in their savings accounts. That you consider that to be trivial betrays how thoroughly out-of- touch you seem to be with the real world.

Regardless, given my mediocre-at-best academic record in high school, my tuition likely would have been much higher than a "mere" $12k even with my (at the time, and probably still in effect) plan of pursuing the Associate's degree first (unless I stop at the Associate's degree, but I have a feeling folks like you would still be snobbish about that).

"managing to get a degree in it does make one intellectual elite"

No, it really doesn't. Not all institutions are equal in terms of academic rigor, and not everyone graduates from CMU or MIT; some of them went to ITT Tech or got to be a "Legacy" at Harvard. High-schoolers in America (myself included) were/are constantly bombarded with propaganda about how "if you just get a college degree you'll make so much more money" and then the kids flock to whichever degree mills will get them that piece of paper. And again, I know from direct personal experience dealing with CS-degree-holders that the degree itself is not a reliable indicator of competence _for that reason_.

If you think that a piece of paper is the thing making you an "intellectual elite", then you're in for a rude awakening when the rest of us manage to peer through that veneer. What _does_ make you an "intellectual elite" is actual merit, and that is _earned_ , be it through actually-rigorous academic study or actually-rigorous experience in the real world (and ultimately, the elite of the elite will more often than not have an abundance of both; most such folks start with the academic side of that equation, but I missed the boat on that so I guess I'll have to make do coming at it from the opposite direction).

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER28> I would like to compare this with Haskell's STM.

</comment><comment><USER29> Looks like a reinvention of async/await.</comment>


Ask HN: Regex search engine - <AUTHOR>

I've been pained by the approach of Google of returning what is subjectively true (i.e. their algorithm estimates relevance), to what is objectively true (i.e. this pattern of text exists, therefore this is relevant).
I appreciate the need to understand PCRE syntax severely limits the audience of such a service, but would you use it? I'm thinking of limiting the crawler around technology and software sites, in particular bug trackers, open code repositories, and mailing lists. This won't be a tool to search for all references to $latestCelebrityScandal, instead think Google Code Search (RIP) on a wider scale.
Google won't allow regex searches because they believe they are not commercially viable (http://www.youtube.com/watch?v=lYiTIDgejas). It's (subjectively) true that the service would cost money to run, so how would you be willing to cover the costs of you using it? <comment><USER2> Check out nerdydata.com?

<comment><AUTHOR> It doesn't do regex (or if they do, there website doesn't make it clear).</comment></comment>


Ask HN: Best iPhone framework to build an app - <AUTHOR>

What do you recommend? <comment><USER2> Start with the standard stuff: Objective-C and UIKit. You don't need any frameworks beyond this unless you are building a game and there will be plenty of time to fight with other poeples code when you are adding ad networks, analytics, in app purchases and so on without adding frameworks into the mix.

Objective-C and UIKit are quite large (Just Google NSString and look at all the methods on this basic type) and you need to learn as much of the standard stuff as you can. It's going to take some time and a lot of effort to be able to crank out polished apps in weeks instead of months.

If you are planing on building games then I would _still_ recommend starting with the basics. Make a UIKit based app first. Then try your hand at a simple 2d game with box2d and cocos2d. If you are going to do 3d don't go with Unity right out of the gate. Go make some "simple" stuff using OpenGL ES direcectly. Good luck!

PS. If you are ever in SF stop by our weekly iOS meetup: <http://www.meetup.com/iphonedevsf/>

</comment><comment><USER3> It completely depends on what you're trying to do with the app. A game with 3d graphics (unity)? 2d graphics (box2d, cocos2d)? Multiplatfrom in javascript(phonegap)?

<comment><AUTHOR> Basic data entry and retrieval with a good looking interface

<comment><USER3> This isn't very much information to make a decent suggestion, but I will make some assumptions.Assuming that data entered will be stored in the cloud, I suggest making a quick prototype with html/javascript and jqtouch (important for the native look and feel), and you can bundle it up with phonegap (or Titanium can do this maybe, I haven't looked into that).

This is even better if you're still in the testing or market research phase. This way, you don't even have to make it into an app, just host the html and js somewhere and run it in the browser while you show it to people. This allows for rapid changes and iteration, with the zero barrier to entry (aside from a little html and javascript knowledge). If it looks like you want to go forward, it's that much easier to make a native app because you already have the look and feel figured out. This also makes your wishes very clear in the event that you shop the development out to someone else.

</comment></comment></comment><comment><AUTHOR> I know of Sencha and Titanium, anyone have preferences?</comment>


Censorship Fail Reveals Big Music ISP Spying Plan - <AUTHOR> http://torrentfreak.com/censorship-fail-reveals-big-music-isp-spying-plan-110801/

<comment><USER2> The copyright lobby and privacy are on a crash course. As long as it's legal for us to privately exchange information, copyright cannot be enforced.

<comment><USER3> Until one of the "us" is someone who's recording the exchange, and is willing to provide the evidence.

<comment><USER2> Yes, the police try that against drug trade. This, plus drug dogs (are there copyright infringement dogs yet?) and their successes are moderate (if you look at reducing drugs availability, not the number of people put in jail.)

<comment><USER3> Sure, but it still sucks for the guy in jail, and law enforcement doesn't seem to be discouraged by your numbers.

<comment><USER2> I wasn't 100% clear with "cannot be enforced". I meant that the law enforcement has no tools to ensure the law won't be broken on a mass scale. Certainly not as long as we can exchange information in private and perhaps even not if this becomes illegal.

</comment></comment></comment></comment></comment><comment><USER4> Although I understand the title mirrors the article, is it too pedantic to note that "Fail" is grammatically incorrect in this context and it should read _Censorship Failure..._?

<comment><USER5> Yes. "Fail" as a noun is a widespread internet meme, that has shown enough longevity to potentially enter the lexicon permanently. This is language in the making.</comment></comment>


What art can teach us about the brain - <AUTHOR> http://www.scientificamerican.com/blog/post.cfm?id=why-so-many-artists-have-lazy-eyes-2010-06-04 <comment><USER2> Anecdotal, but: My wife was born with limited forward vision in one eye and it has become "lazy" as a result. She always seemed to have a knack for representing physical objects on the 2D plane. She's recently begun spending serious amounts of time oil painting and her work continually impresses me, all the more so for her lack of formal training. We've theorized that her lack of depth perception facilitates the mapping from reality to canvas, so I'm willing to believe this research.

</comment><comment><USER3> I've _got_ to remind myself to _not_ read comments on any random website.

An interesting idea, and it does make sense to me that being stereoblind may be an advantage for 2D artists. Just watch anyone trying to draw with proper perspective for the first time, they usually _dramatically_ skew basic angles until they learn to see what it _looks_ like, not what it _is_. Anyone who naturally has a less-strong sense of 3D would likely find this easier, because it's closer to how they see the world anyway.

</comment><comment><USER4> I must be a great artist, because I never ever saw anything in these godamm'd "magic eye" images. :)

</comment><comment><USER5> _line drawings are "not something we've evolved to be able to understand," he said, but rather, people in all cultures—and even babies and monkeys—can understand a simple line drawing._

 _the metaphor is often more understandable than the real thing._

Finally a possible explanation as for why Mickey Mouse cartoons are "better" than realistic 3D animation movies.

<comment><USER6> Scott McCloud discusses this extensively in chapter 2 of "Understanding Comics: The Invisible Art." His general thesis is that detailed images that approach or achieve photorealism are close to the way we understand and experience the world around us and in turn how we view other people. Highly "iconic" simplified line drawings and cartoons, on the other hand, are closer to our internal representation of ourselves. The result is that we often find it easier to empathize with cartoons than realistic images.

<comment><USER7> Great comment, thanks for that. I've been meaning to read some Scott McCloud for a while, but my reading list is pretty long and it never bubbles up to the top. Can you recommend any articles you've seen online that are pretty good, or any insights by McCloud you found really fascinating or counterintuitive?

<comment><USER8> His work isn't just words. Just go through it. It's easy.</comment></comment></comment></comment>


Email becomes a dangerous distraction - <AUTHOR> http://www.smh.com.au/news/biztech/youve-got-interruptions/2008/09/08/1220857455459.html?page=fullpage

<comment><USER2> Personally, I would have though that in a world with Twitter, IM and all the rest, e-mail would be the least of your worries.</comment>


Get your local/public IP addresses in JavaScript - <AUTHOR> https://diafygi.github.io/webrtc-ips/

<comment><USER2> In order to disable this in FireFox -> about:config media.peerconnection.enabled set to false</comment>


Ask HN: How to Build a New City from Scratch? - <AUTHOR> Food for thought:<p>* Where do you start (continent, geography)<p>* How do you pay for it?<p>* Who joins first?<p>* What is the political system?<p>* What type of housing?<p>* What type of transportation?<p>* What industries do you promote?<p>If anyone has resources that focus on the future of cities I would love to read. <comment><USER2> Your question is asking something other than the obvious. Could you explain more?

"The obvious" is to look at how your state or country handles city incorporate. In the US that's at the state level. See [https://legalbeagle.com/4913925-a-city- incorporate.html](https://legalbeagle.com/4913925-a-city-incorporate.html) for one of many resources I found by a DDG search for "how to incorporate a city".

Beyond that, China is making many new cities. A DDG search for 'China "new city"' finds many links.

There have also been many created cities. Wikipedia, for example, has a list of planned cities created to be national capitals, at [https://en.wikipedia.org/wiki/List_of_purpose- built_national...](https://en.wikipedia.org/wiki/List_of_purpose- built_national_capitals) as well as planned cities in general, at [https://en.wikipedia.org/wiki/List_of_planned_cities](https://en.wikipedia.org/wiki/List_of_planned_cities) .

Creating a new city from scratch has been popular for a long time. Eg, the "Plat of Zion" from the 1800s,

A DDG search for '"urban planning" "new city"' finds many links, including one from our Y Combinator hosts described at [https://www.wired.com/2016/07/y-combinators-plan-build- new-c...](https://www.wired.com/2016/07/y-combinators-plan-build-new-city-not- actually-crazy/) :

> Last week, Y Combinator, the Silicon Valley startup accelerator that helped > launch companies like Dropbox and Airbnb, announced it was launching an > ambitious project of its own. The "New Cities" initiative will study freshly > minted cities, and how to plan, design, and build them from scratch.

I'm sure you could find more scholarly references in Google Scholar using similar keywords.

</comment><comment><USER3> I don't know about "from scratch", but ... Incrementally, as lean and resiliently as possible. An incrementally-built city is not a city in the beginning. It's a village at best.

Here are some things that speak to this approach:

[https://andrewalexanderprice.com/blog20130330.php](https://andrewalexanderprice.com/blog20130330.php)

[https://www.youtube.com/watch?v=kChc7PVQFwA](https://www.youtube.com/watch?v=kChc7PVQFwA)

[https://www.strongtowns.org/journal/2017/12/12/the-power- of-...](https://www.strongtowns.org/journal/2017/12/12/the-power-of-growing- incrementally-series)</comment>


Who creates value in today's society? - <AUTHOR> https://bookta.lk/332988948492 <comment><USER2> Great idea! The videos selected are interesting and informative. Later on with more videos a search function would be cool.

<comment><USER3> Thanks for the feedback! We were thinking about creating individual learning paths, that group these talks together.

</comment></comment><comment><USER3> This talk brings up some convincing arguments about the role of the government in innovation.

</comment><comment><USER3> This talk makes some convincing arguments about the role of government pushing innovation.</comment>


My new favourite quote "All designs are 'wrong' for some definition of wrong" - <AUTHOR> http://monospacedmonologues.com/post/138204666541/referential-transparency-and-the-true-meaning-of <comment><USER2> I would suggest reading this article (and the others listed in this series) as a good comparison of various tradeoffs in object-oriented design. The conclusion of where OO/Functional is open/close is intriguing.</comment>


Show HN: SshTo.net – SSH port forwarding done right - <AUTHOR> https://www.sshto.net <comment><AUTHOR> DISCLAIMER: this is just an attempt to do it right :-)

Still lots of work to do with optimization and vulnerability assessment. I promise to put the sources to github when I feel that this actually worked.

Currently it uses a modified openssh code and lots of PAM and NS configuration with Auth0 JWT API, plus some config tweaks all over the system

</comment><comment><USER2> This is such a great idea. I'll try it out in a bit. Well done!

<comment><AUTHOR> Thanks a lot!</comment></comment>


Tuning machine learning models - <AUTHOR> http://blog.sigopt.com/post/111903668663/tuning-maching-learning-models

<comment><USER2> Nice post, couple of bits of feedback:

When you talk about "fit" it sounds like you mean fit to the training data, which would obviously be a bad thing to optimise hyperparameters for. From the github repo it sounds like you are using a held-out validation set, but maybe worth being clear about this (e.g. call it something like "predictive performance on validation set").

When you've optimised over hyper-parameters using a validation set, you need to hold out a further test set and report results of your optimised hyperparameter settings on that test set, rather than just report the best achieved metric on the validation set. Is that what you did here? Maybe worth a mention.

A question about sigopt: how do you compare to open-source tools like hyperopt, spearmint and so on? Do you have proprietary algorithms? Are there classes of problems which you do better or worse on? Or is it more about the convenience ?

<comment><USER3> >When you've optimised over hyper-parameters using a validation set, you need to hold out a further test set and report results of your optimised hyperparameter settings on that test set, rather than just report the best achieved metric on the validation set.

It is possible to overfit hyperparameters. However that's beyond the scope of these methods, whose only goal is to find the best settings for the validation set. So comparing their validation scores is fair, and the test scores could potentially be misleading.

<comment><USER2> Yeah I was thinking about this after I posted. Not entirely convinced though -- I want the hyperparameters I learn to generalise to unseen data, just like plain old parameters. If there are two methods for learning them then I'm going to pick the one which performs best on unseen data and I'd like a metric which helps me make that choice.

Sure, you can evaluate them purely as optimisation algorithms, but does it follow that the better optimisation algorithm is necessarily better at picking hyperparameters that generalise to unseen data?

One way that hyperparameter optimisation can overfit that people don't always think about, is by repeatedly evaluating high-variance metrics and picking the best of N tries. This has burned me when it comes to optimising settings for stochastic optimisation algorithms for example. An algorithm that was very aggressive in doing this might reach a better maximum on the validation set but wouldn't do any better on held-out data.

There are things you can do to compensate for that of course (variance estimates for metrics is a good idea!), but evaluating on a test set data usually doesn't hurt and seems like the safest option.

<comment><USER3> >If there are two methods for learning them then I'm going to pick the one which performs best on unseen data and I'd like a metric which helps me make that choice.

But both methods will converge to the exact same set of hyper parameters, the ones that are optimal for the validation set. The only difference is some methods are faster.

</comment></comment></comment></comment><comment><AUTHOR> I'm one of the founders of SigOpt and I am happy to answer any questions about this post, our methods, or anything about SigOpt. I'll be in this thread all day.

<comment><USER4> Another founder here! If you have any questions about our engineering stack, I'm happy to answer.

<comment><USER5> Can it solve the halting problem?</comment></comment></comment>


Game Theory and Kickstarter? - <AUTHOR> http://www.therussiansusedapencil.com/post/4293798937/pay-what-you-wish

<comment><USER2> The headline here is very unfortunately chosen. The actual article is a very interesting look at a project of which I hadn't previously been aware, but the game theory discussed within is both very little and not the most interesting bit of the content.</comment>


Americans are Innumerate and Broke - Credit Slips - <AUTHOR> http://www.creditslips.org/creditslips/2011/08/americans-are-innumerate-and-broke.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+creditslips%2Ffeed+%28Credit+Slips%29 <comment><USER2> I have no doubt the article is correct (and it gives some compelling examples to support its argument): Americans suffer innumeracy. But I think a bigger problem is the degree to which Americans seem to have a poor grasp of real value. If you can't tie a convenient dollar value to it, many people seem incapable of grasping what has real value and what doesn't. Many people seem to think the current recession is some numbers game and is about "money" rather than about actual underlying problems. Money has one real inherent value: It is a lubricant for trade. But many people seem to not understand that.</comment>


Lecturefinder. Indexing college and academic grade lectures and presentations. - <AUTHOR> http://lecturefinder.com

<comment><USER2> Nice idea, but the implementation is pretty limited. I'll still bookmark it, and hope that a future release is more full-featured.

</comment><comment><USER3> Google Advertisements make you seem very unprofessional at this stage and are a turn-off from a user perspective. I'd suggest dropping them but keeping the advertising space to display self-promotional material.

You can always swap out your own advert and swap in Google's later.

<comment><USER4> I disagree. I don't find a few Google ads offensive at all. It's not like it's DevShed.com or About.com, and covered from top to bottom in flashy mis-matched ad banners and towers. It's one strip of plain text ads. The overall feel of the site is a bit strange...a bit cramped and claustrophobic, perhaps. But the ads aren't the problem. I suspect the ads would fade out of focus if the site had a more open feel.

</comment></comment><comment><USER5> Really looks like an ad.

</comment><comment><USER6> Thanks a lot!</comment>