<?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: Yonz</title>
    <description>The latest articles on DEV Community by Yonz (@yonz).</description>
    <link>https://dev.to/yonz</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%2F851903%2F72839813-539b-49b5-bf40-8e177c336746.jpeg</url>
      <title>DEV Community: Yonz</title>
      <link>https://dev.to/yonz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yonz"/>
    <language>en</language>
    <item>
      <title>Something is Brewin #LFW</title>
      <dc:creator>Yonz</dc:creator>
      <pubDate>Sat, 11 Feb 2023 01:27:25 +0000</pubDate>
      <link>https://dev.to/yonz/something-is-brewin-lfw-4mdp</link>
      <guid>https://dev.to/yonz/something-is-brewin-lfw-4mdp</guid>
      <description>&lt;p&gt;A whole host of people are coming together to re-imagine the way data is handled in products. Due to the siloed and fractured nature of today's products consumers are paying the price. &lt;/p&gt;

&lt;p&gt;Check out the newly launched effort to re-imagine the internet with local-first data. &lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1623773053447729152-905" src="https://platform.twitter.com/embed/Tweet.html?id=1623773053447729152"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1623773053447729152-905');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1623773053447729152&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Change has to start somewhere, join and contribute. &lt;/p&gt;

&lt;p&gt;-Yonz&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>workplace</category>
    </item>
    <item>
      <title>Async Promise -&gt; [Promises]</title>
      <dc:creator>Yonz</dc:creator>
      <pubDate>Tue, 24 Jan 2023 21:21:23 +0000</pubDate>
      <link>https://dev.to/yonz/async-promise-hell-1p3o</link>
      <guid>https://dev.to/yonz/async-promise-hell-1p3o</guid>
      <description>&lt;p&gt;The post is about spawning promises from the result of a promise. I found myself in a weird patter when trying to fetch tweets for a list of twitter handles.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Bad Code
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;      if (args.handles?.length || args.handles?.length) {
        const tweetsByUsers = await fetchUsers({
          twitterAPI,
          ids: args.userIds,
          handles: args.handles
        }).then((users) =&amp;gt; {
          if (!users) return [];
          promises.push(
            ...Object.values(users).map((user) =&amp;gt; {
              fetchTweets(twitterAPI, user).then((tweetsByUser) =&amp;gt; {
                tweets.push(...tweetsByUser);
                return tweetsByUser;
              });
            })
          );
        });
        promises.push(tweetsByUsers);
      }
...
      await Promise.all(promises).catch((error) =&amp;gt; {
        console.warn("Error getting Tweets: ", error);
      });
      return tweets;

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  Working Code
&lt;/h2&gt;

&lt;p&gt;Eventually I cleaned it up with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;      const promises: any = [];
      if (args.handles?.length || args.handles?.length) {
        const twitterUsers = await fetchUsers({
          twitterAPI,
          ids: args.userIds,
          handles: args.handles
        });
        if (twitterUsers) {
          for (const user of Object.values(twitterUsers!)) {
            const fetchTweetPromise = fetchTweets(twitterAPI, user).then((tweetsByUser) =&amp;gt; {
              tweets.push(...tweetsByUser);
              return tweetsByUser;
            });
            promises.push(fetchTweetPromise);
          }
        }
      }
...
      await Promise.all(promises).catch((error) =&amp;gt; {
        console.warn("Error getting Tweets: ", error);
      });
      return tweets;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Takeaway 1: Pomise.all([promise1-&amp;gt;[promise1a,promise1b]] does not wait for promise 1a and 1b. &lt;br&gt;
Takeaway 1b: creatively trying to add promise1a and promise1b into top level fails. This is caused by a timing issue. Promise.all()  will be waiting on promises before promise1a and promise1b are added to promises. &lt;/p&gt;

&lt;p&gt;Takeaway 2 : &lt;code&gt;.then( a =&amp;gt; return new Promose())&lt;/code&gt; creates havoc on its own but &lt;code&gt;.then([users] =&amp;gt; return users.map(user-&amp;gt; new Promise(user))&lt;/code&gt; is a mind bender. &lt;/p&gt;

</description>
      <category>gratitude</category>
    </item>
    <item>
      <title>The React Way</title>
      <dc:creator>Yonz</dc:creator>
      <pubDate>Mon, 02 Jan 2023 23:19:40 +0000</pubDate>
      <link>https://dev.to/yonz/simple-react-questions-1glc</link>
      <guid>https://dev.to/yonz/simple-react-questions-1glc</guid>
      <description>&lt;p&gt;The world of react can be amazing and completely bizarre sometimes. After spending a year on react-native, the following issues continue to plague me. I plan to post follow up parts that answer each of the following issues. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Breaking react hooks rule&lt;/strong&gt;
What is the best way to share functionality across different components? For example, a data filter functionality?
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performant Sort&lt;/strong&gt;
Flatlist sorting is done by changing the data object to one that is sorted. That requirement combined with immutability means that a new array needs to be created and set.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Persisting Data&lt;/strong&gt;
Lack of binary support and lack of a proper background global loader turns persisting and loading data  into a landmine. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;16.67 ms for everything&lt;/strong&gt;
How to make sure your long running work doesn't freeze your UI. Found solutions like InteractionManager.runAfterInteractions, tried throwing await everywhere and making async handlers. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Node vs React Shims&lt;/strong&gt; How to properly handle crypto getRandomBytes, etc. Especially in react-native&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chained logic&lt;/strong&gt; Conditional rendering, conditional routing and other stage gating techniques&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;TLDR; The flexibility of react is a sword with two edges where you cut development time on one side but can also cut yourself by not following norms (which are hard to find btw). &lt;/p&gt;

&lt;p&gt;Feel free to comment if you have write ups for the above or just want to pile on. &lt;/p&gt;

</description>
      <category>emptystring</category>
    </item>
    <item>
      <title>RN Web3 Auth</title>
      <dc:creator>Yonz</dc:creator>
      <pubDate>Sat, 10 Dec 2022 04:01:08 +0000</pubDate>
      <link>https://dev.to/getallspark/rn-web3-auth-4l77</link>
      <guid>https://dev.to/getallspark/rn-web3-auth-4l77</guid>
      <description>&lt;p&gt;In keeping with our vision for user-owned authentication, we expended a lot of effort to get wallet based login to work -- a hefty feat in mobile. &lt;/p&gt;

&lt;p&gt;AllSpark uses Web3Auth to create a public private key pair. The newly created / already existing wallet is associated with your preferred social       login account. The sensitive application data is then encrypted in-device with a key derived from your wallet. &lt;/p&gt;

&lt;p&gt;In the near future the wallet login will allow us to do a few exciting things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Direct blockchain rewards to your account. &lt;/li&gt;
&lt;li&gt;Wallet phrase based login&lt;/li&gt;
&lt;li&gt;Wallet connect integration once we have replacement protocols for eth_getEncryptionPublicKey &lt;/li&gt;
&lt;li&gt;Wallet connect APIs for generating a similar flow. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Since an application is in an untrusted space, it creates a challenge for correctly setting up any form of authentication gates. In AllSpark the idea is that authentication is just the capability to decrypt the database (have access to decryption key from touchId or provision device with Web3Auth private key. &lt;/p&gt;

&lt;p&gt;Web3Auth provided a working solution after attempting and failing with a few different providers. The focus for dapps seems to create a selection bias for browser based login. &lt;br&gt;
1) Rownd.com&lt;br&gt;
2) Magic.link&lt;br&gt;
3) Moralis &lt;br&gt;
4) stych&lt;/p&gt;

&lt;p&gt;In a follow up post we will discuss our future plans and a more detailed write up with the issues encountered with these providers. &lt;/p&gt;

&lt;p&gt;Best,&lt;br&gt;
-Yonz&lt;/p&gt;

</description>
      <category>devto</category>
      <category>webdev</category>
      <category>showdev</category>
    </item>
    <item>
      <title>How do college football teams advance? --an ML story.</title>
      <dc:creator>Yonz</dc:creator>
      <pubDate>Mon, 05 Dec 2022 20:40:30 +0000</pubDate>
      <link>https://dev.to/yonz/how-do-college-teams-advance-an-ml-story-m2p</link>
      <guid>https://dev.to/yonz/how-do-college-teams-advance-an-ml-story-m2p</guid>
      <description>&lt;p&gt;Yes, this is another chat.openai post. The post demonstrates a real-world use case that highlights the power of LLMs and potentially next-gen search.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TLDR;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;GPT is better than Google for many queries. Comes right at a time when Google search is so packed with ads it’s borderline unusable.&lt;/p&gt;— cdixon.eth (@cdixon) &lt;a href="https://twitter.com/cdixon/status/1598698730642845696?ref_src=twsrc%5Etfw" rel="noopener noreferrer"&gt;December 2, 2022&lt;/a&gt;
&lt;/blockquote&gt; 
&lt;h2&gt;
  
  
  The task at hand
&lt;/h2&gt;
&lt;h3&gt;
  
  
  How do college football teams advance?
&lt;/h3&gt;

&lt;p&gt;Last week I learned that Ohio State still has a shot at the championship after the loss to Michigan on November 26th because USC dropped the ball. This didn't make sense so I started searching &lt;/p&gt;

&lt;h3&gt;
  
  
  Google Search
&lt;/h3&gt;

&lt;p&gt;For fear of being laughed at by friends I furiously googled &lt;br&gt;
for an answer during the first day and still did not find a satisfactory answer. &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Day 1: 30mins&lt;/th&gt;
&lt;th&gt;Day 2: 10 mins&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media2.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%2F6jwi6rxyucg4kk5wee8l.jpg" alt="Take 1" width="449" height="1981"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://media2.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%2F8d9916dgh71a1enf7kc2.jpg" alt="Tale 2" width="444" height="591"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Admitting defeat I asked my friends... I should have known better. See the succinct response below:&lt;br&gt;
&lt;a href="https://media2.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%2Fxl7gyq9g9929txmdzb5o.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fxl7gyq9g9929txmdzb5o.jpg" alt="Friends response" width="651" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Andi Search
&lt;/h3&gt;

&lt;p&gt;Okay then, let/s see what andi.search (a promising conversational search engine) can tell me...&lt;br&gt;
&lt;a href="https://media2.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%2Fgigo587hhplkc1457l0w.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fgigo587hhplkc1457l0w.jpg" alt="AndiSearch results" width="800" height="1150"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Close but no caviar!&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Enter ChatGPT
&lt;/h3&gt;

&lt;p&gt;At this point, I had just been blown away by &lt;a href="https://www.engraved.blog/building-a-virtual-machine-inside/" rel="noopener noreferrer"&gt;Frederic Besse turning ChatGPT into a Virtual Machine&lt;/a&gt; and started looking to auto-generate some code for some Oauth &lt;a href="http://paulgraham.com/schlep.html" rel="noopener noreferrer"&gt;Schleping&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fo17gsy1ed9oxstjbg9h3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fo17gsy1ed9oxstjbg9h3.jpg" alt="chatGPT codegne" width="790" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;:( I guess that is codex domain. Then it hit me, let me see what this bad boy can do with my recent query about college teams.&lt;/p&gt;

&lt;h3&gt;
  
  
  Enter chatGPT as search
&lt;/h3&gt;

&lt;p&gt;This is where the story gets exciting! &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;I managed to learn more in 5 minutes than my combined effort so far.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F43wtez24w2h2ogxaudtk.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F43wtez24w2h2ogxaudtk.jpg" alt="ChatGPT 1" width="773" height="696"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fh3az7xjhd19r6vnix26a.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fh3az7xjhd19r6vnix26a.jpg" alt="ChatGPT 2" width="792" height="795"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fr4xolrgq7grtqvuavirf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fr4xolrgq7grtqvuavirf.jpg" alt="ChatGPT 2" width="800" height="1731"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After this experience, I'm asking Santa for an Andi like search experience backed by chatGPT. It is during moments like this where you realize just how bad our 'good enough' solutions actually are.&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>aspdotnet</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>RN AllSpark Beta launching on 11/11</title>
      <dc:creator>Yonz</dc:creator>
      <pubDate>Thu, 20 Oct 2022 15:53:18 +0000</pubDate>
      <link>https://dev.to/getallspark/rn-allspark-beta-launching-on-1111-3a1a</link>
      <guid>https://dev.to/getallspark/rn-allspark-beta-launching-on-1111-3a1a</guid>
      <description>&lt;p&gt;Hello Everyone, &lt;br&gt;
At AllSpark, we are on a mission to bring about a local-first world. Our goal is to create a frictionless, user-centric and privacy first consumer world by moving authentication, storage and personalization to the edge. &lt;/p&gt;

&lt;p&gt;AllSpark is a smart content aggregator like Feedly but also adds integrations to pull content from products. The beta, built on react-native, comes pre-built with HN and Reddit streams and will continue to add content streams. Read more about our launch from: &lt;a href="https://allspark.substack.com/p/allspark-beta-announcement?r=18j1jl&amp;amp;utm_campaign=post&amp;amp;utm_medium=web" rel="noopener noreferrer"&gt;Announcement blog&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Explore the demo &amp;amp; join the waitlist at &lt;a href="https://www.getallspark.co/" rel="noopener noreferrer"&gt;GetAllSpark.co&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/SP9aihPNnAw"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;By building AllSpark data store and ml engine at the edge (in-device) we aim to to deliver local first auth (magic.link crypto login), data storage and machine learning. &lt;/p&gt;

&lt;p&gt;If you have researched local-first mobile DB's, drop a line in the comments. We are currently comparing Crypto Pouch, PouchDB, WatermelonDB and RxDs. &lt;/p&gt;

&lt;p&gt;Best,&lt;br&gt;
&lt;a class="mentioned-user" href="https://dev.to/yonz"&gt;@yonz&lt;/a&gt; &lt;/p&gt;

</description>
      <category>startup</category>
      <category>dweb</category>
      <category>reactnative</category>
    </item>
    <item>
      <title>Dw3b Part I: End to lock-in business models</title>
      <dc:creator>Yonz</dc:creator>
      <pubDate>Sat, 10 Sep 2022 17:43:51 +0000</pubDate>
      <link>https://dev.to/yonz/dweb-4ae0</link>
      <guid>https://dev.to/yonz/dweb-4ae0</guid>
      <description>&lt;p&gt;For a long time now, I have had the dream that one day there will be no passwords or signups and we finally get privacy respecting products that work across siloes resulting in a frictionless user-centric internet experience. The dream is readily achievable if we move data storage, personalization, and authentication to the edge (at the user level)&lt;/p&gt;

&lt;p&gt;Over the last 30 years, we have seen great value creation by companies with lock-in business models like Amazon, Google, Facebook, and Netflix.  These business models create frictionless experiences as long as users stay within the siloed walled garden resulting in high switching costs and lock-in effects. The deep insight is that the first large user base open model company will greatly disrupt these companies. An open model is an offshoot of web3 ideology featuring, frictionless, composable and user-owned principles. In practice this means that multiple applications would share authentication (crypto sign-in like Metamask/SIWE), data from multiple platforms is stored in user space (preferably in device). The benefits of such an architecture are endless:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Applications like mint.com which store clear text banking password to show you a dashboard will be simple queries and a static UI&lt;/li&gt;
&lt;li&gt;Privacy barriers will be a thing of the past. Imagine if you had a calorie counter that accessed your transactions to track restaurant and bar expenses. In today's model it is almost a foregone conclusion that you are the Product (i.e if its free your data is being sold). In an open model, the app and the data lives locally and you can rest easy giving transaction column access to the app knowing that your data stays private. &lt;/li&gt;
&lt;li&gt;Shared auth means death to passwords, and signup screens. Today, weather apps, scores for your team, word of the day and every other service asks you to signup and login. Let us explore a user story to demonstrate the frictionless experience. In this future: Jane decides to buy a coat she saw on her Instagram and clicks on the post to arrive at Zara.com. Zara.com then prompts her Metamask wallet to approve a read request for her data hub. Once approved, Zara.com is able to render a previous Zara jacket jane had purchased on Amazon and the jackets selected by her recommendation engine. After some short browsing, she buys the jacket with 1-click. This story has no signups, logins, walled gardens, or tedious credit card forms. Furthermore, Jane is able to access historical data (past purchases) and recommendations without ceding her privacy to Zara.com.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Since “The best way to predict the future is to create it”, I am building AllSpark, a product approach to delivering this vision. The AllSpark feed is content aggregator that surfaces content from the internet ranked with data from your connected accounts. Data and inference is done in a privacy-first model and crypto sign-in in under development through a partnership with Rownd.com. Our mission is to hit critical velocity with the number of users and turn AllSpark into a platform for web3 builders inline to the heroic work being done by Verida.io, Fission.codes and Inrupt. Checkout the prototype at &lt;a href="https://getallspark.co" rel="noopener noreferrer"&gt;https://getallspark.co&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Stay tuned for Part II from &lt;a href="https://dev.to/getallspark"&gt;https://dev.to/getallspark&lt;/a&gt; &lt;/p&gt;

</description>
      <category>web3</category>
      <category>openmodel</category>
      <category>startup</category>
    </item>
    <item>
      <title>Content sources for staff+ fullstack Devs</title>
      <dc:creator>Yonz</dc:creator>
      <pubDate>Fri, 22 Jul 2022 18:39:00 +0000</pubDate>
      <link>https://dev.to/yonz/content-for-fullstack-staff-devs-3l7i</link>
      <guid>https://dev.to/yonz/content-for-fullstack-staff-devs-3l7i</guid>
      <description>&lt;p&gt;Has anyone tried &lt;a href="https://app.codecrafters.io/tracks/go" rel="noopener noreferrer"&gt;CodeCrafters&lt;/a&gt; to hone their dev skills? I find that the devil lies in the tradeoffs and not in knowing the minutiae of a particular language. &lt;/p&gt;

&lt;p&gt;Personally working on non-blocking Java web backends, two way data binding in Angular, state isolation with react, moving from years of REST API &amp;amp; MYSQL wrangling to graphQL.. I know there is a lot to learn but rare to find awesome content like: &lt;a href="https://dev.to/ruizb/introduction-179d"&gt;https://dev.to/ruizb/introduction-179d&lt;/a&gt; by &lt;a class="mentioned-user" href="https://dev.to/ruizb"&gt;@ruizb&lt;/a&gt;&lt;/p&gt;

</description>
      <category>fullstack</category>
      <category>staffplus</category>
      <category>learn</category>
    </item>
  </channel>
</rss>
