<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Jonathan Brizio]]></title><description><![CDATA[Front-End Software Developer]]></description><link>https://jbrizio.github.io</link><generator>RSS for Node</generator><lastBuildDate>Sat, 23 Mar 2019 19:17:42 GMT</lastBuildDate><atom:link href="https://jbrizio.github.io/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Building My First Alexa Skill with Node.js]]></title><description><![CDATA[<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>On the next lines, I would explain shortly what are the concepts that you need to understand before to start developing skills for your own Amazon Alexa device. The idea here is to have enough information to get started.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_requirements">Requirements</h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Amazon Developer Account</p>
</li>
<li>
<p>Experience with Node.js</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_what_s_alexa">What&#8217;s Alexa?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This is Amazon’s voice-control system. With that, you can control music, create shopping lists or reminders, get instant weather reports, and control popular smart-home products using nothing else that the sound of your voice.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_what_s_an_alexa_skill">What&#8217;s an Alexa skill?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>These are apps that give to Alexa devices more abilities that the mentioned before. Absolutely of all kinds. Through the Alexa application, you can incorporate or disable these skills.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_what_s_aws_lambda">What&#8217;s AWS Lambda?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>AWS Lambda is a compute service that lets you run code without provisioning or managing servers. You pay only for the compute time you consume - there is no charge when your code is not running. This would be our backend that processes the request and returns the data back as a JSON.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_entities_involved_in_the_flow">Entities involved in the flow</h2>
<div class="sectionbody">
<div class="olist arabic">
<ol class="arabic">
<li>
<p>The user who speaks a command</p>
</li>
<li>
<p>The Echo device, which receives the initial voice input</p>
</li>
<li>
<p>The Amazon Alexa service, which receives the data from the devices</p>
</li>
<li>
<p>The backend service which contains the business logic for the skill itself</p>
</li>
</ol>
</div>
<div class="videoblock">
<div class="content">
<iframe src="https://www.youtube.com/embed/Rsm7XnTQIiQ?rel=0" frameborder="0" allowfullscreen></iframe>
</div>
</div>
<div class="paragraph">
<p>Well, now that you have all the material needed to start with the development, I invite you to <a href="https://www.amazon.com/dp/B07PSBHYJ8/">install my latest skill</a> called "Dollar Price". That was an experiment with a public API to obtain the official price of exchange between the dollar and Argentine peso.</p>
</div>
</div>
</div>]]></description><link>https://jbrizio.github.io/2019/03/23/Building-My-First-Alexa-Skill-with-Nodejs.html</link><guid isPermaLink="true">https://jbrizio.github.io/2019/03/23/Building-My-First-Alexa-Skill-with-Nodejs.html</guid><category><![CDATA[Alexa]]></category><category><![CDATA[AWS]]></category><category><![CDATA[Nodejs]]></category><dc:creator><![CDATA[Jonathan Brizio]]></dc:creator><pubDate>Sat, 23 Mar 2019 00:00:00 GMT</pubDate></item><item><title><![CDATA[Microservices With Node.js]]></title><description><![CDATA[<div class="paragraph">
<p>Microservice architecture is rapidly changing the way we develop our applications. Small, highly decoupled software component is the foundation of this architecture. But hey that’s the theory. Now how can we apply it in our day to day job?</p>
</div>
<div class="paragraph">
<p>How can we structure our application to unleash the benefit of a microservice architecture? On this presentation, I will show you some points to be in mind before to start with that.</p>
</div>
<iframe src="//www.slideshare.net/slideshow/embed_code/key/bMRK17J11yguyQ" width="650" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="margin-top: 20px; max-width: 100%;" allowfullscreen> </iframe></div>]]></description><link>https://jbrizio.github.io/2018/09/30/Microservices-With-Nodejs.html</link><guid isPermaLink="true">https://jbrizio.github.io/2018/09/30/Microservices-With-Nodejs.html</guid><category><![CDATA[Microservices]]></category><category><![CDATA[NodeJS]]></category><category><![CDATA[Architecture]]></category><dc:creator><![CDATA[Jonathan Brizio]]></dc:creator><pubDate>Sun, 30 Sep 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[Save time at diary automating recurring tasks]]></title><description><![CDATA[<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>It’s always fascinating to see how much of the tasks that you do at diary can be automated. In my case, how to a developer at diary I write repetitive commands in my terminal. The most commons are:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Transpile code</p>
</li>
<li>
<p>Manage local server</p>
</li>
<li>
<p>Connect to the VPN</p>
</li>
<li>
<p>View logs</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>I always recommend to my co-workers create an alias when you write repetitive commands. This is much easier to remind and you save a lot of time at the end of the day.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_uses_for_aliases">Uses for aliases</h2>
<div class="sectionbody">
<div class="paragraph">
<p>There are several types of uses for aliases. They include:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Reducing the amount of typing that is necessary for commands</p>
</li>
<li>
<p>Correcting common misspellings of commands</p>
</li>
<li>
<p>Standardizing the name of a command across multiple OS</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_improving_your_knowledge">Improving your knowledge</h2>
<div class="sectionbody">
<div class="paragraph">
<p>If you feel confident with the command-line, I recommend reading the entire guide of Joshua Levy. This is a great selection of notes and tips on using the command-line: <a href="https://github.com/jlevy/the-art-of-command-line" class="bare">https://github.com/jlevy/the-art-of-command-line</a></p>
</div>
</div>
</div>]]></description><link>https://jbrizio.github.io/2018/07/01/Save-time-at-diary-automating-recurring-tasks.html</link><guid isPermaLink="true">https://jbrizio.github.io/2018/07/01/Save-time-at-diary-automating-recurring-tasks.html</guid><category><![CDATA[Productivity]]></category><category><![CDATA[Software]]></category><category><![CDATA[Command-Line]]></category><dc:creator><![CDATA[Jonathan Brizio]]></dc:creator><pubDate>Sun, 01 Jul 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[Undoing changes with Git]]></title><description><![CDATA[<div class="paragraph">
<p>There is no doubt that git is the best tool that the developers we have. Is really useful to any kind of team, in fact, if you are working alone would be really powerful too. I use this in a diary and each time I discover new commands that bring me more control on the workflow.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="https://i.imgur.com/6GDi5T2.png" alt="6GDi5T2.png">
</div>
</div>
<div class="paragraph">
<p>Think that you introduce a small change in a determinate branch a few days ago, and you need to revert to the previous state. To make that, you need to write the following command in your shell:</p>
</div>
<div class="paragraph">
<p><code>git revert &lt;SHA-1&gt;</code></p>
</div>
<div class="paragraph">
<p>What git-revert does is create a commit which undoes changes made in a given commit, creating a commit which is reverse of a given commit.</p>
</div>
<div class="paragraph">
<p>Imagine another case, is common when you start to work with git push by mistake a commit in the main branch:</p>
</div>
<div class="paragraph">
<p><code>git reset --soft origin/master</code></p>
</div>
<div class="paragraph">
<p>This will rollback your branch to the same commit as origin/master. So the commits are removed but all the files you have changed are moved to staging.</p>
</div>
<div class="paragraph">
<p>There are three modes for git reset: soft, mixed and hard.
Look at the <a href="https://git-scm.com/docs/git-reset">official documentation for an in-depth explanation</a>.</p>
</div>]]></description><link>https://jbrizio.github.io/2018/02/26/Undoing-changes-with-Git.html</link><guid isPermaLink="true">https://jbrizio.github.io/2018/02/26/Undoing-changes-with-Git.html</guid><dc:creator><![CDATA[Jonathan Brizio]]></dc:creator><pubDate>Mon, 26 Feb 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[Trigger click when determinate requests finish using AngularJS]]></title><description><![CDATA[<div class="paragraph">
<p>One of the last projects where I collaborate, the requirement has specifically triggered a click in one element of the DOM when determinate requests finish.</p>
</div>
<div class="paragraph">
<p>After of make a deep research about some solutions and try some of these, the final solution results on apply the $broadcast event on the functions declared and use a counter to validate the last cycle of the calls to trigger the click on the element.</p>
</div>
<div class="paragraph">
<p>The best way to understand how was implemented this is through the following example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code>// Here we declare an empty array to store each request
var requests = [];

// Our first function
$scope.firstFunction = function() {
    // Execute broadcast event with the name of the function
    $scope.$broadcast('requestEnded',requests.push('firstFunction'));
};

// Our last function
$scope.secondFunction = function() {
    // Execute broadcast event with the name of the function
    $scope.$broadcast('requestEnded', requests.push('secondFunction'));
};

// This listener is executed each time that requestEnded is fired
$scope.$on('requestEnded', function(event, countRequests) {
    // Here we validate that the count of requests is the desire
    if (countRequests == 2) {
        // Trigger Click
        $('.class-selector').click();
    }
});</code></pre>
</div>
</div>
<div class="paragraph">
<p>Official Documentation</p>
</div>
<div class="paragraph">
<p><a href="https://docs.angularjs.org/#$broadcast" class="bare">https://docs.angularjs.org/#$broadcast</a></p>
</div>]]></description><link>https://jbrizio.github.io/2017/10/20/Trigger-click-when-determinate-requests-finish-using-AngularJS.html</link><guid isPermaLink="true">https://jbrizio.github.io/2017/10/20/Trigger-click-when-determinate-requests-finish-using-AngularJS.html</guid><dc:creator><![CDATA[Jonathan Brizio]]></dc:creator><pubDate>Fri, 20 Oct 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[Understanding Inheritance in JavaScript]]></title><description><![CDATA[<div class="paragraph">
<p>It&#8217;s an important concept that you always should know when you&#8217;re working using an object-oriented programming. But when we&#8217;re using JavaScript, initially we need to knowing initially that this is language oriented to objects using prototyping instead of classes (often referred to as prototypal inheritance).</p>
</div>
<div class="paragraph">
<p>The best way to understand this is looking at the following code example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code>// Define the constructor Person
function Person(name, age) {
  this.name = name || "";
  this.age = age;
}

// Define the constructor Student
function Student(name, age, courses) {
  this.base = Person;
  this.base(name, age);
  this.courses = courses || [];
}

// Here we apply the concept of Inheritance
Student.prototype = new Person;</code></pre>
</div>
</div>
<div class="paragraph">
<p>On the previous example, we can view the concept of inheritance applied to the Student object. By this way, the new object inherits all the properties of the first object called Person.</p>
</div>]]></description><link>https://jbrizio.github.io/2017/07/27/Understanding-Inheritance-in-Java-Script.html</link><guid isPermaLink="true">https://jbrizio.github.io/2017/07/27/Understanding-Inheritance-in-Java-Script.html</guid><dc:creator><![CDATA[Jonathan Brizio]]></dc:creator><pubDate>Thu, 27 Jul 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[Automate tasks with Gulp]]></title><description><![CDATA[<div class="paragraph">
<p>When you start to work or initialize a new project, a good choice is to use Gulp to automatize some common tasks.
Using a task runner like gulp allows you to take repetitive tasks and automate them.
On the next lines, I will bring 3 advantages of use Gulp in your project:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Easy to use: After of run some commands, you can have all the environment running.</p>
</li>
<li>
<p>Powerful: You count with more of 2180 plugins available to use totally free.</p>
</li>
<li>
<p>Easy to Learn: After of read the initial getting started guide, you are ready to run your firsts tasks.</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>An example of these advantages, is the following shortcode that allows you to run a local server on your computer to test your project:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code>var gulp = require('gulp'),
    connect = require('gulp-connect');

gulp.task('webserver', function() {
  connect.server({
    livereload: true,
    port: 8000,
  });
});

gulp.task('default', ['webserver']);</code></pre>
</div>
</div>
<div class="paragraph">
<p>If you&#8217;re more interesting in learning about this, I recommend taking at look at the official documentation here: <a href="https://github.com/gulpjs/gulp" class="bare">https://github.com/gulpjs/gulp</a></p>
</div>]]></description><link>https://jbrizio.github.io/2016/11/08/Automate-tasks-with-Gulp.html</link><guid isPermaLink="true">https://jbrizio.github.io/2016/11/08/Automate-tasks-with-Gulp.html</guid><dc:creator><![CDATA[Jonathan Brizio]]></dc:creator><pubDate>Tue, 08 Nov 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Pure CSS Image Loader]]></title><description><![CDATA[<div class="paragraph">
<p>Hi, everyone! On this opportunity, I&#8217;m sharing with you a little trick with only CSS to show your images with a progressive blur until the image has been loaded entirely. You can view this effect implemented on Medium or Instagram.</p>
</div>
<div class="paragraph">
<p>I recommend taking at look at the official documentation where you can find how the keyframes work: <a href="https://developer.mozilla.org/es/docs/Web/CSS/@keyframes" class="bare">https://developer.mozilla.org/es/docs/Web/CSS/@keyframes</a></p>
</div>
<div class="paragraph">
<p>After of apply the rules on our CSS Stylesheets, the result is the following:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="http://gifyu.com/images/demo86c07.gif" alt="Demo Running">
</div>
</div>
<div class="paragraph">
<p>To understand better this, I create a repository on Github.
Feel free to fork and improve: <a href="https://github.com/jbrizio/pure-css-image-loader" class="bare">https://github.com/jbrizio/pure-css-image-loader</a></p>
</div>
<div class="paragraph">
<p>Ask in the comments if you have any questions.</p>
</div>]]></description><link>https://jbrizio.github.io/2016/09/24/Pure-CSS-Image-Loader.html</link><guid isPermaLink="true">https://jbrizio.github.io/2016/09/24/Pure-CSS-Image-Loader.html</guid><dc:creator><![CDATA[Jonathan Brizio]]></dc:creator><pubDate>Sat, 24 Sep 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Defining media queries between two widths]]></title><description><![CDATA[<div class="paragraph">
<p>If you are development a responsive website, it&#8217;s probably that you need to define some media queries to show correctly your elements.
When you like to define a media query in a range, you can use the following code:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code>/* No greater than 768px, no less than 400px */
@media (max-width:768px) and (min-width:400px) {
    .class {
        font-size: 15px;
    }
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>I hope that this be useful.</p>
</div>]]></description><link>https://jbrizio.github.io/2016/09/21/Defining-media-queries-between-two-widths.html</link><guid isPermaLink="true">https://jbrizio.github.io/2016/09/21/Defining-media-queries-between-two-widths.html</guid><dc:creator><![CDATA[Jonathan Brizio]]></dc:creator><pubDate>Wed, 21 Sep 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Simple jQuery character countdown in textarea]]></title><description><![CDATA[<div class="paragraph">
<p>Looking to build a Twitter-like textarea character countdown to show your users how much space they have remaining? Good. See the below implementation using jQuery:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code>$(document).ready(function() {
  var maxCharacters = 255;
  document.getElementById('description').onkeyup = function() {
    document.getElementById('characters-counter').innerHTML = (maxCharacters - this.value.length);
  };
});</code></pre>
</div>
</div>
<div class="paragraph">
<p>Easy, right? You can view the full demo of this implementation working on: <a href="http://codepen.io/jonathanbrizio/pen/pbYZZy/" class="bare">http://codepen.io/jonathanbrizio/pen/pbYZZy/</a></p>
</div>]]></description><link>https://jbrizio.github.io/2016/08/16/Simple-j-Query-character-countdown-in-textarea.html</link><guid isPermaLink="true">https://jbrizio.github.io/2016/08/16/Simple-j-Query-character-countdown-in-textarea.html</guid><dc:creator><![CDATA[Jonathan Brizio]]></dc:creator><pubDate>Tue, 16 Aug 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Removing and Adding Classes on Javascript]]></title><description><![CDATA[<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Adding and removing classes has to be one of the most common tasks when it comes to JavaScript and DOM manipulation.</p>
</div>
</div>
</div>
<div class="sect5">
<h6 id="_element_classlist">Element.classList</h6>
<div class="paragraph">
<p>The classList property returns a token list of the class attribute of the element
It comes with a few handy methods:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>add - adds a class</p>
</li>
<li>
<p>remove - removes a class</p>
</li>
<li>
<p>toggle - toggles a class</p>
</li>
<li>
<p>contains - checks if a class exists</p>
</li>
</ul>
</div>
</div>
<div class="sect5">
<h6 id="_demo_example">Demo Example</h6>
<div class="paragraph">
<p>To understand better this, I create on Codepen a simple example to show you how this works: <a href="http://codepen.io/StrengthandFreedom/pen/ZOGVLg/" class="bare">http://codepen.io/StrengthandFreedom/pen/ZOGVLg/</a></p>
</div>
</div>]]></description><link>https://jbrizio.github.io/2016/08/09/Removing-and-Adding-Classes-on-Javascript.html</link><guid isPermaLink="true">https://jbrizio.github.io/2016/08/09/Removing-and-Adding-Classes-on-Javascript.html</guid><dc:creator><![CDATA[Jonathan Brizio]]></dc:creator><pubDate>Tue, 09 Aug 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Why are all programming languages in English?]]></title><description><![CDATA[<div class="paragraph">
<p>Out of 8500+ programming languages recorded, around 2400 of them were developed in the United States, 600 in the United Kingdom, 160 in Canada, and 75 in Australia. In other words, over a third of all programming languages were developed in a country that primarily speaks English. It&#8217;s the main cause that the English language is used in great part of the programming.</p>
</div>
<div class="paragraph">
<p>Another thing, it&#8217;s English are the global language that we use to communicate to other people&#8217;s.</p>
</div>
<div class="paragraph">
<p>Stats took from Wikipedia: <a href="https://en.wikipedia.org/wiki/Non-English-based_programming_languages" class="bare">https://en.wikipedia.org/wiki/Non-English-based_programming_languages</a></p>
</div>]]></description><link>https://jbrizio.github.io/2016/08/04/Why-are-all-programming-languages-in-English.html</link><guid isPermaLink="true">https://jbrizio.github.io/2016/08/04/Why-are-all-programming-languages-in-English.html</guid><dc:creator><![CDATA[Jonathan Brizio]]></dc:creator><pubDate>Thu, 04 Aug 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Using BEM Methodology]]></title><description><![CDATA[<div class="paragraph">
<p>On my first post, I will share quickly with you a methodology totally recommend to implement in your projects.
Maybe you hear before about that. It&#8217;s was suggest to use for one of our members on my team. After of implement, I&#8217;m totally on agreeing that this methodology is very useful because allow to have a maintainable code and understand better the structure of our project.</p>
</div>
<div class="paragraph">
<p>This methodology consists on to follow a few rules to maintain the consistency throughout the entire project.
These approaches are the same for all technologies: HTML, CSS, JavaScript, docs, tests, etc.</p>
</div>
<div class="paragraph">
<p>For a quick started, I suggest to take at look at the initial documentation to understand the key feature of this methodology:
<a href="https://en.bem.info/methodology/key-concepts/" class="bare">https://en.bem.info/methodology/key-concepts/</a></p>
</div>]]></description><link>https://jbrizio.github.io/2016/07/25/Using-BEM-Methodology.html</link><guid isPermaLink="true">https://jbrizio.github.io/2016/07/25/Using-BEM-Methodology.html</guid><dc:creator><![CDATA[Jonathan Brizio]]></dc:creator><pubDate>Mon, 25 Jul 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Get a fake REST API with zero coding]]></title><description><![CDATA[<div class="paragraph">
<p>When you are working on the frontend, sometimes you need to manipulate dynamic data.
A few months ago, I discover this great tool on Github <a href="https://github.com/typicode/json-server" class="bare">https://github.com/typicode/json-server</a> that allows simulating a fake REST API in your App in a few seconds.</p>
</div>
<div class="paragraph">
<p>After of download the dependencies through npm in your project folder, you need to create a <code>db.json</code> file with the content to use.</p>
</div>
<div class="paragraph">
<p>Example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-bash" data-lang="bash">{
  "posts": [
    { "id": 1, "title": "json-server", "author": "typicode" }
  ],
  "comments": [
    { "id": 1, "body": "some comment", "postId": 1 }
  ],
  "profile": { "name": "typicode" }
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>The last step is run this command in your console:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-bash" data-lang="bash">$ json-server --watch db.json</code></pre>
</div>
</div>
<div class="paragraph">
<p>Now if you go to <a href="http://localhost:3000/posts/1" class="bare">http://localhost:3000/posts/1</a>, you&#8217;ll get:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-bash" data-lang="bash">{ "id": 1, "title": "json-server", "author": "typicode" }</code></pre>
</div>
</div>
<div class="paragraph">
<p>I hope that this should be a help for you in future projects!</p>
</div>
<div class="paragraph">
<p>Happy coding!</p>
</div>]]></description><link>https://jbrizio.github.io/2016/07/25/Get-a-fake-REST-API-with-zero-coding.html</link><guid isPermaLink="true">https://jbrizio.github.io/2016/07/25/Get-a-fake-REST-API-with-zero-coding.html</guid><dc:creator><![CDATA[Jonathan Brizio]]></dc:creator><pubDate>Mon, 25 Jul 2016 00:00:00 GMT</pubDate></item></channel></rss>