A humble introduction to ROP chaining basics. The ppt deals with what is ROP. It builds the basics by introducing basics of buffer overflow and then talks about ROPs and why they are needed. It also has animated videos to help understand the layout of the stack clearly.
This document provides an agenda and notes for a programming lecture. The lecture covers sample problems, hash functions and dictionaries, simulating a car, functions as arguments, checking Fermat's Last Theorem, cumulative sums, estimating e and pi through Taylor expansions, finding words with triple double letters, PyGame for game development, and developing a single-player and two-player car game in PyGame. The document includes code examples and references to further resources.
This presentation is from a hands-on session that happened at the Hacker Thursdays series of OWASP Bay Area delivered by Gábor, Co-Founder and CTO at Avatao. Join our meetup at https://www.meetup.com/Bay-Area-OWASP and follow @OWASPBayArea on Twitter and Instagram to keep up with the latest updates and chapter events.
Details:
As the topic itself is quite complex and deep, we don’t aim at digging into the details of any of the memory corruption errors (e.g., stack or heap overflow). Rather the goal is to get a bit of understanding of CPU internals, the assembly language, the goal of debuggers, program memory layouts and basic exploitation techniques. This information will help us to analyze binaries together and find ways to misuse them. This session intends to give an appetizer to those who spend most of their time with recent web technologies, but interested to understand a little bit the nature of the underlying native world. The exercises are going to be hosted on the Avatao framework, so everybody can easily join to solve them.
Trainer:
Gábor is a co-founder and CTO at Avatao, a cloud-based virtual lab to teach people build secure software and systems. He earned his Ph.D. degree in 2015 from the CrySyS Lab of Budapest University of Technology and Economics, but completed internships at iSecLab at Eurecom, France and TU Wien, Austria, too. His main research focus was on malware analysis and virtualization security. One of the vulnerabilities he found (XSA-59/CVE[masked]) affected several Intel chipsets that enabled attacks against hypervisors such as Xen or KVM. He was one of the key members of the Duqu, Flame, Miniduke and Teamspy targeted attack investigation teams. He founded and coordinated CrySyS Student Core for almost 5 years, which was an invite-only group of exceptionally talented students interested in system security. This group gave birth to the "!SpamAndHex" (https://ctftime.org/team/5347) CTF team, which became one of the top teams in the world in 2 years. As a member of !SpamAndHex he is a three-times DEFCON CTF finalist, that is widely regarded as the hacker world championship. Over the years, he gave talks at several cyber security conferences in the academia (e.g., ACM AsiaCCS, ESORICS, USENIX ASE ) and industry (e.g., DevSecCon, POC, Belluminar, Hacktivity).
This database contains 100 Bach chorales, where each chorale is represented as a time series of musical events. Each event contains 6 attributes: start time, pitch, duration, key signature, time signature, and whether it has a fermata. The chorales come from the Mainous and Ottman edition and were originally supplied as 4 voice encodings, but this database contains just the soprano line converted to a format readable by Lisp. The goal is to learn a generative grammar for stylistically valid chorales from this dataset.
This C++ function finds a single missing integer in an array by:
1) Calculating the total of all numbers that should be in the full range
2) Summing the numbers in the provided array
3) Returning the difference between the full range total and current array total
Slides of the talk I gave at ConFoo Montréal 2019 about "Hexagonal Architecture".
Hexagonal Architecture, Clean Architecture, Domain-Driven Design… You may have heard about them. Let's start from scratch in this session and go beyond the buzzwords. We'll go together though these ideas to understand how you can improve the maintainability of your projects', either greenfield or legacy.
The document describes a rap lyric generator created by the authors. It uses a natural language generation technique trained on a corpus of 40,000 rap lyrics to output new rap lyrics. The generator utilizes language models to produce lyrics for choruses and verses separately. It generates multiple candidate lines and ranks them based on rhyming, syllable matching, and other metrics to emulate the structure of real rap lyrics. Examples of lyrics generated both with and without an input song are provided.
The document discusses parallelizing the string-matching Aho-Corasick algorithm. It describes splitting the text into chunks that are processed independently by threads. However, this can miss occurrences that span chunks, so an overlap between chunks is used. The matching phase is parallelized using OpenMP pragmas. Testing on large Bible and dictionary files showed speedups from using multiple threads, up to a point determined by hardware threads.
A humble introduction to ROP chaining basics. The ppt deals with what is ROP. It builds the basics by introducing basics of buffer overflow and then talks about ROPs and why they are needed. It also has animated videos to help understand the layout of the stack clearly.
This document provides an agenda and notes for a programming lecture. The lecture covers sample problems, hash functions and dictionaries, simulating a car, functions as arguments, checking Fermat's Last Theorem, cumulative sums, estimating e and pi through Taylor expansions, finding words with triple double letters, PyGame for game development, and developing a single-player and two-player car game in PyGame. The document includes code examples and references to further resources.
This presentation is from a hands-on session that happened at the Hacker Thursdays series of OWASP Bay Area delivered by Gábor, Co-Founder and CTO at Avatao. Join our meetup at https://www.meetup.com/Bay-Area-OWASP and follow @OWASPBayArea on Twitter and Instagram to keep up with the latest updates and chapter events.
Details:
As the topic itself is quite complex and deep, we don’t aim at digging into the details of any of the memory corruption errors (e.g., stack or heap overflow). Rather the goal is to get a bit of understanding of CPU internals, the assembly language, the goal of debuggers, program memory layouts and basic exploitation techniques. This information will help us to analyze binaries together and find ways to misuse them. This session intends to give an appetizer to those who spend most of their time with recent web technologies, but interested to understand a little bit the nature of the underlying native world. The exercises are going to be hosted on the Avatao framework, so everybody can easily join to solve them.
Trainer:
Gábor is a co-founder and CTO at Avatao, a cloud-based virtual lab to teach people build secure software and systems. He earned his Ph.D. degree in 2015 from the CrySyS Lab of Budapest University of Technology and Economics, but completed internships at iSecLab at Eurecom, France and TU Wien, Austria, too. His main research focus was on malware analysis and virtualization security. One of the vulnerabilities he found (XSA-59/CVE[masked]) affected several Intel chipsets that enabled attacks against hypervisors such as Xen or KVM. He was one of the key members of the Duqu, Flame, Miniduke and Teamspy targeted attack investigation teams. He founded and coordinated CrySyS Student Core for almost 5 years, which was an invite-only group of exceptionally talented students interested in system security. This group gave birth to the "!SpamAndHex" (https://ctftime.org/team/5347) CTF team, which became one of the top teams in the world in 2 years. As a member of !SpamAndHex he is a three-times DEFCON CTF finalist, that is widely regarded as the hacker world championship. Over the years, he gave talks at several cyber security conferences in the academia (e.g., ACM AsiaCCS, ESORICS, USENIX ASE ) and industry (e.g., DevSecCon, POC, Belluminar, Hacktivity).
This database contains 100 Bach chorales, where each chorale is represented as a time series of musical events. Each event contains 6 attributes: start time, pitch, duration, key signature, time signature, and whether it has a fermata. The chorales come from the Mainous and Ottman edition and were originally supplied as 4 voice encodings, but this database contains just the soprano line converted to a format readable by Lisp. The goal is to learn a generative grammar for stylistically valid chorales from this dataset.
This C++ function finds a single missing integer in an array by:
1) Calculating the total of all numbers that should be in the full range
2) Summing the numbers in the provided array
3) Returning the difference between the full range total and current array total
Slides of the talk I gave at ConFoo Montréal 2019 about "Hexagonal Architecture".
Hexagonal Architecture, Clean Architecture, Domain-Driven Design… You may have heard about them. Let's start from scratch in this session and go beyond the buzzwords. We'll go together though these ideas to understand how you can improve the maintainability of your projects', either greenfield or legacy.
The document describes a rap lyric generator created by the authors. It uses a natural language generation technique trained on a corpus of 40,000 rap lyrics to output new rap lyrics. The generator utilizes language models to produce lyrics for choruses and verses separately. It generates multiple candidate lines and ranks them based on rhyming, syllable matching, and other metrics to emulate the structure of real rap lyrics. Examples of lyrics generated both with and without an input song are provided.
The document discusses parallelizing the string-matching Aho-Corasick algorithm. It describes splitting the text into chunks that are processed independently by threads. However, this can miss occurrences that span chunks, so an overlap between chunks is used. The matching phase is parallelized using OpenMP pragmas. Testing on large Bible and dictionary files showed speedups from using multiple threads, up to a point determined by hardware threads.
The presentation from Python meetup by JettyCloud about solving a problem found in a library that uses hashlib, followed by an overview of the CPython hashlib module with implementation details.
The document discusses JIT compilation in CPython. It begins with a brief history of JIT compilation, including early implementations in LISP and Smalltalk. The author then describes their experience with JIT compilation in CPython, including converting Python code to IL assembly and machine code. Benchmarks show the JIT compiled Fibonacci function is around 8 times faster than the unoptimized version. Finally, the document briefly mentions the Numba project, which uses JIT compilation to accelerate Python code.
This document provides a summary of different data storage systems and structures. It discusses B-trees, LSM-trees, hash indices, R-trees, and the Block Range Index. It describes their uses, properties, and tradeoffs for operations like reads, writes, and range queries. Overall, the document analyzes various indexing techniques and how they are applied in different databases.
FUSE (Filesystem in Userspace) allows non-privileged users to create their own file systems. It works by mounting the file system within the userspace virtual file system. Python has a FUSE library called fusepy that provides a simple interface for implementing FUSE file systems in Python. PEPFS is an example of a FUSE file system implemented in Python that makes Python Enhancement Proposals (PEPs) available as read-only files organized in a file system structure. It uses fusepy and lazily downloads specific PEP files on demand when read.
This document traces the history and design process of the Python logo. It discusses the 1990s logo designed by Just van Rossum and Erik van Blokman. In 2006, Tim Parkin redesigned the logo to be more friendly while retaining simplicity and memorability. Parkin's logo was inspired by Mayan snake representations and used cross, spiral, and yin-yang shapes to evoke primitive meanings. The new logo launched alongside a python.org redesign.
True stories on the analysis of network activity using Pythondelimitry
The document discusses network packet analysis using Python. It provides an overview of network analysis tools like Wireshark and tcpdump, and how to use them to analyze network traffic captured in a pcap file. It also discusses how to create and send network packets using Scapy for tasks like port scanning, and how to filter network traffic using IPv4/IPv6 packet filters like iptables. The document provides examples of summarizing pcap data and crafting network packets for various protocols.
The presentation from SPbPython community / PiterPy meetup.
The presentation tells about one idea how it is possible to perform an obfuscation of numbers in Python.
ITGM #9 - Коварный CodeType, или от segfault'а к работающему кодуdelimitry
Доклад с ITGM #9 рассказывающий про реальный пример поиска и исправления Segmentation fault при генерации функции на Python в одном проекте
(Доклад вместе с http://www.slideshare.net/AndreyZakharevich)
The presentation from SPb Python Interest Group community meetup.
The presentation tells about the dictionaries in Python, reviews the implementation of dictionary in CPython 2.x, dictionary in CPython 3.x, and also recent changes in CPython 3.6. In addition to CPython the dictionaries in alternative Python implementations such as PyPy, IronPython and Jython are reviewed.
Презентация со встречи сообщества SPb Python Interest Group рассказывающая об устройстве словарей в Python.
В презентации рассмотрена работа словаря в CPython 2.x, словаря в CPython 3.x, а также рассмотрены изменения в CPython 3.6.
Помимо CPython рассмотрены версии словаря в альтернативных реализациях Python, таких как PyPy, IronPython и Jython.
Разработка фреймворка на Python для автоматизации тестирования STB боксовdelimitry
Презентация для PiterPy #2, рассказывающая об опыте разработки и использования фреймворка на Python для автоматизированного тестирования STB (Set-Top Boxes).
This document discusses the "Rings" cryptography challenge from the SchoolCTF 2012 competition. It references the Lord of the Rings and provides a file related to the challenge. It also discusses Louis Braille, the inventor of braille, noting that he allowed blind and visually impaired people to read and write. It states the braille system remains important for learning and communication for blind people worldwide, and has been adapted for many languages. The flag provided as the result is "Pantheon", referring to the location of Braille's resting place.
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!
GraphSummit Paris - The art of the possible with Graph TechnologyNeo4j
Sudhir Hasbe, Chief Product Officer, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j
Dr. Jesús Barrasa, Head of Solutions Architecture for EMEA, Neo4j
Découvrez les dernières innovations de Neo4j, et notamment les dernières intégrations cloud et les améliorations produits qui font de Neo4j un choix essentiel pour les développeurs qui créent des applications avec des données interconnectées et de l’IA générative.
The presentation from Python meetup by JettyCloud about solving a problem found in a library that uses hashlib, followed by an overview of the CPython hashlib module with implementation details.
The document discusses JIT compilation in CPython. It begins with a brief history of JIT compilation, including early implementations in LISP and Smalltalk. The author then describes their experience with JIT compilation in CPython, including converting Python code to IL assembly and machine code. Benchmarks show the JIT compiled Fibonacci function is around 8 times faster than the unoptimized version. Finally, the document briefly mentions the Numba project, which uses JIT compilation to accelerate Python code.
This document provides a summary of different data storage systems and structures. It discusses B-trees, LSM-trees, hash indices, R-trees, and the Block Range Index. It describes their uses, properties, and tradeoffs for operations like reads, writes, and range queries. Overall, the document analyzes various indexing techniques and how they are applied in different databases.
FUSE (Filesystem in Userspace) allows non-privileged users to create their own file systems. It works by mounting the file system within the userspace virtual file system. Python has a FUSE library called fusepy that provides a simple interface for implementing FUSE file systems in Python. PEPFS is an example of a FUSE file system implemented in Python that makes Python Enhancement Proposals (PEPs) available as read-only files organized in a file system structure. It uses fusepy and lazily downloads specific PEP files on demand when read.
This document traces the history and design process of the Python logo. It discusses the 1990s logo designed by Just van Rossum and Erik van Blokman. In 2006, Tim Parkin redesigned the logo to be more friendly while retaining simplicity and memorability. Parkin's logo was inspired by Mayan snake representations and used cross, spiral, and yin-yang shapes to evoke primitive meanings. The new logo launched alongside a python.org redesign.
True stories on the analysis of network activity using Pythondelimitry
The document discusses network packet analysis using Python. It provides an overview of network analysis tools like Wireshark and tcpdump, and how to use them to analyze network traffic captured in a pcap file. It also discusses how to create and send network packets using Scapy for tasks like port scanning, and how to filter network traffic using IPv4/IPv6 packet filters like iptables. The document provides examples of summarizing pcap data and crafting network packets for various protocols.
The presentation from SPbPython community / PiterPy meetup.
The presentation tells about one idea how it is possible to perform an obfuscation of numbers in Python.
ITGM #9 - Коварный CodeType, или от segfault'а к работающему кодуdelimitry
Доклад с ITGM #9 рассказывающий про реальный пример поиска и исправления Segmentation fault при генерации функции на Python в одном проекте
(Доклад вместе с http://www.slideshare.net/AndreyZakharevich)
The presentation from SPb Python Interest Group community meetup.
The presentation tells about the dictionaries in Python, reviews the implementation of dictionary in CPython 2.x, dictionary in CPython 3.x, and also recent changes in CPython 3.6. In addition to CPython the dictionaries in alternative Python implementations such as PyPy, IronPython and Jython are reviewed.
Презентация со встречи сообщества SPb Python Interest Group рассказывающая об устройстве словарей в Python.
В презентации рассмотрена работа словаря в CPython 2.x, словаря в CPython 3.x, а также рассмотрены изменения в CPython 3.6.
Помимо CPython рассмотрены версии словаря в альтернативных реализациях Python, таких как PyPy, IronPython и Jython.
Разработка фреймворка на Python для автоматизации тестирования STB боксовdelimitry
Презентация для PiterPy #2, рассказывающая об опыте разработки и использования фреймворка на Python для автоматизированного тестирования STB (Set-Top Boxes).
This document discusses the "Rings" cryptography challenge from the SchoolCTF 2012 competition. It references the Lord of the Rings and provides a file related to the challenge. It also discusses Louis Braille, the inventor of braille, noting that he allowed blind and visually impaired people to read and write. It states the braille system remains important for learning and communication for blind people worldwide, and has been adapted for many languages. The flag provided as the result is "Pantheon", referring to the location of Braille's resting place.
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!
GraphSummit Paris - The art of the possible with Graph TechnologyNeo4j
Sudhir Hasbe, Chief Product Officer, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j
Dr. Jesús Barrasa, Head of Solutions Architecture for EMEA, Neo4j
Découvrez les dernières innovations de Neo4j, et notamment les dernières intégrations cloud et les améliorations produits qui font de Neo4j un choix essentiel pour les développeurs qui créent des applications avec des données interconnectées et de l’IA générative.
SMS API Integration in Saudi Arabia| Best SMS API ServiceYara Milbes
Discover the benefits and implementation of SMS API integration in the UAE and Middle East. This comprehensive guide covers the importance of SMS messaging APIs, the advantages of bulk SMS APIs, and real-world case studies. Learn how CEQUENS, a leader in communication solutions, can help your business enhance customer engagement and streamline operations with innovative CPaaS, reliable SMS APIs, and omnichannel solutions, including WhatsApp Business. Perfect for businesses seeking to optimize their communication strategies in the digital age.
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j
Dr. Jesús Barrasa, Head of Solutions Architecture for EMEA, Neo4j
Découvrez les dernières innovations de Neo4j, et notamment les dernières intégrations cloud et les améliorations produits qui font de Neo4j un choix essentiel pour les développeurs qui créent des applications avec des données interconnectées et de l’IA générative.
SOCRadar's Aviation Industry Q1 Incident Report is out now!
The aviation industry has always been a prime target for cybercriminals due to its critical infrastructure and high stakes. In the first quarter of 2024, the sector faced an alarming surge in cybersecurity threats, revealing its vulnerabilities and the relentless sophistication of cyber attackers.
SOCRadar’s Aviation Industry, Quarterly Incident Report, provides an in-depth analysis of these threats, detected and examined through our extensive monitoring of hacker forums, Telegram channels, and dark web platforms.
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
Using Query Store in Azure PostgreSQL to Understand Query PerformanceGrant Fritchey
Microsoft has added an excellent new extension in PostgreSQL on their Azure Platform. This session, presented at Posette 2024, covers what Query Store is and the types of information you can get out of it.
E-commerce Development Services- Hornet DynamicsHornet Dynamics
For any business hoping to succeed in the digital age, having a strong online presence is crucial. We offer Ecommerce Development Services that are customized according to your business requirements and client preferences, enabling you to create a dynamic, safe, and user-friendly online store.
WhatsApp offers simple, reliable, and private messaging and calling services for free worldwide. With end-to-end encryption, your personal messages and calls are secure, ensuring only you and the recipient can access them. Enjoy voice and video calls to stay connected with loved ones or colleagues. Express yourself using stickers, GIFs, or by sharing moments on Status. WhatsApp Business enables global customer outreach, facilitating sales growth and relationship building through showcasing products and services. Stay connected effortlessly with group chats for planning outings with friends or staying updated on family conversations.
OpenMetadata Community Meeting - 5th June 2024OpenMetadata
The OpenMetadata Community Meeting was held on June 5th, 2024. In this meeting, we discussed about the data quality capabilities that are integrated with the Incident Manager, providing a complete solution to handle your data observability needs. Watch the end-to-end demo of the data quality features.
* How to run your own data quality framework
* What is the performance impact of running data quality frameworks
* How to run the test cases in your own ETL pipelines
* How the Incident Manager is integrated
* Get notified with alerts when test cases fail
Watch the meeting recording here - https://www.youtube.com/watch?v=UbNOje0kf6E
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
Zoom is a comprehensive platform designed to connect individuals and teams efficiently. With its user-friendly interface and powerful features, Zoom has become a go-to solution for virtual communication and collaboration. It offers a range of tools, including virtual meetings, team chat, VoIP phone systems, online whiteboards, and AI companions, to streamline workflows and enhance productivity.
Atelier - Innover avec l’IA Générative et les graphes de connaissancesNeo4j
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Allez au-delà du battage médiatique autour de l’IA et découvrez des techniques pratiques pour utiliser l’IA de manière responsable à travers les données de votre organisation. Explorez comment utiliser les graphes de connaissances pour augmenter la précision, la transparence et la capacité d’explication dans les systèmes d’IA générative. Vous partirez avec une expérience pratique combinant les relations entre les données et les LLM pour apporter du contexte spécifique à votre domaine et améliorer votre raisonnement.
Amenez votre ordinateur portable et nous vous guiderons sur la mise en place de votre propre pile d’IA générative, en vous fournissant des exemples pratiques et codés pour démarrer en quelques minutes.
3. Plan
1) Prepare list of buzzwords
2) Prepare rhymes
3) Generate base from given number of syllables in lines and number of lines
4) Find list of rhymes for generated base
5) Fill poem base with buzzwords from given rhyme scheme and base
3
4. Algorithm
1) Knowing the total number of syllables in each line — generate all combinations
of sums (compositions) from all available number of syllables.
Compositions of 3:
1 + 1 + 1
1 + 2
2 + 1
3
NB: Each positive integer n has 2 ** (n - 1) distinct compositions.
4
5. Algorithm
2) Knowing the number of syllables in each line, generate the base (I call it so) for
future poem from random compositions for each number of syllables.
E.g. for number of syllables in lines [4, 4], poem base is:
1, 2, 1
1, 3
5
6. Algorithm
3) After generating of poem base and known rhyme scheme — find rhymes.
For poem base:
1, 2, 1
1, 3
and rhyme scheme AA (i.e. first and second lines rhyme with each other).
To prepare rhymes get only last values (here 1, 3), because only the last words
form a rhyme.
I.e. for the poem above find rhymes for words with number of syllables 1, 3.
Storm and Ter-ra-form are fit.
6
7. Algorithm
4) Fill the poem base with buzzwords. Insert the rhymes found in previous step.
1, 2, Storm
1, Ter-ra-form
Fill the remaining values with not used buzzwords:
Go Sca-la Storm
Vault Ter-ra-form
7