This program contains four routines that can be used to list and format the fields of a structured record. The routines are: list_record_fields, list_fields_with_cols, list_specific_fields, and convert_to_CSV. The list_specific_fields routine allows the user to select specific fields to list using selection options for field number and name. The convert_to_CSV routine generates a comma-separated value string from a structured record. These routines are intended to be called from other programs.
Postgres expert, Bruce Momjian, as he discusses common table expressions (CTEs) and the ability to allow queries to be more imperative, allowing looping and processing hierarchical structures that are normally associated only with imperative languages.
HOT Understanding this important update optimizationGrant McAlister
In this session we dive deep into HOT (Heap Only Tuple) update optimization. Utilizing this optimization can result in improved writes rates, less index bloat and reduced vacuum effort but to enable PostgreSQL to use this optimization may require changing your application design and database settings. We will examine how the number of indexes, frequency of updates, fillfactor and vacuum settings can influence when HOT will be utilized and what benefits you may be able to gain.
Postgres expert, Bruce Momjian, as he discusses common table expressions (CTEs) and the ability to allow queries to be more imperative, allowing looping and processing hierarchical structures that are normally associated only with imperative languages.
HOT Understanding this important update optimizationGrant McAlister
In this session we dive deep into HOT (Heap Only Tuple) update optimization. Utilizing this optimization can result in improved writes rates, less index bloat and reduced vacuum effort but to enable PostgreSQL to use this optimization may require changing your application design and database settings. We will examine how the number of indexes, frequency of updates, fillfactor and vacuum settings can influence when HOT will be utilized and what benefits you may be able to gain.
There are a number of errors in the following program- All errors are.docxclarkjanyce
There are a number of errors in the following program.
All errors are located in main() and structure definitions.
Function declarations and definitions are correct!
Locate all errors, fix them (as shown below), run the program and save its output
as a comment at the end of the source file.
Example:
int num = 10;
int *ptr;
num = &ptr; // <== Error: Comment the line and write the correct line below
// Write a short justification where appropriate
// num = &ptr; // Error #1
ptr = #
Name:
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#define DUMMY_TRAILER '\177'
// octal ASCII code of the
// last character in the ASCII table
#define NUM_CITIES 10
typedef struct
{
char name[12];
int temperature[5];
} CITY;
// Stack and Queue Node
typedef struct node NODE;
struct node
{
CITY city;
node *next;
};
// Doubly Linked List Node
typedef struct d_node D_NODE;
struct d_node
{
CITY city;
NODE *forw;
NODE *back;
};
// Stack Functions
NODE *push(NODE *stack, const CITY *pStu);
NODE *pop(NODE **stack);
// Queue Functions
void enqueue(NODE **queue, NODE **rear, const CITY *pStu);
NODE *dequeue(NODE **queue, NODE **rear);
// Doubly Linked List Functions
D_NODE *init_list(void);
int insert(D_NODE *list, const CITY *pStu);
void traverse_forw(D_NODE *list);
void traverse_back(D_NODE *list);
// Other Functions
void printCity(const CITY *pCity);
int main (void)
{
CITY cList[NUM_CITIES] =
{
{"Cupertino", {88, 89, 87, 85, 89}},
{"Flagstaff", {81, 80, 88, 89, 89}},
{"Los Angeles", {87, 88, 89, 89, 90}},
{"Philadelphia", {96, 99, 99, 90, 95}},
{"Phoenix", {106, 109, 109, 100, 105}},
{"Portland", {89, 90, 85, 89, 90}},
{"Reno", {108, 105, 109, 100, 108}},
{"Salem", {85, 90, 85, 89, 90}},
{"Tucson", {107, 100, 109, 100, 108}},
{"Yreka", {101, 109, 100, 108, 109}}
};
NODE *stack = NULL;
NODE *top = NULL;
NODE *queue = NULL, *rear = NULL;
NODE *front;
D_NODE *list;
list = init_list();
// build stack and queue with data from an array of CITY structures
srand((unsigned int)time(NULL));
int count = rand() % 10;
for ( int n = 0; n < count; n++)
{
int i = rand() % NUM_CITIES;
int duplicate = insert(list, &cList[i]);
if(duplicate)
{
// already in the list!
push(stack, &cList[i]);
enqueue(&queue, &rear, cList[i]);
}
}
// display list
printf("\nLIST contents (forwards):\n");
traverse_forw(list);
printf("\nLIST contents (backwards):\n");
traverse_back(list);
// display stack
if (top)
{
printf("\nSTACK contents from top to bottom:\n");
while ((top = pop(stack)))
{
printCity(top->city);
}
}
else
printf ("Empty Stack!\n");
// display queue
if (front)
{
printf("\nQUEUE contents from front to rear:\n");
while ((front = dequeue( queue, rear)))
{
printCity(front->city);
}
}
else
printf ("Empty Queue!\n");
return 0;
}
/***************************************************
Displays the fileds of a CIS_CLASS structure
Pre pCls - a pointer to a CIS_CLASS structure
Post
*/
void printCity(const CITY *pCity)
{
printf("%-20s %3d\n", pCity->name, pCity->temperatur.
Lab11.cppLab11.cpp//**************************************************************************************************************
// FILE: Lab11.cpp
//
// DESCRIPTION: Implements a simple substitution cipher to encrypt secret messages.
//
// AUTHORS: your-name (your-email-address)
// your-partner's-name (your-partners-email-address)
//
// COURSE: CSE100 Principles of Programming with C++, Fall 2015
//
// LAB INFO: Lab 11 Date/Time: your-lab-date-and-time TA: your-lab-ta
//**************************************************************************************************************
???// For exit()
???// For ifstream, ofstream
???// For cout, endl
usingnamespace std;
// Define an int constant named MAX_MSG_LEN which is the maximum number of characters in the plaintext message.
// Initialize MAX_MSG_LEN to 50.
???
//--------------------------------------------------------------------------------------------------------------
// FUNCTION: error()
//
// DESCRIPTION
// This function is called when an non-recoverable error occurs. We display the message in p_err_msg on the out-
// put window and terminate the program with an exit code of -1.
//
// PSEUDOCODE
// Function error(In: p_err_msg : string) Returns Nothing
// Send to cout p_err_msg followed by ". Terminating..." followed by endl
// Call exit(-1)
// End Function
//--------------------------------------------------------------------------------------------------------------
???
//--------------------------------------------------------------------------------------------------------------
// FUNCTION: encrypt_plain_char()
//
// DESCRIPTION
// This function has two parameters,
//
// p_plain_char - is a plaintext character that is being encrypted.
// p_index - is the index of p_plain_char in the plaintext character array.
//
// This function determines what the encrypted character should be and returns it. Because our plaintext charac-
// ter set is limited to uppercase letters, which have ASCII values 65 (A), 66 (B), 67 (C), ... 90 (Z), we can
// subtract 65 from p_plain_char to form the index of the substitution character in either sub_even or sub_odd.
// It may seem weird that we are subtracting an integer from a character variable, but remember that the values
// of character variables are in fact integers, so something like p_plain_char - 'A' is perfectly legal since
// 'A' evaluates to 65.
//
// PSEUDOCODE
// Function encrypt_plain_char(In: p_plain_char : char; In: p_index : int) Returns char
// Define and initialize sub_even array as discussed in the lab project document
// Define and initialize sub_odd array as discussed in the lab project document
//
// Define int sub_index = p_plain_char - 'A'
// Define char cipher_char
//
// If p_index is even Then
// cipher_char = sub_even[sub_index]
// Else
// cipher_char = sub_odd[sub_index]
// End If
//
// Return cipher_char
// E ...
Program In C You are required to write an interactive C program that.pdfamitbagga0808
Program In C You are required to write an interactive C program that prompts the user for
commands, accepts commands from the keyboard (stdin) and executes those commands. When a
command requires output, it must be written to stdout. The program must continue to accept and
process commands until the user types the end command ourput, it must be writen to stdout. The
program must continue to accept and proces.commands The program deals with linked lists.
Each node of such a list contains a string of length at most 10, a positive integer (i.e., an integer
value 2 1) and a pointer to the next node of the list. For any node, the string and the integer
stored in that node will be referred to as the symbol and count for that node respectively. At all
times, the list must satisfy the following two important properties. 1. The symbols appearing in
the list are all distinct; that is, no two nodes have the same symbol. 2. When the list is scanned
from left to right, the counts must be in non-increasing order. An example of such a linked list is
shown below. Search 4 Maxval4 begin/ Loop head
Solution
/**********************************************/
/****** NAMES ******************** COMMANDS ***/
/* Insert Command : ins str */
/* Delete Command : del str */
/* Forced Delete Command : fde val */
/* Print Statistics Command : pst */
/* Print List Command : prl */
/* Print using Count Range Command: pcr v1 v2 */
/* Print Prefix Command : ppr str */
/* Print Suffix Command : psu str */
/* End Command : end */
/***********************************************/
#include
#include
#include
#define CSIZE 4
#define SSIZE 11
/* Struct for each node in the linked list */
struct node
{
int count;
char symbol[SSIZE];
struct node *next;
};
struct node *head;
/* Prototypes for the functions */
void insert(char *);
void delete(char *);
void forced_delete(int value);
void print_stats();
void print_list();
void print_count(int, int);
void print_prefix(char pre[]);
void print_suffix(char suf[]);
void sort_list();
/****************
** Main Method **
****************/
int main(void)
{
int count;
char symbol[SSIZE];
char cmd[CSIZE];
int v1;
int v2;
/* Enter commands */
printf(\"Command? \"); fflush(stdout);
scanf(\"%s\", cmd);
/* Check for command*/
while(strcmp(cmd,\"end\") != 0)
{
/* check which function to use */
if(strcmp(cmd,\"ins\") == 0) { scanf(\"%s\", symbol); insert(symbol); }
if(strcmp(cmd,\"del\") == 0) { scanf(\"%s\", symbol); delete(symbol); }
else if(strcmp(cmd,\"fde\")==0){scanf(\"%d\",&count); forced_delete(count); }
if(strcmp(cmd,\"pst\") == 0) { print_stats();}
if(strcmp(cmd,\"prl\") == 0) { print_list(); }
if(strcmp(cmd,\"pcr\") == 0) { scanf(\"%d %d\",&v1,&v2); print_count(v1,v2); }
if(strcmp(cmd,\"ppr\") == 0) { scanf(\"%s\", symbol); print_prefix(symbol);}
if(strcmp(cmd,\"psu\") == 0) { scanf(\"%s\", symbol); print_suffix(symbol);}
printf(\"Command? \"); fflush(stdout);
scanf(\"%s\", cmd);
}// End of While Loop
return 0;
}// End of main method
/*********.
Problem Implement a FIFO program in which a client sends the server.pdffeelinggift
Problem: Implement a FIFO program in which a client sends the server 3 variable names
(strings). A valid variable name is defined for this assignment to be 6 characters or less,
consisting only of lower-case letters from a to \'z\', inclusive. The server checks the name for
validity, and if valid, it counts the number of in the variable name. Each of the original variable
names is sent back to the client, along with a message whether it is valid or invalid, and a count
of the number of letters in the indicating name that are vowels. Vowels, for those of you who
might have forgotten, are a, e, i, o and u Print the variable name, validity, and count of vowels on
the server side as well as on the client side after it has been received.
Please take a look and correct what I\'ve got below
/*------------------------------- Client -----------------------------------*/
#include
#include
#include
#include
#include
#include
#include
#include
main (void)
{
int fda;
int fdb;
struct program
{
char string1;
int good1;
int count1;
int status;
} data;
int rbyte, wbyte;
rbyte = 0;
wbyte = 0;
//Open Pathway to FIFO
if((fda = open(\"FIFOTOS\",O_WRONLY)) < 0){
printf(\"Can\'t open FIFOTOS to write\ \");
return;
}
if((fdb = open(\"FIFOFROMS\",O_RDONLY)) < 0){
printf(\"Can\'t open FIFOFROMS to read\ \");
return;
}
//Get input from user
printf(\"Client: Please enter first string: \");
scanf(\"%s\",&data.string1);
//Write data to FIFO
wbyte = write(fda,&data,sizeof(data));
//Check if write successfully
if (wbyte <= 0)
{
printf(\"Client: Can\'t write data to server\");
}
else
{
printf(\"Client: Write &d byte to server\ \");
//Read data from server
rbyte = read(fdb,&data,sizeof(data));
if(rbyte <=0)
{
printf(\"Client: Can\'t read from server\ \");
}
else
{
printf(\"Client: %d byte read from server\ \",rbyte);
if(data.status >=0)
{
printf(\"String : %s\",data.string1);
printf(\"\ Validity : %c\",(data.good1 =1 ? \'Y\' : \'N\'));
printf(\"\ Count of Vowels : %d\",data.count1);
}
else
{
printf(\"Client: Error\");
}
}
}
printf(\"All Done\ \");
close(fda);
close(fdb);
}
/*------------------------------------------ Server ------------------------------------------*/
#include
#include
#include
#include
#include
#include
#include
#include
main (void)
{
int fda;
int fdb;
int i;
struct program
{
char string1;
int good1;
int count1;
int status;
} data;
int rbyte, wbyte;
rbyte = 0;
wbyte = 0;
//Create the FIFO and open pathway
if((mkfifo(\"FIFOTOS\",0666) < 0 && errno != EEXIST)){
perror(\"Can\'t create FIFOTOS\");
exit(-1);
}
if((mkfifo(\"FIFOFROMS\",0666) < 0 && errno != EEXIST)){
perror(\"Can\'t create FIFOFROMS\");
exit(-1);
}
if((fdb = open(\"FIFOTOS\",O_RDONLY)) < 0){
printf(\"Can\'t open FIFOTOS to write\ \");
return;
}
if((fda = open(\"FIFOFROMS\",O_WRONLY)) < 0){
printf(\"Can\'t open FIFOFROMS to read\ \");
return;
}
//Read data from client
rbyte = read(fdb, &data, sizeof(data));
//Check if read successfully
if (rbyte <= 0)
{
printf(\"No byte read from Client\ \");
}
els.
Merge Sort implementation in C++ The implementation for Mergesort gi.pdfmdameer02
Merge Sort implementation in C++ The implementation for Mergesort given in Section 7.4 takes
an array as input and soils that array. At the beginning of Section 7.4 there is a simple
pseudocode implementation for sorting a linked list using Mergesort. Implement both a linked
list-based version of Mergesort and the array-based version of Mergesort. and compare and
analyze their running times.
Solution
/* Merger sort array-based version */
/* C program for Merge Sort */
#include
#include
// Merges two subarrays of arr[].
// First subarray is arr[l..m]
// Second subarray is arr[m+1..r]
void merge(int arr[], int l, int m, int r)
{
int i, j, k;
int n1 = m - l + 1;
int n2 = r - m;
/* create temp arrays */
int L[n1], R[n2];
/* Copy data to temp arrays L[] and R[] */
for (i = 0; i < n1; i++)
L[i] = arr[l + i];
for (j = 0; j < n2; j++)
R[j] = arr[m + 1+ j];
/* Merge the temp arrays back into arr[l..r]*/
i = 0; // Initial index of first subarray
j = 0; // Initial index of second subarray
k = l; // Initial index of merged subarray
while (i < n1 && j < n2)
{
if (L[i] <= R[j])
{
arr[k] = L[i];
i++;
}
else
{
arr[k] = R[j];
j++;
}
k++;
}
/* Copy the remaining elements of L[], if there
are any */
while (i < n1)
{
arr[k] = L[i];
i++;
k++;
}
/* Copy the remaining elements of R[], if there
are any */
while (j < n2)
{
arr[k] = R[j];
j++;
k++;
}
}
/* l is for left index and r is right index of the
sub-array of arr to be sorted */
void mergeSort(int arr[], int l, int r)
{
if (l < r)
{
// Same as (l+r)/2, but avoids overflow for
// large l and h
int m = l+(r-l)/2;
// Sort first and second halves
mergeSort(arr, l, m);
mergeSort(arr, m+1, r);
merge(arr, l, m, r);
}
}
/* UTILITY FUNCTIONS */
/* Function to print an array */
void printArray(int A[], int size)
{
int i;
for (i=0; i < size; i++)
printf(\"%d \", A[i]);
printf(\"\ \");
}
/* Driver program to test above functions */
int main()
{
int arr[] = {12, 11, 13, 5, 6, 7};
int arr_size = sizeof(arr)/sizeof(arr[0]);
printf(\"Given array is \ \");
printArray(arr, arr_size);
mergeSort(arr, 0, arr_size - 1);
printf(\"\ Sorted array is \ \");
printArray(arr, arr_size);
return 0;
}
--------------------------------------------------------------------------------------------------------------------
/* merge sort link-list version
#include
#include
/* Link list node */
struct node
{
int data;
struct node* next;
};
/* function prototypes */
struct node* SortedMerge(struct node* a, struct node* b);
void FrontBackSplit(struct node* source,
struct node** frontRef, struct node** backRef);
/* sorts the linked list by changing next pointers (not data) */
void MergeSort(struct node** headRef)
{
struct node* head = *headRef;
struct node* a;
struct node* b;
/* Base case -- length 0 or 1 */
if ((head == NULL) || (head->next == NULL))
{
return;
}
/* Split head into \'a\' and \'b\' sublists */
FrontBackSplit(head, &a, &b);
/* Recursively sort the sublists */
MergeSort(&a);
MergeSort(&b);
/* answer = merge the two sorted lists together */
*.
Write the definition of the linkedListKeepLast function- (Please write.docxdelicecogupdyke
Write the definition of the linkedListKeepLast function. (Please write the following in C, Thank you)
The purpose of the function is to create a new linked list containing
the last node in each linked list in the hash table beginning with the first linked list.
The rest of the nodes are to be displayed to the screen, then returned to the heap.
Example:
If the user enters the following keys:
201, 102, 233, 567, 456, 654, 465, 645, quit
list at index 0 is empty
list at index 1 is not empty:
201
102
567
list at index 2 is not empty:
233
list at index 3 is empty
list at index 4 is not empty:
456
654
465
645
Deleted nodes:
--> at index 0:
--> at index 1: 201 102
--> at index 2:
--> at index 3:
--> at index 4: 456 654 465
The final linked list contains:
567
233
645
Written by:
*/
#include <stdio.h>
#include <stdlib.h> // malloc(), free(), exit()
#include <string.h>
#define NUMPOINTERS 5
typedef struct node STUDENTREC;
struct node
{
char id[10];
struct node *next;
};
// Function Declarations
int hash(char id[]);
STUDENTREC *insert(char id[],
STUDENTREC *student_body[],
int hashval);
void traverse(STUDENTREC *student_body[]);
void displayLL(STUDENTREC *list, char *description);
STUDENTREC *linkedListKeepLast(STUDENTREC *student_body[]);
int main (void)
{
STUDENTREC *student_body[NUMPOINTERS] = {NULL};
STUDENTREC *person;
STUDENTREC *endList;
char id[10];
int hashval;
printf(" ~*~ Hashing using collision resolution by chaining ~*~\n");
printf("\t Enter Student ID (or quit): ");
scanf("%s", id);
while(strcmp(id, "quit"))
{
hashval = hash(id);
person = insert(id, student_body, hashval);
if (person) // not NULL => duplicate
{
printf("Duplicate record!\n");
}
printf("\t Enter Student ID (or quit): ");
scanf("%s", id);
}
traverse(student_body);
endList = linkedListKeepLast(student_body);
displayLL(endList, "New List");
traverse(student_body);
return 0;
}
/*
The purpose of the function is to create a new linked list containing
the last node in each linked list in the hash table beginning with the first linked list.
The rest of the nodes are to be displayed to the screen, then returned to the heap.
*/
STUDENTREC *linkedListKeepLast(STUDENTREC *student_body[])
{
STUDENTREC *newList = NULL;
/* *********************************************************
Write your code here
Get the job done without calling other linked list functions
********************************************************* */
return newList;
}
/***************************************************
Hash Student ID by summing the cubes
of the ASCII value of characters and then take
the modulo of this sum.
*/
int hash(char id[])
{
long sum = 0;
while (*id) // != '\0'
{
sum += *id * *id * *id;
id++;
}
return sum % NUMPOINTERS;
}
/***************************************************
Insert a new Social Security number into the
array of student records, at index equal to
hashvalue
*/
STUDENTREC *insert(char id[],
STUDENTREC *student_body[],
int hashval)
{
STUDENTREC **mover; // Use ** to write elegant co.
Experience from a "Upgrade, Unicode Conversion and dual stack split" project. This project was completed in less than three months. The database size was 1.4TB, Oracle DB running on Solaris. The landscape has four systems: Production like sandbox, Dev, Production like QA and Production system. This project was managed using existing resources. We didn't hire additional consultants. How did we do it? I'll present that story in this session. What is the benefit? You would definitely save dollars and time.
In this session, I'll explain:
1) What is "Dirty Upgrade"?
2) Why is it better? and
3) How to do it?
by Bala Prabahar
If implementing data governance sounds like a 5-year plan involving more meetings than you can stand, then this is the session for you. Whether you are just getting started in your governance initiatives, or whether your company is struggling to reach *success* with governance, we can help. In this session, we’ll discuss common pitfalls of data governance programs. Most of our time, however, will be spent on how to start small to ensure future success. In this session, you'll learn these skills: - identify good target projects - shape lean teams to accomplish the work - identify which technologies will accelerate your project - prove the value of the initiative to your organization.
By Ginger Gatling
Here are my notes from SAPTechEd 2007 - The entire presentations from the event can be purchased from www.sdn.sap.com. I learned a lot in 2007 - and then again in 2008. Great sessions. E-mail me if you see anything that isn't correct.
Slide deck showing some of my take-aways from TechEd. Please e-mail if anything looks glaring wrong. I tried to demonstrate moving from ABAP reports to newer ABAP objects to User interfaces. As a company we still use ABAP lists instead of objects.
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/
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.
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.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalità di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
📕 Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
👨🏫👨💻 Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT Data
Welocme to ViralQR, your best QR code generator.ViralQR
Welcome to ViralQR, your best QR code generator available on the market!
At ViralQR, we design static and dynamic QR codes. Our mission is to make business operations easier and customer engagement more powerful through the use of QR technology. Be it a small-scale business or a huge enterprise, our easy-to-use platform provides multiple choices that can be tailored according to your company's branding and marketing strategies.
Our Vision
We are here to make the process of creating QR codes easy and smooth, thus enhancing customer interaction and making business more fluid. We very strongly believe in the ability of QR codes to change the world for businesses in their interaction with customers and are set on making that technology accessible and usable far and wide.
Our Achievements
Ever since its inception, we have successfully served many clients by offering QR codes in their marketing, service delivery, and collection of feedback across various industries. Our platform has been recognized for its ease of use and amazing features, which helped a business to make QR codes.
Our Services
At ViralQR, here is a comprehensive suite of services that caters to your very needs:
Static QR Codes: Create free static QR codes. These QR codes are able to store significant information such as URLs, vCards, plain text, emails and SMS, Wi-Fi credentials, and Bitcoin addresses.
Dynamic QR codes: These also have all the advanced features but are subscription-based. They can directly link to PDF files, images, micro-landing pages, social accounts, review forms, business pages, and applications. In addition, they can be branded with CTAs, frames, patterns, colors, and logos to enhance your branding.
Pricing and Packages
Additionally, there is a 14-day free offer to ViralQR, which is an exceptional opportunity for new users to take a feel of this platform. One can easily subscribe from there and experience the full dynamic of using QR codes. The subscription plans are not only meant for business; they are priced very flexibly so that literally every business could afford to benefit from our service.
Why choose us?
ViralQR will provide services for marketing, advertising, catering, retail, and the like. The QR codes can be posted on fliers, packaging, merchandise, and banners, as well as to substitute for cash and cards in a restaurant or coffee shop. With QR codes integrated into your business, improve customer engagement and streamline operations.
Comprehensive Analytics
Subscribers of ViralQR receive detailed analytics and tracking tools in light of having a view of the core values of QR code performance. Our analytics dashboard shows aggregate views and unique views, as well as detailed information about each impression, including time, device, browser, and estimated location by city and country.
So, thank you for choosing ViralQR; we have an offer of nothing but the best in terms of QR code services to meet business diversity!
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/
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
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.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
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.
Assure Contact Center Experiences for Your Customers With ThousandEyes
Program For Parsing2
1. * Note: The routines in this program are called from other programs.
* Doing a 'WHERE-USED' search for a specific routine in this
* program will probably retrieve no results. However, if you
* do a 'WHERE-USED' search for this program, ZLIST_FIELDS_RTTI
* itself, you will find the other programs which use these forms.
* Such a search should always be done before any changes are
* made to the routines in this program, in order to make sure
* all existing calls to the routines remain valid.
REPORT zlist_fields_rtti.
*----------------------------------------------------------------------*
* Program: ZLIST_FIELDS_RTTI
* Author: Gordon Tobias
* Date: Dec 2006
* Description: This program contains routines intended to be called
* from other programs, to list the contents of structured
* records, field by field. It uses RTTI (Run Time Typing
* Info - from ABAP objects methods) to identify the name
* and length of each field in the record.
*
* Initially, there are 4 routines that can be called:
*---------------------------
* FORM list_record_fields USING p_rec.
* FORM list_record_fields prints the field #, name, and length.
*---------------------------
* FORM list_fields_with_cols USING p_rec.
* FORM list_fields_with_cols prints the field #, name, length, and
* the starting and ending columns of the field.
*---------------------------
* FORM list_specific_fields TABLES so_fnum
* so_fname
* USING p_rec.
* FORM list_specific_fields print the same information as the
* list_fields_with_columns, but it accepts two additional parms:
* SELECT-OPTIONS table for a 3 digit numeric fields, and a 30 char
* alphabetic field. These two parms can restrict the fields listed
* on the report just just specific numbers (e.g. field 1-5) or names
* (i.e. list just the PERNR field, or exclude all FILLER* fields).
*---------------------------
* FORM convert_to_CSV USING pu_rec
* pu_hdr_flag
* CHANGING pc_csvrec
*
* FORM convert_to_CSV reads a structured record, pu_rec, and
2. * generates a text field formatted as a CSV record of the fields
* in the structured record. If the pu_hdr_flag = 'HDR', the CSV
* record will contain the field names instead of the field values,
* thus creating a header record for the CSV file.
*----------------------------------------------------------------------*
DATA: num3(3) TYPE n.
DATA: field_name(30) TYPE c.
SELECTION-SCREEN COMMENT /1(72) text-001.
SELECTION-SCREEN COMMENT /1(72) text-002.
SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS: s_fnum FOR num3,
s_fname FOR field_name.
START-OF-SELECTION.
MESSAGE e016(rp) WITH 'This is not an executable program'.
EXIT.
*&---------------------------------------------------------------------*
*& Form list_record_fields
*&---------------------------------------------------------------------*
* List the relative field number in the record, and the name, length,
* and contents for every field in the record
*----------------------------------------------------------------------*
FORM list_record_fields USING p_rec. quot;any structured record
FIELD-SYMBOLS <fs> TYPE ANY.
DATA: w_index TYPE i,
w_len TYPE i,
first_line_flag(1) TYPE c.
DATA: d_ref TYPE REF TO data.
FIELD-SYMBOLS: <fs_wa> TYPE ANY, <fs_comp> TYPE ANY.
DATA: desc_ref TYPE REF TO cl_abap_structdescr,
wa_comp TYPE abap_compdescr. quot;component description
ASSIGN p_rec TO <fs_wa>.
first_line_flag = 'Y'.
w_index = 0.
desc_ref ?= cl_abap_typedescr=>describe_by_data( <fs_wa> ).
LOOP AT desc_ref->components INTOwa_comp.
3. w_index = sy-tabix.
ASSIGN COMPONENT w_index OF STRUCTURE p_rec TO <fs>.
IF sy-subrc = 0.
IF first_line_flag = 'Y'.
SKIP 1.
first_line_flag = 'N'.
ENDIF.
IF wa_comp-type_kind NE 'P'.
w_len = strlen( <fs> ).
ELSE.
w_len = 0.
ENDIF.
IF w_len > 0.
WRITE: / 'Field', (3) w_index NO-SIGN,
wa_comp-name(17),
'(' NO-GAP, (3) wa_comp-length NO-SIGN NO-GAP,
') = ''' NO-GAP,
<fs>(w_len) NO-GAP, ''''.
ELSEIF wa_comp-type_kind = 'P'.
WRITE: / 'Field', (3) w_index NO-SIGN,
wa_comp-name(17),
'(P' NO-GAP, (2) wa_comp-length NO-SIGN NO-GAP,
') = ''' NO-GAP, <fs> NO-GAP, ''''.
ELSE.
WRITE: / 'Field', (3) w_index NO-SIGN, wa_comp-name(17),
'(' NO-GAP, (3) wa_comp-length NO-SIGN NO-GAP,
') = '''''.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. quot; list_record_fields
*&---------------------------------------------------------------------*
*& Form list_fields_with_cols
*&---------------------------------------------------------------------*
* List the field info (name, position # in record, length) as well as
* the starting and ending columns in t e record.
h
*----------------------------------------------------------------------*
FORM list_fields_with_cols USING p_rec. quot;any structured record
FIELD-SYMBOLS <fs> TYPE ANY.
DATA: w_index TYPE i,
w_len TYPE i,
w_field_start TYPE i,
w_field_end TYPE i,
first_line_flag(1) TYPE c.
5. (4) w_field_end NO-SIGN,
wa_comp-name(15),
'(' NO-GAP, (3) wa_comp-length NO-SIGN NO-GAP,
') = '''''.
ENDIF.
w_field_start = w_field_end + 1.
ENDIF.
ENDLOOP.
ENDFORM. quot; list_fields_with_cols
*&---------------------------------------------------------------------*
*& Form list_specific_fields
*&---------------------------------------------------------------------*
* List the field info (name, position # in record, length) as well as
* the starting and ending columns in t e record. This routine accepts
h
* 2 select-options tables, to indicate the specific fields to li t. s
* e.g. print field numbers 1 to 5, and 9. Or print all *NAME* fields.
*----------------------------------------------------------------------*
FORM list_specific_fields TABLES so_fnum quot;SELECT-OPTIONS for NUM3
so_fname quot;SELECT-OPTIONS for fld name
USING p_rec. quot;any structured record
FIELD-SYMBOLS <fs> TYPE ANY.
DATA: w_index TYPE i,
w_len TYPE i,
w_field_start TYPE i,
w_field_end TYPE i,
first_line_flag(1) TYPE c.
DATA: d_ref TYPE REF TO data.
FIELD-SYMBOLS: <fs_wa> TYPE ANY, <fs_comp> TYPE ANY.
DATA: desc_ref TYPE REF TO cl_abap_structdescr,
wa_comp TYPE abap_compdescr.
ASSIGN p_rec TO <fs_wa>.
first_line_flag = 'Y'.
w_index = 0.
w_field_start = 1.
desc_ref ?= cl_abap_typedescr=>describe_by_data( <fs_wa> ).
LOOP AT desc_ref->components INTOwa_comp.
w_index = sy-tabix.
*- Do field number & field name match the fields to be listed?
ASSIGN COMPONENT w_index OF STRUCTURE p_rec TO <fs>.
IF sy-subrc = 0.
6. IF wa_comp-type_kind NE 'P'. quot;Packed fields don't have STRLEN
w_len = strlen( <fs> ).
ELSE.
w_len = 0.
ENDIF.
w_field_end = w_field_start + wa_comp-length - 1.
IF w_index IN so_fnum AND wa_comp-name IN so_fname.
IF first_line_flag = 'Y'.
SKIP 1.
first_line_flag = 'N'.
ENDIF.
IF w_len > 0.
WRITE: / 'Field', (3) w_index NO-SIGN,
(4) w_field_start NO-SIGN NO-GAP,
'-' NO-GAP,
(4) w_field_end NO-SIGN,
wa_comp-name(15),
'(' NO-GAP, (3) wa_comp-length NO-SIGN NO-GAP,
') = ''' NO-GAP,
<fs>(w_len) NO-GAP, ''''.
ELSEIF wa_comp-type_kind = 'P'.
WRITE: / 'Field', (3) w_index NO-SIGN,
(4) w_field_start NO-SIGN NO-GAP,
'-' NO-GAP,
(4) w_field_end NO-SIGN,
wa_comp-name(15),
'(P' NO-GAP, (2) wa_comp-length NO-SIGN NO-GAP,
') = ''' NO-GAP, <fs> NO-GAP, ''''.
ELSE. quot;field length is ZERO --> empty of data
WRITE: / 'Field', (3) w_index NO-SIGN,
(4) w_field_start NO-SIGN NO-GAP,
'-' NO-GAP,
(4) w_field_end NO-SIGN,
wa_comp-name(15),
'(' NO-GAP, (3) wa_comp-length NO-SIGN NO-GAP,
') = '''''.
ENDIF.
ENDIF. quot;if w_index in so_fnum and wa_comp-name in so-fname
w_field_start = w_field_end + 1.
ELSE.
WRITE: / 'Error assigning field #', w_index,
'(', wa_comp-name, ') to <Field String>'.
ENDIF. quot;IF sy-subrc = 0 on ASSIGN COMPONENT command
ENDLOOP.
ENDFORM. quot; list_specific_fields
7. *&---------------------------------------------------------------------*
*& Form convert_to_CSV
*&---------------------------------------------------------------------*
* Instead of printing the record contents to spool, convert the
* structured record to a single string formatted as a CSV file line:
* Quotes around each field, and commas between fields.
*----------------------------------------------------------------------*
FORM convert_to_csv USING pu_rec
pu_hdr_flag
CHANGING pc_csvrec.
FIELD-SYMBOLS <fs> TYPE ANY.
DATA: w_index TYPE i,
w_len TYPE i,
first_line_flag(1) TYPE c,
w_string(60) TYPE c,
w_csvrec1(2000) TYPE c,
w_csvrec2(2100) TYPE c.
CONSTANTS: c_quote(1) TYPE c VALUE 'quot;',
c_comma(1) TYPE c VALUE ','.
DATA: d_ref TYPE REF TO data.
FIELD-SYMBOLS: <fs_wa> TYPE ANY, <fs_comp> TYPE ANY.
DATA: desc_ref TYPE REF TO cl_abap_structdescr,
wa_comp TYPE abap_compdescr. quot;component description
ASSIGN pu_rec TO <fs_wa>.
CLEAR: pc_csvrec, w_csvrec1, w_csvrec2.
first_line_flag = 'Y'.
w_index = 0.
desc_ref ?= cl_abap_typedescr=>describe_by_data( <fs_wa> ).
LOOP AT desc_ref->components INTOwa_comp.
w_index = sy-tabix.
ASSIGN COMPONENT w_index OF STRUCTURE pu_rec TO <fs>.
IF sy-subrc = 0.
IF pu_hdr_flag = 'HDR'.
WRITE wa_comp-name TO w_string.
ELSE.
WRITE <fs> TO w_string.
ENDIF.
SHIFT w_string LEFT DELETING LEADING space.
CONCATENATE c_quote w_string c_quote INTO w_string.
IF first_line_flag = 'Y'.
w_csvrec2 = w_string.