<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: sabrinasuarezarrieta</title>
    <description>The latest articles on DEV Community by sabrinasuarezarrieta (@sabrinasuarezarrieta).</description>
    <link>https://dev.to/sabrinasuarezarrieta</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F459873%2F376350a2-7821-451e-8649-f77b9ded57dc.jpeg</url>
      <title>DEV Community: sabrinasuarezarrieta</title>
      <link>https://dev.to/sabrinasuarezarrieta</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sabrinasuarezarrieta"/>
    <language>en</language>
    <item>
      <title>¿Cuál es el papel de la informática en el desarrollo del sistema de salud en mi país?</title>
      <dc:creator>sabrinasuarezarrieta</dc:creator>
      <pubDate>Sat, 05 Dec 2020 21:47:05 +0000</pubDate>
      <link>https://dev.to/sabrinasuarezarrieta/cual-es-el-papel-de-la-informatica-en-el-desarrollo-del-sistema-de-salud-en-mi-pais-311b</link>
      <guid>https://dev.to/sabrinasuarezarrieta/cual-es-el-papel-de-la-informatica-en-el-desarrollo-del-sistema-de-salud-en-mi-pais-311b</guid>
      <description>&lt;p&gt;Nací y llevo los 26 años de mi vida como residente de un lindo país llamado Colombia, muchas personas han escuchado hablar del país por ser el segundo más biodiverso del mundo o tal vez por tener uno de los cafés más reconocidos, sin embargo, la mayoría han escuchado de nosotros por problemas de desigualdad, corrupción y violencia.&lt;/p&gt;

&lt;p&gt;Una de las consecuencias que tiene esta realidad es el mal servicio que se prestan en las entidades de salud, se pueden ver demoras en tratamientos de hasta 9 meses, se pueden ver negaciones en procedimientos que solo son materializados después de resolverse en tribunales a través de tutelas, pero uno de los peores y que a la mayoría de los ciudadanos han padecido, aunque no presenten enfermedades crónicas es las largas esperas en las salas de urgencias.&lt;/p&gt;

&lt;p&gt;Se estima que la mayoría de las salas de urgencias del país muestran una espera promedio entre 6 a 9 horas cuando los casos no se clasifican dentro del triage en las etapas I y II, y hay varias razones por las cuales se da este fenómeno, procedimientos poco claros, falta de estudio sobre los patrones de llegada de las urgencias y falta de comunicación entre los hospitales de las zonas.&lt;/p&gt;

&lt;p&gt;Pienso que con la tecnología llegaremos a mejorar cada uno de estos problemas de fondo, ¿Cuán distinto seria si se estudiaran los patrones de cada hospital y se designaran turnos del personal y recursos dependiendo de esos patrones?, ¿Cuánto más efectivo seria que el personal no debiera gastar tiempo valioso manejando las programaciones de los exámenes y la gestión de las salidas, sino que fueran procesos automáticos? ¿Cuan distinto no seria todo si como paciente, pudieses ver la ocupación de las distintas salas y tomar la decisión de ir a la menos congestionada? ¿Cuánto más cómodo seria para el paciente saber en cuanto tiempo será atendido y por quién?&lt;/p&gt;

&lt;p&gt;Llevo un semestre estudiando una maestria en ciencias de la información y durante el desarrollo de este semestre me he dado cuenta como todas estas son posibilidades que gracias a la informática tenemos, gracias a herramientas como la inteligencia de negocios, el BPM y la inteligencia artificial, podríamos tener una atención de urgencias de calidad, donde los recursos estuvieran bien utilizados y un modelo de completa transparencia buscando la excelencia en el cuidado.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>spanish</category>
    </item>
    <item>
      <title>Example of Stored Procedures in PostgreSQL</title>
      <dc:creator>sabrinasuarezarrieta</dc:creator>
      <pubDate>Fri, 04 Dec 2020 03:14:27 +0000</pubDate>
      <link>https://dev.to/sabrinasuarezarrieta/stored-procedures-in-postgresql-50mg</link>
      <guid>https://dev.to/sabrinasuarezarrieta/stored-procedures-in-postgresql-50mg</guid>
      <description>&lt;p&gt;A stored procedure is a set of Structured Query Language (SQL) statements with an assigned name, which is stored in a relational database management system as a group, so it can be reused as many time is called. Aditional is not mandatory that the stored procedure have an output.&lt;/p&gt;

&lt;p&gt;I am going to provide an example to understand how it works, in this example, we have one table in which we save the enrollment of some students to one group of some subjects.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE TABLE inscription(
    cod_student INTEGER NOT NULL,
    cod_subject SMALLINT NOT NULL,
    group SMALLINT NOT NULL
);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We need to create a stored procedure that allows us to know which is the group with the least amount of students enrolled to enrol the new student that we are providing.&lt;/p&gt;

&lt;p&gt;In this case, we have 2 groups for the subject 1001,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;select cod_subject, group, count(*) 
  from inscription i2  
  where cod_subject = 1001
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fjscz8cehpo7hrhu4hyty.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fjscz8cehpo7hrhu4hyty.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And we will create our stored procedure like this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;create or replace procedure assign_group(
   student int,
   subject int
)  
language plpgsql    
as $$
declare
    chosenGroup int;
begin

    chosenGroup := (select grupo from (select cod_a,grupo,count(*) 
                from inscribe i2  
                    where cod_a = asignatura group by cod_a , grupo 
                order by count(*) asc limit 1 ) gru_men);


    insert into inscription(cod_student , cod_subject , group) 
               values (student, subject, chosenGroup );

    commit;
end;$$
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So let's define the syntax:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;specify the name of the stored procedure after the create procedure keywords.&lt;/li&gt;
&lt;li&gt;define parameters for the stored procedure. A stored procedure can accept zero or more parameters.&lt;/li&gt;
&lt;li&gt;specify plpgsql as the procedural language for the stored procedure (you could use other procedural languages for the stored procedure).&lt;/li&gt;
&lt;li&gt;use the dollar-quoted string constant syntax to define the body of the stored procedure.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Finally, when I call the procedure (&lt;strong&gt;call assign_group(1457855, 1001)&lt;/strong&gt;) the new student will be enrolled in group 2 because has the least amount of students.&lt;/p&gt;

&lt;p&gt;I hope this will be useful and Thank you so much for reading.&lt;/p&gt;

</description>
      <category>postgres</category>
      <category>sql</category>
      <category>beginners</category>
    </item>
    <item>
      <title>BPM - why is it a great discipline for an organization?</title>
      <dc:creator>sabrinasuarezarrieta</dc:creator>
      <pubDate>Sat, 28 Nov 2020 16:01:40 +0000</pubDate>
      <link>https://dev.to/sabrinasuarezarrieta/bpm-why-is-it-a-great-discipline-for-an-organization-510b</link>
      <guid>https://dev.to/sabrinasuarezarrieta/bpm-why-is-it-a-great-discipline-for-an-organization-510b</guid>
      <description>&lt;p&gt;At first, when I started working in the company where I work, I really did not understand what was BPM and now I want to share my experience with it of 2 years. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;“&lt;a href="https://bpm.com/what-is-bpm" rel="noopener noreferrer"&gt;Business Process Management (BPM)&lt;/a&gt; is a discipline involving any combination of modelling, automation, execution, control, measurement and optimization of business activity flows, in support of enterprise goals, spanning systems, employees, customers and partners within and beyond the enterprise boundaries.”&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As the definition says BPM is a discipline and nothing has to do with the tool that you use to support it. Almost all companies model and execute processes to ensure the quality of their products or services and the resources used to achieve the objectives. A person doing BPM must consider a process at the scope of interrelated business activities which holistically cooperate to fulfil a business objective. &lt;/p&gt;

&lt;p&gt;The principal benefits of using a BPM tool in my opinion are 2:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The universality in the notation of the definition of processes, any person that understands the BPM notation is capable of seeing your process and without much studying can comprehend it.&lt;/li&gt;
&lt;li&gt;All the information is digitized which means that is easier to manage and create statistics turning information into knowledge that can support decision-making&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And I have to say that there are a variety of BPM tools that your company could use like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Progress Savvion BPM
- Intalio&lt;/li&gt;
&lt;li&gt;IBM Business Process Manager &lt;/li&gt;
&lt;li&gt;Oracle Business Process Management Suite. 
But all of them have very similar or even the same notation so.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted to give you a little example of how simple can be a process but how meaningful could be the correct management of the information obtained. In this case, we are going to model the process of performance evaluation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fwvtwlrz6q4ya82l45c9k.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fwvtwlrz6q4ya82l45c9k.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this simple example, we can see how first the leader decides to begin the employee's performance evaluation, and the first step is the self-assessment by the employee and next, the evaluation by the leader, this simple process can be overwhelming when the number of employees depending on one leader is more than 20 but is even worse try to analyze that information.&lt;/p&gt;

&lt;p&gt;With the BPM tool we have all the information in the databases and is easier to have statistics like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;which was the one that got the best score&lt;/li&gt;
&lt;li&gt;what was the area when people exceed expectation&lt;/li&gt;
&lt;li&gt;Or at the contrary, what was the worst-rated question and how the leader is going to help people to go better?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With this simple example, I just wanted to show that the benefits of BPM implementations aren't just for big companies, a little process can see the added value and can help the company to improve.&lt;/p&gt;

&lt;p&gt;I hope that after reading this you could be less intimidate when you hear the term BPM, thank you so much for reading and have an excellent day!!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Send information from Child to Parent - Callbacks in react</title>
      <dc:creator>sabrinasuarezarrieta</dc:creator>
      <pubDate>Sat, 28 Nov 2020 02:09:32 +0000</pubDate>
      <link>https://dev.to/sabrinasuarezarrieta/send-information-from-child-to-parent-callbacks-in-react-471k</link>
      <guid>https://dev.to/sabrinasuarezarrieta/send-information-from-child-to-parent-callbacks-in-react-471k</guid>
      <description>&lt;p&gt;Passing data between components of different levels is important and also a trickier thing to do in Reactjs. The data flow from parent to child is easier and really straight forward, is just about using the props but from child to parent can be a little bit trickier and I see how can confuse some developers. &lt;/p&gt;

&lt;p&gt;The first thing you have to do is create a callback function in the Parent to take in the parameter that you have accessed from the child and send the callback function to the Child as a prop.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Component&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;ChildComponent&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./child-component/child-component&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nx"&gt;Parent&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nx"&gt;Component&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

&lt;span class="kd"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;super&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;
        &lt;span class="p"&gt;};&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;modifyMessage&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt;

 &lt;span class="nx"&gt;render&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
                 &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;ChildComponent&lt;/span&gt; &lt;span class="nx"&gt;parentCallback&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;modifyMessage&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;                 &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;h1&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/h1&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;        &lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After doing this, in the Child we need to pass the data using this.props.callback(dataToParent), in this case, the event is sent at the click of the button in the page.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Component&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nx"&gt;Child&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nx"&gt;Component&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

&lt;span class="kd"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;super&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;handleClick&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;parentCallback&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;wow you click the child component&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

 &lt;span class="nx"&gt;render&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
                 &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;button&lt;/span&gt; &lt;span class="nx"&gt;onClick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;handleClick&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Click&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt; &lt;span class="nx"&gt;child&lt;/span&gt;&lt;span class="o"&gt;!&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/button&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;        &lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When the button of Child is clicked, it triggered the ‘modifyMessage’ in Parent and set the message as “wow you click the child component”. We set in the state because if we do not do it like that we could not be able to use the data outside the function.&lt;/p&gt;

&lt;p&gt;I hope this example will be useful for all of you, Thank you very much for reading and I wish you a nice day!!&lt;/p&gt;

</description>
      <category>react</category>
    </item>
    <item>
      <title>How to show specific information to specific users in Postgress</title>
      <dc:creator>sabrinasuarezarrieta</dc:creator>
      <pubDate>Fri, 27 Nov 2020 03:22:31 +0000</pubDate>
      <link>https://dev.to/sabrinasuarezarrieta/how-to-show-specific-information-to-specific-users-in-postgress-p6b</link>
      <guid>https://dev.to/sabrinasuarezarrieta/how-to-show-specific-information-to-specific-users-in-postgress-p6b</guid>
      <description>&lt;p&gt;In the first place, we need to define a view, A view is a database object that is of a stored query. A view can be accessed as a virtual table in PostgreSQL. In other words, a PostgreSQL view is a logical table that represents data of one or more underlying tables through a SELECT statement. &lt;br&gt;
For this example, we are going to allow students to see their grades for their subjects but we do not want that they can see the grades of their classmates, so we will construct a view where the condition validates the user that is logged in.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE VIEW student_view AS
select e.code, e.name, i.code_subject , s.name_subject , i.n1 , i.n2, i.n3 
, ((coalesce(n1, 0))*.35+(coalesce(n2, 0))*.35+(coalesce(n3, 0))*.30) finalNote
from suscribe i
natural join student e 
natural join subject s
where cod_e::text = current_user
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, we need to define a group role which will have permission only to see the information in the view previously created.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE ROLE students;

GRANT SELECT ON student_view TO students;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The last step is to create with login the users of our students and grant them group students permissions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE ROLE "200001"
LOGIN 
PASSWORD '200001';

GRANT students TO "200001";
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When the user 200001 log in into the database only the information from the view will be shown as you can see in the example.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ff1g5s92trrsoipfh9vvv.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ff1g5s92trrsoipfh9vvv.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally, I want to recommend to you guys the user of &lt;a href="https://dbeaver.io/" rel="noopener noreferrer"&gt;DBeaver&lt;/a&gt; is a free multi-platform database tool for database administrators and allows to have multiple connections to the same database with different users in a really simple way for PostgreSQL (easier than pgAdmin 4 )&lt;/p&gt;

&lt;p&gt;Thank you so much for reading and I hope this information will be helpful to you!!&lt;/p&gt;

</description>
      <category>postgres</category>
    </item>
    <item>
      <title>Exercises to boost your communication skills 💬</title>
      <dc:creator>sabrinasuarezarrieta</dc:creator>
      <pubDate>Thu, 26 Nov 2020 20:28:43 +0000</pubDate>
      <link>https://dev.to/sabrinasuarezarrieta/exercises-to-boost-your-communication-skills-38j5</link>
      <guid>https://dev.to/sabrinasuarezarrieta/exercises-to-boost-your-communication-skills-38j5</guid>
      <description>&lt;p&gt;Hello everybody in my last post I talked about how to exceed expectations in a work environment and one of the key elements that I talked about was the soft skills, especially the assertive communication.&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/sabrinasuarezarrieta" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F459873%2F376350a2-7821-451e-8649-f77b9ded57dc.jpeg" alt="sabrinasuarezarrieta"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/sabrinasuarezarrieta/how-to-exceed-expectations-in-your-first-job-3ofo" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to exceed expectations in your first job ? 👨‍💻👩‍💻🥇&lt;/h2&gt;
      &lt;h3&gt;sabrinasuarezarrieta ・ Nov 26 '20&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#career&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;But someone in my office said: "Ok, I know that my communication skills are not the strongest but, how can I improve?" So for you friends that are in that same situation I wanted to give you these 5 activities that you could try to improve.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1. Create presentations&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This is going to sound like a total nerd thing to do, but I encourage you to make presentations, where your audience will be people in which you trust and you want to hear their criticism, in my case, were my parents and sibling, don't have to be presentations about software, I actually presented subjects like sustainability, personal finance, and so on, but the important thing is that you see if your audience is understanding the subject that you are presenting (that defines how good you are to communicate).&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2. Teach something to a group&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;I have been involved in an NGO for 7 years, in this NGO we work with teenagers and I had the pleasure to teach my own dance workshop, and yes the first few lessons were a little uncomfortable for everyone but 6 lessons later I sounded like a totally different person, I was able to give instructions with clarity, never use buzzwords and the most important I was standing with confidence when I was talking, the best is that you could do the same thing in wherever place that you are, your school, NGO, church, neighbourhood, does not matter, somewhere someone will be happy to learn something that you can teach, and you will be exercising constantly your speak in public abilities.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3. Create your blog&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Part of the communication is writing and there's no more reliable way to get better than practising, platforms like this allow you to share and connect with people and all through your writing. But I understand that not everybody feels comfortable exposing their ideas so if you are a little shy you could write and not publish, just share it with 2 or 3 friends of confidence that could give you their feedback (part of growing is hear and acknowledge constructive criticism).&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4. Learn a lot&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Even if you are going to ask about something you have a different attitude when you have been reading about that subject, you feel more comfortable talking about it and can give different and interesting points of view from the subject when you know it.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;5. Make the hard question&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This is for the risky ones, you need to ask as many people you feel comfortable "In my normal life, how you perceive my communications skills?" the responses could be hard to hear but if the people are honest this is going to be game-changer for you. You could be the smartest and give the best facts but if you do not know how to make people want to listen to you, that knowledge is going to waste, if you hear things like "aggressiveness" or "lack of empathy" or even "when you talk I feel a little bored" people are giving you points in which you could do better so feel grateful and motivated because now you know and you can improve.&lt;/p&gt;

&lt;p&gt;Last I want to say thank you very much for reading and I wish you all a happy day!!&lt;/p&gt;

</description>
      <category>career</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How to exceed expectations in your first job ? 👨‍💻👩‍💻🥇</title>
      <dc:creator>sabrinasuarezarrieta</dc:creator>
      <pubDate>Thu, 26 Nov 2020 18:22:08 +0000</pubDate>
      <link>https://dev.to/sabrinasuarezarrieta/how-to-exceed-expectations-in-your-first-job-3ofo</link>
      <guid>https://dev.to/sabrinasuarezarrieta/how-to-exceed-expectations-in-your-first-job-3ofo</guid>
      <description>&lt;p&gt;I have been in this industry for 5 almost 6 years, and I have seen a bunch of newbies and I was one myself, so I wanted to share the most important things that I have seen that the best have in common (besides the obvious ... study and practice your technical skills), and what you can do to be remembered in your first job as an incredible newbie (I would have loved to know this in my time).&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Honesty honesty honesty&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;I have seen people at all levels make the mistake of lie or hide information, so don't be one of them, and even if you are for the most part an honest person you could say something like "Yes I understood", or "Yes, I know how to do it" when is not true just for the feeling of being inadequate (and is sad because everybody needs help once in a while and there is no shame in that). But hey you are a newbie nobody expects that you know everything but is really bad if people feel that can not trust in your word.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Work in those soft skills&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;I know that most people think that the most important thing is what you know, and I am not saying isn't important but stay with me for a minute, all our technical knowledge in one point is going to be obsolete (if you don't believe me ask my dad who learned to program in the punched card era), but how is he able to work today?? well because of his attitude. &lt;a href="https://www.childtrends.org/wp-content/uploads/2015/06/2015-24WFCSoftSkills1.pdf"&gt;Soft skills&lt;/a&gt; are a combination of people skills, social skills, communication skills, character or personality traits, attitudes, career attributes, social intelligence and emotional intelligence quotients, among others, that enable people to navigate their environment, work well with others, perform well, and achieve their goals with complementing hard skills. The 5 that are key in my opinion are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Communication: oral speaking capability, be really clear in your speech &amp;amp; writing.&lt;/li&gt;
&lt;li&gt;Flexibility: adaptability, willing to change, lifelong learner, you need to be teachable.&lt;/li&gt;
&lt;li&gt;Work ethic: hard-working, willing to work and self-motivated.&lt;/li&gt;
&lt;li&gt;Positive attitude: optimistic, enthusiastic, encouraging.&lt;/li&gt;
&lt;li&gt;Teamwork: cooperative, gets along with others, agreeable, the most important thing is to be collaborative.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I encourage you to try to be that person with whom you would like to work, the technical knowledge that you may lack is easier to learn once that you gained good team support.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Put yourself out there ... but land with a good match&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Do not accept a job offer if you are not comfortable with the abilities that are required for that job, for example, if all that you have been learning at the university is front-end and is what you like, do not accept as your first job a backend position, you will feel inadequate the majority of the time and your spirit could be hurt, in this first few months working you need to gain confidence, then some risks and get out of the comfort zone could be necessary but be kind with yourself at the beginning and find a good match between the company requirements and what you feel comfortable to offer.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Find a mentor&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;I could not emphasize this enough, find someone with high seniority, that you admire and just invite them a cup of coffee, ask for advice on how to grow your knowledge and how you could help the team you belong to, that attitude of curiosity and service is always appreciated. I need to add something that is important this tip does not encourage you to be a bootlicker, nobody likes a bootlicker, so let things happen organically and smooth 😎&lt;/p&gt;

&lt;p&gt;I hope these tips are helpful and for you newbies, I want to tell you that you are the fresh air of an office, you are refreshing and let us explore our ability to teach and learn from you, so never feel discouraged, you are great, you are amazing and the companies could not prosper without your young talent, thank all of you for reading and I wish you happy coding.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
    </item>
    <item>
      <title>Kanban - a brief description and history</title>
      <dc:creator>sabrinasuarezarrieta</dc:creator>
      <pubDate>Thu, 26 Nov 2020 03:56:05 +0000</pubDate>
      <link>https://dev.to/sabrinasuarezarrieta/kanban-a-brief-description-and-history-45mk</link>
      <guid>https://dev.to/sabrinasuarezarrieta/kanban-a-brief-description-and-history-45mk</guid>
      <description>&lt;p&gt;We can define Kanban applied to agile project management, as the techniques of visual representation of information to improve the efficiency in the execution of the tasks of a project, but this wasn't its origin. The Japanese term Kanban, was applied by Taiichi Onho (Toyota), to refer to the display system used in the production processes that coordinate in an assembly line the delivery of each part on time at the moment it is needed.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;History&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;At the end of the 1940s, Toyota implemented the "just in time" system in its production, which actually represents a drag system. This means that production is based on customer demand and not on the traditional “pull” practice of making products and trying to sell them on the market.&lt;br&gt;
Its exclusive production system laid the foundations for Lean Manufacturing ("lean production"). Its fundamental purpose is to minimize waste without affecting production. The main objective is to create more value for the customer without generating more expenses.&lt;br&gt;
In the early 21st century, the software industry realized that Kanban could make a real change in the way products and services were produced and delivered. Kanban was proven to be suitable not only for the automotive industry but also for any other type of industry. This is how the Kanban method was born.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How it works&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Kanban works around 6 practices&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Visualize the workflow&lt;/strong&gt;
To visualize your process in Kanban, you will need a board with cards and columns. Each column on the dashboard represents a step in your workflow. Each Kanban card represents a work item. You can have as many columns as you workflow require.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fp8hyoskvh6bbre242clk.jpg" alt="Alt Text"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Eliminate interruptions&lt;/strong&gt;
Changing focus can seriously damage your process, and multitasking (or multitasking) could lead to waste. This is the reason why the second Kanban practice focuses on establishing the limits of the work in process (the WIP limits). It establishes a max number of activities by each stage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manage the flow&lt;/strong&gt;
The idea is to create a continuous and uninterrupted flow. By flow, we mean the movement of work items through the production process in a sustainable rhythm. What matters is the continuity of the movement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make Policies Explicit (Promote Visibility)&lt;/strong&gt;
You cannot do well something that is not understood. This is the reason why the process must be well defined, published and promoted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Feedback loops&lt;/strong&gt;
The Lean philosophy admits that regular meetings are necessary for knowledge transfer. These meetings are for service delivery review, operations review, and risk review. Their frequency depends on many factors, but the idea is that they are regular, at a strictly fixed time, straight to the point and never unnecessarily long.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What is the difference with Scrum?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Well here I want to share some differences between the 2 disciplines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scrum prescribes roles, kanban does not.&lt;/li&gt;
&lt;li&gt;Scrum works with fixed time iterations, Kanban is more event-driven.&lt;/li&gt;
&lt;li&gt;Scrum limits the WIP per iteration, kanban limits the WIP per workflow state.&lt;/li&gt;
&lt;li&gt;Scrum teams are multidisciplinary, in kanban they can be specialists.&lt;/li&gt;
&lt;li&gt;In scrum, the product stack must be at least one sprint long. In kanban, you must pay attention to the rhythm of task dragging.&lt;/li&gt;
&lt;li&gt;In scrum, stories and tasks must be estimated and speed calculated, kanban does not measure that tight the speed.&lt;/li&gt;
&lt;li&gt;Scrum needs a prioritized product stack, in kanban, it is the next story or task dragged from the customer.&lt;/li&gt;
&lt;li&gt;Scrum prescribes daily meetings, kanban does not.&lt;/li&gt;
&lt;li&gt;Scrum uses burndown diagrams, kanban does not.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The majority of the information I investigate in the &lt;a href="https://scrummanager.net/files/scrum_manager_en.pdf" rel="noopener noreferrer"&gt;Scrum Manager Body of Knowledge&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At last, I just want to say that one isn't better than the other, everything depends on the specific necessities of your project and your team, but I hope this post will be helpful for someone who is beginning the search and thank you very much for reading&lt;/p&gt;

</description>
      <category>productivity</category>
    </item>
    <item>
      <title>Developer world as a woman 👩‍💻</title>
      <dc:creator>sabrinasuarezarrieta</dc:creator>
      <pubDate>Thu, 19 Nov 2020 16:05:27 +0000</pubDate>
      <link>https://dev.to/sabrinasuarezarrieta/developer-world-as-a-woman-2h6l</link>
      <guid>https://dev.to/sabrinasuarezarrieta/developer-world-as-a-woman-2h6l</guid>
      <description>&lt;p&gt;I'm a 26-year-old woman who works as a developer since 2016 that's 5 years in this world and in this time despite I've worked in 3 different companies and known hundreds of developers I've only found a few dozens who are women. Actually, at this moment in my company, I work in an area where there are 50 developers of which only 2 are women, the strangest thing is that in the others areas this isn't the norm.&lt;/p&gt;

&lt;p&gt;Since I began university and I saw only 10 girls in a class of 80, I knew that I wouldn't be working with a lot of girls, but in my work life I only saw the pattern even more marked, and from a few years I've been asking myself why this situation repeat in each company that I work, and the truth is that I have no idea, but in this post, I want to tell you my experience and debunk some really misleading ideas that I've heard.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;You need to lose your femininity because you need to be hard if you don't they won't respect you&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Absolutely false !! actually, I've found that my point of view is really appreciated and respected by my colleges without me having to take an aggressive attitude, and in some moments where tempers are too high I can help to calm down the environment and facilitate conversations and compromise, I think that if you give respect you will be respected, especially if you have good ideas and know how to communicate.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The guys won't help you because they think that women don't know how to code&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Again .... False, I have been honoured by knowing amazing, caring and talented men from which I've learned a lot, and the thing is that they don't assume because of my gender because I don't let them, I'm always trying to be prepared and inform and when I don't know something I speak very clear that I don't, and the thing is that's ok, and they are generous with their knowledge and time, but you always have to appreciate that gift and honour it putting all your effort to learn and improve.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Code is too hard&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Well yes, but no, if you put your effort you can do anything you intend so I invite you to not be intimidated and at least give it a try, you won't regret it, at least if coding isn't something that you enjoy, you have the satisfaction that you achieve something that you taught that you couldn't be able to. I read this somewhere and it has always stuck with me (I don't know who the author is).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;If a human created it, as a human I can understand it&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;At last, I want to say that I write from my experience and I want to say thank you to all of my amazing colleges and friends who make this work my dream world, and I want to hear your experiences and maybe inspire more women to take this amazing path.&lt;/p&gt;

</description>
      <category>womenintech</category>
      <category>discuss</category>
      <category>career</category>
    </item>
    <item>
      <title>LocalStorage and SessionStorage cheat sheet</title>
      <dc:creator>sabrinasuarezarrieta</dc:creator>
      <pubDate>Tue, 17 Nov 2020 21:45:04 +0000</pubDate>
      <link>https://dev.to/sabrinasuarezarrieta/localstorage-and-sessionstorage-cheat-sheet-28i3</link>
      <guid>https://dev.to/sabrinasuarezarrieta/localstorage-and-sessionstorage-cheat-sheet-28i3</guid>
      <description>&lt;p&gt;LocalStorage and SessionSorage are the features that support current browsers thanks to HTML 5 to save information on the client-side. We keep this information like the behaviour of a dictionary, that is, Key and Value. Everything saved turns out to be a string. Unlike cookies, this information is only persisted on the client-side and is never sent in each request made by our application.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;LocalStorage&lt;/em&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Data is shared between all tabs and windows from the same origin.&lt;/li&gt;
&lt;li&gt;The data will not expire. It will remain even after browser restart and survive OS reboot too.&lt;/li&gt;
&lt;li&gt;Limits the size of data you can store (~5MB across all major browsers).
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;//Set the value in a local storage object&lt;/span&gt;
&lt;span class="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;setItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;myName&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;//Get the value from storage object&lt;/span&gt;
&lt;span class="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;//Delete the value from local storage object&lt;/span&gt;
&lt;span class="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;removeItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c1"&gt;//Delete specifice obeject from local storege&lt;/span&gt;
&lt;span class="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;clear&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="c1"&gt;//Delete all from local storege&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;em&gt;SessionStorage&lt;/em&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The sessionStorage exists only within the current browser tab. Another tab with the same page will have different session storage.&lt;/li&gt;
&lt;li&gt;It is shared between iframes in the same tab (assuming they come from the same origin).&lt;/li&gt;
&lt;li&gt;The data survives page refresh, but not closing/opening the tab.&lt;/li&gt;
&lt;li&gt;Limits the size of data you can store (5MB to 10MB).
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;//Set the value in a session storage object&lt;/span&gt;
&lt;span class="nx"&gt;sessionStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;setItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;myName&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;//Get the value from storage object&lt;/span&gt;
&lt;span class="nx"&gt;sessionStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;//Delete the value from session storage object&lt;/span&gt;
&lt;span class="nx"&gt;sessionStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;removeItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c1"&gt;//Delete specifice obeject from local storege&lt;/span&gt;
&lt;span class="nx"&gt;sessionStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;clear&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="c1"&gt;//Delete all from session storage&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finally, this is a cheat sheet but I have to clarify something ... unless you need to save information that &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is not at all sensitive&lt;/li&gt;
&lt;li&gt;Doesn’t need to be used in an ultra-high-performance app&lt;/li&gt;
&lt;li&gt;Isn’t larger than 5MB.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I don't recommend you to use any of this storages, and I will encourage you to read this post about it, because there are better options out there for your necessities.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.rdegges.com/2018/please-stop-using-local-storage/"&gt;Please Stop Using Local Storage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I wish you all lots of success and thank you for reading!!!&lt;/p&gt;

</description>
      <category>react</category>
      <category>programming</category>
    </item>
    <item>
      <title>Consume a REST API With Axios Client React</title>
      <dc:creator>sabrinasuarezarrieta</dc:creator>
      <pubDate>Tue, 17 Nov 2020 20:43:15 +0000</pubDate>
      <link>https://dev.to/sabrinasuarezarrieta/consume-a-rest-api-with-axios-client-react-1o0e</link>
      <guid>https://dev.to/sabrinasuarezarrieta/consume-a-rest-api-with-axios-client-react-1o0e</guid>
      <description>&lt;p&gt;APIs are what we can use to feed our React applications with data. APIs consist of a set of data, that is often in JSON format with specified endpoints. When we access data from an API, we want to access specific endpoints within that API framework. We can also say that an API is a contractual agreement between two services over the shape of request and response. The code is just a byproduct. It also contains the terms of this data exchange.&lt;/p&gt;

&lt;p&gt;Axios is an easy to use promise-based HTTP client for the browser and node.js. Since Axios is promise-based, we can take advantage of async and await for more readable and asynchronous code. In this example, I'm going to show a list of crops that the user must water and how I get that list from an API.&lt;/p&gt;

&lt;p&gt;First, we are going to import &lt;a href="https://www.npmjs.com/package/axios"&gt;Axios&lt;/a&gt; in our project, in this case, I use npm&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install axios
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, we define a service file where we are going to define the call to the service.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;axios&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;axios&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;urlBase&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://back-project.herokuapp.com/&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="c1"&gt;//Obtener informacion feedback&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;getCrops&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;code&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;axios&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kd"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;urlBase&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;crops/list/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;code&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;then&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;PrincipalService&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;getCrops&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And in the component file, we call our service from a function and set our list of crops in the state to use the times we need.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;getAllCropsByUser&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;PrincipalService&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getCrops&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
           &lt;span class="c1"&gt;//setIsLoading(false)&lt;/span&gt;
           &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
              &lt;span class="na"&gt;crops&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;crops&lt;/span&gt;
           &lt;span class="p"&gt;});&lt;/span&gt;
        &lt;span class="p"&gt;});&lt;/span&gt;        
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Axios also provides a set of shorthand method for performing different HTTP requests. The Methods are:&lt;br&gt;
axios.request(config)&lt;br&gt;
axios.get(url[, config])&lt;br&gt;
axios.delete(url[, config])&lt;br&gt;
axios.head(url[, config])&lt;br&gt;
axios.options(url[, config])&lt;br&gt;
axios.post(url[, data[, config]])&lt;br&gt;
axios.put(url[, data[, config]])&lt;br&gt;
axios.patch(url[, data[, config]])&lt;/p&gt;

&lt;p&gt;Thank you soo much for reading and I hope this information will be helpful for all of you&lt;/p&gt;

</description>
      <category>react</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Why apply SOLID principles make your code quality, match ISO Standard 25010</title>
      <dc:creator>sabrinasuarezarrieta</dc:creator>
      <pubDate>Thu, 12 Nov 2020 17:37:06 +0000</pubDate>
      <link>https://dev.to/sabrinasuarezarrieta/why-apply-solid-principles-make-your-code-quality-match-iso-standard-25010-65g</link>
      <guid>https://dev.to/sabrinasuarezarrieta/why-apply-solid-principles-make-your-code-quality-match-iso-standard-25010-65g</guid>
      <description>&lt;p&gt;As per ISO 25010 (SQUARE) standards, Software quality can be defined, managed and measured in terms of following two broad categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quality in Use: Relates to the outcome of human interaction with the software&lt;/li&gt;
&lt;li&gt;Product Quality: Relates to the static &amp;amp; dynamic properties of the software&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;According to ISO 25010 (SQUARE) standards, the following are 8 different characteristics defined as part of Product Quality:&lt;/p&gt;

&lt;p&gt;Functional Suitability&lt;br&gt;
Maintainability&lt;br&gt;
Usability&lt;br&gt;
Performance Efficiency&lt;br&gt;
Security&lt;br&gt;
Reliability&lt;br&gt;
Compatibility&lt;br&gt;
Portability&lt;/p&gt;

&lt;h3&gt;
  
  
  Maintainability
&lt;/h3&gt;

&lt;p&gt;This is one of the characteristics in which the developers have full control and responsibility and it's because Maintainability is related with ease with which code could be changed and maintained. In relation to maintainability, developers need to be aware of following key design/code characteristics (as per ISO 25010) and make sure that their design and code addresses them:&lt;/p&gt;

&lt;p&gt;Modularity&lt;br&gt;
Reusability/Cohesiveness&lt;br&gt;
Testability&lt;br&gt;
Analysability&lt;br&gt;
Modifiability&lt;/p&gt;

&lt;p&gt;And the curious thing is that modularity is the one thing that we hope to achieve applying object-oriented principles such as SOLID (primarily, Single Responsibility Principle (SRP)), implementing SOLID not only ensures modularity, also guarantees the analysability because at being modulable will be simpler to understand the functions and the reusability at creating small and with unique responsibility modules which can easily be used by various other modules.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
