A brief overview about how to write human readable and meaningful code. Here is described why and how to write meaningful names of variables or method, what to follow about writing a function for SRP / Open-Closed principle rule, when to write comments and rules of Code Formatting. Advantages of clean code is also described here.
A summary of clean code concepts and tips along with some examples and good practices.
These are the slides translated in English from my talk on Clean Code to my coworkers back then
Presentation on writing clean and maintainable good. I have present really simple steps to write high quality code and share many more benefit of writing clean code.
Vladimir Romanov - How to write code that is easy to read and change? What should you do when you see a piece of code written years ago which is hard to understand? In my experience, this boils down to 4 principles that I would like to share along with some examples in Apex
A summary of clean code concepts and tips along with some examples and good practices.
These are the slides translated in English from my talk on Clean Code to my coworkers back then
Presentation on writing clean and maintainable good. I have present really simple steps to write high quality code and share many more benefit of writing clean code.
Vladimir Romanov - How to write code that is easy to read and change? What should you do when you see a piece of code written years ago which is hard to understand? In my experience, this boils down to 4 principles that I would like to share along with some examples in Apex
Using the new IBM ODBC Driver for Notes/Domino 9.0Mat Newman
Steps through installing and configuring the new IBM ODBC driver for Notes/Domino 9 (formerly Notes SQL driver).
This demonstration utilises Microsoft Windows 8 as the Operating System and OpenOffice to test the configured connection.
Presentación para la charla sobre el libro de Robert C. Martin, Clean Code.
Esta presentación la impartí en CyLicon Valley, aquí tenéis el video con el audio de la charla => https://www.youtube.com/watch?v=1Fss1jBfc3g
JavaScript has some stunning features like Closures, Prototype etc. which can help to improve the readability and maintainability of the code. However, it is not easy for inexperienced developer to consume and apply those features in day to day coding. The purpose of the presentation ‘Advanced JavaScript’ is to help a reader easily understand the concept and implementation of some advanced JavaScript features.
HCL Notes and Nomad Troubleshooting for Dummiespanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-nomad-troubleshooting-for-dummies/
The number of systems IT and support have to handle is growing faster and faster, while headcounts in those departments struggle to keep pace. This means less and less time to deal with any single system (like Notes), which leads to reduced operational efficiency. On top of that, newer personnel is often also unfamiliar with the HCL stack.
Come and join Christoph Adler on April 18 who will condense their whopping 20+ years of field experience with HCL Notes and Nomad troubleshooting into a single webinar. Get an eye-opening boost in knowledge and skills – whether you are an inquiring beginner or a seasoned admin. Benefit from real uses cases we encountered in the wild to learn how you can quickly and easily deal with many common situations and find out what to do if you can’t solve it on your own.
What you will learn
- Learn how to react fast and what to do when things go wrong with Notes or Nomad, and how to isolate and/or reproduce the issue.
- Understand where to look for information (logs, NSDs, etc.), how to easily collect it, and how to interpret what you find.
- Accelerate time to resolution when escalating to HCL support by having all the right things in hand from the start.
How to Bring HCL Nomad Web and Domino Together Without SafeLinxpanagenda
Webinar Recording: https://www.panagenda.com/webinars/how-to-bring-hcl-nomad-and-domino-together-without-safelinx/
HCL Nomad Web is the way forward. It allows users to decide for themselves when and where they want to use the application. Naturally promoting business flexibility and increasing overall employee productivity. Besides, the way forward gets a lot easier if you can bring HCL Nomad Web and Domino together without SafeLinx.
So, you want to start with Nomad Web, the new and shiny client in the browser. But there are so many hurdles in the way. Luckily, with Domino 12.0.2, a big one is gone. The new Nomad Web Server on Domino makes it possible to have Nomad Web talk directly to Domino. You do not have to use SafeLinx unless you really want to!
Join Christoph Adler, HCL Ambassador & panagenda Senior Consultant, on December 13 for this webinar featuring live demos and hands-on examples. Gain the skills you need to run Nomad Web directly with Domino and to use HCL Nomad and Domino without SafeLinx. You will leave with a simple recipe that makes it easy to get going in your environment.
In our webinar, about how to run HCL Nomad Configurations on any device, we showed you that MarvelClient Roaming can help you solve many challenges. It enables you to automatically back up, restore, and share configurations (desktop, recent apps, settings, and more) among devices using Nomad. It uploads configurations to your Domino servers whenever they are changed, and then transparently updates any current and new devices used by the same person, with a tiny network and processing footprint. This time we go a little further.
What you will learn
- How to use HCL Nomad Web and Domino together without SafeLinx
- How to install and configure the Nomad Web Server
- How the Nomad Web Server works from a user’s point of view
- Which scenarios you might want to keep using SafeLinx
SummaryHW6 Account ManagementIn HW4, you kept track of multiple.pdfARORACOCKERY2111
Summary
HW6: Account Management
In HW4, you kept track of multiple usernames and its associated password using arrays.
However, usernames and passwords are typically part of a “User” object which in turn may be
part of an “Account” object. Accounts also typically require a certain level of security beyond
the typical encryption mechanisms. This assignment goes deeper into the concept of OOP as you
create objects that requires proper rules and scope for correct usage.
Aside: As with Item objects from HW5, Account and User data is typically stored in databases.
Skills Expected
? All the skills from previous Assignment(s)
? Accessors/Mutators
? Overriding methods: equals and toString
Assignment Description
You will write three Class objects and a Driver for each class (i.e. submit six .java files):
? User
? Account
? AccountList
Note: All properties MUST be private
Submission Requirement: The Driver Class
? Each Class designed MUST be submitted with a corresponding “Driver” Class
? The Driver Class should have a main() that demonstrates, at minimum
o Calling the appropriate constructor to create the appropriate instance
o Everyproperty(instancevariables)canbesetandgetcorrectly(whereallowed) ? Every public
method can be called successfully (and return the correct result)
Class Design: User
The User class is intended to be an abstract and simplified representation of a user
Class Properties
? First Name (String)
? Last Name (String)
? Username (String)
? Password (String)
Class Invariant
? First and Last Name must not be empty
? Username must be at least four characters long
? Password must be at least four characters long (is this a good invariant?)
Class Components
? A constructor that sets the initial user data (first name, last name, username, password)
? A getter/setter for each properties set out above
? A toString() method
? An equals() method
Class Design: Account
The Account class is intended to be an abstract and simplified representation of an account
Class Properties
? User (User)
? Balance (double) – represents how much money the user has in the account
Class Invariant
? Must be a valid account
? Balance must not be negative
Class Components
? A constructor that sets the initial User instance and balance amount
? A Getter but not a Setter for the each properties set out above (why?)
? A public method to add to the balance
? A public method to withdraw from the balance
? A toString() method
? An equals() method
Class Design: AccountList
The AccountList class is intended to be an abstract and simplified representation of a list of
accounts.
Class Properties
? Accounts (an array of Account objects – or ArrayList) o No getters or setters* (do you know
why?)
Class Invariant
? Can’t have multiple accounts with the same username
Class Components
? A public method that adds new accounts
? A public (boolean) method that determines whether an account with a given username exists in
the list
Grading Criteria
? User class object
o [2 points] Impl.
Using the new IBM ODBC Driver for Notes/Domino 9.0Mat Newman
Steps through installing and configuring the new IBM ODBC driver for Notes/Domino 9 (formerly Notes SQL driver).
This demonstration utilises Microsoft Windows 8 as the Operating System and OpenOffice to test the configured connection.
Presentación para la charla sobre el libro de Robert C. Martin, Clean Code.
Esta presentación la impartí en CyLicon Valley, aquí tenéis el video con el audio de la charla => https://www.youtube.com/watch?v=1Fss1jBfc3g
JavaScript has some stunning features like Closures, Prototype etc. which can help to improve the readability and maintainability of the code. However, it is not easy for inexperienced developer to consume and apply those features in day to day coding. The purpose of the presentation ‘Advanced JavaScript’ is to help a reader easily understand the concept and implementation of some advanced JavaScript features.
HCL Notes and Nomad Troubleshooting for Dummiespanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-nomad-troubleshooting-for-dummies/
The number of systems IT and support have to handle is growing faster and faster, while headcounts in those departments struggle to keep pace. This means less and less time to deal with any single system (like Notes), which leads to reduced operational efficiency. On top of that, newer personnel is often also unfamiliar with the HCL stack.
Come and join Christoph Adler on April 18 who will condense their whopping 20+ years of field experience with HCL Notes and Nomad troubleshooting into a single webinar. Get an eye-opening boost in knowledge and skills – whether you are an inquiring beginner or a seasoned admin. Benefit from real uses cases we encountered in the wild to learn how you can quickly and easily deal with many common situations and find out what to do if you can’t solve it on your own.
What you will learn
- Learn how to react fast and what to do when things go wrong with Notes or Nomad, and how to isolate and/or reproduce the issue.
- Understand where to look for information (logs, NSDs, etc.), how to easily collect it, and how to interpret what you find.
- Accelerate time to resolution when escalating to HCL support by having all the right things in hand from the start.
How to Bring HCL Nomad Web and Domino Together Without SafeLinxpanagenda
Webinar Recording: https://www.panagenda.com/webinars/how-to-bring-hcl-nomad-and-domino-together-without-safelinx/
HCL Nomad Web is the way forward. It allows users to decide for themselves when and where they want to use the application. Naturally promoting business flexibility and increasing overall employee productivity. Besides, the way forward gets a lot easier if you can bring HCL Nomad Web and Domino together without SafeLinx.
So, you want to start with Nomad Web, the new and shiny client in the browser. But there are so many hurdles in the way. Luckily, with Domino 12.0.2, a big one is gone. The new Nomad Web Server on Domino makes it possible to have Nomad Web talk directly to Domino. You do not have to use SafeLinx unless you really want to!
Join Christoph Adler, HCL Ambassador & panagenda Senior Consultant, on December 13 for this webinar featuring live demos and hands-on examples. Gain the skills you need to run Nomad Web directly with Domino and to use HCL Nomad and Domino without SafeLinx. You will leave with a simple recipe that makes it easy to get going in your environment.
In our webinar, about how to run HCL Nomad Configurations on any device, we showed you that MarvelClient Roaming can help you solve many challenges. It enables you to automatically back up, restore, and share configurations (desktop, recent apps, settings, and more) among devices using Nomad. It uploads configurations to your Domino servers whenever they are changed, and then transparently updates any current and new devices used by the same person, with a tiny network and processing footprint. This time we go a little further.
What you will learn
- How to use HCL Nomad Web and Domino together without SafeLinx
- How to install and configure the Nomad Web Server
- How the Nomad Web Server works from a user’s point of view
- Which scenarios you might want to keep using SafeLinx
SummaryHW6 Account ManagementIn HW4, you kept track of multiple.pdfARORACOCKERY2111
Summary
HW6: Account Management
In HW4, you kept track of multiple usernames and its associated password using arrays.
However, usernames and passwords are typically part of a “User” object which in turn may be
part of an “Account” object. Accounts also typically require a certain level of security beyond
the typical encryption mechanisms. This assignment goes deeper into the concept of OOP as you
create objects that requires proper rules and scope for correct usage.
Aside: As with Item objects from HW5, Account and User data is typically stored in databases.
Skills Expected
? All the skills from previous Assignment(s)
? Accessors/Mutators
? Overriding methods: equals and toString
Assignment Description
You will write three Class objects and a Driver for each class (i.e. submit six .java files):
? User
? Account
? AccountList
Note: All properties MUST be private
Submission Requirement: The Driver Class
? Each Class designed MUST be submitted with a corresponding “Driver” Class
? The Driver Class should have a main() that demonstrates, at minimum
o Calling the appropriate constructor to create the appropriate instance
o Everyproperty(instancevariables)canbesetandgetcorrectly(whereallowed) ? Every public
method can be called successfully (and return the correct result)
Class Design: User
The User class is intended to be an abstract and simplified representation of a user
Class Properties
? First Name (String)
? Last Name (String)
? Username (String)
? Password (String)
Class Invariant
? First and Last Name must not be empty
? Username must be at least four characters long
? Password must be at least four characters long (is this a good invariant?)
Class Components
? A constructor that sets the initial user data (first name, last name, username, password)
? A getter/setter for each properties set out above
? A toString() method
? An equals() method
Class Design: Account
The Account class is intended to be an abstract and simplified representation of an account
Class Properties
? User (User)
? Balance (double) – represents how much money the user has in the account
Class Invariant
? Must be a valid account
? Balance must not be negative
Class Components
? A constructor that sets the initial User instance and balance amount
? A Getter but not a Setter for the each properties set out above (why?)
? A public method to add to the balance
? A public method to withdraw from the balance
? A toString() method
? An equals() method
Class Design: AccountList
The AccountList class is intended to be an abstract and simplified representation of a list of
accounts.
Class Properties
? Accounts (an array of Account objects – or ArrayList) o No getters or setters* (do you know
why?)
Class Invariant
? Can’t have multiple accounts with the same username
Class Components
? A public method that adds new accounts
? A public (boolean) method that determines whether an account with a given username exists in
the list
Grading Criteria
? User class object
o [2 points] Impl.
Building a friendly .NET SDK to connect to SpaceMaarten Balliauw
Space is a team tool that integrates chats, meetings, git hosting, automation, and more. It has an HTTP API to integrate third party apps and workflows, but it's massive! And slightly opinionated.
In this session, we will see how we built the .NET SDK for Space, and how we make that massive API more digestible. We will see how we used code generation, and incrementally made the API feel more like a real .NET SDK.
Framhald af umfjöllun um hlutbundna forritun og hönnun. Nú förum við yfir Generic Programming sem sem leið til að búa til sveigjanlega og endurnýtanlegar einingar. Skoðum líka reflection. Þá verður farið fyrir hvernig má hann laustengdar einingar og notum við frægan andarleik sem dæmi.
Þá mun Code Horror Dude kíkja í heimsókn
C++ (pronounced "see plus plus") is a computer programming language based on C. It was created for writing programs for many different purposes. In the 1990s, C++ became one of the most used programming languages in the world.
The C++ programming language was developed by Bjarne Stroustrup at Bell Labs in the 1980s, and was originally named "C with classes". The language was planned as an improvement on the C programming language, adding features based on object-oriented programming. Step by step, a lot of advanced features were added to the language, like operator overloading, exception handling and templates.
AI Tools for Productivity: Exploring Prompt Engineering and Key FeaturesNascenia IT
Artificial Intelligence (AI) tools have revolutionized the software industry by streamlining data analysis, predictive analytics, natural language processing, image recognition, and automation of repetitive tasks. This enhances efficiency and supports better decision-making across a range of business processes.
Large Language Models (LLMs) are a breakthrough in AI, leveraging deep learning techniques and vast datasets to generate human-like text and perform complex natural language processing tasks. This presentation delves into how prompt engineering and other key features of AI tools contribute to productivity gains, highlighting their impact on various industries and offering insights into best practices for their implementation.
This resource will briefly discuss the art of statistical deception. This strategy is used to provide misleading information hiding the truth behind it. It's unethical and most of the time hard to understand at first glance.
GDPR compliance expectations from the development teamNascenia IT
General Data Protection Regulation(GDPR) Compliance Expectations is a hot topic nowadays. Although the GDPR is European legislation, it has a global impact. That's why developers worldwide should need to understand the GDPR requirements. We believe that this resource will help web development teams to meet the expectations.
Good programmers write code that humans can understand- well, that is called clean code. This is code that other developers can easily read, understand, and add to.
Developers often rush to code when they feel the pressure from the client or manager or deadline, sometimes sacrificing the quality. Every year, a tremendous amount of time and significant resources are lost only because of poorly written code.
This slide focuses on the types of programming, definitions of clean code, characteristics of clean code, examples and how to write those.
History & Introduction of Neural Network and use of it in Computer VisionNascenia IT
Machine Learning is a multi-disciplinary branch of science. It is supposed to be one of the biggest revolutions in the history of the world. Neural Networks also known as Artificial Neural Network is one of the major sub-branch of Machine Learning, which changed the idea regarding many things including Computer Vision and others. It’s hard to say whether neural net development will continue indefinitely or whether some new, more efficient technology will take its place, but either way, this breakthrough in the field of AI deserves your attention.
You can get to know what Apple is offering in their latest mobile release: iPhone 11, iPhone 11 Pro and iPhone 11 Pro max. It provides a nice brief along with authentic comparison among those.
Currently freshers are facing multiple challenges in job market as they lack knowledge of their skill sets and what the jobs are actually asking from them. Let's see why the job market is not feasible for freshers.
This slide is designed to give some basic idea & working knowledge of CSS to web developers who already have some working experience & want to enlarge their CSS knowledge.
Clean code is a reader-focused development style that produces software that's easy to write, read and maintain. In this slide deck clean code has been presented briefly.
Ruby conf 2016 - Secrets of Testing Rails 5 AppsNascenia IT
Rails 5 is without a doubt the best, most complete version of Rails yet. It has become better experience out of the box. Let's find out the secrets of testing rails 5 apps.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
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
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.
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/
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
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.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
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.
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.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
2. Two Reasons
1. You are a programmer
2. You want to be a better programmer
3. Elegance
“ I like my code to be elegant and efficient. Clean
code does one thing well”
---- Bjarne Stroustrup
4. The only valid measurement of code
quality: WTF/minute
code
review
WTF
WTF is this!
WTF
5. Use Intention-Revealing Names
public List<int[]> getThem() {
List<int[]> list1 = new ArrayList<int[]>();
for (int[] x : theList)
if (x[0] == 4)
list1.add(x);
return list1;
}
Meaningful Names
6. Use Intention-Revealing Names
public List<Cell> getFlaggedCells() {
List<Cell> flaggedCells = new ArrayList<Cell>();
for (Cell cell : gameBoard)
if (cell.isFlagged())
flaggedCells.add(cell);
return flaggedCells;
}
Meaningful Names
8. Make Meaningful Distinctions
public static void copyChars(char a1[], char a2[])
{
for (int i = 0; i < a1.length; i++)
{
a2[i] = a1[i];
}
}
Meaningful Names
9. Use Pronounceable Names
class DtaRcrd102 {
private Date genymdhms;
private Date modymdhms;
private final String pszqint = "102";
/* ... */
};
Meaningful Names
10. Meaningful Names
Use Pronounceable Names
class Customer {
private Date generationTimestamp;
private Date modificationTimestamp;;
private final String recordId = "102";
/* ... */
};
12. Meaningful Names
Use Searchable Names
int realDaysPerIdealDay = 4;
const int WORK_DAYS_PER_WEEK = 5;
int sum = 0;
for (int j = 0; j < NUMBER_OF_TASKS; j++) {
int realTaskDays = taskEstimate[j] *realDaysPerIdealDay;
int realTaskWeeks = (realdays / WORK_DAYS_PER_WEEK);
sum += realTaskWeeks;
}
14. Meaningful Names
Avoid Mental Mapping
for (a = 0; a < 10; a++)
for (b = 0; b < 10; b++)
Class Names
Manager, Processor, Data, Info
15. Meaningful Names
Avoid Mental Mapping
for (i = 0; i < 10; i++)
for (j = 0; j < 10; j++)
Class Names
// Classes and objects should have noun or noun phrase names
Customer, WikiPage, Account, AddressParser
// a class name should not be a verb
16. Meaningful Names
Method Names
postPayment, deletePage, save
// methods should have verb or verb phrase names
// can be prefixed with get , set , is
string name = employee.getName();
customer.setName("mike");
if (paycheck.isPosted())...
17. Meaningful Names
Don’t be Cute
Cuteness in code often appears in the form of colloquialisms or slang.
For example,
Don’t use the name whack() to mean kill() .
Don’t tell little culture dependent jokes like eatMyShorts() to mean abort().
18. Meaningful Names
Pick One Word per Concept
fetch, retrieve, get // as equivalent methods
controller, manager, driver // confusing
Don’t Pun
// avoid using the same word for two purposes
// insert, add
19. Meaningful Names
Use Solution Domain Names
//AccountVisitor, JobQueue
// people who read your code will be programmers
//use computer science (CS) terms, algorithm names, pattern names, math
terms, and so forth.
Add Meaningful Context
firstName, lastName, street, city, state, zipcode // a better solution
addrFirstName, addrLastName, addrState // a far better solution
20. Meaningful Names
Don’t Add Gratuitous Context
-> Class Address
Address // is a fine name for a class
AccountAddress, CustomerAddress
// are fine names for instances of the class Address but could be poor
names for classes
// In an imaginary application called “Gas Station Deluxe,” it is a bad idea to
prefix every class with GSD .
21. Functions
Rules of Functions
// 1. should be small
// 2. should be smaller than that
// < 150 characters per line
// < 20 lines
Do One Thing
// FUNCTIONS SHOULD DO ONE THING. THEY SHOULD DO IT WELL.
// THEY SHOULD DO IT ONLY.
22. Functions
One Level of Abstraction per Function
public void doTheDomesticThings() {
takeOutTheTrash();
walkTheDog();
for (Dish dish : dirtyDishStack) {
sink.washDish(dish);
teaTowel.dryDish(dish);
}
}
23. Functions
One Level of Abstraction per Function
public void doTheDomesticThings() {
takeOutTheTrash();
walkTheDog();
doTheDishes();
}
24. Functions
Single Responsibility Principle
In object-oriented programming, the single responsibility principle
states that every class should have responsibility over a single part of
the functionality provided by the software, and that responsibility
should be entirely encapsulated by the class. All its services should be
narrowly aligned with that responsibility.
Source: WIKI
25. Functions
Open / Closed Principle
In object-oriented programming, the open/closed principle states
“software entities (classes, modules, functions, etc.) should be open for
extension, but closed for modification”.
Source : WIKI
26. Functions
Use Descriptive Names
// isModified or includeSetupAndTeardownPages
Function Arguments
// the ideal number of arguments for a function is zero
27. Functions
Common Monadic Forms
// if a function is going to transform its input argument, the
transformation should appear as the return value
StringBuffer transform(StringBuffer in)
// is better than
void transform(StringBuffer out)
28. Functions
Common Monadic Forms
// asking a question about that argument
boolean fileExists(“MyFile”)
// operating on that argument, transforming and returning it
InputStream fileOpen(“MyFile”)
// event, use the argument to alter the state of the system
void passwordAttemptFailedNtimes(int attempts)
29. Functions
Dyadic Functions
writeField(name)
// is easier to understand than
writeField(outputStream, name)
// perfectly reasonable
Point p = new Point(0,0)
// problematic
assertEquals(expected, actual)
30. Functions
Argument Objects
Circle makeCircle(double x, double y, double radius);
Circle makeCircle(Point center, double radius);
Don’t Repeat Yourself (DRY)
// duplication may be the root of all evil in software
32. Comments
Comments Do Not Make Up for Bad Code
// don’t comment bad code, rewrite it!
Explain Yourself in Code
// Check to see if the employee is eligible for full
benefits
if ((employee.flags & HOURLY_FLAG) &&
(employee.age > 65))
if (employee.isEligibleForFullBenefits())
33. Comments (Good)
Legal Comments
// Copyright (C) 2011 by Osoco. All rights reserved.
Clarification
assertTrue(a.compareTo(b) == -1); // a < b
assertTrue(b.compareTo(a) == 1); // b > a
34. Comments (Good)
Warning of Consequences
/SimpleDateFormat is not thread safe,
//so we need to create each instance independently.
SimpleDateFormat df = new SimpleDateFormat("dd MM yyyy");
TODO Comments
35. Comments (Good)
Amplification
String listItemContent = match.group(3).trim();
// the trim is real important. It removes the starting
// spaces that could cause the item to be recognized
// as another list.
new ListItemWidget(this, listItemContent, this.level + 1);
return buildList(text.substring(match.end()));
36. Comments (Bad)
Redundant Comments / Noise Comments
/**
* The processor delay for this component.
*/
protected int backgroundProcessorDelay = -1;
/**
* The lifecycle event support for this component.
*/
protected LifecycleSupport lifecycle =
new LifecycleSupport(this);
37. Comments (Bad)
Journal Comments
Changes (from 11-Oct-2001)
--------------------------
11-Oct-2001 : Re-organised the class and moved it to new
package com.jrefinery.date (DG);
05-Nov-2001 : Added a getDescription() method, and
eliminated NotableDate class (DG);
38. Comments (Bad)
- Don’t Use a Comment When You Can Use a Function
or a Variable
- Commented-Out Code
- Attributions and Bylines (added by Sazzad)
- HTML Comments
39. Formatting
Vertical Distance
// variables
// should be declared as close to their usage as possible
// instance variables
// should be declared at the top of the class
// dependent functions
// if one function calls another, they should be vertically
// close, and the caller should be above the called
// conceptual affinity
// certain bits of code want to be near other bit
40. Formatting
Team Rules
// every programmer has his own favorite formatting rules
// but if he works in a team
// then the team rules