<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>Helmut Granda</title>
	<atom:link href="http://www.helmutgranda.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.helmutgranda.com</link>
	<description>Learning throug interaction</description>
	<lastBuildDate>Thu, 04 Mar 2021 15:35:05 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.7.15</generator>
<site xmlns="com-wordpress:feed-additions:1">40655283</site>	<item>
		<title>Next Music Director Open Source</title>
		<link>http://www.helmutgranda.com/next-music-director-open-source/</link>
		
		<dc:creator><![CDATA[helmutgranda]]></dc:creator>
		<pubDate>Wed, 17 Feb 2021 15:31:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://www.helmutgranda.com/?p=913</guid>

					<description><![CDATA[NextMusicDirector is still in it&#8217;s infancy and would like to share the process and development of the project, as any other project it is just an idea and I am happy to share new findings, experiences, and how far I can take this project. Code Hosting The first question is ovious, where to host the [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>NextMusicDirector is still in it&#8217;s infancy and would like to share the process and development of the project, as any other project it is just an idea and I am happy to share new findings, experiences, and how far I can take this project.</p>



<h2>Code Hosting</h2>



<p>The first question is ovious, where to host the code and there are multiple options, the three options that come to mind are</p>



<ul><li><a href="https://www.github.com/">GitHub</a></li><li><a href="https://www.gitlab.com/">GitLab</a></li><li><a href="https://www.bitbucket/">BitBucket</a></li></ul>



<p>All three options have free tiers and similar setups, so with that in mind I have to go with the option that allows easy access to my target audience and currently my assumption is that my target audience lives and breaths in GitHub so that will be the option I am going to go with. It also has proven to work nicely with&nbsp;<a href="https://www.vercel.com/">Vercel</a></p>



<h2>Bugs and Progress</h2>



<p>The next question is where to keep track of bugs and progress and for that we also have three great alternatives.</p>



<ul><li><a href="https://github.com/features/project-management/">GitHub</a></li><li><a href="https://www.atlassian.com/software/jira/features">Jira</a></li><li><a href="https://www.openproject.org/">OpenProject</a></li></ul>



<p>I didn&#8217;t have to look to far to figure out which platform to use. I have used Jira for many years from small teams to enterprise level and I know it is an amazing piece of software. Scrum masters are able to easily create custom reports and keep track of issues during stand ups (daily or whatever candence the team decides). We must not forget Product Owners who can quickly create new tasks and set their importance so that the team can decide when it is best to work on them. Most of all, one thing that I have always loved about Jira is the ease in which I can find tasks, I can rudementary remember a task and find it, specially if the team is good at adding good notes into the tickets. Gone are the days in which email threads would hold all the valuable information. There were times when we could find information from years past or even see a thrend when an existing bug re-appeard and figure out how to mitigate it for good.</p>



<p>With all that I have to go with GitHub, currently I am a team of one and I like how easy is to integreate GitHub tasks and convert them into issues to keep track of them. I am also interested into learning the software to better understad it.</p>



<h2>Deployments</h2>



<p>Two great choices when it comes to deployments but for this, we will continue to use <a href="https://www.vercel.com/">Vercel</a> although <a href="https://www.netlify.com/">Netlify</a> is the first platform that gave me that ability to connect my GitHub repo and do auto deployments. So much to learn when it comes to deployments with these amazing platforms.˝</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">913</post-id>	</item>
		<item>
		<title>Next Music Director</title>
		<link>http://www.helmutgranda.com/next-music-director/</link>
		
		<dc:creator><![CDATA[helmutgranda]]></dc:creator>
		<pubDate>Thu, 11 Feb 2021 15:30:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://www.helmutgranda.com/?p=910</guid>

					<description><![CDATA[NextMusicDirector came from the need of having a location where my daughter could practice playing the flute. As much as I was enjoying helping my daughter figure out what each note was I had the desire to automate this process for her and also maybe somewhere out there a kid would have the need to [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>NextMusicDirector came from the need of having a location where my daughter could practice playing the flute. As much as I was enjoying helping my daughter figure out what each note was I had the desire to automate this process for her and also maybe somewhere out there a kid would have the need to have someone help them identify each note and walk them through playing them.</p>



<p>This is a rough draft of the goals</p>



<ul><li>Easy to use</li><li>Be able to see the call out notes (ABCDEFG)</li><li>Be able to hide the call out notes (ABCDEFG)</li><li>Be able to create your own note routine</li><li>Playable on the browser</li><li>Playable on a mobile device</li><li>Looks decent</li></ul>



<p>With that in mind the first thing I had to figure out how to play sounds on the browser, luckily someone had written a component just for that named&nbsp;<a href="https://surikov.github.io/midi-sounds-react/">MIDI Sounds React</a>, this was perfect as I wanted to write React, so just with that component I started to add sounds to a browser.</p>



<h2>Playing a sound:</h2>



<p>The code to use the component was relative easy.</p>



<pre class="wp-block-code"><code>this.midiSounds.playChordAt(1, 3, &#91;60], 2.5);
</code></pre>



<p>The parameters for the item above are as follows</p>



<p>1 = Time when the note is to be played</p>



<p>3 = what instrument</p>



<p>[60] = pitch</p>



<p>2.5 = duration of play</p>



<h2>Adding component to the browser</h2>



<p>The way you would add the component to your view was realtive easy as well</p>



<pre class="wp-block-code"><code>//Import library
import MIDISounds from 'midi-sounds-react';

// use library
&lt;MIDISounds ref={(ref) =&gt; (this.midiSounds = ref)} appElementName="root" instruments={&#91;3]} /&gt;
</code></pre>



<p>This gave me the perfect structure I needed in order to play different notes on the browser. One of the benefits that came with this component is the ability to use a wide range of instruments and I just had to find the flute which is 765.</p>



<h2>Displaying the notes</h2>



<p>I could draw each note but instead I did a quick search and found multiple OS fonts that I could use to draw the notes on the browser. After trying a few I ended up using&nbsp;<a href="https://www.fontpalace.com/font-download/MusiQwik/">MusiQwik</a>&nbsp;as it met my needs and with their font map I was able to quickly figure out what letter to use for which note.</p>



<h2>Making it look decent</h2>



<p>I now had all the components I needed to play sound and display notes on the browser, I could just throw all on the browser and do is thing but I wanted to make sure it look decent at the start and scale as I would add features to it. With that in mind I went ahead and decided to use&nbsp;<a href="https://www.carbondesignsystem.com/">Carbon Design System</a>&nbsp;to get some of the out of the box components and get some of the basics out of the way such as buttons and modals.</p>



<p>Can we see it?</p>



<p>Here is a screengrab of the site, you can also visit the site with the domain below.</p>



<figure class="wp-block-image"><img src="https://i1.wp.com/www.helmutgranda.com/images/music-director-start-screen.png?w=640&#038;ssl=1" alt="Next Music Director Screen Grab" data-recalc-dims="1"/></figure>



<p><a href="https://nextmusicdirector.com/">https://nextmusicdirector.com/</a></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">910</post-id>	</item>
		<item>
		<title>How to Add Analytics to Your NextJS App</title>
		<link>http://www.helmutgranda.com/how-to-add-analytics-to-your-nextjs-app/</link>
		
		<dc:creator><![CDATA[helmutgranda]]></dc:creator>
		<pubDate>Wed, 10 Feb 2021 15:27:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://www.helmutgranda.com/?p=906</guid>

					<description><![CDATA[During the development of your app or landing page at one time or another you will have the desire know where your traffic is coming from. You have different options when it comes to analytics providers, however, we know that the leader for analytics is Google and that is what we will be implementing on [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>During the development of your app or landing page at one time or another you will have the desire know where your traffic is coming from. You have different options when it comes to analytics providers, however, we know that the leader for analytics is Google and that is what we will be implementing on this short tutorial. In order for you to be able to successfully track your users we need to make sure two items are taken care of.</p>



<p>Note: If you already have a google Analytics account and also a custom Document file please skip the two links below.</p>



<p>Google Analytics account:</p>



<p>You just have a tracking ID to implement google analytics and for that you can follow this tutorial:&nbsp;<a href="https://support.google.com/analytics/answer/1008015?hl=en">https://support.google.com/analytics/answer/1008015?hl=en</a></p>



<p>Custom Document File for NextJS:</p>



<p>To create a custom Document file follow this steps:&nbsp;<a href="https://nextjs.org/docs/advanced-features/custom-document">https://nextjs.org/docs/advanced-features/custom-document</a></p>



<p>Once you have created a custom Google Analytics account you look for your tracking Id within the documentation, you may also be given a snippet like the one below. Go ahead and replace &#8220;YOUR_TRACKING_ID&#8221; with the one provided by Google.</p>



<pre class="wp-block-code"><code>&lt;script async src="https://www.googletagmanager.com/gtag/js?id=${YOUR_TRACKING_ID}"&gt;&lt;/script&gt;
&lt;script&gt;
  window.dataLayer = window.dataLayer || &#91;];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', ${YOUR_TRACKING_ID});
&lt;/script&gt;
</code></pre>



<p>Your custom Document file should look like the one below, if you have been working on it for a while it may be slightly different but the structure should be the same.</p>



<pre class="wp-block-code"><code>import Document, { Html, Head, Main, NextScript } from 'next/document'

class MyDocument extends Document {
  static async getInitialProps(ctx) {
    const initialProps = await Document.getInitialProps(ctx)
    return { ...initialProps }
  }

  render() {
    return (
      &lt;Html&gt;
        &lt;Head /&gt;
        &lt;body&gt;
          &lt;Main /&gt;
          &lt;NextScript /&gt;
        &lt;/body&gt;
      &lt;/Html&gt;)
  }
}

export default MyDocument
</code></pre>



<p>Finally your custom document with Analytics should look like something below:</p>



<pre class="wp-block-code"><code>import Document, { Html, Head, Main, NextScript } from 'next/document'

class MyDocument extends Document {
  static async getInitialProps(ctx) {
    const initialProps = await Document.getInitialProps(ctx)
    return { ...initialProps }
  }

  render() {
    return (
      &lt;Html&gt;
        &lt;Head /&gt;
        &lt;body&gt;
          &lt;Main /&gt;
          &lt;NextScript /&gt;
          &lt;script async src="https://www.googletagmanager.com/gtag/js?id=${YOUR_TRACKING_ID}"&gt;&lt;/script&gt;
          &lt;script&gt;
            window.dataLayer = window.dataLayer || &#91;];
            function gtag(){dataLayer.push(arguments);}
            gtag('js', new Date());
            gtag('config', ${YOUR_TRACKING_ID});
          &lt;/script&gt;
        &lt;/body&gt;
      &lt;/Html&gt;)
  }
}

export default MyDocument
</code></pre>



<p>That is all there is to it, once you have both pieces of code in place you should be able to start seeing traffic on your site.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">906</post-id>	</item>
		<item>
		<title>How I converted my site to NextJS</title>
		<link>http://www.helmutgranda.com/how-i-converted-my-site-to-nextjs/</link>
		
		<dc:creator><![CDATA[helmutgranda]]></dc:creator>
		<pubDate>Mon, 08 Feb 2021 15:16:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://www.helmutgranda.com/?p=903</guid>

					<description><![CDATA[It is always challenging to decide what technology to use for your site; in the end, it is your “baby”, and as such, you want the best for it. I knew deep in me that I wanted to use React for this personal project, so I used Gatsby for the last version converting from WordPress.]]></description>
										<content:encoded><![CDATA[
<p>It is always challenging to decide what technology to use for your site; in the end, it is your “baby”, and as such, you want the best for it. I knew deep in me that I wanted to use React for this personal project, so I used Gatsby for the last version converting from WordPress. After that version was live, I decided to take it a step further and investigate NextJS. Luckily I had just taken a course by&nbsp;<a href="https://egghead.io/q/resources-by-colby-fayock">Colby Fayock</a>&nbsp;titled&nbsp;<a href="https://egghead.io/playlists/create-an-ecommerce-store-with-next-js-and-stripe-checkout-562c">Create an eCommerce Store with Next.js and Stripe Checkout</a>&nbsp;It was great and opened my eyes to how much potential Next.js has. By the way, I live-streamed taking the course on&nbsp;<a href="https://youtube.com/helmutgranda">YouTube</a>; if you would like to watch it, here are the links:</p>



<p><a href="https://www.youtube.com/watch?v=_nQC2krty2Y">Part 1</a></p>



<p><a href="https://www.youtube.com/watch?v=_nQC2krty2Y"><img src="https://i1.wp.com/i3.ytimg.com/vi/_nQC2krty2Y/maxresdefault.jpg?w=640" data-recalc-dims="1"></a></p>



<p><a href="https://www.youtube.com/watch?v=d-qwS0dMuqs">Part 2</a>&nbsp;</p>



<figure class="wp-block-image"><img src="https://i1.wp.com/i3.ytimg.com/vi/_nQC2krty2Y/maxresdefault.jpg?w=640" alt="" data-recalc-dims="1"/></figure>



<blockquote class="wp-block-quote"><p>I had to break it into two parts because after about 40 minutes I lost my internet connection.</p></blockquote>



<p>You can also find my version after taking the course here:</p>



<p><a href="https://nextjs-vercel-eosin.vercel.app/">Space Jelly Shop</a></p>



<p>With the exposure to NextJS, I took it upon myself to change my site’s layout, using NextJS, and it was a great ride! It took about 16 hours to transform. Two of the most fun things to learn was when to use useEffect and useLayoutEffect in hooks.</p>



<p>Creating an account and using&nbsp;<a href="https://vercel.com/">Vercel</a>&nbsp;was a breeze; it took minutes to get it up and running with Vercel, and after connecting it with&nbsp;<a href="https://github.com/">GitHub</a>, my builds were automatic and perfect for quick modification and UI tests.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">903</post-id>	</item>
		<item>
		<title>Moving almost 20 years worth of WordPress content to Gatsby going Headless</title>
		<link>http://www.helmutgranda.com/moving-almost-20-years-worth-of-wordpress-content-to-gatsby-going-headless/</link>
		
		<dc:creator><![CDATA[helmutgranda]]></dc:creator>
		<pubDate>Fri, 11 Dec 2020 05:32:06 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://www.helmutgranda.com/?p=900</guid>

					<description><![CDATA[I have for a long time toyed with the idea of moving my content to something like Gatsby. Although I tried to do so by exporting all the content to markdown, I wanted to continue using the capabilities that WordPress CMS offers, so with that in mind, this is the process of moving what is [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>I have for a long time toyed with the idea of moving my content to something like Gatsby. Although I tried to do so by exporting all the content to markdown, I wanted to continue using the capabilities that WordPress CMS offers, so with that in mind, this is the process of moving what is almost 20 years worth of content into Gatsby going Headless, granted I do not have thousands of posts to move, but it still seems like a great opportunity to explore the possibilities. </p>



<p>You can see the WIP here: https://helmutgranda.netlify.app/</p>



<p></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">900</post-id>	</item>
		<item>
		<title>Five users for the Spread Operator in JavaScript</title>
		<link>http://www.helmutgranda.com/five-users-for-the-spread-operator-in-javascript/</link>
		
		<dc:creator><![CDATA[helmutgranda]]></dc:creator>
		<pubDate>Thu, 11 Jul 2019 17:27:50 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://www.helmutgranda.com/?p=890</guid>

					<description><![CDATA[5 Uses for the Spread Operator Copy array Concatenate arrays Pass arguments as arrays Copy Object Merge Object Find more details on the source link above, thanks to @laurie for putting this list together https://dev.to/laurieontech]]></description>
										<content:encoded><![CDATA[
<p><a href="https://dev.to/laurieontech/5-uses-for-the-spread-operator-b9i" title="5 users for the spread operator">5 Uses for the Spread Operator</a></p>



<h2>Copy array</h2>



<pre class="wp-block-code"><code>let arr = [1,2,3,4]
let copy = [...arr]
// copy is [ 1, 2, 3, 4 ]
</code></pre>



<h2>Concatenate arrays</h2>



<pre class="wp-block-code"><code>let arr1 = [1,2,3,4]
let arr2 = [5,6,7,8]
let concat = [...arr1, ...arr2]
// concat is [ 1, 2, 3, 4, 5, 6, 7, 8 ]
</code></pre>



<h2>Pass arguments as arrays</h2>



<pre class="wp-block-code"><code>function dev(x, y, z) { }
var args = [0, 1, 2]
dev(...args) // call function
</code></pre>



<h2>Copy Object</h2>



<pre class="wp-block-code"><code>let obj = {a: 1, b: 2, c: 3}
let copy = {...obj}
// obj is {a: 1, b: 2, c: 3}
</code></pre>



<h2>Merge Object</h2>



<pre class="wp-block-code"><code>let obj1 = {a: 1, b: 2, c: 3}
let obj1 = {d: 4, e: 5, f: 6}
let merge = {...obj1, ...obj2}
// merge is {a: 1, b: 2, c: 3, d: 4, e: 5, f: 6}
</code></pre>



<p>Find more details on the source link above, thanks to @laurie for putting this list together <a href="https://dev.to/laurieontech">https://dev.to/laurieontech</a></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">890</post-id>	</item>
		<item>
		<title>Transform black into any given color with CSS filters</title>
		<link>http://www.helmutgranda.com/transform-black-into-any-given-color-with-css-filters/</link>
		
		<dc:creator><![CDATA[helmutgranda]]></dc:creator>
		<pubDate>Thu, 11 Jul 2019 16:36:38 +0000</pubDate>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[programming]]></category>
		<guid isPermaLink="false">http://www.helmutgranda.com/?p=873</guid>

					<description><![CDATA[How to transform black into any given color using only CSS filters: My question is: given a target RGB color, what is the formula to recolor black (#000) into that color using only CSS filters? For an answer to be accepted, it would need to provide a function (in any language) that would accept the target [&#8230;]]]></description>
										<content:encoded><![CDATA[<p class="grid--cell fs-headline1 fl1 ow-break-word"><a class="question-hyperlink" href="https://stackoverflow.com/questions/42966641/how-to-transform-black-into-any-given-color-using-only-css-filters">How to transform black into any given color using only CSS filters</a>:</p>
<blockquote>
<p>My question is: given a target RGB color, what is the formula to recolor black (<code>#000</code>) into that color using only <a href="https://developer.mozilla.org/en/docs/Web/CSS/filter" rel="noreferrer">CSS filters</a>?</p>
<p>For an answer to be accepted, it would need to provide a function (in any language) that would accept the target color as an argument and return the corresponding CSS <code>filter</code> string.</p>
</blockquote>


<p>There are only a few number of SO questions which are worth reading and this one is for sure one of them, I really enjoyed reading the thought process from the author&#8217;s point of view and how complex this feature it is even though it seems so simple and something that should be readily available.  </p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">873</post-id>	</item>
		<item>
		<title>Instagram filters with CSS3 Effects</title>
		<link>http://www.helmutgranda.com/instagram-filters-with-css3-effects/</link>
		
		<dc:creator><![CDATA[helmutgranda]]></dc:creator>
		<pubDate>Tue, 09 Jul 2019 21:11:24 +0000</pubDate>
				<category><![CDATA[intagram]]></category>
		<guid isPermaLink="false">https://www.helmutgranda.com/?p=870</guid>

					<description><![CDATA[Instagram filters recreated using CSS3 filter effects Ever wanted to recreate Instagram filters on the fly using CSS3 (without needing to open a graphics program)? Now you can! Using the new filters feature in CSS3, you can recreate all of the Instagram filters. I have, with varying levels of success, recreated every Instagram filter. They’re [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><a href="#"> Instagram filters recreated using CSS3 filter effects </a></p>



<blockquote class="wp-block-quote"><p>Ever wanted to recreate Instagram filters on the fly using CSS3 (without needing to open a graphics program)? Now you can!</p><p>Using the new filters feature in CSS3, you can recreate all of the Instagram filters. I have, with varying levels of success, recreated every Instagram filter. They’re definitely not perfect, but they show how CSS3 can be used to do things that weren’t possible before. The CSS code is included with each filter, so you can use them as is or play around for more accuracy.</p></blockquote>



<p>It is amazing that just a few years ago you had to fire up Photoshop or a similar product in order to produce effects like those in Instagram, but thanks to how far the web has come and the tools available to browsers you only need your imagination to create something similar. </p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">870</post-id>	</item>
		<item>
		<title>Blank Target vulnerability</title>
		<link>http://www.helmutgranda.com/blank-target-vulnerability/</link>
		
		<dc:creator><![CDATA[helmutgranda]]></dc:creator>
		<pubDate>Tue, 09 Jul 2019 16:19:24 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://www.helmutgranda.com/?p=865</guid>

					<description><![CDATA[A developer that opens a new window or tab with target=‘_blank’ is exposing their users to a little known vulnerability which deals with a malicious code taking ownership of the new opened window. This can be easily solved by appending rel=“noopener noreferrer” to the anchor tags. With that said the URLs should look like this:]]></description>
										<content:encoded><![CDATA[
<p>A developer that opens a new window or tab with  <code>target=‘_blank’</code> is exposing their users to a little known vulnerability which deals with a malicious code taking ownership of the new opened window.</p>



<p>This can be easily solved by appending <code>rel=“noopener noreferrer”</code> to the anchor tags. With that said the URLs should look like this:</p>



<pre class="wp-block-code"><code>&lt;a href="newpage.html" target="_blank" rel="noopener noreferrer">New Page&lt;/a>
</code></pre>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">865</post-id>	</item>
		<item>
		<title>Progressive web apps</title>
		<link>http://www.helmutgranda.com/progressive-web-apps/</link>
		
		<dc:creator><![CDATA[Helmut Granda]]></dc:creator>
		<pubDate>Tue, 27 Jun 2017 20:57:37 +0000</pubDate>
				<category><![CDATA[AS Burst]]></category>
		<guid isPermaLink="false">http://www.helmutgranda.com/?p=837</guid>

					<description><![CDATA[Wikipedia: https://en.wikipedia.org/wiki/Progressive_web_app Google: https://developers.google.com/web/progressive-web-apps/ Mozilla: https://developer.mozilla.org/en-US/Apps/Progressive]]></description>
										<content:encoded><![CDATA[<p>Wikipedia:</p>
<p><a href="https://en.wikipedia.org/wiki/Progressive_web_app">https://en.wikipedia.org/wiki/Progressive_web_app</a></p>
<p>Google:</p>
<p><a href="https://developers.google.com/web/progressive-web-apps/">https://developers.google.com/web/progressive-web-apps/</a></p>
<p>Mozilla:</p>
<p><a href="https://developer.mozilla.org/en-US/Apps/Progressive">https://developer.mozilla.org/en-US/Apps/Progressive</a></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">840</post-id>	</item>
	</channel>
</rss>
