The document provides an overview of a workshop on ARM programming with GNAT and Ada 2012. It discusses the target hardware, STM32F4 discovery boards. It covers the required software tools - the USB device driver, GNAT compiler, st-link utilities. It explains how to connect and use the hardware with the software tools. It demonstrates a simple "hello world" example that blinks LEDs. It provides pointers on where to go next, including STM32F4 documentation, GNAT/GPS documentation, and the ARM GitHub repository for additional examples and drivers.
What is the Power BI and learn the Power BI by self and this presentation contains some use full links which help us at time of developing the Power BI.
Business intelligence dashboards and data visualizations serve as a launching point for better business decision making. Learn how you can leverage Power BI to easily build reports and dashboards with interactive visualizations.
Power BI Desktop | Power BI Tutorial | Power BI Training | EdurekaEdureka!
This Edureka "Power BI Desktop" tutorial will help you to understand what is Power BI Desktop with examples and demo. Below are the topics covered in this tutorial:
1. Why Power BI?
2. What Power BI?
3. Who use Power BI?
4. Flow of Work
5. Power BI Trends
Introduction to Power BI to make smart decisionsVIVEK GURURANI
Power BI: Business intelligence like never before!
Power BI is a tool that allows accounting and finance managers and professionals to have relevant information at the right time to make strategic decisions in a flexible, centralized, and secure way. Transform your business with predictive analytics, data visualization, and information in real-time, thanks to Power BI.
Presentation Agenda:
1. Introduction to Power BI
2. Why would your business need Power BI?
3. Power BI Architecture
4. Data Sanitization & Cleansing Capabilities
5. Analytical Insights
6. Generating Department Wise Reports & Visualizations
7. Latest & Upcoming Power BI features
8. Live Q&A
What is the Power BI and learn the Power BI by self and this presentation contains some use full links which help us at time of developing the Power BI.
Business intelligence dashboards and data visualizations serve as a launching point for better business decision making. Learn how you can leverage Power BI to easily build reports and dashboards with interactive visualizations.
Power BI Desktop | Power BI Tutorial | Power BI Training | EdurekaEdureka!
This Edureka "Power BI Desktop" tutorial will help you to understand what is Power BI Desktop with examples and demo. Below are the topics covered in this tutorial:
1. Why Power BI?
2. What Power BI?
3. Who use Power BI?
4. Flow of Work
5. Power BI Trends
Introduction to Power BI to make smart decisionsVIVEK GURURANI
Power BI: Business intelligence like never before!
Power BI is a tool that allows accounting and finance managers and professionals to have relevant information at the right time to make strategic decisions in a flexible, centralized, and secure way. Transform your business with predictive analytics, data visualization, and information in real-time, thanks to Power BI.
Presentation Agenda:
1. Introduction to Power BI
2. Why would your business need Power BI?
3. Power BI Architecture
4. Data Sanitization & Cleansing Capabilities
5. Analytical Insights
6. Generating Department Wise Reports & Visualizations
7. Latest & Upcoming Power BI features
8. Live Q&A
Power BI Tutorial For Beginners | Power BI Tutorial | Power BI Demo | Power B...Edureka!
( Power BI Training - https://www.edureka.co/power-bi-training )
This Edureka videoon "Power BI Tutorial" will provide you with the fundamental knowledge on Power BI (Blog: https://goo.gl/uFTDU3). Below are the topics covered in this tutorial:
1. Why do we need Business Intelligence?
2. What is Self Service Business Intelligence?
3. Why Power BI?
4. What is Power BI?
5. Demo: Report and Dashboard Creation
Power bi (1)Power BI Online Training Hyderabad | power bi online training ben...Big IT Trainings
Power BI Desktop integrates proven Microsoft technologies the powerful Query engine, data modeling, and visualizations. All sorts of different data sources, then combine and shape them in ways that facilitate making interesting, in Power BI online Training.
this presentation will show the advantage and disadvantages of using Power BI software in the Business. Power BI is a software that can help people to analyze their business.
Power BI is a business analytics service that enables you to see all of your data through a single pane of glass. Live Power BI dashboards and reports...
What is BI,Definition, examples, BI industry, Solutions, Evolution, Catogeries, Key Stages of BI, BI significance, BI technologies, tools, future of BI
Basics of BI and Data Management (Summary).pdfamorshed
Basics of Business Intelligence and Data Management
BI Architecture
How BI works?
DMBOK framework
what is Data literacy
Data quality
Data Governance
what is self-service or modern BI
Power BI Architecture
How Power BI Works
BI Implementation steps
A simplified version of my presentation:
- PowerBI solution architecture
- Key steps to visualize data in PowerBI
- PowerBI Demo
- R in PowerBI
- Custom Visuals
- PowerBI Report Server
- Azure services and Power BI
Business Intelligence (BI) and Data Management Basics amorshed
A one-day training course on the Concepts of Data Management and Business Intelligence (BI) in the DX age
A Basic Review of BI and DM
How to Implement BI
A review of BI Tools and 2022 Gartner Quadrant Magic
Basics of Data warehouse (DWH)
An introductions to Power BI
Components of Power BI
Steps for BI Implementation
Data Culture
Intro to ETL and ELT
OLAP files and Architecture
Digital transformation or DX review
A glance at DMBOK2.0 framework
BI Challenges
Data Governance
Data Integration
Data Security and Privacy in DMBOK2.0
Data-Driven Organization
Data and BI Maturity Model
Traditional BI
Self-service BI
who is DMP
who is BI developer
what is Metadata
what is Master data
Data Quality
Data Literacy
Benefits of BI
BI features
How does BI Works?
Modern BI
Data Analytics
BI Architecture
Data Types
Data Lake
Data Mart
Data Silo
Data Visualization
Power BI Architecture and components
This presentation is dedicated to Field Programmable Gate Array (FPGA), its interaction with CPU, distrbuted resources, use of FPGA for prototyping chips, and OpenCL in FPGA.
This presentation by Andriy Smolskyy, GlobalLogic Engineering Consultant, was delivered at a GlobalLogic Embedded TechTalk in Lviv on March 29, 2017.
One Year of Porting - Post-mortem of two Linux/SteamOS launchesLeszek Godlewski
2013 was the year in which Linux finally got the attention of game developers; it was also the year in which my first two Linux/SteamOS ports were released. This talk will cover the learnings of one year of porting work from a programmer's point of view: DOs and DON'Ts and issues both expected and unexpected.
Power BI Tutorial For Beginners | Power BI Tutorial | Power BI Demo | Power B...Edureka!
( Power BI Training - https://www.edureka.co/power-bi-training )
This Edureka videoon "Power BI Tutorial" will provide you with the fundamental knowledge on Power BI (Blog: https://goo.gl/uFTDU3). Below are the topics covered in this tutorial:
1. Why do we need Business Intelligence?
2. What is Self Service Business Intelligence?
3. Why Power BI?
4. What is Power BI?
5. Demo: Report and Dashboard Creation
Power bi (1)Power BI Online Training Hyderabad | power bi online training ben...Big IT Trainings
Power BI Desktop integrates proven Microsoft technologies the powerful Query engine, data modeling, and visualizations. All sorts of different data sources, then combine and shape them in ways that facilitate making interesting, in Power BI online Training.
this presentation will show the advantage and disadvantages of using Power BI software in the Business. Power BI is a software that can help people to analyze their business.
Power BI is a business analytics service that enables you to see all of your data through a single pane of glass. Live Power BI dashboards and reports...
What is BI,Definition, examples, BI industry, Solutions, Evolution, Catogeries, Key Stages of BI, BI significance, BI technologies, tools, future of BI
Basics of BI and Data Management (Summary).pdfamorshed
Basics of Business Intelligence and Data Management
BI Architecture
How BI works?
DMBOK framework
what is Data literacy
Data quality
Data Governance
what is self-service or modern BI
Power BI Architecture
How Power BI Works
BI Implementation steps
A simplified version of my presentation:
- PowerBI solution architecture
- Key steps to visualize data in PowerBI
- PowerBI Demo
- R in PowerBI
- Custom Visuals
- PowerBI Report Server
- Azure services and Power BI
Business Intelligence (BI) and Data Management Basics amorshed
A one-day training course on the Concepts of Data Management and Business Intelligence (BI) in the DX age
A Basic Review of BI and DM
How to Implement BI
A review of BI Tools and 2022 Gartner Quadrant Magic
Basics of Data warehouse (DWH)
An introductions to Power BI
Components of Power BI
Steps for BI Implementation
Data Culture
Intro to ETL and ELT
OLAP files and Architecture
Digital transformation or DX review
A glance at DMBOK2.0 framework
BI Challenges
Data Governance
Data Integration
Data Security and Privacy in DMBOK2.0
Data-Driven Organization
Data and BI Maturity Model
Traditional BI
Self-service BI
who is DMP
who is BI developer
what is Metadata
what is Master data
Data Quality
Data Literacy
Benefits of BI
BI features
How does BI Works?
Modern BI
Data Analytics
BI Architecture
Data Types
Data Lake
Data Mart
Data Silo
Data Visualization
Power BI Architecture and components
This presentation is dedicated to Field Programmable Gate Array (FPGA), its interaction with CPU, distrbuted resources, use of FPGA for prototyping chips, and OpenCL in FPGA.
This presentation by Andriy Smolskyy, GlobalLogic Engineering Consultant, was delivered at a GlobalLogic Embedded TechTalk in Lviv on March 29, 2017.
One Year of Porting - Post-mortem of two Linux/SteamOS launchesLeszek Godlewski
2013 was the year in which Linux finally got the attention of game developers; it was also the year in which my first two Linux/SteamOS ports were released. This talk will cover the learnings of one year of porting work from a programmer's point of view: DOs and DON'Ts and issues both expected and unexpected.
Linux Kernel Platform Development: Challenges and InsightsGlobalLogic Ukraine
This presentation is about the main tasks which Linux kernel platform engineers take care of. The talk includes real-life cases which help understand the role of respective specialists and might be helpful to those who consider such change in their careers.
The talk was delivered by Sam Protsenko (Software Engineer, Consultant, GlobalLogic) at GlobalLogic Embedded Career Day #2 on February 10, 2018.
More about GlobalLogic Embedded Career Day #2: https://www.globallogic.com/ua/events/globallogic-kyiv-embedded-career-day-2-materials
UWE Linux Boot Camp 2007: Hacking embedded Linux on the cheapedlangley
Slides from a talk at the first ever UWE Linux Boot Camp in 2007, about getting started playing around with embedded Linux on a budget. The example system used is the Mattel Juicebox.
At the event was discussed what the developer can use to repair an application or a game if it has graphic display problems. Also, speakers gave an overview of the Mesa library and its development process.
This presentation by Vadym Shovkoplias and Andrew Khulap (Senior Software Engineers, Consultants, GlobalLogic), was delivered at GlobalLogic Kharkiv Embedded TechTalk #2 on June 4, 2018.
Video: https://youtu.be/pT1Y81KGHkM
Utilizing AMD GPUs: Tuning, programming models, and roadmapGeorge Markomanolis
A presentation at FOSDEM 2022 about AMD GPUs, tuning, programming models and software roadmap. This is continuation from the previous talk (FOSDEM 2021)
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...OpenShift Origin
Extending OpenShift Origin: Build Your Own Cartridge
Presenters: Bill DeCoste
Cartridges allow developers to provide services running on top of the Red Hat OpenShift Platform-as-a-Service (PaaS). OpenShift already provides cartridges for numerous web application frameworks and databases. Writing your own cartridges allows you to customize or enhance an existing service, or provide new services. In this session, the presenter will discuss best practices for cartridge development and the latest changes in the OpenShift cartridge support.
* Latest changes made in the platform to ease cartridge development
* OpenShift Cartridges vs. plugins
* Outline for development of a new cartridge
* Customization of existing cartridges
* Quickstarts: leveraging a cartridge or cartridges to provide a complete application
A story of how we went about packaging perl and all of the dependencies that our project has.
Where we were before, the chosen path, and the end result.
The pitfalls and a view on the pros and cons of the previous state of affairs versus the pros/cons of the end result.
In this deck from the GPU Technology Conference, John Romein and Bram Veenboer from ASTRON in the Netherlands present: Can FPGAs compete with GPUs?
"We'll discuss how FPGAs are changing as a result of new technology such as the Open CL high-level programming language, hard floating-point units, and tight integration with CPU cores. Traditionally energy-efficient FPGAs were considered notoriously difficult to program and unsuitable for complex HPC applications. We'll compare the latest FPGAs to GPUs, examining the architecture, programming models, programming effort, performance, and energy efficiency by considering some real applications."
Watch the video: https://wp.me/p3RLHQ-kfK
Learn more: https://www.astron.nl/
and
https://www.nvidia.com/en-us/gtc/
Sign up for our insideHPC Newsletter: http://insidehpc.com/newsletter
Languages such as JavaScript may receive a lot of hype nowadays, but for high-performance, close-to-the-metal computing, C++ is still king. This webinar takes you on a tour of the HPC universe, with a focus on parallelism, be it instruction-level (SIMD), data-level, task-based (multithreading, OpenMP), or cluster-based (MPI). We also discuss how specific hardware can significantly accelerate computation by looking at two such technologies: NVIDIA CUDA and Intel Xeon Phi. (Some scarier tech such as FPGAs are also mentioned).
These slides were used as part of May 29, 2014 webinar, High-Performance Computing with C++. You can watch the webinar on JetBrainsTV YouTube Channel - http://youtu.be/JcSrwxDb-Fs
Similar to Tech Days 2015: ARM Programming with GNAT and Ada 2012 (20)
RCA OCORA: Safe Computing Platform using open standardsAdaCore
The railway sector is facing a major transition as it moves towards more fully automated systems on both the train and infrastructure side. This in turn, requires the development of appropriate, future-proof connectivity and IT platforms.
The Reference Control Command and Signalling Architecture (RCA) and Open Control Command and Signalling Onboard Reference Architecture (OCORA) have developed a functional architecture for future trackside and onboard functions. The RCA OCORA open Control Command Signalling (CCS) on-board reference architecture introduces a standardized separation of safety-relevant and non-safety-relevant railway applications and the underlying IT platforms. This allows rail operators to decouple the very distinct life cycles of the domains and aggregate multiple railway applications on common IT platforms.
Based on a Safe Computing Platform (SCP), the architecture accommodates a Platform Independent Application Programming Interface (PI API) between safety-relevant railway applications and IT platforms. This approach supports the portability of railway applications among IT platform realisations from different vendors.
Two of its authors will discuss the RCA OCORA architecture with emphasis on its safe computing framework. The talk will review the required operating system standards and the discuss the newly-released DDS Reference Implementation for Safe Computing Platform Messaging. While designed for rail, this architecture will have elements of interest for other industries.
Long-lived software is a challenge. This was seen very clearly a couple of years ago in the “US COBOL crisis”, but the reasons are less clearly understood, and are worth exploring. The speaker works in Computer Algebra, where “younger” systems are 30-40 years old, and the algorithmic kernel of SageMath, the newest major system, is actually 55 years old, and the people who can debug it are in single figures. More recently, very substantial retooling was required to enable Line 14, the driverless line, of the Paris Métro to be extended. Having reviewed these cases, the speaker will make some tentative suggestions for the management of long-lived software.
Rust and the coming age of high integrity languagesAdaCore
Rust is undeniably successful. In just over 7 year, it moved from a newly released language to one that is considered as a language for high integrity systems. This success did not happen in isolation - Rusts success is deeply rooted in a number of contributing environmental factors.
In this talk, I’d like to make the case why Rust success is due to a general ground shift in software development. What we are seeing is a resurging interest in software practices that were usually part of safety-critical environments being applied to non-safety related, mission-critical environments. On the other side, we are seeing the worlds of safety and security merging.
I’d like to take a step back and talk about coming opportunities, changes and chances not only for Rust, but also for other languages and products.
SPARKNaCl: A verified, fast cryptographic libraryAdaCore
SPARKNaCl https://github.com/rod-chapman/SPARKNaCl is a new, freely-available, verified and fast reference implementation of the NaCl cryptographic API, based on the TweetNaCl distribution. It has a fully automated, complete and sound proof of type-safety and several key correctness properties. In addition, the code is surprisingly fast - out-performing TweetNaCl's C implementation on an Ed25519 Sign operation by a factor of 3 at all optimisation levels on a 32-bit RISC-V bare-metal machine. This talk will concentrate on how "Proof Driven Optimisation" can result in code that is both correct and fast.
Developing Future High Integrity Processing SolutionsAdaCore
Rolls-Royce has been developing high integrity digital processing solutions for its safety critical aerospace engine controllers since the 1980s. By the turn of the century, the electronics industry experienced an inflection point. This resulted in a shift to a consumer driven market and a much-reduced focus on the harsh environment electronics and the extended life cycles required by the aerospace industry. As a result, Rolls-Royce took the decision to design its own microprocessor, and for the last 25 years, has been successfully developing harsh environment safety critical processing solutions for all its aerospace engines.
Alongside the ever-increasing performance expectations, the past few years have seen cyber-security become a major driver in new processor developments. This presents new and interesting development challenges that will need to be addressed.
Taming event-driven software via formal verificationAdaCore
Event-driven software can be found everywhere, from low-level drivers, to software that controls and coordinates complex subcomponents, and even in GUIs. Typically, event-driven software is characterised as consisting of a number of stateful components that communicate by sending messages to each other. Event-driven software is notoriously difficult to test. There are often many different sequences of events, and because the exact order of the events will affect the state of the system, it can be easy for bugs to lurk in obscure un-tested sequences of events. Even worse, reproducing these bugs can be difficult due to the need to reproduce the exact sequence of events that led to the issue.
Formal verification is one method of solving this: rather than writing tests to check each of the different possible sequences of events, automated formal verification could be used to verify that the software is correct no matter what sequence of events is observed. In this talk, we will look at what capabilities are required to ensure that this will be successful, including what it means for event-driven software to be correct, and how to ensure that the verification can scale to industrial-sized software projects.
Pushing the Boundary of Mostly Automatic Program ProofAdaCore
With the large-scale verification of complex programs like compilers and microkernels, program proof has realised the grand challenge of creating a “verifying compiler” proposed by Sir Tony Hoare in 2003. Still, the effort and expertise required for developing the program and its proof to feed to the “verifying compiler” will exceed the V&V budget of most projects. Another approach gaining traction is to automate the proof as much as possible. More specifically, by tailoring the proof tool to the strengths of a target programming language, leveraging an array of automatic provers, and limiting the ambition of proof to those properties for which proof can be mostly automated. This is the approach we are following in SPARK. In this talk, we will survey what properties can be “mostly” proved automatically, and what this means in terms of effort and expertise.
RCA OCORA: Safe Computing Platform using open standardsAdaCore
The railway sector is facing a major transition as it moves towards more fully automated systems on both the train and infrastructure side. This in turn, requires the development of appropriate, future-proof connectivity and IT platforms.
The Reference Control Command and Signalling Architecture (RCA) and Open Control Command and Signalling Onboard Reference Architecture (OCORA) have developed a functional architecture for future trackside and onboard functions. The RCA OCORA open Control Command Signalling (CCS) on-board reference architecture introduces a standardized separation of safety-relevant and non-safety-relevant railway applications and the underlying IT platforms. This allows rail operators to decouple the very distinct life cycles of the domains and aggregate multiple railway applications on common IT platforms.
Based on a Safe Computing Platform (SCP), the architecture accommodates a Platform Independent Application Programming Interface (PI API) between safety-relevant railway applications and IT platforms. This approach supports the portability of railway applications among IT platform realisations from different vendors.
Two of its authors will discuss the RCA OCORA architecture with emphasis on its safe computing framework. The talk will review the required operating system standards and the discuss the newly-released DDS Reference Implementation for Safe Computing Platform Messaging. While designed for rail, this architecture will have elements of interest for other industries.
Product Lines and Ecosystems: from customization to configurationAdaCore
Digitalization is concerned with a fundamental shift in value delivery to customers from transactional to continuous. For R&D this requires adopting processes such as DevOps and continuous deployment. Systems engineering companies using platforms need to adjust their ways of working and be cognisant of the role of the ecosystem surrounding them to capitalize on this transformation. The keynote talk will discuss these developments and provide industrial examples from Software Center, a collaboration between 17 large, international companies and five universities with the intent of accelerating the digital transformation of the European software intensive industry.
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
Takashi Kobayashi and Hironori Washizaki, "SWEBOK Guide and Future of SE Education," First International Symposium on the Future of Software Engineering (FUSE), June 3-6, 2024, Okinawa, Japan
Hand Rolled Applicative User ValidationCode KataPhilip Schwarz
Could you use a simple piece of Scala validation code (granted, a very simplistic one too!) that you can rewrite, now and again, to refresh your basic understanding of Applicative operators <*>, <*, *>?
The goal is not to write perfect code showcasing validation, but rather, to provide a small, rough-and ready exercise to reinforce your muscle-memory.
Despite its grandiose-sounding title, this deck consists of just three slides showing the Scala 3 code to be rewritten whenever the details of the operators begin to fade away.
The code is my rough and ready translation of a Haskell user-validation program found in a book called Finding Success (and Failure) in Haskell - Fall in love with applicative functors.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteGoogle
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-pilot-review/
AI Pilot Review: Key Features
✅Deploy AI expert bots in Any Niche With Just A Click
✅With one keyword, generate complete funnels, websites, landing pages, and more.
✅More than 85 AI features are included in the AI pilot.
✅No setup or configuration; use your voice (like Siri) to do whatever you want.
✅You Can Use AI Pilot To Create your version of AI Pilot And Charge People For It…
✅ZERO Manual Work With AI Pilot. Never write, Design, Or Code Again.
✅ZERO Limits On Features Or Usages
✅Use Our AI-powered Traffic To Get Hundreds Of Customers
✅No Complicated Setup: Get Up And Running In 2 Minutes
✅99.99% Up-Time Guaranteed
✅30 Days Money-Back Guarantee
✅ZERO Upfront Cost
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
Graspan: A Big Data System for Big Code AnalysisAftab Hussain
We built a disk-based parallel graph system, Graspan, that uses a novel edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.
We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations.
These analyses were used to augment the existing checkers; these augmented checkers found 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
- Accepted in ASPLOS ‘17, Xi’an, China.
- Featured in the tutorial, Systemized Program Analyses: A Big Data Perspective on Static Analysis Scalability, ASPLOS ‘17.
- Invited for presentation at SoCal PLS ‘16.
- Invited for poster presentation at PLDI SRC ‘16.
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Utilocate offers a comprehensive solution for locate ticket management by automating and streamlining the entire process. By integrating with Geospatial Information Systems (GIS), it provides accurate mapping and visualization of utility locations, enhancing decision-making and reducing the risk of errors. The system's advanced data analytics tools help identify trends, predict potential issues, and optimize resource allocation, making the locate ticket management process smarter and more efficient. Additionally, automated ticket management ensures consistency and reduces human error, while real-time notifications keep all relevant personnel informed and ready to respond promptly.
The system's ability to streamline workflows and automate ticket routing significantly reduces the time taken to process each ticket, making the process faster and more efficient. Mobile access allows field technicians to update ticket information on the go, ensuring that the latest information is always available and accelerating the locate process. Overall, Utilocate not only enhances the efficiency and accuracy of locate ticket management but also improves safety by minimizing the risk of utility damage through precise and timely locates.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
OpenMetadata Community Meeting - 5th June 2024OpenMetadata
The OpenMetadata Community Meeting was held on June 5th, 2024. In this meeting, we discussed about the data quality capabilities that are integrated with the Incident Manager, providing a complete solution to handle your data observability needs. Watch the end-to-end demo of the data quality features.
* How to run your own data quality framework
* What is the performance impact of running data quality frameworks
* How to run the test cases in your own ETL pipelines
* How the Incident Manager is integrated
* Get notified with alerts when test cases fail
Watch the meeting recording here - https://www.youtube.com/watch?v=UbNOje0kf6E
2. Goals
• Introduce the target hardware
• Introduce the development environment
– Tools, runtime libraries, etc.
• Show you some “tips and tricks” we use internally
– Switches we apply
– Debugging techniques
– et cetera
• Basically everything you need to get started
• Provide pointers for where to go next
– The AdaCore bare-board community GitHub project
2
3. Agenda
• The Target Hardware
• The Software Tools
• The Runtime Libraries
• “Hello World”
• Where To Go Next
3
9. Required Software
• You should already have these installed
• The USB device driver
– Third-party software available publicly
– Install this before you ever connect the board to the host
computer
• The GNAT GPL 2015 release
– Compiler etc.
– GPS
• The “st-link” utilities (“st-util” and “st-flash”)
– Pre-installed with Windows installation of GNAT tools
– Must be built and installed by Linux users
9
10. Connecting the USB Cable
• Connects the on-board power/debug USB connector to the host
computer
• If it doesn’t fit, that’s the wrong end!
– The other one is Micro-USB and is much thinner
Power/Debug
Mini-USB
Connector
10
11. Using the “ST-LINK” Utilities
• “st-util” provides a GDB server that talks to the on-board support
• “st-flash” writes apps to memory
• Available on the command line
• Both available via GPS toolbar when the plug-in is active
• You may need to run st-util on the command line if the board is
unresponsive to GPS’ invocation of it
– st-util will “get the board’s attention” when seems hung up
• Sometimes you’ll need to cycle power to the board
11
12. Flashing & Debugging Within GPS
• Supports STM32F4 boards via st-link utils
• Invoked using toolbar icons
• Visible only if “stm32f4” is used in the gpr file to specify the runtime
library name
Flash to
Board
Load, then
start GDB
12
13. GNAT Project Files
• Text files with Ada-like syntax
• Also known as “gpr files” due to file extension
• Integrated into command-line tools
– Specified via the –P project-file-name switch
• Integrated into the IDEs
– The fundamental artifact
13
14. Configurable Properties
• Source directories and specific files’ names
• Output directory for object modules and .ali files
• Switch settings for tools
• Source files for main subprogram(s) to be built
• Source programming languages
– Ada / C / C++ are preconfigured
• Many others…
14
15. Sample Simple Project File
project Demo is
for Languages use ("Ada");
for Main use ("demo.adb");
for Source_Dirs use ("src");
for Object_Dir use "obj";
package Compiler is
for Switches ("Ada") use
("-g", -- enable debugging
"-gnatwa", -- enable all optional warnings
"-gnata", -- enable pre/postcondition checks
"-gnatQ", -- don’t quit
"-gnatw.X"); -- suppress warnings about exceptions
end Compiler;
package Builder is
for Switches ("Ada") use ("-g"); -- enable debugging
end Builder;
end Demo;
15
16. Specifying the Remote Connection
• Enables GDB to locate the GDB server
project Demo is
…
package Ide is
for Program_Host use "localhost:4242";
for Communication_Protocol use "remote";
end Ide;
…
end Demo;
16
17. Removing Unused Data and Object Code
• Requires switches for compiler and linker
package Linker is
for Switches ("Ada") use ("-Wl,--gc-sections", "-Wl,--print-gc-sections");
end Linker;
Optional. Prints
those removed.
Required
package Compiler is
case Build_Mode is
when "debug" =>
…
when "production" =>
for Switches ("Ada") use (…, "-ffunction-sections", "-fdata-sections");
end case;
end Compiler;
RequiredRequired
17
18. Displaying Percentages Used
• Implemented after GNAT GPL 2015 release
package Linker is
for Switches ("Ada") use ("-Wl,--gc-sections", "-Wl,--print-memory-usage");
end Linker;
18
20. The Bare-Board Runtime Libraries
• “SFP” (Small Foot Print”)
– Intended for certification
– A subset of the non-tasking part of the language
• “Full”
– A very large subset of the non-tasking part of the language
• Both provide the Ravenscar tasking subset
• Both are reconfigurable
– You can add or remove functionality and rebuild
• There is also a Zero Footprint “ZFP” runtime
– No tasking
– Almost no object code
20
21. The Runtime Library Names
• Indicate whether Ravenscar is provided
• Indicate the degree of language subset supported
• Indicate the target platform
• Examples
– “zfp-stm32f4”
– “ravenscar-full-stm32f4”
– “ravenscar-sfp-stm32f4”
Ravenscar
tasking
subset
Small
Footprint
subset
Target
Hardware
21
22. Essential Project File Content
• Specify the runtime library directory path/name
• Specify the platform name
• Both can be specified on the command-line but easier in gpr file
for Runtime ("Ada") use "ravenscar-sfp-stm32f4";
for Target use "arm-eabi";
Basename sufficient
when in default
location
for Runtime ("Ada") use "/path/to/ravenscar-full-stm32f429";
22
23. The Last Chance Handler (“LCH”)
• Specifies response to unhandled exceptions
– Since exception propagation is not supported in some RTLs
– The last thing executed in that case
• A procedure
• Semantics
– Called automatically by compiled code
– Must never return to caller (loop forever, reset, etc.)
• Default version does nothing but loop
• A user-defined version can override default
23
25. “Hello World” of Embedded Systems
• Blinks LEDs, of course!
• Located in the compiler installation tree
– Directory name is “demo_leds-stm32f4”
• In Windows, with default installation choice:
• Contains a GNAT project file
• Located it and invoke GPS with it now
C:GNAT2015shareexamplesgnat-crossdemo_leds-stm32f4
demo_leds.gpr
25
29. Load Into Flash and Execute
• Load the program into FLASH using toolbar icon
• Program will start automatically after loading
– You may need to reset the board using the black button
– Sometimes you must cycle power to the board
29
30. Loaded and Running
Plugin loads
the image Push the blue User
button to change the
LED rotation directionUser LEDs
30
31. Troubleshooting Load/Debug In GPS
• If GPS toolbar icon cannot work for some reason…
• Terminate the debug session in GPS
• Open a command line and invoke st-util there
– It will connect to the board, emit some messages, and wait for
GDB server commands
32. Command Line st-util for Debugging
• In GPS, start the debugger via the menu
– Apply the “Debug -> Initialize -> demo” menu
32
37. Main Subprogram
with Driver; pragma Unreferenced (Driver);
-- The Driver package contains the task that actually controls the app so
-- although it is not referenced directly in the main procedure, we need it
-- in the closure of the context clauses so that it will be included in the
-- executable.
with Last_Chance_Handler; pragma Unreferenced (Last_Chance_Handler);
-- The "last chance handler" is the user-defined routine that is called when
-- an exception is propagated. We need it in the executable, therefore it
-- must be somewhere in the closure of the context clauses.
with System;
procedure Demo is
pragma Priority (System.Priority'First);
begin
loop
null;
end loop;
end Demo;
37
38. Setting Tasks’ Stacks and Priorities
• For any task created, set the stack to around 4K
– The default is far too large for these boards
– Can make it larger if necessary
• Can set the priority similarly, as needed
– Remember there is a default applied already
package Driver is
task Controller is
pragma Storage_Size (4 * 1024);
end Controller;
end Driver;
package Driver is
task Controller
with Storage_Size => (4 * 1024);
end Driver;
OR
38
39. with LEDs; use LEDs;
with Button; use Button;
with Ada.Real_Time; use Ada.Real_Time;
package body Driver is
type Index is mod 4;
Pattern : constant array (Index) of User_LED := (Orange, Red, Blue, Green);
task body Controller is
Period : constant Time_Span := Milliseconds (75); -- arbitrary
Next_Start : Time := Clock;
Next_LED : Index := 0;
begin
loop
Off (Pattern (Next_LED));
if Button.Current_Direction = Counterclockwise then
Next_LED := Next_LED - 1;
else
Next_LED := Next_LED + 1;
end if;
On (Pattern (Next_LED));
Next_Start := Next_Start + Period;
delay until Next_Start;
end loop;
end Controller;
end Driver; 39
40. package Button is
pragma Elaborate_Body;
type Directions is (Clockwise, Counterclockwise);
function Current_Direction return Directions;
end Button;
Button Interface
• Pressing the blue User button changes the value returned by the
“current direction” function
40
41. with Ada.Interrupts.Names;
with Ada.Real_Time; use Ada.Real_Time;
with Registers; use Registers;
with STM32F4; use STM32F4;
with STM32F4.GPIO; use STM32F4.GPIO;
package body Button is
protected Button is
function Current_Direction return Directions;
…
end Button;
protected body Button is
function Current_Direction return Directions is …
procedure Interrupt_Handler is …
end Button;
function Current_Direction return Directions is
begin
return User_Button.Current_Direction;
end Current_Direction;
procedure Initialize is …
begin
Initialize;
end Button;
41
42. protected Button is
pragma Interrupt_Priority;
function Current_Direction return Directions;
private
procedure Interrupt_Handler;
pragma Attach_Handler
(Interrupt_Handler, Ada.Interrupts.Names.EXTI0_Interrupt);
Direction : Directions := Clockwise; -- arbitrary
Last_Time : Time := Clock;
end Button;
42
43. Debounce_Time : constant Time_Span := Milliseconds (500); -- semi-arbitrary
protected body Button is
function Current_Direction return Directions is
begin
return Button.Current_Direction;
end Current_Direction;
procedure Interrupt_Handler is
Now : constant Time := Clock;
begin
-- Clear interrupt
EXTI.PR (0) := 1;
-- Debouncing
if Now - Last_Time >= Debounce_Time then
if Direction = Counterclockwise then
Direction := Clockwise;
else
Direction := Counterclockwise;
end if;
Last_Time := Now;
end if;
end Interrupt_Handler;
end Button;
43
44. …
with Registers; use Registers;
with STM32F4; use STM32F4;
with STM32F4.GPIO; use STM32F4.GPIO;
package body Button is
…
procedure Initialize is
RCC_AHB1ENR_GPIOA : constant Word := 16#01#;
begin
-- Enable clock for GPIO-A
RCC.AHB1ENR := RCC.AHB1ENR or RCC_AHB1ENR_GPIOA;
-- Configure PA0
GPIOA.MODER (0) := Mode_IN;
GPIOA.PUPDR (0) := No_Pull;
-- Select PA0 for EXTI0
SYSCFG.EXTICR1 (0) := 0;
-- Interrupt on rising edge
EXTI.FTSR (0) := 0;
EXTI.RTSR (0) := 1;
EXTI.IMR (0) := 1;
end Initialize;
begin
Initialize;
end Button; 44
45. Using the LCH with the Debugger
• Put a breakpoint on the first statement
• If breakpoint is hit, use GPS to examine the memory at Msg.all to
show the designated string
– Use the “Debug->Data->Examine Memory” menu
– Put “msg.all” into the Locations entry pane (no quotes)
…
package body Last_Chance_Handler is
procedure Last_Chance_Handler (Msg : System.Address; Line : Integer) is
begin
Off (Green);
…
end Last_Chance_Handler;
end Last_Chance_Handler;
45
47. STM32F4 Documentation
• For devices across the entire STM32F4 family
– GPIO, Timers, etc.
– “RM0090 Reference manual”
– Subtitled “STM32F405xx/07xx, STM32F415xx/17xx,
STM32F42xxx and STM32F43xxx advanced ARM-based 32-bit
MCUs”
– Also known as file “DM0003120”
• Specific to the STM32F4 Discovery board
– “UM1472 User manual”
– Subtitled “Discovery kit for STM32F407/417 lines”
– Also known as file “DM00039084”
47
48. GNAT and GPS Documentation
• The GNAT Cross User Guide
– “GNAT User's Guide Supplement for Cross Platforms”
– Especially see the tutorial: “ARM-ELF Topics and Tutorial”
• GPS Users Guide
48
49. The ARM GitHub Repository
• https://github.com/AdaCore/bareboard
• Makes everything much easier!
• Adds significant functionality
• Contents, currently for STM32F4 products:
– Device drivers
– Complete demonstration projects for drivers
– Components (using drivers) e.g., Gyro and Accelerometer
– Complete demonstration projects for components
– Larger applications
• Trains, and Game of Life, both on STM32F429
• Licensed for both proprietary and Free apps
49