The future of programming languages: What to expect in this new Infrastructure as Code world – TechRepublic

Commentary: New declarative programming languages like HCL and Polar might just be the perfect way to boost productivity with IaC.

Image: DragonImages, Getty Images/iStockphoto

There are a lot of programming languages--over 700, as Wikipedia lists them. And yet, we arguably don't have nearly enough programming languages. Not since cloud upended the way applications get built.

Developers are moving away from managing physical servers to calling APIs that touch storage, compute, and networking resources. In turn, developers are trying to automate everything as code through static configurations, scripts, and files. Such automation would be easier if developers had programming languages that matched the task at hand, but they don't. So, using a general purpose language like Java, a developer might invest thousands of lines of code to try to express business logic...and mostly fail.

To solve for this, we're seeing companies like HashiCorp (HCL) and oso (Polar) release special-purpose declarative languages. Even at the risk of programming language proliferation, this feels like the right way forward: Purpose-built instead of general-purpose languages. However, we're likely to see many of these programming languages rise and fall before we settle into a useful set of standard declarative languages.

SEE:Top 5 programming languages for systems admins to learn (free PDF)(TechRepublic)

The irony is that the "novel" approach taken by special-purpose declarative languages really isn't very novel. Years ago, programming languages split between functional (declarative) programming languages like Lisp and imperative programming languages like C. While the latter dominated for decades, functional declarative languages are making a comeback, said Jared Rosoff in an interview, a software executive who has built product at VMware, MongoDB, and more.

"Imperative languages were better suited to encoding business logic for apps," Rosoff noted. "But in Infrastructure as Code [IoC], the world isn't imperative. It's rule-driven. And this world gets much easier when we change out the languages we use to program it."

Even Polar, a declarative logic programming language specialized for making authorization decisions and tightly integrating with an application's native language, really isn't new. As Sam Scott, cofounder and CTO of oso, suggested in an interview, Polar has its roots in Prolog, which was developed way back in 1972, yet has the feel of imperative languages like Python. (Here's an example of what Polar looks like.) This is important because it's difficult to encode authorization logic in traditional, general-purpose programming languages. Doing so in a declarative language like Polar is more expressive and concise--think "tens of lines of code" instead of "thousands of lines of code."

And yet, many will question whether creating new programming languages is the right approach. How many do we really need? The short answer is "more." Here's the longer answer.

While we still use COBOL and other older programming languages, we also keep inventing new languages, each with its own advantages and disadvantages. For example, we have Rust and C++ for low-level, performance-sensitive systems programming (with Rust adding the benefit of safety); Python and R for machine learning, data manipulation, and more; and so on. Different tools for different needs.

But as we move into this Everything-as-Code world, why can't we just keep using the same programming languages? After all, wouldn't it be better to use the Ruby you know (with all its built-in tooling) rather than starting from scratch?

The answer is "no," as Graham Neray, cofounder and CEO of oso, told me. Why? Because there is often a "mismatch between the language and the purpose." These general-purpose, imperative languages "were designed for people to build apps and scripts from the ground up, as opposed to defining configurations, policies, etc."

Further, mixing declarative tools with an imperative language doesn't make things any easier to debug. Consider Pulumi, which bills itself as an "open source infrastructure-as-code SDK [that] enables you to create, deploy, and manage infrastructure on any cloud, using your favorite languages." Sounds awesome, right?

Unfortunately, while the program may be executed, this is simply used to build a data structure for Pulumi to feed into its engine, which operates in a more declarative way (i.e., take the data structure, diff it with the current infrastructure state, and apply changes). Although existing language tools exist (e.g., JavaScript debuggers), they aren't very useful because debugging Pulumi would require an intimate knowledge of that codebase. The Pulumi engine is still very opaque and tough to debug. This isn't a critique of Pulumi--it's just indicative of the problems inherent in trying to apply existing, imperative languages to Everything-as-Code.

SEE:Python is eating the world: How one developer's side project became the hottest programming language on the planet (cover story PDF) (TechRepublic)

The same problem crops up when trying to skirt the issue with data as config. This is a bit like using an existing language (Hey! I already know JSON). As Scott explained, to make this approach work, a vendor typically needs to dress up the data format with conditions or custom rules (e.g., GitHub Actions) to make it work for the use case. Or maybe they use templating (e.g., Helm or how Ansible uses Jinja2). Plus, while the appeal often starts with the data format being human readable, the "files have a nasty habit of getting long and unwieldy," he said, leading to posts like this and this and this and this.

This brings us back to declarative programming languages.

Declarative languages like Polar and HCL are great for use cases like configuration because they allow you to just declare what you want the world to look like and not have to worry about what you need to do to make that happen. The downside is that it's new: New learning curve, new need to build out an ecosystem of tools around it, etc. It's still early for declarative programming languages, but that's ok--it's also still early for our Everything-as-Code world.

And while declarative programming languages aren't perfect, they offer significant benefits over imperative programming languages, as iRobot's Ben Kehoe called out. Over the next few years, I suspect we'll see declarative programming languages proliferate, with the industry standardizing around those that do best at making themselves accessible to newbies through tooling and approachability (e.g., embracing a familiar syntax). If "developers are the new kingmakers," it's time for the declarative programming language designers to start crowning some new kings.

Disclosure: I work for AWS, but the views expressed herein are mine.

From the hottest programming languages to the jobs with the highest salaries, get the developer news and tips you need to know. Weekly

See more here:

The future of programming languages: What to expect in this new Infrastructure as Code world - TechRepublic

Open Source: The IIoT Security You’re Looking For? | RFID JOURNAL – RFID Journal

Nov 08, 2020As the Industrial Internet of Things (IioT) market continues to mature, new devices flood onto networks that also contain a host of legacy and early-generation devices. This combination is increasing the complexity of network traffic, as well as raising integration questions, forcing enterprises across the spectrum to reappraise the best security approaches, with open-source solutions increasingly coming to the fore.

IoT security has become one of the hot topics of today, with a Gartner report predicting a total market value of $3.1 billion by 2021. While there is an element of fear, uncertainty and doubt to some of the more doom-laden predictions, the fact is that IIoT security presents some significant challenges.

OT Plus IT: A Heady MixIn just one example, a study from Trend Micro, in association with Politecnico di Milano, conducted in its Industry 4.0 lab, has identified a variety of methods by which attackers are able to leverage unconventional new attack vectors to sabotage smart manufacturing environments. The security firm highlights two key problems. Firstly, IIoT systems were originally designed to be isolated from traditional IT infrastructure, so network trust is high and there are few integrity checks. Secondly, many IIoT platforms utilize proprietary languages that, while more niche than widespread languages, can still be effectively exploited to input malicious code, traverse through the network or steal confidential information.

That increasing erosion of IIoT isolation is, indeed, at the heart of the next wave of IIoT security concerns. As OT and IT systems are integrated more widely, those underlying security issues will be enhanced. There is also a significant issue with regard to legacy systemsthe simple fact is that many pilot projects and early-adopter enterprises did not have security at the forefront of their thinking.

LoRaWan: Pros and ConsThe LoRaWan protocol has been widely deployed across the globe in applications ranging from IIoT climate-control systems to smart meters and asset tracking. As a non-cellular protocol, it has been popular; there are approximately 142 countries with LoRaWAN deployments and 121 network operators in 58 countries, with around 100 million LoRaWAN-connected devices online, a figure projected to hit 730 million or more by 2023.

However, a recent study released by IOActive found that the root keys used for encrypting communications between LoRaWAN smart devices, gateways and network servers are often poorly protected and easily obtainable through several common hacking methods. The researchers found that many deployments simply used default keys in their enthusiasm to test out the technology, leaving the door open.

Moreover, another core issue with LoRaWAN is managing security revisionsa particularly problematic question throughout the IIoT, due to power limitations and access difficulties. In the case of LoRaWAN, 1.0.3 devices can't be updated to version 1.1 due to hardware limitations, locking an entire generation of devices into outdated software. This is something that hackers are more than well aware of how to exploit.

Limitations of the PLCAnother specific battleground is the industrial programmable logic controller (PLC), which has been a core part of industrial automation applications for decades. These were never built with security in mind, creating the difficult scenario of either updating the PLCs, creating open-source gateways to secure them or replacing them with custom IIoT devices.

Either option requires in-house developers or a third-party systems integrator to build something bespokethat "something" being reliant on a wide range of software libraries used to program the devices. The gateway route has been explored by developers using the open-source Apache MyNewt, Apache's first RTOS built for systems too small to run Linux.

Open-Sourced Trust?Of course, open-source technology is not entirely invulnerable to security flaws and vulnerabilities, as demonstrated by the recent Heartbleed security bug affecting OpenSSL. However, the open-source community is taking the initiative in many ways, perhaps most visibly in the shape of Project Alvarium. Set up by the Linux Foundation in October 2019, Alvarium is dedicated to building a data confidence fabric (DCF) to facilitate trust and confidence in data and applications spanning IIoT/IoT and traditional IT systems. The game plan is to collaborate on the baseline open-source framework and related APIs that bind together the various ingredients that constitute trust fabrics, as well as to define the algorithms that drive confidence scores.

The idea of introducing and quantifying trust in IIoT networks is not entirely new, but it does potentially offer a more scalable and robust solution than traditional IT approaches. Another leading light in developing IIoT trust frameworks is, of course, blockchain stalwart IOTA, which has been pushing the adoption of its distributed ledger technology (DLT) for some years. Recent announcements include collaborating on the E.U.-funded Dig_IT project to use DLT for increasing sustainability (via the IIoT) in the mining industry, as well as joining the Eclipse Open-Source Foundation.

Future ValuesOf course, the road of open source is littered with failures, as well as notable successes, and whether Project Alvarium and IOTA will thrive and prosper remains to be seen. However, it's increasingly clear that traditional IT-style approaches to IIoT security are not able to scale cost-effectively, and new approaches will be required as the sheer volume of devices and applications continues to increase exponentially. Open source also has the major inbuilt requirement of good collaboration between enterprises, a critical element in cementing the future of the IIoT.

Martin Keenan is the technical director at Avnet Abacus, which assists and informs design engineers in the latest technological challenges, including designing for Industry 4.0 and Industrial IoT manufacturing.

See original here:

Open Source: The IIoT Security You're Looking For? | RFID JOURNAL - RFID Journal

New Connected Home Services Brought Closer to Reality by New Open Broadband USP Agent Release – Business Wire

FREMONT, Calif.--(BUSINESS WIRE)--The exciting potential of the Connected Home has been brought a step closer following the latest update from Broadband Forums Open Broadband USP Agent (OB-USP-Agent) project, which has been released today.

By adding support for the widely-used Message Queuing Telemetry Transport (MQTT) protocol as a USP message transfer protocol, the Canary Release from Broadband Forums open source project helps service providers develop value-added services and provides increased levels of security for remote connected device management for operators. End-users will also benefit from operators now being able to integrate third-party software and services into existing gateway platforms.

In addition to significantly helping providers manage their applications more effectively, the latest release from the OB-USP-Agent project team will also allow operators to leverage the USP ecosystem to unlock the potential of the Connected Home and capitalize on the ever-growing Internet of Things (IoT) market.

The Canary Release of the open source project will enhance the role USP plays in the IoT market place and combines the best of both open source and open standards to realize the full promise of broadband, said John Blackford, Broadband Forum Chairman and OB-USP-Agent Project Manager. This will ensure service providers and operators are armed with the tools they need to securely manage connected devices, build real value-added services, and prosper in the Connected Home era.

MQTT is primarily used for Machine-to-Machine applications and IoT Devices and facilitates communication between Customer Premises Equipment (CPE) and cloud controllers or local LAN based controls. The implementation of MQTT within OB-USP-Agent allows operators to re-use existing infrastructure to meet their management needs. With the ability to overcome bandwidth constraints, MQTT enables fast message delivery and uses minimal amounts of power.

The Canary Release adds support for the MQTT Message Transfer Protocol, in addition to the already supported Constrained Application Protocol (CoAP), WebSockets, and Simple/Streaming Text Oriented Messaging Protocol (STOMP), and architectural improvements to support open source software-based environments, such as OpenWRT/ prplWRT and RDK-based platforms.

BT recognizes the importance of MQTT as a lightweight Message Transport Protocol for IoT messaging. This is why we were pleased to be able to contribute to the work of the OB-USP-Agent project team on Release 3. This release further enables our adoption of USP across a range of use-cases. With MQTT we can re-use code to support applications interacting with CPE both LAN side and when outside the premises via a cloud broker, said Ivan Barr, Principal Software Engineer at BT.

The OB-USP-Agent project not only accelerates the adoption rate of USP but provides an open market without vendor lock-in to less flexible or agile propriety management solutions. The project team ensures the service providers and open source community that they are continuing their mission to make the open source project a complete reference implementation of the USP specification, and the next step in that journey is the planning of the soon to be named Release 4.

To learn more about Broadband Forum and its work on Open Broadband, visit: https://www.broadband-forum.org/open-broadband/open-broadband-software.

About the Broadband Forum

Broadband Forum is the communications industrys leading open standards development organization focused on accelerating broadband innovation, standards, and ecosystem development. Our members passion delivering on the promise of broadband by enabling smarter and faster broadband networks and a thriving broadband ecosystem.

Broadband Forum is an open, non-profit industry organization composed of the industrys leading broadband operators, vendors, thought leaders who are shaping the future of broadband, and observers who closely track our progress. Its work to date has been the foundation for broadbands global proliferation and innovation. For example, the Forums flagship TR-069 CPE WAN Management Protocol has nearly 1 billion installations worldwide.

Broadband Forums projects span across 5G, Connected Home, Cloud, and Access. Its working groups collaborate to define best practices for global networks, enable new revenue-generating service and content delivery, establish technology migration strategies, and engineer critical device, service & development management tools in the home and business IP networking infrastructure. We develop multi-service broadband packet networking specifications addressing architecture, device and service management, software data models, interoperability and certification in the broadband market.

Our free technical reports and white papers can be found at https://www.broadband-forum.org/.

Follow us on Twitter @Broadband_Forum and LinkedIn.

For more information about the Broadband Forum, please go to https://www.broadband-forum.org or follow @Broadband_Forum on Twitter. For further information please contact Brian Dolby on +44 (0) 7899 914168 or brian.dolby@proactive-pr.com or Jayne Brooks on +44 (0) 1636 704 888 or jayne.brooks@proactive-pr.com.

More here:

New Connected Home Services Brought Closer to Reality by New Open Broadband USP Agent Release - Business Wire

The Resurgence of Functional Programming – Highlights From QCon Plus – InfoQ.com

Immutability, a lack of side effects, and composability are some of the features that have recently increased the popularity of functional programming languages, especially in the era of microservices and cloud-native systems. Those core features also make it easier for developers to understand codeby being able to reliably predict what a function will do. Testing small piecesthat can then safely be composed together to create more complex behaviorresults in greater confidence in the code and improved reliability of the overall system.

The Resurgence of Functional Programming track at QCon Plus 2020 featured several experts describing how functional programming makes developing software a joyful experience. They also told why and how object-oriented languages such as C# and Java are evolving by becoming more functional.

The lead designer of the C# programming language, Mads Torgersen, described C#'s functional journey over nearly two decades. C# has always had functional capabilities, beginning with small ways to enhance object-oriented (OO) programming. Moving to the cloud and microservices necessitated functional additions to C#. Because data is often shared concurrently between many different applications, immutability becomes very important. Also, distributed systems need to separate state from functionality, but object-orientation combines state with behavior. Because of this, C# has evolved to make the functional paradigm easier. Torgersen said "we've tried to get rid of the tax on OO languages."

Because adding features to a widely-used, general purpose language comes with a cost, programmers can expect to see some functional concepts slowly added to OO languages (C#, Java, etc.), but they are never going to replace pure functiona or functional-first languages (Haskell, F#, etc.). Rather than waiting for functional features to appear in the JDK, many developers are switching to more functional-friendly JVM languages, such as Scala, Kotlin, and Clojure.

James Ward and Josh Suereth, both from Google, showed code examples in Java, followed by samples in Kotlin and Scala, to highlight how functional programming makes code easier to understand and maintain. They suggested, "the hardest problem in OO programming is 'how to construct an object,' which you think would be easy." If an object has many parameters, some of which are optional, you can end up with several constructors, a lot of code to maintain, and confusion about which constructor to call. One way to make this easier is the Builder Pattern, where another object is responsible for handling which constructor to call. While this makes one aspect of development easier, it effectively doubles the amount of code to maintain. Ward said, "With the functional evolution of OO, we're seeing new ways of constructing objects," then showed how case classesare used in Scala, allowing default parameters and named parameters. Similarly, Kotlin has data classes, and JDK 14 introduces record types.

By showing C# 1.0 code, then rewriting it using C# 2.0, 3.0, up to 7.0, Torgersen showed how each layer of new functionality was built upon the foundation of previous generations. In C# 1.0 syntax (see figure 1), he created a Filter function that took a predicate to define the filtering rules for an array of integers. Introducing generics and the yield statement (see figure 2) reduced the amount of code needed to produce the same result. Using LINQ's Where statement (see figure 3) meant the custom Filter function was no longer necessary. He also added a Select statement to show the ease of mapping the result to a new, anonymous type and the ability to chain functions together.

Figure 1: C# 1.0 code

Figure 2: C# 3.0 code

Figure 3: C# 3.0 code, using LINQ's Where and Select statements

A reduced amount of code and increased readabilitywere among the benefits Gene Kim spoke about while describing his love for Clojure. The author of The Phoenix Project, The DevOps Handbook, and, most recently, The Unicorn Project, praised Clojure as "good to think with," a phrase coined by Claude Lvi-Strauss. For Kim, functional programming allows you to "solve problems, not solve puzzles," and that can lead to increased focus, flow, and joy.

"The invisible structures of functional programming lead to focus, flow, and joy." Gene Kim

Kim referenced an app he helped write as an example of how functional languages can significantly reduce the amount of code. In 2011, TweetScriber started as 3000 lines of Objective C, but a rewrite in 2017 needed only 500 lines of ClojureScript and Re-frame. He also pointed out that Clojure is supported by a vast open source ecosystem, and being able to run on the JVM, or transpile to JavaScript, allows it to run on most platforms.

Figure 4: Lines of code comparison by Gene Kim

Pattern matching is another commonly heralded feature of functional programming. In C#, developers have always been able to use if or switch statements to check an object's type, but then had to do a subsequent cast to work with the typed object. Torgersen showed how C# can easily pass along the typed result of an if statement (see figure 5), or perform pattern matching against a type and its properties (see figure 6).

Figure 5: C# Pattern matching passing along the cast string s

Figure 6: Advanced pattern matching in C#

Ward and Suereth used Kotlin to demonstrate pattern matching (see figure 7). They pointed out that not handling every possible case of a when statement would result in a compiler warning, and recommended turning those into compiler errors. The advocates of functional programming say this is example of being able to catch an entire class of errors at compile time, leading to more predictable, reliable, and stable code.

Figure 7: Pattern matching in Kotlin

If he could wave a magic wand, Kim would want everyone to learn a functional programming language, so they could experience the same joy he has found. He also was pleased that The Unicorn Project, which reached #2 on the Wall Street Journal's best-selling business books, meant that even non-technical business leaders were being exposed to Clojure.

As an online conference, QCon Plus featured speaker presentations, panel discussions, and in a nod to QCon conferences, a virtual hallway track, where attendees and speakers could continue their conversation. After his presentation on C#'s Functional Journey, dozens of attendees joined Mads Torgersen, where he explained how the team considers adding new features to the language. Adding something to C# has to overcome any of the negative aspects of it being there, and new ideas always start by being ranked with a deficit. Asked about his views on other languages, Torgersen said he loves Scala. He "wants to add functional features to C#, rather than creating a new language. C# is not trying to compete with functional-first languages like F#."

Read more from the original source:
The Resurgence of Functional Programming - Highlights From QCon Plus - InfoQ.com

Software Security Report Found That Over Three-Quarters of Applications Have at Least One Security Flaw – CPO Magazine

Veracode releasedthis yearsState ofSoftware Security (SOSS) Volume11 report, which revealed that most applications have at least one security flaw. The report also found that software teams take about six months to fix half of the security flaws discovered.

SOSS 11 found that software teams have control over some factors, while others were beyond their control. Veracode categorized these factors as nature vs. nurture.

The report analyzed over 130,000 active applications from the companys base of over 2,500 clients.

Over three-quarters (75.8%) of applications have at least one security flaw, while 23.7% havehigh severity flaws.

About 60% of applications tested have at least one vulnerability appearing on the OWASP Top 10 vulnerabilities. Another 59% contain at least one vulnerability, appearing on the SANS 25 list. Overall, OWASP and SANS vulnerabilities were present in 65.8% and 58.8% of tested software, respectively.

Open source libraries were a predisposing factor, according to Veracode. The report noted that 70% of applications transfer at least oneflaw from their opensource libraries.

Similarly,30% of applicationshave more flaws in theiropen source librariesthan in-house code. An example is the Instagram bug (CVE-2020-1895) originating from Mozjpeg open source library used in uploading pictures.

Multiplescan types can improve efficacyof DevSecOps, according to the SOSS 11 report. Software teams combining scan types such as dynamic analysis (DAST), static analysis (SAST), and software composition analysis (SCA) have higher fix rates. For example, teams applying SAST and DASTfix half of flaws 24 days faster.

Employing software security testing automation in the SDLC fixes half of theflaws 17.5 days faster.

Reducing security debt by fixing the backlog of known faults reduces software security risk, the report noted. Older applications with higher security flaws density take longer to fix, with an average of 63 more days required to close half of the flaws.

ChrisEng, Chief Research Officer at Veracode,said that software security aimed tofind and fixthe faults rather than write a perfect application.

Even when faced with the most challenging environments, developers can take specific actions to improve the overall security of the application with the right training and tools, Chris added.

The nature and severity of security flaws are unique to the programming language used in creating the application.

Overall, 59.3% of applications developed using C++ had high severity flaws. Other coding languages plagued with high severity bugs are PHP (52.6%), .NET (25.0%), and Java (23.8%). Python and JavaScript had the lowest high severity security flaws rate at 9.6 and 8.6%, respectively.

The most prevalent software security flaws per programming language were information leakage in .NET applications (62.8%), Cross-Site Scripting (XSS) in PHP (74.6%) and JavaScript (31.5%), CRLF Injection in Java (64.4%), and cryptographic issues in Python (35.0%). Error handling remained the most common security flaw in 66.5% of C++ applications.

The report authors recommended that software developers adopt secure coding practices and understand the most common type of flaws per language to increase software security.

#Security flaws are present in 76% of applications, and teams take over six months to fix half of them. #cybersecurity #respectdataClick to Tweet

While some software security flaws were more severe, for example, buffer overflow, they were rare.

Top security flaws include information leakage (65.9%), CRLF injection (65.4%), cryptographic issues (63.7%), and code quality (60.4%).While credentials management, insufficient input validation, directory transversal, and Cross-Site Scripting (XSS) had a prevalence of around 48%.

Read more:
Software Security Report Found That Over Three-Quarters of Applications Have at Least One Security Flaw - CPO Magazine

Object Oriented Industrial Programming (OOIP) Part 3: Interfaces and Methods – Automation.com

Summary

Your plant or equipment is assembled from objectsyour control should be, too. New tools deliver the productivity of OOP without the complexity.

Interfaces and Methods are two modern programming concepts which provide essential functionality for Object Oriented Industrial Programming (OOIP).Part 1 of this series introduced OOIP and showed how a control design is built by assembling self-contained objects in much the way the actual plant is assembled from self-contained objects as shown in Figure 1.

Figure 1: In OOIP, the Control Design is built from objects which match those in the physical plant or equipment design.

Part 2 of this series explained how OOIP uses new I/O mapping and configuration techniques, and this Part 3 will show how Interfaces and Methods are used to implement those new configuration techniques as well as other centralized services.

In OOIP, objects are distributed throughout a control design just like objects are scattered throughout a plant or piece of equipment.For instance, say a refrigerator manufacturing plant has an assembly line system, which has an insulation injection subsystem, which has a polyurethane processing subsystem, which has an isocyanate material subsystem, which has a tank subsystems.In this plant, there are thousands of sensor objects are distributed from the top-level assembly line all the way down to the tank subsystems and throughout adjoining branches.During the time the task-based programming approach described in Part 2 became popular, there was no practical way to implement central services which could accommodate the distributed nature of an OOIP design.The only solution was to centralize the entire design.Fortunately, newer development environments have implemented features which allow the best of both worlds: distributed control objects (so the control design can mirror the plant design) and centralized services (to manage these distributed objects).In Part 2 we introduced the analogy that the older task-based programming technique was akin to a strong centralized government where each tag had to be registered with the service it required (like the Bureau of Scaling, the Bureau of Alarming, the Burau of Persistence, and such). OOIP is more like self-governing society where citizens largely take care of themselves. But even the most ardent fan of small government agrees that some level of central government is necessary.How are these distributed objects configured?How are their alarms managed (aggregated, acknowledged and shelved)?How are their state values saved and restored in case of a power failure or controller replacement?Interfaces and Methods play a key role in managing these tasks.

A Method can be thought of as a Function which belongs to a Function Block and can be accessed through the instance of that Function Block.Figure 2 shows an example of the AnalogSensor Function Block which has an AcceptConfig Method and how an instance of AnalogSensor named L1 is placed on the isocyanate tank deep in the refrigerator manufacturing plant described earlier.At startup, a central service can read the configuration information from a central database and pass the configuration parameters to that instance by making a call to that instances AcceptConfig method using its full path name Plant.AS1.II1.PP1. Isocyanate.L1.AcceptConfig."

Figure 2: Methods are Functions which belong to a Function Block. An Instance of the AnalogSensor Function Block can be configured by calling the Instances AcceptConfig Method.

Methods also have access to their parent Function Blocks variables and can be overridden by Methods in extended Function Blocks.Methods can also have access control to limit access to the parent only (private), the parent and all extended Function Blocks (protected), or be open to all (public).

Interfaces are a tool for organizing access to a Function Blocks Methods.An Interface is a contract made by a Function Block to support a specific set of Methods and for those Methods to have a specific set of Inputs and Outputs.In addition to making Methods easier to manage, Interfaces allow Function Blocks which agree to that contract to be treated as a homogeneous group.A central service can then manage all the Function Blocks as a single set.For example, say we have a variety of types of Function Blocks which need to know if it is day or night as shown in Figure 3.Each of these Function Blocks agree to the DayOrNightInterface contract by adding the words Implements DayOrNightInterface to their declaration.Then, all instances of Function Blocks which have implemented the DayOrNightInteface (lines 3 and 4) can be assembled into an array of type DayOrNightInterface (lines 6 and 7).This array can then be used to notify the instances as a single group at dawn or dusk (Main implementation line 3).

Figure 3: Instances of Function Blocks which implement an Interface can be grouped in an array of that Interface type and then operated on as a set.

In traditional PLC programming, every function that needed to know if it is day or night would individually poll the light sensor. This is somewhat akin to the family vacation parody where each child in the station wagon repeatedly asks dad are we there yet?Using Methods and Interfaces as in Figure 3, the sensor is instead polled in one place and the functions are then notified when the status has changed.In this modern SUV, all the children quietly pursue their own interests trusting dad to let them know when they arrive.The parents can travel in peace.

The approach above works fine when the objects are all instantiated in the same program (i.e., for an SUV full of children where presumably the dad knows all his children).But further steps are required for Object Oriented Industrial Programing (OOIP) where instances of objects can be instantiated inside other objects and objects become distributed throughout the hierarchy of a plant design (such as in the refrigerator plant example above). In this type of system, additional features are used to allow the distributed objects to register themselves with a central service.This system is analogous to families taking a night Amtrak train on vacation where the dad lets the conductor know their destination and seat numbers.The conductor can then wake up each family when approaching their destination. This self-registration relies on a key feature in CODESYS shown in Figure 4.Every Function Block which needs configuration services implement the ConfigMgrInt Interface and has AcceptConfig and RegisterMyConfig Methods.The first line of the RegisterMyConfig method contains the call_after_global_init_slot attribute which causes that method to be automatically executed when the programs initiates.

Figure 4: Methods annotated with the call_after_global_init_slot Attribute are automatically executed at startup, allowing objects to autonomously register themselves.

The remainder of the registration and configuration process is shown in Figure 5. Each instance of each Function Block which implements ConfigMgrInt uses its RegisterMyConfig method to pass a pointer to itself, its Function Block name, and its Instance name to the RecieveObjectRegistration Method of the Configurator Central Service.The Configurator then places that information into an array of type ConfigMgrInt."The Configurator then obtains the configuration data for the configurable objects (from a CSV file or SQL Database), finds the matching instance name in the array, and uses the pointer that was provided by the object at initiation time to pass this data to each objects AcceptConfig method.The AcceptConfig Method then writes the data to the appropriate configuration inputs.

Figure 5: Methods which register themselves can then receive their configuration from a central source, such as a CSV file or SQL database. Follow the color coding to see the flow of information.

The actual implementation of the Configuration and Alarm central service is shown in Figure 6. Notice the Configuration service also includes ProvideConfigTitles and ProvideConfig methods.These methods allow the system to write a well-formatted configuration parameter file with the configurations grouped by Function Block type prefaced with a parameter name header line as shown in Figure 7. This file serves as an ideal starting point for the controls engineer to begin the configuration specification process.Once the plant or equipment is up and running, these methods can also be used to store the configuration values of specific instances. This is useful for saving tuning parameters or other changes made to specific instances during operation, or archiving snapshots of critical variable values so the state of the system can be restored after a power failure or controller replacement.

Figure 6: The ControlSphere Configuration library includes methods to obtain the configuration variable names and current data which are used to create a well-formatted template file and to save checkpoint/restart data sets.

Figure 7: The ControlSphere Configurator creates a template file grouped by Function Block name and including the variable names and default values for every object in the design. It also creates a file to archive and restore tuning parameters and state variable.

Object Oriented Industrial Programming allows engineers to quickly create highly intuitive control designs by assembling control objects in the same way matching hardware objects are assembled in the plant or equipment.In addition to the concepts of OOIP described in Parts 1 and 2 of this series, Methods and Interfaces are two additional key features of OOIP.These features provide a way for objects which are distributed throughout the plant hierarchy to receive central services such as configuration, alarming, persistence, and checkpoints.Just as the best of other general software advancements have been adopted into the industrial controls world, Object Oriented Industrial Programming is following that same pattern.OOIP is clearly the future of Controls Engineering.

Part 1 of this article can be found here.Part 2 of this article can be found here.A clearinghouse for open-source OOIP Functions Blocks and design examples can be found here.A demo on Configurable I/O mapping can be viewed here.

The CODESYS IDE used for the examples in this article can be downloaded at no charge from this site.The download includes a complete SoftPLC which will run for 2 hours between resets.

For a video demonstration of Object Oriented Industrial Programming, Simulation, and Configuring Objects, see this video.

For more elaborate examples of Discrete, Batch, and Continuous control system designs implemented in OOIP, see this video.

This article is dedicated to the memory of Chuck Piper, K9TRN, of Madison, Wisconsin who tolerated and mentored a pesky 11-year old through building his first novice transmitter, and was key to launching a lifelong passion for electrical engineering.

Gary L. Pratt, P.E. is president of ControlSphere Engineering.Mr. Pratts career began with Chevron Corporate Engineering in 1982 and he recently retired as the president of the CODESYS Corporation of North America.He holds patents in industrial controls and now concentrates on sharing his knowledge and experience with the next generation through IEC61131-3 and CODESYS training and consulting.He can be reached at gary@controlsphere.pro

Check out our free e-newsletters to read more great articles..

The rest is here:
Object Oriented Industrial Programming (OOIP) Part 3: Interfaces and Methods - Automation.com

Get over 35 hours of training on Raspberry Pi, Python, and ROS2 for just $50 – Boing Boing

Not everybody is wired to be a tinkerer. Some of us just want to push the on button, have a machine spring to life, do its job, and be done with it. But if you're someone who looks at that whirring, spinning machine and wonders how that's actually happening, then the Raspberry Pi is practically a gateway drug for you.

The single-board microcomputer has been a focal point in a DIY electronics and programming revolution, a device so low in cost, yet rife with possibility that an entire subculture has become obsessed with how to turn the Pi into practically anythinglike a pill dispenser, a universal translator, or a WiFi extender.

And, yet, that doesn't even scratch the surface of how many advanced automation and robotics options are possible. For anyone who's ever wanted to really dig deep into inventive new uses for today's electronics, The Ultimate Raspberry Pi and ROS Robotics Developer Super Bundle can kick that door open with authority.

This collection includes 15 courses with nearly 40 hours of training that explore the basics of programming, homemade electronics, and robot building. It's enough to get even a first-time user started in developing the abilities to forge almost anything imaginable from these core components.

The Complete Raspberry Pi Bootcamp can get things started, explaining, through practical examples, how to create a complete Pi-based program. Even if you don't have your own Pi, this course can help you simulate the board in your operating system and start learning, even without the board itself.

From these humble beginnings, another dozen courses will expand your Pi knowledge in the best way possible through assembling a batch of crazy cool new projects. As you follow instructions to make your own automated smart dustbin, a GPS tracking system, or a smart security camera, you'll fully explore how to apply elements of these projects to start crafting your own Pi-inspired automations.

The collection also features an introduction to Python coding, how to use that coding in the creation of 'Internet of Things' projects, and a full examination of ROS2, an open-source, meta-operating system for use in programming robots.

The entire collection is valued at almost $2,400, but you can save hundreds by getting the whole 15-course bundle now for about $3 per course, just $49.99.

Do you have your stay-at-home essentials? Here are some you may have missed.

Read the rest here:
Get over 35 hours of training on Raspberry Pi, Python, and ROS2 for just $50 - Boing Boing

Outlook on the Hadoop Global Market to 2027 – Opportunity Analysis and Industry Forecast – GlobeNewswire

Dublin, Nov. 10, 2020 (GLOBE NEWSWIRE) -- The "Hadoop Market by Component, Deployment Model, Organization Size, and End User: Global Opportunity Analysis and Industry Forecast, 2020-2027" report has been added to ResearchAndMarkets.com's offering.

According to this report the Hadoop market size was valued at $26.74 billion in 2019, and is projected to reach $340.35 billion by 2027, growing at a CAGR of 37.5% from 2020 to 2027.

Hadoop is an Apache open source framework programmed in Java. It allows distributed processing of large datasets widely known as big data across clusters of computers using simple programming models. The Hadoop framework application operates in an environment that provides distributed storage and computation across clusters of computers. Hadoop is designed to scale up from single server to thousands of machines, each offering local computation and storage. It runs its applications using the MapReduce algorithm, where the data is processed in parallel with other processes. Moreover, it is widely used to develop applications that perform complete statistical analysis in big data. Hadoop is a distributed processing technology used for big data analysis. The global Hadoop market has witnessed dynamic growth in the recent years, owing to its cost-effectiveness and efficiency over traditional data analysis tools such as RDBMS

Increase in competition in the business environment has compelled companies that generate huge amount of data to opt for Hadoop services. In addition, extremely low upfront costs compared to on-premise Hadoop propels the adoption of Hadoop as a Service (HaaS). Moreover, some of the other factors that drive the growth of the market include increase in adoption of Hadoop by small & medium enterprises (SMEs) and the characteristics such as flexibility and agility for businesses provided by Hadoop. Factors such as increase in penetration of Internet of Things (IoT) across the globe, A surge in demand for cost effective solutions for the management of big data, and wide acceptance of HaaS across different industry verticals such as IT, banking, manufacturing, and telecommunication fuel the growth of the Hadoop market.

However, concerns associated with low security standards for highly confidential data and lack of awareness about benefits of this technology are expected to hinder the growth of the market to a certain extent. Furthermore, ongoing partnership and funding taking place in the Hadoop market and a rise in popularity of e-commerce are expected to provide significant revenue growth opportunities for the market growth in the coming years.

The Hadoop market is segmented on the basis of component, deployment model, organization size, end user, and region. On the basis of component, it is divided into hardware, software, and services. On the basis of deployment type, it is classified into on-premise, cloud, and hybrid. By organization size, it is bifurcated into small & medium-sized enterprises and large enterprises. By End User, it is segregated into manufacturing, BFSI, retail & consumer goods, IT & telecommunication, healthcare, government & defense, media & entertainment, energy & utility, trade & transportation, and others. Region -wise, it is analyzed across North America, Europe, Asia-Pacific, and LAMEA.

The market players operating in the Hadoop market include Amazon Web Services, Inc., Cisco Systems, Inc., Cloudera, Inc., Datameer, Inc., Dell EMC, Google LLC, International Business Machines Corporation, MapR Technologies, MarkLogic Corporation, and Teradata Corporation.

Key Benefits

Key Findings of the Study:

Key Topics Covered:

Chapter 1: Introduction1.1. Report Description1.2. Key Benefits for Stakeholders1.3. Key Market Segments1.4. Research Methodology1.4.1. Secondary Research1.4.2. Primary Research1.4.3. Analyst Tools & Models

Chapter 2: Executive Summary2.1. Key Findings2.1.1. Top Impacting Factors2.1.2. Top Investment Pockets2.2. CXO Perspective

Chapter 3: Market Overview3.1. Market Definition and Scope3.2. Porter'S Five Forces Analysis3.2.1. High Bargaining Power of Suppliers3.2.2. Low-To-Moderate Bargaining Power of Buyers3.2.3. Low-To-Moderate Threat of Substitutes3.2.4. Moderate Threat of New Entrants3.2.5. Moderate Competitive Rivalry3.3. Case Studies3.3.1. Pontis (Acquired by Amdocs)3.3.2. Razorsight3.4. Market Dynamics3.4.1. Drivers3.4.1.1. Increase in Competition in the Business Environment3.4.1.2. Rise in Adoption of Hadoop-As-A-Service3.4.1.3. Increase in Adoption of Hadoop Services by Small and Medium Enterprises (Smes)3.4.1.4. Flexibility and Agility for Businesses Provided by Hadoop3.4.2. Restraints3.4.2.1. Low Security for Highly Confidential Data3.4.2.2. Lack of Awareness About Benefits of Hadoop Technology3.4.3. Opportunities3.4.3.1. Ongoing Partnership and Funding Taking Place in the Hadoop Market3.4.3.2. Rise in Popularity of E-Commerce3.5. Impact of Government Regulations on the Big Data Hadoop Market3.6. Evolution of Hadoop Technology

Chapter 4: Global Hadoop Market, by Component4.1. Overview4.2. Hardware4.2.1. Key Market Trends, Growth Factors, and Opportunities4.2.2. Market Size and Forecast, by Region4.2.3. Market Analysis, by Country4.3. Software4.3.1. Key Market Trends, Growth Factors, and Opportunities4.3.2. Market Size and Forecast, by Region4.3.3. Market Analysis, by Country4.4. Services4.4.1. Key Market Trends, Growth Factors, and Opportunities4.4.2. Market Size and Forecast, by Region4.4.3. Market Analysis, by Country

Chapter 5: Global Hadoop Market, by Deployment Model5.1. Overview5.2. On-Premise5.2.1. Key Market Trends, Growth Factors, and Opportunities5.2.2. Market Size and Forecast, by Region5.2.3. Market Analysis, by Country5.3. Cloud5.3.1. Key Market Trends, Growth Factors, and Opportunities5.3.2. Market Size and Forecast, by Region5.3.3. Market Analysis, by Country5.4. Hybrid5.4.1. Key Market Trends, Growth Factors, and Opportunities5.4.2. Market Size and Forecast, by Region5.4.3. Market Analysis, by Country

Chapter 6: Global Hadoop Market, by Organization Size6.1. Overview6.2. Large Enterprises6.2.1. Key Market Trends, Growth Factors, and Opportunities6.2.2. Market Size and Forecast, by Region6.2.3. Market Analysis, by Country6.3. Small & Medium Enterprises6.3.1. Key Market Trends, Growth Factors, and Opportunities6.3.2. Market Size and Forecast, by Region6.3.3. Market Analysis, by Country

Chapter 7: Hadoop Market, by End-user7.1. Overview7.2. Manufacturing7.2.1. Key Market Trends, Growth Factors, and Opportunities7.2.2. Market Size and Forecast, by Region7.2.3. Market Analysis, by Country7.3. Bfsi7.3.1. Key Market Trends, Growth Factors, and Opportunities7.3.2. Market Size and Forecast, by Region7.3.3. Market Analysis, by Country7.4. Retail & Consumer Goods7.4.1. Key Market Trends, Growth Factors, and Opportunities7.4.2. Market Size and Forecast, by Region7.4.3. Market Analysis, by Country7.5. It & Telecommunication7.5.1. Key Market Trends, Growth Factors, and Opportunities7.5.2. Market Size and Forecast, by Region7.5.3. Market Analysis, by Country7.6. Healthcare7.6.1. Key Market Trends, Growth Factors, and Opportunities7.6.2. Market Size and Forecast, by Region7.6.3. Market Analysis, by Country7.7. Government & Defense7.7.1. Key Market Trends, Growth Factors, and Opportunities7.7.2. Market Size and Forecast, by Region7.7.3. Market Analysis, by Country7.8. Media & Entertainment7.8.1. Key Market Trends, Growth Factors, and Opportunities7.8.2. Market Size and Forecast, by Region7.8.3. Market Analysis, by Country7.9. Energy & Utility7.9.1. Key Market Trends, Growth Factors, and Opportunities7.9.2. Market Size and Forecast, by Region7.9.3. Market Analysis, by Country7.10. Trade & Transportation Segment7.10.1. Key Market Trends, Growth Factors, and Opportunities7.10.2. Market Size and Forecast, by Region7.10.3. Market Analysis, by Country7.11. Others7.11.1. Key Market Trends, Growth Factors, and Opportunities7.11.2. Market Size and Forecast, by Region7.11.3. Market Analysis, by Country

Chapter 8: Hadoop Market, by Region8.1. Overview8.2. North America8.3. Europe8.4. Asia-Pacific8.5. LAMEA

Chapter 9: Competitive Landscape9.1. Top Winning Strategies9.2. Key Player Positioning9.3. Competitive Dashboard9.4. Competitive Heatmap9.5. Key Developments9.5.1. New Product Launches9.5.2. Partnership9.5.3. Acquisition9.5.4. Product Development9.5.5. Collaboration9.5.6. Business Expansion9.5.7. Agreement

Chapter 10: Company Profile

For more information about this report visit https://www.researchandmarkets.com/r/tb2k91

Research and Markets also offers Custom Research services providing focused, comprehensive and tailored research.

Excerpt from:
Outlook on the Hadoop Global Market to 2027 - Opportunity Analysis and Industry Forecast - GlobeNewswire

Adam Franco Built Curvature to Find the Fun Roads – Car and Driver

Software developer Adam Franco created Curvature to analyze ten million roads around the world and find the twisty ones. Using OpenStreetMap (OSM) and a ton of math, Curvature ranks roads based on the number and quality of their curvy bits. The result is a map of almost everywhere on Earth you want to spend a sunny day driving or riding. Our conversation has been lightly edited for length and clarity.

I took up motorcycle touring in 2012 and very quickly found that leaning into corners was a lot more fun than cruising along on a straight road. So I started building Curvature back in 2012 as a way to actually look at road data and analyze the geometry and be able to pick out the twisty roads.

Alison Nihart

OpenStreetMap is an open-data project, similar to Wikipedia but focused on building maps of the world instead of an encyclopedia. In the U.S., Google has pretty good road data in much of the country via proprietary services, but in the rest of the world. Open Street Map is really the most detailed, best map you can have. In some places it's the only map available.

Curves that have a radius of more than 150 meters, that's straight were not give that any kind of curve weighting. The broad curves, kind of a high speed long curve that you're just kind of feeling a little bit of lean towards, I'm going to give those a weight of one.

Once I've placed all the segments into buckets and multiplied the weighting by the length of the segment, that gives me a total value for that roadway which is effectively a weighted value of meters spent leaning into corners.

If we hit a series of segments for more than two miles that dont have any interesting curves on them, I'll snap the road in two there and eliminate the straight segment. What I'm left with are just the parts of the road that have corners of interest, and the value of those corners in that segment of road.

I zero out the curvature for 'conflict zones' on 100 feet on each side, crosswalks, 90-degree turns, so they don't get weighted and measured. It zeroes out a lot of twistiness one would find in the urban environment.

I am working on search right now. Another feature I'm looking to add is saving bookmarks, making it so that someone could build up routes and share them with folks.

I've probably spent more time working on it than I have riding motorcycles, that's maybe a little bit of an imbalance that I hope to remedy.

I have a Subaru Impreza. It is the Impreza Sport, but it's not a particularly sporty car. So while I do enjoy driving vigorously, my love of curvy roads in the car is a little less than if I had a different machine.

There are many places where the highway departments have paved lots of little twisty back roads that aren't major highways to places, and that aren't in the mountains.

Japan is kind of crazy. I've never been there, but it seems that all their roads are paved, and outside of the very densely populated flat areas, Japan is just nothing but twisty roads.

Definitely the Alps, and there's a particular road in Norway that actually makes a loop into a cliff face as it zigzags up the side of a fjord.

The program that does all the calculations is open source software under the GNU general public license, it's available on Github.

I have a whole bunch of bugs, for instance, not going around roundabouts and getting stuck in a loop certainly someone could try working on that if they have programming skills. The bigger way people can contribute is editing OpenStreetMap. The biggest thing harm-wise in much of the world is tagging road surface. Not all the roads have been tagged as paved or unpaved.

If people want to contribute financially to the project there is a donate button on the web site. But I want to find these things because I find them fascinating, and then feed that interest back into others mapping the world and improving the map.

This content is created and maintained by a third party, and imported onto this page to help users provide their email addresses. You may be able to find more information about this and similar content at piano.io

Link:
Adam Franco Built Curvature to Find the Fun Roads - Car and Driver

NEMA Continues Its Success As A National Lifestyle Brand With Boston Opening – PRNewswire

"With the NEMA brand, we've redefined luxury rental living on the West Coast and in the Midwest, and are thrilled to welcome our NEMA Boston residents home," said Bruce A. Menin, Managing Principal at Crescent Heights. "With locally inspired amenities and NEMA's predictive, tech-powered service, everything about NEMA Boston is thoughtfully crafted for this city. Bostonians appreciate NEMA's attention to detail and local authenticity, and our leasing success to date reflects that."

Located on Congress Street, NEMA is in the heart of the Seaport District, one of Boston's most dynamic neighborhoods. However, the building's elevated design aesthetic and unparalleled amenities set it apart from other luxury rental options in the neighborhood and greater Boston area.The 414 elevated rental residences come with access to a bespoke collection of amenities, thoughtfully designed and programmed for entertainment, wellness, and convenience, and spanning the entire top floor of the tower with incredible views for all NEMA residents to enjoy. The amenity-rich building also makes it easy to never leave home, and as a sustainably built and community-minded brand, NEMA brings everything residents need to the comfort of their space, making it possible to safely socially distance while still experiencing all that the residences have to offer. From wellness offerings and virtual programming with like-minded local brands to expansive outdoor lounges and terraces, NEMA's amenities and services can booked through a custom mobile app, allowing for usage capacity control within a given space at a certain time. The app also offers the ability to submit maintenance requests, manage deliveries and arrange contact-free package pick-up, approve guest access and much more.

Key amenity highlights include:

NEMA was created by Crescent Heights, a leading developer, owner, and operator of architecturally distinctive residential high-rises in major cities across the United States. The NEMA brand disrupts the cookie-cutter approach of the conventional apartment industry and avoids copy-pasting designs across different cities. Local inspiration for each NEMA pervades its concept, design and programming, making it an authentic reflection of its native city and neighborhood. The first NEMA set a new standard for the San Francisco rental market with the opening of its 754-unit tower in the heart of SOMA. The building was fully leased at a record pace, catalyzing Mid-Market neighborhood transformation, and NEMA Chicago followed the same success. As the city's tallest rental residence, NEMA Chicago's 800-unit tower with 70,000-square-feet of amenity spaces has redefined the iconic skyline. These buildings have attracted residents with their locally inspired design and art, an unprecedented hotel-style collection of amenities, tech-powered predictive service, and a vibrant, engaged community.

For additional information about NEMA Boston and details on leasing, please visit http://www.rentnemaboston.com.

About Crescent HeightsCrescent Heights is one the nation's leading urban real estate firms, specializing in the development, ownership, and operation of architecturally distinctive mixed-use high-rises in major cities across the United States. The company's 30-year history demonstrates its commitment to creatively designed and fully serviced residential and hotel projects. The architecture and interiors of each Crescent Heights Residence are infused with the history, climate, and character of the building's neighborhood. With a focus on locally inspired amenities, both public and interior art, and extensive lifestyle programming, Crescent Heights manages its projects to create authentic, positive experiences.

For more information, please visitcrescentheights.com

Crescent Heights and NEMA are registered trademarks used by a group of companies, partnerships and ventures, each of which is a separate, single purpose entity that is solely responsible for its own duties, responsibilities and obligations. NEMA Chicago is a real estate project owned by S Loop Chicago Development II, LLC, which is a separate, single purpose entity that is solely responsible for its own duties, responsibilities and obligations. NEMA Boston is a real estate project owned by 399 Congress, LLC, which is a separate, single purpose entity that is solely responsible for its own duties, responsibilities and obligations.

MEDIA CONTACTS:ZAPWATER COMUNICATIONS, 312-943-0333CARLY KUIKMAN| ELLY HAYN[emailprotected]|[emailprotected]

SOURCE Crescent Heights

http://www.crescentheights.com/

See the original post:
NEMA Continues Its Success As A National Lifestyle Brand With Boston Opening - PRNewswire