The Stigma of Choosing Trade School over College - <AUTHOR> https://www.theatlantic.com/education/archive/2019/03/choosing-trade-school-over-college/584275/ <comment><USER2> One thing that is always missing from these articles is the idea that it's actually good for individuals (and for our society) to get an expansive view of human knowledge rather than a narrow training to turn you into a worker on a production line (or at a computer).

Of course right now that's a path that's not accessible to many people, and people may have other financial reasons for going to trade schools, but I think those are the issues we should fix. That is, make our society one where to be financially stable you don't have to choose between a narrow training and an opportunity to explore the accumulated knowledge of the humanities and sciences.

<comment><USER3> Except that's what high school should be. And let's face it, general studies courses that make up that "expansive view" of college really are repeats of high school with slightly more work, at least if you take honors classes in high school. And if that expansive knowledge is being surrounded by peers who are in pursuit of higher learning...that's not the typical college experience these days.

High school is becoming more dumbed down so that people can pass state exams and graduate rather than teaching the knowledge that we used to consider foundational. We've lowered expectations and extended adolescence so much that we no longer expect 18 year olds to be mature and capable adults, which shouldn't be the case.

Your view of trade schools is severely skewed though, and is really indicative of the problem discussed in the article. Most trade schools do not turn you into a worker on a production line, they teach you to be a skilled worker or artisan in a trade. You don't go to a trade school to be an assembly line worker, those are jobs that are taught on the job and are typically low paying. You go to a trade school to be an electrician, mechanic, carpenter, welder, etc. These are skilled jobs that are difficult and challenging. They are also jobs that have a greatly accelerated pay scale, and often lead to jobs that pay as high or higher than the large majority of college degrees (maybe STEM excluded), particularly if you are able to start your own business in the trade.

<comment><USER4> This was exactly my problem with College and why I didn't succeed there.

I came from a really good high school that offered a breadth of knowledge across fields. When I went to college (granted in 1998) to become a "web designer" the curriculum and training was just not there. My first year was taking variations of the same math courses, the same english courses and a couple comp sci courses (teaching Java). It was heartbreaking. Anything design related involved drawing classes.

I dropped out mostly because I was too disheartened by what college was and didn't end up going to class. I was instead hacking in my dorm room on HTML, CSS and Photoshop. When I dropped out it led to immense guilt in relation to my family, who very lovingly had done everything they could to set me up to succeed. It was only a year later when I had a surprisingly decent pay check to show my parents that they didn't consider me unmotivated.

College isn't for everyone. It's especially not good if you know what you want to do and have mastered some manner of self-learning. For those of us that figure that stuff early, it's much better to just jump into the work and figure it out. In those ways I somewhat value a good high school as more important to college. It was there that I learned to learn and could explore my interests in a well-rounded curriculum.

I'm conflicted about how I'll deal with the scenario when my own kids grow up. I married a teacher, and speaking for myself I do very much value liberal arts educations. I just think a lot of those introductions need to be provided in High School, with secondary education focused more towards whatever your career is. If you don't know what that career is yet, I think potentially waiting a couple years to go to secondary education (be it college or trade school) till you know is a better bet.

My big takeaway is there isn't some magic formula for this. Everyone is different and we shouldn't pressure certain paths.

<comment><USER5> I don't know about your school, but most of the useful classes generally occur later on. So, dropping out after a year means you missed out on the most useful parts.

It might seem wasteful, but gateway classes are what allow upper level courses to assume basic competency and move much faster. I had a computer architecture class where one assignment was to write a fairly simple program in x86 ASM and the handholding was a recommended book to get you started.

That said, a lot of collages had real issues teaching computers in the 90's. Competent staff was hard to retain and enrollment was skyrocketing. So many schools tried to shuffle students into other departments.

<comment><USER6> > Competent staff was hard to retain and enrollment was skyrocketing.

And, from my experience being part of that skyrocketing enrollment, quite a lot of them wanted to learn to "make stuff" and were complaining well into their third and fourth years that they weren't learning how to "do anything" in their computer science classes, since it was mostly theory.

The thing is, they were teaching theory because that's the harder stuff to pick up on your own. Want to learn a specific language? Just do it. It's not that hard, and there are online resources and plenty of books. Want to learn how to make some particular thing? harder, but also mostly doable from self study. But what would spur someone to learn theory of computation topics, or how to do algorithm complexity and runtime assessment? That's the sort of stuff that really benefits from a knowledgeable instructor, and only a small percentage of self-taught people will likely stumble into learning. Computer science is a _science_ , and that's what they teach in school. It also makes you a better programmer, but it pays off in small ways over many years through more intricate knowledge, instead of front-loading all the gains into making you passable right now. That the better solution for some people, but not all.

<comment><USER7> > Want to learn a specific language? Just do it. It's not that hard, and there > are online resources and plenty of books.

This is why I always find myself skeptical of boot camp type programs. So many of them seem focused on specific tools: node plus react! rails plus angular! etc. On the other hand getting a top down view of things _is_ also useful. But I think this is what I enjoyed about my college program; there was time for both. Bottom up theory can seem pointless and unmotivated, and top down practicum can be hard to extend and generalize. The combination is powerful.

</comment></comment></comment></comment></comment></comment><comment><USER8> If students are coming out of 12 years of general education needing more general education, that is a failure of the public school system. We should fix that instead of pushing people into more school. After 12 years of general education, how do you justify more?

In my opinion, we should be pushing specialized education at a younger age. When students exit high school, they should have skills that they can expand or fallback on. They can then use that fallback as a safety net to explore other options without extreme risk or debt.

<comment><USER9> The problem is not the school system but rather too much education and commodification of education. 100 years ago , knowing how to read and write and do basic math was special and made one employable, but now such skills are so commonplace, so more advanced education is needed to differentiate one's self

<comment><USER10> Back then, high school graduation had an exam and a higher standard that most folks could do now. Can you amortize a loan? Close a ledger? Calculate return on an investment from a series of data points? Most can't today, regardless of college education.

So, _real_ education still has value.

<comment><USER11> Back then, most people finished school at grade 8.

Those who went to High School were smart and motivated to further their education. So curricula could be correspondingly more challenging/faster- paced.

<comment><USER12> I'm 44yo now... my great grandmother was a school teacher starting in the 1930s, and her 5th grade books for English alone was far more difficult than anything I had through H.S.

<comment><USER13> What kind of book, grammar, literature? What made it so difficult?

<comment><USER12> "5th Grade English" a lot of the content itself was centered around proper use of grammar. In practice, these days, it feels like nobody really cares.

<comment><USER14> It doesn't help that most prescriptivist poppycock is flat-out wrong, either.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> The crazy thing is that most colleges have evolved non-academic party tracks, or simple tuition-extraction tracks: [https://jakeseliger.com/2014/04/27/paying-for-the-party- eliz...](https://jakeseliger.com/2014/04/27/paying-for-the-party-elizabeth- armstrong-and-laura-hamilton/). Talking about "college," as if it's just one big unified thing, doesn't make sense today (if it ever did). I spent ten years teaching college, and I wish this point were better emphasized in the media narratives.

<comment><USER16> Do you think the college model makes sense for science/engineering?

<comment><USER17> I think it does. I got an EE degree at a state university, and couldn't imagine how anyone could just learn all that on their own. There is so much abstract/esoteric knowledge and skills you need to develop. Having a guided step-by-step process to learning is huge (along with experienced teaching profs to help you). Plus, at least with EE, you need to have access to some absurdly expensive tools like Synopsys Design Compiler.

</comment></comment></comment><comment><USER18> School should be a place of discovery. By being exposed to multiple things, you're encouraged to find your interests and talents. Society should help students find their path and encourage them to pursue it. Not everybody has the same sets of talents and sensibilities.

There are child living in poverty that have the potential to be great doctors, scientists, programmers. And there are adults in these professions, today, that are miserable because they were pushed and pressured into obtaining the education and skills to do these jobs.

Society should help individuals reach their full potential, whatever that potential may be. If someonewants to be a welder, than help them be the best welder they can be. If they wants to be a doctor, than help them be the best doctor they can be. Imagine what we could achieve when everybody is firing on all cylinders.

Jobs as status symbol is ridiculous.

</comment><comment><USER19> With regard to computer science I doubt many students could tell you the difference between their college curriculum and a trade school, aside from taking extra classes outside of compsci. If you go to college hoping to learn how to code or to learn a programming language, imo you are treating college as a trade school.

Trade schools teach a skill. Colleges provide an education. Those are not the same. With the proper discipline you can teach yourself a skill, and with programming, unlike many other trades, you often have all the tools you need already at home.

* Education - [https://www.dictionary.com/browse/education](https://www.dictionary.com/browse/education)

* Skill - [https://www.dictionary.com/browse/skill?s=t](https://www.dictionary.com/browse/skill?s=t)

In short a skill teaches you to do something. An education teaches you to make decisions. The number of computer science graduates that cannot make simple decisions about the code they write is stunning, to the point of negligence.

I think the confusion comes from why people attend college. If you ask them the common answer is "To get a better job!". College doesn't get you a job. It isn't job placement or vocational training. Trade schools often do provide those. I suspect it is disappointing to graduate college and still have trouble acquiring a better job.

</comment><comment><USER20> I'm a regular college grad, but always liked working on my own car (and didn't always trust professional mechanics.)

That lead me to consider becoming an auto mechanic at one time but after hearing some stories - and looking at the pay scales - I jumped back on my desk and rode off into the sunset.

The stories -

1) Constant complaints by mgmt about productivity. 2) Grueling work schedules 3) Pressure to upsell additional work 4) Customers blaming you for new problems

Sounds a lot like working in tech for 25% of the pay, doesn't it?

<comment><USER21> The biggest downside of being a car mechanic is that your back and knees will be shot after a couple of years. Ease of service and mechanic's comfort are not usually high on the list of desirable features.

<comment><USER22> Indeed, this is true of many skilled trades. When I have workers come to my house for various jobs, if they're my age, they're broken and hobbling.

</comment></comment></comment><comment><USER23> I blame the recession more than any stigma. There is a stigma around working at McDonalds, not skilled trades.

I and many other millenials definitely applied for trade apprenticeships back when we got out of high school. In my case after doing very well on the electrician apprentice entrance exams I was still 200th in line because of the recession, and they weren't really onboarding many new apprentices. I ended up going to college instead, am doing well as a software engineer, and there is a huge shortage of electricians now . . .

Personally, it would have definitely been nice to work with my hands and not have student loans.

<comment><USER24> > I blame the recession more than any stigma. There is a stigma around working > at McDonalds, not skilled trades.

For at least thirty years we have been telling our children that, in order to be successful, they need to go to college. We remind them of this constantly; college is the goal. That message implies that anything else is less than. There is definitely a stigma regarding trade skills, but not necessarily one we explicitly put forward.

<comment><USER25> Consider re reading the rest of the parent comment...

<comment><USER24> In what way does that alter or qualify the statement "There is a stigma around working at McDonalds, not skilled trades"?

</comment></comment></comment></comment><comment><USER26> Is 'video production' really a trade school? I think more of the blue-collar trades.

Also, aren't video/music production classes like that usually the realm of for-profit schools like Full Sail and the job prospects dubious?

<comment><USER27> Any schooling specifically intended to be vocational is a trade school.

<comment><USER28> So, CS at most non-elite American universities?

</comment></comment></comment><comment><USER29> An entire article about the future of education and not a single paragraph about automation. How are trade schools preparing students to reinvent themselves every 10 years or less? How is vocational education setting the expectation that those students will have not one career for the rest of their lives, but many?

This is not to say that liberal arts colleges are much better; but, at least with 4 year degrees, the expectation that you will "get a job in what you studied" is less pronounced (that is, after all, the original meaning of "liberal" in "Liberal Arts").

<comment><USER30> Will trade jobs be automated? Plumbers, HVAC, Welders are jobs that seem to be the least likely to be automated..

<comment><USER31> Plumbers I can see from the range and messiness of the tasks as very non- standardized beyond pipe thicknesses, and the diagnostics and HVACs as a cousin likely would have some similar issues but why would welders be a very hard to automate task?

Not dismissing it I just wonder what the "hard for machines" aspect is that I'm missing.

I know there are plenty of robotic welders out there and that progress implies they'll either expand more into "humans can't do that" territory and possibly become cheaper over time.

<comment><USER30> Correct me if I'm wrong, but sounds like you are thinking of welding in a factory?

I know a lot of welding is repairing damaged equipment. Especially older or already Jerry-rigged devices. I'd imagine it would be extremely difficult and expensive to develop an AI and a machine that would be adaptable enough to do these sort of projects.

Would construction welders be any less 'non-standardized' than Plumbing or HVAC? I would think welders have to problem solve far more than them for their tasks..

<comment><USER31> Ah that explains it - a maintenance vs construction thing - notice how repair has become the expensive option compared to creating new? Manufacturing has a far more constrained process which allows for readily automatable braindead repetition because it gets results. If construction now isn't readily automatable surprisingly doesn't matter too much. Building new things can be reengineered to a "friendlier" option like say screws and nails instead of joins but maintenance needs to take what they have and their moving parts.

Building everything to a schematic is easier to automate but I believe that already isn't the bulk of labor demand.

Theoretically a smart system with diagnostics could be more readily automated but those would be more expensive and probably be new constructions and come with their own host of technical and logistical issues. Sure it would be nice to have clogs and leaks mapped and remedied but it would take a while to become universal even if they were rolled out tommorow and worked perfectly.

</comment></comment></comment></comment></comment><comment><USER32> I don't know why more tech companies don't do apprenticeships straight out of highschool. You can pay a high school student with some programming experience a fraction of the salary of a college graduate and it probably doesn't take _that_ much longer to get them productive and they won't be saddled with student loan debt.

<comment><USER33> Poor return on investment given risks involved, you're better off offloading that cost of education/training to the individual and then just hiring them when they signal they are worthy of employment.

<comment><USER21> I have hired high school drop-outs and academics, both the best and the worst performers came in roughly equal proportions from both groups.

<comment><USER34> That is because the signal that college is supposed to provide has also been devalued to an extreme degree. It's simple - a bachelor's degree will soon be the equivalent of a high school diploma.

That is why for a lot of roles a motivated, smart high-school dropout is a better hire than a college student.

</comment></comment></comment></comment><comment><USER35> My bigger concern would be that the shelf life of a job seems to be getting shorter and shorter, and it is harder to transition careers with a trade degree than a more general 4 year degree. Not saying that people learn more / are better prepared by a 4 year degree, just that it is easier to get past the resume screening phase of a job hunt.

</comment><comment><USER36> The apocryphal story here is as that of the successful plumber. He works hard, learns his trade, and eventually starts his own plumbing business. This business employs two other plumbers. He also has a wife and three children. As they age, his business grows. By the time his children are 17, he employs twelve other plumbers and is worth over two million dollars.

He speaks to his sons about joining his business. All three decline. They want to go to the fancy, expensive college that will wipe out a substantial chunk of the two million dollars their father has worked for. He offers to give them paying jobs, right away, and promises they will eventually take over the business and help grow it to make more money. The four of them, he tells them, can grow the business to the point where they can all easily make an excellent living. The three sons persist.

So he gives in, and his three sons attend college. The first majors in poetry, the second in art history, and the third in dance. They go on to make a spotty living, as compared to the steady income of their father.

The father, as he grows older, wishes to pass some of his responsibility to a subordinate. By this point, his business employs fifty plumbers. With no son to inherit his business, he chooses his most loyal employee.

He dies some years later, leaving his sons each five hundred thousand dollars. All three spend it on an increased standard of living; it lasts each around seven years. After which they are again broke.

The plumber's subordinate, meanwhile, has grown the business to over one hundred employees. He was worth over fifteen million dollars, and was exploring the sale of the company to another, a deal that would likely net him roughly twenty million dollars personally. He lived happily ever after.

<comment><USER37> Some people just want to spend their time learning about Gothic art or about Persian poetry instead of fixing other people's plumbing, there's nothing wrong with that, quite the contrary.

And to add a further non-apocryphal anecdote: I'm probably never going to be reach (I'm approaching 40 and you kind of feel this sort of things) but were I to die tomorrow one of my best memories/things that happened in my life would be the fact that I got to appreciate the poetry of Hafez [1] because of my dad. He had a book of his in our library, I knew my dad liked his poetry so one day I just picked the book and I liked his poetry, too. It became a sort of a new bond between me and my dad that I can still feel now, 20+ years after I had first read Hafez's poems.

More to the point, not everything in life is about money.

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

<comment><USER36> Not a ding on poetry or art. More the fact that I have heard many accounts of boys giving up the family business to go pursue such things as a career.

More seriously, I've also heard of similar situations where the boy majors in management or something to that effect, gets out, and can't find a job (this was more common in 08-12). Tradesmen pretty much always have work.

<comment><USER25> 08-13 was fucking brutal for folks in construction in most parts of the country.

But then, us tech folks forget the dot com bubble when things are good too.

</comment></comment></comment></comment><comment><USER38> One of the nice things about the bootcamp movement is that it has legitimized vocational schooling for at least part of the software development industry.

I'm actually not a big fan of bootcamps, but most of the reason is that most of them talk a big game yet don't really open job opportunities. I am not at all opposed in principle.

<comment><USER39> Honestly my biggest shock coming out of college was 1) how unfamiliar I was with the toolset/processes in real world development and 2) how little onboarding on these topics I received from a major tech co. It probably didn't help that I was in a technical role tangential to "real" SWEs but honestly I think attending a bootcamp to round out my skills would have been a great idea.

</comment></comment><comment><USER40> I'm inclined to think that there ought to be a four year college degree that teaches a number of different trade skills as part of its core curriculum. A student in such a program might take history and mathematics courses similar to other college students, but would also learn concrete skills like welding, electrical wiring, HVAC, etc. The goal would be to have a graduate that might be able to find work in a variety of different trades, not just one particular one, and also provide graduates with some of the more traditional educational breadth associated with university.

University ought to make you a more rounded person, and a better citizen, and it ought to make you more employable, all three.

<comment><USER41> The trouble is, that graduate wouldn't be much more worthwhile than a fresh high-school grad. Taking a few welding courses won't make you employable for most jobs, it takes quite a lot of time to build up that skill. And while a bit of knowledge of other trades is always a good thing, it takes more than a few classes to prepare someone to work in HVAC. While the liberal-arts model of small amounts of exposure to different fields is good, more specialization and focus is needed.

For instance, I'm glad I took some economics classes in school, but in no way am I prepared to work in that field.

<comment><USER40> Further training might be required, but if there's a shortage of trained HVAC people, an employer might prefer to hire someone that already knows something about the field, and who happens to know a bunch of other stuff as well (because that indicates they're good at learning new stuff).

For the prospective employee, there's some advantage in not being deeply locked-in to one field in particular. Depending on economic circumstances, you might need to switch trades half-way through your career. The idea is that having some basic experience in a number of different skillsets will make a switch easier if you need to do that.

That's the theory anyway. I don't know whether it's really practical though.

</comment></comment></comment><comment><USER42> It's great that The Atlantic is finally putting out articles de-stigmatizing trade school. But, over the past several decades, The Atlantic has been a major contributor to the problem by churning out articles claiming how great and necessary college education is for all and how we should provide more subsidies and loans for higher education, without providing nearly as much attention to the utility of trade school. I'm sure countless Americans who would have been better off going to trade school instead of college have made that poorer decision as a result of The Alantic's editors and readers pushing too much for college degrees.

</comment><comment><USER43> Their argument is based on a very privileged person who had every option and chose the one he liked best.

That's great. Good for him.

But my concern is that people get pushed towards trades for a variety of bad reasons. It's not that trades are bad, but a lot of them are pretty brutally hard work. You end up destroying your body. In exchange you get a working environment that seems continually more and more worker hostile.

</comment><comment><USER44> What would happen if we posted jobs that said preference would be given to applicants without University degrees?

Then, still others disqualifying people with a master's or higher?

It would encourage people who were so exceptionally competent that they could survive in their fields without the degree, and filter anyone who cheated or faked credentials at the least. Fun thought experiment.

</comment><comment><USER45> The essential benefit of a quality education is the person has learned how to learn ... the Greeks nailed this by teaching the trivium : grammar, dialectic, and rhetoric ... armed with this educational foundation the person can listen, speak and write on any topic ... how ? because they have the skills to teach themselves ... this approach to education was used in the West for 2000 years - up until about 1900 ... outsourcing education to the government which has conflicting rewards and motivations has resulted in our current malaise

Time is precious so staying in mandatory education until a person is 18 is criminal and counterproductive for many children ... a resurgence of quality trade schools is happening and we as perspective employers need to step up and hire based on a real time assessment of those trivium qualities not on bloated automated parsing of CVs

</comment><comment><USER46> What stigma? Isn't the novelty of college wearing off by now? We have thousands of courses from various elite universities accessible online for free now, not to mention places like khan academy. If college is for broad knowledge then I'd argue it's no longer necessary. For a narrow field of experience a trade school or a condensed program should be all that you need. With automation ever increasing, kids will need to change their careers multiple times anyway. Why would you spend so much time in college on any one specialized field if there is a high chance you won't stay in that career path forever?

I have a toddler and I plan on letting him decide if he wants to go to college or not when time comes. I won't encourage or discourage it. Personally, college did very little for me as may be evident by my grammar, but I'm happpier for it.

</comment><comment><USER47> Let's face it, with more than a trillion dollars in student loan debt, any disturbance to US salaries could result in a student loan crisis. Higher education is only getting more expensive, and the bubble is going to burst when babies born during the great recession drop enrollment across the board in 2026. Hopefully, we can get to a more sensible place in terms of the distribution of degrees, and their types, we need to create a maximally effective society. I believe trade school is a big part of this and on an individual level, no one ever outsourced a plumber!

</comment><comment><USER48> From my perspective, the best aspect of undergraduate programs is that you get the chance to study lots of interesting things outside of your core discipline. That is harder to do once you are working in the field.

The worst aspect is the crippling debt, which cannot be discharged even in bankruptcy.

I went to a student loan web site recently and clicked on something like "discharge eligibility" leading to a form that said that you may be eligible to stop making payments if you have "become deceased." I'm glad they sorted that out.

</comment><comment><USER49> When I was born it was still possible to learn your trade (engineer, programmer) without too much onus if you didn't attend college. Without college now your options are strictly limited. This is one of the reasons why we have a real problem in the US: those who are capable and self/job taught but discriminated against and those who didn't have (self imposed or otherwise) difficulties during school years and were encouraged or raised for success.

</comment><comment><USER50> I think the days of college being a needed step in order to enter the workforce are ending. Unless you want to work in academia or need a specialized track of education like a career in the sciences, the days of the Ba opening doors are basically over. The corporate jobs that require a Ba are hardly worth the bother these days. Electricians and plumbers can make more without all the PC mind control crap in the corporations.

</comment><comment><USER51> If I had kids, I'd absolutely tell them to at least consider things like electrical work - from low-voltage network cabling for businesses to plain old electrical to specialized high-voltage stuff. Some of it may not be glamorous, but at the high end where you're doing diagnostics and fixes for problems, etc. I guarantee folks are making some money and while you might never get rich, you'll also probably always have work available.

</comment><comment><USER52> Everyone thinks more kids should go to trade school instead of college. Very few think _their own_ kids should go to trade school though

</comment><comment><USER53> I agree with the article's message. I have a lingering question though. The only thing that puzzled me is why Toren Reesman, the person being examined in the article, didn't opt to be an industrial designer. It's a very hands on major where you create physical things. Why didn't he like it? Was he even exposed to it?

</comment><comment><USER54> It's not just a stigma; school is a structural mechanism to create professional options, and it's nearly impossible to get back into once you leave it. You need recent letters of recommendation from a teacher/professor to get into a good program. Pure gatekeeping. Good luck, kid.

</comment><comment><USER55> What are some trades you can learn that have the highest salary floor and ceiling?

As a developer, I always feel lucky that our junior level salaries and architect++ level salaries are quite good

</comment><comment><USER56> I really don't understand this aversion to trade schools as a viable career path. The college-is-the-only-path-to-success is distinctly American and to me seems more like a narrative perpetuated so that parents feel justified paying 80k a year to send their kids to any back-alley no-name school in the states. I think it's pretty disgusting and exploitative.

</comment><comment><USER57> Many roles we classify as trades are becoming increasingly difficult to distinguish from the roles we typically associate with college education. This is partially due to the fact that they are increasingly technical, partially due to the fact that trade schools are offering training and certification in fields that were once exclusively in the purview of colleges, and partially due to the fact that our jobs are becoming increasingly cross-pollinated (mechanics using augmented reality, electricians building custom electronics, plumbers using GIS mapping, etc.).

This makes defining the idea of a "trade" much more difficult. I think for the purposes of clarity, we should find some sort of line that distinguishes trade education from liberal education. I think the best way to do that - and this is obviously just my opinion - is to classify as a trade any work that doesn't directly question and debate theory or, put another way, any work that almost exclusively implements theory. So in this definition, you would obviously include the existing trades, but it would also include things we typically associate with college education like nursing, most software developer roles, therapists, architects, most engineers, etc.

I think the reason most of those roles are task-oriented (performing a function according to outlined requirements and expectations) but still trained at the college level is that they arose from more theory-oriented areas of study but never made the shift away from college when they entered mainstream, non-theoretical application. For instance, computer science was born from mathematics, but at this point, the average software developer doesn't need a PhD level of understanding in math to do their job at all. Nursing, similarly, was born from specialized forms of medicine, which was always a university-level field, but in recent years is shifting into 2-year programs and a more trade-like structure at the entry-level.

When you think about things this way, it suddenly makes the stigma against trade school seem silly. Most of us are doing trade work anyway. I write software, my friend wires buildings, my other friend does plumbing. We are all trade workers because we are ultimately just implementing theory, not discussing and questioning it.

This should also inform how we judge education. I have a couple college degrees, but I do not have what I would call a liberal education. I have not trained extensively in philosophy, law, theology, art, etc. My education is exclusively applied topics like finance and software. When I judge the quality of my own education experience, I am using different criteria than I would for someone that has training in English, history, or law. Their standard for "success" in the context of education is primarily defined by whether or not they take a role of social leadership and influence in their community (education, politics, writing, etc). Mine is different because I judge my success on whether or not I deliver a completed product in the context of my technology job.

</comment><comment> xkcd-sucks TL;DR College-industry PR/advertising, made effective at scale by government subsidies in the 1950s, grew a social algae bloom aka economic bubble in academia and made some people richer.</comment>


Responsible Open Source Code Parenting - <AUTHOR> http://www.codinghorror.com/blog/archives/001317.html <comment><USER2> Atwood's blog post is an example of why I sometimes say that the main point of inventing "open source" was to turn the free software movement into the gratis labor movement.

Atwood's account of history here is misleading, judging by the mailing list he quotes. He is unfair to accuse Gruber of being "passive aggressive". I'll talk at the end about why the accusation is part of the gratis labor movement.

The discussions started in February of 2008. Joseph Lorenzo Hall asked if anyone has considered forking Markdown.pl "hopefully with Gruber's blessing".

In reply, Tomas Doran mentions that maintains a CPAN module called Text::Markdown and that he would like this to be the fork or, "if [he] can get John to agree and approve - [to] become the 'official' maintained version which is linked from daringfireball [Gruber's web site]."

In short, the question arose which we can paraphrase: "Would Gruber give his name to bless Text::Markdown as the successor project of his earlier work?"

Gruber responded fairly directly that he does not like the way Doran has maintained Text::Markup (and he gives technical reasons why). He asserts that he would not like that to become the 'official' version of Markup.

From that, Atwood somehow gets "passive aggressive".

Why is that a "gratis labor" play? Atwood asserts that Gruber now has a problem and that he would not have that problem if between 2004 and 2008 he had given away labor to manage an open source community. That Gruber did not give away such labor makes him a "negligent parent". Evidence of the bad parenting is to be found in Gruber's alleged bad attitude, visible in his "passive aggression".

We ought to ask what effects such pronouncements have, especially coming from a prominent blogger. I can think of two that are quite conceivable (and jive with my own experience): First, let's suppose that Gruber decides to apply for a job somewhere and happens to mention on his resume that he has some experience with free software or "open source" projects. Recruiters are often advised to scan for articles like Atwoods to weed out (or in) resumes. In this case, the accusation that Gruber is a "negligent parent" with a bad attitude hurts his chances of getting hired. It especially hurts that this accusation comes from Atwood. Second, consider what happens if Gruber wants now to start a project and solicit public volunteers. The first time he makes a project decision someone doesn't like, there's every chance that someone opposed will say something like "This is no different from how Gruber handled Markup.pl. We should just fork away from him and move on." Yes, that kind of thing really happens.

So the Atwood's of the world are creating and helping to enforce a set of social norms within the so-called "open source community" in which failing to give away labor upon demand, or standing up for a technical decision when it is inconvenient for others - these are grounds for marking and ostracism.

Quite absent from Atwood's hit piece is any consideration of _why_ Gruber was inactive on Markdown.pl for those years or _why_ declining to endorse Doran's fork might be quite appropriate. Atwood just wants to generate some smoke, it seems.

Turnabout is fair play? Perhaps Mr. Atwood should next answer the question "When did you stop beating your wife?" ( <http://en.wikipedia.org/wiki/Loaded_question> )

<comment><USER3> > From that, Atwood somehow gets "passive aggressive".

That confused me too. Exactly how is "I despise what you've done with Text::Markdown" passive?

<comment><USER4> that's the "aggressive" part. The passive part is doing nothing (in public, anyway) for five years.

</comment></comment></comment><comment><USER5> Not to be too harsh on Jeff Atwood - as he has decades more experience than myself. But does anyone else feel that this blog post is a bit out of line?

In short when John Gruber gives the code out under a BSD thatis a gift to whoever wants to use it - and it gives them near-complete freedom to use Markdown however they like. I don't see why on top of this gift he is in any way obliged to provide 'leadership' or 'direction'. I don't really see why its even required. Anybody can feel free to come in, fork the project with their own modifications - and if its popular then they can be the leader or their fork.

<comment><USER6> When you release code, there's an implicit commitment of improving and maintaining it, or at least finding someone who will when you can't anymore, unless you say otherwise from the start.

The attention and effort others invest in your project needs to be respected. You _do_ have an ethical obligation to follow through on the project, at least in my view.

Feeling no obligation towards your user base just because one of the price dimensions (money) happens to be 0 is an irresponsible attitude.

<comment><USER7> Have to disagree. Releasing code doesn't imply any obligation to that code. If it did, the volume of open source code out there would be a fraction of what it is right now.

People are constantly changing directions, and constantly trying out new things which may or may not be useful to them in the future. We're all better off if that code gets released. In turn, we can't expect people to support code they may no longer use, or may not have ever really cared about in the first place.

It should be clear that running an open source project is something completely different. If you make an attempt to _start_ a community, you probably should keep up with that community, or at least responsibly exit it. But people usually build communities around things that are really important to them, or that they have an ulterior motive for advocating (not necessarily a bad motive, just one beyond pure open source).

From where I'm sitting, if Gruber isn't adding anything to the community, he should have been made irrelevant by that community.

<comment><USER6> You're right that there needs to be a distinction between community projects and loose pieces of code. They're completely different in nature, and that's why it's so important to make clear which is which.

</comment></comment></comment></comment><comment><USER8> The idea that since markdown hasn't done anything in years its somehow being stewarded improperly is a bit foolish. Look at Gruber's vision statement, he wanted to make an easy-to-read easy-to-write markup.

He did it, it is done, it's called markdown. If Atwood had his way Gruber would have spent the last 4 years filling it up with features and today we would be reading a post about how Markdown went from slim and sleek to fat and bloated.

</comment><comment><USER9> Markdown is _not_ John Gruber's baby, it is an open source project. Stop anthropomorphizing everything in order to make a cheap point.

<comment><USER10> Open source projects are usually someones 'baby', democracy is nice and all but experience suggests that open source does best with an 'owner / leader', if the owner/leader isnt committed, then the project flounders until someone else takes their place.

a highly visible blog post criticising gruber isnt the way to move forward though, email your issues offline, maybe offer to take 'leadership' of it if gruber is too busy, and if it seems gruber wont relinquish control, but wont help the project either, then fork.

the cathedral and the bazaar is a pretty interesting read on the politics of open source

<comment><USER11> Open source projects are not someone's baby unless someone claims them as such and takes their development personally. Having a leader on a project is nice, but not all source code needs a leader, and not all projects flounder without a leader. And just because development is stagnant on a popular project doesn't mean that it's floundering either.

It seems that the "official" version is 1.0.1 and is available as a zip file on daringfireball. The license file doesn't say anything about Gruber being against someone else maintaining it, or forking it, or whatever. Nothing is stopping anyone, or everyone, from importing the code into github and people maintaining it there. Considering the recent comments on this submission <http://news.ycombinator.com/item?id=1017698> it only makes sense to put it on github, where everyone can contribute or fork _and_ make it easy for control of the _conceptually_ "official" version change hands.

</comment></comment></comment><comment><USER12> "Item #3, the conversion of returns to linebreaks, is somewhat more debatable. I'm on the fence on that one, but I do believe it's significant enough to warrant an explicit choice either way."

Really?

Has anyone ever typed stuff, hit enter once, then typed more stuff, ever _not_ intended a line break?

"Oh no, I kept hitting Enter between words instead of using the space-bar! If only pressing Enter was interpreted as a space character unless it was prefixed by four spaces. What a world! What a world!"

<comment><USER13> I'm not sure of the origin of the convention, but using two newlines consistently to mark new paragraphs (rather than indentation or just one newline) seems awfully common to me in technical writing. So the Markdown rule has always made sense to me. Or to put it another way, it was immediately natural to do it that way.

 _Edit_ : to answer the question of the comment below this, poems need to be handled specially in Markdown as in HTML. It's an issue more generally, and I think that the standard solution is
 for the poem as a whole and
 (or
 depending on your markup flavor preference) for the lines. It's a known thing: <http://blog.signified.com.au/a-poem-element-for-html5/>

<comment><USER3> But what if you want a newline for a reason other than for paragraphs, like a poem or something?

<comment><USER14> Then you end the line in two spaces.

<comment><USER15> How obvious!

</comment></comment></comment></comment></comment><comment><USER16> I'm all for the first 2 proposed changes. They would very welcome by almost everyone. But that 3rd idea.... oh boy.

> It should be a standard configurable option in every Markdown implementation > that you can switch on or off depending on the intended audience.

I hope Atwood never actually tries this. Markdown should not have any configurable options. Any attempts to augment Markdown like this should be clearly labeled as such. One way or the other the spec should make a single choice and stick to it. If someone wants something different they should create something different and use it, rather than confuse people who use "Markdown" on several sites and have to remember which options each has. ... yuck!

</comment><comment><USER17> 1\. This article is a bit too personal, 100% agree on that.

2\. The best thing Gruber could do is pass on "ownership" of the project to someone else. He is under no obligation to do so, but it seems like that would essentially solve the problem, while requiring almost no effort from him.

<comment><USER18> What's the "problem" here? The bugs Atwood is talking about are minor, and their solutions don't require drastic incompatible changes to Markdown-the- language.

The issue here is that Gruber seems to be satisfied with Markdown-the- language, and Atwood (and many others) aren't.

Obviously, Atwood could just create a new markup language derived from Markdown (like MultiMarkdown). But then he can't call it Markdown. He wants the best of both worlds, and he's not going to get it. And that's his problem, not ours.

<comment><USER19> The underscore bug sounds minor, but is not.

The problem with this bug is you can start with something that works just as you would expect, like "HTTP_PROXY is a CGI variable".

Now you go back and, edit the sentence: "HTTP_PROXY and REQUEST_METHOD are CGI variables". Suddenly, and in violation of Least Suprise, markdown spits out text that has a em tag between the two underscores.

So, in practice, you have to remember to always escape underscores, so you start with. "HTTP\\_PROXY is a CGI variable" and never run into the problem.

Except now you have to keep this arbitrary rule in your head, and remember to do it all the time, and you end up with something that does not look like a plain text email; it's obviously marked up now. Which rather defeats the point of markdown.

<comment><USER18> The change required to fix that glitch is so _not_ drastic that many (most?) Markdown implementations have silently applied it already.

</comment></comment></comment></comment><comment><USER20> The way that Atwood quotes the mailing list is irresponsible.

Please read this message: [http://six.pairlist.net/pipermail/markdown- discuss/2008-Marc...](http://six.pairlist.net/pipermail/markdown- discuss/2008-March/001188.html)

1) Gruber states that he doesn't have time to update Markdown. 2) Gruber states that any fork of Markdown should be clearly stated as such.

End of story.

Gruber could respond with a post titled "Responsible Forking". Hopefully, Gruber just ignores Atwood and spends his time and attention on stuff that actually matters.

</comment><comment><USER21> Jeff wants Markdown to make a bunch of backward-incompatible changes that would change the interpretation of existing Markdown documents. It doesn't matter if Jeff is right that the new language would be better than Markdown; changing the spec in this way would still be an act of vandalism, because it scribbles all over the pages already written in Markdown.

I think Gruber is providing admirable leadership and direction by not making backwards-incompatible changes to the spec and smacking down people who want to do so.

</comment><comment><USER22> I don't understand why the term "fork" didn't appear in Atwood's article.

It's the simplest solution to his problem.

<comment><USER23> It did appear.

<comment><USER22> Only in a quoted passage, and Atwood didn't engage with that portion of the quote.

</comment></comment></comment><comment><USER13> This isn't directly relevant, but if you use Markdown a lot, I highly recommend David Parson's Discount (a Markdown implementation in C). (Parsons is also active on the Markdown mail list, which is helpful.)

<http://www.pell.portland.or.us/~orc/Code/discount/>

<comment><USER24> I'll put in a plug for Pandoc here:

<http://johnmacfarlane.net/pandoc/>

It's written in Haskell, it uses a real parser, it fixes several bugs in the spec, and it can output to nearly any format imaginable. What else could you want?

<comment><USER25> I found this really handy (from PLT scheme)

<http://github.com/toyvo/libpandoc>

      "a build configuration for Pandoc that produces a standalone C-callable system library"

</comment></comment></comment><comment><USER26> This is the nature of free software and a big part of why free software is great. Sometimes a maintainer can no longer work on a project for a variety of reasons. A free license makes it pretty easy for someone to fork the project and take over development.

It would be nice if John Gruber opened up the contribution process or officially handed off development to someone else, but he's under no obligation to do so. We're not paying him. He probably started Markdown for his own purposes and was kind enough to release it under a free license. It's totally fine if he doesn't want to continue work on it, because I can easily take his code, check it into GitHub, and start my own fork.</comment>


Comments more like slander than libel - <AUTHOR> http://www.mathewingram.com/work/2008/09/04/comments-more-like-slander-than-libel/

<comment><USER2> One wrinkle in calling defamatory online comments slander rather than libel is that even though the comment is made offhand and then the discussion "moves on" (not formally thought out as a "publication"), there is still a written record left behind. So in that respect, it is more like libel, unless the record left behind is considered more like a tape/video recording than a written account.

<comment><USER3> It's true that there is a permanent record, but the judge's ruling focused on how people perceive the comments. In this case, consider two bloggers Alice and Betty. If Alice writes something and Betty posts a comment on Alice's blog, the judge eems to be saying this is more casual than if Betty posts her reply on her own blog.

It will be fun figuring out where "Ask HN," Twitter, and Tumblr fit in all of this.</comment></comment>


Well designed responsive site from Microsoft - <AUTHOR> http://www.microsoft.com/Surface/

<comment><USER2> And is there anything special about it (except the fact that it has been done my M$)?

<comment><AUTHOR> It's light and just well done. Good responsive sites are still rare.</comment></comment>


Silicon: C++14 web framework - <AUTHOR> http://siliconframework.org/blog/silicon-0-1.html <comment><USER2> I've seen many web frameworks where the design is centered around URL+Method dispatching (routing). Many frameworks also play overly clever type system tricks in the dispatching code, just so the intro looks really short and sweet.

Having developed two or three nontrivial web applications myself, I don't think routing is a substantial part of web application design. A framework which focuses on routing will probably be suitable mostly for small one-off applications. This approach has in fact lead to significant boilerplate in my routing endpoints. The boilerplate would probably not have amassed so naturally if I had first implemented the actual functionality as data or streaming interfaces.

If the functionality is finished, a custom integration with HTTP should not be more painful then integrating with a framework. Furthermore, the implementation can be accessed with an interface other than HTTP (testing, internal scripts...)

</comment><comment><USER3> The hello world example takes 2.5s to compile on a 2.6GHz i7 + SSD. Adding 9 new routes bumps the compile time to 4.5s. 30 routes = 10s compile time. Seems like this would get out of hand quickly for any moderately complex project.

Other than having to deal with complex templates, I personally wouldn't choose this for web development because the advantages of the strongly typed routing are dwarfed by the dangers of writing C++, especially when alternatives like Rust exist today if you really need the low level performance advantages.

<comment><USER4> Indeed, compile time is a currently a problem for API with a large number of routes. It'll probably get better with the C++17 Module TS.

What do you mean by the dangers of writing C++?

<comment><USER3> I mean the memory safety pitfalls of C and C++, mostly.

<comment><USER4> You can write Silicon APIs without the use of any pointer, which save you from most of the segv you can get with these languages.

</comment></comment></comment></comment><comment><USER5> That's how the operator overloading abuse looks like.

</comment><comment><USER4> Author here. Questions are welcome.

<comment><USER3> 1\. Why C++?

2\. Why the complex/unfamiliar DSL?

3\. The Boost dependency (through iod) is not documented on the website. Might want to mention that.

<comment><USER4> Here are my answers on the reddit discussion:

1\. Why C++?

There is advantages (and disavantages) of using C++. There is situations where loosely typed languages may be better but there is certainly lots of case where C++ has many advantages. The problem is that today, it is pretty hard to write web APIs in C++, this is why is not widely used, despite its performances.

Hopefully, the standard finalized C++14 and I jumped on this opportunity to take advantage of those new features (lambda, auto, variadic templates,...) to write a zero-cost and robust web framework. Zero-cost because most of the framework stack goes away at compile time, and robust because its static paradigm enables the compile to detect most of the errors.

2\. Why the complex/unfamiliar DSL?

I found that in some case it really simplify the code and as long as the new semantics is coherent, the user can get used to it quickly. I could have chosen a non DSL approach, but it would have been more verbose, harder to digest, and less similar to a real URL:

DSL: GET / _hello / _world / _id[int()]

Non DSL: GET.path(_hello).path(_world).url_param(_id, int())

3\. The Boost dependency (through iod) is not documented on the website. Might want to mention that.

Thanks for noticing, I'll mention it.

<comment><USER2> > The problem is that today, it is pretty hard to write web APIs in C++

What I think is needed is mainly a library for parsing and encoding of HTTP requests and responses (I don't know what there is for C/C++). But in most cases the CGI interface is good enough.

I think the model where some framework contains the main loop which drives the application is deeply flawed because the implementation will strongly depend on the framework.

The hardest part of creating an API is the _design_. This won't just go away with yet another framework.

<comment><USER6> > _What I think is needed is mainly a library for parsing and encoding of HTTP > requests and responses (I don 't know what there is for C/C++)_

[https://github.com/nodejs/http-parser](https://github.com/nodejs/http-parser)

On the parser side, that's about as widely used/polished as you could hope to see.</comment></comment></comment></comment></comment>


Is Tiny Seesmic Going to Take Over the World? - <AUTHOR> http://www.readwriteweb.com/archives/seesmic_growth.php <comment><USER2> With video blogging/commenting? Not in a thousand years. It's neither an useful nor a fun activity, so the market will be small. Furthermore, the business model is classic 'web 2.0' hype.

</comment><comment><USER3> Anyone can be cool if they limit themselves solely to 2000 users among the digerati. True test will be if they can scale.</comment>


Redditor turned laptop screen into an external monitor - <AUTHOR> http://www.reddit.com/r/DIY/comments/2hbmaz/i_turned_my_laptop_screen_into_an_external_monitor/

<comment><USER2> Link to the actual story rather than the reddit discussion:

[http://imgur.com/a/Sqdeh#0](http://imgur.com/a/Sqdeh#0)</comment>


Show HN: Dead simple Hacker News reader for iOS - <AUTHOR> http://brushedtype.co <comment><USER2> Shameless plug XD

My app MiniHack dose all.

Nested comments, collapsible comment thread, login to upvote, reply to comment, one tap to open story or comments. Share to Pocket, Instapaper, Pinboard, Evernote, etc. Search hacker news, view the best of __pages, ask, new, jobs. Instapaper and Readability mobilizer support, and more.

And I am working on the new iOS 7 update right now, including UI redesign, a new slick dark theme, better sharing (pinboard tags, evernote auto complete), and more.

[https://itunes.apple.com/hk/app/minihack-for-hacker- news/id6...](https://itunes.apple.com/hk/app/minihack-for-hacker- news/id631108846?mt=8)

<comment><USER3> I love MiniHack. I tried at least half a dozen HN apps before finding it. It's by far my favorite. The collapsible threads feature can come in really handy when faced with a really long thread of comments that you're not interested in.

<comment><USER4> This was one of my favorites. Try out my comments system as well--I collapse everything by default, because I found it's easier to tap to expand than it is to scroll forever. It seems odd, but it works really well for me. appsto.re/i6xC4GD

</comment></comment></comment><comment><USER5> I'm still trying to figure out which Hacker News reader is a labor-of-love for the developer, as opposed to a coding exercise to see if they can make a few bucks which is abandoned quickly when the answer is "no".

<comment><USER6> Mine's definitely a labor of love - I use it daily, and hardly ever use the browser version unless I want to comment on something. I'm working on adding commenting/submitting/voting at the moment, and should have that done shortly. Personally, I think it's the most beautiful HN reader on the App Store, but I may be biased. It's free too.

[https://itunes.apple.com/us/app/news- yc/id592893508?mt=8](https://itunes.apple.com/us/app/news-yc/id592893508?mt=8)

EDIT: All of the production code is available on Github as well.

[https://github.com/bennyguitar/News-YC--- iPhone](https://github.com/bennyguitar/News-YC---iPhone)

<comment><USER7> Thank you for your client. I also use it every day and have even contributed to it. I also never use the browser version on my phone anymore.

<comment><USER6> Thanks for your contribution, I'm glad you love it! I can't wait to get user management type stuff on there so I never have to open the browser version again.

</comment></comment></comment></comment><comment><USER8> I can't really figure out the functionality of this, so I'm not going to buy it to try it out. If you can't comment on it, then it's worth checking out [http://hn.premii.com/](http://hn.premii.com/) . It's a web, based app, but if you save it to your home screen it removes the Safari chrome and looks and works as a standalone app. You can look at its source here: [https://github.com/premii/hn](https://github.com/premii/hn)

If you can comment on this, it should be interesting. I really wish you showed more of the functionality of the app though.

<comment><USER9> Just got approval notice. hn.premii.com is available in app store. Going to submit new binary with share functionality tonight. [https://itunes.apple.com/us/app/hacker-news- yc/id713733435?l...](https://itunes.apple.com/us/app/hacker-news- yc/id713733435?ls=1&mt=8)

<comment><USER8> Oh awesome! Are you just wrapping the mobile site and utilizing iOS APIs or are you doing anything more? with this version?

<comment><USER9> Wrapping the mobile site and using share/browser iOS API

</comment></comment></comment></comment><comment><USER10> For a paid app, the lack of basic core features (i.e. to simply view comments) indicates a lot of work needs to be done. The existing free readers out there are a bit more capable.

I ended up buying it since I'm still looking for a good HN reader out there that does all of: indenting comment threads, gives you the choice of browsing directly to the story without going through comments, and displaying key story information beside the story, such as the number of votes.

<comment><AUTHOR> Hey there, I'm the developer of the app.

Firstly, thanks for buying the app! I wasn't personally expecting this much response, it was meant to be a read-only app, but I personally ended up missing comments as well. I understand your concern. I've good news though : we started the work on implementing comments :)

<comment><USER11> I just bought it, because I like where you are going with the design.

However, I would echo the need for comment support.

Check out how [http://hn.premii.com/](http://hn.premii.com/) does comments, I find that quite readable compared to news:yc.

The ability to log in and reply to comments would round out the use case that I used to use other apps for.

</comment></comment></comment><comment><USER12> I just love [http://cheeaun.github.io/hackerweb/](http://cheeaun.github.io/hackerweb/) on the iPhone.

<comment><USER13> Public service announcement - now updated for iOS 7! I stopped using it when I upgraded (moved to hn.premii.com) as it felt... "jarring".

<comment><USER13> Edit: sorry, I was wrong; the new look I saw is actually the web browser look (tested on Chrome/desktop), and it still looks the same on iOS.

</comment></comment></comment><comment><USER14> Looks nice from what I can see but £1.49 is too much to buy just to try it out (at least for me).

The major pain point with the current viewer I use is difficult-to-read comment threads. I can't see any screenshots of comment threads in your app. Are they collapsible? Is the hierarchy clear?

Can you post comments yourself in-app? I remember seeing another app at the same price point that did that.

Good luck anyway!

<comment><AUTHOR> Hey there, developer of the app here.

The app doesn't support comments for now, but we're working on implementing it. I wasn't personally expecting this much response, it was meant to be a read-only, simple app but I ended up missing comments in my own personal usage too. Don't worry, they're in the works! :)

Sorry for the confusion! If you don't want to wait, news:yc ([http://newsyc.me/](http://newsyc.me/)) is an awesome app that does comments already!

</comment></comment><comment><AUTHOR> Hey Hacker News, developer of the app here.

Thanks for the awesome response! The most requested feature is comments by far, totally understand it. Comments are a planned feature, and we intend to implement them as soon as we can. For now though the app is focused deeply on saving posts and links, so Hack Later still might be worth checking out, if you haven't already.

Also, promo codes are fun.

W4LEYM7ENYLN AL43JW7JWJXY 6NM77R6X3KLF KTXTY46XRM7R 4Y63MWJMAMNT

Enjoy!

<comment><USER15> Thanks! Pocket integration is definite enough for me to convert. I will wait for the update on comment feature.

<comment><AUTHOR> Thanks! We love Pocket :)

</comment></comment></comment><comment><USER16> it does not display comments. I bought it because i enjoyed the look, but looks like until they get comments, i doubt many will install.

<comment><USER16> It does have pocket integration though. So in summary, a beautiful UI to read HN articles with pocket integration for read later, but no access to comments

<comment><AUTHOR> This was the exact aim of the app when we started making it. But with all the requests about comments, we're definitely thinking it ;)

</comment></comment></comment><comment><USER17> This app looks great, I've tried / bought just about every HN client looking to replace the one I was using for iOS 6 that hasn't updated, but they all look or function terribly. This one looks amazing, all it needs is comments. I've bought it and will happily use it while I wait for those features. Thanks for the work!

</comment><comment><USER4> A shameless plug, but my app is brand new, free, and shows comments legibly. But the #1 feature: background refresh.

It uses new APIs in iOS 7 to preload the front page _before_ you open it.

Pivit - [https://itunes.apple.com/us/app/pivit/id705715915](https://itunes.apple.com/us/app/pivit/id705715915)

<comment><USER18> The app will not preload every time new items come in. This is a common misconception about iOS 7. iOS 7 schedules these apps to run very infrequently to save battery. Some times it will take many hours to do a background refresh.

<comment><USER4> I've got a few apps built using this API, so I can chime in. It is definitely based on usage patterns--the more you use a particular app, the more often it will refresh. It's also certainly based on battery life at the time, but also the requirements of the app.

With Pivit, since it's such a compact fetch, it'll happen more frequently than if you were, for instance, downloading photos. I check HN a lot, so for me, the app is always up to date. It does take a bit of learning time for the OS to know your patterns, but it is well worth it--it's really a great new API.

<comment><USER18> Oh wow. It's cool that the OS is actually smart to optimise it that way.

</comment></comment></comment></comment><comment><USER19> £1.49 for a very basic HN reader is a bit premature. I like that it is iOS7 designed though.

A couple of suggestions:

\- Comments \- Instapaper or similar

<comment><AUTHOR> Hey, I noted your suggestions down. Thanks!

Comments are definitely something planned.

<comment><USER19> I just downloaded it, I really like the look and feel. Please add a search feature as well and you have the perfect HN reader ;-)

<comment><AUTHOR> Woo, thanks for the nice words! Search as in filtering the hot feed or site wide?

<comment><USER19> Just like hnsearch.com

</comment></comment></comment></comment></comment><comment><USER20> Shameless plug:

Hacker News for Windows Phone: [http://www.windowsphone.com/en- us/store/app/hacker-news/a527...](http://www.windowsphone.com/en- us/store/app/hacker-news/a5275a3f-6611-48f6-bd62-7382eda4c028)

</comment><comment><USER21> I like it, unfortunately it's a little buggy scrolling up and down the feed. It's a shame it cost me a couple bucks to find that out but whatever I can do to support improvements!

Looks great!!

<comment><USER22> Thanks! I'm the designer of the app. We'd love to hear any feedback you have, and we're taking everything people say on board for future releases. firstname.lastname@example.com for any feedback or support!

</comment></comment><comment><USER23> Since HN doesn't have a _native_ API, it's real difficult to work on applications like this. Comments always seem to cause issues for apps, how do you handle them?

<comment><USER6> My app, [https://itunes.apple.com/us/app/news- yc/id592893508?mt=8](https://itunes.apple.com/us/app/news- yc/id592893508?mt=8), does comments pretty darn well. Let me know what you think!

</comment></comment><comment><USER24> Now is the perfect time to launch this, because the other HN reader is having trouble displaying comments. But you need to show us how comments are handled in your app.

<comment><USER4> Comments aren't handled in this app. Try appsto.re/i6xC4GD -- best threading out there.

<comment><USER24> Hm, that's a nice-looking app, but news:yc's interface seems superior to me.

</comment></comment></comment><comment><USER25> This app is terrible.

Load it up, blank screen.

Pull to refresh, says 'Error Loading'.

Try again, and then just crashes.

Have some respect for your customers and test properly before you release. What a waste of 1.99

</comment><comment><USER26> Very cool idea Mert! I purchased without hesitating. Would you consider adding Instapaper integration for save list? -alp

<comment><USER22> Thanks for buying the app! We've got Instapaper support planned and hopefully coming soon!

<comment><USER27> Awesome. would really love to see instapaper

</comment></comment></comment><comment><USER28> Looks really nice. Please open source it and let the community improve it! I would love to add simple comments :)

<comment><AUTHOR> Hey, thanks! That's @edwellbrook rocking the design. We had a conversation about open sourcing it but we ended up choosing not to, dealing with bad, bad guys just cloning the repo & submitting to App Store looks hard. :(

Comments are planned though!

</comment></comment><comment><USER29> I want an app that will save posts/links. And let me comment.

Do any of them do that?

<comment><USER22> Currently the app doesn't support comments, although we have this planned and intend to implement them very soon. For now though the app is focused deeply on saving posts and links, so Hack Later still might be worth checking out, if you haven't already.

</comment></comment><comment><USER30> Comment are essential, would buy with comments.

<comment><AUTHOR> Hey there, we're planning on adding comments in the near future.

</comment></comment><comment><USER31> Someone make exactly the same, for android.

<comment><USER32> Check out [https://play.google.com/store/apps/details?id=com.premii.hn](https://play.google.com/store/apps/details?id=com.premii.hn) , it's a fairly clean version for Android.

</comment></comment><comment><USER13> mertdumenci: what's the typeface, and were you influenced in choosing it by anything (Vesper?)

<comment><USER22> Hey, I'm the designer of Hack Later. The font we went with is Avenir, a font natively available on iOS. Other apps we intend to release under the BrushedType name will also use this font. We're both quite fond of it, and it's nice to stray from Helvetica once in a while.

<comment><USER4> Avenir is nice. I need to look more into how to use fonts other than Helvetica with Text Kit automatic font resizing. For Pivit that was one of the must-have features--the ability for those who like larger/smaller fonts to be able to change them system-wide. I just recently learned that this is also available with custom fonts.

</comment></comment></comment><comment><USER33> Can you view comments with this app?

<comment><AUTHOR> Not for now, sorry :( We're working on it, though!</comment></comment>


Black Holes Not Effected By Dark Matter, Say Astrophysicists  - <AUTHOR> http://www.technologyreview.com/blog/arxiv/26316/ <comment><USER2> I wonder whether an editor saw this.

"effected"?!

"6 light years across (about the size of the orbit of Neptune)"?!

I'll check back when adult supervision does its job... Chances are no black hole will change measurably before that.</comment>


A Fare Cache in a Sharded Data Cluster - <AUTHOR> https://hipmunk.github.io/posts/2017/Aug/16/a-fare-cache-in-a-sharded-data-cluster/ <comment><USER2> Really great write up and I'm a huge fan of Citus (and love the fact that they released it as an open source extension)

However for your particular use case (you have one compound lookup key that never changes and a price associated with it) wouldn't it be simpler and faster to put everything in a KV store like Redis or even consider using something like FoundationDB?</comment>


A history of Tetris randomizers (2018) - <AUTHOR> https://simon.lc/the-history-of-tetris-randomizers <comment><USER2> One randomizer I left out of this article (for the sake of brevity) is the Game Boy's version. It has much more bias as detailed in the post below. According to The Tetris Company founder it was also a last minute addition to the game. When they were testing a late build by Nintendo, it had a fixed sequence or something like that. So Nintendo flew in some devs to where Henk was, and over the weekend they programmed this new randomizer.

[https://tetrisconcept.net/threads/randomizer- theory.512/page...](https://tetrisconcept.net/threads/randomizer- theory.512/page-9#post-51035)

<comment><USER3> Oh yikes it's not left/right symmetric!

Do you have a direct description of the algorithm? Extracting it from those forum posts seems a bit difficult.

<comment><USER4> [http://harddrop.com/wiki/Tetris_(Game_Boy)#Randomizer](http://harddrop.com/wiki/Tetris_\(Game_Boy\)#Randomizer)

<comment><USER3> Thanks!

To repeat it here: we assign each piece a piece a vector of 3 bits; thinking of these vectors as numbers from 0 to 7 (or rather 0 to 6, since 111 is unused), the pieces go in the order (L, J, I, O, Z, S, T).

Note that this assignment is _not_ left-right symmetric; there's no particular relation between a piece and its mirror image. Like, L is 000, but J is 001; and Z is 100, but S is 101. That seems like kind of a dumb mistake -- it would've been easy enough to maintain symmetry. (As just one example among the 24 possible ways (assuming 111 must be kept unused), one could have used instead (O,J,I,Z,L,T,S).)

Anyway, each turn you pick one of these at random, and you look at the last two pieces; let's call these previous_1 and previous_2.

If -- considering pieces as their sets of 1-bits -- we have both that previous_1 is a subset of previous_2, _and_ that the picked piece is a subset of previous_2 -- we reroll. After the third try we just take the piece no matter what.

Note that this means that there are some weird interactions between the previous two pieces. Like, if previous_1 is _not_ a subset of previous_2, then we won't reroll no matter what piece we picked, so the new piece will be totally random. But if it is, then we may or may not reroll.

Definitely pretty weird. Have to wonder how on earth this was thought up...

</comment></comment></comment></comment><comment><USER5> Not listed here is Tetris the Grandmaster 2. TGM2 hits the sweet spot between tgm1 and tgm3 in terms of predictability from the perspective of many fans. It increases the number of rolls to avoid dealing a piece in the 4-piece long history from 4 to 6. Essentially, it decreases the odds of a "history duplicate" from ~10% to 3%. With a 1 piece preview, it encourages a very unique type of planning, where you know what piece you need to prepare for immediately (at high speeds this means holding inputs before it even enters the play field), and also know with almost certainty the next piece is going to be 1 of 4 pieces. Unlike bag systems where the duplicate chance is 2% every 7 pieces here it's only 1% constantly, and the chance of drought is also much lower than bag. The chance of a 10 piece drought for I pieces is almost 0, but you're basically guaranteed to have a random unpleasant drought of 11-13 pieces in a long enough bag7 game. This strongly encourages you to use the hold mechanic strategically for safety, breaking flow and speed.

This may all seem academic, and it is very important for the type of high speed games tgm is, but it really is the biggest thing I miss playing modern tetris games. Barring other gimmicks, you build and plan the exact same way in every modern tetris game. With the ever present hold mechanic to switch out a piece, you don't even need multiple piece previews that some new games give you. Consider, after playing 3 pieces, you know with certainty the next 4. With the hold plus 1 piece preview, you spend over half your time in the second half of the bag knowing the next three pieces.

<comment><USER6> TGM2 doesn't have a hold.

<comment><USER2> In the first paragraph they are talking about IRS, not holding pieces.

</comment></comment></comment><comment><USER7> Maybe not an "official" tetris game, but the the BasTet randomizer is worth a mention - it tries to give you the worst possible block at all times. >:)

[http://fph.altervista.org/prog/bastet.html](http://fph.altervista.org/prog/bastet.html)

<comment><USER8> Ohh, that's evil :D

<comment><USER9> Bastet's randomizer can be defeated by creating a huge overhang near the top of the playfield, then building your actual stack far below it. The evaluation algorithm works by trying to drop every piece in every horizontal position, and choosing the piece that fits the worst, but it only tries dropping pieces straight down and doesn't take sliding or navigating underneath overhangs into account.

<comment><USER10> Hatetris, then: [https://qntm.org/files/hatetris/hatetris.html](https://qntm.org/files/hatetris/hatetris.html)

</comment></comment></comment></comment><comment><USER11> There is actually a "Tetris Standard" written by Colin Fahey which mandates that tetrominoes should be drawn from a Bernoulli distribution. [https://www.colinfahey.com/tetris/](https://www.colinfahey.com/tetris/)

"When a piece is spawned, the type of piece is selected using the following algorithm: pieceIndex = 1 + (randomInteger % 7); // 1..7 Because there is a constant p (= 1/7) chance of selecting a specific kind of piece, and all pieces of the same type are indistinguishable, the probability of having exactly k pieces of a specific type after n trials follows a Binomial distribution"

However, the standard isn't adopted by all. A competing set of guidelines says that the tetrominoes should be generated using the bag of 7 system described in the article. [https://tetris.wiki/Tetris_Guideline](https://tetris.wiki/Tetris_Guideline)

<comment><USER12> The 7 in a bag is the official current standing mandated by TTC (The Tetris Company) and all new Tetris games must adhere to this.

The reason is quite simple, it is absolutely impossible to hit a drought. The maximum number of same pieces you can get in a row is two (unless you count holding a piece) and at worst if you're waiting for a piece is that you might get 12 pieces inbetween. This makes the game quite a bit more predictable and more beginner friendly which is what TTC is going for apparently.

In say, classic Tetris (NES) it wasn't uncommon of having a drought for over 20 pieces if not even more.

The 7 in a bag enables a lot of different kinds of builds (like All-clears or the Albatross Special and its' variations) which suit PVP Tetris games like Tetris 99 quite well but it's kinda boring when you're playing solo against the game.

I personally enjoy the randomizer in Tetris the Absolute: The Grandmaster 2 PLUS (TAP+) and Tetris the Grandmaster 3 Terror Instinct (TGM Ti) because it definitely had an element of surprise without screwing you totally over.

I've never actually done the math, but it would be interesting to calculate the success rates of different build strategies in the 7 in a bag games. Anyways, I'm rambling on. Tetris just always warms my heart :)

<comment><USER13> > more beginner friendly

Not necessarily beginner friendly, but more importantly... competitive friendly. Since there's a high amount of determinism between bags, Tetris is a great competitive game.

As such, Tetris can be played in an arcade setting without worrying about "bad luck" messing with one player or the other. This has led to the development of many good multiplayer Tetris games, such as Tetris Friends, Tetris Ultimate, Puyo Puyo Tetris, and Tetris 99.

<comment><USER14> Wouldn't that problem be solved by simply setting both players seed value to the same?

I believe the order of balls is the same for both players in bust-a-move, but still the boards will quickly diverge a lot.

<comment><USER13> > Wouldn't that problem be solved by simply setting both players seed value to > the same?

Lets say drop 100 through 110 were unlucky SZSZSZSZ pattern. The faster player will come across the "unfortunate" pattern first and then lose. In contrast, the slower player will only be on drop 80.

The bag system ensures that high-speed play is possible for both players, and favors the faster player in all cases. A true randomized system would have "unfortunate" patterns which will eventually kill the faster player.

\</comment></comment></comment></comment></comment><comment>

With that being said: Tetris Classic competitions seed the two competitors with the same pattern. But similarly, Tetris Classic has no concept of "garbage damage".

In Tetris Friends / Puyo Puyo Tetris / etc. etc, you "damage" the opponent by doing a Tetris, or a T-spin (a complicated maneuver). Its actually a very good, very well balanced game (although some would argue that "combos" are a bit strong in the current iteration of the damage formula).

<comment><USER15> > Lets say drop 100 through 110 were unlucky SZSZSZSZ pattern. The faster > player will come across the "unfortunate" pattern first and then lose. In > contrast, the slower player will only be on drop 80.

Does the faster player get nothing in return for their speed advantage? If so, then shouldn't they just play slower? If not, then aren't they compensated fairly for the risk of running into a difficult sequence earlier in the game?

<comment><USER13> > Does the faster player get nothing in return for their speed advantage?

In Guidelines Tetris, you only deal damage if you do a sufficiently complicated maneuver. A Tetris (4-line clear), a T-Spin ("spinning" a T-block into place), or a "Combo" (repeatedly clearing lines non-stop). As such, you only can do a major damage from I-blocks (a 4-line clear / Tetris), or T-blocks (TSpins).

No other block in the game can deal major damage by themselves. So the placement of I blocks and T-blocks is fundamental.

\</comment></comment></comment><comment>---

Also note: Garbage is a "comeback" mechanism: large amounts of garbage "feed" the opponent lines to perform a combo with. If you deal non-lethal damage to the opponent, it is common for the opponent to use the garbage you sent him to "combo" into a large amount of damage back to you.

As such: the game becomes more garbage is sent around. There is a chance the opponent can see a 12-combo through the garbage you sent them. Its difficult for the untrained players to see combos, but it definitely comes into play at higher-levels.

\</comment><comment>---

The current system (including the bag-randomizer) has been carefully balanced between many issues, and playtested for years. Aside from occasional issues (ex: TSpin singles becoming too easy in an early version: leading to the development of "TSpin Minis" to nerf that technique), the overall Tetris Guidelines rules are quite good. I recommend playing a modern competitive version of Tetris and trying it out yourself.

Combo-play is definitely considered one of the strongest strategies right now. Moving to a true-randomizer will necessarily nerf Tetris / T-Spin play, because you can no longer predictably get Tetris or T-blocks.

In my experience, most players want to play Tetris: that is, create Tetrises (4-line clears). Combo play is certainly fun, but it makes sense to "buff" the canonical "Tetris" strategy of the game since that's what people expect. Tetris is the name of the game after-all, and you can only play "Tetris" if you have some kind of assurances that I-blocks are on the way.

Nerfing Tetris and buffing Combos seems to be the wrong direction for balance. If anything, Combos need to be nerfed.

Perfect-clear play is also lovely to watch. Computers are better than humans, but when a human perfect-clear player comes in, its truly intense and fun to watch (and play against). Perfect-clear play relies upon the bag-randomizer to a severe degree, and isn't even that strong of a strategy (a good perfect- clear player needs to threaten 3x perfect clears within 20 seconds to be competitive at high levels). Moving to "true random" would erase this obscure style of play completely.

\</comment><comment>-----

In any case, there's a big community which prefers to play with true randomizers: the "Tetris Classic players". They play by a separate set of rules entirely.

As a Guidelines Tetris player, I obviously have my bias. I think the game is more fun with Tetris, Combos, and Perfect-clear openings in play.

<comment><USER15> Difficult to extract the pertinent info out of that, but I take it you're saying that the player is compensated for speed. They can send more garbage and increase their chances of winning by placing pieces faster. In which case, that undermines the earlier point that bag randomizer is better because it rewards fast play. In reality, both kinds of randomizers reward fast play, as the net advantage of playing fast with the classic randomizer is still positive.

<comment><USER13> > as the net advantage of playing fast with the classic randomizer is still > positive.

Only if T-blocks and I-blocks come. If there's a drought of T-blocks and I-blocks, then the combo-player wins.

Combo is currently the strongest strategy, under the current Tetris Guidelines.

If you have "too many" I blocks, you run out of Tetris room very quickly (You can only form a Tetris if you've built up 4-rows of 36-minos, with the last 4-square hole being where you use the I-block). If you have "too few" I blocks, you literally can't clear the hole and die.

My overall point is that the bag-randomizer "buffs" Tetris and T-spin players, while "nerfing" combo play. I argue that Tetris-players are the "main strategy", and probably should be buffed to be stronger.

<comment><USER12> Currently tetris players are not the ones winning usually. Combo is still really strong because it basically stun locks you by throwing garbage at you and a sufficiently strong combo player can make you top out from an empty playing field even if you clear three tetrises back to back.

Tetris players also get wrecked by t-spinners as t-spins do double damage compared to how many pieces you clear. The t-spin is the only piece that can send 6 lines back. And with about three bags worth of pieces you can do a t-spin triple + t-spin double + t-spin single = 12 lines.

Only way you can top that is with three all-clears which you most likely won't get.

With the current rules, if you wanna win, you gotta be either t-spinning or comboing in pvp tetris.

<comment><USER13> Its great to see another good Guidelines player discussing these issues :-) Its clear you have a lot of experience in this matter.

You are correct in that TSpins are a great upstacking strategy. Tetris however is a downstacking / defensive strategy.

Consider a "Counter-Tetris": You clear 4-lines of garbage, while dealing 4-damage (+B2B). That's a "effective garbage differential" of 8-lines (+B2B) (you lost 4-garbage, while dealing 4-damage to the opponent). This ideal doesn't always happen, but its far more powerful than a TSpin Triple.

It is impossible to build a TSpin Triple out of garbage, you MUST create a specially crafted overhang. TSpin Triples always leave an overhang. As such, TSpin Triples and TSpin Doubles can at best, clear 1-line of garbage. (and a TST will block your garbage hole until the TST is executed AND the overhang is somehow cleared).

TST into 1-line of garbage is 7 "garbage differential" (2-lines of upstack, 1-garbage cleared + 6 damage sent + B2B). TSD into 1-line of garbage is 5 garbage differential (+B2B) (1-line of upstack, 1-garbage cleared + 4 damage sent + B2B).

Counter-Tetris is 4-garbage lines cleared, 4-damage sent+B2B (8-garbage differential). 3-garbage lines cleared is 7-differential, and 2-garbage lines cleared is 6-differential.

As such, even a 2-garbage + 2-upstack Tetris is more "garbage differential efficient" than all TSpin Doubles, while a 3-garbage+1-upstack beats a pure- upstack TSpin Triple.

Just don't upstack a Tetris, and you'll do fine. Upstacking for a Tetris is grossly inefficient compared to Upstacking TSD or TST.

\</comment></comment></comment></comment></comment><comment>---

My recommended strategy is: TSD for upstack, Tetris for downstacking. TSD keeps the "hole" open for an emergency Tetris if the opponent starts to spike you (an incoming I OR T block can be executed).

A TST overhang blocks the hole however forcing ordering. (you MUST use a T-block), and the overhang will block the I-block until you clean it up somehow.

\</comment><comment>---

Anyway, I argue that going for Tetris __should __be a stronger strategy... because "Tetris" is literally the name of the game. The "namesake" strategy is weaker than people expect as it is, weakening it further by using a full- randomizer would probably be a bad idea.

</comment><comment><USER16> My thinking would be to bias piece selection based on a complete history of previous selection, i.e.:

        const pieces = ['I', 'J', 'L', 'O', 'S', 'T', 'Z'];
        byte[] probs = [32, 32, 32, 32, 32, 32, 32];

        piece getRandPiece(){
          int v = Math.random(pieces.length * 32)
          int sum = 0;
          int r = 0;
          for(int x = 0; x < pieces.length; x++){
            sum += probs[x];
            // check if random value with range
            if(v < sum){
              probs[x] -= pieces.length + 1;
              r = x;
            }
            // increase the probability of each piece being selected
            ++probs[x];
          }
          return pieces[r];
        }

I think the benefits would be:

* Unlikely flood and drought

* Completes in a predictable time (will always loop for each piece)

* One random number requested (can be surprisingly expensive if on a slow processor or excessive numbers of calls are made)

Are there any negatives to this approach?

<comment><USER17> > Are there any negatives to this approach?

Well, probs[x] can go negative when you decrease it, if I'm not mistaken.

<comment><USER16> Ah yes, good catch :)

</comment></comment></comment><comment><USER18> > The 7-bag has a consistent piece output, making it more predictable. It's > easy to know where in a bag you are, and when a piece you need might come. > Because of how predictable this random generator is, it's actually possible > to play forever. _Overall it's a silly system that makes you wonder how it > ever became the official randomizer._

I actually like the bag one, knowing where in a bag you are gives an edge, and thus it adds an extra dimension to the game I feel.

<comment><USER19> This is true for multiplayer game where playing knowing more about the system can give you an edge against someone else. As said it the article:

>> The clumsy 7-bag is unnatural feeling, but allows for many building strategies to be consistently viable.

And consistency is one very important component of multiplayer games.

However for solo play where you end up playing at 20G _, the seam problem (repeat of SZSZ) can wreck your game if it happens when you have an unfavorable shape of the stack and /or if you get caught up by the lock delay.

_for the non-initiated: the piece spawns directly on the stack, on you have only a short time to react and place you piece

<comment><USER12> To further clarify 20G, a regular Tetris playfield is 21 blocks high and in 20G gravity your piece falls 20 in a frame. So, it doesn't technically spawn directly on the stack, but it will fall on top of your stack before you can move it horizontally.

It is only possible to play 20G if you have what is called TLS (Temporary Landing System) and IRS (Initial Rotating System) in TGM games. This means that even before your piece spawns and falls, you can rotate it by one rotation either clockwise or anticlockwise and when the piece drops, it doesn't lock into its' place immediately, you can move it for a short while.

Also, if the piece drops vertically, the locking time resets which means that you should build a pyramid shaped stack so that you can slide your pieces down on either side and rotate it where you want it before it locks.

</comment></comment></comment><comment><USER20> I think the best compromise would be a bag with let's say five of each piece; every time 7 pieces are dealt, you add a whole set to the bag.

No need for unnecessary complications - the pice becomes less numerous and less likely to come when there was a flood, and more common and more likely to come when there was a drought. You can even add a set after less than seven pieces, to increase randomness (and thus difficulty) over time.

</comment><comment><USER21> Have to say, I liked the original in the floor console. It wasn't "fair" except in the sense that the chance was evenly distributed, so when I was playing against my friend, over a period of 2-3 hours, the positive and negative breaks evened out (like in backgammon - play it enough and the randomness from the dice rolls gets netted out). The bag approach seems too easy.

</comment><comment><USER22> Thanks for posting. I _love_ research like this ;)

Reminds me of a similar result in which "locally noisy" bots inserted into human coordination games can yield a positive outcome!

[https://www.nature.com/articles/nature22332](https://www.nature.com/articles/nature22332)

</comment><comment><USER23> > Pseudo random number generators try to mimic real randomness, but don't have > the properties required to deal out 70,000 Z-pieces in a row.

Citation?

<comment><USER2> I should have specified, but I mainly have experience with simple ones like LCG's, and these are the ones usually used in Tetris games. Another interesting note is that people have processed full periods of some popular Tetris games, and obviously sequences like this never appear.</comment></comment>