<?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: Nikolaus</title>
    <description>The latest articles on DEV Community by Nikolaus (@n13).</description>
    <link>https://dev.to/n13</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%2F97428%2F22bb08f4-847a-45ef-b3a3-54566a7a9bf0.jpeg</url>
      <title>DEV Community: Nikolaus</title>
      <link>https://dev.to/n13</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/n13"/>
    <language>en</language>
    <item>
      <title>Building a python backend with ChatGTP - Or not.</title>
      <dc:creator>Nikolaus</dc:creator>
      <pubDate>Sat, 12 Oct 2024 01:28:28 +0000</pubDate>
      <link>https://dev.to/n13/building-a-python-backend-with-chatgtp-or-not-2hdh</link>
      <guid>https://dev.to/n13/building-a-python-backend-with-chatgtp-or-not-2hdh</guid>
      <description>&lt;p&gt;This will be a very short article - the executive summary is - don't use AI for python code. It doesn't work; &lt;/p&gt;

&lt;p&gt;AI is very good at python coding, but it can't deal with the mess of packaging dependencies and breaking changes in bundling a real world python app. &lt;/p&gt;

&lt;p&gt;On day 1, I had an entire app - frontend, backend, user authentication, login with Google and other OAuth providers, custom data model, and unit tests. &lt;/p&gt;

&lt;p&gt;On day 2 I spent 6 hours trying to get the unit test to work. I thought I made some progress. But I also noticed that ChatGPT (and all the other LLMS - I tried a few) would sometimes start looping on a problem. &lt;/p&gt;

&lt;p&gt;Looping is: GPT writes "Code 1" - run - errors - GPT fix errors with "Code 2" - errors - GPT fixes errors with "Code 1" - .... infinite loop of going back and forth between two code bases. &lt;/p&gt;

&lt;p&gt;On day 3 I decided to get really into it and understand all the code so I could fix it up - reading documentation on the various clever ORM wrappers, packages, and so on. The unit tests almost started working, but then never really did. &lt;/p&gt;

&lt;p&gt;Day 4 I decided I will actually write all this from scratch - building something minimal that works, then building on top of that, just like you normally would. &lt;/p&gt;

&lt;p&gt;Why is ChatGPT failing so badly at Python? The reason is that GPT can't deal with Python's main problem - the package manager, breaking change versions of both Python and available packages. &lt;/p&gt;

&lt;p&gt;The AI writes very nice, functional, correct Python code, and can explain it very well if needed; but it can't deal with a package that was upgraded to suddenly have a completely different API. With an ORM wrapper that can do things in a variety of different ways.&lt;/p&gt;

&lt;p&gt;So something that should take 2 minutes, like "please just give me a backend with user authentication" takes 5 days or in my case, never even gets done as the AI loops between non-working solutions. &lt;/p&gt;

&lt;p&gt;Lessons learned! &lt;/p&gt;

&lt;p&gt;Perhaps understanding what you're doing is not as dead yet as some of us thought. It's still relevant in 2024. &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Generosity, Abundance, and What Do We Want</title>
      <dc:creator>Nikolaus</dc:creator>
      <pubDate>Sun, 26 Jul 2020 16:11:04 +0000</pubDate>
      <link>https://dev.to/n13/generosity-abundance-and-what-do-we-want-3m62</link>
      <guid>https://dev.to/n13/generosity-abundance-and-what-do-we-want-3m62</guid>
      <description>&lt;h3&gt;
  
  
  Fresh from the Seeds Labs
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://joinseeds.com" rel="noopener noreferrer"&gt;Seeds&lt;/a&gt; is a regenerative currency designed to create a better world. &lt;/p&gt;

&lt;p&gt;It was born out of a question: What if, instead of incentivizing destructive behaviors, a financial system rewarded regenerative behaviors?&lt;/p&gt;

&lt;p&gt;And so Seeds rewards its citizens for playing and being a part of the regeneration of the planet, there are rewards for reputation built over time, there are proposals for common good projects, weighed voting, and many more features. It's owned by all, completely decentralized, and all of the rules can be changed by the citizens. &lt;/p&gt;

&lt;p&gt;All in all the Seeds constitution and rule book is over 100 pages long - I love it.&lt;/p&gt;

&lt;p&gt;But recently we've been discussing new modes of payments which I envision to be at the basis of the world we actually want to build. The goal of Seeds - from my perspective - is to make all currencies obsolete, and to provide the actualization of a roadmap whereby we move from scarcity to abundance. &lt;/p&gt;

&lt;h3&gt;
  
  
  What Do We Want?
&lt;/h3&gt;

&lt;p&gt;As a society, a collective, and a humanity, we want to enable heaven on earth here in the physical, on our planet. &lt;/p&gt;

&lt;p&gt;Earth is abundant - we have everything we need already. So the job of Seeds is not too difficult. The abundance needs to just be unlocked and freed from the systems that are seeking to limit it.&lt;/p&gt;

&lt;p&gt;Our past systems are based on survival/fear and power/control - and so we need to create all new systems. Better systems. Seeds doesn't solve all problems for all people, but it has a place as building a better financial system. &lt;/p&gt;

&lt;p&gt;If we all live in more beautiful, fair, and equitable systems, then we all live closer to the truth of reality, where we are all united, all one, living connection and joy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Donations - Giving based exchanges
&lt;/h3&gt;

&lt;p&gt;I see our financial exchanges ultimately moving to a system of synchronicity - where everyone does what they want, and everything gets done. &lt;/p&gt;

&lt;p&gt;Halfway there is donations, and giving based economies. Where a service or good is provided on a donation basis, or a sliding scale, or a variation thereof. Many healers already work this way because it is the closest to God.&lt;/p&gt;

&lt;p&gt;Donations can move us from a society based on taking to one based on giving. &lt;/p&gt;

&lt;h3&gt;
  
  
  Generosity and Abundance Tokens
&lt;/h3&gt;

&lt;p&gt;Deep in the Seeds labs, we are thinking about abundance and generosity tokens. &lt;/p&gt;

&lt;p&gt;We want to support donations in the best way possible and so the idea is to gamify donations by giving out special abundance or generosity tokens. Those who pay more than was asked, receive abundance tokens in return. They could also be NFTs (Non-fungible tokens) and badges - and these are not tradeable they're more a measure of the level of abundance a Seeds citizen represents. &lt;/p&gt;

&lt;p&gt;They won't be directly worth money - that would defeat the purpose - but they will be publicly visible on an account, and verifiable too - there's no way to cheat. The only way to gain more abundance tokens is to pay more than was asked! Verified on chain. Or for open donations, they would be given out for donating more than the median donation.&lt;/p&gt;

&lt;p&gt;Seeds has a built in reputation score which does influence a citizens share of the harvest as well as vote power - reputation is an important part of the system, both to reward integrity, to signal others that an account is trustworthy, and to eliminate bots and scams. &lt;/p&gt;

&lt;p&gt;But the abundance tokens would only very indirectly influence a Seeds holder's scores - they are visible and so others may be more inclined to transact with them, but that's it. &lt;/p&gt;

&lt;p&gt;It's a thought experiment so all comments, ideas, and criticisms are welcome on the Seeds Community Telegram channel here: &lt;a href="https://t.me/SEEDS_Community" rel="noopener noreferrer"&gt;https://t.me/SEEDS_Community&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Onwards, humans!&lt;/p&gt;

</description>
      <category>sustainablefinance</category>
      <category>dfi</category>
      <category>dgov</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>Is One Source of Truth just a fancy name for Global Variables?</title>
      <dc:creator>Nikolaus</dc:creator>
      <pubDate>Fri, 16 Nov 2018 03:43:55 +0000</pubDate>
      <link>https://dev.to/n13/is-one-source-of-truth-just-a-fancy-name-for-global-variables-3b98</link>
      <guid>https://dev.to/n13/is-one-source-of-truth-just-a-fancy-name-for-global-variables-3b98</guid>
      <description>&lt;p&gt;I've created very large scale and extremely robust applications using object oriented programming. OO is a good way to modularize code and insulate it from other code, so things stay inside their design.&lt;/p&gt;

&lt;p&gt;Now I am working on a React Native app, and while the view system is really good, the global state thing puzzles me. &lt;/p&gt;

&lt;p&gt;[Naive] opinions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;One source of truth philosophy is just global variables.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The problems that redux and mobx solve are ingenious ways of dealing with the limitations of web development. These problems do not exist in native OO programming and the solutions to them are therefore irrelevant. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are statements to discuss - I'd particularly like to hear counterpoints. I want it to make sense! I am happy to change my opinions if more aligned ones come along. As Groucho Marx said "I have my principles, and if you don't like them I have others!"&lt;/p&gt;

&lt;p&gt;One source of truth seems to be the discovery, by web programmers, of global variables. Global variables are known to make code error prone, brittle, hard to debug, hard to maintain, and generally make a mess of things. If you want to get fired on your first day of the job as an OO programmer, introduce a bunch of static globals into the code base.&lt;/p&gt;

&lt;p&gt;I understand why this happened - web programming has its own set of constraints thanks to a runtime environment that was never designed for apps, yet is used for apps. So these things had to be created to deal with it, and to get anything done. It's an amazingly elaborate and innovative way to get around these constraints.&lt;/p&gt;

&lt;p&gt;But now it's creeping back into native development in React Native. The vast majority of problems that are solved by redux and mobx don't exist in native apps. What remains is a global state management system.&lt;/p&gt;

&lt;p&gt;In any OO program I've worked on, we could have done that. We could have created a God-State object, and run all state through it.&lt;/p&gt;

&lt;p&gt;The reason nobody would ever do that is that it's a very poor design. It won't stand the test of time, it'll be buggy, it'll require every coder to know everything about every corner of the application, and all the other reasons we do not use global variables. &lt;/p&gt;

&lt;p&gt;You do not want one massive, complex object where changes to it could potentially break any part of your app. It's the last thing you want and it's the reason why first modular and later object oriented programming were invented to begin with.&lt;/p&gt;

</description>
      <category>oop</category>
      <category>reactnative</category>
      <category>mobx</category>
      <category>redux</category>
    </item>
  </channel>
</rss>
