Tuesday, June 2, 2020

Contact Tracing App API from Apple and Google

Isolate potentially infected individuals, track and trace contacts -- these are steps responsible governments are taking to help stem the tide of the COVID19 pandemic in 2020.

Many governments around the world are developing contact tracing apps which meet the privacy standard advocated by Google and Apple, in order to ensure their apps will function only on Android and IOS devices. Google and Apple, the world’s leading makers of smartphone operating systems, recently released their contact tracing API (known as the “exposure notification” API) to help prevent the spread of COVID-19.

Some 22 countries (including Ireland) across 5 continents and a number of US states have already requested access to the software.  Notably missing from this list are France and the UK.

The API is not itself a contact tracing application -- instead, it enables governments and public health authorities to incorporate the software into their own apps that people install. The API will enable Bluetooth technology to run in the background of the phone, including on a locked phone. Without this ability for background use of Bluetooth technology, the utility of Apps would be greatly decreased.

Users would turn on and unlocks their phones, for the Apps to be able to use Bluetooth and log encounters. Apple and Google are limiting use of their API technology to government contact-tracing Apps.

Privacy activists have praised the protections ordered by Apple and Google’s API, as being in line with the principles of data protection by design and by default.

Google and Apple have explicitly barred use of the API in any apps that seek GPS loca on data from users, which means some apps being developed by public health authori es for contact tracing will not be able to use the API. In addition, the API can will only work on Apps using a decentralized system that uses randomly generated temporary keys created on a user’s device (but not linked to their specific identity or exact location).

The API allows public health officials to decide what constitutes exposure in terms of exposure time and distance. They can adjust transmission risk and other factors according to their own standards.


Monday, June 1, 2020

Think Six-Sigma Code is Not Possible? You just need to think like NASA

To get high quality code in your application, consider adopting NASA’s 10 rules for writing mission-critical source code:

  1. Restrict all code to very simple control flow constructs – do not use goto statements, setjmp or longjmp constructs, and direct or indirect recursion.
  2. All loops must have a fixed upper-bound. It must be trivially possible for a checking tool to prove statically that a preset upper-bound on the number of iterations of a loop cannot be exceeded. If the loop-bound cannot be proven statically, the rule is considered violated.
  3. Do not use dynamic memory allocation after initialization.
  4. No function should be longer than what can be printed on a single sheet of paper in a standard reference format with one line per statement and one line per declaration. Typically, this means no more than about 60 lines of code per function.
  5. The assertion density of the code should average to a minimum of two assertions per function. Assertions are used to check for anomalous conditions that should never happen in real-life executions. Assertions must always be side-effect free and should be defined as Boolean tests. When an assertion fails, an explicit recovery action must be taken, e.g., by returning an error condition to the caller of the function that executes the failing assertion. Any assertion for which a static checking tool can prove that it can never fail or never hold violates this rule (I.e., it is not possible to satisfy the rule by adding unhelpful “assert(true)” statements).
  6. Data objects must be declared at the smallest possible level of scope.
  7. The return value of non-void functions must be checked by each calling function, and the validity of parameters must be checked inside each function.
  8. The use of the preprocessor must be limited to the inclusion of header files and simple macro definitions. Token pasting, variable argument lists (ellipses), and recursive macro calls are not allowed. All macros must expand into complete syntactic units. The use of conditional compilation directives is often also dubious, but cannot always be avoided. This means that there should rarely be justification for more than one or two conditional compilation directives even in large software development efforts, beyond the standard boilerplate that avoids multiple inclusion of the same header file. Each such use should be flagged by a tool-based checker and justified in the code.
  9. The use of pointers should be restricted. Specifically, no more than one level of dereferencing is allowed. Pointer dereference operations may not be hidden in macro definitions or inside typedef declarations. Function pointers are not permitted.
  10. All code must be compiled, from the first day of development, with all compiler warnings enabled at the compiler’s most pedantic setting. All code must compile with these setting without any warnings. All code must be checked daily with at least one, but preferably more than one, state-of-the-art static source code analyzer and should pass the analyses with zero warnings.

According to NASA, the rules act like the seatbelt in your car: initially they are perhaps a little uncomfortable, but after a while their use becomes second-nature and not using them becomes unimaginable.

Read more here...

Friday, May 29, 2020

Work from home? Work from anywhere

Perhaps you are responding to an order to work from home? Or as an employer, you are considering the safety of your team, and your community? Working from home has gotten a big boost during this situation. But what about... remote work from anywhere? As the article at Techcrunch relates,

“Work From Home” is terrible branding, precisely because it fails to communicate the fundamental freedom that comes with these new policies. It’s not about further imprisoning us in our homes — it’s about empowering us to think and work exactly where we are personally most productive.

Sure, some remote jobs might have location requirements:

  • Meetings: to be close in proximity to company for customer offices for in-person meetings
  • Taxes: employment tax law requirements pertaining to their state or country
  • Certifications: a job requires certifications that are location-specific
  • Travel: a position is travel-heavy so you need to be close to transport hubs
  • Time zone: addressing collaboration with peers a certain time zone

If you can dod the job one mile from the office, what is stopping you from one hundred miles, or the other side of the globe/ Working remotely increases flexibility and autonomy for staff. Technology such as the internet, video conferencing, collaboration platforms, and cloud services keep people connected. Attend meetings and be productive on projects from anywhere, anytime. You can also find more and better-qualified candidates, and incentivize to retain talent, and saving on overhead costs.
Read more here...

Tuesday, May 26, 2020

Read an Article about Group Problem Solving, Improved by Distance

From the BBC, we learn of the latest psychological literature suggesting that less communication might actually be better than constant inputs. Collaboration in an "always on" mode may in fact reduce ‘collective intelligence’ (a team’s joint problem-solving ability). Instead of always staying in touch with colleagues with continual chats on Slack, for example, the study suggests a better model would be to concentrate group communication to short, intermittent bursts – a single daily video call, for example – to boost team problem solving and creativity.

Besides helping us to make better use of our time during the current crisis, these findings could help to shape the ways that we go about team decision making in the future. Even if we are in the office, we might all benefit from having a bit more me time and a bit less team time.

Read more and download a PDF of the article.

Monday, May 25, 2020

Cold Warrior Satellites Like Corona Help Track Species Decline

The United States launched early spy satellites in response to the Soviet Union Sputnik (first artificial satellite, 1957) and other space efforts. The espionage program, titled Corona, was aimed at locating Soviet missile sites, but its orbital photography captured something unintended: snapshots of animals and their habitats frozen in time. Now, by comparing these images with modern data, scientists have found a way to track the decline of biodiversity in regions that lack historic records.

The researchers tested the approach on bobak marmot (Marmota bobak) populations in the grassland region of northern Kazakhstan. There, Soviets converted millions of hectares of natural habitat into cropland in the 1960s. The scientists searched the satellites' black and white film images on a U.S. Geological Survey database for signs of the squirrel-like animal's burrows.

They identified more than 5,000 historic marmot homes and compared them with contemporary digital images of the region, mapping more than 12,000 marmot burrows in all. About eight generations of marmots occupied the same burrows in the study area over more than 50 years, even when their habitats underwent major changes, the team reports in the Proceedings of the Royal Society B. Overall, the researchers estimate the number of marmot burrows dropped by 14% since the '60s. But the number of burrows in some of the oldest fields -- those persistently disturbed by humans plowing grassland to plant wheat -- plunged by much more -- about 60%.
Read more over at Slashdot...