Presentation on the principles, philosophy and a few applications of object oriented programming along with a few pointers on how to effectively code. Presented at a session aimed at undergrad computer science students at the University of Pune.
Present along with Mr. Anirudh Tomer and Mr. Toshish Jawale.
All 23 classical GOF Design Patterns with illustrations that try to catch some essence of them.
Used in a presentation for Eindhoven Developers, March 17, 2015 http://www.meetup.com/Eindhoven-Developers-Meetup/events/220477660/
All 23 classical GOF Design Patterns with illustrations that try to catch some essence of them.
Used in a presentation for Eindhoven Developers, March 17, 2015 http://www.meetup.com/Eindhoven-Developers-Meetup/events/220477660/
All 'classic' 23 GOF Design Patterns, illustrated by Nelleke Verhoeff (Red Cheeks Factory). Trying to show the essence of each Design Pattern, with some examples from PHP.
Second version of my Design Patterns presentation. This presentation was held February 13, 2014 at the 010PHP meeting in Rotterdam. Presentation was in Dutch.
Practical and conceptual overview of Javascript prototype paradigm, how to use prototypes, how do they work, and how do they differ from classes, and why there are no real classes in Javascript.
There are several JavaScript libraries available in the world of web programming. And, as the usage and complexity is increasing day by day, sometimes it becomes very difficult and confusing to understand and create modules using those libraries, especially for those having strong background of Object Oriented Languages.
So this one hour session will make an effort to go into the very basics of JavaScript and put a base for writing modular JavaScript code.
Learn basics of Xcode, Objective-C syntax, Object allocation, message passing, category, core obj-c classes, how view-controllers work through some basic example apps.
JavaScript language plays a very important role in Web 2.0 application development. JavaScript has its own characteristics different than object-oriented languages and it's not easy for developers to understand.
This presentation covers major advanced topics in JavaScript languages, including prototype chain, identifier resolving, "this" keyword, "new" operator, execution context and scope chain and closure. Besides that, it also covers best practices when using JavaScript.
All 'classic' 23 GOF Design Patterns, illustrated by Nelleke Verhoeff (Red Cheeks Factory). Trying to show the essence of each Design Pattern, with some examples from PHP.
Second version of my Design Patterns presentation. This presentation was held February 13, 2014 at the 010PHP meeting in Rotterdam. Presentation was in Dutch.
Practical and conceptual overview of Javascript prototype paradigm, how to use prototypes, how do they work, and how do they differ from classes, and why there are no real classes in Javascript.
There are several JavaScript libraries available in the world of web programming. And, as the usage and complexity is increasing day by day, sometimes it becomes very difficult and confusing to understand and create modules using those libraries, especially for those having strong background of Object Oriented Languages.
So this one hour session will make an effort to go into the very basics of JavaScript and put a base for writing modular JavaScript code.
Learn basics of Xcode, Objective-C syntax, Object allocation, message passing, category, core obj-c classes, how view-controllers work through some basic example apps.
JavaScript language plays a very important role in Web 2.0 application development. JavaScript has its own characteristics different than object-oriented languages and it's not easy for developers to understand.
This presentation covers major advanced topics in JavaScript languages, including prototype chain, identifier resolving, "this" keyword, "new" operator, execution context and scope chain and closure. Besides that, it also covers best practices when using JavaScript.
Tell Me Quando - Implementing Feature FlagsJorge Ortiz
Change is a constant in iOS development. You must make your codebase embrace the newest features while keeping a stable app and avoiding creating a merge nightmare for you and your team. How can you do that?
In this session, I will cover what feature flags are, when to use them, how to implement them and how to enable/disable them. I will show how to make an implementation in an existing codebase by doing some live coding. As a bonus, I will show how to test different execution paths.
Key takeaways:
- Understand the benefits of using feature flags in your application
- Learn how to implement them in a real use case
- Integrate feature flags in your continuous integration
- Improve your refactoring skills
Live coding only available in video or in person :-)
Code can be found here: https://bit.ly/sh22-realm
This presentation talks about the Dependency Injection design principle, providing an overview of the pattern and its benefits while showing examples on how to apply it using Autofac, a specific dependency injection tool for .NET development.
Autofac: http://code.google.com/p/autofac/
A book on DI: http://www.manning.com/seemann/
Building nTier Applications with Entity Framework Services (Part 1)David McCarter
Learn how to build real world nTier applications with the new Entity Framework and related services. With this new technology built into .NET, you can easily wrap an object model around your database and have all the data access automatically generated or use your own stored procedures and views. The session will demonstrate how to create and consume these new technologies from the ground up and focus on database modeling including views and stored procedures along with coding against the model via LINQ. Dynamic data website will also be demonstrated. Lots of code! Make sure to attend Part 2.
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...Maarten Balliauw
Ever wondered how IDE’s are built? In this talk, we’ll skip the marketing bit and dive into the architecture and implementation of JetBrains Rider.
We’ll look at how and why we have built (and open sourced) a reactive protocol, and how the IDE uses a “microservices” architecture to communicate with the debugger, Roslyn, a WPF renderer and even other tools like Unity3D. We’ll explore how things are wired together, both in-process and across those microservices. Let’s geek out!
Building nTier Applications with Entity Framework Services (Part 1)David McCarter
Learn how to build real world nTier applications with the new Entity Framework and related services. With this new technology built into .NET, you can easily wrap an object model around your database and have all the data access automatically generated or use your own stored procedures and views. The session will demonstrate how to create and consume these new technologies from the ground up and focus on database modeling including views and stored procedures along with coding against the model via LINQ. Dynamic data website will also be demonstrated.
Functional Patterns for C++ Multithreading (C++ Dev Meetup Iasi)Ovidiu Farauanu
Discussing Design Patterns and OOP popularity,
Multithreading and OOP,
Functional Design for Multithreaded programming
and how Multithreading does not mean always concurency but multicore paralelism.
Drupal 8 has made significant improvements towards the ability to stage configuration. But what about content staging? Has it gotten easier in Drupal 8?
This session is targeted towards site builders where we will continue to explore the content staging solution that is being built for Drupal 8 and that was initially presented in Austin. It's a solution that brings vast improvements to sites owners that need to stage or replicate content across sites.
Further, site builders will learn how this solution also applies to broader and sometimes more exciting use cases - content sharing and filtered replication across networks of sites and applications.
The recorded video is available here: https://amsterdam2014.drupal.org/session/content-staging-drupal-8-continued
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...Maarten Balliauw
Ever wondered how IDE’s are built? In this talk, we’ll skip the marketing bit and dive into the architecture and implementation of JetBrains Rider. We’ll look at how and why we have built (and open sourced) a reactive protocol, and how the IDE uses a “microservices” architecture to communicate with the debugger, Roslyn, a WPF renderer and even other tools like Unity3D. We’ll explore how things are wired together, both in-process and across those microservices. Let’s geek out!
JavaScript and popular programming paradigms (OOP, AOP, FP, DSL). Overview of the language to see what tools we can leverage to reduce complexity of our projects.
This part goes over language features and looks at OOP and AOP with JavaScript.
The presentation was delivered at ClubAJAX on 2/2/2010.
Blog post: http://lazutkin.com/blog/2010/feb/5/exciting-js-1/
Continued in Part II: http://www.slideshare.net/elazutkin/exciting-javascript-part-ii
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Securing your Kubernetes cluster_ a step-by-step guide to success !
OOP, API Design and MVP
1. SOLID OOPS
ConvertingReal world entities into programming Objects ;
understanding its applications ; API designing, MVC framework
2. We apologize for wrong session title
Lets know each other
Your expectations
Our aim
Why should you join this session
Goodies for active participants
Introduction
3. What is “Real”?
Everything outside of your program is
Real.
Even your own program is a Real World
Entity for some other program or even for
your own program!
In short
Real World Entity…
4. Because these are all the “things” on
which we want to work upon.
Yes, and by work we do not mean, just
writing the code!
Why do we bother about this?
5. Objects? Why?
How are they introduced in the
programming world?
Where are they used often?
State and behaviour
Who should use it?
Correlating to programming
objects
6. We separate our real world entities in
different groups
Object is an instance of a class
Ball
instances of
What is this class?
7. How classes are organized?
Why classes need to be organized?
Is there any standard way to do it?
If yes, whats it?
Organization
8. How these different attributes of a class
are defined?
fields/properties - state
methods/functions - behavior
constructors/initializers
destructors
What class contains?
9. What is the object oriented way of getting
rich ?
— Inheritance
Relations between the classes
By the way, are you good at relations?
Relations
11. Something you use to keep your stuff from
mixing together
Folders
Drives
A customized, more sophisticated package
Examples familiar to you are,
◦ ZIP file
◦ EXE file
◦ DLL file etc.
Point is, keep your stuff organized.
Package
12. What is Abstraction?
• Abstraction - a concept or idea not associated with
any specific instance
• It is all about perspective
13. Where does abstraction exist?
• Control abstraction
o Abstraction of actions
• Data abstraction
o Abstraction of information
14. How does this relate to
programming?
• Writing functions/subroutines is control
abstraction.
• Datatypes is data abstraction.
16. Example
public class Animal extends
LivingThing{ theChicken = new Animal();
private Location loc; theCat = new Animal();if
private double energyReserves;
(theChicken.isHungry())
public boolean isHungry() { {
return energyReserves <
2.5; theChicken.eat(grains);}
} if (theCat.isHungry()) {
public void eat(Food f) { theCat.eat(mouse);}
// Consume food theCat.moveTo(theSofa);
energyReserves +=
f.getCalories();
}
public void moveTo(Location l)
{
// Move to new location
loc = l;
}}
17. It's relevance with OOP
• Object is an attempt to combine data and control
abstraction
• Polymorphism
• Inheritence
18. Why do this?
• Separate the business logic from the underlying
complexity
• Make it easier to parallelize tasks
• Meaningful amount of details are exposed
• Representation in a similar form in semantics
(meaning) while hiding implementation details.
28. What it actually is
printf(), scanf(), strcmp()
Easy to use and hard to misuse Spec of DS,
functions,
Can be programming language unspecific!! behavior
etc.
Not necessarily a code library, can be just a spec
You can create your own API too
30. Designing Process (based on suggestions by Joshua Bloch)
Write 2 programs and not one
Write API first
◦ Understand the use case
◦ Foresee future extensions (don’t change API often)
◦ A general purpose API vs multiple small API’s
◦ If you can’t name it, its doing either extra or doing less
◦ Don’t surprise the API user, don’t do extra
◦ Remember! You can always add but you can’t remove
◦ Document the API religiously!
◦ Use consistent parameter ordering.
◦ Extra params, use a struct
Code more! API is living thing
Expect to make mistakes. Refactor API!
Encourage others to use it
32. Programming without MVC
I need it
Linked List with GUI
o add a node
o remove a node
o reverse a linked list
Linked list with GUI
______ ______ ______
|__1__| |__5__| |__7__| …
33. Challenges
Data Functions GUI
Structures • Function • Creating
• struct ? signature boxes
• Separate • Flow control • Moving
variables boxes
34. Nightmare begins
typedef struct node{
struct node* nextNode;
…
}Node;
…
Node *linkedlist;
addNewNode(){
while (linkedlist->nextNode!=null){
drawSquare(); //you may have internal D.S. for each square
drawArrow();
}
Node *newNode = (Node*) malloc(sizeof(struct node));
scanf(); // for new values
newNode->val1 = …;
newNode->val2 = …;
linkedlist->nextNode = newNode;
while (linkedlist->nextNode!=null){
drawSquare();
drawArrow();
}
}
35. New requirements
Keep different colors for each node
I want oval nodes not rectangular nodes
I want linked list nodes to be shown in
hierarchy not in straight line.
Make Changes
38. Model View Controller
• Handling data • Display data • Read data
• Save them on from view
file or in • Control user
internal D.S interaction
• Send new
data to model
Roles: Model, View and Controller
39. M-V-C not MVC
Keep them separate
You may create different files
◦ A separate “model.h”
◦ A separate “view.c” (includes model.h)
◦ A separate “controller.c” (includes model.h)
◦ Give deep thought to data structures
Principle of Agnosticism:
each component is unaware of others presence
40. Model
typedef struct node{ C++ or other
struct node* nextNode;
int id; OOP languages
… make finding the
}Node;
int globalId = 0;
context easy
typedef struct linkedList{
Node * headNode;
int id;
int listLength;
}LinkedList;
LinkedList *linkedListPool[];
void addNode(int linkedListId, int index, Node *newNode){
…
}
void removeNode(int linkedListId, Node *node){
…
}
LinkedList* createNewLinkedList(){
LinkedList* newll = (LinkedList*) malloc(sizeof(struct linkedList));
newll->id = globalId++;
newll->headNode = (Node*) malloc(sizeof(struct node));
newll->length = 0;
linkedListPool[globalId] = newll;
return newll;
}
41. View
typedef struct viewNode{
struct viewNode* nextViewNode;
int xLocation, int yLocation;
String color; //#FF3e2A (in hex)
…
}ViewNode;
//Similar to Model create another struct
typedef struct display{
ViewNode* head;
int id;
int length;
}Display;
Display *displayNodeList[];
void addDisplayNode(int viewNodeId, int index, Node *newNode){
//create new ViewNode
//Render UI
…
}
//create new display node like Model
42. Controller
typedef enum input{
ADD,REMOVE,GET_LENGTH…
}Input;
LinkedList* linkedList = createNewLinkedList();
Display* display = createNewDisplay();
//Show a fancy menu
Input input = read input from user;
switch(input){
case ADD:
Node* newNode = //malloc new node;
addNode(linkedList->id,newNode);
addDisplayNode(display->id,newNode);
break;
}