Poverty and social background remain huge barriers in scientific careers - <AUTHOR> http://www.nature.com/news/is-science-only-for-the-rich-1.20650 <comment><USER3> As I write this, there are just a small number of comments, all saying "there's no money in research" and "scientists are paid less than McDonald's burger flipper". It's like a whole section of disgruntled grad students who wanted to be professors. There is tons of money in science! People who "fail out" of or never wanted to pursue the stupid academic dream become active in patent law, become managers at pharma and biomed companies, oversee quality control at chemical firms, write documentation for medical devices, run labs, work as lab techs. These are all good jobs compared to the jobs the majority of Americans are qualified for.

Seems like HN has a very warped view, this view that "there's no money in research" means some poor kid is better off flipping burgers into her 50s than becoming a lab manager.

<comment><USER4> I would warn your optimism however, my wife is a lab manager (performs research, publishes, ostensibly as involved in the science as any PHD) but I would by no stretch of the word say she makes "good money"; both of us made more back when we were service workers. The perception in her group is that the positions that pay even close to tech (some of the ones you list, manager at pharma company etc) are almost paramount if not more difficult to e.g. getting a manager position at google. If you're not top of the pile material, good fucking luck. (and you'll likely have some very high expectations to get there, PHD+extensive research the minima of, which again unlike tech, are less able to be fulfilled while making good money as well, and typically require more upfront investment)

I would say that in my experience the closer you get to science (or the further from money, perhaps?) the harder good money is to come by. (Left an academic tech position myself a while back; tripled my salary overnight)

<comment><USER5> Wages are higher in technology compared to the sciences because productivity is higher due to greater automation. The sciences may see wage increases in the future as research tools become more automated. Whether the skill sets remain the same is not so sure; manual wet lab work will always be inefficient compared to a programmer controlling an array of robotic lab devices.

<comment><USER6> > Whether the skill sets remain the same is not so sure; manual wet lab work > will always be inefficient compared to a programmer controlling an array of > robotic lab devices.

I've already seen this happening in certain labs. It can be an odd experience walking into an empty lab. In one particular bio lab, they employed one particularly talented tech who knew how to do experiments that weren't yet being done by robots. The other guys were all programmers or doing bioinformatics. They're all well-paid and getting papers in NEJM, Nature, Cell, etc. (I didn't get the job :-/ )

</comment></comment></comment></comment><comment><USER7> Great! Problem is not that scientists are often paid less than McDonald's burger flipper.

No! It is social and gender issue! Lets push even more students into this career path.

<comment><USER8> The low pay for scientists is very definitely related to it not being an accessible path for lower classes.

<comment><USER9> That doesn't make sense to me. If it were a more accessible path, then you'd have more scientists (supply), the same demand and lower wages.

<comment><USER10> The way science is currently set up, the only people who can take unpaid "research experience" positions etc. in undergrad that have a _huge_ impact on their career trajectories are people who know the bills are being paid some other way.

<comment><USER11> You have reached the point. I, myself, in a public University in Brazil, still have concerns about the money I'll have to afford bus tickets. Some students even own a car!, of course most of them have "unpaid" positions because they won't suffer in their social lifes if they aren't paid. Thanks for getting the point.

</comment></comment></comment></comment></comment><comment><USER12> Man, wish I could find the link - I had read something probably 10 years ago that discussed the abnormally high number of independently wealthy people in academia and research. Makes sense given how expensive it is and how infrequently it nets positive ROI.

A big part of science are 'ideas', and ideas are interesting things in Human culture. To be the 'idea person' in a social group requires considerable social status. I see so many people in corporations battling to have their ideas win. I see so many people of higher status claiming ownership of the ideas of those 'beneath' them. I see plenty of great ideas being ignored because of who proposes them. And, it's very rare to see an outsider's idea gain influence.

They say that execution matters much more than ideas - but they go hand-in- hand. The person who gets to execute also gets to choose the idea.

Given the comparitive physical weakness of the Human, 'the idea' is their number one weapon and asset. It enables power. So, there are probably a lot of social reasons why most lower-status (lower income) people are kept out of science and research. It's probably more of a systematic result of Human behavior than just being poor.

</comment><comment><USER13> I'd like to go get a PhD and teach, but it pays less than half of what I make as a software dev. I wish I could somehow teach science & tech and also make money.

<comment><USER14> Serious suggestion .. start a youtube channel. I do most of my learning that way (and I do have a PhD).

<comment><USER15> Or donate to a group that can do said teaching for you. Personally, I donate to Khan Academy.

</comment></comment></comment><comment><USER16> Studies have shown a major factor in young people's likeliness of going into science is whether their families think highly of science and science careers (regardless of parents' education levels). I'd imagine the ivory-tower nature of science can contribute a class divides in this respect as well.

</comment><comment><USER17> I'm actually surprised well-off students choose science over well-paying careers given that it is well known that there is no money in research.

My own kids and their friends often express that science is interesting but they won't get into it because of that.

<comment><USER18> I don't know what anyone else's story is, but for myself, everything was given to me by my parents. We weren't exactly rich, but I was certainly privileged. Whatever I asked for, I got. So, when a university education was given to me, I thought I could just "follow my dream" and not concern myself too much with making an income, because why should I? Making an income had never seemed like a concern, so I studied pure mathematics.

When my father died and my personal gold mine with him, I had to drop out of mathematics (which I was half-assing anyway), find a way to make money, and here I am now: software developer.

<comment> saiya-jin the easier kids have it during childhood, the harder the reality hits later (if ever). some frugality in upbringing instead of just throwing money on them to compensate lack of time spent with them goes much, much longer way

<comment><USER19> I get what you're trying to say but I just want to point out that reality still probably hits harder when life was always hard.

Growing up with nothing into an adulthood with no support network and few prospects, where our society blames you for being in that situation, is a harder draw than being taken care of until you're halfway through college then having to find your own way.

<comment><USER20> "Life is not easy for any of us. But what of that?" \- Marie Curie.

</comment></comment></comment></comment></comment><comment><USER21> Intrinsic motivation [http://researchnews.osu.edu/archive/inmotiv.htm](http://researchnews.osu.edu/archive/inmotiv.htm)

</comment><comment><USER22> Poverty and social background remain huge barriers in all highly educated fields except for computer science/development/sysadmin.

We're very much the exception not the norm. As much as my mother believed I could be anything I would not be able to drag myself through university even without external factors pushing me down and throwing me around like a sack of meat.. for years..

<comment><USER23> We're _better_ than other fields, but definitely not an exception. I grew up in a formerly upper upper middle class family that didn't have very much money due to medical and mental health issues. I'm only ~5 years out of uni but my success at every point in my education and career so far made it credible to me that credentialism and reliance on personal connections wasn't a significant factor in tech careers (as opposed to merit).

But it's recently become pretty clear to me that all the best opportunities I've ever been exposed to were through connections, and not all of those connections are attributable purely to merit. Had I not had these, I would be doing pretty well on merit, but the fact that I'm doing extraordinarily well is due to the fact that I got opportunities that many others never even had a shot at. About half of these were from family and friends, which has almost nothing to do with revealed merit. The other half was from smart classmates in my CS program, which is a little more correlated with merit. But it's not a coincidence that most of the people in my friend group were somehow similarly upper middle class. I had a really talented, smart friend group, but it's hard to imagine that coming from a similar background didn't have any affect on how easily we got along.

</comment></comment><comment><USER24> This is a misleading headline.

Poverty and social background remain huge barriers in all careers.

Why single out scientific careers?

</comment><comment><USER25> From the article: > Last year, Christina Quasney was close to giving up. A biochemistry major at the University of Maryland, Baltimore County, Quasney's background was anything but privileged.

People with little family money get free grants and low-interest government backed loans to attend college. She is attending a public university. In NYC, there are many students that are attending City University of New York and I meet some. They are studying biology, engineering, and other sciences. They generally but not always live at home.

The annual tuition and fees are less than $7000 and for transportation, the MTA subway/bus is $115 per month, unlimited rides.

Students like those mentioned in the article get Pell Grants and Stafford government backed low-interest loans. Pell Grants are $5,800 per year. Stafford Loans are 5,500 the first year, 6,500 the second year, and $7,500 for the remaining years.

In my particular case, I paid for 90% of tuition/housing/living expenses by programming computers beginning in high school. I was not eligible for Pell Grants nor any form of loans including Stafford Loans.

So, I really don't understand these arguments. Public universities provide a first class low-cost undergraduate education and of course have PhD programs and so on.

Once one has an undergraduate degree with good grades, in the sciences and engineering, if they are admitted to a PhD program so they are fully funded for both tuition and housing.

CUNY Tuition and Fees: [http://www2.cuny.edu/financial-aid/tuition-and- college-costs...](http://www2.cuny.edu/financial-aid/tuition-and-college- costs/tuition-fees/#1452179204200-d27abe14-99f4)

Pell Grants: [https://studentaid.ed.gov/sa/about/announcements/pell-2016-1...](https://studentaid.ed.gov/sa/about/announcements/pell-2016-17)

Stafford Loans: [https://www.scholarships.com/financial-aid/student- loans/sta...](https://www.scholarships.com/financial-aid/student- loans/stafford-loans/)

<comment><USER26> The blindness of privilege:

> I paid for 90% of tuition/housing/living expenses by programming computers > beginning in high school.

It's commendable that OP did this - that's great and plenty of people have squandered their gifts unlike him.

However, just because funding is available doesn't mean people aren't at a disadvantage due to their situation.

Does OP really believe that you're on equal ground if you:

\- Live in a ghetto, often with an stressed-out, overworked single Mom.

\- Go to a shit school without adequate fucking literacy education - let alone programming classes.

\- Have no family / friends who have professional jobs.

\- Often fear for your physical and financial safety.

\- You don't have a computer / internet at home.

This breads a very difficult kind of scarcity to dig yourself out of, and we need programs to help these kids get out. Cash is great, but not sufficient.

<comment><USER15> You can't easily fix a broken culture from the outside. All people need to be treated equally, above all else, including race, gender, beliefs, and economic status (yes). I simply think it is unfair to nullify and demean the good work that hard-working individuals have done. By claiming that their position in life is a product of "privilege" or their parent's privilege, and simply giving those that did not do said hard work a free pass and cash.

Those are the beliefs, uncomfortable or not, and as is often the case with this type of topic, they are the products of a fundamentally different view of the world. I am not here to fix cosmic injustices using further injustice, nor do I want my tax money going towards it either.

<comment><USER27> Putting your ideological motivations aside, how do programs promoting home computer ownership or basic literacy (with the ultimate aim of getting people up to par in literacy, before encouraging development in the sciences) in impoverished areas "nullify and demean the good work that hard-working individuals have done"? There's no logical connection there, nor any sort of free pass being offered.

Furthermore, the implication that people in poverty are any less "hard- working" than those that have achieved financial success/accessibility to the sciences seems like a claim that needs some citations. Quick Google searches suggest that escaping poverty with children would actually require working more than 40-hours a week. Seems like a catch-22 for trying to achieve financial, familial and educational success. [1]

[1] [http://blogs.wsj.com/economics/2015/05/06/u-s-minimum- wage-e...](http://blogs.wsj.com/economics/2015/05/06/u-s-minimum-wage- employees-must-work-50-hours-a-week-to-escape-poverty-oecd-says/)

<comment><USER28> _Furthermore, the implication that people in poverty are any less "hard- working" than those that have achieved financial success/accessibility to the sciences seems like a claim that needs some citations_

60% of poor adults (age 18-64) don't work at all. In contrast, 81% of non-poor adults do. 58% of non-poor adults worked full time year round, whereas only 11% of poor adults did.

[http://www.census.gov/content/dam/Census/library/publication...](http://www.census.gov/content/dam/Census/library/publications/2015/demo/p60-252.pdf) Table 3 on page 21.

Why is this a remotely controversial claim, as opposed to simply standard knowledge that all educated people know? Would you also require a citation that proves Trump is a Republican, or that rich people don't commit much violent crime?

<comment><USER29> > > Furthermore, the implication that people in poverty are any less "hard- > working" than those that have achieved financial success/accessibility to > the sciences seems like a claim that needs some citations

> 60% of poor adults (age 18-64) don't work at all. In contrast, 81% of non- > poor adults do.

I'm having trouble believing that it is possible to make an argument that % of people in a group who are _employed_ is a good representation of the degree to which people in the group are hardworkers seriously, no matter what the group in question is.

But when its poor vs. non-poor -- that is, when the groups are divided up by an attribute which is fairly strongly influenced by _whether or not you have the income derived from a job_ \-- its even harder to believe.

> Why is this a remotely controversial claim, as opposed to simply standard > knowledge that all educated people know?

That poor people are less likely to be employed is not a controversial claim, nor was it the claim at issue. That they are less "hard-working" was the claim at issue, which is not one which can be resolved by looking at the degree to which they are employed.

<comment><USER28> Here is data suggesting most poor people aren't looking for work - only 35% of poor adults were in the labor force: [http://www.bls.gov/opub/reports/working- poor/archive/a-profi...](http://www.bls.gov/opub/reports/working- poor/archive/a-profile-of-the-working-poor-2013.pdf)

(To get that number, I took 10.5M in labor force / (45.3M poor people - <USER2> poor children).)

So yes, I think it's fair to characterize a group of people who don't work, and aren't even looking for work, as "less hard working" than a group that disproportionately is working.

What does "hard working" mean to you? And why do you believe poor people are comparably hard working to the non-poor?

<comment><USER29> > Here is data suggesting most poor people aren't looking for work - only 35% > of poor adults were in the labor force:

Lower labor force participation could mean they are less hard working -- or it could mean that they have less opinion of their ability to be gainfully employed, or it could mean that working has a high cost (because, e.g., they have children to take care of, childcare isn't free, and the jobs they could reasonably secure wouldn't provide a net gain before considering child care that's enough to pay for childcare.)

Or lots of other things.

> What does "hard working" mean to you?

Willing to expend effort to improve one's condition, essentially.

> And why do you believe poor people are comparably hard working to the non- > poor?

I haven't argued that they are. I've argued that the evidence that you've presented to prove that they are not has virtually no probative value on the point it is offered to support.

<comment><USER28> _Willing to expend effort to improve one 's condition, essentially._

It's true - I can't rule out that the poor aren't sitting at home praying for a job while taking no action to find one.

But what I've presented is strong evidence that the poor are not hard working.

Suppose your prior is P(!hardworking) = A, P(working) = B, P(looking for work) = C, P(hard work in non-labor force activities) = D. Of course, A + B + C + D must add up to 1.

I've just shown B and C to be false. So P(!hardworking|evidence I've presented) = A / (A + D) > A. Feel free to tweak this and try a more complicated model, I don't think you'll get a different result.

What evidence - if any - would cause you to acknowledge that the poor actually aren't hardworking?

 _(because, e.g., they have children to take care of, childcare isn 't free, and the jobs they could reasonably secure wouldn't provide a net gain before considering child care that's enough to pay for childcare.)_

Strangely, poor Indians have solved this problem. One poor person looks after multiple children while the others work. But poor Indians, unlike poor Americans, are actually hard working.

<comment><USER29> > Strangely, poor Indians have solved this problem. One poor person looks > after multiple children while the others work

If done outside of the formal economy, that would produce, _ceteris paribus_ , lower labor-force participation among the poor, which is, surprise-surprise, exactly the result you said indicated that American poor are not hard working.

So, thank you for illustrating one of the reasons your "evidence" doesn't justify the conclusion you've drawn from it.

<comment><USER28> It illustrates nothing of the sort. Some simple numbers.

Suppose that the 65% of poor adults who aren't in the labor force decided to enter into such an arrangement. Then 3 of them would work (or look for work) while the 4'th watched their children. The labor force participation rate of the poor would increase from 35% to 83.75%.

Can you name any piece of evidence or measurement which would cause you to believe the poor are not hardworking? Or is your doubt more religious in nature?

<comment><USER29> Your simple numbers are, frankly, meaningless and stupid. They assume that childcare is the _only_ reason poor people are ever out of the labor force, for starters.

If you assume thatpoor people are more likely to have to resort to mutual aid outside the formal economy for that while non-poor people are more likely to be able to be either consumers or suppliers (or both) of childcare in the formal economy and that is the _only_ factor affecting differences in labor force participation between the groups (which is, no doubt, an oversimplification), then you'd expect -- no matter _what_ the mutual aid ratio is -- a lower labor force participation rate for the poor.

If you more generally assume that this is hardly unique, and that regulatory costs force those with less means out of the formal economy in other ways, you'd expect the labor force participation rate of the poor to be even further depressed.

> Can you name any piece of evidence or measurement which would cause you to > believe the poor are not hardworking?

I'm not convinced that the character trait of "hard-workingness" has a good objectively-measurable proxy, but then since I'm not the one making a positive claim about it, its not my obligation to present and justify a valid measure of the trait.

> Or is your doubt more religious in nature?

False dichotomy much? Thinking you are making a positive fact claim about something for which no good objective evidence exists and which, while it might in principle be measurable, it is unlikely that objective evidence _could_ exist in practice, isn't a "religious" objection -- if anything, its skepticism that _you_ are making what is essentially a claim of a religious nature (that is, one that is held as true statement of material fact about the world without being either objectively justified nor even necessarily practically objectively justifiable.)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER30> i'm sorry, but technology is making access to science easy enough that "my high school can't afford to offer that bio class" excuse just doesn't work anymore. hell, even news aggs like google offer a science section every day.

<comment><USER31> I'm sorry, but you've clearly never taken an actual lab science course if you think it can be replaced by Google News.

<comment><USER30> i'm pretty sure that's exactly what i said.

<comment><USER32> Then you were exceptionally unclear about it. What does Google News's science section have to do with anything? A newspaper's "science" section has little to do with real science.

<comment><USER30> the argument the article made was that financial barriers made science inaccessible. ubiquitous exposure (google news) makes the argument nonsensical. if you think you can't master high school science today (the argument) without bunsen burners, some hcl, and an egregiously over paid teacher, i can't help you.

<comment><USER32> Oh good, there's no financial barrier to being the kind of person who believes what unqualified journalists say about science, goes on fad diets, and says "I Fucking Love Science".

That has shit-all to do with _doing science_.</comment></comment></comment></comment></comment></comment>


Alzheimer's Disease Is Completely Reversed by Removing Just One Enzyme - <AUTHOR> http://www.newsweek.com/alzheimers-disease-completely-reversed-removing-just-one-enzyme-new-study-807156 <comment><USER2> Someday I would like to work for a company that recognized pending burnout, let alone did something about it.

<comment><USER2> Apparently I replied to the wrong article.</comment></comment>


How Facebook is taking over our lives - <AUTHOR> http://money.cnn.com/2009/02/16/technology/hempel_facebook.fortune/index.htm

<comment><USER2> Facebook is not taking over /our/ lives. I don't even have an account there.

The chart they link to is more interesting than the article: [http://i.l.cnn.net/money/2009/02/16/technology/hempel_facebo...](http://i.l.cnn.net/money/2009/02/16/technology/hempel_facebook.fortune/race_to_mass_market.gif)

What it shows is that new technologies are growing a consumer base much faster as time progresses. Facebook got to 150 Million users in 5 years. Soon, companies will be doing that in 4, 3, 2, 1 and even less than a year.

</comment><comment><USER3> I've been on Facebook since it started. I'm honestly bored of the site and I sure as hell hope it doesn't stick around for the rest of my life. I'm not sure how much good it has brought. If anything, I think some of my relationships have suffered.</comment>


Three-Dimensional Home Printers Could Disrupt Economy - <AUTHOR> http://www.foxnews.com/story/0,2933,301511,00.html

<comment><USER2> It will be fascinating to see this play out. My wife creates resin sculptures ( <http://camilleart.com> ), and I know firsthand how time-consuming the process is. With a 3D scanner, she could sell her figurines online and let people print/decorate their own, like Munny ( <http://www.kidrobot.com/html/munny3/gallery.html> ) except with no fabrication, storage, distribution, middlemen, or shipping... literally just a website and some ultra-cheap bandwidth. An artist's dream!

I wonder if these printers will become cheap/efficient with the same speed that computers and websites did. If so, what a fascinating time that will be, when the digital world can yield tangible, three dimensional results.

At the same time, reading stories like this, I think back to some of the hilarious Popular Science stories I've read about hoverboards and robot assistants...

<comment><AUTHOR> I think this is more real than hoverboards :) I'm looking forward to printing out architectural models (of the building kind) myself when the price is right.

<comment><USER2> Hehe, yeah, but I've just read so many stories gushing about all these totally crazy things which will happen in -- wait for it! (but not too long) -- THE FUTURE. And a lot of them have seemed practical/obvious/awesome, but in the end, they either never happened, or didn't come close to expectations. The problem is, obviously, that predicting the future is a fool's game, because your chances of getting anything right seem to decrease exponentially with the reach of your prediction.

The Segway for example -- remember that insane buildup in 2001? 'IT' was going to change the world -- a technological revolution, over a decade in the making by a mad scientist living on a secluded private island. Steve Jobs said it was going to be as big a deal as the personal computer, and one of the most- bandied-about bits of PR claimed that it would be the basis of future cities.

Not that Segways suck or failed miserably, but man, that was some weapons- grade hype.

Anyway, I'm not really that pessimistic about this, just trying to temper my enthusiasm. While waiting to see how the 3D printer market turns out, I guess I'll check up and see when my standard-issue flying car will arrive...

<comment><USER3> I think with the Segway it was a different story, though: it was not widely known what it would be, there were only a few sources spilling the hype as you described it. It was simply an issue of marketing. With 3d printers, everybody can form their own opinion.

</comment></comment></comment></comment><comment><USER4> God, I hope they do disrupt the economy.

</comment><comment><USER5> 3D printer demo video: <http://www.youtube.com/watch?v=ps0WEZbDjHE>

</comment><comment><USER6> up to 10x10" metal parts from files downloaded from myGun.com...

I guess the 1st amendment will only apply to states too, soon.

</comment><comment><USER7> foxnews.com? really?</comment>


Sex robots are raising hard questions - <AUTHOR> https://www.fastcompany.com/90308471/sex-robots-are-raising-hard-questions <comment><USER2> Only for people who are trying to others what they should do.

Don't want a hard question? Don't try to regulate these things.

<comment><USER3> The question of whether it should be regulated is part of the big "hard question". Besides, we shouldn't be afraid of having to answer hard questions.

<comment><USER4> Why is it a hard question? Don't tell people what they can or can't do with their own bodies, it's not your body.

<comment><USER5> Leaving in a society means agreeing to some rules -- some of those rules might include what one can do to their body, their lives, etc.

That "society should not have such rules" is not something everybody agrees on -- it's just one particular answer to the "big question" of how society should be run.

<comment><USER4> Oh so just because we exist in a society means I can tell you what it is or isn't okay what to do with your own body in your own home when you're not hurting anyone? Okay, whatever your favorite food is, no more of that! Do you drink coffee? Not anymore!

</comment></comment></comment></comment></comment><comment><USER5> It's not the only thing they're raising...

</comment><comment><USER6> The rise of sex robots is going to go hand in hand with the rise of MGTOW.</comment>


Apple, FBI testify before Congress - <AUTHOR> http://www.infoq.com/news/2016/03/apple-fbi-congress <comment><AUTHOR> This presents a summary of the congressional hearing "The Encryption Tightrope – Balancing American's Security and Privacy" that was covered live on YouTube [https://www.youtube.com/watch?v=g1GgnbN9oNw](https://www.youtube.com/watch?v=g1GgnbN9oNw)

A replay of the event is now available but the news piece summarises the important parts of the discussion.</comment>


BBC journalist releases images from his work in Turkey to Wikipedia - <AUTHOR> https://blog.wikimedia.org.uk/2019/10/bbc-journalist-mark-lowen-releases-images-from-his-work-as-correspondent-in-turkey/ <comment><USER2> I just see a "404 - Page not found", is it just me?

<comment><USER2> yes, it has been removed

the snippet in duckduckgo I read "The BBC's former Correspondent in Turkey, Mark Lowen, has agreed to release around 250 images published on his Twitter account on Wikimedia Commons so they can be used on Wikipedia."</comment></comment>


Blueprint of a distributed social network on IPFS, and its problems - <AUTHOR> https://beyermatthias.de/blog/2018/02/25/blueprint-of-a-distributed-social-network-on-ipfs---and-its-problems-2/ <comment><USER2> It seems there's a lot of people working on this area, just looking at this thread. I did something similar to this in 2013 and I got to around 20k users: [https://www.theverge.com/2013/11/27/5150758/aether-aims- to-b...](https://www.theverge.com/2013/11/27/5150758/aether-aims-to-be-a- reddit-for-the-privacy-conscious)

Two things that need to be solved:

a) The structure of moderation. No moderation does not work. Been there, done that, it gets very ugly very fast. But what can be done is to make moderation more visible, and allow people to choose who they want to be moderated by.

b) Scaling. 1-100 users are fun, 100-1000 are exciting, 1000-10000 are a little nerve racking, and after 15k users, you notice the reality of how nodes and networks behave has diverged from your 'reasonable' assumptions. Around 20000 or so, I stopped maintaining it. Scaling distributed networks is much different than scaling regular networks where you can add more hardware and servers and sharding, it requires new behaviours from each node as the system grows. The software that works at the level of a million users in a decentralised system will be much different than the one that works with a billion users.

Funny enough, I've recently quit my day job and I'm focusing on the second version of it, so the memories from 2013 are pretty fresh.

<comment><USER3> Robert Nozicks' "Anarchy, State and Utopia" (1974) describes how a system of multiple concurring "governments" could work. Quite a stretch from social networks but first thing that came to my mind when reading your comment. Moderation is a form of social network government, right? One could subscribe to a government / moderation scheme and the governments form meta-governments to decide which content from competing governments are fit for their users. Moderation in two (or N) levels.

<comment><USER4> That's somewhat what federation solves. You pick out an instance which represents a particular way of moderating. You can still listen in on (most) of the other network.

If you don't like the moderation/government of your instance, you pick another.

<comment><USER5> I like this model, but there's still a bit of unwelcome friction there, at least in Mastodon and Matrix: your identity is tied to your home server.

That could be solved by a robust way of confirming that 2 identities are the same person: so all traffic for email@example.com is also directed to email@example.com and vice-versa.

Coming at the same sort of thing from a distributed approach (I'm thinking of Scuttlebutt): you could make it possible to subscribe to another person's followers and blocklist, delegating your moderation to someone else.

I suppose there would soon be well-known and popular options to delegate to, much like popular ad-blocking lists; but still, each person can choose which ones to use.

<comment><USER6> Red Matrix, a descendant of friendica, not to be confused with matrix, solves this with portable profiles. The account is tied to an instance, but your profile is liberated:

[https://redmatrix.info/help/accounts_profiles_channels_basic...](https://redmatrix.info/help/accounts_profiles_channels_basics)

<comment><USER7> Checked out Red Matrix, and it instantly fulfills the worst tendency of alternative decentralized social networks. Centralized social media takes on the moderation in a way that typically leads to the banning of racist and toxic groups and those groups are often the first to set up shop in the censorship resistant alternstives. The very first landing page of Redmatrix takes you to the Aryan Nation Radio community and a bunch of antisemitic and racist content. This is a major turnoff to anyone pursuing alternatives and while I support free speech and think even the worst of humanity should have a home to be terrible with each other, figuring out how to keep this off the home page is probably a good idea to get these alternatives into the adoption phase.

<comment><USER6> Wow, I did not realize this. Thanks for the 'heads up'.

I had a similar experience with ZeroNet where extremist groups swiftly occupied the ground and toxified the budding discussions.

So in conclusion, are the idiots keeping us from having a decent solution for a social network?

</comment></comment></comment></comment></comment></comment></comment><comment> fake-name If you're thinking about building a distributed social network, you _HAVE_ to have answers to the question: How do you moderate it? (Or how do the users moderate what they consume, if you will)

Basically, think of the most annoying person you can imagine, give them infinite free time, and a uncontrollable urge to do EVERYTHING they can think of to make your life miserable on said social network (doxxing, abusive messaging in every way possible, creating dozens or hundreds of accounts, etc...). If you do not have facilities to deal with this, your network is garbage.

With the focus on "distributed" and "resilient" and "unblockable", you're effectively creating the perfect environment for every abusive stalker, internet creep, and troll.

Lord of the flies is not a functional governance mechanism. Moderation and control have to be designed into the network _from the outset_.

There's no reason I can think of that some sort of "distributed control" isn't _possible_ , but you'd better have it planned out _first_. Bolting on tools for handling abusive users after-the-fact will likely be much harder.

<comment><USER8> So, in your view, email and the web are examples of garbage networks?

Decentralized networks (such as the web) work differently from centralized network (such as cable TV and Facebook) and have different strategies for coping with misuse. You can not moderate a permissionless network. That's literally part of the meaning.

In a decentralized network, I follow you by subscribing to _your_ data. Conversations usually follows that data naturally, just like a mailing list is centralized but email is not.

<comment><USER9> > _So, in your view, email and the web are examples of garbage networks?_

Mostly so, but it is worth the trouble.

About 90% of emails I receive are spam. So, email is 90% garbage. The 10% left is the sinews of my life.

Fortunately, the industry found ways to cope, by contributing to mostly centralized DNSBL services such as spamhaus.

The same goes for the Web: centralized services like Google or (is there something else? ) filter out the irrelevant, dangerous, and fake (with varying degrees of success).

Moderation? Inevitable. Distributed moderation? Not so much.

The parent post is right: if you don't make it built-in, it will not be how you like.

<comment><USER10> You're speaking way too strongly. Email is a huge success, it's potentially the most successful network. I've had my email address over a decade and get less than 1% spam, handled by gmail spam filtering.

You can say that you personally want moderation in your networks, but you have no basis to make general claims about moderation being necessary.

<comment><USER11>
      > ... get less than 1% spam,
      > handled by gmail spam filtering.

I'm starting to see more and more reports of people having their emails automatically go to gmail spam folders, unless the emails are coming from gmail itself. I've seen both sides of this - gmail regularly bins emails I sent from a non-gmail account, and my gmail accounts regularly bin genuine emails from non-gmail accounts, but apparently never from gmail accounts.

It's almost like there's a pervasive force, trying to make people use gmail.

I, for one, don't trust gmail at all any more.

</comment></comment></comment></comment></comment><comment><USER12> One decentralized project is willing to list alternative options, many past the 'create a prototype' stage:

[https://www.scuttlebutt.nz/faq/misc/related.html](https://www.scuttlebutt.nz/faq/misc/related.html)

ZeroMe – Decentralized Microblogging on ZeroNet [https://news.ycombinator.com/item?id=15464156](https://news.ycombinator.com/item?id=15464156)

An off-grid social network [Scuttlebutt] [https://news.ycombinator.com/item?id=14050049](https://news.ycombinator.com/item?id=14050049)

\--

A recent discussion of building on IPFS, where a developer was honest about drawbacks:

OpenBazaar 2.0, powered by IPFS [https://news.ycombinator.com/item?id=16702684](https://news.ycombinator.com/item?id=16702684)

 _haven 't solved the decentralized reputation problem and reviews can't entirely be trusted_

\--

I am interested in this space because first mover advantage is still kind of up in the air until something works well enough to build a network advantage.

<comment><USER13> Any thoughts on Mastodon[1][2]?

I think "federated" is the term for its model, moreso than "decentralized" (?).

[1] [https://joinmastodon.org](https://joinmastodon.org) [2] [https://instances.social/list/old](https://instances.social/list/old)

<comment><USER14> That's the right word.

(General note)

Federated is a bit different from decentralised. For example, email is federated, but not decentralised. In a federated network, if "your service providing server" is down (like gmail.com), then you don't have service, though others on other parts of the network would continue to have service. With a decent sized network, there is no "your service providing server" and other machines can take over when one fails. Decentralisation always goes along with redundancy whereas federation doesn't require redundancy.

<comment><USER15> You're thinking of _distributed_. Decentralized is broader than that. Really anything that isn't centralized like Facebook is.

Obviously a lot of this is very squishy and overlaps a lot even within the same system.

Look at DNS. It's nominally a centrally-rooted hierarchy, but the root is operated by consensus rather than monarchy, so how do you classify that? Then each domain can be operated by a separate organization, so essentially federated but not exactly because it's still a hierarchy. Meanwhile the recursive resolvers and caches are fully distributed -- use any of them and the results are (supposed to be) the same.

</comment></comment></comment></comment><comment><USER16> In the context of DTube IPFS is simply storage for video files, where the metadata + interactions are on the SteemIt block chain. It's cool that the author has generalized the concept onto pure IPFS. It may work better than my experience, which used IPFS to store very large contiguous mp4 video files (eg. 15min 720p max).

IPFS is nifty but I'm not convinced of its ability to support an intergalactic workload quite yet. I've looked at it vs. CDN for a video delivery platform and have a much more robust system built on primitives DNS -> CDN -> HTTP -> HLS segmented MP4 + static HTML site w/ SPA chunks in just a few weeks. I explored similar ideas with using encoded public keys, hashing, and side- channel crypto key distribution to support some interesting workloads. This is cool because it's a no-voodoo solution, just HTML and RSS and JS and chunked video files, and the CDN handles the details invisibly. With IPFS on DTube I've only been able to author a little data before running into queuing blocks where I was unable to continue adding content.

I have some videos on my YouTube channel talking about IPFS and giving demos in the past 1-2mo, 'iSpooge Daily'.

</comment><comment><USER17> I made something similar to what's described in the article: [https://static.network](https://static.network) ([https://github.com/olivernyc/static](https://github.com/olivernyc/static))

It's an IPFS based social network, running entirely in the browser. Posts are JSON objects of content and metadata, with links to the previous post and the author's profile. Currently updates are propagated over a single pubsub channel, so it only works for real time communication. I plan to replace this with IPNS once it is implemented in js-ipfs.

Long term, I want to implement a web of trust to facilitate search, discovery and spam control. Here's some good reading about how this might be done without central authorities: [https://www.scuttlebutt.nz/stories/using-trust- in-open-netwo...](https://www.scuttlebutt.nz/stories/using-trust-in-open- networks.html)

</comment><comment><USER18> How do I find Waldo?

On Facebook, LinkedIn, MySpace, Twitter, Google, Github, GnuCentral, etc., I type in Waldo's name and instantly discover Waldo's profile. On Facebook it even shows me Waldo's profile before I consider discovering him.

Also, how does the system make it likely that when I search for Waldo I get Waldo and not his evil twin Odlaw?

Also, how do you incentivize adoption so that the community doesn't end up rationalizing "Error 404: Waldo not found" as the proud badge of an artisanal social network?

<comment><USER19> How do you find people's email addresses?

<comment><USER10> Exactly. I think there are two types of social network users

1\. People who want to consensually maintain two-way contact with people they talk to in normal life.

2\. People who want to anonymously get life details of classmates they have a crush on, ex's, etc

Building a network to support #1 while maintaining true anonymity and privacy is much more doable. Not being in group #2, I don't worry about it.

<comment><USER18> Being in group #1 is great.

Denying that there is profound value in digital communication between two consenting adults who have _never_ met in normal life is a Luddite position.

<comment><USER10> Nobody is saying that, you're making a straw-man argument.

People are just saying that they have no interest in being part of a network that tracks their videos, location, actual name, phone number, text messages, behavior across the whole internet, email address, and builds a psychological profile on them in exchange to look up college buddies (and therefore have deleted their accounts).

Many of us want a network that errs to the side of too private, and it's okay if not everybody is on that network. Many of us would rather have no network as compared to one that's too public.

</comment></comment></comment></comment></comment><comment><USER20> Some of the points made in the "why ipfs" are inaccurate wrt scuttlebutt. Secure Scuttlebutt is a signed immutable log/database of a person's posts, replicated with peers. It is also distributed, instead of federated. (Add:) And because SSB is a database, you could build pretty much any app on top of it.

The SSB network is very active, take a look - [https://www.scuttlebutt.nz/](https://www.scuttlebutt.nz/)

</comment><comment><USER21> Why not just pay a few bucks a month for a social network, and get all the benefits of centralization without the evils of ad-supported corporations? Most of us here use and trust GitHub, and imho that's what we need more of.

While I'm a huge supporter of blockchain projects and their allies, in the case of social networks I don't see how this is going to turn out any differently than FOAF.

<comment><USER22> Because not all of my friends and family are willing to pay a subscription fee :-/

<comment><USER23> Would you pay to be a power user who can invite and manage say a dozen family & friends?

In this model it might be possible to assist uptake by having a class of power user who can manage their group over onto an ad free network.

Example: I have a private github account with repos I share with various friends who are not paying github users but are nonetheless now engaged in the github platform.

<comment><USER24> Yes, this is an under-appreciated idea that may be critical to having the whole thing work. If it's a paid service users should be able to pay for _other users_ to use it.

<comment><USER25> WhatsApp had this. :-/

</comment></comment></comment></comment></comment><comment><USER26> I'm kind of baffled that this article did not start with a statement of the problem, and doesn't even consider other technologies. Instead it goes straight to IPFS as the technological answer without bothering to define the kind of social network they are trying to build.

A "social network" can mean very different things to different people. Even among FB users you find a very wide range of primary use cases.

So if you're going to propose a new social network at least start by defining the desired characteristics of your network, and even more importantly in this day and age, talk about the kinds of threats you are going to defend against and those you won't.

Then you can explore possible technologies to see what fits best. And if you did that you might come across the DAT protocol[0] and find it's better suited than IPFS.

Characteristics I'd like to see discussed before launching into a solution:

\- Is this meant for users to connect to wide audiences (like Twitter, Reddit), or is it meant for me to keep up with my known friends/acquaintances privately?

\- what features are you going for? Groups? Events? Chat? Just basic timeline?

\- What's the visibility model? If a friend replies to your post, does that mean friends of that friend see your post? [there are hundreds of questions similar to this one. laying out some general principles before starting on the solution seems like a good idea]

\- is end-to-end encryption supported? How do you limit the distribution of private information when many of these decentralized protocols assume that knowing an unguessable url is enough to get the contents at the url.

Anyways sorry if this comes off as grumpy.

[0] [https://datproject.org/](https://datproject.org/)

</comment><comment><USER27> People might be interested in the social network on IPFS a few friends and I are working on in our spare time, Peergos [1] [2]. It also happens to be the first social network on IPFS (We started before IPFS itself existed).

Everything is encrypted, including metadata and we try not to expose your follow list to the network. It's inherently multi-device, independent of DNS and even has streaming E2E encrypted videos playable in the browser (streaming is disabled by default at the moment because it only works in Chrome) and even hides file metadata like size, name and directory structure. It's still pre- alpha though.

[1] [https://peergos.github.io/book](https://peergos.github.io/book)

[2] [https://github.com/Peergos/Peergos](https://github.com/Peergos/Peergos)

</comment><comment><USER28> I believe the main problems of "the social network" (FB) can't be solved in this way, it focuses almost entirely on the privacy and "freedom from surveillance" aspect, to the detriment of other vital aspects (like non- anonymity).

What we seem to need is a solution that does what Facebook does right, which corresponds to the networking needs of billions of people, combined with a transparent and ethical content policy approach. Plus: that doesn't leak data at an individual level (except after a court order), to name some of the requirements that seem most important.

On the other hand, a non-corruptible utility-type service like this might be too much to hope for as well ... ?

<comment><USER29> In principle every problem solved by facebook in a centralised fashion has already been solved by phone companies in a decentralised fashion. You can buy one or several numbers, which are quasi anonymous and distribute them to anyone you care to share them with. Noone can easily find you unless you give them that number, it easily possible to separate between work and private numbers and you get a new number if you change your job. Calling by phone is nearly universal as is access to SMS, it already connects all people across the globe without any need to sign up to a centralised service. The only advantage services like WhatsApp and Facebook have is that it is really cheap to communicate over them, whereas the only way of operating a traditional phone service is to charge money.

I think what will eventually happen is that the traditional telco providers will gradually improve their service quality, prices and infrastructure and eliminate the need for parasitic communication platforms like WhatsApp and Telegram by introducing standardised and provider agnostic solutions. For example why not extend the protocol that is used to route phone calls to a protocol that allows to route arbitrary packet or streaming data transfers.

<comment><USER28> > "Noone can easily find you unless you give them that number"

Yeah well, finding anyone is not a flaw; it's a one of Facebooks _killer features_ , without which it would not have become the de facto global registry of single individuals.

> "The only advantage services like WhatsApp and Facebook have that it is > really cheap"

I believe this is a gross misunderstanding of the utility of social networks compared to older systems like telephony. But granted, the brave new world comes with a number of problems as well.

<comment><USER29> Actually the real name requirement and the fact that anyone could easily find me is what kept me off Facebook, so I don't consider it a killer feature at all. If you know my real name it is easy enough to find me with some additional information on google and get a work email + current office phone number, I don't feel like sharing more than that with random strangers anyways.

<comment><USER28> Yes, it's a sentiment you share with many here on HN, I'm sure. But Facebook doesn't address our needs primarily; it addresses the networking needs of the average person, which may add up to half the global population or more by the time they are done.

Who can at any time reach out to another average person on the other side of the globe, be it acquaintance or stranger, and discuss matters of mutual interest, without jumping though hoops or even knowing how to google, and (because of the real name policy) be reasonably safe from harassment.

But hey, to each his or her own.

<comment><USER10> >> But hey, to each his or her own.

Then build a system that supports both. Let people opt-in to a lookup directory (phone-book), but make it anonymous by default.

</comment></comment></comment></comment></comment></comment><comment><USER30> This is great!

The privacy problem is especially interesting because I work on a distributed key management system called NuCypher. We use proxy re-encryption to do this and have a distributed network of nodes that perform the actual re-encryption on split keys.

If anyone is reading this article and wants to work on this problem, we have a split-key threshold PRE scheme called Umbral that we used to decentralize the key management part. The link is below:

[https://github.com/nucypher/pyUmbral](https://github.com/nucypher/pyUmbral)

</comment><comment><USER31> While I like the distributed approach technically, it solves none of the social problems that social networks bring.

Filter bubbles, propaganda and competition for users' attention with clickbait and other cheap stories might even become worse, since a centralized platform could at least tweak their recommendations algorithms to break the bubbles (which Facebook doesn't seem to do, but it could).

Basically, I'm pessimistic because a distributed network only solves the (comparatively) easy technical challenge without addressing the problems of social networks.

</comment><comment><USER32> Awesome post! I think a ton of people are coalescing on this idea - I've seen multiple people post thoughts around this very recently. I'm about to launch a distributed social network, built on ethereum and ipfs. Ethereum helps solve some of these distributed discovery issues. It includes an open source, centralized 'gateway server', which makes it a little easier for onboarding, plus it has built in support for ActivityPub out of the box, which makes it compatible with mastodon. I'm posting it here on Monday morning! Sorry for the self plug. I love your ideas around deleting content - that's a tough problem that I'm only really supporting on the client side right now.

</comment><comment><USER33> There is a distributed (blockchain based) social network today: steemit.com. Several of the frontends (like busy.org) use IPFS for content distribution, as the Steem blockchain only holds text and json.

</comment><comment><USER34> The problem is, moderation is actually a poor solution to the real problem - equal visibility of ignorant/vile and insightful comments.

[https://pol.is/home](https://pol.is/home) presents a more viable option. But people self-grouping (eg. vile people only seeing other vile people) could also create echo-chambers.

For example, as a libertarian I'd love to see comments by anyone with "skin in the game" - regardless of political bent. How could we achieve that?

</comment><comment><USER35> Interesting that we're now posting blueprints instead of code. I think that's a good development!

Now if only we could have the requirements posted and discussed first :)

</comment><comment><USER36> I've been keeping an eye on peer-to-peer/federated social networks for a while. And though I left Facebook a couple of months ago, none of these can replace it until they do one simple thing: Allow one user to post to another users "feed". This is what Google+ was missing when it came out. This is what Twitter is missing. This is the reason why Facebook is so popular, IMO.

I see something on the Internets which I think my wife would like, but I also want her/our friends to see it and I post it on her wall/timeline. I don't want to post it on my feed, that won't help, and I don't want to private message it to her, that also won't help.

Any of these social networks add this feature - then I will champion them to the end of the Internet.

And perhaps add support for events. But that can be an adjacent but compatible application.

<comment><USER37> It sounds like a "profile"/feed also acts like a message board? (I never had a fb account, so pardon the stupid question.)

</comment></comment><comment><USER35> Why aren't governments issuing grants to universities to research the development of a new social network?

<comment><USER38> Isn't social network a purely commercial idea born to manipulate people, get them obsessed over it and exploit them? I mean it's not an actual problem to solve that can be worth any research.

<comment><USER6> no sure whether you're cynical

</comment></comment></comment><comment><USER39> I just started dabbling with IPFS. It has inspired me to revisit a project prototype that I abandoned for a year.

A year ago, I started making this prototype: [https://www.dearnation.org/](https://www.dearnation.org/) "Dear Nation is a living archive of the letters we write to our nation's leaders." I've been torn about pursuing this concept. I think I'm particularly scared of how messy it is to moderate and foster democracy online. I'm hoping that by working with tools like IPFS it will inspire me to give more free time to ideas like this.</comment>


Lisp for C++ programmers - <AUTHOR> http://prog-elisp.blogspot.ru/2013/10/lisp-for-c-programmers.html

<comment><USER2> It seems as if every new iteration of C++ proves Greenspun more and more correct. The standards committee has been trying very hard to push templates as an "ad hoc, informally-specified, bug-ridden, slow implementation" of macros.

As for Lisp syntax being ugly, I beg to differ. (Common) Lisp syntax is somewhat arcane, with terminology and abbreviations that aren't common these days, but it reads pretty smoothly.

You know what's ugly? C++ lambda syntax:

        [=]() mutable throw() -> int

At some point C++ started following Perl down the road of using as many symbols above the number keys as possible. _That 's_ ugly.

<comment><USER3> You are being intentionally dishonest by using the most verbose lambda expression you can think of. It would be _very_ unusual to write something like that. You even managed to include one of the rare deprecated language features.

<comment><USER2> The example is from the first hit for a Google search for "C++ lambda syntax" (an MSDN article). In any case, unusual language features still are part of the syntax. They must be parsed and they must be understood by programmers in case they come across them. The ugly parts of a language don't go away just because you don't use them that often.

Also, I'm not sure what you're objecting to. The throw clause? The ugly part here is the overloading of the brackets and equal sign to specify the capture list.

<comment><USER3> "[=]" Capture all variables by value, fair enough.

"mutable" Don't capture them const, this is very rare.

"throw()" Promise not to throw an exception, this is very rare for a lambda, and also deprecated in favor of noexcept.

"-> int" Explicit return type, usually not needed, and nearly never needed in C++14.

I was objecting to a contrived example used out of context to make C++'s syntax look worse than it is.

<comment><USER2> I'm not trying to make C++'s syntax "look bad." The standard itself makes C++'s syntax look bad. All those features, except maybe the empty throw clause, are basic things someone needs to know to use lambdas properly and to read code that uses lambdas. We're not talking about deprecated, never-used, features like "export" here.

I don't understand your line of reasoning here. Is syntax not ugly if you usually don't use the ugly parts? I think everyone would agree that the parser ambiguity that used to exist between "vector<vector<int>>" and the right-shift operator ">>" was ugliness in the syntax. Is it a defense that you don't usually instantiate a template with an instantiation of another template?

<comment><USER4> None of these features, except the capture clause, are things that anyone has to _learn_ to use C++ lambdas; they should know these other features anyway, from other parts of the language.

The late return type syntax (`-> type`) works with nearly all functions (`auto fn(foo) -> bar { ... }`), the `throw()` (now `noexcept`) specification has been used for long time, and `mutable` is a well-known syntax for potentially const objects; so the lambda syntax is, or at least _should_ be, unsurprising.

To say it's ugly is not saying much. We all know C++ is ugly. This is a given. But singling out lambda syntax, which is comparatively easy to grasp and largely consistent with the language, doesn't really make a case.

</comment></comment></comment></comment></comment></comment><comment><USER5> _I won 't go into details about deficiencies of Lisp. That's another problem to be discussed; an extremely painful problem, in fact._

I don't buy it. Nobody wants to talk about these apparently obvious (to non Lispers) problems of Lisp, yet they are still there? Bring them up and be argued with or be quiet.

Later he talks about the ugliness of Lisp syntax, especially CL, but Scheme and Clojure are supposed to be better. On what basis? I may admit scheme is elegant, but calling clojure's syntax an improvement over CL is a pretty long jump.

<comment><USER6> I think many people that don't like lisp haven't spent much time with it. I personally do not like lisp. I took an artificial intelligence class where we wrote search techniques in common lisp. One problem that I had with lisp is the end of my A* search had a massive number of parenthesis at the end. I think this would have been a little better if we were taught about common lisp structs earlier on. My next big problem was that I was coming from C where you occasionally put extra parenthesis in to group portions of code (sometimes necessary in macros or if statements). This is a very bad habit in lisp because it tries to call a function.

<comment><USER7> There've been dialects of Lisp where a single ] would close all outstanding open parentheses. Having never actually used one, I reserve judgment on whether this is a good or bad idea.

<comment><USER8> I think, just like any other syntactic sugar, it's fine if used with proper understanding of possible consequences. I'd like to see lisp use indention instead of parens like Python. I'm sure someone's done it and it isn't popular for some reason or another, but I think getting rid of the parens would go a long way to making people stop hating LISP.

<comment><USER6> I don't see how lisp could get rid of parends with indentation. Parends are used for function calls so you would then have to indent one extra level to call a function? If there was a workaround for the function calls, then it would also require every function to be written on a separate line, there would be no concept of a one liner.

<comment><USER9> Indeed. A workaround would be to introduce some infix operators (there are various lisps that do so), so you could use something like '$' for function application and end up with a syntax like Haskell.

Of course, this is a terrible idea and very un-lispy, because one of the key benefits of lisp is that it's simple to parse. Introducing infix operators destroys that simplicity.

Another workaround, which I quite like, is to simply remove all the "lisp syntax" entirely, and edit a tree directly using a syntax directed editor.

</comment></comment></comment></comment></comment></comment><comment><USER7> _" In fact, many people claim that Lisp "has no syntax". This really means that Lisp has uniform syntax: every piece of code is just a list delimited with parentheses."_

For an appropriate definition of "uniform syntax", perhaps. What I mean when I say "lisp has no syntax" is that you effectively write out the AST. If the syntax were somehow uniform but had a radically different structure than the AST I would claim that Lisp has syntax.

<comment><USER10> > What I mean when I say "lisp has no syntax" is that you effectively write > out the AST

Agreed. This is a very common misunderstanding of the statement, but understanding the meaning of the statement correctly demonstrates the single reason that Lisp is so powerful: its homoiconicity, and everything that implies.

</comment></comment><comment><USER11> One thing I still miss from this and most other Lisp tutorials is good practical examples of problems you would solve with macros. Its one of the biggest differences between Lisp and other languages but I have no idea where I should use macros and where I should simply use functions instead.

For example, in this tutorial he shows a stopwatch macro but this is precisely the sort of stuff that is easy to do with lambdas:

      (define stopwatch (body)
        (start-timer)
        (body)
        (end-timer))

      (stopwatch (lambda () (my_code 42)))

<comment><USER12> Sure, you can do it that way -- but isn't it ugly? Isn't it harder to read?

One thing I recently did that required a lot of macros was writing a unit test framework for Arc, the Lisp Hacker News is written in. (framework, with examples, here: [https://bitbucket.org/zck/unit- test.arc](https://bitbucket.org/zck/unit-test.arc)) So to create a suite, you write:

        (suite math
               this-will-pass (assert-same 4 (+ 2 2))
               this-will-fail (assert-same 3 (+ 2 2)))

Like stopwatch, instead of passing a lambda that runs the body of the unit test, it just lets you put the body in. Why? In c-like languages, you don't write an _if_ statement this way:

        if((val % 2 == 0), lambda (): { return true; }, lambda (): { return false; })

Isn't it easier to write:

        if(val %2 == 0) {
          return true;
        } else {
          return false;
        }

So if using lambdas isn't good for _if_ , why is it good for _stopwatch_?

Also, none of _math_ , _this-will-pass_ , or _this-will-fail_ are predefined in the language, or even by my framework. You don't have to use strings, as you might otherwise:

        (suite "math"
               "this-will-pass" (assert-same 4 (+ 2 2))
               "this-will-fail" (assert-same 3 (+ 2 2)))

Why might this be useful? Well, when you're writing a function:

        int abs(int val){ return val<0 ? -val : val; }

Wouldn't you find it annoying to write:

        int "abs" (int "val"){ return val<0 ? -val : val ; }

So Lisp lets you incorporate your code as part of the language, and doesn't force you (as much) to hammer your thoughts into the built-in structures of it.

<comment><USER11> > Sure, you can do it that way -- but isn't it ugly? Isn't it harder to read?

Its the old tradeoff between using long-winded existing constructs or paying a complexity cost and forcing the reader to learn a new abstraction or DSL.

But I like your example. I imagine the extra lambda or string-quoting noise starts getting significant when you have lots of tiny test cases.

<comment><USER12> >Its the old tradeoff between using long-winded existing constructs or paying a complexity cost and forcing the reader to learn a new abstraction or DSL.

Yeah, that's definitely true. When macros are used to add to the language, you're acting, by definition, as a language designer. You can make good or bad choices. I normally think it's good to eliminate boilerplate (e.g., the _lambda_ calls in the examples) and to simplify things (passing bare symbols instead of strings). To my eye, the new coder actually has to learn _less_ than if they had to remember to wrap with lambdas, or use strings: you code just like other parts of the language. And that's a win.

However, bad choices with macros can definitely be made. Some people consider the _loop_ macro ugly, because it's a hairy ball of special cases with new syntax.

</comment></comment></comment></comment><comment><USER13> It's more likely to be GC that makes Lisp unattractive as an alternate to C++ for the things for which I'd normally use C/C++. I have spent way too much time wrangling Wowza, Hadoop, and other things written in Java in the last years, and have yet to see a good incremental garbage collector in a JVM to support things that do gigabits of throughput and need to do it every second day in+out. Pointers to the contrary are welcome...

</comment><comment><USER14> Racket [[http://www.racket-lang.org](http://www.racket-lang.org)] is a modern Lisp _with_ STATIC TYPING.

Quote from the static typing example on home page:

Racket's type system is designed to let you add types after you've worked for a while in untyped mode — even if your untyped program wouldn't fit nicely in a conventional type system.

#lang typed/racket

;; Using higher-order occurrence typing

(define-type SrN (U String Number))

(: tog ((Listof SrN) -> String))

(define (tog l)

      (apply string-append (filter string? l)))

(tog (list 5 "hello " 1/2 "world" (sqrt -1)))

To run the example, install Racket, start DrRacket, paste the example program into the top area in DrRacket, and click the Run button. Alternatively, save the program to a file and run racket on the file.

<comment><USER15> Hell, you don't even need to use typed/racket to implement static types. You can just use contracts with plain old Racket to achieve true lispyness...because contracts let you impose static type-checking selectively within your code and for staticly-typed code to symbiose with dynamically- typed code.

Racket Guide on contracts: [http://docs.racket- lang.org/guide/contracts.html](http://docs.racket- lang.org/guide/contracts.html)

Racket Reference on contracts: [http://docs.racket- lang.org/reference/contracts.html](http://docs.racket- lang.org/reference/contracts.html)

There's even this groovy academic paper: [http://www.eecs.northwestern.edu/~robby/pubs/papers/oopsla20...](http://www.eecs.northwestern.edu/~robby/pubs/papers/oopsla2012-stff.pdf)

It almost goes without saying that contracts are the mechanism by which typed/racket is statically typed.

</comment></comment><comment><USER15> Calling "strawman" on:

 _Which is more readable:_

The article misformats the example Lisp code [at least in two of my browsers]:

        (aset a x (+ (aref a x)
                          (aref b (- x 1))
                          (* 3 (aref b (+ x 1)))))

should be:

        (aset a x (+ (aref a x)
                     (aref b (- x 1))
                     (* 3 (aref b (+ x 1)))))

<comment><USER16> Yeah, I wanted to point it out as well, but I realized it's the text renderer that didn't format his expression correctly. If you do a copy-paste, you'll see that he indented it properly.

<comment><USER15> I did in fact copy and paste the code directly from the article into my comment above. The only reformatting I did was to add the same number of spaces to the beginning of each line in order to have HN display it as code.

If I was being pedantic about the formatting, the error would be excusable. But the code is presented as evidence that Lisp code is hard to read, so the poor formatting is highly relevant. Furthermore, when presenting C++ code earlier in the article, the formatting is correct:

        typedef std::map<std::string, int>::value_type vtype;
        vtype things[] = [vtype("one", 1),
                          vtype("two",   2),
                          vtype("three", 3)];
        std::map<std::string, int> m3(&things[0]

</comment></comment></comment><comment><USER17> It would be interesting to write a steganographic C++ program which is a valid lisp program when everything but identifiers and parentheses are stripped away.

<comment><USER4> That would be fairly easy if each line were prepended by a semicolon.

</comment></comment><comment><USER18> This is mostly orthogonal to the article's point, but the motivating example ignores the actual syntax that already exists in C++(11) to initialize classes:

        std::map<std::string, int> m1 =
        {
            {"one", 1},
            {"two", 2},
            {"three", 3}
        };

It may be relevant to mention IntelLib [1] here, which is one of many (ab)uses of C++ to enact DSLs.

[1] [http://www.intelib.org/intro.html](http://www.intelib.org/intro.html)

</comment><comment><USER19> Until I can write something like Ableton Live in _any_ Lisp I'll pass, thanks.

<comment><USER20> I'm trying to figure out why you posted this, it just seems like a non sequitur. Setting aside, for a moment, the issue of performance on signal processing tasks, from a GUI perspective there's no reason that an interface akin to Ableton Live shouldn't be producible in Common Lisp, Clojure or any currently maintained Scheme implementation.

If you're dependent on 3rd party C/C++ libraries for the signal processing, many schemes are pretty good for FFI, I've not used Clojure FFI or Common Lisp FFI so I can't comment much on them. Clojure seems like it would be as good or at least no worse than Java for interfacing with existing C/C++ libraries. Common Lisp FFI is going to be implementation dependent (like with scheme). I do know that Chicken Scheme's FFI is pretty easy. I made a wrapper for a subset of GLUT and OpenGL, and adding additional components as they became relevant to the project was straightforward.

Regarding performance, I won't comment on Common Lisp or Clojure, I never measured their performance for numeric tasks. Scheme, however, with something like Chicken Scheme has good performance, and again FFI is straightforward so making a C module to do some heavy lifting is not unreasonable.

<comment><USER19> Clearly the signal processing/audio side of the app can't be written in Lisp, and that actually makes up a pretty large chunk of the code.

And having to bridge everything over FFI really isn't very practical for a UI of this complexity either for performance and code overhead reasons. Being able to access your internal data structures directly without jumping through FFI/translation hoops is a big win for both efficiency and code maintenance.

So Lisp zealots can ding my comment all they want but it doesn't change the fact that intelligent, informed programmers all over the world continue to reject Lisp for very practical reasons that the true believers of the Lisp community will never understand.</comment></comment></comment>


All The Many Ways Amazon So Very Failed the Weekend - <AUTHOR> http://whatever.scalzi.com/2010/02/01/all-the-many-ways-amazon-so-very-failed-the-weekend/

<comment><USER2> This quote sums it up pretty well for me:

 _Which of these responses, in short, appears to be the work of actual adults?_

The problem with any business that succeeded quickly (in geological time) is that adults in the company get rich and then they quit, leaving children to take their place. Because adults built a resilient business the demographic shift is not noticeable until something big and unplanned happens.

</comment><comment><USER3> I just don't get Amazon's stance here. It's evident by other actions that they see the iPad as a serious competitior, which is smart. One of the announced features of Apple's book store is that publishers get to set their own prices. So Amazon...plays hardball with publishers who want to set their own prices. Seriously, WTF? Way to push those publishers away, guys. It's funny--Amazon's relationships with the publishers are its biggest advantage right now; Apple's reportedly moving fast here but Amazon has a HUGE head start. Way to blow your advantage. They're becoming like the Adobe of print or something.

<comment><USER4> If Amazon forces publishers to a price ceiling of $9.99 for Kindle eBooks; while the same books are selling for whatever price the publisher decides on iBooks/iPad, where do you think consumers will buy their ebooks? They're not blowing any advantage; it's a smart strategic move.

</comment></comment><comment><USER5> It seems extremely unlikely to me that this action was taken without careful consideration by a number of people at the very top of Amazon's organization.

This was not some off the cuff reaction, it had to be carefully planned. Any analysis that assumes it was a silly mistake therefore seems likely to be wildly off base.

<comment><USER6> Nope. Sorry. Don't buy it. This is not Amazon playing some deep game to drive the ebook market in directions that it wants. This was very plainly a screwup of epic proportions. I don't know enough about Amazon's internal structure or politics to finger a name but this does have the earmarks of an overreaching junior executive who was high on the idea that "hey we're Amazon, the 800lb gorilla, and we can call the shots and make publishers dance like monkeys." It may have been a group rather than an individual, but if this was an agreed upon action at the highest levels of Amazon... I'd say sell AMZN. Because that sort of hubris in management leads to bad decisions.

And think about what message this sends to other Amazon customers and suppliers. Would Amazon boot your startup off AWS if they decided you were serious competition? Would you want to bet your company on that?

</comment></comment><comment><USER3> "We will use the scar tissue from this painful mistake to help make better decisions going forward, ones that match our mission." -Jeff Bezos

[http://www.amazon.com/tag/kindle/forum/ref=cm_cd_ef_tft_tp?_...](http://www.amazon.com/tag/kindle/forum/ref=cm_cd_ef_tft_tp?_encoding=UTF8&cdForum=Fx1D7SY3BVSESG&cdThread=Tx1FXQPSF67X1IU&displayType=tagsDetail)

Some guys never learn, I guess.

</comment><comment><USER7> So far the web outcry seems to be about 50/50 for/against Amazon on this one. I personally can see both side's view.

My biggest issue is with their public airing of their dirty laundry. Seems a calculated move that has backfired.

<comment><USER8> I think this hurts Amazon more than it hurts MacMillan.

99% of Amazon's customer base will never hear about this little kerfuffle, so the good PR they got for "fighting for the little guys" will be fairly limited.

Meanwhile they've lost a _lot_ of good will on the other side: publishers and authors. The reaction from authors has been almost universally against Amazon, and Amazon has been courting them for years to self-publish, especially on Kindle.

The slight bits of positive "yay! Amazon fighting for low prices!" I think is overwhelmingly erased by the author support lost.

<comment><USER9> Why? What influence do authors have on where their books get sold? Naively, my guess would be "none". As a reader, I am certainly unconcerned with the opinion of authors on where I should buy my books...

The publishers will be pissed, but Amazon remains a key market, so they will get over it.

<comment><USER8> Amazon has been trying to sell authors on the concept of cutting out publishers entirely, and just jumping on board with Kindle self-publishing.

Given the reaction by authors to this move, I don't think many would be receptive to this idea any more - Amazon has shown that it's willing to bend its suppliers over a barrel and strongarm people in pricing. Given that Kindle self-publishing is still in its infancy, and still has yet to sign a major author willing to ditch a publisher, this recent news hasn't really helped its case any.

</comment></comment></comment></comment><comment><USER10> Almost all of these things are not Amazon's fault. The fault should be placed on the stupidly idiotic actions of the publisher.

<comment><USER11> Amazon not communicating its situation effectively is the publisher's fault?

</comment></comment><comment><USER12> AMZN is down over 5% today with headlines like "Amazon shares drop on news of e-book price dispute"...

</comment><comment><USER13> If I were a an author, I would be mad at the publisher, not at Amazon.

<comment><USER14> Can you explain why?

Specifically, I'm curious why wouldn't you want your representative (your publisher) to have the power to achieve the best possible outcome for you, the author. Disregarding the specifics of this case, why would you trust Amazon to set your books' prices, seeing as how they're trying to subsidize a platform, and they're in the volume business?

Thought experiment: As a developer, would you support a decision from Apple to set a price ceiling of $0.99 for applications in the App Store?

I haven't really seen a convincing argument from Amazon's supporters why they feel Amazon should be able to set prices to goods they don't produce. That is, apart from the fact that these folks would like cheaper books--and that misses the point of what's at stake here. Even if you agree with Amazon on their _current_ pricing model, it seems like an arbitrary and likely momentary alignment of opinion.

If MacMillan's ebook price system doesn't benefit them and their authors, they'll almost certainly adjust it. They're a profit-seeking entity.

As a side note, this whole episode reminds me of Walmart squeezing down the price of pickles by sheer monopsonistic purchasing power.

<comment><USER13> Lower prices don't affect my bottom line, they affect the publisher's bottom line. If it means more volume, I make more money. (You could argue that allowing the publisher less profit means there will be fewer books of lower quality, but that is already the case for programming books. There is already no money to be made.)

<comment><USER14> Your initial claims here don't follow: Lower prices certainly do have an affect on author's income. Authors receive a royalty based on a wholesale price, which is (normally) directly related to the price you pay as a consumer.

Publishers' and authors' interests are fundamentally aligned. Volume and pricing affect everyone in this equation. It seems like they should be the ones discovering and ultimately setting the right price/volume ratio, not Amazon.

(I have no idea what you're driving at in your last two sentences.)

<comment><USER5> Author royalties are usually based on Suggested Retail Price, not the actual retail price.

My impression is that Amazon is primarily fighting over the right to set actual retail price, like bookstores all across the country have done for ages. The publishers don't want that to happen because they believe Amazon will set them low enough to affect hardback sales.

But actual retail price has no effect on the money most authors make. A discounted book still pays the author a royalty based on full SRP.

At least that's how I understand this whole thing.

<comment><USER14> Yes, you're quite right that there is an important distinction to make there.

To clarify one point: Authors typically make their royalties on the wholesale price--that is, the actual cash publishers receive from booksellers like B&N and Amazon. For a printed book, that might be 50-60% of the list price ('sticker price').

The actual retail price, wholesale price, and list price are all related. A higher list price does result in a higher wholesale price, which in turn affects the royalty payment.</comment></comment></comment></comment></comment></comment>