<?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: Marco Castignoli</title>
    <description>The latest articles on DEV Community by Marco Castignoli (@marcocastignoli).</description>
    <link>https://dev.to/marcocastignoli</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%2F98058%2Fdd1c7a21-718b-44ce-b965-92603946584f.jpeg</url>
      <title>DEV Community: Marco Castignoli</title>
      <link>https://dev.to/marcocastignoli</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/marcocastignoli"/>
    <language>en</language>
    <item>
      <title>jQueReact</title>
      <dc:creator>Marco Castignoli</dc:creator>
      <pubDate>Tue, 09 Apr 2019 00:02:21 +0000</pubDate>
      <link>https://dev.to/marcocastignoli/jquereact-115d</link>
      <guid>https://dev.to/marcocastignoli/jquereact-115d</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;A stupid experiment (47 lines) to add declarative functionalities to jQuery&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Play here
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://codepen.io/marcocastignoli/pen/JVbvdZ"&gt;https://codepen.io/marcocastignoli/pen/JVbvdZ&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Download the repo &lt;a href="https://github.com/marcocastignoli/jQueReact"&gt;https://github.com/marcocastignoli/jQueReact&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do not install dependencies&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt;^C
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;simply open index.html in the browser.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Create a state
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;State2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;createState&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
        &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;asd&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;counter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;0&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Create a template, use &lt;strong&gt;data-bind&lt;/strong&gt; instead of &lt;em&gt;{this.state.variable}&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"test1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;h1&lt;/span&gt; &lt;span class="na"&gt;data-bind=&lt;/span&gt;&lt;span class="s"&gt;"title"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;h1&lt;/span&gt; &lt;span class="na"&gt;data-bind=&lt;/span&gt;&lt;span class="s"&gt;"counter"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;onclick=&lt;/span&gt;&lt;span class="s"&gt;"State2.counter++"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Increment&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;data-bind=&lt;/span&gt;&lt;span class="s"&gt;"title"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Connect the state with the template
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#test1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;bindState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;State2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Play with the state and watch the template update automagically 🧙
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="nx"&gt;State2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;counter&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;
    &lt;span class="nx"&gt;State2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ciao&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;It's late and I randomly though about it, I realized that it wasn't so hard to do, so I did it.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it really works?
&lt;/h2&gt;

&lt;p&gt;The state is handled by javascript's getters/setters. As you can see in the example above, I'm using the data attribute to keep the text value of the doms with the getter. Each time the setter is called, I search for all the elements that are binding with the updated state using jquery's &lt;code&gt;$('[data-state="..."]')&lt;/code&gt;, and I update them with the state getter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Would it be cool to build the same thing but without jQuery, same idea but with plain JS?
&lt;/h2&gt;

&lt;p&gt;You have to tell me!&lt;/p&gt;

</description>
      <category>react</category>
      <category>jquery</category>
    </item>
    <item>
      <title>I will start streaming free web development lesson on Twitch!</title>
      <dc:creator>Marco Castignoli</dc:creator>
      <pubDate>Sat, 09 Mar 2019 18:22:48 +0000</pubDate>
      <link>https://dev.to/marcocastignoli/i-will-start-streaming-free-web-development-lesson-on-twitch-4jn1</link>
      <guid>https://dev.to/marcocastignoli/i-will-start-streaming-free-web-development-lesson-on-twitch-4jn1</guid>
      <description>&lt;p&gt;&lt;a href="https://www.twitch.tv/marcocastignoli"&gt;https://www.twitch.tv/marcocastignoli&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hi guy, I'm a full stack developer, my name is Marco. I'm the founder of Nile (&lt;a href="http://nile.shopping/"&gt;http://nile.shopping/&lt;/a&gt;). If you want free web dev lessons show me your support leaving a comment (or an upvote) here!&lt;/p&gt;

&lt;p&gt;Also write down the topics you would love to learn!&lt;/p&gt;

&lt;p&gt;We created a group on Discord so we can decide things together :) Join us here! &lt;a href="https://discordapp.com/invite/MX6sP26"&gt;https://discordapp.com/invite/MX6sP26&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>I would love to start streaming free lessons about web development!</title>
      <dc:creator>Marco Castignoli</dc:creator>
      <pubDate>Sat, 09 Mar 2019 08:14:12 +0000</pubDate>
      <link>https://dev.to/marcocastignoli/i-would-love-to-start-streaming-free-lessons-about-web-development-bj3</link>
      <guid>https://dev.to/marcocastignoli/i-would-love-to-start-streaming-free-lessons-about-web-development-bj3</guid>
      <description>&lt;p&gt;I published this post on r/learnprogramming and it was going pretty good but unfortunatelluy it is against the subreddit's rules (autopromoting).&lt;/p&gt;

&lt;p&gt;Hi guy, I'm a full stack developer, my name is Marco. I'm the founder of Nile (&lt;a href="http://nile.shopping/"&gt;http://nile.shopping/&lt;/a&gt;). If you want free web dev lessons show me your support leaving a comment (or an upvote) here!&lt;/p&gt;

&lt;p&gt;Also write down the topics you would love to learn!&lt;/p&gt;

&lt;p&gt;We created a group on Discord so we can decide things together :) Join us here! &lt;br&gt;
&lt;a href="https://discordapp.com/invite/MX6sP26"&gt;https://discordapp.com/invite/MX6sP26&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Nile - a decentralized, commission-free, local-economy focused online shopping platform.</title>
      <dc:creator>Marco Castignoli</dc:creator>
      <pubDate>Tue, 05 Feb 2019 19:11:30 +0000</pubDate>
      <link>https://dev.to/marcocastignoli/nile-1p7i</link>
      <guid>https://dev.to/marcocastignoli/nile-1p7i</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Nile is a new open-source e-commerce platform focused on local economies which is decentralized and completely commission-free. We are a young and small team, we need contributors to work with us on a voluntary basis. Specifically, we’re looking for developers, designers, and content writers&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Commerce is as old as history, and it has always been a driving force for change since the very earliest of ancient societies.&lt;/p&gt;

&lt;p&gt;The Internet empowered us to buy and sell across the globe as easy as pushing a button. However, do we really have any power over our trades with large corporations running things around? Everywhere, large corporate beasts are putting local economies at risk, and this is worrying. Amazon, for example, has been involved in several scandals over the years. It has exercised control over book pricing and pushed many publishers to reduce the prices of their books and eBooks,&lt;a href="https://en.wikipedia.org/wiki/Amazon.com_controversies#Removal_of_competitors%27_products" rel="noopener noreferrer"&gt;[1]&lt;/a&gt; it has out priced local shopkeepers, and it has pressured most local shopkeepers to close down in a number of cities and towns in the US.&lt;a href="https://en.wikipedia.org/wiki/Amazon.com_controversies#Effects_on_small_businesses" rel="noopener noreferrer"&gt;[2]&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We, at Nile, recognise these issues! For this reason, we have set out a community-driven initiative to support local economies and restore the balance of power back in favor of the people.&lt;/p&gt;

&lt;p&gt;Global monopolies are obliterating and converting all competition under a single point of control. On the contrary, we're aiming to make markets decentralized and competitive again in order to improve economies and provide a better quality of services.&lt;/p&gt;

&lt;p&gt;Join us today in our effort to make the world a better place.&lt;/p&gt;




&lt;h1&gt;
  
  
  What is Nile?
&lt;/h1&gt;

&lt;p&gt;Nile is a &lt;strong&gt;decentralized&lt;/strong&gt; and &lt;strong&gt;commission-free&lt;/strong&gt; shopping platform that promotes &lt;strong&gt;local economies&lt;/strong&gt;. All the money you pay for goods or services goes directly to the seller. Nile is made to be, as far as possible, similar to the online shops you are already using. So, when you search for something, you will not even notice that you are using a decentralized system.&lt;/p&gt;

&lt;p&gt;Not only on Nile will you find general goods, but also general &lt;strong&gt;services&lt;/strong&gt; like car sharing. By using Nile you can create your own business employing a set of predefined &lt;strong&gt;components&lt;/strong&gt;. &lt;em&gt;For example, let's imagine that John has a huge washing machine at home. With Nile, he can start a laundry business just by creating his online store. He may decide to use a timer component, so that his clients can keep track of their dirty laundry status. He may also add a map component in order for customers to know where John is when he is delivering the laundry.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We think that there are too many blockchain projects around, and people are often scared about this fragile environment. Nile's architecture is built upon blockchain-free technologies such as IPFS. We created an infrastructure that works at its best for a metropolitan area. Thus, searching for local services and products is promoted inherently by the technology.&lt;/p&gt;

&lt;p&gt;Every aspect of Nile will be customizable, the seller decides his/her payment and delivery methods.&lt;/p&gt;

&lt;p&gt;Nile is a federation of ecommerces: we propose a standard way to publish store information on distributed filesystems. If you already have a store on an external platform you are able to join the Nile network.&lt;/p&gt;

&lt;h1&gt;
  
  
  Why Nile?
&lt;/h1&gt;

&lt;h2&gt;
  
  
  From a buyer's standpoint
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best prices.&lt;/strong&gt; Nile offers the best prices because no one is between you and the seller&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A broad variety of products and services.&lt;/strong&gt; Inside Nile you don't only find general goods, you also find food or services like transportation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trust.&lt;/strong&gt; Every seller is certified, and you probably already know the most of them because they are nearby you&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Choose from home.&lt;/strong&gt; Have you ever asked yourself where you can buy a product? You can check it using Nile, then you can buy it and wait at home, or you can go directly to the store&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  From a seller's standpoint
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Free.&lt;/strong&gt; Nile will always be free&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Easy.&lt;/strong&gt; Nile has a simple user interface, you will easilly be able to create your catalog&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Secure payments.&lt;/strong&gt; Nile allows you to accept secure online payments, even in the store&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Powerful.&lt;/strong&gt; Use components to bring your business to the next level&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  How it works
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Seller
&lt;/h2&gt;

&lt;p&gt;In the image to the left you see how the seller is able to create products and binding them to components. The seller can, for example, create a product and then binding it to a timer component, so when the user buys that product, the seller can communicate to the buyer the state of the order.&lt;/p&gt;

&lt;p&gt;In the image to the right you see how requests are handled by the seller, he/she can confirm orders and update product related component. For example he/she can assign a GPS signal to the order, the GPS signal from the delivery man, is then shared live with the client.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fwi92qt3r52cj9notz8mp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fwi92qt3r52cj9notz8mp.png" alt="seller"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Buyer
&lt;/h2&gt;

&lt;p&gt;In the image to the left you see how the buyer can browse the Nile application, stores are categorized by type.&lt;br&gt;
In the image to the right you see how the buyer visualize the GPS and the timer component.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fi4rcthxp7vq4gfhplc99.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fi4rcthxp7vq4gfhplc99.png" alt="buyer"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Our Values
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Privacy
&lt;/h2&gt;

&lt;p&gt;Data protection and user privacy is a huge topic today. The platform just saves the information which is needed and all users data is saved on the user's devices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Simplicity
&lt;/h2&gt;

&lt;p&gt;Keep it as simple as possible is our mantra here.&lt;/p&gt;

&lt;h2&gt;
  
  
  Permissionless access
&lt;/h2&gt;

&lt;p&gt;Everyone can join the system without any registration hurdles.&lt;/p&gt;

&lt;h2&gt;
  
  
  No costs
&lt;/h2&gt;

&lt;p&gt;Nile will always be free, There are no extra pay features or a pro version. The complete code is open source and free to use.&lt;/p&gt;

&lt;h1&gt;
  
  
  FAQ
&lt;/h1&gt;

&lt;h2&gt;
  
  
  I feel like the basis for your project is already covered by OpenBazaar
&lt;/h2&gt;

&lt;p&gt;We really like OpenBazaar, we spoke with their team about a possible collaboration. They are building a platform strictly bound to cryptocurrencies, with no restrictions. We are building a platform to support local economies, so we need to support FIAT currencies. Moreover it will be possible to moderate the content on Nile.&lt;/p&gt;

&lt;h2&gt;
  
  
  What about the delivery system?
&lt;/h2&gt;

&lt;p&gt;Right now we are focusing on this project. But before launching Nile we want to build a complementary application to handle deliveries. Our dream is to create a delivery system based upon the community, rewarding who delivers with discount or a small amount of money by the seller.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is Nile based on a Blockchain?
&lt;/h2&gt;

&lt;p&gt;No. It's based on basic web technologies which are durable and scalable. This allows Nile to run directly in the browser without forcly having to deal with cryptocurrencies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Can I pay with Cryptocurrencies?
&lt;/h2&gt;

&lt;p&gt;Yes. The Seller decides which payment method will be accepted. We will work together with many cryptocurrencies to provide them as a payment method. The seller can also choose from FIAT currencies like USD or Euro.&lt;/p&gt;

&lt;h1&gt;
  
  
  Contact and Contribute
&lt;/h1&gt;

&lt;p&gt;We want to build a community-driven online shopping platform, so we have some places, where the community can contribute with ideas, suggestions, code or just ask questions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code repositories
&lt;/h2&gt;

&lt;p&gt;Our Code is hosted on &lt;a href="https://github.com/nileorg" rel="noopener noreferrer"&gt;Github&lt;/a&gt;. We try to keep all documentation and project management tools as close as possible on the source code, so you find all significant information here.&lt;/p&gt;

&lt;p&gt;Specifications are here &lt;a href="https://github.com/nileorg/nile-specifications" rel="noopener noreferrer"&gt;nileorg/nile-specifications&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/nileorg/nile-development/wiki" rel="noopener noreferrer"&gt;Documentation&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Community and further readings
&lt;/h2&gt;

&lt;p&gt;This is the official &lt;a href="http://nile.shopping/" rel="noopener noreferrer"&gt;website&lt;/a&gt;.&lt;br&gt;
&lt;a href="https://discordapp.com/invite/je27JSc" rel="noopener noreferrer"&gt;Join our Discord&lt;/a&gt; to chat with the Team, the Community or our Bots. Don't be shy to ask questions!&lt;br&gt;
You can play with the prototype here: &lt;a href="https://client.nile.shopping/" rel="noopener noreferrer"&gt;Client&lt;/a&gt;, &lt;a href="https://node.nile.shopping/" rel="noopener noreferrer"&gt;Node&lt;/a&gt;. Follow &lt;a href="https://medium.com/nile-shopping/nile-prototype-1-0-0-95e5ac4e7fcb" rel="noopener noreferrer"&gt;this tutorial on Medium&lt;/a&gt; to learn how it works.&lt;/p&gt;

</description>
      <category>ipfs</category>
      <category>opensource</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
