Throw Out the College Application System - <AUTHOR> http://www.nytimes.com/2014/10/05/opinion/sunday/throw-out-the-college-application-system.html <comment><USER10> This proposal assumes that the goal of top-tier colleges is to find the best and the brightest and give them an exceptional education, which will enable them to become even bester and brighterer. But that's wrong. The goal of top- tier colleges is inculcate people into a particular social class. Ivy league grads run the world, not because they're so much better and brighter than everyone else, but because the people who run the world were indoctrinated to believe that only ivy-league grads are capable of running the world, and so it becomes a self-fulfilling prophecy. How do I know? Because people still care where you went to college even decades after you graduate. They stop caring about your GPA, but they never stop caring about your alma mater. If it were about achievement, then where you went to school should stop mattering after a decade or two or three, just like your GPA, but it doesn't. Once a Harvard man, always a Harvard man.

<comment><USER11> For a fun NLP experiment, count the language usage of "When I was at <insert school>" vs. "When I was at College".

You'll find that the schools people casually drop in with that phrase are by and large tier-1 schools. While most people who went to school to learn just use the latter phrase. The lesson is that when you go to Harvard of Princeton or wherever, you didn't go to College, you went to some place that transcends mere college, you went to someplace with an important name, and because of that name, you too are important.

Hell: here it is off of the USNews list using google

       "When I was at Princeton" - 16.3 million
       "...Harvard" - 5.93m
       Yale - 2.58m
       Columbia - 3.53m
       Stanford - 2.44m
       University of Chicago - <USER5>
       MIT - 18.5m
       Duke - 1.37m
       University of Pennsylvania - 1.81m (without "the" - 2 results, "Upenn" 201,000, "Penn" - 13.3m)
       California Institute of Technology - 1 ("CIT" - 6, "Caltech" 887,000)
       Dartmouth - 691,000
       Johns Hopkins - 6.14m
       Northwestern - 6.64m

For reference: "When I was at College" \- 9.46 million results "in college" (exact) - 29.4m "at college" (exact) - 7.88m "at university" \- 31.4m "in university" \- 7.050m

Here's the Tier-2

       Ashland - 860,000
       Barry - 843,000
       Benedictine - 95,300
       Bowie State - 2 (Just "Bowie" - 249k)
       Cardinal Stritch - <USER3>
       Clark Atlanta - <USER5>
       Cleveland State - <USER5>
       East Carolina - 1.62m
       East Tennessee State - 3 ("East Tennessee" - 3)
       Florida A&M - <USER8>
       Florida Atlantic - <USER8>
       Florida International - <USER8>
       Georgia Southern - 877,000
       Georgia State - 1.65m
       Indiana State - 1.28m
       Indiana University of Pennsylvania - 2 (Indiana University - 5.07m)
       Jackson State - <USER9>
       Lamar University - 0 ("Lamar" - 441,000)

_edit, words, Penn and tier-2_

<comment><USER12> University of Pennsylvania is often referred to as "penn", if you want to rerun that search (though make sure to avoid "penn state", a different school).

</comment></comment></comment><comment><USER13> My thoughts on the admission system is that there are not incredible incentives to improve it besides public outcry (which is powerful in it's own way, but not enough so to warrant a change overnight, perhaps not even over the course of 5-10 years). If a college overlooks a well-qualified student due to poor assessment, the two possible outcomes are that the student will go to another a school of similar caliber, or that they will end up going somewhere down a few levels of caliber. Although unfortunate, neither of these are too bad, and the hypothetical losses to the school and society are purely that, hypothetical. I believe that introducing an alternative to college that can offer a similar level of education without an application system (or with a more lenient application system) will help drive the incentives to where they need to be. For example, imagine Eileen is applying to Harvard and Harvard has the top program for her interest. We've measured that Harvard is the top program for her interest purely on the content that she would learn and the projects that she would complete. Unfortunately, Eileen gets rejected from Harvard, but now instead of going to UPenn, she signs up for online courses over the next four years that cover the exact same content and projects. Eileen goes on to invent the flexible solar-powered iPhone that reads minds and solves world hunger. She becomes Time person of the year. She donates a lot of money back to her online program. Future incredibly qualified applicants will want to follow in Eileen's footsteps and may sign up for online courses without considered Harvard at all.

<comment><USER14> The thing is that the person who took Eileen's place might be the progeny of a donor with a lot of money; or she will have a similar intelligence level so she will make the same financial contribution. So, apart from denying Eileen the Harvard experience, the college has not lost anything much.

<comment><USER13> This is possible, but it's also possible that the replacement will not have the same level of success. I assume that success distribution is more of a power rule than equally distributed. I think this is a fairish assumption because otherwise there would not be a tiered system for colleges in the first place. In this case, Harvard does in fact lose much.

</comment></comment></comment><comment><USER15> This is just another example of how absurd the US college system is from the perspective of someone from another country.

The purpose of a university for undergraduates is not to select people of character, budding entrepreneurs,sportsmen,people with rich parents or anything else-it is to teach an academic subject to those best able to succeed at it.

The way to select them is to let the academic staff who will be teaching them decide. They will do that by means of exams and interview. How hard is that?

<comment><AUTHOR> A. I'm currently serving as faculty at a graduate program, so I ostensibly have a say in the admissions process. This is my first year so I don't know how much time it takes, but I imagine a lot, even though the program is small. I don't know how in the world the academic staff can quickly filter from tens of thousands of applicants without some kind of broad benchmarks.

B. You act as if there is some absolute benchmark for "best able to succeed at [some subject]"...There is not. Sometimes the best engineers can come from people who hadn't initially aspired to be engineers and thus lack whatever credentials they could've built in their high school time. Sometimes character can be the factor in success, sometimes not.

<comment><USER15> Of course there is no magic that can decide who will do best at a subject-no one would ever suggest that there was and I don't see how that is relevant to my point.

That was, that candidates should be admitted on the basis of academic merit and that the 'right sort' of weaker candidates should not be given special consideration.

</comment></comment></comment><comment><USER16> While this idea has potential, I don't really see it taking off.

More and more colleges are being ran like businesses and the idea of spending time and money developing and running assessment centers does not make sense financially. Right now, candidates can be screened by a computer for test scores, GPAs, and key words on resumes. Alumni volunteer to interview potential students. The only paid staff are those reading essays (if they aren't graded electronically) and those making the final acceptance decision.

Universities may band together to create these assessment centers to share cost and upkeep, but even then costs are going to rise because the university still has to keep the yes/no admissions gatekeepers on staff.

Large universities seem to be doing fine with alumni donations and I'm not sure this method suggests enough of an increase in donations to make it a worthwhile investment for universities.

<comment><USER17> This is the crux of the matter. Stated differently, why would universities want to shake up their proven business model? For vaguely defined virtues like creativity, wisdom, and well-roundedness?

They are interested in the bottom line, first and foremost, and in any case are being run by executives pulled from the same executive pool that other large corporations are drawing from.

The author needs to first carefully define the problem without reference to Steve Jobs or academia golden-age idealism, and then posit a roadmap away from the current business model.

<comment><USER18> > This is the crux of the matter. Stated differently, why would universities > want to shake up their proven business model? For vaguely defined virtues > like creativity, wisdom, and well-roundedness?

Tier-2 private colleges are having a tough-ish time right now, it could be a way to differentiate and attract ambitious students- "after you've thrown your application into the goofy lottery system, why not apply here, where we take you seriously? As you can tell with this significantly less goofy admissions process!"

<comment><USER19> Bingo. Word is out that college is a chance game for the 'right' school and even when you get in, it's rigged. You simply cannot compete with China, India, or Malaysia for spots at Stanford or UCLA. Those kids and parents can just plain out work you. My wife went to UCLA for grad school. Her students could speak English better than her, and would just out wait the professors for points on tests. Every single little thing was an argument and you'd just tire out and give it to them eventually. The cheating was a real concern as well, as the other cultures didn't really have a sense of it being 'wrong', that it was just another arbitrary rule you had to jump through. You get caught? Then you didn't cheat well enough. Also, all those kids are then either ending up back in Asia or in a cheap H1B visa spot you can't afford a mortgage or kids on.

So, somewhat smart kids from Iowa will ask themselves: Why bother? I can't compete to get in, I can't compete when I am actually in there, and I can't compete when I get out. Forget this game, I'm taking my tiddly-winks and going home.

And that is where the tier-2 schools really shine. Vassar, Colorado School of Mines, the Claremonts, etc really can take those kids that aren't literally- cookie-cutter-perfect-snoflakes-drill-and-kill and make them really shine. Yeah, they won't be the CEO of Hundai or GE, but they will make a damn good Lt. Major, or a VP at 7-11, or a hell of a McDonald's franchise owner, or the best darn member of a school board that is always re-elected, or a real good child abuse prosecutor. You won't make billions, but you will make 3-4 million.

There really is a need here for B- students that deserve a good living. Getting rid of the darn SAT is a great way to attract them.

<comment><USER18> Yellow Panic much?

<comment><USER19> Seems like it huh? But it's not racism, it's population. Asia just plain has more people, that they happen to have a historical association with being seen as 'lesser' is the fault of the US here. Those people in Asia are just like the people in the US. Geniuses and idiots occur with the same probability here as there. But there are just more people there than here, so you see more of them at the top universities.

</comment></comment></comment></comment></comment></comment><comment><USER20> I go to Carnegie Mellon and I actually have a friend who works in the admissions office. She's told me that, being a really strong tech school, CMU often gets applications from people who are academically incredible, but may not contribute to campus life, extracurricular organizations, etc. This has led admissions to try to look harder at candidates who might not have gotten an 800 on their SAT math scores, but maybe a 760 with some strong non-academic resume items. Campus life at CMU is definitely lacking compared to other comparable universities, so I think a system like this might be really useful to a school like CMU which is trying to better understand the creative skills and emotional intelligence of potential students.

<comment><USER15> That sounds like code for admitting more of 'the right sort of people'.

<comment><USER21> A lot of the tools that admissions offices use (essays, letters of recommendations) emerged because Harvard, Yale, and Princeton wanted to keep out (or limit the numbers of) the "wrong sort" of people, which, at the time, were Jews, homosexuals, and other such undesirables. Yale even went so far as to have its alumni interviewers comment on the bodies of male applicants. College administrators talked quite openly about the idea that having too many Jews would result in an inferior or degraded college culture.

My source here is Jerome Karabel's book called, naturally, The Chosen.

</comment></comment></comment><comment><USER22> I would like to see a lot more scientific corroboration of the validity of emotional intelligence before it is used as part of university admissions process. Likewise with the one study the author cites that claims to quantify "wisdom." This all sounds like a cultural bias minefield.

<comment><USER23> "cultural bias minefield"

Most of the techniques discussed in the article's assessments are aimed at reducing the number of Asian-Americans and nerdy introverts. The promoters always have a load of code words, but the college leadership and fundraisers know what they're doing.

Since the equal opportunity lawsuits were ended -- at request of elite college insiders -- by Bush 41 in the 1990s, the rates of Asian admissions in elite colleges went down and hit a ceiling at 15%. The University of California is looking constantly for ways to duplicate the success of ethnic cleansing at elite private schools.

<comment><USER21> The use of the term "ethnic cleansing", which refers to systematic attempts to expel and, in many cases, murder people based on their ethnicity, is not appropriate in this context. Your use of the term makes your post, which otherwise raises important and historically-relevant points, lose considerable credibility.

<comment><USER15> This is an argument against the style, but not the substance of what the person has said.

</comment></comment></comment></comment><comment><USER24> I'm thrilled that MIT last year added maker portfolios to their undergrad applications. I chatted with a couple freshman who said they spent less time prepping for the SAT and got to use that time to work on their side projects instead. It's still early but hopefully other universities consider different metrics by which to define academic capability.

<comment><USER25> They've been there implicitly for a long time, I've been told MIT has looks for evidence an applicant can do projects. A couple I included in my 1979 application almost certainly helped push me over the top.

</comment></comment><comment><USER26> > Those with less than perfect grades might go on to dream up blockbuster > films like George Lucas and Steven Spielberg or become entrepreneurs like > Steve Jobs, Barbara Corcoran and Richard Branson.

Alternatively, one might observe that modern colleges are for the mediocre, noting that college had little to offer the cited personalities and would likely have at best delayed their path, or more likely, prevent them from achieving what they did by socializing them into conformity and obedience of authority and convention.

We may certainly choose to daydream that "If only Steve Jobs and George Lucas had completed _more_ college than they did, maybe they could have _done_ something even more amazing", as if college has this effect on people. (Lucas has two degrees, so it's unclear what the article's author is really meaning to say about him, apparently that the author thinks he should have gone beyond a Bachelors.)

<comment><USER27> It really would have to depend on your field, wouldn't it? There are no George Lucases or Steve Jobses of theoretical physics.

<comment><USER28> I can think of one historical figure who fit the bill. Michael Faraday, who established the basis for the concept of an EM field, had very little formal education. For such a person to rise to prominence in physics was as unthinkable in his day is it is now.

He was apprenticed to a local bookbinder and bookseller at age 14 and became a voracious reader as a teenager. He later wrote that one of the books he read during that time changed his life— _Improvement of the Mind_ , by Isaac Watts. He rigorously applied the personal development principles within and began studying science on his own from the book shop.

He started attending public lectures of a prominent chemist, taking copious notes on lectures and sharing them with others. He gave the chemist he'd been following a 300 page book based on the lecture notes and the chemist later hired him as a secretary! He had to endure a multitude of slights in the company of other scientists due to having humble beginnings while they were almost universally gentlemen, but it was his ticket in. Once he was working as a prominent scientist's secretary, he had access to the scientists' professional circles, if not social circles. He relentlessly continued his studies and got so good that people could no longer ignore him. Within a couple of decades, he was awarded an honorary doctorate from Oxford and he eventually became the most prominent physicist in the world.

There are probably similar stories of slightly less prominent physicists in this century, I just haven't heard of them yet.

<comment><USER27> An inspiring story, although I feel like it supports my point. My parent was basically stipulating that college is a waste of time for the gifted, but from the sound of Faraday's story he spent a lot of time on a sort of a "college track" of learning & lectures, even though he wasn't enrolled.

It's a great story of tenacity, but it reads more like "determined underdog gets a foot in the door and proves his worth the hard way" than "gifted magnate skips apprenticeship, becomes master"

Thanks for sharing it though :)

</comment></comment></comment></comment><comment><USER29> > For example, imagine that a college wants to focus less on book smarts and > more on wisdom and practical intelligence.

Why?

<comment><USER30> It's called a vocational/trade school.

</comment></comment><comment><USER31> Here are some examples, from small to large, of approximately how many openings several well known colleges have for first year students each year, and how many applicants they get. First column is number of openings. Second column is approximate number of applicants:

        200  1200 Caltech
       1100  9200 MIT
       1300 13000 Yale
       1700 18900 Harvard
       1700 17000 Stanford
       4200 18000 UC Berkeley
       7500 14700 UT Austin

Even the smallest in that list dwarfs the operations given in the article as examples of successful use of assessment centers. I wonder if anyone has the resources to do that kind of in-depth assessment of, say, Harvard applicants?

<comment><USER32> Caltech gets over 5000 applicants each year* for nominally 235 openings. Where are your numbers coming from?

* [http://collegeadmissions100.com/caltech-admission-stats/](http://collegeadmissions100.com/caltech-admission-stats/)

<comment><USER31> The first column is rounded. My data source (Forbes [1]) had 231 for Caltech class size, which I rounded to 200. It's also a few years old.

I simply botched the second column. The second column should be relabeled "A Number Smaller Than The Number Of Applicants, Probably By A Factor of 1.2 to 4". :-)

It was calculated from the class size and the acceptance rate. I forgot that I needed to also take a look at the percentage of the admitted who enrolled, since many people are admitted to multiple schools so not all admitted to a given school enroll.

[1] [http://www.forbes.com/lists/2008/94/opinions_college08_Ameri...](http://www.forbes.com/lists/2008/94/opinions_college08_Americas- Best-Colleges_ClassSize.html)

</comment></comment></comment><comment><USER33> This is an opportunity for an experiment: Upon implementing "assessment centers," how many years will it take for affluent families to figure out how to hack them?

</comment><comment><USER34> Where assessment is possible, they already do it. The music department and art department require your audition or portfolio. Most other programs assume students are starting from zero (or near zero) and so assessments aren't possible. Any other systems are going to be a way for colleges to choose politically rather than academically. ("Street smarts?" Do you get bonus points for time in the state pen?)

</comment><comment><USER35> I'd be curious to know how much this might exacerbate socioeconomic gaps, given implicit prejudices. The SAT might have cultural biases, but imagine a test where the entire point is to see how well you line up with them!

<comment><USER22> >The SAT might have cultural biases

I believe this is overstated in current versions of the test. I have seen how cultural bias is mitigated on these and other tests, a battery of stats are run on the raw item scoring and if a question is found to disproportionally punish a particular group captured in the demographics section, the question is thrown out of scoring even if the reason isn't clear on review.

</comment></comment><comment><USER36> > Legos

Does the NYTimes not employ sub editors anymore?

</comment><comment><USER37> just throw out the entire college system. the whole thing is broken.

<comment><USER38> Yeah man. Let's throw out all of society as well, start anew. Everything's broken.</comment></comment>


Node Knockout Winners - <AUTHOR> http://blog.nodeknockout.com/post/9895206272/node-knockout-winners

<comment><USER2> 8bit social beatbox is awesome - is there a way to fork instances, though?

I don't want some joker coming in with an over-enthusiastic snare.

<comment><USER3> So many disconnecs. :(

<comment><USER4> sorry dannytatom, we put a rate limiter at the last second to keep our server from getting overloaded and it needs a little adjusting. if you try not to click around too fast it shouldn't be too big of a problem.

<comment><USER3> All good, was just confused as to why it was happening. It's worse because what I was doing would start sounding awesome, then I'd realize nobody had been doing anything in a while, only to find out it was because I had been disconnected minutes earlier and was playing alone. :p

</comment></comment></comment></comment><comment><USER5> "To be a part of the compute grid, just visit Chess@home or any page with a <script> we provide ( _include it in your blog!_ )."

Sounds like a dangerous suggestion. I certainly do not wish to join any grids while reading some random blog.

<comment><USER6> I understand your concern. We also provide a npm module that could be launched on any server. And for what it's worth, the iframe displays a checkbox to disable calculation by your browser.

BTW, the script to be included is a bit buggy, we're short in time. Now that votes are finished, we'll open source everything and continue improving it :)

</comment></comment><comment><USER7> Hahaha, I have to admit that I've wasted too much time playing with the 8bit social beatbox. (Our Starwars Theme Song rocked though!)

<comment><USER4> lol, I was in there for that. nice beat indeed. Don't forget to stop by in a week or so, we will be adding new features.

</comment></comment><comment><USER8> A good portion of these don't appear to be functioning very well in Chromium on Ubuntu. Is anyone noticing broken apps on other platforms?

<comment><USER9> It's probably because Chromium is shipping with a different WebSocket specification which isn't supported on some hosting providers yet.

</comment></comment><comment><USER10> Observer was a good pick. With Hummingbird et alia it seems that Node really has a sweet spot in measurement and analytics.

<comment><USER9> Thanks, Glad you liked my entry. I personally think that Node's sweet spot is more real time than analytics. Analytics is just one of the things people want, in real time ;D

<comment><USER11> Hi V1, great work on Observer. Are you going to continue working on it? If not, are you going to open source it? I think its a very good tool, and can see myself using this.

<comment><USER9> Hi,

I am going to continue working on it, the service still needs a lot of polish and tests (didn't have time to write those yet). It's most likely going to be paid service based on the amount recorded sessions. Or I'm going for a amazon based pricing module where you only pay for the sessions you record. I haven't decided on that yet, both models have it's pro's and cons.

If for some reason my attempt fails, I'll be open sourcing the complete service but I hope that never has to happen. But all the modules that I will be building during the development of the service will be open sourced, the glue that sticks it together won't ;)</comment></comment></comment></comment>


Url.js – A lightweight JavaScript library to manipulate the page url - <AUTHOR> https://github.com/jillix/url.js

<comment><USER2> This would be cleaner then the current way i'm using :P

(url.indexOf("?") >= 0 ? url + "&" , url + "?" ) + parameters</comment>


Using psychology to change the minds of anti-vaxxers - <AUTHOR> http://www.washingtonpost.com/news/wonkblog/wp/2015/08/03/want-to-change-an-anti-vaxxers-fear-scare-them/ <comment><USER2> Just use law. It doesn't matter what anti-vaxxers choose to believe. If the vaccines work, to not vaccinate is to not wear a seatbelt, is to not wear a bicycle helmet. Anti-vaxxers can believe whatever they choose, they can convene support groups and rallies, and live in a parallel universe in their minds, and none of these things will protect their child from a disease that a vaccine could have, nor will any of these things make it okay to not protect their child from that disease. And if a law is made, the children will be vaccinated.

Does it really pass the legal smell test that parents have a right to harm their children? No. So discourage that behaviour with law. Children have to be vaccinated for these diseases, using these vaccines ( efficacy confirmed by randomized double blind trials ), by this age, or the state will cause them to be vaccinated and the guardians that failed to vaccinate them will be accrue this number of penalty units. Before the child is old enough to care for itself, if the parents neglect a duty of care, the state adopts that duty.

<comment><USER3> Vaccines are not 100% safe, and as such, should not be legally required.

[https://www.reddit.com/r/axolotl_peyotl/comments/23og48/the_...](https://www.reddit.com/r/axolotl_peyotl/comments/23og48/the_skeptics_guide_to_vaccines_part_i_poxes_polio/)

I don't think people would like wearing seat belts if there were a small chance that they would decapitate you through normal usage.

Here's an article about mandatory bike helmet laws doing more harm than good: [http://www.theguardian.com/lifeandstyle/2015/aug/12/mandator...](http://www.theguardian.com/lifeandstyle/2015/aug/12/mandatory- bike-helmet-laws-do-more-harm-than-good-senate-hears)

<comment><USER4> There _is_ small chance that wearing a seatbelt will cause harm. It is similarly small as for modern vaccines. Please do not spread FUD.</comment></comment></comment>


Show HN: Responsivator - View/Share Responsive Sites - <AUTHOR> http://dfcb.github.com/Responsivator/

<comment><AUTHOR> I built Responsivator to easily share responsive web pages with people. To send a link to somebody with the header and controls hidden, you just do this: [http://dfcb.github.com/Responsivator/?site=http://www.alista...](http://dfcb.github.com/Responsivator/?site=http://www.alistapart.com/d/responsive- web-design/ex/ex-site-FINAL.html&header=hide)

You can customize what sizes and labels you want (click the customize button)

Credit to great work done by others like: Matt Kersley - <http://mattkersley.com/responsive/> Benjamin Keen - [http://www.benjaminkeen.com/open-source-projects/smaller- pro...](http://www.benjaminkeen.com/open-source-projects/smaller- projects/responsive-design-bookmarklet/) lensco - <https://gist.github.com/1685127>

<comment><USER2> Awesome project. Just submitted a pull request to allow URLs which start with <https://> (right now it appends http so <https://domain/> becomes <http://https://domain/>).

<comment><USER3> s/append/prepend

</comment></comment></comment><comment><USER4> This is really cool, great work!

The only problem I can see is that it doesn't work with sites that use user agent sniffing serve up mobile sites (see bbc.co.uk - <http://dfcb.github.com/Responsivator/?site=bbc.co.uk>) I realise that's not technically 'responsive', but it would be cool if responsivator could handle that as well.

Having said all that, I don't think it's even possible to spoof different user agents in iframes(?), maybe could be done using a headless browser to take screenshots?

<comment><USER5> That BBC site isn't responsive at all... it's just a redirect to a mobile site.

</comment></comment><comment><USER6> For some reason, it's not updating the website link when you click on the random button. Cool site though :-)

<comment><AUTHOR> Fixed!

</comment></comment><comment><USER7> Great work, this is awesome. I just used it to check out my site: [http://dfcb.github.com/Responsivator/?site=http://flipmeme.c...](http://dfcb.github.com/Responsivator/?site=http://flipmeme.com)

</comment><comment><USER8> Does not work with my wordpress.com blog. Blank. I know it's not responsive, so maybe instead of blank it should throw up a dialog box instead of just blank?

</comment><comment><USER9> Try tumblr.com and stackoverflow.com after logging in; it doesn't deal with redirects for logged-in users well.

<comment><USER10> I don't know about tumblr.com, but stackoverflow doesn't allow their site to be viewed within an iframe (security reasons). Nor does facebook.com or google.com. I also hope most banking sites wouldn't allow this.

That said, it seems like a useful tool when you are the developer and want to see how it renders for different viewscreens.

</comment></comment><comment><USER11> This is really useful, especially since I've been working on various responsive projects lately. Thanks!

</comment><comment><USER12> Nice. It's like a shareable version of Firefox's Responsive Design View!

</comment><comment><USER13> Scroll bars take away from widths.

</comment><comment><USER14> very nice and usefull tool!</comment>


Lie-More As A Business Model - <AUTHOR> http://baselinescenario.com/2012/07/08/lie-more-as-a-business-model/

<comment><USER2> >Mr. Diamond's fall was spectacular and complete.

I doubt this his downfall will ever be spectacular. But it will be substantially more complete when we see him doing jail time commensurate with the gravity of the offense.

(After a fair and speedy trial, of course).</comment>


Free Range VHDL – VHDL programming book available for free - <AUTHOR> http://freerangefactory.org/ <comment><USER2> I learned VHDL a few months ago. Since then I've build a few projects with it (some PCIe and ethernet stuff). I was very excited to learn a HDL because FPGAs seem like extremely powerful devices.

However, I now know why FPGAs aren't as popular as they could be: the tools are horrible. There is no way FPGAs will become popular among software developers unless the tooling improves dramatically. You can really tell that it was all build by hardware engineers who know their electronics very well, but not good software design.

<comment><USER3> > There is no way FPGAs will become popular among software developers unless > the tooling improves dramatically.

Care to expound in what way? I don't disagree with your opinion completely, but I suspect our reasons differ.

IMHO, the barrier isn't so much the tools, but a clashing of paradigms. All too often, traditional software developers without a solid foundational background in digital hardware architectures think they can easily pick up a HDL as if it were yet another programming language. The _HD_ part is quickly forgotten as behavioral processes are hacked away using all too familiar constructs like if-then-else, for/while loops, etc. Inference warnings are ignored, timing constraints are shrugged off, metastability and synchronization aren't even a thing, let alone driver/receiver selection, pinmap planning, and signal integrity considerations at the PCB level...set to default and things should _just work_ , right?

Anecdotally speaking, the only thing in common that HDLs have with traditional programming languages is a superficial charset. I think every software developer who has ever used tools like VS, Eclipse, Emacs, Vim, Make, Doxygen, Git, etc. would agree that each has its quirks and it takes a bit of use before a comfortable flow is discovered. FPGA vendor tools are no different, except--testbed simulations aside--there's that immutably distinct custom hardware integration end-game that most traditional software has the pleasure of conveniently abstracting away.

Any kernel/driver developers with HDL proficiency care to chime in?

P.S. ground-up PCIe/Ethernet FSM+datapath architectures after a few months without prior HDL experience is really impressive.

<comment><USER4> I went to CMU for a BS in EE, I used a lot of verilog, and also a bit of Cadence for layout in one class. But I've worked as a software engineer since then.

I totally agree that HDL tools are astonishingly crap. The market is just so much more specialized, expensive, locked down and closed.

Imagine that you had to use the Intel compiler to get source code compiled for intel processors. You had to use their special headers, you practically had to use their huge 8GB Intel IDE with a million lists and buttons, you had to choose what features were on your intel processor (VT-X? SSE4?). Imagine AMD is the same, but separate. This is all closed source stuff of course. And you have to use it to run on any smartphone/laptop/desktop/server class processor.

Imagine that there's no GCC, no CLANG, no GDB, no Jetbrains, no Eclipse. All the related tools we use wouldn't have much of a reason to exist because just about everyone had to use the huge IDEs for each vendor anyway.

The vendor stuff is huge and inefficient and crap, because features sell, and crap doesn't not sell because there's no meaningful competition.

To be more specific, "crap" means high bloat and low reliability. Crashes, inexplicable errors and failures. Huge amounts of bloat. But you can make a tweak and try again move on, so any sane hardware person just gets used to it, it's not like they can do anything about it.

<comment><USER3> Apologies but I really can't tell if your point is against the proprietary nature of reconfigurable devices, or vendor tool bloat.

> Imagine that there's no GCC, no CLANG, no GDB, no Jetbrains, no Eclipse.

This is quite easy to imagine when you remove the key element which allows these L7 abstractions to be meaningful: an underlying kernel with a well defined interface. What equivalence does the reconfigurable world have when every target device requires its own unique "kernel", if you will? I can't think of any...which would explain why 3rd-party tools are constrained to synthesis, while place-and-route is an explicit function of the vendor tool. Perhaps we too easily conflate the size of the tool with the size of the target?

On the flip side, supposing there were some open reconfigurable interface standard, I don't think this would fly in the current market given the high- performance nature of these devices. Top two FPGA vendors apparently change slice/CLB structure every generation, let alone agree on an open fabric interface standard.

> Crashes, inexplicable errors and failures. Huge amounts of bloat.

Putting the whole kit and kaboodle aside and focusing on just synthesis, isn't it strange that even the big, specialized 3rd party vendor tools (e.g. Cadenace, MG, Synopsis) suffer just as much? I think it's a genuinely difficult problem given the multi-disciplinary nature of the things EDA engineers have to deal with. As much as I dislike dealing with flake tools, I'm nevertheless humbled by their challenges.

<comment><USER5> You've pretty much hit the nail on the head. What people outside of the EDA field fail to understand is they are coding at a much higher level. RTL does not model all the aspects of the logic. You have different signal delays due to lots of different reasons: fanout, wire lengths etc. As you go through different stages of synthesis via these tools, a lot of decisions are made governed by the constraints files. Each decision affects the performance of the design. It's slow because it's doing a lot of work to optimize speed or area. Some designs won't fit the constraints. Then it reports errors.

The tools are trying to help. The end product is the physical device. The various models are all just abstractions of the physical device. The tools are reporting the problems on the abstractions to assist you to improve the physical device. If you can understand the reports, you can improve things, either altering the RTL or adding more constraints.

The point being that the only time RTL is actually run like a software program is during simulation. This simulation is only an approximation of how the actual thing will work. It is not like SW. The tools do a lot of other things with that RTL. Maybe if people don't throw garbage in, it wont crap itself trying to figure it all out.

</comment></comment></comment></comment></comment><comment><USER6> We're 2017, VHDL 2008 was released 9 years ago, and this book is using VHDL 93.

<comment><USER3> As the old hardware commandment goes: if it ain't broke, don't fix it?

<comment><USER7> It VHDL as implemented at the time was broken, at least as of 2010. [0] VHDL 2008 support would have definitely had a positive impact on the VHDL source code (making it smaller and more comprehensible). There were so many 2008 features I wished to use but simply couldn't. With the slow pace that FPGA toolchains progress, I'd imagine the situation isn't vastly better today.

Luckily I read [1] and realized that VHDL can be written in a better way, even with old toolchains. This 2proc style is _so_ much easier to debug than typical RTL syle. It was unfortunate that the 2010 era Quartus II toolchain did not optimize my behavioral code well. The CPU caches were the worst offenders, which isn't too surprising. Tons of _enormous_ , almost certainly inefficient, muxes really pushed the LE limits on the FPGA and my patience during the very long synthesis time.

[0]: [https://github.com/jevinskie/mips--/tree/master/project4/sou...](https://github.com/jevinskie/mips--/tree/master/project4/source)

[1]: [http://www.gaisler.com/doc/vhdl2proc.pdf](http://www.gaisler.com/doc/vhdl2proc.pdf)

</comment></comment></comment><comment><USER8> Quite a few people have been working on making VHDL more accessible by generating it all from Python. Tim Ansell gave a talk about it at LCA 2017 ([https://www.youtube.com/watch?v=MkVX_mh5dOU](https://www.youtube.com/watch?v=MkVX_mh5dOU)), and it seems pretty cool.

<comment><USER5> No way to specify different clocks or resets from what I can see. That's a massive limitation to your designs.

</comment></comment><comment><USER9> Discussed in 2012: [https://news.ycombinator.com/item?id=3580537](https://news.ycombinator.com/item?id=3580537).

<comment><AUTHOR> Note that it was probably updated since then: Release: 1.18 Date: 8 March 2016

<comment><USER10> Latex source for the book on github shows what & when:

[https://github.com/fabriziotappero/Free-Range-VHDL- book/comm...](https://github.com/fabriziotappero/Free-Range-VHDL- book/commits/master)

</comment></comment></comment><comment><USER11> Can I write an ASIC with it?

<comment><USER12> No, because VHDL is used for configuring FPGAs. An ASIC is a different beast entirely.

<comment><USER13> Actually yes - the H stands for hardware: that's any kind of digital logic. You just need a different "back end" and then in theory the same model can run on various targets - in fact there is a whole business model around getting a design up and running on an FPGA and then porting it to an ASIC once you can justify the volume.

</comment></comment></comment><comment><USER14> Please don't use VHDL. Use verilog, as a great cycle accurate FOSS simulator/compiler exists for it (Verilator).

<comment><AUTHOR> Any good Verilog/SystemVerilog book you can recommend?

<comment><USER15> [http://www.doe.carleton.ca/~jknight/97.478/97.478_02F/Peterv...](http://www.doe.carleton.ca/~jknight/97.478/97.478_02F/PetervrlQ.pdf)

I do FPGA design as part of my job. This is the most concise document I've found that covers everything you need to know to get started. Many verilog books just focus on the language. This short pdf focuses on how to use the language to do hardware design, which is what most people actually want to learn.

<comment><USER16> Many thanks for that link. I wrote VHDL for 10 years and sometimes had to interface to Verilog modules. I only know enough Verilog to read it and get a rough idea of what it does, sometimes asking for help from an expert.</comment></comment></comment></comment>


How I built my first mobile app with Trigger.io - <AUTHOR> http://blog.self.li/post/26068453853/first-mobile-app-trigger-io-weightconverter

<comment><USER2> I'm evaluating Trigger.io currently for a new project. I've used phonegap on a couple large projects before, as well. For me, Trigger's best value proposition isn't the ease of development. For the average hacker the few extra steps you need to take to use Phonegap/Cordova aren't overly complicated and in the end you have a better idea of how everything fits together. If Trigger.io's main selling point is going to be "easier to use than phonegap" I think they may fall flat.

Where real value can be provided, however, is in providing turn-key modules that allow developers to drop in native controls to supplement their web applications. The biggest issue with hybrid mobile application development today is embedded webview performance, especially on older devices. Using a framework like Sencha works wonderfully for newer devices (it feels positively native on my iPhone 4s), but because they have to rely on javascript to fix elements and scroll certain sections on older devices, it ends up delivering a sub-par experience for those users (on older androids the scrolling performance is atrocious).

Trigger.io is currently offering API calls that allow you to drop in a tab bar and a navigation bar which are native components. These are the two elements in a mobile app that are most likely to require fixed positioning, so this frees the webview up to simply serve a normal web page with natural, native scrolling on all devices. This is essentially what Facebook is doing with their current app - fixed native navigation elements and scrolling UIWebViews. However, as we all know, Facebook's results have been less than satisfactory. They admit that this hybrid approach helped their developers iterate faster and be more productive, but instead of sticking with that strategy and figuring out clever ways to make it perform better, they've capitulated and are going full native.

If Trigger.io was able to solve that problem and make a hybrid HTML5/native app perform as well as any other native app, they would really have something there. My advice would be to figure out how to get UIWebViews to load faster and cache better, how to allow customization of native UI elements so that designers can deliver a unique, beautiful interface that scales across multiple platforms, and continue to provide best-in-class hooks into the native functionality on the leading platforms, such as dead-simple push notification integration. Focus less on competing with phonegap and more on solving the hybrid app problem.

<comment><USER3> "Where real value can be provided, however, is in providing turn-key modules that allow developers to drop in native controls to supplement their web applications."

I'm curious - how is that different from the way other frameworks allow plug- ins? As I understand it (perhaps not fully) plug-ins let you drop in chunks of native code where desired.

<comment><USER2> It's no different than phonegap/cordova plugins other than the fact that you get support on them. With phonegap/cordova however, you're on your own and from my experience the plugins out there are poorly maintained and are rarely available for all three major platforms. If Trigger.io or a similar company can provide supported, proven, bullet-proof plugins that work across all three major mobile platforms, they truly have something there.

</comment></comment></comment><comment><USER4> Looks like the author has partially succumbed to Hello World Fallacy. His first extremely simple experiment (I'm reluctant to call it 'app') was successful and he is extrapolating this in slightly too optimistic direction.

<comment><USER5> I think this blog post is a great starting point and exactly what a platform evaluation should be: an "app" that combines HTML Boilerplate, Zepto.js & Twitter Bootstrap to build something that includes some useful user interaction. And it's open source on github. I find a minimal starting like that _more_ useful than something with lots of additional functionality that I then have to remove for my use case.

Because it's standard HTML with common frameworks, I then have my pick of docs/examples/tutorials/mailing lists on using those frameworks to build something bigger, rather than being stuck with e.g. only Android resources.

I think that's what the author is basing his positive evaluation on; he's got to the point where the Trigger.io technology has disappeared into the background and is just "magic". He recognizes the pros & cons (e.g. needing to be online to deploy), and is excited to use Trigger.io.

</comment></comment><comment><USER6> Thanks for the write-up and your recommendation Peter :D

We're working on supporting more and more native features, such as the ones you describe. And you'll see from our blog that we're getting features out reasonably fast at the moment.

You can send a text message using our SMS module right now though:

<http://docs.trigger.io/en/v1.3/modules/sms.html>

<comment><USER6> By the way, if you email us at email@example.com we'd love to send you a t-shirt! :)

<comment><AUTHOR> i was thinking about sending sms without user's interaction rather than prompting user to send a predefined sms.

BTW email sent :)

</comment></comment></comment><comment><USER7> What is the deal with all these "I made an app using trigger.io" blog posts that seem to have been paid for by trigger.io? I don't think I've seen a mention of trigger.io yet that doesn't grossly misrepresent phonegap as being some difficult, arcane, "only greybeards can use it" monstrosity.

>I decided to go with Trigger.io to achieve my goal, as I wanted to spare myself endless hours spent on configuring environment (as opposed to PhoneGap/Appcelerator)

Huh? Have you tried phonegap? How does "click next on a couple of installers and extract a single zip file" take hours of configuration?

>Trigger.io provides you with a pleasant environment, where you don't have to touch command line at all! It works as an app within your browser, from localhost. I do understand that a lot of folks may prefer "hacker-style" black terminal over Trigger's clean and minimalistic web app, but for me clicking a button that i can see instead of typing a command is a much better experience, especially at the beginning.

I can't figure out what on earth he is trying to compare it to here. What html/js mobile app framework involves typing commands in "hacker style black terminals"? With phonegap you just click "run as android application" (or whatever you want to run it as).

This is how hard it actually is to setup phonegap: [http://docs.phonegap.com/en/1.8.1/guide_getting- started_andr...](http://docs.phonegap.com/en/1.8.1/guide_getting- started_android_index.md.html#Getting%20Started%20with%20Android)

<comment><USER5> The first step you've linked there for PhoneGap Android is to install Eclipse. The first step for PhoneGap iOS is to install XCode (=> OS X). The first step for PhoneGap Windows Mobile is to install Visual Studio Express (=> Windows).

Regardless of whether you choose to point-and-click or use the command line, Trigger's web-based approach seems to have a huge advantage over all that installation/configuration. Heroku for cross-platform apps, as it were; of course you can assemble everything yourself, but it's a lot more work to get to the "it's easy now" stage which this blog gets to very quickly using Trigger.

It does seem Trigger are sending out T-shirts (see below) - it doesn't count as paid in my book, but then maybe the T-shirts are _really_ nice :-)

<comment><USER7> >The first step you've linked there for PhoneGap Android is to install Eclipse

Uh huh? You've never used an IDE before? And that makes you think clicking next in an installer is hours of configuration?

>Trigger's web-based approach seems to have a huge advantage over all that installation/configuration

See, this is exactly what I mean. You are welcome to say "I prefer editing my code in a web browser", and I will certainly believe that (although I'll obviously assume you are insane). But trying to characterize the alternative of "using an editor" (which everyone already does for every other kind of development) as some arduous task is absurd.

>but it's a lot more work to get to the "it's easy now" stage which this blog gets to very quickly using Trigger.

No, it isn't. That's precisely the point. I just did it yesterday, that's why I know. It took 5 minutes to have a nicely documented example app up and running ready for me to edit it. I typed 0 commands. Deliberately misrepresenting software X is a bad way to sell people on software Y. It just makes you seem dishonest, and then your opinion isn't trusted.

<comment><USER6> Just wanted to point out that Trigger.io doesn't require you to code in a web browser as this comment implies. We don't provide any kind of IDE, web or otherwise.

We do provide a cloud build service so you don't compile the apps locally. You interact with that via command-line tools or our UI toolkit.</comment></comment></comment></comment>


Bootstrapping Your Company - A practical guide by Greg Gianforte, founder of RightNow Technologies [MP3] - <AUTHOR> http://osc.gigavox.com/shows/detail1624.html <comment><USER3> See also The Bootstrapper's Bible by Seth Godin. Seth has a much better explanation of the benefits of bootstrapping than anything else I've seen. The eBook version is only three bucks on Amazon too.

</comment><comment><USER4> don't know if this particular speech applies so much to consumer-facing internet companies-- his first mantra is "sales comes first", and he tells the story of how he sold a bunch of software before the product even existed.

Some of the other principles, though, such as not spending more than comes in, first things first (keeping the cash flow coming), etc, are more universal.

the quiz at the end is funny, too.

<comment><AUTHOR> Yeah, it's probably not so applicable to consumer facing internet companies since the approach really needs a business to buy into the idea (much more willing to preorder, a single sale could fund the entire development).

Although maybe that depends on what you are creating. I could see something like Hotmail or Skype being bootstrapped with this method, because those services are useful to both individuals and businesses. Back then, email from any PC with the internet or free international voice calls would have been things that many businesses would have paid for (and still would, if there weren't so many free alternatives now). Even Reddit got its NYT deal soon after starting which pushed it into the black, did it not? (not rhetorical - <USER2> don't know much about their history so tell me if I'm wrong!)

There is the problem of loss of focus though. If a company like Hotmail started in '95, realised it could make millions selling their product to companies and focused on that (sales, turnkey servers for easy installation), they would probably only get a few years of that income at most before they are dethroned by a company that just focused on making the best web based email possible. So it would be a bit of a local maxmimum. Is this more dangerous than the loss of focus of doing something totally unhelpful/unrelated to the main product to bring in some cash (contracting, searching for investors) while simultaneously working on the final product? I'd like to know what everyone thinks.

</comment></comment><comment><USER4> in the future, submitters please post mp3 warning... though a domain indicator would have worked in this case. pg?

<comment><AUTHOR> Sorry, I decided not to tag it [MP3] since it linked to the site not the file directly, forgetting about the lack of a domain indicator. Harb suggested it under the feature requests but it didn't really get any attention - I think an upvote is in order.

http://news.ycombinator.com/comments?id=363

[edit: handily, though, there is an option to edit the title of a submission]

<comment><USER4> >[edit: handily, though, there is an option to edit the title of a submission]

well, there's one improvement over reddit...</comment></comment></comment>


Qubes OS 3.2 has been released - <AUTHOR> https://www.qubes-os.org/news/2016/09/29/qubes-32/ <comment><USER2> If anyone here uses Qubes then I'd be interested in learning about your experience.

<comment><USER3> Also using Qubes on an old Lenovo Thinkpad.

The only major con for me is that it takes a lot of RAM.The laptop only has like 4GB so I can barely run my work and 'other work' VMs side by side. Often one will not boot due to memory constraints.

I think it would be fine on a 16GB laptop. I just can't be bothered upgrading that old hunk of junk.

I will bring Qubes over to my next laptop, if I ever do end up getting one. I find it indispensable for traveling - isolating network/proxy VMs from each other is amazing!

I'd also like to run i3 on it as the main WM. I think it is possible with some trickery but I didn't try.

<comment><USER4> Try djb's qubes manager instead of the default one [https://groups.google.com/forum/m/#!topic/qubes- users/7-gm_q...](https://groups.google.com/forum/m/#!topic/qubes- users/7-gm_q3nkQ8)

</comment></comment></comment><comment><USER5> I use qubes on my primary work machine. Most of my activity comes out of one of a few whonix vms.

It's a bit of a hill to climb, but I'm really happy with the result. If I need to visit an untrusted website or install some garbage dependencies to try out a new app, all I have to do is clone my current VM and install it in that.

I've been using it exclusively for about 3 weeks. I have compartmentalized my personal, work, and 'Taek' lives, and even further important things like bank account logins live in their own VM. Bitcoin in its own VM.

It's a lot of peace of mind. My key information has never been on the same AppVM as a web browser. The vast majority of security compromises these days come from web browsers. My password manager isn't even connected to the internet.

The transition reminds me a lot of the transition I went through when I switched to using exclusively Linux (from Windows). Some things are more annoying. Some things you can't really do anymore. Some things are nicer, and some things are a lot nicer. I'm not switching back, I'll be on Qubes from here on out.

It took me maybe a full week to get integrated. That week was very low productivity, but now I'm getting back into the groove. Qubes has i3 support, which for me was going to be a dealbreaker. But... they support it (kde, xfce, and i3) and that made me feel like I was at home.

I recommend it, but it's definitely only for power users at this point.

</comment><comment><USER6> USB passthrough, good stuff. This is starting to sound very usable for everyday use.

</comment><comment><USER7> As a person who isn't familiar with Qubes, I wanted to find a nice quick summary. The homepage didn't give me that. I clicked the Tour tab and was greeted with this:

"Are you completely new to Qubes OS? We suggest watching the full 33 minute video"

They really could intrigue more people like me if they would update their site to be a bit more clear what they do. :)

<comment><USER8> They basically break your system into different VM's to isolate things from one another. Compromising the Browser VM shouldn't hurt the Business Secrets VM. One could even have two Browser VM's to separate risky sites from trusted ones. There's other advantages to VM's like for software testing, upgrades, backups, trimming the fat, etc.

The main thing Qubes brings to the table is building one on Xen with lots of usability features to make things easy.

</comment></comment><comment><USER9> Can anyone comment on how well the Debian template works for Qubes?

The last time I used Qubes it was pretty much Fedora-only, which I'm not as comfortable with and it was one of the reasons I don't really use it at the moment.

<comment><USER10> I use a Qubes Debian VM for dev work. Works fine, except that it runs gnome- keyring by default, which breaks ssh, and restores this config everytime I upgrade (but easy to fix when it happens).

</comment></comment><comment><USER11> Would installing Qubes 3.2 on a Thinkpad X220 with 16GB of RAM provide sufficiently good experience?

</comment><comment><USER12> Anyone remember the old MIPS Cobalt Qube/Raq products? I wrote a VPN module for them years ago, one of my first jobs... IIRC it was perl.

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

<comment><USER13> I remember then, I used to own one. How is this relevant (other than sharing a partial name, that is)?

<comment><USER12> More than tangentially topic related is not a requirement I'm aware of :)</comment></comment></comment>


The Law of Conservation of Complexity - <AUTHOR> https://medium.com/outsystems-engineering/the-law-of-conservation-of-complexity-1-simple-rule-6578a2bbfdbf#.nmnrerlgp <comment><USER2> Well this article is certainly trying to demonstrate itself through a meta- circular hiding of complexity. But it just comes across as overly simplistic.

</comment><comment><USER3> I never feel more productive as a programmer than when I have a day when I delete a lot of code.

Fred brooks made a distinction between accidental complexity and essential complexity. The problem you are solving has a certain amount of complexity and based on Ashby's law of requisite variety, your system will need to be complex enough to manage it.

If you are fighting with your build system, feeling stupid because you can't understand monads, struggling with a big ball of mud or have your head spinning from too many microservices, that is accidental complexity and it can be reduced.

Many people won't do it, because it means you have to stop and think.

</comment><comment><USER4> I agree with this article but I think that unnecessary complexity is always under threat of being replaced by simpler solutions. I do appreciate the message that everything is always more complex than it seems once you start digging into it though.

</comment><comment><USER5> This post seems wrong in so many ways. For one, there's different goals for complexity. Making everyone be an expert machinist for coffee vs pressing a button is about simplification. Then, we look to see what's in the box to make that happen. I'd be surprised if my Mr Coffee[maker] I got for $30 with a few buttons, circuits, and components is that much more complex than first, mechanical coffeemaker. It's quite simple in design. Some things got simpler over time while a lot increased in complexity.

The next statement is about legacy IT. Not legacy IT and mobile but legacy IT. It's systems whose complexity increased for social and economic reasons beneficial to who knows who by now that massively increased complexity for developers and often users too. Was it inherent in solving the problem? No. Not at all. There's a small segment of people that regularly post stuff here that's simpler, higher-quality, etc than what's common. When correct & reasonable complexity are design goals, then one gets software that's way simpler than it otherwise would be. The extremes of that are probably Niklaus Wirth's Oberon and Chuck Moore's Forth. Wirth's take on it is below but manageable complexity is something many small players practice. The market doesn't reward it very much but it's doable.

[https://cr.yp.to/bib/1995/wirth.pdf](https://cr.yp.to/bib/1995/wirth.pdf)

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

Another on Wirth that's illustrative of the Web counterpoint is the Juice project. Javascript and Java applets were the mainstream approaches to increasing power of web browsers. Complex, hard to define, relatively slow to interpret/compile, and slow runtime. Juice applets were based on Wirth's Oberon. It's memory-safe, compiles lightening-fast, and runs pretty fast. To deal with dial-up while maintaining type-checks, they compiled the applets to compressed AST's that preserved type information that the browser finished compiling into machine code after checking. It went nowhere because inertia and the market but was very simple, safer, and faster.

"As you can see, complexity is constant."

No, it's probably not. It can be reduced in many cases by changing how you express your ideas. Not to mention simplifying the ideas themselves. Then, just because it moved doesn't mean overall complexity isn't reduced. Putting complexity in one space to benefit countless users is much less complexity than trying to teach countless users to all do the same, complex thing that must integrate with your backend that must anticipate all the ways it will be abused. So, the complexity of each aspect of the problem and reuse of solutions must be considered. It's why high-assurance markets for both security and reliability have focused on putting tons of effort into reusable components they can adapt to new use-cases. Same level of complexity in the component followed by an extension or integration cost. Much less labor and money than clean-slating the whole thing.

"For example, think about the jump from Assembly to C; complexity moved to the compiler. Consider how we went from unmanaged languages to garbage collection: complexity moved to the runtime."

A simplistic look. Instead, the nature of the problem changed with solutions proposed. Some were pretty simple. The garbage collection one is a real laugh as getting one, garbage collector right is way easier than getting right all memory-safety right in all programs ever written on that platform. The latter is seemingly-boundless complexity. Likewise, even CompCert compiler (design & ML code not proof) is probably simpler than most applications if you wrote them in assembly language. I can only imagine trying to do Excel that way. Funny thing is I used to use it as an example but later found out they had their own compiler. They found it easier to maintain a whole compiler for themselves than to keep up with the features or breaks in other compilers. It was work but actually reduced the complexity of their problem. Funny stuff.

"Then there's the evolution from waterfall to agile, distributing complexity over time."

There was an evolution from ad-hoc practices to iterative stuff and something like Waterfall depending on shop. Then, there were things like Cleanroom, RAD, and Spiral that did more iterative. Then Agile showed up with extra stuff on top of it with a mix of simplifying and extra complexity. Cleanroom and Spiral kept things simple with Cleanroom forcing basic primitives used in step-wise refinement with human verification of code and usage-based testing. Very low defect on first try for most teams while most other methods were failing. Cleanroom was actually _simpler_ than most methodologies or tooling of the time but more complex than throwing code together.

"Every time we took these steps, we were skeptical and afraid because we felt we were losing control."

Many were. Most of it had nothing to do with complexity. Generally, managers forcing something on developers for social and economic reasons. Developers stayed pushing stuff they thought would make things better with mix of evidence and ideology. The main drivers for almost everything.

"As promised, here's the simple rule for deciding how to deal with complexity. Focus on where you can innovate. As for everything else? Just let it go."

Prior articles on HN suggested looking at each component's complexity instead. You consider using it only if it works, is well-documented, and straight- forward enough to maintain yourself if they abandon it or make changes you don't like. Otherwise, you ignore it. It's often that simple. The hard stuff you take time to understand, thoroughly test, document, and use within the bounds of what you've come to understand works. Also, if it's a 3rd party, I recommend having multiple options with portable code so you're ready to leave at any time with minimal, transition cost. I've seen too many burned by trusting 3rd parties too much.

<comment><USER6> I like the rebuttal but would disagree that addressing memory safety without GC is harder than writing a correct garbage collector that addresses your specific performance needs. Former is solved by formal proof, latter as well - though there is less to prove it requires much more involved proofs for a nontrivial and especially concurrent application. Stories related to badly written GCs exist in quite a number in the internet. Plus action at a distance by GC makes debugging harder in general. Rust's way with static checking is better, writing a good correctness proof is yet better still.

<comment><USER5> Appreciate the reply. Yeah, I need to make extra clear on my GC claim I was implying the usual divide between things done in unsafe languages like C or languages with a GC. Getting all the code in a platform memory-safe consistently in an unsafe language is much harder than putting in solid effort for a GC. The counterpoint you use works both ways on that: one team published a paper on using Rust to build a GC with its safety boost. Full correctness is much harder but that's true for programs in general. There's at least some GC's that were verified already and just separation logic could probably handle at least pointer safety. Microsoft's VCC tool makes that much easier than in past although still much harder than just Rust for average developer.

So, GC's do reduce difficulty. Getting a GC right in a language like Rust is easier than getting arbitrary apps through borrow checker or arbitrary apps in unsafe language done safely. There's a reduction there in most cases that aren't toy problems, CRUD apps, etc on the app side. The complexity isn't equal.

</comment></comment></comment><comment><USER7> Specious. We are told that alternative designs always have the same complexity. When one device seems simpler than another it's really "hiding" that complexity somewhere.

Probably not the best article for an audience of people who largely understand computational complexity analysis.

</comment><comment><USER8> Doesn't increasing entropy imply increasing complexity?

<comment><USER9> To my very limited understanding, no.

Basic example, puring cream into a cup of coffee. At first low entropy, low complexity (cream at top, coffee at bottom). Then higher entropy, high complexity (cream and coffee mix according to laws of physics, different concentrations at different locations in the cup, streams and such). At last, highest entropy but again low complexity (everything is homogenous).</comment></comment>


What you say about others says a lot about you - <AUTHOR> http://scienceblog.com/37144/research-shows-what-you-say-about-others-says-a-lot-about-you/?

<comment><USER2> I try to avoid talking about other people, and often feel very uncomfortable when people I'm hanging out with (or whatever) start talking about other people. My sister does it all the time and my parents listen with rapt attention -- I try to excuse myself as quickly as possible. There's really no point to it other than self-gratification in one form or another.

edit: bleh, I already feel awkward for saying that about my sister, but it was relevant to the subject...

<comment><USER3> +1 before your edit it stroke me as funny.

There are various degrees of criticism of others (when absent). I agree I would want to change subject if it's totally negative, but most of the time I feel like there is also a lot of good things said and to be said.

If your parents and sister are _that_ negative about others, I guess you could also bring that concern to them instead of fleeing :)

<comment><USER2> Well, it's something I've observed for a long time but never said anything about, and then this topic came along which seemed to address it exactly.

I mean, I used to do it a lot myself before, but eventually I realized that it really changes the way you perceive and interact with other people. Even if its not overtly negative, it establishes sort of a gulf between yourself and the people you talk about, and you can't be honest or real with them.

</comment></comment></comment><comment><USER4> This is some basic psychology stuff.

I remember my professor talked about this in college. For example, to find out about a person, during a job interview, present them with a hypothetical situation where someone does something unusual. Or something doesn't go as planned. Then ask the interviewee to explain why the hypothetical person did what they did.

For example: "Susan is falling behind on her project. What happened?" Then then let the the interviewee come up with a reason. "Well, of course, she is stupid and doesn't know how to finish her work" would be one answer. Or "She has tons of personal problems that get in the way" and so on.

Well, that is a very much a contrived example. Perhaps it is more useful in clinical study as it is a little too obvious. So maybe ask them about a mutual acquaintance, or the previous boss...

Also, beware, a lot of people know about this trick, and could just fake it. I.e. they might just really hate the person they are talking about but they know the reason the question was asked so the lie -- "Oh, that person is fantastic. My skills pale compared to hers/his, they are great, yada yada..."

<comment><USER5> And is there any experimental evidence showing that this method actually works?

<comment><USER4> Well I am not sure what you mean by "works"? It is designed to reveal certain personality traits. As for research, start with the study mentioned in the article. (It is behind a $12 pay-wall. Perhaps you know someone at a university that can get it for you, or your local library might subscribe to the journal. I have access to it, but I will not distribute it.)

"Perceiver effects as projective tests: What your perceptions of others say about you." Wood, Dustin; Harms, Peter; Vazire, Simine, Journal of Personality and Social Psychology, Vol 99(1), Jul 2010, 174-190.

Here is an excerpt from the abstract:

\---

... results provide compelling evidence that how individuals generally perceive others is a stable individual difference that reveals much about the perceiver's own personality.

\---

<comment><USER6> Well, I had a look. Thank you for the reference. It seems like an interesting idea, but I wouldn't use these findings in a casual setting like a job interview. As a lot of reporting on scientific studies, the findings are overstated in the linked blog. (For a quick illustration of "the science news cycle", see: <http://www.phdcomics.com/comics.php?f=1174> )

This just seems a bit too much like a Rorschach test (<http://en.wikipedia.org/wiki/Rorschach_test#Controversy> ), and the interpretation that you can directly come to some conclusion about a job applicant based on what they say about a hypothetical person is even warned against in the actual article:

"First, the studies clearly demonstrate that perceiver effects represent more than simply the projection of an individual's self-image onto other people."

Projective tests have their uses in clinical psychology (e.g. with the crazies) - but whether you would want to apply them to normal situations is questionable.

"In each study, we found regular relationships between personality traits and perceptions of others. Individuals who perceived others positively reported higher agreeableness (particularly aspects associated with friendliness and low hostility); higher life satisfaction; and lower endorsement of measures of personality disorders, depression, and antisocial attitudes."

In other words, the test is likely to tell you two things: first, how positive you are (which is unsurprising, since positivity is almost by definition related to seeing things and others in a positive light) and second whether you are not totally nuts (e.g. positive people are likely to be associated with lower measures of personality disorders, depression and antisocial attitudes).

But in non-clinical settings - such as in a job interview? "The magnitude of individual differences in the positivity of perceptions of others is fairly large, and individual differences in perceiver positivity impacted judgments of single targets to a considerable degree." That is, the positivity measure is stable, but there is a lot of variance. This suggests that you don't want to use this for finding out much more than how positive a person is - and if that is your sole criteria in a job interview, good luck!

Edit: to clarify that last quote - it basically says that among a normal group of college students, positivity measures have high individual differences and these differences impact judgments to a high degree. So big differences in the results of the measure may be simply explained by individual differences in positivity measures.

</comment></comment></comment></comment><comment><USER7> Useful advice I heard as a child: don't judge others on how they treat you, judge them on how they treat other people.

If the guy you are having a business lunch with is extremely nice to you, but an asshole to the waiter, what does that say about how you will be treated after you enter the contract you are discussing?

If the girl you just started dating seems super nice, but hates every person around her for one reason or another, what will she treat you like after 5 years?

</comment><comment><USER8> Multiple-choice meta-reactions:

A) This is nonsense. Yes, the social construct of 'mental health' obviously excludes those who are deeply disturbed by the social status quo. Of course there is a strong correlation between having a low opinion of the people around you and being depressed, but simply adopting a rosier view of the world at best cures only the symptom.

B) Wow, this is great! I love it when scientific studies can provide insight into things we intuit but have trouble putting into words. I've always thought this, and it feels great to see others confirming my ideas. I can't wait to read the full paper, but until then I'll remind myself that a positive outlook will help both me and those around me.

C) Both A and B.

<comment><USER9> A. definitely. i don't know if i'm a realist or a pessimist, but aren't they really the same?

<comment><USER10> They aren't. I wonder why only pessimists keep saying they are just realists.

</comment></comment></comment><comment><USER11> I submit that those people just aren't narcissistic enough. I am narcissistic, but I don't often have negative opinions about other people. Mostly I just don't form opinions about other people because I am too involved with myself! (and my computer)

Seriously, though, I call bullshit. If a friend asks for your opinion about, say, a potential hire whom you're acquainted with, and you know he's antisocial and incompetent, do you try to say positive things about him? Also, opinions about other people are a relative to the abilities and attitudes of the parties involved, aren't they? If you're Superman, earthlings are all weaklings. If you're Mr. Glass, then just about everyone is stronger than you. I say you should try to form objective opinions about other people instead of either trying to see only the good or the bad, and only when you find that all your opinions skew in one direction do you potentially have a problem (or you could be Superman).

<comment><USER10> There are many way to say one person is incompetent: "He is worthless.", "He is not experienced enough." and so on. That many ways to say things say something about you.

</comment></comment><comment><USER12> Wow, this research is really applicable to job interviews. I'm adding some questions that are designed to get at this trait to all my interviews from now on.

<comment><USER13> Yes, that's what we need: more questions in job interviews asked and assessed by unqualified armchair psychologists who once read something on the intertubes.

Oddly, I am now both forming a negative impression of another poster and becoming depressed at the same time...

<comment><USER14> This study is really just confirming common sense, so I think you're being too harsh here. Obviously sometimes a person can legitimately have had a bad boss previously, but a lot of the time if someone is badmouthing their old boss/roomate/girlfriend it suggests a good chance of them having issues.

</comment></comment></comment><comment><USER15> That author is a douchebag.

</comment><comment><USER16> Do you have positive things to say about negative people, or only negative things?

</comment><comment><USER17> Perception is Projection.

</comment><comment><USER18> Isn't it obvious that being surrounded by people you like will give you a better mental state? And conversely, being with people you hate gives you a bad mental state.

This says nothing about your true qualities.

<comment><USER10> It shuts about your qualities, instead.

What annoys you about people? Do you try to understand them? As the old adage goes: "He who knows everything, forgives everything."

Getting along with people we like and who like us is effortless. But how well we are able to get along with people we don't like or who don't like us, tells how much effort we are both willing and able to make to build a rapport.

</comment></comment><comment><USER19> My hunch says that this is a culture-specific study. The findings might break down in some Asian cultures, especially those in which it is polite to speak highly of everyone, regardless of one's true feelings.

<comment><USER10> Nice to learn that. I wonder whether it would be possible to distinguish between polite comments and sincere ones. I think so, but I would like to test.

</comment></comment><comment><USER20> Uh oh.

</comment><comment><USER21> It's nice when a saying you use frequently is proven correct. This is something I've always said to friends and family when people say cruel or hurtful things.

</comment><comment><USER10> I absolutely agree. We can't avoid talking about ourselves, more so - and in an unfiltered way - whenever we are talking about others.

</comment><comment><USER22> Alternative explanation: people who are surrounded with better people are more happy.

This study in no way controls for the fact that people may be somewhat accurately rating people in their lives.

<comment><USER10> Common wisdom agrees instead: "Man with wicked conscience: he behaves wickedly, and he views others' motives as wicked too." (Italian original proverb: "Uomo di mala coscienza: chi la fa, la pensa.") That is: we are inclined to judge others according to our view of the world.

EDIT: corrected translation

<comment><USER10> Er, a more literal translation is: "Man with a wicked conscience: what he would do, he thinks others would too."

</comment></comment></comment><comment><USER23> I think we could use a little more information. Many people here, me included, like to argue with others just to have a healthy debate in order to work through our our opinion on a matter. We like to play the devil's advocate. Is that behavior exempt from the study's conclusion or does being a hacker go hand-in-hand with neurosis and narcissism?

I will say that forcing myself to see the best in people and often times the worst in myself, makes it easier to form relationships and to be happy in general.

<comment><USER24> The article is about how you judge other people. Debating the merits of one idea against another isn't judging anyone, so it's not relevant.

<comment><USER25> > _Debating the merits of one idea against another isn't judging anyone_

Yes it is. If you say an idea is wrong, you are judging the people who believe it as deluded.

<comment><USER24> Not really. "Deluded" is not a personal characteristic, it's the receiving end of an action — a synonym of "deceived." If you concluded that the person is _easily deluded_ or _willfully wrong_ , that would be a personal judgment, but merely believing their ideas to be incorrect is not judging them.

</comment></comment></comment></comment><comment><USER26> I disagree. I prefer honest people and at times honesty is negative. Some people are mean and horrific. How could a Jew describe Hitler positively? Tell the truth, just because it happens to be negative is not a bad thing and does not make _you_ a bad person or negative minded with low self-esteem, etc.

<comment><USER10> How would a Jew describe Hitler positively? She could say he was out of his mind, and that would tell you that she considers Hitler's actions out of this world, even for the most evil - but still sane - person. That would tell you she is very understanding even of nasty people. OTOH, if she says is he was very cruel, that would say that she considers Hitler's action in the realm of human behavior. Whatever she says, that will tell you something about her.

The article says that "a person's _tendency_ to describe others in positive terms is an important indicator of the positivity of the person's own personality traits". It doesn't say you only tell good things about others.

</comment></comment><comment><USER27> A similar article from 4 years ago: [http://tastyresearch.com/2006/10/12/people-take-on-the- trait...](http://tastyresearch.com/2006/10/12/people-take-on-the-traits-they- describe-in-others/)

</comment><comment><USER28> we used to say "only Hurt people; hurt people." and found it to be true that when slander showed its ugly head it was in affect a person letting the rest know that they are hurting..

</comment><comment><USER29> I love it when a statement begins with "Research shows ..."

<comment><USER30> It's the new "it turns out.."

<comment><USER29> I simply hope you were ironic since both phrases should be avoided when writing about science.</comment></comment></comment>