Kevin Montalbo

1631866080

We explored the 'edge' of the internet – here’s what we found

The industry is currently witnessing the rise of edge computing, where local devices that capture and store data are becoming more and more ubiquitous.

For the uninitiated, edge computing optimizes applications by taking a portion of itself having a modular composition. This means that parts of the application, such as a portion of data or services, can be found away from the centralized data center or node, and are placed in another location that’s ideally closer to the users.

This location is the so-called "edge".

The need to improve application performance and real-time computing has driven the adoption of the edge. In fact, a report by F5 on the State of Application Strategy for 2021 states that there is now an overwhelming interest in the edge, with 76% of respondents already using or planning to use it.

"The edge - it's in my closet on the other side of this wall, it could be on my phone, could be on the devices that are operating my fish tank right now. More likely it's going to be in a retail shopping center or under a cell tower – but it's going to be closer than a regional data center." describes Lori Macvittie, Principal Technical Evangelist at F5 Networks.

With the potential to be located seemingly everywhere, the edge is now increasingly pushing out to where the users of applications would be.

THE EVOLUTION OF EDGE

Edge computing first came in the form of a Content Distribution Network, or CDN. F5 considers this as version 1.0 of edge computing. It’s focus was on "distributing the relatively static web content or web applications to get it closer to users to address the need for speed and redundancy".

"It evolved out of a need to deliver content. That’s why it's called a Content Distribution Network back when applications were a lot of JPEGs and some text. And that started to evolve around 10 or so years ago, as people realized there was both the capability and the need for certain types of application services to spread more out across the internet." she shares in an interview on the Coding Over Cocktails podcast.

But today, as we move towards the adoption of edge computing, we’re moving to concepts like application and data distribution, which MacVittie admits, requires a different model.

"[Edge] includes endpoints like devices and things that have never been included in the solution before. So, it's really changing how we deliver applications and content and data."

The change we’re seeing right now can be attributed to modern, container-based distributed applications. Application logic, which is found inside containers, can move to any appropriate compute location in order to optimize the user experience. Thus, applications in the edge paradigm are no longer seen as this "passive entity", but instead, play a more proactive role within the systems they operate.

The users of said applications have changed as well. Today, these users can be machines, automated services, or scripts which act on behalf of humans. Said users have evolved with more intelligent endpoints, being able to participate in the overall data analytic and application logic process to deliver better experiences to customers.

MacVittie adds how there are very distinct edge application patterns already emerging around the devices that we use, and that "almost all of them take advantage of the cloud."

"Somehow, whether it's just to manage configuration or it's actually controlling my device, I have a variety of devices that each interact with the cloud and themselves in different ways. So, I think there's a very specific set of patterns that we'll be able to apply that will depend on what kind of connectivity you expect to have, what kind of data you need and what kind of responsiveness you need with respect to that data." she explains, illustrating the edge application patterns that one may need to apply for their application’s use case.

WHY USE THE EDGE?

As more and more organizations in all types of industries embrace the edge, MacVittie says how there can be more use-cases for edge in the future, expanding its reach far and wide across multiple industries.

"I attended an oil and gas automation conference. AI, ML, data, and the edge were all a significant part of all of these sessions, because if you have someplace remote that you can't get to, of course there's automation. But you also need to have more data and you also need to have something that's more responsive like, can it reboot things remotely and actually take action?" she shares.

Edge has allowed for these kinds of applications to get pushed closer to devices and equipment that need the data and information to be acted upon.

"These could be in the middle of the ocean – it takes you a few days to get there from right here. So, sending a person out, being on call for that is probably not your ideal job. Nobody told you that would be necessary. So, those kinds of applications are already in use at the edge." she describes.

MacVittie also mentions edge computing’s role in home automation.

"A Phillips Hue light bulb can be connected to my app, right? I can pick up my phone and I can control that light bulb. Now you have the bridges that can actually connect more multiple lights and multiple rooms and start controlling them that way. And it can actually talk to the Phillips Cloud and be able to bring down special kinds of lighting configurations for holidays. So, I don't have to do it."

Because of this, MacVittie believes that the edge has spurred on more and more businesses to capitalize on the advantages it brings, and that, in the future, we would be able to run more applications where they are needed. She adds how the capability to do it at the edge will drive development for new use-cases and industries, because users can trust how it can be fast enough to handle good connectivity locally.

"Why does the retail store need to have constant connectivity with corporate headquarters, wherever that is? And why is it when that connection is lost, I can't get my groceries? I don't like this situation. Why don't you have a more local version of whatever application you need? And it can synchronize with corporate at different times, but make sure that everyone local can actually buy their groceries." MacVittie describes.

IF THINGS ARE ON THE EDGE, CAN THEY BE SECURE?

In the same State of the Application Strategy report, it is said that the rise of the edge "enables new services and better performance by placing applications as close as possible to the sources and users of data". It goes on further to say that it can "improve security by reducing use of vulnerable web interfaces".

MacVittie then stresses how security is as only as good as the practices you apply.

"If your security practices are good now, then as you go to the edge, they're going to be good. If they're not so good, well, you can see they're not going to be so good no matter where you are. So, a big chunk of this depends on security practices and no matter how good the solution is, you can't force someone to adopt those security practices." she says.

She adds that, after seeing so many cloud misconfigurations of S3 buckets causing so many breaches, we can easily surmise that the problem doesn’t necessarily lie on cloud or cloud security – it could be more of a "people, process, and practices" problem.

"So, could [edge] add improved security? Yes. We'll have to wait and see. We also don't know yet necessarily what new challenges edge will bring. There's a lot of chatter about being able to do more P2P. So, more peer-to-peer applications and uses on the edge, if we're all on the edge and we can all run apps, we can all be peer-to-peer or sharing." MacVittie explains.

You can catch more of this conversation by listening to the Coding Over Cocktails podcast featuring Lori MacVittie on major podcast platforms or by visiting torocloud.com/podcast.

This podcast series tackles issues faced by enterprises as they manage the process of digital transformation, application integration, low-code application development, data management, and business process automation. It’s available for streaming in most major podcast platforms, including Spotify, Apple, Google Podcasts, SoundCloud, and Stitcher.

What is GEEK

Buddha Community

We explored the 'edge' of the internet – here’s what we found
Mike  Kozey

Mike Kozey

1656151740

Test_cov_console: Flutter Console Coverage Test

Flutter Console Coverage Test

This small dart tools is used to generate Flutter Coverage Test report to console

How to install

Add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get):

dev_dependencies:
  test_cov_console: ^0.2.2

How to run

run the following command to make sure all flutter library is up-to-date

flutter pub get
Running "flutter pub get" in coverage...                            0.5s

run the following command to generate lcov.info on coverage directory

flutter test --coverage
00:02 +1: All tests passed!

run the tool to generate report from lcov.info

flutter pub run test_cov_console
---------------------------------------------|---------|---------|---------|-------------------|
File                                         |% Branch | % Funcs | % Lines | Uncovered Line #s |
---------------------------------------------|---------|---------|---------|-------------------|
lib/src/                                     |         |         |         |                   |
 print_cov.dart                              |  100.00 |  100.00 |   88.37 |...,149,205,206,207|
 print_cov_constants.dart                    |    0.00 |    0.00 |    0.00 |    no unit testing|
lib/                                         |         |         |         |                   |
 test_cov_console.dart                       |    0.00 |    0.00 |    0.00 |    no unit testing|
---------------------------------------------|---------|---------|---------|-------------------|
 All files with unit testing                 |  100.00 |  100.00 |   88.37 |                   |
---------------------------------------------|---------|---------|---------|-------------------|

Optional parameter

If not given a FILE, "coverage/lcov.info" will be used.
-f, --file=<FILE>                      The target lcov.info file to be reported
-e, --exclude=<STRING1,STRING2,...>    A list of contains string for files without unit testing
                                       to be excluded from report
-l, --line                             It will print Lines & Uncovered Lines only
                                       Branch & Functions coverage percentage will not be printed
-i, --ignore                           It will not print any file without unit testing
-m, --multi                            Report from multiple lcov.info files
-c, --csv                              Output to CSV file
-o, --output=<CSV-FILE>                Full path of output CSV file
                                       If not given, "coverage/test_cov_console.csv" will be used
-t, --total                            Print only the total coverage
                                       Note: it will ignore all other option (if any), except -m
-p, --pass=<MINIMUM>                   Print only the whether total coverage is passed MINIMUM value or not
                                       If the value >= MINIMUM, it will print PASSED, otherwise FAILED
                                       Note: it will ignore all other option (if any), except -m
-h, --help                             Show this help

example run the tool with parameters

flutter pub run test_cov_console --file=coverage/lcov.info --exclude=_constants,_mock
---------------------------------------------|---------|---------|---------|-------------------|
File                                         |% Branch | % Funcs | % Lines | Uncovered Line #s |
---------------------------------------------|---------|---------|---------|-------------------|
lib/src/                                     |         |         |         |                   |
 print_cov.dart                              |  100.00 |  100.00 |   88.37 |...,149,205,206,207|
lib/                                         |         |         |         |                   |
 test_cov_console.dart                       |    0.00 |    0.00 |    0.00 |    no unit testing|
---------------------------------------------|---------|---------|---------|-------------------|
 All files with unit testing                 |  100.00 |  100.00 |   88.37 |                   |
---------------------------------------------|---------|---------|---------|-------------------|

report for multiple lcov.info files (-m, --multi)

It support to run for multiple lcov.info files with the followings directory structures:
1. No root module
<root>/<module_a>
<root>/<module_a>/coverage/lcov.info
<root>/<module_a>/lib/src
<root>/<module_b>
<root>/<module_b>/coverage/lcov.info
<root>/<module_b>/lib/src
...
2. With root module
<root>/coverage/lcov.info
<root>/lib/src
<root>/<module_a>
<root>/<module_a>/coverage/lcov.info
<root>/<module_a>/lib/src
<root>/<module_b>
<root>/<module_b>/coverage/lcov.info
<root>/<module_b>/lib/src
...
You must run test_cov_console on <root> dir, and the report would be grouped by module, here is
the sample output for directory structure 'with root module':
flutter pub run test_cov_console --file=coverage/lcov.info --exclude=_constants,_mock --multi
---------------------------------------------|---------|---------|---------|-------------------|
File                                         |% Branch | % Funcs | % Lines | Uncovered Line #s |
---------------------------------------------|---------|---------|---------|-------------------|
lib/src/                                     |         |         |         |                   |
 print_cov.dart                              |  100.00 |  100.00 |   88.37 |...,149,205,206,207|
lib/                                         |         |         |         |                   |
 test_cov_console.dart                       |    0.00 |    0.00 |    0.00 |    no unit testing|
---------------------------------------------|---------|---------|---------|-------------------|
 All files with unit testing                 |  100.00 |  100.00 |   88.37 |                   |
---------------------------------------------|---------|---------|---------|-------------------|
---------------------------------------------|---------|---------|---------|-------------------|
File - module_a -                            |% Branch | % Funcs | % Lines | Uncovered Line #s |
---------------------------------------------|---------|---------|---------|-------------------|
lib/src/                                     |         |         |         |                   |
 print_cov.dart                              |  100.00 |  100.00 |   88.37 |...,149,205,206,207|
lib/                                         |         |         |         |                   |
 test_cov_console.dart                       |    0.00 |    0.00 |    0.00 |    no unit testing|
---------------------------------------------|---------|---------|---------|-------------------|
 All files with unit testing                 |  100.00 |  100.00 |   88.37 |                   |
---------------------------------------------|---------|---------|---------|-------------------|
---------------------------------------------|---------|---------|---------|-------------------|
File - module_b -                            |% Branch | % Funcs | % Lines | Uncovered Line #s |
---------------------------------------------|---------|---------|---------|-------------------|
lib/src/                                     |         |         |         |                   |
 print_cov.dart                              |  100.00 |  100.00 |   88.37 |...,149,205,206,207|
lib/                                         |         |         |         |                   |
 test_cov_console.dart                       |    0.00 |    0.00 |    0.00 |    no unit testing|
---------------------------------------------|---------|---------|---------|-------------------|
 All files with unit testing                 |  100.00 |  100.00 |   88.37 |                   |
---------------------------------------------|---------|---------|---------|-------------------|

Output to CSV file (-c, --csv, -o, --output)

flutter pub run test_cov_console -c --output=coverage/test_coverage.csv

#### sample CSV output file:
File,% Branch,% Funcs,% Lines,Uncovered Line #s
lib/,,,,
test_cov_console.dart,0.00,0.00,0.00,no unit testing
lib/src/,,,,
parser.dart,100.00,100.00,97.22,"97"
parser_constants.dart,100.00,100.00,100.00,""
print_cov.dart,100.00,100.00,82.91,"29,49,51,52,171,174,177,180,183,184,185,186,187,188,279,324,325,387,388,389,390,391,392,393,394,395,398"
print_cov_constants.dart,0.00,0.00,0.00,no unit testing
All files with unit testing,100.00,100.00,86.07,""

Installing

Use this package as an executable

Install it

You can install the package from the command line:

dart pub global activate test_cov_console

Use it

The package has the following executables:

$ test_cov_console

Use this package as a library

Depend on it

Run this command:

With Dart:

 $ dart pub add test_cov_console

With Flutter:

 $ flutter pub add test_cov_console

This will add a line like this to your package's pubspec.yaml (and run an implicit dart pub get):

dependencies:
  test_cov_console: ^0.2.2

Alternatively, your editor might support dart pub get or flutter pub get. Check the docs for your editor to learn more.

Import it

Now in your Dart code, you can use:

import 'package:test_cov_console/test_cov_console.dart';

example/lib/main.dart

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        // This is the theme of your application.
        //
        // Try running your application with "flutter run". You'll see the
        // application has a blue toolbar. Then, without quitting the app, try
        // changing the primarySwatch below to Colors.green and then invoke
        // "hot reload" (press "r" in the console where you ran "flutter run",
        // or simply save your changes to "hot reload" in a Flutter IDE).
        // Notice that the counter didn't reset back to zero; the application
        // is not restarted.
        primarySwatch: Colors.blue,
        // This makes the visual density adapt to the platform that you run
        // the app on. For desktop platforms, the controls will be smaller and
        // closer together (more dense) than on mobile platforms.
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key? key, required this.title}) : super(key: key);

  // This widget is the home page of your application. It is stateful, meaning
  // that it has a State object (defined below) that contains fields that affect
  // how it looks.

  // This class is the configuration for the state. It holds the values (in this
  // case the title) provided by the parent (in this case the App widget) and
  // used by the build method of the State. Fields in a Widget subclass are
  // always marked "final".

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      // This call to setState tells the Flutter framework that something has
      // changed in this State, which causes it to rerun the build method below
      // so that the display can reflect the updated values. If we changed
      // _counter without calling setState(), then the build method would not be
      // called again, and so nothing would appear to happen.
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    // This method is rerun every time setState is called, for instance as done
    // by the _incrementCounter method above.
    //
    // The Flutter framework has been optimized to make rerunning build methods
    // fast, so that you can just rebuild anything that needs updating rather
    // than having to individually change instances of widgets.
    return Scaffold(
      appBar: AppBar(
        // Here we take the value from the MyHomePage object that was created by
        // the App.build method, and use it to set our appbar title.
        title: Text(widget.title),
      ),
      body: Center(
        // Center is a layout widget. It takes a single child and positions it
        // in the middle of the parent.
        child: Column(
          // Column is also a layout widget. It takes a list of children and
          // arranges them vertically. By default, it sizes itself to fit its
          // children horizontally, and tries to be as tall as its parent.
          //
          // Invoke "debug painting" (press "p" in the console, choose the
          // "Toggle Debug Paint" action from the Flutter Inspector in Android
          // Studio, or the "Toggle Debug Paint" command in Visual Studio Code)
          // to see the wireframe for each widget.
          //
          // Column has various properties to control how it sizes itself and
          // how it positions its children. Here we use mainAxisAlignment to
          // center the children vertically; the main axis here is the vertical
          // axis because Columns are vertical (the cross axis would be
          // horizontal).
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'You have pushed the button this many times:',
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headline4,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}

Author: DigitalKatalis
Source Code: https://github.com/DigitalKatalis/test_cov_console 
License: BSD-3-Clause license

#flutter #dart #test 

Shawn  Durgan

Shawn Durgan

1604050560

Are the days of Internet Freedom Numbered?

In an ideal digital world, everyone has open access to the Internet.

In that world, all traffic is treated equally without any blocking, prioritization, or discrimination.

That ideal world is one where there is widespread support for an open Internet that ensures that publicly available information is equally transmittable from - and accessible to - all people and businesses.

An open network ensures equal accessibility. Network (net) neutrality is a principle based on the idea that all communications on the Internet should be treated equally. It opposes any potential power that some organizations may have to implement different charges or vary service quality. Such actions can be based on a set of factors that include content, platform, application type, source address, destination address or communication method.

In essence, net neutrality demands that all data on the Internet travels over networks in a fair way that ensures that no specific sites, services or applications get favourable service in terms of speed or bandwidth. It also ensures that all traffic - no matter where it’s from - gets the same service.

Is the Internet fair?

The Internet is simply a network of computers sharing information.

A better question to ask would be if ISPs are acting in a fair way.

As the intermediaries between users and the sources of information on the Internet, some large-scale ISPs wield a great deal of power.

Some have been known to tamper with traffic using “middleware” that affects the flow of information. Others act as private gatekeepers that subject content to additional controls throughout the network by giving optimal bandwidth to certain sites, apps and services while slowing down or completely blocking specific protocols or applications.

#internet-day #net-neutrality #open-internet #internet #fix-the-internet #history-of-the-internet #internet-censorship

The Future of the Internet - What are Gs and How Long will They Count? - TopDevelopers.co

A peek into the History and Future of the internet with brief insights on how the changing technologies have paved the path and changed the lives of humankind.

#generations of the internet #communication technologies #internet as a technology #history of the internet #future of the internet #internet

Zelma  Gerlach

Zelma Gerlach

1621616520

Edge Computing: Device Edge vs. Cloud Edge

It sometimes makes sense to treat edge computing not as a generic category but as two distinct types of architectures: cloud edge and device edge.

Most people talk about edge computing as a singular type of architecture. But in some respects, it makes sense to think of edge computing as two fundamentally distinct types of architectures: Device edge and cloud edge.

Although a device edge and a cloud edge operate in similar ways from an architectural perspective, they cater to different types of use cases, and they pose different challenges.

Here’s a breakdown of how device edge and cloud edge compare.

Edge computing, defined

First, let’s briefly define edge computing itself.

Edge computing is any type of architecture in which workloads are hosted closer to the “edge” of the network — which typically means closer to end-users — than they would be in conventional architectures that centralize processing and data storage inside large data centers.

#cloud #edge computing #cloud computing #device edge #cloud edge

Hollie  Ratke

Hollie Ratke

1604235600

Microsoft IE Browser Death March Hastens

As the death of the once dominant Internet Explorer (IE) draws closer, Microsoft is quickly pounding more nails into the browser’s coffin.

On Monday, Microsoft hastened its IE-to-Edge browser-transition strategy and announced new controls for users and IT staff when it comes to how the lame-duck browser will handle a growing list of websites incompatible with IE. Those include YouTube, Twitter, Yahoo Mail and 1,153 other leading internet destinations.

Microsoft also announced that in two short weeks, its own services would no longer be supported by 25-year-old browser that once crushed Netscape and other competitors. In 2004 IE enjoyed 95 percent market share. Today, an estimated 5 percent of users rely on it.

As a point of reference, the Microsoft Edge web browser comes built into Windows 10. In 2015 Microsoft said it would replace IE with Edge in an effort to support modern browser functions, such as extensions. In 2018, it announced further efforts to streamline its development — Edge be rebuilt on the Chromium rendering engine, which is the same code that Google’s Chrome browser uses.

Part of IE’s shuttering entails redirecting users to the Microsoft Edge 87, to be released November 17. However, BleepingComputer reported that the redirects have already begun.

Last Monday, Microsoft explained that users of IE who visited an incompatible website would be presented with an interstitial webpage alerting them they were being redirected to Microsoft Edge. An opt-in prompt asks consent to copy a user’s browsing data and preferences from Internet Explorer to Microsoft Edge. In addition to that, a website incompatibility banner will appear below the address bar for every redirection, Microsoft said.

On Monday, Microsoft released instructions on how IT staff can change the behavior of Internet Explorer when it lands on an incompatible site.

  • One option is configuring IE to not redirect to Edge “RedirectSitesFromInternetExplorerPreventBHOInstall”.
  • A second option “RedirectSitesFromInternetExplorerRedirectMode” allows IE to open sites in Edge – and browser data and user preferences are automatically imported.
  • The third option doesn’t import browser data and user preferences, but hides any incompatibility warning message and redirects IE to Edge.

“Redirection from Internet Explorer to Microsoft Edge requires an Internet Explorer Browser Helper Object (BHO) named ‘IEtoEdge BHO,'” Microsoft explained.

“These policies will be available as ADMX file updates by October 26, 2020 and will be available in Intune by November 9, 2020,” wrote Microsoft. ADMX files are Windows registry-based policy settings that are XML-based and define policy settings and browser behaviors.

#web security #browser support #chromium #end of support #end-of-life #ie #ie-to-edge #internet explorer 11 #microsoft edge #microsoft edge 87 #security bugs #security issues #transition #vulnerabilities #windows xp