Slave markets found on Instagram and other apps - <AUTHOR> https://www.bbc.com/news/technology-50228549 <comment><USER2> I've once spotted a (Latin American) slave trader on a image sharing platform during a technical due diligence. They were pretty shameless about it too, uploading the photos of the girls from their own IP. All the easier for the authorities to go after them.

Please take careful note: If you do not do proper risk analysis of your platform you _WILL_ be used to perpetrate crime and if you find that you did not do what you could have done to stop it you may end up being an accessory to that crime. More so if you ignore warnings or flags by other users of the platform. This goes for anything that allows the uploading and further distribution of user generated content (especially 1-1) and for anything that deals with money.

Your nifty platform or weekend project could easily become the vehicle for someone else's crimes.

<comment><USER3> > Your nifty platform or weekend project could easily become the vehicle for > someone else's crimes.

We might as well all pack up and go home then. God forbid some group coordinates an atrocity using the comments section of our blog, for want of proper risk analysis.

Best leave it all to the oligarchs. They know what they're doing. They'll look after us.

<comment><USER4> If _you_ see packing up and leaving it to the oligarchs as the only workable solution to adress the valid point the parent raised, this says more about you than the argument at hand.

The thing with weekend projects is: they tend to lie around unused and unchecked. If you are aware of this, people can mitigate it by adding propper monitoring etc.

<comment><USER5> > _If you are aware of this, people can mitigate it by adding propper > monitoring etc._

And what is an acceptable, reasonable solution? Even FB with their near- infinite resources gets in trouble all the time for illegal content and they still spread all kinds of it. Is the only possible solution to be a big corporation?

<comment><USER6> FB doesn't care about illegal content. They may say they do, but they don't as long as they're making money -- that is all they care about.

</comment></comment></comment></comment></comment><comment><USER7> I know the article focuses a lot on Instagram/Android/iOS, but the underlying story is utterly ridiculous. This isn't a small group of criminal gangs who are doing this. It's the middle class and upper class of a first world nation, who are literally recreating slavery in the 21st century.

I don't understand how this isn't being cracked down in the harshest manner - no normal person would risk doing it if they faced 10-20 years imprisonment for human trafficking. Simply pass a law that all domestic workers have to report to a police station for 5 minutes every Sunday, alone, during which time they will be asked if they are being held against their will. This would likely eliminate the vast majority of human trafficking currently happening over there. It blows my mind that the government is doing so little about something so abhorrent.

<comment><USER8> "Under what is known as the Kafala system, a domestic worker cannot change or quit her job, nor leave the country without her sponsor's permission."

That doesn't sound like the a law that is intended to prevent slavery like conditions for domestic workers. And very much encourage abuse in general and confiscating passports specifically (can't leave the country without the sponsor's permission sounds like a pretty implied permission to take someone's passport).

<comment><USER9> It's not dissimilar from a sponsorship system in the US, where you need your employer to sponsor you so that you work and reside in the country. It is against the law to take someone's passport.

<comment><USER10> It's opposite: the employer must sponsor you for you to stay in the country, else you have to go back home.

Unlike this where the worker cannot go back home.

<comment><USER9> As I pointed out, it's against the law to hold their passport and to prevent them from returning or traveling.

</comment></comment></comment></comment></comment><comment><USER11> > "What they are doing is promoting an online slave market," said Urmila > Bhoola, the UN special rapporteur on contemporary forms of slavery. > "If > Google, Apple, Facebook or any other companies are hosting apps like these, > they have to be held accountable."

Of course we don't want social media enabling that. But the bad guys are the people who are keeping others as slaves, and the law enforcement that turn a blind eye. The solution isn't to take down the posts, but to alert law enforcement.

These governments should be urged to find and arrest the people who are doing this, otherwise it won't stop even if blocked. A single dev could mock up a replacement, "like craigslist, but for slaves".

<comment><USER12> Why can these apps block "breaking copyright" and discussions about piratebay, but cant stop slave trade?

Why does the justice system hand out huge fines and prison sentances, for copyright infrigiment, but not for slavery?

Why does the US and its lobby organizations, threaten another democratic state with "consequences" (see piratebay raid) for copyright infrigiment. Yet no one bats an eye at this.

But seemingly, you educated person of HN, cant think of a method or reason for trying to stop slavery. Oh yeah.

<comment><USER11> I don't know why you are saying this, because all I did was say we should stop slavery. Whether or not we protect copyright or whatever, we definitely should stop slavery. Taking down a post isn't stopping slavery, it's insulating elite Westerners like myself from being aware that slavery is actually happening.

Up until today I was aware of piratebay, copyright issues, etc because it has impacted my life. I was unaware that in some places it was still accepted practice to not only enslave people but to publicly post about it. I imagine a lot of the people who work at the social media companies are similar to myself in that respect.

<comment><USER13> Last I heard, today's global slave trade makes the Transatlantic Slave Trade at its peak look like a drop in the bucket. I don't know if that comparison is accurate, but slavery never died in the world, it merely became illegal.

[https://sfpublicpress.org/news/2012-02/human-trafficking- is-...](https://sfpublicpress.org/news/2012-02/human-trafficking-is-a-growing- global-scourge)

</comment></comment></comment></comment><comment><USER14> This is like blaming a hammer manufacturer for enabling hammer murders. It isn't their intention to make a murder tool, it isn't its primary use, and they don't market it for that purpose. They make a tool, and although that tool will certainly be abused, the benefits outweigh the costs. Same goes for these new communication tools.

<comment><USER15> When I attended F8, Facebook gave a presentation on how sophisticated their drug post detection had gotten. Things like being able to differentiate between a photo of broccoli tempura and weed (that slide can be seen here: [https://www.cnet.com/news/marijuana-or-broccoli-facebook- ill...](https://www.cnet.com/news/marijuana-or-broccoli-facebook-illustrates- ais-challenges-with-this-example/)), "candy" being sold at unusual prices, factoring in how networks of people interact with the posts, etc. were highlighted that appeared highly sophisticated, to the point where some examples took hints for the humans in the room to figure out the right answer.

Meanwhile, their only action in this article is apparently banning a hashtag. I'm dubious that that's the best they can do.

<comment><USER16> I think this is the (American) white privilege bubble at work, in a different way than usual. Drug use is pervasive in American society, everyone knows this and it's an obvious thing for Facebook to police. Same with violence, racist abuse, and pornographic images. Buying and selling domestic workers, on the other hand, is so far removed from our experience that it's not something that I would have even thought to work on. I know human trafficking happens, in the abstract sense that I read about it in The Economist or The Atlantic magazines, but the idea that people would take advantage of social media platforms to do it still blows my mind.

<comment><USER17> What blows my mind about what you're describing is how ill-equipped society was for Facebook, and how laughable it is that Mark Zuckerberg is in charge of reconciling Facebook and society, for the very reasons you're talking about.

When I think about the global scale and social/political/economic scope required to responsibly run Facebook, and compare that to the skill set of Mark Zuckerberg it's just, like, insane that he's in charge of it. I'm sure Mark Zuckerberg is truly brilliant and capable of becoming a great international leader. No doubt. I just don't think it should be, like, his first job. Lol. It's truly absurd.

<comment><USER18> Can you tell us who you know that will be best in charge to run it. Give us 3 names.

<comment><USER17> Can you just make your point please

<comment><USER19> That is his point. Who is qualified? It'd probably have to be many people, but then who are they accountable to? Is it really better to have Facebook be government run? I highly doubt it.

<comment><USER17> I don't know the answer and won't bore you by trying to make one up on the fly. I'll just say this is a novel challenge to human society and requires a novel approach to corporate governance & accountability. What we're doing now isn't working and the stakes are as high as they can be.

We have the responsibility to insist on better from our institutions.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER20> The bigger problem is that it's not a crime to take someone's passport away and prevent them from leaving the country whenever they wish to. None of this would be possible if an employee could quit and go home at any time.

<comment><USER21> If you are the citizen of a first world country, you can just go to your embassy without any id and they will sort it out.

These workers origin countries also share the blame, they refuse to help them. In many cases they turn a blind eye to this slavery since these enslaved workers send currency to their origin country.

<comment><USER22> Without any ID why would they let you in to the embassy?

<comment><USER21> You say you are their citizen and you obviously speak the language. I know people who did this.

The embassy will then confirm your identity (there are various ways).

</comment></comment></comment></comment><comment><USER23> This is crazy. From the article I found the hashtag.

Just Google "خادمات للتنازل" and you will find these ads on Twitter, Pintrest and lots of dedicated sites. :(

</comment><comment><USER24> Does anyone honestly think that removing fb out of the equation would result in any kind of improvement? Or are people simply disgusted because this is happening on the service they also happen to be users of?

<comment><USER25> It's not like this is only happening in private - Shitbook is outright giving them a storefront for selling slaves.

Now I agree that the problem can't be 100% eliminated as at least some of it happens behind closed doors, but it would sure reduce the scale of this business if Shitbook & co weren't around to provide a free platform for trading slaves in the open.

They should be prosecuted for complicity and not be allowed to hide behind the excuse of the "algorithm". If your algorithm isn't good enough to filter out this behaviour then go back to the drawing board and find a better solution. Human moderation works pretty well on forums. Oh it doesn't scale? Well that's a shame but it's not a right to be profitable - if you can't figure out a sustainable business model then don't be in business. It's like starting a very cheap rental car business and stealing cars for your inventory because you can't actually afford to buy them...

<comment><USER26> I suspect more people would read your comment and you would have fewer downvotes if you didn't use the term 'shitbook'.

</comment></comment></comment><comment><USER17> Unbelievable horrors so many of our fellow humans are trapped in.

<comment><USER27> I have to wonder how many...so many types of horrors too. Don't forget primates...

</comment></comment><comment><USER28> Eerily similar to H-1b with the visaholder (i.e. consulting firm) arrangement we see so often in the valley.

</comment><comment><USER29> It's terrible thing which should be addressed.

But it seems to me that accusing Apple/FB/Instagram that those platforms were used for it is exactly the same as accusing Toyota/Nissan/Ford that vehicles they made were used for transporting slaves.

<comment><USER30> The difference is that, if Toyota tracked your car usage after purchase and possessed the ability to match patterns of behaviour with crimes (wow, just after this bank was robbed that car zoomed northwards at high speed), they too would be held accountable.

Facebook/Apple/Instagram capture insane amounts of data from their users in exchange for various services. Those services are being used for human trafficking. It behooves these companies to regulate these practices.

<comment><USER31> Completely agree. It should be safer to _not_ know everything. Collecting personal information should be a massive liability. If they insist on collecting huge amounts of data they shouldn't be able to claim they didn't know anything when authorities find that crimes were being committed. They had the data, failed to analyze it and their negligence enabled the crimes to occur. They are as much at fault as the criminals themselves.

That ought to end the pervasive monitoring of users for marketing purposes.

</comment></comment></comment><comment><USER32> So this is like the business method patent. It is new - it uses a computer! - it is new is uses an app/hashtag!

The system in the gulf has been there for decades. If you weren't outraged five years ago - no reason to be now. If you were - keep the fire burning and try to do something.

As long as the system for abuse is in place, people will communicate with smoke signals if needed to facilitate the involuntarily employment change.

</comment><comment><USER33> This is why we've turned Facebook and Twitter into political machines. You are blaming the social media companies for enabling slavery. Slavery existed long before the internet, removing it from the internet just means it goes back to working the old fashioned way.

<comment><USER34> > ..removing it from the internet just means it goes back to working the old > fashioned way.

So, less efficiently?

That's probably a net benefit. Even when you can't eliminate a problem, making it less frequent is a win.

<comment><USER32> I am not sure that instragram increases efficiency. More like adds a shine of glamour.

A phpbb board will do just fine and as efficient.</comment></comment></comment>


Why does Internet Explorer report "Mozilla" in UserAgent? - <AUTHOR> http://stackoverflow.com/questions/7975996/why-does-internet-explorer-9-report-mozilla-in-useragent

<comment><AUTHOR> A funny blog post explaining the whole situation: <http://webaim.org/blog/user-agent-string-history/></comment>


Rural America Is Building Its Own Internet Because No One Else Will - <AUTHOR> https://motherboard.vice.com/en_us/article/paax9n/rural-america-is-building-its-own-internet-because-no-one-else-will <comment><USER2> Speaking from a strange perspective perhaps but here in Sweden (the land of broadband) there was a little rural town in the south that couldn't wait to get fibre so the locals organized all the necessary things to start a town fibre grid themselves.

And now every house has 10Gbps with free choice of operator.

Normally what most communities do is wait for one of the big fibre operators to reach them and start digging. But these locals did all the practical stuff like digging, laying fibre and building the actual grid themselves by hiring their own contractors.

Larger communities, towns and cities, usually have a city wide fibre grid managed perhaps by the local energy company or by the municipality. They in turn might out-source the fibre digging but they still manage the grid and determine what operators are offered to the citizens.

In big cities (we have three of those) you can find multiple city wide fibre grids. One managed by the municipality/city and some y large property owners that take it upon themselves to equip their buildings with fibre.

Regarding the wireless setups in the article I am very skeptical because this was a trend 10 years back in Sweden and a lot of people lost money by investing in it when they could have just waited a few years and had real fibre.

But the US is special because of its size. So wireless might be all they can get for many years.

<comment><USER3> > But the US is special because of its size.

The US has a population density of 35.0/km², while Sweden has one of 22.0/km². So it shouldn't really be bigger problem in the US because of geography.

<comment><USER4> Doesn't the population density vary a lot from state to state, especially in the rural parts.

<comment><USER5> Exactly. Exclude the counties with NYC, LA, Chicago, Houston, etc, and it's a very different story. What works in Manhattan could never work in Wyoming or even Wisconsin.

<comment><USER3> Exclude the kommuner with Stockholm, Göteborg, Malmö etc. and it's a complete very different story

</comment></comment></comment></comment></comment><comment><USER6> Frankly, what this article tells me is that the ISP conglomerates haven't yet bribed the state officials of Kentucky or Ohio to ban or minefield local governments from being involved in broadband initiatives.

<comment><USER7> What this article tells me is that these areas are _so_ unprofitable that the telcos don't actually care.

I can tell you that they know _exactly_ which areas can be profitable, and if one of _those_ areas suddenly decides to try to do something on their own, all of a sudden lots of obstacles magically appear.

<comment><USER8> Actually, Frontier charges $90 a month for 1 Mbps DSL.

The problem is not that they could not afford to offer me a gigabit at $120 a month, but that they can't afford to give up $90 a month that they get without investing in their networks.

In the case of Frontier, it pays a dividend greater than earnings. It even pays a dividend in quarters where earnings are negative! It is not a "profitable" phone company, it is a company that is bleeding a copper network dry.

</comment></comment></comment><comment><USER9> That is how things are supposed to work. Communities and individuals should not expect "someone else" to manage their affairs.

<comment><USER10> I'd like to understand more. Are you saying that communities and individuals should also manage communication platforms, public transport, law and order themselves?

<comment><USER11> Those services turn out better when managed by the city compared to when it's managed at the state or federal level. The problem is that rural towns usually don't have the resources to pull it off.

<comment><USER12> They don't. Federal regulation is vastly superior to state and local regulation of utilities. Remember, it's local governments that created telco and electric monopolies in the first place, a mess which Congress has spent decades trying to clean up.

<comment><USER13> Then by your logic, is global regulation superior to Federal regulation?

<comment><USER14> ISO standards are pretty good I would say.

<comment><USER15> But much less fun than going into the basement of the hall of records to see how long a foot is in this county.

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> Sadly I've never had a good experience with "wireless" internet. I've looked into building a WISP a few times but the cost of hardware and no guarantee of actual data throughput or quality keeps me away.

Most hardware for WISPs have back haul throughput rates advertised at 100-400 mbs, yet most end points at the customer premise will see data rates of 6 - 20mbs. Including the bad jitter, packet loss, and burstyness, and you've got something that is only good for browsing facebook.

All the hardware I am aware of still uses the old RTS/CTS methods for media access borrowed from the wifi protocol. Which works fine for 100 end points all within 100ft of each other... But stick 100 end points in a 5 miles radius all trying to get a "clear to send" ack and your in a world of hurt.

Yes I know... some tuning will go along way, but at least with the Motorola canopy family, they defaulted to supporting a 15 mile (or was it 20?) radius. And with the WISP's network admin (which is normally always the CEO's young nephew) never changing the defaults because it "just works". This puts a ton of latency on the network since everything is assuming to be waiting on hearing from the node 15 miles away (that may or may not be there). There are some newer systems out now that use TDMA for media access, but from the reviews I see, still getting more than 20mbs to a CPE is unlikely.

You best bet would be a gigabit back haul with some p2p access points covering no more than a mile or 2 each, but that means many more antennas and no place to put them. I've seen many WISPs "cover" 100+ square miles with just two access points. It just doesn't work.

<comment><USER17> My parents have two ISP options and they're on the east coast (like literally, the town has waterfront on the Atlantic and all the BS that goes with it). They are by no means rural. They have two ISP options. One offers 1mb down. The other is Comcast.

6-20mbps with terrible quality would be a godsend for them and everyone else in the area.

<comment><USER18> > and all the BS that goes with it

And all the beautiful scenery that goes with it? Or...?

<comment><USER17> They're fine places to vacation. They're terrible places to live.

Everyone is out to screw everyone else in order to make a buck. Shady used car salesman is a level of ethics and honesty that's about median when it comes to any sort of business (and it's more of a bell curve than bi-model IMO). The quaintness that makes the place marketable breeds busybodyism. There's a sense of community in the same way that companies that don't care about their employees loudly preach that they do. The roads are clogged with tourists from memorial day through labor day. From labor day until memorial day hospitals and holding cells are clogged with drug users and dealers. You get to watch the corrupt town government pour tons of money into special interest projects.

</comment></comment></comment></comment><comment><USER19> I am not old enough to know the history of electrification, but it was completed thoughouly into rural America. Other utilities did not. Here in rural Kansas many households were still using wells or hauling water from cities, until they banded together and laid their own water pipes.

<comment><USER20> [https://en.wikipedia.org/wiki/Rural_Electrification_Act](https://en.wikipedia.org/wiki/Rural_Electrification_Act)

</comment></comment><comment><USER21> Back in 2002 when I was in high school in Coshocton I worked for the local internet service provider, CloverNet. It was mainly mundane tech support and computer repair, but every now and then I got to help with an AirClover installation. AirClover was the medium-distance (3-5mi?) broadband solution that we set up with on-the-roof directional antennas and Cisco 802.11b cards. Really excited to hear that Coshocton is still working on solutions like this.

</comment><comment><USER22> Per usual on ISP topics popping into hacker news, I implore anyone considering starting an ISP to jump into the ISPSchool Slack channel. PM me or send an email to firstname.lastname@example.com and we will add you.

TL;DNR Montana probably has faster internet than you. [http://tsi.io](http://tsi.io)

<comment><USER23> email sent :)

</comment></comment><comment><USER24> If you search HN, you'll see successful ISP stories.

Essentially being a rural ISP/WISP is no easy task.

</comment><comment><USER25> I was just this evening going through the "what if I started a wisp? How many pops? How much bandwidth? What would it take?" I've done this off and on since 1990 when breezecom was around.

Getting access to rooftops is infinitely easier than trenching fiber.

Can you scale wireless in a modest city like KC? At what CIR? You would have to make use of extensive caching. Even the best hardware like ubiquity tops out for backhaul at 2Gb. That's always been the problem is wireless can't scale with speed. At least not in any spectrum us mortals can use.

</comment><comment><USER26> In the UK farmers are laying their own fiber. [http://www.bbc.com/news/technology-37974267](http://www.bbc.com/news/technology-37974267)

<comment><USER27> To be fair, distances in rural Britain are much shorter than distances in rural America. That said, I applaud them for doing it, and I have occasionally thought about pursuing a project like that myself.

<comment><USER26> It would be really fun digging up places to lay fiber. I've wired up 2 offices for new networking equipment when the company moved. It's pretty satisfying seeing the stuff you rigged up light up and actually function. It was pretty fun but I can imagine doing digging with equipment would be even more fun.

<comment><USER28> Until you severe a cable with said equipment and you make the news that AWS is down because if you!

<comment><USER23> That's valuable publicity & infamy.

</comment></comment></comment></comment></comment><comment><USER29> The most interesting part of the article for me was that it mentioned 5G wireless signals. I was under the impression that the standard(is that the right word?) was still being developed.

<comment><USER30> I was under the impression that refers to the frequency, eg 5GHz as opposed to 2.4GHz

</comment></comment><comment><USER31> In the early days of the telegraph, farmers bootstrapped their own networks with fence wire (source - James Gleik's excellent _The Information_ )

</comment><comment><USER12> > We view it as the next economic revolution for coal towns," said Harry > Collins, the chairman of the Letcher County Broadband Board, which formed > late last year. "The majority of our railroad tracks are ripped up now—that > revolution has played out. We feel that this [digital] revolution is just as > game changing and life changing as those railroad tracks were in the 20s and > 30s."

It's sad, but this is wishful thinking. If anything, tech-related jobs are more concentrated in urban areas than other service industries. These places have no economic viability outside the specific circumstances (coal mining, farming) that caused people to move there in the first place.

<comment><USER32> The internet and tech related jobs are the best opportunity to work remotely that anyone living in a dying coal town will have.

An online freelancer with a low cost of living can live decently.

<comment><USER33> > An online freelancer with a low cost of living can live decently.

Eastern European and freelancer here. I can do all that freelance work for much cheaper than any American from a dying coal town. Furthermore, we Eastern European freelancers generally tend to be university educated, are used to working in a global cross-cultural marketplace, and we have a large pool of local talent we can subcontract work out to and thus grow our business. Anyone in rural America who _now_ starts trying to make it in freelancing is likely to lose out to us.

On the other hand, one thing we cannot do – due to our foreign passports – is easily move to a large American city. So, I think moving to the cities is a better option for someone in a dying coal town than staying there and hoping for success in the digital economy.

<comment><USER34> Are you sure your cost of living is much less than a small town in an economically depressed rural area in the US?

<comment><USER33> An average middle class salary in my country would be around 1000€/month. That provides for a pretty good life in my country. In the USA, on the other hand, that annual income would be below the poverty level. The cost of fiber internet, electricity and gas is much cheaper in Eastern Europe than the horrible prices I have seen quoted for North America.

For what it's worth, I am now a digital nomad. I don't stay in my country on that salary, I travel among countries that are even cheaper. Someone who intends on staying in their dying coal town in Appalachia does not have that option.

</comment></comment></comment></comment></comment><comment><USER35> The title made me click because "wow, their _own_ __internet __". Oh, just infrastructure, I should have known ;D

</comment><comment><USER36> Rural America votes red, which got them this kind of policy for broadband: [https://www.theverge.com/2017/3/29/15106850/fcc-lifeline- pro...](https://www.theverge.com/2017/3/29/15106850/fcc-lifeline-program- reverse-federal-oversight-ajit-pai)

Instead of the kind of policy they had with telephones, with the Universal Service Fund, and the like, to subsidize the massively higher deployment cost. It's not just in the middle of nowhere, the run length are vastly longer. Of course it's going to cost more money. Electrical lines, water and sewer do too.

<comment><USER37> I don' think you read that link you posted properly. The proposed expansion of Lifeline to broadband was tied up in court because it was entirely Federally decreed, whereas the actual law passed by congress said that it had to be handled by the states. Pai pulled it back from the courts, and determined that following the law as written was a better idea.

Go ahead and kick the FCC and Pai around for screwing up net neutrality, but the Obama-era ULS expansion thing was never going to happen the way the FCC had written those regulations.</comment></comment>


In the Future, Senior Citizens Will Play Video Games All Day - <AUTHOR> https://medium.com/s/2069/in-the-future-senior-citizens-will-play-video-games-all-day-23794b532447 <comment><USER2> Have to be honest, thought the article would be about how people who grew up with games are getting older and how they won't change their hobbies just because they become senior citizens. A lot of entertainment habits in places like care homes and among the elderly only exist because they grew up with books and TV instead of games and the internet. When the latter generation grows old, I suspect habits will shift accordingly.

But the effects of games on cognition and what not are interesting to hear about none the less.

<comment><USER3> Maybe we will find a good way to gamify care home and incentivize the elderly (future us) to do our daily exercises and cognitive training

</comment></comment><comment><USER4> I tell everyone over 50 they need to make a habit of gaming

This is great news to me.</comment>


In which I switch on a 30 year old computer and it just works - <AUTHOR> http://www.jgc.org/blog/2009/08/in-which-i-switch-on-30-year-old.html

<comment><USER2> You know, the chances of an old 8 bitter firing up on the first try and loading its files from tape somehow does not surprise me. But you may want to worry a bit about the electrolytic capacitors, they tend to dry out over time.

If you did the same with a 15 year old 486 and read a bunch of 3.5" floppies (or worse, zip disks) I would be much more impressed :)

Eletronics back then were built to last, and the size of an individual bit on a medium from those days was large enough to withstand decay by auto- demagnetization better than anything new. Lucky you did not have any 'copy through' effects on the tape, that's the biggest killer trying to read old tapes.

<comment><AUTHOR> Hmm. I have in front of me a Maxell MF 2HD 3.5" floppy drive with the following written it:

THESIS & PAPERS 15 FEBRUARY 1996 ZIP FORMAT / DOS

Externally it looks in good condition, but it's been stored in a box of other junk all that time. Tomorrow I'll take it to work and shove it in one of the machines there that still has a floppy drive and see if it's readable.

<comment><USER2> Neat :) 13 years. I'd bet they'd work with some errors. Mostly dependant on the mechanical condition of the floppies, the 3.5" are usually pretty good because of the hard case.

I still have one of the first bernoulli 10MB removables here, I wonder how good they would fare. Not much point to try to find an adaptec 1542 just to satisfy my curiosity though.

You mention a bbc micro somewhere, do you still have that one ? (elite ???)

<comment><AUTHOR> I have a BBC Micro Model B in working order with the associated tape player and a variety of ROMs. I also have some 8" disks with my code on them which was for the Research Machines 380Z (code written for CP/M and MP/M)

<comment><USER2> Wow... Better hold on to that one very carefully.

That's one of the nicest computers there ever was to start learning on. The lowest barrier to entry and some of the best books.

My 'growth path' was KIM-1, TRS-80 pocket, then the bigger trs stuff, then an english color computer clone called the Dragon 32, then a beeb, Atari ST and from then on IBM pc's.

At some point a company that I was partner in also had a PDP 11 but we did not do too much with it because of the power requirements, that was my first unix experience.

</comment></comment></comment></comment></comment><comment><USER3> I wonder if the "designed to fail" trend will get worse or reverse in the coming years?

<comment><USER4> No, And my reason is because of the switch to lead-free solders. Lead-free solders aren't anywhere near as reliable as lead-based solders. Marketing folks claim they are. Reliability engineers can demonstrate that they aren't.

</comment></comment><comment><USER5> I found this pretty impressive:

> Then I did the real test. After poking around and finding a tape of my

> old BASIC programs I typed LOAD again and explored the tape. 30 years on

> all the programs loaded from tape just fine and executed. I was able to

> spend a happy few hours playing character-based games that I wrote.

That his programs loaded after 30 years on a cassette tape makes some of those cheap flaky CDs' lifespans look pretty bad.

<comment><USER6> I'm quite certain that if you take highest quality CD-R medium (he mentions that he had used highest quality tapes), burn it carefully, and then store it away from sun, excess heat or humidity, it will last 30 years.

Wouldn't say same for the drive used though, and that's where the real problem kicks in.

</comment></comment><comment><USER7> Modern PCs are pretty durable, IMO. Of course, if you go out and try to build a sub-$1000 PC, it's going to fail sooner or later. Invest in a durable case, a solid power supply and plenty of fans for cooling. I've found cheap DVD+RW drives fail very often, so invest in something higher quality than your $30 DVD+RW drive. I've never had a hard disk fail, but my motherboard has failed me several times. Now I have a Gigabit "gaming" motherboard (even though I'm not much of a gamer) that has lasted for quite some time.

I'm not sure how much LCD monitors last, but CRTs are known to work well for very long periods of time. I'm sure nobody wants CRTs these days, but I thought this fact was worth pointing out.

Oh, and I hear Apple's hardware is pretty good. In one year of heavy use, my MacBook has never _ever_ failed me even once. This, of course, depends on how you handle your laptop. Mine never goes out of the house, so it's never exposed to shocks, dust or intense heat.

My point is, with a bit of thought, it's possible to build a PC that can last for quite some time.

</comment><comment><USER8> I recently found a GoldStar cassette tape with my Atari hacks (in BASIC and in 6502C machine code) back from elder days of 1988-89. Externally and visually the tape is in normal condition, no chipouts of the ferromagnetic layer. Now to try it I need an Atari 800, anyone can send me one with a tape recorder ? ;-)

<comment><USER9> You could probably get the data with wav2cas - <http://home.planet.nl/~ernest/atarixle.html>

<comment><USER8> Oh my!!! Long ago I thought of possibility to create such converter, but did not know someone already implemented it. This is so cool, thanks for the link.

<comment><USER9> I almost linked blueprints or specs instead. I've been thinking about this sort of hardware emulation since PixelVision cameras came up elsewhere months ago - they recorded black & white video on audiocassettes.

</comment></comment></comment></comment><comment><USER10> Luckily for the computer cassette tapes, the FSK'ed bits lie way down in the sound spectrum, IIRC circa 1000 Hz.

I recently digitized some old favorite audio cassette dubs (TDK SA, most made on really good gear) and apart from atrocious wow-and-flutter, the high-end was completely gone on most, down to about 8K anyway.

Tape may still be the safest bet to store data long-term. I've read recently that (burned) CD's over 10 years old are getting iffy. Whereas people are still recovering NASA data off tapes made 45 years ago.

</comment><comment><USER11> Oh I have a great anecdote about my Sharp MZ-700.

I got into the habit of loading up games then entering the debug console and poking in random points in memory. As they say: It's ROM, you can't break it!

But I broke it! I rebooted and found the caps lock in the debug console was broken (but did still work in BASIC). caps lock never worked again in the debug console.

I think it's pretty bizarre to accidentally rewrite a ROM chip, but amusing too.

<comment><AUTHOR> When you say "Caps Lock" are you referring to the ALPHA key? I don't recall there being a Caps Lock on that machine.

Of course, it's entirely possible that writing to the ROM was decoded separately and used for some control signals. The Apple ][ I believe did some interesting address decoding to get control signals from the address bus.

Looking at the memory map for the MZ-700 it appears that it implemented bank switching so that the ROM could be paged in or out and replaced with the video RAM and I/O ports. Some of those I/O ports are connected to the keyboard.

<http://www.sharpmz.org/mz-700/coremain.htm#banksw>

</comment></comment><comment><USER11> I have bad memories of my Sharp MZ-700. The problem? For one, the display wasn't bitmapped, it had a fixed character display with just 2 256-letter fonts. Any game had to make good use of these fonts - like Angband.

Further, there were virtually no games for it.

When I got a Commodore 64 for my birthday, I was very glad to ditch the Sharp and enjoy a REAL computer.

</comment><comment><USER12> I still use my 27 year old Sinclair ZX Spectrum now and again. Last year we used my CDTV as the living room CD player for 6 months as we didn't want to buy a new stereo or stereo speakers (my wife blew them).

</comment><comment><USER13> I have a Compaq Deskpro Portable from the mid-1980s that still boots. autoexec.bat ftw!

</comment><comment><USER14> The rate of change of technology has been "adopted" by hardware designers, now with a considerate built in replacement time. That way we don't forget its time to upgrade again. Moore's Law was really gathering momentum/social acceptance in the mid 70s.

<comment><USER2> Moores law gathering social acceptance ? Moores law is a derivative law, not one that is to be followed by anybody.

It's more of an observation than a 'law' as such.

In its simplest form it says 'technology gets cheaper, smaller and faster over time', there is nothing you can do about it, it will happen. Social acceptance and momentum don't enter in to it, it either is like that, or it isn't.

Hardware designers do the very best they can, if they could they would prove GM wrong whenever they could, but they can only work so hard and the market is only willing to pay a certain premium for a certain improvement in speed/size and so on. After the early adopters have paid the way the tech becomes mainstream, the price drops and the cycle repeats (it really is executed several times in parallel with staggered outputs, one 'thread' for every big chip manufacturer, that's where all the leapfrogging comes from).

This is about as market driven a process as you could possibly find on planet earth.

<comment><USER14> I read a great post by Kevin Kelly on the history of Moore's law that contradicts this opinion. The standards hardware engineers worked towards were based on assumptions of a new transistor density, and the assumptions invariably became self predicting prophecies. Achievements of anything less than Moore's law improvement weren't acceptable! I'll dig up the link if you can't find it.</comment></comment></comment>


Fluffy Clouds Have API Backbones - <AUTHOR> https://www.lunchbadger.com/fluffy-clouds-api-backbones-pt-1/ <comment><USER2> Would be very surprised if there is a CIO/CTO without a public/private/hybrid cloud adoption roadmap to show...well maybe if your main business is operating legacy data-centers. Even the later gang is wondering how to turn the decade long infrastructure investment into a cash cow. But need to be careful, cloud does not mean AWS or lockins into popular public cloud. You are right API driven architectures are the way to go in any combination cloud you build. Be it provisioning, scheduling, orchestration, scaleout...APIs are the new delivery bus.

<comment><AUTHOR> We're talking to many new gen cloud companies that are already in production and have a burgeoning business that they have to support. They're all "sensitive" to cloud lock in and portability is definitely of concerns. What's also interesting is that many have moved from cloud to cloud like AWS to Azure. And many have a combination of clouds as well - a lot more than an I had anticipated!

</comment></comment><comment><USER3> "at the heart of the cloud is its backbone and its beating heart – it's APIs" Good point</comment>


Alphabet's earnings miss profit estimates as spending grows - <AUTHOR> https://www.reuters.com/article/us-alphabet-results/alphabet-cracks-100-billion-in-annual-revenue-as-advertising-soars-idUSKBN1FL6H4 <comment><USER2> Advertising industry insider here: I am seeing a lot of misinformation in this thread. Advertisers have been using (installs / In-app purchasing / shopping cart tracking) to calculate ROAS (ROI) for YEARS. And the modern targeting is actually pretty good in general.

Only big brand advertisers (like Clorox/PG/etc) evaluate ad spend on the impression/click level. This is not the norm (unless you want to lose your shirt to bots/fraud). We have made it a long way from the blunt-instrument advertising of past years. Full disclosure: there may indeed be a 'changing- of-the-guard' happening with regard to brand advertisers waking up to the available tech, but that is a different story..

Overall, this is a non-story. Many corporations were slapped with a massive bill after the passage of Trump's tax cuts. Not just Google. So with that liability, of course PROFIT dropped. But the REVENUE is what you want to look at for these 'bubble' discussions (and that is strong), so nothing to see here...

<comment><USER3> Can you explain why a tax _cut_ would lead to a huge bill?

<comment><USER4> They decided to finally pay their (lower) taxes to move them into U.S banks instead of illegally holding the funds offshore

<comment><USER5> Illegal? In what sense?

<comment><USER6> In the sense that if I were god emperor I would have made a law against it.

</comment></comment></comment></comment></comment><comment><USER7> There is a lot of anti-ad sentiment here but as someone who runs ads on google and Facebook for clients, I find that google and Facebook have leveled the playing field in some respects for small companies. Now I can definitively show a client that they pay me X dollars per month and my ads for them generated X*5 revenue for them that month. The attribution for these platforms is quite robust, and if you know what you're doing you can produce positive ROI even on small budgets. Previously when advertising was done on an awareness basis (billboards, newspapers) small advertisers might be shut out of the market because advertising is expensive and they can't reliably say whether their ads are working.

I work mainly in the health/wellness space and I'm able to effectively target people who will be legitimately interested in the services the companies we represent sell. There seems to be this idea that advertising is "shoved down our throats" and while I certainly agree in some cases, people who buy from our clients are buying because the products or services improve their lives in some way and they only buy because they want to. I think that google and Facebook (whatever your feelings on their other practices) do provide an unprecedented avenue for small businesses to find customers efficiently and profitably.

<comment><USER8> > There seems to be this idea that advertising is "shoved down our throats"

For me it's not that ads are being "shoved down my throat". Even 'unobtrusive' ads are fucking annoying. They are a waste of space and bandwidth.

I have never bought anything because of an advert. If I want something, I search for a variety of competing products, compare the prices and features etc. and then choose the one that best suites my needs.

Showing me a product that exists, will never make me want to buy it. That information is completely useless to me. If I want something I will go look for it. It mustn't find me, and then assume I want it, because then I will hate it.

Please know that the more advertising I see for a product, the less likely I am to ever do business with your company. If you want my business, just provide easily accessible and clear information about all your products/services on _your_ website.

<comment><USER9> I understand parent commenter (who I agree with) and I are outliers, but the utility of advertising to me boils down to one comparison.

advantage of product discovery << lying and inappropriate product suggestion noise

I appreciate the discovery aspect has some value (to customers), but I'd assert that it's always less than the latter two detractors

<comment><USER7> Purely anecdotal, but my experience with Instagram ads has actually been useful. I have run as blockers since i learned they existed and the only place I see ads now is Instagram (I don't use Facebook proper). Adverisisers have figured out that I run a marketing agency, and I have found dozens of helpful and informative ads through Instagram that show me what others are doing in my business, offer free strategies, or provide software that can make my business run more efficiently and provide better results for my clients. Without these ads I never would have found out about these valuable services and products.

Of course I am of two minds on this. On the one hand, it's useful and ads value to my business. On the other hand, I agree that in the main ads are intrusive annoying and slow down pages, serve malware etc etc. Plus the privacy implications. But for Instagram specifically, I find many ads I see useful and they are never intrusive since they are native to the platform. Instagram is a product I enjoy using and it's free. I don't see why the company that runs it shouldn't make money on the product, esp since the ads they serve are (sometimes) relevant and useful and reasonable in number.

I will continue to run ad blockers on every other site though because I do not find this to be the case anywhere else besides Instagram.

</comment></comment></comment></comment><comment><USER10> Are we in an advertising bubble?

I mean it's difficult to quantify advertising. Most retailers can't depend on just click through rates. If you see a ad for Vans, you might not purchase it online, but like traditional ads, it could make you think about it when you're near a shoe store.

And most normal (non tech/IT people) don't run ad blockers. But at some point there's got to be a low of diminishing return. People are earning less, and in some ways buying more to distract themselves .. yet like any industry, you simply cannot have infinite growth.

What exactly will an advertising bubble bust look like? Or would we not see it directly, as it would be more of an effect of fewer goods being sold due to something else that kills jobs and stifles wages?

How will a dot com break in the 2010s/20s be different from the one in 2001?

<comment><USER11> I really hope so. Excepting the fact that it'll probably be bad for the economy as a whole, I can't wait for it to pop and for most ads to be eliminated from my life. It's miserable to be surrounded by constant reminders about a million corporations trying to persuade me I need to give them money.

And it seems like advertising is yet another industry (alongside payment processors, legal services, and real estate) that have managed to 'insert themselves' in the middle of all other commerce, skimming vastly outsized portions of profit off of the entire economy, by being intrinsically 'needed' to do business.

It seems to me that all of these things should be driven by competition to infinitesimal profit margins, because everyone needs them and there should be a big payoff in undercutting each other to take everyone else's business. In practice that's not true at all, which I think means that 'everyone else' severely lacks high-level bargaining power to _force_ these industries down to reasonable cuts.

I fantasize about a scandal in which it emerges that click-through rates all lies and advertising barely actually works and the whole industry goes belly- up as a result.

... okay that's enough cynicism for today.

<comment><USER12> A market correction is not bad for the market. Think of it like the symptoms of a cold - your body is fighting an infection, so you'll feel unwell for a while, but ultimately you'll be healthier for it.

This is one of the many reasons that interfering in an economy to prevent "recessions" is a bad idea. It prolongs the problem and worsens the inevitable side effects.

<comment><USER13> Yeah except that "feeling unwell" is code for a ton of human misery as people lose jobs, lose healthcare, go broke, some even die. And it's disproportionately the working class that feels the effect of recessions.

"Market corrections" might be less of a tragedy if societies like the USA could muster the moral courage to pick up the slack for the market and make people's lives not literally depend on it.

<comment><USER12> All a market for is to determine the price of a resource, so that people can choose where to spend their money.

Looking after people who can't look after themselves - be it for reasons of market correction, injury or infirmity - is an entirely orthogonal concern.

In other words yes, I agree with you - but think that picking up the slack is the job of charity, and shouldn't involve interference with the market just because it's giving you prices you don't like.

<comment><USER14> I feel like it's hard to say that it's orthogonal when people not being able to look after themselves is pretty highly correlated to these people losing jobs.

The market exists for us, we don't exist for the market. If distortions are all that's needed to make sure we have the society we want, then that's great! Nothing inherently just about a market.

Gravity makes things fall, but it doesn't mean that we let everything crash to the ground because we don't want to mess with the laws of physics.

<comment><USER15> > The market exists for us, we don't exist for the market

And we are also the folks who create the market - deliberately or not. Its our collective decisions which results in corrections. We need a safety net for the people - the jobs however, are lost for the rest of eternity.

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> Makes Apple's recent $88B quarter seem gargantuan.

Apple's quarterly profit is nearly half of Google's quarterly revenue.

These companies have a very similar valuation.

Is the proper way to interpret this that investors are a lot more optimistic about Google's future vs Apple's?

<comment><USER17> Apple's multiple has always been much lower than almost every other tech company. It's always seemed completely irrational to me.. which is why I hold a lot of AAPL.

They continually grow, make a boatload of money every quarter, and pay a good dividend.

For reference, P/E Ratios:

AAPL 18.26

GOOG 38.9 MSFT 63.9 FB 35.8 AMZN 350.9 IBM 36.6 HPE 66.7 NFLX 211.9

<comment><USER18> You forgot my favorite P/E, Salesforce's:

14,776

<comment><USER19> That's not necessarily bad, it could just mean they're re-investing basically all of their would-be earnings into themselves

<comment><USER20> It's a fraction with a numerator and denominator. The demoniator can be 0.00001 sometimes. Any PE over 50 or so is effectively meaningless, everyone in finance knows to just ignore them at look at better valuation metrics.

Also there's a pretty good argument that the PE is a useless ratio that should be actively ignored, they haven't correlated strongly with anything in like 20 years.

</comment></comment></comment></comment></comment><comment><USER21> Earlier HN title: "Alphabet cracks $100B in annual revenue as advertising soars"

</comment><comment><USER22> If you told me that ad spend has become a complex diritive, and has no neccessarily strong linkage to outcomes for the supposed entity 'inside' the ad, I wouldn't entirely disagree.

I am sure for some businesses, the ad spend and placement against search has strong immediate benefit. I am less sure that a lot of ads have anything like that role.

I am completely unconvinced that 'targetted' advertising against keyword or context has any merit whatsoever. My baseline reasoning for this is that very few ads in food magazines make me go out and spend money on a new stove or coffee maker. At best, they get brand recognition and positioning but thats a weak linkage: they would have got that from placement in a magazine aimed at BMW and Merc owners.

No: targetted advertising is stalking and is creepy.

I think its a CFD. Weak linkage to real world events, brokered, and sold forward in a spot and futures market.

<comment><USER23> It's relatively easy to debunk/prove your point about targeting. Test both on the website you control. At the very least you can geolocate the visitor and present an ad in the most appropriate language about a product in their local store.

I'm pretty sure targeting would win by a wide margin.

Google ad guys are the best in business, and you're basically implying they are in a weird targeting cargo cult.

<comment><USER22> No, I think the entire ad economy is a weird targeting cargo cult. I don't think they're any worse than anyone else in the space.

Google ads: serving me pictures of the shorts I bought three months ago, on a daily basis. Seriously? You say they're the best in the business, and their business is selling to an advertisor "he bought a pair of cargo shorts three months ago" as a reason to sell me .. cargo shorts.

<comment><USER24> > You say they're the best in the business, and their business is selling to > an advertisor "he bought a pair of cargo shorts three months ago" as a > reason to sell me .. cargo shorts.

Someone who bought cargo shorts 3 months ago is _far_ more likely than a random individual to buy cargo shorts tomorrow.

You're thinking about this from the perspective of a single individual consumer, but that's not how the ads business works. Ads are bought in the form of aggregate possibilities.

If I were a cargo short vendor, I'd happily pay considerable sums to reach everyone who had recently bought cargo shorts. Maybe they're unhappy with their cargo shorts and want a different brand. Maybe their shorts tragically broke after bending over too far a few weeks after purchasing. Maybe you loved them so much that now you want a separate pair for every day of the week. All of these are reasons that betting you'll buy cargo shorts is a much better bet than betting on a random person.

People buying ads are not idiots. The ones buying digital ads are the smartest ones and many have strong backgrounds in analytical fields. It's arrogant for you to assume otherwise just because you're sick of cargo short ads.

<comment><USER22> well.. arrogant is a strong word. anyway, your general case is that if you express any interest in some thing in time, then you are better-than-random to target. I'd posit that its a spread, and whilst its an edge, its nothing like 100% foolproof. I also buy ads (I help run experiments using google ads to run HTML5 in the browser to measure IPv6) and I know how the ad bidding process works, and keyword matching and its pretty crude. Yes, it has age and other profile selection, but so does traditional print ad.

digital ads are better than print ads because print is dying. I think the whole metrics thing, its pretty oversold.

since it was known I visited cargo short buying and advertizing sites, its also known the exponential dropoff in not visiting them. their ageing out algorithm needs adjusting.

</comment></comment></comment></comment></comment><comment><USER25> Interesting mention about appointing John Hennesy the chairman of the company.

</comment><comment><USER26> I guess they're trying out the Amazon model?

</comment><comment><USER27> The article and the title don't seem to match. This title is misleading.

<comment><USER18> "Alphabet cracks $100B in annual revenue as advertising soars" was the original article title.

As the earnings release progressed, Reuters decided to change the title to, "Alphabet's earnings miss Wall St. estimates as spending grows"

<comment><USER28> Always fun to see how two correct interpretations of the exact same number can be seen as correct vs misleading depending on the tone of the writer.

<comment><USER29> Absolutely. Also continually interesting to me to see response, given Google gives no guidance, compared to other companies that provide guidance and then 'miss' resulting estimates.

(Disclosure: I work at Google)

<comment><USER30> What do you mean? Google might not give guidance but they still certainly miss street consensus.

</comment></comment></comment></comment></comment><comment><USER31> A 100 billion dollar industry that I have almost no exposure to thanks to an unpaid developer.

Thanks Gorhill and all the list maintainers out there you're my only hope!

</comment><comment><USER32> Google and Facebook are propping open the internet advertising door, against the forces of technological progress.

Google only controls Chrome so that they can ensure it never incorporates real ad-blocking. Google controls Firefox by bribing Mozilla with a tiny slice of its advertising winnings. Facebook plays second-fiddle, but has its own influence as the second largest ad network.

Larry Page and Mark Zuckerberg are smart and must realize what they're doing is wrong. They must simply not know how to replace their advertising revenue with something legitimate and future proof. In both cases they're (arguably) one-hit wonders. Google is still Google Search and Facebook's social network is still just a social network.

You can buy Oculus or clone iOS but if your only plan is to stick ads on everything, you're not making any real progress.

They both have a single-point-of-failure in their businesses. I predict this single point is going to fail catastrophically in the surprisingly-near future.

<comment><USER33> Advertising as a business is nearly 200 years old. Seems pretty future-proof.

<comment><USER32> 1\. Internet advertising is 20 years old, which is the business model that is at risk.

2\. It doesn't make sense to suggest that the future will be like the past, particularly in the modern world of rapidly accelerating technological progress.

<comment><USER34> Why would internet advertising be at risk? Are people going to stop looking at media over the internet?</comment></comment></comment></comment>


There is No Such Thing as Free Will - <AUTHOR> http://www.theatlantic.com/magazine/archive/2016/06/theres-no-such-thing-as-free-will/480750/?single_page=true <comment><USER2> I have yet to see a popular science article that discusses concepts like consciousness and free will that isn't junk. We can't even define these things in any scientific way so how can we talk about them in this context?

<comment><USER3> Yeah the article points to that, talking about different ways of seeing and describing free will. In the end, the focus of the article isn't on the philosophical concept but it's impact on society and it does a fine job describing three different views: understanding that there is no free will is a disaster; it is just fine, beneficial even if we just explain it properly; and we just redefine it and all is as it was.

</comment></comment><comment><USER4> Self contradiction is a dangerous drug.</comment>


Ask HN:Solo Hackers: What steps do you take when starting a new project? - <AUTHOR>

I tend to be a little messy in the beginning of my projects when starting from scratch.
How do you take an idea to completed application or at least to V1?
Defining the users, DB schema, Defining high level classes, creating pages, or is every project a different approach? <comment><USER2> For me, it depends on whether the project is for fun (just something I need) or a chance at a sustainable business.

If I want to test whether the project could turn into a sustainable business, I'll take a few days and create something minimal. This allows me to get the solution "out of my head" and ensure I actually want to work on it. In parallel, I'll start defining potential market segments and the problems the project could solve (C-P-S). This starts the process of customer development and trying to determine problem/solution fit. I'll then tailor the project based on actual metrics and user interviews.

</comment><comment><USER3> I've found that the more I put off the coding in favor of designing and planning, the more I tend to spin my wheels. Bring it to reality, and then iterate over it. You'll never think of everything from the start, and if you do, it's likely wrong.

So grab your vi/emacs/mate and start coding ;-)

</comment><comment><USER4> I just open the text editor and start writing code. The amount of planning depends on how complex I think the project actually is.

<comment><USER5> Agreed, pick an idea and the code just flows with it.</comment></comment>


Show HN: Thi.ng/hdom – S-expression based, pure ES6 UI/VDOM components - <AUTHOR> https://github.com/thi-ng/umbrella/blob/master/packages/hdom...
Lightweight UI component tree definition syntax, DOM creation and differential updates using only vanilla JS data structures (arrays, iterators, closures, attribute objects or objects with life cycle functions, closures). By default targets the browser's native DOM, but supports other arbitrary target implementations in a branch-local manner, e.g. to define scene graphs for a canvas element as part of the normal UI tree.
Benefits:
- Use the full expressiveness of ES6 / TypeScript to define user interfaces
- No enforced opinion about state handling, very flexible
- Clean, functional component composition & reuse
- No source pre-processing, transpiling or string interpolation
- Less verbose than HTML / JSX, resulting in smaller file sizes
- Supports arbitrary elements (incl. SVG), attributes and events in uniform, S-expression based syntax
- Supports branch-local custom update behaviors & arbitrary (e.g. non-DOM) target data structures to which tree diffs are applied to
- Suitable for server-side rendering and then "hydrating" listeners and components with life cycle methods on the client side
- Can use JSON for static components (or component templates)
- Optional user context injection (an arbitrary object/value passed to all component functions embedded in the tree)
- Default implementation supports CSS conversion from JS objects for style attribs
- Auto-expansion of embedded values / types which implement the IToHiccup or IDeref interfaces (e.g. atoms, cursors, derived views, streams etc.)
- Only ~5.5KB gzipped <comment> aaron-santos There is an interesting synergy at play amongst UI as s-exprs, functional programming, and components/vdom where the whole is more valuable than the sum of its parts. I was surprised to find no mention of Reagent[1] nor Om[2] both ClojureScript interfaces to React. They share a remarkable similarity with Umbrella especially the s-expr syntax. However, Reagent[1] and Om[2]'s language choice pushes the functional composition further.

I'm interested to see this how this combination of ideas spreads outside the browser and into other applications of UI. As for myself, I've been experimenting with a writing a terminal emulator/component lib[3] using Clojure that is inspired by Reagent/Om and React Native. It's been satisfying seeing the way these ideas compose.

[1] - [https://reagent-project.github.io/](https://reagent-project.github.io/)

[2] - [https://github.com/omcljs/om](https://github.com/omcljs/om)

[3] - [https://github.com/aaron- santos/zaffre/blob/master/src/examp...](https://github.com/aaron- santos/zaffre/blob/master/src/examples/components.clj)

<comment><AUTHOR> I actually did mention Reagent in the readme in this section (below the diagram): [https://github.com/thi- ng/umbrella/tree/master/packages/hdom...](https://github.com/thi- ng/umbrella/tree/master/packages/hdom#the-hdom-data-flow)

Quote: "The syntax is inspired by Clojure's Hiccup and Reagent projects, which themselves were influenced by prior art by Phil Wadler at Edinburgh University, who pioneered this approach in Lisp back in 1999. hdom offers several additional features to these established approaches."

However, Reagent also still relies on React under the hood whereas hdom is completely standalone. Also, hdom has a lot more features in terms of what kind of values are supported within an hiccup tree and additionally, in this latest version (5.0), hdom already has been extended to support non-DOM targets to update. Currently, the only user of this feature is the hdom-canvas package ([https://github.com/thi- ng/umbrella/blob/master/packages/hdom...](https://github.com/thi- ng/umbrella/blob/master/packages/hdom-canvas/README.md#about)), which allows you to define canvas scene graphs in the same way as the rest of the UI, but those virtual shape elements are translated into canvas draw calls. A WebGL version of this is in early progress. In general, by implementing a certain interface you can support _any_ other target context/data structure.

Ps. I've never used Om so didn't list it as an active influence.

<comment> aaron-santos Thank you for pointing that out. My mistake in missing it!

</comment></comment></comment><comment><USER2> _> \- Less verbose than HTML / JSX, resulting in smaller file sizes_

I always wondered: if you use reasonable compression (what is reasonably expected to be provided by CDNs these days? brotli? I'm so out of the loop..), if you use this, how much does file size actually matter? Isn't it about entropy, rather than size? Say, if every HTML tag required 136 <'s to open, and 136 > characters to close. How would it actually affect different compression algorithms?

My intuition says that we're all on this wild goose chase for smaller file size while it may (should) not matter _at all_.

For example, I took Wikipedia's page on entropy and replaced each < by 136*<, same for >. I bring you the file sizes for different algorithms:

                normal	crazy	% larger
      raw       423953	3470903	718 %
      Gzip -9   78897	134319	70 %
      Bzip2 -9  64286	64441	0.24 % (!)

I don't know what compression algo is de rigeur these days, and 136 <s is obviously not the same as substituting double tags for sexprs. Still, I hope we can put this file size boondoggle in the perspective of entropy one day, instead of just mindlessly chasing the character count dragon.

EDIT: turns out you can convert HTML to pseudo sexprs with some regex. here are more realistic numbers:

      	    sgml	sexpr	% diff
      raw       423953	403777	-4.8 %
      Gzip -9   78897	76936	-2.5 %
      Bzip2 -9  64286	63590	-1.1 %

Less radical, but still following the trend.

<comment><USER3> It may be less verbose but it fails completely to render anything if javascript is not enabled (in the browser) on the domain the scripts are to be loaded from. Bad accessibility, bad degredation, bad practice for the web.

I'm sure it's fine for commercial JS web apps, but those are bad for the web too.

HTML is the web. All this pure es6/dom stuff is a cancer.

<comment><USER4> > It may be less verbose but it fails completely to render anything if > javascript is not enabled (in the browser) on the domain the scripts are to > be loaded from. Bad accessibility, bad degredation, bad practice for the > web.

I call BS on that. The accessibility tools that people actually use only work with "proper" browsers (counting in IE here) that all support Javascript. Modern browsers don't even officially support disabling Javascript. For most web apps, the only feasible way to degrade from "no Javascript" is to display "this page requires Javascript". Spending any more effort here because it's "good practice" is a complete waste of time. Put some effort into testing screen readers instead.

> HTML is the web.

Nonsense.

> All this pure es6/dom stuff is a cancer.

Hey, _who are you_ to tell people what to use the web for? If somebody wants to serve as static HTML page, nobody is stopping them. Nobody is forcing people to use some Javascript framework for that.

<comment><USER3> > Modern browsers don't even officially support disabling Javascript.

That's right. The big browsers have all been co-opted (even firefox) and now target Grandma browsing Facebook and other SPA as their demographic. This is bad for the web but very good for corporations making money. These two things aren't very compatible no matter how much most web devs are invested in not realizing there's a difference.

I'm telling you how I see it and how I design my sites. None of them require javascript to function (even for my comment system). I can do this because I'm not being paid I'm just doing it for fun. I understand people being paid _have_ to make bad websites. But that doesn't make it okay.

</comment></comment></comment></comment><comment><USER5> Nice visualizations. I particularly liked [https://github.com/thi- ng/umbrella/tree/feature/estuary/pack...](https://github.com/thi- ng/umbrella/tree/feature/estuary/packages/estuary). Where can I find more stuff like this? :)

<comment><USER6> Karsten is an accomplished computational artist: [http://postspectacular.com](http://postspectacular.com) [http://toxi.co.uk](http://toxi.co.uk)

<comment><AUTHOR> hehe... just not an accomplished documenter of his works. those "websites" are all ancient. don't bother visiting!

<comment><USER6> I was a middle school student probably when I saw your hair demo in Processing. Still looks great!

</comment></comment></comment></comment><comment><USER7> I'd still rather write markup in a format that looks like markup. I think this is why JSX is so popular.

This is why I prefer something like lit-html with actual markup.

Example from hdom readme:

        // component w/ local state
        const counter = (i = 0) => {
            return () => ["button", { onclick: () => (i++) }, `clicks: ${i}`];
        };

In lit-html:

        const counter = (i = 0) => {
          return () => html`<button @click=${() => i++}>clicks: ${i}</button>`;
        }

Yeah, there some extra weight to the close tag, but it looks like HTML.

Disclaimer: lit-html author. [https://github.com/Polymer/lit- html](https://github.com/Polymer/lit-html)

<comment><USER8> Let's start some controversy.

I think JSX is popular because of historical reasons. Not the history of JSX, but the Web in general, specifically about HTML being the primary API to build web interfaces since the early days. Everyone feels at home with HTML because of this. We all started with it and it is unquestionable for many.

DOM is the second way to build a web interface. But nobody in their right mind would prefer DOM over HTML as long as HTML is sufficient for the task at hand.

The advent of stuff like Hyperscript and virtual DOMs of today introduced a new alternative to HTML and DOM: Now we can build our interfaces using simple data structures (POJOs). This was already possible from the beginning, but the interactivity requirements of the modern application forced us to invent the "UI as a function of the state" paradigm and this approach became mainstream after that (AFAIK).

But wait... Isn't HTML a data structure as well? Not sure. It clearly started as some kind of DSL for building web interfaces. Then XML is invented and HTML was declared as being an extension of XML; thus some kind of data structure (roughly). Then it got complicated. Today I have no idea about what HTML is.

This is the first part of the story.

The second part is about RPC. This one is short. XML used to be everywhere until the advent of JSON. Suddenly everybody started to embrace JSON and hate XML; for several reasons most of which are reasonable.

The question is....

Why isn't the same thing happening with user interfaces? HTML is a subset of XML (or something like that), and the syntax proposed in this article is clearly JSON. Why is everybody embracing JSX like crazy. Do they not find it extremely ugly, as XML is, compared to a POJO?

Is HTML really a better way to represent user interfaces than a solution such as the one presented in this article?

It may be hard to answer as we are all biased in favor of HTML.

I'm not experienced enough to make big claims, I'm just thinking out loud, I find this topic interesting. Corrections and feedbacks are welcome. Not trying to start a flame war.

<comment><USER4> My two cents: It's a generation of programmers raised on the Web who think web technology is good because _that 's what they know_. They _believe_ in "open standards" and "design by committee" and nonsense like "semantic HTML" being "best practice".

To everyone outside of that bubble, the following is _obvious_ : Web technology sucks. HTML sucks. CSS sucks. Javascript sucks. They're inadequate solutions, which is why people keep reinventing the way to do web frontend every two years.

> It may be hard to answer as we are all biased in favor of HTML.

Not me.

<comment><USER8> Yeah I kinda agree with this. I'm not old enough to remember the pre-Web era but I did my share of research and know that hackers of the previous generation does not hold much love for the Web, and I'm convinced that it's for good reasons. Nowadays I feel the same way.

But this problem is not specific to our generation as far as I understand. Maybe the thing that sucks the most that became big in our generation is the Web, but weren't there similar scenarios before us as well?

Doesn't Linux suck? Systemd? Java?

Doesn't every freaking mainstream technology suck? I regularly come across rants from significant developers regarding this issue. There probably is no way to prevent this from happening. Because worse is unfortunately better.

I regularly and seriously consider to leave software development because of this (as I'm really suffering) but then I remember how much power it gives me despite the horrible faults it has.

I think it's very important to understand that the tools we work with mostly suck. In my opinion this is something that is missing from software education curriculums. People need to know and understand how and why everything is messed up and how can we work around this issue while preserving our mental health and the intellectual satisfaction we are supposed to get from the craft.

<comment><USER4> > Doesn't every freaking mainstream technology suck? I regularly come across > rants from significant developers regarding this issue. There probably is no > way to prevent this from happening. Because worse is unfortunately better.

Web technology is fundamentally different in that you have a big standards body regulating everything from layout down to color blending, then leave it up to multiple vendors to implement all that stuff at great expense and with long delay. Worse, it's all shoehorned on top of some "document model" than was never designed with applications in mind. It's a waste.

To see what a better platform could look like, consider this:

[https://mickens.seas.harvard.edu/publications/atlantis- robus...](https://mickens.seas.harvard.edu/publications/atlantis-robust- extensible-execution-environments-forweb-applications)

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

The key here is reducing surface area. It's entirely possible that WASM will bring us closer to that, but the web developers of today probably won't like that.

> I regularly and seriously consider to leave software development because of > this (as I'm really suffering) but then I remember how much power it gives > me despite the horrible faults it has.

I don't know what you do, but I find web development to be significantly more frustrating than other areas. That doesn't mean there isn't frustration elsewhere though and it's definitely part of the job.

</comment></comment></comment></comment></comment><comment><USER9> I hope you are aware about this attack vector[1] that was fixed in React long time ago.

1\. [http://danlec.com/blog/xss-via-a-spoofed-react- element](http://danlec.com/blog/xss-via-a-spoofed-react-element)

<comment><AUTHOR> Thanks & I wasn't (aware of it). hdom doesn't use `.innerHTML` anywhere, though. So I'd dare to say less dangerous... though not saying it's out of danger!

</comment></comment><comment><USER10> Thanks for sharing and Kudos for TypeScript! This question is not aimed at you and certainly not at your work.

I used to be a game developer from an OOP background. I find this really hard to read.

[https://github.com/thi- ng/umbrella/blob/master/examples/hdom...](https://github.com/thi- ng/umbrella/blob/master/examples/hdom-canvas-draw/src/index.ts)

Would anyone be able to give 2 cents about where the industry is headed in this regard? Will I be looked down on that my codebase is OOP in the future? Also for those who were cut from my cloth, did you find the transition difficult?

<comment><USER11> I have no idea where the industry is headed, but I feel rather confident that there will always be some group of people that will find some reason to look down on your codebase. If you rewrote the whole thing in state-of-the-art FP tonight, then by morning there will be some contingent of zealous logic programmers with their noses turnt up.

Don't worry about being looked down on. Worry about improving yourself as our field figures out how we can improve our craft. There's a lot of noise, which makes it hard to tell which things offer the most improvement, but knowledge is _never_ a setback. You will never learn something new and be worse off than you were before. And learning something new doesn't require you to rewrite your codebase to use it, either—of course, you can if you so chose, but that's not a decision you can make until you've grokked the newness ;)

As for the difficulty of the transition: I didn't find it difficult, but I also had the luxury of time. I think it could potentially be difficult for someone thrown into the deep end (e.g., "go into the `hdom-canvas-draw` example and implement new features X, Y, and Z by Thursday!"). People often talk about FP being a different way of thinking about programming. That's true to some extent, but it's not _entirely_ different from what you're used to. I think the thing that seems strangest for newcomers to FP isn't the way of thinking, it's the terminology. Names like `filter`, `map`, `mapcat`, `partition`, &c. seem odd and incomprehensible at first. But they're just operators, like `add`, `multiply`, `insert`, `append`. They're the kind of operator that make functional programming functional: they operate (at least in part) on functions.

If FP is something you want to learn, my advice is to start slow and simple. Some people can probably dive into that example code, tear it apart, figure out how it works, and learn that way. Perhaps I could if I were motivated enough, I don't know. What I _do_ know is that I can't be arsed to do something like that. It's frustrating. Annoying. I have better things to do with my time.

The common advice is Abelson & Sussman's «Structure and Interpretation of Computer Programs», which is pretty good, though it has some problems. Felleisen & al. wrote «How to Design Programs» to address some problems with SICP, and wound up introducing even more problems. The choice between those two boils down to whether you want a book that addresses you like a 13-year- old with a good grasp of the infinitesimal calculus (SICP) or one that addresses you like an 11-year-old that barely understands elementary algebra (HtDP). Personally, I rather like Paulson's «ML for the Working Programmer», which assumes you're an adult who probably doesn't hold a degree in mathematics. Unfortunately, it's not freely available like the other two.

If you decide to go with SICP, I recommend using either MIT Scheme or Racket with sicp mode (you can install the mode through the menus in the DrRacket IDE). For MLftWP, I'd recommend using PolyML (any Standard ML implementation compatible with the revised definition will work fine, but PolyML is actively maintained and easy to set up).

From there, you should be pretty versed in the foundations of FP, and it's just a matter of practice to get comfortable. Of course, there will always be more to learn—the student may never rest :)

ETA - My best advice would be this: if you have the money and the time, read both the Paulson book and SICP; if you have the money but not the time, read the Paulson book; if you don't have the money, read SICP, which you can find in many formats on the Web (it's CC BY-SA licensed). I would not recommend HtDP to a professional programmer, and only maybe to a neophyte.

<comment><AUTHOR> very well said indeed! +1

</comment></comment></comment><comment><USER12> OP, a README in that directory would be useful

I found some docs:

[http://docs.thi.ng/umbrella/hdom/](http://docs.thi.ng/umbrella/hdom/)

<comment><AUTHOR> I dunno, there's a 1000+ LOC readme there. Also updated the above link to point to it directly. It's a shame that GH is automatically displaying the readme on desktops, but not in mobile version...

<comment><USER12> Doh! I did miss it

</comment></comment></comment><comment><USER13> I've never quite understood S-expressions. Can someone give me a good primer on them?

<comment><USER14> S-expressions are just the lowest common denominator of programming language syntax and more generally trees (aka lists of atoms and lists).

The idea is that all program listings are essentially just lists of things, including other lists: A Javascript source file can be thought of as a list of lines, or more semantically a list of statements and expressions. Function calls are just the name of a function and a list of arguments. Each different kind of statement or expression has its own kind of syntax: a `function(baz) { yadda(baz); }' expression uses different syntax than a `if (something) { yadda(foo); } else { blah(bar); }' statement. S-expression languages just use one kind of syntax for everything, so you can do `(lambda (baz) (yadda baz))' and `(if something (yadda foo) (blah bar))' instead.

This uniformity of syntax allows most of the interesting features of lisps, like that everything is an expression (returns a value), and macros, which are kind of a souped-up version of C preprocessor `#define's.

<comment><USER15> A great explanation. It's a pity that is buried in the thread.

</comment></comment></comment><comment><USER16> Wow - this is an impressive body of work.

Particularly like the Estuary and chart samples.

You mentioned you still use ClojureScript - but I'm guessing you're not using CLJS for front-end stuff anymore and just stick to your ES6 libs?

<comment><AUTHOR> Merci beaucoup & please see my other comment about this...

<comment><USER16> Yes, saw you posted it after my comment.

You were one of the reasons why I got interested in Clojure / CLJS. Even visited a workshop of yours a couple of years ago ;) I'm still in dabbling mode unfortunately.

So my understanding after reading your tweets - is that for your use cases ES6/TS is better suited for front-end stuff. But Clojure is still worth digging into - if only for learning the philosophy, principles, ideas and simplicity of FP.

For what use cases would you use ClJ / CLJS nowadays?

Anyway, thanks again for your work - I like the hiccup style of building UIs - so will be checking out hdom.

Edit: typo

<comment><AUTHOR> Oh hello & wow... now if only I knew who you are... :)

Those tweets really weren't meant to discourage people from using CLJ(S) at all!! I was merely trying to explain why, personally, I think TS is better suited for _my own_ use cases (and those of my job)... I'm not building "standard" websites and for the tools I'm dealing with, CPU performance is more important than for most other web apps. I sometimes just felt constrained by some of the features & indirections people usually come to Clojure/Script for in the first place. For example, when generating or processing large amounts of geometry I really don't want or even need immutable data structures by default and so I wanted to have the freedom of being able to break out from this more easily. In some cases I too wanted to have more of a 1:1 correspondence between the code I write and what it ends up as in JS, something the combo of CLJS + GCC made hard(er). ES6 syntax offers many niceties (e.g. array and object destructuring, iterators, async fns) and without those I'd probably be still using CLJS more.

<comment><USER16> Ok thanks for clarifying - I didn't read your tweets as a discouragement and it makes sense the type of apps you're working on you probably need to squeeze out as much performance as you can and need something which gives you more control.

I was in your last Clojure for beginners course. I remember your dog was very friendly and liked to play with the half chewed tennis ball ;)

</comment></comment></comment></comment></comment><comment><USER17> A bit off-topic, but have you moved away from Clojure entirely? I guess it sorta makes sense b/c creative coding in Clojure never quite took off (though there are some very nice individual libraries)

I really loved your geom library btw, thank you!

<comment><AUTHOR> I commented on this recently on twitter & reddit:

[https://twitter.com/toxi/status/1041143431786115072](https://twitter.com/toxi/status/1041143431786115072)

[https://twitter.com/toxi/status/1041144813092044800](https://twitter.com/toxi/status/1041144813092044800)

[https://www.reddit.com/r/Clojure/comments/9deyxe/thinggeom_a...](https://www.reddit.com/r/Clojure/comments/9deyxe/thinggeom_appears_to_be_back_in_active_development/e6984at/)

Hth!

<comment><USER17> Thanks for the context :) Yeah, I understand it's a bit hard to work on a massive project of that scale with little feedback! It can be a bit draining.

I funny enough came at CLJ in part for the math functionality - but I might hit the awkwardness you mentioned. Mostly I'm quite interested in Neanderthal which runs native (MKL) and OpenCL. But living outside of the browser and JS/CLJS presents other limitations (like mixing geom with JavaFX for GUIs has some clunkyness - and the JavaFX wrapper libraries like fnfx are great but not polished)

It's great to see the no-org branch! I love org-mode and use it a lot (for templates and examples) but it always ends up a bit tricky for me to massage the code layout to fit the right narrative structure - so I get why you're moving away to encourage contribution :)

Thanks again for this awesome piece of tech. The API is just so fun to use once you learn how it works (it's so different and ergonomic from anything else I've used in C++/Cinder/etc.), and the end result looks very sexy. I'll keep using it and maybe add some PRs with examples once no-org merges in

</comment></comment></comment><comment><USER18> What makes this different from Mercury ([https://github.com/Raynos/mercury](https://github.com/Raynos/mercury)) and a ton of other pre-React frameworks?

<comment><AUTHOR> I don't want to sound snarky (and please don't see it as such), but did you read the readme? I'm not familiar with Mercury, but looking at the code examples, some obvious differences are:

\- hdom does NOT care about state, where it comes from or how you manage it

\- hdom uses vanilla arrays(*) instead of `h()` function wrappers, which not just create more legible (IMHO) style, but also open components up for more options in terms of construction/composition and also transformation.

I think that last aspect is seldom talked about in all those discussions and comparisons w/ React & co. Entire 3rd party frameworks are invented & maintained just to provide augmentation, configuration & injection features for React style components, issues which can be much easier solved if your components are in a less abstract & more native data format already. ES6 provides a ton of nice features to construct and transform arrays without any additional support structures. hdom also supports & fully embraces ES6 iterators and the more modern ways of transforming data they support.

There's a blog post about this forthcoming, so apols for not going into more detail here now...

<comment><USER18> Neither do most of the other libraries care about how you manage state. There are also other libraries that can take arrays/data as input, we ended up with inline functions mostly due to performance. There is no intrinsic advantage to plain arrays other than being serializable without an intermediate step, everything else is the same (jsx pragma and an array-based tree are fully interchangeable since you can easily generate one from the other).

Looking forward to that post as I'm always happy to be proven wrong!

</comment></comment></comment><comment><USER19> FYI the "Mouse gesture analysis" example has performance issues after 300~ samples (e.g. keep drawing big circles continuously)

Win10/Chrome/i7 4790k/GTX 970

<comment><AUTHOR> That's because that demo is using SVG for graphics and hence updating 300+ DOM elements every frame will of course start stuttering... Once I've updated that example to use the hdom-canvas support lib ([https://github.com/thi- ng/umbrella/blob/master/packages/hdom...](https://github.com/thi- ng/umbrella/blob/master/packages/hdom-canvas/README.md)) this will be a non- issue. E.g. here's another demo which draws 10k rectangles @ 60fps. Only once I go >25K, I'm starting to loose framerate (MBP 2016):

[https://demo.thi.ng/umbrella/hdom-canvas- shapes/#points-10k](https://demo.thi.ng/umbrella/hdom-canvas- shapes/#points-10k) [https://demo.thi.ng/umbrella/hdom-canvas- shapes/#points-50k](https://demo.thi.ng/umbrella/hdom-canvas- shapes/#points-50k)

<comment><USER19> I found a similar issue with the git commit log example (when filtering from initial state and clearing filter) - I guess it can be reproduced via a "heavier" example e.g. a couple hundred nodes with more frequent state changing.

<comment><AUTHOR> The commit table has a 100ms throttle on key press, but I think might have a bug, need to inquire more... :)

There's also a stress test here which updates several hundred nodes each frame:

[https://github.com/thi- ng/umbrella/tree/master/packages/hdom...](https://github.com/thi- ng/umbrella/tree/master/packages/hdom#benchmark)

E.g. each cell shown requires 3 DOM updates per frame, so in the 256 cells config it updates 768 DOM nodes. On my MBP2016 this config runs at ~35 fps, 192 cells (576 real DOM updates) at 59-60fps

</comment></comment></comment></comment><comment><USER20> Is the DOM an afterthought here, like in React, or is everything strongly tied to the DOM?

<comment><AUTHOR> "Afterthought" is too a strong a term, but the largest aspect of that latest version of the library was to generalize the approach to aim at other non-DOM targets. I left another comment about this somewhere else in this thread. Basically, you can choose branch-local implementations of the main hdom interface. If none is provided, it uses the default one which targets the DOM...</comment></comment>


Free Speech Leftists Still Exist - <AUTHOR> http://quillette.com/2018/01/02/free-speech-leftists-still-exist/ <comment><USER2> It's a shame that the left has strayed so far from classical liberalism. The pendulum will eventually (hopefully?) swing back the other way.

</comment><comment><USER3> I think one of the multiple factors that helped the right to add a lot of people to their pool in the last years, it's because the regressive part of the left have abandoned the thesis of "I will defend your right to speech even if I don't like what you said" instead going for the "Let's censor all that hurt my (subjective) feelings". Of course this it's not the left in general, but a small but vocal minority.

Probably the best way to fight a bad argument (e. Racism, Sexism, etc) it's not to censorship, but educate and discuss about it, and expose the fallacies in their logic. Censor ideas we don't like, gives them a martyr status. Of course it's hard and requires work, but at the long term freedom of speech it's a great investment for a democratic society.

</comment><comment><USER4> _But recall that Noam Chomsky himself, a titan of left thought, rejected postmodernism for his entire life, and debated Michel Foucault in 1967, dismissing the blank slate and Foucault's naïve argument that there was no defined human nature._

Yet a good deal of investigation supports Foucault's position over the years.

[https://www.sciencedaily.com/releases/2017/05/170502112607.h...](https://www.sciencedaily.com/releases/2017/05/170502112607.htm)

<comment><USER5> What? That link doesn't support a "blank slate" argument at all. While I'm not a parent, ask any parent and they will tell you that their children show very different personalities from an incredibly young age. To act as if it is 100% nurture (or 100% nature) is ludicrous.

<comment><USER4> Language influencing thought (modernized Sapir Whorf) forms a base foundation _against_ innate facets / late Humanist thinking.

The field of perception and "optical illusion" is another such foundation. See Carpentered World hypothesis for example.

</comment></comment></comment><comment><USER6> The first paragraph kinda threw me off with the mentioning of BDS.

While the criminalization of BDS activism as they put it might be a problem, BDS is entrenched in the "regressive" left.

They push no platforming to a whole new level, blocking, rioiting and outright assaulting pro-Israeli speakers and groups, heck you don't even have to be "pro-Israel" if you don't agree with what BDS stands for (especially if you are a Jewish group) or their actions it's enough for you to be an enemy which is the core problem with much of the left today if you don't agree 100% with both the ideology and the execution you are part of the problem.

</comment><comment><USER7> E.g. Sam Harris

</comment><comment><USER8> The concept of free speech has become fertile ground for ideologues and culture warriors. It's been an excellent wedge issue for pulling generally- progressive centrists to the right by appealing to their intellect and penchant for abstract principal.

But what of policy? Free speech doesn't feed the hungry or provide healthcare for the sick or protect the environment.

I suppose there will be plenty of time for those things after we've dealt with censorious college students.

<comment><USER9> In many environments, including when (ahem) we have a leaders in power who do not share our values, free speech is a prerequisite for advocating for what we care about. It's great that you care about the environment and LGBT rights, but try advocating for those things in China or Putin's Russia. You might as well just cross your fingers and hope the ruling party comes around to your point of view under those circumstances.

</comment></comment><comment><USER10> The left is in a very dangerous spot right now. I have seen leftists equate free speech with white supremacy.

The danger is that people start to believe them.

<comment><USER11> You have seen idiots call themselves leftists.

</comment></comment><comment><USER12> > the left should embrace free speech rights and other legal protections of > rights because, due to our lack of power, the left is most likely to be > subject to assaults on those rights from above.

This quote bothers me deeply. Isn't the spirit of this essentially, "free speech is good because without it my voice might not be heard, and my voice is very important".

It seems to me that many people on the left are much less rights concerned than I would have though. Can't help but feel it's because the left began to realize people they disagree with would end up with rights too, god forbid.</comment>


Superfish CEO admits to installing root certificate to show ads on secure sites - <AUTHOR> http://thenextweb.com/insider/2015/02/21/superfish-admits-installing-root-certificate-authority-show-ads-secure-sites/

<comment><USER2> He should be hunted for sport.

</comment><comment><USER3> Clown town in Superfish HQ.</comment>