Spotify's Spam War - <AUTHOR> http://motherboard.vice.com/read/spotifys-spam-war-could-change-how-we-listen-to-music <comment><USER2> DistroKid founder here.

When people generate fake streams on Spotify (ex: put a 45-second track on repeat all week, volume on zero, for the purpose of fraudulently extracting money from Spotify...), said people are actually stealing from legitimate artists. That's because Spotify pays artists a pro-rata share of Spotify's revenue, based on how many times an artists' music was streamed.

Math: If there's $10 in the pot and my band has 5 (real) streams, and your band has 5 (fake) streams--I'm getting $5 instead of the $10 I deserve.

Spotify's fraud detection system is a very good thing for artists. The system exists solely to protect artist, and has no other obvious upside for Spotify.

<comment><USER3> _" Spotify's fraud detection system is a very good thing for artists."_

It isn't if anybody can remove an artist's songs just by click fraud/too much listening. If they can detect the fraudulent plays then they should just not pay for those but should not remove the song.

<comment><USER4> How about if they can detect only some of the fraudulent plays? That changes the economics considerably. The reason the tax people charge punitive fines is because they know many tax dodges go undetected. Therefore they need the deterrent effect to make it uneconomical to try a scam.

If detection was 100% - then a scam is impossible and punishment/deterrence is unnecessary.

</comment></comment></comment><comment><USER5> > _My anonymous source was testing how long they could get away with > constantly streaming their own 45-second track on Spotify, to see whether > the company had mechanisms in places to restrict artists from playing their > own songs on repeat, and whether those micropennies per play would add up to > some real cash. They racked up about 45,000 plays over a month before > receiving this takedown email._

So what did this "annonomous source" do with the monies received from the 45,000 plays? Because describing it as a "test" is pretty generous to the person trying to game the system. A less flattering perspective might call it "attempted fraud" because it sure sounds self-serving.

> _Sure, that 's dirty play, and in a general sense, the action taken by > Spotify in this case is justified and correct. But on closer inspection, the > notice reveals a few troubling issues that could forecast a dark future for > music fans._

No, it means that people trying to scam retailers won't be allowed to scam retailers. What is so difficult to understand?

> _For one, Spotify took the extreme measure of removing the song entirely > without any kind of probation or appeal process. A logical endgame of this > type of defensive action is an environment where a corporation gets to > decide how users listen to music._

Oh, I see, this author has an ingrained perspective of entitlement. Right. Well, I don't share their opinion.

Frankly I think DistroKid should ban that "testing" jackass and cite this specific article as why it happened. Mostly I think this as a happy DistroKid client.

> _Take the case of Matt Farley, who released some 14,000 original songs on > Spotify and iTunes, some with celebrity names in the title enticing people > to play the tracks to earn some revenue for his efforts._

Yeah, DistroKid now has a checkbox hoop to jump through exactly because of this kind of shithead, counter-productive behavior. That's not engaging in art. That's being a shyster abusing the market for art.

Every time one of these "clever" little stunts gets pulled, I have to do more work on my end to prove I'm legit. It's not terribly difficult to work with, but it means DistroKid is having to adjust and spend time and effort in areas not primary to their service. That makes me pretty ticked off, both for the sake of DistroKid, and the potential jeopardizing of being able to maintain storefront access as an independent when clowns keep trying to steal from the "Take a penny" tray.

<comment><USER6> How many times is an artist allowed to play their own song before it's considered fraud though?

<comment><USER7> 45,000 plays in a 30-day month is 1,500 times per day, or 62.5 times an hour. Which makes sense as they say it's a 0m 45s long track.

I don't think this is necessarily an area where you want Spotify to say "as long as you don't play it _x+1_ times you're fine" because then a lot of people will just play it _x_ times a day every day. Playing a track 62 times an hour _for a month_ is clearly fraud.

<comment><USER6> I get that it's fraud. People who want to be fraudulent will be testing this though. What if it were a less clear number - 20,000 times? 5,000 times? All it takes is one musician with a friend who has even limited coding experience to make it reasonably sophisticated.

<comment><USER8> Fraud is always combatted by making it cost-prohibitive, not impossible. You could write a botnet that plays a random song via 1,000 user accounts 24/7 that looks imperceptible.

It's the same issue Google had with black hat search results. They try to make life hard for people who break the rules and generally don't affect people who follow the rules.

And as long as there's a reasonable alternative, they have a financial incentive to keep the service from onerous restrictions.

</comment></comment></comment></comment></comment><comment><USER9> The insane thing here is that Spotify _could_ just change the incentive structure and then it wouldn't _have_ to take drastic action.

"You will gain 0.00x cents per listen, _up to a maximum of 100 listens /day for any individual user_" and "Your songs must all sound like distinct pieces, as judged by our testing team" seem jointly sufficient to rule out the two biggest forms of abuse here: sure, let someone stream 30-second clips of silence; after 50 minutes stop paying for it. Multiple silent clips are a violation only because they both sound the same.

<comment><USER10> It could be even easier: don't count every listen the same; split each user's subscription fees among the songs they listen to each month.

<comment><USER11> Why don't they do that?

<comment><USER12> In any given period of time some people are going to listen to the same tracks multiple times. For example, on many radio stations the selection of music is really quite small, and the majority of airtime is occupied by less than 100 songs. If people are repeatedly listening to those songs then why shouldn't the artist that created them receive compensation proportionate to the number of plays the song received? I couldn't find data on Spotify users' listening habits, but here's my own, sorted descending by track plays, for example: [http://www.last.fm/user/GarrettGrimsley/library/tracks](http://www.last.fm/user/GarrettGrimsley/library/tracks)

<comment><USER10> If everyone listened to the same amount of tracks, they would receive the exact same amount of compensation as they do now.

My suggestion (which has been raised by others many times), is that if a user listens to 1000 tracks/month, their listens should be worth 10x less than a user who only listens to 100 tracks/month, since they are both paying Spotify the same amount.

I'm not sure if it would result in very meaningful distinction in how much artists are actually compensated (maybe it would negatively harm smaller artists because, hypothetically, they are listened to more by people who listen to lots of music).

I'm actually pretty curious about why they have chosen to stick with this model, since the alternative I've described is pretty obvious and has been proposed many times.

I would say that there is more value in songs that are actively selected vs just played automatically (e.g. I often go to an artist's page, select a specific song, then let the playlist play without me paying much attention), but I don't know if that's really an economically meaningful distinction.

<comment><USER13> Flattr works like that. I found it made me, as a low volume user, very concious about what I click on.

If Spotify made the change I would probably think more about what I listen to. Perhaps even use a second non-paid account for certain listening. But I might be a minority.

I would suggest yet another model: payment per unique listeners per day (or week, or month). It wouldn't be a big step from their current model but would be a lot less gameable.

</comment></comment></comment></comment></comment></comment><comment><USER14> I'm very confused by this approach. You have two types of users "free and ad- supported" and paid subscribers.

For the subscribers, it's easy. Take the amount they pay, take a service fee, and the rest is allocated between the artists they play that month.

The "free" users, take the ad revenue generated by the user (up to a cap) and allocate to the artists they play during a month.

Pay on play really does not seem to work when you have two different revenue streams and you're trying to balance both.

</comment><comment><USER15> >> Removing songs suspected of fraudulent plays is just one example of the power that digital storefronts like iTunes and Spotify have over how we listen to music, and the music itself. These services are slowly writing the rules of what is and isn't considered a song, or an acceptable song title.

This just doesn't seems like a new problem. Media outlets have been doing this since the beginning. Play along or make your own way. If you become big enough, they'll beg for you to come back into the fold.

</comment><comment><USER16> I felt the author didn't like what happened to his friend and grasped at everything possible to rile people against spotify. Spotify is a music distribution platform that works in a free market. If you dont want to listen to a track from them, look it up on many of the other platforms. Given musics ugly history with piracy, I doubt we will ever find ourselves in a world where spotify has a monopoly and we would see the effects the author is describing. If you have legitimate fans, you and your fans will find a way to connect, with or without spotify.

</comment><comment><USER17> >> A logical endgame of this type of defensive action is an environment where a corporation gets to decide how users listen to music. << This isn't exactly a new problem, and I'd argue it's harder to do now than before, and a large reason why is because skipping a track is now possible.

</comment><comment><USER18> > Spotify seems to be intensifying its efforts to combat fraud with actions > that could leave the door open to censorship.

Unless the government is planning to get involved somehow, censorship is the wrong word. Even setting that aside, though, it's hard to understand what that sentence might mean. Best guess is that the author means Spotify would remove spam. I can't imagine any justification for using a word like censorship to describe an action like that.

</comment><comment><USER19> > Other musical spammers simply upload the same song thousands of times with > different titles that are purposely similar to major hits

Reminded me of: [https://en.wikipedia.org/wiki/U2_(EP)](https://en.wikipedia.org/wiki/U2_\(EP\))

<comment><USER20> Oh, I thought that was a joke about U2 on iTunes ;)

</comment></comment><comment><USER21> Aren't the PROs (ASCAP and BMI) collecting a % of revenue from Spotify and Pandora and then distributing that money based on streams to the artists? Understanding this side of the music business makes no sense to me

<comment><USER5> Those would typically be for major label signed artists. Some independent artists might be affiliated with ASCAP and/or BMI, but not always. It's my personal guess that most acts who upload via services such as TuneCore, CD Baby, or DistroKid are not members of those societies, and thus get their payments directly (through the service used).

</comment></comment><comment><USER22> Ryan Walsh wrote this version for Vice, but I found his original for BDCwire even more compelling.

[http://www.bdcwire.com/danvers-dude-makes-23k-musically- spam...](http://www.bdcwire.com/danvers-dude-makes-23k-musically-spamming-on- spotify/)

It's all focused on an artist who sits halfway between legitimate music and spam. It raises questions about what counts as art, and what artists need to do to avoid obscurity in a world with more content uploaded every day than anyone could stream in their lifetime.

</comment><comment><USER23> >For one, Spotify took the extreme measure of removing the song entirely without any kind of probation or appeal process. A logical endgame of this type of defensive action is an environment where a corporation gets to decide how users listen to music.

My concern here is quite different from the author's. If it is easy to trigger takedown on tracks with no appeals process, this can be used by non-owners of the track to troll artists or censor tracks they don't like

<comment><USER24> Well, the author _did_ consider that possibility further down:

> If I wanted to seek revenge on a relatively unknown artist that I had a > personal vendetta against, couldn't I simply repeatedly stream one of their > songs in an effort to get their work removed from the service?

And this type of thing _has_ been a problem in related industries. Things like this (used to?) happen with internet ad agencies, wherein a competitor will try to hurt your business by emulating click-fraud on your website's ads. Or a really passionate fan will think, "I'll support these guys by clicking their ads a hundred times!".

</comment></comment><comment><USER25> I fear it is not possible to prevent people from setting up computers/virtual machines that play certain songs 24/7; and I'm surprised that there aren't services yet that offer to do that on scale.

This might mean that Spotify's current business model can not work longterm?

<comment><USER26> > _and I 'm surprised that there aren't services yet that offer to do that on > scale_

How hard have you looked? I don't say that to be snarky, but that sounds like a service with a bit of overhead for startup with little maintenance to run. I don't think it would be openly advertised, however, for fear of legal action from music services.

<comment><USER12> This story was linked in the parent article:

[http://motherboard.vice.com/read/i-built-a-botnet-that- could...](http://motherboard.vice.com/read/i-built-a-botnet-that-could- destroy-spotify-with-fake-listens)

</comment></comment></comment><comment><USER27> Spotify doesn't pay artists anything. They pay the rights holders, and they in turn pay artists whatever is in their contract.</comment>


Show HN: Sleep coaching and therapy to improve sleep - <AUTHOR> http://www.sleepedy.com <comment><AUTHOR> Hey Hacker News

Sleepedy is an iOS app that pairs you with a sleep coach & administers sleep therapy. We want to help people sleep better without taking any sleeping pills or aids.

Sleepedy is built around Cognitive Behavioral Therapy for Insomnia or CBT-I ([http://sleepeducation.org/treatment-therapy/cognitive- behavi...](http://sleepeducation.org/treatment-therapy/cognitive-behavioral- therapy)). People often confuse sleep hygiene (eg: Don't use screens at night) with sleep therapy. Sleep hygiene is good for small deltas in sleep improvement, but if you've struggled with sleep problems for a while, sleep therapy is the way to go. That being said our app is designed for day time use and is not really meant to be used at night.

Our therapy is a little too long to explain in this comment but we created a short guide to it that you can read here: [https://www.sleepedy.com/cbt-for- insomnia/](https://www.sleepedy.com/cbt-for-insomnia/)

I suffered from insomnia and went through a CBT-I program that helped me sleep better. The flip side was it cost me $700 out of pocket. My hope is that Sleepedy makes this incredibly effective therapy more accessible.

Please try us out, we would love to have you onboard and help you get better sleep.</comment>


Missing AirAsia Flight Stirs Old Debates Over Safety Issues - <AUTHOR> http://www.wsj.com/articles/missing-airasia-flight-stirs-old-debates-over-safety-1419816856

<comment><USER2> pay wall.</comment>


What Programming Languages Are Used Most on Weekends? - <AUTHOR> http://stackoverflow.blog/2017/02/What-Programming-Languages-Weekends/ <comment><USER2> One fascinating point is that one of the most heavily searched keywords by two orders of magnitude, and that favors the weekend is PHP.</comment>


Medieval Price List - <AUTHOR> http://medieval.ucdavis.edu/120D/Money.html <comment><USER2> Medieval pricing and economy is interesting. I just listened a lecture last summer.

These were not free market prices. "Fair price" was moral issue within the community. You could not charge too much extra if the customer faced sudden urgent demand. And buyer was not allowed to exploit the seller either. Exploiting temporary scarcity or oversupply when bargaining would get you into trouble with the law, the guild etc. Determining the fair price level was delicate political process.

<comment><USER3> Not necessarily a bad thing, as prices weren't regulated to be inflexible either. In response to merchant abuse, adulteration and fraud a whole slew of measures evolved, including the 1266 Bread and Ale Assizes. The court assizes were responsible for setting the fair price which both took into account supply and demand, and local variation, and for sampling the goods produced. This was not a national economy, the "right" price for ale or grain could vary just a mile or two down the road, or in the next valley over, subject to local weather and harvests. Which is why the local assize courts controlled it.

One of the other interesting things was bread and some other foods adjusted to supply and demand by changing weight not price. Each assize set the current right weight of a farthing loaf. A standard weight loaf came much later, in the 19th century!

There were also aletasters, breadmasters and a whole variety of others who would engage in sampling, and sometimes use of secret shopping, to ensure the local merchants for a particular good were producing quality, weight and not adulterating. What is less clear is whether they took their role seriously or whether it was a sinecure for free food and beer. The fines seem, in some regions, to have often been small and arbitrary, and it was often all under the auspices of the manor. Was it a valuable piece of Medieval regulation, or corruption? Well, going on how the Assizes of Bread and Ale played out, there was ample opportunity for local corruption and arbitrary fees.

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

<comment><USER4> > _What is less clear is whether they took their role seriously or whether it > was a sinecure for free food and beer._

Could it have been both? I mean, if I decided to work as a taster of bread and ale just to have free food, I'd still like that food to be of at least passable quality, and I would complain if it was adulterated. The incentives of employer and employee seem to align here.

</comment></comment></comment><comment><USER5> Thatcher's daily wage: 3 pence a day. Price for a tunic: 3 shillings.

A tunic is two weeks' earnings. Let's say you make $36,000 a year; two weeks' earnings for you is $1500.

The invention of mill-powered looms began the Industrial Revolution, completely upending the economies of Europe.

<comment><USER6> Thatchers didn't do too well, not much use for that profession any more.

<comment><USER7> They definitely suffer from a grass ceiling.

<comment><USER8> Well done.

</comment></comment></comment></comment><comment><USER9> This is super interesting, however I think it would have been more fun to read if it also had a column of approximate price in adjusted $CAD for example. That way it would be easier to get a "feel" for what stuff was worth.

Also, why isn't Salt on the list? Wasn't that a crucial thing?

</comment><comment><USER10> Feels like I'm reading a Dungeons & Dragons item sheet except using British units instead of gold, silver, and copper.

<comment><USER11> As it happens, I've been putting together notes for a new D&D campaign I'll be running in the near future. I downloaded this exact price list as a reference three days ago.

</comment></comment><comment><USER12> Beer .5 ducat a pint. College starting at 640 ducats a year up to 2560 ducats a year. So formal education started at 1280 times and went up to 6400 times the price of a pint. Which at $6/pint today would be ~$7500 to $36k a year.

<comment><USER13> In the Bay Area beer is upwards of $10+ now.

<comment><USER14> That padded salary doesn't feel too good anymore, does it?

</comment></comment></comment><comment><USER15> Great data. I would love to normalize this and apply an inflation calculator so people could know what things cost in these times. Anyone want to help?

<comment><USER16> Yes, I would love to see this in modern prices, no matter how roughly it gets converted. The use of pre-decimalized pounds makes it even more inscrutable. It would make that list a hundred times more interesting if we had some basis to compare with.

</comment></comment><comment><USER17>
      Wine:
        Best Gascon in London         4d/gallon   1331        [2]     194
        Best Rhenish in London        8d/gallon     "          "       "

This is reversed now, German Riesling much cheaper than Bordeaux.

<comment><USER18> At the time, Bordeaux was an English possession (Angevin Empire) so the lack of any complications like import duties would account for the price difference:

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

</comment></comment><comment><USER19> Fascinating list, but the notation is confusing in places. The pound sterling is denoted by an L:

         1 pound (L) = 20 shillings (s)

in the introduction, but in the text both the L and the £ are used, sometimes in the same line!

        University:
        Minimum     £2£L3/year  Late 14 cen [3]     75

What have I missed?

<comment><USER20> >What have I missed?

Perhaps that he wrote "The list of medieval prices which follows is by no means complete or thoroughly researched" in the very first line?

It's not a professionally compiled list meant to present to your boss.

It's just a list that some guy made and put online.

<comment><USER19> Yes, I understand that. I'm just confused by the author's use of BOTH the L and the £ together, on the same line.

</comment></comment></comment><comment><USER21> Ignorant question: What is a pound in this case? It isn't actually a pound of silver in weight, right? I get really confused with modern British currency and what silver the system was based on in the past, etc.

If I see that something is 20 shillings, does that mean it cost me a pound of silver by weight out of the ground to buy?

<comment><USER22> Yes, it's a weight of silver, around this era.

One Troy pound (373g) [of silver] divided into 240 pennies (making a penny about 1.55g). Exactly what a shilling is varies, between 4 and 6 pennies. [ [https://regia.org/research/misc/costs.htm](https://regia.org/research/misc/costs.htm) ]

<comment><USER23> The last time that a "pound sterling" actually bought a pound of Sterling silver was 1300. Since then, currency debasement was the name of the game and in the next 300 years the silver content of the currency shrank by a factor of three.

</comment></comment></comment><comment><USER24> So a year's rent for a shop in mid London was twice the price of a cow or a pile of silver worth £240 today.

edit: or half a year's wage for a laborer, equivalent to aprox £9,000 today.

Those ratios seem to have changed: apparently the benefits of greater efficiency in mining, cattle raising etc. have not be evenly distributed.

</comment><comment><USER25> For anyone else who is wondering what a biciron is, apparently it's a t-shaped iron wedge that a blacksmith uses to shape metal against. The name seems to come from a contraction of iron beak, in all the references I came across online it is written as two words "bic iron".

[https://www.hobby-machinist.com/threads/anvil-stand- question...](https://www.hobby-machinist.com/threads/anvil-stand- question.16293/)

[https://www.practicalmachinist.com/vb/antique-machinery- and-...](https://www.practicalmachinist.com/vb/antique-machinery-and- history/peter-wright-anvil-200262/index3.html)

<comment><USER26> I read it in the list, at first, as bitcoin, and had to do a double take.

</comment></comment><comment><USER27> [http://projects.exeter.ac.uk/RDavies/arian/current/howmuch.h...](http://projects.exeter.ac.uk/RDavies/arian/current/howmuch.html)

[https://thehistoryofengland.co.uk/resource/medieval- prices-a...](https://thehistoryofengland.co.uk/resource/medieval-prices-and- wages/)

[http://www.nationalarchives.gov.uk/currency- converter/](http://www.nationalarchives.gov.uk/currency-converter/)

</comment><comment><USER28> Its not that long ago we still had 3d etc. 1/4 penny, 1/2 penny here in the uk. Thrupenny bit.

<comment> dan-robertson We still had ha'pennies after decimalisation. Even before, the pennies weren't worth what they used to be. In parts of the nineteenth century a penny would be worth something on the order of what 50p is worth today.

I guess with money stored largely in bank accounts and financial instruments, inflation becomes a more reasonable thing and the fact that it's annoying to buy things with physical money matters less. Yet even at the start of the twentieth century banknotes could be worth a lot more than anything today (in the U.K. you only go up to £20 normally. Compare to the us where $100 isn't abnormal, or to 1900 when 100 £20 notes could buy a moderately sized house (but there were also £100, £200 notes, and higher denominations though I doubt they were used much). I think the U.K. should remove every coin less than 10p (ideally I would get rid of everything less than 50p but perhaps there should be a 50p and 25p coin for some time) from circulation and issue some new banknotes (at least a £50 note that shops accept, so maybe a £100 note should exist too). But I guess that isn't going to happen because no one really cares about cash.

<comment><USER29> > I think the U.K. should remove every coin less than 10p (ideally I would get > rid of everything less than 50p but perhaps there should be a 50p and 25p > coin for some time)

Aim for 5p to be the lowest, to start.

Even in the Nordic countries, where there's less wealth inequality, the smallest coins are worth 8.4p (Norway 1kr), 8.1p (Sweden 1kr), 5.7p (Denmark ½kr), 4.3p (Finland 5¢).

> issue some new banknotes (at least a £50 note that shops accept

They already do accept them where they're common (e.g. touristy places in London) so the problem will solve itself, but in any case, the new £50 will be issued in 2021.

</comment></comment></comment><comment><USER30> Rent: 5s/year. Horse: 50s.

Yep. Awesome.

<comment><USER31> Rent's so variable, but rurally can certainly be as low as £2,400pa (£200pcm) today. A horse today could also easily exceed £24,000.

<comment><USER23> And indeed those £2,400pa of rent give you a room with plumbing, central heating and hot water...

</comment></comment></comment><comment><USER32> I'd love to use this data and create some sort of feudal economic simulator and/or build an RPG with these prices as opposed to arbitrary "gp" values.

</comment><comment><USER33> Can't help but be reminded of that immortal sales pitch: _"I can make whatever you wish for a wee little bit more than me competition."_

</comment><comment><USER34> My whole life I thought it was spelled "midevil" due to this time period being especially evil. Every day you learn something new.

<comment><USER32> From French médiéval ("middle"), from Latin medium ("middle") + aevum ("age").

</comment></comment><comment><USER35> Labourer: £2/year max

7 Books: £5

An average labourer in the UK today would make about £17,000pa, making these books the modern equivalent of about £42,500 or £6,000 a piece.

Obviously this was at a time before mass printing was available, but this really puts into perspective just how absolutely unattainable information was for the average person back then. Remarkable.

<comment><USER36> Somewhere I'd run across a reference to the price of Adam Smith's _Wealth of Nations_ (published 1776), in terms of a general workingman's wages.

As I recall it was on the order of about 1/5 a typical annual income.

This being in the late 18th century, 300 years _after_ Gutenberg, with a well- established printing trade.

Books _remained_ staggeringly expensive.

The progress made in printing over the course of the 19th century boggles the mind. As of 1800, typical presses were _still_ made of wood, and though printing was generally in quarto or octavo pages (4-8 impressions per side of paper), a pressman might turn out 120 - 180 impressions an hour, and I believe that's generous.

The improvements from there were:

\- Cast-iron rather than steel presses. Greater strength, lighter weight, improved efficiency and mechanism. Print rates doubled.

\- Steam-powered presses. The pressman no longer was responsible for physically pressing each image.

\- Rotary presses. Rather than Gutenberg's repurposed wine-press design, type was placed on a drum, with sheets fed through the mechanism.

\- Electric drive. Like steam, but less steamy and more sparky.

\- Web presses. Rather than individual sheets, a continuous sheet of paper. This is where paper-on-rolls came into being.

\- Speaking of which, paper manufacturing was improving, and costs falling, all through this period.

\- At the same time literacy rates were increasing from ~10-25% ~1700 to 95%+ by 1900. The people could now read.

\- Typesetting enhancements, including oil-based inks, offset-type (where the print impression is a 3rd generation from the type originally used to cast the intermediate slug), linotype, multi-colour presses, improved engraving (for images), and eventually photo-lithography.

By the end of the century a high-speed electrically-powered Linotype web press could achieve a million impressions an hour or more.

Compare with webserver hit rates and their improvement from 1990 - 2020.

<comment><USER37> And after that:

\- Inkjet

\- Laser

\- Amazon

<comment><USER38> That's not really compatible to improvements in printing technology. Printing on home inkjet or let was and still is hugely more expensive and slower per page than buying a mass produced book or newspaper, and Amazon didn't introduce any printing technology unless you were referring to e-ink used in Kindle (but they didn't invent it).

<comment><USER36> Laserjet printing is comparable to the cost of commercial photocopying, at a few pennies per page. Inkjet is, of course, far more expensive.

There is a trade-off in cost, speed, and access. If you've got a reasonably high-speed laserprinter, you can provide a printed copy of a book in a few minutes. There are binding options available as well, some of which are quite comparable to lower-grade commercial paperback bindings.

Amazon's book sales inclue traditional hard- and soft-cover pre-printed materials, as well as print-on-demand, and electronic books. I'd consider most of Amazon's book sales and production at least adjunct to, and in cases, directly part of, improvements in print technology. Distribution itself has been a nontrivial problem.

</comment></comment></comment></comment></comment><comment><USER39> Instruction at Oxford is about 5 anvils/year. Think there has been some price inflation since then? Maybe better to compare it to barrels of beer.

<comment><USER40> I am not sure what you mean, but an anvil is about as high-tech a device as you get in medieval times. They would be one of the most expensive items in a village.

<comment><USER39> Yes, they are cheap now, that's why beer would be the better comparison.

<comment><USER41> Still not cheap for a quality anvil, good ones can cost more than a used car.</comment></comment></comment></comment>


Uncov - An Angry Techcrunch - <AUTHOR> http://www.uncov.com/ <comment><USER2> Yes, except TC has actual information in it. Uncov is just attention grabbing negativity.

<comment><USER3> Then why can't I stop laughing?

<comment><AUTHOR> Uncov is funny and it makes you think.

</comment></comment></comment><comment><USER4> What happens when you cross maddox with techcrunch...

Actually, if you really did that, there would be at least five mentions per article of the word 'dipshit,' which there aren't.

</comment><comment><USER5> The people on Techcrunch are already angry enough for me...

</comment><comment><USER6> Havent heard of this one before.

TechCrunch:Average visit Per Day:846 Uncov:Average visit Per Day:893 [src. sitemeter ]

<comment><USER7> TechCrunch does not have anywhere near that number of average visitors per day, FYI.

<comment><USER8> I'm sure that it does. When we got a minor crunching (a feature on all of the YC companies from WFP07--so we were one link among a dozen), we saw about 750 visits from TC on the first day. This was smaller than the number of visits we get from Google or from our Open Source projects home page, but still...large enough to make me certain that TC gets more than 846 (because I'm certain that everyone doesn't click every link).

<comment><USER7> I was implying that they received many more visitors than the number he gave. As of the writing of this post, their whos.amung.us widget notes 804 unique users browsing.

</comment></comment></comment></comment><comment><USER9> The idea is great. But the humor not so much.

</comment><comment><USER10> If this guy reviewed his own site the way he reviews others, he'd call it a few choice names and suggest that it shut down.

uncov is techcrunch/valleywag except that uncov's Fonzie is on waterskiis and is in mid-air over a shark.</comment>


Nest, Google and you - <AUTHOR> https://nest.com/blog/2014/01/13/nest-google-and-you/ <comment><USER3> I'm sorry but I am imagining the whole article without reading it, and thinking of all the platitudes and assurances about things that they really have no control over... How about an honest acquisition blog post? "We are cashing out. We hope that they won't flush us down the drain. We are part of Google's unstoppable march towards tracking and logging all human activity as we approach the technological singularity, which Google is quickly approaching, if the NSA do not beat them to it." How about something like that for a change?

Edit: Ok, I read it. Yes, it was the blog post I was imagining.

<comment><USER4> I mean this without any snark, but you can't really cash out without playing the game, and then meeting the requirements of the cash out agreement.

I'm sure it's in the agreement somewhere that Fadell must essentially assure existing Nest customers -- regardless of what's going to really happen.

From Fadell's post:

      Our privacy policy clearly limits the use of customer
      information to providing and improving Nest's products
      and services. We've always taken privacy seriously and
      this will not change.

This is a useless statement. Once Google owns it, they could perceive that "improving" your Nest experience is to hook it up to Google+, or insert/parse your Google Calendar for silly events, or serve you customized ads based on how frequently you move past the IR sensor, or the temps you prefer, or something silly like that.

Page can do whatever the hell he wants with Nest. And with him paying $3.2B for it, I imagine he has some ideas already.

<comment><USER5> Right, that's such a weasel statement. It jumps right out at me- there's just about nothing they couldn't justify under terms like that with a little visit to the Spin Doctor's office.

<comment><USER6> It's nowhere near as bad or ridiculous as what David Friedberg, ex-Googler, and CEO of the Climate Corporation wrote when he revealed that he had sold the company to it's very own archenemy... Monsanto.

[http://www.newyorker.com/online/blogs/elements/2013/11/why-t...](http://www.newyorker.com/online/blogs/elements/2013/11/why- the-climate-corporation-sold-itself-to-monsanto.html)

Will be quite interesting to see how many programmers and scientists jump ship over the next year. Might explain the sudden recruitment drive.

<comment><USER7> Or Al climate-change Gore selling Current.TV to a major oil producer.

</comment></comment></comment></comment></comment><comment><USER8> Will Nest customer data be shared with Google? Our privacy policy clearly limits the use of customer information to providing and improving Nest's products and services. We've always taken privacy seriously and this will not change.

This phrasing is pretty ambiguous/vague if you ask me. "Taking privacy seriously" will not change-- though I'm sure few behemoth Internet companies, including Google, would say that they don't take privacy seriously.

I think the best summary of Nest's answer is: Yes, we will share customer data with Google. But we'll take it seriously.

<comment><USER9> If they're being acquired it's now Google's data. So the question "Will Nest customer data be shared with Google?" is asking "Will Google share Google's new customer information with Google?"

The absurdity of the question should answer itself.

There will probably be a new customer agreement once the whole thing is finalized.

<comment><USER10> For many years data was actually siloed between different products within Google (probably by accident) and there was some blowback when Google announced that they were merging all of it. So the concept of internal firewalls does exist, but given that all other Google products were merged I would assume that Nest will be as well.

<comment><USER11> The concept of internal firewall did exist, until they were accidentally removed that one time.

Why would firewalls between silos continue to exist when they've already been blown away?

</comment></comment></comment></comment><comment><USER12> Its amazing to me that the second announcement after the acquision is all about how Google won't be privvy to your data.

Seems to me that Google has completely lost control of the narrative.

A few years ago people would be talking about how great this kind of integration would be in their lives, now its just Google+ jokes.

<comment><USER13> I guess you shouldnt consider HN comments and Google+ jokes to be representative of general population or even elusive "techies" audience. Even more, HN is so different in comparison with HN a few years ago.

However, I agree with you about Google losing the control of the narrative.

<comment><USER14> Google+ has been the butt of jokes on the Daily Show since launch. If that's not "general population," then what is?

[http://www.thedailyshow.com/watch/wed-october-30-2013/jon- st...](http://www.thedailyshow.com/watch/wed-october-30-2013/jon-stewart- looks-at-floaters)

[http://www.thedailyshow.com/watch/wed- april-18-2012/moneygal...](http://www.thedailyshow.com/watch/wed- april-18-2012/moneygall---google-gets-fined)

[http://www.thedailyshow.com/watch/tue- january-31-2012/indeci...](http://www.thedailyshow.com/watch/tue- january-31-2012/indecision-2012---pander-express---barack-obama-s-online-town- hall)

<comment><USER15> 1.5 to 2 million viewers, 56% male, 45% college-educated, 37% making over $75k, almost completely aged 18-49.

<comment><USER16> While I agree that this isn't the "general population," it seems to me that this is an incredibly important demographic to Google.

<comment><USER11> The only population that matters: people with money, who are willing to throw it at shiny things without thinking too hard.

</comment></comment></comment></comment></comment></comment><comment><USER17> Google+ accounts for all Nest owners. On a serious note I wonder what will founders do next. I thought they had a great chance to build next great company, like Apple. This is strange situation, Google and other big players have so much money they seem to be able to convince anyone.

</comment><comment><USER18> Well I was going to buy one ... forget it. In fact if I had access to VC I'd want to build a competitor. Sure you're competing with Google. But being the second acquisition by someone else is still not a bad bet.

<comment><USER19> I can see a market for things that are explicitly "anything but Google" growing as more and more things like this happen. Not now, probably not next year, but soon.

<comment><USER20> ...a very niche market for techies who are aware of and take issue with Google's privacy issues.

<comment><USER19> It's _currently_ a very niche market for techies, my prediction is that it will grow to include a broader slice of people who feel uncomfortable with giving one organization that much power.

</comment></comment></comment></comment><comment><USER21> Am I the only person on Hacker News who doesn't care that Google collects data and uses it to build targeting models?

Because I really could not care less.

Suppose there was a coffee shop where, after you leave, they dust your mug for fingerprints and record what they know of your visit. And suppose they aggregate this data day after day.

Is that creepy? Yes. If I looked over my shoulder and saw the guy carefully dusting my left dishes, it would be creepy. And I'd have some choices to make. Do I boycott? Do I wear gloves for added privacy? Do I freak out about my "privacy" every time somebody mentions the coffee shop?

Or do I keep coming back, because they have products that nobody else does, and they give me a great service at no fee.

I care about my privacy. I care how it affects my life. And these things just don't. They don't. I couldn't care less about them.

<comment><USER22> Exactly why I still use their services. They provide some great services for free just to show you some targeted advertising. Plus, much of the data collection they do on you can be opted out of.

</comment></comment><comment> k-mcgrady OT, slightly related.

In the threads I've read about this acquisition most of the 'anger' has centered on Google+. It's clearly not going anywhere - so what could Google do to fix it for those who despise it?

Personally I would like to see better integration for people with multiple Google accounts. I have 5 Google accounts. I don't need 5 G+ profiles. The other accounts I use only for email, a YouTube channel, and drive for business docs/spreadsheets. I should be able to tell Google I have a G+ account associated with this email address please don't force it on me on these other accounts. If Google really wants G+ to be accurate this benefits them too - <USER2> fully filled out profile instead of several being used for different reasons with different and inaccurate info in them.

</comment><comment><USER23> It's amazingly sad, predictable and vapid the commentary has become.

<comment><USER24> Thank you, Google employee.

(No, not a guess. It's in their profile.)

<comment><USER23> Oh, busted. I should have hid that!

Obviously my comment must be incorrect and that HN commentary has not turned into a rather predictable bit of the following:

1\. Google is in the news about a new thing 2\. Mention Google Reader 3\. Mention how something not obviously related to Ads is somehow going to sell your info 4\. Throw in claims of giving the info knowingly to the government.

Nothing about analyzing the whole home automation or internet of things market? Nothing about competitive analysis or other perspectives.

Yes, Google has lost control of the narrative as someone else said, but it's sad had jaded and taken in by it people have become. Before you press the reply button, you know, you could choose to be different than every other web site that has comments, and add something that elevates the conversation.

Just my 2 cents.

BTW, if I wanted to just shill for Google, I'd create an anonymous profile. I obviously include lots of disclosure information so people of aware that I am an employee and can make their own judgements. There's lots of individual stuff to criticize Google on, on a case by case basis. I could list lots. I don't think knee-jerk responses that fill up these threads improve the level of discourse on the site.

<comment><USER24> I'm not trying to say you're wrong, or that your opinions are invalid, but not everyone is going to click through to every commenter's profile. When one's own company is the subject of a story, it's good form to identify potential conflicts of interest in _each and every thread_. As I've been told over and over again in the ethics training I have to take every year, it's important to reduce even the _appearance_ of trying to mislead people about anything to do with the company. Does Google not require such training?

<comment><USER23> My kingdom for a .sig file, everything was easier in the era of USENET. That is the chief reason I added my disclosure to my profile was that typing it in every thread was getting tedious.

<comment><USER25> Oh God yes. The one thing I hate about the current era of technological awesomeness is how NNTP keeps getting reinvented in new contexts, and reinvented very badly at that.

For that matter, I consider a well run mailing list to be a barely adequate substitute for an NNTP group (for which we can blame Outlook), but now those are being reinvented badly as well.

<comment><USER24> +100

</comment></comment></comment></comment></comment></comment></comment><comment><USER26> From Nilay Patel's interview with Tony Fadell:

 _NP: Two years ago, I actually remember this really distinctly — it was a very motivating Tony quote — you told me that the whole point was to not build products, because products and services will fade away. The point was to build a really great business. That to me was Tony, that was what you guys were doing. But now you sold the business. Why?

TF: Well, we're about creating the business. We still have a long way to go to create this business, and I'm also not naïve to the fact that we're going to need substantial resources to fulfill what we set out to do. This is not just spinning up a server and all of a sudden you have scale, and using other people's infrastructure for software distribution and all this other stuff.

TF: We've got to fight hand-to-hand combat in retail spaces. We have to go in and literally build tons of infrastructure for customer support and servers and all those things. I want to focus on building the differentiation for our customers, not take a sideline to building infrastructure that's not customer differentiating. When I'm busy focused on those things, the competition is starting to nip at our heels.

TF: I really want to build a great business, and I think this is the best way to build that business. If we would have kept going alone — you see every company wants to be the Nest of something, some unloved category in the home. I wanted to double down, and this is the best way to double down.

NP: Don't say double down. It's the kiss of death.

TF: Okay I won't say it. I appreciate the advice._

[http://www.theverge.com/2014/1/13/5305430/interview-tony- fad...](http://www.theverge.com/2014/1/13/5305430/interview-tony-fadell-nest- google-acquisition)

</comment><comment><USER27> From the Q&A:

 _Q: Will Nest customer data be shared with Google?_

 _A: We've always taken privacy seriously and this will not change._

Clever play on words. "Taking privacy seriously" will not change, but "policy on customer data being shared with Google" can obviously change :)

</comment><comment><USER28> So how long till a nest starts collecting my neighbors ssid's or location info and phoning Home?

</comment><comment><USER29> I fear Google+ integration coming soon.

</comment><comment><USER30> What I still don't understand is why Google Ventures would lead a Series C round just last week and then this week Google Inc acquires them.

Why even have the Series C round at all then?

</comment><comment><USER31> How long until Ads start showing up on your thermostat? Or on your smartphone controller app - want to change the temperature, please watch these short commercials and then we'll allow you to change your temperature settings.

"Feeling a bit warm, Sally's Soda is just three blocks away".

"Target is having a 15% off on all winter coats and jackets".

This will NOT end well.

<comment><USER32> Not every effing google product has ads in it. E.g. Drive.

<comment><USER33> No, some of them just collect your data to serve ads elsewhere

</comment></comment></comment><comment><USER34> <Quote>

Will Nest customer data be shared with Google?

Our privacy policy clearly limits the use of customer information to providing and improving Nest's products and services. We've always taken privacy seriously and this will not change.

</Quote>

This was the $3.2 billion Question.....

The answer should be more than enough to assure you that yes Google will own all data that Nest now has (or will have).

</comment><comment><USER35> Google knows everything about you and the only difference between Google and NSA is that Google does not try to hide this fact.

</comment><comment><USER36> Start the Nest shutdown clock ... 18 months?</comment>


Against the Evil Eye - <AUTHOR> http://riowang.blogspot.com/2015/08/against-evil-eye.html <comment><USER2> Somebody should pack a network security toolkit or a router preconfigured as mesh network endpoint into that eye-shaped thingy. Would be appropriate.</comment>


Admit It. The Clinton Email Controversy Bothers You - <AUTHOR> https://medium.com/the-curious-civilian/admit-it-the-clinton-email-controversy-bothers-you-yet-you-dont-actually-know-what-the-clinton-511dc1659eda#.4ze2f9al3 <comment><USER2> I was more bothered by Clinton's response to the email server controversy than I was by the facts of what she'd done, once they became clear. The way she has changed her story over time and deflected many of the questions she was asked about it by being dismissive of them or avoiding answering them altogether confirmed some of my fears about how she would behave as president. This will not be a transparent for forthcoming administration.

Of course, for the next couple of weeks I'll have a hard time being critical of Hillary Clinton when her opponent is Donald Trump. Even if you set aside his racism, vulgarity, and sexual assault (not that they should be set aside), you're still left with someone who has a remarkable lack of understanding of what it would mean to govern the United States. Remarkable, anyway, for a presidential candidate representing one of our two major political parties.

<comment><USER3> > I was more bothered by Clinton's response to the email server controversy > than I was by the facts of what she'd done, once they became clear.

Aren't they two particular aspects of the same underlying problem?

</comment></comment><comment><USER4> I generally agree with that article.

Using "personal" email servers should be the rule, not the exception.

When using centralized email servers, you have a single point of spying, subpoenating and hacking.

However, messages should be encrypted, not only the transmission, the messages themselves, and kept encrypted on the servers (be they personal or organizational, centralized or close to their users).

But the only company that did that had to close under pressure of the US government's agency (cf. Lavabit).

There is still the opportunity to build an opensource secure and easy to deploy email server system that end-users could easily install at home.

<comment><USER5> > Using "personal" email servers should be the rule, not the exception.

For certain definitions of "should", I entirely agree.

> There is still the opportunity to build an opensource secure and easy to > deploy email server system that end-users could easily install at home.

Tragically, I don't think that's really the case. _The_ most important feature for email is that you can expect the messages you send to be received by other parties. Approaches many have taken to fighting spam make that difficult or impossible if you are not a large entity.

> When using centralized email servers, you have a single point of spying, > subpoenating and hacking.

A "single point of subpoenaing" is precisely the point, for the relevant transparency laws.

> However, messages should be encrypted, not only the transmission, the > messages themselves, and kept encrypted on the servers

I whole-heartedly agree with this.

> But the only company that did that had to close under pressure of the US > government's agency

Any email service will do this, if people send you mail already encrypted. Of course you'll still leak some meta-information.

</comment></comment><comment><USER5> Admit it. You don't have much of an understanding of the technology you're writing about.</comment>


FaqMe? FaqYou - <AUTHOR> http://www.faqme.com/

<comment><USER2> I really need a scenario walk-through with screenshots seeing how this service looks to my users and maybe to a lesser extend, admin controls that I'll be using.

UPDATE: Ok so I walked over to _their_ FAQ page[1] and don't see anything that would make me want to offload my content to a site I have no idea how long it will be in service.

Don't mean to crap on the team, but much like almightygod said, I don't see the value proposition here.

[1] <http://www.faqme.com/faqme>

<comment><USER3> I don't really understand this either. It seems to me that this is just putting a page that you could trivially host on your own website, but on another website with a completely different look and feel to your own.

It seems like it's just an extra point of failure that's also jarring to a user of your website, not to mention that the URL could be interpreted incorrectly. 'FAQ' on it's own is just another TLA (three letter acronym), but coupled with 'Me' makes it feel a little too close to "fuck me" which seems pretty unprofessional.

<comment><USER4> On the other hand, my adult website client loves it.

</comment></comment></comment><comment><USER5> Hey there, this is the developer (and HN mostly-lurker-sometimes-poster). Thanks for checking out FaqMe.

I built FaqMe because I wanted a simple content management system to manage all my FAQs for my various projects. Then I decided to go insane with the UI and stats n stuff & make it more awesome than I would have if I were just banging out an FAQ.

Yes, you could code a FAQ yourself, just like you could code a blog yourself without Wordpress. But hopefully this makes it easier for some folks (much like Wordpress makes it easier to blog).

(also it does more than just FAQs -- there's also a 'contact us' thing that routes customer service emails through a FaqMe inbox in a deceptively simple way, and supports replying & threads n stuff. i know this description doesn't make sense. i should make a faq about it;)

Ps- I never know whether to write "a FAQ" or "an FAQ" ('fack' vs 'eff aye cue')

<comment><USER6> The wordpress vs blog analogy isn't really the same. If you have a FAQ page then it is very likely you _already_ have a website. Adding one more page with some google analytics shouldn't be too much work.

On the other hand if I start with nothing, then the wordpress option would be considerably easier then writing my own blog.

It seems that the itch your scratching is multiple sites with multiple FAQs. You may want to focus on that niche and tout this as a core feature on your homepage.

<comment><USER5> It's possible you are right and I will be the only person using FaqMe. It wouldn't be the first time I was my own biggest customer. :-)

</comment></comment></comment><comment><USER6> A FAQ page has to be one of the least technical parts of a web page. The addition of stats isn't very compelling either. It would be easier to setup event tracking in my analytic software then it would be to configure in a whole FAQ page.

Skeptical of the demand for something like this.

<comment><USER7> Spammers will probably abuse it for back links, that's about all I see it being used for.

</comment></comment><comment><USER8> If the questions are so frequently asked, shouldn't they be answered within the copy of a website, or the usual workflow of an app?

The web design community has spent years campaigning against separate FAQ pages and this will be seen as a step in the wrong direction.

Providing a way for users to seek or offer help is great but that's what support apps like GetSatisfaction or TenderSupport are for.

I find the domain name clever and funny but a joke is not a business and there's no way any of the brands we work with would want to associate themselves with it.

Tips: change the name, drop all references to "FAQ" and ensure it's obvious how your app can be used by web professionals with content strategy experience (e.g. to provide user support or collect questions that need to be answered within the content of a website or an app).

</comment><comment><USER9> What's this design or trend in fonts called that this page is using?

You know, the one that makes them look great on OS X but terrible on Windows. And I'm not talking about font rendering in general, but specifically whatever trend this and other pages have been doing.

<comment><USER10> Looks fine on my Windows 7 machine in all browsers but IE9. Although the yellow selection background with white text color is an odd choice.

<comment><USER9> Win7 in Firefox: <http://i.imgur.com/VlBMb.png>

OS X: <http://i.imgur.com/UKeZv.png>

If yours looks like mine in Win7, I wouldn't call that fine...

<comment><AUTHOR> Thanks for the images, I was wondering what you were seeing. Near as I can tell Chrome/Win7 renders the same as OS X.

<comment><USER10> Usually for me fonts in Chrome/Win7 look worse than they do on FF5/Win7. But in this case, they both render the text as in the OSX screenshot above.

</comment></comment></comment></comment></comment><comment><USER11> the main reason i'd want this - right now I have 2 options:

1\. build an faq scaffold with drag and drop 2\. have a simple html page and be bothered everytime the business/product team wants to make a change to the faq

neither is difficult, but faqme seems easier then both options

</comment><comment><AUTHOR> I wish I had linked to where I found this. That's

<http://techcrunch.com/2011/07/25/faqd>

Linking there is probably best in terms of attribution, and it answers some of the questions others might have, including who is responsible for FaqMe?

Which is not me, I have no involvement whatsoever, I just liked the name...

TechCrunch says:

 _Blippy and FuckedCompany.com founder Philip "Pud" Kaplan is at it again with his whimsical and sometimes useful ADHD Labs experiments, this time launching FaqMe, a FAQing free service that helps people build snazzier FAQ and Contact Us pages. "Many websites have sucky (or non-existent) help pages and customer service," says Kaplan, who aim to make the whole FAQing experience more FAQing frictionless._

</comment><comment><USER12> You know, all up, I like the site.

I think the MOST obvious use is for Mobile App designers that don't want to deal with web hosting in the short term.

I really like the simple prettiness of the stats page. Isn't recognising AtomicWeb or Safari from the Ipad though.

I've been trying it out: (warning shameless promotion) <http://faqme.com/howto> <http://faqme.com/earthshout>

Thanks for putting the site out there Pud and I am happy to write your FAQME FAQ's...

PS: "an FAQ". You write it like you would say it out loud. Also, first post.... not sure about this news editor....

</comment><comment><USER13> Just some feedback.

1\. The signup form has a checkbox that is opt-out and _after_ the submit button. As someone who "tabs" through forms I don't want to go through a few extra steps so that I don't get unsolicited email (since it is opt-out)

2\. faqme.com/faqme, the FAQ page doesn't work with JS disabled. I really don't see a need for JS (although I admit I'm in probably a terrible minority to disable JS by default on all pages). At least it must gracefully degrade if JS is disabled.

</comment><comment><USER14> This is the perfect example of a clever and disastrous brand name.

<comment><USER15> But an excellently named HN post. I immediately clicked.

<comment><USER14> Yes, makes for good linkbait too.

</comment></comment></comment><comment><USER16> I'd suggest allowing users to embed this on their own sites using <script>. My current employer has trouble with FAQs because we have to manually create them in fckeditor, but there is no way in hell we'd link out to your site. We'd want it to simply be embedded on our own pages.

</comment><comment><USER17> Looks very similar to <http://helpjuice.com/> by @hajrice.

<comment><USER18> Sadly helpjuice is all kinds of broken right now. Tried to implement it on my site yesterday & today to no avail.

Pud, my dev team did a backflip when I crossed this off the todo list. Link at the bottom of our page and done. I look forward to using FaqMe.

</comment></comment><comment><USER4> We already use Help Scout for managing support emails, so it would be nice to have the option to forward the contact form requests to an email address instead.

</comment><comment><USER19> Hey, I was working on something similar as a side project. I was even using a similar name for it.

The approach is different though. Well, FAQ it, I think I'll keep on working on it.

<comment><USER20> Sine you were downvoted for saying the same thing I about said, I'll comment here. I wanted to make a similar site a while ago, but the following stopped me: 1) why would I put my FAQ page on someone else's site? 2) if I did it via JavaScript, then it wouldn't be easily indexable - less true now that google indexes JavaScript.

Anyway, I wish you both the best!

</comment></comment><comment><USER21> Should those thumbs be clickable? (Firefox 5/XP)</comment>


Creating a Rails App from Scratch with Nanobox - <AUTHOR> https://www.youtube.com/watch?v=33ZmUKiT7CM <comment><USER2> Nanobox runs on top of Docker?

What functionality does it add on top of what Docker already does for containerization?

<comment><AUTHOR> Nanobox will build both development and production environments using docker containers, but it automates the deploy process, sets up all the networking, locks everything down with firewalls, sets up a load-balancer, health monitor, messaging system, then provides a dashboard that lets you introspect into your app's performance (at least for live apps). Locally it lets you configure your entire environment from a single config file, much like docker-compose, but different.</comment></comment>


Top Ten Questions and Answers on Data - Microsoft Answers them - <AUTHOR> http://msdn.microsoft.com/en-us/data/bb525059.aspx

<comment><USER2> What does this even mean?

> The Open Data Protocol (OData) is an open protocol for sharing data. It > provides a way to break down data silos and increase the shared value of > data by creating an ecosystem in which data consumers can interoperate with > data producers in a way that is far more powerful than currently possible, > enabling more applications to make sense of a broader set of data. Every > producer and consumer of data that participates in this ecosystem increases > its overall value.

<comment><USER3> I think it's confusing speak for a query language using a rest model that returns data in various formats such as atom/json.

</comment></comment><comment><USER4> I wonder why Microsoft insist on using this kind of language when talking to programmers: they're just asking for the hate of the hacker community.

Couldn't they at least try to _fake_ competence? Sentences like:

 _Today, "M" is not yet a shipping product, so customers should definitely use T-SQL for their mission-critical applications._

Smell like FAILED PROJECT from 1000 miles away.</comment>


Google 'BigBird' Achieves SOTA Performance on Long-Context NLP Tasks - <AUTHOR> https://syncedreview.com/2020/08/03/google-bigbird-achieves-sota-performance-on-long-context-nlp-tasks/ <comment><USER2> For an in-depth review you can see:

Yannic Kilcher - Big Bird: Transformers for Longer Sequences (Paper Explained)

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

<comment><USER3> Thanks for the link - pretty good review. Totally agree with what he says about calling it SOTA. It's definitely a very interesting approach but I wouldn't put that much weight on whether it's achieved SOTA, because of the amount of compute they threw into it.

</comment></comment><comment><USER4> For those who weren't familiar with the acronym as I was, SOTA = "state of the art."

<comment><USER5> Thanks, that's definitely not what my brain assumed...

[https://www.sota.org.uk/](https://www.sota.org.uk/)

</comment></comment><comment><USER6> Bibliography of the various approaches to long-context Transformers: [https://www.reddit.com/r/MachineLearning/comments/hxvts0/d_b...](https://www.reddit.com/r/MachineLearning/comments/hxvts0/d_breaking_the_quadratic_attention_bottleneck_in/)

</comment><comment><USER7> I'm one of the authors. I may be able to answer some questions or concerns.

<comment><USER8> If you compare what BigBird is good at to what GPT-3 is good at, what are the relative strengths of each system?

<comment><USER7> Right now, BigBird is encoder only so it doesn't generate text. Causal attention with the global memory is a bit weird, but we could probably do it.

GPT-3 is only using a sequence length of 2048. In most of our paper, we use 4096, but we can go much larger 16k+. Of course, we don't nearly have as many parameters as GPT-3, so our generalization may not be as good.

BigBird is just an attention mechanism and could actually be complementary to GPT-3.

</comment></comment></comment><comment><USER9> Can someone with more domain experience grace us with the ELI5 of how these sparse transformers differ from vanilla transformers a la GPT-3

<comment><USER10> First off, GPT-3 is absolutely not a vanilla transformer.

The moving pieces here in BigBird are a vector associated with each token in the sequence and a few more global vectors that you can think of as latent variables. Those pieces are present at each layer. The vector in layer i+1 at position t in the sequence is a function of a bunch of the vectors in layer i.

If position t depends on all of the other positions, then you end up computing all combinations. A sequence of length N has N^2 combinations. Papers like this are using different patterns.

In this one, position t only depends on local positions in some small window around t, those global/latent-ish variables, and a small number of random positions. The number of combinations is (the size of the local window + the number of random pieces to attend to + the number of global vectors to attend to) times the number of positions, so it's some k * N rather than N^2. That lets you scale to longer sequences.

<comment><USER11> > First off, GPT-3 is absolutely not a vanilla transformer.

I thought it had fixed length window. Can you explain how it differs from vanilla transformer other than the size.

<comment><USER10> Unfortunately, they didn't give many details in the paper. It's frustrating, to say the least. Yay reproducibility. They say

> We use the same model and architecture as GPT-2 [RWC+19], including the > modified initialization, pre-normalization, and reversible tokenization > described therein, with the exception that we use alternating dense and > locally banded sparse attention patterns in the layers of the transformer, > similar to the Sparse Transformer.

In the referenced paper (sparse transformer) they showed a bunch of different sparsity patterns, and I believe they're referring to either their banded block diagonal sparsity or a true banded diagonal pattern (local windows like bigbird and some other papers). Unfortunately, that paper _also_ was light on details and the repo they open sourced alongside it is inscrutible.

<comment><USER6> [https://www.reddit.com/r/MachineLearning/comments/hxvts0/d_b...](https://www.reddit.com/r/MachineLearning/comments/hxvts0/d_breaking_the_quadratic_attention_bottleneck_in/fzh7bpd/)

</comment></comment></comment></comment></comment><comment><USER12> This seems pretty similar to the Longformer, and the performance is not _that_ much better. Is the only difference the random attention?

</comment><comment><USER13> Was it named BigBird because it is never going to fly?

<comment><USER14> BERT, ElMO et al were Sesame street characters, hence they kept the theme going.

<comment><USER15> Fun fact: Amazon DynamoDB was codenamed _Big Bird_ , too.

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

<comment><USER13> Yes, as the rest of the AWS database services it used Sesame street name. E.g. Elmo was Elastic Cache.

Not flying was a joke from the early design period, I heard. At the end it took off pretty well.

</comment></comment></comment></comment><comment><USER16> Is there a GitHub repo?</comment>


C++ and the Culture of Complexity (2013) - <AUTHOR> http://blog.greaterthanzero.com/post/58482859780/c-and-the-culture-of-complexity <comment><USER2> The bullet list near the end closely matches my own experience with C++. There's an inordinate number of features creating an even worse profusion of edge cases where they interact. Then the "solutions" for those edge cases usually add even more complexity. Worse, they force programmers to coddle their compilers. The ratio between what a C++ compiler will accept and what it will produce sane code for is _huge_. That's why every C++ codebase I've ever seen is full of code to do things that shouldn't be necessary, and goes through all sorts of contortions to avoid doing things that should be OK, lest the compiler spew out an un-debuggable mess.

I'm perfectly happy managing my own complexity in C, or avoiding it entirely in Python. C++, on the other hand, seems to have been designed by compiler writers for their own enjoyment and/or job security. Every other "systems programming language" from D to Objective-C to Go to Rust to Nim presents a more coherent face to the programmer.

<comment><USER3> > C++, on the other hand, seems to have been designed by compiler writers for > their own enjoyment and/or job security.

Being a C++ compiler writer (Zortech C++, Symantec C++, Digital Mars C++) I can assure you this is not true at all.

As to why C++ is so complex, my opinion is it is because it was designed a long time ago, what is considered better practice in designing languages has moved on, and C++ is unwilling to let go of the old decisions.

(There's always some major and vocal user who has build their entire store around some ancient feature.)

For example, why does C++ still support EBCDIC?

<comment><USER4> THIS is the reason IMO too. C++ has taken on the _very_ difficult task of remaining broadly compatible with C and with legacy features while at the same time has continuously evolved over the decades, incorporating whatever was the state of the art at that time, _without_ new features breaking old code. _That_ is not an easy task without increasing complexity.

<comment><USER5> The book "Design and Evolution of C++" is quite interesting in that regard.

For all its warts, C++ only got adopted inside AT&T and later by almost every C compiler vendor, because it just fitted on their existing toolchains.

Even lack of modules is related to that, C++ object files needed to look just like C ones.

Now that C++ is grown up and can live on its own, it needs to pay for the crazy days of its parties going out with C. :)

<comment><USER6> >The book "Design and Evolution of C++" is quite interesting in that regard.

I found that book very interesting in many regards. I had bought and read it several years ago (out of interest, though I have not worked on C++ professionally).

Stroustrup goes into a lot of details about the reasons for many design decisions in the language. While I'm aware that C++ has some issues, I was really impressed by the level of thought etc., that he shows in that book, when he talks about all the reasons for doing various things the way he did them.

</comment></comment></comment></comment></comment><comment><USER7> I agree that c++ is complex, but remember that while trying to update the language the standard committee is trying not to do breaking changes. If you can do a greenfield implementation like rust, you don't have the baggage of an installed base, yet. If you compare c++ to a language that is also around for more that 25 years it starts to make more sense why it is complex. Add to that, that it started as an extension to c, which is the reason why it became popular in the beginning. Also, zero-cost run-time abstractions.

It is whatever you give priority design-wise, and if you look at what is important in c++ (zero-cost runtime abstractions, control of the resulting code), then ending up with something as complex as the c++ language is hard to prevent.

<comment><USER8> Yeah by keeping backwards compatibility they avoided something like the Python 2/3 mess which I would say is worth the effort and cruft.

<comment><USER9> Looking at the current programming language space, it honestly doesn't look like the Python 2/3 issue hit them that hard in the long run. And while it wasn't popular it might have been the right way forwards. Python is one of if not the most rapidly growing language. In large part due to the data-science movement which for anyone I've talked to is based on Python 3. I still occasionally talk to 2.7 proponents, who explain to me that they need to have this and that to handle all the complicated edge cases and problems in dealing with bytes vs. strings... Issues that you just don't encounter at all in python3.

If I had the choice of having a C++2020 with absolutely no backwards compatibility but a greatly cleaned up language or having yet another step down the path it's heading now, I'd chose the former even if it breaks backwards compatibility. But the language is going to follow the developers and they want to continue down the path where they get to explain again and again and again the intricacies and delicacies of rvalue semantics, exotic template meta-programming and what-ever the next big thing is going to be. All the while we seemingly still don't even have a clear road-map for providing simple modules.

I was enthusiastic back when C++11 hit and it felt like a great big push going on in the language development, I had the feeling that things were really going to take off... but now it feels like it just died out, and now there's nothing that really gets me exited about the future of C++. I'm worried It's going to get more and more complex and less and less used.

<comment><USER10> I know I'm in dangerous territory here, but what if the C++ community, as in committee, compilers, etc., pull a Javascript strict mode?

Basically subsequent C++ compilers provide the possibility of some subset of C++ which is considered modern. Then files can be marked with it, at which point the C++ compilers reject deprecated idioms. Over time this should take over, I think most of the JS in the wild is now using strict mode.

I can't be the first person to think of this. There must be a reason something like this hasn't gotten traction.

<comment><USER11> The header inclusion model (where you will be textually including hundreds of thousand lines of random code in a translation unit) doesn't make it easy to have version flags.

Also many of the issues are intrinsic to the way the language has evolved (the template compilation model for example), it is not just a matter of deprecating a few features here and there (although that might help)

<comment><USER12> Headers are what need fixing first. They are why I would never consider using C++ for any new project and avoid jobs that require maintaining C++ code. C++ is the steam power of computing and keeping legacy monoliths running doesn't do anyone any favors. That shit should have been piece-by-piece rewritten by now.

<comment><USER13> You're forgoing all of the sweet cash that C++ legacy maintainers will make in 20-odd years. Like the COBOL people right now.

<comment><USER11> Hey! That's my retirement plan!

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> Lots of posts here frame it like "Yes, it's a bit of a complex language, but the C++ committee has the difficult job of keeping everything backwards compatible, so it's understandable." But that's not the reality. The reality is that they (or Stroustroup) made that decision, and that decision was a mistake.

The correct way to deal with backwards compatibility issues is the way Go does it, namely to write tools to automatically upgrade code to a newer API [1]. And as that smug Google guy explained here [2], they have something like this for C++, too. They just don't bother sharing it with us peasants.

The fundamental mistake of C++ is to religiously keep backwards-compatibility with everything for all eternity. It's so easy to say that backwards- compatibility is a good thing. It's obvious! But ultimately that decision is the reason for all the problems that C++ has.

[1] [https://golang.org/cmd/fix/](https://golang.org/cmd/fix/)

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

<comment><USER11> Backward compatibility with C semantics and tooling was fundamental for C++ success. We wouldn't be having this discussion otherwise as nobody would have used C++.

Tools are great for minor upgrades of APIs and syntax, but key to C++ was compiling with existing system headers (no, realistically you do not want to maintain your own 'fixed' version), and most importantly OS and library ABI.

<comment><USER5> AT&T had a Java like variant of C, before Java was even a thing, called C+@.

This DrDobbs article in an 1993 issue dedicated to possible successors to C, is the only proof that it ever existed.

[http://www.drdobbs.com/article/print?articleId=184409085&sit...](http://www.drdobbs.com/article/print?articleId=184409085&siteSectionName=cpp)

Print view is the only way to read it properly.

</comment></comment></comment><comment><USER15> While my pet peeves might be different than the author's I agree that C++ makes you work very hard to keep things simple and produce something that is beautiful. Just "avoid the complexity you don't absolutely need" doesn't really work: some basic things are so fundamentally convoluted that I rather just write idiomatic C because it's simple and doesn't get in my way. I want the language to originate from simple axioms so that I can concentrate on the complexity of the problem I'm solving instead of wasting brain cycles on battling the complexity of the language. I would like to like C++ but its benefits barely zero out the extra hoops.

<comment><USER16> Author of the blog post here. I think you just made me aware of the true and deeper reason for my discomfort with C++: it's the fact that the convolutions are in the _basic_ things. I am perfectly willing to put up with convolutions, annoyances, bugs, weaknesses etc. in anything I use, be it a programming language, a piece of software, a gadget, whatever. Nothing is perfect, and who am I to criticize others for the imperfections in their work. What annoys me is when the annoyances are in the basic things, in the most commonly used features. Make the basic things reasonably good, and keep the crap off to the side.

<comment><USER17> I think that one reason the convolutions are in the basic things was the principle that C++ should be a superset of C, which is nominally a value- semantics language, but which, with the use of pointers, very commonly (and intentionally) leads to code with aspects of reference semantics. One example of this is that C++ adopted The C practice in which arrays decay to pointers.

In addition, C++ not only inherited C's static-typing rules, but strengthened them, and complicated them with inheritance (multiple, and polymorphic or not, according to your needs), function overloads and operator overloading. Now add generic types through templates, and the cases to be handled explodes to the point where you need a Turing-complete parser.

A good case can be made for each of C++'s features individually, which leads to justifications of the form "As we want both X and Y (and without sacrificing run-time efficiency), then there really isn't any alternative to [insert counter-intuitive issue here]..."

That it works at all is a testament to the skill of the people involved. The complications that remain seem qualitatively different than the sort of gratuitous inconsistencies that you find in PHP, for example.

</comment></comment></comment><comment><USER5> Well, most of his points regarding complexity are not C++ specific.

The thing with equals applies to most languages that allow to redefine operators.

Even Java has gotten quite complex, I bet he would have quite an hard time succeeding at one of those quiz questions certifications (SCJP and friends).

And simplicity can also turn into more complexity, manual memory management in C vs C++, "templates/generics" in Go, libraries to work around language limitations in JavaScript (npm, yeoman, gulp, grunt, webpacker all at the same time).

</comment><comment><USER18> In my experience this disease afflicts more than just some C++ programmers, the immaturity is boundless. I've noticed some colleagues even think there must be something wrong if code looks simple.

</comment><comment><USER19> Yes, C++ is a complex language. Yes, it has a ton of warts if you know where to look. But, you can write beautiful software with it, and it can even look beautiful too.

Yes, there are alternatives, but when it comes to performance, expressiveness and actual deployability, C++ is pretty awesome.

<comment><USER20> Meh. The performance is almost never worth the huge complexity jump. Instead, profile an app in a higher level language and if any part's too slow, implement that in C/C++. That'll quite often be a low, single digit percentage of the app. Get the performance for substantially less engineering/maintenance cost.

<comment><USER21> C++ is a complex language no doubt. But software written in C++ need not be complex.

Java, on the other hand, is a simple language. But the kind of unnecessary complexity I have seen in Java-land (EJBs, Spring, etc.) has no parallel in the C++-land.

So going by your argument, I would choose C++ over Java to avoid the complexity jump, then profile the app, and if any part's too slow, improve that again in C++.

<comment><USER3> Java just pushes the complexity into the user's code. For example, a friend of mine once gushed to me about Java IDEs - with one click of a button, a hundred lines of boilerplate are automatically added!

I replied a good language shouldn't need boilerplate code automatically inserted.

<comment><USER22> Boilerplate bureacracy usually happens, when Configurations are not itteratable and/or a language does not enforce the providing of meaningfull defaults. I find both sides guilt and charged here...

<comment><USER3> Metaprogramming enables insertion of custom boilerplate without need of an IDE.

</comment></comment></comment></comment></comment></comment><comment><USER23> Part of the problem here is that OO sits nicely with references, but C++ (like C) is a value based language. This can be seen clearly in most of the design of the standard library -- it's all value semantics, and as such relatively simple and obvious to use (so long as you're not trying to cram OO into it).

A line like

        if ( a == b )

In C++ is pretty obvious what it does. It'll always be a value comparison, and if a and b are pointers to objects you are comparing the object identities and not their values. The meaning is exactly the same in Java of course, but the fact you're dealing with pointers is hidden so you generate a lot of confusion about the correct use of `==` and `.equals`.

The author certainly isn't wrong about a culture of complexity in certain elements, but, to be hones, I see that everywhere else too and it needs to be fought wherever it occurs.

<comment><USER5> Object Pascal, Eiffel, Ada, Mesa/Cedar, Oberon, Modula-2, Modula-3, Oberon, Oberon-2, Oberon07, Active Oberon, Component Pascal, Sather, Swift, D, Go, Rust are OO languages[1] and value based as well.

[1] - As usual, there are many ways of doing OO, not just C++/Java style.

<comment><USER23> There are, but they all have at their core an idea of an object which has identity, which values don't have. You can easily model objects in value languages, but sometimes it isn't so easy to do the other way around (like Java's strings -- Smalltalk had similar problems).

<comment><USER5> > There are, but they all have at their core an idea of an object which has > identity, which values don't have.

Not at all, objects need to be explicitly allocated on heap, otherwise they are value based.

I took care not to list any language that only allows objects as references.

<comment><USER23> Argh, I misread what you wrote. It's very late here now :)

</comment></comment></comment></comment></comment><comment><USER24> It seems like this article is essentially complaining about the language giving you too much control (e.g. in his copy assignment operator example), when that's exactly what its goal is.

</comment><comment><USER25> > What does that do? It makes the variable x refer to the object that y is > referring to

In Java/C#, it doesn't always:

int x = 1; int y = 2; x = y;

The variable `x` does not refer to the object that `y` is referring to(as there is no reference involved at all).

Assignment is a procedure that makes `x` equal to `y` without modifying `y`. However, if `x` refers to `y`, then we can modify `y` after assignment to `x`. This destroys the ability to reason locally about the code, because each object essentially becomes as good as a global variable.

Even though C++ has areas where things gets complicated, this is the one thing that C++ keeps very simple and consistent. There is only one definition of copy, assignment, and equality, whereas in java there is multiple definitions(deep copy vs shallow copy, `==` vs `.equals`).

> That's called value semantics, although I would prefer the term state > semantics: objects do not have a value, they have state, and that's what's > being transferred here.

No. Its value semantics, as these objects represent some entity. The interpretation of the state(or datum to be more precise) is the known as the object's value. For example, when copying a `std::vector` the internal state of the vector will be different on copy, as it will point to new piece of memory, however, its value will still be the same.

> But experience shows that making a copy of an object is hard.

The compiler already generates a copy constructor and assignment for you. Its only necessary to write one, when one is dealing with low-level pointers. Using the standard built-in types and containers, writing a copy constructor is never needed.

</comment><comment><USER26> There are two kinds of developments:

1\. Application level: Typically manipulating lots of strings and data massaging. I prefer Java or python for this. The IDEs and eco-system just is so much faster to start with

2\. Systems level: Typically a high-performance system like a DB manager or a fast processing library like a message producer etc. These things are time critical and need performance.

I used to really love C++ but I agree, it takes far too long just to start making things run. Sigh!

</comment><comment><USER27> When I was young, I thought I understood C++, because I had been taught it in school. I did not. Having interviewed several recent graduates who thought they knew C++, I believe this is fairly common, particularly among people with advanced degrees in engineering and the sciences. It's very easy, in C++, not to know the scope of one's ignorance.

<comment><USER28> This is very true. I've seen very ignorant (on c++) people say that they dont find c++ complex at all, but very simple.

Most of the time this only shows the lack of deep knowledge on the language.

<comment><USER5> You can do the same with someone that says C is easy to master.

Just pick a copy of ANSI C and randomly ask a couple of UB questions.

You have a catalog of about 200 cases to chose from.

</comment></comment></comment><comment><USER29> The author is relating a personal experience As a former C++ dev I saw some wonderful code base written in Ç++ and some horrible code base, as any other language. The only specifity Ç++ have in my opinion is that some features have a high learning curve and are not necessary shared with other languages. Once you mastered Ç++ it's easy to move to other languages but it's hard to do the reverse path.

</comment><comment><USER30> It takes balls to imply that one may use Java in lieu of C++ so as to reduce complexity.

<comment><USER16> Author here. Quote from the _first_ paragraph of my blog post: "The decision to implement the math backend of GreaterThanZero in Java was driven by other considerations, primarily the appeal of Google App Engine as a hosting platform."

</comment></comment><comment><USER31> C++ is the only language that is compiled to binary, compatible with many compilers and OS, and can do both low and high level constructs.

It is true that it is a complex language, but this is true for every tool that allows you to do so many different things.

The complexity is not a goal in itself, it's just that it can do all of those things if you need them.

Simple tools are great and will save you a lot of time, but the truth is that you won't always be able to do everything with them. C++ allows you to do everything, and it is true that the cost can be very high and requires a lot of thorough knowledge and expert learning of what happens, but there are projects and cases where you just need to use C++ because that's the only choice you have left.

I agree that an alternatives like rust or D would be great as replacements, but the problem remains: if compilers are not mature on most platform, and if you don't have a large programmer base because the basics of the language are not simple enough, the language won't grow.

<comment><USER32> Rust uses LLVM, so we share the same characteristics here as clang does.

</comment></comment><comment><USER33> The author states:

>Neither the performance issue that move semantics address nor the perfect forwarding problem exist in classic OO languages that use reference semantics and garbage collection for user-defined types."

I understand reference semantics but what are move semantics?

Also what is the "perfect forwarding problem"?

<comment><USER16> Author here. A few years back, I wrote an article about the issues that you're asking about. Since the article still comes up as the #1 result of Google search for "C++ rvalue references", I believe it's ok for me to recommend it here:

[http://thbecker.net/articles/rvalue_references/section_01.ht...](http://thbecker.net/articles/rvalue_references/section_01.html)

Warning: Read only if you have a serious interest in C++.

<comment><USER33> Thanks, I thought this was well-written.

</comment></comment></comment><comment><USER34> One word: Boost.

C++ went off into template la-la land some years back. C++ templates were not supposed to be a programming language. But they turned into one, and not a good one.

Look up the implementation of "max" and "min" in C++ templates.

Now there's a push for "move semantics", to keep up with Rust and the cool kids. But not with language support and a borrow checker. With templates and cute tricks with the type system.

</comment><comment><USER35> >Rvalue references provide move semantics, and they solve the perfect forwarding problem. Neither the performance issue that move semantics address nor the perfect forwarding problem exist in classic OO languages that use reference semantics and garbage collection for user-defined types.

I don't get this. The performance issue move semantics solve doesn't exist if you just use automatic garbage collection? Is this what the article is saying?

<comment><USER11> Those specific issues do not obviously exist if the language lacks value semantics. Other issues of course do exist, namely allocation overhead and pointer chasing and the difficulty of doing escape analysis.

</comment></comment><comment><USER36> I think it depends on where you sit on the stack. A library can take a lot of the complexity away from the higher levels in C++ code. The user code can look fluent and understandable. On the implementation side of the library being used(depending on where it sits in abstraction) is where some ugly complexity shows. But this also generally reflects the competence of the authors.

<comment><USER37> On the other hand, it's hard to grab a half dozen C++ libraries off the shelf and just use them together without issues.

<comment><USER36> True. That is getting better though and lots of people are putting time into solving that. It's tricky because no one is talking about the same thing either. Like my project structure isn't your's.

It's not byte code so distributing binaries is a crappy problem too. I am of the mind that a dependency system above the build system(s) is probably the best bet. Not as low level as binary interface, but I need libary X >= version n.m.o...

</comment></comment></comment><comment><USER38> I think there's a "sweet spot" in complexity (at least for software): too complex gets rejected, but being too simple lacks traction. I think artifacts like C++ memetically infect the brain better than a more elegant PL might, exactly because they require you to think about them a lot, but you can still get things done and not be (totally) overwhelmed.

</comment><comment><USER39> Isn't there anyway some of a pendant to Conway's law in this? I mean, C++'s standard library is - or at least used to be - rather complex, so the people that would go there and use C++ for their project - would more likely than not - carry at least some of that complexity over into the project...

</comment><comment><USER40> I like the fact that in C++, the line

x = y;

behaves the same if the types are int and vector<int> (unlike e.g. Java and Python).

<comment><USER41> Except you are not always assured on what = does when reading other people's code. :)

<comment><USER40> Well, you can define a function in Java called setFoo, but that instead sets bar. Similar.

You can intentionally confuse in most letters if you want to.

</comment></comment></comment><comment><USER42> Does anybody know a good tutorial or book for learning modern C++ 17, focused on best practices (new language paradigms, TDD/BDD, etc.) ? Something like Michael Hartl's Ruby on Rails Tutorial

</comment><comment><USER43> Well, if you haven't encountered any brain-bending Javascript, you haven't gotten very far into Javascript.

</comment><comment><USER44> C++ is not more complex that its competitors like Haskell or Rust.

<comment><USER45> Having used c++ for many years, this does not come across as a ringing endorsement for looking into Haskell or Rust.

I'm quite happy with my current gig using Go. Looking back, the culture of complexity surrounding c++ is obvious, but talking with my peers who have only ever done c++ - it's like they have Stockholm Syndrome.

<comment><USER46> Any language (or tool for that matter) that you have to invest heavily in, and use for a while will produce a symptoms of "Stockholm Syndrome". Moreover, once you are hard pushed to switch from it to something else, withdrawal symptoms are quite pronounced too.

Go has its own share of idiosyncrasies, and it drives me nuts sometimes even more than C++ did, but these bursts of mental grind are less common and much shorter in comparison :). The arcane complexity of C++ (and tooling around it) is something that I don't miss at all.

<comment><USER47> I sometimes like to dabble in C++, late at night, while sipping some whisky. For short periods of time.

Last night, I decided to "practice" writing iterators. Specifically, I wanted to write a class that i could use in a new-style C++ range loop that would give me all files in a directory. Useless but fun practice, I thought.

I had Bjarne's latest book by my side, and the final draft of the C++17 spec in open in a PDF, and it took me a good 2-3 hours of trying before I "got" it.

I'm still not sure I'm doing it correctly, btw. It does compile without warnings, and it works, but I can tweak the iterator function signatures in seemingly incompatible ways and it _still_ doesn't complain and _still_ works, even when I swear it shouldn't. "Ok, surely by doing this I'll break it!" \- nope, still works.

I don't love everything about Go, and once in a while I'll wish for more expressiveness, but I was never, ever, as 10% confused with it as I am with whenever I attempt to do something seemingly trivial in C++.</comment></comment></comment></comment>


Rapid Prototyping with HAML, SASS and Ruby - <AUTHOR> http://jgn.heroku.com/2010/02/28/rapid-prototyping-with-haml-sass-and-ruby/

<comment><USER2> LESS is a wonderful alternative to SASS. <http://lesscss.org/>

nanoc is a very nice Ruby static site generator with a good community and a very active project maintainer: <http://nanoc.stoneship.org/>

<comment><USER3> +1 for less. I find it to be a lot nicer to use than SASS.

<comment><USER4> I also really enjoy using LESS. It has all the features I need, with a syntax which still feels like CSS. I personally can't stand the whitespace rules for SASS.

</comment></comment></comment><comment><USER5> I just proposed the same idea at work. Except I use Django + Compass. The advantage of this kind of prototyping is that you end up with a fully functional and clickable website. And it is much easier to do usability tests with functional websites than with mere static images.

<comment><AUTHOR> Yes, it works well for user testing, feels more real, especially with a fluid layout. That's something usually harder to test with static mockups.

</comment></comment><comment><USER6> Rapid prototyping shouldn't involve HTML or CSS at all.

<comment><USER7> What do you propose? Photoshop? Balsamiq?

<comment><USER6> I'm not proposing a tool, I'm proposing an approach. We shouldn't have to build custom GUIs over and over again. We should use the same approach that Cocoa does (reusable GUI components)</comment></comment></comment>