You are here

Feed aggregator

July's virtual meeting

PLUG - Mon, 2020/07/06 - 15:42

Austin Godber: Python and Kubernetes

Description:
Austin will briefly introduce containerization and Kubernetes. Show an example of a containerized Python application and then show how to interact with Kubernetes through it's API using Python.

You can attend on July 9th at 7pm by visiting: https://lufthans.bigbluemeeting.com/b/plu-yuk-7xx


Four short links: 25 June 2020

O'Reilly Radar - Thu, 2020/06/25 - 04:28
  1. Kritaa professional FREE and open source painting program. Made by and for artists, rather than attempting to clone Photoshop 4.
  2. Facial Recognition Leads to False ArrestCivil rights experts say Williams is the first documented example in the U.S. of someone being wrongfully arrested based on a false hit produced by facial recognition technology.
  3. Amazon HoneycodeThis new fully-managed AWS service gives you the power to build powerful mobile & web applications without writing any code. It uses the familiar spreadsheet model and lets you get started in minutes. This is important because there’s a whole category of app that now doesn’t require developer time but also … spare a feel for AirTable. Early mover leads aren’t defensible when the FAANGs decide they can build what you’ve got. Companies with billions of profits to reinvest in competing with your startup are apex predators.
  4. Device Firmware Update Cookbook — Implementing OTA (Over The Air) firmware updates is a rite of passage for firmware engineers. […] I have worked on multiple firmware update systems over the year, and every time I have learned something new. How do I package my images? How do I make sure I don’t brick the device? How do I share information between my bootloader and my application? […] In this post, I share the device firmware update architecture I would implement knowing everything I know now. I also highlight a few design patterns that are particularly useful.
Categories: Technology

COVID-19 and Complex Systems

O'Reilly Radar - Wed, 2020/06/24 - 05:03

In various mailing lists about the COVID-19 pandemic, I’ve seen several discussions of “complex systems theory” as, possibly, a way to understand how the pandemic is playing out in different locations. Specifically: why have Japan and Hong Kong not experienced an explosion in cases, even though their governments responded poorly to the crisis? The argument is that some systems are intrinsically difficult to model.  There are too many causes and too many effects that interact with each other in ways that are difficult to predict or even understand.

What does that mean? “Complex systems” has always implied, at least to me, systems of nonlinear differential equations, chaotic processes, and the like. Think about the motions of a double pendulum. I wouldn’t deny that there’s a complex set of mathematical relationships behind the pandemic’s spread. But the point of the discussion is that we don’t know those relationships, and discovering them is a slow and difficult process.

As attractive as it may be to think about complex systems, I’m not convinced that’s the best approach. I’ve always been attracted to explanations that are based on a combination of small effects, which themselves are (to a first approximation) randomly distributed. That seems like a much more useful and fruitful way to think about the results we’re seeing in different countries.

What if we thought like this: There are a large number of factors that may or may not have an effect. For the pandemic, that list of factors may look like this:

  • Wearing masks
  • Social isolation
  • HVAC (heating, ventilation, and air conditioning)
  • Social cohesion; importance of the social group relative to the individual
  • Effective healthcare system
  • Temperature
  • Exposure to sunlight
  • The language you speak (Japanese evidently requires less exhaling)
  • Air pollution
  • Obesity
  • Diabetes
  • Heart disease
  • Quality of reporting
  • Quality of testing
  • Genetic factors
  • Virulence of different virus strains
  • Housing density
  • Congestion in public transportation systems
  • Citizens’ ability to self-organize

You get the idea; this list could easily go on, possibly including hundreds of factors influencing disease propagation, individual susceptibility, and mortality. Some are important; some are no doubt fake science; some are just weird; and some may be no more than educated guesses.

We can think of these factors as randomly distributed, although they may not be in reality. In some locales they will add up to minimize spread, and in others, the reverse will happen. You can’t control for, or even measure, several of these factors. But, since we’re thinking of them as random, the fact that Hong Kong has had a relatively minor outbreak that appears to have been controlled quickly means that several factors that limit spread were present, and added up.  The next step is figuring out what the factors appear to be common in best- and worst-case situations.

So, if we look at Japan, we see a society where it’s normal for sick people to wear masks; it’s common decency.  Wearing masks as a prophylactic measure isn’t the big cultural leap that it has been in the United States. We also see a society where obesity is relatively rare, particularly compared to the US (the most obese nation in the world). And Japan is a country in which healthcare is free to all citizens—again unlike the US, where a serious disease can easily lead to bankruptcy, particularly with unemployment (and the numbers of uninsured) skyrocketing. The point isn’t that masks, hospitals, or anything else is some sort of a “silver bullet” that makes the problem go away, though in the US we’ve no doubt undervalued all of these things. Nor can you fix obesity or diabetes or air conditioning as quickly as you can hand out masks. But if each of these factors makes a small contribution—and if, some places, all of those small contributions line up—they have a large effect. Together, they can easily be much more important than a government’s response. And we might start to suspect that some of these “small” factors, such as wearing masks, aren’t so small after all.

Hong Kong is a particularly fascinating case. As Zeynep Tufekci argues in The Atlantic, Hong Kong’s citizens were able to self-organize a response, despite their government. That ability no doubt stems from the unrest and demonstrations of the past year. And self-organization no doubt stems from a sense of social cohesion and responsibility that the US has largely abandoned, if it ever had it. (In some future pandemic, might we see that effect protecting communities that are currently protesting police brutality in the US?  It’s worth noting that, at least in protests I’ve seen, an astonishing number of people were wearing facemasks. And that there hasn’t been a surge in COVID-19 cases that can be attributed to the protests.)

What’s most interesting is that the ability to self-organize probably wouldn’t have been on many lists prior to Tufekci’s article. In college, a professor I worked with told me about his frustration with a defense project he was working on. He was asked to evaluate the probability of an attack on a nuclear facility. His reaction was “we can evaluate all the scenarios on your list, and the probability will be a very small number. But all that tells me is that, if you’ve left a scenario off your list, it’s likely to swamp everything that’s on it.  It’s easy to beat a probability of .00001.” Black swans 40 years ago. Except in Hong Kong’s case, they’re not black; they’re golden.

Which brings us back to the point: understanding the COVID-19 pandemic is less about complex systems than about understanding randomly distributed factors, including some that may surprise us. When we see a group of factors that lead to a good result, we know what to do: hand out masks, provide healthcare, promote the idea that people are responsible for each other, enable spontaneous action, and (to mitigate the next pandemic) wean a society off of its dependence on sugar.

At this point, we’ve made observations and learned how to act effectively. It is increasingly clear that wearing masks is a key to shutting down a pandemic; and that self-organization can play a decisive role to governmental opposition to enforcing mask-wearing. That isn’t to say that we shouldn’t understand the other points: the influence of HVAC, the virulence of different pathogens, the response of different immune systems, and so on. Nor is it to say that we shouldn’t try to understand the system in all its complexity.  That may be necessary to develop effective treatment. But you don’t need to understand the complex system to develop an effective response to a crisis.

Now take a step back and think about applying these ideas to other issues.  What about the re-emergence of racism and neo-nazisim in the US?  Just to be clear—they were never gone.  But, just as with COVID-19, we need to understand the forces that will suppress outbreaks.  Racism has been manipulated for hundreds of years, and is deeply embedded in many of our institutions.  As with any disease, what are the forces that drive it, and what are the actions that disable it?

What about economics?  As the increasing gap between the wealthy and everyone else drives our economies to the brink, what are the forces—the many small forces—that drive us back from the edge?  Viewing economics as a complex system of differential equations is actually an oversimplification.  Can we observe the many factors that line up (and in many countries, have lined up) to give people voices and choices about their future?

For COVID-19 and all the problems we’re facing, that’s the real work, the hard work that can’t wait for the modelling to be done.  What are the many causes that will provide a push in the right direction? We don’t need definitive answers before taking steps.  Once we take those first steps–whether it’s wearing masks or demilitarizing police forces or providing universal healthcare–it will become more evident what works, what doesn’t,  and what the next steps are. And we might discover that effective solutions aren’t as difficult or as distant as they seem.

Categories: Technology

Four short links: 24 June 2020

O'Reilly Radar - Wed, 2020/06/24 - 04:38
  1. You’ve Been Referred Here Because You’re Wrong About Section 230 Of The Communications Decency Act — Really good mythbusting piece about Section 230 of the Communications Decency Act (the piece of legislation that places the liability for online content upon the whoever created the content, not on whoever is hosting it).
  2. WireViza tool for easily documenting cables, wiring harnesses and connector pinouts. It takes plain text, YAML-formatted files as input and produces beautiful graphical output (SVG, PNG, …) thanks to GraphViz. It handles automatic BOM (Bill of Materials) creation and has a lot of extra features.
  3. 10 Opinions about the Geospatial IndustryThe most successful and ambitious mapping project of all time, Google Maps, is an advertising platform. There is no “geospatial industry,” only industries with spatial problems. It follows, then, that the most valuable geospatial applications are always custom-built in service of a particular domain that doesn’t self-identify as “geospatial.” The closest you can get to a “geospatial app” is a UI on top of a dev tool. And much more. So good.
  4. Clear Statement of Why Photorealistic Upscaling is BogusML-assisted upscaling doesn’t produce output that accurately represents the original full-resolution image. It produces output that humans perceive to be realistic-looking, or free of traditional upscaling artifacts. […] The problem with these ML hallucinated upscaled images is that they look and feel real enough that they bypass people’s suspicions. We can try to present them as “Here’s what the suspect might look like”, but when they look like a full-resolution photograph, people will simply assume that it’s exactly what the suspect looks like.
Categories: Technology

Four short links: 23 June 2020

O'Reilly Radar - Tue, 2020/06/23 - 03:16
  1. Work From Home Cybersecurity CourseSecure your home Wi-Fi; Strong passwords; VPNs; Protecting confidential information; Personal devices; Phishing. It’s quite basic, but I imagine there are many companies we know (not the ones we’re in, of course!) who need this basic info.
  2. There Is No (Real World) Use Case for Face Super ResolutionNothing good ever comes from face datasets. Such a powerful point.
  3. A/B StreetA/B Street is a game exploring how small changes to a city affect the movement of drivers, cyclists, transit users, and pedestrians. I’m a huge fan of simulations as a way of developing intuition for a field.
  4. On Contact Tracing and Hardware Tokens — Singapore recently gave a bunch of security people access to their TraceTogether token. Bunnie’s write-up is very good because it contains a discussion of the scenarios of contact tracing, against which any solution must be evaluated. See also Roland Turner and Sean Cross‘s reports.
Categories: Technology

Four short links: 22 June 2020

O'Reilly Radar - Mon, 2020/06/22 - 04:08
  1. Root Causeshere are a set of “root causes” that I think are close to exhaustive: (1) trade-off: we were aware of this concern but explicitly made the speed-vs-quality trade-off (IE, not adding tests for an experiment). This was tech debt coming back to bite us. (2) knowledge gap: the person doing the work was not aware that this kind of error was even possible (IE, tricky race conditions, worker starvation). (3) brain fart: now that we look at it, we should have caught this earlier. “Just didn’t get enough sleep that night” kind of thing.
  2. Software Engineer D&D ClassesSpecial ability: Hotfix. All party members immediately gain 1d4 + 1 HP and any damaged equipment is instantly repaired, but you must skip your next turn.
  3. Bluetooth Latency — Bluetooth headsets introduce 150-300ms of latency. (via Ben Kuhn)
  4. Computing with Visiona research program with the goal of devising ways of converting digital logic circuits into visual stimuli – “visual circuits” – which, when presented to the eye, “tricks” the visual system into carrying out the digital logic computation and generating a perception that amounts to the “output” of the computation. That is, the technique amounts to turning our visual system into a programmable computer.
Categories: Technology

Four short links: June 19, 2020

O'Reilly Radar - Fri, 2020/06/19 - 05:49

  1. Tsunamia general purpose network security scanner with an extensible plugin system for detecting high severity vulnerabilities with high confidence. From Google.
  2. Quotebackslike a quote retweet, but for any piece of content on the web. They work on any webpage, and gracefully fall back to a standard blockquote. (via Matt Webb)
  3. Conferences in the Age of Zoom — (Matt Webb) Can virtual conferences be designed for multi-tasking? (See also Marie Foulston’s spreadsheet party which I found via Matt’s post.
  4. Scrapoxyhides your webscraper behind a cloud. It starts a pool of proxies to relay your requests. Now, you can crawl without thinking about blacklisting!

Categories: Technology

Four short links: 17 June 2020

O'Reilly Radar - Wed, 2020/06/17 - 06:48

  1. Drive and Listen — Video of driving through a city, and you can flip through the local radio stations. Quite an impressive sense of place. (As I write this, I’m bicycling/scootering through Wuhan.)
  2. Veblenian EntrepreneurshipVeblenian Entrepreneurship. This is entrepreneurship pursued primarily as a form of conspicuous consumption. Aside from lowering average entrepreneurial quality, Veblenian Entrepreneurship has a range of (short-run) positive and (medium and long-run) negative effects for both individuals and society at large. We argue that the rise of the Veblenian Entrepreneur has contributed to creating an increasingly Untrepreneurial Economy. That is an economy which superficially appears innovation-driven and dynamic, but is actually rife with inefficiencies and unable to generate economically meaningful growth through innovation.
  3. Earbud Gestural UIWe propose EarBuddy, a real-time system that leverages the microphone in commercial wireless earbuds to detect tapping and sliding gestures near the face and ears.
  4. Loglo“LOGO for the Glowforge”: an experimental — very experimental — programming environment by Avi Bryant. It’s currently focused on the narrow domain of producing SVG output to feed to a CNC machine or laser cutter. A really cute cross between Postscript and a spreadsheet.

Categories: Technology

Decision-Making in a Time of Crisis

O'Reilly Radar - Tue, 2020/06/16 - 10:20

In the 1996 cult classic film Swingers, two friends, Trent and Mike (played by Vince Vaughan and Jon Favreau, respectively) make an impromptu trip to Las Vegas. At the blackjack table, Mike gets dealt an 11 and Trent tells him to double down. Mike responds “What?!” and Trent replies “Double down, baby. You gotta double down on an eleven.” Mike doubles down and loses the hand. The next scene opens with:

Trent: I’m telling you, baby, you always double down on an eleven.

Mike: Yeah? Well obviously not always!

Trent: Always, baby.

Mike: I’m just saying, not in this particular case.

Trent: Always.

Mike: But I lost! How can you say always?!?

Mike had made the common error of equating a bad outcome with a bad decision. The decision-making process was fine. We know, statistically, that doubling down on an 11 is a good (and common) strategy in blackjack. But when making a decision under uncertainty about the future, two things dictate the outcome: (1) the quality of the decision and (2) chance. The quality of the decision is based on known information and an informed risk assessment, while chance involves hidden information and the stochasticity of the world. The latter resulted in Mike losing his blackjack hand. It was luck, not the decision to double down.

We currently have a lot of serious and challenging decisions to make at personal, societal, and global levels and none of them are as simple as a game of blackjack. This essay is about how to take a more principled approach to making decisions under uncertainty and aims to provide certain conceptual and cognitive tools for how to do so, not what decisions to make. These tools include how to:

  • Think probabilistically and understand the nature of predictions.
  • Consider risk not only in terms of likelihood but also in terms of the impact of your decisions.
  • Interrogate reported data and information with a healthy skepticism through thinking about the processes that generate the data.
  • Prioritize which decisions to make and what actions to take in an uncertain world.

There are two key differences between the type of decisions we need to make currently and Mike’s decision to double down in blackjack. Firstly, in cases such as re-opening economies, the decision space isn’t binary⁠—it’s not “re-open the economy or not,” it’s “how? how much? when? and how do we know when to reel it back in?” Secondly, we know the odds in blackjack—it will take you some time, but you can write down a table of all the probabilities. When we know the probabilities of the important variables but don’t know the outcomes, it’s called risk. When we don’t know the probabilities, or even what all the important variables are, it’s called uncertainty. Recognizing the difference between risk and uncertainty is essential to knowing when you can and cannot completely calculate and assess risk. Thinking how to assess decision quality, as opposed to outcome quality, in both cases is key, though, as Swingers makes clear.

Thinking in Bets, Annie Duke’s 2018 book about making decisions under uncertainty, has many analogous examples operating under both risk and uncertainty, such as the infamous 2015 Super Bowl XLIX Seahawks’ decision to pass the ball in the final 26 seconds. The pass was intercepted, the Seahawks lost, and we saw countless headlines such as “Dumbest Call in Super Bowl History Could Be Beginning of the End for Seattle Seahawks” and “Seahawks Lost Because of the Worst Call in Super Bowl History.” As Duke astutely points out, agreeing with several commentators such as FiveThirtyEight’s Benjamin Morris and Slate’s Brian Burke, the decision to pass was eminently defensible, as “in the previous fifteen seasons, the interception rate in that situation was about 2%.” Tellingly, when Duke asks business executives to write down their best and worst decisions of the past year, they invariably write down the best and worst outcomes. It is all too human to judge decisions by their outcomes. Duke refers to this as resulting. We need to rationally decouple decision quality from outcome quality. One challenge is that we are evaluated on outcomes, not decisions, for the most part: a Chief Sales Officer is evaluated on deals closed and annual recurring revenue, not the decisions they make, per se. The success of a company is likewise determined by outcome quality, not decision quality. However, as with blackjack, if we are to evaluate decision making by looking at outcomes, it is more productive to look at the long run frequencies of good and bad outcomes to evaluate both the decision and the strategy that led to the decision. In the long run, the fluctuations of chance will average out.

Another key barrier to rationally evaluating decision quality is that we are not adept at dealing with uncertainty and thinking probabilistically. We saw this after the 2016 U.S. Presidential election when people said the pollsters’ predictions were wrong, because they had Clinton as the front-runner. But a prediction that Clinton had a 90% chance of winning was not an incorrect prediction, even when Trump won: Trump winning was merely that 10% chance playing out in reality. The statement “the prediction was wrong” is assessing the quality of the prediction based on the outcome, committing the same error as assessing the quality of a decision based on outcome: it’s resulting. For this reason, let’s drill down a bit into how bad we really are at thinking probabilistically and dealing with uncertainty. To do so, let’s stick with the example of the 2016 U.S. election.

Making Predictions and Thinking Probabilistically

Many intelligent people were surprised when Donald Trump won the presidency, even though FiveThiryEight gave him a 29% chance of winning. Allen Downey, Professor at Olin College, points out that a 29% chance is more likely than seeing two heads when flipping two coins (25% chance), an occurrence that wouldn’t surprise any of us. Even if we believed the forecasts that gave Trump a 10% chance of winning, this is just slightly less likely than seeing three heads in three coin tosses (12.5%), which also would not  surprise many people. Consider a 10% likelihood in this way: “would you board a plane if the pilot told you it had a 90% chance of landing successfully?”, as Nate Silver asks in The Signal and the Noise.

Why are we so bad at interpreting probabilistic predictions, such as the probability of Trump winning the presidency? One possibility, suggested by Downey, is that we generally interpret probabilistic predictions as deterministic predictions with a particular degree of certainty. For example, “Clinton has a 90% chance of winning” would be interpreted as “The poll says Clinton will win and we’re 90% sure of this.” As Downey says, “If you think the outcome means that the prediction was wrong, that suggests you are treating the prediction as deterministic.”

Forecasters and pollsters are aware of this deep challenge. Nate Silver and FiveThirtyEight have put substantial thought into how to report their probabilistic forecasts. In the 2018 midterms, for example, they began to make forecasts such as “1 in 5 chance Democrats win control (19.1%); 4 in 5 chance Republicans keep control (80.9%),” which is careful to express the probabilistic nature of the prediction. I recalled this mindful use of language when I recently had a COVID-19 test and the doctor reported “the test did not detect the presence of COVID-19,” instead of “the test came back negative.” Language is important, particularly in situations where our intuition doesn’t work well, such as in probabilistic forecasts and data reporting. So knowing that we need to make sure we judge decision and prediction quality based on what was known at the time of decision or prediction, respectively, how do we go about thinking through the risks to make decisions in the first place?

Risk, Probability, Impact, and Decisions

I’ve had many discussions around risk assessment and decision-making with respect to COVID-19, as we likely all have recently. One common and concerning throughline is that many people appear to make risk assessments based on likelihood without considering impact. For example, in different conversations, I told several friends that my COVID-19 test had come back negative. Each friend replied along similar lines, saying that it meant that I could visit my parents, who are both in high risk groups. Ignoring the false negative rate, I replied that it would still be possible for me to pick up COVID-19 after the test and take it into their house, and my friends’ responses were all “but it is soooo unlikely.” This may be true, but the downside risk in this case could be fatal. When making decisions under uncertainty, it is a mistake to consider likelihood alone: you need to consider impact.

For example, let’s say there’s a burger that you’ve heard is great and you really want to try it. If there’s a 20% chance that it will give you some mild stomach trouble (possible but low impact), perhaps you’ll still try it. If there’s a 0.1% (1 in 1,000) chance that it will kill you (very unlikely but high impact), I’d be surprised and/or concerned if you decided to eat it, after assessing the risk.

This example, although a bit silly (and perhaps delicious), has many elements of what you need to make decisions under uncertainty: consideration of likelihood of different potential outcomes, upside risk (enjoying a delicious burger), and downside risk (stomach trouble and dying, respectively).

Now imagine a different scenario. Instead of eating a burger, we’re talking about surgery to cure a painful but not life-threatening condition, spine surgery, for example, and there is a 0.1% chance of death. The downside risk is the same, fatal, but the upside risk is a lot more impactful than eating a burger, so there’s an increased chance of you taking on the downside risk.

Instead of viewing a risk assessment along the sole axis of likelihood, we also have to consider impact. One useful tool for doing this is known as a risk matrix (common in business settings), a table that has axes likelihood and impact:


This risk matrix captures the likelihood of outcome on the vertical axis and the impact on the horizontal axis and is based on a risk matrix from the Wikipedia page. It references decisions described in the main body of the essay and it does not describe the upside risk in these situations (which would require a third dimension!)

Deciding whether to wear a mask outside is a current example. There are multiple personal and societal risks to consider: wearing a mask reduces the transmission of COVID-19 (upside risk; particularly important given the risk of being an asymptomatic transmission vector) but if we all go out and panic buy PPE masks, there will be a devastating lack of supply for frontline healthcare workers (downside risk; note that the risk is not for us, but for frontline healthcare workers and, by extension, society, so in this case we’re thinking about making individual decisions based around societal, not only personal, risk). Once you realize that we can all avoid the downside risk by making masks from household items or buying cotton masks online from dressmakers and shirtmakers, the decision to wear a mask is a no-brainer.

This example also illustrates how the decision space can be a lot larger than originally envisioned: the choice is not merely between “wearing a mask that a doctor or nurse will need” or “not.” There are always more options than are first apparent. Our work is to find the ones that minimize risk. We saw this play out as the CDC and many governments went from recommending only people who have symptoms wear masks to recommending that everybody wear masks.

This is a guide for how to think about making decisions, not what decisions to make. The decisions any individual makes are also a function of how risk-friendly and risk-averse that individual is. Financial advisors are known to provide questionnaires to determine where their clients lie on the risk friendliness-aversion spectrum and advise accordingly. I am generally risk friendly but, when it comes to a global pandemic and matters of life and death, I am highly risk averse. I would encourage you to be also, and remind you that your actions impact potentially a huge number of people, even if you are in a low risk group and not particularly concerned about your own health.

At a far larger scale of decision-making, governments need to make decisions around when and how to re-open economies. They need to consider a number of things. In particular, the fact that we have a public health crisis and a resulting economic crisis, which feeds back into the public health crisis, along with creating its own health crises, which economic downturns are known to. Ideally, we could re-open the economy to an extent that will not exacerbate the COVID-19 crisis but enough to reduce the economic crisis and all the downstream effects. This is once again opening up the decision space: it isn’t “re-open the economy or not”; it’s figuring out when to and by how much.

Figuring out likelihoods and impact of all our governmental decisions is incredibly challenging work. It’s the same on a personal level. We need to consider both the likelihood of outcomes resulting from our different decisions, along with their impact, but how can we actually do this? Having good quality information is key, as is knowing what our blind spots are, that is, knowing what we don’t know. So let’s now dive into thinking about the quality of the data we’re seeing every day, and what type of information and knowledge we can extract from it.

Data, Information, Knowledge, and Decision-Making

One of the most important steps in acknowledging what our blind spots are is knowing the limitations of the data and information that we receive.

For example, when we see a chart of the number of reported cases of  COVID-19 over time, it is natural and tempting to think of this as a proxy for the evolution of the number of actual cases. I’ve heard rational humans make statements such as “it may not be quite right, but it’s all we have and probably captures the trend.” But it may not even do that. The number of reported cases is a function of many things, including the number of tests available, the willingness of people to be tested, the willingness of any particular government to report their findings, and a time lag resulting from the COVID-19 incubation period. In terms of government incentives to report their findings, it is key to keep front of mind that the reporting of a COVID death is a political and politicized act. There has been huge skepticism of official counts coming out of China and, as we re-open cities across the world, governments will be incentivized to under-report cases, both to justify the decisions to re-open and in the name of protecting economies.

In terms of the number of reported cases being a function of the number of available tests, take this extreme limit case: one day, there are no tests, so no reported cases, and the next day there are a huge number of tests; in this case, even if there were a decrease in the total number of actual cases, a huge spike would be reported.

As a real-world example, Nate Silver reported:

Washington State is a good example of the importance of accounting for the number of tests when reporting COVID-19 case counts. Remember I mentioned a couple of days ago how their number of cases in WA had begun to stabilize? Well, guess what happened… Today, they reported 189 positives, along with 175 yesterday, as compared with an average of 106 positives per day in the 7 days before that. So, not great on the surface… new cases increased by 70%! But you also have to look at the number of tests. Washington conducted 3,607 tests today and 2,976 yesterday. By comparison, they’d conducted an average of 1,670 tests in the 7 days before that. So they’ve increased testing capacity by 97% over their baseline. Meanwhile, detected cases have increased, but by “only” 70%. Looked at another way: Today, 5.2% of Washington’s tests came up with a positive result. Yesterday, 5.9% did. In the 7 days before that, 6.4% of them did. So, there *is* a bit of progress after all. Their number of new positives *as a share of new tests* is slightly declining. For the time being, 1) the large (perhaps very large) majority of coronavirus positives are undetected and 2) test capacity is ramping up at extremely fast rates, far faster than coronavirus itself would spread even under worst-case assumptions. So long as those two things hold, the rate of increase in the number of *detected* cases is primarily a function of the rate of increase in the number of *tests* and does not tell us that much about how fast the actual *infection* is spreading.

Silver went on to write an article entitled “Coronavirus Case Counts Are Meaningless” with a subtitle “Unless you know something about testing. And even then, it gets complicated.”

In a similar manner, the number of reported deaths is also likely to be a serious underestimate, because,  in many places, to be a reported COVID-19 death, you need to be tested and diagnosed. Bloomberg reports that, in reference to Italy, “many will die in their houses or nursing homes and may not even be counted as COVID-19 cases unless they’re tested post-mortem.” As Dr. Anthony Fauci, one of the top US government infectious disease experts and member of 45’s COVID-19 task force, stated, “there may have been people who died at home who did have COVID, who are not counted as COVID because they never really got to the hospital.” It is important to stress that this undercounting will disproportionately impact demographics that have less wealth and less access to healthcare, including those already structurally oppressed, such as people of color. One way to correct for this bias in the data is to look at the statistics of “excess deaths,” the numbers when compared with previous years.

A conceptual tool that I like to use when thinking about these types of biases in the data collection and data reporting processes is Wittgenstein’s Ruler, as introduced by essayist, statistician, and professional provocateur Nassim Nicholas Taleb in Fooled By Randomness:

Unless you have confidence in the ruler’s reliability, if you use a ruler to measure a table you may also be using the table to measure the ruler.

The first concept here is that, if your measurement device is broken, whether it be a ruler or a pandemic testing system, it’s not telling you anything of value about the real world. Worse, it may be providing incorrect information. The second concept is that, if you can find out something about the length of the table by other means, you may be able to infer properties of the ruler. In our current case, this could mean that if we knew more about actual death rate (by, for example, considering the statistics of “excess deaths”), we could infer the flaws in our reported deaths data collection, analysis, and reporting processes.1

Moreover, data collection and data reporting are political acts and processes embedded in societies with asymmetric power relations, and most often processes controlled by those in positions of power. In the words of Catherine D’Ignazio and Lauren F. Klein in Data Feminism, “governments and corporations have long employed data and statistics as management techniques to preserve and unequal status quo.” It is a revelation to realize that the etymology of the word statistics comes from the term statecraft2 and the ability of states and governments to wield power through the control of data collection and data reporting (they decide what is collected, reported, how it is reported, and what decisions are made).

The major takeaway from this section is to approach reported data with an educated skepticism, recognize the potential biases in reported data, and realize that there is a huge amount of uncertainty here. Easier said than done, of course, particularly when we live in a world of information glut and the sheer number of decisions we need to make seems to increase daily. So how do we actually think about incorporating information into our decision-making processes? And how do we prioritize which decisions to make and actions to take?

Information Anxiety, Decision Fatigue, and the Scale of Things

In The Signal and the Noise, Nate Silver points out that we’re drowning in information and “we think we want information when we really want knowledge.” What we really now need is knowledge, which involves understanding, and an ability to incorporate this knowledge into our decision-making processes.

The number of decisions that a modern human has to make daily, consciously or otherwise, is staggering: estimates are around 35,000. Decision fatigue is real when one is faced with too many decisions, one after the other. Decision paralysis and the tyranny of choice3 are real, particularly in light of the vast swathes of content on display in the marketplace of the attention economy. This is why terms such as information anxiety, infobesity, and infoxication have evolved. And this was all pre-COVID-19.

Now we have a huge number of potentially fatal decisions to make and information to take in on so many scales:

  • On the nanometre scale, the size of a coronavirus particle.
  • On a microscale: “what did I just touch? Could I have picked up a particle?”
  • On a bodily scale, when touching one’s nose by accident.
  • On an apartment or house scale, when bringing deliveries or groceries in.
  • On a family, professional, and small social network scale: “Who have I interacted with?”, “Who can I interact with?”
  • On suburban, urban, state, national, and global scales: quarantine, lockdown, and shelter-in-place orders, supplies for hospitals, the closing of schools, shutting down the economy.

When contemplating the size of the universe in his Pensees, Blaise Pascal exclaimed “The eternal silence of these infinite spaces frightens me.” This would be a reasonable reaction to COVID-19, although one should also include an anxiety at the other end of the scale, the anxiety about the virus itself. From this perspective, as a global species, we’re stuck in the middle of a set of unforgiving scales that produce deep personal anxiety, global anxieties, and everything in between.

This is all to say that making decisions under uncertainty is tough and we’re not great at it, even under normal circumstances. During a global pandemic, it’s infinitely more difficult. We need to prioritize the decisions we want to make such as, for example, those involving the health of ourselves and those closest to us. When there are so many decisions to make, how do you go about ranking them, in terms of prioritization? A good heuristic here is to map out the space of possibilities resulting from your decisions, a practice called scenario planning, and prioritizing the ones that have the largest potential impact. In Thinking in Bets, Duke provides the example of After-School All-Stars (ASAS), a national non-profit she consulted. ASAS needed to prioritize the grants they were applying for. They had been prioritizing those that were worth the most, even if they were very unlikely to receive them. Duke proposed prioritizing the grants with highest expected value, that is, the total award grant multiplied by the estimated probability of receiving the grant (a grant X of $100,000 that they would win 10% of the time would be valued at $10,000; a grant Y of $50,000 that they would win 50% of the time would be valued at $25,000; in ASAS’ prioritization scheme, X would be prioritized, in Duke’s, Y would be: it’s worth less, but five times more likely). What Duke is implicitly performing in this calculus is scenario planning by looking at two possible futures (“awarded” or “declined” post-application) and averaging over them with respect to the probability of each. For more on scenario planning, I encourage you to check out Peter Schwartz’ book The Art of the Long View: Planning for the Future in an Uncertain World, along with Tim O’Reilly’s recent essay Welcome to the 21st Century: How To Plan For The Post-Covid Future, which “plays fast and loose with some of its ideas” (Tim’s words).

Most real-world cases are nowhere near as clean cut and consist of many cross-cutting decisions with varying levels of risk and uncertainty. However, taking a more principled approach to decision-making and prioritization by considering likelihood, impact, and scenario planning will improve decision quality. So will thinking more critically about risk, uncertainty, what the data we have actually means, and what information we really have about the world, as well as acknowledging our blind spots. In a word, making better decisions requires us to be more honest about uncertainty.

Footnotes

1 Taleb introduces the concept of Wittgenstein’s Ruler with respect to book reviews: “A book review, good or bad, can be far more descriptive of the reviewer than informational about the book itself.”

2 I discovered this fact from Chris Wiggins’ & Matt Jones’ course data: past, present, and future at Columbia University.

3 Also see The Paradox of Choice⁠ — Why Less is More, by Barry Schwartz, the thesis of which is that “eliminating consumer choices can greatly reduce anxiety for shoppers.”

Many thanks to Allen Downey and Q McCallum for feedback on drafts of this essay and to Cassie Kozyrkov for ongoing, thoughtful, and heated conversations about the topics covered.

Categories: Technology

Four short links: 16 June 2020

O'Reilly Radar - Tue, 2020/06/16 - 04:51
  1. The Global Implications of “Re-education” Technologies in Northwest China — A great summary of the way that technology facilitates China’s Muslim “re-education” system in Northwest China. It feels like the 21C version of IBM helping the Nazis.
  2. Buf — A project aiming to make protobuf easier to use than JSON, by adding linters, breaking change detector, editor integration, and ultimately a schema library.
  3. Silqa new high-level programming language for quantum computing with a strong static type system, developed at ETH Zürich. “High-level” is a relative term.
  4. Recent Database Tech — This is Part 1 or 2. It covers TileDB (multidimensional arrays); Materialize (SQL views on streaming data); and Prisma (a data layer that abstracts away the db layer, compatible with PostgreSQL, MySQL, and SQLite).
Categories: Technology

Four short links: 15 June 2020

O'Reilly Radar - Mon, 2020/06/15 - 04:40
  1. Team Players: How Social Skills Improve Group PerformanceSome people consistently cause their group to exceed its predicted performance. We call these individuals “team players”. Team players score significantly higher on a well-established measure of social intelligence, but do not differ across a variety of other dimensions, including IQ, personality, education and gender. Social skills – defined as a single latent factor that combines social intelligence scores with the team player effect – improve group performance about as much as IQ. We find suggestive evidence that team players increase effort among teammates.
  2. PLDI 2020 ProceedingsProceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation.
  3. CNIL’s GDPR Guide for Developers — 17 pages, one per major topic: Develop in compliance with the GDPR; Identify personal data; Prepare your development; Secure your development environment; Manage your source code; Make an informed choice of architecture; Secure your websites, applications and servers; Minimize the data collection; Manage user profiles; Control your libraries and SDKs; Ensure quality of the code and its documentation; Test your applications; Inform users; Prepare for the exercise of people’s rights; Define a data retention period; Take into account the legal basis in the technical implementation; Use analytics on your websites and applications.
  4. 3D Scanning Microscope for $250 — Using a single element, but a stepping platform and stitching software, you can take super-hi-res close-up photos of objects. (Kickstarter)
Categories: Technology

Four short links: 12 June 2020

O'Reilly Radar - Fri, 2020/06/12 - 04:34
  1. OpenSHCSyropod High-level Controller (SHC) is a versatile controller capable of generating body poses and gaits for quasi-static multilegged robots. It is implemented as a C++ ROS package that can be easily deployed on legged robots with different sensor, leg and joint configurations.
  2. Source HackingIn this report, we identify four specific techniques of source hacking: 1. Viral Sloganeering: repackaging reactionary talking points for social media and press amplification; 2. Leak Forgery: prompting a media spectacle by sharing forged documents; 3. Evidence Collages: compiling information from multiple sources into a single, shareable document, usually as an image; 4. Keyword Squatting: the strategic domination of keywords and sockpuppet accounts to misrepresent groups or individuals These four tactics of source hacking work.
  3. Anonymous Camera — Real-time removal of faces, voices. etc. to maintain privacy in video.
  4. Apple’s Success in China — A long article looking at the history of Apple in China, successes and failures. Part 1 introduces the essay series. Part 2 explains Apple’s product-zeitgeist fit in China. Part 3 looks at product localization. Part 4 looks at Apple’s services in China and relationship with Tencent. Part 5 looks at the complexities of operating in China. Part 6 and Part 7 look at Apple’s compliance efforts in respect of the App Store and iCloud respectively. Part 8 looks at Apple’s investment in DiDi. Part 9 concludes with lessons from Apple’s experience in China.
Categories: Technology

Four short links: 11 June 2020

O'Reilly Radar - Thu, 2020/06/11 - 04:57
  1. Testing the Automation Revolution Hypothesis25 simple job features explain over half the variance in which jobs are how automated. The strongest job automation predictor is: Pace Determined By Speed Of Equipment. Which job features predict job automation did not change from 1999 to 2019. Jobs that get more automated do not on average change in pay or employment. Labor markets change more often due to changes in demand, relative to supply.
  2. How to Plan for the 21st CenturySo, while you may hope for a return to normal, and plan for that as one of your scenarios, it is worth taking the time to think through what you might do were the world we knew to be swept away as surely as the 19th century certainties were swept away by the events of the early 20th century. There will be a temptation to have a “new normal” that is really a minor adjustment of the old. It does not have to be that way.
  3. Regular TableA Javascript library for the browser, regular-table exports a custom element named , which renders a regular HTML
    to a sticky position within a scollable viewport. Only visible cells are rendered and queried from a natively async virtual data model, making regular-table ideal for enormous or remote data sets. Use it to build Data Grids, Spreadsheets, Pivot Tables, File Trees, ….

  4. Procedurally-Generated Chinese LandscapesProcedurally-generated vector-format infinitely-scrolling Chinese landscape for the browser. Open source.
Categories: Technology

Four short links: 10 June 2020

O'Reilly Radar - Wed, 2020/06/10 - 04:33
  1. CapRoveran extremely easy to use app/database deployment & web server manager for your NodeJS, Python, PHP, ASP.NET, Ruby, MySQL, MongoDB, Postgres, WordPress (and etc…) applications.
  2. Gravitya powerful, dynamically typed, lightweight, embeddable programming language written in C without any external dependencies (except for stdlib). It is a class-based concurrent scripting language with a modern Swift like syntax.
  3. PEGASUS: Pre-training with Extracted Gap-sentences for Abstractive SummarizationWe evaluated our best PEGASUS model on 12 downstream summarization tasks spanning news, science, stories, instructions, emails, patents, and legislative bills. Experiments demonstrate it achieves state-of-the-art performance on all 12 downstream datasets measured by ROUGE scores. Our model also shows surprising performance on low-resource summarization, surpassing previous state-of-the-art results on 6 datasets with only 1000 examples. Finally we validated our results using human evaluation and show that our model summaries achieve human performance on multiple datasets. (Code)
  4. The Seven Deceptions of Microservices — “Lies” implies deliberate intent to deceive, but whether intentional or not, these are the false ideas about microservices (according to the author): Separation of concerns across services reduces complexity; Microservices increase development speed;It’s safer to deploy small services than an entire app; It is often advantageous to scale services independently; Microservice architectures are more performant; Managing multiple services won’t be hard; Microservices will work if you design them carefully from the ground up.
Categories: Technology

Machine Learning and the Production Gap

O'Reilly Radar - Tue, 2020/06/09 - 04:31

The biggest problem facing machine learning today isn’t the need for better algorithms; it isn’t the need for more computing power to train models; it isn’t even the need for more skilled practitioners. It’s getting machine learning from the researcher’s laptop to production. That’s the real gap. It’s one thing to build a model; it’s another thing altogether to embody that model in an application and deploy it successfully in production.

That’s where Emmanuel Ameisen’s book,  Building Machine Learning Applications, comes in. When I first met Emmanuel, three or four years ago, what impressed me wasn’t his expertise in building models—though he clearly had that. (I first learned about Emmanuel through articles on his  blog.) He clearly cared about the whole process: not just developing algorithms, finding and cleaning data, and training models, but building a working application and putting it in production.

That’s what his new book is about. The development process doesn’t end with a model. It ends with that model that’s deployed. You can’t just talk about programming or training; you’ve got to make this work in the real world.

Emmanuel starts at the beginning: what are the goals for the product, and how do you refine those goals into something that can be reasonably implemented? You need to understand whether a problem can be solved—and if not, how to reframe the problem so that it can be. You need to define metrics that show how your system is performing, and whether you’re making progress. You need to collect relevant data for training, and deploy pipelines that will feed data to the model when it is in production. Making a product that works in the real world also includes understanding how to deploy the model; monitoring performance after deployment; and ongoing maintenance and updates.

Maintenance may be the most important issue. In the last few years, operations teams have learned a lot about continuous deployment and delivery (CI/CD). The question facing us now is how machine learning applications fit into this model. How do you monitor ML applications, and what kind of monitoring is needed? How do you detect model drift? These concepts are new to the ongoing conversation about monitoring and observability. How do you practice rapid deployment when training a model can take hours or days?

There are many books out there that talk about machine learning. But this is the only one I know of that covers the entire process, end-to-end, in approachable and practical terms. It’s the only one that focuses on the biggest machine learning problem of all: getting the model off of your laptop and into production.

Categories: Technology

Four short links: 9 June 2020

O'Reilly Radar - Tue, 2020/06/09 - 03:58
  1. Anti-Monopoly Thinking — Tim Bray reviews “The Myth of Capitalism: Monopolies and the Death of Competition” by Jonathan Tepper and Denise Hearn. The quote that caught my eye:
    “X companies control Y% of the US market in Z: X=2, Y=90, Z=beer; X=4, Y=almost all, Z=airlines; X=5, Y=50, Z=banks; X=2, Y=90, Z=health insurers in many states; X=1, Y=75%, Z=fast Internet, most places in the US; X=3, Y=70, Z=pesticides; X=3, Y=80, Z=seed corn.”
  2. Eugene Spafford on Internet VotingReally one of the goals of an election should be that whoever loses in an election can look at what happened and acknowledge it was a fair loss. For the general population, if your candidate lost and if a majority of people are able to examine the methodology, they can go, “OK, it was fair. We didn’t have the votes.” That’s really the goal. The winner is always going to say, “Yeah, this is right.” I’d not thought of it this way, but obviously yes: we vote so we don’t have bloody revolutions, but voting without credibility will still get us bloody revolutions.
  3. Radar Trends to Watch: June 2020 — Interesting to see new languages coming up at regular intervals with strengths in particular areas.
  4. Unsupervised Translation of Programming LanguagesWe train our model on source code from open source GitHub projects, and show that it can translate functions between C++, Java, and Python with high accuracy. Our method relies exclusively on monolingual source code, requires no expertise in the source or target languages, and can easily be generalized to other programming languages. We also build and release a test set composed of 852 parallel functions, along with unit tests to check the correctness of translations. We show that our model outperforms rule-based commercial baselines by a significant margin.
Categories: Technology

Radar trends to watch: June 2020

O'Reilly Radar - Mon, 2020/06/08 - 04:59

Most of the technical news this month continues to swirl around coronavirus. Many things are happening under that rubric⁠—for example, delivery during a pandemic could be the killer app for autonomous vehicles. And money being (literally) dirty, the pandemic could drive the development of new payment systems that are more inclusive. I haven’t seen as much interesting news from the AI world this month.  There are some hints that we’re reaching the point of diminishing returns for large models, and that we’re turning the corner from research into deployment and production.

COVID-19
  • A startup is developing a CRISPR-based fast and accurate COVID-19 test that can be used at home. At-home testing raises questions about reporting, but since the test gives quick results, it could also be used by airlines, offices, and other crowded locations.
  • One consequence of the coronavirus pandemic may be that there aren’t enough people to work in call centers.  Will AI take up the slack?  Natural language applications for automating call centers is a significant strategic bet for a number of big AI players, including IBM.
  • Permanent work-from-home at Twitter: On one hand, working from home wherever possible is a no-brainer, if for no other reason than minimizing office expense. But it has huge consequences for the real-estate and building industries if other companies follow suit. It also may have consequences for salaries.
  • In the wake of conference cancellations, venues for online conferences and meetings are evolving rapidly; it’s not just Zoom or GoToMeeting. Discord has a lot of potential; The Deserted Island Devops conference appears to have taken place in Animal Crossing, a multiplayer video game.  The conference was live-streamed on Twitch. I’ve also seen references to The Online Town and Clubhouse Voice Chat. The winner will be whoever can replicate the in-person “hallway session” experience.
  • Will the open office survive COVID-19?  (Personal conversation) Good question. Open offices have already lost favor, at least among employees. Viruses spread like wildfire in open spaces with shared ventilation. Keeping office buildings at 25% capacity isn’t attractive–and if HVAC is a big part of the problem, unlikely to be effective.
Programming
  • NuShell is a new cross-platform shell, updating the notion of pipes and built around tables as first-class objects. It runs on Windows, Linux, and OS X.  The command line will remain a powerful tool.
  • Bosque is Microsoft’s new programming language for the cloud and AI. It strikes me as a weird mashup of JavaScript and TypeScript with some Java-esque features; Microsoft stresses Bosque’s intermediate representation (bytecode), which is a level of arcanity I don’t expect anyone to care about.
  • Deno, a new command-line JavaScript interpreter, is attracting a lot of attention. If this seems like “an updated version of Node.js that fixes the mistakes we made the first time,” I’m not sure why it isn’t.  Perhaps more important, Deno includes a TypeScript interpreter, eliminating cross-compilation from TypeScript to JavaScript.
  • The New Stack is talking about Serverless Cloud mashups. This is also the point of James Urquhart’s “flow architectures,” which I suspect has been missed: what James thinks is radical about the next generation of enterprise software is that it will be as flexible as the web.
Machine Learning and AI
  • Comment-driven development: Microsoft has developed AI that writes functions based on a comment and the function signature (skip to 29:00 of the video). This is obviously a demo with extremely simple examples, but this could be a big step forward in re-thinking programming.  Programming would be less about describing processes in excruciating detail, and more about analyzing the problem itself.
  • Early Bird is a technique for faster and less power-hungry training for neural networks by doing network pruning (identifying the nodes that will be part of the trained network) very early in the process.  They claim to use a factor of 10 less energy. There are two important questions: does that just mean that people will train larger models? And do larger models actually accomplish anything? The natural language model GPT-3, which is the largest model we know of, suggests that we’ve reached a point of diminishing returns. And that we’re asking the wrong questions, particularly for language models.
  • PyCaret is a new machine learning library for Python that requires very little coding.
Payment systems
  • Affirm (buy-now-pay later, essentially a one-shot credit card) seems to have flown under the radar. Credit is only extended for the purchases in a single shopping cart, with credit-worthiness and loan terms evaluated in real-time. Interest rates are based on your ability to pay: ⅓ of the loans are at 0%, but can be up to 30%, which seems usurious. Users are given the total payments and interest charges before they accept the loan. Payment as a microservice…
  • The Mojaloop Foundation, with extensive support from Google and the Gates Foundation, is attempting to create a digital payments system with inclusion as a goal. This could be seen as competition for Facebook’s Libra⁠—although Libra appears to be dead before it started.
  • As long as we’re on payments: will the dollar continue to dominate?  China continues to work on their electronic currency (the e-RMB), which could become a compelling alternative to the dollar.
Networks
  • The Open RAN Policy Coalition is attempting to create open, interoperable standards for 5G. Such a coalition is needed because the major networks and vendors are all pursuing slightly different versions of a standard that isn’t really standard. The coalition includes Microsoft, Google, IBM, Cisco, AT&T, and Verizon. It may also be an attempt to exclude China, since Chinese companies are not represented.
Categories: Technology

Four short links: 8 June 2020

O'Reilly Radar - Mon, 2020/06/08 - 04:07
  1. Privacy Threats in Intimate RelationshipsThis article provides an overview of intimate threats: a class of privacy threats that can arise within our families, romantic partnerships, close friendships, and caregiving relationships. Many common assumptions about privacy are upended in the context of these relationships, and many otherwise effective protective measures fail when applied to intimate threats. Those closest to us know the answers to our secret questions, have access to our devices, and can exercise coercive power over us. We survey a range of intimate relationships and describe their common features. Based on these features, we explore implications for both technical privacy design and policy, and offer design recommendations for ameliorating intimate privacy risks.
  2. CipheyCiphey uses a deep neural network to guess what something is encrypted with, and then a custom built natural language processing module to determine the output.
  3. No Bugs, Just Todos — Nice set of guidelines for software development teams. Practical and based in the real-world. Example: The possible ticket states are often designed by architects and not by people who are actually going to use the thing. I’ve seen a map of issue state transitions that definitely looked Turing-complete. I advise to start with the “Todo”, “Doing” and “Done” triad and only add more if absolutely required. Moving issues from one state to another needs to be associated with an explicit action. If you add more, make sure that you have an explicit agreement with everyone that the latest-stage ticket has the highest priority unless you are going to get all tickets stuck in the most boring stage, such as “verification”.
  4. Homomorphic Encryption Libraries — A list of mature open source Full Homomorphic Encryption libraries.
Categories: Technology

Four short links: 5 June 2020

O'Reilly Radar - Fri, 2020/06/05 - 04:52
  1. Computers Barely Work — An interview with Greg Kroah-Hartman. A joyful interview with a Linux kernel maintainer, words I never thought I’d type.
  2. TinyInsta lightweight dynamic instrumentation library that can be used to instrument only selected module(s) in the process, while leaving the rest of the process to run natively. It is meant to be easy to understand, easy to hack on and easy to hack with. It is not designed to be compatible with all targets.
  3. Stay Motivated When Feedback is ScarceReduced feedback, diminished external encouragement, and decreased interpersonal interaction don’t just take an emotional toll; they can take a toll on our work outcomes as well. If you want to be a valued coworker and manager, learn to give feedback.
  4. Robotics Debates — Great moots! Robotics research is over-reliant on benchmark datasets and simulation; and Robots designed for personal or household use have failed because of fundamental misunderstandings of Human-Robot Interaction (HRI).
Categories: Technology

Four short links: 4 June 2020

O'Reilly Radar - Thu, 2020/06/04 - 04:27
  1. Ears to Facesour goal is to generate a frontal face image of a subject given his/her ear image as the input. It’s … astonishing.
  2. GLTRa visual forensic tool to detect text that was automatically generated from large language models.
  3. Moving Work From Push to Pull — A small Phoenix Project-type story for something that isn’t software. This caught my eye: Studies of new product development organizations in the consumer electronics and motorcycle industries suggest that R&D systems often have three to five times as many projects in progress as they have capacity to complete.
  4. The Business of Open Source — Adam Jacob’s excellent advice on how to commercialise your open source project. 1) produce a product based 100% on open source code. 2) be the sole distributor of that product, based on your trademark, under whatever commercial terms make sense for your business. 3) encourage and collaborate with folks who want to build alternative distributions. I asked him to unpack various bits of this to make sure I understood it, and I think you’ll find it a short yet interesting read.
Categories: Technology

Pages

Subscribe to LuftHans aggregator