<?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: Juan De los santos</title>
    <description>The latest articles on DEV Community by Juan De los santos (@jjsantos).</description>
    <link>https://dev.to/jjsantos</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%2F52672%2Fcbc6a9f9-30a7-4a9f-86d4-624bf46e7247.jpg</url>
      <title>DEV Community: Juan De los santos</title>
      <link>https://dev.to/jjsantos</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jjsantos"/>
    <language>en</language>
    <item>
      <title>Running Django on an iPad</title>
      <dc:creator>Juan De los santos</dc:creator>
      <pubDate>Thu, 26 Nov 2020 22:52:00 +0000</pubDate>
      <link>https://dev.to/jjsantos/running-django-on-an-ipad-20kb</link>
      <guid>https://dev.to/jjsantos/running-django-on-an-ipad-20kb</guid>
      <description>&lt;p&gt;A few months ago I just convinced myself about not needing a PC on my daily basis, so since then I’ve been using my iPad for all the work-related stuff that I have to do such as interviews to QA candidates, create test cases and status reports and even coding for personal projects, and about this last one is what I want to tell you on this article.&lt;/p&gt;

&lt;p&gt;I started learning Django a couple of weeks before I started this challenge, but when I decided to put my knowledge into practice I couldn’t find a bug-less article online that helped me to set that up on the iPad. So, after a little research on a couple of forums I kind of merge that knowledge together and I was able to get it working properly and without any issues (So far..), let’s jump into how I made it.&lt;/p&gt;

&lt;p&gt;Here are the things we are going to need:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Pythonista-&amp;gt;&lt;/strong&gt; A python IDE that will allow us to read, write and execute our code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;StaSH-&amp;gt;&lt;/strong&gt; Is a Bash-like shell for Pythonista that will enable us to use the pip commands.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The first thing we are going to do is download “Pythonista 3” from the Apple Store, this app cost $9.99 and by the time I’m writing this article it is the only app that supports Django and other advanced development features.&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%2Fo3841s4ng7urfuq3dk84.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%2Fo3841s4ng7urfuq3dk84.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you have downloaded the app, we need to install StaSH, this is because Pythonista does not support the pip command natively and we'll need that to install Django.&lt;/p&gt;

&lt;p&gt;To install StaSH, launch Pythonista, click on the (+) in the bottom-left of the screen.&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%2Foi7gbqn702l9fj3wdmfx.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%2Foi7gbqn702l9fj3wdmfx.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then create a Python file. &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%2Frn2eb0f492jjd0b1fk6c.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%2Frn2eb0f492jjd0b1fk6c.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
In the file that you just made, copy and paste the following command:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nf"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;http://bit.ly/get-stash&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


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

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;I recommend that you copy and paste the commands because sometimes the autocorrection just makes the execution to fail even if it looks "the same".&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After adding the command, click on the Play button on the top of the screen, if the command is ok then Pythonista will start to download StaSH. &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%2Fwx24nu9e0s62wqcerrb6.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%2Fwx24nu9e0s62wqcerrb6.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When the download is completed, re-start Pythonista by closing the app (don’t let the app in background) and open it again. To validate that the installation was successful, inside Pythonista go to “This iPad”, and there should be a file named launch_stash.py.&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%2Fb7t0u14q1dxd1jw4hzq2.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%2Fb7t0u14q1dxd1jw4hzq2.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The last thing at this point is to download Django and create a test project; For that, Open the file launch_stash.py and click on the play button, this action will launch the StaSH shell where we can use the pip command.&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%2Frtk6pwvq6qe8g8yauxvx.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%2Frtk6pwvq6qe8g8yauxvx.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the StaSH shell, type the following command to download Django and hit “return” on your keyboard.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="n"&gt;pip&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="n"&gt;Django&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mf"&gt;3.0&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;


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

&lt;/div&gt;

&lt;p&gt;This will start downloading the Django version that you specified and will install it on Pythonista.&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%2Fkfqq0uhfgl1g2d94l0g2.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%2Fkfqq0uhfgl1g2d94l0g2.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the installation process is completed, re-start Pythonista again.&lt;/p&gt;

&lt;p&gt;Now to create and start our first Django project on an iPad, launch the staSH shell, and type or copy the following command:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="n"&gt;django&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;admin&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;py&lt;/span&gt; &lt;span class="n"&gt;startproject&lt;/span&gt; &lt;span class="n"&gt;DemoApp&lt;/span&gt;


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

&lt;/div&gt;

&lt;p&gt;After running this command a new directory with the name &lt;strong&gt;“DemoApp”&lt;/strong&gt; will be created in the folder “This iPad”.&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%2Fel1x9du1pllirs5mh9zo.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%2Fel1x9du1pllirs5mh9zo.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally to run our &lt;strong&gt;“DemoApp”&lt;/strong&gt; project, re-start Pythonista (yes, again), go inside the project directory, open the &lt;strong&gt;“manage.py”&lt;/strong&gt; file, hold the play button on the top of the screen and on the new field displayed paste the following code and hit the “Run” action on the top-right of the screen:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="n"&gt;runserver&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;noreload&lt;/span&gt;


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

&lt;/div&gt;

&lt;p&gt;And finally, after that action Pythonista will launch the local server with the project that we just made and now you can type the IP for your local server in your browser and you will see the Django app running.&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%2Fq2f3ahray34axoi4auya.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%2Fq2f3ahray34axoi4auya.png" alt="Alt Text"&gt;&lt;/a&gt;&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%2F6xuyoqbir5m3zl6wfd1l.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%2F6xuyoqbir5m3zl6wfd1l.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The only complaint I have about this tool (Pythonista), is that I have to re-start the app after every installation, but that’s not a big deal to me.&lt;/p&gt;

&lt;p&gt;I really hope that the migration to ARM's CPUs on the Mac line-up finally brings more powerful tools to the iPads in the next couple years so it can be a real substitute of a PC, but currently there are certain limitations about what you can do on these devices.&lt;/p&gt;

&lt;p&gt;Have you used an iPad or Tablet as your main work-related device? if so, let me know how was your experience or let me know if there's another tool that you want me to try on an iPad, or if you are interested in what other productivity apps I've used on my daily basis.&lt;/p&gt;

</description>
      <category>django</category>
      <category>python</category>
      <category>ios</category>
      <category>ipados</category>
    </item>
    <item>
      <title>Coming out shouldn’t be a thing in 2020</title>
      <dc:creator>Juan De los santos</dc:creator>
      <pubDate>Sun, 21 Jun 2020 01:23:00 +0000</pubDate>
      <link>https://dev.to/jjsantos/coming-out-shouldn-t-be-a-thing-in-2020-5gb1</link>
      <guid>https://dev.to/jjsantos/coming-out-shouldn-t-be-a-thing-in-2020-5gb1</guid>
      <description>&lt;p&gt;I’ve been living by myself for around 6 years now and as an introvert, I don’t usually talk about my feelings (or any other stuff), but recently I came out to my mom.&lt;/p&gt;

&lt;p&gt;I used to struggle a lot about why I like what I like and my “straight” friends (at that moment) were always making jokes about gay people and things like that, so because of that I started pretending to be what others wanted me to be.&lt;/p&gt;

&lt;p&gt;5 years ago a met a lovely young man who taught a great lesson and made me realize that what I was feeling was right despite what others think of me, so since then I started accepting my self.&lt;/p&gt;

&lt;p&gt;When I first came out was to my friends in the city I live, I guess I started with them because I though it wasn’t going to be that hard for them, and thankfully I was right, but as I said at the beginning, I came out to my mom and the story went a bit different.&lt;/p&gt;

&lt;p&gt;It’s hard to grow in a society that tells you EVERYWHERE that if you don’t fit in their “traditional role model” you are wrong and they are right. &lt;em&gt;I didn’t choose to be gay, but now I’m choosing to be happy and proud of myself.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devpride</category>
    </item>
    <item>
      <title>Does ads can really support a web app?</title>
      <dc:creator>Juan De los santos</dc:creator>
      <pubDate>Fri, 19 Jun 2020 02:51:39 +0000</pubDate>
      <link>https://dev.to/jjsantos/does-ads-can-really-support-a-web-app-3ajb</link>
      <guid>https://dev.to/jjsantos/does-ads-can-really-support-a-web-app-3ajb</guid>
      <description>&lt;p&gt;In the past, I’ve made a couple of projects just for fun, but now I’m thinking on how to make my next one kind of profitable, I know that there are different factors that can make it work as I expect or not, so I don't intent to gain a lot of money on my first try, but I would like to know if in your experience a web app can be fully maintained (at least) based on the ads income with a platform like Google Adsense?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>webmonetization</category>
    </item>
    <item>
      <title>What if we skip the QA process?  </title>
      <dc:creator>Juan De los santos</dc:creator>
      <pubDate>Thu, 16 Apr 2020 04:13:18 +0000</pubDate>
      <link>https://dev.to/jjsantos/what-if-we-skip-the-qa-process-gng</link>
      <guid>https://dev.to/jjsantos/what-if-we-skip-the-qa-process-gng</guid>
      <description>&lt;p&gt;The question that serves as the title of this article has persecuted me in different representations since I started working in this sector a few years ago.  &lt;/p&gt;

&lt;p&gt;It is often said that the rope breaks on the weaker side, and figuratively this is how many companies see QA processes;  when it should be the opposite.  QA processes are as important as the project in which they are applied, it's that simple.  If your testing processes are deficient, then that same deficiency will be noticed in the result for users.&lt;/p&gt;

&lt;p&gt;The most recent case of these deficiencies, which affects me relatively closely, was noted on February 16, 2020. An entire country was preparing to select its regional authorities through an “Automated” voting system that right at the beginning of the voting it turned out to be useless.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/fGOjgWRzQkC2sHHnq7/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/fGOjgWRzQkC2sHHnq7/giphy.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Reason
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;The data was inconsistent and in some cases too heavy to be downloaded or managed by the system.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Excuse
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;The government institution in charge of managing the elections and developing the software used, pointed out that the responsible department omitted the testing processes and that those carried out were minimal.&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;In this situation it is always easy to find a culprit, and in this case the blame fell on those responsible for managing that the tests were carried out, however, I understand that the analysis of this scenario must go beyond the failed result of that February 16.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ywwbBDMH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/msi14oo6u6qywzuswp2v.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ywwbBDMH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/msi14oo6u6qywzuswp2v.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is an error of the companies to think that the testing or quality process only starts at the moment that the first deliverables are sent to the testing environment, but the opposite; the process of monitoring the quality of a system must start with the very conception of the project and the creation of its requirements. From my perspective, that was the real problem that led that institution to release a system with severe deficiencies. After the conception of what you want to build is defined, then you should start creating all possible use cases around this idea, and once you have confirmed that you have everything you need to start, then a deeper analysis should begin in the detected use cases and delimit and standardize its data inputs and outputs. &lt;/p&gt;

&lt;p&gt;With the simple fact of having followed this planning and development rules, everything could have been different: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Requirements analysis, definition of standards and rules.
&lt;/li&gt;
&lt;li&gt;Flow of the platform and delimitation of the input and output data.
&lt;/li&gt;
&lt;li&gt;Implementation of pre-production test environment.
&lt;/li&gt;
&lt;li&gt;Minimum quality tests for this type of systems &lt;em&gt;(Functional, Regression, Load, Performance, Stress and Security)&lt;/em&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this particular scenario, the person representing the project or the person in charge of directing it is usually blamed, but from my perspective any member of the team could have raised the alarm in the first stages of the development cycle. In a hypothetical case that the people in charge did not heed the warnings, or that the team members simply did not feel confident enough that they could express disagreement by understanding that the work was being done wrong, so the team had problems far before the system.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/DUtSpDzxZZwPu/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/DUtSpDzxZZwPu/giphy.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I would like to point out that the idea of ​​this article does not try to show any political relationship in favor or against, but I hope that through this experience others teams will take 5 minutes to think about whether the direction in which their projects move is the correct and prevent situations like this from happening again. A team with good communication almost always has half of the battle won and they only need to stay motivated to meet their goals. &lt;/p&gt;

&lt;p&gt;Let me know in the comments if you have had similar experiences where somebody have tried to cut the time or quality of the tests and what has been the response of your teams to this situation.&lt;/p&gt;

</description>
      <category>testing</category>
    </item>
    <item>
      <title>Scrum for fast-changing businesses, is it worth it?</title>
      <dc:creator>Juan De los santos</dc:creator>
      <pubDate>Tue, 29 Oct 2019 12:47:07 +0000</pubDate>
      <link>https://dev.to/jjsantos/scrum-for-fast-changing-businesses-is-it-worth-it-49kk</link>
      <guid>https://dev.to/jjsantos/scrum-for-fast-changing-businesses-is-it-worth-it-49kk</guid>
      <description>&lt;p&gt;Hey!&lt;/p&gt;

&lt;p&gt;Many local companies have joined the trend of agile methodologies (mainly scrum), but have not taken into consideration whether it fits their type of business or their business needs.&lt;/p&gt;

&lt;p&gt;That's why I would like to ask you, Do you think Scrum is worth it for a small business that is constantly changing its priorities at the end or in the middle of each Sprint. For example, a financial business that has a certain level of uncertainty about whether they will need the X functionality by the end of the month, depending on how the market behaves. You could be spending time on something that will be useless or that will be replaced by another task in the middle of the development process.&lt;/p&gt;

&lt;p&gt;Would Scrumban be a possible solution to reduce the impact that uncertainty could have on the final product?&lt;/p&gt;

&lt;p&gt;Let me know how you overcome these types of situations.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>agile</category>
      <category>management</category>
    </item>
    <item>
      <title>Cross-platform test automation, is it worth it?</title>
      <dc:creator>Juan De los santos</dc:creator>
      <pubDate>Tue, 12 Feb 2019 17:51:55 +0000</pubDate>
      <link>https://dev.to/jjsantos/cross-platform-test-automation-is-it-worth-it-5d5p</link>
      <guid>https://dev.to/jjsantos/cross-platform-test-automation-is-it-worth-it-5d5p</guid>
      <description>&lt;p&gt;To understand this clearly, I think the main problem here lies in the way that some people talk about these kinds of solutions. When someone introduces a cross-platform test automation such as Appium, for example, in a conversation, most of the time they tells you that all your tests will work (almost magically) on different devices and operating systems, but that's a half-truth.&lt;/p&gt;

&lt;p&gt;When I started using a cross-platform test automation framework, the hardest part was to start facing the truth about how everything really works; So if I want my tests to run on different devices, I have to write those particular scenarios correctly for each operating system, it was not that bad, but my expectations were way too high due to what they told me before.&lt;/p&gt;

&lt;p&gt;The cross-platform test automation system may not be perfect (no, it is not), but it definitely helps you improve the way you write your test and reduces the time you invest on it.&lt;/p&gt;

&lt;p&gt;It would be incredible if the same test that you write for an Android application works perfectly in iOS, but this is not our current case for multiple factors.&lt;/p&gt;

&lt;p&gt;TL; DR&lt;br&gt;
In my experience, it's worth it because it reduces the time I spend writing each test for different platforms and I have everything in the same project.&lt;/p&gt;

&lt;p&gt;Please, let me know in the comments if you prefer the cross-platform test automation, and what was your experience so far.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>qa</category>
      <category>automation</category>
    </item>
    <item>
      <title>Routine, weakness vs strength</title>
      <dc:creator>Juan De los santos</dc:creator>
      <pubDate>Tue, 12 Feb 2019 00:54:48 +0000</pubDate>
      <link>https://dev.to/jjsantos/routine-weakness-vs-strength-3pin</link>
      <guid>https://dev.to/jjsantos/routine-weakness-vs-strength-3pin</guid>
      <description>&lt;p&gt;Hey there!&lt;/p&gt;

&lt;p&gt;Most of you have probably read or heard this phrase before: "With great power comes great responsibility", even if you don't know who said those words, you already understand what that means.&lt;/p&gt;

&lt;p&gt;I want to tell you about the power of routine. Routines can be good or bad and that's where the power resides, routines can be a great tool if you know how to use them.&lt;/p&gt;

&lt;p&gt;A good routine can help you to complete your tests faster than before, because the knowledge you have gained about the system allows you to go exactly where you want or do any task accurately, but over time that strength may become a weakness. Your team will appreciate a great knowledge of the system each time they try to understand a certain functionality; The problem here is that this knowledge can make you blind to the bugs that the system may have, mainly when it is growing fast.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wJc-_33m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ry6dc5mfgwqrye9nrrhg.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wJc-_33m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ry6dc5mfgwqrye9nrrhg.jpg" alt="Image from pixabay"&gt;&lt;/a&gt;&lt;br&gt;
What I have noticed during my time as a newbie and then managing small teams, is that we all have a great power of bugs detection when we don't know how the system should work; this is amazing because we can understand how a real user will use our system; but once you understand how everything works, you will always goes straight from point A to point B, however there are test cases like going from point A to point C, or starting from point B to point A, which are alternative test cases that must be tested to avoid unexpected behaviors in the final product. That's what I call "weak routine", ii's called like that because as time passes, the repetition of this type of routines makes the results of our tests more "weak", because as humans we would tend to omit or forget certain test cases...&lt;/p&gt;

&lt;p&gt;To avoid being in this "weak routine" situation, you must begin to automate the tests. Test automation allows you to invest your time in the tasks that are most important to your project and also to the new functionalities that will be tested in the future.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4jF50B0p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/wbx0z0ogr686tdk7gb1w.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4jF50B0p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/wbx0z0ogr686tdk7gb1w.jpg" alt="Image from pexels"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When I started working on test automation, I did not realize the importance of my work. The manager requested that all the tests have to be done manually, so I was doing the same thing twice (LOL!). At the end of the day, I did both manual and automated tests and that made me feel like I was not making any progress or that I hadn't been productive. It was when I changed my position and started leading a QA project, that I really understood that my skills were important and that they had underestimated the test automation; I started to automate the main flows of the system and just in couple months I finished the automation of the main core of the system and covered the most critical "alternative test cases", so now I can concentrate completely on doing a correct scrutiny of the new functionalities and then add them to the automation framework.&lt;/p&gt;

&lt;p&gt;I just wanted to share that with you, hoping it would be useful or motivational. The test automation made my life more productive by being able to execute those routine processes automatically. &lt;/p&gt;

&lt;p&gt;Please, let me know in the comments section how the test/process automation has helped you, or if you are considering entering into this subject.&lt;/p&gt;

</description>
      <category>qa</category>
      <category>automation</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How to self-destruct successfully</title>
      <dc:creator>Juan De los santos</dc:creator>
      <pubDate>Tue, 27 Feb 2018 23:50:12 +0000</pubDate>
      <link>https://dev.to/jjsantos/how-to-self-destruct-successfully--377m</link>
      <guid>https://dev.to/jjsantos/how-to-self-destruct-successfully--377m</guid>
      <description>&lt;p&gt;Have you ever asked yourself &lt;em&gt;"why do you do something if you already know it's the wrong way?"&lt;/em&gt; One of the biggest challenges we have in our lives is dealing with our inner voice that tells us to stop (when something could give long-term benefits) or to tell us to continue (when something has no future). So in this post I'm going to list the most important things that "help" us to self-destruct or destruct whatever we are doing.&lt;/p&gt;

&lt;p&gt;The purpose of doing this list, is for you to identify if you are doing some of the topics listed below and to take actions to avoid them. So let us begin...&lt;/p&gt;

&lt;h2&gt;
  
  
  -Do you really like what you are doing?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--M0m_Wa7r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/bouyb86xungfdpvr3tqj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--M0m_Wa7r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/bouyb86xungfdpvr3tqj.jpg" alt="Dog in computer"&gt;&lt;/a&gt;&lt;br&gt;
This question could mean everything about the way of how you are living. If you don't like what you are doing, then why you still doing it? If you don't like something there's no need for you to do it; we are not slaves anymore (relatively XD). Some people do things because this is the only thing they can do, but they hate that.&lt;/p&gt;

&lt;p&gt;Words without actions are nothing. Most of the time when the people say that they hate their jobs(could be a project o whatever they are doing), you can also notice that they are doing nothing to change that... So, how can be possible that if you hate your actual status you are not taking actions to change it. If you hate your job, just look for another, If you hate your carrear then think in something that you like most than that. You won't be 100% of efficientive if you don't like what you are doing and if you do it, you'll be an unhappy man.&lt;/p&gt;




&lt;h2&gt;
  
  
  -Procrastination
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OnW119Ct--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/5oeiok6is4bub769g4ko.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OnW119Ct--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/5oeiok6is4bub769g4ko.jpg" alt="Now or Later"&gt;&lt;/a&gt;&lt;br&gt;
Don't let for tomorrow what can be done today... Thinking as a procrastinator that phrase could be something like: "Let for tomorrow what can done today" or "Why do it today if it can be done tomorrow".&lt;/p&gt;

&lt;p&gt;This topic is one of the most commons; you can see people everywhere delaying things instead of doing it and maybe ourselves do that. Letting things pending because you have "enough" time is the most famous excuse to keep things in the backlog and leave away to the theater, so then you will keep doing that until the day before deadline, and then you will have to work all the night in the tasks that you left in the backlog because you had "enough" time. Maybe at the end you can deliver the tasks successfully, but let us think for one minute what could happened if your computer gets broken while you are working in the tasks pending to be delivered in the morning? or what could happened if there is an issue during the integrationg of your task with other team member's task?.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Procrastination is a bad practice for you and your team.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  -Comfort Zone
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--or938ub7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/6ry9c07bdonicx6n731g.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--or938ub7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/6ry9c07bdonicx6n731g.jpg" alt="Comfort zone"&gt;&lt;/a&gt;&lt;br&gt;
Personally I think this is the hardest to notice for people. We try to avoid anxiety and we also feel afraid for what we don't know and the comfort zone gives us an armor against that ... The comfort zone makes us close to what we are familiar with, such as places, people and all that. &lt;/p&gt;

&lt;p&gt;As simple as that, you can say that it is not bad, the problem associated with the comfort zone is that it does not allow you to improve yourself ... Returning to the first topic with the following question: "Do you really like what You are doing?" there are people who do not like what they do in their jobs, but they feel comfortable doing the same tasks every day because they are already familiar with the whole process, for this type of people who are in the comfort zone, the simple idea of starting to look for another job makes them feel anxious or insecure.&lt;/p&gt;

&lt;p&gt;I think we all feel anxiety when we start something new, the only difference is if you decide to stay in the comfort zone or stay away to improve and reach your goals.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;In conclusion, do what makes you happy, do not stay in your comfort zone and do not postpone things because tomorrow may be too late.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>advice</category>
      <category>tips</category>
    </item>
    <item>
      <title>First impression about Facebook's Graph API</title>
      <dc:creator>Juan De los santos</dc:creator>
      <pubDate>Sun, 25 Feb 2018 17:47:13 +0000</pubDate>
      <link>https://dev.to/jjsantos/first-impression-about-facebooks-graph-api--59i5</link>
      <guid>https://dev.to/jjsantos/first-impression-about-facebooks-graph-api--59i5</guid>
      <description>&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fiuy7epdgln1vx0pov33c.jpg" 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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fiuy7epdgln1vx0pov33c.jpg" alt="Doggo Studying"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have been checking the Facebook´s Graph API for a couple days, and here I have my first impressions about it.&lt;/p&gt;

&lt;p&gt;For those who doesn't know about Facebook's Graph API, they defined it as &lt;em&gt;"the primary way to get data in and out of Facebook's social graph"&lt;/em&gt; or &lt;em&gt;"The core of Facebook Platform, enabling developers to read from and write data into Facebook".&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;After a quick review of the documentation, I just can say that the learning curve is considerably lower than other services of this kind such as Twitter's API.&lt;/p&gt;

&lt;p&gt;One of biggest advantages of Facebook's Graph API against others (At least from my perspective), is that you don't need any special code structucture to get most of the information from their API; You just have to follow the regular process to consume a JSON response... &lt;/p&gt;

&lt;p&gt;Fetching the data from Facebook's Graph API:&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="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://graph.facebook.com/v2.9/HereGoesThePageID/posts?access_token=HereGoesYourToken&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="nf"&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="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
       &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;json&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
         &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;json&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="nf"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="na"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;json&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;Displaying the results in UI:&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="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;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;data&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;item&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="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="nx"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;}&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;Card&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;Row&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;Col&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;h6&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;story&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;/h6&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;h6&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;item&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;/h6&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;/Col&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;/Row&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;/Card&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://developer.twitter.com/en/docs/tweets/post-and-engage/overview" rel="noopener noreferrer"&gt;Twitter's API&lt;/a&gt; used to work in that way also but a couple years ago they added a new level of security implementing &lt;strong&gt;"Oauth"&lt;/strong&gt;, that makes the requests and responses more "secure" but that increase the learning curve and takes you more time to handle the API properly. Facebook's Graph API also has secure requests just like Oauth in Twitter, but in this case it just apply for some special request like when you try to get data considered as private by the owner or the Facebook's polices. &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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fi9hx2aeodb2utpgwkxig.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fi9hx2aeodb2utpgwkxig.PNG" alt="Graph API Explorer"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another advantages of Facebook's Graph API, is the big &lt;a href="https://developers.facebook.com/docs/graph-api" rel="noopener noreferrer"&gt;documentation&lt;/a&gt; they have and the tool that they give us called &lt;a href="https://developers.facebook.com/tools/explorer/" rel="noopener noreferrer"&gt;"Graph API Explorer"&lt;/a&gt; to make requests in their own "console", so it make it easy for us to understand the bunch of criterias we have available, and help us to determine what we need before start consuming the API itself.&lt;/p&gt;




&lt;p&gt;I made a &lt;a href="https://github.com/jjsantos2012/Fetch-Data-From-Social-Media" rel="noopener noreferrer"&gt;simple demo in github&lt;/a&gt; of how to fetch the Posts from a Facebook Page, using Facebook's Graph API and Javascript (ReactJS), so there you can find whole code of the examples shown above.&lt;/p&gt;

&lt;p&gt;Have you used Facebook's Graph API?  Let me know how was your experience and why do you use it...&lt;/p&gt;

</description>
      <category>react</category>
      <category>discuss</category>
      <category>review</category>
      <category>api</category>
    </item>
    <item>
      <title>Why I chose the Firebase ecosystem</title>
      <dc:creator>Juan De los santos</dc:creator>
      <pubDate>Mon, 12 Feb 2018 02:07:50 +0000</pubDate>
      <link>https://dev.to/jjsantos/why-i-chose-the-firebase-ecosystem--4c69</link>
      <guid>https://dev.to/jjsantos/why-i-chose-the-firebase-ecosystem--4c69</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Jhwpt2a1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/1cpozv1jc7lgue4iqgi9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Jhwpt2a1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/1cpozv1jc7lgue4iqgi9.png" alt="Firebase Logo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I've been using Firebase for a few months now, and the experience I've had with this has been amazing.&lt;/p&gt;

&lt;p&gt;Quick definition:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Firebase is a mobile and web application development platform."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Firebase provide us &lt;a href="https://firebase.google.com/products/"&gt;a lot of functionalitys&lt;/a&gt;, in order to reduce the development time and to make web/movile apps more maintainable. Must of the time Firebase works like a &lt;a href="https://en.wikipedia.org/wiki/Software_as_a_service"&gt;SaaS&lt;/a&gt; making easy and fast for us, things like handling authentication.&lt;/p&gt;

&lt;p&gt;Want to see it?&lt;br&gt;
&lt;em&gt;Social Authentication cannot be easier than this...&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Rse2Wm4G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/gxzc5zbuxzvrs1jh8u35.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Rse2Wm4G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/gxzc5zbuxzvrs1jh8u35.PNG" alt="Handling login"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  To whom I recommend Firebase?
&lt;/h2&gt;

&lt;p&gt;I recommend Firebase the most to entrepreneurs, startups and people on &lt;a href="https://en.wikipedia.org/wiki/Hackathon"&gt;hackathons&lt;/a&gt; I say so because those particular markets, has requirement that constantly change during development phase.&lt;/p&gt;

&lt;p&gt;Building a MVP with Firebase gives a greate adavantage agains others that are using other tools that takes to much time for example the analisys of a big database structure. If you have been in a Hackathon before, you already know that time is crucial; you have to spend time thinking on a good business idea, and then when you have something concrete in your mind, you have to document it and then the development time gets reduce to around 40% or less to create a functional MVP... If this is the case Firebase will be your hero.&lt;/p&gt;

&lt;p&gt;If you want to learn more about Firebase, feel free to visit the official guide: &lt;a href="https://firebase.google.com/docs/guides/"&gt;https://firebase.google.com/docs/guides/&lt;/a&gt; &lt;/p&gt;




&lt;h4&gt;
  
  
  &lt;em&gt;Have you used Firebase or plan to use it? Let me know in the comments.&lt;/em&gt;
&lt;/h4&gt;

</description>
      <category>firebase</category>
      <category>startup</category>
      <category>entrepreneur</category>
      <category>discuss</category>
    </item>
    <item>
      <title>What was your worst experience as QA? </title>
      <dc:creator>Juan De los santos</dc:creator>
      <pubDate>Sun, 11 Feb 2018 23:53:25 +0000</pubDate>
      <link>https://dev.to/jjsantos/what-was-your-worst-experience-as-qa--223a</link>
      <guid>https://dev.to/jjsantos/what-was-your-worst-experience-as-qa--223a</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YfMgENdH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/wko5eod2l32et07jyuom.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YfMgENdH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/wko5eod2l32et07jyuom.jpg" alt="PC on fire"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I've been working as a QA Analyst for more than a year but have used QA techniques for more than 3 years in personal projects. Quality assurance means that most of the time you should evaluate the things that another person has worked on; so it has the responsibility to say if something meets the requirements of the company or not.&lt;/p&gt;

&lt;p&gt;QA is challenging position regardless of whether the system you are working on is large or not. If you left that something wrong goes to production your head could be in the guillotine... During the time that I've been involved on this, I've got good experiences and other not so good.&lt;/p&gt;

&lt;p&gt;When I started working with an international QA team, I thought that it was going to be the must difficult step in my career, and I wasn't wrong at all. Work with people that have different cultures it's somekind of hard; but that was nothing that the time can not resolve.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HXYrWRmd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/o1is2r9y0mte25e10y2y.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HXYrWRmd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/o1is2r9y0mte25e10y2y.jpg" alt="Approved for QA"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I think that the worst and also one of the best experience I've got so far was when I started doing QA to my own projects (Yeah! that was weird XD). In the Software QA world there's like a rivalry between Dev and QA; that is like a secret war where everybody has a smiley in their faces, but most of the time they are internally burning because of two things:&lt;/p&gt;

&lt;p&gt;1- Dev gets bother when QA opens a new bug report.&lt;br&gt;
2- QA gets bother when Devs hasn't fixed the bug reported.&lt;/p&gt;

&lt;p&gt;There might be more reasons, but those are the most common that I've seen. There's like a balance between each other (Dev/QA) but the problem start when dev and qa is the same person (me).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8i7Q5Xm1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/o0vgn8fh5a3fkrjbm2mw.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8i7Q5Xm1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/o0vgn8fh5a3fkrjbm2mw.jpg" alt="Working in my local"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When I started doing QA to my own projects I started complainign internally like: &lt;em&gt;"This code should work because it was made by me and I know everything of it"&lt;/em&gt; and then during QA process I say &lt;em&gt;"Oh, that doesn't work. Lets open a bug report to the dev...(myself)"&lt;/em&gt;. Doing QA to my projects was an internal war with myself, between me as QA and me also as Dev. During this time I understod that finding guiltys is just a waste of time and that the only way to be successful is accepting our errors and fixing them, it wasn't easy, but it was a wonderful experience.&lt;/p&gt;

&lt;p&gt;What about you? What was your worst experience as QA?&lt;/p&gt;

</description>
      <category>qa</category>
      <category>testing</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Why some people hate PHP?</title>
      <dc:creator>Juan De los santos</dc:creator>
      <pubDate>Thu, 08 Feb 2018 18:04:07 +0000</pubDate>
      <link>https://dev.to/jjsantos/why-some-people-hate-php--55dn</link>
      <guid>https://dev.to/jjsantos/why-some-people-hate-php--55dn</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--n8YoPQB3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/0fhucewvazwysno7tggi.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--n8YoPQB3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/0fhucewvazwysno7tggi.jpg" alt="Don't Hate PHP"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For a long time I have seen that the developers around me hate PHP, and I still do not understand why this happens.&lt;/p&gt;

&lt;p&gt;I don't like some PHP stuff, but that does not mean it's a bad programming language ... I think every programming language has its own purpose, so instead of starting to complain about &lt;em&gt;"why PHP does not work for me "&lt;/em&gt; I think we should spend more time comparing different programming languages and choose the one that achieves the goal of your project.&lt;/p&gt;

&lt;p&gt;What is your opinion?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>php</category>
      <category>community</category>
    </item>
  </channel>
</rss>
