<?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>Forem: Poleselfg</title>
    <description>The latest articles on Forem by Poleselfg (@poleselfg).</description>
    <link>https://forem.com/poleselfg</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%2F266398%2F125962e4-c154-4d96-a064-0b7ad2bc3678.jpg</url>
      <title>Forem: Poleselfg</title>
      <link>https://forem.com/poleselfg</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/poleselfg"/>
    <language>en</language>
    <item>
      <title>Why AI Can't Replace the Magic of Software Engineering: A Tale of Two Tech Titans</title>
      <dc:creator>Poleselfg</dc:creator>
      <pubDate>Fri, 03 Feb 2023 09:42:14 +0000</pubDate>
      <link>https://forem.com/poleselfg/why-ai-cant-replace-the-magic-of-software-engineering-a-tale-of-two-tech-titans-1447</link>
      <guid>https://forem.com/poleselfg/why-ai-cant-replace-the-magic-of-software-engineering-a-tale-of-two-tech-titans-1447</guid>
      <description>&lt;p&gt;AI and software engineering are two peas in a pod. While AI is like the cool, tech-savvy cousin who always knows the latest gadgets and trends, software engineers are like the steady, reliable uncle who always gets the job done. And just like you can't replace your uncle with your cool cousin, AI can't replace software engineers.&lt;/p&gt;

&lt;p&gt;Software engineers are the masterminds behind the software we use every day. They are the ones who take the concept of a software solution and turn it into a reality. They have the skills and expertise to design, develop, and maintain complex software systems, taking into account factors like user experience, security, scalability, and more. It's like they have a magical ability to understand the needs of both businesses and users, and they use their powers to create software that solves real-world problems.&lt;/p&gt;

&lt;p&gt;AI, on the other hand, is the tech-savvy cousin who can automate routine tasks, making software engineers' lives a little easier. Think of AI as the ultimate sidekick who can help with code refactoring, testing, and debugging. It's like having a personal robot that does all the boring stuff, freeing up software engineers to focus on the fun stuff.&lt;/p&gt;

&lt;p&gt;But even the coolest sidekicks need guidance from their superhero mentors. AI algorithms are only as good as the data they are trained on, and software engineers are the ones who curate and clean this data. They make sure that AI systems are working as intended and that they are providing accurate results. Without software engineers, AI would be like a superhero without a suit – it might look cool, but it wouldn't be as effective.&lt;/p&gt;

&lt;p&gt;In conclusion, AI and software engineering are two sides of the same coin. AI can't replace software engineers, just like a sidekick can't replace a superhero. Software engineers and AI complement each other, working together to create software solutions that are both intelligent and user-friendly. So, let's give a round of applause to the steady, reliable uncles (software engineers) and the cool, tech-savvy cousins (AI) of the tech world!&lt;/p&gt;

</description>
      <category>crypto</category>
      <category>ethereum</category>
      <category>blockchain</category>
      <category>web3</category>
    </item>
    <item>
      <title>Frontend, La primera barrera de seguridad de tu proyecto.</title>
      <dc:creator>Poleselfg</dc:creator>
      <pubDate>Wed, 09 Jun 2021 18:13:47 +0000</pubDate>
      <link>https://forem.com/poleselfg/frontend-la-primera-barrera-de-seguridad-de-tu-proyecto-17i8</link>
      <guid>https://forem.com/poleselfg/frontend-la-primera-barrera-de-seguridad-de-tu-proyecto-17i8</guid>
      <description>&lt;h3&gt;
  
  
  A veces a los desarrolladores frontend se nos va de la cabeza un poco el tema de la seguridad. Pensando en la calidad de un sitio web, generalmente nos concentramos en rendimiento, SEO y accesibilidad. Sin embargo, la capacidad del sitio web de estar preparado ante ataques maliciosos no es la ideal, Importante! ya que backend y frontend son responsables de la seguridad de los datos que comparten.
&lt;/h3&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%2Fuploads%2Farticles%2Fcougdt0yaugwpviux19a.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcougdt0yaugwpviux19a.jpg" alt="hacker image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ¡Usuarios malintencionados pueden comprometer el frontend de tu aplicación, no lo dudes ni por un momento! Pero por suerte podemos tomar medidas para estar más seguro. ¡Y acá va una lista de 6 consejos!
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;PROTÉGETE EN CONTRA DE XSS
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fywcifs40b0x97j49h67d.png" alt="xss"&gt;
En primer lugar es importante tener en cuenta que con esta vulnerabilidad, los atacantes explotan la confianza que un usuario tiene en un sitio en particular, y esto nos da una dimensión del impacto que puede tener.
Este tipo de vulnerabilidad puede ser explotada de dos maneras: de forma reflejada y de forma almacenada. 
A continuación, haré una breve explicación de cada una.
&lt;strong&gt;Reflejada:&lt;/strong&gt; Este tipo consiste en meter código a través de un link, para que el link se ejecute en el browser de la victima, dentro de la página.
&lt;strong&gt;Almacenada:&lt;/strong&gt; Consiste en meter código a través de algún campo dinámico dentro de la página que lo permita y lo muestre en algún lado, para que ese código se ejecute cuando otros usuarios accedan a la página.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Cuando se introduce un código malicioso desde la entrada del usuario, esto se puede bloquear al proporcionar "X-XSS-Protection": encabezado "1; mode = block". Por ejemplo, desea dirigirse a los usuarios por sus nombres y vincularlos mediante correos electrónicos de marketing. James Hall, director de Parallax, sugiere agregar ? name = James en la cadena de consulta, y luego agregar al DOM. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;TIPOS CONFIABLES&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuedt0gxbmxhiadgsj7tl.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%2Fuploads%2Farticles%2Fuedt0gxbmxhiadgsj7tl.png" alt="Confiable Types"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Los frameworks de frontend modernos como Angular o React no son totalmente inmunes a los ataques XSS. Liran Tal, miembro del Grupo de trabajo de seguridad de Node.js, recomienda types confiables para resolver los problemas con XSS, como el uso de APIs sensibles (innerHTML).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;PREVENIR ATAQUES DE CLICKJACKING&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvg77p64j924eheycxcol.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%2Fuploads%2Farticles%2Fvg77p64j924eheycxcol.png" alt="Clickjacking"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Clickjacking es un ataque en el que un usuario es un truco para hacer clic en una página web o un elemento que no forma parte del sitio. Esto hará que los usuarios proporcionen sin saberlo credenciales o información confidencial, descarguen programa maligno, compren un producto en línea o transfieran dinero. Por lo tanto, puede protegerse contra este ataque con el encabezado X-Frame-Options.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;UI FRAMEWORKS&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy2apse4ze6nrc6h3v0d6.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy2apse4ze6nrc6h3v0d6.jpg" alt="UI FRAMEWORKS"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Con frameworks como React, Vue y Angular han desarrollado una seguridad sólida, que tienen la posibilidad de eliminar los riesgos de los ataques XSS. Automáticamente, una salida HTML codificada reduce la necesidad de usar API DOM susceptibles a XSS. Por lo tanto, comienza a dar nombres inequívocos a métodos potencialmente peligrosos, como dangerouslySetInnerHTML.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;TENGAN CUIDADO CON GOOGLE TAG MANAGER&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fald50cixywk3iyoc23wk.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%2Fuploads%2Farticles%2Fald50cixywk3iyoc23wk.png" alt="gtm danger"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Al usar Google Tag Manager, puede agregar los últimos scripts de seguimiento, chatbot de soporte y Hotjar para análisis de usuarios. Sin embargo, si su cuenta de Google es pirateada, se puede agregar cualquier arbitrario a JavaScript en su sitio web. Por ejemplo, sus usuarios se dirigen a una página de pago falsa para completar su pedido y envían el dinero a otro lugar.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;POTENTE POLÍTICA DE SEGURIDAD DE CONTENIDO (CSP)&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg7jjia7f1adrucnmpp0c.jpeg" 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%2Fuploads%2Farticles%2Fg7jjia7f1adrucnmpp0c.jpeg" alt="csp"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;¿Alguna vez te has preguntado si deberías confiar en todo lo que envía el servidor? Siempre debe colocar un fuerte encabezado Content-Security-Policy HTTP. Esto solo permitirá que sea confiable elaborar parte del contenido en el navegador. CSP puede detectar ataques tales como scripting entre sitios (XSS) y clickjacking.&lt;br&gt;
Con un CSP sólido puedes eliminar la ejecución de un código potencialmente malicioso y restringir el dominio mientras se cargan recursos externos. Además, las aplicaciones solo confían en los scripts de apis.xyz.com, self y algunas otras.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hoy en día, la seguridad se ha convertido en una prioridad para muchas empresas. Estos ataques maliciosos pueden ocurrir a sitios grandes o pequeños. Se deben cuidar los datos de los clientes, ya que pueden producirse errores, y es bastante común de hecho, al implementar un sitio web o una aplicación. Los clientes tienen mayores expectativas sobre la seguridad de su información. Con estos 6 consejos de seguridad para frontend, puede proteger y reducir vulnerabilidades porque ningun cuidado jamas es suficiente, y como desarrolladores debemos estar mas al corriente de los problemas actuales y estar al tanto de como evitarlos.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.hi-im-pole.com/" rel="noopener noreferrer"&gt;More About me&lt;/a&gt;    &lt;/p&gt;

</description>
      <category>frontend</category>
      <category>security</category>
      <category>computerscience</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>Las últimas NOVEDADES de CSS en 2021 parte 1</title>
      <dc:creator>Poleselfg</dc:creator>
      <pubDate>Tue, 16 Mar 2021 18:18:39 +0000</pubDate>
      <link>https://forem.com/poleselfg/las-ultimas-novedades-de-css-en-2021-parte-1-52l9</link>
      <guid>https://forem.com/poleselfg/las-ultimas-novedades-de-css-en-2021-parte-1-52l9</guid>
      <description>&lt;h6&gt;
  
  
  CSS está creciendo en alcance y poder con cada año que pasa. Es un gran momento para ser desarrollador web, pero mantenerse actualizado con las funciones más recientes puede ser un desafío.
&lt;/h6&gt;

&lt;h6&gt;
  
  
  Para que no sea un dolor de cabeza, aca estan las ultimas novedades, al menos del ultimo año y lo que llevamos de 2021.
&lt;/h6&gt;

&lt;h1&gt;
  
  
  Conical gradients
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;La función de &lt;strong&gt;conic-gradient&lt;/strong&gt; se puede utilizar para crear una gama interesante de patrones de imagen, como formas cónicas, gráficos circulares, ruedas de colores y superficies brillantes.&lt;/p&gt;

&lt;p&gt;Los degradados cónicos rotan las paradas de color alrededor de un punto central (en lugar de irradiar desde un punto central como un degradado radial). Las paradas de color de degradado cónicas se colocan alrededor de la circunferencia de un círculo.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Para crear un gráfico circular, usamos paradas de color que se superponen (tienen transiciones abruptas).&lt;/em&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%2Fuploads%2Farticles%2Fqww94n44zpe989we29dw.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%2Fuploads%2Farticles%2Fqww94n44zpe989we29dw.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;pie-chart&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;conic-gradient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="no"&gt;red&lt;/span&gt; &lt;span class="m"&gt;120deg&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="no"&gt;green&lt;/span&gt; &lt;span class="m"&gt;120deg&lt;/span&gt; &lt;span class="m"&gt;240deg&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt; &lt;span class="m"&gt;240deg&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;em&gt;La función&lt;/em&gt; &lt;strong&gt;repeating-conic-gradient()&lt;/strong&gt; &lt;em&gt;ofrece la posibilidad de crear impresionantes patrones repetidos con una breve lista de parámetros.&lt;/em&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%2Fuploads%2Farticles%2F6zkri4o5dqbnsyhxzzpg.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%2Fuploads%2Farticles%2F6zkri4o5dqbnsyhxzzpg.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.sunburst&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;repeating-conic-gradient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="no"&gt;red&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;15deg&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="no"&gt;darkred&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;30deg&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;h5&gt;
  
  
  Browser Support
&lt;/h5&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%2Fuploads%2Farticles%2F4rxyu9krp6ljlo7mowd8.jpeg" 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%2Fuploads%2Farticles%2F4rxyu9krp6ljlo7mowd8.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  The Aspect Ratio Feature
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;Otra característica nueva es la relación de aspecto, que es la relación proporcional entre ancho y alto. Mantener una relación de aspecto consistente es importante para crear diseños receptivos y para evitar cambios de diseño acumulativos (una métrica de rendimiento vital de la web).&lt;/p&gt;

&lt;p&gt;Algunos ejemplos de dónde se suele utilizar la relación de aspecto:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Creación de contenedores de marcador de posición para el contenido que se cargará&lt;/li&gt;
&lt;li&gt;Creación de componentes consistentes y de tamaño uniforme, como tarjetas&lt;/li&gt;
&lt;li&gt;Creación de iframes receptivos&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Esta propiedad le permite fijar la relación de aspecto en cualquier elemento. Las imágenes y los videos tienen una relación de aspecto intrínseca, pero otros elementos no.&lt;/p&gt;

&lt;p&gt;La sintaxis es muy sencilla. El valor es: la relación de ancho, una barra inclinada y la relación de altura.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.widescreen&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;aspect-ratio&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;16&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;9&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;strong&gt;Es importante tener en cuenta que los elementos no respetarán la relación de aspecto si se definen tanto la altura como el ancho para un elemento.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/robjoeol/pen/oNYvRJg" rel="noopener noreferrer"&gt;PROBAR EN CODEPEN&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Puede empezar a utilizar la propiedad de inmediato y utilizar unA feature query para proporcionar una alternativa, como se muestra a continuación.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.standard&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;aspect-ratio&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;4&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;@supports&lt;/span&gt; &lt;span class="n"&gt;not&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;aspect-ratio&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;4&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nc"&gt;.standard&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;16rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;9rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h5&gt;
  
  
  Browser Support
&lt;/h5&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%2Fuploads%2Farticles%2Fsb98ootdb1b5azrqfnyg.jpeg" 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%2Fuploads%2Farticles%2Fsb98ootdb1b5azrqfnyg.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Content-visibility property
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;La propiedad de visibilidad del contenido es una nueva propiedad de CSS que puede mejorar el rendimiento de la representación de la página. Permite al navegador omitir el trabajo de renderizado de un elemento hasta que sea necesario (cuando un elemento está a la vista). Si una gran parte de su contenido está fuera de la pantalla, aprovechar esta propiedad puede reducir drásticamente el tiempo de carga inicial de una página.&lt;/p&gt;

&lt;p&gt;Aprovechar los beneficios de la visibilidad del contenido requiere que considere qué contenido debe cargarse inicialmente y qué contenido podría aplazarse. La propiedad tiene una opción automática que permite al navegador decidir si puede omitir la representación de un elemento.&lt;/p&gt;

&lt;p&gt;Hay algunas consideraciones importantes al usar esta propiedad, como:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;La altura de la página: el navegador hará que un elemento con visibilidad de contenido: auto o visibilidad de contenido: oculto sea invisible al hacer que su altura sea cero hasta que se renderice. Esto cambia la altura de la página y el desplazamiento.Puede usar la propiedad content-intrinsic-size para dar una altura explícita al elemento para compensar esto, es probable que esto sea una suposición de su parte, pero no es necesario que lo esté. ¡exacto! Orkan analiza este tema en este artículo.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;El impacto en la accesibilidad: si utiliza la visibilidad del contenido en una sección que tiene encabezados y puntos de referencia, los lectores de pantalla no podrán acceder a ellos cuando se cargue la página. Desafortunadamente, esto degrada la accesibilidad de su contenido. Marcy Sutton analiza este caso de uso para una solicitud de extracción reciente que revisó para Dev.to.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Browser Support
&lt;/h5&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%2Fuploads%2Farticles%2Fcw2aa3hxb3fdcqb7fr7m.jpeg" 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%2Fuploads%2Farticles%2Fcw2aa3hxb3fdcqb7fr7m.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  CSS SubGrid
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;CSS Subgrid hace que varios patrones de diseño difíciles sean mucho más sencillos de realizar. Es la guinda y la guinda del pastel CSS Grid.&lt;/p&gt;

&lt;p&gt;Si ya conoces la cuadrícula CSS, no requerirá mucho esfuerzo aprender la subcuadrícula CSS. La nueva sintaxis es breve y sencilla.&lt;/p&gt;

&lt;p&gt;Conceptualmente, una cuadrícula definida como subcuadrícula es prácticamente lo mismo que una cuadrícula anidada normal, pero comparte las pistas de la cuadrícula principal. La recompensa es que proporciona una forma de alinear una cuadrícula anidada con su cuadrícula principal.&lt;/p&gt;

&lt;p&gt;Un ejemplo común sería un diseño de tarjeta que tiene diferentes secciones. Estas secciones pueden variar en tamaño según el contenido. Con una cuadrícula anidada regular, no puede mantener la alineación vertical de las mismas secciones entre diferentes tarjetas.&lt;/p&gt;
&lt;/blockquote&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%2Fuploads%2Farticles%2F0um65zml8ia7ivl4zzv4.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%2Fuploads%2Farticles%2F0um65zml8ia7ivl4zzv4.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="py"&gt;grid-template-columns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;repeat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="n"&gt;fr&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="py"&gt;gap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;Si&lt;/span&gt; &lt;span class="nt"&gt;cambiamos&lt;/span&gt; &lt;span class="nt"&gt;la&lt;/span&gt; &lt;span class="nt"&gt;tarjeta&lt;/span&gt; &lt;span class="nt"&gt;para&lt;/span&gt; &lt;span class="nt"&gt;que&lt;/span&gt; &lt;span class="nt"&gt;sea&lt;/span&gt; &lt;span class="nt"&gt;una&lt;/span&gt; &lt;span class="nt"&gt;subcuadrícula&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;podemos&lt;/span&gt; &lt;span class="nt"&gt;conseguir&lt;/span&gt; &lt;span class="nt"&gt;que&lt;/span&gt; &lt;span class="nt"&gt;las&lt;/span&gt; &lt;span class="nt"&gt;secciones&lt;/span&gt; &lt;span class="nt"&gt;estén&lt;/span&gt; &lt;span class="nt"&gt;perfectamente&lt;/span&gt; &lt;span class="nt"&gt;alineadas&lt;/span&gt; &lt;span class="nt"&gt;verticalmente&lt;/span&gt;

&lt;span class="nc"&gt;.card&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&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;blockquote&gt;
&lt;p&gt;Si cambiamos la tarjeta para que sea una subcuadrícula, podemos conseguir que las secciones estén perfectamente alineadas verticalmente&lt;/p&gt;
&lt;/blockquote&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%2Fuploads%2Farticles%2Fhj2xzvereb0rqxy97r46.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%2Fuploads%2Farticles%2Fhj2xzvereb0rqxy97r46.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.card&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="py"&gt;grid-template-rows&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;subgrid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;grid-row&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="n"&gt;span&lt;/span&gt; &lt;span class="m"&gt;3&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;blockquote&gt;
&lt;p&gt;por las dudas usamos un fallback&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="k"&gt;@supports&lt;/span&gt; &lt;span class="n"&gt;not&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;grid-template-rows&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;subgrid&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nc"&gt;.card&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c"&gt;/* ..alternative layout */&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://codepen.io/robjoeol/pen/eYBYvNJ" rel="noopener noreferrer"&gt;PROBAR EN CODEPEN&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Browser Support
&lt;/h5&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%2Fuploads%2Farticles%2Fxpv7ewytq1orbkj9rlqt.jpeg" 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%2Fuploads%2Farticles%2Fxpv7ewytq1orbkj9rlqt.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;y basicamente eso es todo por la parte 1, en breve estare subiendo la parte 2 con mas features nuevas e interezantes que podemos encontrar en CSS para este 2021&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  SALUDOS!!
&lt;/h1&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>frontend</category>
      <category>spanish</category>
    </item>
    <item>
      <title>💡 Tip Rapido: Fetch JSON data Desde un perfil publico simple sin Graph API</title>
      <dc:creator>Poleselfg</dc:creator>
      <pubDate>Thu, 14 Jan 2021 22:28:36 +0000</pubDate>
      <link>https://forem.com/poleselfg/tip-rapido-fetch-json-data-desde-un-perfil-publico-simple-sin-graph-api-6g8</link>
      <guid>https://forem.com/poleselfg/tip-rapido-fetch-json-data-desde-un-perfil-publico-simple-sin-graph-api-6g8</guid>
      <description>&lt;p&gt;Nunca quisieron obtener informacion de un perfil de instagram de una manera facil y sencilla? Bueno...&lt;/p&gt;

&lt;p&gt;En una de esas navegaciones nocturnas de poco dormir, me encontre con esta solucion, que por lo que pude ver esta poco difundida.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://www.instagram.com/{public_profile_name}/?__a=1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Resulta, que agregando el query ?__a=! al final de la direccion al perfil, podemos acceder a un JSON con toda la informacion publica del perfil.&lt;/p&gt;

&lt;p&gt;por ejemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;https://www.instagram.com/refactordevs/?__a=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;nos devuelve el siguiente JSON:&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%2F8ksa72r2fbpzpczkoko8.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%2F8ksa72r2fbpzpczkoko8.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Como pueden ver el JSON es muy y tenemos toda la informacion de la cuenta, inclusive, con unas pocas lineas de codigo, (en este caso en javascript), podemos obtener el feed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;async&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;getInstagramPictures&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;(profileName)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;baseUrl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.instagram.com"&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;profileUrl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;`$&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="err"&gt;baseUrl&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;/$&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="err"&gt;profileName&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;`;&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;jsonDataUrl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;`$&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="err"&gt;profileUrl&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;/?__a=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="err"&gt;`;&lt;/span&gt;&lt;span class="w"&gt;

  &lt;/span&gt;&lt;span class="err"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;response&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;await&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;fetch(jsonDataUrl);&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;jsonData&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;await&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;response.json();&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;pictures&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;jsonData.graphql.user.edge_owner_to_timeline_media.edges;&lt;/span&gt;&lt;span class="w"&gt;

  &lt;/span&gt;&lt;span class="err"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;(response.ok)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="err"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;pictures;&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;else&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="err"&gt;throw&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Error(pictures);&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

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

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;getInstagramPictures(&lt;/span&gt;&lt;span class="s2"&gt;"refactordevs"&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;.then(pictures&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;console.log(&lt;/span&gt;&lt;span class="s2"&gt;"Pictures:"&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;pictures))&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;.catch(error&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;console.error(&lt;/span&gt;&lt;span class="s2"&gt;"Error:"&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;error));&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Al realizar un bucle,se puede mostrar cada imagen o su miniatura.&lt;/p&gt;

&lt;p&gt;Tambien podriamos traer las imagenes de perfil, o cualquier tipo de informacion.&lt;/p&gt;

&lt;p&gt;solo basta con cambiar la siguiente linea:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const pictures = jsonData.graphql.user.edge_owner_to_timeline_media.edges;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Saludos! y espero que les sea util! &lt;/p&gt;

&lt;p&gt;Sources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/a/48674091" rel="noopener noreferrer"&gt;https://stackoverflow.com/a/48674091&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codelike.pro/fetch-instagram-posts-from-profile-without-__a-parameter/" rel="noopener noreferrer"&gt;https://codelike.pro/fetch-instagram-posts-from-profile-without-__a-parameter/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/teroauralinna/how-to-fetch-your-public-photos-from-instagram-without-the-api-3m50"&gt;https://dev.to/teroauralinna/how-to-fetch-your-public-photos-from-instagram-without-the-api-3m50&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>javascript</category>
      <category>tutorial</category>
      <category>firstpost</category>
      <category>spanish</category>
    </item>
  </channel>
</rss>
