Welcome to today's Postgres conference webinar, CRUD Functions Generator Tool. We're joined by Javier Arau, database specialist, and Brenda Fierro-Servantes, Deputy Director of Information Technologies of Pemex, who will discuss CRUD operations and functions in database applications, a tool which leverages PLPGSQL to generate essential CRUD functions and how this tool aids PostgresQL's developers in standardized encoding style in order to simplify the time it takes to analyze cable structures. My name's Lindsay Hooper. I'm one of the Postgres conference organizers and you're moderated for this webinar a little bit about Pemex and FOSS. So at Pemex, the IT group aims to promote enabling capabilities platforms and open source solutions, encouraging technological development to respond adequately to the specific needs outlined in Pemex. Welcome to our speakers. With that, I'm gonna hand it off to Javier and Brenda. Take it away. Hi, everyone. My name is Javier. I'm speaking on behalf of my friends and colleagues of the FOSS group in Petrolo, Mexicans. This session is very special to us. It is our first participation in the Postgres conference webinar series. We are very glad to be here. The CRUD functions generator tools agenda considers the following aspects, purpose and scope. In the second point, we will focus on the tool features, install elements and use cases. In the third point, we will describe the configuration and execution procedures. Finally, we are going to have a demo. You will probably receive by email a zip file called webinar.zip with a user guide, install script and file samples of the tool for your evaluations. So let's begin. The purpose of this webinar is to share a tool to produce CRUD functions for Postgres tables with a standard coding style in a minimum time. The CRUD tool works with Postgres tables, identified by primary key fields and supporting foreign key constraints and produces functions in PLPG SQL for the following use cases. The first case is data create. This tool provides a function base on the insert statement with the proper fields of the table. Use case read. This will deliver a read function which select fields from table statement. If the table has foreign key constraints, the tool includes the associated tables and field relationships using the join-on syntax. The tool offers a variant of the read function and adds the where clause to restrict the record selection by key values. Use case update. The tool builds a function with an update statement using the key fields to restrict the update operation. Use case delete. The tool suggests the function with a delete statement using key values to limit the delete operation. Finally, the tool also generates a create-use statement with the similar features of the read function. By the end of the session, you will have a tool written in PLPG SQL to produce elemental code functions for PLPG SQL tables. You will learn how to use the tool to generate code functions in PG admin. You will understand the program logic behind the tool. You will identify the features supported in each use case of code function and you will recognize the benefits of the code tool in time saving and the standard coding practice. The code function generator tool is a contribution of the first group of petrodomichicanos to supposedly SQL community. So let's talk about the tool features. The script init underscore take you underscore function that SQL install three elements. By the way, these scripts on all the files including the presentation and the user guides are included in a zip file called webinar which you may probably receive in your email. So the three elements installed by the tool are the table name take you underscore tabla which is this table is used by the crew tool to identify which schema and tables are going to be processed. The result script will be stored in a column named gion. The second element of the installation is a function called take you underscore logic. This is the main function of the tool. What it does is it scans the take your tabla and calls another function, an auxiliary function name take you underscore genera underscore function to build crowd functions for each table marked to process. And the third element is a function called take you underscore genera underscore function with two arguments schema and table. It uses falseware SQL sectionaries to obtain stable attributes and types. Primary keys, foreign key constraints to infer associated tables and field relationships. These functions combines tables metadata with prototypes to produce the functions. This diagram summarizes the tool integration right here we have a function called take your logic which scans this table take your tablas for each table mark to process. There is a column in this table which is called processor. If it has a flag of one, it is indicated that it will be success. And also this function, when the function identifies a table to process, what it does is it invokes a function called take your genera underscore function to obtain the tables metadata and combines it with prototypes to produce the functions. This will be stored in the field name called yon which is this field over here. And we have here one of the most important tools about the tool is the information of the database engine. The metadata of the tables are included in this tables. Columns table underscore constraints key underscore column usage constraint column usage from the information schema and PG class PG underscore class PG underscore main space from the schema PG catalog. These tables, this system tables are used by the tool to obtain the metadata. Once the metadata is obtained, it combines it with group prototypes of these functions of these use cases and when the functions are included they are placed in this field. Okay, to illustrate the Cloud Function Generation process we are going to use three related tables. The first table we are going to use is one called pavement. The pavement table has a primary key defined by these two fields pay underscore level and pay underscore human. The next table we're going to use is one called departments. This table has a primary key field which is called step underscore ID. The third table we are going to use is the employee's table. This table uses MPV field as a primary key. This is the place where it's specified. And also this field has a serial type. In this type the values are generated by the sequence which is maintained by the database engine. In this case the user doesn't need to insert the values that is they are out of feed by the database. The second element of this table is the inclusion of two fields pay level and pay journal. These two fields work as foreign keys of the corresponding fields pay underscore level and pay journal of the pavement table. That is we have a foreign key relationship established in this table. We have another relationship and it is established with the table departments. Right here we have the field and we have the constraint definition to define that relationship. One thing to notice for the tool to recognize this foreign keys requires the fields of both tables. The table to possess and the reference tables must have the same names. Right here we have pay underscore level, pay underscore level, pay underscore journal, pay underscore journal, depth ID and depth ID. In this employee tables we have a pair of fields called insert underscore user and insert underscore date. These fields are used to store who inserts and the date of time of insertion for auditing for log reasons. The same thing happens with another pair of fields is the update underscore user and the update underscore date. In this table we want to register the user who updates and the date time of update. Okay, this sample data model is going to be used in the use cases so we can have a more precise idea of what the tool does. Okay, so let's review the use cases of the functions of the cloud function generation tool. The first use case is the create. So use case read function, no use case create function fix function, this function identifies the serial types fields. That is small serial, serial, big serial of the table structures. And what it does is excludes them from the fields values to insert. The field related to update are omitted from the list of fields values to insert, which are referenced by nombrecampo underscore usuario modifica and nombrecampo underscore fecha modifica. They are excluded from the list because in the insert operation it doesn't make sense to update, to register those fields. And the value of the current time step is assigned to the field reference in nombrecampo underscore fecha. We will review these features with an example. It's okay, we have the example for the create use case, the insert. The convention use to name the function is the prefix fn underscore table name underscore alta, which means append and the list of arguments. Right here we have the structure of the table employees. The MPID M underscore ID is the primary key field and we have two fields, the update underscore user and the update underscore date. And the insert that the two builds, what we have is the update user and an update date are not incorporated. And the MPID because it is a serial type is also excluded from the list because the database engine produces will generate this value. So for the use case of insert, the MPID serial types, sorry, these serial types are excluded. And if you have defined fields for the update and date time for the same operational update are also excluded. And if you ever define a field to differentiate the date time of insert, in this example insert underscore date, the build, the tool will include this value so you won't have to worry about the definition. And in the next slide, we have an example of the clock functions generated by the tool. We have the create or replace function command, the schema and using the convention we mentioned before, fn underscore the table name underscore alta. Right here, the tool includes the parameters using the prefix v underscore and the name of the field and uses the type of field register of the table to complete the definition.  We have the fields. Please notice that in this definition, we have the insert user, insert date. Insert date is not included at the parameter list because it won't be necessary for you as a programmer to pass a value to this field. This field, the insert date, that is the current time stamp is passed automatically. And if the operation succeeds, it will return zero. And if an exception occurred, it will return minus one. This is the first case of the tool, the create function. The next use case is read loyalty one. It uses a functionality of selecting records by pages. The convention that in this field is fn underscore table name underscore cons with the argument list. What are the features? This function supports selects from a table and related tables at the first level only using foreign key constraints. Through those constraints, reference tables and field relationships are identified. The names of the foreign key fields of the table and the reference fields must be identical so the tool can relate them. The select clause includes the attributes of the associated tables. The function contains two parameter options, limit and offset to emulate the page in the browsing by pages. And the select clause shows the total number of records in the table. The field is called total underscore registers. The estimate of the total records in the table is obtained in execution time through the explain tool or using the table PG class to obtain the estimated records of the table. There is a nice article about this procedure. We have placed the reference in this slide. So if you could review what are the considerations about using the explain tool or using the PG class. Let's see an example of this use case. Right here we have the same structure of the employee's table. We have illuminated the section constraints. Right here we have a constraint with the department table and in this other section, we have identified the foreign key relationships with the table of pages. These functions, these concepts are used by the tool to express these relationships. We're using from the employee ID, from the employee using the LSP and using the left join on table on file relationships. This relationship is obtained by the metadata. One of the examples of the SIP file includes the query to obtain these relationships. Another thing to notice, because this table uses a relationship to view another fields of another tables in this function case, what the tool does is to include the fields of the related tables, in this case, payments, but it uses the prefix of the table to differentiate the full names of the related table versus the field that is included in the table. We are doing this, we are adding the prefix of the table to avoid full names duplicate. For instance, we have a field called pay underscore level because we are including in the list, in the select list to avoid duplicate. We are adding the payment, in this case, the table as a prefix to have payments underscore underscore paid journal. The same thing happens with the another table which is related, which is depart. We are using the table as a prefix to differentiate the related fields that are related attributes of the another table and differentiate them from the fields of the table that is processed. Also, in the function, we are including this statement. In order to obtain the total numbers of records of the table, we are using by default the functionality of the explained plan method. If you hit with explain and the, in this case, the select start from demo employees, what the explained will return is an explained plan. In that explained plan, it will be included the number of rows. To obtain the number of rows, we can use the display with the format of JSON. So in this variable, in this JSON variable, we can recover the total rows. And this method is very fast, but it's an estimation. And alternatively, we have another method for obtaining the total of records. By using the name of a call table named PG underscore class. PG underscore class has a column name, rail totals, which indicates the number of records of a table. This table is updated regularly. And if you hit the analyze, analyze verbose of the table, the records, the statistics are very fast. The records, the statistics are updated, including the name of the mouth, including the total records of the table. These two methods are included in the function. So you could use whatever you wish. And this is the function defined with the syntax of create a replace function using the convention fn underscore, the name of the table underscore cons. Right here, we can see that the, in the return table, there are defined the fields of the table. And in the selected statement, we are using the different attributes of the table. The table to process, we have an example of the read one use case using the select statement. In this function, we have the create a replace function using the convention fn underscore, the table name and underscore cons. We are using two arguments, limit and offset that will be used to paginate the results of the query. In the return tables, the tool generates the list of the fields of the table and only includes the fields of the table process and the fields of the reference tables. It also has a section where the function obtains the total records of the tape using the execute function, which calls the explain plan of the process to analyze the tables, analyze queries and alternatively, it includes another method to obtain the number of records using the table PG underscore classes. The third use case is read modality two, which is basically the same features of the flip function with the following exceptions. The key fields are included in the work class to restrict record selection and the estimated number of records of the table, limit and offset are excluded. Right here we have the function defined using the convention fn underscore employees underscore cons underscore jab will essentially have the same fields of the red function number one with the exception that we are including the work class to consider the key values of the table. The next use case is the use case update. In this function, the key fields are used in the work class to restrict the update operation. Key attributes are excluded from the set list. By definition or by practice, the key field values shouldn't be updated. According to that rule, we are excluding the key attributes from the set list. The fields related to insertion are omitted from the set list, which are the references by number campo underscore usuario alta and number campo underscore fetch alt. The value of the current sign step is assigned to the field reference in number campo underscore fetch a modifica. This is the structure of the table employees. Right here we have the update user and update date as fields for storing the date and the user who does the update operation. And right here, we have the update sentence built. In the set, we are excluding the key field and we are including the update user and the update date. And for obvious reasons, we are excluding the insert user and the insert date. Right here, we have an example of the update function. We have the create or replace function. And we are using the convention fn underscore employee underscore cambium with the parameter list. And what we have is the key field excluded from the set list, which is incorporated at the word clause. And we are including the update user and the update date. Okay, let's continue with the next use case. And this use case is the delete. The key fields are used in the word clause to restrict the delete operation. And we finally have a definition of the create view sentence. This create view supports the select list of fields from a table and associated ones using the foreign key constraints as the red function. And the select clouds include the columns of the associated fields. Let's see an example of both cases. In the case of the delete function, we have the create or replace function using the convention fn underscore employee underscore Baja. And as a parameter, we are passing the tool passes the pair of value. Of corresponding to the MPiD primary key field. Right here we have descendants is delete from the table where we are using the key values to eliminate only the record crew belongs to that key. If the operation goes well, it returns to zero. If there is a problem, it will return minus one. And at this section, we have an example of the create or replace view using the syntax B underscore and the table name. Right here we have the other fields of the original table and associated tables using also the name of the table as a prefix of every field to avoid name duplication at the select list. And also we have the definition of the table relations using the left join table on field relationships. If we see the two generation as a process, we will have three steps or stages. The first step is to identify the schema tables to process. The second stage is to execute the tool in Pulsar SQL and the third step will be to obtain the correct functions and view the script so we can execute it to obtain those use cases. Let's review step number one. In the step number one, we have to identify the tables to process. The tool uses the table public take your tabla. Take your tablas is one of the elements that are installed when we execute the installation script. This table, which is named take your underscore tablas includes the schema name, the table name includes a field whole processor. If this field has a value of one, the tool will generate the script. If it does zero, it will not generate the script. To select which table to process and then we have to use this field including one to generate the script or zero to tell the tool not to generate. And we have a field which is called Gion. In this field, this field is the text field and it will be included the script of the crowd functions and the create view statement. Also, this table has four fields which are optionally who were not required but which can be used to identify the file name to store the user who inserts. There's also another field to store the date time of insert. For instance, the field name to store the user who inserts. It could be insert underscore user or created by. In the field name to store the date time of insertion it could be insert underscore date. The field name to store the user who updates. It could be update underscore user and for the file name to store the date time of the update it would be update underscore date. It's important to notice that for the tool to generate the crowd functions requires that the table to process to have a primary key. If it does not have a primary key, the tool will send a message saying that this is not possible to generate the crowd functions because the primary key is required. So this is the first step to identify the tables. We can use a user statement with this syntax to include the tables from different schemas. In the installation script, this table is populated with the table and the schemas of the public one. So if you have all the tables in that schema you don't have to worry about including the tables to process in technical tablet. If you have another schema with tables you can use a statement like this one to do the insertion in the sample fields, sample files of the save file. There is one script to do this job. Step two, in the second step we have to execute the function take you on the score lot. The function take you on the score lot scans the table, take your tablets and for every table mark to process it invokes the function take you on the score generate on the score function with the arguments schema and tablet which produces the code functions and create new statement. All you have to do is in PJ admin for instance you hit select space public, take your lock and what we and this function will produce the functions for the tables mark to process in the take your tablets. We will review all these steps in the demo point of the agenda. And in the first step we obtain the code of the cross functions and create new what we have to do is to select the take your tablets table from the public schema in order to obtain that code. Right here we are selecting schema, table, process and again and we will obtain a data set and in the game field if we double click we will obtain the code to be used by the functions. Okay. This was the theoretical part. If you don't mind we are going to review the demo to illustrate the point. We are going to exchange a monitor will take a minute. We are going to switch our desktop to the PJ admin full in the files you receive. There is one file called but at the user guys you will have to define a connection to the public database. We're assuming that you have that connection. You can do it later. And we are going to enter the public database which is the default one and we will create, we will enter in query mode. In this query mode we are going to load the file name init underscore take your underscore function. We have all the source code in this function and what it will do is it will install three elements that we were, can I move this? Okay. We have the function init underscore take your underscore function. This script will install three elements in the public schema. Okay. Once the script is run if we look at the public schema we are going to have a table name take your tablets and two functions take your lotte and take your genera function. Right here we have the code of take your lotte and right here we will have the code of take your genera function. And in take your tablets we will have the structure of the tape. So this is the first tape. The first step is to create, is to install the function by the script we saw. This was the first script but we have to execute to install the tool. According to user guide the second file two will be demo underscore create tables. With this script we are going to create a schema called demo and we will create the tables we were reviewing at the presentation. That is the departments table, the payment table, the departments table and the employees table. And they will be created in the schema demo. We execute the script, we refresh the schemas. In the schema sections we review another schema called demo, the demo has three tables. Departments, employee and payments. Okay. Once we have the two tables what we need to do is to include these tables in the table take your tablets to tell the tool to use those records for clutch generation. So we are going to load the second demo file which is called identify tables insert. What we're going to do is to include in take your tablets the names of the tables included in this schema. One of the pages. And then we have to insert with this query we insert the table names of the schema table in the public one. So if we use the first script, what we are going to do is to select these fields the schema, tabla, processar, guion, nombre campo, value alta, nombre campo fecha alta, et cetera from the public tables. The previous script what it did it was to insert in this table the name of the schema, the table name. And we put the flag in activation mode. We have and we have the fields that could be used to insert to store the user who inserts the data of insertion, the update date and so forth. Next we will execute once we have identified the tables to process we are going to load a script which is called 05 cloud code. To generate the code also this is not the query the query is function accept to execute the function. We will have to select a function called take your load. Once we execute this function take your load we will receive a result with the following message. I want the message and the message says the process tables where take your tablets, departments, employee, payment and it displays a message that says that if you want to obtain the photos and functions you will have to select the fields from take your tablets. We have prepared a query for that which is query number five and the query number five it will present the following fields. Right here we have a record for the demo, department table and in the column here we will have the code. We will copy the code we're going to use the query for the basic code and this is the code of the tool. We have the create or replace function with the name of the user, the create user the create use case with the parameters. We have the statement in the next section we have the update function and third place we have the functions to delete. Then we have the functions through the read function variety one we have the right here we have the columns definition right here we have the two methods to obtain to get the fields the number of records using the explain method and commented the options to use the pg underscore class to get the same number, the same estimates right here we have the fill names and at the end we have the view. Create statement view, okay. We execute it, we're going to erase this we're going to go to the pavement table we have the same code, the functions the use cases and the creating we're going to recover the code for the growth function for the employee table. This function for the employee table has the insertion of fields except the MPID field because this is a serial type it includes the insert user update user and corresponding to the update to the insert user insert date so there is a current timestamp and in the parameter list it's not included the insert date because the tool assigns the value of the current timestamp so the developer doesn't need to include it in the parameter list. If everything goes well, it will return a zero in other words, if a problem of course it will return negative one. Right here we have the case function for the update there is a list of the fields in the set list there is not included the MPID which is the primary key this is the function for the list right here we have the function for read these are the parameters that we will receive the limit noses in the limit it will include the page size and in the offset it will include the starting point of the page in the returns table the tool includes the fields name of the table and also incorporates the fields of the payment table and to avoid name duplication the tool adds the table name as a prefix of the fields the same goes to the departments right here we have also the methods for obtaining the total of records using the explained command and commented there is the method for using the another way to obtain the total of records we are going to comment we're going to use in this case the table PG class to get the number of records if you would like to prefer to use that method instead of the explain you can go to the source code and comment this line and comment the two previous lines okay in the select statement we also have the fields from the table and the fields of the related tables using the table name as a prefix right here we have the field and right here we have the name of the tape the field name and in the alias in the alias we are using the name of the table and the name of the field so we could differentiate the pay level from the payment level from the pay level of the employee table okay right here we have the use case of the read function using the word clause right here we have it and finally we have the create statement for the view using the same features of the read function okay once we execute the function if we go to the demo schema and rephrase it in the function sections we will have all the functions created so once the functions are created the right thing to do is it will be to test the functions in the zip file you receive there is a file name demo 06 code testing if you open this file you will have an example of the functions with sample values so you could test if the function is working right what we did for to generate this file was to select the function go to the script section select script and in the select script appears the syntax to execute this function what we did was to copy this code for every function let me close this okay so if we would like to to test this function all we could do is select this field execute this segment of the code in return zero if return zero there was no problem then this was the insert you create case next we have an example of the delete function we are doing is to delete a record with the seven as the key value there was no problem with that next appears the function was no problem right here we could evaluate the function by pages right here we have it right here we could use the starting point as three sorry I didn't lock sentence okay we are running out of time so we're going to accelerate this part right here we are using the the select with key payments we're going to insert this field we're going to delete this one right here we will update this record right here we will retry only one record using the composite key with the employee and that the employee stable right here we have this inserts then we'll delete this record and right here we're going to update the record we are going to use this real case using pagination we will obtain the first records the first six records all the first all the fields appears in this in this in this table sometimes when we use the method for 10 records at first at the first time the records are not the total number of records are not updated so to avoid to correct that problem what we'll have to do is only the first time is use the analyze option, analyzer rules and the name of the table and if we hit the statement again we'll have the correct number of records and if we keep continuing insert the records regularly this total of records will be corrected the record is updated so if you regularly if you regularly apply the analyze option to the tables it will keep updated the total number of records okay with this we could paginate the select and finally with this function we could retrieve only the record who has the key value of one okay or we'll cover the use cases of the tool by the demo by the demonstration with this we finish our talk in this last slide we would like to thank our sponsor for the first community in the first place we have our deputy director of IT in the organization her name is Vendafir thank you very much for your support and we also have Marcos Aurelia he is the corporate director of administration and services also we would like to thank our support from the personal staff starting with Maribel Jacoby, Martín Moreno, Alejandro Gallardo, Eduardo González Rocío Perez, Enrique Chavez, Francisco Toledo, Jesús Caudillo, Miguel González Ramiro Gómez, Luis Mateos, Gabriela Merina, Coactemo Renoso, Hugo Linares Y Javier Sosebo our deepest gratitude for all these sponsors and managers for giving us the opportunity to work with first solutions thank you so much amazing that was so thorough thank you so much and to all of our attendees thanks so much for hanging on the line with us and I think that's a testament to how solid of a presentation this is so for our attendees thanks for spending a little bit of your day with us to our speakers thank you so much it's clear that you put a lot of time and thought into this project and this presentation and I look forward to hopefully working with you again on future events cheers


I'm going to talk about the global issues, the important challenges, because migration is a global issue. I don't mind to say to you, but we don't talk much about it until it gets to Europe. We see the same thing with Ebola. Ebola is happening in West African countries, affecting people, but it did not get much attention in spite when we were shouting. We didn't get the, what do you call it, the sound waves until it gets to USA. I hope the vulnerability and the need of these special group of people can get the attention they deserve in the global discourse. So I'll come to Australia. You are absolutely correct, the importance of data, but I don't mind to tell you. In so many countries in WTO, well, I talk about, you know, vital registration. We don't even know how many women and children and men are in the country. I have 194 countries, only 68 of them even have birth and death registrations. So how do we build an evidence base, and I fully agree with Australia the importance of the evidence base and the data begin as what, you know, many of you talk about registration, including not just your population, but also including the vulnerable populations, understanding their health profile, without that data, you know, data drives policy and data drives priorities. So I mean, in order for the government to invest in the right priorities, you do need data. So now, Libya, your question is to Finland, so I will not touch them. Venezuela, excellent comments about coordination and coherent policies. Every fora I go to, in health, in, you know, migration, in nutrition, everyone is talking about the importance of multi-sectoral cooperation, the whole of government approach, but my question to you is, do you think your ministries are fully aligned? This is a challenge, our common challenge. The UN also, we have our problems.  Are they singing from the same song sheets? I have to say to you, in some countries it's better than the others, so you know who you are. Now, your comment about local authority is spot on. No health system, resilience, can happen without engagement of the community, especially the importance of primary health care. You need to mobilize the woman, the man, and the girls in the community to provide advice and care that they are part of the solution, and we only can get to the bottom of Ebola, it's because the three countries, after the very slow start and the denial and the resistance at the beginning, eventually mobilize the community. That is a big lesson for all of us to learn. Now, Japan, thank you for again, mentioning the importance of preparedness beforehand, exactly spot on as part of the health system strengthening. I will make sure that your next G7 leadership, together with Germany, you have pledged to support many countries in building strong health system and that nobody is left behind. That is part and parcel of the solidarity theme that we talk about. We have a crisis of solidarity with the courage and the commitment and the conviction of the leaders and the community, we will get there. Thank you.


Hello and welcome to the session. Let us discuss the following question. Question says, integrate the function sin inverse x upon square root of 1 minus x square. Let us now start with the solution. Now we have to integrate sin inverse x upon square root of 1 minus x square with respect to x. Clearly we can see derivative of sin inverse x is also occurring in this integrand. So we will integrate this function by a substitution method of integration. We make a substitution for a function whose derivative also occurs in the integrand. So we will substitute sin inverse x is equal to t. Now we can write put sin inverse x is equal to t. Now differentiating both the sides with respect to x we get 1 upon square root of 1 minus x square is equal to dt upon dx. Now this further implies 1 upon square root of 1 minus x square dx is equal to dt. Now we can write integral of sin inverse x upon square root of 1 minus x square dx is equal to integral of t dt. We know sin inverse x is equal to t. So we can substitute t for sin inverse x here and dx upon square root of 1 minus x square is equal to dt. So here we have substituted dt for dx upon square root of 1 minus x square. Now integrating this function we get t square upon 2 plus c where c is the constant of integration. We can find integral of this function by using the formula of integral of x raised to the power n with respect to x. This is equal to x raised to the power n plus 1 upon n plus 1 plus c where c is the constant of integration. Here the value of n is 1. So integral of this function is equal to t raised to the power 1 plus 1 upon 1 plus 1 and we know 1 plus 1 is equal to 2. So we get t square upon 2 plus c. Now we know t is equal to sin inverse x. So we get square of sin inverse x upon 2 plus c. So required integral of the function sin inverse x upon square root of 1 minus x square is equal to sin inverse x square upon 2 plus c. Or we can write it as 1 upon 2 multiplied by square of sin inverse x plus c. This is our required answer. This completes the session. Hope you understood the solution. Take care and have a nice day.


Hello and welcome everyone to the Top 10 Fair Data Things Global Sprint webinar. The actual sprint is on the 29th and 30th of November 2018, everywhere around the world. And today's webinar is basically to give you a bit of an introduction and overview of the sprint and to talk about how you can participate in it. So it's brought to you by Library Carpentry, the ARDC and the Research Data Alliance Libraries for Research Data Interest Group. Okay, so today's webinar, before we get started, there's a bit of an overview of some of the things we're going to cover. It's only a short half hour webinar, so we're going to talk fairly quickly through these things, but you will have a chance to ask questions. Before we get started, just a bit of an introduction to the speakers today. I'm Natasha Simons. I'm the Associate Director for a program called Skilled Workforce with the Australian Research Data Commons and I'm based at the University of Queensland in Brisbane. So the ARDC was established this year and it's a combination of the Australian National Data Service or ANS, NETA and RDS, the Research Data Services, to meet the needs of data-intensive, cross-disciplinary and global collaborative research. And the ARDC is supported by the Australian government through the National Collaborative Research Infrastructure Strategy. Over to you, Keith. Thank you. And my name's Keith Russell, Manager of Engagements within the Australian Research Data Commons. Chris. I am Chris Erdman and I'm the Library Carpentry, Community and Development Director. And Liz. Hi, I'm Liz Stokes. I'm formerly from UTS and I've just joined the Skilled Workforce Team at the Australian Research Data Commons. Excellent, thank you everyone. OK, we'll go to the next... Oh, there's a link to the slide deck there if anyone wants to load them. So the first topic is the who, what and why about the global sprints. OK, so the top ten fair data global sprints is organised by Library Carpentries, by the ARDC and the Research Data Alliance Libraries for Research Data Interest Group. It basically came about because there's a need to develop some educational and resources in fair data for different research disciplines. There's a lot available that covers fair in general, but we're actually missing quite a lot of information in a disciplinary sense, which is where fair makes a lot of, where fair really comes to light. So we've organised this sprint in collaboration with a number of global partners, Foster Open Science, Open Air, the Research Data Alliance in Europe, the Data Management Training Clearinghouse, which comes out of ESAP, the California Digital Library, the Dryad Repository, ARNET, Dance and the Centre for Digital Scholarship at Laidon University Library. And if you want to get an overview of the sprints, there's a link there to the Library Carpentries blog where the sprint was announced. OK, so the purpose of the sprint, as I mentioned, is to create a wide range of top ten fair data things by research disciplines, and or we also have themes as another way that you could slice and dice this particular sprint. So what is actually a top ten fair data things resource? Well, hopefully a number of you listening today have actually done or been involved in the ANS or Research Data Alliance 23 research data things. So things, if you've seen through that program, you will have noticed that things is a neat concept for creating package content on any topic that you choose. And each thing is basically a self-directed learning activity for anyone who wants to know more about that particular topic. In this case, it's about fair research data. So the resources that we create during the sprint, the idea is that they can be used by the research community to understand fair in those different disciplines and different theme contexts, as well as providing people with some initial steps that they want to consider to make their data fair. So here's an example of the top ten things. In this case, it's not actually a top ten fair thing specifically, but it is a top ten health and medical things related to research data. So this was created by ANS before we're now joined with the ARDC, but we don't have the branding on that poster. However, you get the idea of what is covered in this particular resource. So the example I've pulled out there is thing two, which is issues in research data management. And with these particular top ten things, you can pick different activity levels that you want to engage in. Some of the activities I like read something here and think about it and then make a comment on it, or it might be go and try this new tool and see what it does for you in the data management area, or it might be critiquing something. So there's different types of activities that people can do that's more than just a sort of passive reading of materials. So the ten things is about doing something. So you read something, you start to understand it, and then you reflect on what you've read and you make a comment on it, or you create some or you try out some new tools or some new ways of doing things. So that's the whole sort of essence, really, of the ten things. And there's a link there so you can explore those. These resources are then available for anybody to use, whether you're in top ten medical health or not. Anyone can actually go along and do those top ten things whenever they'd like to. So if this is new to you, which it probably is, particularly the creation of the resources, we created a primer, which is basically a set of instructions that will help guide you through the creation of your top ten fair data resources for different disciplines. And I'll put the link to the tiny URL there, but it's basically just a few pages that tells you how you'd go about this, which is essentially not to start with another top ten, although it's good to see that example, but to actually start with the 23 things and start with some bigger ideas and then start to sort of skim down from there how you might want to get to ten and whether you want to do different levels within each ten. So you might have one thing and you might have three different levels in there, a beginner, intermediate or advanced, or just different types of activities that people can choose from. Because the one thing we found through the 23 things is that people really like choices and they like to be able to do things and they like to be able to talk about them. So just consider those things when you're creating your top ten resource. So Natasha asked me to speak very briefly on the fair data principles. Now I'm guessing most people here will have already seen the fair data principles and already know them really well, so I'm going to keep this short and I'm trying to focus it on what does this mean, how can you think about this in the context of the ten research data things. So the fair data principles were drafted in the workshop in Leiden, the Lawrence Centre 2015 and subsequently the original authors and a few other people sort of wrote an article in Nature about this and that received a lot of international recognition and uptake by all sorts of different organisations and funders and policy bodies and journals and all across the board. And I think there's a few factors that led to that contributed to the success of the fair data principles. I think one thing was the angle in which they talked about not only making data usable for humans, but also for machines and how to actually prepare data in a way that machines can pick up the data and use it and use it in data intensive science or data intensive intensive research. The fair data principles are formulated in a way that they're technology agnostic. They're not based around one specific technology solution. They address elements both regarding the data and the metadata. And I think that broader perspective I think is really helpful and useful. And they were set up in a way that was discipline independent. So not focused on one discipline specifically. However, because they're discipline independent means that there is not a lot of guidance in the principles strictly about what you need to do as a researcher to make your data fair in a specific discipline. So that's one of the gaps that has since appeared and getting quite a few questions from different groups, different research communities saying, well, yes, we'd like to make our data fair. But how do we do it? What are the things we need to do in our discipline? What I tried to do here is mentioned for each of the fair data principles very briefly things you can think about that you could talk about when you're thinking about making data fair in a specific discipline. So, for example, when you're talking about making data findable elements on the right hand side, you'll see the actual original principles. And on the left, you can see a few things you can think about. So, for example, in a specific discipline or a specific domain, are there types of persistent identifiers that are common are used? Is there a specific discovery metadata that's common and relevant? So, for example, in Geosciences, you might want to have discovery metadata that describes where the data set is about. So what is the what's what are the geographical boundaries of the data set? For example, and if you're talking about making the data findable, are there discipline specific repositories or registries that the data should be either deposited in or be findable through these routes? When thinking about accessible, accessible is also an element in there's different ways of thinking about accessible. Basically, you just talk about protocols to get access to the data. There's also questions you can think about and how open can the data be made? What sort of considerations and protocols are there in that discipline around making data available? Is it can it be made very open? Are there procedures around sensitive data that that can be copied, can be used, etc. Are there platforms or solutions out there that researchers can use to provide access to sensitive data and in some cases it's more valuable not just to have the data as a download, but to provide the data through data services which can be interrogated by machines or humans. If that is the case, what sort of data services are common, are standards in that in that specific discipline? Interoperable is always a complicated one. When talking about interoperable, it's a lot about actual the content of the data and to a certain extent also the metadata, what language is used to represent that data and things you can think about there. Are there standard file formats? Are there standard ways of making data available in that discipline? Are there standard vocabularies and ontologies that can be used either to reference the data to use when creating the data or the metadata? And where can those vocabularies be found? Are there places where those vocabularies are deposited? And when looking at relating data to other information and other outputs out there, are there identifiers that are common in that discipline to point off to related information? For example, it identifies for projects, it identifies for samples, it identifies for authors, so that you can actually create links and qualified references between bits of information that is out there. The fourth letter, reusable, covers a range of other elements which are useful on top of making data findable, accessible and interoperable because you need to do that anyway to make it reusable. But on top of that, there's a few other aspects you can also think about. So is there around licensing? Is there a standard? Is there a practice in the discipline around licensing data? One of the other elements there is provenance, attaching provenance information to your data. So is there a discipline specific approach around provenance? Is there a standard that people use? This is something you could point people to. And finally, are there community standards for the data and the metadata that that researchers can adhere to, can use, which will increase the reusability of that data or that resource? So that was those are all aspects broken down by those four or printed by the four letters in the in the fair data principles. However, there's also may well also be other elements that you might want to pull in for your 10 fair 10 research data things. So and those can be more general disciplinary context that would be useful to incorporate. So, for example, are there relevant policies that funders or journals or associations or societies have in the discipline? Are they starting to push for fair? Have they got guidance in that space? Is that something you want to point the researchers to? And, for example, are there other standard approaches, templates or tools or materials out there that researchers should be aware of that they can use and pick up just to make it easier for them to make their data fair? So these are just a few things to trigger thinking. When you're thinking about I want to do 10 fair research data things, these are elements you could, for example, include bring on board. So that's my perspective and I'm happy to hand over. Thanks, Keith. So how will this work? So to begin to start, we'll be using the Monash Zoom. So the Zoom link will be open throughout the sprint. And we'll have we'll have individuals will have people in the sprint sort of there to help guide different groups, different individuals that are trying to tackle a different theme or discipline. So on the hour, every every hour, we have check ins and people can come in and discuss what they're working on and and ask questions, get feedback or just have general conversations. But it's a good it's a good way for people to come to check in and see what others are working on and get a sense of what what they might want to tackle as well. It's a great it's a great check in tool. But if you're unable to make it into the Zoom or if you actually need an answer quickly, we have a Gitter channel. So we have a chat room where the link is is also listed there where you can actually just chat with individuals across across the world that are working on, you know, different different aspects and you could you could ask ask them something that you're you're facing and just connect with them as well. So one way the chat works is you can use the at symbol to actually talk to certain people directly. And there are already about 20 people that have already signed up and you can sign up with your GitHub account or Twitter account. So you can you can communicate with people that way. Check in throughout throughout the sprint. The other method that we're using to indicate that people are working on the sprint and working on disciplines or themes is a registration spreadsheet that we're working on where the link is there. It's a spreadsheet where people have listed their names, their group names, their contact information. And they're also linking to the document, the collaborative document that they're they're working on. So we have already two groups that started to include their collaborative documents in the folder that I've listed there. And the folder also contains all the other resources that we have mentioned, the announcement, the instructions. So that's that's another way to connect. And one other thing to mention, too, is we have a code of conduct. Really, what this says is to just we want to create a welcoming environment, welcoming place for people to discuss the 10 fair data things. Please be kind and professional. Just we want this to be a enjoyable experience for everyone. And then also another way to indicate that you're working on particular things is to use the top 10 fair hashtag in Twitter. And I included a tweet that we had sent out, which includes also our collaborators and partners. So if you also wanted to include them, their handles are included. And we might be adding more, more collaborators and partners as we get closer to Sprint.  Check back in and see if you have all the handles, if you want to include everyone, all the different groups working on this. And the last thing to mention is that at the conclusion of all this, once we've created these 10 fair data things resources, we'll move all these resources from Google, from the collaborative docs that people are using to a repository where people can continue to collaborate and reuse the material in various ways. So we'll be moving that to a library, carpentry repository. So this concludes the the the Sprint logistics part. So move on to Liz. Thanks, Chris. OK, so some of you are probably thinking, OK, that's all very nice and well. But where to actually start? Where to start? What would actually make sense? What would fair actually look like for you in in your discipline? So I think I'm thinking in this way like it might be something about actually working out what fair might look for you in your particular neck of the woods. OK, so are you looking for the people who are all kidded out with their fair stuff like an exemplar, combi van with the best camping set up or the little things that fit together wonderfully and take them to amazing places is. I mean, I'm hoping that that kind of mental image might inspire you on to searching out some kinds of examples or the good kinds of resources that are actually quite useful in communicating fair or alternatively. It might be actually that you don't really have a discipline. You're involved in research support. You might be a librarian and actually what you want is for some really good, useful examples of what fair looks like in practice. So you can actually begin a discussion with researchers in your area or in your at your campus about about all of this data publication. So some examples of those might be obviously so we've talked a lot about this discipline focused resources, but I always like a good pop culture reference. So it could be repositories that are really, really ridiculously good looking, OK, or useful metadata standards. You might be demystifying those identifiers when you're looking for examples of fair in practice. It might be validating a vocabulary or being able to talk about a particularly relevant vocabulary for someone's area of research. And I just wanted to say that we're going to have some sprint driver revival stations. OK, look, to be honest, I was a little bit unsure about this to use some very unfair type gifts in this, but in Australia, we have these driver revival stations around there. So we're tacking on on board with that. And to me, driver revival also involves some kind of sort of reviving conceptually as well. So we will we'll be listing on the ARDC website shortly. Those locations around there where you can drop in. Of course, you can also talk to people on the Gitter channel as well. And one last thing. Oh, sorry, I do need to disambiguate when I went looking for other examples of fair data was that there's also this other fair data thing, but that's not us. And it's I don't know. There's something about fair and data just makes people want to group things in lists and make them in things of 10. But that's actually some another group. So I just want to make sure that everyone is clear about that particular disambiguation. I just wanted to make a little plug for our next webinar on the 27th of November about making data count, which might be of interest to some of you on this line. OK, looks like I'm the only one here at the moment. So no, you're not this great. We're all just lurking in the background. Wonderful. OK, so that's the that's the end of what I've got to say over to over to you, Natasha. OK, so I hope this is giving you a good idea of what's coming up with the sprint. And I hope it's enthused you to participate and register and get an idea together. And it's actually time for questions. There's a question. A question I had sort of can we already do a sneak of some of the driver revival stations that are already mentioned or is that still secret at this point? Which driver revival stations have we got and where do we still have gaps? People that might want to provide a driver revival station. Liz, do you want to announce where yours is? OK, so ours will be at UTS. Probably likely to be in the tower building, but I'll have the I should have the final details of that today. So there will be a central Sydney, fairly central Sydney one at the University of Technology, Sydney, for those of you who'd like to drop in on us. And there'll either be one at the ARDC office or at ANU in Canberra. We just haven't got the final word on that one yet. And the rest are all sort of in play, which is why they're not actually announced yet, but we will put them on the website in the next few days. But if anyone, yes, if anyone wants to host one, please do. And we're happy to provide the cake. But that's an incentive for you. And Chris, any driver revival station out your way? I was about to list, I think there are about 18 in total that have been registered so far. I was just checking. I think it's 17 in total that and there are three University of California. Schools involved. So I myself am in North Carolina, but I work for the University of California system. So I guess you can say, yes, locally, yes, there are three University of California schools and there and there actually, I don't know if this was the question, but there are two resources that people have shared in the folder where we're sharing them at the moment. So if that's what that question was about, just of taking a peek at what's been done, then they're in the folder, which maybe we can share a link. I can't see the questions or comments. So if you want to be sorry, there's a comment from Chris McAvaney about great overview. He has to go now, but it looks great. And he's going to be chatting with his library staff about this. And there's a couple of other people just saying thanks for that. So I think maybe just to give people an idea of what was what people have already volunteered for to create, if you go to that registrations list link, which you can go from the library, carpentry blog or from the ARDC website, you can actually have a look at what people have suggested they want to create a top 10 resource in this actually quite a few different social science ones, which is going to be interesting. And then there's some more specific ones like history. Someone has volunteered to do one in software. I haven't seen it on the registrations page yet, but it's been talked about in Gitter. What else, Chris, can you remember any of the others that people volunteered for? I think I covered sorry. Clicking all these different buttons. I think that covers it. There are a number of other institutions that have contacted us that haven't registered. But I know for certain that the National Library of Medicine is interested in and they're interested in just the medical thing, but there's also a group that was interested in a thing in biosciences. So I'm just blanking on the name of it. But yeah, there are still several that have not listed their their projects on there. So whether they need to get full approval or are there just I need to prod them again. Yeah, so there's one as well on Australian government data. There's another one that came in yesterday. So so there's some interesting different fair topics that you can get involved in to contribute to. Here's a question from Fiona Bradley. Should everyone interested in a discipline try and team up? Do you want to answer that, Chris, or do you? Yeah, I think in general, it's good to have someone, at least one other person to work with a thing on, but you don't have to. And another way you could do this is reach out through the Gitter channel or, you know, in general, through Twitter and see if anyone else wants to to join you. But I think it's generally good to have just one other person you can bounce ideas off of, but you don't you don't have to. You can work on it individually. Yeah, and if the other part of that question is should the I think three different social science suggestions, should they all come together? My feeling is no, if there's three different teams that want to work on this, that's OK, as long as they all know about each other doing this, because it is a global sprint and these teams might come up with different types of examples to use and, you know, and maybe later on there could be an effort to combine them or something like that. But I think for the moment, it's pretty much a free for all. Just dive in there and find someone to work with on this. And if someone else is working on it in a different area of the world, then I think that's OK. You can either team up or just do it in parallel. And I think it'll work just as nicely doing it that way. So I think we've come to the end of the questions and the end of the time. So thank you, everyone, for joining us for the webinar today. And we really hope to see you at the sprint and just go to that Library Carpentry blog to find the links there to register and join the Gitter channel as well. OK, thank you. Bye. And thanks to all our presenters too. You guys. Thanks, everyone.


How to fit shapes and combo boxes perfectly into a cell? I think we'll do this one. How do you fit them perfectly? So you're creating a small tool. How do you fit your shapes and combo boxes perfectly into cells? This is quite useful. Let me show you how you do that. Let me assume that I want to create some combo boxes because I want to create a dashboard that really makes sense. So for example, look at this dashboard. Kind of nice, looks clean. But I want to put maybe a combo box. What's a combo box? What I'm going to say in a combo box. Let me show you what a combo box is. If I go to Developer, I can go to Insert. And there is this button here on the form control called Combo Box. It's quite a useful tool. I can come here and draw the tool. It's a shape that you could use it and put a list into this shape. And then you could drive your model or drive your reports from the items in that list. So if I draw it, it's fine. But if I want to fit it perfectly into a cell, let's assume I want to fit it perfectly into these two cells here. Just have to fit it perfectly based on the cells. I can just carry the box or I click it, drag the box where I want to fit it. And then when you go the way I want to fit it, go to the edge of the box and hold your Alt key. Once you get to the edge of any shape at all, any shape you get to the edge of the shape, hold your Alt key and your mouse button, and then drag. Once you drag, it's going to fit perfectly into any cell. Just automatically fit into the cell. Just by going to the edge of the shape, holding your Alt key and then your mouse button. If you drag and fit into cells perfectly, that way you could click that. You can make a copy of whatever shape you want and you could perfectly fit them so they're aesthetically beautiful and they're aesthetically pleasing, so to say. So you can fit them perfectly together by holding your Alt key. All I'm doing is I'm holding my Alt key and fitting them into cells. So eventually you build a tool like this. See how smart and neat it is? You're using the cells to fit them perfectly. So that's a nice shortcut. Thanks for watching another training video from DeepRound Consulting. See you in the next video.


The application software, an application software APP or application for short is computer software designed to perform a group of coordinated functions, tasks, or activities for the benefit of the user. Examples of an application include a word processor, a spread sheet, an accounting application, a web browser, a media player, an aeronautical flight simulator, a console game or a photo editor. The collective noun application software refers to all applications collectively. This contrasts with system software, which is mainly involved with running the computer. Applications may be bundled with the computer and its system software are published separately, and may be coded as proprietary, open source or university projects. Apps built for mobile platforms are called mobile apps.


That make you want to be great when you're around great. It's like I don't think the way and way really get his flowers Man, you know, we live in the community because he dress different now and this and that but I got three rings It's a hall of fame. Yeah, we on boss talk one-on-one.  Like yeah, I'm coming to Utah. I want to get you on my show. It's like cool But you know, it didn't line up because he was so busy. We said I tell you what I'm gonna invite you out to To my party mean CP3 So he invited me out. I go soon will I step in? everybody know From CP3 to Kevin Durant you name it all of them was there all of them know who I am Zion Mike Evans I got to him Dwayne Wade really really genuine show me love not only him his whole family. Oh, welcome in Gabriel Good people man, you know, you hear some of your story about man. No way. They're gonna be weird They might be but the mother rich You know, I'm saying I'm a super rich and you know, just a being around them working Yeah, I'm being around them and you know, just that's it rub off man Make you want to be great when you're around great It's like I don't think the way and way really get his flowers, man You know, we live in the community because he dress different now and this and that but I got three rings It's a hall of fame right so you can learn a lot from these type of people not only him just being around him He brought me into his world around everybody else this you know, his friends and so all the information so kapala that Working with them.    Why be mad exactly? It's love.  You you kind of know where you are Yeah, I'm going in here now with ambition and trying to figure it out to where I can make it make sense for my brand I know that's what you hear was that So what did you what did you do that you you know kind of I know didn't you interview with some did you do so? Yeah, yeah, so let's talk about that Gary Payton Gary Payton.


This is AWR-1 Joseph Jardina. So my job is a helicopter and naval air crewman. I find the back of the rescue swimmer. I am with HSM-35. Right now we're in the Java Sea, and we're on the USS Samson, DDG-102. We're here as part of the Indonesian-led search for the Air Asia flight. With four people in the helicopter, the two pilots up front will look up front. And then two crewmen in the back, one's a rescue swimmer, the other's a crew chief. We'll keep an eye out on either side and behind us. It's at 3 o'clock, 180 yards. For the parts of the aircraft, yes, we'll jump in. But for the remains, we'll let the boat handle that because we don't want the rotor wash destroying any part that could be identified. 3 o'clock, step, 2 to 3 o'clock. Out there at 3. Stay safe. Tell the boat, the boat will make best speeds to where our position is. Once the boat takes over, then we go back out and we keep searching. Honestly, I'm honored to be here. For myself having a family, I know that I would want closure. And to give those families closure, I'm proud to do that.


What else did you check for anything else? Yeah. Firebird 1, pressing 9-line medivac. Firebird 1, this is Weston. As leaders, we have to constantly challenge ourselves. You're constantly looking for the next professional development challenge. All the time you're looking for the next challenge. You're looking for the next opportunity. Whether it's easy or hard, you don't back away from it because you think it's going to be hard. You overcome it and then you do better. Being a part of this competition has allowed me to actually touch weapons systems, understand basic medical care under fire, combat casualty care, test my physical fitness amongst other soldiers and see if I still got it. I think it's a reward in and of itself to be able to test yourself, push yourself as hard as you can. I think just participation in this allows you to get better at some of the things that soldiers are expected to do. Being in this competition allows you to get back to soldiering and understanding level one tasks. A lot of these things are perishable skills. So if we should ever go out to the field and I should end up in a squad on a patrol at some point in the future, I would like to know these things. The reason I think that I should win the best war competition is I like to push myself, I like to do things right and that's what I want to do, that's what I've been trying to do. I think as long as I do it right, I'll be the winner. To see not just the soldiers perform at a high level but perform together at a high level, I think that's important and as soldiers, that cooperation that we have to have to drive forward and accomplish whatever the mission is in front of us, we all know that that is core and that is key.