3 issues that made 30 test workers take 40 minutesVisuality
Patryk Ptasiński discusses 3 issues he encountered in the Ruby on Rails project with long-running tests. He presents solutions for improving test performance, followed by benchmarks and examples. Finally, he lists recommendations for writing fast tests for large Ruby on Rails projects.
Presentation made at the Miłośnicy Ruby Warsaw Meetup hosted in Visuality office on October 20th, 2022.
Stanisław Zawadzki shows what to avoid when writing tests for Ruby on Rails applications. Then, he presents some good practices.
Introduction to Domain-Driven Design in Ruby on RailsVisuality
Presentation made at the second Miłośnicy Ruby Warsaw Meetup hosted in Visuality office on August 25th, 2022.
Paweł Strzałkowski introduces listeners to Domain-Driven Design and shows how it can be used to model business domain in Ruby on Rails framework on the tactical level.
Active Record .includes - do you use it consciously?Visuality
Example of the wrong usage of ".includes` method in Active Record and ways to prevent it. Description of Arel library and how it can be used to make more optimal queries within Active Record.
Presentation made by Alexander Repnikov.
Description of Big Picture and Process Level Event Storming. Example of a workshop that could happen in one of many startups to design new feature or find most important problems.
SVG Overview - How To Draw, Use and AnimateVisuality
A general overview of SVG with examples. Bartosz describes how to easily draw basic shapes, how to use them on your website, and animation possibilities.
https://youtu.be/0HlKp48rY3c
How To Migrate a Rails App From a Dedicated Server Into Cloud Environment? - ...Visuality
A general look at the process of moving Ruby on Rails application from a dedicated server into a cloud environment. Marcin presents the details about the old solution: its architecture, drawbacks, and challenges.
https://youtu.be/OZcL53JnxMQ
3 issues that made 30 test workers take 40 minutesVisuality
Patryk Ptasiński discusses 3 issues he encountered in the Ruby on Rails project with long-running tests. He presents solutions for improving test performance, followed by benchmarks and examples. Finally, he lists recommendations for writing fast tests for large Ruby on Rails projects.
Presentation made at the Miłośnicy Ruby Warsaw Meetup hosted in Visuality office on October 20th, 2022.
Stanisław Zawadzki shows what to avoid when writing tests for Ruby on Rails applications. Then, he presents some good practices.
Introduction to Domain-Driven Design in Ruby on RailsVisuality
Presentation made at the second Miłośnicy Ruby Warsaw Meetup hosted in Visuality office on August 25th, 2022.
Paweł Strzałkowski introduces listeners to Domain-Driven Design and shows how it can be used to model business domain in Ruby on Rails framework on the tactical level.
Active Record .includes - do you use it consciously?Visuality
Example of the wrong usage of ".includes` method in Active Record and ways to prevent it. Description of Arel library and how it can be used to make more optimal queries within Active Record.
Presentation made by Alexander Repnikov.
Description of Big Picture and Process Level Event Storming. Example of a workshop that could happen in one of many startups to design new feature or find most important problems.
SVG Overview - How To Draw, Use and AnimateVisuality
A general overview of SVG with examples. Bartosz describes how to easily draw basic shapes, how to use them on your website, and animation possibilities.
https://youtu.be/0HlKp48rY3c
How To Migrate a Rails App From a Dedicated Server Into Cloud Environment? - ...Visuality
A general look at the process of moving Ruby on Rails application from a dedicated server into a cloud environment. Marcin presents the details about the old solution: its architecture, drawbacks, and challenges.
https://youtu.be/OZcL53JnxMQ
How to use AWS SES with Lambda in Ruby on Rails application - Michał ŁęcickiVisuality
The second part of story about moving Ruby on Rails application from dedicated server into cloud environment. This presentation focuses on one main feature: email importing. Michał describes details of the new architecture build with AWS Simple Email Service and AWS Lambda and its integration with Ruby on Rails app.
What is NOT machine learning - Burak AybarVisuality
What is NOT machine learning?
Burak Aybar describes the basics of artificial intelligence, machine learning, deep learning and the differences between them.
When using Redux we are trying to keep data models in different reducers which are independent from each other. However, sometimes changing data in one model causes changes in another one which usually only backend is aware about. In this talk, I want to show how to synchronise data between multiple reducers on frontend in order to keep it up to date with the best user experience.
How to check valid email? Find using regex(p?)Visuality
Presentation is about regex in IT projects. It’s about creating regular expressions for matching, finding (and replacing) against some text. The full presentation can be found on our Youtube channel - https://youtu.be/Z_1bPwZdLwA . It was conducted in Visuality by Piotr Wasiak - Software Engineer.
Fantastic stresses and where to find themVisuality
Presentation is about stress management in IT projects. It describes basic concepts and approaches when it comes to assessing and identifying stress factors and ways of dealing with them and with stress itself. The full presentation can be found on our youtube channel - https://youtu.be/ZHKyHcJ5HIQ . It was conducted in Visuality by Wiktor De Witte - Project Manager.
Presentation is about risk management in IT projects. It describes basic concepts and approaches when it comes to assessing and identifying risks. The full presentation can be found on our youtube channel - https://www.youtube.com/watch?v=SR6CwTj_qz0. It was conducted in Visuality by Wiktor De Witte - Project Manager.
Slides about pair programming technique. Slides explaining what, why, when and how to do a pair programming sessions. The full presentation you can find on youtube channel https://www.youtube.com/watch?v=1RYI9FaT9UQ&feature=youtu.be
Visuality talks Y18W26 - Umit Naimian is talking about. Enjoy and subscribe to our channel - more is coming:)
Video is available here:
https://www.youtube.com/watch?v=4gf-zqte-Sk&feature=youtu.be
From idea to concept - webinar by Michał KrocheckiVisuality
This presentation will help you make your first steps when creating an application. You will be able to painlessly prepare a brief that could be used in multiple situations. Most importantly, you will be better organized and have a clear path towards the final goal.
The presentation was used to conduct a webinar - follow our facebook page to be informed about upcoming webinars.
Immutability and Javascript - Nadia MiętkiewiczVisuality
Visuality talks Y18W11 - Nadia Miętkiewicz is talking about Immutability and Javascript. Enjoy and subscribe to our channel - more is coming:)
Video is available here:
https://www.youtube.com/watch?v=sMYFOky8CIA&feature=youtu.be
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.
How to use AWS SES with Lambda in Ruby on Rails application - Michał ŁęcickiVisuality
The second part of story about moving Ruby on Rails application from dedicated server into cloud environment. This presentation focuses on one main feature: email importing. Michał describes details of the new architecture build with AWS Simple Email Service and AWS Lambda and its integration with Ruby on Rails app.
What is NOT machine learning - Burak AybarVisuality
What is NOT machine learning?
Burak Aybar describes the basics of artificial intelligence, machine learning, deep learning and the differences between them.
When using Redux we are trying to keep data models in different reducers which are independent from each other. However, sometimes changing data in one model causes changes in another one which usually only backend is aware about. In this talk, I want to show how to synchronise data between multiple reducers on frontend in order to keep it up to date with the best user experience.
How to check valid email? Find using regex(p?)Visuality
Presentation is about regex in IT projects. It’s about creating regular expressions for matching, finding (and replacing) against some text. The full presentation can be found on our Youtube channel - https://youtu.be/Z_1bPwZdLwA . It was conducted in Visuality by Piotr Wasiak - Software Engineer.
Fantastic stresses and where to find themVisuality
Presentation is about stress management in IT projects. It describes basic concepts and approaches when it comes to assessing and identifying stress factors and ways of dealing with them and with stress itself. The full presentation can be found on our youtube channel - https://youtu.be/ZHKyHcJ5HIQ . It was conducted in Visuality by Wiktor De Witte - Project Manager.
Presentation is about risk management in IT projects. It describes basic concepts and approaches when it comes to assessing and identifying risks. The full presentation can be found on our youtube channel - https://www.youtube.com/watch?v=SR6CwTj_qz0. It was conducted in Visuality by Wiktor De Witte - Project Manager.
Slides about pair programming technique. Slides explaining what, why, when and how to do a pair programming sessions. The full presentation you can find on youtube channel https://www.youtube.com/watch?v=1RYI9FaT9UQ&feature=youtu.be
Visuality talks Y18W26 - Umit Naimian is talking about. Enjoy and subscribe to our channel - more is coming:)
Video is available here:
https://www.youtube.com/watch?v=4gf-zqte-Sk&feature=youtu.be
From idea to concept - webinar by Michał KrocheckiVisuality
This presentation will help you make your first steps when creating an application. You will be able to painlessly prepare a brief that could be used in multiple situations. Most importantly, you will be better organized and have a clear path towards the final goal.
The presentation was used to conduct a webinar - follow our facebook page to be informed about upcoming webinars.
Immutability and Javascript - Nadia MiętkiewiczVisuality
Visuality talks Y18W11 - Nadia Miętkiewicz is talking about Immutability and Javascript. Enjoy and subscribe to our channel - more is coming:)
Video is available here:
https://www.youtube.com/watch?v=sMYFOky8CIA&feature=youtu.be
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.
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.
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
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
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.
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.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
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
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
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
Fuzzy search in Ruby
1. Fuzzy Text Search in Ruby
How to find and replace when you
don't really know what to look for
Paweł Strzałkowski
2. Task: Replace company name with "The Company" in a job offer description
Take
- Job offer description
- Company name
3. Task: Replace company name with "The Company" in a job offer description
Take
- Job offer description
- Company name
Simple?
> description.gsub(company_name, 'The Company')
4. Task: Replace company name with "The Company" in a job offer description
Thank you for your attention
Take
- Job offer description
- Company name
Simple?
> description.gsub(company_name, 'The Company')
5. Task: Replace company name with "The Company" in a job offer description
Take
- Job offer description
- Company name
Simple?
Not so much (misspells, custom usages of the company name)
> description.gsub(company_name, 'The Company')
6. Fuzzy Text Comparison: Definition
Fuzzy - difficult to perceive clearly or understand and explain precisely; indistinct or
vague
Fuzzy text comparison doesn't answer whether phrases match
but defines their similarity
Example: Jaro–Winkler similarity level of:
- 1 means phrases are equal
- 0 means phrases are completely different
- Something in-between means some level of difference
7. Fuzzy Text Comparison: Examples
> require 'fuzzy-string-match'
> # (... create a wrapper as fuzzy_similarity method ...)
> fuzzy_similarity "Lorem Ipsum Dorem", "a"
=> 0.0
> fuzzy_similarity "Lorem Ipsum Dorem", "Visuality Test"
=> 0.4393162393162393
> fuzzy_similarity "Visuality", "Visuality"
=> 1.0
8. How to find and replace fuzzy matched phrases in a longer text?
Library?
- Not found...
Best practice?
- Not found...
Custom solution?
- Let's do it!
9. Fuzzy Text Comparison: Assumption #1
- Assumed some level of similarity to be considered "equal"
- Didn't know whether it should be 0.7 or 0.99 so went with something in-
between and tweaked
- It ended up being 0.9
- Whenever it is said that "phrases are equal in fuzzy-matching context", it
means that their Jaro-Winkler similarity is more than 0.9
10. Fuzzy Text Comparison: Assumption #2
- Searched phrase may be longer or shorter than the given term
- 1 word longer
- 2 words longer
- 3 words longer
> fuzzy_similarity "Lorem Ipsum Dorem", "Lorem Ipsum Dorem Carem"
=> 0.9791666666666666
> fuzzy_similarity "Lorem Ipsum Dorem", "Lorem Ipsum Dorem Carem Visuarem"
=> 0.9281462585034014
> fuzzy_similarity "Lorem Ipsum Dorem",
"Lorem Ipsum Dorem Carem Visuarem Odolanem"
=> 0.8865740740740742
11. Fuzzy Text Comparison: Assumption Summary
- Phrases are equal if their similarity level is more than 0.9
- Matching phrase might be up to 2 words longer than the searched one
12. Algorithm (at last)
Assignment: Take a story, find the name "Mary Joan" and replace it
with "The Girl" to make it anonymous. We'll start (and finish) with the story title.
Title: Mary S Jane of house Visuality
Problem: Somebody has
- taken a wrong Mary
- used an additional middle initial
We now have "Mary S Jane" instead of "Mary Joan" in the story.
13. Algorithm: Step 1 - Break Into Pieces
- Searched phrase (Mary Joan) is 2 words long
- Maximal matching phrase length is 4
"Mary S Jane of house Visuality".break_into_pieces_of(4) =>
(N == 1) => ["Mary", "S", "Jane", "of", "house", "Visuality"]
(N == 2) => ["Mary S", "S Jane", "Jane of", "of house", "house Visuality"]
(N == 3) => ["Mary S Jane", "S Jane of", "of house Visuality"]
(N == 4) => ["Mary S Jane of", "S Jane of house", "Jane of house Visuality"]
14. Algorithm: Step 1 - Break Into Pieces (Excercise)
- Take some of the created phrases
- Check how similar they are to the searched term
> fuzzy_similarity "Mary Joan" , "of house Visuality"
=> 0.4583333333333333
> fuzzy_similarity "Mary Joan" , "Mary S"
=> 0.86
> fuzzy_similarity "Mary Joan" , "Mary S Jane of"
=> 0.9156336088154271
> fuzzy_similarity "Mary Joan" , "Mary S Jane"
=> 0.9305555555555555
<< Equal
<< Equal
15. Algorithm: Step 2 - Choose best results
Mary S Jane of
S Jane of
0.92
Mary S Jane 0.510.93
S JaneMary S 0.380.86
16. Algorithm: Ta - Daaaaa
> FuzzyText.new(
"Mary S Jane of house Visuality", "Mary Joan"
).matches
=> ["Mary S Jane"]
17. Algorithm: Tweaks and Gotchas
- Skip characters which make the fuzzy comparison blurry
- Punctuation
- White characters
- Saxon genitives - 's
- Common words (when applicable, ie. "is", "are", "was", "were" etc.)
- Compare only once
- Use a hash table containing the results of every comparison
- Cache the results
- TDD
18. English is too easy, let's take a bit more challenging language
> hero = "Kapitan Ameryka"
> description = "Wbrew powszechnej opinii o Kapitanie z Ameryki nie był on
pierwszym superbohaterem wykorzystującym tematykę flagi Stanów
Zjednoczonych. Poprzedzał go superbohater o pseudonimie Shield czternaście
miesięcy wcześniej niż Kapitan Ameryka. Shield nosił na sobie pancerny
kostium z kuloodporną tarczą na piersi (zwraca się uwagę na uderzające
podobieństwo do wczesnej tarczy Kapitana Ameryki, która w późniejszych
wydaniach była już okrągła). Na dodatek obie postacie łączyła podobna
geneza: Shield tak jak bohater Marvela zyskał nadludzkie moce po zażyciu
serum superżołnierza, którego twórca został zabity przez hitlerowców.
Postać Kapitana Ameryki pojawiała się w wielu różnych adaptacjach."
19. English is too easy, let's take a bit more challenging language
> hero = "Kapitan Ameryka"
> description = "Wbrew powszechnej opinii o Kapitanie z Ameryki nie był on
pierwszym superbohaterem wykorzystującym tematykę flagi Stanów
Zjednoczonych. Poprzedzał go superbohater o pseudonimie Shield czternaście
miesięcy wcześniej niż Kapitan Ameryka. Shield nosił na sobie pancerny
kostium z kuloodporną tarczą na piersi (zwraca się uwagę na uderzające
podobieństwo do wczesnej tarczy Kapitana Ameryki, która w późniejszych
wydaniach była już okrągła). Na dodatek obie postacie łączyła podobna
geneza: Shield tak jak bohater Marvela zyskał nadludzkie moce po zażyciu
serum superżołnierza, którego twórca został zabity przez hitlerowców.
Postać Kapitana Ameryki pojawiała się w wielu różnych adaptacjach."
> FuzzyText.new(description, hero).matches
=> ["Kapitanie z Ameryki", "Kapitan Ameryka", "Kapitana Ameryki",
"Kapitana", "Kapitanie", "Kapitan"]