The <input> tag in HTML is used to add input boxes to web pages for users to enter text or other information. There are different types of input boxes that serve various purposes, such as text boxes, submit buttons, textareas, select boxes, radio buttons, checkboxes. Examples show how to add each type of input box and customize them with attributes like size, color, and options. The <input> tag allows users to interact with web pages by entering and submitting data.
I211 – Information Infrastructure II
Lecture 20
Today
CGI
Forms
HTML Forms and CGI
We can get input from users online by using HTML forms! (These have the same sorts of elements as Tkinter)
Text boxes
<input type="text" name="name">
Radio buttons
<input type="radio" name="y_or_n" value="yes" checked > Yes
Text areas
<textarea name="comments" rows="3">None</textarea>
Buttons
<button name="name"></button>
Check boxes
<input type="checkbox" name="size" value="Large"> Large
HTML Forms and CGI
HTML form elements must be enclosed in <form> tags.
The <form> tag has an action attribute that specifies what URL to send the data to:
<form action="name.cgi" method="post">
Form Submit
<!doctype html>
<html>
<head><meta charset ="utf-8">
<link rel="stylesheet" href="https://cgi.sice.indiana.edu/~dpierz/i211.css">
<title>First Interactive Form</title></head>
<body>
<form action="name.cgi" method="post">
Please enter your name:
<input type="text" name="username"><br>
<button type="submit">Submit</button>
</form>
</body>
</html>
HTML Form Elements:
You don’t need to
chmod .html files!
A submit button creates a button that will submit the form when clicked!
HTML Forms and CGI
import cgi
form = cgi.FieldStorage()
form now has a dictionary-like object where the form element’s name attribute is the key, and the form element’s data (user-typed or value attribute) is the value
CGI Handler with .getfirst()
#! /usr/bin/env python3
print('Content-type: text/html\n')
import cgi
form = cgi.FieldStorage() #parses form data
html = """<!doctype html>
<html>
<head><meta charset="utf-8">
<link rel="stylesheet" href="https://cgi.sice.indiana.edu/~dpierz/i211.css">
<title>Form in CGI</title></head>
<body>
<p>{content}</p>
</body>
</html>"""
user = form.getfirst('username','Who are you?')
print(html.format(content = 'Hello,' + user))
The first argument is the name of the form element
we want, and the second argument is what to return if it isn’t found.
This is exactly like the
.get() method for dictionaries!
Simple Form (Individual)
<!doctype html>
<html>
<head><meta charset ="utf-8">
<link rel="stylesheet" href="https://cgi.sice.indiana.edu/~dpierz/i211.css">
<title>First Interactive Form</title></head>
<body>
<form action="name.cgi" method="post">
<p>Please enter your name:
<input type="text" name="username"></p>
<button type="submit">Submit</button>
</form>
</body>
</html>
Save this as name.html and upload
Form CGI Handler (Individual)
#! /usr/bin/env python3
print('Content-type: text/html\n')
import cgi
form = cgi.FieldStorage() #parses form data
html = """<!doctype html>
<html>
<head><meta charset="utf-8">
<link rel="stylesheet" href="https://cgi.sice.indiana.edu/~dpierz/i211.css">
<title>Form in CGI</title></head>
<body>
<h1>Greetings!</h1>
<p>{content}</p>
</body>
</html>"""
user = form.getfirst('username','Who are you?')
print(html.format(content = 'Hello,' + user))
Save this as name.cgi, and don’t forget to.
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/
I211 – Information Infrastructure II
Lecture 20
Today
CGI
Forms
HTML Forms and CGI
We can get input from users online by using HTML forms! (These have the same sorts of elements as Tkinter)
Text boxes
<input type="text" name="name">
Radio buttons
<input type="radio" name="y_or_n" value="yes" checked > Yes
Text areas
<textarea name="comments" rows="3">None</textarea>
Buttons
<button name="name"></button>
Check boxes
<input type="checkbox" name="size" value="Large"> Large
HTML Forms and CGI
HTML form elements must be enclosed in <form> tags.
The <form> tag has an action attribute that specifies what URL to send the data to:
<form action="name.cgi" method="post">
Form Submit
<!doctype html>
<html>
<head><meta charset ="utf-8">
<link rel="stylesheet" href="https://cgi.sice.indiana.edu/~dpierz/i211.css">
<title>First Interactive Form</title></head>
<body>
<form action="name.cgi" method="post">
Please enter your name:
<input type="text" name="username"><br>
<button type="submit">Submit</button>
</form>
</body>
</html>
HTML Form Elements:
You don’t need to
chmod .html files!
A submit button creates a button that will submit the form when clicked!
HTML Forms and CGI
import cgi
form = cgi.FieldStorage()
form now has a dictionary-like object where the form element’s name attribute is the key, and the form element’s data (user-typed or value attribute) is the value
CGI Handler with .getfirst()
#! /usr/bin/env python3
print('Content-type: text/html\n')
import cgi
form = cgi.FieldStorage() #parses form data
html = """<!doctype html>
<html>
<head><meta charset="utf-8">
<link rel="stylesheet" href="https://cgi.sice.indiana.edu/~dpierz/i211.css">
<title>Form in CGI</title></head>
<body>
<p>{content}</p>
</body>
</html>"""
user = form.getfirst('username','Who are you?')
print(html.format(content = 'Hello,' + user))
The first argument is the name of the form element
we want, and the second argument is what to return if it isn’t found.
This is exactly like the
.get() method for dictionaries!
Simple Form (Individual)
<!doctype html>
<html>
<head><meta charset ="utf-8">
<link rel="stylesheet" href="https://cgi.sice.indiana.edu/~dpierz/i211.css">
<title>First Interactive Form</title></head>
<body>
<form action="name.cgi" method="post">
<p>Please enter your name:
<input type="text" name="username"></p>
<button type="submit">Submit</button>
</form>
</body>
</html>
Save this as name.html and upload
Form CGI Handler (Individual)
#! /usr/bin/env python3
print('Content-type: text/html\n')
import cgi
form = cgi.FieldStorage() #parses form data
html = """<!doctype html>
<html>
<head><meta charset="utf-8">
<link rel="stylesheet" href="https://cgi.sice.indiana.edu/~dpierz/i211.css">
<title>Form in CGI</title></head>
<body>
<h1>Greetings!</h1>
<p>{content}</p>
</body>
</html>"""
user = form.getfirst('username','Who are you?')
print(html.format(content = 'Hello,' + user))
Save this as name.cgi, and don’t forget to.
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/
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.
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.
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
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.
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
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
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.
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
5. Attributes
When you use the tag <input> it
adds a boxed area designated
for users to type information
to add to the page.
6. Examples
There are different types of input boxes that
can be added.
Example 1:
<form method=post action="/cgi-bin/example.cgi">
<input type="text" size="10" maxlength="30">
<input type="Submit" value="Submit">
</form>
Example 1 add a small text box
Example 2: with a submit button
<form method=post action="/cgi-bin/example.cgi">
<input type="text" style="color: #ffffff; font-family: Verdana; font-weight: bold;
font-size: 12px; background-color: #72a4d2;" size="10" maxlength="30">
<input type="Submit" value="Submit">
</form> Example 2 does same as
Example 1, but adds
color to the box
7. Example 3:
<form method=post action="/cgi-bin/example.cgi">
<table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#8463ff">
<input type="text" size="10" maxlength="30"></td><td bgcolor="#8463ff"
valign="Middle"> <input type="image" name="submit" src="yourimage.gif">
</td></tr> </table>
</form>
Example 3, like 1&3 adds a box with
submit button but adds more color
Example 4: and style to the input box
<form method=post action="/cgi-bin/example.cgi">
Enter Your Comments:<br>
<textarea wrap="virtual" name="Comments" rows=3 cols=20 maxlength=100></textarea><br>
<input type="Submit" value="Submit">
<input type="Reset" value="Clear">
</form>
Example 4 adds a bigger text box for
more characters, and give users the
option to clear text.
8. Example 5:
<form method=post action="/cgi-bin/example.cgi">
<center>
Select an option:
<select>
<option >option 1</option>
<option selected>option 2</option> Example 5 adds an option box
<option>option 3</option> that lets users choose from
<option>option 4</option> different options.
<option>option 5</option>
<option>option 6</option>
</select><br>
<input type="Submit" value="Submit"></center>
</form>
9. Example 6:
<form method=post action="/cgi-bin/example.cgi">
Select an option:<br>
<input type="radio" name="option"> Option 1
<input type="radio" name="option" checked> Option 2
<input type="radio" name="option"> Option 3
<br>
<br>
Select an option:<br>
<input type="checkbox" name="selection"> Selection 1
<input type="checkbox" name="selection" checked> Selection 2
<input type="checkbox" name="selection"> Selection 3
<input type="Submit" value="Submit">
</form>
Example 6 give you options with bubbles or
check-boxes to make selections.
10. Screenshots
Examples of input boxes on various
websites.
Left: Screenshot of multiple input
boxes on one page from Yahoo.com