Redux saga: managing your side effects. Also: generators in es6Ignacio Martín
Explanation of redux-saga for its use in React and React Native. Contains an explanation about ES6 generators, used in sagas, with emphasis in generators to manage async code.
Redux saga: managing your side effects. Also: generators in es6Ignacio Martín
Explanation of redux-saga for its use in React and React Native. Contains an explanation about ES6 generators, used in sagas, with emphasis in generators to manage async code.
Using Actions and Filters in WordPress to Make a Plugin Your OwnBrian Hogg
Good plugins provide actions and filters to allow others (like you!) to modify some of their functionality without having to either create a whole new plugin from scratch or hack away at the original plugin, losing your changes when that plugin gets updated down the road. Learn how to find these actions and filters in other plugins, and use them to bend the plugin to your will.
Session 3 - 안정민 UI 모듈화로 워라밸 지키기
2019년 9월 6일 네이버 쇼핑 개발자 meet up 행사인 'SHOWROOM' 에 발표된 자료입니다.
보다 자세한 내용은 http://nshop-developer.github.io 을 참고해주세요.
(2019년 9월 30일 오후 오픈 예정)
Object-Oriented JavaScript presentation given at ESRI's 2010 Developer Summit. Slides and code available at http://github.com/kvangork/OOJS-Presentation
Find me on twitter @kvangork
or at my blog: http://prng.vangorkom.org
HELP IN JAVACreate a main method and use these input files to tes.pdffatoryoutlets
For the questions below, use the W3Schools customer orders database. You need to submit
thoroughly tested SQL statements. For your convenience and reference, relevant data model is
attached as a PDF document with the assignment in the Blackboard. Name of this document is
\"Relationship diagram for W3schools order pdf.\" 1) Write a query to show Customers\' Country
wise sales totals. Your query should show Customers\' Country name and the total sale value for
that Country 2) Write a query to show Product wise sales totals. Your query should Product
name and the total sale value for that Product. 3) Write a query to show the number of orders for
each shipper. Your query should show shipper name and the count of orders with the shipper. 4)
Write a query to show number of products in each product category. Your query should show
Category name and number of products in that category 5) Write a query that shows Customers\'
country wise customer count, and order count. Your query should show country name, total
number of customers from that country, and total number of orders from the customers of that
country 6) Write a query that shows the number of products supplied by each Supplier. Your
query should show Country name, supplier name and the count of products supplied by that
supplier. Note: Sale Price Orderdetails.Quantity Products.price (see an example in the class
slides deck) W3SCHOOLS SQL is located at http://www.w3schools.com/sql/default.asp
(Preferred browser is Chrome). On this page you will find a button called \"Try it yourself\".
Click on that button. You will be redirected to a page where you see a list of tables on the right
side of the page. It is highly recommended to click \'Restore Database\' button on this page
during every session. The page contains a box where you can type in an SQL statement
involving the listed tables. You type in your SQL statement in that box and click on \"Run
SQL\'\' button. The results will be displayed if your SQL statement is syntactically correct.
Solution
1. SELECT Customers.Country, SUM(OrderDetails.Quantity * Products.Price) AS Total_Sale
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID=Orders.CustomerID
LEFT JOIN OrderDetails ON Orders.OrderId=OrderDetails.OrderId
LEFT JOIN Products ON OrderDetails.ProductId=Products.ProductId
Group BY Customers.Country;
2. SELECT Products.ProductName, SUM(OrderDetails.Quantity * Products.Price) AS
Total_Sale FROM Customers
LEFT JOIN Orders ON Customers.CustomerID=Orders.CustomerID
LEFT JOIN OrderDetails ON Orders.OrderId=OrderDetails.OrderId
LEFT JOIN Products ON OrderDetails.ProductId=Products.ProductId
Group BY Products.ProductName;
You can edit these query to get other results set..
PLEASE MAKE SURE THE PROGRAM IS ASKING FOR INPUT FROM USER TO ADD OR.pdfmallik3000
PLEASE MAKE SURE THE PROGRAM IS ASKING FOR INPUT FROM USER TO ADD
OR REMOVE NAME. DO NOT HARD CODE NAME. AGAIN MAKE SURE THE
PROGRAM IS ASKING FOR INPUT FROM USER TO ADD OR REMOVE NAME. PLEASE
MAKE SURE THE CODE RUNS WITHOUT ANY ERRORS.
Write a class that maintains the scores for a game application. Implement the addition and
removal function to update the database. The gamescore.txt contains player’ name and score data
record fields separated by comma. For Removal function, uses the name field to select record to
remove the game score record.
Use the List.java, LList.java, Dlink.java, GameEntry.java and gamescore.txt found below
Read gamescore.txt to initialize the Linked list in sorted order by score.
Ask the user to add or remove users to update the sorted linked list.
Display “Name exist” when add an exist name to the list.
Display “Name does not exist” when remove a name not on the list.
List.java File:
/** Source code example for \"A Practical Introduction to Data
Structures and Algorithm Analysis, 3rd Edition (Java)\"
by Clifford A. Shaffer
Copyright 2008-2011 by Clifford A. Shaffer
*/
/** List ADT */
public interface List
{
/**
* Remove all contents from the list, so it is once again empty. Client is
* responsible for reclaiming storage used by the list elements.
*/
public void clear();
/**
* Insert an element at the current location. The client must ensure that
* the list\'s capacity is not exceeded.
*
* @param item
* The element to be inserted.
*/
public void insert(E item);
/**
* Append an element at the end of the list. The client must ensure that
* the list\'s capacity is not exceeded.
*
* @param item
* The element to be appended.
*/
public void append(E item);
/**
* Remove and return the current element.
*
* @return The element that was removed.
*/
public E remove();
/** Set the current position to the start of the list */
public void moveToStart();
/** Set the current position to the end of the list */
public void moveToEnd();
/**
* Move the current position one step left. No change if already at
* beginning.
*/
public void prev();
/**
* Move the current position one step right. No change if already at end.
*/
public void next();
/** @return The number of elements in the list. */
public int length();
/** @return The position of the current element. */
public int currPos();
/**
* Set current position.
*
* @param pos
* The position to make current.
*/
public void moveToPos(int pos);
/** @return The current element. */
public E getValue();
}
LList.java File:
/**
* Source code example for \"A Practical Introduction to Data Structures and
* Algorithm Analysis, 3rd Edition (Java)\" by Clifford A. Shaffer Copyright
* 2008-2011 by Clifford A. Shaffer
*/
// Doubly linked list implementation
class LList implements List
{
private DLink head; // Pointer to list header
private DLink tail; // Pointer to last element in list
protected DLink curr; // Pointer ahead of current element
int cnt; // Size of list
// Constructors
LList(int size)
{
th.
Using Actions and Filters in WordPress to Make a Plugin Your OwnBrian Hogg
Good plugins provide actions and filters to allow others (like you!) to modify some of their functionality without having to either create a whole new plugin from scratch or hack away at the original plugin, losing your changes when that plugin gets updated down the road. Learn how to find these actions and filters in other plugins, and use them to bend the plugin to your will.
Session 3 - 안정민 UI 모듈화로 워라밸 지키기
2019년 9월 6일 네이버 쇼핑 개발자 meet up 행사인 'SHOWROOM' 에 발표된 자료입니다.
보다 자세한 내용은 http://nshop-developer.github.io 을 참고해주세요.
(2019년 9월 30일 오후 오픈 예정)
Object-Oriented JavaScript presentation given at ESRI's 2010 Developer Summit. Slides and code available at http://github.com/kvangork/OOJS-Presentation
Find me on twitter @kvangork
or at my blog: http://prng.vangorkom.org
HELP IN JAVACreate a main method and use these input files to tes.pdffatoryoutlets
For the questions below, use the W3Schools customer orders database. You need to submit
thoroughly tested SQL statements. For your convenience and reference, relevant data model is
attached as a PDF document with the assignment in the Blackboard. Name of this document is
\"Relationship diagram for W3schools order pdf.\" 1) Write a query to show Customers\' Country
wise sales totals. Your query should show Customers\' Country name and the total sale value for
that Country 2) Write a query to show Product wise sales totals. Your query should Product
name and the total sale value for that Product. 3) Write a query to show the number of orders for
each shipper. Your query should show shipper name and the count of orders with the shipper. 4)
Write a query to show number of products in each product category. Your query should show
Category name and number of products in that category 5) Write a query that shows Customers\'
country wise customer count, and order count. Your query should show country name, total
number of customers from that country, and total number of orders from the customers of that
country 6) Write a query that shows the number of products supplied by each Supplier. Your
query should show Country name, supplier name and the count of products supplied by that
supplier. Note: Sale Price Orderdetails.Quantity Products.price (see an example in the class
slides deck) W3SCHOOLS SQL is located at http://www.w3schools.com/sql/default.asp
(Preferred browser is Chrome). On this page you will find a button called \"Try it yourself\".
Click on that button. You will be redirected to a page where you see a list of tables on the right
side of the page. It is highly recommended to click \'Restore Database\' button on this page
during every session. The page contains a box where you can type in an SQL statement
involving the listed tables. You type in your SQL statement in that box and click on \"Run
SQL\'\' button. The results will be displayed if your SQL statement is syntactically correct.
Solution
1. SELECT Customers.Country, SUM(OrderDetails.Quantity * Products.Price) AS Total_Sale
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID=Orders.CustomerID
LEFT JOIN OrderDetails ON Orders.OrderId=OrderDetails.OrderId
LEFT JOIN Products ON OrderDetails.ProductId=Products.ProductId
Group BY Customers.Country;
2. SELECT Products.ProductName, SUM(OrderDetails.Quantity * Products.Price) AS
Total_Sale FROM Customers
LEFT JOIN Orders ON Customers.CustomerID=Orders.CustomerID
LEFT JOIN OrderDetails ON Orders.OrderId=OrderDetails.OrderId
LEFT JOIN Products ON OrderDetails.ProductId=Products.ProductId
Group BY Products.ProductName;
You can edit these query to get other results set..
PLEASE MAKE SURE THE PROGRAM IS ASKING FOR INPUT FROM USER TO ADD OR.pdfmallik3000
PLEASE MAKE SURE THE PROGRAM IS ASKING FOR INPUT FROM USER TO ADD
OR REMOVE NAME. DO NOT HARD CODE NAME. AGAIN MAKE SURE THE
PROGRAM IS ASKING FOR INPUT FROM USER TO ADD OR REMOVE NAME. PLEASE
MAKE SURE THE CODE RUNS WITHOUT ANY ERRORS.
Write a class that maintains the scores for a game application. Implement the addition and
removal function to update the database. The gamescore.txt contains player’ name and score data
record fields separated by comma. For Removal function, uses the name field to select record to
remove the game score record.
Use the List.java, LList.java, Dlink.java, GameEntry.java and gamescore.txt found below
Read gamescore.txt to initialize the Linked list in sorted order by score.
Ask the user to add or remove users to update the sorted linked list.
Display “Name exist” when add an exist name to the list.
Display “Name does not exist” when remove a name not on the list.
List.java File:
/** Source code example for \"A Practical Introduction to Data
Structures and Algorithm Analysis, 3rd Edition (Java)\"
by Clifford A. Shaffer
Copyright 2008-2011 by Clifford A. Shaffer
*/
/** List ADT */
public interface List
{
/**
* Remove all contents from the list, so it is once again empty. Client is
* responsible for reclaiming storage used by the list elements.
*/
public void clear();
/**
* Insert an element at the current location. The client must ensure that
* the list\'s capacity is not exceeded.
*
* @param item
* The element to be inserted.
*/
public void insert(E item);
/**
* Append an element at the end of the list. The client must ensure that
* the list\'s capacity is not exceeded.
*
* @param item
* The element to be appended.
*/
public void append(E item);
/**
* Remove and return the current element.
*
* @return The element that was removed.
*/
public E remove();
/** Set the current position to the start of the list */
public void moveToStart();
/** Set the current position to the end of the list */
public void moveToEnd();
/**
* Move the current position one step left. No change if already at
* beginning.
*/
public void prev();
/**
* Move the current position one step right. No change if already at end.
*/
public void next();
/** @return The number of elements in the list. */
public int length();
/** @return The position of the current element. */
public int currPos();
/**
* Set current position.
*
* @param pos
* The position to make current.
*/
public void moveToPos(int pos);
/** @return The current element. */
public E getValue();
}
LList.java File:
/**
* Source code example for \"A Practical Introduction to Data Structures and
* Algorithm Analysis, 3rd Edition (Java)\" by Clifford A. Shaffer Copyright
* 2008-2011 by Clifford A. Shaffer
*/
// Doubly linked list implementation
class LList implements List
{
private DLink head; // Pointer to list header
private DLink tail; // Pointer to last element in list
protected DLink curr; // Pointer ahead of current element
int cnt; // Size of list
// Constructors
LList(int size)
{
th.
public class Person { private String name; private int age;.pdfarjuncp10
public class Person
{
private String name;
private int age;
public Person()
{
name=\"\";
age=0;
}
/**
Create a person with a given name and age.
@param name the name
@param age the age
*/
public Person(String name, int age)
{
this.name = name;
this.age = age;
}
/**
Get the name.
@return the name
*/
public String getName()
{
return name;
}
/**
Change the name.
@param name the name
*/
public void setName(String name)
{
this.name = name;
}
/**
Get the age.
@return the age
*/
public int getAge()
{
return age;
}
/**
Change the age.
@param age the age
*/
public void setAge()
{
this.age = age;
}
/**
Convert person to string form.
*/
public String toString()
{
return \"Name: \" + name + \"\\t\" + \"Age: \" + age;
}
}
OUTPUT should look like this!
Solution
solution
package com.prt.test;
public class Person
{
protected String name;
protected int age;
public Person()
{
name=\"\";
age=0;
}
/**
Create a person with a given name and age.
@param name the name
@param age the age
*/
public Person(String name, int age)
{
this.name = name;
this.age = age;
}
/**
Get the name.
@return the name
*/
public String getName()
{
return name;
}
/**
Change the name.
@param name the name
*/
public void setName(String name)
{
this.name = name;
}
/**
Get the age.
@return the age
*/
public int getAge()
{
return age;
}
/**
Change the age.
@param age the age
*/
public void setAge()
{
this.age = age;
}
/**
Convert person to string form.
*/
public String toString()
{
return \"Name: \" + name + \"\\t\" + \"Age: \" + age;
}
}
package com.prt.test;
public class Student extends Person implements Comparable{
private int studentId;
private String major;
/**
* @return the studentId
*/
public int getStudentId() {
return studentId;
}
/**
* @param studentId the studentId to set
*/
public void setStudentId(int studentId) {
this.studentId = studentId;
}
/**
* @return the major
*/
public String getMajor() {
return major;
}
/**
* @param major the major to set
*/
public void setMajor(String major) {
this.major = major;
}
public Student(String name, int age, int studentId, String major) {
super(name, age);
this.studentId = studentId;
this.major = major;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return \"name:\" + name+ \"\\t\"+\"\\t\"+\"age:\"+ age+\"\\t\"+ \"studentId :\"+ studentId +
\"\\t\" +\" major:\"+ major;
}
public int compareTo(Student st){
if(studentId==st.studentId)
return 0;
else if(studentId>st.studentId)
return 1;
else
return -1;
}
}
package com.prt.test;
public class Instructor extends Person implements Comparable {
private double salary;
public Instructor(String name, int age, double salary) {
super(name, age);
this.salary = salary;
}
/**
* @return the salary
*/
public double getSalary() {
return salary;
}
/**
* @param salary
* the salary to set
*/
public void setSalary(double salary) {
this.salary = salary;
}
public int compareTo(Instructor is) {
if (salary == is.salary)
return 0;
else if (salary > is.salary)
return 1;
else
ret.
JavaOne 2017 | JShell: The Ultimate Missing ToolHakan Özler
The sun is shining on JDK 9, with promising new features such as JShell, an interactive missing REPL (read-eval-print-loop) for Java. The missing tool comes bundled with the upcoming JDK 9 release and enables users to learn the Java programming language and explore newly added Java APIs. Without creating trivial Java projects to understand the Java API, we can sequentially write and evaluate Java behaviors such as listing variables and validating Java statements. In this session find out the important mysteries of JShell by seeing a live demonstration. Come and see how JShell is remarkable.
The sun is shining on JDK 9, with promising new features such as JShell, an interactive missing REPL (read-eval-print-loop) for Java. The missing tool comes bundled with the upcoming JDK 9 release and enables users to learn the Java programming language and explore newly added Java APIs. Without creating trivial Java projects to understand the Java API, we can sequentially write and evaluate Java behaviors such as listing variables and validating Java statements. In this session find out the important mysteries of JShell by seeing a live demonstration. Come and see how JShell is remarkable.
Est-ce que nous allons parler de gestion des ressources humaines au PHP tour ? Non, je vous vais vous parler des modèles anémiques et des modèles riches. Depuis des années frameworks et ORM nous conditionnent à utiliser des modèles anémiques, une classe avec de simples setters et getters. A travers l’histoire d’Estelle, une RH, qui veut une application pour gérer ses salariés, je vais vous montrer comment changer nos vieilles habitudes afin de nous focaliser sur le métier que nous implémentons. Nous verrons ensemble quels outils utiliser, comme par exemple, le design pattern command bus, l’opérateur NEW de doctrine pour vos Data Transfert Object dans une application Symfony.
Example de code : https://github.com/arnolanglade/code-me-hr
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
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.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
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.
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!
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!
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.
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.
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.
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.
4. • Original object remains.
• Handle properties through set and get.
• Encourages object mutation.
• Computed properties, observers.
T H E E M B E R O B J E C T ( PA R M E N I D E S )
5. • Never modify an object.
• Create new objects all the time.
• Different solutions due constrains.
T H E H E R A C L I T U S WAY ( I M M U TA B I L I T Y )
6. • Tracking changes is easier.
• Simpler state management.
I M M U TA B L E D ATA F L O W S : W H Y ?
7. D E S I G N I N G
I M M U TA B L E D ATA F L O W S
I N E M B E R
J O R G E L A I N F I E S TA
8. • Simple form with text fields of
personal information.
• DDAU
B A S I C E X A M P L E
9. <label>Name:</label>
{{one-way-input (get person 'name') update=(action 'update' 'name')}}
<br>
<label>Surname:</label>
{{one-way-input (get person 'surname') update=(action 'update' 'surname')}}
<br>
<label>Email:</label>
{{one-way-input (get person 'email') update=(action 'update' 'email')}}
t e m p l a t e s / c o m p o n e n t s / u s e r - f o r m . h b s
10. import Ember from 'ember';
export default Ember.Component.extend({
actions: {
update(field, value) {
this.get('onUpdate')(field, value);
}
}
});
c o m p o n e n t s / u s e r - f o r m . j s
11. updateUser(field, value) {
let user = this.get('user');
set(user, field, value);
}
r e s p o n s i b l e p a r e n t
mutating object
12. updateUser(field, value) {
let user = {...this.get('user')};
set(user, field, value);
this.set('user', user);
}
r e s p o n s i b l e p a r e n t
not mutating
original object
13. updateUser(field, newData) {
let user = this.get('user');
this.set('user', { ...user, [field]: newData });
}
r e s p o n s i b l e p a r e n t
Immutability
15. Update the parent with the same
data type that they provided.
C O N T R A C T S F O R C O M P O S I T I O N
interface ImmutableComponentProps<E> {
value: E;
onUpdate: (updatedValue: E) => void
}
16. import Ember from 'ember';
export default Ember.Component.extend({
actions: {
update(field, value) {
this.get('onUpdate')({
[field]: value
});
}
}
});
c o m p o n e n t s / u s e r - f o r m . j s
17. updateUser(newData) {
let user = this.get('user');
this.set('user', { ...user, ...newData });
}
r e s p o n s i b l e p a r e n t
Immutability
22. W O R K I N G W I T H A R R AY S
★ map
★ reduce
★ filter
★ find
★ slice
• splice
• sort
• push
• Mutable array methods
in Ember
MutationsNo mutations
23. actions: {
addItem(newElement) {
let value = this.get('value');
this.get('onUpdate')([
...value,
newElement
]);
},
removeItem(index) {
let value = this.get('value');
this.get('onUpdate')([
...value.slice(0, index),
...value.slice(index + 1)
]);
}
}
c o m p o n e n t s / t o d o - l i s t . j s
24. updateList(newList) {
// Some treatment and processing?
this.set('list', newList);
}
r e s p o n s i b l e p a r e n t
30. import Component, { tracked } from '@glimmer/component';
export default class ImmutabilityGlimmer extends Component {
@tracked user = {
name: 'Joe',
surname: 'Schreier'
};
@tracked('user')
get fullName() {
let { name, surname } = this.user;
return `${name} ${surname}`;
}
}
s o m e g l i m m e r c o m p o n e n t