Wednesday, June 30, 2021

CellChorus (YC S21) Is Hiring

Location: Houston, Texas

CellChorus applies AI to "watch" thousands of videos of cell movement, interactions, survival and death. Our customers use our platform to determine the best therapies to move forward to clinical trials, to understand patient response and non-response, and to maintain consistent manufacturing.

You will help some of the top immunotherapy companies in the world improve the lives of patients diagnosed with cancer, infectious diseases, auto-immune disorders and other conditions.

We are looking for someone awesome who:

- has extensive programming experience with Python (experience integrating C++ libraries and wrapping functions in Python for faster processing is preferred); - has extensive experience with various visualization tools and GUI development, and is comfortable with libraries such as PyQT and VTK; - has some familiarity with multiprocessing libraries and techniques; - preferably has had educational or professional exposure to cell biology, cancer biology, immunology or a similar field, preferably with a familiarity of bio-image datasets; - is comfortable communicating throughout the organization and with external partners; and - is motivated to help patients.

What you will do and/or be responsible for:

- deploy, maintain and improve existing computational pipelines; - conduct analyses of results generated in the CellChorus imaging lab; - generate statistical summaries, graphs, plots and charts of results; - collaborate with a multidisciplinary team including from scientific, sales and marketing teams, as well as senior leadership and external partners; and - document results and support grant activities.

Other considerations:

- Language: Professional communication skills (both written and verbal) in English are required. - Timing: Candidates should be able to start within 30 days. - Location: Houston, Texas.

For more information on our pipelines, see the Bioinformatics and IEEE papers at https://cellchorus.com/resources. For information on our entire platform, start with the PLOS One paper. You can also see example videos of cells at https://cellchorus.com/videos.

CellChorus is an Equal Opportunity Employer that provides equal opportunities to all employees and applicants for employment. CellChorus prohibits discrimination and harassment of any type without regard to race, color, religion, age, sex, national origin, disability, genetics, protected veteran status, sexual orientation, gender identity or expression, and any other characteristic protected by federal, state, or local laws.

Please apply with a PDF version of your CV/resume.



from Hacker News https://ift.tt/3dvZOoL

The Population Bomb Doomsday Scam

It may be the most astonishing story of the year that no one is paying much attention to. As the Wall Street Journal recently reported on their front page, “Chinese officials are drawing up plans to further loosen birth restrictions and transition toward policies that explicitly encourage childbirth,” (emphasis added). According to Chinese insiders, China, the most populous nation on the planet, is replacing its brutish childbirth restrictions with a program allowing, and even rewarding, couples for having kids. Beijing has announced that its demographic problem today is too few young people, not too many.

The New York Times put the point even more emphatically in its coverage of this amazing twist of fate, by acknowledging in a headline that the dreaded “population bomb” of the 1960s and ’70s has turned into a global “population bust.”

Beijing has announced that its demographic problem today is too few young people, not too many.

Let us put it even more concisely: the greatest environmental/demographic scare of the second half of the 20th century — overpopulation — is now officially conceded to have been a monumental fraud.

To appreciate what an embarrassing reversal this is for the green movement, consider that 40 to 50 years ago nearly all the scientists, policymakers, U.S. government agencies, and experts at the United Nations told us that rampaging population growth would lead to a Malthusian doomsday with the world in our lifetimes running out of food, energy, and nearly everything else. If ever there were an ironclad “scientific consensus,” this was it.

In their 1967 book Famine 1975!, U.S. government agronomist William Paddock and Foreign Service officer Paul Paddock predicted that population growth would soon lead to such mass starvation in so many nations that triage would be required and that nations like India and Egypt should be written off as “can’t-be-saved.”

Stanford scientist Paul Ehrlich became the most famous academic in the world with his mega-bestseller The Population Bomb and its widely quoted opening sentence: “The battle to feed all of humanity is over. In the 1970s and 1980s hundreds of millions of people will starve to death in spite of any crash programs embarked upon now.” Ehrlich was Al Gore before there was Al Gore.

It wasn’t just some academic kooks who were peddling these apocalyptic predictions. In 1975, a statement signed by such luminaries as soon-to-be National Security Adviser Zbigniew Brzezinski, Nobel Prize-winning scientist Albert Szent-Gyorgyi, business titans J. Paul Getty and Henry Luce III, United Auto Workers President Leonard Woodcock, and others appeared on a full page of the Wall Street Journal with a similar forecast: “The world as we know it will likely be ruined before the year 2000,” because “food production cannot keep pace with the galloping growth of population.”

The UN Economic and Social Commission for Asia and the Pacific predicted “500 million starvation deaths in Asia between 1980 and 2025.”

The experts were only off by about 99 percent. In reality, there has been no mass starvation other than in draconian socialist economies like North Korea and mid-1980s Ethiopia. The University of Oxford’s Our World in Data reports that worldwide famine deaths have sharply decreased from an annual average of over 1.6 million in the 1960s to less than 40,000 in since 2010 — and that total famine deaths worldwide (not just in Asia) were less than six million from 1980 through 2016.

Instead, even as the world’s population doubled from 3.7 billion in 1970 to 7.4 billion in 2015, food production rose even faster. India with 1.39 billion people has become a major agricultural exporter. Death rates nearly everywhere have plummeted. In the United States farm productivity rose so rapidly — with an almost tripling in yields — that the government has had to pay farmers not to grow so much food.

The world’s population is larger, but humans today live longer and are healthier, vastly more prosperous, and better fed. Our World in Data reports that from 1970 through 2015, world extreme poverty fell from almost 48 percent to less than 10 percent.

Image of chart of world population living in extreme poverty 1820-2015, illustrating piece on China eliminating childbirth restrictions and declining world-wide poverty and starvation rates (Screenshot from OurWorldinData.org) spectator.org

How could the “scientific consensus” have been so wrong? A simple answer is the doomsayers erroneously extrapolated short-term trends in fertility far into the future without understanding that human beings are not like Norwegian field mice (which some Malthusians compared us to). We adapt our behavior and we devise solutions, such as the “green revolution” in agriculture and the shale oil and gas revolution that overnight ended the preposterous fears of ever running out of food or energy.

The doomsayers also ignored decades of data showing population growth can be beneficial rather than harmful to humanity. Instead of impoverishing people and depleting resources, additional people on the planet, when paired with freedom and free markets, drives economic growth, productivity, and a cleaner, safer environment.

The green movement that propagated this scientific fraud would like to sweep the whole episode under the rug — and keep the focus on their latest end-of-the-world scenario. When confronted with the new facts, instead of conceding that their dire predictions were dead wrong, they self-servingly congratulate themselves for saving us from a demographic nightmare.

In reality, the lesson of the population bomb lie is that false doomsday alarms come at a high cost, and in this case unleashed horrific outcomes. How many millions of women and couples in the U.S. and worldwide tragically followed the advice of the Malthusians that they had an ethical or moral obligation to have fewer children or even to go childless?

Much worse were the activities of repressive foreign governments in Africa, China, Egypt, India, and Central America, which bought into the primal screams of Western academics and imposed gruesome population control programs — including strapping women to metal tables and performing forced abortions and sterilizations to reduce births. China’s ghastly one-child policy led to millions of sex selection abortions and infanticides. Tens of millions of girls in China went missing.

Yet, in the name of “saving the planet,” the U.S. government and the UN applauded these inhumane tactics — and even helped finance them. So much for women having control of their own bodies.

A second lesson here is the dangers of shutting off open and fact-based debate on environmental issues. The hero in exposing the Malthusian hoax was the late doomslayer economist Julian Simon — the father of one of your authors and the mentor of the other. When Simon and others challenged the myth of an overpopulated planet, they were berated in the media, the halls of Congress, and the university faculty lounges as “crazy” and “dangerous” for daring to challenge the “settled science” of overpopulation.

Shouldn’t this give us all pause when we hear this generation’s sages at the UN and the U.S. State Department (and now even the Biden Treasury Department) tell us that climate change is an “existential threat”? Shouldn’t this generation’s Julian Simons who dare question the oracles predicting catastrophic warming of the planet 50 and 100 years from now be heard from rather than being denounced as “science deniers” and erased from Twitter and Facebook?

Suppose, for example, the planet warms as the models predict. Do we really know for certain that this will result in catastrophe? Just as we now understand that nations with expanding populations often do better economically, it is also quite possible that further warming of the planet will have positive benefits as well — certainly in dramatically increasing agricultural output.

For example, a study published in 2015 by the British medical journal the Lancet found that cold kills over 17 times more people than heat. This study, “the largest dataset ever collected to assess temperature-health associations,” examined more than 74 million deaths in Australia, Brazil, Canada, China, Italy, Japan, South Korea, Spain, Sweden, Taiwan, Thailand, the United Kingdom, and the United States from 1985 to 2012.

The study reported that cold temperatures were associated with 7 percent of these deaths, while heat caused only about 0.4 percent.

Before we adopt a strategy of diverting trillions of dollars toward wind and solar power and electric vehicles while dangerously shutting off our traditional sources of abundant, cheap, and highly reliable forms of energy, perhaps we can search for much less costly technological improvements to combat any dangers that may arise as a result of the planet’s warming.

In sum, the lesson of the population bomb that fizzled is that we need far more humility and open debate about predictions of the planet’s future. To paraphrase Yogi Berra, predictions are difficult, especially when they are about the future.

But we do know with certainty about the past. The doomsayers of the 1960s and 1970s were anything but saviors. They were just dead wrong. Worse, they did great damage to human freedom — especially in the poorest countries — and their faulty science was used as an excuse for imposing barbaric government controls on tens of millions of people around the globe. There should be a scientific consensus that that is not an episode we ever want to repeat.

Stephen Moore is an economist at Freedom Works and one of the founders of the Committee to Unleash Prosperity. He is the co-author with Julian Simon of It’s Getting Better All the Time: The 100 Greatest Trends of the 20th Century.

David Simon is a senior fellow for the Committee to Unleash Prosperity and a lawyer based in Chicago. For more, please see www.dmswritings.com.

 



from Hacker News https://ift.tt/3hc4AbW

Software estimation is hard – do it anyway

Estimating Software Projects:

Software Estimation Is Hard. Do It Anyway.

It’s well-established that estimating software projects is hard. One study by HBR found that one in six IT projects had cost overruns of over 200% and were late by almost 70%. Another study by McKinsey found that IT projects are on average 45% over budget and 7% over schedule. They found large software projects were particularly bad: software projects with budgets over $15M went over budget by an overage of 66% and had schedule overruns averaging 33%.

Of course, anyone who’s worked in software for a bit will have seen this first hand. At some point you’ve probably said “oh yeah, that’ll only take a couple of days” … and then found yourself, a month later, still not finished. Estimating a software project seems to always run up against Hofstadter’s Law: “It always takes longer than you expect, even when you take into account Hofstadter’s Law.”

Unfortunately, it’s common to look at this pattern, see that estimating software project timelines is hard and just … give up. There’s an established “No Estimates” position that says we should entirely stop giving estimates on software projects. Many Agile methodologies involve arbitrary scoring systems – story points, t-shirt sizing, etc. – deliberately designed to help avoid giving estimates in time-scale units.

There’s nuance here: these ideas do have some value. I don’t mean to dunk on story points. In particular, “no estimates”-style project management can lead to better conversations about timelines: these systems encourage questions like “what can we get done in the next two weeks?” instead of “how long will Feature X take?” This can often be a much better way of thinking about software projects, especially long-lived ones.

However, sooner or later, someone’s going to ask “when will Feature X ship?” There are situations where having an answer – an accurate one – is non-negotiable. Maybe Sales can close a major deal if they commit to a timeline for some new feature. Maybe the feature in question is a major dependency for some other team, and they need to know how to schedule their work. Maybe your feature is one of many that will come together into a new product launch, and the whole product launch apparatus needs to spin up and promote it, which requires a timeline. I could go on: the point is, there are many situations where an estimate is required.

One major “secret” to advancing in a technical career is learning how to give accurate estimates. It certainly has been for me: I don’t shy away from giving timelines, and I’ve learned how to be right often enough that folks trust my estimates.

If you always avoid estimation and don’t learn how to give a timeline when it’s required, that might become a limiter on your career. Being able to tell your bosses and peers what to expect by when – and then hitting those marks – builds trust in a major way. This is true of individual contributors and engineering managers: you can pretty easily become a Senior Engineer or Engineering Manager without needing to be good at estimates, but to go much farther than that you’ll likely need to learn this skill.

And it is a skill: estimation can be learned. You can learn techniques, but to some degree, they don’t matter: whatever technique you use, practice makes perfect. If you get in the habit of breaking projects down and making timeline estimates, you can review those estimates against reality and recalibrate. Do this repeatedly and you’ll get better: you’ll learn where your team tends to get stuck and where they blaze through work; you’ll find which areas of your codebase are quick and easy to modify and which require more time; you’ll learn to recognize your own biases and where you’re most likely to over- or under-estimate.

The next post in this series covers the technique I use for estimation, one that’s been effective for me. But the technique doesn’t matter as much as the broader point: estimation is hard; do it anyway.



from Hacker News https://ift.tt/2S9qvYK

What robots can and can't do for the old and lonely

It felt good to love again, in that big empty house. Virginia Kellner got the cat last November, around her ninety-second birthday, and now it’s always nearby. It keeps her company as she moves, bent over her walker, from the couch to the bathroom and back again. The walker has a pair of orange scissors hanging from the handlebar, for opening mail. Virginia likes the pet’s green eyes. She likes that it’s there in the morning, when she wakes up. Sometimes, on days when she feels sad, she sits in her soft armchair and rests the cat on her soft stomach and just lets it do its thing. Nuzzle. Stretch. Vibrate. Virginia knows that the cat is programmed to move this way; there is a motor somewhere, controlling things. Still, she can almost forget. “It makes you feel like it’s real,” Virginia told me, the first time we spoke. “I mean, mentally, I know it’s not. But—oh, it meowed again!”

She named the cat Jennie, for one of the nice ladies who work at the local Department of the Aging in Cattaraugus County, a rural area in upstate New York, bordering Pennsylvania. It was Jennie (the person) who told her that the county was giving robot pets to old people like her. Did she want one? She could have a dog or a cat. A Meals on Wheels driver brought Virginia the pet, along with her daily lunch delivery. He was so eager to show it to her that he opened the box himself, instead of letting Virginia do it. The Joy for All Companion pet was orange with a white chest and tapered whiskers. Nobody mentioned that it was part of a statewide loneliness intervention.

On a Thursday this spring, Jennie (the cat) sat on the dining-room table, by Virginia and her daughter-in-law Rose, who is subsidized by Medicaid to act as Virginia’s caregiver for nine hours each week. Virginia was holding a doughnut very carefully, her thumb pressed into the glaze. Her white hair, which she used to perm before it got too thin to hold a curl, was brushed away from her face. Decades ago, Virginia and her husband, Joe, who ran a nearby campground, had entertained at this table. But everyone who used to attend their parties was either dead or “mentally gone.”

John Cheever wrote that he could taste his loneliness. Other people have likened theirs to hunger. Virginia said that her loneliness came and went and felt sort of like sadness. And like not having anyone to call. “Well, I do. I have a family, but I don’t want to bother them,” she told me. “They say, ‘Oh, you aren’t bothering!’ But, you know, you don’t want to be a bother.” Her daughter was in Florida. Her older son came by with food sometimes, but he spoke so quietly that Virginia couldn’t always hear him, and then she felt bad for being irritating.

Other times, loneliness felt like a big life falling in on itself. It had been years since Virginia could drive anywhere, and even the house seemed to have shrunk. “The kids won’t let me go in the basement,” she said. “They won’t let me go upstairs. They’re afraid I’ll fall.” She did fall sometimes. Once, as she waited on the ground to be rescued, she grew very cold, because she wasn’t wearing stockings.

At the table, Virginia pulled the cat’s tail. It let out a tinny meow: one of more than thirty sounds and gestures—eye closing, mouth opening, head turning—that the Joy for All cats are designed to make. A dollop of jelly fell from Virginia’s doughnut onto her turquoise dress. She laughed and looked over at Jennie: “I can’t believe that this has meant as much as it has to me.”

When the coronavirus arrived in Cattaraugus County, last spring, Allison Ayers Hendy, a fifty-year-old caseworker at the Department of the Aging, found herself suddenly separated from hundreds of clients. Her routine home visits had been swapped for “telephone reassurance” check-ins. Her days on the road, driving between unremarkable towns to see old people in their decaying farmhouses, were over. Some of Hendy’s clients told her that they had no way of getting food, or were too afraid to try. When the department started producing packaged meals to send to elderly residents—turkey à la king, chicken cordon bleu—Hendy volunteered to help distribute them. The meal deliveries, at least, let her keep an eye on people.

Hendy paid special attention to clients who lived alone. There were lots of them. Older people are more likely to live alone in the United States than in most other places in the world. Nearly thirty per cent of Americans over sixty-five live by themselves, most of them women. And Hendy had reason to worry about how they would fare in quarantine. During a 1995 Chicago heat wave, when temperatures reached a hundred and six degrees, more than seven hundred people died, most of them over sixty-five. During the SARS outbreak in Hong Kong, in 2003, health authorities reported a spike in suicides among the locked-down elderly. Some left notes saying that they feared becoming a burden to their family. Some said that they felt isolated.

Hendy and her co-workers were sometimes disturbed by what they saw. There was a man who was basically stuck on the second floor of his house because he had nobody to help him climb down the stairs. There was a woman surrounded by bags of used adult diapers, because her son wasn’t visiting and she was too unsteady to take the trash out herself. Delivery drivers found people living without heat, or fallen on the ground, or dead. More often, people just seemed very lonely. Meal recipients wanted to talk for longer; they invited the drivers to linger.

In 2017, the Surgeon General, Vivek Murthy, declared loneliness an “epidemic” among Americans of all ages. This warning was partly inspired by new medical research that has revealed the damage that social isolation and loneliness can inflict on a body. The two conditions are often linked, but they are not the same: isolation is an objective state (not having much contact with the world); loneliness is a subjective one (feeling that the contact you have is not enough). Both are thought to prompt a heightened inflammatory response, which can increase a person’s risk for a vast range of pathologies, including dementia, depression, high blood pressure, and stroke. Older people are more susceptible to loneliness; forty-three per cent of Americans over sixty identify as lonely. Their individual suffering is often described by medical researchers as especially perilous, and their collective suffering is seen as an especially awful societal failing.

It’s an expensive failure. Research from the A.A.R.P. and Stanford University has found that social isolation adds nearly seven billion dollars a year to the total cost of Medicare, in part because isolated people show up to the hospital sicker and stay longer. Last year, the National Academies of Sciences, Engineering, and Medicine advised health-care providers to start periodically screening older patients for loneliness, though physicians were given no clear instructions on how to move forward once loneliness had been diagnosed. Several recent meta-studies have found that common interventions, like formal buddy programs, are often ineffective.

So what’s a well-meaning social worker to do? In 2018, New York State’s Office for the Aging launched a pilot project, distributing Joy for All robots to sixty state residents and then tracking them over time. Researchers used a six-point loneliness scale, which asks respondents to agree or disagree with statements like “I experience a general sense of emptiness.” They concluded that seventy per cent of participants felt less lonely after one year. The pets were not as sophisticated as other social robots being designed for the so-called silver market or loneliness economy, but they were cheaper, at about a hundred dollars apiece.

In April, 2020, a few weeks after New York aging departments shut down their adult day programs and communal dining sites, the state placed a bulk order for more than a thousand robot cats and dogs. The pets went quickly, and caseworkers started asking for more: “Can I get five cats?” A few clients with cognitive impairments were disoriented by the machines. One called her local department, distraught, to say that her kitty wasn’t eating. But, more commonly, people liked the pets so much that the batteries ran out. Caseworkers joked that their clients had loved them to death.

Hendy liked the robots because they were something tangible that she could give. When clients were lonely, she might apply for grant funding to pay for them to attend a social program—but sometimes they had no way of getting to the community center. Hendy connected people with caregivers when she could, but caregivers were scarce; Cattaraugus, like everywhere else, has a shortage of them. And many people couldn’t afford one anyway. A lot of Hendy’s clients fall into a kind of service dead zone: they are a little too wealthy to be on Medicaid, which covers some at-home help for low-income recipients, but not wealthy enough to pay for private aides. All they have is Medicare, which does not cover long-term caregiving, even when someone needs help bathing or eating or using the bathroom. People tend to make do until they fall and break a hip, or maybe get an infected bedsore; then they end up in a hospital, and eventually in a nursing home. There they spend thousands of dollars a month, until their savings are depleted, at which point they finally qualify for Medicaid and can live out their days in a taxpayer-subsidized, caregiver-attended bed.



from Hacker News https://ift.tt/3yAIKqr

Book Review: A Philosophy of Software Design

This review is largely in response to the article "It's probably time to stop recommending Clean Code", and the ensuing Reddit discussion. A lot of really interesting points were brought up, but the big question that the author themself wasn't able to answer was: "What should we recommend instead?"

I believe the book we should be recommending is A Philosophy of Software Design by John Ousterhout. In this post I want to spend a bit of time reviewing it and giving an overview of the contents, and then I want to explain why, in my opinion, it is such a good recommendation.

An Empirical Philosophy Book

The elevator pitch of John Ousterhout's book A Philosophy of Software Design is fairly simple: he is a university professor (albeit one with almost two decades of experience in the "real world", also the inventor of Tcl, creator of RAFT, company founder amongst other things), who each year teaches students how to actually design software in a practical, hands-on course where the students are expected to design and modify "a substantial piece of software" in an iterative way, hopefully understanding more about the practice of software design each time around.

The book, then, is a synthesis of the pieces of wisdom that Ousterhout has himself learned from his own experiences, tempered and refined by the practical examples he has been able to draw from his students. In this way, it has a (somewhat) scientific, research-based approach, where the author's assertions are backed up with examples from student projects that worked (or didn't).

At it's core, though, this is still philosophy - the book doesn't just list the things that worked well, and the things that worked poorly. Instead, Ousterhout attempts in each chapter to divine broader truths that apply to software design in general. There are no lists of what to do and what not to do, but instead principles to follow, red flags to be aware of, and warnings against taking anything too far.

Structure

The book is split into a series of chapters, each of which generally explores a single principle. These range from the very high level ("Working Code Isn't Enough", "Modules Should Be Deep") to the more practical questions ("Choosing Names"). The whole book is relatively short (about 180 pages), and many chapters flow together nicely, which means that it's quite easy to go from cover-to-cover, rather than approach the book as a reference manual. That said, the final pages provide summaries of the design principles and red flags found in the book, making it easy to reference key parts of the book.

Within each chapter, Ousterhout generally starts by stating a problem or motivation that software engineers will face, and then defining a principle to solve this. The rest of the chapter is then a discussion of the principle, the dangers of alternative approaches, the red flags that indicate that the principle needs to be applied (or in some cases avoided), and some notes about taking ideas too far.

The examples are often based on problems that Ousterhout has given his classes, which means that they generally feel meaty enough to be worth discussing. An example of a text editor appears in Chapter 6, but is extended in Chapters 7, 8, 9, and 10 in different contexts. Enough is omitted from most examples to make the point clear, but enough is kept in to give the feeling of real code.

Ousterhout's Principles

The overriding theme throughout the book is that good code looks good. Ousterhout thinks very much in terms of abstraction and interfaces - where "interfaces" refers to the contact points between different units of abstraction, rather than any similarly-named construct in any particular language. Most of the book is dedicated to figuring out how to spot bad abstractions and rework them into good abstractions.

To a certain extent, this feels at odds with certain common mantras in software engineering circles today, where we encourage enough other to Keep It Simple, Stupid, and worry about premature abstractions. Philosophy seems to worry less about the dangers of over-abstraction, and more concerned with how to make sure that the chosen abstraction is a good one.

This approach makes for a more positive experience than in many other programming circles - rather than being warned into a very conservative approach, Ousterhout encourages his readers to go out and make abstractions, but to be careful about designing the correct ones.

This isn't to say that the book isn't also cautionary - in the summary pages at the back, the list of red flags gets more page space than the list of principles, and throughout the book these red flags mark out moments when readers are given the go ahead to use these abstraction techniques. There are also warnings about when a principle might be used too much.

Everyone's a Critic

Beyond the mild danger of encouraging excess abstraction, the biggest issue in Philosophy is probably the missing parts - the topic of testing gets a single page in Chapter 19 (Software Trends), and ideas about effective use of a type system to avoid issues are largely ignored. Ousterhout's principles will still apply in these areas, but it would be nice to see some more specific discussion of these areas.

The Target Audience

It can be a bit unclear at times to whom Ousterhout writes. A lot of the examples clearly relate to his students, and the projects that they come from have a somewhat academic feel - a text editor here, and an HTTP protocol parser there. The code in the examples is generally object-oriented (Java and occasional C++), although it generally feels like it could be replaced with most imperative/OO languages without much of an effect.

The use of the phrase "software design" might make one think more of broader software architecture, but Ousterhout uses it more to describe the design of individual modules and functions within a program, rather than the broader architecture of the program itself (although he occasionally touches on that).

More functionally-minded people might think they can simply side-step a lot of the discussion here, in the same way that they can when discussing the Gang of Four's design patterns, but the principle "design errors out of existence" (Chapter 10) and its corollary "design special cases out of existence" should ring bells for people in this area who are also aware of the principle of making illegal states unrepresentable.

Ultimately, I think this book aims at a space that is slightly deeper than a lot of existing software literature. Where books like Design Patterns, Fowler's Refactoring, and the aforementioned Clean Code are aimed at more traditional "enterprise" software development, Philosophy feels more widely applicable, albeit at the cost of being more abstract and difficult to apply.

In general, I think Philosophy is a good read if you are both (a) working with software regularly, and (b) conscious of the inherent maintenance cost in software, and aiming to minimise it.

A Book to Recommend

The original question I wanted to answer was what we, as software engineers, should recommend over books like Clean Code. As I said, my answer to that question is A Philosophy of Software Design.

Software engineering (indeed, engineering in general) is not a science, insofar as there are no (or at least very few) exact answers. Everything from the database you use to your choice of testing strategy will be dependent on the context of the software you're writing. This means that the advice that we give to each other will probably be very context-specific. In general, you probably shouldn't use a NoSQL database, but in a lot of specific contexts you probably should.

This isn't a problem if we don't run into these exceptional cases often, but engineering is all about exceptional cases - if there were no exceptional cases, we wouldn't need to write any new software, because our existing tools would do the job. This is where books like Philosophy come in - rather than give situational advice, it attempts to define wider principles that the reader will then need to apply to different situations.

Take, for example, my favourite principle: "Modules should be deep" (explored in Chapter 4). The idea is that an individual unit of abstraction should do a lot of work (i.e. be deep, and contain a lot of complexity), but it should have a relatively simple interface (i.e. be narrow). Essentially, if you're going to abstract something, make sure your abstraction is deep.

Notice that this principle says nothing about functions, classes, lines, blocks, parameters, or anything specific to a single language or paradigm. However, when we apply it, for example to the Java code Robert C. Martin talks about in Clean Code, we can derive some of his ideas from this principle. Assuming a function is our unit of abstraction (for now, at least), the parameters are its interface, therefore we should reduce the number of parameters to the minimum necessary.

However, because our principle is more general, we can actually correct some of the mistakes Martin makes. Martin talks about removing parameters by adding private fields to the class that the method belongs to. When we think in terms of interfaces, we notice that this hasn't decreased the interface at all - we've lost a parameter, but we've gained a private field, and in the process made things harder for the consumer of our abstraction.

Teaching Principles Over Rules

When I recommend books, I generally hope that the other person will learn something from the book I have suggested. If I were to recommend Clean Code, I would hope that the reader would learn something about how to write clean Java code, but I suspect they would mainly learn how to write code like Robert C. Martin - or more accurately, like someone copying Robert C. Martin's actions without always understanding why he's taking them.

I do not feel this way about A Philosophy of Software Design. When I recommend it, I expect that the reader will not just learn something about Java, but instead something about how to design good abstractions, identify weak abstractions, and write code that is broadly maintainable long into the future.


Updates from the future

  • 2021-02-03: Someone on Reddit pointed out that I didn't sell John Ousterhout enough: he is a very remarkable man. I have updated my description of him to link to that comment, and added some further explanation of his work to the post.


from Hacker News https://ift.tt/2VvwMg7

Singapore startup touts need to mitigate risks, automate cloud security

Every business, large of small, is a target of cybercriminals and should look at minimising security risks, not simply preventing them. This is essential as more businesses move to the cloud and organisations in Asia largely still lack an urgency in addressing security. 

Unlike their peers in the US, where enterprises across most sectors considered security as part of their business process, Asia-Pacific companies had yet to do so, said Paul Hadjy, CEO and co-founder of Horangi. The Singapore-based security startup's flagship product, Warden, is a cloud security posture management software touted to safeguard against misconfigurations and compliance breaches. 

Likely distracted by having to keep the business running and day-to-day management, Hadjy noted that Asia-Pacific organisations generally did not regard security as topmost on their agenda when it would be commonly discussed at every meeting in the boardroom and amongst C-level executives in the US. 

This was changing, though, he said, adding that focus on security would intensify as more regulations were introduced around the use of cloud and businesses would be concerned about staying in compliance.

And they would reasons to be anxious. By 2023, at least 99% of cloud security failures were projected to be the customer's fault, according to Gartner. The research firm also predicted that half of enterprises this year would unknowingly and erroneously expose some cloud services or applications to the public internet, including storage, APIs (application programming interfaces), and network segments. 

Hadjy noted that most customers Horangi worked with had no prior cloud security framework in place. "If you're not using a cloud security platform, you're going to have issues because you don't have visibility across the cloud architecture," he said. "You can use tools to do so manually, but you'll need to repeatedly follow [the steps] to do so when you use different cloud platforms."

He stressed the need for proper security and processes, such as patch management, to be in place to address any potential misconfigurations. 

He warned that no business today was too small to be a target and all were at risk of cybersecurity attacks. Hackers also would target organisations that did not take security seriously. 

Technology, too, was no different from any other business, with opportunities for mistakes to be made, he said, especially if there was no automation involved. 

IT environments also could become challenging to manage over time, with organisations challenged to manage systems and software that were more than a decade old alongside modern applications running on cloud.

Hadjy added that the move to remote work further complicated IT infrastructures, where traditional methods of ring-fencing corporate networks were no longer effective as more employees worked from home. 

Noting that no security solution was perfect, he noted the need for organisations to focus on mitigating risks and their ability to react quickly to reduce their risks should they suffer a security breach. 

Founded in 2016, Horangi last month was added to Amazon Web Services' (AWS) ISV Accelerate programme, having obtained the cloud vendor's security competency status. 

The Singapore startup last year secured $20 million in Series B funding, adding to its Series A $3.1 million haul, and might embark on another fund-raising initiative this or next year, Hadjy told ZDNet.

Horangi's Warden is pitched as a multi-cloud security platform designed to automatically safeguard against misconfigurations and compliance violations. It identifies "critical cloud resource configurations that may become entry points for attackers", according to the startup. 

RELATED COVERAGE



from Latest Topic for ZDNet in... https://ift.tt/3hhGNaN

The data privacy paradox and digital demand

Data sharing is crucial in the development of the digital economy. As illustrated by the recent report from the Luohan Academy (2021), data sharing fosters connectivity, decision making, and trust. At the same time, privacy concerns attract growing attention, which is important for maintaining the sustainable development of the digital economy, as discussed in several recent Vox columns (e.g. Acemoğlu et al. 2019, Bergemann et al. 2020, Nguyen and Paczos 2020). A less understood phenomenon is the ‘data privacy paradox’, which refers to a general disconnect between consumers’ self-stated privacy preferences and their actual privacy-seeking behaviour – consumers in a wide range of survey and experimental studies often say they care about privacy, but at same time choose to share their personal data either for free or for small rewards. The presence of this disconnect is often used as evidence to argue either that consumers’ privacy concerns are not credible or that privacy is no longer achievable in the age of the data economy. Does the privacy paradox exist in realistic settings when consumers are faced with choices to share personal data with digital service providers? If so, what causes consumers to ignore their privacy concerns in data sharing? 

The privacy literature has suggested a number of psychological and behavioural factors to explain the data privacy paradox, including consumers’ ignorance about the consequences of data sharing (Pew 2019); present bias, which causes consumers to overweight immediate convenience from using digital applications and underweight future cost of sharing personal data (Acquisti 2004); and illusion of control, which causes consumers to feel more in control when making data-sharing choices (Brandimarte et al. 2013). While these behavioural biases are clearly relevant, it remains unclear how consumers’ data-sharing choices are related to their demands for digital services.  

In our recent study (Chen et al. 2021), we address these issues by conducting a survey of Alipay users about their data privacy preferences and then matching their survey responses with rich administrative data about their data-sharing choices on the Alipay platform to analyse how their data-sharing choices are related to their stated privacy preferences. Alipay is a highly popular payment and lifestyle platform with more than 900 million active users in China. In addition to its widely used payment system, it also hosts over two million third-party mini-programs, which are lightweight apps that run inside Alipay to offer a variety of digital services to Alipay users. To use a mini-program, a user must first authorise sharing of certain personal data with the mini-program. The requested data sharing varies across mini-programs from innocuous information, such as nickname, to highly sensitive information, such as the national ID number and credit score.  

In policy discussions, a widely held view is that the privacy paradox exists because users simply cannot afford not to use popular digital applications. Because the mini-programs on Alipay vary substantially in the importance of the provided services and the sensitivity of the requested information, this setting provides an ideal opportunity to study how different users, when given the options, balance their privacy preferences with their demand for digital services. 

In July 2020, we worked with Alipay to conduct a survey of Alipay users, which included 12 questions about their preferences and concerns regarding data sharing with Alipay’s mini-programs. We received survey responses from 14,250 Alipay users. In response to a question that explicitly asked whether they are concerned about their data privacy when sharing personal data with mini-programs, 46% said they are very concerned, 39% are concerned, and only 15% are not concerned. As shown by Figure 1, during the one-year period from July 2019 to July 2020, the ‘unconcerned’ users on average initially visited 14.3 mini-programs and authorised data sharing with 11.2 of them, the ‘concerned’ users initially visited 15.5 mini-programs and authorised 11.5, and the ‘very concerned’ users initially visited 16.3 mini-programs and authorised 11.3. To the extent that the last group has rejected nearly 25% of data-sharing requests, these ‘very concerned’ users did not resign from active protection of their data privacy by blindly authorising all requests.   

Figure 1 The data privacy paradox

Source: Chen et al. (2021).

Even though one would expect users with stronger privacy concerns to be more reluctant to share personal data, these three groups of users with different levels of privacy concerns, on average, authorise data sharing with almost the same number of mini-programs, even after controlling for user characteristics such as digital experience, age, gender, and city, as well as mini-program fixed effects. This lack of difference in data-sharing authorisations is puzzling and confirms the data privacy paradox in a setting that is highly relevant to the digital economy. 

It is tempting to attribute the data privacy paradox to noisiness and unreliability of survey responses. While survey responses are indeed noisy at the individual level, we find that at the group level, the privacy concerns stated in survey responses are positively associated with respondents’ propensity to take two privacy-seeking actions in Alipay: (1) cancelling previously authorised data sharing with mini-programs; and (2) changing Alipay’s default privacy settings, which tend to make a user’s information visible to other Alipay users. These findings thus validate the survey-based measure of privacy concerns.

What causes the privacy paradox? Our analysis uncovers a curious, positive correlation between Alipay users’ data privacy concerns and digital demands – that is, users with stronger privacy concerns also tend to use their authorised mini-programs more frequently and more extensively. As the greater demands of privacy-concerned users for digital services offset their privacy concerns about sharing personal data with the mini-programs, this correlation helps to explain the data privacy paradox. 

The positive correlation between privacy concerns and digital demands is a new finding to the literature and connects privacy preferences directly to demands for digital services, albeit in an unexpected way. If privacy concerns are an innate preference like risk aversion, they would deter users from extensively using digital services that usually require sharing of personal data, leading to a negative correlation between privacy concerns and digital demands. Instead, our finding suggests that privacy concerns are possibly a preference developed through the process of using digital services. That is, as some users gradually develop enjoyment from using the powerful and convenient services offered by mini-programs, they may also develop more concerns about the potential risks from their extensive data sharing with those programs. Under this notion of privacy as a developed preference, it is reasonable to conjecture that privacy concerns grow with the personal data accumulated with mini-programs. 

To further explore this notion, we examine a hypothesis that more-active users of mini-programs are more likely to cancel their data-sharing authorisations with mini-programs. While this hypothesis is a direct implication of privacy concerns increasing with digital demands, it counters our usual intuition that more-active users incur greater costs from cancelling a mini-program. By using two different measures of user activeness and after controlling for various user characteristics and mini-program fixed effects, we find that more-active users of mini-programs in our sample are more likely to cancel their data-sharing authorisations with mini-programs. It is again difficult to explain this pattern without recognising that privacy concerns are positively correlated with user activeness.

Our study adds to the literature on the data privacy paradox, including Gross and Acquisti (2005), Goldfarb and Tucker (2012), and Athey et al. (2017). These studies have designed creative surveys and experiments to measure individuals’ privacy preferences (see Acquisti et al. (2020) for a recent review of this literature). By combining survey data with extensive administrative data, our study not only confirms the paradox in a highly relevant setting but also uses the paradox as an entry to analyse the nature of data privacy concerns. We uncover data privacy concerns as a preference developed through the use of digital applications, which, to our knowledge, is a new dimension not previously explored by the literature. This nature further implies that data privacy concerns may increase over time with the deepening of the data economy, making consumers more restrictive with their data sharing. This effect may in turn prevent the economy from realising the full promise of data sharing implied by nonrivalry and increasing returns to scale, two fundamental features of data sharing (e.g. Jones and Tonetti 2020, Farboodi and Veldkamp 2020, and Cong et al. 2020). 

Our findings bring insightful implications for today’s discussion on data governance. Consumers may develop more privacy concerns in the process of adopting digital applications to meet their digital demands, the best way to protect privacy may not be to restrict data sharing, as it will hurt consumer welfare (Liu et al. 2020). Instead, promoting better privacy protections would be a more promising way to both harness digital dividends for consumers and promote sustainable development of the digital economy. 

References

Acemoğlu, D, A Makhdoumi, A Malekian and A Ozdaglar (2019), “Can we have too much data?”, VoxEU.org. 

Acquisti, A (2004), “Privacy in Electronic Commerce and the Economics of Immediate Gratification”, Proceedings of the 5th ACM Conference on Electronic Commerce, pp. 21-29.

Acquisti, A, L Brandimarte and G Loewenstein (2020), “Secrets and Likes: The Drive for Privacy and the Difficulty of Achieving It in the Digital Age”, Journal of Consumer Psychology 30(4): 736-758.

Athey, S, C Catalini and C Tucker (2017), “The Digital Privacy Paradox: Small Money, Small Costs, Small Talk”, NBER Working Paper No. 23488).

Bergemann, D, A Bonatti and T Gan (2020), “The Economics of Social Data”, VoxEU.org.  

Brandimarte, L, A Acquisti and G Loewenstein (2013), “Misplaced Confidences: Privacy and the Control Paradox”, Social Psychological and Personality Science 4(3): 340-347.

Chen, L, Y Huang, S Ouyang and W Xiong (2021), “The Data Privacy Paradox and Digital Demand”, NBER Working Paper No. 28854.

Cong, W, D Xie and L Zhang (2020), “Knowledge Accumulation, Privacy, and Growth in a Data Economy”, Management Science, forthcoming.   

Farboodi, M and L Veldkamp (2020), “Long-Run Growth of Financial Data Technology”, American Economic Review 110(8): 2485–2523. 

Goldfarb, A and C Tucker (2012), “Shifts in Privacy Concerns”, American Economic Review 102(3): 349–53.

Gross, R and A Acquisti (2005), “Information Revelation and Privacy in Online Social Networks (The Facebook Case)”.

Jones, C I and C Tonetti (2020), “Nonrivalry and the Economics of Data”, American Economic Review 110(9): 2819–2858. 

Liu, Z, M Sockin and W Xiong (2020), “Data Privacy and Temptation”, Working Paper, Princeton

Luohan Academy (2021), Understanding Big Data: Data Calculus in the Digital Era. 

Nguyen, D and M Paczos (2020), “Measuring the Economic Value of Data”, VoxEU.org.

Pew Research Center (2019), Americans and Privacy: Concerned, Confused and Feeling Lack of Control Over Their Personal Information.



from Hacker News https://ift.tt/3heYkQK