1) The document provides an introduction to programming with the maXbox tool. It explains the interface and how to load sample code.
2) The sample code checks if numbers are prime by using a function called checkPrim() within a procedure called TestPrimNumbers(). It saves the results to a file.
3) The main routine calls TestPrimNumbers(), saves the output list to a file, loads the file, and displays the results along with performance times. This demonstrates functions, procedures, file I/O, and other basic programming concepts.
Java is a computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible.
I am Josh U. I am a C++ Homework Expert at cpphomeworkhelp.com. I hold a Masters in Programming from St. Edward’s University, USA. I have been helping students with their homework for the past 5 years. I solve homework related to C++. Visit cpphomeworkhelp.com or email info@cpphomeworkhelp.com. You can also call on +1 678 648 4277 for any assistance with C++ Homework.
Java is a computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible.
I am Josh U. I am a C++ Homework Expert at cpphomeworkhelp.com. I hold a Masters in Programming from St. Edward’s University, USA. I have been helping students with their homework for the past 5 years. I solve homework related to C++. Visit cpphomeworkhelp.com or email info@cpphomeworkhelp.com. You can also call on +1 678 648 4277 for any assistance with C++ Homework.
Types of Statements in Python Programming LanguageExplore Skilled
The slide describes the types of flow control statements in Python including conditional statement , loop statement , control statement such as break and continue .
windows programs that don't have just a
black screen. Well, these GUI1 programs are called Win32 API programs.
Learn how to make API calls with a black screen and other GUI objects in
Win 32 programming.
There are three main topics in here. First technologies – simply put, this part is mainly for early adopters. It’s about coding, developing toys, plugging in kettles on the web (and we and many others actually did that!).
The second part is about new ideas, prototyping and new technologies that are in the lab. It’s about research papers, and software philosophy, and about researchers worldwide. Third part is about end-users and products.
We code a RGB LED light on the Arduino board and a breadboard on which we switch off or on the light by a browser on an android device with our own web server and their COM protocols.
It exists.
It takes time.
It requires culture and discipline.
Unit and function testing is what takes the least time.
Hours writing an automated test is time invested, not time wasted!
Types of Statements in Python Programming LanguageExplore Skilled
The slide describes the types of flow control statements in Python including conditional statement , loop statement , control statement such as break and continue .
windows programs that don't have just a
black screen. Well, these GUI1 programs are called Win32 API programs.
Learn how to make API calls with a black screen and other GUI objects in
Win 32 programming.
There are three main topics in here. First technologies – simply put, this part is mainly for early adopters. It’s about coding, developing toys, plugging in kettles on the web (and we and many others actually did that!).
The second part is about new ideas, prototyping and new technologies that are in the lab. It’s about research papers, and software philosophy, and about researchers worldwide. Third part is about end-users and products.
We code a RGB LED light on the Arduino board and a breadboard on which we switch off or on the light by a browser on an android device with our own web server and their COM protocols.
It exists.
It takes time.
It requires culture and discipline.
Unit and function testing is what takes the least time.
Hours writing an automated test is time invested, not time wasted!
Objectives Assignment 09 Applications of Stacks COS.docxdunhamadell
Objectives
Assignment 09: Applications of Stacks
COSC 2336: Data Structures and Algorithms Fall 2020
• More practice with recursion.
• Practice writing some template functions.
• Use stack ADT to implement given algorithms.
• Practice using Stack class container given as a library in a separate file. • Look at some common applications of stacks.
Description
In this assignment, you will be using the Stack abstract data type we developed for this unit and discussed in our lectures, to implement 4 functions that use a stack data type to accomplish their algorithms. The functions range from relatively simple, straight forward use of a stack, to a bit more complex. But in all 4 cases, you should only need to use the abstract stack interface functions push(), pop(), top(), and isEmpty() in order to successfully use our Stack type for this assignment and the function you are asked to write.
NOTE
You are to use the Stack ADT abstraction give to you for this assignment. If you are familiar with STL stack containers, you are not to use them for this assignment. Part of the assignment is to look over and learn the Stack ADT implementation we give you here based on our textbook Stack examples.
Setup
For this assignment you will be given the following files:
File Name
assg09-tests.cpp assg09-stackfun.hpp assg09-stackfun.cpp Stack.hpp
Stack.cpp
Description
Unit tests for the member functions
you are to write.
Header file where function prototypes for the functions you write using stacks should go. Implementaiton file, the implementation of the 4 functions you write for this assignment go here. Header file defining a Stack ADT for use in implementing the functions for this assignment. You will not make any modifications in this file, you are only going to be using the given Stack. Implementation file for the Stack ADT
template class. You also do not make any changes in this file either.
Set up a multi-file project to compile the .cpp source files and run them as shown for the class. The Makefile you were given should be usable to create a build project using the Atom editor as required in this class. You will only be adding code to the assg09-stackfun.[hpp|cpp] file in this assignment. The Stack.[hpp|cpp] file contains a Stack container. You are to use this Stack ADT for the 4 functions you are to write for this assignment.
1
The general approach you should take for this assignment, and all assignment is:
Set up your project with the given starting code. The files should compile and run, but either no tests will be run, or tests will run but be failing.
For this project, start by uncommenting the first TEST_CASE in the assg09-tests.cpp file. These are the unit tests to test the functionality of your doParenthesisMatch() function, the member function you are to implement.
AddthecorrectfunctionprototypeforthedoParenthesisMatch()memberfunctionintheassg09-stackfun.hpp header file. The prototyp.
import java.util.Scanner;Henry Cutler ID 1234 7202.docxwilcockiris
import java.util.Scanner;
/*
Henry Cutler ID 1234 7/20/2015
Assignment #5, 3 features in 1 program
Solution
for Assignment#5 COP2800
Pseudocode:
Program has three features, all in a single program that are user selectable.
Prompt with options and get user choice inside a while statement ( true )
If 1 is entered:
Using a while and for loop, print out the ASCII table from ! to ~.
If 2 is entered:
Prompt the user for number of times to flip for head or tails using the random method. Count number of each and when the request times are done, print out the results.
If 3 is entered:
Prompt the user for a strings and print back the count of vowels and letters
Any other input entered program will exit using a break statement, otherwise loops back to prompt user for feature selection.
*/
public class Module5 {
public static void main(String[] args) {
// prompt the user
System.out.println("Welcome to Henry\'s 3 in 1 Programming Assignment for Module 5\n");
// create Scanner Object
Scanner input = new Scanner(System.in);
// loop until break
while(true){
// new lines for readability
System.out.print("\n");
// Prompt user for choices
System.out.print("Enter 1 for ASCII Table \nEnter 2 for Heads or Tails\nEnter 3 for Count Vowels & Letters\nAny other input will exit");
int choice = input.nextInt();
// Consume newline left-over
input.nextLine();
// first feature
if(choice == 1){
// start value is !
int value = (int) '!';
// newline for formating
System.out.println("You Selected ASCII Table!\n");
// start at ~ which is 33 decimal
while( value <= '~')
{
// print out 20 in a line
for( int count = 0; count < 20; count ++ ){
if( value <= '~'){
// print single value
System.out.print( (char) value++ );
}
else {
// break when we are at last char to print
break;
}
}
// New line every 10
System.out.print("\n");
}
// New line at exit
System.out.print("\n");
}
else if(choice == 2){
// Prompt user
System.out.println("You Selected Head or Tails!");
System.out.println("\nHow many flips would you like to try?");
// get value
int count = input.nextInt();
// clear
input.nextLine();
int headCount = 0;
int tailCount = 0;
// run for a count provided by user
for (int i = 0; i < count; i++) {
// get random number
if (Math.random() > 0.5){
// increment heads
headCount++;
}
else {
// increment tails
tailCount++;
}
}
System.out.println("Head count: " + headCount + " tail count: " + tailCount);
}
else if(choice == 3){
// Prompt user
Sys.
ISTA 130 Lab 21 Turtle ReviewHere are all of the turt.docxpriestmanmable
ISTA 130: Lab 2
1 Turtle Review
Here are all of the turtle functions we have utilized so far in this course:
turtle.forward(distance) – Moves the turtle forward in the direction it is currently facing the distance
entered
turtle.backward(distance) – Same as forward but it moves in the opposite direction the turtle is facing
turtle.right(degrees) – Roates the turtle to the right by the degrees enteres
turtle.left(degrees) – Same as right, but it rotates the turtle to the left
turtle.pensize(size) – Adjusts the size of the line left by the turtle to whatever value is entered for size
turtle.home() – Moves the turtle to the default location and faces it to the right
turtle.clear() – Clears all the lines that were left by the turtle in the window.
turtle.penup() – Causes the turtle to stop leaving lines (until pen is placed back down)
turtle.pendown() – Places the pen back down to the turtle can continue leaving lines when forward and
backward are called.
turtle.pencolor(color string) – Changes the color of the lines left by the turtle to whatever color string
entered (so long as Python recognizes it).
turtle.bgcolor(color string) – Changes the background color for the window that the turtle draws in.
turtle.speed(new speed) – Changes the speed at which the turtle moves to whatever newSpeed is.
turtle.clearscreen() – Deletes all drawings and turtles from the screen, leaving it in its initial state
Note that abbreviations also exist for many of these functions; for example:
� turtle.fd(distance)
� turtle.rt(degrees)
� turtle.pu()
1
2 Functions and Parameters
Here is the square function we looked at yesterday:
def square(side_length):
’’’
Draws a square given a numerical side_length
’’’
turtle.forward(side_length)
turtle.right(90)
turtle.forward(side_length)
turtle.right(90)
turtle.forward(side_length)
turtle.right(90)
turtle.forward(side_length)
turtle.right(90)
return
square(50) # This would give side_length the value of 50
square(100) # This would give side_length the value of 100
print side_length # This will give an error because side_length
# only exists inside the function!
Try it out:
(1 pt.) Create a new file called lab02.py. In this file, create a simple function called rhombus. It
will take one parameter, side length. Using this parameter, have your function create a rhombus
using turtle graphics. Call your rhombus function in the script. What happens if you provide no
arguments to the function? Two or three arguments?
Then, modify your rhombus function so it takes another argument for the angle inside the
rhombus.
3 Data types
Python recognizes many different types of values when working with data. These can be numbers,
strings of characters, or even user defined objects. For the time being, however, were only going to
focus on three of the data types:
integer – These are whole numbers, both positive and negative. Examples are 5000, 0, and -25
float – These are numbers that are followed by a decimal poi ...
Your 1ab8 c file is doe by Friday 1159pm to be submitted.pdfabhijitmaskey
Your 1ab8. c file is doe by Friday, 11.59pm, to be submitted on Gradescope. Overview This week,
you will start with last week's program and create your own functions for some of the tasks. You'll
have a printmenu () function, printarray () function and a convertcase () function. Just like you saw
in class, the code from the main () function that performs each of those tasks will be moved from
the the main () function and into their respective functions. More details about those functions are
shown below in the Lab Assignment section. All the functions will be in one file, called lab8.c.
Background Information For this lab, you will use last week's program to start with. Copy it and
rename it lab8.c. Again, you will be adding more code to this program in the future, so make sure
you get this one working. Functions and Reminders 1. As you saw in class, functions perform
(usually) one task, or a couple of smaller tasks that combined perform a task. 2. Some functions
return a value (the retum type being specified in the functon header/signature and a return
statement at the bottom of the function): int printmenu() & and some functions do not return any
value (the retum type then being specified as void and no return statement at the bottom of the
function): void convertCase (char text [MAX_LINE] [MAX_LINE_LEN] ) i 3. When arguments are
being sent to the function, the function then has "parameters" specified in the function
header/signature. The parameters that are specified indicate the type and the name: void
printarray (char text[MAX_LINE] [MAX_LINE_LEN], int size) { If a function is not being sent any
arguments, then the parameter list will be empty (meaning nothing in the parentheses). int
printMenu() f / / empty parentheses 4. When sending a 1-D array to a function, the parameter can
be specified with empty square brackets: int findLowest (int theArray[], int size) f // from in-class
exercise When a 2-D array is sent to a function, however, the parameter has to at least specify the
number of columns. So the parameter can be specified as: void f1 (int array [][12]) If a variable is
being used for the dimension(s) of the array, then the variable must appear first in the list of
parameters: void 11 (int numRows, int numCols, int array 1 [numRows] [numCols]) For this lab,
since the number of rows and number of columns are either idefine or constants, defined outside
of the main0 function, the parameter showing the array can use those names for the dimensions
without including them in the parameter list: void convertCase (char text[MAX_LINE]
[MAX_LINE_LEN]) I 5. As discussed in class, to eliminate chances of confusion, you should
ensure that there is no variable shadowing (the argument being sent to the function has a different
name than the parameter). 6. Function prototypes should be at the top of the file, EVFN IF THE
MAINO FUNCTION IS AT THE BOTTOM OF5. Function prototypes should be at the top of the file,
EVEN If THE MANNO FUNCTION IS AT THE.
This covers details on Writing Pascal using Lazarus.
A teaching resource for students without any previous experience.
Originally written for AQA A level Computing (UK exam).
This covers details on Writing Pascal using Lazarus.
A teaching resource for students without any previous experience. Can be used for teaching or direct notes for students (Continued with notes for A2).
Originally written for AQA A level Computing (UK exam).
In programming languages, a closure (also lexical closure or function closure) is a function or reference to a function together with a referencing environment as a block
Task Perform addition subtraction division and multiplic.pdfacsmadurai
Task: Perform addition, subtraction, division, and multiplication, of rational numbers on MIPS Mars
Programming Simulator by writing a code and print the answers (using macros) from the pictures
provided. Also, when you write the code make sure you follow this format,
format:
.macro print_int (%x)
li $v0, 1
add $a0, $zero, %x
syscall
.end_macro
print_int ($s0)
print_int (10)
Intro Settings Syscalls IDE Debugging Command Tools History Limitations Exception Handlers
Macros Acknowledgements MARS home Writing and Using Macros .macro, .end_macro,.eqv and
.include directives are new in MARS 4.3 Introduction to macros Patterson and Hennessy define a
macro as a pattern-matching and replacement facility that provides a simple mechanism to name
a frequently used sequence of instructions [1]. This permits the programmer to specify the
instruction sequence by invoking the macro. This requires only one line of code for each use
instead of repeatedly typing in the instruction sequence each time. It follows the axiom "define
once, use many times," which not only reduces the chance for error but also facilitates program
maintenance. Macros are like procedures (subroutines) in this sense but operate differently than
procedures. Procedures in MIPS assembly language follow particular protocols for procedure
definition, call and return. Macros operate by substituting the macro body for each use at the time
of assembly. This substitution is called macro expansion.. They do not require the protocols and
execution overhead of procedures. As a simple example, you may want to terminate your program
from a number of locations. If you are running from the MARS IDE, you will use system call 10,
exit. The instruction sequence is pretty easy 1i$v0,10syscal1 but still tedious. You can define a
macro, let's call it done, to represent this sequence [ begin{array}{l} text { macro done } text { i1 } $
text { vo, } 10 text { syscali } text { +end_macro } end{array} ] then invoke it whenever you wish
with the statement done At assembly time, the assembler will replace each occurrence of the
statement done with the two-statement sequence 1i$v0,10syscali This is the macro expansion.
The runtime simulator is unaware of macros or macro expansion. If running MARS from the
command line, perhaps you want to return a termination value. This can be done with syscall 17,
exit2, which takes the termination value as an argument. An equivalent macro, let's call it
terminate would be macro terminate (stermination_value) ii $a0, itermination_value li $v0,17
syscali .end_macro This macro defines a formal parameter to represent the termination value. You
would invoke it with the statement terminate (1) to terminate with value 1. Upon assembly, the
statement terminate (1) would be replaced byterninate (1) to terminate with value 1. Upon
assembly, the statement terainate (1) would be replaced by the three-statement sequence The
argument value, 1, is substituted wherever the formal parameter teermi.
In the last sessions we have seen that P4D (Python 4 Delphi) is powerful enough to offer components, Python packages or libraries in Delphi or Lazarus (FPC). This time we go the other way of usage and integration; how does the Python or web world in the shell benefit from the VCL components as GUI controls. We create a Python extension module from Delphi classes, packages or functions. Building Delphi’s VCL library as a specific Python module in a console or editor and launching a complete Windows GUI from a script can be the start of a long journey.
The flood of Open APIs is now so blatant that we take a closer look at some basics and principles. Of course, the best way to understand how APIs work is to try them. While most APIs require access via API keys or have complicated authentication and authorization methods, there are also open APIs with no requirements or licenses whatsoever. This is especially useful for beginners as we can start exploring different APIs right away. It’s also useful for web developers who want easy access to a sample dataset for their app; e.g. most weather apps get their weather forecast data from a weather API instead of building weather stations themselves.
Faker is a Python library that generates fake data. Fake data is often used for testing or filling databases with some dummy data. Faker is heavily inspired by PHP's Faker, Perl's Data::Faker, and by Ruby's Faker.
Many of the applications and organizations provide avatar features. Finally, synthetic datasets can minimize privacy concerns. Attempts to anonymize data can be ineffective, as even if sensitive/identifying variables are removed from the dataset
Python for Delphi (P4D) is a set of free components that wrap up the Python DLL into Delphi and Lazarus (FPC). They let you easily execute Python scripts, create new Python modules and new Python types. You can create Python extensions as DLLs and much more like scripting. P4D provides different levels of functionality: Low-level access to the python API High-level bi-directional interaction with Python Access to Python objects using Delphi custom variants (VarPyth.pas).
Python for Delphi (P4D) is a set of free components that wrap up the Python DLL into Delphi and Lazarus (FPC). They let you easily execute Python scripts, create new Python modules and new Python types. You can create Python extensions as DLLs and much more like scripting. P4D provides different levels of functionality:
Low-level access to the python API
High-level bi-directional interaction with Python
Access to Python objects using Delphi custom variants (VarPyth.pas)
Wrapping of Delphi objects for use in python scripts using RTTI (WrapDelphi.pas)
Creating python extension modules with Delphi classes and functions
Generate Scripts in maXbox from Python Installation
With the following report I show how to host and execute a deep learning project on a cloud. The cloud is hosted by google Colab and enables working and testing in teams. Lazarus and FreePascal is also being built in colab and the deep learning network is compiled and trained too in a Jupyter notebook with Python scripts.
The portable pixmap format(PPM), the portable graymap format(PGM) and portable bitmap format(PBM) are image file formats designed to be easily exchanged between platforms. They are also sometimes referred collectively as the portable anymap format(PNM). These formats are a convenient (simple) method of saving image data. And the format is not even limited to graphics, its definition allowing it to be used for arbitrary three-dimensional matrices or cubes of unsigned integers.
This tutor puts a trip to the kingdom of object recognition with computer vision knowledge and an image classifier.
Object detection has been witnessing a rapid revolutionary change in some fields of computer vision. Its involvement in the combination of object classification
as well as object recognition makes it one of the most challenging topics in the domain of machine learning & vision.
How can we visualize data in machine learning with VS Code? This is a C# wrapper for the GraphViz graph generator for dotnet core. Further bindings for Python GraphViz are shown and exports to MS Power BI all in MS Visual Code, Jupyter and dotnet core.
K-CAI NEURAL API is a Keras based neural network API for machine learning that will allow you to prototype with a lots of possibilities of Tensorflow! Python, Free Pascal and Delphi together in Google Colab, Git or the Community Edition.
Software is changing the world. CGC is a Common Gateway Coding as the name says, it is a "common" language approach for almost everything. I want to show how a multi-language approach to infrastructure as code using general purpose programming languages lets cloud engineers and code producers unlocking the same software engineering techniques commonly used for applications.
Code Review Checklist: How far is a code review going? "Metrics measure the design of code after it has been written, a Review proofs it and Refactoring improves code."
In this paper a document structure is shown and tips for a code review.
Some checks fits with your existing tools and simply raises a hand when the quality or security of your codebase is impaired.
Open LDAP as A directory serviceis a system for storing and retrieving information in a tree-like structure with the following key properties:
Optimized for reading Distributed storage model Extensible data storage types Advanced search capabilities Consistent replication possibilities
They are a block of code plus the bindings to the environment they came from (RagusaIdiom).
Closures are reusable blocks of code that capture the environment and can be passed around as method arguments for immediate or deferred execution.
This tutor explains a solution to attach a console to your app. Basically we want an app to have two modes, a GUI mode and a non-GUI mode for any humans and robots. A NoGUI app provides a mechanism for storage and retrieval of data and functions in means other than the normal GUI used in operating systems.
Introduction to use machine learning in python and pascal to do such a thing like train prime numbers when there are algorithms in place to determine prime numbers. See a dataframe, feature extracting and a few plots to re-search for another hot experiment to predict prime numbers.
This tutor shows the train and test set split with binary classifying, clustering and 3D plots and discuss a probability density function in scikit-learn on synthetic datasets. The dataset is very simple as a reference of understanding.
This tutor shows the train and test set split with histogram and a probability density function in scikit-learn on synthetic datasets. The dataset is very simple as a reference of understanding.
In this article you will learn hot to use tensorflow Softmax Classifier estimator to classify MNIST dataset in one script.
This paper introduces also the basic idea of a artificial neural network.
The term “machine learning” is used to describe one kind of “artificial intelligence” (AI) where a machine is able to learn and adapt through its own experience. We crawled and collected 30 top overview diagrams which shows the topic of methods, algorithms and concepts.
Enhancing Performance with Globus and the Science DMZGlobus
ESnet has led the way in helping national facilities—and many other institutions in the research community—configure Science DMZs and troubleshoot network issues to maximize data transfer performance. In this talk we will present a summary of approaches and tips for getting the most out of your network infrastructure using Globus Connect Server.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
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
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/
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
The Metaverse and AI: how can decision-makers harness the Metaverse for their...Jen Stirrup
The Metaverse is popularized in science fiction, and now it is becoming closer to being a part of our daily lives through the use of social media and shopping companies. How can businesses survive in a world where Artificial Intelligence is becoming the present as well as the future of technology, and how does the Metaverse fit into business strategy when futurist ideas are developing into reality at accelerated rates? How do we do this when our data isn't up to scratch? How can we move towards success with our data so we are set up for the Metaverse when it arrives?
How can you help your company evolve, adapt, and succeed using Artificial Intelligence and the Metaverse to stay ahead of the competition? What are the potential issues, complications, and benefits that these technologies could bring to us and our organizations? In this session, Jen Stirrup will explain how to start thinking about these technologies as an organisation.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
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/
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.
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.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
Maxbox starter
1. maXbox Starter
Start with Programming
1.1 First Step
To start programming isn’t that difficult. You may know, in the very beginning was nothing which
exploded ;). The Starter has been written presuming you don’t have any prior knowledge of
programming or software engineering.
Coding is sort of a discipline between science and art. In no time we will get deep into maXbox or
ObjectPascal programming (OP). It’s just a primer to show the first steps in writing a program. Another
lesson goes deeper with a second step and shows objects, classes and events.
All you need to know is that in this program, we have a procedure and a function, the procedure is
called TestPrimNumbers and it’s purpose is to check numbers if they are prime or not.
1.2 Get the Code
When you work with maXbox you will have a sight very similar to the image below. Using Windows or
Linux will present some differences but the box is pretty much the same no matter what operating
system you are using. The tool is split up into the toolbar across the top, the editor or code part in the
centre and the output window at the bottom.
The 4 buttons (speed buttons) in the toolbar provide convenient access to the most commonly used
functions within the menus “files” and “program”.
Before this starter code will work you will need to download maXbox from the website. This can be
done from http://www.softwareschule.ch/maxbox.htm (you’ll find the download maxbox2.zip top left on
the site). Once the download has finished, unzip the file, making sure that you preserve the folder
structure as it is. If you double-click maxbox2.exe the box opens a default program. Test it with F9 or
press Compile and you should hear a sound. So far so good now we’ll open our example.
50_program_starter.txt
The Load button will present you in /examples with a list of programs stored within your directory as
well as a list of /exercises with defective Pascal code to be fixed for training purposes. Alternatively
you can download the file from: http://www.softwareschule.ch/download/50_program_starter.txt
Use the Save Page as… function of your browser1 and load it from examples (or wherever you
stored it). Now let’s take a look at the code of this project. Our first line is
1 program Primtester_3;
We have to name the game, means the program’s name is Primtester_3.
1
Or copy & paste
2. Most of the functions we use like round() or SQRT() are implicit in a library (or unit). A library is a
collection of code, which you can include in your program. By storing your commonly used code in a
library, you can reuse code for many times in different projects and also hide difficult sections of code
from the developer. Once a unit is tested it’s stable to use.
1: The maXbox Tool
The next lines are simply comments in your code and are ignored by the compiler (the part that
translates your code into instructions a computer can understand before executing it).
03 {simple primtester between range for perfomance- and filehandling
04 has a function and procedure, consts, globals and locals, locs = 59
05 shows sequence, selection and iteration (units are implicit)
06 to teach programming for beginners in maXbox!}
Any text entered behind a {or//or(* command will be ignored by the compiler and is simply there
for you, or anyone else that reads or extends your code. Comments are essential in your code to help
you understand what’s going on and how your code works or should work. The tool will automatically
turn the colour of any commented text to blue.
Next we learn how a constant works. Constants are fixed numeric or character values represented by
a name. Constants can’t be changed2 while a program runs. A section starts with the word const:
08 Const
09 FROM_RANGE = 1000; //start with even numbers
10 TO_RANGE = 5000;
The lines 13 to 15 of the program contain the declaration of 3 variables mylist, beforeTime and
afterTime. Line 14 is declaring a more complex variable, namely an object of type TStringList
(as its name suggests a list of strings). Line 15 is declaring two strings and each variable has a type.
2
You can only change the declaration
2
3. A type is essentially a name for a kind of data. When you declare a variable you must specify its
type, which determines the set, range and storage of values the variable can hold and the operations
that can be performed on it.
13 var
14 mylist: TStringList; //is an object of class TStringList!
15 beforeTime, afterTime: string;
A variable is a place to store data. In this case you are setting up a variable of type string and
TStringList. Imagine a variable as a small box (in maXbox;)) where you can keep things. A
variable is called a variable because its value can change during the programs execution. But watch
out not every name can hold a variable because you can’t use any of OP's keywords like set, while,
case, if then etc as variable names.
Keywords are constants, variables, type and procedure names that are defined as part of the OP
language like var or string above. All keywords within the program will appear in bold.
So far we have learned something about library, comments and the difference between a
constant and a variable. Now it’s time to run your program at first with F9 (if you haven’t done yet). The
program generates a file called primetest8.txt containing all prime numbers in the range 1000 to
5000. But the output is missing in the window on the bottom and we have to change the code. We just
activate the code line 56, which is currently a comment:
//memo2.lines.loadFromFile('primetest8.txt')
After we have removed the // in line 56 and pressed F9 (or Compile) we can see the
numbers in the output window. Just scroll up to the top of the output window
memo2.lines.loadFromFile('primetest8.txt')
2: The Output Window
The Compile button is also used to check that your code is correct, by verifying the syntax before the
program starts. When you run this code you will see that we catch 501 prime numbers in a set count
up from 1009 to 4999. The time consuming depends on your PC and the goal is to get much larger
primes. The search for ever larger primes has generated interest outside mathematical circles but
there is no known formula yielding all primes!
So let’s jump back to line 17. This line is our first function called checkPrim().3
Because functions return a value, they can be part of an expression. For example, if you define
the function called checkPrim that takes one integer argument and returns a Boolean, then the
function call checkPrim(acti) is a Boolean expression. An expression is a syntactical block that
can be the right side of an assignment within a statement and delivers a value; means an expression
is resolved into a simple value at runtime. (Also each begin must have and end ;).
17 function checkPrim(acti: integer): boolean;
18 var //locals
19 j: integer;
3
We later change the name to CheckPrime
3
4. 20 isprim: boolean;
21 begin
22 isprim:= true;
23 for j:= 2 to round(SQRT(acti)) do
24 if ((acti mod j) = 0) then begin
25 isprim:= false
26 break
27 end; //if
28 result:= isprim;
29 end;
We have two local variables and isprim is initialised with true (as long the loop proves false). What‘s
the meaning of initialising? It has the purpose to set them to a known value, to true in this case. Then
a for statement in line 23 implements an iterative loop. After each iteration of the loop, the counter is
incremented. Consequently, j is called the loop counter.
23 for j:= 2 to round(SQRT(acti)) do
Then we have our first if Statement:
24 if ((acti mod j) = 0) then begin
If the condition (acti mod j) evaluates to 0, then the number can’t be a prime and break jumps out
of the loop. The mod operator returns the remainder obtained by dividing with j. If the condition is
false, means not 0, then we found a prime and the function returns true in a result value (line 28).
The else keyword of the if statement is optional;
Basically a function is a block of code assembled into one convenient block. We create our own
function to carry out a whole series of complicated lines of code, we could run that code as many
times as we like simply by calling the function name instead of writing out the code again.
Next we go to line 32 and define our first procedure.
procedure TestPrimNumbers(Vfrom_range, Vto_range: integer);
A procedure (call) consists of the name of a procedure (with or without qualifiers), followed by a
parameter list (if required). Functions return a value where procedures must not! Most functions and
procedures require parameters of specific types. As we already know a type is just a name for a kind
of data and parameters must have the types of a language or self defined ones.
The parameters Vfrom_range, Vto_range of type integer declared in the procedure do have
automatic scope and only live during the execution of the procedure or function. Next we need to init-
ialise a variable to be the start number of the loop. So we set up variable count and assign it to zero:
35 count:= 0; //init
Then an object variable called mylist is constructed4. For our example, the TestPrimNumbers
procedure creates a TStringList object and fills it with the found prime numbers. We then set a
condition to decide how many times the code in the loop will execute.
37 for acti:= Vfrom_range to Vto_range do
In this case the code will loop from acti is greater than (>=) 1000 and smaller than (<=) 5000. The
code within a for loop normally execute once no matter what the condition is set to. Now to line 39;
here we are telling the compiler that our procedure is calling checkPrim(), that it passes a number
and returns true if the number is prime and adds the number to the list mylist.
4
More on objects in a Second Step
4
5. Then we have another if statement.
You remember that function calls are expressions.
Now remember the checkPrim takes one integer value as a parameter and returns a boolean value
in turn. Therefore we can call the function directly as the conditional expression:
39 if checkPrim(acti) then begin
If the expression is true, then the statement is executed, otherwise it’s not. By the way, do you know
the caller? It’s in our case the procedure which calls a function!
If we call the function without the parameter (acti) then we get: Invalid number of
parameters, try it (you pass no parameters to it (empty parenthesis)). Therefore each function or
procedure has its own signature; that is the routine's name, parameters, and return type (for
functions).
32 procedure TestPrimNumbers(Vfrom_range, Vto_range: integer);
33 var acti, count: integer;
34 begin
35 count:= 0; //init
36 mylist:= TStringList.create;
37 for acti:= Vfrom_range to Vto_range do begin
38 inc(acti) //only odd numbers check
39 if checkPrim(acti) then begin
40 inc(count)
41 mylist.add(intToStr(count) +': '+intToStr(acti))
42 end //if
43 end //for
44 end;
The TestPrimNumbers procedure receives as parameters two integer values (32 bit number), which
will be our start and end numbers between 1000 and 5000 for the iteration. Of course you can change
them. We have chosen integer for this usage as it’s a common used type. If you change it to a byte
type (exactly 8 bits in length) you could only pass values from 0 to 255 to the procedure!
Try to change the consts declaration for example from 10000 to 20000 in line 9 and 10! How
many primes you get and how long it’ll last?
A function is called with actual arguments placed in the same sequence as their matching formal
parameters. For example, checkPrim(acti) is the actual parameter as the caller (or sender) and
function checkPrim(acti: integer): boolean; is the formal parameter called acti as the
receiver. Therefore a function can be used in many calls.
Try it with the procedure TestPrimNumbers(): Where is the caller (actual arguments) and in
which line is the receiver?
Yes the caller is TestPrimNumbers(FROM_RANGE, TO_RANGE) in line 50 of the main routine
and the receiver is line 32 with the signature of the procedure: TestPrimNumbers(Vfrom_range,
Vto_range: integer);
This is what we call an interface in the way software works; the interface declaration of a procedure or
function includes only the routine's signature.
Because maXbox can't have a direct access to the C Lib of the API5 all functions are wrapped in the
interface with the help of the VCL (Visual Component Library) or the CLX (Kylix with CLX runs on
Linux). Also the main program is just a wrapper around a main win loop.
5
Application Programming Interface
5
6. 1.3 The Main Routine (PrimeTime)
An OP program must have a main routine between begin and end. The main routine is run once and
once only at the start of the program (after you compiled) and is where you will do the general instruct-
ions and the main control of the program.
The most important elements that I will present here are: TestPrimNumbers(FROM_RANGE,
TO_RANGE); as you already know as the caller and mylist.saveToFile('primetest8.txt');
(as the generator of the file).
The Main starts in line 47. In line 49 we are telling the compiler to call a function named Now(); It
simply returns the current system time and date. We pass no parameters to it (empty parenthesis or
no parenthesis).
49 beforeTime:= Now();
The beforeTime variable will be used to store the time difference we are going to display on the
output window below. Normally Now does have the type like time or Now2 from TDateTime but as a
simplification it’s a string. If you change Now() to Time() you get this:
PSXCompiler: [Error] D:kleiner2005TestAppmaxbox250_program_starter.txt(51:19): Type mismatch
3: Performance in Output
With the procedure writeln() in line 52 you write data to the output window. Next I have to say
something about file handling. First you have to define a file name for the data to save and load. The
actual file name in line 55 is: “primetest8.txt”. You can edit this file name directly and you can set
an absolute path or a relative one in the procedure6 saveToFile():
mylist.saveToFile('C:myPrimeName.txt')
But as a developer you are responsible for every aspect of the data access. In short, before any data
access can occur, data must be write (save) and read (load) from the same file and stored in memory.
So make sure the method loadFromFile() has the same file name too:
memo2.lines.loadFromFile('C:myPrimeName.txt')
How can you improve the situation that only one file name exists? Yes, you define a constant:
Const
PRIMEFILE = 'C:myPrimeName.txt';
And then you alter the two procedures (or methods):
mylist.saveToFile(PRIMEFILE)
memo2.lines.loadFromFile(PRIMEFILE)
we will do that because these two methods are the corner stone of the Import / Export possibility in
this program. By the way: It’s a convention to write a constant name in CAPITAL LETTERS.
Next in line 56, if a data file with your const or whatever defined name already exists, it is opened and
the previously stored data is read from it. In our case the data is loaded to a component called
memo2, which is a part of the output window (memo2 of class TMemo which is serving both as a
memory structure for holding the data and as a visual control for navigating and editing the data).
6
We call it a method because it belongs to an object
6
7. //main program
begin
//time performance
beforeTime:= Now;
TestPrimNumbers(FROM_RANGE, TO_RANGE);
afterTime:= Now;
writeln('start: '+ beforeTime + ' from: '+intToStr(FROM_RANGE))
writeln('stop: ' + afterTime + ' to: '+intToStr(TO_RANGE))
mylist.add(memo2.text)
mylist.saveToFile('primetest8.txt')
memo2.lines.loadFromFile('primetest8.txt')
mylist.Free;
end.
The basic concept here is that we have a main routine that executes 4001 (1000 to 5000) times
a check function. In that routine we simply take a look at the content of each number (whether prime or
not) and display it on output and write it down to a file with the help of a class called TStringList.
The data structure is sort of a direct file access. You can always use a memo or a grid to display a
result, but if you don’t need the overhead of a data aware component or you don't want a database in
an embedded system, direct file access with a stringlist can be a choice.
One note about this primer; there will be better solutions (executei a thread or a thieveii) and we still
work on it for educational reasonsiii, so I'm curious about comments, since I intend to publish
improvements of this code in a basic chat on sourceforge.net depending on your feedback ;)
1.3.1 Code Warrior
We can state that for educational reasons its better to begin programming in a procedural way
followed by OOP. In procedural programming (which predates OOP), you create constants, variables,
functions, and statements. Those have to be learned before OOP. I would say that even OOP is
7
8. tougher to learn and much harder to master than procedural coding, you better learn it after having
achieved procedural thinking. Truth is that almost anything which can be done procedurally can also
be done using objects and vice versa.
Let’s go back on track and do a last exercise. The final menu is the Help menu where you can find
more information on the language or links to the reference pages of the maXbox site and other useful
pages. A Code Warrior also knows a lot about debugging. As I promised we won’t go any deeper, but
as a simple preview try the code once with the magic “step into” F7. It really shows you step by step
how the code works!
With a right mouse click on the pop up menu in the editor you can set so called breakpoints
and study the source from which point you want or use different steps to execute and stop from. As a
last exercise you may have noticed that the name of prim is different to prime. This call for a change
(we talk about refactoring ;)) of names:
Change the name from prim to prime (e.g. from TestPrimNumbers to
TestPrimeNumbers() and from checkPrim to checkPrime()
Think about the dependencies of names and rate of changes if the compiler throws an
error like “Unknown identifier” but I’m sure you got it.
This is a so called Call Tree: [1]
50_program_starter.main block (50i)
50_program_starter.TestPrimNumbers (32i)
50_program_starter.checkPrim (17i)
That’s all folks, may the source be with you for the first step and I hope to see you in second step.
Feedback @
max@kleiner.com
Many thanks to the Reviewer Team (Dr. Silvia Rothen, Beat Strähl,
Beat Fankhauser, Dr. Andreas Fuchs)
Literature:
Kleiner et al., Patterns konkret, 2003, Software & Support
Links of maXbox and Prime Numbers:
http://www.softwareschule.ch/maxbox.htm
http://www.softwareschule.ch/
http://en.wikipedia.org/wiki/Prime_number
http://sourceforge.net/projects/maxbox
The Document itself:
http://www.softwareschule.ch/download/maxbox_starter.pdf
8
9. 1.4 Appendix
1.4.1 Code in OP
program Primetester_3_Plus; //optimized
//based on: http://www.softwareschule.ch/download/50_program_starter.pdf
{ simple primetester between range for perfomance- and filehandling
has a function and procedure, consts, globals and locals
shows sequence, selection and iteration (units are implicit)}
const
FROM_RANGE = 1000; //start with even number
TO_RANGE = 5000;
PRIMEFILE = 'primetest9.txt';
//globals
var
mylist: TStringList; //is an object of class TStringList!
beforeTime, afterTime: string;
function checkPrime(acti: integer): boolean;
var //locals
j: integer;
isprim: boolean;
..myIdx: integer
begin
isprim:= true;
myIdx:= round(SQRT(acti))
for j:= 2 to myIdx do
if ((acti mod j) = 0) then begin
isprim:= false
break
end; //if
result:= isprim;
end;
procedure TestPrimeNumbers(Vfrom_range, Vto_range: integer; vlist: TStringList);
var acti, count: integer;
begin
count:= 0; //init
for acti:= Vfrom_range to Vto_range – 1 do begin
inc(acti)
if checkPrime(acti) then begin
inc(count)
vlist.add(intToStr(count) +': '+intToStr(acti))
end //if
end //for
end;
//main program
9
11. {
int primesFound = 0;
for (int potentialPrimeNumber = fromRange; potentialPrimeNumber<=toRange; potentialPrimeNumber++)
if (checkPrime(potentialPrimeNumber))
{
primesFound += 1;
stringstream str;
str << primesFound << ": " << potentialPrimeNumber << endl;
primeNumbersFound.push_back(str.str());
}
}
int main(int argc, char *argv[])
{
time_t t;
time(&t);
string beforeTime = ctime(&t);
cout << beforeTime;
list<string> primeNumbers;
testPrimeNumbers(primeNumbers, FROM_RANGE, TO_RANGE);
time(&t);
string afterTime = ctime(&t);
cout << afterTime;
ofstream f("primtest8.txt");
for (list<string>::iterator it = primeNumbers.begin(); it != primeNumbers.end(); it++)
f << *it;
return EXIT_SUCCESS;
}
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
//Second Step Notices with: if then else, call by reference, pointer, type, object,
class, try except and events available on April 2010 as maXbox_starter2.pdf
// if then else example
begin
isprim:= true;
for j:= 2 to round(SQRT(acti)) do begin
if ((acti mod j) = 0) then begin
isprim:= false
break
end else writeln('next check with j');
11
12. end;
result:= isprim;
end;
// without isprime only with result
function checkPrim(acti: integer): boolean;
var //locals
j: integer;
begin
result:= true;
for j:= 2 to round(SQRT(acti)) do
if ((acti mod j) = 0) then begin
result:= false
break
end;
result:= result;
end;
----------------------------------------------------------------------------------
Aim
Introduction to a new topic
Important Information
Code example
Analysis of Code
Lesson
Test
Summary
Congratulation
i
Examplesprimetester_14project.exe (compiled version)
ii
Examples50_pas_primetester_thieves.txt
iii
Examples14_pas_primetest.txt (simple)
12