segunda-feira, 29 de junho de 2020

REUSE: Open Telemetry project

Quoting JP newsletter: [Open Telemetry is for] the gathering of metrics produced from your applications. These metrics are either known common ones that are almost always collected (thread counts, CPU consumption, etc) or application specific but benefit from a common collection API.

After decades of every vendor/project/application building their own implementation for these, we're finally going to have a commonly available implementation and standard from the OpenTelemetry project:

https://opentelemetry.io/

From the site: "OpenTelemetry provides a single set of APIs, libraries, agents, and collector services to capture distributed traces and metrics from your application. You can analyze them using Prometheus, Jaeger, and other observability tools."

quinta-feira, 2 de abril de 2020

Unit Testing: cmocka - unit testing framework for C

A unit testing FW for Embedded? Yep.
Details here:
cmocka - unit testing framework for C



Quoting:

"

cmocka is ...

an elegant unit testing framework for C with support for mock objects. It only requires the standard C library, works on a range of computing platforms (including embedded) and with different compilers.

"




domingo, 29 de março de 2020

SW Development: MISRA Coding Standards

An article (from a tool provider, not affiliated) on MISRA C and C++ coding standards and some example rules:
https://www.perforce.com/resources/qac/misra-c-cpp

SW Development: About C++ Adoption (in Embedded)

An article on (the lack) of the latest C++ adootion, C++ 17 and the possible reasons, and the statement that 70% of embedded systems being developed in C:

https://www.perforce.com/blog/qac/should-i-adopt-cpp17

Quoting:
"

Pros and Cons of C++17 Features

The latest version of C++ includes features that improve your code, performance, and security. While these are nice features, they're not earth-shattering. 

Algorithm Optimization

One of the biggest additions is the introduction of the parallel algorithms library.

Multi-processor systems are required for computer-intensive programs and artificial intelligence. The parallel algorithms library makes it easier to execute standardized algorithms on this type of system. 

Cleaner Code

There are two features that will enable cleaner code:

  • Selection statements with initializer.
  • Structured bindings.

This also reduces keystrokes for those who understand the syntax.

So, these features provide a step up for cleaner code. 

Interested in writing cleaner code? Get coding best practices for C++ >>

Better Performance

“Guaranteed copy elision” is designed for improved compiler optimization. So, it may improve runtime performance. 

Safety and Security

The latest C++ features will improve the safety of your program and ensure secure coding, including the following:

  • Removal of trigraphs and dynamic exception specifications.
  • Stricter order of expression evaluation. 
  • Introduction of std::byte type.

The first two features prevent unspecified or undefined behavior. 

The std::byte feature improves type safety. It distinguishes byte-oriented access to memory from accessing memory as a character or integral value. It also improves readability. The intent of the code is clearer.

Learn more about the changes from C++14 to C++17"

sexta-feira, 27 de março de 2020

Security: Working remote?

You might want to take a look on the SANS tips for working remote. Quoting:
"The SANS mission is to empower current and future cybersecurity practitioners through training, education, and skills validation to create a safer global community. …We interrupt our regularly scheduled programing to address the impact that the coronavirus outbreak is having on our daily work life. Working from home may sound like a dream come true for many people, but if this is your first experience taking your workforce virtual, the transition will likely be a bit overwhelming at first. For those given the task of setting up a home office, what should you do first? What technology will you need? How will you stay connected to your co-workers? How will you balance your family and work life? How will I stay productive with the kids home all day?

Download our infographic to help you make the most of working remote here."

Source:

https://www.sans.org/blog/18-tips-to-help-you-make-the-best-of-working-remote/

quarta-feira, 25 de março de 2020

SPARQL query language by W3C

SQL, NoSQL, SPARQL?
The summary:
https://en.m.wikipedia.org/wiki/SPARQL
The cheat sheet:
www.iro.umontreal.ca › spar...PDF
SPARQL By Example: The Cheat Sheet

sábado, 21 de março de 2020

Web tracking techniques...

... from a cookie consent form (cookie policy). Do you know them all?

Quoting:
"Definitions

Cookies

A cookie (sometimes referred to as local storage object or LSO) is a data file placed on a device. Cookies can be created through a variety of web-related protocols and technologies, such as HTTP (sometimes referred to as “browser cookies”), HTML5, or Adobe Flash. For more information on third-party cookies that we use for analytics, please review the table of cookies and tracking technologies within this Cookies and Tracking Technologies Policy.

Web Beacons

Small graphic images or other web programming code called web beacons (also known as “1×1 GIFs” or “clear GIFs”) can be included in our online service’s pages and messages. Web beacons are invisible to you, but any electronic image or other web programming code inserted into a page or email can act as a web beacon.

Clear gifs are tiny graphics with a unique identifier, similar in function to cookies. In contrast to HTTP cookies, which are stored on a user’s computer hard drive, clear gifs are embedded invisibly on web pages and are about the size of the period at the end of this sentence.

Deterministic Finger-printing Technologies

If a user can be positively identified across multiple devices, for instance, because the user has logged into a platform such as Google, Facebook, Yahoo or Twitter, it can be “determined” who the user is for purposes of improving customer service.

Probabilistic Finger-printing

Probabilistic tracking depends upon collecting non-personal data regarding device attributes like operating system, device make and model, IP addresses, ad requests and location data, and making statistical inferences to link multiple devices to a single user. Note that this is accomplished through proprietary algorithms owned by the companies performing probabilistic finger-printing. Note also that in the EU IP Addresses are personal information.

Device Graph

Device graphs can be created by combining non-personal data regarding use of smartphones and other devices with personal log-in information to track interactions with content across multiple devices.

Unique Identifier Header (UIDH)

“Unique Identifier Header (UIDH) is the address information that accompanies Internet (http) requests transmitted over an ISP’s wireless network. For example, when a customer types on his or her phone the web address of a retailer that request travels over the network and is delivered to the retailer’s website. The information included in that request includes things like the device type and screen size so that the retailer site knows how to best display the site on the phone. The UIDH is included in this information, and can be used as an anonymous way for advertisers to be able to determine that the user is part of a group that a third-party advertiser is attempting to reach.

It is important to note that the UIDH is a temporary, anonymous identifier included with unencrypted web traffic. We change the UIDH on a regular basis to protect the privacy of our customers. We do not use the UIDH to collect web browsing information and it does not broadcast individuals’ web browsing activity out to advertisers or others.”

Embedded Script

An embedded script is programming code that is designed to collect information about your interactions with the online service, such as the links you click on. The code is temporarily downloaded onto your device from our web server or a third-party service provider, is active only while you are connected to the online service, and is deactivated or deleted thereafter.

ETag, or Entity Tag

A feature of the cache in browsers, an ETag is an opaque identifier assigned by a web server to a specific version of a resource found at a URL. If the resource content at that URL ever changes, a new and different ETag is assigned. Used in this manner ETags are a form of device identifier. ETag tracking generates unique tracking values even where the consumer blocks HTTP, Flash, and/or HTML5 cookies.

Unique Device Tokens

For each user that accepts push notifications in mobile apps, the app developer is provided with a unique device token (think of it as an address) from the app platform (e.g., Apple and Google).

Unique Device ID

The unique series of numbers and letters assigned to your device."

Source: https://www.voxmedia.com/legal/cookie-policy#your-cookie-choices-and-how-to-opt-out

sexta-feira, 14 de fevereiro de 2020

Uphill notation: importance and uses in the medical field

The existence of a (graphical) notation improves conveying what there is to do next, diminishes the probability of error applying protocols and the use of a mobile app improves peer review and sharing of the changes in the medical protocol for a certain situation:
https://uphillhealth.com/notation