The document discusses guidelines for safer C++ code based on the C++ Core Guidelines. It describes the structure and content of the guidelines, including over 350 rules addressing areas like interfaces, functions, classes, templates and concurrency. It also introduces the Guidelines Support Library (GSL) which provides implementations to help follow the guidelines.
Java generics(Under The Hood Of The Compiler) by Harmeet singhHarmeet Singh(Taara)
Generics are the powerful feature in Java programming language. In JDK 1.5 the Generics are introduce and it create new evolution in java. Generics are major topic and vast topic but in this we only care about some basics for generics.
I was convinced one more time that programmers write programs absolutely carelessly, so that their programs work not because of their skill but due to chance and care of Microsoft or Intel compiler developers. Right it is they who really care and put crutches under our lop-sided programs when necessary.
Java generics(Under The Hood Of The Compiler) by Harmeet singhHarmeet Singh(Taara)
Generics are the powerful feature in Java programming language. In JDK 1.5 the Generics are introduce and it create new evolution in java. Generics are major topic and vast topic but in this we only care about some basics for generics.
I was convinced one more time that programmers write programs absolutely carelessly, so that their programs work not because of their skill but due to chance and care of Microsoft or Intel compiler developers. Right it is they who really care and put crutches under our lop-sided programs when necessary.
In a poorly written code you may often see magic numeric constants whose presence is dangerous by itself. When porting code to a 64-bit platform, these constants may make the code inefficient if they participate in address computation, object size computation or bit operations.
The Monad is one of the most common abstractions in Scala. We frequently use them in Scala and any other languages, but we often didn’t know them by name. While learning functional programming, besides understanding the rules of referential transparency and pure, developers usually get confused with what Monad, Functor, Semigroup, Monoid are.
Watch this session learn how you can create your Monad with the Cats library by implementing pure, flatMap, and tailRecM
Utah Code Camp, Spring 2016. http://utahcodecamp.com In this presentation I describe modern C++. Modern C++ assumes features introduced in the C++11/14 standard. An overview of the new features is presented and some idioms for mdoern C++ based on those features are presented.
This is Work-In-Progress. Developing a series of lectures on C++0x. This will augment my presentations on C++ and Design Pattern. First trial run was done at Interra, Noida in 2009
In a poorly written code you may often see magic numeric constants whose presence is dangerous by itself. When porting code to a 64-bit platform, these constants may make the code inefficient if they participate in address computation, object size computation or bit operations.
The Monad is one of the most common abstractions in Scala. We frequently use them in Scala and any other languages, but we often didn’t know them by name. While learning functional programming, besides understanding the rules of referential transparency and pure, developers usually get confused with what Monad, Functor, Semigroup, Monoid are.
Watch this session learn how you can create your Monad with the Cats library by implementing pure, flatMap, and tailRecM
Utah Code Camp, Spring 2016. http://utahcodecamp.com In this presentation I describe modern C++. Modern C++ assumes features introduced in the C++11/14 standard. An overview of the new features is presented and some idioms for mdoern C++ based on those features are presented.
This is Work-In-Progress. Developing a series of lectures on C++0x. This will augment my presentations on C++ and Design Pattern. First trial run was done at Interra, Noida in 2009
C Language Interview Questions: Data Types, Pointers, Data Structures, Memory...Rowank2
In-depth C programming language interview questions are covered in this post, covering questions on pointers, memory management, data structures, and other advanced subjects. The questions are designed to evaluate the candidate's knowledge of the language's intricacies and sophisticated elements. Candidates can better their language skills and be ready for forthcoming interviews by going through these questions.
C++ provides backwards compatability with C, but you will have an easier time if you stay away from certain C-style programming habits. This presentation outlines traps and pitfalls from C style programming in C++ and recommends pure C++ alternatives that lead to fewer surprises, fewer errors and better code. This presentation hasn't been updated for C++11 and is based on C++03.
Slides from my "Gentle Introduction to Modern C++" presentation from January 20, 2015 at the Dublin C/C++ User Group: www.meetup.com/cppdug/events/219787667/
The code examples are located here: https://github.com/mihaitodor/Presentations/tree/master/cppdug/20.01.2015
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
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/
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
A Sighting of filterA in Typelevel Rite of Passage
The c++coreguidelinesforsavercode
1. The C++ Core
Guidelines for
Safer Code
Rainer Grimm
Training, Coaching and,
Technology Consulting
www.ModernesCpp.de
2. Guidelines
Best Practices for the Usage of C++
Why do we need guidelines?
C++ is a complex language in a complex domain.
A new C++ standard is published all three years.
C++ is used in safety-critical systems.
Reflect your coding habits.
3. Most Prominent Guidelines
MISRA C++
Motor Industry Software Reliability Association
Based on MISRA C
Industry standard in automotive, avionic, and medicine domain
Published 2008 C++03
AUTOSAR C++14
Based on C++14
More and more used in automotive domain (BMW)
C++ Core Guidelines
Community driven
4. Overview
Philosophy
Interfaces
Functions
Classes and class hierarchies
Enumerations
Resource management
Expressions and statements
Error handling
Constants and immutability
Templates and generic programming
Concurrency
The standard library
Guideline support library
5. Syntactic Form
About 350 rules and a few hundred pages
Each rule follows a similar structure
The rule itself
A rule reference number
Reason(s)
Example(s)
Alternative(s)
Exception(s)
Enforcement
See also(s)
Note(s)
Discussion
6. Guidelines Support Library (GSL)
A small library for supporting the guidelines of the C++ core
guidelines.
Implementations are available for
Windows, Clang, and GCC
GSL-lite works with C++98, and C++03
Components
Views
Owner
Assertions
Utilities
Concepts
7. Interfaces
I.11: Never transfer ownership by a raw pointer (T*)
func(value)
func has an independent copy of value and the runtime is the owner
func(pointer*)
pointer is borrowed but can be zero
func is not the owner and must not delete the pointer
func(reference&)
reference is borrowed but can’t be zero
func is not the owner and must not delete the reference
func(std::unique_ptr)
std::unique_ptr is the owner of the pointer
func(std::shared_ptr)
std::shared_ptr is an additional owner of the pointer
std::shared_ptr extends the lifetime of the pointer
8. Interfaces
I.13: Do not pass an array as a single pointer
What if n is wrong?
Use span from the GSL
10. Classes
C.2: Use class if the class has an invariant; use struct if
the data members can vary independently
The data members can vary independently
The data members has an invariant
11. Classes
C.20: If you can avoid defining any default operations, do
C.21: If you define or =delete any default operation,
define or =delete them all
Sticky Bits - Becoming a Rule of Zero Hero
12. Enum
Enum.3: Prefer enum classes over “plain” enums
Can only be accessed in the scope of the enumeration.
Don't implicitly convert to int.
Don't pollute the global namespace.
The default type is int, but you can adjust it.
13. Resource Management
R.1: Manage resources automatically using resource
handles and RAII (Resource Acquisition Is Initialization)
RAII-Idiom (Resource Acquisition Is Initialization)
The lifetime of a resource is bound to an automatic object.
The resource will be initialized in the constructor of the object;
released in the destructor of the object.
Used
Containers of the Standard Template Library and std::string
Smart pointers
Locks
std::jthread (C++20)
17. Concurrency and Parallelism
CP.8: Don’t try to use volatile for synchronization
std::atomic
Atomic (thread-safe) access to shared state.
volatile
Access to special memory, for which read and write optimisations
are not allowed.
Java volatile C++ atomic== C++ volatile!=
18. Concurrency and Parallelism
CP.9: Whenever feasible use tools to validate your
concurrent code
Thread Sanitizer detects data races at runtime.
g++ threadArguments.cpp -fsanitize=thread -g –o threadArguments
skip
20. Error Handling
E.7: State your preconditions
E.8: State your postconditions
Precondition: should hold upon entry in a function.
Postcondition: should hold upon exit from the function
Assertion: should hold at its point in the computation.
22. Constants and Immutability
Physical constness:
The object is const and can not be changed.
Logical constness:
The object is const but could be changed.
23. Templates and Generic Programming
Usage Definition
T.10: Specify concepts for all template arguments
Concepts are a compile-time predicate.
24. Templates and Generic Programming
Core language concepts
Same
DerivedFrom
ConvertibleTo
Common
Integral
Signed Integral
Unsigned Integral
Assignable
Swappable
Comparison concepts
Boolean
EqualityComparable
StrictTotallyOrdered
Object concepts
Destructible
Constructible
DefaultConstructible
MoveConstructible
Copy Constructible
Movable
Copyable
Semiregular
Regular
Callable concepts
Callable
RegularCallable
Predicate
Relation
StrictWeakOrder