The document presents three key points about learning:
1. Simply telling someone information likely results in forgetting;
2. Showing how to do something may lead to some remembering;
3. True understanding comes from actively involving the learner.
This document discusses object-oriented design principles and concepts. It begins with an example comparing procedural, object-based, and object-oriented approaches to modeling a room temperature regulation system. It then defines key OO concepts like abstraction, encapsulation, inheritance, and polymorphism. The document discusses the differences between classes and objects, and defines an object as having identity, state, and behavior. It covers various object relationships like "is-a" and "has-a" and when to use composition over inheritance. The document also introduces the concept of value objects.
A Big Ball of Mud is software that lacks perceivable architecture and structure. It is haphazardly constructed due to business pressures and developer turnover. Symptoms of bad quality software include rigidity, fragility, immobility, viscosity, needless repetition, needless complexity, and opacity. The code is difficult to change, break, reuse, and understand. Possible solutions include principles like DRY, YAGNI, and SOLID design patterns.
C#, .NET, Java - General Naming and Coding Conventionsashokguduru
A group of professionals from different fields get into an argument about which profession is the oldest. A physician claims medicine is the oldest since surgery was required to create Eve from Adam's rib. A civil engineer argues that civil engineering was the first profession since God created order from chaos in Genesis. A computer scientist smiles and confidently points out that someone must have created the original chaos, implying that computer science or a related field may have been the first of all.
This document discusses object oriented design principles. It begins with an introduction and agenda. It then covers several object oriented design principles including the open-closed principle, single responsibility principle, interface segregation principle, Liskov substitution principle, and dependency inversion principle. Examples are provided for each. It also discusses bad designs, anti-patterns, and some "evil stuff" to avoid like singletons. The document concludes with a review of key principles like encapsulation, composition over inheritance, programming to interfaces, and loose coupling.
Does your code spark joy? Refactoring techniques to make your life easier.Juciellen Cabrera
This document discusses refactoring techniques to improve code quality. It begins by defining refactoring as changing code internally to improve understandability and maintainability without altering external behavior. It then lists common "code smells" that indicate need for refactoring such as duplicated code, long functions, and comments. The document proceeds to outline specific refactoring techniques including extracting functions, renaming variables, replacing conditionals with polymorphism, and separating queries from modifiers. It emphasizes taking small, incremental steps and the importance of testing during refactoring.
For many years Object Oriented and Functional Programming have been considered diametrically opposite programming paradigms, with opposite communities.
Here we take the opposite point of view: they're two puppies from the same litter. Going through the well known SOLID Principles for good Object Oriented design and describing how some use of functional principles help improve the code.
JAVASCRIPT PERFORMANCE PATTERN - A PresentationHabilelabs
Let's have an idea about JAVASCRIPT PERFORMANCE PATTERN, what is it? why do we need to use this? Etc.
Check out this presentation for all you need to know about javascript performance patterns.
This document discusses object-oriented design principles and concepts. It begins with an example comparing procedural, object-based, and object-oriented approaches to modeling a room temperature regulation system. It then defines key OO concepts like abstraction, encapsulation, inheritance, and polymorphism. The document discusses the differences between classes and objects, and defines an object as having identity, state, and behavior. It covers various object relationships like "is-a" and "has-a" and when to use composition over inheritance. The document also introduces the concept of value objects.
A Big Ball of Mud is software that lacks perceivable architecture and structure. It is haphazardly constructed due to business pressures and developer turnover. Symptoms of bad quality software include rigidity, fragility, immobility, viscosity, needless repetition, needless complexity, and opacity. The code is difficult to change, break, reuse, and understand. Possible solutions include principles like DRY, YAGNI, and SOLID design patterns.
C#, .NET, Java - General Naming and Coding Conventionsashokguduru
A group of professionals from different fields get into an argument about which profession is the oldest. A physician claims medicine is the oldest since surgery was required to create Eve from Adam's rib. A civil engineer argues that civil engineering was the first profession since God created order from chaos in Genesis. A computer scientist smiles and confidently points out that someone must have created the original chaos, implying that computer science or a related field may have been the first of all.
This document discusses object oriented design principles. It begins with an introduction and agenda. It then covers several object oriented design principles including the open-closed principle, single responsibility principle, interface segregation principle, Liskov substitution principle, and dependency inversion principle. Examples are provided for each. It also discusses bad designs, anti-patterns, and some "evil stuff" to avoid like singletons. The document concludes with a review of key principles like encapsulation, composition over inheritance, programming to interfaces, and loose coupling.
Does your code spark joy? Refactoring techniques to make your life easier.Juciellen Cabrera
This document discusses refactoring techniques to improve code quality. It begins by defining refactoring as changing code internally to improve understandability and maintainability without altering external behavior. It then lists common "code smells" that indicate need for refactoring such as duplicated code, long functions, and comments. The document proceeds to outline specific refactoring techniques including extracting functions, renaming variables, replacing conditionals with polymorphism, and separating queries from modifiers. It emphasizes taking small, incremental steps and the importance of testing during refactoring.
For many years Object Oriented and Functional Programming have been considered diametrically opposite programming paradigms, with opposite communities.
Here we take the opposite point of view: they're two puppies from the same litter. Going through the well known SOLID Principles for good Object Oriented design and describing how some use of functional principles help improve the code.
JAVASCRIPT PERFORMANCE PATTERN - A PresentationHabilelabs
Let's have an idea about JAVASCRIPT PERFORMANCE PATTERN, what is it? why do we need to use this? Etc.
Check out this presentation for all you need to know about javascript performance patterns.
The document discusses several object-oriented design principles including DRY (Don't Repeat Yourself), SLAP (Single Layer of Abstraction Principle), and OCP (Open-Closed Principle). It provides examples of code that violates these principles by duplicating logic, having methods that operate at different abstraction levels, and being closed for extension. The examples demonstrate how to refactor the code to follow the principles through techniques like extracting duplicate logic, breaking methods into smaller focused pieces, and designing classes to be open for extension without modifying existing code.
This document introduces the SOLID principles of object-oriented design: Single responsibility, Open-closed, Liskov substitution, Interface segregation, and Dependency inversion. Each principle is explained with examples of good and bad code. The principles promote high cohesion, loose coupling, and flexibility through abstraction. Following SOLID helps avoid complex, fragile code that is difficult to refactor and extend over time.
Core Java Programming Language (JSE) : Chapter IV - Expressions and Flow Cont...WebStackAcademy
Expressions perform operations on data and move data around. Some expressions will be evaluated for their results, some for their side effects, some for both. An expression can have three kinds of result:
a value, such as the result of: (4 * i)
a variable, such as the result of: i = 4
nothing (in the case of an invocation of a method declared as void)
An expression that results in a variable is called an lvalue in C++ and many other languages. A variable expression in Java is the same thing, the Java Language Specification just uses the name variable instead of lvalue. Such an expression can be used on the left hand side of an assignment operator. Side effects come about when an expression includes an assignment, increment, decrement, or method invocation.
In Java language there are several keywords that are used to alter the flow of the program. Statements can be executed multiple times or only under a specific condition. The if, else, and switch statements are used for testing conditions, the while and for statements to create cycles, and the break and continue statements to alter a loop.
When the program is run, the statements are executed from the top of the source file to the bottom. One by one.
The document discusses 10 things you should never do with PL/SQL, but then argues you should always do the opposite. It recommends asking for help when stuck, taking breaks to avoid burnout, sharing knowledge with others, questioning experts, properly encapsulating code, allowing peer code reviews, designing for maintainability, and planning for future changes. Overall it emphasizes teamwork, self-care, knowledge sharing, and creating sustainable code over time.
Protecting JavaScript source code using obfuscation - OWASP Europe Tour 2013 ...AuditMark
The goal of code obfuscation is to delay the understanding of what a program does. It can be used, for example, in scenarios where the code contains Intellectual Property (algorithms) or when the owner wants to prevent a competitor for stealing and reusing the code. To achieve it, an obfuscation transformation translates easy to understand code into a much harder to understand form. But in order to be resilient, obfuscation transformations need also to resist automatic reversal performed using static or dynamic code analysis techniques. This presentation focuses on the specific case of JavaScript source obfuscation, main usage cases, presents some obfuscation examples and their value in providing real protection against reverse-engineering.
This document discusses JavaScript code obfuscation. It begins by defining code obfuscation and distinguishing it from encryption. It notes that obfuscation transforms code to make it harder to understand or modify, while still remaining executable. The document then outlines various metrics for measuring obfuscation, including potency, resilience, stealthiness, execution cost, and maintainability. It provides examples to illustrate each metric. Finally, it discusses practical obfuscation of JavaScript code and challenges that techniques like static and dynamic code analysis pose to obfuscation. The overall document serves to provide concepts and metrics for understanding JavaScript code obfuscation.
It has been said that one should code as if the person maintaining the code is a violent psychopath who knows where you live. But why do we work with psychopaths? That question unfortunately cannot be answered in this presentation. However, we can shed some light on how to code for readability hopefully avoiding the problem altogether.
Readable code is about a lot more than producing beautiful code. In fact, it has nothing really to do with the beauty of the code and everything to do with the ability to quickly understand what the code does.
In this presentation we will discuss why readable code is so important. We will cover six commonly reoccurring patterns that made code hard to read, why they occur, and how they can easily be avoided:
* Deep Nesting
* Unnecessary Generalization
* Ambiguous Naming
* Hard to Follow Flow of Execution
* Code Style vs. Individualism
* Code Comments
These concepts may be applied to any programming language.
The document summarizes ideas for refactoring legacy code, including safely refactoring procedural code, better testing with Groovy, and managing dependencies. It also discusses social challenges like morale and politics, and provides suggestions for starting refactoring efforts and overcoming obstacles like lack of time or traction. Refactoring techniques presented include extracting methods, dependency injection, and using static methods to reduce dependencies.
This document discusses exception handling in C++. It begins by explaining that errors are inevitable and traditional error handling obscures normal logic. It then introduces exceptions as a way to separate normal and exceptional control flow in C++. Exceptions respect code modularity but can cause problems if code is not exception-safe. The document advocates using resource management objects that ensure cleanup of resources like memory even if an exception occurs. This approach avoids problems with try-catch blocks and does not require language features like finally.
Property based tests and where to find them - Andrzej Jóźwiak - TomTom Webina...Andrzej Jóźwiak
Finding edge cases and hidden bugs is hard for a fixed test data. It would be nice to think about tests as proofs, where certain properties of our code would be tested against generated sets of data. Is this possible? Can a framework prepare test data for us and find examples that do not work?
During this talk, we will explore a technique called Property-based testing (PBT) and how to apply it in our day to day work in Java. We will look how to build good properties and check few non academic examples of properties.
How Functional Programming Made Me a Better DeveloperCameron Presley
With the rise in popularity recently, functional programming has become ""The Next Big Thing"". As of today, there are tons of frameworks and tools that can be used for front-end, back-end, desktop, and mobile development. With that being said, the majority of us are still using object-oriented languages for our day jobs and don't need to learn functional programming, right?
In this talk, I'll walk you through my experiences learning functional programming over the last year, how my style of programming has changed, and how I now think about programming with regards to both functional and object-oriented paradigms.
The session conducted by DSC DYPCOE Pune. It's based on the book "Clean Code" by Robert C. Martin.
Any fool can write a code which machine can understand, good programmer write a code which humans can understand.
The document discusses the Open/Closed Principle (OCP), which states that software entities should be open for extension but closed for modification. It provides an example of an OCP kata using a bowling scoring problem. Programmers are instructed to write tests, then refactor the code by changing the object composite returned by a factory to make each new test pass without modifying existing code. The document also provides credits to people involved in developing and promoting OCP and related katas.
Kernel Recipes 2014 - Writing Code: Keep It Short, Stupid!Anne Nicolas
The traditional KISS principle says that you are stupid if you can’t keep it simple. However, keeping it simple is actually very, very hard. But my lasting impression after reading a lot of code (linux kernel and otherwise) over the years is that there is no excuse for not keeping your code short. And usually, keeping it short is a very good first step towards keeping it simple. This presentation will give some simple tricks and pointers to keep your code short and I will also give some guidelines how to do design and implementation from a high-level point of view. These simple rules should make it easier for you to get your code accepted in open source projects such as the linux kernel.
Hans Verkuil
This document provides guidelines for writing code that will be maintainable for future generations of developers. It discusses thinking about how others and future self will understand the code when revisiting it later. It emphasizes writing code that is robust, readable, and maintainable over time through practices like keeping the code simple, using descriptive naming, commenting when needed, and avoiding duplicate code. The guidelines cover topics like variable and logic structuring, code formatting and style consistency. The overall message is to write code as if it tells a story that is easily understood by others.
Design patterns - The Good, the Bad, and the Anti-PatternBarry O Sullivan
The slides from my talk on design patterns, and when good design patterns turn bad. I go through various patterns I've seen abused (by myself as well as others) and I offer advice on how to avoid these mistakes. Design patterns are a tool, use the right one for the job,
This document provides an overview and examples of the SOLID principles of object-oriented design:
- SRP (Single Responsibility Principle) states that a class should have one, and only one, reason to change. Examples show extracting validation and email sending logic into separate classes.
- OCP (Open-Closed Principle) states that software entities should be open for extension but closed for modification. Examples use inheritance and interfaces to add new filtering logic without modifying existing classes.
- LSP (Liskov Substitution Principle) states that subclasses must be substitutable for their base classes. Examples show invalid implementations that break the base class contract.
- ISP (Interface Segregation Principle
1. The document discusses using Kotlin with MicroProfile for building microservices, teaching Kotlin newer techniques from Java and MicroProfile.
2. It provides examples of configuring Kotlin projects using Maven to work with MicroProfile libraries and annotations for dependency injection and JAX-RS.
3. The examples demonstrate a demo project using Kotlin with Jakarta EE and MicroProfile for entities, repositories, and controllers, and deploying the application to Oracle Cloud.
The document discusses programming concepts like switch case statements and looping. It defines programming as using a computer language to develop applications and scripts. It explains that switch case statements can be used as an alternative to long if statements to compare a variable to integral values. The basic format of a switch case is provided. It also discusses the different types of loops - for, while, and do-while loops. Examples are given to illustrate how each type of loop works.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/building-and-scaling-ai-applications-with-the-nx-ai-manager-a-presentation-from-network-optix/
Robin van Emden, Senior Director of Data Science at Network Optix, presents the “Building and Scaling AI Applications with the Nx AI Manager,” tutorial at the May 2024 Embedded Vision Summit.
In this presentation, van Emden covers the basics of scaling edge AI solutions using the Nx tool kit. He emphasizes the process of developing AI models and deploying them globally. He also showcases the conversion of AI models and the creation of effective edge AI pipelines, with a focus on pre-processing, model conversion, selecting the appropriate inference engine for the target hardware and post-processing.
van Emden shows how Nx can simplify the developer’s life and facilitate a rapid transition from concept to production-ready applications.He provides valuable insights into developing scalable and efficient edge AI solutions, with a strong focus on practical implementation.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
The document discusses several object-oriented design principles including DRY (Don't Repeat Yourself), SLAP (Single Layer of Abstraction Principle), and OCP (Open-Closed Principle). It provides examples of code that violates these principles by duplicating logic, having methods that operate at different abstraction levels, and being closed for extension. The examples demonstrate how to refactor the code to follow the principles through techniques like extracting duplicate logic, breaking methods into smaller focused pieces, and designing classes to be open for extension without modifying existing code.
This document introduces the SOLID principles of object-oriented design: Single responsibility, Open-closed, Liskov substitution, Interface segregation, and Dependency inversion. Each principle is explained with examples of good and bad code. The principles promote high cohesion, loose coupling, and flexibility through abstraction. Following SOLID helps avoid complex, fragile code that is difficult to refactor and extend over time.
Core Java Programming Language (JSE) : Chapter IV - Expressions and Flow Cont...WebStackAcademy
Expressions perform operations on data and move data around. Some expressions will be evaluated for their results, some for their side effects, some for both. An expression can have three kinds of result:
a value, such as the result of: (4 * i)
a variable, such as the result of: i = 4
nothing (in the case of an invocation of a method declared as void)
An expression that results in a variable is called an lvalue in C++ and many other languages. A variable expression in Java is the same thing, the Java Language Specification just uses the name variable instead of lvalue. Such an expression can be used on the left hand side of an assignment operator. Side effects come about when an expression includes an assignment, increment, decrement, or method invocation.
In Java language there are several keywords that are used to alter the flow of the program. Statements can be executed multiple times or only under a specific condition. The if, else, and switch statements are used for testing conditions, the while and for statements to create cycles, and the break and continue statements to alter a loop.
When the program is run, the statements are executed from the top of the source file to the bottom. One by one.
The document discusses 10 things you should never do with PL/SQL, but then argues you should always do the opposite. It recommends asking for help when stuck, taking breaks to avoid burnout, sharing knowledge with others, questioning experts, properly encapsulating code, allowing peer code reviews, designing for maintainability, and planning for future changes. Overall it emphasizes teamwork, self-care, knowledge sharing, and creating sustainable code over time.
Protecting JavaScript source code using obfuscation - OWASP Europe Tour 2013 ...AuditMark
The goal of code obfuscation is to delay the understanding of what a program does. It can be used, for example, in scenarios where the code contains Intellectual Property (algorithms) or when the owner wants to prevent a competitor for stealing and reusing the code. To achieve it, an obfuscation transformation translates easy to understand code into a much harder to understand form. But in order to be resilient, obfuscation transformations need also to resist automatic reversal performed using static or dynamic code analysis techniques. This presentation focuses on the specific case of JavaScript source obfuscation, main usage cases, presents some obfuscation examples and their value in providing real protection against reverse-engineering.
This document discusses JavaScript code obfuscation. It begins by defining code obfuscation and distinguishing it from encryption. It notes that obfuscation transforms code to make it harder to understand or modify, while still remaining executable. The document then outlines various metrics for measuring obfuscation, including potency, resilience, stealthiness, execution cost, and maintainability. It provides examples to illustrate each metric. Finally, it discusses practical obfuscation of JavaScript code and challenges that techniques like static and dynamic code analysis pose to obfuscation. The overall document serves to provide concepts and metrics for understanding JavaScript code obfuscation.
It has been said that one should code as if the person maintaining the code is a violent psychopath who knows where you live. But why do we work with psychopaths? That question unfortunately cannot be answered in this presentation. However, we can shed some light on how to code for readability hopefully avoiding the problem altogether.
Readable code is about a lot more than producing beautiful code. In fact, it has nothing really to do with the beauty of the code and everything to do with the ability to quickly understand what the code does.
In this presentation we will discuss why readable code is so important. We will cover six commonly reoccurring patterns that made code hard to read, why they occur, and how they can easily be avoided:
* Deep Nesting
* Unnecessary Generalization
* Ambiguous Naming
* Hard to Follow Flow of Execution
* Code Style vs. Individualism
* Code Comments
These concepts may be applied to any programming language.
The document summarizes ideas for refactoring legacy code, including safely refactoring procedural code, better testing with Groovy, and managing dependencies. It also discusses social challenges like morale and politics, and provides suggestions for starting refactoring efforts and overcoming obstacles like lack of time or traction. Refactoring techniques presented include extracting methods, dependency injection, and using static methods to reduce dependencies.
This document discusses exception handling in C++. It begins by explaining that errors are inevitable and traditional error handling obscures normal logic. It then introduces exceptions as a way to separate normal and exceptional control flow in C++. Exceptions respect code modularity but can cause problems if code is not exception-safe. The document advocates using resource management objects that ensure cleanup of resources like memory even if an exception occurs. This approach avoids problems with try-catch blocks and does not require language features like finally.
Property based tests and where to find them - Andrzej Jóźwiak - TomTom Webina...Andrzej Jóźwiak
Finding edge cases and hidden bugs is hard for a fixed test data. It would be nice to think about tests as proofs, where certain properties of our code would be tested against generated sets of data. Is this possible? Can a framework prepare test data for us and find examples that do not work?
During this talk, we will explore a technique called Property-based testing (PBT) and how to apply it in our day to day work in Java. We will look how to build good properties and check few non academic examples of properties.
How Functional Programming Made Me a Better DeveloperCameron Presley
With the rise in popularity recently, functional programming has become ""The Next Big Thing"". As of today, there are tons of frameworks and tools that can be used for front-end, back-end, desktop, and mobile development. With that being said, the majority of us are still using object-oriented languages for our day jobs and don't need to learn functional programming, right?
In this talk, I'll walk you through my experiences learning functional programming over the last year, how my style of programming has changed, and how I now think about programming with regards to both functional and object-oriented paradigms.
The session conducted by DSC DYPCOE Pune. It's based on the book "Clean Code" by Robert C. Martin.
Any fool can write a code which machine can understand, good programmer write a code which humans can understand.
The document discusses the Open/Closed Principle (OCP), which states that software entities should be open for extension but closed for modification. It provides an example of an OCP kata using a bowling scoring problem. Programmers are instructed to write tests, then refactor the code by changing the object composite returned by a factory to make each new test pass without modifying existing code. The document also provides credits to people involved in developing and promoting OCP and related katas.
Kernel Recipes 2014 - Writing Code: Keep It Short, Stupid!Anne Nicolas
The traditional KISS principle says that you are stupid if you can’t keep it simple. However, keeping it simple is actually very, very hard. But my lasting impression after reading a lot of code (linux kernel and otherwise) over the years is that there is no excuse for not keeping your code short. And usually, keeping it short is a very good first step towards keeping it simple. This presentation will give some simple tricks and pointers to keep your code short and I will also give some guidelines how to do design and implementation from a high-level point of view. These simple rules should make it easier for you to get your code accepted in open source projects such as the linux kernel.
Hans Verkuil
This document provides guidelines for writing code that will be maintainable for future generations of developers. It discusses thinking about how others and future self will understand the code when revisiting it later. It emphasizes writing code that is robust, readable, and maintainable over time through practices like keeping the code simple, using descriptive naming, commenting when needed, and avoiding duplicate code. The guidelines cover topics like variable and logic structuring, code formatting and style consistency. The overall message is to write code as if it tells a story that is easily understood by others.
Design patterns - The Good, the Bad, and the Anti-PatternBarry O Sullivan
The slides from my talk on design patterns, and when good design patterns turn bad. I go through various patterns I've seen abused (by myself as well as others) and I offer advice on how to avoid these mistakes. Design patterns are a tool, use the right one for the job,
This document provides an overview and examples of the SOLID principles of object-oriented design:
- SRP (Single Responsibility Principle) states that a class should have one, and only one, reason to change. Examples show extracting validation and email sending logic into separate classes.
- OCP (Open-Closed Principle) states that software entities should be open for extension but closed for modification. Examples use inheritance and interfaces to add new filtering logic without modifying existing classes.
- LSP (Liskov Substitution Principle) states that subclasses must be substitutable for their base classes. Examples show invalid implementations that break the base class contract.
- ISP (Interface Segregation Principle
1. The document discusses using Kotlin with MicroProfile for building microservices, teaching Kotlin newer techniques from Java and MicroProfile.
2. It provides examples of configuring Kotlin projects using Maven to work with MicroProfile libraries and annotations for dependency injection and JAX-RS.
3. The examples demonstrate a demo project using Kotlin with Jakarta EE and MicroProfile for entities, repositories, and controllers, and deploying the application to Oracle Cloud.
The document discusses programming concepts like switch case statements and looping. It defines programming as using a computer language to develop applications and scripts. It explains that switch case statements can be used as an alternative to long if statements to compare a variable to integral values. The basic format of a switch case is provided. It also discusses the different types of loops - for, while, and do-while loops. Examples are given to illustrate how each type of loop works.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/building-and-scaling-ai-applications-with-the-nx-ai-manager-a-presentation-from-network-optix/
Robin van Emden, Senior Director of Data Science at Network Optix, presents the “Building and Scaling AI Applications with the Nx AI Manager,” tutorial at the May 2024 Embedded Vision Summit.
In this presentation, van Emden covers the basics of scaling edge AI solutions using the Nx tool kit. He emphasizes the process of developing AI models and deploying them globally. He also showcases the conversion of AI models and the creation of effective edge AI pipelines, with a focus on pre-processing, model conversion, selecting the appropriate inference engine for the target hardware and post-processing.
van Emden shows how Nx can simplify the developer’s life and facilitate a rapid transition from concept to production-ready applications.He provides valuable insights into developing scalable and efficient edge AI solutions, with a strong focus on practical implementation.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
4. Puzzle
Imagine arranging 6 glasses in a row and filling three
of them with water like this….
Every time you pick up a glass it counts as a move.
What is the smallest number of moves that needs to be
made in order to leave the glasses alternating full and
empty? -– Explain your answer.
4
28. Simple things should be simple and complex things
should be possible.
- Alan Kay
28
29. Puzzle
Imagine arranging 6 glasses in a row and filling three of them
with water like this….
Every time you pick up a glass it counts as a move. What is the
smallest number of moves that needs to be made in order to leave
the glasses alternating full and empty? -– Explain your answer.
29
30. Puzzle
Imagine arranging 6 glasses in a row and filling three of them
with water like this….
Every time you pick up a glass it counts as a move. What is the
smallest number of moves that needs to be made in order to leave
the glasses alternating full and empty? -– Explain your answer.
30