Another take on the causes and significance of the 2008 financial collapse - <AUTHOR> https://business.financialpost.com/opinion/terence-corcoran-dont-blame-rich-bankers-for-the-2008-global-crash-blame-socialism <comment><USER2> It's hardly the either/or the author makes it out to be, and the writer tried way too hard to wrap it up with "damned poor people, it's _always_ their fault, innit?". Without doubt, yes, policy decisions contributed heavily to the collapse. That does not absolve the finance industry of creating instruments such as CDOs, and the tom-foolery that followed. In the end, there are few clean hands in a system built on greed top-to-bottom, from the home buyers buying more house than they can afford, to the banks that lend to them, and ending with a finance industry creating financial instruments in search of a greater fool.

</comment><comment><USER3> The author makes a case against "corporate giganticism" being a cause and blames a "government agency" namely The Fed. It's hard to take anything the article says seriously if they can't recognize that The Fed isn't a government agency and is what many people hold to be the epitome of "corporate giganticism".

The author seems very confused between the structure of the Treasury Dept and The Fed

</comment><comment><USER4> It seems to me that this recent book got it mostly right. The root of the credit collapse was improper or missing underwriting of mortgages resulting from heavy pressure by Congress and activist organizations to expand home ownership. The financial sector then did what it's good at, laying off risk through repackaging of mortgages into structured bonds and marketing them around the world.

There was also a good deal of greed involved including manipulation of the markets and the regulatory organizations by the likes of Hank Paulson. And yet few were punished. The fines imposed were small compared to the profits extracted. People in government who were responsible for the debacle were conveniently put in charge of the clean up.

Lehman should not have been allowed to fail. That failure destroyed confidence in the system and triggered the panic.

There have been a number of excellent books written over the years describing the complex events from different perspectives. Enough time has elapsed to produce an even-handed re-evaluation.

The book makes the point that Dodd-Frank has made the financial sector more brittle than it was before by removing flexibility.

"Future crises are inevitable, says Ball, but "under these rules, future Fed leaders may be helpless to counter runs on financial institutions," even when rescues can be backed by collateral."

<comment><USER5> As I originally heard it the Fed or HUD(?) started moving towards guaranteeing subprime mortgages, and the AAA rating idea took off from that. The Fed issues bonds that are risk-free, so brokers extrapolated government buying of a few subprime mortgages to low risk for all of them.

</comment></comment><comment><USER6> This doesn't strike me as empirical. It strikes me as a narrative.

</comment><comment><USER7> I am already focusing on how the debt-based economy currently works and its problems.

</comment><comment><USER8> there are some very good points there, but this is a rather wrong place for criticising socialism :)</comment>


Ask HN: Resources for learning to write compilers? - <AUTHOR> I'm very interested in learning to write compilers, starting with just a simple made up language.<p>Can anyone share resources? I prefer bound books, but anything is helpful! I've been reading the source of TempleOS for tips as well. <comment><USER2> If you are fluent in one of the functional languages (Haskell, SML, OCaml, F#)

Modern Compiler Implementation in ML (I'm not a fan of the C/Java versions)

[https://www.amazon.com/Modern-Compiler-Implementation- Andrew...](https://www.amazon.com/Modern-Compiler-Implementation-Andrew- Appel/dp/0521607647)

If you are fluent in a mainstream OO language - Java, C#, Ruby etc

Programming Language Processors in Java: Compilers and Interpreters

( the code is in Java but can be trivially ported into any OO language )

[https://www.amazon.com/Programming-Language-Processors- Java-...](https://www.amazon.com/Programming-Language-Processors-Java- Interpreters/dp/0130257869/)

Most compiler programming books use lex/yacc versions for lexing and parsing. Imo, this isn't a good way to _learn_ lexing/parsing, and using recursive descent or combinator parsing approaches is (imho) the right way to begin.

If you want to know how tools like lex and yacc are _built_ , then Holub's "Compiler Construction in C" is very comprehensive and goes into great detail about the required CS theory- (automata DFA, NFA etc).

The book seems to be out of print, but used copies are worth buying (imho)

[https://www.amazon.com/Compiler-Design-C-Prentice-Hall- softw...](https://www.amazon.com/Compiler-Design-C-Prentice-Hall- software/dp/0131550454/)

<comment><USER3> The Holub book (and source code) is available for download from the author - [http://holub.com/compiler/](http://holub.com/compiler/)

</comment></comment><comment><USER4> The following that I have on my bookshelf have helped:

Compilers Second Edition [0]

Engineering a Compiler, Second Edition [1]

Computer Systems: A Programmer's Perspective (3rd Edition) [2]

[0][https://www.amazon.com/Compilers-Principles-Techniques- Alfre...](https://www.amazon.com/Compilers-Principles-Techniques-Alfred-Aho- ebook/dp/B009TGD06W/) [1][https://www.amazon.com/Engineering-Compiler-Second- Keith-Coo...](https://www.amazon.com/Engineering-Compiler-Second-Keith- Cooper/dp/012088478X) [2][https://www.amazon.com/Computer-Systems-Programmers- Perspect...](https://www.amazon.com/Computer-Systems-Programmers- Perspective-3rd/dp/013409266X/)

<comment><USER5> CS:APP covers compilers? My school runs a clone of that course where we do a selection of the labs (malloc, shell, bomb, etc), but we didn't touch anything like compilers. Maybe I'll have to go look through that book again!

<comment><USER6> Any chance your school makes its exercises available? I've been trying to go through CS:APP myself, but the exercises aren't included and I believe I'd need a .edu email address to get them.

<comment><USER5> No, the authors guard that stuff pretty jealously, and instructors are forbidden from allowing the exercises or solutions from being published online. It's a well-known course used at a large number of schools outside of CMU (150+ I think?), so they're concerned about people distributing solutions or something. Maybe you can try emailing the authors about it or something?

</comment></comment></comment></comment><comment><USER7> I bet this is what you are looking for:

[https://www.amazon.com/Compiler-Construction-Using-Java- Java...](https://www.amazon.com/Compiler-Construction-Using-Java-Java..).

This book taught me how to write a compiler.

Here is its description from its website:

* Comprehensive treatment of compiler construction.

* JavaCC and Yacc coverage optional.

* Entire book is Java oriented.

* Powerful software package available to students that tests and evaluates their compilers.

* Fully defines many projects so students can learn how to put the theory into practice.

* Includes supplements on theory so that the book can be used in a course that combines compiler construction with formal languages, automata theory, and computability theory.

If you already know C or C++ or Java then this book is for you. In my opinion, you can learn many computer science concepts and be able to apply to your field. The book will teach you how to write a grammar then write a parser from it then eventually be able to improve it as you go on reading and doing the exercises. It was a great moment when I feel comfortable writing recursive functions since grammars are composed of recursive functions. You'll also learn a nice way on how you can get your compiler to generate assembly code. Another feature of the book is the chapter on Finite Automata wherein you'll learn how to convert between regular expressions, regular grammars and finite automata and eventually write your own 'grep' which was for me is a mind- blowing experience. There are lots of other stuffs in this book that you could learn.

</comment><comment><USER8> Start with an interpreter. Many of the concepts are the same, but you don't have to mess with code generation at the end. I enjoyed working through [https://interpreterbook.com/](https://interpreterbook.com/)

I have no relation to the author. I'm just a happy customer.

</comment><comment><USER9> I am in the middle of reading _Write Your Own Compiler_ by _Nils M Holm_. See [http://t3x.org/t3x/book.html](http://t3x.org/t3x/book.html) for the book and the accompanying code. I like it so far.

T3X is a tiny (made up!?) procedural language.

</comment><comment><USER10> Hey, I have been in your place like last year, and as a result of researching the field of Compilers and Interpreters construction I wrote a curated list of awesome resources on Compilers, Interpreters and Runtimes, feel free to check it out at: [https://github.com/aalhour/awesome- compilers](https://github.com/aalhour/awesome-compilers).

The list is huge, so I recommend you start with the Compilers course by Stanford and go through one of the two following books as a parallel reading: 1\. Engineering a Compiler, K. Cooper, L. Torczon. 2\. Modern Compiler Implementation in ML, by A. Appel.

If you want a smaller book, the I recommend the Basics of Compiler Design by T. Mogensen, it is a nice and short one.

All of these resources are linked to in the list.

Happy tinkering!

</comment><comment><USER11> I would recommend Appel's Modern Compiler Implementation series. It is good starting place for building up compiler fundamentals and progressively implementing a reasonable compiler for a reasonably rich language without getting bogged down from too many idiosyncrasies.

</comment><comment><USER12> If you're not looking to implement one totally from scratch, this could be a good start: [http://llvm.org/docs/tutorial/](http://llvm.org/docs/tutorial/)

<comment> m-j-fox Yeah, I've been working on LLVM lately and it seems like they've solved all the problems. Somehow, they solved them in standard C++. I've been through a bunch of compilers and I could barely hang on. In LLVM, everywhere I go, I'm like: oh, so that's how you do that.

One thing that helped get started was slides from a CMU class. Hang on:

[https://www.cs.cmu.edu/~15745/syllabus.html](https://www.cs.cmu.edu/~15745/syllabus.html)

Excellent work and so nice of them to post it for free.

</comment></comment><comment><USER13> Modern compiler implementation in ML and Engineering a compiler are the two best all round books I've seen. The former also contains so useful information (not much, but useful) about implementation the runtime (e.g. Intro to garbage collection)

Personally, I only find the backend (Optimization) interesting: Steven Muchnick's Advanced compiler design and implementation, is the only book that I know of that is mainly focused on optimization. It is literally a encyclopedia of optimizations.

</comment><comment><USER14> Tiny C Compiler [https://bellard.org/tcc](https://bellard.org/tcc)

ANTLR [http://www.antlr.org](http://www.antlr.org)

"Compiler Construction" by Niklaus Wirth (2014) [pdf] [https://news.ycombinator.com/item?id=10764672](https://news.ycombinator.com/item?id=10764672)

</comment><comment><USER15> This recent HN post could be useful to you: [https://jaseemabid.github.io/2017/07/04/compiler.html](https://jaseemabid.github.io/2017/07/04/compiler.html)

The "dragon" books is one of the classics. (Compilers: Principles, Techniques, and Tools) ... linked to in another comment.

</comment><comment><USER16> You can take Stanford's Compilers course from Lagunita: [https://lagunita.stanford.edu/courses/Engineering/Compilers/...](https://lagunita.stanford.edu/courses/Engineering/Compilers/Fall2014/about)

</comment><comment><USER17> I wrote an article on everything you need to create your own lanague, hope it helps [https://tomassetti.me/resources-create-programming- languages...](https://tomassetti.me/resources-create-programming-languages/)

</comment><comment><USER18> Sources of various compilers, assemblers, and linkers:

[http://www.exmortis.narod.ru/index_eng.html](http://www.exmortis.narod.ru/index_eng.html)

</comment><comment><USER19> Structure and Interpretation of Computer Programs has a nice section going through building an interpreter and then a compiler. That might be enough to slake your interest.

</comment><comment><USER20> Relevant question: how to write a debugger?</comment>


What sites can I use for programming problems? - <AUTHOR>

<comment><USER2> <http://projecteuler.net/>

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

</comment><comment><USER3> <http://www.codechef.com/> <http://www.spoj.pl/></comment>


Rich Families Are Legally Separating from Their Kids to Pay Less for College - <AUTHOR> https://www.vice.com/en_us/article/9kxe87/rich-families-are-legally-separating-from-their-kids-to-pay-less-for-college <comment><USER2> In general a problem is that wealthier people have the time, energy, and expertise to manipulate the system better than poorer people. Another place we see it is in the usage of IEPs and other accommodations for learning disabilities by wealthy families, in some areas more than 10% of students have accommodations like this. See this article for more: [https://www.nytimes.com/2019/07/30/us/extra-time-504-sat- act...](https://www.nytimes.com/2019/07/30/us/extra-time-504-sat-act.html)

<comment><USER3> I doubt they have more time and energy, but they do have more resources to engage advisors and experts to act on their behalf.

<comment><USER4> > I doubt they have more time and energy

You'd be wrong. The poor are working two jobs. The poor are begging their boss for a couple hours off to go stand in line to get their kids on medicaid. The poor are walking to the bus stop. The poor are rushing to the apartment manager to give them partial rent so they still have a roof over their head.

Time is something the poor have very little of.

Edit: I see some of you drive by disagree with me. I see this all the time as foster parents. The poor are much more likely to be in a situation where their children are removed and so talking with the bio parents, I hear their struggles. But keep drive by disagreeing with me if that makes you feel better.

<comment><USER5> Those people don't need to engage in legal shenanigans to qualify for student aid.

Also, you can do medicaid over the internet/phone/mail these days. Unless you have a problem with the workflow that prevents you from using these systems you should never have to speak to anyone in person. Or at least that's how it is in my state.

Edit: Since I'm apparently so wrong does anyone want to tell me what kind of legal shenanigans people who are poor enough to qualify for financial aid need to go through other than filling out the forms truthfully?

</comment></comment></comment></comment><comment><USER6> The issue here is that perfect price discrimination doesn't actually seem fair to the vast majority of "normal" people. I was the youngest child of old parents, so we looked fabulously wealthy to the FAFSA. In reality, my parents were only mildly better prepared for retirement, which they were entering, than the average local government employee (both of their careers). This meant that my family paid full cost for flagship state university, despite much much wealthier people paying less. Similarly, my out-of-state friends were given "scholarships" that put them down to in-state tuition rates, but no lower. People do not generally pay the "full" price of these things[0].

[0] [https://www.cnbc.com/2019/03/18/private-colleges- costs-35830...](https://www.cnbc.com/2019/03/18/private-colleges- costs-35830-on-averagebut-students-may-pay-less.html)

<comment><USER7> FAFSA is a terrible price discriminator, and unsurprisingly primarily screws the middle class and kids with special circumstances. You have:

1\. Kids with legit wealthy parents from whom they are estranged and get no support.

2\. Kids with moderately high income parents but also a lot of mandatory expenses like medical bills, other kids to support, etc.

3\. Kids with middle class parents who are too poor to pay for College, but too rich for financial aid [1] [2].

These are the people who either end up not going to college or graduating with crippling debt. The poor who qualify for sufficient student aid end up fine, and the rich, well, always end up fine.

1: [https://www.forbes.com/sites/robertfarrington/2014/06/17/too...](https://www.forbes.com/sites/robertfarrington/2014/06/17/too- poor-for-college-too-rich-for-financial-aid/#197891d96922)

2: [https://money.cnn.com/2016/04/28/pf/college/college- financia...](https://money.cnn.com/2016/04/28/pf/college/college-financial- aid/index.html)

<comment><USER8> My personal hatred is that if the parents divorce and both are extremely poor, the kid can get financial aid, but then if one parent remarries someone with money, all that aid can get pulled from future years.

The income of a step parent (who has never had a legal obligation to ever provide support) should not be considered by FAFSA, at least not for the first X years of marriage.

</comment></comment></comment><comment><USER9> The sad thing is that kids who actually are cut off or estranged from their rich parents don't have lawyers and consultants helping them to legally sever ties, and they end up having to drop out of school because they can't get the forms needed to file the FAFSA or their parents make too much and won't help them.

<comment><USER10> They don't even have to be cut off or estranged.

I've known people who had rich 300k+ parents that were the "pull yourself up by your bootstraps" kind of people who were able to pay for private college with a high school job back in the day. They feel that they were teaching their kid a valuable lesson.

They didn't get any help for college and were disqualified from all financial aid.

<comment><USER11> > disqualified from all financial aid.

What does this mean? The government wouldn't issue them a loan at all? Or that they wouldn't subsidize the interest?

<comment><USER12> Loans =/= financial aid, at least in the US.

IDK the specifics that OP was talking about, but my assumption is that instead of being able to get need based assistance (due to being unable to demonstrate "need" since their parents were so wealthy) these people would have been forced to take out loans.

Depending on specific circumstances, this can mean anything from having to go to a different school, to being strapped with tens of thousands of dollars of additional debt, to being entirely unable to pay for school at all.

<comment><USER11> I guess I didn't qualify for financial aid then. I had a small scholarship, but I otherwise worked hard and lived frugally and earned my first degree with only $7K in debt. My peers came out with $40-90K in debt, but they often didn't work or only worked 8 hours/week (compared with my 20 hours/week) and they would spend money lavishly (partying, luxury clothes, daily starbucks lattes, 2-4 years in dorms, etc). I'm not sure if my experience was typical, but making one's children pay for their own education is hardly a cruelty (mind you, education in the US is still far too expensive).

<comment><USER12> >>but making one's children pay for their own education is hardly a cruelty (mind you, education in the US is still far too expensive)

Just to unpack a few things here (baring in mind I'm a true "eat the rich, tear them from their ivory towers" type socialist).

1- College is WAY too damn expensive, and that's the majority of the conversation. We do a terrible job teaching finance to children and then we expect them to graduate high school and understand what they're undertaking when they sign on for student loans.

2- "Cruelty" is about intent. Rich people can be cruel to other rich people by inflicting financial difficulties on them. They can also be entirely reasonable and attempting to teach them a lesson about hard work and "earning your keep" and what not. It's entirely situational and too difficult to throw a broad statement that covers every situation. This is more about philosophy than anything objective.

<comment><USER11> Fully agree on 1. 2 is a semantic debate; this thread already assumes the rich parents had good intent.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> This is the strongest argument that can be made for universal programs when it comes to designing progressive public policy. Rich people have the time and resources to aggresively take advantage of any system that tries to implement means testing or scaled benefits. The winning play is to design programs where benefits are given completely independently of time, money, access or power, even if it means some people who do not need it will get some assistance.

<comment><USER14> As long as the system has rules, those rules can be optimized for.

As long as conditions exist, someone can study or hire expertise in helping to meet those conditions.

<comment><USER13> The point of universal programs is that the "condition" for eligibility is existence [1] and thus there is nothing to optimize for, by definition.

[1] This is obviously a simplification because of in reality the condition is citizenship/residency, but that's a whole other issue.

</comment></comment></comment><comment><USER15> To some extent, Universities are inviting this kind of gaming.

Stanford 2019-20 undergraduate tuition

Pay in full: "The total charges for full-tuition-paying families will be $69,962, which includes $16,433 for room and board and $672 for a mandatory health fee."

Four years is just under $280K.

Free: "Under Stanford's program, parents with annual incomes below $125,000 and assets typical of that income level pay no tuition. Parents with an income at or less than $65,000 and typical assets pay no tuition or room and board."

[https://news.stanford.edu/2018/12/04/stanford-expands- financ...](https://news.stanford.edu/2018/12/04/stanford-expands-financial- aid-middle-income-families-trustees-set-2019-20-tuition/)

<comment> non-entity From what I've heard, California does well with schooling, especially for lower income families. An internet acquaintance of mine mentioned something about paying $46 a credit hour at a community college near him. Conversely, the per credit hour cost of a community college near me is over 5x that!

<comment><USER6> Several years ago, before it became _unaffordable,_ California residents were entitled to education at any state school, including UC Berkeley, for free. Community colleges were very definitely part of that. The better question is what is the out of state or out of district cost of your friend's CC?

<comment><USER16> In California, there is no out of district penalty for community college. Out of state tuition is expensive, but I think on par with out of state tuition for other states' community colleges.

</comment></comment></comment></comment><comment><USER17> It's easy to be enraged by reports like this, but I just see it as proof that the system is too damned expensive. There's opportunity cost here, along with actual cost, and risk, and even then the savings is justifiable.

<comment><USER18> Stanford has an endowment of $26.46 billion. Even with just a fraction of the interest from that fund, universities like Stanford can easily pay everyone's tuition. Instead, they'd rather hoard money, hire unnecessary admins, and build new buildings with another billionaire's name on it.

</comment></comment><comment><USER19> I don't see anything wrong with this. Colleges are priced for maximum wealth extraction by charging people as much as they can possibly pay so smart families are working the system to outplay them at their own game. This is exactly the same as the medical system where prices are set based on ability to pay and not service provided.

</comment><comment><USER20> Wow lol. Some people will use every trick in the book. FAFSA must be seeing a lot of "orphans" with famous last names out there.

The issue is that the system tries to force people to pay proportionally to their assets/income. Pricing in this way is messy. What is worse is that college already is inefficient at creating good employees-- rich people are going through private channels to get their kids in good jobs these days anyway.

</comment><comment><USER21> It's insane that college finance has anything to do with parents. Probably a mistake to even have expensive colleges, unless you're deliberately trying to reproduce inequality.

<comment><USER22> Because you're an adult legally. Well except when it comes to paying for college. Then you're a child dependent on your parents.

<comment><USER23> You are a child dependent on your parents until you are 25 and have to pay for your own health insurance.

</comment></comment></comment><comment><USER24> 'Rich' is a relative term.

> living in a $1.2 million home and earning more than $250,000 a year.

In other words, you make enough to not qualify for any aid, bit not enough to have $60k/yr disposable income. I see where the parents are coming from.

<comment><USER25> They could have not bought a 1.2M home...

<comment><USER20> That's not an option for people who live in parts of California, New York, Seattle etc where median home prices are over 1M USD.

Surely you don't want to penalize those people who arr grossing a lot but netting very little.

</comment></comment></comment><comment> 33MHz-i486 In other news ... instead charging a transparent and fair price for a service, private colleges and government conspire to attain perfect price discrimination against their education consumers based on itemization of their income/property.

</comment><comment><USER26> As long as their former kids pay taxes on any resources given to them from their now non-relatives, and their parents don't claim their non-children as dependents, and they get taxed on any inheritance from non-relatives.

<comment><USER27> Yes is does seem silly to save a few thousands now when your going to get stung for a lot more when your parents die.

Maybe some very good (but shady) lawyers are enrolling the parents in dodgy schemes. A bit like how some "self employed" people in the UK got suckered into tax avoidance schemes and are now facing tax bills of 500k plus

</comment></comment><comment><USER28> I think it's worth pointing out that universities only care so much as it's a PR matter and preserving the view of "fairness". They don't care in the sense they are getting paid.

Overall, the increase in government funding and the effective use of university as the expected next level of education, along with the very mixed financial incentives schools have are the primary causes of the ballooning of cost of education. Wouldn't this just play more into this problem?

I'm in favor of more professional schooling, trade schools and apprenticeships. There are very few reasons why everyone needs full liberal arts degree—especially at the quality it is now.

Oddly, I think Europe is more effective in some regards. I don't agree with free educations—psychologically I think it devalues education. But there is a lot more emphasis on trades, professional and other sorts of schooling, overall a lot more variety in tracks of education. And while I don't agree with free education, I think the education system is much more aligned with the public benefit.

<comment><USER29> >I don't agree with free educations—psychologically I think it devalues education.

There are good reasons to be against free college, but this is not one of them.

</comment></comment><comment><USER30> Meanwhile, poorer unfortunate kids whose parents kick them out get caught in the gap where their parents won't pay for college, but the college considers them dependents and won't give them financial aid.

Source: Was one such kid. Took 2 years of paperwork and phone calls before I qualify for aid based on my own finances.

</comment><comment><USER31> Not surprising when education is so ridiculously expensive, next only to healthcare. Who wouldn't evade prices so high when possible? I'm amazed about how the US insist on regulating everything and fail to leverage free market in these areas letting fair competition to drive the prices down.

</comment><comment><USER32> It's almost like this problem should be handled via progressive income/wealth taxation that makes tuition free/affordable to everyone. That way, the rich still pay more, just not in direct tuition.

</comment><comment><USER33> Now that they know this may happen, what's to stop every university closing the loophole?

Since they appear to be free to do whatever they please, they can simply ask for a list of anyone who was ever your parent, and a letter explaining any omissions (like you were adopted age 1). They needn't even write the rules for acceptance of excuses in advance, and can decide what to do about edge cases (like someone adopted by his less-wealthy uncle at age 15...) when one applies. Is there any reason they don't yet do this?

<comment><USER12> How do you know that closes the loophole? How can you prove someone is saying they're estranged and not actually estranged? Sad fact is a wide net for social programs are typically better, even if it allows scammers to skim off the system.

Which feels like the greater social loss to you, closing the loop hole and finding that you're now harming people who need assistance or keeping it open and allowing some people to benefit unfairly from the system?

<comment><USER33> It would close this particular loophole, by treating legally disowned and merely estranged identically.

I'm not saying they would accept letters stating that you are estranged (which they certainly don't do now). I'm saying they could refuse to believe recent legal changes to parenthood, and just demand the whole list since birth. Just as lots of documents need every name you've ever had, not just your current legal name.

(Whether the actually estranged should be treated differently is another question. Judging by how they've run the system so far, the colleges don't seem inclined to do so. I don't mean to defend their behavior, only to ask what moves they may make.)

</comment></comment></comment><comment><USER34> I always genuinely wonder where does the high cost of college tuition come from? Ok, if you doing some highly technical major (medicine or technology) which involves you working with cutting edge equipment with maintenance cost but does it really have to be that much? (~$50k pa). Doesn't scale up reduce cost? Also, what about majors like liberal arts? What are the students paying for?

The only other thing that comes to mind is faculty cost but are teachers that highly paid to warrant such high tuition?

<comment><USER35> Never look to the back-end costs to explain the price of anything. The price is always set to what the market can barely tolerate. This is capitalism.

If you think that margins are too high, then this could indicate a lack of competition. _That's_ what you should look to for a possible explanation. Why is there apparently a lack of competition between colleges?

<comment><USER36> Margins being high isn't just caused lack of competition, it can also be caused by unwarranted prestige e.g. De Beers diamonds. You _could_ go to an affordable community college with professors who attend because they enjoy teaching, but then you wouldn't have a sexy expensive degree from MIT/Berkely/Stanford college where the world's most esteemed professors send their TA's to teach you so they can focus on more cutting-edge research.

<comment><USER37> I don't understand your implication that people choose between two year and four year schools. Wouldn't people going to a two year school either be looking for an associate's degree or to transfer to a four year school?

</comment></comment></comment></comment><comment><USER38> My parents made me pay for school, but because they're still my parents I have the 'bad' (high percentage) student loans, and of course paid full tuition.

I think this is just a symptom of a broken system. And it's not only rich families that do this, unless we consider all middle class couples rich now. I personally know of a family where one of the spouses' suggested it, though the other ended up being so offended it eventually lead to a real divorce.

</comment><comment><USER39> >The Wall Street Journal was able to reach two parents who were coached by Destination College into transferring guardianship of their kids before they applied for financial aid.

TWO. _TWO_. Even if we extrapolate that two out beyond our wildest dreams, it's still not symbolic of a pattern. Yes, this is a loophole and yes it should be closed but there does not appear to be any evidence that is being being abused widespread at the current time.

<comment><USER40> This isn't exactly rocket science ... my daughter just started college, and as a tech industry employee let me tell you, she got no financial aid (some other academic things aside).

When we started filling out the student loan paperwork, I had literally this idea (the whole legal separation thing) as a passing thought. Of course, because I'm not a monster, I laughed it off and kept on filling out the paperwork ... but one doesn't have to be a great student out of Wharton to figure out a scam like this, and you can bet your arse more people have actually pulled the trigger on it.

<comment><USER19> When I was 18 I asked my parents to look into doing that. They laughed it off but like you said it's a pretty obvious loophole but you have plan ahead a bit to utilize it

<comment><USER41> What exactly would that look like? The article talks about guardianship, but with 18 they aren't your guardian anymore either way (at least in most states). Or is it about not listing you as a dependent? Doesn't that have negative tax implications for the parents?

<comment><USER19> I don't think there are many deductions for kids that no longer need child care, maybe 2k. But the biggest expense is medical insurance, that will eat a lot of the savings

</comment></comment></comment></comment></comment><comment><USER42> What are the downsides of this:

Mandate that all (accredited, therefore regulated) schools charge a percentage of future earnings, rather than tuition. The market between employers and colleges will sort itself out. Every prospective student would know ahead of time what percentage of future earnings (up to some cap) they'd be giving up, per school, and would weigh the perceived value of the schools against the percentages they take.

<comment><USER43> There is some talk about something like this, and I believe Purdue was trying it out already

<comment><USER33> I believe the Australian & UK systems work a bit like this, too. Perhaps it's nominally a loan, but collected like income tax, with a threshold on how much you must earn to pay at all.

However I don't think either is very flexible about different places charging very different fees, or different implied interest rates.

</comment></comment></comment><comment><USER44> What if a kid is actually disowned by their rich parents, and isn't getting anything from them? No aid for you?

<comment><USER29> Assuming they're not legally separated and the kid is under 24, yes. Happens a lot actually.

</comment></comment><comment><USER45> Source should be changed to [https://propublica.org/article/university-of- illinois-financ...](https://propublica.org/article/university-of-illinois- financial-aid-fafsa-parents-guardianship-children-students)

</comment><comment><USER46> This makes no sense to me. You have $250k/year income and you go to the trouble and risk possible unintended consequences of emancipating your child to save $20k/year for 4 years? Totally bizarre.

</comment><comment><USER47> Same issue as wealthy elderly gifting all their assets to their kids ("pre- inheritance") so they can get on Medicaid to pay for their nursing home care.

</comment><comment><USER48> The solution is simple: make student loans dischargeable in bankruptcy, just like every other kind of loan.

Otherwise there is no incentive for banks and colleges to not charge infinity for college.

The current system is like a legal modern form of slavery or mafioso.

It's mind boggling how people don't see this simple explanation.

<comment><USER49> This is a possible solution, but it's not simple.

If you do this, the current system of student loans we have will collapse completely. Now, maybe that would be good...but it's not simple.

<comment><USER48> It is simple.

Not easy, but simple.

This is _the_ solution. It works for all other industries. If I loan you money to buy a house or buy a car, without doing due diligence to that loan, the courts tell me "tough luck" if you file for bankruptcy. But if I lend you $250,000 for an arts degree, the power of the state will force you to pay me.

That's insane!!!

<comment><USER49> Yes, and home and car loans still exist because if people don't pay it back there is an asset to repossess.

That's not the case with college loans.

Which is why they are fundamentally different.

<comment><USER48> > they are fundamentally different.

Perhaps it's good there are some things that are different. Some things are property. Some are not.

In history there always seems to be a trend for those in power to try and enslave those not in power, by putting property laws on people.

This student loan bankruptcy exception is one example. Intellectual slavery laws like copyright and patents are another.

<comment><USER48> In reply to tptacek:

"at the point where you make student loans dischargeable, you might as well just concede that you're eliminating them altogether."

Have you ever gone through bankruptcy? Luckily I have not, but from what I've read it's a horrible thing to go through with serious consequences to your finances that takes a minimum of 7 years to overcome.

I think the cost of college would drop 10x. I went to Duke, and the gardens and pools were lovely, really, but perhaps some tables and books would have been the more appropriate use of my tuition money.

I do agree the IS bit was somehwhat a non sequitor, but there is a common thread here I think when people try to put property and ownership rights on things that nature doesn't make that easy.

<comment><USER50> I have administered and underwritten bankruptcies for others and feel like I have some direct personal experience with the process. I do not feel like the consequences of bankruptcy are sufficient to make it irrational to discharge 6 figures of college debt through the process.

<comment><USER51> I would have declared bankruptcy in a heartbeat for my wife's loans & it would have been rational. I a) make good money b) have good credit and c) don't have financial hardships.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER52> This has been going on for a looong time.

</comment><comment><USER53> This must be today's daily "here's how rich people are ruining X" article that has become so predictably regular on HN.

<comment><USER54> So this is just typical media hype? Just wanna make sure I understand your pov

</comment></comment><comment><USER55> I'm supportive of this. Children should not be held accountable for "the sins of their parents". My parents started charging me rent when I was 18 and told me I had to pay for college entirely by myself. I don't see why their income should be held against me.

<comment><USER56> From reading the article, I think the point is that these kids aren't actually supporting themselves, they're just made to seem that way on paper.

<comment><USER57> Surely their income from their parents is taxable at normal income tax level then?

<comment><USER58> Only if they give/receive more than 11.1 million over the course of their lifetime.

<comment><USER56> And that, only the amount over $30k/yr for a couple gifting their child.</comment></comment></comment></comment></comment>


NSA and DoD lawyers, Jane Harmon, Anthony Romero (ACLU) debate national security - <AUTHOR> http://www.youtube.com/watch?v=kJiTjCAMjLY

<comment><USER2> Are you serious? 3.9 of them are pro-surveillance, and 1.1 of them are anti- surveillance. Some debate. I supposed the woman was supposed to be on the ACLU director's side (and even then it wouldn't have been equal), but even she was most of the time pro-surveillance, anti-Snowden.</comment>


Ask HN: How can I find someone to collaborate on hardware? - <AUTHOR> I'm a physician and I'm working on a hardware idea. How can I find someone I can talk to about this? I don't live in a great tech hub, so I'm thinking it'll be an online/phone/virtual collaboration AND I can pay for it if they just want to be employed/freelance for a job. <comment><USER2> I might be able to help. I have a great deal of experience with custom hardware and software. See my profile for details and email address.

<comment><AUTHOR> Great! I'd love to talk more. I don't see your email posted in your profile though.

Email me: email@example.com</comment></comment>


National Self-Sufficiency – John Maynard Keynes (1933) - <AUTHOR> https://www.mtholyoke.edu/acad/intrel/interwar/keynes.htm <comment><USER2> A lot of great stuff in there (on a number of topics), although he doesn't exactly make an argument for why paying the cost of greater national self- sufficiency might be more humane, just observes that despite the benefits of economic integration there have been negatives too. Indeed all the actual examples he puts forwards seem pretty worrying.

</comment><comment><USER3> Really looking forward to his new album with the rest of TOOL

<comment><USER4> Could you please not post unsubstantive comments to Hacker News?

<comment><USER3> I'll take it into consideration, shitstick</comment></comment></comment>


U.S. judge approves $415M settlement in tech worker lawsuit - <AUTHOR> http://www.reuters.com/article/2015/09/03/apple-google-ruling-idUSL1N11908520150903 <comment><USER2> This conspiracy is by far the most intentionally evil thing tech companies have ever been caught doing. Also the worst thing Steve Jobs did in his life.

<comment><USER3> I'm still pissed at Google for falling into this. From a company that prides itself on not being evil, it was clearly an evil practice. I'm not too pissed though. I understand Steve had his distortion bubble and Larry had stars in his eyes. It's sad to see the integrity break down. It makes me not trust Google to always do the right thing because I don't trust Larry to.

<comment><USER4> "Don't be evil" is just a slogan. Same as any other company's slogan. There isn't any integrity to begin with unless there's a market incentive for it, and there isn't.

<comment><USER5> I like to think they were just being sarcastic.

<comment><USER6> I feel like at first it probably was a very good slogan. The founders were interested in following through but as they got further and further form their employees the numbers just looked too nice.

This does not excuse they for being assholes but I can see how it happened.

</comment></comment></comment></comment></comment><comment><USER7> Surprisingly uninformative article!

If I recall correctly per-person damages are staggering $6500.

<comment><USER8> Staggering? I'd call it a pittance. The companies should've been fined much more to make an example out of them so no tech firm attempts something like this again.

<comment><USER9> Pretty sure thats a sarcastic use of the word staggering

<comment><USER10> That's what it sounded like to me as well.

</comment></comment></comment></comment><comment><USER11> This cartel had 4 members. With all the Silicon Valley tech companies, it's a little hard to see how this would be successful at holding down compensation.

In any case, cartels have a historical reputation of being unworkable without laws being passed to force conformance. The problem for the cartel members is they have large incentives to cheat on the agreement.

Probably the most famous cartel is OPEC. "Jeff Colgan argued in 2013 that, since 1982, countries cheated on their quotas 96% of the time, largely neutralizing the ability of OPEC to collectively influence prices."

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

<comment><USER12> Cartels are dynamically unstable. That doesn't mean they can't cause a net social loss during the period in which they are effective.

<comment><USER11> I looked at some of the articles on this particular cartel. I didn't see evidence presented that employees of the cartel were compensated less than employees at other tech companies.

While there is no doubt there was an illegal cartel, I'm skeptical that it was an effective cartel.

<comment><USER13> When this scheme came to light, google ended up giving their employees a 10% across the board raise. Further, google is often used as a compensation benchmark.

[http://www.wsj.com/articles/SB100014240527487035236045756052...](http://www.wsj.com/articles/SB10001424052748703523604575605273596157634)

       Nov 10 2010

       Moving to plug the defection of staff to competitors, Google Inc. is giving
       a 10% raise to all of its 23,000 employees, according to people familiar
       with the matter.

<comment><USER11> That's strong evidence the cartel was a failure.

<comment><USER13> The opposite. When they had to stop constraining wages, they were forced to give raises to their employees. That is the definition of success: from 2005 to most of 2010, they successfully underpaid.

<comment><USER11> Not successfully, because other companies paid more and were draining away Google's talent. I would also suspect that Google paid less not because of the cartel, but because of the stock options. Once the stock stopped rising dramatically, engineers would not have settled for less salary.

Microsoft went through a similar transition.

Creating a cartel is one thing, but making it work is quite another.

<comment><USER13> On termination of cartel agreement, they had to immediately boost wages. A cartel doesn't have to be 100% effective to be, nonetheless, effective. And they had just re-priced options in early 2009.

<comment><USER11> The article doesn't mention the cartel as being a factor, it mentions aggressive poaching by other companies.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> Does anyone know how all that money will be distributed?

<comment><USER15> Given the amounts involved likely as a single McDonalds meal voucher per recipient.

</comment></comment><comment><USER16> I commented on this a year ago or so: [https://news.ycombinator.com/item?id=8154909](https://news.ycombinator.com/item?id=8154909)

My opinion on this is unchanged and I'm still disturbed by the greed behind this lawsuit.

<comment><USER8> I am more disturbed at the greed behind the original injustice. The tech companies should be punished, the greed of the plaintiffs is completely irrelevant.

<comment><USER17> Why is it greed if a walmart worker was being stiffed of a dollar an hour its just as bad as a sales guy losing 20% of a five figure bonus.

<comment><USER5> Walmart workers and stiffed tech workers have more in common than the "masters of the universe" who rule them both.

<comment><USER18> That's a reach. Minimum-wage workers live an order of magnitude differently than either of the others.

<comment><USER5> Yet both are still reliant upon their labor for their livelihood.

<comment><USER18> ...for some definitions of the word 'labor'.

A difference is, working for minimum wage leaves you at risk of housing, food, health. Anyone who escapes the trap of too-poor-to-live inhabits a different world.

<comment><USER5> They still have much more in common than either do with tech billionaires or the land owners to whom they both pay half of their income to in rent.

There are laborers - minimum wagers and programmers alike - and there those who are parasitic on the labor of others - CEOs, landlords, financiers. That's the _real_ American divide.

Not "scraping by" vs "not scraping by".

<comment><USER18> Philosophy aside, after your living is secure all the rest is imaginary points. It has to mean less than risk-of-death or living in poverty. Maybe not to a 20-something idealist; but definitely to a parent.

<comment><USER8> I agree. Let's take these imaginary points away from corporations. They're imaginary, they shouldn't care.

<comment><USER18> Basic Income! Agreed!</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment>


Please don't use hnreputation - <AUTHOR>

A bunch of people have been emailing me asking to have their IP unblocked after using this script
http://github.com/brainkarma/hnreputation/tree/master
which apparently hits the server so hard that it gets their IP ignored. <comment><USER2> The whole idea of "Karma" is silly. It encourages conforming to majority views and rewards people who are talkative rather than insightful - often mutually exclusive groups, since insight is gained by thinking & doing rather than posting comments.

I think HN would do well to drop karma scores altogether, making this script a non-issue to begin with.

<comment><USER3> While we're on the topic of suggestions that aren't likely to be implemented ;)

I like to see the user name hidden on comments and submissions until after you vote and/or reply. Judge the content on the content alone, not on the author.

<comment><USER4> I trust security advice from tptacek or cperciva more than from [name withheld until you vote].

Threads get really confusing when [name withheld until you vote] argues with himself all the time.

<comment><USER5> How about withholding the name still, but offering a way to 'opt-out' from voting. You don't see the name until you either vote up or opt out. After you've withheld your voice, you can't go vote again on that submission/comment.

<comment><USER6> > you either vote up or opt out

How about voting down?

<comment><USER7> You can't vote down until you hit a certain karma threshold.

<comment><USER6> Yes, I know. I just could not resist making the itemization complete.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> For those that don't know what this is...

"This Greasemonkey script for news.ycombinator.com will display the reputation of a user in the comment header as well as in the links' title tooltip."

<comment><USER9> This does not strike me as conducive to the purpose of HN.

<comment><USER10> It's not, and I seem to remember that this exact problem (the technical problem, but also the one you mention) was pointed out when the script was introduced.

</comment></comment></comment><comment><USER11> jacquesm _did_ warn you guys:

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

</comment><comment><USER12> It does one HTTP request for each comment in a thread, it looks like.

Kind of irresponsible coding, I think.

<comment><USER13> Irresponsible usage as well. Those who used the script should really have at least eyeballed the source first.

[EDIT: This is HN. Surely I don't have to explain the pitfalls of downloading a Greasemonkey script and running it in your browser without checking what it does? It's even worse than uneducated users tricked into running malware since you're knowingly installing a script.]

<comment><USER14> Whoa, _what_?!

<comment><USER14> True, I guess, but it seems a bit extreme to say that anyone downloading a Greasemonkey script should be examining the javascript inside it to figure out what it does. That's all I meant by my 'Wait, what' comment. Should've elaborated, then.

<comment><USER15> Looking at the karma there, it seems your explanation is exactly adequate.

</comment></comment></comment></comment></comment><comment><USER16> I think you should read all comment without knowing the person's karama. You'll probably recognise some of our more illustrious users by username but really you should be evaluating each comment on it's merit, not the author's karma.

</comment><comment><USER17> If this functionality is desired enough for enough people to use this, why not publish a list of users, updated say, hourly so these scripts can cache the reputations? But then again, don't really see the point in using this.

Also, if reputation's that important, you can just cache the 'leaders' list.

<comment><USER18> A) Reputation isn't a very good measure of anything as far as I'm concerned.

B) It's trivial to click on someone's name and see what their reputation is if it's important to the person reading / replying.</comment></comment>


ZenPayroll (YC W12) Gives Small Business the Tech Tools of Big Business - <AUTHOR> http://bits.blogs.nytimes.com/2014/09/03/zenpayroll-gives-small-business-the-tech-tools-of-big-business/

<comment><USER2> I run a very small software consultancy and ZenPayroll is amazing. Very simple to get set up with direct deposit, very, very highly recommended.

</comment><comment><USER3> Great to be partnered with ZenPayroll. Lots of our customers are excited by the news and our integration.</comment>


OpenBSD 6.1 released - <AUTHOR> https://marc.info/?l=openbsd-tech&m=149191695821636&w=2 <comment><USER2> My personal favorite from the LibreSSL section:

        Massive update and normalization of manpages, conversion to mandoc format. Many pages were rewritten for clarity and accuracy.

Most of OpenSSL's documentation desperately needed attention and was full of extremely minor errors that rendered some parts unintelligible - for example, this confusing single character one that was already fixed in LibreSSL : [https://github.com/openssl/openssl/commit/a41815f05e71009d2a...](https://github.com/openssl/openssl/commit/a41815f05e71009d2a5148bd30b70f47186ed66b)

</comment><comment><USER3> Sadly I don't often get to play with OpenBSD, but every time I do I'm impressed by how coherent an operation system it is. You really get the feeling that the developers care about delivering a system with a unified expression, where everything is meant to be used together.

It's not just kernel bundled with a bunch of tools/programs which sort of seem to work together, but not in the same manor. Even FreeBSD have sometimes left me with the impression that the developers don't care about style and just import tools or subsystems at leave it at that, rather than making it feel like it belongs.

<comment><USER4> Heh, as a FreeBSD user primarily, OpenBSD sometimes feels kinda empty to me. No ZFS, no DTrace, no jails, no mandatory access control, no CloudABI, no Linux compat layer…

<comment><USER5> OpenBSD does seem empty by comparison, but it's on purpose.

ZFS is large and complicated. [http://www.tedunangst.com/flak/post/ZFS-on- OpenBSD](http://www.tedunangst.com/flak/post/ZFS-on-OpenBSD)

DTrace would be nice to have, but I believe there are CDDL license concerns.

Jails are a way of isolating services so that they cannot do (much) damage to the system in the event they are compromised. The closest alternative in OpenBSD is probably pledge(2), which allows a program to voluntarily renounce the ability to invoke a set of syscalls. There is also chroot if all you need is filesystem virtualization.

MAC can be complicated to implement. This comment explained things very well: [https://news.ycombinator.com/item?id=8893749](https://news.ycombinator.com/item?id=8893749)

> OpenBSD doesn't support a MAC framework because they believe the best > approach to security is correctness, rather than trying to achieve security > by adding features which results in more complexity, making it more > difficult to ensure correctness. A common mistake people make is thinking > that OpenBSD's primary goal is security; their primary goal is correctness. > This just happens to result in better security more often than not.

Linux compat is a similar story. OpenBSD dropped it in the 6.0 release due to complexity and security concerns.

I don't know a whole lot about CloudABI.

<comment><USER4> pledge is not similar to jails in any way, jails are "chroot on steroids" (isolate network, PIDs, users, etc.)

pledge is more similar to Capsicum. It is simpler to implement in some programs, sure, but:

1) I don't like how pledge just kills the program. Rude. Capsicum refuses the offending operation.

2) Capsicum has an absolutely brilliant feature for directory access — you just open() a file descriptor to a directory, then you cap_enter()… and in the sandbox mode you can use openat() to open files below that directory! This is just so clever. Meanwhile pledge promised a simple directory whitelist option that is STILL NOT IMPLEMENTED :(

CloudABI is a portable ABI that can be described as POSIX plus Capsicum minus anything incompatible with Capsicum. So CloudABI programs start already in capability mode, expecting necessary file descriptors to be already open (there's a launcher tool for that). You can just run CloudABI binaries unmodified on several operating systems and they are _always_ sandboxed, they have _no_ way to access anything you didn't pass to them. CloudABI is out-of- the-box supported on FreeBSD, there are kernel patches for NetBSD and Linux, and a user-mode syscall translator for macOS. [https://nuxi.nl/cloudabi/](https://nuxi.nl/cloudabi/)

</comment></comment></comment></comment><comment><USER6> It's the first release without an official CD set [1], and OpenBSD was probably one of the last operating systems to provide official installation discs. I wonder if they'll start recommending third-party sellers of installation CDs and DVDs like Debian does [2].

[1] [https://www.openbsd.org/orders.html](https://www.openbsd.org/orders.html) [2] [https://www.debian.org/CD/vendors/](https://www.debian.org/CD/vendors/)

<comment><USER7> Weren't these mostly just a nice way to contribute to the project and get something tangible in return, or did they not sell the disks at a profit?

<comment><USER8> A three pack of 5.9 disks are being sold for $60...so yeah, I'd say so.

</comment></comment></comment><comment><USER9> Go also now supports pledge [https://go.googlesource.com/sys/+/8fd966b47dbdd4faa03de0d06e...](https://go.googlesource.com/sys/+/8fd966b47dbdd4faa03de0d06e3d733baeb9a1a9%5E!/)

<comment><USER10> That's good news

</comment></comment><comment><USER11> New syspatch(8) utility for security and reliability binary updates to the base system.

<comment><USER12> [http://man.openbsd.org/syspatch.8](http://man.openbsd.org/syspatch.8)

Thanks for highlighting this. For me, OpenBSD releases needed so few fixes that keeping the system up to date wrapped around, and become more of a hassle to deal with! I'd get an email and have to manually rebuild something. Watching yet another flood of compiler output started feeling like a huge waste of time, despite only happening once every month or two.

For personal use, on debian I set a cron job and forget it. This utility hits the sweet spot to get me running OpenBSD again.

<comment><USER13> You may already be familiar with but just in case: [https://wiki.debian.org/UnattendedUpgrades](https://wiki.debian.org/UnattendedUpgrades)

You can specify the types of updates to auto install (ie I use security updates only automatically).

<comment><USER14> I keep running into a weird issue where my Debian servers won't shut down ("A start job is running for Unattended Upgrades") when I enable unattended upgrades as described at [1]. It is especially weird since my Debian systems are otherwise pretty bare-bones, yet the issue occurs on several of them. The solutions listed on Stack Exchange [2] seem rather hacky.

[1] [https://wiki.debian.org/UnattendedUpgrades#automatic_call_vi...](https://wiki.debian.org/UnattendedUpgrades#automatic_call_via_.2Fetc.2Fapt.2Fapt.conf.d.2F20auto- upgrades)

[2] [http://unix.stackexchange.com/questions/293804/debian-a- star...](http://unix.stackexchange.com/questions/293804/debian-a-start-job-is- running-for-unattended-upgrades)

<comment><USER15> That's particularly nasty (and an aspect of systemd that I _really_ don't like).

I'm not sure this has been reported before / correctly:

[https://bugs.debian.org/cgi- bin/bugreport.cgi?bug=837155](https://bugs.debian.org/cgi- bin/bugreport.cgi?bug=837155) [https://bugs.debian.org/cgi- bin/bugreport.cgi?bug=719597](https://bugs.debian.org/cgi- bin/bugreport.cgi?bug=719597)

Maybe give the maintainers a prod with a link to that thread?

</comment></comment></comment></comment></comment><comment><USER16> Aw, no release song yet:

[https://www.openbsd.org/lyrics.html#61](https://www.openbsd.org/lyrics.html#61)

That's usually my favourite part about new OpenBSD releases. :-)

<comment><USER17> The page updated with "will be released around April 25"

</comment></comment><comment><USER18> > The following platforms were retired: armish, sparc, zaurus.

Goodnight, sweet prince.

The Sharp Zaurus was where I first ran OpenBSD.

<comment><USER19> Waaait what??

SPARC is one of the few unencumbered platforms without security bits (Intel ME or AMD PSP) and GPL cores: [https://news.ycombinator.com/item?id=11423350](https://news.ycombinator.com/item?id=11423350)

<comment><USER17> sparc64 is still supported. sparc is the 32-bit port.

[https://www.openbsd.org/sparc.html](https://www.openbsd.org/sparc.html) \- Discontinued

[https://www.openbsd.org/sparc64.html](https://www.openbsd.org/sparc64.html) \- Supported

<comment><USER19> Oh. Whoops. Thanks heaps.

</comment></comment></comment></comment><comment><USER20> And NetBSD 7.1 came out a few weeks ago, too: [https://news.ycombinator.com/item?id=14072284](https://news.ycombinator.com/item?id=14072284)

</comment><comment><USER21> Maybe this isn't the best place to ask this, but how does OpenBSD handle "real world" security these days? Last time I checked, OpenBSD was heavily audited, with emphasis on shipping a secure base system. The problem, to me, is that every running system in the world has many packages installed to make it useful as an e.g. server. What use is a secure base system if installable packages aren't audited to the same degree? Debian handles this by putting all packages (apart from universe) under the maintenance of the Debian Security Team. I would love to use OpenBSD, but want to make sure that the extra effort isn't spent with no real security advantage.

<comment><USER22> There is a lot of functionality in Base that some aren't aware of: ldapd, httpd, IPSec + iked (VPN), pf (firewall, NAT), dhcpd, ntpd, smtpd, snmpd, radiusd, relayd (load balancer), tftpd, sshd, nfs, nsd and unbound (DNS)

So, you could run an HTTPS site, with a Perl fastCGI site, sending emails, all out of Base

Plus you get privsep'd X (xenocara)

<comment><USER23> Xenocara may not satisfy performance characteristics the way something like Wayland is. However, Xenocara is pretty awesome in (I believe) being the only X11 server to address the somewhat ugly security model of stuff running as root.

<comment><USER24> I think most of the popular Linux distributions have been shipping rootless x11 for a few years now, too. Kernel Mode Setting was the big watershed feature.

<comment><USER23> Interesting, I hadn't known that. Canonical's site indicates that there's some nuance there depending on the video card model though:

[https://wiki.ubuntu.com/X/Rootless](https://wiki.ubuntu.com/X/Rootless)

Also interesting is that support for rootless (at least in Arch) depends on, or perhaps was facilitated by systemd:

[https://wiki.archlinux.org/index.php/Xorg#Rootless_Xorg_.28v...](https://wiki.archlinux.org/index.php/Xorg#Rootless_Xorg_.28v1.16.29)

I don't pay as close attention to Linux developments as I should these days!

</comment></comment></comment></comment></comment><comment><USER19> A (highly subjective) selection of things that seemed interesting, sorted from most to least noteworthy in my opinion

\--

\- A lot of code has been removed or simplified to make the transition to multi-processor easier.

\- printf(3) family of formatting functions now report to syslog when the %s format is used with a NULL pointer.

\- When sending TCP streams they are locally stored in large mbuf clusters to improve memory management. The maximum TCP send and receive buffer size has been increased from 256KB to 2MB. Note that this results in a different pf(4) OS fingerprint for OpenBSD.

\- ssh(1): Add a proxy multiplexing mode to ssh(1) inspired by the version in PuTTY by Simon Tatham. This allows a multiplexing client to communicate with the master process using a subset of the SSH packet and channels protocol over a Unix-domain socket, with the main process acting as a proxy that translates channel IDs, etc. This allows multiplexing mode to run on systems that lack file-descriptor passing used by current multiplexing code) and potentially, in conjunction with Unix-domain socket forwarding, with the client and multiplexing master process on different machines. Multiplexing proxy mode may be invoked using "ssh -O proxy ..."

\- OpenSSH 7.4: Server support for the SSH v.1 protocol has been removed. {NB, note the "server" bit - "client" is not mentioned}

\- Support for Linux guest VMs.

\- The performance and concurrency of the malloc(3) family in multi-threaded processes has been improved.

\- read(2) on directories now fails instead of returning 0.

\- Support for permitting non-root users to mount(8) filesystems has been removed.

\- Install sets are now fetched over an HTTPS connection by default when using a mirror that supports it.

\- For incoming TLS connections syslogd(8) can validate client certificates with a given CA file.

\- nc(1) now also supports OCSP stapling server side, and will show the stapling information client side.

\- When log files are rotated, newsyslog(8) writes the creation time in UTC ISO format into the first line.

\--

\- sshd(8): Remove the UseLogin configuration directive and support for having /bin/login manage login sessions.

\- sshd(8): Add a sshd_config DisableForwarding option that disables X11, agent, TCP, tunnel and Unix domain socket forwarding, as well as anything else we might implement in the future. Like the 'restrict' authorized_keys flag, this is intended to be a simple and future-proof way of restricting an account.

\- sshd(8), ssh(1): Support the "curve25519-sha256" key exchange method. This is identical to the currently-supported method named "email@example.com".

\- Deprecate the sshd_config UsePrivilegeSeparation option, thereby making privilege separation mandatory. Privilege separation has been on by default for almost 15 years and sandboxing has been on by default for almost the last five.

\- SHA512_256 family of functions added to libc.

\- LibreSSL 2.5.3: Massive update and normalization of manpages, conversion to mandoc format. Many pages were rewritten for clarity and accuracy. Portable doc links are up-to-date with a new conversion tool.

\--

\- Use a hardware register for the thread pointer on arm for improved performance in multi-threaded processes.

\- New vmm(4)/ vmd(8): Support was partially integrated in 6.0, but disabled.

\- vmm(4) no longer requires VMX unrestricted guest capability (Nehalem and later CPUs are sufficient).

\- Support VMs with > 2GB RAM.

\- vmd(8) uses pledge(2) and the fork+exec model.

\--

\- All shared libraries, all dynamic and static-PIE executables, and ld.so(1) itself use the RELRO ("read-only after relocation") design such that more of the initial data is protected as read-only.

\- The privileged parent process of syslogd(8) calls exec(2) to reshuffle its random memory layout.

\- New function recallocarray(3) to reduce the risk of incorrect clearing of memory before and after reallocarray(3).

\- arm added to the list of archs where the setjmp(3) family of functions apply XOR cookies to stack and return-address values in the jmpbuf.

\- bioctl(8) now uses bcrypt PBKDF to derive keys for crypto volumes.

\- Partial UTF-8 line editing support for ksh(1) Vi input mode.

\- UTF-8 support in column(1).

\--

Edit: Reordered things a little and grouped things together for legibility

<comment><USER4> Also:

\- The iwm(4) driver now supports 802.11n MIMO (MCS 0-15).

\- Enforcement of userland W^X on OCTEON Plus and later.

Is the EdgeRouter Lite an Octeon "Plus"?

\- LLVM/Clang 4.0.0 (+ patches)

Looks like they shipped LLVM 4 into an actual stable release before FreeBSD! (because it's the first LLVM for them)

\- New tpm(4) driver for Trusted Platform Module devices.

But that one was in FreeBSD since 2010 :P

<comment><AUTHOR> > Looks like they shipped LLVM 4 into an actual stable release before FreeBSD! > (because it's the first LLVM for them)

Note it's only in base for the ARM platform.

<comment><USER25> I have a feeling that will change in future releases.

</comment></comment></comment></comment><comment><USER17> _Support for X550 family of 10 Gigabit Ethernet based devices has been added to the ix(4) driver._

This is a big help because now I can put in production the SuperMicro E200-8D I bought to replace our older gateway.

<comment><USER26> Cool, hadn't seen those before. They look super nifty. :)

</comment></comment><comment><USER27> Hey, vmm supports linux guests now.

<comment><USER28> Before you start wiping your other hypervisors, please note that it does not seem to be mature yet

* [https://marc.info/?l=openbsd-tech&m=149048271705188&w=2](https://marc.info/?l=openbsd-tech&m=149048271705188&w=2))

</comment></comment><comment><USER29> Is there a router/firewall distro or administration tool for OpenBSD that's recommendable (e.g. like pfsense without all the enterprisey bloat, or like securityrouter without the licensing stuff)?

<comment><USER17> What problem are you trying to solve. I use it for a firewall and really only have a couple of files I back up or change.

<comment><USER29> I have a Linux-based router/firewall, but it's all configuration files and stuff. Something with fancy graphs and statistics would be nice :)

<comment><USER25> For what it's worth, PF is a lot easier to work with than iptables. The configuration files involved (namely: pf.conf) are easy to read/write and well-documented.

</comment></comment></comment></comment><comment><USER30> Nice to see the Hyper-V support in there!

</comment><comment><USER22> SNI for httpd! Yay

And Postgres 9.6 in packages. Today is a good day

</comment><comment><USER31> Do any VPS providers offer an OpenBSD image?

<comment><USER32> Vultr does. Last time I looked, 6.0.

<comment><USER33> or bring your own ISO</comment></comment></comment>


Behind the hike: Why Netflix is raising prices - <AUTHOR> http://www.usatoday.com/tech/news/2011-07-14-netflix-why-the-price-hike_n.htm

<comment><USER2> "Many consumers are unwilling to give up the trademark red envelopes. DVDs feature newer titles and the latest theatrical releases that aren't available through the company's streaming service."

Talk about a false conclusion. I don't really care how they deliver the movie to me, but when a movie I want to see comes out on DVD, I'm going to put it on my DVD queue. I would, without hesitation, watch it through their streaming service if I could.</comment>


What lies beneath async/await in C#? - <AUTHOR> http://foreverframe.pl/what-lies-beneath-asyncawait-in-c/ <comment><USER2> Async/Await is especially important to use in .NET and .NET Core web servers if high concurrency is desired. .NET uses a managed thread pool that will only spawn up to something like 50 threads quickly by default. If it sees that more threads are needed, it will slowly add them.

This means that a Synchronous web endpoint (think API call that does not use "Async/Await") will hog an entire thread for the life of the request. I graphed the difference between Synchronous and Asynchronous API endpoints in a blog post last year, and Synchronous endpoints were far less efficient: [https://caleblloyd.com/software/net-core-mvc-thread-pool- vs-...](https://caleblloyd.com/software/net-core-mvc-thread-pool-vs-async/)

Note that just because endpoints are declared as "async" does not automatically make them efficient - Asynchronous I/O must be used all the way to the lowest level. This can be an issue when using library code that you don't control. For example, Oracle's official MySQL package provides "async" methods, but it uses Synchronous I/O in these methods. Therefore, "async" calls into their library will really cause synchronous performance.

Async/Await is a really cool feature of C#, but I wish that the language had more protection that forced users to do things "the right way", like disallowing Synchronous I/O in async methods. In order to write libraries that do I/O properly that include both Synchronous and Asynchronous methods, maintainers have to write two separate implementations of the same logic, which is a bit of a pain.

<comment><USER3> I would argue that async/await is far more important for native applications. I've seen plenty of apps doing significant work on the UI thread and hanging. Making it easy for developers to run things in the background is great for performance. Web browsers automatically add a level of asynchronous interaction.

It's also important on a web server but it won't improve performance for a single user in isolation. As you say, it allows more requests to be serviced concurrently. This won't speed up an individual request unless the server is already heavily loaded.

Edit: You don't need to build two library APIs. You can just build an Async method as the default implementation then have a blocking call to that as the synchronous method. I believe that all new MS APIs are now Async by default.

<comment><USER2> > You don't need to build two library APIs. You can just build an Async method > as the default implementation then have a blocking call to that as the > synchronous method

This can lead to a nasty problem: Thread Pool Starvation. I contribute to MySqlConnector, an MIT Licensed MySql driver for .NET that implements truly Asynchronous I/O. We did this at first, but had to do a large refactor because we hit Thread Pool Starvation in our high concurrency performance tests. Here's the original issue: [https://github.com/mysql- net/MySqlConnector/issues/62](https://github.com/mysql- net/MySqlConnector/issues/62)

Stephen Toub has a pretty good article explaining why you shouldn't do "Sync over Async": [https://blogs.msdn.microsoft.com/pfxteam/2012/04/13/should-i...](https://blogs.msdn.microsoft.com/pfxteam/2012/04/13/should- i-expose-synchronous-wrappers-for-asynchronous-methods/)

</comment></comment></comment><comment><USER4> Writing high performance applications on Windows has been an 'open secret' for long time. Good free presentation I know of are Rick Vicik ones:

      - https://blogs.technet.microsoft.com/winserverperformance/2008/04/25/designing-applications-for-high-performance-part-1/

      - https://blogs.technet.microsoft.com/winserverperformance/2008/05/20/designing-applications-for-high-performance-part-ii/

      - https://blogs.technet.microsoft.com/winserverperformance/2008/06/25/designing-applications-for-high-performance-part-iii-2/

A simplified explanation is that for good throughput one creates a completion port and binds a thread pool to it with as many threads as CPUs. Then _all_ IO is done via the completion port. If the system is partitioned (NUMA) then one should create a completion port per node and partition the thread pool. I skip the details, read the links for a better explanation. The gist of it that the code written this way has no procedural flow when you read it. Instead of a sequence of function calls (read socket -> parse -> read file -> write socket), it must be a state machine which always reacts to some IO completion, modifies the state, posts some more IO and then returns the thread back to the pool (post socket read, socket read callback -> parse -> post file read, file read callback -> post socket write, write socket callback). Writing it as FSM makes it lot easier to understand.

C# async/await is like a DSL that generates the FSM while you write fluent sequential code, easy to write and easy to read.

<comment><USER5> so, what I'm seeing here is, use continuations.. i.e. async/await

</comment></comment><comment><USER6> Also worth reading to understand how Async/Await are implemented: [https://blogs.msdn.microsoft.com/ericlippert/2010/10/21/cont...](https://blogs.msdn.microsoft.com/ericlippert/2010/10/21/continuation- passing-style-revisited-part-one/)

<comment><USER7> And [https://codeblog.jonskeet.uk/2011/05/08/eduasync- part-1-intr...](https://codeblog.jonskeet.uk/2011/05/08/eduasync- part-1-introduction/) is a useful reference, although I believe the implementation details have changed slightly since those posts were written.

</comment></comment><comment><USER8> I'm a heavy C# user, but I come from a classical background and I have yet to start using async/await stuff. My reason (and I know this is terrible and I need to get over it) is I can't make heads or tails of it when I'm looking at the jitted code in NTSD.

<comment><USER9> I was in the same position but I would recommend you start using it. Make sure you start with a small project and really step through each line so you can predict what will run in which thread. I notice that some people use async/await but don't really understand it which can cause problems in some situations.

It definitely makes life much easier. Can't wait to use it in JavaScript.

<comment><USER10> This, so much. My first deep dive into it I ended up in async hell.

Definitely start one call at a time in a small corner of a small application. Once you understand async Task Method() vs async Task<Result> Method(), then how the async methods all chain back together, you can expand it.

<comment><USER9> The funny thing is you can use async successfully without having a clue. But one day it will bite you hard.

<comment><USER11> This is really a problem for .NET itself. The pervasive availability of thread-static state is the only way async/await could really go wrong.

<comment><USER9> There is more that can go wrong. For example in a desktop app a button click finishes before the async code has been executed. The code looks like it's blocking but it isn't. I have seen that a few times now.

</comment></comment></comment></comment></comment></comment><comment><USER12> I did a talk a while back on async/await in C# for anyone interested: [https://vimeo.com/191077931](https://vimeo.com/191077931)

<comment><USER13> Thanks for posting! I believe you also have a Pluralsight course on the subject, which would you recommend for someone who wants to dive deeper with async/await?

<comment><USER12> I'd certainly recommend the Pluralsight course, it goes into greater detail and shows a lot more examples. Thanks for mentioning it!

</comment></comment></comment><comment><USER14> One thing I really like about async/await is that it hooks into existing .NET infrastructure for issuing calls on other threads. As a result, you can implement your own synchronization context and control how the async callbacks run and what thread they run on - if you have your own job scheduler, you can run them inside that. Technically this means you can use async/await for single-threaded workloads, by running all the callbacks yourself on the main thread.

Writing your own synchronization context for these purposes is incredibly easy, as well: [https://github.com/sq/Fracture/blob/ed408e0a84afb0c68d7e81be...](https://github.com/sq/Fracture/blob/ed408e0a84afb0c68d7e81bec5f2dde0b869b413/Squared/TaskLib/TaskScheduler.cs#L153)

</comment><comment><USER15> Any advice when saving new DB records ? We usually return the new ID in our return result, but it is not available when using async/await. Is it possible to send a second result with the ID and how does one create a listener for the second result in Javascript ?

Edit: Because we use async HTTP requests, we aren't blocking the UI. On further thought, the problem I described is not a good use case for async/await.

<comment><USER16> In addition to what nathanaldensr suggested I would add that you should try to architect your application in a way that you don't have to wait for the DB to give your ID back.

Using GUID as ID is an option, but there are plenty of other methodologies to generate the ID in the client and not be held hostage by the DB to get your IDs.

<comment><USER17> I was thinking of mentioning this, but I wanted to avoid given design advice for systems I haven't seen. In virtually all of my own projects, I use business-logic-generated GUIDs for IDs. There are a whole bunch of easily- Googleable benefits for GUIDs over database-generated IDs.

</comment></comment></comment><comment><USER18> Doing this with Go using goroutines and channels pretty simple: [https://play.golang.org/p/fattakS6aj](https://play.golang.org/p/fattakS6aj)

But something struck me, the low level execution flow was much much more intuitive. I think this might be an example how simple syntactic sugar can make code much harder to reason about intuitively. I do write a lot of Go so maybe its just that... you tell me!

<comment><USER19> > But something struck me, the low level execution flow was much much more > intuitive.

A), I don't view this as lower level, just more verbose and explicit.

B), the logic is the same, but it's harder to read the operations—not knowing go, `await` makes a lot more sense than `<-`.

<comment><USER18> Good feeedback, further thoughts:

>I don't view this as lower level, just more verbose and explicit.

Well in this case, aren't these the same? The Go flow shows the explicit spawning of a (go/co)routine and the reading and wring to a thread safe queue. The C# abstracts this so the Go is closer to what is actually happening (ie low level). I should point out, you say more verbose, but there isn't much, if any, of a line count hit here for Go compared to C#.

>but it's harder to read the operations—not knowing go, `await` makes a lot more sense than `<-`.

Fair point, but if you swap <\- for await I'd think the Go is more clear for people equally unfamiliar with Go and if you are learning Go <\- is a core operator you will learn early.

</comment></comment></comment><comment><USER20> Is using the await keyword basically like a shortcut instead of having to add a callback method to an asyncworker and then get the result manually?

<comment><USER21> I am always curious which enhancements to C# are just syntactic sugar vs. requiring IL and/or CLR enhancements.

Microsoft released the CLR code required for async/await separately, enabling back-compat for .NETv4.0. The F# language has supported it back to .NETv2.0.

[https://blogs.msdn.microsoft.com/bclteam/2012/10/22/using- as...](https://blogs.msdn.microsoft.com/bclteam/2012/10/22/using-asyncawait- without-net-framework-4-5/)

<comment><USER22> Async in F# works quite differently from C#. This article highlights some key differences [1].

[1] [http://tomasp.net/blog/csharp-async- gotchas.aspx/](http://tomasp.net/blog/csharp-async-gotchas.aspx/)

</comment></comment></comment><comment><USER23> Is it just me or someone else sticks the infamous .ConfigureAwait(false) on every instance just to be safe? ;)

<comment><USER24> This. And I hate doing this. I've talked myself out of the performance gains, because it just makes everything feel verbose and hard-to-read.

I still wish they would've added a keyword for this. i.e. await-nocontext

<comment><USER25> I think that would be a big mistake to add a keyword. It apparently doesn't give much of a performance gain:

[https://stackoverflow.com/questions/13489065/best- practice-t...](https://stackoverflow.com/questions/13489065/best-practice-to- call-configureawait-for-all-server-side-code)

<comment><USER26> It's not just about performance gain. The real problem is that if you don't ConfigureAwait(false), you _don 't know_ where your continuation is going to be executed, and how long it'll take to get there.

Worse yet, posting to the original sync context increases potential for deadlocks. The UI thread often has to do something synchronously (e.g. invoke an API that doesn't have an async version), thereby blocking the event loop. If anywhere down the line it happens to wait on a task, and that task gets posted to the UI synchronization context, you have a deadlock.

Note that the answer you link to is specifically for ASP.NET, where there's no UI thread. But for libraries, you don't know if they're going to be used in a web app or a GUI app. So, the safest thing is to always ConfigureAwait(false).

</comment></comment></comment></comment><comment><USER27> Here's a async library I'm working on written on top of clojure/core.async. Currently ~ 100 LOC.

[https://github.com/divs1210/conc-prim](https://github.com/divs1210/conc-prim)

<comment><USER28> I think you are being downvoted because that looks more like a parallelisation library rather than an async/await implementation?

<comment><USER27> Possibly. I did not claim it to be an async/await implementation, though.</comment></comment></comment>


Fail Fast: A Startup Funding Manifesto - <AUTHOR> http://gigaom.com/2009/01/11/fail-fast-a-startup-funding-manifesto/ <comment><USER2> Take-away: Build on top of platforms and services so that you can prove your idea quickly and inexpensively and fail while the investment is small. Use Amazon, Google App Engine. Probably these are revolutionary ideas for most of the world, but are pretty well known for HN readers.</comment>


Apple removes Facebook and Twitter integration from iOS 11 - <AUTHOR> https://www.axios.com/apple-removes-facebook-and-twitter-integration-from-ios-11-2433996734.html?utm_source=twitter&utm_medium=twsocialshare&utm_campaign=organic <comment><USER2> Good.

<comment><USER3> I agree, this is a good thing.

I use Twitter a lot (at least 40 minutes a week) and sometimes use Facebook (perhaps about 20 minutes a week) and I get value from both. However on iOS I don't like to use the apps, preferring to just open their sites in Safari. I am not sure if there are any privacy/tracking advantages to this (I log off Facebook after visiting the web site) but I got in the habit of doing this.</comment></comment>


Three Generations of Asynchronous Microprocessors (2003) [pdf] - <AUTHOR> http://mail.async.caltech.edu/Pubs/PDF/2003_threegen.pdf <comment> ur-whale I've always been _fascinated_ by asynchronous hardware design.

When you first learn about H/W design in Verilog or VHDL, it feels like your mind is immediately shoehorned and molded by both the literature and your teachers into thinking synchronously (everything has to be clocked, and signals crossing clock domain boundaries are to be treated like they're some form electronic nitroglycerin).

As a matter of fact, HDL courses often go without so much as a mention of the possibility of asynchronous design, or if they mention it, it's to say something along the lines of "just don't".

It almost feels like designing things asynchronously is a sin to be avoided at all cost.

Even further, the synthesis tools themselves will yell at you when you try to do things asynchronously (probably because many of the optimization that can be done with a clocked design don't work).

Granted: asynchronous design is harder and bug-prone, but - at least to someone like myself with more of a software engineering background - it also feels a lot more natural than being forced into the straight jacket of clocks.

This all leads to the unfortunate situation that while there's been a lot written about how to design with clocks, I haven't come across much literature about asynchronous design _methodologies_.

If anyone on HN has a a reference on asynchronous hardware design methodologies, I'd love to dive into that.

<comment><USER2> The major thing with a clock-based design is that you have to dedicate a huge amount of silicon and power just towards getting a clock signal all over the whole chip.

A group at Cambridge University also designed and fabricated an asynchronous CPU based on an early ARM a long time ago now. Like the ones mentioned in this article, it behaved very well. It would slow down if they pointed a hot air blower at it.

<comment><USER3> Not thinking of AMULET from Steve Furber @ University of Manchester?

<comment><USER2> Hmm. It does appear that perhaps when I was wondering around the Cambridge labs they may have claimed a little more than they should have. Maybe someone working there was collaborating with the Manchester group.

</comment></comment></comment></comment><comment><USER4> Is there a RISC-V Async CPU?</comment>


Haeinsa: HBase transaction library that is practically used in service - <AUTHOR> https://github.com/vcnc/haeinsa/

<comment><AUTHOR> I'm the one who developed Haeinsa. If you find it interesting, please leave me comment.

Features of Haeinsa: \- ACID \- Linearly scalable \- Serializability \- Fault- tolerant \- Easy migration \- Used in practice

Please</comment>


BetterTouchTool: Customize Your Touch Bar - <AUTHOR> http://boastr.net/docs/docs/touch_bar.html <comment><USER2> Wouldn't bank on this hack sticking around.</comment>


Developer Tools in Firefox: What next? - <AUTHOR> http://blog.johnath.com/2010/03/10/developer-tools-in-firefox/ <comment><USER2> Imagine what could happen if Firefox embraced extensions and released different versions for different groups.

You could have the still-vanilla Firefox, the "Turbo" version with vertical tabs, NoScript, Greasemonky, Paginator or whatever, and another version for "Developers" that has a bunch of debugging tools and a text editor (or a link to bespin). It would become much like a GUI-based emacs.

<comment><USER3> Bespin is still _way_ too buggy. I tried using it the other day to edit one of the examples on the bespin page itself and it just didn't work. I'm not sure they are taking the right approach really. Was quite a bit disappointed, because I think something like bespin would be really cool. They still have a _lot_ of work to do before it is usable at all.</comment></comment>


Reddit is not profitable  - <AUTHOR> http://www.reddit.com/r/blog/comments/12v8y3/now_is_the_time_to_invest_in_gold/c6yfbuh

<comment><AUTHOR> Yishan is the current reddit CEO <http://en.wikipedia.org/wiki/Yishan_Wong>

</comment><comment><USER2> I love how transparent Yishan is. This is the right way to do community management.</comment>